-
-
Notifications
You must be signed in to change notification settings - Fork 220
Add deployment badge for Hostinger #794
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
Minijus-Sa
wants to merge
3,875
commits into
mixcore:master
Choose a base branch
from
Minijus-Sa:patch-1
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
+411,389
−277,240
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…into feature/update-queue-event-log
…t-log Update mix log
…log_separation # Conflicts: # src/modules/mix.portal/Startup.cs
…aration Add Mix Log
Update LICENSE
Update README.md
- Added new analyzers for C# and secrets in .deepsource.toml. - Removed outdated GitLab CI and CircleCI configuration files. - Updated GitHub Actions workflows for improved code analysis, build, and deployment processes. - Enhanced SonarCloud analysis with .NET 9.0 support and coverage reporting. - Streamlined Docker build and push steps, including vulnerability scanning and deployment notifications.
- Deleted unused Gulp configuration and related files. - Removed obsolete package-lock.json and package.json files. - Cleaned up various service and plugin files that are no longer in use. - Eliminated unnecessary CSS and JS files from the portal library. - Streamlined the project structure by removing outdated assets and dependencies.
- Updated launch configurations for Mixcore Web API, Gateway, and Aspire App Host with new paths and settings. - Added new build tasks for Mixcore and Gateway projects, including restore, clean, and publish tasks. - Removed obsolete project references from the solution file and added new projects for platform and core components. - Enhanced task presentation and organization for improved usability in VSCode.
* upd * update default config * fix init default endpoint * fix portal settings * fix mysql repodb * fix admin dashboard * fix queue config * update audit log migration * update queue log migration * update mixdb * upgrade latest .net * revert * mix automation (mixcore#747) * init mix workflow * update logo --------- Co-authored-by: Nhật Hoàng <[email protected]> * Merge master * update heart using master (mixcore#757) * clean up heart * update heart using master --------- Co-authored-by: Nhật Hoàng <[email protected]> * update postgres migration * Init MQTT * update queue settings * upd * init mcp * Init MCP features * upd * upd * cleanup repodb * opt db structure srv * upd * refactor repodbStructuresrv * add mixdb structure docs * refactor MixDb Data Srv * upd mcp * enable sse * update mixdatabase tool * upd mixdb tool * fix tool create db * use LLM to analyze schema prompt * upd mcp tool * update mcp * upd * upd * init sample spa * fix postgres auditlog * fix update mixdb * update mix database agent * Add Retrieval Agent * Add Agents * init tenants * update agents * upd * Update CI/CD workflows and configuration files - Added new analyzers for C# and secrets in .deepsource.toml. - Removed outdated GitLab CI and CircleCI configuration files. - Updated GitHub Actions workflows for improved code analysis, build, and deployment processes. - Enhanced SonarCloud analysis with .NET 9.0 support and coverage reporting. - Streamlined Docker build and push steps, including vulnerability scanning and deployment notifications. * Remove deprecated files and configurations from portal-app - Deleted unused Gulp configuration and related files. - Removed obsolete package-lock.json and package.json files. - Cleaned up various service and plugin files that are no longer in use. - Eliminated unnecessary CSS and JS files from the portal library. - Streamlined the project structure by removing outdated assets and dependencies. * Refactor VSCode configurations and build tasks for Mixcore applications - Updated launch configurations for Mixcore Web API, Gateway, and Aspire App Host with new paths and settings. - Added new build tasks for Mixcore and Gateway projects, including restore, clean, and publish tasks. - Removed obsolete project references from the solution file and added new projects for platform and core components. - Enhanced task presentation and organization for improved usability in VSCode. * Refactor MixDb concept * improve swagger * WIP on features/mcp * fix default settings * rename mixdb concept Refactor database naming conventions to MixDbTable This commit implements a comprehensive renaming of database-related terms from "mix_database" to "mix_db_table" across the codebase. Key changes include: - Updates to entity names, properties, and configurations to reflect the new naming conventions, such as changing `MixDatabase` to `MixDbTable`. - Modifications in service calls, data handling functions, and API routes to ensure consistency with the new terminology. - Adjustments in HTML templates and user interface components to align with the updated naming, including forms and data bindings. - Changes in migration scripts to define new table names and relationships correctly in the database schema. These changes enhance clarity, consistency, and maintainability throughout the application. * Refactor database naming conventions Refactor database naming conventions to MixDbTable This commit implements a comprehensive renaming of database-related terms from "mix_database" to "mix_db_table" across the codebase. Key changes include: - Updates to entity names, properties, and configurations to reflect the new naming conventions, such as changing `MixDatabase` to `MixDbTable`. - Modifications in service calls, data handling functions, and API routes to ensure consistency with the new terminology. - Adjustments in HTML templates and user interface components to align with the updated naming, including forms and data bindings. - Changes in migration scripts to define new table names and relationships correctly in the database schema. These changes enhance clarity, consistency, and maintainability throughout the application. * Refactor database naming conventions and components This commit introduces significant changes to the AngularJS application, focusing on renaming and restructuring database-related entities and components for improved consistency and maintainability. Key updates include: - Renaming `MixDatabaseName` to `MixDbTableName` across various files and components. - Standardizing naming conventions for database identifiers, changing `mixDatabaseId` to `mixDbTableId`. - Updating service names, such as `MixDbService` to `MixDbDataService`, to better reflect their functionality. - Enhancements to controller logic for better error handling and user experience. - Introduction of new components like `mixDbDataValueEditor` and `mixDbDataValuePreview`. - Modifications to UI components and migration files to align with the new naming conventions and maintain data integrity. Overall, these changes aim to enhance code readability, maintainability, and user experience throughout the application. * Refactor database schema and update connection settings Updated `appsettings.json` to switch from PostgreSQL to SQLite, changing the `SettingsConnection` and `DatabaseProvider`. The migration files were modified to reflect a significant refactor of the database schema, including renaming tables and columns for consistency, adding new properties, and establishing foreign key relationships. The `MySqlMixCmsContextModelSnapshot.cs` was also updated to align with the new model structure. Additionally, the `DatabaseService` class was adjusted to explicitly set the `DatabaseProvider` to `SQLSERVER`. The README file was updated with new migration instructions. --------- Co-authored-by: DXCore Technology <[email protected]> * upd * update default config * fix admin dashboard * fix queue config * update audit log migration * update mixdb * upgrade latest .net * revert * mix automation (mixcore#747) * init mix workflow * update logo --------- Co-authored-by: Nhật Hoàng <[email protected]> * Merge master * update heart using master (mixcore#757) * clean up heart * update heart using master --------- Co-authored-by: Nhật Hoàng <[email protected]> * update postgres migration * Init MQTT * update queue settings * upd * init mcp * Init MCP features * upd * upd * cleanup repodb * opt db structure srv * upd * refactor repodbStructuresrv * add mixdb structure docs * refactor MixDb Data Srv * upd mcp * enable sse * update mixdatabase tool * upd mixdb tool * fix tool create db * use LLM to analyze schema prompt * upd mcp tool * update mcp * upd * upd * init sample spa * fix postgres auditlog * fix update mixdb * update mix database agent * Add Retrieval Agent * Add Agents * init tenants * update agents * upd * Refactor MixDb concept * improve swagger * WIP on features/mcp * fix default settings * rename mixdb concept Refactor database naming conventions to MixDbTable This commit implements a comprehensive renaming of database-related terms from "mix_database" to "mix_db_table" across the codebase. Key changes include: - Updates to entity names, properties, and configurations to reflect the new naming conventions, such as changing `MixDatabase` to `MixDbTable`. - Modifications in service calls, data handling functions, and API routes to ensure consistency with the new terminology. - Adjustments in HTML templates and user interface components to align with the updated naming, including forms and data bindings. - Changes in migration scripts to define new table names and relationships correctly in the database schema. These changes enhance clarity, consistency, and maintainability throughout the application. * Refactor database naming conventions Refactor database naming conventions to MixDbTable This commit implements a comprehensive renaming of database-related terms from "mix_database" to "mix_db_table" across the codebase. Key changes include: - Updates to entity names, properties, and configurations to reflect the new naming conventions, such as changing `MixDatabase` to `MixDbTable`. - Modifications in service calls, data handling functions, and API routes to ensure consistency with the new terminology. - Adjustments in HTML templates and user interface components to align with the updated naming, including forms and data bindings. - Changes in migration scripts to define new table names and relationships correctly in the database schema. These changes enhance clarity, consistency, and maintainability throughout the application. * Refactor database naming conventions and components This commit introduces significant changes to the AngularJS application, focusing on renaming and restructuring database-related entities and components for improved consistency and maintainability. Key updates include: - Renaming `MixDatabaseName` to `MixDbTableName` across various files and components. - Standardizing naming conventions for database identifiers, changing `mixDatabaseId` to `mixDbTableId`. - Updating service names, such as `MixDbService` to `MixDbDataService`, to better reflect their functionality. - Enhancements to controller logic for better error handling and user experience. - Introduction of new components like `mixDbDataValueEditor` and `mixDbDataValuePreview`. - Modifications to UI components and migration files to align with the new naming conventions and maintain data integrity. Overall, these changes aim to enhance code readability, maintainability, and user experience throughout the application. * Refactor database schema and update connection settings Updated `appsettings.json` to switch from PostgreSQL to SQLite, changing the `SettingsConnection` and `DatabaseProvider`. The migration files were modified to reflect a significant refactor of the database schema, including renaming tables and columns for consistency, adding new properties, and establishing foreign key relationships. The `MySqlMixCmsContextModelSnapshot.cs` was also updated to align with the new model structure. Additionally, the `DatabaseService` class was adjusted to explicitly set the `DatabaseProvider` to `SQLSERVER`. The README file was updated with new migration instructions. --------- Co-authored-by: DXCore Technology <[email protected]> * replace mixheart from nuget * style: format code with dotnet-format This commit fixes the style issues introduced in 3262bae according to the output from dotnet-format. Details: mixcore#773 --------- Co-authored-by: Nhật Hoàng <[email protected]> Co-authored-by: DXCore Technology <[email protected]> Co-authored-by: deepsource-autofix[bot] <62050782+deepsource-autofix[bot]@users.noreply.github.com>
Updated method signatures and prompt structures across multiple files to improve readability and comprehensiveness. Key changes include clearer requirements in `DatabaseAnalysisPrompt.cs`, refined JSON responses in `DatabaseAgent.cs`, and enhanced health data analysis instructions in `IoTHealthDataPrompt.cs`. Overall, these improvements aim to make the prompts more user-friendly and effective.
Modified appsettings.json to change the SettingsConnection to a path in the wwwroot directory. Deleted the settings.sqlite file. Updated DatabaseService to use AppSettings for DatabaseProvider and removed hardcoded SQL Server connection string for a more dynamic configuration approach.
* Enhance AngularJS app with new controllers and services - Added `Step5Controller` for data submission and initialization. - Modified `Step3Controller` to handle theme uploads with `extractTheme`. - Updated `Step4Controller` to include event parameter in submissions. - Refactored `Step3Services` to replace `_submit` with `_extractTheme`. - Introduced new components: `initFbConfigurations`, `initGgConfigurations`, and `initValueEditor`. - Updated HTML views to align with new functionality and components. - Backend changes in `InitCmsService` and `DatabaseService` to improve settings saving and database migration logic. * Refactor database naming conventions and structure This commit introduces significant changes to the codebase, focusing on renaming and restructuring database-related entities and services. The term "MixDatabase" has been replaced with "MixDbTable" across multiple files, including ViewModels, controllers, and services, to standardize naming conventions and improve clarity. New controllers and services have been added in the JavaScript files to enhance theme management and data extraction processes. Additionally, components related to database configurations have been modified or removed, indicating a restructuring of how these configurations are managed. The changes also include the introduction of new components for handling configurations related to social media integrations and system settings, improving the application's capability to manage various integrations. Overall, these updates aim to enhance the maintainability, organization, and functionality of the application, aligning it with modern development practices and improving user experience. * Refactor database entities and migrations for clarity Renamed several entities and properties for consistency, including `MixDbColumn` to `MixDatabaseColumn` and updated foreign key relationships accordingly. Adjusted migration files to reflect new naming conventions, such as changing `mix_database_id` to `mix_database_context_id`. Updated navigation properties across multiple entities to ensure proper relationships with the `Tenant` entity. Removed outdated migration files and synchronized the model snapshot with the current database schema. Additionally, updated the project file to include new package references for Entity Framework Core, indicating a potential upgrade to version 9.0. Adjusted constructor parameters in `MixAutomationSubscriber` for improved dependency injection. * style: format code with dotnet-format This commit fixes the style issues introduced in efc80d5 according to the output from dotnet-format. Details: mixcore#779 --------- Co-authored-by: deepsource-autofix[bot] <62050782+deepsource-autofix[bot]@users.noreply.github.com>
This commit refactors the database migration files for both MySQL and PostgreSQL by renaming columns and updating entity references. In the MySQL migration, the column `mix_database_name` in the `mix_theme` table is renamed to `mix_db_table_name`, and `mix_database_id` in the `mix_db_column` table is renamed to `mix_db_table_id`. In the PostgreSQL migration, references to `MixDbTable` and `MixDbColumn` are updated to `MixDatabase` and `MixDatabaseColumn`, respectively. The column `mix_database_id` is renamed to `mix_database_context_id`, and various properties are adjusted accordingly. Additionally, entity relationships are updated to ensure navigation properties correctly reference the new entity names. Migration attributes are also updated to reflect the new migration version numbers, enhancing the clarity and consistency of the database schema.
* Refactor database migrations for MySQL and PostgreSQL This commit refactors the database migration files for both MySQL and PostgreSQL by renaming columns and updating entity references. In the MySQL migration, the column `mix_database_name` in the `mix_theme` table is renamed to `mix_db_table_name`, and `mix_database_id` in the `mix_db_column` table is renamed to `mix_db_table_id`. In the PostgreSQL migration, references to `MixDbTable` and `MixDbColumn` are updated to `MixDatabase` and `MixDatabaseColumn`, respectively. The column `mix_database_id` is renamed to `mix_database_context_id`, and various properties are adjusted accordingly. Additionally, entity relationships are updated to ensure navigation properties correctly reference the new entity names. Migration attributes are also updated to reflect the new migration version numbers, enhancing the clarity and consistency of the database schema. * Update database configurations and API routes - Added new "Tables" entries in `portal-menus.json` for table management. - Changed API route in `MixDbDataController.cs` from `mix-db-data` to `mix-db`. - Updated `MixApplicationConfiguration.cs` to replace `MixDbId` with `MixDbTableId`. - Modified `MixMediaConfiguration.cs` to use `int` as the primary key type. - Aligned model in `MixApplication.cs` with the new database configuration. - Changed `MixMedia` base class from `TenantEntityBase<Guid>` to `TenantEntityBase<int>`. - Removed transaction completion line in `RepodbDataService.cs`, affecting update handling. - Updated `MixMediaViewModel.cs` to reflect the primary key type change and removed `InitDefaultValues` method. * upd * Refactor database relationship properties and methods Renamed properties from `SourceDatabaseName` and `DestinateDatabaseName` to `SourceTableName` and `DestinateTableName` across multiple files for clarity. Introduced new properties `SourceColumnName`, `DestinateColumnName`, and `PropertyName` in the `MixDbTableRelationship` class. Updated service and controller files to align with the new property names. Added methods for creating table relationships with improved error handling. Enhanced documentation for better code readability and maintainability. * Refactor database entity properties and relationships Renamed columns in the `Mix.Database.Migrations.Cms.MySql` namespace to improve clarity, including changing `source_database_name` to `source_table_name` and `destinate_database_name` to `destinate_table_name`. Added new properties such as `destinate_column_name`, `property_name`, and `source_column_name` to enhance database structure. Adjusted data types, notably changing the `id` type in the `mix_media` table from `Guid` to `int`. Updated the model snapshot to ensure synchronization with the database schema and added character set specifications for new string properties. * Update EF Core migrations and model snapshot Renamed columns in `mix_db_table_relationship` and `mix_application` tables. Changed the `id` column type in `mix_media` from `Guid` to `int`. Added new columns (`destinate_column_name`, `destinate_table_name`, and `property_name`) to `mix_db_table_relationship`. Updated model snapshot to reflect these schema changes. * Migrate from SQLite to SQL Server in EF Core This commit includes the migration of the database context from SQLite to SQL Server. A new migration class `UpdateTableRelationship` has been created to manage schema changes, including renaming columns and dropping obsolete tables. Entity configurations have been updated to reflect SQL Server data types and constraints, with new tables created and existing tables modified to establish new relationships. Navigation properties have been adjusted to accurately represent the updated data model. Additionally, the `SqliteMixCmsContextModelSnapshot.cs` file has been completely removed, indicating it is no longer needed in the project. * Refactor database relationship handling and naming - Made `DestinateColumnName` nullable in `MixDbTableRelationship`. - Updated migration files to rename and add columns in `mix_db_table_relationship`. - Changed `DatabaseService` to return a hardcoded PostgreSQL connection string. - Replaced `DestinateDatabaseName` with `DestinateTableName` in `MixDbRelationshipService`. - Updated `LoadOneToMany` and `LoadManyToMany` methods to use new column names. - Enhanced `MixDbTableRelationshipViewModel` with new properties. - Modified `CreateRelationship` and `CreateMixDbRelationshipFromPrompt` methods to accept additional parameters. - Ensured consistency in database name references across service classes. * Enhance AngularJS app with new components and services This commit introduces significant refactoring and enhancements across the AngularJS application. Key updates include: - Addition of new components such as `googleAnalytic`, `highFrequencyMessages`, and `hubMessages` to improve analytics and messaging capabilities. - Restructuring of existing components like `jumbotrons` and `mediaFileUpload` for better efficiency and user experience. - Updates to services, including `MixDbDataService` and `RestMixDbDataPortalService`, to improve data handling and modularity. - Introduction of new directives and components like `pills`, `tags`, and `trumbowyg` for enhanced user interactions. - Modifications to controllers to streamline data processing and improve architecture. - Enhancements in error handling across services for better feedback and robustness. - Updates to HTML views to include new features for user interaction, such as checkboxes for selecting multiple items. - Changes in namespaces for better organization and maintainability. Overall, these changes aim to create a more organized, maintainable, and scalable application. * Enhance MCP client configuration and logging - Added `McpOptions` class for MCP client configuration. - Updated `DatabaseAgent` to use `IConfiguration` for endpoint retrieval. - Improved logging in `LLMChatHostedService` for better traceability. - Extended `IMqttMessageService` with `ConnectAsync` and `IsConnected`. - Updated `MqttMessageService` to align with new interface methods. - Overall improvements to configuration management, error handling, and maintainability. * Update appsettings.json with LlmServiceOptions * Refactor endpoint handling and update caching strategies - Simplified endpoint initialization in InitController.cs by removing null checks. - Changed cache profile names to "DefaultBaseUrl" in MvcBaseController.cs, MixApiTenantControllerBase.cs, and MixQueryApiControllerBase.cs. - Introduced a new BaseUrls class for consistent endpoint management. - Updated MixModuleNames to standardize naming conventions. - Modified migration files to replace DefaultDomain with DefaultBaseUrl in GlobalSettings. - Enhanced MixEndpointService to initialize and retrieve endpoints using DefaultBaseUrl. - Improved logging in MixAuthorizeAttribute for better authorization insights. - Updated AuditlogMiddleware for better request body handling. - Added MixPermissionService to the dependency injection container. - Reformatted appsettings.json for clarity and readability. - Adjusted DatabaseAgent to use mixEndpointService.DefaultBaseUrl for MCP endpoint configuration. - Updated MixCorePrompts and MCPResources to reflect changes in terminology and requirements. * Update MCP settings and improve configuration handling - Set `BaseUrl` for `McpSettings` in `InitController.cs` using the current request's scheme and host. - Added `McpSettings` section in `appsettings.json` with `BaseUrl` initialized to `null`. - Changed `parent_id` data type from `Integer` to `Guid` in `system-tables.json`. - Updated migration files to set `UniversalPortal` URL to `null`, allowing for dynamic configuration. - Introduced `McpSettings` class in `AppSettingsModel.cs` for structured configuration. - Modified `DatabaseAgent.cs` to use `BaseUrl` from `appSettingsService` instead of hardcoded values. * Refactor settings handling and update message queue provider - Moved `_appSettingsService.SaveSettings()` call in `InitController.cs` to ensure it executes after updating `AesKey`. - Changed `Provider` value from `"MQTT"` to `"MIX"` in migration files for MySQL, Postgres, SQL Server, and SQLite for `MessageQueueSettings`. - Initialized `McpSettings` property in `AppSettingsModel.cs` to prevent null reference issues.
Co-authored-by: Smilefounder <[email protected]>
…referral code Co-authored-by: Smilefounder <[email protected]>
…evels Co-authored-by: Smilefounder <[email protected]>
Co-authored-by: Smilefounder <[email protected]>
…er and use standard app.yaml Co-authored-by: Smilefounder <[email protected]>
…-4a4f-9013-b64523407cc6 Add DigitalOcean Deployment with Multiple Cost-Optimized Configurations and Referral Integration
…re CMS (mixcore#790) * Initial plan * Phase 1: Implement foundational HIPAA/GDPR compliance entities and services Co-authored-by: Smilefounder <[email protected]> * Phase 2: Implement DSR services, retention management, field encryption, and compliance APIs Co-authored-by: Smilefounder <[email protected]> * Final Phase: Add break-glass access, DPIA workflow, and comprehensive implementation summary Co-authored-by: Smilefounder <[email protected]> * Complete missing TODO items: Add BreakGlassService, DpiaService implementations and missing entity configurations Co-authored-by: Smilefounder <[email protected]> * Add Decimal type and refactor database constants - Introduced a new `Decimal` database constant with mappings for various databases. - Updated `SqliteDatabaseConstants` to change `Date` type to `date`, `Guid` to `text`, and `Decimal` to `decimal(18,2)`. - Refactored `AuditLogConfiguration` for table name changes and added compliance indexes. - Enhanced `BreakGlassAccess` and `BreakGlassAudit` classes to utilize nullable properties. - Initialized string properties in `ConsentEvent`, `DataFieldMetadata`, and `DataProtectionImpactAssessment` with `string.Empty`. - Improved service classes to handle nullable properties and refined database operations. - Updated interfaces to return nullable types where applicable. - Added new properties and methods for better functionality and maintainability. - Updated project references in `mix.library.csproj` to include new compliance entities. - Refactored `EncryptedStringConverter` for basic encryption and decryption. - Enhanced user data export handling in `DsrService` for better serialization. - Added comments and documentation for clarity and maintainability. * Remove template files and add GDPR migration support Updated `mixcore.csproj` to exclude all files in the `wwwroot\mixcontent\templates\**` directory from compilation and resources. Added new migration files for MySQL, PostgreSQL, SQL Server, and SQLite to implement GDPR-related properties in the `AuditLog` entity, including `CorrelationId`, `PhiAccessFlag`, `SessionId`, `TenantId`, and `UserAgent`. Updated `MySqlAuditLogDbContextModelSnapshot.cs` to reflect these changes. Additionally, revised `Readme.md` to provide clearer instructions for adding migrations and updating the database. --------- Co-authored-by: copilot-swe-agent[bot] <[email protected]> Co-authored-by: Smilefounder <[email protected]> Co-authored-by: Nhật Hoàng <[email protected]>
473022a to
133a886
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I've added Hostinger 1-click installation badge for fast and easy intall. You can change the URL to contain the referral code to earn commission on every installation.