insforge 1.3.0 → 1.4.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/auth/package.json +5 -3
- package/auth/src/lib/broadcastService.ts +115 -117
- package/auth/src/lib/insforge.ts +8 -0
- package/auth/src/main.tsx +2 -4
- package/auth/src/pages/SignInPage.tsx +60 -60
- package/auth/src/pages/SignUpPage.tsx +60 -60
- package/auth/src/pages/VerifyEmailPage.tsx +18 -0
- package/auth/tsconfig.json +2 -1
- package/backend/package.json +10 -6
- package/backend/src/api/middlewares/rate-limiters.ts +127 -127
- package/backend/src/api/routes/ai/index.routes.ts +475 -468
- package/backend/src/api/routes/auth/index.routes.ts +85 -32
- package/backend/src/api/routes/auth/oauth.routes.ts +11 -6
- package/backend/src/api/routes/database/index.routes.ts +2 -0
- package/backend/src/api/routes/database/records.routes.ts +39 -175
- package/backend/src/api/routes/database/rpc.routes.ts +69 -0
- package/backend/src/api/routes/deployments/index.routes.ts +192 -0
- package/backend/src/api/routes/docs/index.routes.ts +3 -2
- package/backend/src/api/routes/email/index.routes.ts +35 -35
- package/backend/src/api/routes/functions/index.routes.ts +3 -3
- package/backend/src/api/routes/metadata/index.routes.ts +26 -0
- package/backend/src/api/routes/webhooks/index.routes.ts +109 -0
- package/backend/src/infra/database/database.manager.ts +0 -10
- package/backend/src/infra/database/migrations/018_schema-rework.sql +441 -0
- package/backend/src/infra/database/migrations/019_create-deployments-table.sql +36 -0
- package/backend/src/infra/database/migrations/020_add-audio-modality.sql +11 -0
- package/backend/src/infra/database/migrations/bootstrap/bootstrap-migrations.js +103 -0
- package/backend/src/infra/security/token.manager.ts +1 -4
- package/backend/src/providers/ai/openrouter.provider.ts +12 -3
- package/backend/src/providers/database/base.provider.ts +39 -0
- package/backend/src/providers/database/cloud.provider.ts +159 -0
- package/backend/src/providers/deployments/vercel.provider.ts +516 -0
- package/backend/src/server.ts +19 -7
- package/backend/src/services/ai/ai-config.service.ts +6 -6
- package/backend/src/services/ai/ai-model.service.ts +60 -60
- package/backend/src/services/ai/ai-usage.service.ts +7 -7
- package/backend/src/services/ai/chat-completion.service.ts +415 -220
- package/backend/src/services/ai/helpers.ts +64 -64
- package/backend/src/services/ai/index.ts +13 -13
- package/backend/src/services/auth/auth-config.service.ts +4 -4
- package/backend/src/services/auth/auth-otp.service.ts +6 -6
- package/backend/src/services/auth/auth.service.ts +134 -74
- package/backend/src/services/auth/index.ts +4 -4
- package/backend/src/services/auth/oauth-config.service.ts +12 -12
- package/backend/src/services/database/database-advance.service.ts +19 -55
- package/backend/src/services/database/database-table.service.ts +38 -85
- package/backend/src/services/database/postgrest-proxy.service.ts +165 -0
- package/backend/src/services/deployments/deployment.service.ts +693 -0
- package/backend/src/services/functions/function.service.ts +61 -41
- package/backend/src/services/logs/audit.service.ts +10 -10
- package/backend/src/services/secrets/secret.service.ts +101 -27
- package/backend/src/services/storage/storage.service.ts +30 -30
- package/backend/src/services/usage/usage.service.ts +6 -6
- package/backend/src/types/ai.ts +8 -0
- package/backend/src/types/auth.ts +5 -1
- package/backend/src/types/database.ts +2 -0
- package/backend/src/types/deployments.ts +33 -0
- package/backend/src/types/storage.ts +1 -1
- package/backend/src/types/webhooks.ts +45 -0
- package/backend/src/utils/cookies.ts +34 -35
- package/backend/src/utils/environment.ts +0 -14
- package/backend/src/utils/s3-config-loader.ts +64 -64
- package/backend/src/utils/seed.ts +334 -301
- package/backend/src/utils/sql-parser.ts +126 -0
- package/backend/src/utils/utils.ts +114 -114
- package/backend/src/utils/validations.ts +10 -10
- package/backend/tests/local/test-rpc.sh +141 -0
- package/backend/tests/local/test-secrets.sh +1 -1
- package/backend/tests/manual/test-ai-model-plugins.sh +258 -0
- package/backend/tests/manual/test-rawsql-modes.sh +24 -24
- package/backend/tests/unit/database-advance.test.ts +326 -0
- package/backend/tests/unit/helpers.test.ts +2 -2
- package/claude-plugin/skills/insforge-schema-patterns/SKILL.md +13 -10
- package/docker-compose.prod.yml +1 -1
- package/docker-compose.yml +1 -1
- package/docs/agent-docs/deployment.md +79 -0
- package/docs/changelog.mdx +165 -72
- package/docs/core-concepts/ai/architecture.mdx +1 -23
- package/docs/core-concepts/ai/sdk.mdx +26 -1
- package/docs/core-concepts/authentication/architecture.mdx +6 -8
- package/docs/core-concepts/authentication/sdk.mdx +387 -91
- package/docs/core-concepts/authentication/ui-components/customization.mdx +460 -256
- package/docs/core-concepts/authentication/ui-components/nextjs.mdx +50 -24
- package/docs/core-concepts/authentication/ui-components/react-router.mdx +18 -19
- package/docs/core-concepts/authentication/ui-components/react.mdx +26 -19
- package/docs/core-concepts/database/architecture.mdx +58 -21
- package/docs/core-concepts/database/pgvector.mdx +138 -0
- package/docs/core-concepts/database/sdk.mdx +17 -17
- package/docs/core-concepts/deployments/architecture.mdx +152 -0
- package/docs/core-concepts/email/architecture.mdx +4 -2
- package/docs/core-concepts/functions/architecture.mdx +1 -1
- package/docs/core-concepts/functions/sdk.mdx +0 -1
- package/docs/core-concepts/realtime/architecture.mdx +1 -1
- package/docs/core-concepts/storage/architecture.mdx +1 -1
- package/docs/core-concepts/storage/sdk.mdx +25 -25
- package/docs/docs.json +14 -6
- package/docs/favicon.png +0 -0
- package/docs/favicon.svg +3 -18
- package/docs/images/changelog/dec-2025/apple-oauth.mp4 +0 -0
- package/docs/images/changelog/dec-2025/moreModels.png +0 -0
- package/docs/images/changelog/dec-2025/multi-region.webp +0 -0
- package/docs/images/changelog/dec-2025/postgres-connection.webp +0 -0
- package/docs/images/changelog/dec-2025/realtime2.png +0 -0
- package/docs/images/mcp-setup/CC-MCP-1.mp4 +0 -0
- package/docs/images/mcp-setup/CC-MCP-2.mp4 +0 -0
- package/docs/images/mcp-setup/Cursor-MCP-1.mp4 +0 -0
- package/docs/images/mcp-setup/Cursor-MCP-2.mp4 +0 -0
- package/docs/images/mcp-setup/Cursor-MCP-3.mp4 +0 -0
- package/docs/images/mcp-setup/claude-code-connect.png +0 -0
- package/docs/images/mcp-setup/cline-1.png +0 -0
- package/docs/images/mcp-setup/cline-2.png +0 -0
- package/docs/images/mcp-setup/cline-3.png +0 -0
- package/docs/images/mcp-setup/connect-project.png +0 -0
- package/docs/images/mcp-setup/copilot-1.png +0 -0
- package/docs/images/mcp-setup/copilot-2.png +0 -0
- package/docs/images/mcp-setup/copilot-3.png +0 -0
- package/docs/images/mcp-setup/mcp-json-1.png +0 -0
- package/docs/images/mcp-setup/mcp-json-2.png +0 -0
- package/docs/images/mcp-setup/qoder-1.png +0 -0
- package/docs/images/mcp-setup/qoder-2.png +0 -0
- package/docs/images/mcp-setup/roocode-1.png +0 -0
- package/docs/images/mcp-setup/roocode-2.png +0 -0
- package/docs/images/mcp-setup/trae-1.png +0 -0
- package/docs/images/mcp-setup/trae-2.png +0 -0
- package/docs/images/mcp-setup/trae-3.png +0 -0
- package/docs/images/mcp-setup/trae-4.png +0 -0
- package/docs/images/mcp-setup/trae-5.png +0 -0
- package/docs/images/mcp-setup/windsurf-1.png +0 -0
- package/docs/images/mcp-setup/windsurf-2.png +0 -0
- package/docs/insforge-instructions-sdk.md +7 -3
- package/docs/introduction.mdx +9 -8
- package/docs/mcp-setup.mdx +332 -0
- package/docs/oauth-server.mdx +563 -0
- package/docs/partnership.mdx +79 -10
- package/docs/quickstart.mdx +1 -1
- package/docs/vscode-extension.mdx +74 -0
- package/eslint.config.js +1 -0
- package/examples/response-examples.md +1 -1
- package/frontend/package.json +1 -1
- package/frontend/src/App.tsx +8 -3
- package/frontend/src/assets/logos/antigravity.svg +1 -0
- package/frontend/src/assets/logos/copilot.svg +10 -0
- package/frontend/src/assets/logos/deepseek.svg +139 -0
- package/frontend/src/assets/logos/kiro.svg +9 -0
- package/frontend/src/assets/logos/qoder.svg +4 -0
- package/frontend/src/assets/logos/qwen.svg +15 -0
- package/frontend/src/components/CodeBlock.tsx +2 -2
- package/frontend/src/components/ConnectCTA.tsx +3 -2
- package/frontend/src/components/datagrid/DataGrid.tsx +90 -62
- package/frontend/src/components/datagrid/datagridTypes.tsx +2 -1
- package/frontend/src/components/datagrid/index.ts +1 -1
- package/frontend/src/components/index.ts +0 -1
- package/frontend/src/components/layout/AppHeader.tsx +4 -27
- package/frontend/src/components/layout/AppSidebar.tsx +85 -100
- package/frontend/src/components/layout/Layout.tsx +34 -32
- package/frontend/src/components/layout/PrimaryMenu.tsx +12 -4
- package/frontend/src/components/radix/Select.tsx +151 -151
- package/frontend/src/features/ai/components/AIConfigCard.tsx +200 -200
- package/frontend/src/features/ai/components/AIEmptyState.tsx +23 -23
- package/frontend/src/features/ai/components/ModalityFilterSidebar.tsx +102 -101
- package/frontend/src/features/ai/components/ModelSelectionDialog.tsx +135 -135
- package/frontend/src/features/ai/components/ModelSelectionGrid.tsx +51 -51
- package/frontend/src/features/ai/components/SystemPromptDialog.tsx +118 -118
- package/frontend/src/features/ai/components/index.ts +6 -6
- package/frontend/src/features/ai/helpers.ts +147 -141
- package/frontend/src/features/ai/pages/AIPage.tsx +166 -166
- package/frontend/src/features/auth/components/AuthPreview.tsx +96 -96
- package/frontend/src/features/auth/components/UsersDataGrid.tsx +55 -31
- package/frontend/src/features/auth/components/index.ts +5 -5
- package/frontend/src/features/auth/pages/AuthMethodsPage.tsx +275 -275
- package/frontend/src/features/dashboard/pages/DashboardPage.tsx +1 -1
- package/frontend/src/features/database/components/DatabaseDataGrid.tsx +0 -2
- package/frontend/src/features/database/components/ForeignKeyCell.tsx +38 -11
- package/frontend/src/features/database/components/ForeignKeyPopover.tsx +18 -8
- package/frontend/src/features/database/components/LinkRecordModal.tsx +61 -13
- package/frontend/src/features/database/components/RecordFormField.tsx +1 -1
- package/frontend/src/features/database/components/TableSidebar.tsx +0 -3
- package/frontend/src/features/database/components/TablesEmptyState.tsx +1 -1
- package/frontend/src/features/database/components/TemplatePreview.tsx +1 -2
- package/frontend/src/features/database/constants.ts +16 -28
- package/frontend/src/features/database/hooks/useCSVImport.ts +3 -2
- package/frontend/src/features/database/hooks/useRawSQL.ts +3 -2
- package/frontend/src/features/database/hooks/useTables.ts +5 -7
- package/frontend/src/features/database/pages/FunctionsPage.tsx +0 -5
- package/frontend/src/features/database/pages/IndexesPage.tsx +0 -5
- package/frontend/src/features/database/pages/PoliciesPage.tsx +0 -5
- package/frontend/src/features/database/pages/SQLEditorPage.tsx +2 -2
- package/frontend/src/features/database/pages/TriggersPage.tsx +0 -5
- package/frontend/src/features/database/services/advance.service.ts +1 -15
- package/frontend/src/features/database/services/record.service.ts +4 -20
- package/frontend/src/features/database/services/table.service.ts +1 -4
- package/frontend/src/features/database/templates/ai-chatbot.ts +6 -6
- package/frontend/src/features/database/templates/ecommerce-platform.ts +2 -2
- package/frontend/src/features/database/templates/instagram-clone.ts +10 -10
- package/frontend/src/features/database/templates/notion-clone.ts +8 -8
- package/frontend/src/features/database/templates/reddit-clone.ts +10 -10
- package/frontend/src/features/deployments/components/DeploymentRow.tsx +93 -0
- package/frontend/src/features/deployments/components/DeploymentsEmptyState.tsx +15 -0
- package/frontend/src/features/deployments/hooks/useDeployments.ts +157 -0
- package/frontend/src/features/deployments/pages/DeploymentsPage.tsx +318 -0
- package/frontend/src/features/deployments/services/deployments.service.ts +63 -0
- package/frontend/src/features/functions/components/FunctionRow.tsx +72 -72
- package/frontend/src/features/functions/components/FunctionsSidebar.tsx +56 -56
- package/frontend/src/features/functions/components/SecretRow.tsx +3 -3
- package/frontend/src/features/functions/components/index.ts +5 -5
- package/frontend/src/features/functions/hooks/useFunctions.ts +5 -4
- package/frontend/src/features/functions/hooks/useSecrets.ts +6 -9
- package/frontend/src/features/functions/pages/SecretsPage.tsx +118 -118
- package/frontend/src/features/functions/services/function.service.ts +8 -25
- package/frontend/src/features/functions/services/secret.service.ts +23 -41
- package/frontend/src/features/login/pages/CloudLoginPage.tsx +125 -118
- package/frontend/src/features/logs/components/LogDetailPanel.tsx +41 -0
- package/frontend/src/features/logs/components/LogsDataGrid.tsx +32 -1
- package/frontend/src/features/logs/components/index.ts +1 -0
- package/frontend/src/features/logs/pages/LogsPage.tsx +36 -6
- package/frontend/src/features/onboard/components/ApiCredentialsSection.tsx +59 -0
- package/frontend/src/features/onboard/components/ConnectionStringSection.tsx +180 -0
- package/frontend/src/features/onboard/components/McpConnectionSection.tsx +159 -0
- package/frontend/src/features/onboard/components/OnboardingController.tsx +68 -0
- package/frontend/src/features/onboard/components/OnboardingModal.tsx +121 -267
- package/frontend/src/features/onboard/components/ShowPasswordButton.tsx +21 -0
- package/frontend/src/features/onboard/components/index.ts +9 -4
- package/frontend/src/features/onboard/components/mcp/CursorDeeplinkGenerator.tsx +1 -1
- package/frontend/src/features/onboard/components/mcp/QoderDeeplinkGenerator.tsx +36 -0
- package/frontend/src/features/onboard/components/mcp/helpers.tsx +123 -98
- package/frontend/src/features/onboard/components/mcp/index.ts +4 -3
- package/frontend/src/features/onboard/index.ts +17 -13
- package/frontend/src/features/settings/pages/SettingsPage.tsx +349 -0
- package/frontend/src/features/visualizer/components/AuthNode.tsx +4 -4
- package/frontend/src/features/visualizer/components/SchemaVisualizer.tsx +21 -8
- package/frontend/src/features/visualizer/pages/VisualizerPage.tsx +10 -1
- package/frontend/src/index.css +249 -249
- package/frontend/src/lib/contexts/ModalContext.tsx +35 -0
- package/frontend/src/lib/hooks/useMetadata.ts +45 -1
- package/frontend/src/lib/hooks/useModal.tsx +2 -0
- package/frontend/src/lib/routing/AppRoutes.tsx +103 -99
- package/frontend/src/lib/services/metadata.service.ts +20 -3
- package/frontend/src/lib/utils/menuItems.ts +223 -207
- package/frontend/src/lib/utils/utils.ts +196 -196
- package/functions/server.ts +315 -315
- package/functions/worker-template.js +1 -1
- package/openapi/ai.yaml +115 -5
- package/openapi/auth.yaml +97 -17
- package/openapi/logs.yaml +0 -2
- package/openapi/metadata.yaml +0 -2
- package/openapi/records.yaml +21 -21
- package/openapi/tables.yaml +1 -2
- package/package.json +1 -1
- package/shared-schemas/package.json +1 -1
- package/shared-schemas/src/ai-api.schema.ts +251 -143
- package/shared-schemas/src/ai.schema.ts +63 -63
- package/shared-schemas/src/auth-api.schema.ts +34 -6
- package/shared-schemas/src/auth.schema.ts +17 -10
- package/shared-schemas/src/cloud-events.schema.ts +26 -0
- package/shared-schemas/src/deployments-api.schema.ts +55 -0
- package/shared-schemas/src/deployments.schema.ts +30 -0
- package/shared-schemas/src/docs.schema.ts +8 -2
- package/shared-schemas/src/email-api.schema.ts +30 -30
- package/shared-schemas/src/functions-api.schema.ts +13 -4
- package/shared-schemas/src/functions.schema.ts +1 -1
- package/shared-schemas/src/index.ts +22 -18
- package/shared-schemas/src/metadata.schema.ts +30 -4
- package/shared-schemas/src/secrets-api.schema.ts +44 -0
- package/shared-schemas/src/secrets.schema.ts +15 -0
- package/zeabur/README.md +13 -0
- package/zeabur/template.yml +20 -51
- package/backend/src/types/profile.ts +0 -55
- package/frontend/src/components/ProjectInfoModal.tsx +0 -128
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<g clip-path="url(#clip0_384_4970)">
|
|
3
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M16.0375 4.46998C17.1392 5.60331 17.6017 7.14998 17.7958 9.31748C18.3142 9.31748 18.7958 9.42998 19.1225 9.86248L19.7308 10.6658C19.9058 10.8975 20 11.1741 20 11.4616V13.645C20 13.9275 19.8558 14.2025 19.6225 14.3683C16.8658 16.335 13.4642 17.9166 10 17.9166C6.16667 17.9166 2.32917 15.7641 0.3775 14.3683C0.144167 14.2016 0.000833333 13.9266 0 13.645V11.4616C0 11.1741 0.0941667 10.8958 0.2675 10.665L0.875833 9.86248C1.2025 9.43165 1.6875 9.31748 2.20333 9.31748L2.2275 9.06998C2.43583 7.03165 2.9025 5.55915 3.9625 4.46998C6.01333 2.35331 8.72083 2.09415 9.9175 2.08331H10.0825C11.2792 2.09415 13.9867 2.35248 16.0375 4.46998ZM10.0008 8.07665C9.76417 8.07665 9.49 8.08998 9.19917 8.11831C9.09667 8.49081 8.945 8.82665 8.72417 9.04165C7.84917 9.89415 6.79417 10.025 6.22917 10.025C5.6975 10.025 5.14083 9.91665 4.68667 9.63831C4.25667 9.77581 3.84333 9.97415 3.81667 10.4683C3.78163 11.2689 3.76412 12.0702 3.76417 12.8716L3.7625 13.2716C3.76083 13.7408 3.75833 14.21 3.75167 14.68C3.75333 14.9516 3.92167 15.205 4.17667 15.3175C6.245 16.2358 8.20167 16.6983 10.0017 16.6983C11.7983 16.6983 13.755 16.2358 15.8225 15.3175C15.9469 15.2628 16.053 15.1736 16.1283 15.0605C16.2036 14.9473 16.245 14.815 16.2475 14.6791C16.2725 13.2775 16.2525 11.8691 16.1842 10.4683C16.1583 9.97165 15.7442 9.77665 15.3125 9.63831C14.8575 9.91581 14.3025 10.025 13.7708 10.025C13.2067 10.025 12.1525 9.89415 11.2767 9.04165C11.055 8.82665 10.9042 8.49081 10.8017 8.11831C10.535 8.09165 10.2675 8.07748 10.0008 8.07665ZM7.89667 11.4208C8.34583 11.4208 8.71 11.7758 8.71 12.2125V13.6733C8.71 14.1108 8.34583 14.465 7.89667 14.465C7.68389 14.4677 7.47874 14.3858 7.32626 14.2374C7.17377 14.0889 7.08641 13.8861 7.08333 13.6733V12.2133C7.08333 11.7758 7.4475 11.4208 7.89667 11.4208ZM12.0633 11.4208C12.5125 11.4208 12.8767 11.7758 12.8767 12.2125V13.6733C12.8767 14.1108 12.5125 14.465 12.0633 14.465C11.8506 14.4677 11.6454 14.3858 11.4929 14.2374C11.3404 14.0889 11.2531 13.8861 11.25 13.6733V12.2133C11.25 11.7758 11.6142 11.4208 12.0633 11.4208ZM6.3625 4.23915C5.4875 4.32415 4.75 4.60415 4.375 4.99415C3.5625 5.85831 3.7375 8.05081 4.2 8.51415C4.5375 8.84248 5.175 9.06165 5.8625 9.06165H5.9375C6.47833 9.05081 7.425 8.91498 8.2125 8.13665C8.575 7.79498 8.8 6.94248 8.775 6.07831C8.75 5.38331 8.55 4.81165 8.25 4.56748C7.925 4.28748 7.1875 4.16581 6.3625 4.23915ZM11.75 4.56748C11.45 4.81081 11.25 5.38415 11.225 6.07831C11.2 6.94248 11.425 7.79498 11.7875 8.13665C12.5942 8.93415 13.5675 9.05665 14.1008 9.06165H14.1375C14.825 9.06165 15.4625 8.84248 15.8 8.51415C16.2625 8.05081 16.4375 5.85831 15.625 4.99415C15.25 4.60415 14.5125 4.32415 13.6375 4.23915C12.8125 4.16581 12.075 4.28748 11.75 4.56748ZM10 6.34581C9.8 6.34581 9.5625 6.35831 9.3 6.38248C9.325 6.51581 9.3375 6.66248 9.35 6.82081L9.34917 6.95331C9.34824 7.02289 9.34435 7.0924 9.3375 7.16165C9.525 7.14331 9.69167 7.13915 9.8475 7.13831H10.1525C10.3083 7.13831 10.475 7.14331 10.6625 7.16165C10.65 7.03998 10.65 6.93081 10.65 6.82081C10.6625 6.66248 10.675 6.51665 10.7 6.38248C10.4673 6.35969 10.2338 6.34746 10 6.34581Z" fill="currentColor"/>
|
|
4
|
+
</g>
|
|
5
|
+
<defs>
|
|
6
|
+
<clipPath id="clip0_384_4970">
|
|
7
|
+
<rect width="20" height="20" fill="currentColor"/>
|
|
8
|
+
</clipPath>
|
|
9
|
+
</defs>
|
|
10
|
+
</svg>
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
|
|
2
|
+
width="100%" viewBox="0 0 960 956" xml:space="preserve">
|
|
3
|
+
<path fill="#4D6BFE" opacity="1.000000" stroke="none"
|
|
4
|
+
d="
|
|
5
|
+
M260.763000,698.302734
|
|
6
|
+
C248.042023,688.617737 234.923004,679.932068 223.344925,669.531067
|
|
7
|
+
C210.352493,657.859497 197.717758,645.464905 186.838806,631.856812
|
|
8
|
+
C175.983704,618.278564 167.133331,603.026794 158.111664,588.081604
|
|
9
|
+
C153.126511,579.823303 148.799271,570.968445 145.595428,561.881897
|
|
10
|
+
C141.040009,548.961975 137.811005,535.575623 133.978714,522.399231
|
|
11
|
+
C130.265167,509.631104 129.133118,496.474701 127.987022,483.315063
|
|
12
|
+
C127.360497,476.121185 125.998192,468.917450 126.165337,461.746063
|
|
13
|
+
C126.405998,451.420593 127.810097,441.125977 128.583099,430.808136
|
|
14
|
+
C129.424179,419.582031 131.424606,408.565369 135.027374,397.925507
|
|
15
|
+
C138.857239,386.614990 142.649094,375.238220 147.450821,364.327484
|
|
16
|
+
C151.146591,355.929810 156.101288,348.034271 160.988449,340.223450
|
|
17
|
+
C171.395447,323.590668 184.015610,308.752411 198.749008,295.779419
|
|
18
|
+
C219.091171,277.867828 242.534225,265.379028 268.588593,258.417511
|
|
19
|
+
C281.235596,255.038361 294.459961,253.273193 307.539581,252.204163
|
|
20
|
+
C322.559174,250.976547 337.722809,250.781021 352.795166,251.191483
|
|
21
|
+
C362.523712,251.456436 372.182526,254.422607 381.907166,254.641327
|
|
22
|
+
C388.356689,254.786392 395.239410,253.132721 401.281982,250.687347
|
|
23
|
+
C420.630493,242.857132 440.231842,235.768661 460.808533,232.334641
|
|
24
|
+
C473.533600,230.210968 486.629211,229.902695 499.275208,234.022324
|
|
25
|
+
C501.057251,234.602859 503.040161,235.468246 504.212372,236.822845
|
|
26
|
+
C506.341187,239.282928 507.049561,241.586441 503.004852,243.705307
|
|
27
|
+
C491.792664,249.578903 483.012054,257.615784 479.625458,270.610840
|
|
28
|
+
C478.109283,276.428680 479.826965,281.366669 482.160919,286.070038
|
|
29
|
+
C485.300201,292.396271 490.376129,297.024994 496.329376,301.173218
|
|
30
|
+
C507.368896,308.865570 518.017395,317.198486 528.263367,325.928192
|
|
31
|
+
C538.619934,334.752167 548.486328,344.181610 558.206238,353.714111
|
|
32
|
+
C567.314758,362.647064 575.943359,372.068939 584.796021,381.263245
|
|
33
|
+
C598.013367,394.990692 613.406067,405.815094 630.038086,414.944855
|
|
34
|
+
C633.273315,416.720825 636.712646,418.150818 640.134033,419.554901
|
|
35
|
+
C643.775085,421.049194 647.566284,418.555817 648.931396,413.999420
|
|
36
|
+
C651.158142,406.566742 653.026794,398.994812 655.790222,391.765961
|
|
37
|
+
C657.632996,386.945374 656.109619,383.956787 652.605347,381.169250
|
|
38
|
+
C647.619202,377.203033 642.361633,373.534882 637.678406,369.239594
|
|
39
|
+
C626.201599,358.713348 615.950317,347.181335 609.959595,332.474731
|
|
40
|
+
C608.018860,327.710236 605.249023,323.139709 604.178040,318.194702
|
|
41
|
+
C601.979919,308.044556 600.981079,297.639099 598.921082,287.453491
|
|
42
|
+
C596.401428,274.995270 599.592896,262.948975 601.224060,250.866776
|
|
43
|
+
C602.065002,244.637558 605.366516,238.732956 607.621399,232.706055
|
|
44
|
+
C608.468201,230.442825 609.270142,228.112091 610.496460,226.052658
|
|
45
|
+
C612.766663,222.240112 615.095825,218.882629 620.611450,218.820358
|
|
46
|
+
C626.003174,218.759491 627.819458,221.988007 629.366028,225.837677
|
|
47
|
+
C631.104736,230.165787 632.828613,234.561691 633.900696,239.084167
|
|
48
|
+
C637.076477,252.480591 646.257446,260.309967 657.955322,265.990784
|
|
49
|
+
C668.809570,271.261932 680.433655,275.609589 688.835388,284.533173
|
|
50
|
+
C695.781067,291.910248 701.255493,300.617218 703.043396,311.041962
|
|
51
|
+
C703.254944,312.275879 703.920471,313.431946 704.375488,314.624084
|
|
52
|
+
C705.383728,314.092468 706.590393,313.763214 707.370300,312.998627
|
|
53
|
+
C717.891357,302.683777 730.296509,295.790741 744.774658,293.104431
|
|
54
|
+
C750.234314,292.091461 755.935181,291.945038 761.511108,292.070312
|
|
55
|
+
C781.194275,292.512543 797.424255,285.601624 810.182617,270.449951
|
|
56
|
+
C812.858032,267.272614 816.059143,264.284760 819.597229,262.186279
|
|
57
|
+
C821.574219,261.013733 825.048462,261.064606 827.308655,261.946533
|
|
58
|
+
C831.760925,263.683746 835.058105,267.295715 834.911560,272.337769
|
|
59
|
+
C834.712158,279.199402 834.083740,286.096649 832.983032,292.872009
|
|
60
|
+
C831.581970,301.496246 830.302795,310.271942 827.567810,318.516876
|
|
61
|
+
C823.480591,330.838379 817.848999,342.602081 809.691345,352.900391
|
|
62
|
+
C791.423401,375.962097 767.366882,389.589264 738.924194,395.897308
|
|
63
|
+
C735.584045,396.638092 732.089417,396.727417 728.656799,396.995239
|
|
64
|
+
C723.171204,397.423248 720.942261,399.558136 721.072510,405.037170
|
|
65
|
+
C721.205505,410.630920 722.241821,416.251221 721.888733,421.796600
|
|
66
|
+
C721.423523,429.104004 720.278625,436.404846 718.907043,443.609711
|
|
67
|
+
C716.481201,456.352509 714.262878,469.184570 710.848328,481.675995
|
|
68
|
+
C707.148804,495.209320 702.127197,508.378448 697.780029,521.738220
|
|
69
|
+
C691.872986,539.891846 682.746948,556.517395 672.706360,572.557861
|
|
70
|
+
C665.996765,583.276733 658.141907,593.344727 650.155579,603.181091
|
|
71
|
+
C641.109192,614.323059 631.343201,624.880737 620.821167,636.915039
|
|
72
|
+
C626.456116,639.465881 631.389771,641.887390 636.467529,643.955200
|
|
73
|
+
C644.669617,647.295288 653.025269,650.260864 661.205200,653.651855
|
|
74
|
+
C668.012329,656.473694 674.712708,659.569397 681.364136,662.745422
|
|
75
|
+
C688.454895,666.131104 690.560730,677.929443 685.534119,684.053223
|
|
76
|
+
C680.980835,689.600281 674.630737,691.565491 668.152161,692.912537
|
|
77
|
+
C652.883362,696.087341 637.347290,696.868408 621.837341,695.926514
|
|
78
|
+
C604.630005,694.881592 587.526489,692.843750 571.356812,686.048157
|
|
79
|
+
C569.589355,685.305298 566.361023,685.664978 564.935242,686.857910
|
|
80
|
+
C553.402405,696.506775 541.383850,705.558655 527.790710,711.921387
|
|
81
|
+
C513.100891,718.797546 498.172363,725.529236 482.723358,730.302307
|
|
82
|
+
C470.396057,734.111084 457.187012,735.363464 444.266907,736.874512
|
|
83
|
+
C430.711334,738.459900 417.013794,740.026123 403.414001,739.761841
|
|
84
|
+
C382.493744,739.355286 361.719818,737.302490 341.145569,732.345215
|
|
85
|
+
C319.888550,727.223511 299.975342,719.098572 280.456024,709.709839
|
|
86
|
+
C273.747589,706.483215 267.502014,702.294373 260.763000,698.302734
|
|
87
|
+
M354.619019,454.942871
|
|
88
|
+
C342.341888,447.436707 330.444031,439.198578 317.699463,432.594452
|
|
89
|
+
C298.151886,422.465057 277.432007,415.063416 255.836700,410.482574
|
|
90
|
+
C245.648148,408.321350 235.367859,405.749237 225.043671,405.291687
|
|
91
|
+
C213.078873,404.761444 200.970566,405.888611 189.018707,407.172699
|
|
92
|
+
C180.268097,408.112854 172.855331,411.755005 174.018921,423.742859
|
|
93
|
+
C175.285980,436.796417 175.878662,449.989899 178.283112,462.838318
|
|
94
|
+
C180.834839,476.473663 184.756088,489.901703 188.821671,503.193207
|
|
95
|
+
C194.941971,523.202148 203.547485,542.272644 214.248489,560.195801
|
|
96
|
+
C221.455200,572.266418 229.710236,583.840759 238.579041,594.757507
|
|
97
|
+
C250.461151,609.383423 264.031372,622.510315 279.311096,633.669678
|
|
98
|
+
C288.433380,640.331970 297.381653,647.479858 307.294922,652.737427
|
|
99
|
+
C316.002686,657.355652 325.776428,660.298950 335.389313,662.782166
|
|
100
|
+
C345.208496,665.318726 355.140320,664.728699 364.322632,659.287659
|
|
101
|
+
C370.242004,655.780151 372.905060,650.934448 370.905334,645.918518
|
|
102
|
+
C369.954285,643.533081 368.981659,641.010559 367.401794,639.046448
|
|
103
|
+
C360.366425,630.299683 357.179718,620.153931 355.635986,609.245789
|
|
104
|
+
C354.669800,602.418640 359.592896,596.204834 365.977081,597.023315
|
|
105
|
+
C375.510925,598.245667 384.347961,601.723572 392.344543,606.895630
|
|
106
|
+
C405.898834,615.662231 419.312073,624.662292 432.537750,633.916931
|
|
107
|
+
C443.928070,641.887451 455.263855,649.988708 466.100403,658.684326
|
|
108
|
+
C480.124603,669.937805 496.178070,676.328064 513.613159,678.775269
|
|
109
|
+
C524.533264,680.307922 535.757141,679.778625 546.848022,679.929749
|
|
110
|
+
C550.046387,679.973267 553.256348,679.167297 556.865906,678.698120
|
|
111
|
+
C538.809753,664.660339 521.117065,651.439392 506.774414,634.366577
|
|
112
|
+
C499.551849,625.769104 491.385468,617.913269 484.662933,608.958557
|
|
113
|
+
C473.282990,593.799927 462.640625,578.083557 451.821747,562.508972
|
|
114
|
+
C444.607971,552.124146 437.945862,541.342468 430.446136,531.174072
|
|
115
|
+
C423.560669,521.838501 416.162506,512.840271 408.477264,504.146881
|
|
116
|
+
C400.953156,495.635712 393.162018,487.281494 384.793030,479.617401
|
|
117
|
+
C375.379150,470.996429 365.187744,463.224579 354.619019,454.942871
|
|
118
|
+
M497.627228,445.037598
|
|
119
|
+
C498.375824,445.662292 499.049103,446.687439 499.885590,446.844757
|
|
120
|
+
C504.342682,447.682953 508.826904,448.781860 513.326965,448.910980
|
|
121
|
+
C527.095032,449.306030 536.549988,462.392029 533.267273,474.729950
|
|
122
|
+
C531.298401,482.129639 531.084229,489.860016 534.091614,497.338104
|
|
123
|
+
C537.586365,506.028046 544.179993,512.237671 551.820007,516.598145
|
|
124
|
+
C557.778503,519.998840 565.073608,522.297180 571.881958,522.589539
|
|
125
|
+
C577.668091,522.838074 583.805054,519.997803 589.429138,517.662537
|
|
126
|
+
C596.584778,514.691406 598.607361,511.208374 595.941772,502.937317
|
|
127
|
+
C594.374023,498.072998 592.582581,493.076324 589.818909,488.838898
|
|
128
|
+
C580.064026,473.881866 570.450378,458.837067 557.121399,446.522339
|
|
129
|
+
C548.640076,438.686401 540.207092,431.153961 528.817444,427.981262
|
|
130
|
+
C519.021484,425.252502 509.302124,424.170746 500.070496,430.003632
|
|
131
|
+
C494.183350,433.723358 492.953735,439.530487 497.627228,445.037598
|
|
132
|
+
M505.736450,479.993225
|
|
133
|
+
C507.700195,479.346405 510.039307,479.165222 511.545471,477.950867
|
|
134
|
+
C514.243469,475.775513 516.899231,473.249054 515.543274,468.999939
|
|
135
|
+
C514.294983,465.088135 511.938049,462.182922 507.769135,462.161804
|
|
136
|
+
C503.818481,462.141754 500.468170,463.488892 498.907104,468.098297
|
|
137
|
+
C496.742737,474.488892 500.875183,477.064850 505.736450,479.993225
|
|
138
|
+
z"/>
|
|
139
|
+
</svg>
|