From 4f9e9329a8fe5042f4e2e67bbc30ab80a0fd5d9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nh=E1=BA=ADt=20Ho=C3=A0ng?= Date: Sun, 18 Aug 2024 16:46:09 +0700 Subject: [PATCH 1/3] update latest code --- src/Mixcore.sln | 91 +- src/applications/mixcore.gateway/Program.cs | 5 +- .../mixcore.gateway/mixcore.gateway.csproj | 12 +- .../mixcore.gateway/p4ps.gateway.csproj | 34 + .../mixcore.gateway/p4ps.gateway.http | 6 + .../mixcore.host.aspire.AppHost/Program.cs | 8 + .../mixcore.host.aspire.AppHost.csproj | 23 + .../p4ps.host.aspire.AppHost.csproj | 28 + .../Extensions.cs | 2 +- ...mixcore.host.aspire.ServiceDefaults.csproj | 19 +- .../p4ps.host.aspire.ServiceDefaults.csproj | 30 + .../mixcore/Controllers/SecurityController.cs | 7 +- src/applications/mixcore/Dockerfile | 6 +- .../mixcore/Domain/StartupServices.cs | 15 +- .../Domain/ViewModels/PostContentViewModel.cs | 2 +- src/applications/mixcore/Program.cs | 48 +- .../mixcore/Properties/launchSettings.json | 28 +- src/applications/mixcore/mixcore.csproj | 39 +- src/applications/mixcore/p4ps.csproj | 97 + .../wwwroot/default-mixcontent/default.zip | Bin 12102842 -> 12103110 bytes .../shared/json/system-databases.json | 14 +- src/applications/mixcore/wwwroot/favicon.ico | Bin 5430 -> 4286 bytes src/applications/mixcore/wwwroot/jquery.js | 2 + .../wwwroot/mix-app/css/app-client.min.css | 2 +- .../mix-app/css/app-vendor-scss.min.css | 19 +- .../wwwroot/mix-app/css/app-vendor.min.css | 4 +- .../wwwroot/mix-app/css/portal.min.css | 4 +- .../wwwroot/mix-app/css/shared.min.css | 2 +- .../wwwroot/mix-app/js/app-client.min.js | 116 +- .../wwwroot/mix-app/js/app-init.min.js | 324 +- .../mix-app/js/app-portal-required.min.js | 2 +- .../wwwroot/mix-app/js/app-portal.min.js | 5059 +++++++++-------- .../wwwroot/mix-app/js/app-security.min.js | 186 +- .../wwwroot/mix-app/js/app-shared.min.js | 856 +-- .../wwwroot/mix-app/js/framework.min.js | 2 +- .../mixcore/wwwroot/mix-app/js/shared.min.js | 2 +- .../components/filter-list/filter-list.html | 2 +- .../components/header-nav/headerNav.html | 8 +- .../mix-database-data-values/view.html | 2 +- .../components/mix-database-form/view.html | 2 +- .../mix-database-nested-data-values/view.html | 2 +- .../mix-database-one-to-many/view.html | 1 + .../components/modal-nav-datas/view.html | 2 +- .../app-portal/pages/dashboard/dashboard.html | 4 +- .../app-portal/pages/localize/details.html | 2 +- .../views/app-portal/pages/localize/list.html | 2 +- .../pages/mix-database-data/list.html | 2 +- .../components/mix-databases/view.html | 2 +- .../pages/mixdb-context/details.html | 2 +- .../pages/oauth-client/details.html | 1 + .../app-portal/pages/oauth-client/list.html | 1 + .../theme-export-mix-databases/view.html | 2 +- .../views/app-portal/pages/theme/export.html | 2 +- .../components/mix-column-editor/view.html | 2 +- .../Controllers/PostContentApiController.cs | 5 +- .../Controllers/SharedApiController.cs | 4 +- .../Domain/Dtos/CryptoMessageDto.cs | 14 +- .../mix.common/Domain/Enums/MixEncoding.cs | 12 + src/modules/mix.grpc/mix.grpc.csproj | 2 +- src/modules/mix.log/Startup.cs | 1 - .../mix.messenger/mix.messenger.csproj | 7 - .../MixDatabaseContextController.cs | 6 + .../Controllers/MixDatabaseController.cs | 21 +- .../mix.portal/Controllers/MixDbController.cs | 16 +- .../ViewModels/MixPostContentViewModel.cs | 2 +- src/modules/mix.portal/Program.cs | 7 +- src/modules/mix.portal/Startup.cs | 1 - src/modules/mix.portal/mix.portal.csproj | 4 +- .../Domain/Jobs/SendMessageQueueJob.cs | 2 +- .../Domain/Services/InitCmsService.cs | 3 +- src/platform/core/mix-heart | 2 +- .../Models/RegisterExternalBindingModel.cs | 4 +- .../Models/EmailMessageModel.cs | 1 + .../ServiceCollectionExtensions.cs | 1 + .../mix.communicator/Services/EmailService.cs | 2 +- .../Services/FirebaseService.cs | 69 +- .../Services/FirestoreService.cs | 56 + .../mix.communicator/mix.communicator.csproj | 7 +- .../mix.constant/Constants/MixFolders.cs | 2 +- .../mix.database/Base/BaseDbContext.cs | 3 +- .../Entities/Account/Permission.cs | 17 + .../Account/SysMixDatabaseAssociation.cs | 15 + .../Entities/Account/_MixCmsAccountContext.cs | 1 + .../AuditLogConfiguration.cs | 5 +- .../Entities/AuditLog/_AuditLogDbContext.cs | 3 +- .../AuditLog/_MySqlAuditLogDbContext.cs | 13 + .../AuditLog/_PostgresAuditLogDbContext.cs | 13 + .../AuditLog/_SqlServerAuditLogDbContext.cs | 13 + .../AuditLog/_SqliteAuditLogDbContext.cs | 13 + .../QueueLogConfiguration.cs | 70 + .../Entities/QueueLog/QueueLog.cs | 25 + .../QueueLog/_MySqlQueueLogDbContext.cs | 13 + .../QueueLog/_PostgresQueueLogDbContext.cs | 13 + .../Entities/QueueLog/_QueueLogDbContext.cs | 25 + .../QueueLog/_SqlServerQueueLogDbContext.cs | 13 + .../QueueLog/_SqliteQueueLogDbContext.cs | 13 + .../MySql/20240310051036_InitAuditLog.cs | 63 + .../Postgresql/20240310045005_InitAuditLog.cs | 49 + .../SqlServer/20240310051318_InitAuditLog.cs | 49 + .../Sqlite/20240310050457_InitAuditLog.cs | 49 + .../MySql/20240310062243_InitQueueLog.cs | 52 + .../Postgres/20240310061825_InitQueueLog.cs | 52 + .../SqlServer/20240310062419_InitQueueLog.cs | 52 + .../Sqlite/20240310062056_InitQueueLog.cs | 52 + .../mix.database/Services/DatabaseService.cs | 27 +- src/platform/mix.database/mix.database.csproj | 10 +- .../mix.identity/Dtos/GrantPermissionsDto.cs | 20 + .../mix.identity/Models/RoleBOModel.cs | 19 + .../Services/OAuthTokenService.cs | 11 +- src/platform/mix.identity/mix.identity.csproj | 19 +- .../Base/MixQueryEntityApiControllerBase.cs | 1 + .../mix.library/Dtos/ExportThemeDto.cs | 1 + .../Filters/HttpResponseExceptionFilter.cs | 2 +- .../mix.library/Helpers/MixCmsHelper.cs | 62 +- .../mix.library/Interfaces/IMixEdmService.cs | 4 +- .../Interfaces/IMixIdentityService.cs | 16 +- .../Middlewares/AuditlogMiddleware.cs | 54 +- .../Services/MixConfigurationService.cs | 17 +- .../mix.library/Services/MixEdmService.cs | 8 +- .../Services/MixIdentityService.cs | 140 +- .../Services/MixThemeExportService.cs | 27 +- .../Services/MixThemeImportService.cs | 192 +- .../mix.library/Services/TenantUserManager.cs | 2 +- .../AuthServiceCollectionExtensions.cs | 19 +- src/platform/mix.library/Startup/MixTenant.cs | 7 +- src/platform/mix.library/Startup/Swagger.cs | 8 +- .../Startup/_ServiceCollectionExtensions.cs | 15 +- .../ViewModels/MixDatabaseContextViewModel.cs | 27 +- src/platform/mix.library/mix.library.csproj | 16 +- .../mix.log/ServiceCollectionExtension.cs | 26 +- .../mix.log/Subscribers/MixLogSubscriber.cs | 95 +- .../Services/RuntimeDbContextService.cs | 6 +- src/platform/mix.mixdb/mix.mixdb.csproj | 10 +- src/platform/mix.quartz/mix.quartz.csproj | 12 +- .../Engines/Mix/MixQueueSubscriber.cs | 2 +- .../Engines/RabitMq/RabitMQSubscriber.cs | 24 +- .../mix.queue/Engines/SubscriberBase.cs | 6 +- .../mix.queue/Services/MemoryQueueService.cs | 2 +- src/platform/mix.queue/mix.queue.csproj | 19 +- .../mix.repodb/Helpers/MixDbHelper.cs | 75 +- .../Repositories/MixRepoDbRepository.cs | 52 +- .../OptimizedPostgresSqlStatementBuilder.cs | 401 ++ .../mix.repodb/Services/MixDbDataService.cs | 13 +- .../mix.repodb/Services/MixDbService.cs | 43 +- .../MixDatabaseContextReadViewModel.cs | 25 +- .../Services/MixMemoryCacheService.cs | 2 +- .../Services/AppSettingServiceBase.cs | 40 +- .../mix.shared/Services/AuthConfigService.cs | 2 +- .../mix.shared/Services/HttpService.cs | 17 + src/platform/mix.shared/mix.shared.csproj | 2 +- .../Attributes/MixDbHubAuthorizeAttribute.cs | 155 + .../mix.signalr.hub/Hubs/BaseSignalrHub.cs | 67 +- .../mix.signalr.hub/Hubs/EditFileHub.cs | 6 +- .../mix.signalr.hub/Hubs/HighFrequencyHub.cs | 4 +- .../mix.signalr.hub/Hubs/LogStreamHub.cs | 4 +- .../mix.signalr.hub/Hubs/MixDbCommandHub.cs | 41 - src/platform/mix.signalr.hub/Hubs/MixDbHub.cs | 221 + .../mix.signalr.hub/Hubs/MixThemeHub.cs | 4 +- .../mix.signalr.hub/Hubs/PortalHub.cs | 4 +- .../mix.signalr.hub/Hubs/VideoCallHub.cs | 4 +- .../mix.signalr/Enums/MessageAction.cs | 2 +- .../ServiceCollectionExtensions.cs | 22 +- src/platform/mix.signalr/mix.signalr.csproj | 8 +- .../Engines/Base/UploaderBase.cs | 9 +- .../mix.storage.lib/Helpers/ImageHelper.cs | 4 +- .../StorageBackgroundTaskSubscriber.cs | 7 +- .../mix.storage.lib/mix.storage.lib.csproj | 8 +- .../mix.services.graphql.csproj | 6 +- .../Services/MixUserPermissionService.cs | 7 +- .../Controllers/MixPermissionController.cs | 3 +- .../Controllers/MixAccountController.cs | 12 +- .../mix-auth-service/mix.auth.api/Program.cs | 28 +- .../mix.auth.api/mix.auth.api.csproj | 7 +- .../mix.mq.server/Program.cs | 20 +- .../mix.mq.server/mix.mq.server.csproj | 12 +- src/test/locustfile.py | 16 +- src/test/mix.xunittest/mix.xunittest.csproj | 8 +- .../Services/Order/PosOrderServiceTests.cs | 6 + .../p4ps.pos.api.tests.csproj | 33 + 179 files changed, 6537 insertions(+), 3861 deletions(-) create mode 100644 src/applications/mixcore.gateway/p4ps.gateway.csproj create mode 100644 src/applications/mixcore.gateway/p4ps.gateway.http create mode 100644 src/applications/mixcore.host.aspire.AppHost/Program.cs create mode 100644 src/applications/mixcore.host.aspire.AppHost/mixcore.host.aspire.AppHost.csproj create mode 100644 src/applications/mixcore.host.aspire/mixcore.host.aspire.AppHost/p4ps.host.aspire.AppHost.csproj create mode 100644 src/applications/mixcore.host.aspire/mixcore.host.aspire.ServiceDefaults/p4ps.host.aspire.ServiceDefaults.csproj create mode 100644 src/applications/mixcore/p4ps.csproj create mode 100644 src/applications/mixcore/wwwroot/mix-app/views/app-portal/components/mix-database-one-to-many/view.html create mode 100644 src/applications/mixcore/wwwroot/mix-app/views/app-portal/pages/oauth-client/details.html create mode 100644 src/applications/mixcore/wwwroot/mix-app/views/app-portal/pages/oauth-client/list.html create mode 100644 src/modules/mix.common/Domain/Enums/MixEncoding.cs create mode 100644 src/platform/mix.communicator/Services/FirestoreService.cs create mode 100644 src/platform/mix.database/Entities/Account/Permission.cs create mode 100644 src/platform/mix.database/Entities/Account/SysMixDatabaseAssociation.cs create mode 100644 src/platform/mix.database/Entities/AuditLog/_MySqlAuditLogDbContext.cs create mode 100644 src/platform/mix.database/Entities/AuditLog/_PostgresAuditLogDbContext.cs create mode 100644 src/platform/mix.database/Entities/AuditLog/_SqlServerAuditLogDbContext.cs create mode 100644 src/platform/mix.database/Entities/AuditLog/_SqliteAuditLogDbContext.cs create mode 100644 src/platform/mix.database/Entities/QueueLog/EntityConfigurations/QueueLogConfiguration.cs create mode 100644 src/platform/mix.database/Entities/QueueLog/QueueLog.cs create mode 100644 src/platform/mix.database/Entities/QueueLog/_MySqlQueueLogDbContext.cs create mode 100644 src/platform/mix.database/Entities/QueueLog/_PostgresQueueLogDbContext.cs create mode 100644 src/platform/mix.database/Entities/QueueLog/_QueueLogDbContext.cs create mode 100644 src/platform/mix.database/Entities/QueueLog/_SqlServerQueueLogDbContext.cs create mode 100644 src/platform/mix.database/Entities/QueueLog/_SqliteQueueLogDbContext.cs create mode 100644 src/platform/mix.database/Migrations/AuditLogDb/MySql/20240310051036_InitAuditLog.cs create mode 100644 src/platform/mix.database/Migrations/AuditLogDb/Postgresql/20240310045005_InitAuditLog.cs create mode 100644 src/platform/mix.database/Migrations/AuditLogDb/SqlServer/20240310051318_InitAuditLog.cs create mode 100644 src/platform/mix.database/Migrations/AuditLogDb/Sqlite/20240310050457_InitAuditLog.cs create mode 100644 src/platform/mix.database/Migrations/QueueLog/MySql/20240310062243_InitQueueLog.cs create mode 100644 src/platform/mix.database/Migrations/QueueLog/Postgres/20240310061825_InitQueueLog.cs create mode 100644 src/platform/mix.database/Migrations/QueueLog/SqlServer/20240310062419_InitQueueLog.cs create mode 100644 src/platform/mix.database/Migrations/QueueLog/Sqlite/20240310062056_InitQueueLog.cs create mode 100644 src/platform/mix.identity/Dtos/GrantPermissionsDto.cs create mode 100644 src/platform/mix.identity/Models/RoleBOModel.cs create mode 100644 src/platform/mix.repodb/Repositories/OptimizedPostgresSqlStatementBuilder.cs create mode 100644 src/platform/mix.signalr.hub/Attributes/MixDbHubAuthorizeAttribute.cs delete mode 100644 src/platform/mix.signalr.hub/Hubs/MixDbCommandHub.cs create mode 100644 src/platform/mix.signalr.hub/Hubs/MixDbHub.cs create mode 100644 src/test/p4ps.pos.api.tests/Services/Order/PosOrderServiceTests.cs create mode 100644 src/test/p4ps.pos.api.tests/p4ps.pos.api.tests.csproj diff --git a/src/Mixcore.sln b/src/Mixcore.sln index 80b39793d..2ab0101d1 100644 --- a/src/Mixcore.sln +++ b/src/Mixcore.sln @@ -1,4 +1,4 @@ - + Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.0.31912.275 @@ -37,7 +37,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "mix.grpc", "modules\mix.grp EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "mix.queue", "platform\mix.queue\mix.queue.csproj", "{2E843175-B948-4D90-A11B-415EE67D9E1A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "mix.heart", "platform\core\mix-heart\src\Mix.Heart\mix.heart.csproj", "{D4938E22-22C3-4364-A710-557B63954B5E}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "mix.heart", "platform\core\mix-heart\src\mix.heart\mix.heart.csproj", "{D4938E22-22C3-4364-A710-557B63954B5E}" EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "mix.tenancy", "modules\mix.tenancy\mix.tenancy.csproj", "{2D254550-CE54-43A2-8AE9-FAA72F2C0FD6}" EndProject @@ -107,23 +107,28 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "mix.log", "modules\mix.log\ EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "mix.auth", "platform\mix.auth\mix.auth.csproj", "{67C7637A-1E86-49C0-8BBB-F91260F9058F}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "mixcore", "applications\mixcore\mixcore.csproj", "{BEFA0F34-2594-4E77-88A9-4DF2B535343A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "mix.portal", "modules\mix.portal\mix.portal.csproj", "{F5D4C70F-DD2E-4EC9-A191-56A717B1B5EE}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "mixcore.host.aspire.AppHost", "applications\mixcore.host.aspire\mixcore.host.aspire.AppHost\mixcore.host.aspire.AppHost.csproj", "{803BBEFE-A5AF-4C43-87FC-DA9132F18498}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "mix-message-queue", "mix-message-queue", "{C93898B7-2001-4C29-9BBE-33A2E61C350A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "mixcore.host.aspire.ServiceDefaults", "applications\mixcore.host.aspire\mixcore.host.aspire.ServiceDefaults\mixcore.host.aspire.ServiceDefaults.csproj", "{3BADD396-E830-468B-B2D8-A52FD5E6C6BD}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "mix-auth-service", "mix-auth-service", "{7E1C5D8B-58B4-40B1-8BA7-F8F80B76F276}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "mixcore.gateway", "applications\mixcore.gateway\mixcore.gateway.csproj", "{5FA252B6-6FDA-451E-BE5E-F6D82EDE9AB1}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "mixcore", "applications\mixcore\mixcore.csproj", "{015CAD77-646A-4AD4-A049-11E373BAFE80}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "mix.portal", "modules\mix.portal\mix.portal.csproj", "{F5D4C70F-DD2E-4EC9-A191-56A717B1B5EE}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "mixcore.gateway", "applications\mixcore.gateway\mixcore.gateway.csproj", "{93B46374-306E-4A4D-AD68-89CD1CA3FA33}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "mix-message-queue", "mix-message-queue", "{C93898B7-2001-4C29-9BBE-33A2E61C350A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "mixcore.host.aspire.AppHost", "applications\mixcore.host.aspire.AppHost\mixcore.host.aspire.AppHost.csproj", "{77215C0B-A8EF-4490-9B49-A3C631E0C4E5}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "mixcore.host.aspire.ServiceDefaults", "applications\mixcore.host.aspire.ServiceDefaults\mixcore.host.aspire.ServiceDefaults.csproj", "{A094BEBE-9607-4AE9-A9DB-9BF7BF704F2F}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "mix-auth-service", "mix-auth-service", "{EC933357-1D95-4CDD-B290-7A5984FC1AA2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "mix.auth.api", "services\core\mix-auth-service\mix.auth.api\mix.auth.api.csproj", "{4B4B73DD-9014-4609-89A0-3297289157A6}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "mix.mq.server", "services\mix-message-queue\mix.mq.server\mix.mq.server.csproj", "{7C5101F3-E3E6-42DB-8585-D08C2BE5E30C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "mix.mq.server", "services\core\mix-message-queue\mix.mq.server\mix.mq.server.csproj", "{737720EE-DF6F-4457-84D6-45E0E2F209E6}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "mix.auth.api", "services\mix-auth-service\mix.auth.api\mix.auth.api.csproj", "{9C04921A-38D5-4EC9-8FF5-0E0D74681049}" +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "solution items", "solution items", "{3D065AA9-4DAA-4B82-8C7F-3372B5EFA5A5}" + ProjectSection(SolutionItems) = preProject + Readme.md = Readme.md + EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -259,34 +264,34 @@ Global {67C7637A-1E86-49C0-8BBB-F91260F9058F}.Debug|Any CPU.Build.0 = Debug|Any CPU {67C7637A-1E86-49C0-8BBB-F91260F9058F}.Release|Any CPU.ActiveCfg = Release|Any CPU {67C7637A-1E86-49C0-8BBB-F91260F9058F}.Release|Any CPU.Build.0 = Release|Any CPU - {BEFA0F34-2594-4E77-88A9-4DF2B535343A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BEFA0F34-2594-4E77-88A9-4DF2B535343A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BEFA0F34-2594-4E77-88A9-4DF2B535343A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BEFA0F34-2594-4E77-88A9-4DF2B535343A}.Release|Any CPU.Build.0 = Release|Any CPU - {803BBEFE-A5AF-4C43-87FC-DA9132F18498}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {803BBEFE-A5AF-4C43-87FC-DA9132F18498}.Debug|Any CPU.Build.0 = Debug|Any CPU - {803BBEFE-A5AF-4C43-87FC-DA9132F18498}.Release|Any CPU.ActiveCfg = Release|Any CPU - {803BBEFE-A5AF-4C43-87FC-DA9132F18498}.Release|Any CPU.Build.0 = Release|Any CPU - {3BADD396-E830-468B-B2D8-A52FD5E6C6BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3BADD396-E830-468B-B2D8-A52FD5E6C6BD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3BADD396-E830-468B-B2D8-A52FD5E6C6BD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3BADD396-E830-468B-B2D8-A52FD5E6C6BD}.Release|Any CPU.Build.0 = Release|Any CPU - {5FA252B6-6FDA-451E-BE5E-F6D82EDE9AB1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5FA252B6-6FDA-451E-BE5E-F6D82EDE9AB1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5FA252B6-6FDA-451E-BE5E-F6D82EDE9AB1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5FA252B6-6FDA-451E-BE5E-F6D82EDE9AB1}.Release|Any CPU.Build.0 = Release|Any CPU {F5D4C70F-DD2E-4EC9-A191-56A717B1B5EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F5D4C70F-DD2E-4EC9-A191-56A717B1B5EE}.Debug|Any CPU.Build.0 = Debug|Any CPU {F5D4C70F-DD2E-4EC9-A191-56A717B1B5EE}.Release|Any CPU.ActiveCfg = Release|Any CPU {F5D4C70F-DD2E-4EC9-A191-56A717B1B5EE}.Release|Any CPU.Build.0 = Release|Any CPU - {7C5101F3-E3E6-42DB-8585-D08C2BE5E30C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7C5101F3-E3E6-42DB-8585-D08C2BE5E30C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7C5101F3-E3E6-42DB-8585-D08C2BE5E30C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7C5101F3-E3E6-42DB-8585-D08C2BE5E30C}.Release|Any CPU.Build.0 = Release|Any CPU - {9C04921A-38D5-4EC9-8FF5-0E0D74681049}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9C04921A-38D5-4EC9-8FF5-0E0D74681049}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9C04921A-38D5-4EC9-8FF5-0E0D74681049}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9C04921A-38D5-4EC9-8FF5-0E0D74681049}.Release|Any CPU.Build.0 = Release|Any CPU + {015CAD77-646A-4AD4-A049-11E373BAFE80}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {015CAD77-646A-4AD4-A049-11E373BAFE80}.Debug|Any CPU.Build.0 = Debug|Any CPU + {015CAD77-646A-4AD4-A049-11E373BAFE80}.Release|Any CPU.ActiveCfg = Release|Any CPU + {015CAD77-646A-4AD4-A049-11E373BAFE80}.Release|Any CPU.Build.0 = Release|Any CPU + {93B46374-306E-4A4D-AD68-89CD1CA3FA33}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {93B46374-306E-4A4D-AD68-89CD1CA3FA33}.Debug|Any CPU.Build.0 = Debug|Any CPU + {93B46374-306E-4A4D-AD68-89CD1CA3FA33}.Release|Any CPU.ActiveCfg = Release|Any CPU + {93B46374-306E-4A4D-AD68-89CD1CA3FA33}.Release|Any CPU.Build.0 = Release|Any CPU + {77215C0B-A8EF-4490-9B49-A3C631E0C4E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {77215C0B-A8EF-4490-9B49-A3C631E0C4E5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {77215C0B-A8EF-4490-9B49-A3C631E0C4E5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {77215C0B-A8EF-4490-9B49-A3C631E0C4E5}.Release|Any CPU.Build.0 = Release|Any CPU + {A094BEBE-9607-4AE9-A9DB-9BF7BF704F2F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A094BEBE-9607-4AE9-A9DB-9BF7BF704F2F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A094BEBE-9607-4AE9-A9DB-9BF7BF704F2F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A094BEBE-9607-4AE9-A9DB-9BF7BF704F2F}.Release|Any CPU.Build.0 = Release|Any CPU + {4B4B73DD-9014-4609-89A0-3297289157A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4B4B73DD-9014-4609-89A0-3297289157A6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4B4B73DD-9014-4609-89A0-3297289157A6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4B4B73DD-9014-4609-89A0-3297289157A6}.Release|Any CPU.Build.0 = Release|Any CPU + {737720EE-DF6F-4457-84D6-45E0E2F209E6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {737720EE-DF6F-4457-84D6-45E0E2F209E6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {737720EE-DF6F-4457-84D6-45E0E2F209E6}.Release|Any CPU.ActiveCfg = Release|Any CPU + {737720EE-DF6F-4457-84D6-45E0E2F209E6}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -343,15 +348,15 @@ Global {BC6B8583-4F0F-45AD-BF71-1D998AA65869} = {84C68A6F-ECE0-467E-91C0-AE63AC4FC4C7} {F37BBDB4-EB48-42E4-8CB1-D459F5EF3C3F} = {B4C40E02-E06A-4359-BDC5-349E103366AD} {67C7637A-1E86-49C0-8BBB-F91260F9058F} = {0027B7D2-664D-4872-AE99-BA2A2BCA6B2E} - {BEFA0F34-2594-4E77-88A9-4DF2B535343A} = {4E880812-C336-4EB2-9FED-2E437957F50A} - {803BBEFE-A5AF-4C43-87FC-DA9132F18498} = {4E880812-C336-4EB2-9FED-2E437957F50A} - {3BADD396-E830-468B-B2D8-A52FD5E6C6BD} = {4E880812-C336-4EB2-9FED-2E437957F50A} - {5FA252B6-6FDA-451E-BE5E-F6D82EDE9AB1} = {4E880812-C336-4EB2-9FED-2E437957F50A} {F5D4C70F-DD2E-4EC9-A191-56A717B1B5EE} = {B4C40E02-E06A-4359-BDC5-349E103366AD} - {C93898B7-2001-4C29-9BBE-33A2E61C350A} = {C0A05428-767E-46C5-A31F-0D220E41F7C5} - {EC933357-1D95-4CDD-B290-7A5984FC1AA2} = {C0A05428-767E-46C5-A31F-0D220E41F7C5} - {7C5101F3-E3E6-42DB-8585-D08C2BE5E30C} = {C93898B7-2001-4C29-9BBE-33A2E61C350A} - {9C04921A-38D5-4EC9-8FF5-0E0D74681049} = {EC933357-1D95-4CDD-B290-7A5984FC1AA2} + {C93898B7-2001-4C29-9BBE-33A2E61C350A} = {7C9FFA1B-D992-4E3F-B2B1-74D86E81512D} + {7E1C5D8B-58B4-40B1-8BA7-F8F80B76F276} = {7C9FFA1B-D992-4E3F-B2B1-74D86E81512D} + {015CAD77-646A-4AD4-A049-11E373BAFE80} = {4E880812-C336-4EB2-9FED-2E437957F50A} + {93B46374-306E-4A4D-AD68-89CD1CA3FA33} = {4E880812-C336-4EB2-9FED-2E437957F50A} + {77215C0B-A8EF-4490-9B49-A3C631E0C4E5} = {4E880812-C336-4EB2-9FED-2E437957F50A} + {A094BEBE-9607-4AE9-A9DB-9BF7BF704F2F} = {4E880812-C336-4EB2-9FED-2E437957F50A} + {4B4B73DD-9014-4609-89A0-3297289157A6} = {7E1C5D8B-58B4-40B1-8BA7-F8F80B76F276} + {737720EE-DF6F-4457-84D6-45E0E2F209E6} = {C93898B7-2001-4C29-9BBE-33A2E61C350A} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {0143C230-7F40-44B2-8BA3-EF5B92D55848} diff --git a/src/applications/mixcore.gateway/Program.cs b/src/applications/mixcore.gateway/Program.cs index 3416ac75d..522fa33b2 100644 --- a/src/applications/mixcore.gateway/Program.cs +++ b/src/applications/mixcore.gateway/Program.cs @@ -39,7 +39,10 @@ builder.Services.TryAddSingleton(); builder.Services.AddOcelot(builder.Configuration); // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle -builder.Services.AddEndpointsApiExplorer(); +if (!builder.Environment.IsDevelopment()) +{ + builder.Services.AddEndpointsApiExplorer(); +} if (isInit) { builder.Services.AddCors(options => diff --git a/src/applications/mixcore.gateway/mixcore.gateway.csproj b/src/applications/mixcore.gateway/mixcore.gateway.csproj index 46219679d..89cde9eea 100644 --- a/src/applications/mixcore.gateway/mixcore.gateway.csproj +++ b/src/applications/mixcore.gateway/mixcore.gateway.csproj @@ -1,4 +1,4 @@ - + net8.0 @@ -13,11 +13,11 @@ - - - - - + + + + + diff --git a/src/applications/mixcore.gateway/p4ps.gateway.csproj b/src/applications/mixcore.gateway/p4ps.gateway.csproj new file mode 100644 index 000000000..635b3b85c --- /dev/null +++ b/src/applications/mixcore.gateway/p4ps.gateway.csproj @@ -0,0 +1,34 @@ + + + + net8.0 + false + true + false + enable + enable + true + mixcore.gateway + bbdd7c53-6dfa-4f6f-ab46-5ecda7005ed0 + Linux + ..\.. + + + + + + + + + + + + + + + + + + + + diff --git a/src/applications/mixcore.gateway/p4ps.gateway.http b/src/applications/mixcore.gateway/p4ps.gateway.http new file mode 100644 index 000000000..32ea4bf3d --- /dev/null +++ b/src/applications/mixcore.gateway/p4ps.gateway.http @@ -0,0 +1,6 @@ +@mixcore.gateway_HostAddress = http://localhost:5025 + +GET {{mixcore.gateway_HostAddress}}/weatherforecast/ +Accept: application/json + +### diff --git a/src/applications/mixcore.host.aspire.AppHost/Program.cs b/src/applications/mixcore.host.aspire.AppHost/Program.cs new file mode 100644 index 000000000..c0bf14fe3 --- /dev/null +++ b/src/applications/mixcore.host.aspire.AppHost/Program.cs @@ -0,0 +1,8 @@ +var builder = DistributedApplication.CreateBuilder(args); + +var mixMq = builder.AddProject("mix-mq-server"); + +builder.AddProject("mixcore").WithReference(mixMq); +builder.AddProject("mixcore-gateway").WithReference(mixMq); + +builder.Build().Run(); diff --git a/src/applications/mixcore.host.aspire.AppHost/mixcore.host.aspire.AppHost.csproj b/src/applications/mixcore.host.aspire.AppHost/mixcore.host.aspire.AppHost.csproj new file mode 100644 index 000000000..30102f25b --- /dev/null +++ b/src/applications/mixcore.host.aspire.AppHost/mixcore.host.aspire.AppHost.csproj @@ -0,0 +1,23 @@ + + + + Exe + net8.0 + enable + enable + true + + + + + + + + + + + + + + + diff --git a/src/applications/mixcore.host.aspire/mixcore.host.aspire.AppHost/p4ps.host.aspire.AppHost.csproj b/src/applications/mixcore.host.aspire/mixcore.host.aspire.AppHost/p4ps.host.aspire.AppHost.csproj new file mode 100644 index 000000000..06ddcba50 --- /dev/null +++ b/src/applications/mixcore.host.aspire/mixcore.host.aspire.AppHost/p4ps.host.aspire.AppHost.csproj @@ -0,0 +1,28 @@ + + + + Exe + net8.0 + enable + enable + true + + + + + + + + + + + + + + + + + + + + diff --git a/src/applications/mixcore.host.aspire/mixcore.host.aspire.ServiceDefaults/Extensions.cs b/src/applications/mixcore.host.aspire/mixcore.host.aspire.ServiceDefaults/Extensions.cs index bbe43d57a..cdd1bce48 100644 --- a/src/applications/mixcore.host.aspire/mixcore.host.aspire.ServiceDefaults/Extensions.cs +++ b/src/applications/mixcore.host.aspire/mixcore.host.aspire.ServiceDefaults/Extensions.cs @@ -25,7 +25,7 @@ public static IHostApplicationBuilder AddServiceDefaults(this IHostApplicationBu http.AddStandardResilienceHandler(); // Turn on service discovery by default - http.UseServiceDiscovery(); + http.AddServiceDiscovery(); }); return builder; diff --git a/src/applications/mixcore.host.aspire/mixcore.host.aspire.ServiceDefaults/mixcore.host.aspire.ServiceDefaults.csproj b/src/applications/mixcore.host.aspire/mixcore.host.aspire.ServiceDefaults/mixcore.host.aspire.ServiceDefaults.csproj index 07112a618..a398224f1 100644 --- a/src/applications/mixcore.host.aspire/mixcore.host.aspire.ServiceDefaults/mixcore.host.aspire.ServiceDefaults.csproj +++ b/src/applications/mixcore.host.aspire/mixcore.host.aspire.ServiceDefaults/mixcore.host.aspire.ServiceDefaults.csproj @@ -13,17 +13,18 @@ - - - + + + - - + + - - - - + + + + + diff --git a/src/applications/mixcore.host.aspire/mixcore.host.aspire.ServiceDefaults/p4ps.host.aspire.ServiceDefaults.csproj b/src/applications/mixcore.host.aspire/mixcore.host.aspire.ServiceDefaults/p4ps.host.aspire.ServiceDefaults.csproj new file mode 100644 index 000000000..a398224f1 --- /dev/null +++ b/src/applications/mixcore.host.aspire/mixcore.host.aspire.ServiceDefaults/p4ps.host.aspire.ServiceDefaults.csproj @@ -0,0 +1,30 @@ + + + + Library + net8.0 + enable + enable + true + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/applications/mixcore/Controllers/SecurityController.cs b/src/applications/mixcore/Controllers/SecurityController.cs index 08f4e6a71..72d5e8c5e 100644 --- a/src/applications/mixcore/Controllers/SecurityController.cs +++ b/src/applications/mixcore/Controllers/SecurityController.cs @@ -7,6 +7,7 @@ using Mix.Heart.Exceptions; using Mix.Lib.Services; using Mix.Shared.Services; +using Quartz.Listener; using System.Security.Claims; namespace Mixcore.Controllers @@ -92,7 +93,7 @@ public async Task> ExternalLoginResultAsync(string returnU var token = await _idService.GetAuthData(user, true, CurrentTenant.Id); return View(new ExternalLoginResultModel() { - Token = token.ToString(Formatting.None), + Token = JObject.FromObject(token).ToString(Formatting.None), ReturnUrl = returnUrl }); } @@ -116,7 +117,7 @@ public async Task> ExternalLoginResultAsync(string returnU var token = await _idService.GetAuthData(user, true, CurrentTenant.Id); return View(new ExternalLoginResultModel() { - Token = token.ToString(Formatting.None), + Token = JObject.FromObject(token).ToString(Formatting.None), ReturnUrl = returnUrl }); } @@ -139,7 +140,7 @@ public async Task> ExternalLoginResultAsync(string returnU var token = await _idService.GetAuthData(user, true, CurrentTenant.Id); return View(new ExternalLoginResultModel() { - Token = token.ToString(Formatting.None), + Token = JObject.FromObject(token).ToString(Formatting.None), ReturnUrl = returnUrl }); } diff --git a/src/applications/mixcore/Dockerfile b/src/applications/mixcore/Dockerfile index fd5628b46..30ea86d2f 100644 --- a/src/applications/mixcore/Dockerfile +++ b/src/applications/mixcore/Dockerfile @@ -8,7 +8,7 @@ EXPOSE 8081 FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build ARG BUILD_CONFIGURATION=Release COPY ["src/applications/mixcore/mixcore.csproj", "src/applications/mixcore/"] -COPY ["src/applications/mixcore.host.aspire/mixcore.host.aspire.ServiceDefaults/mixcore.host.aspire.ServiceDefaults.csproj", "src/applications/mixcore.host.aspire/mixcore.host.aspire.ServiceDefaults/"] +COPY ["src/applications/mixcore.host.aspire.ServiceDefaults/mixcore.host.aspire.ServiceDefaults.csproj", "src/applications/mixcore.host.aspire.ServiceDefaults/"] COPY ["src/platform/mix.identity/mix.identity.csproj", "src/platform/mix.identity/"] COPY ["src/platform/mix.database/mix.database.csproj", "src/platform/mix.database/"] COPY ["src/platform/mix.shared/mix.shared.csproj", "src/platform/mix.shared/"] @@ -20,8 +20,8 @@ COPY ["src/platform/mix.mixdb/mix.mixdb.csproj", "src/platform/mix.mixdb/"] COPY ["src/platform/mix.service/mix.service.csproj", "src/platform/mix.service/"] COPY ["src/platform/mix.quartz/mix.quartz.csproj", "src/platform/mix.quartz/"] COPY ["src/platform/mix.queue/mix.queue.csproj", "src/platform/mix.queue/"] -COPY ["src/services/mix-message-queue/mix.mq.server/mix.mq.server.csproj", "src/services/mix-message-queue/mix.mq/"] -COPY ["src/services/mix-message-queue/mix.mq.lib/mix.mq.lib.csproj", "src/services/mix-message-queue/mix.mq.lib/"] +COPY ["src/services/core/mix-message-queue/mix.mq.server/mix.mq.server.csproj", "src/services/core/mix-message-queue/mix.mq/"] +COPY ["src/services/core/mix-message-queue/mix.mq.lib/mix.mq.lib.csproj", "src/services/core/mix-message-queue/mix.mq.lib/"] COPY ["src/platform/mix.signalr/mix.signalr.csproj", "src/platform/mix.signalr/"] COPY ["src/platform/mix.repodb/mix.repodb.csproj", "src/platform/mix.repodb/"] COPY ["src/platform/mix.communicator/mix.communicator.csproj", "src/platform/mix.communicator/"] diff --git a/src/applications/mixcore/Domain/StartupServices.cs b/src/applications/mixcore/Domain/StartupServices.cs index d66d94d3c..43583d127 100644 --- a/src/applications/mixcore/Domain/StartupServices.cs +++ b/src/applications/mixcore/Domain/StartupServices.cs @@ -1,7 +1,11 @@ -using Microsoft.Extensions.DependencyInjection.Extensions; +using Microsoft.Extensions.DependencyInjection.Extensions; +using Mix.Lib.Middlewares; using Mix.Lib.Publishers; using Mix.Lib.Subscribers; +using Mix.Log.Lib.Interfaces; +using Mix.Log.Lib.Models; using Mix.Log.Lib.Publishers; +using Mix.Log.Lib.Services; using Mix.Log.Lib.Subscribers; using Mix.Quartz.Interfaces; using Mix.Quartz.Services; @@ -35,7 +39,9 @@ public void AddServices(IServiceCollection services, IConfiguration configuratio if (!globalConfigs!.IsInit) { - services.AddHostedService(); + services.TryAddSingleton(); + services.TryAddScoped(); + services.AddHostedService(); } services.AddMixRateLimiter(configuration); @@ -43,6 +49,11 @@ public void AddServices(IServiceCollection services, IConfiguration configuratio public void UseApps(IApplicationBuilder app, IConfiguration configuration, bool isDevelop) { + var globalConfigs = configuration.GetSection(MixAppSettingsSection.GlobalSettings).Get()!; + if (!globalConfigs!.IsInit) + { + app.UseMiddleware(); + } app.UseMixRateLimiter(); } diff --git a/src/applications/mixcore/Domain/ViewModels/PostContentViewModel.cs b/src/applications/mixcore/Domain/ViewModels/PostContentViewModel.cs index 2dcd8b678..2ccce7963 100644 --- a/src/applications/mixcore/Domain/ViewModels/PostContentViewModel.cs +++ b/src/applications/mixcore/Domain/ViewModels/PostContentViewModel.cs @@ -87,7 +87,7 @@ public async Task LoadAdditionalDataAsync( if (isChanged) { - await cacheService.SetAsync($"{Id}/{GetType().FullName}", this, typeof(MixPostContent).FullName, "full"); + await cacheService.SetAsync($"{Id}/{GetType().Name}", this, $"{typeof(MixPostContent).Assembly.GetName().Name}_{typeof(MixPostContent).Name}", "full"); } } diff --git a/src/applications/mixcore/Program.cs b/src/applications/mixcore/Program.cs index 59feb2a2f..2da9e604e 100644 --- a/src/applications/mixcore/Program.cs +++ b/src/applications/mixcore/Program.cs @@ -4,11 +4,19 @@ using System.Text.Encodings.Web; using System.Text.Unicode; using Mix.Log.Lib; -using Microsoft.Extensions.FileProviders; -using Mix.Lib.Middlewares; -using Mix.Shared.Services; using Mix.Shared.Models.Configurations; using Mix.Queue.Extensions; +using Mix.Lib.Services; +using Mix.Lib.Publishers; +using Mix.Lib.Subscribers; +using Mix.Quartz.Services; +using Mix.RepoDb.Publishers; +using Mix.RepoDb.Subscribers; +using Mix.Storage.Lib.Subscribers; +using Mix.Log.Lib.Interfaces; +using Mix.Log.Lib.Services; +using Mix.Log.Lib.Models; +using Mix.Log.Lib.Publishers; var builder = MixCmsHelper.CreateWebApplicationBuilder(args); if (builder.Environment.IsDevelopment()) @@ -32,11 +40,12 @@ builder.Services.ApplyMigrations(globalConfig); builder.Services.AddMixCors(); builder.Services.AddScoped(); -builder.Services.AddMixLog(builder.Configuration); +builder.Services.AddMixLogSubscriber(builder.Configuration); builder.Services.AddMixAuthorize(builder.Configuration); builder.Services.TryAddScoped(); +AddPortalServices(builder.Services, builder.Configuration); var app = builder.Build(); Configure(app, builder.Environment, builder.Configuration); @@ -54,8 +63,6 @@ void Configure(IApplicationBuilder app, IWebHostEnvironment env, IConfiguration app.UseHttpsRedirection(); app.UseMixTenant(); - app.UseMiddleware(); - app.UseRouting(); // Typically, UseStaticFiles is called before UseCors. Apps that use JavaScript to retrieve static files cross site must call UseCors before UseStaticFiles. @@ -81,4 +88,31 @@ void Configure(IApplicationBuilder app, IWebHostEnvironment env, IConfiguration //} -} \ No newline at end of file +} + +void AddPortalServices(IServiceCollection services, IConfiguration configuration) +{ + var globalConfigs = configuration.GetSection(MixAppSettingsSection.GlobalSettings).Get()!; + services.AddMixRoutes(); + + services.AddHostedService(); + services.AddHostedService(); + services.AddHostedService(); + services.AddHostedService(); + + services.AddHostedService(); + services.AddHostedService(); + services.AddHostedService(); + services.AddHostedService(); + + services.AddHostedService(); + services.AddHostedService(); + + if (!globalConfigs!.IsInit) + { + services.TryAddSingleton(); + services.TryAddScoped(); + services.AddHostedService(); + } + +} diff --git a/src/applications/mixcore/Properties/launchSettings.json b/src/applications/mixcore/Properties/launchSettings.json index 044c36913..2023ea7b1 100644 --- a/src/applications/mixcore/Properties/launchSettings.json +++ b/src/applications/mixcore/Properties/launchSettings.json @@ -8,33 +8,7 @@ }, "dotnetRunMessages": true, "applicationUrl": "https://localhost:5010;http://localhost:5011" - }, - "IIS Express": { - "commandName": "IISExpress", - "launchBrowser": true, - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development" - } - }, - "Docker": { - "commandName": "Docker", - "launchBrowser": true, - "launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}", - "environmentVariables": { - "ASPNETCORE_HTTPS_PORTS": "5010", - "ASPNETCORE_HTTP_PORTS": "5011" - }, - "publishAllPorts": true, - "useSSL": true } }, - "$schema": "http://json.schemastore.org/launchsettings.json", - "iisSettings": { - "windowsAuthentication": false, - "anonymousAuthentication": true, - "iisExpress": { - "applicationUrl": "http://localhost:38453", - "sslPort": 44372 - } - } + "$schema": "http://json.schemastore.org/launchsettings.json" } \ No newline at end of file diff --git a/src/applications/mixcore/mixcore.csproj b/src/applications/mixcore/mixcore.csproj index fba68cdab..78e46e6be 100644 --- a/src/applications/mixcore/mixcore.csproj +++ b/src/applications/mixcore/mixcore.csproj @@ -1,4 +1,4 @@ - + net8.0 @@ -14,10 +14,8 @@ - - - - + + @@ -62,38 +60,15 @@ - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + - + - - - PreserveNewest - true - PreserveNewest - - - PreserveNewest - true - PreserveNewest - - - PreserveNewest - true - PreserveNewest - - - PreserveNewest - - - - - diff --git a/src/applications/mixcore/p4ps.csproj b/src/applications/mixcore/p4ps.csproj new file mode 100644 index 000000000..f09c6261a --- /dev/null +++ b/src/applications/mixcore/p4ps.csproj @@ -0,0 +1,97 @@ + + + + net8.0 + false + en + disable + enable + aeea975a-4fec-4193-846d-3a3d92606bd7 + Linux + ..\.. + false + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + + + PreserveNewest + true + PreserveNewest + + + PreserveNewest + true + PreserveNewest + + + PreserveNewest + true + PreserveNewest + + + + + + diff --git a/src/applications/mixcore/wwwroot/default-mixcontent/default.zip b/src/applications/mixcore/wwwroot/default-mixcontent/default.zip index f72166becaccc8bc7efa7f00afd27cb606fa8718..07894cddf1a636ad291fff19eae8698affb62d15 100644 GIT binary patch delta 15654 zcmZA8Q*dTY7bxJ^HYXEJY;$7Uo^WEDZ}7&pZQHhO+qN?&-}x_2)wy`8tJmJ$>vHez zUfs632RXF92k8q01%d&=fe=7QAQTW92m^!#!U5rd2tY(25)c`P0z?I(0nvdNKujPO z5F3aC#0BC3@qq+DLf{V|5%4FF7)Syn1(E^DfxmzhKuRDLkQzt>qy^Fe>46MDMj#WA z8OQ=;1+oFzfgC_iAQzAu$OGgB@&WmQzkvckL7)&&7$^c11&RU1ff7JTpcGIVCOea0#pU60o8#TKuw?)P#dTN)CKAR{{Z!Y20%lg5zrWD0{ja!1)2fP zffhhZpcT*>Xalqb+5zo>4nRksQ-iZ>B48jeMcu{9L=4CU0+NUX27(3x0^(?7W@2r? z@V|!M!qL{|Lf74OT?FM{_VWu;xO?<3lxAhw_&MCHh{<>noL0&bg(Xpi zl8$<849N}DRMcl9O%|=#QONYY895 zYiW0qQ!(m#prvvunH)w64W=RpWt4e!v(b~gTtkl) z0!yI$ib{rnDOu7v>j?`oE3tb0xm+lM_ui@_b9!0~;hd~3voq7RN?RU8mh7B3o@x%# zx^oEEui!En>-$h)J%zhQ3jq@(cN@GS#Ar!f2NLs(ynk2QUSsI-3>UF zCTW)aoW<*gA0#Yy+1=1{xW6jF=5R~Y_7x`t)BdrXZs0zwZEgt@JZ7%rY`rUWjfJJy z6fa-$%Alg>tpRMqiw}44j-4tLBR=wAUm(UujSwm7NP3EaymjwNnKEoI0fvs8q4V)S z`}vquSGn@pPLS|EhksJ%;17Z&I1YGrRcPD&9(0%HI*K%Jk8=@1WJp%WAs3uO)7iU! z$8D?@@RLgf$rQU#u1-~^L6AuSG3 z#1YH(F@?tzh)dl+T-3=-C!JC)l3`nBl&QI#6YMCA(uwH&P^fgVW;}V~>2L3e&uNvG zxWs^j)ai6CiR@1ahASYIa6^>w+AkgR%PWzfHrLPqb<_95SE&dJQ)-hgSGIg?574`= zJuRY=@d7aDmZC4syO+RFRfEFYTx_(u^_A;U#VPf?_ncH6d$ouL>(C0L8V@jI z_yHtn`~P9mOp0mNAoRkqnc4L83H~G@Zy8e_k=;EeBca)KufA+q5jg82R-O8{S?Y`z zAa*`W3b*@nl>Vi_`ixUr5km=G(1)UDwL(S8H?QIypO$H(4 z;7K?#dkjG`;?YX(h4>;rSF<+nPGu3p$C4@sf*eCda{|k!JxqiP?n;9^I=XKeijTuD z_n2!EML0|QaZ>yNRQd_J^ART2dW-e<6~XlEgk>@UI zrYllg*<)#7Y-(>4J}_PhS)LgAdWNKh0_jDuw&^itDXmfIcwcdJKk+Ylc5Fz^8QMC8 zqZ^%N!Gl@rTF#k0*Qb)ZxUzIfjU5nH%5&nvT`6AC$c8Vy&?J_H>eL8HbtlF#P zq9O(S5C&@J64eBq;bFDITDbLt^X^O{Z@|sxE73Ml2EiwiIzzNv)XSh~VB#z2KhLMp z@a5p+?hY;zW%cDJ4YV)+c>jpeD^Zi*vuWXQ`MXZ~7~A*S&lm9)i5YXh`4)qey`6U4 z_N35*RmzEBr4x(e5amHkJg)#P+$fMi&x7?B{Hdj3Je#VNcn9SdhR{>`ew!I_YR<-z z`R$WhM!}rQCrRUFmTJRg?UpI>A)qzu-VTt6%{@ymz=eIbp7=I3Ol=Ry$d}f)ryLKn zGpvUViGbsKe30j;XqQsvT%J3Os64;3oxcUN>dtIq41*LW6^~=D4t-!bfq&Pa^>_W;>&Gre9K~b9=Xj_shL_fyZwcoxW)n%t~e9bYJpUiOAXCh z`##wIX`SgKU%L(D>8X+B5$C*=8ciRjchn}6%NbBPcBI3?GeerLwl(X;orbvZu{?^> z;`0x@pizV4ml8%p4M%`a@XiICdCMdbKB^099q_(EkH{#uG1Od+m0Gh*Ibgmm=B~W9 zpnT2id4V9c3Rawq)rI?JIk4L&{}x&PYfmO#OrD42QiOL0dw8Z}5o*FVlD;z;Gau?$ ztM#Om`8jI{0s;?)jpo)TCd3 zH*?tb??R}EJKRLYK5Jc-DPv9n`L>da8*`U*1M=V4Y|5H_yZg)O5E--z7K&D0+_&gnT!g>Ed zXtzqJc!J+**GK2|thRZ0jOl6I2tEov8Zr&b^cx%z1k*D{rU|+Jrloh}ji4ks2B?Dx ze6%5_MaELrZwW8;y&}%VTOqO#;&xg7`4VCWl7gLs_t2vDgW|%x0)HiGT(S3~1{|}@ zsa1{-c*y{~q!R%4iJ%@uuOSv0d1sBIx3lO2Q~FWU3&AdfxR8tL7V?ru2y1WDu&#k{*78haGFpkzIXwZ1YoUMpYvbudX3};979W(8Zn#m= ziMfEWL1?jhYYekm^Z z^a?g`jsi_GMy#m0STHHvPgN*7{ZFMEt zJ#zr$n5L2ieYOuNuq3;AvWhv!+OJ7!i3rp9dk6?~_*bN##4Tep^~EFEB0&S# zj6SHy3^%V13Om9d&FmvUI?)d=j-kKs9XamLQ-f90>{KK%(o2U}rIv+Tae5Sk)Vxo_ zM8UGgLEn34@N2dxp0f(C?`F)g5r<^rs0A^CpxRY^p$RViGgwR3!fggXvwDHxx_QIH zSfk{<5+xv2ONQT1{^iAhJ*Y84iZTEw%&S|`OpP>fr2{irQbws)c1GotALSQjYL2R+ zAgIa2=S+ygH?lKx@u-Z{OM?s!la>q-cp)rVmvJFaTYZGCqG>%}b~HdC!#wvO`pnyc(9)DF+7FdJ}jZ z%O1HY3&BNzfs}-kgo8|!1+V{v0g|yGzBn(9xF%@PMh6eGDj4~{Ldzi4$Sk*BNy+)8KB5kqv>ymz8Ki=+Z}ukLq7jQe`SS5%Cy zSIXxsLR&M*S9=7DsEKyLlFYK%?E`Jo3Z6nehiqV4*6><++J|6AG{yQq)q ze5{R4qJo8uF@2_Xf*a=bac)wv657BVk0oA+a4%3Qfug`AmluEnp2GB-6)Je>{QjgFpyo0Km0q3kQZ zSni~(v8qict=}G4zG_V(r@dp6xKY||(eZy?-*kpK*N}(ps>Zt(u-Pv+7kUp};e>(j zrMX3K)&F;WK^Z**j>8F90zi|t*pQ+QN2mUL5c?6#T#d!mFo+k z=2=yA6~jSDXz+u2+xl&Hl*#J*rT+}NOOJ#qD3>b9)^}=4`2(+IU`RHbM6wq@Co82C z<*NkyIs169an+4U`FA$>RVplb{Lr}!_sAIRYIX)=dUOX*xZwq0EfdwEPhKMIgg0md z+5|V>dpu1GaZF3f1ePSx_=X#yyg~r&shbY2N_||v$Cl-?xew5NZh6l z2t6lH1pvi<@mBl*IGlq4N~cyayDeY9r4ue-;r-u?AY#>$eR>)1{i2Z{(7T7Kb6F;E zPf{Q_U-8w9XZZUG>f85fnG>^WAd5o9PLM+v@+W#bbKhC3;AT z{`Nss-5uYPdOFZBuI2`KFy4Muw>zqvwV1{Z!0#L65qxAVlQ}CbZ*^sYc0cnUOk{} z>*x{BIZ0YW8o=B%c(#!%eC?)bvrEWv<3o#m<%sf50J%V3Q1?F^5ly&CNydnQ{4K1T z>iPSYt)+MYz$_>q)gg(ddenpHVUZRwptvg%|C(gBC|6;#tAsf2lp|pNtJFpT919Xl zcculI@yl3xdy~}TlI()Ct{vZ;GLFcD-C{jM-?H7M;sPaL3Wgzw&CYT?TiZ}AnFU7N zhu>6jJ=h*A&@GB=7k&|Isdw|m`4UnC#PGl@j$ip7pwC2<$9W$oVd>efcz63H<_4Xi zPC`$3o#AhZRTEgA%(`(O?U=XIL}E`%UuX)IaOO4^6{NLkZn=FZX5`|~q*%!RcsXrBzHBPgIL! zIeood+7#-4OIv9J1XocjF}6s5SmkSRRuaR_0jm1}o+Ms;h2$i7`8=vC)^Ugm7; z_jgmq{qvb?+*iY+k zjyG%Ymz~v&ptdYBL6-OIkHB*Nwe`bsLP9K;i6PeCg9`Vpv~`?f0XO8D?a<;kgwU=C zRjkc@3?KhVD>f|S#y}U!0}n=NP{2bsRMC5&)RUSQDu%CD@X62B5d>ag=>X%Qxx~=H zdR$l5Xdc^ok7;{8$R-QXLthkd&#w2Uh}as@ebb7923!AKna;c#{l(M(5?#F$CEp7S zE5{vt4#6wOEglR=loS{Z*&3N)4f-<@n(330Bs$2KhoRL^JrN<)Y!IllV?da{_&z+P za}q2zWT%fQDIBvpSysRs+fVEZ&HOaRU>?phNqJxMh{aIT;XXs-B+9A}nb6JhnsHra zlcdTjsy`i$VE56CX?{n|*PcWMp#h?v2EX%w zlCWz79%dbolXIrBomTHxbVB>KOpI7OqAhG%k~F#$5;o}Yxs|G&2kJ$3MGTe7lHHDr ztnR{LmYh`@$7P~vU8iLtVw!;-Y%R#-$e?LGLUD?K1vIY9s<4WrfQc?aoKBU%h;rIW zvl*4w&A0>kN-4~TG(eFjsbjzHZKIRfKix5TGbui(W~ngfeeEZQS7w70y1qG0o`);0 z1>Cjl{8M7lrmW+5UMRZi1l6QP|Ud~rgPV^&~A zE_rHJr?sI?r{E}fv#>Dn{}OwiH@$<8gO?DxsqS)gFv@O2MYPU|Oz zIhB~~eq7~F%OTj~6r+PI+u?;B#-&jaG zN(9yWpU9dwemH0;ij$D(+b;uxg8e!F{A#NF)m&ACnV%sy8Akg%+dnuhoANBAKUUDr zOUOs4n#XFg3&S+4Mi$Jj<9+PW;rKz+>JE6ce=(9 ze>`Wt^1Z=2sJz#x>cEN--q}vw5?Jke*Aw?sX}&ru*m03}Q{%0V=BY_+#{p2W>ZCL3 zzPjcfH&X2u_&l&Lvvbb_^^XE}4*3WB_xhXLWebnGV}0;?I5Uv-BTXGOk5+jc6FgZEXHLa`O0xL`rD?dJm2ygU*Q739vw@Dy z*rNl79`pr}z&ai5@YG`}4=K83pgtA{c3oqMupTMrN+^@%`g%0LX~Q(ZgWS}zc?N(| z3?H;sct26pw(x^3v37p%?A4-WTz?MIf=61J7QV#KX%$?sF}{RqG>L{1UwG1r+|uf( zD{{0gX`J-Jd|lANM|>?pdF`21<5F;P8zkxKLE0R8F_BX5R6SNk|Fn+s>kC) zTse!JK-D8d)fYzb7^YnIbUQ0}X+H;P{+Q2%UI!Obg=kfH(+=4lIv}5UT=fRuf(GAG zle|gdCWGqb!FllPbe_q)o)((eW>6Hc{p(baGN*&lyX|%c)s6p=#JviB%LA}-dFzBe zz0yVP1}V{5j~8H!!D1G~9K3PHI7#n21|QaggeF>&G|xyf3$%2gb%1Z;?~Hyng$hd<}{;0?huz~5WIqF<%ryv%as#;VO;`k z?er9;&x(BU_|R#*C(Wwi89iqL-80OU7qzDyGT(38)NkFG0`GBXpS@shKerpP`nOf% zRi6%#b8*8vt{vac5jc)`B+*WLG#13)h+paBT7#6*{`*-rR`vXOP#sW#Kfnh!kQk|8 z!Lha}XhcX*^o)IJx33g6NFoG@KkzxcmB`U72Yy>kq90`ROVW`jLwOA(a5*5EKMFKR z(TW^(x+#L3gW+RvdFT9AawYMAQ+&Rqh@Acrq2pI=)S?BTy?nD#*K45ho`l}kTd{o0 z`WZ^pEpu(xN{8Sw@)FPyRww2n)xZbda7YJZv6%bgBz3(xxWj~%X6tK`FQ0r1DZ04> zlDE>Mo9zTM*Z0_t!?O&bkmtE%brje<*TrYuaY(mnz6hNuc<+AvHc4~zL?YKr&7^KP zWmuKk+*Pz#^1Sv*va#sg^3gG*6GY+|+2)Cnn%v_F)ibV*GY_z6Sf3<$NeUjXIyb#y zYDIRTDAI&&Lvw;Xxm#*z!0QyO*MqQhZQ*^n`=odWrz)154~{HOIPqLN8P^S*vwC>X zB+0mbgBB)weEM+})p=*Eo@X7}wDCwG+v1p~4#dxaf)>W_s-Dd6-3oT`GFdb6a1ak| zKlW?iP^FZuu?GaY~#s-+0}BoAYLPUxo0Ss-YM_Us4} zrz}bT1v6Od02=J-ukeu}II34Pyj8l?-&febz+k4*13I+-NmcNroUe|;H*Y}FT>foW z4gnbl-F=#Yq#5O2fE4hgW7Vt@pe1lwB+viQP-+_T|C|y zGPs6HnF406pTkkAc{2d7F}BLIvCkVZ$?Xz_>lMrAqHcEmyLnXn$}F`U3_eknbw&Ns z4}3HahgEW?P0*R9Us${1ort?xoV?I}yFZXMU`L7(M>d?PH*LCS>HJAOT7-AZVAEwD z4bAW07s5BuQ%nw5{(&U4mTR^J$aSJ{oD){1nE(>_$+*$U;)enujbB;M{vp>ms!s_F zG|o~A#qHbmM1hvPqej|IeRaTEWiqYb+Ui-qDBRHIiobE?E>G!-&YvSd1-gYkgOXM~ z-#939^1&fYgAEqZQpdhH#iq136)oE?z~7#1^o!~fu|YW@<0Khm7f1GPEV6%c`_{lj zod9`UCLcYK(NEcpfxd6D&qjT+?%vm?bBw2Fc3`RfDsnx&khn9D$ zmqGsN^}X(G?fZx7a-Ve6aQ-OP{@G!~8W$RGbwkJ`C^d!$%33^E;;j>1K4^ujZQ ztNRGOUnUrjt+`73qLp)-sN3GwE)rl>N!02eO^o;q^*T)q>d1oPa1}lim2~$z?rw7` zcDMU^*;?gS&hrGzBt0~QqbY;GylgvKKY0)lWWT#*{hFQI4-67AmzMha0Emn5K*4mh zc5)XY@OF2a&K#wJ)ob2si&#c94qm&bp}K0Bb{YGN{{~-&?`~lJ$@HjR1yBmvo!dQ< zIO1I*T6)Xp%Yat?H^X)K=0>4jjLVr*xbNmvZw-9Fj@l()_C1xX&7|qMa~pgp8-AB5 z?Hv-0Jno;k#FXyU;_35Rr44Az1|Low(etV0Gl)~F4mEKn(22vfQoVWh3UkjMJ6M{Y zIC}WTmcuV1~-rmBFYrgy;YU&N3yYGsxTF@+<@<`*R zarM)yW-`OxdqoNk4^W_xKE14sZ#{eJf;)%h)}#)Dud4Q01N|r;pM8{jba*_AvK(Hf z_;cCe!R^J=@uREL`!QL`981;wh~DR-aXr8V)ke$h=77#e#^mWzLBixb9I?oyOa&T? z0X47P^%4%MeV-bT$?UFvoDlcvZ_hzoyq|d&ET78Ct@&O2L;F){AhsVS(SS}rYzMqP zq!Ts#g%zaC`@>8I&VBp#5L%nS)Rq7%P%1q()DSf`LToAmTKSG%QHJ_Oh1e8Sk%fNL zzMy5F>1CHMTL!X8$-n0>^wRLvxA|A9i`ei@W8>8M+OYU;ag8uG7(2_4ayS{;#V)-g?&LH%B9KPoTHQB9D||-iClfSK|05C) z-TuwoAGBk-D7v+~ePV-g6Rl~xeV1W=#C`Ev9VB=F2aeq~J-V=2Zu@?an5Lh9$mXqP zIHMX@%(yhJVLsN(&J|Wb=nP?G2fY)hHTuuG=JlP=(XYIxeyy0W=EvF?yQs*pD?Z+S zpHHF-NJBV=!Y~Jv2pvU?q=xVvLCx|9+{=gVIX&nM8u zOT35xxOe_=vGkFjv5o2u&L#4kP3W09scp}K^#?E*6;u(HW--`Vm074 z1GfT2%V2yzWS5pofR3x>y`S0)Cp$MRqrUb40JrneN&#~CfJH}7av`isv_v@P>+bPa z2kA<9U@3(u6x^FN=ZAU*=r&1G#mT{8xiSXX`9N_&7M$#929%T|T&UI|meOyiQ35?M z5l(m=TR{-?b85`$E~J4CqpO5XewUyAWrkC_qbm0wgh>^B64MtL~p=e7nA+ko% z0I{vUC=ap@L}KoAePm&A${h4y5k zvUz7W+ZfNtcBl+tNG5Cu6G4bAFs?nclr(~TSP;2VPJg-sHZ^UEYZ@`#Xi0O-Ln=pz zmzx>)M4Lz$GP+)RPIV#MSUs2)=cUg^K#3r?P^G8BzHuXNn;|D& z?6uf|lbgfq+1cRD0t&1;8wJR*nZ6)zE3z=S=_IbI4SMNO1SAiRJ?V0*ej1(md=FH4 zsFE=U(2VFdK70FXvm8vLNN~}hX5{3!`S)kayD|wWH2n|10JTPccZkc>IC1_!z~2my z#bq7B)cSZ{u;~uPN{(nex!-TzOsBWE6T6Q~>D$87v0qLz=iTND>6aGGiv|h)7;IG60|S6C>1#6>}Fq;3w-Z9n-I3(=e_RGyd#l1>;TMzCZuW00&5cm=6AG{BAWQ8+5 z&hTF6RO!Xf#0iH2ti|8RDyZ9YVjjrSZBLuEWp6i67z^yYZ{zO0Ah+%NrQj8+WgZ^aC7s(=%eqkylQx&ex#g&L5FZJKe@jh5oNn`^K7A-^1k@7_L^ zC-=v`66>4=JJw4Q*}z;YSPsDEn;F{aNs+-*wLsxl-HLvYE8`my0EDU_*pPHD{|@-! zma~{1a6DAaG?6?AwDqXx!ZFN*oNlL$$5syeno1ZCc;a58;WnVj|`3emS1jcz8n zsdLsf!R2g}jq8#Vivs2Uut@3~VYdij*g3-0CKRL8ZQE+DTB5`#5(JSb5!sZ&G19`v zltR9_t-B@>To^z@AL!$_bO0y1HAZ^zh8@!o1)WYx}y z;!QvsOQ{+MUqX)Sl09BXJp(<{hw=^&Ozlug~E60(VYm zXiM9$lPWRU1OPe_L;OV2=9?|dB z7DDMhy%T{_Q=$Tdf;dgg!G!R5Y|_LN0T{xLZ87W-B!dnd(MCAFzC=Z^kktfY+A;19 zVh(>ss{M`_Jg-6Vwgdd3By(R;oQbVIKKWJGQVKdL z96sYVrU%q7oTJN`UUXmosp+2TD7(v9bNCsm;wu$33Z@jk>=P>xQwMx>bQFia3zNRf zj27A*oHRS5W2Tull59vjk}DOXVuTrZw7*@K065gu%fWn%tjaraf0q&ldJek?Eg5Fa zU}Gxnwb)%j1V-KhZqK%_b5bHwwT9V~b#>F?ej?`6JX8#b){DtlR)C{)65%ltNA!f+ zB2Aw;k9*XVeVTRw+1^wH!Jkar-Ijp@{t{gI+7Y{9nMQly+C+Qq*^U<3ResEubS}R< zpn_m4inRHFyG0NmcfV1DRN4vOo_f2ac-`QR@S#QYG=dV6GR2Z6rPv}F%fYT84HMNa z|L$GBT}-64_4xE$VYuqw#|S?#4RyNzhvk`PJQE{sa=9-{A2yTs4(t=~{D-k?^TfFI z+UY%Z@}Dekdv>qXlj8bOX4%%H@egF+Std8b70h!+fX%)uDP=FP`rV{L~yYWQ9 zT!73iwr58D=^L&Lyyul!cGy3`;ZQcFAGzVbt&#+-+8eMb81y2i=o#X?*Rso30R>6! z#P;*dKYv&i+eOBB2ubo`Il*sG z{H-iRW(U#eooV|RB1j-Jryyb}L>Zh2txZ8fLqLLz9N~L0JYveKe}#NnA!}!{uDI8l zU`wrpEeqS6DBZy$;e}Yoqx>TR1;{V5`P&-I7DrZ!c=^jDXfHZxo*98$-L!fiB&05g zoGx(|6`>N3={{hzFZI2zWT(n~p!NR3?!HmscPzc(z@r&dK$^lC}C7{_T;MPU< z5tD6E9b(V|4gdFh(wOu~fehEl5!?CDrJG;glwUt&rmNiC6q<7?I6ZW{_-|cghA4(A zKqn_Z(U-%+*stvAUZh!4U1I;xlfTXbefi}?dLLnb&OVQJmbnko(m(&^tG?4^*q~M{ z_Ew>Zjt-0kWVv#@1<~m%>jGYP9>W-)?hb=VD)w4bS!^(eD*IYg2{UpW@y%xuCSPLe%312J9ka1R71VeduOo>N;M;y1? z%E?|KS?^(yO)k_MxR;1#i+4_REQEoWgi4ktIsV%NxPN&+!?EoDk0n9U7=U;)Z~2icwS zP4}oDyPQqXJOvX*tgPk)9lv3@hBH<5R3w0kX&|e81p{t*{67Z$xUO3{Yo{iGBm)<) z$)(kEI8Nukpa7k*&%_KVVLSOGIdLg*YgVb6OByz!x@s}FL;u2Y=m)h=3{Y{ZYvG2{ zm@c9v%eZ8D>y40~LUXFPpqE6KGW%Sfc%zlNxG6j&-wUQZKE><=>mYm=Lb}ID8jp4) zLn&C5F&oQp7pn6kh$LW-3~J0$&-3AD;?C~y{~{m-DrqDgc^=i>!BA*EBWi8DxykQ2D(BJGxi6u9s< z67{9Gx0@fWM?5vw{7g+bgJ&-_AMV*yS7*Q|I<;_PSJPr$E$cD~m9D6`cbDvk)Pr+1 zw)R#M#R0etSy?Y+#2n^D)FL%r*jmg{UGvl{+u5G?^z&yx*>EH2rLxWwrEW1h%*s!Z zHQVt8dqqMaHf&8`&o^6*yg|w5jN6)k%3c(tI8ioe9QVl2{^ zY}fLL{!tkyYC0qb%-||PoET`EdV_?DG=Tgm=hjqDQR@=y`&}iW? zc>=Hv&C}U%#6Ux9oqU;jYWPLXN|Rb}1sn%wWNej<#RjYrKWT-|E&c5%ge}v1nB%Dwes~W*~2B-Y*_kJQUQRln7CSv17lScd+q(%BhUba$MVu0(r{}8 z$4j(BRkWGhcQmANQK{W!40@;p)`b(5b}*|yy&6Pc9h0rD%erS60|zQy676dL`Qc)c zD7X;O8vs;=EoNSU$RTxx$iUTjLDXufZ$3r)NkanFcRGaRh^m-VC-cZJq~i&#{}V7X z7In48NA|n_i|!fPhFtD-G!7xUH-Jwa7JRD_B1EKWgz2v1cKx3V6w!#C9U)_oE+7kt8^f-4iY6 z7CmW!{T#@_O>6Hf_czaMKC+s=Is(d;f?h#j_>7R5GdSkAh8Xf}GNy?sgFyhKcBlyh zC4WUt3l}zR8tNgQ!+A;eBStLpByQCm2S=hd^Oc+k=~oIpvD46igK4aWeQjgOE~x4Fkr6!CvNFKxQ#ubiMd<(jw71QVh^p$)n& zpg$6Ewl?Z=1Z_}sHKWUQzFkzW53-#t|!cZickimS(zJe?X_oQ zj=zq-O5dF1Ls#W?RJDPV}D37AEfcrnSN!x}M^n&h~6OwZ~5DrZ!8HC+&$HxB) zQ9rq{{V%!*F?QbVv-H#i>HO5+NM8Grs@9^vo!^_PmcxI4HKO_vT+p3iaZ;V%v|#-3 zU8$Zf2{>$C02H9tXV9_r&Q(5ZlgkZU^~J|%DJYm;n@p`_M~3QE^9CVSL79P)rxt~w z@rx1j;h9~=`8J86z)x8@FDi_IPo7Z|E903%u`XToZ}@E2ibskJxpv@ChIoI-<4g+v zW}m#^7RnCH%AUV`>)1I(NB=4?ogQU=U<&<$O`&2<07NDK{522>Qlr(mc9DU!p}5_2 zu8>>p1Tp^oO$QO`y|5|9V%M9Fhy4hQwjKZ|A^rrzxLi2`s6e0=sx0@0aUFb3BkU+g z*e~&?+vDVItXF)BE(}SKyDIgaYYE(gARYRA%|Hm}S90tn%_Jf59dve4KcOh2681Dj z5%C#!0gBh=8wP+4uJqJWBT1H`ps=OAEKEzXO(8^1UjGCR_hNK^wAT^+n0n$Ow#zrx>8E9KJU~uadV*C}MT6Z70Js}ZAH))oMOUl}t=L~?t(OZ|)|K6l zs5f@kogS$5i$(>wt7$Kqb6dhAMu?>h5u7*r?nN?_ z0Sc!o`B@A9n1qxeM*UInC)pe!3u}NTWOm}d7Z3Mgywu`b(A9uhjmG*#7%W9_F@uDR zFGX`Gh)}AUyc?!d86cjAPk7U@cEfZ6^V8i_4dF<}7UU)V zVhNRMmPZp=m+EdT)xAx?AGYUwrVjNy0iBFz8bS@-udBqaf`RjHaOfs5J6WM{8yIu? z$%A(^_(!s>XvB?WG1->Vz&*~gkZz`}d_0-^Rb}5g^fI@?vFpKWLX`X{ep9)9{Ra_e zzX9Ui=p6j_o`1xqCmhG2=RveL@*o-3ZRaa|vfq_GUNFOy^Ea1ouHW3gxqtKc=K0O* zoA)=LZ-8&U-~7J$e+&2q{1*5v=v(l&kZ+;i!oG!ni})7#E$UnJx0r9S-{QW-e@pn5 z_$}#M^0$<4so&DRrGLx#miaB~TlTk{Z@J&{zU6-__*VF>=v(o(l5eHo%D$C{P5PUb3V(Et;lPL3~X(F1dwPSz=I!A(XeZjl2k`M(`Muyv&5?c(o;(8$TZ zOInPNDSC~dI>E1yWFDr?aNTbf9|DQm$=&MEuO3pe>+Cji{(DlhrwG7lp;th_}I gyzqZL!vAH2sAv%a-~L~S-*CO!TqBsN!f(8Nt;$&iJ z_S=Z*{{=>CCwsdKJrB2ic9gHb&o4-19m7pC8_#peuI)h#wyTBE79RY=>S*?a>o1mE zJ$I{VaR=-27X{MDbHivlc$-2|5^UtJ*D*q51qEwDGU;WB*$KG?tIi?NXIwZh0AktK zu@IoR9!Ib|RI$|tF4s7$Xk7C1=~tN&&14{Q%xg{kfz-P=$7-tL9?pTP4}b|Di&6+T zxyU=7hr4iDn4PrDsy%_wSX102M!YWU3}umu^Wa#RY5hQ(%kGg7L1kmqREFT+7HO3n zX5JYDZSEPlaSM_^(rgwXYaNAC#aQYw10f2HI^n5nkZ$A;7RvQx35@%Af?;K7#s|nH z?YXe>`hZY2j#4?o5be}%a6swVZwpz|6X@mi`1M-QQPK?uNfYS#=t6v%oZoY%IZBXY zH3S(rVvYr43#{3z2b7cs<-8c?3E07QnlrLzu`1FgF=G9FONK^hbeTK+z~pmNL!9NL zxjP&?j3I~W#meXQ&M)*}RAMn~9%B5Cc_-F}$gq%O4`D%(2iA=;bbv}ma1LB6X*f4O zYI%H>JBi74SyfAui5wk8<|2-HpPzED@ZSU6gKJ^WQRP0$8GLJz-ZoiCeH)H9B*S@K z5YA4C=0$hen%=+LgKZEMq)vJPEge##+R6ZjbLH}7t0uk}D_hqqV-j@+5)6x~OZDPS zPu+>d49X61jbDGMM*xe=7A%5FSkB?6bsh*(c8#56pAsPc%rkZQWtPC z4I0dcg1cmG^u;Dp(sIMo$x8Xkx$E0cq&P}A2RSpOAh1sE3_xGe+KuX5q0-DU8SBV_zg(BOwkiNu-)_N(pGG=d=MOuC+j z)efkXm9Q;YMl!Yu+JmIR`(5sV*gkoE{L5dvnSeHAHeIE`V9((2_^Eh-5n^1v4dwcx zn(JOcR|IN($RA4)z+D|+8aOGsa)C8$-oE^sD|>}EDg$uHUlISi4Erc0r0MqvEq**A z^D#)h20`kkdGWT7jI0XIZ8X&rU0K?K%pR-6=mj9NiG07@iDqA9d3Ggjjzg|&&ZI7$^r2|f>ou+~Nk zxaY(Ztt}s=bef+Sk-MsNw9zIqw}KG_)G${M#q=gUC}b8#KVZX|A9_yV@7yS+54uW z&cZzu!X!0jP3#RnOCJZM+R8lF*xek%nX3yOB*Ct_ULQN>UmebB8q2?^hS_WLXhFd$KwS&jvEFRFLqw9m!7A zi5QgdA3BfrWr*oUOxxCLXpk(-F$m+h>1psQEm|78V!P+HO7;CwDac3dGEK#C_1=R` z5@tjb`M92Zz4I09X7J`+UHRrkpFI%FzJh z_u!xQ&j~5^(Tu(xUa~_|;_DV7FA&txkF#59rzGkb%8cJRpPcF zu`<(1W^dD|UT_T+2)1iwP zVGwEM>B~fvn%IIw@Kw%)NlhY9_qf zjWy#s$o7Hgo4<4?C4`x;B#)1Qx$>sys^jBFBoI34F|e}4@F92FE;U#Nn-?6k4xaaA ziA(X;braP_skW|Tnn9@j@yBj3j-oLA`+AyTIT0vmPxsa?p=s(8!7Otnre&^>Q*Y#l z8e&#?*7KcgCWhQl1a9S*4Lbk>{7)B~Mu7Vb_HjD9`xcr}ah|_Hrto7pVyZ?)*n__M z16*c|n_`%KAG~_#VjcaaatD9T*b9n{JOw|FUiHdG%YFFpo?)`(8s8T3qfGr=X*3@5$rtJA zid6A?Ru;{t_Y!uX>3~~idsXcruC(iIzHlk=@tBVfD$i{$YQV`adZqGCQgFUp(95(M zTr3SuD-evoD*V@(y#}T09Cjb+`Sz}JyC`(LS~8+sf-L@OoFHv~W{~*EF$X3$IT(LVzZ9miYfizLILT93ybmuG9R*AAd4OggE0Xk*=r0oocy z6MSJTAsawpVm*62un$GPh}#Z61QWem@V8RRv!sv&xFKa6YNJbb?e-(_B**nyF*%k5Ax3t-W{S&*vO9?uxh0rn4=Tw3(T4d z6EAy1ePuUL9AAL5bopmr4=0bOVYlJ#_uI3V3+{4bMeMN6zT7pM!`(tgl@%!zQxA9Y zNxttHUe%-DXEDF%5(3JPSZFdI%1Xp|fkiVgH(Dh+_1`UBL;jQvWGE$g`XdMx=)Ewb zsFCakp^7)^rgvFq{KN3J6oz%zu!KlPqae;VwzkBa51jyZmfYvnAY6x(s7zvT)YGFZ zri}v$;ivQ=OVNn*?jF@zx52r7)7P0~D7gGK20KU84h{?f2%@p`=-b?n0m$v+i48eb z1*3hadb;$#-C{lrpdgtJ6m%z|7t#q~gEWQ*b`_HEjBq2ZApNDQCZVa_!*-#tb}w*@ zH!{jMl{x^j_h|aU51H=m)5f)P)nNMHa@$(Af6qx@CBU9Y7^}I}*jL&_ZA#T&gL&V_ zA}h-WTyQiBFPZvJ{S$N*t>Tk(#fMc!vrXfYu9j-50AO2=R>KL7tN((`BX7bB7Y3Bj zgrMJ_d%dJkyjP6Q24d24T1lR^B6Y&gsJ9Pj|6oefQXn9z_DoeP!26+4(VLq#E zrD=6(vEtXsojH%$#ov>S=t{;&_r$@L+G!Vhso_467IxL$Cxli_UN%1Y2K;A+%(66~6}-v`fX2=$R#^T7RfLm=#X=Lr`|^9%=W*12fK?}N+W@-h4&t!3_2Os@p!Wwo<_htl@QOY}0$OQOVPM9I>;;L0}N zxJh6Z;2G#Hnqu3~v|bhu1=bW=4a7Hgni>@wN_qQdD8C@PI@rbxGs*f?S(BX5=SAg7!0xzzpTVvG@@ zDk^8BIh_Fx1Ko0;a&U_UH#@V4enJ2s<;!2H@AEcp`jSuLbe;SFmsR$syB3x_mTj&A z@)5!)Dl`DcuIW*yNZMl%>&%` z!QmRnZx|K#aiLApiP-FZu4!PQGiYH&7@9@ulxk5*QnP-&z+jf>vp$FsW!3?T8)2Pn z>r+}CyP__&*))`rCru0_;oCs&TpHGGtLGO0Lgy#`W!-^`=+(+dt`B?6aJF)G1LV=m zz1yoxUp=e`___e-!;+kL)-p{$+mAHFX>h~l_hN)L=gp%}TK(9_$Wnw1&)OV>#b;H} z{?=2}nP;jMmGL#0CS4Zek#2x~xkyVHgff_CB^+al3KI$`>@vo&p?6f=ULtsoDj1&` zN3YRf?NewGc1tkEWJ+~UG?1772kE4XFyR|t%*vFy}0F(L*HalHb z;0mT!XQxwnz>(>B7z1<&3TIGhKsZsu%r1m174}QHsUz5^=1?1yFRMQ6FDqjBMjG~J z6NDd_y(wVhT<2fSt*@`cmCbB`9ttv>sIuEEj_2S01w`>}pGkIVFfmR8PKZC9$-X?@ zb#nU2XFh^bY7JxV@fc_4+toD241<&XHLC9BiO`vh-a{>Zo|0G!4jSNl(KqIxZ ztlC%aMSk^Ta_#mJ|FPnUdu57NP6c_|TR{JLIP)v@3V3{w@EYSkFji^&B9g~ujYm=$ z+{GUdP;O7e$A%zbT<&n^-9~BMi2g$-buEDZ_lRO!lIk!MXg$~_`ABET31JP#>N<78 znAHrQsXddb5(PlWks;B8r+3NqP<)k?x08||U%j{Tw|%fAJIe76{XgR|Z|j&mMQ|Ih z%$q`MSh-dGht4}R*M3w-)$HtYK(52Ktazs1$qSLOwf;az>IbtNUo&tbOTkLR{zW{^ zvn@3|cHJ)3F(bDRsq_MDbRCV9=TXWZ);d@sENMthCJ6w4nr_$F)chqsk6L(S1XbGn zrLP--Q8<9Syz?~%eiF^UMj;Wo#g@|oFOaebYe*3%QuF?%LuxCLWMeL$c-D*M1%@qi zFkH`}ln`eC?;Q;26TfIj4zsn;D5S-l`B%_POsH80kK-n~fJ6vtu!}OWv;s-~6^Y*p%Sp|mjpG)Yto z6y8o*c=>sbHTy(44}tZ&?h$rbOI7~j+UU~Tgit}&V$8<t1_U{58#~o(afdBpvChPJh@Y(eP_yF@AIAOqx2T&QK+4OHb+k+Dyq&Q@Y!s{<& zrXu3WYOY6@;`%VOwZ+W6Yu?Ao31SkJ_b3lo)3I*)lwrm%EPj*GgKdedcH#Cex7g7P#M$>>0eiS_ZT3tbV2oKogy5m+GdqGI zJTf^V!<*CosRrWJ(-gO=$^rG5=MMuS5>1VWcT=Y$XmbMD_7b}52{;n2Cc!!E+0v&7 z3~Gz-6t?RJ=8<2FNc!AB^+3-o>^mKu0}3EU`-SF!^{K?e*euxh0EC%rf$X41EK`y= z)HVjd5y~qncsZD}lWWt3)8p|b`H0vRgcZ0+>hy5G%cTFRp!Fam%gAZXlPWV%!?}Pk z`oqTgM0_>6npgJBcG9X%7d~Lg zJ)dQw9^k>om-{43BM@ZF7O|eL0?)7pd{oclJo=LT?DGwhEKz0=iTfuaIWsAv{MIAgB<-f|-#g!^C8K%`~!B+(qBGb2_ z$-M6~o#Q?wwE}gj9cm z_9kQcc;ApuUXV{G+3HW=qK3S!;oRFYaJY5)tgW2}JQFztZ=5z|3yKLk{7&QmRn9TO zRRsnt4c&&F7a{tTMC;P+F_P8`-yTthXSoKd)TYzco2tpZ?qyxlQ2_Cv3jjIb3dBe* za7E>lNEA+dyYj*jua14!rGxRH763L_OFO>S2H-xU?5yiJOfwwRzpmm;lqUF=sCIu*!E_tC8pe!N70 z0j?#5#UAXU4|UFof+4eKizOqY$yh&s>=f@WXXNM-#ba3y`2D#82By2(acxMUqCT@q z-{P+a0Z?-VXFp!HI6&nK&ag2-Guz)O6R`?X_d?a+#Z$1n?BbsU-b5J-wwxp$cYe7j zxvE$(PVe`D{1q$kdM%@t`$$bmf78(#IDcY~T-zDO$ajhp3eEB)?4BV{p`1UBNR5_ICjUsIWJA*g>|aV6l@cIx{oxA(8vg`9TPYBU5N zHV#gYaAeK@qii71F{j?n(ysyXOe9{Xyvk0z}!JXCSK}o8j6>8sc*yOMOwhN)6?v*Xw&s zB1kja%ZH=EDYPO`97180K`p336Z|V$+slvNv-P!xXaOVdt~Igm(639h8B?6|?ssqV zoHH07C3xt{8BuH6LWvGSqSpFOAJFgHcyf~leHcDc=#XafUl9WJC(s)&&Q^_{3SZ2m zI+ZJGq1hO?YALm;q_Pm#QrQHpLUF6vP_(?*VgzesBDBWyB1)8ogK=Wkcxq7d;#k!z zWBK^?i-6S(-CobM3e_}h6pWMA57AOqW#iXY7#?VtdB|okap@o_j0dGU|F`3Nuo2S^(pdF3I%U}8poXj)3d$?CmDWX!`eg54`Ra#MHIJ5 z6>vIyZNP6^!d1b1N zqVqZqj;x0frxQyaj;lF{d%r!keq_N0dMi(w@df7qMx?yJ)Obs6#U)hkHAzX;$TD}B zwg3-kWxXQmKP3NDjwGd>0!L#Bf*W9+mjQphDjzc%)xEOH%G-22G8}$7a2{=oUc{$v-@HNxy$0l=8F$T>xGZ^U z`PdAmHb-jpO{UeFubM0A3ZY#jBVoRPz`ZO8zahRX^>6O9?EC~G40mc5&uWoJuLJ0Y z{`mEyQ-&S0mr?%lIg0Z1b+E_z7mn-MOBe4z=8XTSeg4OwnJ5e9X_5y2>zFH_(#Rk( z%O0iMcmTTt!=JQkQS*8@B;|ACf?&YOzTI|)xb8)(#ezpafQt~S7;HOm3F;qRkZ(T7 z13VF^?&WJpjq3!!eZu6vg*Cff-P~sLG4)dR zlQ7yB;zakIe724)C-tPBW{em%{@03DVSBG*@4YO-_@rxjx4h5WSS>%N^S{mrVwp5h za|*IZYb%c;oOG^t@4@$ul5X}42xjQBbN+>9YcmSpM9q-n3)~xyVof%t?HmAL@r23F z@%KY}ql8b^+lpE_^ACc5%XPVc$XWaiA%+bmL)XiGgWp*#*A+O=?tt-(UHHXxGoL{_ zQu|hF4A^sXGX~_YiLA`FNTk8GPd<127k+o>AT9;cIn^cCqP@MqQ!a~zB}6o z%2(?hsuvlpH)^lxd&eHit-5;t+GTMGJ$eV-3@O;DRrI%^Hxo0X9fa+YPUR49VW`@= z=!%t(wMF1dD7r1lJ2R>7M)q=r+gsEcFVAgRB~ESzi^a-4f8L>+3qE}{)HuB6!HrkM zrOVi0C#H$koH@*32w+Wu%r|F6uLo-x#J=r{S5M}RZisP#wD9;@< zLKpnyT3e`0&7jf38OFD?y`5t9j;{j}=~>WM)omH{6f)9z(zCl&Uc4G~#y>_3uizN{ zb9pO?hD!l_R|C~7*o5j??`jU}6HI{Qg9i#nqBcqVy~&Ke6+p>6af8=Eq|jGIF+AnN zE}iQR^*OZEsO{6PeOYx$u#geZ=7OMjjnY}}b{3_5kDKeMkcQ5aSSLaDIfOfSAPAzJ?gx3aOh%{brg-*F28(W}=hCw%nJ52UWTTn;#avZHa&aikE! z8om4-+acCc<*|0^9DN$d-9UM}(yVaI?dwT!jZ$N?2%t?GV<8sdeMpAJtiDJ($80w!1(PvE@=wi22tV5$Gky zS!bXedWE=<;%_X5b=a~cROJ>**TlCtretv7Xvs9TrI3y9&nsk01U1Vij>m`T_rM|- zE%v5NL|p1$Ey_n`eB9;T%dhy(6Z-v<^S^~V0Aek*^R{a1)1wU z0fGptC8}jnLr%Q7GE`H`{@ue6qmVnea6L~VV-kf+R|G2e#JmXAr0x8|X-lglylD&L z;PGFixGREWt0nCCjrm04$b@kXN7IGvOCZ|#ebS~qOF{|C+?izpLynGVD?h24UTZv@ z-geBvMIRQYSmu#qoGFA;t5U)z6`JwK0YB~NKgNN^ZzGoZYqkW>YKtLHnpdlk-IcNz zsi_(8!@WT!ZzMMPOQq`T!`=i}Gm@ub1eBauQST17_81YD{Y_Dxm0Pxi_dhE1{|Q> zAW#~=*x6woSC~;uC;xgS1-zB84lG({9XW+p2F0};_q<}Z-Zn`v zf=(-dxrQ=w(Oqgkrb_OKNiGvvHtaFKBPJe=0DMQbNh=Vd=giMjM}!`zXLHhwZo;t_ zq>axm`X9bDVPa+(^wmQnu<6g)6d?NfYICH3>F@U!rmx=V4N`IAkA6g@M%M&!FG7<08Ik7hZi$mpkFJY9=Zwc!eTbt6L$q$9E zPOfgBU;tg`?vpJS1>cE7fTvgM7U_7-re!8)bXwYzr2*e(Z_IMhvz=Rw$c?TRh7QyRvzIF`<)1l!1i8;QldIa@nB@ny=+-le z#vt1*h?wc(h0SlC0e=BMSo59{R@tc3=}R_ z6k4Kq&6_Y~Wu&bk@Ng?F#{#pmgK~!n^H+bF+F_OucePtn8uHpK8;3f!kd8XyPR?Kc zT9%c&Z+p<^c?VHH(e7a#@=^24E!AEgOLQtdeGoCFqHj{^285V_AN8~$ki{lKqju8n zo+%0trMmg-c4)vhyN+VW;25-oV@=yS%&6v(_WF686vH^6pOf?qF?z;K&=#T<;7K*s;eTHAD(uW-Zp{f zPzJP$L*T!TxKtwj`4pmLwH`yV`{V{zD zb!&1G2!$pb@*x!*ijO|}_=et75ih~YQP}skBM<|)0c3?%Qn7G@<(zUcfIQ_0SwOG> zwKebQjk#rLbCL;kKkQK1Bc~O41Z%nu;09hz6#NqBA=7olSAyFFC-@3L?;l3E33Wq4 z-0-^g zvcgnF05#g=F1Uff;SExq4L6d2JmV=EKVN|WCXNLePIj+~}*= z%XK&A!p=NBSi#YX!sJLo4rZ4yBRFf=&uMCdUU*RWU^osza#$tkEX)UOqH;|}>8RHp z6WhCGpvQ_L{4fEUDE?d$(Jc_cR2D6eAjPT#fL^paG&;G2XRwFA!vziDcL6+L^ahrh zh3irfQ!`_XsS=`0aoI4bhD#3(%7M;6?dP1KRp)6MxuJ}#>`na`?@e;- z&HId$W&>v?ggC|U%pO8SE=@n`=Tnr$0v@7K53)sYlU_85jd3f+RBQCL217m~F^pA6 z0O{J1*H=h_K?fPkI5Q0|0u}Cu!(Fe}1~D2gkD?}&Q-!6!R`5UB(K>}(ykh-ZObs)q zy;!rFwDLijN?jM;S*CrFjAu!t>IJ|D`r%&2kQpmgB`ot|m$9a)eme#qydK6BSrqxl49D(`iCTuwm|n@g=lkW)yZG^{>JqeCHf9wnL4j6Ph>$ z<7s?_EP@>GJ{e_B3ka{EkB$xqfE*=1irCAqiMRwD-ahVtD8D%S_{&F`ht}blt2!BU zz@w(~G$A{YV03G7=+>F&%*i}Cm&K4BmK3ssWM?(p0sTyd%4vOeHW9=kCOr>glz{y+ z0#v$Wo}8Ug?2{VF$f>F55)RRg6d6n8KncEFJ}eJqU`p^H(tA&YLYsvffT{cJX(GxY zkGN`rtdk9Vt7<6}T;fke@1GxW2n|ANY(=*&?>|)7n2~zbqVPh@GjO??H(VNeU)Z!Y zTAK4tK-+rMbK&4E2OfNmtltRKdE2x0F6tf(V5o=Q@P1uSpg2wv{<`Ad)7u?UR`+vN z*Rx9os*-vC3zr6i=NrN$1N2P(7*Ng*kL}cFuGavG)h7rhQ@)-kgebHfV$6|$LR_GjK<1^qxCpZ zalFlh34BaApy=VT!_jphEFXWD&Ah-gdC<{`>4hwNFquZ^+<$P4B45!68~rTsCD+>3@9j{EC3x&o#%m*3V9TF6nEBe z9{@K#iPlz}$wG2DNUzj~u=cbiH|z z9xJ@w56Zl0UT$U@ls6p@0upQF#X2AeRA5-u%vY;bQ84{gHdD5V>D$P@ArAq ziPQG?Uni-#n5vn&{@Iato`?E}f^*^R!}4{m;U*qSBiG9$f545?{CR8~BEX@U2z_N; zW@GMUwhu!hf{~VG z$AdR)WebRl59K3wboH|8`4iadrO1|T9Jd>dYkdU6f$t`^*vmoDq$D*A@u*feZlvCs z+3(^I<7FCY7ABEw$+@T4rKAuscwl2$D}4Gu1F6JphMQJwordLD(;OcJld9Cdt}yN? zzG3U}&$G;Ac{b)kZv^X>-l!X63i0qGuGETrY;1l2EAQvR5SG}X2Q(yiKI z9(+I*ac@n{QFK%3i+#i23#uV9=i4D$ynzmBFQ3oB@vXy2mpb`#6OQ@?RwfF&bf|&A zSClHyQfdrgH;@E4VI4ZF{Wo%=*1=c_>k2i(gdo%INqI@@MM2DtnK(QD^MMJwup)S9 zb>9yYPvjU06M+2#!P@qsD0TO@%BHh$Kk%zWdJ$M<0T)|N;x)H5ZbsWNK zwV6DSnPR{Y!wm2sE!uRj1THqMel+QTgzFMjC5h4v);f&VBPcZ-@ zg$Xyih;LRfFsLQGmoDLEb~uiJ$u$jLXl?-{!wwx48RjkxHgUbn=-yTC36o=01Hyrma_A`bc-dXN)l~K(Nf=u_kXkZdDumr441hBe1lJfuw}=5p z;n}u~>qTNwR-{9Q0?Sng-T<|%L>h|ke{!J7UXrk_nz+jC%jNiEbGmi#+xrGOe=A%B^`e|vcx>e=#cX6T8y0^iz+K8Fb#PqEmf>&RX4tzr5iBxV>kgQ&~KK2 zc_!~3v|MxCgR=8ybPjwXu3$RV{Gb5tMx54Cft-sEtY1!LZ{3)FoeoornF`P*7z|QU z;>VL}4jW8}Pwpaxpq!)yUxf`LFbVGw(NtWdIJ9%o5(4F~I3$JJQ>f<@&8aHXBuQE@ zVZzStkL-N|!84pi&jf&@5bc)mvo%uAgO(?z+3U%S)g{oBWD`X-?(hdsr?%w#trofL zN~J8?Wk?(FH{6fc$d3gWh-(&ph;>lsH^GdhGT=bFrRf$yb_;heapCHJ$x?AIjIMJu z;RISDREk1Vuq>jrUZkZ_ zl*AnmLyOd{fiW+Q^2sxhgC0~Yubwp0GaA!lg0g(+l|`K57Y>4ICbLw=e;YYN>XrM@ zoO0MW0k<`t5$BkXAfvTDhLY+~5TF>cB-kN#-M1nPEC*80C`wg^*fYHZ=X<+kLoA<*R?2@lrO0MhuSdW-; z-X@s_tvnItQqbO+H6;HTVS_UZv#%4D15PV21r?tWM*bRX{DWN+TpY zm=O7G2(^?pYLJtGX%6DhHySuwW1fU-p>##L+=>$LHi%qO)Z)t<2&aMysLS0FlNhLd_I z1W#OzZv0)P#PEm3?DFM94IXZ7)v;8Zudt_^17lTx0rS(>*S#-HDW%+4&r4nB)#q_6lD+onD< z@J6Db~LT@Oc{xwi-h#PFmy=h;Gz^eev+}^^}Sn5SfnRM5sB=%0H|4ErL>}wtm zfFH0x8JQ2u$=C0qO}R)g?1%Nxin2#V_Vqv~WTFZV-WF}XtOyXLHLlO#<1czvi=8c@ z1~^F*TlVTjt$9rN6O}96G5wQrDIhJL7jO{X37uP~zJFs6&%y4%`LnzTW~_z$~P+L2o6iefBFyfuNw4ed}qZ$mnfFYLd`yZ>J`Jtgftuuv+8JhFOF zf=ZXp`IBXaM`5Mtgvr{e`BD1a;EcKKy5Feb@E1~J|4GB*KYO0YIwl^7xRp!Fkd?Y& zKn9cIQ(*xUL_<2jiRE(7Xbu@z*Z-OmtIRLXj>~sc1%f5)hOM+Y+=ur@66H_MMYtLRYlgdjuyQvKOj7@ z0uZlj{4EB!*(G<}@>d#NfCx-1V0-UOJqwApb}r1%v%Lkkud*00>&A>Wexxdh9uouJ zl~OHoGRh)@Y$r+*GtkE;&;-ihS3S&ZQ1mE|Pk5vE^c|w3r-L@csnGN?ogBjx zgt8}e6!=#4Vj9XO)J3Sg27M9e={1c_I2`fMdpH40=!Au5mD>4>+((k8PgW*!K6R8f z)~k*&Q2jV4JQ}7!2uGtGK}~5Hn2HpN;^Cee^nS1kYIAy2#T_o4BM-mA;oEAt=7?-t zfA%hP-m8uOGW5tua>IL6uG~CT)hVW)kLuQJ8))iVM1!pn(?OuOwf?84?ahY_p);og z6`Tk_h9x<||GNo}oIglj#OgX%RU_ZI_Ye`Aw?fNl>7rQBu*B3>p&Sz5rV}!S&7mNO z3oPf-F`@u-C4BQ~a`*OLwgWluu2JlEfZ{8fBlH$O>?vg1+=tsn5ImYaIOm2JbgD-L zsXi4Tw)Xd+h*!d4G)i%I=3*?4x#;g&KfMJw$?%;)RZWF@n1;ZlekfXy!~N$MNk{C@ zn6ro$hV*c@Hk|rm9dt z>h8@BvOEZ|z z(FEh0O8Hydq7P;?f#CZaFn;` zfsKu)yqCA&q*RoDCqMsN2n4gdO!2R1F#${aZ^TSNxz2-4nJH~SNI|J=5e1w7-!yqj PWMvCG6g)%A_XqqB`o?Qy diff --git a/src/applications/mixcore/wwwroot/default-mixcontent/shared/json/system-databases.json b/src/applications/mixcore/wwwroot/default-mixcontent/shared/json/system-databases.json index 3bcee2755..72b6135d0 100644 --- a/src/applications/mixcore/wwwroot/default-mixcontent/shared/json/system-databases.json +++ b/src/applications/mixcore/wwwroot/default-mixcontent/shared/json/system-databases.json @@ -2372,8 +2372,8 @@ "isDeleted": false }, { - "systemName": "title", - "displayName": "Title", + "systemName": "DisplayName", + "displayName": "Display Name", "mixDatabaseName": "sysPermission", "dataType": "Text", "configurations": { @@ -2399,10 +2399,10 @@ "isDeleted": false }, { - "systemName": "icon", - "displayName": "Icon", + "systemName": "Group", + "displayName": "Group", "mixDatabaseName": "sysPermission", - "dataType": "Icon", + "dataType": "Text", "configurations": { "IsRequire": false, "IsEncrypt": false, @@ -2426,8 +2426,8 @@ "isDeleted": false }, { - "systemName": "type", - "displayName": "Type", + "systemName": "Key", + "displayName": "Key", "mixDatabaseName": "sysPermission", "dataType": "Text", "configurations": { diff --git a/src/applications/mixcore/wwwroot/favicon.ico b/src/applications/mixcore/wwwroot/favicon.ico index 63e859b476eff5055e0e557aaa151ca8223fbeef..b28e85df32e6fa7e1c32996735931ee1f87f322f 100644 GIT binary patch literal 4286 zcmd5<`&U$D6rI-U52#=IvE{2GK|mBAXojy$7xH$7hdh-;#TP#CMT-DimV%0DX0kvf zbRmhLB?y{}NC`zqLXn4{2*^Va93ThA-8pBvBg%?Jg-n-q=H9vYyWc+F-skLZP^n&{ zzY!x;{HZ$mhD!C8N~JQRpj#??3cfD~J^Q~M0A4q7q!Yd=gW&%6O7A0WT3UV3D1UslP>KOY+t$<&K9HKVmSs* zbatQcKGvxnaq`f9RF~aCPmk`EaZ*`Y0^biO3AU@%J5a)z_}~bbZHGNuH=yA1MLcPL zJmh&~o;m?n>vxT~3O?V{Od1EZtvTf}O0Ku~dmtkz0d@DPq1X5R=UiCd1CiT>b0aQu zKstC%wL;eE6r4Ym43Ej-o3i3U%Eel8QpWIe*2a694I)=8LC%>}v@|yS<9e;XSA$@O*)kW`of3}bBjG`q z<-gy=?V{^YlMcLg#@yuXhO~sk2&B4jq3`^Tn~fP(yDq@-{V|mDP3WFJ9TX=#x9<#F zcoEle;bDm1wFB{AMoS#qw;N3j^?3N87JMBYvQ+S6H;1B`?uR(dlkW;AQm@2|-^?l4 zwQ&uuWM`tit#!aW@-JPGx(b>%0}ZwJWUNm26g@hf1lNazUXP#8pMwi&9}~7t@Oizi z*6&F@F!u92#>luu6U~V$cYIG=)!wZ{Z*Nb(Tyio_Q?HMOm)&?2UCl$=qZY(PY(>QK zK_lSfa3NB8c+LebxjW_V)Vo6>?b;3OrPS4L%&aKVOQ1H3mn6HcJr%CfV ztX<>)Pdn>=_0RYQ{_7Cp{4wz{N_b(fK0-MUrxNa1qlWCcTwB>`De#>+S=QgT|G3r#zrGGD7S4r(+1pq_^R+ZSL_+LNIMQ?W z%1q)lO6t|nQ><@9Z~!ilpYZ(3zH%iei@e2B@VT})k`L?^9d>UCMOjJl3;nOGU)$b} z^y7(0ii<&EUM_Lj2=+$lMe5}r=QHnjoBcGXskno@taFqP)d=Oq`Y`rl+8d%*1>q9;$D^i3V?Dh* z|6smnP_MdJ8T9X)1NVwQdAy(fWa=aGH_~^x!yJ73MHF#TK)=%r`V0nRpfR_L3TZty z#$Hu&;I;BTq@lfcTc9`2oj4{Q&72M8!M|z3d=?pNfcbSMJ_6@X7j3TR{se7D$52A{ zn~Ob**UDbBo_sXr@Ilm+-$8Fr|2?DM%R_L3_xU~BHjm*1=D~n!d{4 bxC3NzgPxf(-XwgJg{l7^XI)H{17rUQarE&2 literal 5430 zcmc&&Yj2xp8Fqnv;>&(QB_ve7>^E#o2mu=cO~A%R>DU-_hfbSRv1t;m7zJ_AMrntN zy0+^f&8be>q&YYzH%(88lQ?#KwiCzaCO*ZEo%j&v;<}&Lj_stKTKK>#U3nin@AF>w zb3ONSAFR{u(S1d?cdw53y}Gt1b-Hirbh;;bm(Rcbnoc*%@jiaXM|4jU^1WO~`TYZ~ zC-~jh9~b-f?fX`DmwvcguQzn*uV}c^Vd&~?H|RUs4Epv~gTAfR(B0lT&?RWQOtduM z^1vUD9{HQsW!{a9|0crA34m7Z6lpG^}f6f?={zD+ zXAzk^i^aKN_}s2$eX81wjSMONE#WVdzf|MT)Ap*}Vsn!XbvsI#6o&ij{87^d%$|A{ z=F{KB%)g%@z76yBzbb7seW**Ju8r4e*Z3PWNX3_tTDgzZatz7)Q6ytwB%@&@A|XT; zecM`Snxx5po$C)%yCP!KEtos~eOS)@2=kX-RIm)4glMCoagTEFxrBeSX%Euz734Fk z%7)x(k~T!@Hbg_37NSQL!vlTBXoURSzt~I**Zw`&F24fH*&kx=%nvZv|49SC*daD( zIw<~%#=lk8{2-l(BcIjy^Q$Q&m#KlWL9?UG{b8@qhlD z;umc+6p%|NsAT~0@DgV4-NKgQuWPWrmPIK&&XhV&n%`{l zOl^bbWYjQNuVXTXESO)@|iUKVmErPUDfz2Wh`4dF@OFiaCW|d`3paV^@|r^8T_ZxM)Z+$p5qx# z#K=z@%;aBPO=C4JNNGqVv6@UGolIz;KZsAro``Rz8X%vq_gpi^qEV&evgHb_=Y9-l z`)imdx0UC>GWZYj)3+3aKh?zVb}=@%oNzg7a8%kfVl)SV-Amp1Okw&+hEZ3|v(k8vRjXW9?ih`&FFM zV$~{j3IzhtcXk?Mu_!12;=+I7XK-IR2>Yd%VB^?oI9c^E&Chb&&je$NV0P-R;ujkP z;cbLCCPEF6|22NDj=S`F^2e~XwT1ZnRX8ra0#DaFa9-X|8(xNW_+JhD75WnSd7cxo z2>I_J5{c|WPfrgl7E2R)^c}F7ry()Z>$Jhk9CzZxiPKL#_0%`&{MX>P_%b~Dx0D^S z7xP1(DQ!d_Icpk!RN3I1w@~|O1ru#CO==h#9M~S4Chx*@?=EKUPGBv$tmU+7Zs_al z`!jR?6T&Z7(%uVq>#yLu`abWk!FBlnY{RFNHlj~6zh*;@u}+}viRKsD`IIxN#R-X3 z@vxu#EA_m}I503U(8Qmx^}u;)KfGP`O9E1H1Q|xeeksX8jC%@!{YT1)!lWgO=+Y3*jr=iSxvOW1}^HSy=y){tOMQJ@an>sOl4FYniE z;GOxd7AqxZNbYFNqobpv&HVO$c-w!Y*6r;$2oJ~h(a#(Bp<-)dg*mNigX~9rPqcHv z^;c*|Md?tD)$y?6FO$DWl$jUGV`F1G_^E&E>sY*YnA~ruv3=z9F8&&~Xpm<<75?N3 z>x~`I&M9q)O1=zWZHN9hZWx>RQ}zLP+iL57Q)%&_^$Sme^^G7;e-P~CR?kqU#Io#( z(nH1Wn*Ig)|M>WLGrxoU?FZrS`4GO&w;+39A3f8w{{Q7eg|$+dIlNFPAe+tN=FOYU z{A&Fg|H73+w1IK(W=j*L>JQgz$g0 z7JpKXLHIh}#$wm|N`s}o-@|L_`>*(gTQ~)wr3Eap7g%PVNisKw82im;Gdv#85x#s+ zoqqtnwu4ycd>cOQgRh-=aEJbnvVK`}ja%+FZx}&ehtX)n(9nVfe4{mn0bgijUbNr7Tf5X^$*{qh2%`?--%+sbSrjE^;1e3>% zqa%jdY16{Y)a1hSy*mr0JGU05Z%=qlx5vGvTjSpTt6k%nR06q}1DU`SQh_ZAeJ}A@`hL~xvv05U?0%=spP`R>dk?cOWM9^KNb7B?xjex>OZo%JMQQ1Q zB|q@}8RiP@DWn-(fB;phPaIOP2Yp)XN3-Fsn)S3w($4&+p8f5W_f%gac}QvmkHfCj$2=!t`boCvQ zCW;&Dto=f8v##}dy^wg3VNaBy&kCe3N;1|@n@pUaMPT?(aJ9b*(gJ28$}(2qFt$H~u5z94xcIQkcOI++)*exzbrk?WOOOf*|%k5#KV zL=&ky3)Eirv$wbRJ2F2s_ILQY--D~~7>^f}W|Aw^e7inXr#WLI{@h`0|jHud2Y~cI~Yn{r_kU^Vo{1gja+~]|"+ge+")"+ge+"*"),x=new RegExp(ge+"|>"),j=new RegExp(g),A=new RegExp("^"+t+"$"),D={ID:new RegExp("^#("+t+")"),CLASS:new RegExp("^\\.("+t+")"),TAG:new RegExp("^("+t+"|[*])"),ATTR:new RegExp("^"+p),PSEUDO:new RegExp("^"+g),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ge+"*(even|odd|(([+-]|)(\\d*)n|)"+ge+"*(?:([+-]|)"+ge+"*(\\d+)|))"+ge+"*\\)|)","i"),bool:new RegExp("^(?:"+f+")$","i"),needsContext:new RegExp("^"+ge+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ge+"*((?:-\\d)?\\d*)"+ge+"*\\)|)(?=[^-]|$)","i")},N=/^(?:input|select|textarea|button)$/i,q=/^h\d$/i,L=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,H=/[+~]/,O=new RegExp("\\\\[\\da-fA-F]{1,6}"+ge+"?|\\\\([^\\r\\n\\f])","g"),P=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},M=function(){V()},R=J(function(e){return!0===e.disabled&&fe(e,"fieldset")},{dir:"parentNode",next:"legend"});try{k.apply(oe=ae.call(ye.childNodes),ye.childNodes),oe[ye.childNodes.length].nodeType}catch(e){k={apply:function(e,t){me.apply(e,ae.call(t))},call:function(e){me.apply(e,ae.call(arguments,1))}}}function I(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(V(e),e=e||T,C)){if(11!==p&&(u=L.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return k.call(n,a),n}else if(f&&(a=f.getElementById(i))&&I.contains(e,a)&&a.id===i)return k.call(n,a),n}else{if(u[2])return k.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&e.getElementsByClassName)return k.apply(n,e.getElementsByClassName(i)),n}if(!(h[t+" "]||d&&d.test(t))){if(c=t,f=e,1===p&&(x.test(t)||m.test(t))){(f=H.test(t)&&U(e.parentNode)||e)==e&&le.scope||((s=e.getAttribute("id"))?s=ce.escapeSelector(s):e.setAttribute("id",s=S)),o=(l=Y(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+Q(l[o]);c=l.join(",")}try{return k.apply(n,f.querySelectorAll(c)),n}catch(e){h(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return re(t.replace(ve,"$1"),e,n,r)}function W(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function F(e){return e[S]=!0,e}function $(e){var t=T.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function B(t){return function(e){return fe(e,"input")&&e.type===t}}function _(t){return function(e){return(fe(e,"input")||fe(e,"button"))&&e.type===t}}function z(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&R(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function X(a){return F(function(o){return o=+o,F(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function U(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function V(e){var t,n=e?e.ownerDocument||e:ye;return n!=T&&9===n.nodeType&&n.documentElement&&(r=(T=n).documentElement,C=!ce.isXMLDoc(T),i=r.matches||r.webkitMatchesSelector||r.msMatchesSelector,r.msMatchesSelector&&ye!=T&&(t=T.defaultView)&&t.top!==t&&t.addEventListener("unload",M),le.getById=$(function(e){return r.appendChild(e).id=ce.expando,!T.getElementsByName||!T.getElementsByName(ce.expando).length}),le.disconnectedMatch=$(function(e){return i.call(e,"*")}),le.scope=$(function(){return T.querySelectorAll(":scope")}),le.cssHas=$(function(){try{return T.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),le.getById?(b.filter.ID=function(e){var t=e.replace(O,P);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(O,P);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&C){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},b.find.CLASS=function(e,t){if("undefined"!=typeof t.getElementsByClassName&&C)return t.getElementsByClassName(e)},d=[],$(function(e){var t;r.appendChild(e).innerHTML="",e.querySelectorAll("[selected]").length||d.push("\\["+ge+"*(?:value|"+f+")"),e.querySelectorAll("[id~="+S+"-]").length||d.push("~="),e.querySelectorAll("a#"+S+"+*").length||d.push(".#.+[+~]"),e.querySelectorAll(":checked").length||d.push(":checked"),(t=T.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),r.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&d.push(":enabled",":disabled"),(t=T.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||d.push("\\["+ge+"*name"+ge+"*="+ge+"*(?:''|\"\")")}),le.cssHas||d.push(":has"),d=d.length&&new RegExp(d.join("|")),l=function(e,t){if(e===t)return a=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!le.sortDetached&&t.compareDocumentPosition(e)===n?e===T||e.ownerDocument==ye&&I.contains(ye,e)?-1:t===T||t.ownerDocument==ye&&I.contains(ye,t)?1:o?se.call(o,e)-se.call(o,t):0:4&n?-1:1)}),T}for(e in I.matches=function(e,t){return I(e,null,null,t)},I.matchesSelector=function(e,t){if(V(e),C&&!h[t+" "]&&(!d||!d.test(t)))try{var n=i.call(e,t);if(n||le.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){h(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(O,P),e[3]=(e[3]||e[4]||e[5]||"").replace(O,P),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||I.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&I.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return D.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&j.test(n)&&(t=Y(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(O,P).toLowerCase();return"*"===e?function(){return!0}:function(e){return fe(e,t)}},CLASS:function(e){var t=s[e+" "];return t||(t=new RegExp("(^|"+ge+")"+e+"("+ge+"|$)"))&&s(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=I.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function T(e,n,r){return v(n)?ce.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?ce.grep(e,function(e){return e===n!==r}):"string"!=typeof n?ce.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(ce.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||k,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:S.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof ce?t[0]:t,ce.merge(this,ce.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:C,!0)),w.test(r[1])&&ce.isPlainObject(t))for(r in t)v(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=C.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):v(e)?void 0!==n.ready?n.ready(e):e(ce):ce.makeArray(e,this)}).prototype=ce.fn,k=ce(C);var E=/^(?:parents|prev(?:Until|All))/,j={children:!0,contents:!0,next:!0,prev:!0};function A(e,t){while((e=e[t])&&1!==e.nodeType);return e}ce.fn.extend({has:function(e){var t=ce(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,Ce=/^$|^module$|\/(?:java|ecma)script/i;xe=C.createDocumentFragment().appendChild(C.createElement("div")),(be=C.createElement("input")).setAttribute("type","radio"),be.setAttribute("checked","checked"),be.setAttribute("name","t"),xe.appendChild(be),le.checkClone=xe.cloneNode(!0).cloneNode(!0).lastChild.checked,xe.innerHTML="",le.noCloneChecked=!!xe.cloneNode(!0).lastChild.defaultValue,xe.innerHTML="",le.option=!!xe.lastChild;var ke={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function Se(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&fe(e,t)?ce.merge([e],n):n}function Ee(e,t){for(var n=0,r=e.length;n",""]);var je=/<|&#?\w+;/;function Ae(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function Re(e,t){return fe(e,"table")&&fe(11!==t.nodeType?t:t.firstChild,"tr")&&ce(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function We(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Fe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(_.hasData(e)&&(s=_.get(e).events))for(i in _.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),C.head.appendChild(r[0])},abort:function(){i&&i()}}});var Jt,Kt=[],Zt=/(=)\?(?=&|$)|\?\?/;ce.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Kt.pop()||ce.expando+"_"+jt.guid++;return this[e]=!0,e}}),ce.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Zt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=v(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Zt,"$1"+r):!1!==e.jsonp&&(e.url+=(At.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||ce.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=ie[r],ie[r]=function(){o=arguments},n.always(function(){void 0===i?ce(ie).removeProp(r):ie[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Kt.push(r)),o&&v(i)&&i(o[0]),o=i=void 0}),"script"}),le.createHTMLDocument=((Jt=C.implementation.createHTMLDocument("").body).innerHTML="
",2===Jt.childNodes.length),ce.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(le.createHTMLDocument?((r=(t=C.implementation.createHTMLDocument("")).createElement("base")).href=C.location.href,t.head.appendChild(r)):t=C),o=!n&&[],(i=w.exec(e))?[t.createElement(i[1])]:(i=Ae([e],t,o),o&&o.length&&ce(o).remove(),ce.merge([],i.childNodes)));var r,i,o},ce.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(ce.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},ce.expr.pseudos.animated=function(t){return ce.grep(ce.timers,function(e){return t===e.elem}).length},ce.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=ce.css(e,"position"),c=ce(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=ce.css(e,"top"),u=ce.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),v(t)&&(t=t.call(e,n,ce.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},ce.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){ce.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===ce.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===ce.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=ce(e).offset()).top+=ce.css(e,"borderTopWidth",!0),i.left+=ce.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-ce.css(r,"marginTop",!0),left:t.left-i.left-ce.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===ce.css(e,"position"))e=e.offsetParent;return e||J})}}),ce.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;ce.fn[t]=function(e){return M(this,function(e,t,n){var r;if(y(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),ce.each(["top","left"],function(e,n){ce.cssHooks[n]=Ye(le.pixelPosition,function(e,t){if(t)return t=Ge(e,n),_e.test(t)?ce(e).position()[n]+"px":t})}),ce.each({Height:"height",Width:"width"},function(a,s){ce.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){ce.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return M(this,function(e,t,n){var r;return y(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?ce.css(e,t,i):ce.style(e,t,n,i)},s,n?e:void 0,n)}})}),ce.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){ce.fn[t]=function(e){return this.on(t,e)}}),ce.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.on("mouseenter",e).on("mouseleave",t||e)}}),ce.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){ce.fn[n]=function(e,t){return 0div{background-color:red;height:100%;width:6px;margin-right:5px;display:inline-block;-webkit-animation:sk-stretchdelay 1.2s infinite ease-in-out;animation:sk-stretchdelay 1.2s infinite ease-in-out}.haiyen-loader .spinner .rect2{-webkit-animation-delay:-1.1s;animation-delay:-1.1s}.haiyen-loader .spinner .rect3{-webkit-animation-delay:-1s;animation-delay:-1s}.haiyen-loader .spinner .rect4{-webkit-animation-delay:-.9s;animation-delay:-.9s}.haiyen-loader .spinner .rect5{-webkit-animation-delay:-.8s;animation-delay:-.8s}@-webkit-keyframes sk-stretchdelay{0%,100%,40%{-webkit-transform:scaleY(.4)}20%{-webkit-transform:scaleY(1)}}@keyframes sk-stretchdelay{0%,100%,40%{transform:scaleY(.4);-webkit-transform:scaleY(.4)}20%{transform:scaleY(1);-webkit-transform:scaleY(1)}} \ No newline at end of file +/* Sat Sep 09 2023 14:09:16 GMT+0700 (Indochina Time) */.haiyen-loader{position:fixed;left:0;top:0;width:100%;height:100%;z-index:999999;background:rgba(255,255,255,.78)}.haiyen-loader .spinner{width:55px;height:70px;position:absolute;top:50%;left:50%;margin-top:-70px;margin-left:-65px}.haiyen-loader .spinner>div{background-color:red;height:100%;width:6px;margin-right:5px;display:inline-block;-webkit-animation:sk-stretchdelay 1.2s infinite ease-in-out;animation:sk-stretchdelay 1.2s infinite ease-in-out}.haiyen-loader .spinner .rect2{-webkit-animation-delay:-1.1s;animation-delay:-1.1s}.haiyen-loader .spinner .rect3{-webkit-animation-delay:-1s;animation-delay:-1s}.haiyen-loader .spinner .rect4{-webkit-animation-delay:-.9s;animation-delay:-.9s}.haiyen-loader .spinner .rect5{-webkit-animation-delay:-.8s;animation-delay:-.8s}@-webkit-keyframes sk-stretchdelay{0%,100%,40%{-webkit-transform:scaleY(.4)}20%{-webkit-transform:scaleY(1)}}@keyframes sk-stretchdelay{0%,100%,40%{transform:scaleY(.4);-webkit-transform:scaleY(.4)}20%{transform:scaleY(1);-webkit-transform:scaleY(1)}} \ No newline at end of file diff --git a/src/applications/mixcore/wwwroot/mix-app/css/app-vendor-scss.min.css b/src/applications/mixcore/wwwroot/mix-app/css/app-vendor-scss.min.css index c0945d800..e4b998e46 100644 --- a/src/applications/mixcore/wwwroot/mix-app/css/app-vendor-scss.min.css +++ b/src/applications/mixcore/wwwroot/mix-app/css/app-vendor-scss.min.css @@ -1,4 +1,4 @@ -/* Sun Feb 04 2024 20:54:58 GMT+0700 (Indochina Time) */qr-code .qr-output canvas { +/* Sat Sep 09 2023 14:08:55 GMT+0700 (Indochina Time) */qr-code .qr-output canvas { max-width: 100%; } fb-login { @@ -33,6 +33,9 @@ mix-module-data-table .preview-container { max-height: 4em; overflow: hidden; } +qr-code .qr-output canvas { + max-width: 100%; } + #dlg-preview-popup .modal-body img { display: block; margin: 0 auto; @@ -42,9 +45,6 @@ mix-module-data-table .preview-container { #dlg-preview-popup pre { overflow: visible; } -qr-code .qr-output canvas { - max-width: 100%; } - /* PROPORTIONALLY resize the canvas to the intended viewing size */ /* canvas{width:300px; height:380px;} */ upload-croppie .cr-boundary { @@ -127,10 +127,6 @@ div[dnd-list] .dnd-item.selected { background-color: #dff0d8; color: #3c763d; } -.table-data td.preview { - max-width: 120px; - overflow: hidden; } - .mouse { z-index: 9999999; width: 70px; @@ -192,14 +188,15 @@ mix-database-nav-values mix-column-preview .rowx { max-height: 110px; overflow: hidden; } -.attr-set-value-item:last-child { - border-bottom: 0 !important; } - @media (min-width: 992px) { #modal-content-filter .modal-lg, #modal-content-filter .modal-xl { max-width: 80vw; } } +.table-data td.preview { + max-width: 120px; + overflow: hidden; } + .content { width: 100%; display: flex; diff --git a/src/applications/mixcore/wwwroot/mix-app/css/app-vendor.min.css b/src/applications/mixcore/wwwroot/mix-app/css/app-vendor.min.css index 98db64148..116460f48 100644 --- a/src/applications/mixcore/wwwroot/mix-app/css/app-vendor.min.css +++ b/src/applications/mixcore/wwwroot/mix-app/css/app-vendor.min.css @@ -1,7 +1,7 @@ -/* Sun Feb 04 2024 20:54:58 GMT+0700 (Indochina Time) */@charset "UTF-8";.tui-editor-contents .task-list-item:before,.tui-editor-contents ol li.task-list-item:before,.tui-editor-contents pre ul li:before,.tui-editor-contents ul li.task-list-item:before,.youtube .play-button:before{content:""}#return-to-top{position:fixed;bottom:20px;right:20px;background:#000;background:rgba(0,0,0,.7);width:50px;height:50px;text-decoration:none;-webkit-border-radius:35px;-moz-border-radius:35px;border-radius:35px;display:none;-webkit-transition:all .3s linear;-moz-transition:all .3s ease;-ms-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease;z-index:9}#return-to-top:hover{background:rgba(0,0,0,.9)}#return-to-top i{color:#fff;margin:0;position:relative;left:4px;top:0;font-size:30px;-webkit-transition:all .3s ease;-moz-transition:all .3s ease;-ms-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}#return-to-top:hover i{color:#fff;top:5px}@media (min-width:992px){.language-switcher{display:inline;position:absolute;right:150px;bottom:15px}.language-switcher.portal{bottom:0}.language-switcher .dropdown-menu{right:0}}@media screen and (max-width:991px){.language-switcher{display:inline;position:absolute;left:20px}.language-switcher .dropdown-menu{left:0}}.language-switcher .dropdown-menu{width:250px;overflow:hidden!important}.navbar-collapse .dropdown-menu .dropdown-item{color:#444}.dialogdemoThemeInheritance .container{text-align:center}.data-table .header{padding:10px;font-weight:700;background:#d3d3d3}.mix-loader-container{top:0;left:0;width:100%;height:100%;position:fixed;background-color:#21252987;opacity:.97;z-index:9999;display:flex;justify-content:center;align-items:center}.mix-loader-container .spinner{margin:100px auto;width:40px;height:40px;position:relative;text-align:center;-webkit-animation:sk-rotate 2s infinite linear;animation:sk-rotate 2s infinite linear}.mix-loader-container .dot1,.mix-loader-container .dot2{width:60%;height:60%;display:inline-block;position:absolute;top:0;background-color:#fff;border-radius:100%;-webkit-animation:sk-bounce 2s infinite ease-in-out;animation:sk-bounce 2s infinite ease-in-out}.mix-loader-container .dot2{top:auto;bottom:0;-webkit-animation-delay:-1s;animation-delay:-1s}@-webkit-keyframes sk-rotate{100%{-webkit-transform:rotate(360deg)}}@keyframes sk-rotate{100%{transform:rotate(360deg);-webkit-transform:rotate(360deg)}}@-webkit-keyframes sk-bounce{0%,100%{-webkit-transform:scale(0)}50%{-webkit-transform:scale(1)}}@keyframes sk-bounce{0%,100%{transform:scale(0);-webkit-transform:scale(0)}50%{transform:scale(1);-webkit-transform:scale(1)}}.lds-ellipsis{display:inline-block;position:relative;width:80px;height:80px}.lds-ellipsis div{position:absolute;top:33px;width:13px;height:13px;border-radius:50%;background:#fff;animation-timing-function:cubic-bezier(0,1,1,0)}.lds-ellipsis div:nth-child(1){left:8px;animation:lds-ellipsis1 .6s infinite}.lds-ellipsis div:nth-child(2){left:8px;animation:lds-ellipsis2 .6s infinite}.lds-ellipsis div:nth-child(3){left:32px;animation:lds-ellipsis2 .6s infinite}.lds-ellipsis div:nth-child(4){left:56px;animation:lds-ellipsis3 .6s infinite}@keyframes lds-ellipsis1{0%{transform:scale(0)}100%{transform:scale(1)}}@keyframes lds-ellipsis3{0%{transform:scale(1)}100%{transform:scale(0)}}@keyframes lds-ellipsis2{0%{transform:translate(0,0)}100%{transform:translate(24px,0)}}#dlg-preview-popup .modal-body .img{max-width:100%}quill-editor .ql-container{min-height:300px;overflow:auto}quill-editor .ql-toolbar{position:sticky!important;top:3.9rem;z-index:12;background-color:#fff}#modal-shopping-cart .modal-title{margin-top:0}#modal-shopping-cart .cart-item{margin:10px 0}#modal-shopping-cart .modal-dialog{max-width:unset;margin:20px}#modal-shopping-cart{color:#5c4b43;z-index:1060}#modal-shopping-cart .modal-footer button{margin:0 10px}.snowflake{display:block;position:absolute;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0);-webkit-user-select:none;-moz-user-select:none;user-select:none;background-image:-webkit-radial-gradient(center,circle farthest-corner,rgba(255,255,255,1) 40%,rgba(255,255,255,0) 100%);background-image:-moz-radial-gradient(center,circle farthest-corner,rgba(255,255,255,1) 40%,rgba(255,255,255,0) 100%);background-image:-ms-radial-gradient(center,circle farthest-corner,rgba(255,255,255,1) 40%,rgba(255,255,255,0) 100%);background-image:radial-gradient(center,circle farthest-corner,rgba(255,255,255,1) 40%,rgba(255,255,255,0) 100%)}#snow{position:fixed;width:100%;height:100%}.star-rating{margin:0;padding:0;display:inline-block}.star-rating .star{padding:1px;color:#ddd;font-size:12px;text-shadow:.05em .05em #aaa;list-style-type:none;display:inline-block;cursor:pointer}.star-rating .star.filled{color:#fd0}.star-rating.readonly .star.filled{color:#666}.youtube{background-color:#000;margin-bottom:30px;position:relative;padding-top:56.25%;overflow:hidden;cursor:pointer}.youtube img{width:100%;top:-16.82%;left:0;opacity:.7}.youtube .play-button{width:90px;height:60px;background-color:#333;box-shadow:0 0 30px rgba(0,0,0,.6);z-index:1;opacity:.8;border-radius:6px}.now-ui-icons.circle,tags-input[disabled] .tags,tags-input[disabled] .tags .input{background-color:#eee}.youtube .play-button:before{border-style:solid;border-width:15px 0 15px 26px;border-color:transparent transparent transparent #fff}.youtube .play-button,.youtube img{cursor:pointer}.youtube .play-button,.youtube .play-button:before,.youtube iframe,.youtube img{position:absolute}.youtube .play-button,.youtube .play-button:before{top:50%;left:50%;transform:translate3d(-50%,-50%,0)}.youtube iframe{height:100%;width:100%;top:0;left:0}tags-input{box-shadow:none;border:none;padding:0;min-height:34px}tags-input .tags{border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-moz-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}tags-input .tags .tag-item{color:#000}tags-input .tags .tag-item.selected{color:#fff;border:1px solid #d43f3a}tags-input .tags .tag-item .remove-button:hover{text-decoration:none}tags-input .tags.focused{border:1px solid #66afe9}tags-input .autocomplete{border-radius:4px}tags-input.ng-invalid .tags{border-color:#843534}.input-group tags-input{padding:0;display:table-cell}.input-group tags-input:not(:first-child) .tags{border-top-left-radius:0;border-bottom-left-radius:0}.input-group tags-input:not(:last-child) .tags{border-top-right-radius:0;border-bottom-right-radius:0}.input-group-lg tags-input:first-child .tags{border-top-left-radius:6px;border-bottom-left-radius:6px}.input-group-lg tags-input:last-child .tags{border-top-right-radius:6px;border-bottom-right-radius:6px}.input-group-sm tags-input:first-child .tags{border-top-left-radius:3px;border-bottom-left-radius:3px}.input-group-sm tags-input:last-child .tags{border-top-right-radius:3px;border-bottom-right-radius:3px}.input-group-lg tags-input,tags-input.ti-input-lg{min-height:46px}.input-group-lg tags-input .tags,tags-input.ti-input-lg .tags{border-radius:6px}.input-group-lg tags-input .tags .tag-item,tags-input.ti-input-lg .tags .tag-item{height:38px;line-height:37px;font-size:18px;border-radius:6px}.input-group-lg tags-input .tags .tag-item .remove-button,tags-input.ti-input-lg .tags .tag-item .remove-button{font-size:20px}.input-group-lg tags-input .tags .input,tags-input.ti-input-lg .tags .input{height:38px;font-size:18px}.input-group-sm tags-input,tags-input.ti-input-sm{min-height:30px}.input-group-sm tags-input .tags,tags-input.ti-input-sm .tags{border-radius:3px}.input-group-sm tags-input .tags .tag-item,tags-input.ti-input-sm .tags .tag-item{height:22px;line-height:21px;font-size:12px;border-radius:3px}.input-group-sm tags-input .tags .tag-item .remove-button,tags-input.ti-input-sm .tags .tag-item .remove-button{font-size:16px}.input-group-sm tags-input .tags .input,tags-input.ti-input-sm .tags .input{height:22px;font-size:12px}.has-feedback tags-input .tags{padding-right:30px}.has-success tags-input .tags{border-color:#3c763d}.has-success tags-input .tags.focused{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-error tags-input .tags{border-color:#a94442}.has-error tags-input .tags.focused{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-warning tags-input .tags{border-color:#8a6d3b}.has-warning tags-input .tags.focused{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}tags-input{display:block}tags-input *,tags-input :after,tags-input :before{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}tags-input .host{margin:5px 0;position:relative;height:100%}tags-input .host:active{outline:0}tags-input .tags{-moz-appearance:textfield;-webkit-appearance:textfield;padding:1px;overflow:hidden;word-wrap:break-word;cursor:text;background-color:#fff;border:1px solid #a9a9a9;box-shadow:1px 1px 1px 0 #d3d3d3 inset;height:100%}tags-input .tags.focused{outline:0;-webkit-box-shadow:0 0 3px 1px rgba(5,139,242,.6);-moz-box-shadow:0 0 3px 1px rgba(5,139,242,.6);box-shadow:0 0 3px 1px rgba(5,139,242,.6)}tags-input .tags .tag-list{margin:0;padding:0;list-style-type:none}tags-input .tags .tag-item{margin:2px;padding:0 5px;display:inline-block;float:left;font:14px "Helvetica Neue",Helvetica,Arial,sans-serif;height:26px;line-height:25px;border:1px solid #acacac;border-radius:3px;background:-webkit-linear-gradient(top,#f0f9ff 0,#cbebff 47%,#a1dbff 100%);background:linear-gradient(to bottom,#f0f9ff 0,#cbebff 47%,#a1dbff 100%)}tags-input .tags .tag-item.selected{background:-webkit-linear-gradient(top,#febbbb 0,#fe9090 45%,#ff5c5c 100%);background:linear-gradient(to bottom,#febbbb 0,#fe9090 45%,#ff5c5c 100%)}tags-input .tags .tag-item .remove-button{margin:0 0 0 5px;padding:0;border:none;background:0 0;cursor:pointer;vertical-align:middle;font:700 16px Arial,sans-serif;color:#585858}tags-input[disabled] .tags,tags-input[disabled] .tags .input,tags-input[disabled] .tags .tag-item .remove-button{cursor:default}tags-input .tags .input.invalid-tag,tags-input .tags .tag-item .remove-button:active{color:red}tags-input .tags .input{border:0;outline:0;margin:2px;padding:0 0 0 5px;float:left;height:26px;font:14px "Helvetica Neue",Helvetica,Arial,sans-serif}tags-input .tags .input::-ms-clear{display:none}tags-input.ng-invalid .tags{-webkit-box-shadow:0 0 3px 1px rgba(255,0,0,.6);-moz-box-shadow:0 0 3px 1px rgba(255,0,0,.6);box-shadow:0 0 3px 1px rgba(255,0,0,.6)}tags-input[disabled] .host:focus{outline:0}tags-input[disabled] .tags .tag-item{opacity:.65;background:-webkit-linear-gradient(top,#f0f9ff 0,rgba(203,235,255,.75) 47%,rgba(161,219,255,.62) 100%);background:linear-gradient(to bottom,#f0f9ff 0,rgba(203,235,255,.75) 47%,rgba(161,219,255,.62) 100%)}tags-input[disabled] .tags .tag-item .remove-button:active{color:#585858}tags-input .autocomplete{margin-top:5px;position:absolute;padding:5px 0;z-index:999;width:100%;background-color:#fff;border:1px solid rgba(0,0,0,.2);-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}tags-input .autocomplete .suggestion-list{margin:0;padding:0;list-style-type:none;max-height:280px;overflow-y:auto;position:relative}tags-input .autocomplete .suggestion-item{padding:5px 10px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:16px "Helvetica Neue",Helvetica,Arial,sans-serif;color:#000;background-color:#fff}tags-input .autocomplete .suggestion-item.selected,tags-input .autocomplete .suggestion-item.selected em{color:#fff;background-color:#0097cf}tags-input .autocomplete .suggestion-item em{font:normal 700 16px "Helvetica Neue",Helvetica,Arial,sans-serif;color:#000;background-color:#fff}.portal-menus ul[dnd-list],.portal-menus ul[dnd-list]>li{position:relative}.portal-menus ul[dnd-list]{min-height:42px;padding-left:0}.portal-menus ul[dnd-list] .dndDraggingSource{display:none}.portal-menus ul[dnd-list] .dndPlaceholder{display:block;background-color:#ddd;padding:10px 15px;min-height:42px}.portal-menus ul[dnd-list] li{background-color:#fff;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;display:block;margin-bottom:-1px;position:relative;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.alertify .ajs-dimmer,.alertify .ajs-modal{position:fixed;z-index:1981;top:0;right:0;bottom:0;left:0}.portal-menus ul[dnd-list] li dnd-nodrag{display:block;padding:10px 15px}.portal-menus .handle{cursor:move}.alertify .ajs-dimmer{padding:0;margin:0;background-color:#252525;opacity:.5}.alertify .ajs-modal{padding:0;overflow-y:auto}.alertify .ajs-dialog{position:relative;margin:5% auto;min-height:110px;max-width:500px;padding:24px 24px 0;outline:0;background-color:#fff}.alertify .ajs-dialog.ajs-capture:before{content:'';position:absolute;top:0;right:0;bottom:0;left:0;display:block;z-index:1}.alertify .ajs-reset{position:absolute!important;display:inline!important;width:0!important;height:0!important;opacity:0!important}.alertify .ajs-commands{position:absolute;right:4px;margin:-14px 24px 0 0;z-index:2}.alertify .ajs-commands button{display:none;width:10px;height:10px;margin-left:10px;padding:10px;border:0;background-color:transparent;background-repeat:no-repeat;background-position:center;cursor:pointer}.alertify .ajs-commands button.ajs-close{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAh0lEQVQYlY2QsQ0EIQwEB9cBAR1CJUaI/gigDnwR6NBL/7/xWLNrZ2b8EwGotVpr7eOitWa1VjugiNB7R1UPrKrWe0dEAHBbXUqxMQbeewDmnHjvyTm7C3zDwAUd9c63YQdUVdu6EAJzzquz7HXvTiklt+H9DQFYaxFjvDqllFyMkbXWvfpXHjJrWFgdBq/hAAAAAElFTkSuQmCC)}.alertify .ajs-commands button.ajs-maximize{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAOUlEQVQYlWP8//8/AzGAhYGBgaG4uBiv6t7eXkYmooxjYGAgWiELsvHYFMCcRX2rSXcjoSBiJDbAAeD+EGu+8BZcAAAAAElFTkSuQmCC)}.alertify .ajs-header{margin:-24px -24px 0;padding:16px 24px;background-color:#fff}.alertify .ajs-body{min-height:56px}.alertify .ajs-body .ajs-content{padding:16px 24px 16px 16px}.alertify .ajs-footer{padding:4px;margin-left:-24px;margin-right:-24px;min-height:43px;background-color:#fff}.alertify .ajs-footer .ajs-buttons.ajs-auxiliary .ajs-button,.alertify .ajs-footer .ajs-buttons.ajs-primary .ajs-button{margin:4px}.alertify .ajs-footer .ajs-buttons.ajs-primary{text-align:right}.alertify .ajs-footer .ajs-buttons.ajs-auxiliary{float:left;clear:none;text-align:left}.alertify .ajs-footer .ajs-buttons .ajs-button{min-width:88px;min-height:35px}.alertify .ajs-handle{position:absolute;display:none;width:10px;height:10px;right:0;bottom:0;z-index:1;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMS8xNEDQYmMAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAQ0lEQVQYlaXNMQoAIAxD0dT7H657l0KX3iJuUlBUNOsPPCGJm7VDp6ryeMxMuDsAQH7owW3pyn3RS26iKxERMLN3ugOaAkaL3sWVigAAAABJRU5ErkJggg==);-webkit-transform:scaleX(1);transform:scaleX(1);cursor:se-resize}.alertify.ajs-no-overflow .ajs-body .ajs-content{overflow:hidden!important}.alertify.ajs-no-padding.ajs-maximized .ajs-body .ajs-content{left:0;right:0;padding:0}.alertify.ajs-no-padding:not(.ajs-maximized) .ajs-body{margin-left:-24px;margin-right:-24px}.alertify.ajs-no-padding:not(.ajs-maximized) .ajs-body .ajs-content{padding:0}.alertify.ajs-no-padding.ajs-resizable .ajs-body .ajs-content{left:0;right:0}.alertify.ajs-closable .ajs-commands button.ajs-close,.alertify.ajs-maximizable .ajs-commands button.ajs-maximize,.alertify.ajs-maximizable .ajs-commands button.ajs-restore{display:inline-block}.alertify.ajs-maximized .ajs-dialog{width:100%!important;height:100%!important;max-width:none!important;margin:0 auto!important;top:0!important;left:0!important}.alertify.ajs-maximized.ajs-modeless .ajs-modal{position:fixed!important;min-height:100%!important;max-height:none!important;margin:0!important}.alertify.ajs-maximized .ajs-commands button.ajs-maximize{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAASklEQVQYlZWQ0QkAMQhDtXRincOZX78KVtrDCwgqJNEoIB3MPLj7lRUROlpyVXGzby6zWuY+kz6tj5sBMTMAyVV3/595RbOh3cAXsww1raeiOcoAAAAASUVORK5CYII=)}.alertify.ajs-maximized .ajs-dialog,.alertify.ajs-resizable .ajs-dialog{padding:0}.alertify.ajs-maximized .ajs-commands,.alertify.ajs-resizable .ajs-commands{margin:14px 24px 0 0}.alertify.ajs-maximized .ajs-header,.alertify.ajs-resizable .ajs-header{position:absolute;top:0;left:0;right:0;margin:0;padding:16px 24px}.alertify.ajs-maximized .ajs-body,.alertify.ajs-resizable .ajs-body{min-height:224px;display:inline-block}.alertify.ajs-maximized .ajs-body .ajs-content,.alertify.ajs-resizable .ajs-body .ajs-content{position:absolute;top:50px;right:24px;bottom:50px;left:24px;overflow:auto}.alertify.ajs-maximized .ajs-footer,.alertify.ajs-resizable .ajs-footer{position:absolute;left:0;right:0;bottom:0;margin:0}.alertify.ajs-resizable:not(.ajs-maximized) .ajs-dialog{min-width:548px}.alertify.ajs-resizable:not(.ajs-maximized) .ajs-handle{display:block}.alertify.ajs-movable:not(.ajs-maximized) .ajs-header{cursor:move}.alertify.ajs-modeless .ajs-dimmer,.alertify.ajs-modeless .ajs-reset{display:none}.alertify.ajs-modeless .ajs-modal{overflow:visible;max-width:none;max-height:0}.alertify.ajs-modeless.ajs-pinnable .ajs-commands button.ajs-pin{display:inline-block;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAQklEQVQYlcWPMQ4AIAwCqU9u38GbcbHRWN1MvKQDhQFMEpKImGJA0gCgnYw0V0rwxseg5erT4oSkQVI5d9f+e9+xA0NbLpWfitPXAAAAAElFTkSuQmCC)}.alertify.ajs-modeless.ajs-unpinned .ajs-modal{position:absolute}.alertify.ajs-modeless.ajs-unpinned .ajs-commands button.ajs-pin{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAO0lEQVQYlWP8//8/AzGAiShV6AqLi4txGs+CLoBLMYbC3t5eRmyaWfBZhwwYkX2NTxPRvibKjRhW4wMAhxkYGbLu3pEAAAAASUVORK5CYII=)}.alertify.ajs-modeless:not(.ajs-unpinned) .ajs-body{max-height:500px;overflow:auto}.alertify.ajs-basic .ajs-header{opacity:0}.alertify.ajs-basic .ajs-footer{visibility:hidden}.alertify.ajs-frameless .ajs-header{position:absolute;top:0;left:0;right:0;min-height:60px;margin:0;padding:0;opacity:0;z-index:1}.alertify.ajs-frameless .ajs-footer{display:none}.alertify.ajs-frameless .ajs-body .ajs-content{position:absolute;top:0;right:0;bottom:0;left:0}.alertify.ajs-frameless:not(.ajs-resizable) .ajs-dialog{padding-top:0}.alertify.ajs-frameless:not(.ajs-resizable) .ajs-dialog .ajs-commands{margin-top:0}.ajs-no-overflow{overflow:hidden!important;outline:0}.ajs-no-overflow.ajs-fixed{position:fixed;top:0;right:0;bottom:0;left:0;overflow-y:scroll!important}.ajs-no-selection,.ajs-no-selection *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@media screen and (max-width:568px){.alertify .ajs-dialog{min-width:150px}.alertify:not(.ajs-maximized) .ajs-modal{padding:0 5%}.alertify:not(.ajs-maximized).ajs-resizable .ajs-dialog{min-width:initial;min-width:auto}}@-moz-document url-prefix(){.alertify button:focus{outline:#3593d2 dotted 1px}}.alertify .ajs-dimmer,.alertify .ajs-modal{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-transition-property:opacity,visibility;transition-property:opacity,visibility;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transition-duration:250ms;transition-duration:250ms}.alertify.ajs-hidden .ajs-dimmer,.alertify.ajs-hidden .ajs-modal{visibility:hidden;opacity:0}.alertify.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-duration:.5s;animation-duration:.5s}.alertify.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-duration:250ms;animation-duration:250ms}.alertify .ajs-dialog.ajs-shake{-webkit-animation-name:ajs-shake;animation-name:ajs-shake;-webkit-animation-duration:.1s;animation-duration:.1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes ajs-shake{0%,100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes ajs-shake{0%,100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.alertify.ajs-slide.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-name:ajs-slideIn;animation-name:ajs-slideIn;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1.275);animation-timing-function:cubic-bezier(.175,.885,.32,1.275)}.alertify.ajs-slide.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-name:ajs-slideOut;animation-name:ajs-slideOut;-webkit-animation-timing-function:cubic-bezier(.6,-.28,.735,.045);animation-timing-function:cubic-bezier(.6,-.28,.735,.045)}.alertify.ajs-zoom.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-name:ajs-zoomIn;animation-name:ajs-zoomIn}.alertify.ajs-zoom.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-name:ajs-zoomOut;animation-name:ajs-zoomOut}.alertify.ajs-fade.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-name:ajs-fadeIn;animation-name:ajs-fadeIn}.alertify.ajs-fade.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-name:ajs-fadeOut;animation-name:ajs-fadeOut}.alertify.ajs-pulse.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-name:ajs-pulseIn;animation-name:ajs-pulseIn}.alertify.ajs-pulse.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-name:ajs-pulseOut;animation-name:ajs-pulseOut}.alertify.ajs-flipx.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-name:ajs-flipInX;animation-name:ajs-flipInX}.alertify.ajs-flipx.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-name:ajs-flipOutX;animation-name:ajs-flipOutX}.alertify.ajs-flipy.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-name:ajs-flipInY;animation-name:ajs-flipInY}.alertify.ajs-flipy.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-name:ajs-flipOutY;animation-name:ajs-flipOutY}@-webkit-keyframes ajs-pulseIn{0%,100%,20%,40%,60%,80%{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes ajs-pulseIn{0%,100%,20%,40%,60%,80%{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@-webkit-keyframes ajs-pulseOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}100%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes ajs-pulseOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}100%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes ajs-zoomIn{0%{opacity:0;-webkit-transform:scale3d(.25,.25,.25);transform:scale3d(.25,.25,.25)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes ajs-zoomIn{0%{opacity:0;-webkit-transform:scale3d(.25,.25,.25);transform:scale3d(.25,.25,.25)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@-webkit-keyframes ajs-zoomOut{0%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}100%{opacity:0;-webkit-transform:scale3d(.25,.25,.25);transform:scale3d(.25,.25,.25)}}@keyframes ajs-zoomOut{0%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}100%{opacity:0;-webkit-transform:scale3d(.25,.25,.25);transform:scale3d(.25,.25,.25)}}@-webkit-keyframes ajs-fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes ajs-fadeIn{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes ajs-fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes ajs-fadeOut{0%{opacity:1}100%{opacity:0}}@-webkit-keyframes ajs-flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes ajs-flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@-webkit-keyframes ajs-flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}@keyframes ajs-flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}@-webkit-keyframes ajs-flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes ajs-flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@-webkit-keyframes ajs-flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}@keyframes ajs-flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}@-webkit-keyframes ajs-slideIn{0%{margin-top:-100%}100%{margin-top:5%}}@keyframes ajs-slideIn{0%{margin-top:-100%}100%{margin-top:5%}}@-webkit-keyframes ajs-slideOut{0%{margin-top:5%}100%{margin-top:-100%}}@keyframes ajs-slideOut{0%{margin-top:5%}100%{margin-top:-100%}}.alertify-notifier{position:fixed;width:0;overflow:visible;z-index:1982;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.alertify-notifier .ajs-message{position:relative;width:260px;max-height:0;padding:0;opacity:0;margin:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-transition-duration:250ms;transition-duration:250ms;-webkit-transition-timing-function:linear;transition-timing-function:linear}.alertify-notifier .ajs-message.ajs-visible{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.275);transition-timing-function:cubic-bezier(.175,.885,.32,1.275);opacity:1;max-height:100%;padding:15px;margin-top:10px}.alertify-notifier .ajs-message.ajs-success{background:rgba(91,189,114,.95)}.alertify-notifier .ajs-message.ajs-error{background:rgba(217,92,92,.95)}.alertify-notifier .ajs-message.ajs-warning{background:rgba(252,248,215,.95)}.alertify-notifier .ajs-message .ajs-close{position:absolute;top:0;right:0;width:16px;height:16px;cursor:pointer;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAABGdBTUEAALGPC/xhBQAAAFBJREFUGBl1j0EKADEIA+ve/P9f9bh1hEihNBfjVCO1v7RKVqJK4h8gM5cAPR42AkQEpSXPwMTyoi13n5N9YqJehm3Fnr7nL1D0ZEbD5OubGyC7a9gx+9eNAAAAAElFTkSuQmCC);background-repeat:no-repeat;background-position:center center;background-color:rgba(0,0,0,.5);border-top-right-radius:2px}.alertify-notifier.ajs-top{top:10px}.alertify-notifier.ajs-bottom{bottom:10px}.alertify-notifier.ajs-right{right:10px}.alertify-notifier.ajs-right .ajs-message{right:-320px}.alertify-notifier.ajs-right .ajs-message.ajs-visible{right:290px}.alertify-notifier.ajs-left{left:10px}.alertify-notifier.ajs-left .ajs-message{left:-300px}.alertify-notifier.ajs-left .ajs-message.ajs-visible{left:0}.alertify-notifier.ajs-center{left:50%}.alertify-notifier.ajs-center .ajs-message{-webkit-transform:translateX(-50%);transform:translateX(-50%)}.alertify-notifier.ajs-center .ajs-message.ajs-visible{left:50%;-webkit-transition-timing-function:cubic-bezier(.57,.43,.1,.65);transition-timing-function:cubic-bezier(.57,.43,.1,.65)}.alertify-notifier.ajs-center.ajs-top .ajs-message{top:-300px}.alertify-notifier.ajs-center.ajs-top .ajs-message.ajs-visible{top:0}.alertify-notifier.ajs-center.ajs-bottom .ajs-message{bottom:-300px}.alertify-notifier.ajs-center.ajs-bottom .ajs-message.ajs-visible{bottom:0}.ajs-no-transition.alertify .ajs-dialog,.ajs-no-transition.alertify .ajs-dimmer,.ajs-no-transition.alertify .ajs-modal,.ajs-no-transition.alertify-notifier .ajs-message{-webkit-transition:none!important;transition:none!important;-webkit-animation:none!important;animation:none!important}@media (prefers-reduced-motion:reduce){.alertify .ajs-dialog,.alertify .ajs-dimmer,.alertify .ajs-modal,.alertify-notifier .ajs-message{-webkit-transition:none!important;transition:none!important;-webkit-animation:none!important;animation:none!important}}#trumbowyg-icons,#trumbowyg-icons svg{height:0;width:0}#trumbowyg-icons{overflow:hidden;visibility:hidden}.trumbowyg-box *,.trumbowyg-box ::after,.trumbowyg-box ::before,.trumbowyg-modal *,.trumbowyg-modal ::after,.trumbowyg-modal ::before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*,.trumbowyg-editor,.trumbowyg-textarea{-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.trumbowyg-box svg,.trumbowyg-modal svg{width:17px;height:100%;fill:#222}.trumbowyg-box,.trumbowyg-editor{display:block;position:relative;border:1px solid #DDD;width:100%;min-height:300px}.trumbowyg-box .trumbowyg-editor{margin:0 auto}.trumbowyg-box.trumbowyg-fullscreen{background:#FEFEFE;border:none!important}.trumbowyg-editor,.trumbowyg-textarea{position:relative;box-sizing:border-box;padding:20px;min-height:300px;width:100%;border-style:none;resize:none;outline:0;overflow:auto;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.trumbowyg-editor.trumbowyg-autogrow-on-enter,.trumbowyg-textarea.trumbowyg-autogrow-on-enter{-webkit-transition:height .3s ease-out;-o-transition:height .3s ease-out;transition:height .3s ease-out}.trumbowyg-box-blur .trumbowyg-editor *,.trumbowyg-box-blur .trumbowyg-editor::before{color:transparent!important;text-shadow:0 0 7px #333}@media screen and (min-width:0 \0){.trumbowyg-box-blur .trumbowyg-editor *,.trumbowyg-box-blur .trumbowyg-editor::before{color:rgba(200,200,200,.6)!important}}@supports (-ms-accelerator:true){.trumbowyg-box-blur .trumbowyg-editor *,.trumbowyg-box-blur .trumbowyg-editor::before{color:rgba(200,200,200,.6)!important}}.trumbowyg-box-blur .trumbowyg-editor hr,.trumbowyg-box-blur .trumbowyg-editor img{opacity:.2}.trumbowyg-textarea{position:relative;display:block;overflow:auto;border:none;font-size:14px;font-family:Inconsolata,Consolas,Courier,"Courier New",sans-serif;line-height:18px}.trumbowyg-box.trumbowyg-editor-visible .trumbowyg-textarea{height:1px!important;width:25%;min-height:0!important;padding:0!important;background:0 0;opacity:0!important}.trumbowyg-box.trumbowyg-editor-hidden .trumbowyg-textarea{display:block;margin-bottom:1px}.trumbowyg-box.trumbowyg-editor-hidden .trumbowyg-editor{display:none}.trumbowyg-box.trumbowyg-disabled .trumbowyg-textarea{opacity:.8;background:0 0}.trumbowyg-editor[contenteditable=true]:empty:not(:focus)::before{content:attr(placeholder);color:#999;pointer-events:none;white-space:break-spaces}.trumbowyg-button-pane{width:100%;min-height:36px;background:#ecf0f1;border-bottom:1px solid #d7e0e2;margin:0;padding:0 5px;position:relative;list-style-type:none;line-height:10px;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:11}.trumbowyg-button-pane::after{content:" ";display:block;position:absolute;top:36px;left:0;right:0;width:100%;height:1px;background:#d7e0e2}.trumbowyg-button-pane .trumbowyg-button-group{display:inline-block}.trumbowyg-button-pane .trumbowyg-button-group .trumbowyg-fullscreen-button svg{color:transparent}.trumbowyg-button-pane .trumbowyg-button-group::after{content:" ";display:inline-block;width:1px;background:#d7e0e2;margin:0 5px;height:35px;vertical-align:top}.bootstrap-tagsinput,.fa-stack,.md-avatar,.mi-stack,.trumbowyg-button-pane button{vertical-align:middle}.trumbowyg-button-pane .trumbowyg-button-group:last-child::after{content:none}.trumbowyg-button-pane button{display:inline-block;position:relative;width:35px;height:35px;padding:1px 6px!important;margin-bottom:1px;overflow:hidden;border:none;cursor:pointer;background:0 0;-webkit-transition:background-color 150ms,opacity 150ms;-o-transition:background-color 150ms,opacity 150ms;transition:background-color 150ms,opacity 150ms}.trumbowyg-button-pane button.trumbowyg-textual-button{width:auto;line-height:35px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.trumbowyg-button-pane button.trumbowyg-disable,.trumbowyg-button-pane.trumbowyg-disable button:not(.trumbowyg-not-disable):not(.trumbowyg-active),.trumbowyg-disabled .trumbowyg-button-pane button:not(.trumbowyg-not-disable):not(.trumbowyg-viewHTML-button){opacity:.2;cursor:default;pointer-events:none}.trumbowyg-button-pane.trumbowyg-disable .trumbowyg-button-group::before,.trumbowyg-disabled .trumbowyg-button-pane .trumbowyg-button-group::before{background:#e3e9eb}.trumbowyg-button-pane button.trumbowyg-active,.trumbowyg-button-pane button:not(.trumbowyg-disable):focus,.trumbowyg-button-pane button:not(.trumbowyg-disable):hover{background-color:#FFF;outline:0}.trumbowyg-button-pane .trumbowyg-open-dropdown::after{display:block;content:" ";position:absolute;top:25px;right:3px;height:0;width:0;border:3px solid transparent;border-top-color:#555}.trumbowyg-button-pane .trumbowyg-open-dropdown.trumbowyg-textual-button{padding-left:10px!important;padding-right:18px!important}.trumbowyg-button-pane .trumbowyg-open-dropdown.trumbowyg-textual-button::after{top:17px;right:7px}.trumbowyg-button-pane .trumbowyg-right{float:right}.trumbowyg-dropdown{max-width:300px;max-height:250px;overflow-y:auto;overflow-x:hidden;white-space:nowrap;border:1px solid #ecf0f1;padding:5px 0;border-top:none;background:#FFF;margin-left:-1px;-webkit-box-shadow:rgba(0,0,0,.1) 0 2px 3px;box-shadow:rgba(0,0,0,.1) 0 2px 3px;z-index:12}.trumbowyg-dropdown button{display:block;width:100%;height:35px;line-height:35px;text-decoration:none;background:#FFF;padding:0 20px 0 10px;color:#333!important;border:none;cursor:pointer;text-align:left;font-size:15px;-webkit-transition:all 150ms;-o-transition:all 150ms;transition:all 150ms}.trumbowyg-dropdown button:focus,.trumbowyg-dropdown button:hover{background:#ecf0f1}.trumbowyg-dropdown button svg{float:left;margin-right:14px}.trumbowyg-modal{position:absolute;top:0;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);-o-transform:translateX(-50%);transform:translateX(-50%);max-width:520px;width:100%;height:350px;z-index:12;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}.trumbowyg-modal-box{position:absolute;top:0;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);-o-transform:translateX(-50%);transform:translateX(-50%);max-width:500px;width:calc(100% - 20px);padding-bottom:45px;z-index:1;background-color:#FFF;text-align:center;font-size:14px;-webkit-box-shadow:rgba(0,0,0,.2) 0 2px 3px;box-shadow:rgba(0,0,0,.2) 0 2px 3px;-webkit-backface-visibility:hidden;backface-visibility:hidden}.trumbowyg-modal-box .trumbowyg-modal-title{font-size:24px;font-weight:700;margin:0 0 20px;padding:15px 0 13px;display:block;border-bottom:1px solid #EEE;color:#333;background:#fbfcfc}.trumbowyg-modal-box .trumbowyg-progress{width:100%;height:3px;position:absolute;top:58px}.trumbowyg-modal-box .trumbowyg-progress .trumbowyg-progress-bar{background:#2BC06A;width:0;height:100%;-webkit-transition:width 150ms linear;-o-transition:width 150ms linear;transition:width 150ms linear}.trumbowyg-modal-box .trumbowyg-input-row{position:relative;margin:15px 12px;border:1px solid #DEDEDE;overflow:hidden}.trumbowyg-modal-box .trumbowyg-input-infos{text-align:left;-webkit-transition:all 150ms;-o-transition:all 150ms;transition:all 150ms;width:150px;border-right:1px solid #DEDEDE;padding:0 7px;background-color:#fbfcfc;position:absolute;left:0;top:0;bottom:0}.trumbowyg-modal-box .trumbowyg-input-infos label{color:#69878f;overflow:hidden}.trumbowyg-modal-box .trumbowyg-input-infos label,.trumbowyg-modal-box .trumbowyg-input-infos label span{display:block;height:27px;line-height:27px;-webkit-transition:all 150ms;-o-transition:all 150ms;transition:all 150ms}.trumbowyg-modal-box .trumbowyg-input-infos .trumbowyg-msg-error{color:#e74c3c}.trumbowyg-modal-box .trumbowyg-input-html{padding:1px 1px 1px 152px}.trumbowyg-modal-box .trumbowyg-input-html,.trumbowyg-modal-box .trumbowyg-input-html input,.trumbowyg-modal-box .trumbowyg-input-html select,.trumbowyg-modal-box .trumbowyg-input-html textarea{font-size:14px}.trumbowyg-modal-box .trumbowyg-input-html input,.trumbowyg-modal-box .trumbowyg-input-html select,.trumbowyg-modal-box .trumbowyg-input-html textarea{-webkit-transition:all 150ms;-o-transition:all 150ms;transition:all 150ms;height:27px;line-height:27px;border:0;width:100%;padding:0 7px}.trumbowyg-modal-box .trumbowyg-input-html input:focus,.trumbowyg-modal-box .trumbowyg-input-html input:hover,.trumbowyg-modal-box .trumbowyg-input-html select:focus,.trumbowyg-modal-box .trumbowyg-input-html select:hover,.trumbowyg-modal-box .trumbowyg-input-html textarea:focus,.trumbowyg-modal-box .trumbowyg-input-html textarea:hover{outline:#95a5a6 solid 1px}.trumbowyg-modal-box .trumbowyg-input-html input:focus,.trumbowyg-modal-box .trumbowyg-input-html select:focus,.trumbowyg-modal-box .trumbowyg-input-html textarea:focus{background:#fbfcfc}.trumbowyg-modal-box .trumbowyg-input-html input[type=checkbox]{width:16px;height:16px;padding:0}.trumbowyg-modal-box .trumbowyg-input-html-with-checkbox{text-align:left;padding:3px 1px 1px 3px}.trumbowyg-modal-box .trumbowyg-input-error input,.trumbowyg-modal-box .trumbowyg-input-error select,.trumbowyg-modal-box .trumbowyg-input-error textarea{outline:#e74c3c solid 1px}.trumbowyg-modal-box .trumbowyg-input-error .trumbowyg-input-infos label span:first-child{margin-top:-27px}.trumbowyg-modal-box .error{margin-top:25px;display:block;color:red}.trumbowyg-modal-box .trumbowyg-modal-button{position:absolute;bottom:10px;right:0;text-decoration:none;color:#FFF;display:block;width:100px;height:35px;line-height:33px;margin:0 10px;background-color:#333;border:none;cursor:pointer;font-family:"Trebuchet MS",Helvetica,Verdana,sans-serif;font-size:16px;-webkit-transition:all 150ms;-o-transition:all 150ms;transition:all 150ms}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit{right:110px;background:#2bc06a}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:focus,.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:hover{background:#40d47e;outline:0}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:active{background:#25a25a}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset{color:#555;background:#e6e6e6}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:focus,.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:hover{background:#fbfbfb;outline:0}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:active{background:#d5d5d5}.trumbowyg-overlay{position:absolute;background-color:rgba(255,255,255,.5);height:100%;width:100%;left:0;display:none;top:0;z-index:10}body.trumbowyg-body-fullscreen{overflow:hidden}.trumbowyg-fullscreen{position:fixed;top:0;left:0;width:100%;height:100%;margin:0;padding:0;z-index:99999}.trumbowyg-fullscreen .trumbowyg-editor,.trumbowyg-fullscreen.trumbowyg-box{border:none}.trumbowyg-fullscreen .trumbowyg-editor,.trumbowyg-fullscreen .trumbowyg-textarea{height:calc(100% - 37px)!important;overflow:auto}.trumbowyg-fullscreen .trumbowyg-overlay{height:100%!important}.trumbowyg-fullscreen .trumbowyg-button-group .trumbowyg-fullscreen-button svg{color:#222;fill:transparent}.trumbowyg-editor embed,.trumbowyg-editor img,.trumbowyg-editor object,.trumbowyg-editor video{max-width:100%}.trumbowyg-editor img,.trumbowyg-editor video{height:auto}.trumbowyg-editor img{cursor:move}.trumbowyg-editor canvas:focus{outline:0}.trumbowyg-editor.trumbowyg-reset-css{background:#FEFEFE!important;font-family:"Trebuchet MS",Helvetica,Verdana,sans-serif!important;font-size:14px!important;line-height:1.45em!important;color:#333}.trumbowyg-editor.trumbowyg-reset-css a{color:#15c!important;text-decoration:underline!important}.trumbowyg-editor.trumbowyg-reset-css blockquote,.trumbowyg-editor.trumbowyg-reset-css div,.trumbowyg-editor.trumbowyg-reset-css ol,.trumbowyg-editor.trumbowyg-reset-css p,.trumbowyg-editor.trumbowyg-reset-css ul{-webkit-box-shadow:none!important;box-shadow:none!important;background:0 0!important;margin:0 0 15px!important;line-height:1.4em!important;font-family:"Trebuchet MS",Helvetica,Verdana,sans-serif!important;font-size:14px!important;border:none}.trumbowyg-editor.trumbowyg-reset-css hr,.trumbowyg-editor.trumbowyg-reset-css iframe,.trumbowyg-editor.trumbowyg-reset-css object{margin-bottom:15px!important}.trumbowyg-editor.trumbowyg-reset-css blockquote{margin-left:32px!important;font-style:italic!important;color:#555}.trumbowyg-editor.trumbowyg-reset-css ul{list-style:disc}.trumbowyg-editor.trumbowyg-reset-css ol{list-style:decimal}.trumbowyg-editor.trumbowyg-reset-css ol,.trumbowyg-editor.trumbowyg-reset-css ul{padding-left:20px!important}.trumbowyg-editor.trumbowyg-reset-css ol ol,.trumbowyg-editor.trumbowyg-reset-css ol ul,.trumbowyg-editor.trumbowyg-reset-css ul ol,.trumbowyg-editor.trumbowyg-reset-css ul ul{border:none;margin:2px!important;padding:0 0 0 24px!important}.trumbowyg-editor.trumbowyg-reset-css hr{display:block;height:1px;border:none;border-top:1px solid #CCC}.trumbowyg-editor.trumbowyg-reset-css h1,.trumbowyg-editor.trumbowyg-reset-css h2,.trumbowyg-editor.trumbowyg-reset-css h3,.trumbowyg-editor.trumbowyg-reset-css h4{color:#111;background:0 0;margin:0!important;padding:0!important;font-weight:700}.trumbowyg-editor.trumbowyg-reset-css h1{font-size:32px!important;line-height:38px!important;margin-bottom:20px!important}.trumbowyg-editor.trumbowyg-reset-css h2{font-size:26px!important;line-height:34px!important;margin-bottom:15px!important}.trumbowyg-editor.trumbowyg-reset-css h3{font-size:22px!important;line-height:28px!important;margin-bottom:7px!important}.trumbowyg-editor.trumbowyg-reset-css h4{font-size:16px!important;line-height:22px!important;margin-bottom:7px!important}.trumbowyg-dark .trumbowyg-textarea{background:#111;color:#ddd}.trumbowyg-dark .trumbowyg-box{border:1px solid #343434}.trumbowyg-dark .trumbowyg-box.trumbowyg-fullscreen{background:#111}.trumbowyg-dark .trumbowyg-box.trumbowyg-box-blur .trumbowyg-editor *,.trumbowyg-dark .trumbowyg-box.trumbowyg-box-blur .trumbowyg-editor::before{text-shadow:0 0 7px #ccc}@media screen and (min-width:0 \0){.trumbowyg-dark .trumbowyg-box.trumbowyg-box-blur .trumbowyg-editor *,.trumbowyg-dark .trumbowyg-box.trumbowyg-box-blur .trumbowyg-editor::before{color:rgba(20,20,20,.6)!important}}@supports (-ms-accelerator:true){.trumbowyg-dark .trumbowyg-box.trumbowyg-box-blur .trumbowyg-editor *,.trumbowyg-dark .trumbowyg-box.trumbowyg-box-blur .trumbowyg-editor::before{color:rgba(20,20,20,.6)!important}}.trumbowyg-dark .trumbowyg-box svg{fill:#ecf0f1;color:#ecf0f1}.trumbowyg-dark .trumbowyg-button-pane{background-color:#222;border-bottom-color:#343434}.trumbowyg-dark .trumbowyg-button-pane::after{background:#343434}.trumbowyg-dark .trumbowyg-button-pane .trumbowyg-button-group:not(:empty)::after{background-color:#343434}.trumbowyg-dark .trumbowyg-button-pane .trumbowyg-button-group:not(:empty) .trumbowyg-fullscreen-button svg{color:transparent}.trumbowyg-dark .trumbowyg-button-pane.trumbowyg-disable .trumbowyg-button-group::after{background-color:#2a2a2a}.trumbowyg-dark .trumbowyg-button-pane button.trumbowyg-active,.trumbowyg-dark .trumbowyg-button-pane button:not(.trumbowyg-disable):focus,.trumbowyg-dark .trumbowyg-button-pane button:not(.trumbowyg-disable):hover{background-color:#333}.trumbowyg-dark .trumbowyg-button-pane .trumbowyg-open-dropdown::after{border-top-color:#fff}.trumbowyg-dark .trumbowyg-fullscreen .trumbowyg-button-pane .trumbowyg-button-group:not(:empty) .trumbowyg-fullscreen-button svg{color:#ecf0f1;fill:transparent}.trumbowyg-dark .trumbowyg-dropdown{border-color:#222;background:#333;-webkit-box-shadow:rgba(0,0,0,.3) 0 2px 3px;box-shadow:rgba(0,0,0,.3) 0 2px 3px}.trumbowyg-dark .trumbowyg-dropdown button{background:#333;color:#fff!important}.trumbowyg-dark .trumbowyg-dropdown button:focus,.trumbowyg-dark .trumbowyg-dropdown button:hover{background:#222}.trumbowyg-dark .trumbowyg-modal-box{background-color:#222}.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-title{border-bottom:1px solid #555;color:#fff;background:#3c3c3c}.trumbowyg-dark .trumbowyg-modal-box label{display:block;position:relative;margin:15px 12px;height:27px;line-height:27px;overflow:hidden}.trumbowyg-dark .trumbowyg-modal-box label .trumbowyg-input-infos span{color:#eee;background-color:#2f2f2f;border-color:#222}.trumbowyg-dark .trumbowyg-modal-box label .trumbowyg-input-infos span.trumbowyg-msg-error{color:#e74c3c}.trumbowyg-dark .trumbowyg-modal-box label.trumbowyg-input-error input,.trumbowyg-dark .trumbowyg-modal-box label.trumbowyg-input-error textarea{border-color:#e74c3c}.trumbowyg-dark .trumbowyg-modal-box label input{border-color:#222;color:#eee;background:#333}.trumbowyg-dark .trumbowyg-modal-box label input:focus,.trumbowyg-dark .trumbowyg-modal-box label input:hover{border-color:#626262}.trumbowyg-dark .trumbowyg-modal-box label input:focus{background-color:#2f2f2f}.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit{background:#1b7943}.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:focus,.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:hover{background:#25a25a}.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:active{background:#176437}.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset{background:#333;color:#ccc}.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:focus,.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:hover{background:#444}.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:active{background:#111}.trumbowyg-dark .trumbowyg-overlay{background-color:rgba(15,15,15,.6)}.trumbowyg-editor table{width:100%}.trumbowyg-editor table td{border:1px dotted #e7eaec;padding:8px}.trumbowyg-dropdown-table table{margin:10px;display:inline-block}.trumbowyg-dropdown-table table td{display:inline-block;height:20px;width:20px;margin:1px;padding:0;background-color:#fff;-webkit-box-shadow:0 0 0 1px #cecece inset;box-shadow:0 0 0 1px #cecece inset}.trumbowyg-dropdown-table table td.active{background-color:#00b393;-webkit-box-shadow:none;box-shadow:none;cursor:pointer}.trumbowyg-dropdown-table .trumbowyg-table-size{text-align:center}.trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list),.trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list){max-width:276px;padding:7px 5px;overflow:initial}#dlg-preview-popup .modal-body img,.custom-file-img,mix-column-preview img,qr-code .qr-output canvas{max-width:100%}.trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button,.trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button{display:block;position:relative;float:left;text-indent:-9999px;height:20px;width:20px;border:1px solid #333;padding:0;margin:2px}.trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button:focus::after,.trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button:hover::after,.trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button:focus::after,.trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button:hover::after{content:" ";display:block;position:absolute;top:-5px;left:-5px;width:27px;height:27px;background:inherit;border:1px solid #fff;-webkit-box-shadow:#000 0 0 2px;box-shadow:#000 0 0 2px;z-index:10}.trumbowyg-dropdown-backColor.trumbowyg-dropdown--color-list button:not(.trumbowyg-backColorRemove-dropdown-button){position:relative;color:#fff!important}.trumbowyg-dropdown-backColor.trumbowyg-dropdown--color-list button:not(.trumbowyg-backColorRemove-dropdown-button):focus::after,.trumbowyg-dropdown-backColor.trumbowyg-dropdown--color-list button:not(.trumbowyg-backColorRemove-dropdown-button):hover::after{content:" ";display:block;position:absolute;top:13px;left:0;width:0;height:0;border:5px solid transparent;border-left-color:#fff}.trumbowyg-dropdown-emoji{width:265px;padding:7px 0 7px 5px}.trumbowyg-dropdown-emoji svg{display:none!important}.trumbowyg-dropdown-emoji button{display:block;position:relative;float:left;height:26px;width:26px;padding:0;margin:2px;line-height:24px;text-align:center}.trumbowyg-dropdown-emoji button:focus::after,.trumbowyg-dropdown-emoji button:hover::after{display:block;position:absolute;top:-5px;left:-5px;height:27px;width:27px;background:inherit;-webkit-box-shadow:#000 0 0 2px;box-shadow:#000 0 0 2px;z-index:10;background-color:transparent}.trumbowyg .emoji{width:22px;height:22px;display:inline-block}.md-avatar{width:50px;height:50px}.mix-tree-view .container{padding-right:0;padding-left:25px}.mix-tree-view .dropdown-menu{z-index:99999}.mix-tree-view .item{padding-bottom:2px;border-left:1px #eee solid}.mix-tree-view .item-fields{padding:12px 8px 0 26px}.sw-search{margin-right:0!important;margin-left:0!important}.sw-sidebar a{color:var(--text-color,#212529)}.ActiveUsers.is-increasing{-webkit-animation:a 3s;animation:a 3s}.ActiveUsers.is-decreasing{-webkit-animation:b 3s;animation:b 3s}@-webkit-keyframes a{10%{background-color:#ebffeb;border-color:rgba(0,128,0,.5);color:green}}@keyframes a{10%{background-color:#ebffeb;border-color:rgba(0,128,0,.5);color:green}}@-webkit-keyframes b{10%{background-color:#ffebeb;border-color:rgba(255,0,0,.5);color:red}}@keyframes b{10%{background-color:#ffebeb;border-color:rgba(255,0,0,.5);color:red}}.Chartjs{font-size:.85em}.Chartjs-figure{height:250px}.Chartjs-legend{list-style:none;margin:0;padding:1em 0 0;text-align:center}.Chartjs-legend>li{display:inline-block;padding:.25em .5em}.Chartjs-legend>li>i{display:inline-block;height:1em;margin-right:.5em;vertical-align:-.1em;width:1em}@media (min-width:570px){.Chartjs-figure{margin-right:1.5em}}.mix-sel-icons .dropdown-menu{left:-90px!important}.mix-sel-icons .dropdown-menu.show{max-height:250px;overflow:scroll}.mix-sel-icons .list-icon{max-height:150px;overflow-y:scroll;overflow-x:hidden}#modal-posts img{height:30px}.monaco-editor-full{position:fixed!important;left:0;top:0;width:100%;z-index:2222}.monaco-editor-full .monaco-editor-btn-group-full{z-index:2223;position:fixed;top:15px;right:25px}*{box-sizing:border-box}@-moz-keyframes rotation{from{-moz-transform:rotate(0);-moz-transform-origin:85% 90%}to{-moz-transform:rotate(359deg);-moz-transform-origin:85% 90%}}@-webkit-keyframes rotation{from{-webkit-transform:rotate(0);-webkit-transform-origin:85% 90%}to{-webkit-transform:rotate(359deg);-webkit-transform-origin:85% 90%}}[class*=" icon-"].loading-indicator{float:left;display:none;font-size:24px;margin:7px;color:#ec173a}[class*=" icon-"].loading-indicator.on{display:block;-webkit-animation:rotation 1.5s infinite linear;-moz-animation:rotation 1.5s infinite linear}.browser-warning,.user .icon-phone-4{display:none}.user-list{padding:9px 0}.user:hover .icon-phone-4{display:inline-block}.user a{position:relative;overflow:hidden}.user .username{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;padding-right:16px}.user .helper{position:absolute;right:10px;top:5px}.actions{display:none}[data-mode=incall] .actions,[data-mode=calling] .actions{display:block}.actions .hangup{width:100%}.actions .status{text-align:center;margin-bottom:20px}.video{height:100%;width:100%;border:2px solid #000}.cool-background{background:linear-gradient(135deg,#eceddc 25%,transparent 25%) -50px 0,linear-gradient(225deg,#eceddc 25%,transparent 25%) -50px 0,linear-gradient(315deg,#eceddc 25%,transparent 25%),linear-gradient(45deg,#eceddc 25%,transparent 25%);background-size:100px 100px;background-color:#ec173a}.alertify-cover{background:rgba(0,0,0,.8)}.simpleDemo ul[dnd-list]{min-height:42px;padding-left:0}.simpleDemo ul[dnd-list] .dndDraggingSource{display:none}.simpleDemo ul[dnd-list] .dndPlaceholder{background-color:#ddd;display:block;min-height:42px}.simpleDemo ul[dnd-list] li{background-color:#fff;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;display:block;padding:10px 15px;margin-bottom:-1px}.simpleDemo ul[dnd-list] li.selected{background-color:#dff0d8;color:#3c763d}@media (min-width:576px){.jumbotron{padding:2rem 1rem!important}}.alert.position-sticky{bottom:10px}fb-login{background-color:#0ff}medias .modal{z-index:1049}medias #modal-files .modal-body .table img{height:30px}medias #modal-files .modal-body .table img.preview{height:auto}mix-column-preview .row{max-height:120px;margin:10px 0;overflow:hidden}mix-module-data-table .data-table .header{padding:5px;color:#495057;background-color:hsla(var(--primary-color-hue,211),100%,50%,.075);border-color:#dee2e6;font-weight:400;font-size:small}mix-module-data-table .preview-container{max-height:4em;overflow:hidden}#dlg-preview-popup .modal-body img{display:block;margin:0 auto;height:auto}#dlg-preview-popup pre{overflow:visible}upload-croppie .cr-boundary{overflow:hidden}body,html{height:100%}.btn,.btn-link{cursor:pointer}.content-body{max-width:66vw}.w-85{width:85vw}.display-4{font-size:2rem!important}div[dnd-list],ul[dnd-list]{min-height:42px;padding-left:0}div[dnd-list] .dndDraggingSource,ul[dnd-list] .dndDraggingSource{display:none}div[dnd-list] .dndPlaceholder,ul[dnd-list] .dndPlaceholder{background-color:#ddd;display:block;min-height:42px}div[dnd-list] .dnd-item,ul[dnd-list] li{background-color:#fff;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;display:block;padding:10px 15px;margin-bottom:-1px}div[dnd-list] .dnd-item.selected,ul[dnd-list] li.selected{background-color:#dff0d8;color:#3c763d}.table-data td.preview{max-width:120px;overflow:hidden}.mouse{z-index:9999999;width:70px;height:70px;background-color:transparent;color:#fff;position:absolute}hub-messages .nav-link .new-msg-count,log-stream .nav-link .new-msg-count{color:#fff;top:-5px;right:5px;background-color:red;padding:2px 4px 0;font-weight:700}hub-messages .nav-link{position:relative}hub-messages .nav-link .new-msg-count{position:absolute}log-stream #modal-log-stream .modal-body{max-height:80vh;overflow-y:scroll}log-stream .nav-link{position:relative}log-stream .nav-link .new-msg-count{position:absolute}main-side-bar-dynamic .sw-sidebar .sw-toc-item{position:relative}main-side-bar-dynamic .sw-sidebar .sw-toc-item .sw-toc-link .sw-toc-link{padding-left:0}main-side-bar-dynamic .sw-sidebar .sw-toc-item .btn-group{right:20px;opacity:1}main-side-bar-dynamic .sw-sidebar ul{padding-left:15px}main-side-bar-dynamic .sw-sidebar .sw-toc-sub-link .btn-group{padding:2px 0}.custom-image{max-width:30vw}mix-database-nav-values .row{padding:10px 0}mix-database-nav-values mix-column-preview .rowx{max-height:110px;overflow:hidden}.attr-set-value-item:last-child{border-bottom:0!important}@media (min-width:992px){#modal-content-filter .modal-lg,#modal-content-filter .modal-xl{max-width:80vw}}.img-container>img,.img-preview>img{max-width:100%}.content{width:100%;display:flex;align-items:center;flex-direction:column;background:0 0}.flag-icon,.flag-icon-background{background-size:contain;background-position:50%}.img-container,.img-preview{background-color:#f7f7f7;text-align:center;width:100%}.img-container{margin-bottom:1rem;max-height:497px;min-height:200px}@media (min-width:768px){.img-container{min-height:497px}}.docs-preview{margin-right:-1rem}.img-preview{float:left;margin-bottom:.5rem;margin-right:.5rem;overflow:hidden}.preview-lg{height:9rem;width:16rem}.preview-md{height:4.5rem;width:8rem}.preview-sm{height:2.25rem;width:4rem}.preview-xs{height:1.125rem;margin-right:0;width:2rem}.docs-data>.input-group{margin-bottom:.5rem}.docs-data>.input-group>label{justify-content:center;min-width:5rem}.docs-data>.input-group>span{justify-content:center;min-width:3rem}.docs-buttons>.btn,.docs-buttons>.btn-group,.docs-buttons>.form-control{margin-bottom:.5rem;margin-right:.25rem}.docs-toggles>.btn,.docs-toggles>.btn-group,.docs-toggles>.dropdown{margin-bottom:.5rem}.custom-file-val{position:absolute;bottom:0}.sw-content{width:100%!important}input[type=date]::-webkit-inner-spin-button{display:none}.ace_razor{background-color:#ff0}.ace_punctuation.ace_block.ace_razor,.ace_punctuation.ace_short.ace_razor{color:#000}@media screen and (max-width:580px){.hide-on-mb{display:none}}#modal-files img.preview{width:100%;height:auto}@media screen and (min-width:580px){.hide-on-desktop{display:none}}.bootstrap-tagsinput,.cm-tab,.cr-rotate-controls i:before,.flag-icon,.now-ui-icons{display:inline-block}@media screen and (max-width:991px){.navbar .navbar-nav{min-height:unset}}@font-face{font-family:'Nucleo Outline';src:url(../fonts/nucleo-outline.eot);src:url(../fonts/nucleo-outline.eot) format("embedded-opentype"),url(../fonts/nucleo-outline.woff2) format("woff2"),url(../fonts/nucleo-outline.woff) format("woff"),url(../fonts/nucleo-outline.ttf) format("truetype"),url(../fonts/nucleo-outline.svg) format("svg");font-weight:400;font-style:normal}.now-ui-icons{font:normal normal normal 14px/1 'Nucleo Outline';font-size:inherit;speak:none;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.now-ui-icons.circle{padding:.33333333em;vertical-align:-16%;border-radius:50%}.fa-ul,.nc-icon-ul{padding-left:0;list-style-type:none}.nc-icon-ul{margin-left:2.14285714em}.nc-icon-ul>li{position:relative}.nc-icon-ul>li>.now-ui-icons{position:absolute;left:-1.57142857em;top:.14285714em;text-align:center}.nc-icon-ul>li>.now-ui-icons.circle{top:-.19047619em;left:-1.9047619em}.now-ui-icons.spin{-webkit-animation:nc-icon-spin 2s infinite linear;-moz-animation:nc-icon-spin 2s infinite linear;animation:nc-icon-spin 2s infinite linear}@-webkit-keyframes nc-icon-spin{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(360deg)}}@-moz-keyframes nc-icon-spin{0%{-moz-transform:rotate(0)}100%{-moz-transform:rotate(360deg)}}@keyframes nc-icon-spin{0%{-webkit-transform:rotate(0);-moz-transform:rotate(0);-ms-transform:rotate(0);-o-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}.now-ui-icons.ui-1_check:before{content:"\ea22"}.now-ui-icons.ui-1_email-85:before{content:"\ea2a"}.now-ui-icons.arrows-1_cloud-download-93:before{content:"\ea21"}.now-ui-icons.arrows-1_cloud-upload-94:before{content:"\ea24"}.now-ui-icons.arrows-1_minimal-down:before{content:"\ea39"}.now-ui-icons.arrows-1_minimal-left:before{content:"\ea3a"}.now-ui-icons.arrows-1_minimal-right:before{content:"\ea3b"}.now-ui-icons.arrows-1_minimal-up:before{content:"\ea3c"}.now-ui-icons.arrows-1_refresh-69:before{content:"\ea44"}.now-ui-icons.arrows-1_share-66:before{content:"\ea4c"}.now-ui-icons.business_badge:before{content:"\ea09"}.now-ui-icons.business_bank:before{content:"\ea0a"}.now-ui-icons.business_briefcase-24:before{content:"\ea13"}.now-ui-icons.business_bulb-63:before{content:"\ea15"}.now-ui-icons.business_chart-bar-32:before{content:"\ea1e"}.now-ui-icons.business_chart-pie-36:before{content:"\ea1f"}.now-ui-icons.business_globe:before{content:"\ea2f"}.now-ui-icons.business_money-coins:before{content:"\ea40"}.now-ui-icons.clothes_tie-bow:before{content:"\ea5b"}.now-ui-icons.design_vector:before{content:"\ea61"}.now-ui-icons.design_app:before{content:"\ea08"}.now-ui-icons.design_bullet-list-67:before{content:"\ea14"}.now-ui-icons.design_image:before{content:"\ea33"}.now-ui-icons.design_palette:before{content:"\ea41"}.now-ui-icons.design_scissors:before{content:"\ea4a"}.now-ui-icons.design-2_html5:before{content:"\ea32"}.now-ui-icons.design-2_ruler-pencil:before{content:"\ea48"}.now-ui-icons.emoticons_satisfied:before{content:"\ea49"}.now-ui-icons.files_box:before{content:"\ea12"}.now-ui-icons.files_paper:before{content:"\ea43"}.now-ui-icons.files_single-copy-04:before{content:"\ea52"}.now-ui-icons.health_ambulance:before{content:"\ea07"}.now-ui-icons.loader_gear:before{content:"\ea4e"}.now-ui-icons.loader_refresh:before{content:"\ea44"}.now-ui-icons.location_bookmark:before{content:"\ea10"}.now-ui-icons.location_compass-05:before{content:"\ea25"}.now-ui-icons.location_map-big:before{content:"\ea3d"}.now-ui-icons.location_pin:before{content:"\ea47"}.now-ui-icons.location_world:before{content:"\ea63"}.now-ui-icons.media-1_album:before{content:"\ea02"}.now-ui-icons.media-1_button-pause:before{content:"\ea16"}.now-ui-icons.media-1_button-play:before{content:"\ea18"}.now-ui-icons.media-1_button-power:before{content:"\ea19"}.now-ui-icons.media-1_camera-compact:before{content:"\ea1c"}.now-ui-icons.media-2_note-03:before{content:"\ea3f"}.now-ui-icons.media-2_sound-wave:before{content:"\ea57"}.now-ui-icons.objects_diamond:before{content:"\ea29"}.now-ui-icons.objects_globe:before{content:"\ea2f"}.now-ui-icons.objects_key-25:before{content:"\ea38"}.now-ui-icons.objects_planet:before{content:"\ea46"}.now-ui-icons.objects_spaceship:before{content:"\ea55"}.now-ui-icons.objects_support-17:before{content:"\ea56"}.now-ui-icons.objects_umbrella-13:before{content:"\ea5f"}.now-ui-icons.education_agenda-bookmark:before{content:"\ea01"}.now-ui-icons.education_atom:before{content:"\ea0c"}.now-ui-icons.education_glasses:before{content:"\ea2d"}.now-ui-icons.education_hat:before{content:"\ea30"}.now-ui-icons.education_paper:before{content:"\ea42"}.now-ui-icons.shopping_bag-16:before{content:"\ea0d"}.now-ui-icons.shopping_basket:before{content:"\ea0b"}.now-ui-icons.shopping_box:before{content:"\ea11"}.now-ui-icons.shopping_cart-simple:before{content:"\ea1d"}.now-ui-icons.shopping_credit-card:before{content:"\ea28"}.now-ui-icons.shopping_delivery-fast:before{content:"\ea27"}.now-ui-icons.shopping_shop:before{content:"\ea50"}.now-ui-icons.shopping_tag-content:before{content:"\ea59"}.now-ui-icons.sport_trophy:before{content:"\ea5d"}.now-ui-icons.sport_user-run:before{content:"\ea60"}.now-ui-icons.tech_controller-modern:before{content:"\ea26"}.now-ui-icons.tech_headphones:before{content:"\ea31"}.now-ui-icons.tech_laptop:before{content:"\ea36"}.now-ui-icons.tech_mobile:before{content:"\ea3e"}.now-ui-icons.tech_tablet:before{content:"\ea58"}.now-ui-icons.tech_tv:before{content:"\ea5e"}.now-ui-icons.tech_watch-time:before{content:"\ea62"}.now-ui-icons.text_align-center:before{content:"\ea05"}.now-ui-icons.text_align-left:before{content:"\ea06"}.now-ui-icons.text_bold:before{content:"\ea0e"}.now-ui-icons.text_caps-small:before{content:"\ea1b"}.now-ui-icons.gestures_tap-01:before{content:"\ea5a"}.now-ui-icons.transportation_air-baloon:before{content:"\ea03"}.now-ui-icons.transportation_bus-front-12:before{content:"\ea17"}.now-ui-icons.travel_info:before{content:"\ea04"}.now-ui-icons.travel_istanbul:before{content:"\ea34"}.now-ui-icons.ui-1_bell-53:before{content:"\ea0f"}.now-ui-icons.ui-1_calendar-60:before{content:"\ea1a"}.now-ui-icons.ui-1_lock-circle-open:before{content:"\ea35"}.now-ui-icons.ui-1_send:before{content:"\ea4d"}.now-ui-icons.ui-1_settings-gear-63:before{content:"\ea4e"}.now-ui-icons.ui-1_simple-add:before{content:"\ea4f"}.now-ui-icons.ui-1_simple-delete:before{content:"\ea54"}.now-ui-icons.ui-1_simple-remove:before{content:"\ea53"}.now-ui-icons.ui-1_zoom-bold:before{content:"\ea64"}.now-ui-icons.ui-2_chat-round:before{content:"\ea20"}.now-ui-icons.ui-2_favourite-28:before{content:"\ea2b"}.now-ui-icons.ui-2_like:before{content:"\ea37"}.now-ui-icons.ui-2_settings-90:before{content:"\ea4b"}.now-ui-icons.ui-2_time-alarm:before{content:"\ea5c"}.now-ui-icons.users_circle-08:before{content:"\ea23"}.now-ui-icons.users_single-02:before{content:"\ea51"}.flag-icon-background{background-repeat:no-repeat}.flag-icon{background-repeat:no-repeat;position:relative;width:1.33333333em;line-height:1em}.flag-icon:before{content:"\00a0"}.flag-icon.flag-icon-squared{width:1em}.flag-icon-ad{background-image:url(../flags/4x3/ad.svg)}.flag-icon-ad.flag-icon-squared{background-image:url(../flags/1x1/ad.svg)}.flag-icon-ae{background-image:url(../flags/4x3/ae.svg)}.flag-icon-ae.flag-icon-squared{background-image:url(../flags/1x1/ae.svg)}.flag-icon-af{background-image:url(../flags/4x3/af.svg)}.flag-icon-af.flag-icon-squared{background-image:url(../flags/1x1/af.svg)}.flag-icon-ag{background-image:url(../flags/4x3/ag.svg)}.flag-icon-ag.flag-icon-squared{background-image:url(../flags/1x1/ag.svg)}.flag-icon-ai{background-image:url(../flags/4x3/ai.svg)}.flag-icon-ai.flag-icon-squared{background-image:url(../flags/1x1/ai.svg)}.flag-icon-al{background-image:url(../flags/4x3/al.svg)}.flag-icon-al.flag-icon-squared{background-image:url(../flags/1x1/al.svg)}.flag-icon-am{background-image:url(../flags/4x3/am.svg)}.flag-icon-am.flag-icon-squared{background-image:url(../flags/1x1/am.svg)}.flag-icon-ao{background-image:url(../flags/4x3/ao.svg)}.flag-icon-ao.flag-icon-squared{background-image:url(../flags/1x1/ao.svg)}.flag-icon-aq{background-image:url(../flags/4x3/aq.svg)}.flag-icon-aq.flag-icon-squared{background-image:url(../flags/1x1/aq.svg)}.flag-icon-ar{background-image:url(../flags/4x3/ar.svg)}.flag-icon-ar.flag-icon-squared{background-image:url(../flags/1x1/ar.svg)}.flag-icon-as{background-image:url(../flags/4x3/as.svg)}.flag-icon-as.flag-icon-squared{background-image:url(../flags/1x1/as.svg)}.flag-icon-at{background-image:url(../flags/4x3/at.svg)}.flag-icon-at.flag-icon-squared{background-image:url(../flags/1x1/at.svg)}.flag-icon-au{background-image:url(../flags/4x3/au.svg)}.flag-icon-au.flag-icon-squared{background-image:url(../flags/1x1/au.svg)}.flag-icon-aw{background-image:url(../flags/4x3/aw.svg)}.flag-icon-aw.flag-icon-squared{background-image:url(../flags/1x1/aw.svg)}.flag-icon-ax{background-image:url(../flags/4x3/ax.svg)}.flag-icon-ax.flag-icon-squared{background-image:url(../flags/1x1/ax.svg)}.flag-icon-az{background-image:url(../flags/4x3/az.svg)}.flag-icon-az.flag-icon-squared{background-image:url(../flags/1x1/az.svg)}.flag-icon-ba{background-image:url(../flags/4x3/ba.svg)}.flag-icon-ba.flag-icon-squared{background-image:url(../flags/1x1/ba.svg)}.flag-icon-bb{background-image:url(../flags/4x3/bb.svg)}.flag-icon-bb.flag-icon-squared{background-image:url(../flags/1x1/bb.svg)}.flag-icon-bd{background-image:url(../flags/4x3/bd.svg)}.flag-icon-bd.flag-icon-squared{background-image:url(../flags/1x1/bd.svg)}.flag-icon-be{background-image:url(../flags/4x3/be.svg)}.flag-icon-be.flag-icon-squared{background-image:url(../flags/1x1/be.svg)}.flag-icon-bf{background-image:url(../flags/4x3/bf.svg)}.flag-icon-bf.flag-icon-squared{background-image:url(../flags/1x1/bf.svg)}.flag-icon-bg{background-image:url(../flags/4x3/bg.svg)}.flag-icon-bg.flag-icon-squared{background-image:url(../flags/1x1/bg.svg)}.flag-icon-bh{background-image:url(../flags/4x3/bh.svg)}.flag-icon-bh.flag-icon-squared{background-image:url(../flags/1x1/bh.svg)}.flag-icon-bi{background-image:url(../flags/4x3/bi.svg)}.flag-icon-bi.flag-icon-squared{background-image:url(../flags/1x1/bi.svg)}.flag-icon-bj{background-image:url(../flags/4x3/bj.svg)}.flag-icon-bj.flag-icon-squared{background-image:url(../flags/1x1/bj.svg)}.flag-icon-bl{background-image:url(../flags/4x3/bl.svg)}.flag-icon-bl.flag-icon-squared{background-image:url(../flags/1x1/bl.svg)}.flag-icon-bm{background-image:url(../flags/4x3/bm.svg)}.flag-icon-bm.flag-icon-squared{background-image:url(../flags/1x1/bm.svg)}.flag-icon-bn{background-image:url(../flags/4x3/bn.svg)}.flag-icon-bn.flag-icon-squared{background-image:url(../flags/1x1/bn.svg)}.flag-icon-bo{background-image:url(../flags/4x3/bo.svg)}.flag-icon-bo.flag-icon-squared{background-image:url(../flags/1x1/bo.svg)}.flag-icon-bq{background-image:url(../flags/4x3/bq.svg)}.flag-icon-bq.flag-icon-squared{background-image:url(../flags/1x1/bq.svg)}.flag-icon-br{background-image:url(../flags/4x3/br.svg)}.flag-icon-br.flag-icon-squared{background-image:url(../flags/1x1/br.svg)}.flag-icon-bs{background-image:url(../flags/4x3/bs.svg)}.flag-icon-bs.flag-icon-squared{background-image:url(../flags/1x1/bs.svg)}.flag-icon-bt{background-image:url(../flags/4x3/bt.svg)}.flag-icon-bt.flag-icon-squared{background-image:url(../flags/1x1/bt.svg)}.flag-icon-bv{background-image:url(../flags/4x3/bv.svg)}.flag-icon-bv.flag-icon-squared{background-image:url(../flags/1x1/bv.svg)}.flag-icon-bw{background-image:url(../flags/4x3/bw.svg)}.flag-icon-bw.flag-icon-squared{background-image:url(../flags/1x1/bw.svg)}.flag-icon-by{background-image:url(../flags/4x3/by.svg)}.flag-icon-by.flag-icon-squared{background-image:url(../flags/1x1/by.svg)}.flag-icon-bz{background-image:url(../flags/4x3/bz.svg)}.flag-icon-bz.flag-icon-squared{background-image:url(../flags/1x1/bz.svg)}.flag-icon-ca{background-image:url(../flags/4x3/ca.svg)}.flag-icon-ca.flag-icon-squared{background-image:url(../flags/1x1/ca.svg)}.flag-icon-cc{background-image:url(../flags/4x3/cc.svg)}.flag-icon-cc.flag-icon-squared{background-image:url(../flags/1x1/cc.svg)}.flag-icon-cd{background-image:url(../flags/4x3/cd.svg)}.flag-icon-cd.flag-icon-squared{background-image:url(../flags/1x1/cd.svg)}.flag-icon-cf{background-image:url(../flags/4x3/cf.svg)}.flag-icon-cf.flag-icon-squared{background-image:url(../flags/1x1/cf.svg)}.flag-icon-cg{background-image:url(../flags/4x3/cg.svg)}.flag-icon-cg.flag-icon-squared{background-image:url(../flags/1x1/cg.svg)}.flag-icon-ch{background-image:url(../flags/4x3/ch.svg)}.flag-icon-ch.flag-icon-squared{background-image:url(../flags/1x1/ch.svg)}.flag-icon-ci{background-image:url(../flags/4x3/ci.svg)}.flag-icon-ci.flag-icon-squared{background-image:url(../flags/1x1/ci.svg)}.flag-icon-ck{background-image:url(../flags/4x3/ck.svg)}.flag-icon-ck.flag-icon-squared{background-image:url(../flags/1x1/ck.svg)}.flag-icon-cl{background-image:url(../flags/4x3/cl.svg)}.flag-icon-cl.flag-icon-squared{background-image:url(../flags/1x1/cl.svg)}.flag-icon-cm{background-image:url(../flags/4x3/cm.svg)}.flag-icon-cm.flag-icon-squared{background-image:url(../flags/1x1/cm.svg)}.flag-icon-cn{background-image:url(../flags/4x3/cn.svg)}.flag-icon-cn.flag-icon-squared{background-image:url(../flags/1x1/cn.svg)}.flag-icon-co{background-image:url(../flags/4x3/co.svg)}.flag-icon-co.flag-icon-squared{background-image:url(../flags/1x1/co.svg)}.flag-icon-cr{background-image:url(../flags/4x3/cr.svg)}.flag-icon-cr.flag-icon-squared{background-image:url(../flags/1x1/cr.svg)}.flag-icon-cu{background-image:url(../flags/4x3/cu.svg)}.flag-icon-cu.flag-icon-squared{background-image:url(../flags/1x1/cu.svg)}.flag-icon-cv{background-image:url(../flags/4x3/cv.svg)}.flag-icon-cv.flag-icon-squared{background-image:url(../flags/1x1/cv.svg)}.flag-icon-cw{background-image:url(../flags/4x3/cw.svg)}.flag-icon-cw.flag-icon-squared{background-image:url(../flags/1x1/cw.svg)}.flag-icon-cx{background-image:url(../flags/4x3/cx.svg)}.flag-icon-cx.flag-icon-squared{background-image:url(../flags/1x1/cx.svg)}.flag-icon-cy{background-image:url(../flags/4x3/cy.svg)}.flag-icon-cy.flag-icon-squared{background-image:url(../flags/1x1/cy.svg)}.flag-icon-cz{background-image:url(../flags/4x3/cz.svg)}.flag-icon-cz.flag-icon-squared{background-image:url(../flags/1x1/cz.svg)}.flag-icon-de{background-image:url(../flags/4x3/de.svg)}.flag-icon-de.flag-icon-squared{background-image:url(../flags/1x1/de.svg)}.flag-icon-dj{background-image:url(../flags/4x3/dj.svg)}.flag-icon-dj.flag-icon-squared{background-image:url(../flags/1x1/dj.svg)}.flag-icon-dk{background-image:url(../flags/4x3/dk.svg)}.flag-icon-dk.flag-icon-squared{background-image:url(../flags/1x1/dk.svg)}.flag-icon-dm{background-image:url(../flags/4x3/dm.svg)}.flag-icon-dm.flag-icon-squared{background-image:url(../flags/1x1/dm.svg)}.flag-icon-do{background-image:url(../flags/4x3/do.svg)}.flag-icon-do.flag-icon-squared{background-image:url(../flags/1x1/do.svg)}.flag-icon-dz{background-image:url(../flags/4x3/dz.svg)}.flag-icon-dz.flag-icon-squared{background-image:url(../flags/1x1/dz.svg)}.flag-icon-ec{background-image:url(../flags/4x3/ec.svg)}.flag-icon-ec.flag-icon-squared{background-image:url(../flags/1x1/ec.svg)}.flag-icon-ee{background-image:url(../flags/4x3/ee.svg)}.flag-icon-ee.flag-icon-squared{background-image:url(../flags/1x1/ee.svg)}.flag-icon-eg{background-image:url(../flags/4x3/eg.svg)}.flag-icon-eg.flag-icon-squared{background-image:url(../flags/1x1/eg.svg)}.flag-icon-eh{background-image:url(../flags/4x3/eh.svg)}.flag-icon-eh.flag-icon-squared{background-image:url(../flags/1x1/eh.svg)}.flag-icon-er{background-image:url(../flags/4x3/er.svg)}.flag-icon-er.flag-icon-squared{background-image:url(../flags/1x1/er.svg)}.flag-icon-es{background-image:url(../flags/4x3/es.svg)}.flag-icon-es.flag-icon-squared{background-image:url(../flags/1x1/es.svg)}.flag-icon-et{background-image:url(../flags/4x3/et.svg)}.flag-icon-et.flag-icon-squared{background-image:url(../flags/1x1/et.svg)}.flag-icon-fi{background-image:url(../flags/4x3/fi.svg)}.flag-icon-fi.flag-icon-squared{background-image:url(../flags/1x1/fi.svg)}.flag-icon-fj{background-image:url(../flags/4x3/fj.svg)}.flag-icon-fj.flag-icon-squared{background-image:url(../flags/1x1/fj.svg)}.flag-icon-fk{background-image:url(../flags/4x3/fk.svg)}.flag-icon-fk.flag-icon-squared{background-image:url(../flags/1x1/fk.svg)}.flag-icon-fm{background-image:url(../flags/4x3/fm.svg)}.flag-icon-fm.flag-icon-squared{background-image:url(../flags/1x1/fm.svg)}.flag-icon-fo{background-image:url(../flags/4x3/fo.svg)}.flag-icon-fo.flag-icon-squared{background-image:url(../flags/1x1/fo.svg)}.flag-icon-fr{background-image:url(../flags/4x3/fr.svg)}.flag-icon-fr.flag-icon-squared{background-image:url(../flags/1x1/fr.svg)}.flag-icon-ga{background-image:url(../flags/4x3/ga.svg)}.flag-icon-ga.flag-icon-squared{background-image:url(../flags/1x1/ga.svg)}.flag-icon-gb{background-image:url(../flags/4x3/gb.svg)}.flag-icon-gb.flag-icon-squared{background-image:url(../flags/1x1/gb.svg)}.flag-icon-gd{background-image:url(../flags/4x3/gd.svg)}.flag-icon-gd.flag-icon-squared{background-image:url(../flags/1x1/gd.svg)}.flag-icon-ge{background-image:url(../flags/4x3/ge.svg)}.flag-icon-ge.flag-icon-squared{background-image:url(../flags/1x1/ge.svg)}.flag-icon-gf{background-image:url(../flags/4x3/gf.svg)}.flag-icon-gf.flag-icon-squared{background-image:url(../flags/1x1/gf.svg)}.flag-icon-gg{background-image:url(../flags/4x3/gg.svg)}.flag-icon-gg.flag-icon-squared{background-image:url(../flags/1x1/gg.svg)}.flag-icon-gh{background-image:url(../flags/4x3/gh.svg)}.flag-icon-gh.flag-icon-squared{background-image:url(../flags/1x1/gh.svg)}.flag-icon-gi{background-image:url(../flags/4x3/gi.svg)}.flag-icon-gi.flag-icon-squared{background-image:url(../flags/1x1/gi.svg)}.flag-icon-gl{background-image:url(../flags/4x3/gl.svg)}.flag-icon-gl.flag-icon-squared{background-image:url(../flags/1x1/gl.svg)}.flag-icon-gm{background-image:url(../flags/4x3/gm.svg)}.flag-icon-gm.flag-icon-squared{background-image:url(../flags/1x1/gm.svg)}.flag-icon-gn{background-image:url(../flags/4x3/gn.svg)}.flag-icon-gn.flag-icon-squared{background-image:url(../flags/1x1/gn.svg)}.flag-icon-gp{background-image:url(../flags/4x3/gp.svg)}.flag-icon-gp.flag-icon-squared{background-image:url(../flags/1x1/gp.svg)}.flag-icon-gq{background-image:url(../flags/4x3/gq.svg)}.flag-icon-gq.flag-icon-squared{background-image:url(../flags/1x1/gq.svg)}.flag-icon-gr{background-image:url(../flags/4x3/gr.svg)}.flag-icon-gr.flag-icon-squared{background-image:url(../flags/1x1/gr.svg)}.flag-icon-gs{background-image:url(../flags/4x3/gs.svg)}.flag-icon-gs.flag-icon-squared{background-image:url(../flags/1x1/gs.svg)}.flag-icon-gt{background-image:url(../flags/4x3/gt.svg)}.flag-icon-gt.flag-icon-squared{background-image:url(../flags/1x1/gt.svg)}.flag-icon-gu{background-image:url(../flags/4x3/gu.svg)}.flag-icon-gu.flag-icon-squared{background-image:url(../flags/1x1/gu.svg)}.flag-icon-gw{background-image:url(../flags/4x3/gw.svg)}.flag-icon-gw.flag-icon-squared{background-image:url(../flags/1x1/gw.svg)}.flag-icon-gy{background-image:url(../flags/4x3/gy.svg)}.flag-icon-gy.flag-icon-squared{background-image:url(../flags/1x1/gy.svg)}.flag-icon-hk{background-image:url(../flags/4x3/hk.svg)}.flag-icon-hk.flag-icon-squared{background-image:url(../flags/1x1/hk.svg)}.flag-icon-hm{background-image:url(../flags/4x3/hm.svg)}.flag-icon-hm.flag-icon-squared{background-image:url(../flags/1x1/hm.svg)}.flag-icon-hn{background-image:url(../flags/4x3/hn.svg)}.flag-icon-hn.flag-icon-squared{background-image:url(../flags/1x1/hn.svg)}.flag-icon-hr{background-image:url(../flags/4x3/hr.svg)}.flag-icon-hr.flag-icon-squared{background-image:url(../flags/1x1/hr.svg)}.flag-icon-ht{background-image:url(../flags/4x3/ht.svg)}.flag-icon-ht.flag-icon-squared{background-image:url(../flags/1x1/ht.svg)}.flag-icon-hu{background-image:url(../flags/4x3/hu.svg)}.flag-icon-hu.flag-icon-squared{background-image:url(../flags/1x1/hu.svg)}.flag-icon-id{background-image:url(../flags/4x3/id.svg)}.flag-icon-id.flag-icon-squared{background-image:url(../flags/1x1/id.svg)}.flag-icon-ie{background-image:url(../flags/4x3/ie.svg)}.flag-icon-ie.flag-icon-squared{background-image:url(../flags/1x1/ie.svg)}.flag-icon-il{background-image:url(../flags/4x3/il.svg)}.flag-icon-il.flag-icon-squared{background-image:url(../flags/1x1/il.svg)}.flag-icon-im{background-image:url(../flags/4x3/im.svg)}.flag-icon-im.flag-icon-squared{background-image:url(../flags/1x1/im.svg)}.flag-icon-in{background-image:url(../flags/4x3/in.svg)}.flag-icon-in.flag-icon-squared{background-image:url(../flags/1x1/in.svg)}.flag-icon-io{background-image:url(../flags/4x3/io.svg)}.flag-icon-io.flag-icon-squared{background-image:url(../flags/1x1/io.svg)}.flag-icon-iq{background-image:url(../flags/4x3/iq.svg)}.flag-icon-iq.flag-icon-squared{background-image:url(../flags/1x1/iq.svg)}.flag-icon-ir{background-image:url(../flags/4x3/ir.svg)}.flag-icon-ir.flag-icon-squared{background-image:url(../flags/1x1/ir.svg)}.flag-icon-is{background-image:url(../flags/4x3/is.svg)}.flag-icon-is.flag-icon-squared{background-image:url(../flags/1x1/is.svg)}.flag-icon-it{background-image:url(../flags/4x3/it.svg)}.flag-icon-it.flag-icon-squared{background-image:url(../flags/1x1/it.svg)}.flag-icon-je{background-image:url(../flags/4x3/je.svg)}.flag-icon-je.flag-icon-squared{background-image:url(../flags/1x1/je.svg)}.flag-icon-jm{background-image:url(../flags/4x3/jm.svg)}.flag-icon-jm.flag-icon-squared{background-image:url(../flags/1x1/jm.svg)}.flag-icon-jo{background-image:url(../flags/4x3/jo.svg)}.flag-icon-jo.flag-icon-squared{background-image:url(../flags/1x1/jo.svg)}.flag-icon-jp{background-image:url(../flags/4x3/jp.svg)}.flag-icon-jp.flag-icon-squared{background-image:url(../flags/1x1/jp.svg)}.flag-icon-ke{background-image:url(../flags/4x3/ke.svg)}.flag-icon-ke.flag-icon-squared{background-image:url(../flags/1x1/ke.svg)}.flag-icon-kg{background-image:url(../flags/4x3/kg.svg)}.flag-icon-kg.flag-icon-squared{background-image:url(../flags/1x1/kg.svg)}.flag-icon-kh{background-image:url(../flags/4x3/kh.svg)}.flag-icon-kh.flag-icon-squared{background-image:url(../flags/1x1/kh.svg)}.flag-icon-ki{background-image:url(../flags/4x3/ki.svg)}.flag-icon-ki.flag-icon-squared{background-image:url(../flags/1x1/ki.svg)}.flag-icon-km{background-image:url(../flags/4x3/km.svg)}.flag-icon-km.flag-icon-squared{background-image:url(../flags/1x1/km.svg)}.flag-icon-kn{background-image:url(../flags/4x3/kn.svg)}.flag-icon-kn.flag-icon-squared{background-image:url(../flags/1x1/kn.svg)}.flag-icon-kp{background-image:url(../flags/4x3/kp.svg)}.flag-icon-kp.flag-icon-squared{background-image:url(../flags/1x1/kp.svg)}.flag-icon-kr{background-image:url(../flags/4x3/kr.svg)}.flag-icon-kr.flag-icon-squared{background-image:url(../flags/1x1/kr.svg)}.flag-icon-kw{background-image:url(../flags/4x3/kw.svg)}.flag-icon-kw.flag-icon-squared{background-image:url(../flags/1x1/kw.svg)}.flag-icon-ky{background-image:url(../flags/4x3/ky.svg)}.flag-icon-ky.flag-icon-squared{background-image:url(../flags/1x1/ky.svg)}.flag-icon-kz{background-image:url(../flags/4x3/kz.svg)}.flag-icon-kz.flag-icon-squared{background-image:url(../flags/1x1/kz.svg)}.flag-icon-la{background-image:url(../flags/4x3/la.svg)}.flag-icon-la.flag-icon-squared{background-image:url(../flags/1x1/la.svg)}.flag-icon-lb{background-image:url(../flags/4x3/lb.svg)}.flag-icon-lb.flag-icon-squared{background-image:url(../flags/1x1/lb.svg)}.flag-icon-lc{background-image:url(../flags/4x3/lc.svg)}.flag-icon-lc.flag-icon-squared{background-image:url(../flags/1x1/lc.svg)}.flag-icon-li{background-image:url(../flags/4x3/li.svg)}.flag-icon-li.flag-icon-squared{background-image:url(../flags/1x1/li.svg)}.flag-icon-lk{background-image:url(../flags/4x3/lk.svg)}.flag-icon-lk.flag-icon-squared{background-image:url(../flags/1x1/lk.svg)}.flag-icon-lr{background-image:url(../flags/4x3/lr.svg)}.flag-icon-lr.flag-icon-squared{background-image:url(../flags/1x1/lr.svg)}.flag-icon-ls{background-image:url(../flags/4x3/ls.svg)}.flag-icon-ls.flag-icon-squared{background-image:url(../flags/1x1/ls.svg)}.flag-icon-lt{background-image:url(../flags/4x3/lt.svg)}.flag-icon-lt.flag-icon-squared{background-image:url(../flags/1x1/lt.svg)}.flag-icon-lu{background-image:url(../flags/4x3/lu.svg)}.flag-icon-lu.flag-icon-squared{background-image:url(../flags/1x1/lu.svg)}.flag-icon-lv{background-image:url(../flags/4x3/lv.svg)}.flag-icon-lv.flag-icon-squared{background-image:url(../flags/1x1/lv.svg)}.flag-icon-ly{background-image:url(../flags/4x3/ly.svg)}.flag-icon-ly.flag-icon-squared{background-image:url(../flags/1x1/ly.svg)}.flag-icon-ma{background-image:url(../flags/4x3/ma.svg)}.flag-icon-ma.flag-icon-squared{background-image:url(../flags/1x1/ma.svg)}.flag-icon-mc{background-image:url(../flags/4x3/mc.svg)}.flag-icon-mc.flag-icon-squared{background-image:url(../flags/1x1/mc.svg)}.flag-icon-md{background-image:url(../flags/4x3/md.svg)}.flag-icon-md.flag-icon-squared{background-image:url(../flags/1x1/md.svg)}.flag-icon-me{background-image:url(../flags/4x3/me.svg)}.flag-icon-me.flag-icon-squared{background-image:url(../flags/1x1/me.svg)}.flag-icon-mf{background-image:url(../flags/4x3/mf.svg)}.flag-icon-mf.flag-icon-squared{background-image:url(../flags/1x1/mf.svg)}.flag-icon-mg{background-image:url(../flags/4x3/mg.svg)}.flag-icon-mg.flag-icon-squared{background-image:url(../flags/1x1/mg.svg)}.flag-icon-mh{background-image:url(../flags/4x3/mh.svg)}.flag-icon-mh.flag-icon-squared{background-image:url(../flags/1x1/mh.svg)}.flag-icon-mk{background-image:url(../flags/4x3/mk.svg)}.flag-icon-mk.flag-icon-squared{background-image:url(../flags/1x1/mk.svg)}.flag-icon-ml{background-image:url(../flags/4x3/ml.svg)}.flag-icon-ml.flag-icon-squared{background-image:url(../flags/1x1/ml.svg)}.flag-icon-mm{background-image:url(../flags/4x3/mm.svg)}.flag-icon-mm.flag-icon-squared{background-image:url(../flags/1x1/mm.svg)}.flag-icon-mn{background-image:url(../flags/4x3/mn.svg)}.flag-icon-mn.flag-icon-squared{background-image:url(../flags/1x1/mn.svg)}.flag-icon-mo{background-image:url(../flags/4x3/mo.svg)}.flag-icon-mo.flag-icon-squared{background-image:url(../flags/1x1/mo.svg)}.flag-icon-mp{background-image:url(../flags/4x3/mp.svg)}.flag-icon-mp.flag-icon-squared{background-image:url(../flags/1x1/mp.svg)}.flag-icon-mq{background-image:url(../flags/4x3/mq.svg)}.flag-icon-mq.flag-icon-squared{background-image:url(../flags/1x1/mq.svg)}.flag-icon-mr{background-image:url(../flags/4x3/mr.svg)}.flag-icon-mr.flag-icon-squared{background-image:url(../flags/1x1/mr.svg)}.flag-icon-ms{background-image:url(../flags/4x3/ms.svg)}.flag-icon-ms.flag-icon-squared{background-image:url(../flags/1x1/ms.svg)}.flag-icon-mt{background-image:url(../flags/4x3/mt.svg)}.flag-icon-mt.flag-icon-squared{background-image:url(../flags/1x1/mt.svg)}.flag-icon-mu{background-image:url(../flags/4x3/mu.svg)}.flag-icon-mu.flag-icon-squared{background-image:url(../flags/1x1/mu.svg)}.flag-icon-mv{background-image:url(../flags/4x3/mv.svg)}.flag-icon-mv.flag-icon-squared{background-image:url(../flags/1x1/mv.svg)}.flag-icon-mw{background-image:url(../flags/4x3/mw.svg)}.flag-icon-mw.flag-icon-squared{background-image:url(../flags/1x1/mw.svg)}.flag-icon-mx{background-image:url(../flags/4x3/mx.svg)}.flag-icon-mx.flag-icon-squared{background-image:url(../flags/1x1/mx.svg)}.flag-icon-my{background-image:url(../flags/4x3/my.svg)}.flag-icon-my.flag-icon-squared{background-image:url(../flags/1x1/my.svg)}.flag-icon-mz{background-image:url(../flags/4x3/mz.svg)}.flag-icon-mz.flag-icon-squared{background-image:url(../flags/1x1/mz.svg)}.flag-icon-na{background-image:url(../flags/4x3/na.svg)}.flag-icon-na.flag-icon-squared{background-image:url(../flags/1x1/na.svg)}.flag-icon-nc{background-image:url(../flags/4x3/nc.svg)}.flag-icon-nc.flag-icon-squared{background-image:url(../flags/1x1/nc.svg)}.flag-icon-ne{background-image:url(../flags/4x3/ne.svg)}.flag-icon-ne.flag-icon-squared{background-image:url(../flags/1x1/ne.svg)}.flag-icon-nf{background-image:url(../flags/4x3/nf.svg)}.flag-icon-nf.flag-icon-squared{background-image:url(../flags/1x1/nf.svg)}.flag-icon-ng{background-image:url(../flags/4x3/ng.svg)}.flag-icon-ng.flag-icon-squared{background-image:url(../flags/1x1/ng.svg)}.flag-icon-ni{background-image:url(../flags/4x3/ni.svg)}.flag-icon-ni.flag-icon-squared{background-image:url(../flags/1x1/ni.svg)}.flag-icon-nl{background-image:url(../flags/4x3/nl.svg)}.flag-icon-nl.flag-icon-squared{background-image:url(../flags/1x1/nl.svg)}.flag-icon-no{background-image:url(../flags/4x3/no.svg)}.flag-icon-no.flag-icon-squared{background-image:url(../flags/1x1/no.svg)}.flag-icon-np{background-image:url(../flags/4x3/np.svg)}.flag-icon-np.flag-icon-squared{background-image:url(../flags/1x1/np.svg)}.flag-icon-nr{background-image:url(../flags/4x3/nr.svg)}.flag-icon-nr.flag-icon-squared{background-image:url(../flags/1x1/nr.svg)}.flag-icon-nu{background-image:url(../flags/4x3/nu.svg)}.flag-icon-nu.flag-icon-squared{background-image:url(../flags/1x1/nu.svg)}.flag-icon-nz{background-image:url(../flags/4x3/nz.svg)}.flag-icon-nz.flag-icon-squared{background-image:url(../flags/1x1/nz.svg)}.flag-icon-om{background-image:url(../flags/4x3/om.svg)}.flag-icon-om.flag-icon-squared{background-image:url(../flags/1x1/om.svg)}.flag-icon-pa{background-image:url(../flags/4x3/pa.svg)}.flag-icon-pa.flag-icon-squared{background-image:url(../flags/1x1/pa.svg)}.flag-icon-pe{background-image:url(../flags/4x3/pe.svg)}.flag-icon-pe.flag-icon-squared{background-image:url(../flags/1x1/pe.svg)}.flag-icon-pf{background-image:url(../flags/4x3/pf.svg)}.flag-icon-pf.flag-icon-squared{background-image:url(../flags/1x1/pf.svg)}.flag-icon-pg{background-image:url(../flags/4x3/pg.svg)}.flag-icon-pg.flag-icon-squared{background-image:url(../flags/1x1/pg.svg)}.flag-icon-ph{background-image:url(../flags/4x3/ph.svg)}.flag-icon-ph.flag-icon-squared{background-image:url(../flags/1x1/ph.svg)}.flag-icon-pk{background-image:url(../flags/4x3/pk.svg)}.flag-icon-pk.flag-icon-squared{background-image:url(../flags/1x1/pk.svg)}.flag-icon-pl{background-image:url(../flags/4x3/pl.svg)}.flag-icon-pl.flag-icon-squared{background-image:url(../flags/1x1/pl.svg)}.flag-icon-pm{background-image:url(../flags/4x3/pm.svg)}.flag-icon-pm.flag-icon-squared{background-image:url(../flags/1x1/pm.svg)}.flag-icon-pn{background-image:url(../flags/4x3/pn.svg)}.flag-icon-pn.flag-icon-squared{background-image:url(../flags/1x1/pn.svg)}.flag-icon-pr{background-image:url(../flags/4x3/pr.svg)}.flag-icon-pr.flag-icon-squared{background-image:url(../flags/1x1/pr.svg)}.flag-icon-ps{background-image:url(../flags/4x3/ps.svg)}.flag-icon-ps.flag-icon-squared{background-image:url(../flags/1x1/ps.svg)}.flag-icon-pt{background-image:url(../flags/4x3/pt.svg)}.flag-icon-pt.flag-icon-squared{background-image:url(../flags/1x1/pt.svg)}.flag-icon-pw{background-image:url(../flags/4x3/pw.svg)}.flag-icon-pw.flag-icon-squared{background-image:url(../flags/1x1/pw.svg)}.flag-icon-py{background-image:url(../flags/4x3/py.svg)}.flag-icon-py.flag-icon-squared{background-image:url(../flags/1x1/py.svg)}.flag-icon-qa{background-image:url(../flags/4x3/qa.svg)}.flag-icon-qa.flag-icon-squared{background-image:url(../flags/1x1/qa.svg)}.flag-icon-re{background-image:url(../flags/4x3/re.svg)}.flag-icon-re.flag-icon-squared{background-image:url(../flags/1x1/re.svg)}.flag-icon-ro{background-image:url(../flags/4x3/ro.svg)}.flag-icon-ro.flag-icon-squared{background-image:url(../flags/1x1/ro.svg)}.flag-icon-rs{background-image:url(../flags/4x3/rs.svg)}.flag-icon-rs.flag-icon-squared{background-image:url(../flags/1x1/rs.svg)}.flag-icon-ru{background-image:url(../flags/4x3/ru.svg)}.flag-icon-ru.flag-icon-squared{background-image:url(../flags/1x1/ru.svg)}.flag-icon-rw{background-image:url(../flags/4x3/rw.svg)}.flag-icon-rw.flag-icon-squared{background-image:url(../flags/1x1/rw.svg)}.flag-icon-sa{background-image:url(../flags/4x3/sa.svg)}.flag-icon-sa.flag-icon-squared{background-image:url(../flags/1x1/sa.svg)}.flag-icon-sb{background-image:url(../flags/4x3/sb.svg)}.flag-icon-sb.flag-icon-squared{background-image:url(../flags/1x1/sb.svg)}.flag-icon-sc{background-image:url(../flags/4x3/sc.svg)}.flag-icon-sc.flag-icon-squared{background-image:url(../flags/1x1/sc.svg)}.flag-icon-sd{background-image:url(../flags/4x3/sd.svg)}.flag-icon-sd.flag-icon-squared{background-image:url(../flags/1x1/sd.svg)}.flag-icon-se{background-image:url(../flags/4x3/se.svg)}.flag-icon-se.flag-icon-squared{background-image:url(../flags/1x1/se.svg)}.flag-icon-sg{background-image:url(../flags/4x3/sg.svg)}.flag-icon-sg.flag-icon-squared{background-image:url(../flags/1x1/sg.svg)}.flag-icon-sh{background-image:url(../flags/4x3/sh.svg)}.flag-icon-sh.flag-icon-squared{background-image:url(../flags/1x1/sh.svg)}.flag-icon-si{background-image:url(../flags/4x3/si.svg)}.flag-icon-si.flag-icon-squared{background-image:url(../flags/1x1/si.svg)}.flag-icon-sj{background-image:url(../flags/4x3/sj.svg)}.flag-icon-sj.flag-icon-squared{background-image:url(../flags/1x1/sj.svg)}.flag-icon-sk{background-image:url(../flags/4x3/sk.svg)}.flag-icon-sk.flag-icon-squared{background-image:url(../flags/1x1/sk.svg)}.flag-icon-sl{background-image:url(../flags/4x3/sl.svg)}.flag-icon-sl.flag-icon-squared{background-image:url(../flags/1x1/sl.svg)}.flag-icon-sm{background-image:url(../flags/4x3/sm.svg)}.flag-icon-sm.flag-icon-squared{background-image:url(../flags/1x1/sm.svg)}.flag-icon-sn{background-image:url(../flags/4x3/sn.svg)}.flag-icon-sn.flag-icon-squared{background-image:url(../flags/1x1/sn.svg)}.flag-icon-so{background-image:url(../flags/4x3/so.svg)}.flag-icon-so.flag-icon-squared{background-image:url(../flags/1x1/so.svg)}.flag-icon-sr{background-image:url(../flags/4x3/sr.svg)}.flag-icon-sr.flag-icon-squared{background-image:url(../flags/1x1/sr.svg)}.flag-icon-ss{background-image:url(../flags/4x3/ss.svg)}.flag-icon-ss.flag-icon-squared{background-image:url(../flags/1x1/ss.svg)}.flag-icon-st{background-image:url(../flags/4x3/st.svg)}.flag-icon-st.flag-icon-squared{background-image:url(../flags/1x1/st.svg)}.flag-icon-sv{background-image:url(../flags/4x3/sv.svg)}.flag-icon-sv.flag-icon-squared{background-image:url(../flags/1x1/sv.svg)}.flag-icon-sx{background-image:url(../flags/4x3/sx.svg)}.flag-icon-sx.flag-icon-squared{background-image:url(../flags/1x1/sx.svg)}.flag-icon-sy{background-image:url(../flags/4x3/sy.svg)}.flag-icon-sy.flag-icon-squared{background-image:url(../flags/1x1/sy.svg)}.flag-icon-sz{background-image:url(../flags/4x3/sz.svg)}.flag-icon-sz.flag-icon-squared{background-image:url(../flags/1x1/sz.svg)}.flag-icon-tc{background-image:url(../flags/4x3/tc.svg)}.flag-icon-tc.flag-icon-squared{background-image:url(../flags/1x1/tc.svg)}.flag-icon-td{background-image:url(../flags/4x3/td.svg)}.flag-icon-td.flag-icon-squared{background-image:url(../flags/1x1/td.svg)}.flag-icon-tf{background-image:url(../flags/4x3/tf.svg)}.flag-icon-tf.flag-icon-squared{background-image:url(../flags/1x1/tf.svg)}.flag-icon-tg{background-image:url(../flags/4x3/tg.svg)}.flag-icon-tg.flag-icon-squared{background-image:url(../flags/1x1/tg.svg)}.flag-icon-th{background-image:url(../flags/4x3/th.svg)}.flag-icon-th.flag-icon-squared{background-image:url(../flags/1x1/th.svg)}.flag-icon-tj{background-image:url(../flags/4x3/tj.svg)}.flag-icon-tj.flag-icon-squared{background-image:url(../flags/1x1/tj.svg)}.flag-icon-tk{background-image:url(../flags/4x3/tk.svg)}.flag-icon-tk.flag-icon-squared{background-image:url(../flags/1x1/tk.svg)}.flag-icon-tl{background-image:url(../flags/4x3/tl.svg)}.flag-icon-tl.flag-icon-squared{background-image:url(../flags/1x1/tl.svg)}.flag-icon-tm{background-image:url(../flags/4x3/tm.svg)}.flag-icon-tm.flag-icon-squared{background-image:url(../flags/1x1/tm.svg)}.flag-icon-tn{background-image:url(../flags/4x3/tn.svg)}.flag-icon-tn.flag-icon-squared{background-image:url(../flags/1x1/tn.svg)}.flag-icon-to{background-image:url(../flags/4x3/to.svg)}.flag-icon-to.flag-icon-squared{background-image:url(../flags/1x1/to.svg)}.flag-icon-tr{background-image:url(../flags/4x3/tr.svg)}.flag-icon-tr.flag-icon-squared{background-image:url(../flags/1x1/tr.svg)}.flag-icon-tt{background-image:url(../flags/4x3/tt.svg)}.flag-icon-tt.flag-icon-squared{background-image:url(../flags/1x1/tt.svg)}.flag-icon-tv{background-image:url(../flags/4x3/tv.svg)}.flag-icon-tv.flag-icon-squared{background-image:url(../flags/1x1/tv.svg)}.flag-icon-tw{background-image:url(../flags/4x3/tw.svg)}.flag-icon-tw.flag-icon-squared{background-image:url(../flags/1x1/tw.svg)}.flag-icon-tz{background-image:url(../flags/4x3/tz.svg)}.flag-icon-tz.flag-icon-squared{background-image:url(../flags/1x1/tz.svg)}.flag-icon-ua{background-image:url(../flags/4x3/ua.svg)}.flag-icon-ua.flag-icon-squared{background-image:url(../flags/1x1/ua.svg)}.flag-icon-ug{background-image:url(../flags/4x3/ug.svg)}.flag-icon-ug.flag-icon-squared{background-image:url(../flags/1x1/ug.svg)}.flag-icon-um{background-image:url(../flags/4x3/um.svg)}.flag-icon-um.flag-icon-squared{background-image:url(../flags/1x1/um.svg)}.flag-icon-us{background-image:url(../flags/4x3/us.svg)}.flag-icon-us.flag-icon-squared{background-image:url(../flags/1x1/us.svg)}.flag-icon-uy{background-image:url(../flags/4x3/uy.svg)}.flag-icon-uy.flag-icon-squared{background-image:url(../flags/1x1/uy.svg)}.flag-icon-uz{background-image:url(../flags/4x3/uz.svg)}.flag-icon-uz.flag-icon-squared{background-image:url(../flags/1x1/uz.svg)}.flag-icon-va{background-image:url(../flags/4x3/va.svg)}.flag-icon-va.flag-icon-squared{background-image:url(../flags/1x1/va.svg)}.flag-icon-vc{background-image:url(../flags/4x3/vc.svg)}.flag-icon-vc.flag-icon-squared{background-image:url(../flags/1x1/vc.svg)}.flag-icon-ve{background-image:url(../flags/4x3/ve.svg)}.flag-icon-ve.flag-icon-squared{background-image:url(../flags/1x1/ve.svg)}.flag-icon-vg{background-image:url(../flags/4x3/vg.svg)}.flag-icon-vg.flag-icon-squared{background-image:url(../flags/1x1/vg.svg)}.flag-icon-vi{background-image:url(../flags/4x3/vi.svg)}.flag-icon-vi.flag-icon-squared{background-image:url(../flags/1x1/vi.svg)}.flag-icon-vn{background-image:url(../flags/4x3/vn.svg)}.flag-icon-vn.flag-icon-squared{background-image:url(../flags/1x1/vn.svg)}.flag-icon-vu{background-image:url(../flags/4x3/vu.svg)}.flag-icon-vu.flag-icon-squared{background-image:url(../flags/1x1/vu.svg)}.flag-icon-wf{background-image:url(../flags/4x3/wf.svg)}.flag-icon-wf.flag-icon-squared{background-image:url(../flags/1x1/wf.svg)}.flag-icon-ws{background-image:url(../flags/4x3/ws.svg)}.flag-icon-ws.flag-icon-squared{background-image:url(../flags/1x1/ws.svg)}.flag-icon-ye{background-image:url(../flags/4x3/ye.svg)}.flag-icon-ye.flag-icon-squared{background-image:url(../flags/1x1/ye.svg)}.flag-icon-yt{background-image:url(../flags/4x3/yt.svg)}.flag-icon-yt.flag-icon-squared{background-image:url(../flags/1x1/yt.svg)}.flag-icon-za{background-image:url(../flags/4x3/za.svg)}.flag-icon-za.flag-icon-squared{background-image:url(../flags/1x1/za.svg)}.flag-icon-zm{background-image:url(../flags/4x3/zm.svg)}.flag-icon-zm.flag-icon-squared{background-image:url(../flags/1x1/zm.svg)}.flag-icon-zw{background-image:url(../flags/4x3/zw.svg)}.flag-icon-zw.flag-icon-squared{background-image:url(../flags/1x1/zw.svg)}.flag-icon-es-ct{background-image:url(../flags/4x3/es-ct.svg)}.flag-icon-es-ct.flag-icon-squared{background-image:url(../flags/1x1/es-ct.svg)}.flag-icon-eu{background-image:url(../flags/4x3/eu.svg)}.flag-icon-eu.flag-icon-squared{background-image:url(../flags/1x1/eu.svg)}.flag-icon-gb-eng{background-image:url(../flags/4x3/gb-eng.svg)}.flag-icon-gb-eng.flag-icon-squared{background-image:url(../flags/1x1/gb-eng.svg)}.flag-icon-gb-nir{background-image:url(../flags/4x3/gb-nir.svg)}.flag-icon-gb-nir.flag-icon-squared{background-image:url(../flags/1x1/gb-nir.svg)}.flag-icon-gb-sct{background-image:url(../flags/4x3/gb-sct.svg)}.flag-icon-gb-sct.flag-icon-squared{background-image:url(../flags/1x1/gb-sct.svg)}.flag-icon-gb-wls{background-image:url(../flags/4x3/gb-wls.svg)}.flag-icon-gb-wls.flag-icon-squared{background-image:url(../flags/1x1/gb-wls.svg)}.flag-icon-un{background-image:url(../flags/4x3/un.svg)}.flag-icon-un.flag-icon-squared{background-image:url(../flags/1x1/un.svg)}.flag-icon-xk{background-image:url(../flags/4x3/xk.svg)}.flag-icon-xk.flag-icon-squared{background-image:url(../flags/1x1/xk.svg)}.loader-container{top:0;left:0;width:100%;height:100%;position:fixed;background-color:#000;opacity:.2;z-index:9999}#loader{position:absolute;left:50%;top:50%;z-index:1;margin:-75px 0 0 -75px;border:16px solid #f3f3f3;border-radius:50%;border-top:16px solid #3498db;width:120px;height:120px;-webkit-animation:spin 2s linear infinite;animation:spin 2s linear infinite}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.modal-open{overflow:hidden;padding-right:0!important}.croppie-container{width:100%;height:100%}.croppie-container .cr-image{z-index:-1;position:absolute;top:0;left:0;transform-origin:0 0;max-height:none;max-width:none}.croppie-container .cr-boundary{position:relative;overflow:hidden;margin:0 auto;z-index:1;width:100%;height:100%}.croppie-container .cr-resizer,.croppie-container .cr-viewport{position:absolute;border:2px solid #fff;margin:auto;top:0;bottom:0;right:0;left:0;box-shadow:0 0 2000px 2000px rgba(0,0,0,.5);z-index:0}.croppie-container .cr-resizer{z-index:2;box-shadow:none;pointer-events:none}.croppie-container .cr-resizer-horisontal,.croppie-container .cr-resizer-vertical{position:absolute;pointer-events:all}.croppie-container .cr-resizer-horisontal::after,.croppie-container .cr-resizer-vertical::after{display:block;position:absolute;box-sizing:border-box;border:1px solid #000;background:#fff;width:10px;height:10px;content:''}.croppie-container .cr-resizer-vertical{bottom:-5px;cursor:row-resize;width:100%;height:10px}.croppie-container .cr-resizer-vertical::after{left:50%;margin-left:-5px}.croppie-container .cr-resizer-horisontal{right:-5px;cursor:col-resize;width:10px;height:100%}.croppie-container .cr-resizer-horisontal::after{top:50%;margin-top:-5px}.croppie-container .cr-original-image{display:none}.croppie-container .cr-vp-circle{border-radius:50%}.croppie-container .cr-overlay{z-index:1;position:absolute;cursor:move;touch-action:none}.croppie-container .cr-slider-wrap{width:75%;margin:15px auto;text-align:center}.croppie-result{position:relative;overflow:hidden}.croppie-result img{position:absolute}.croppie-container .cr-image,.croppie-container .cr-overlay,.croppie-container .cr-viewport{-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0)}.cr-slider{-webkit-appearance:none;max-width:100%;padding-top:8px;padding-bottom:8px;background-color:transparent}.cr-slider::-webkit-slider-runnable-track{width:100%;height:3px;background:rgba(0,0,0,.5);border:0;border-radius:3px}.cr-slider::-webkit-slider-thumb{-webkit-appearance:none;border:none;height:16px;width:16px;border-radius:50%;background:#ddd;margin-top:-6px}.cr-slider:focus{outline:0}.cr-slider::-moz-range-track{width:100%;height:3px;background:rgba(0,0,0,.5);border:0;border-radius:3px}.cr-slider::-moz-range-thumb{border:none;height:16px;width:16px;border-radius:50%;background:#ddd;margin-top:-6px}.cr-slider:-moz-focusring{outline:#fff solid 1px;outline-offset:-1px}.cr-slider::-ms-track{width:100%;height:5px;background:0 0;border-color:transparent;border-width:6px 0;color:transparent}.cr-slider::-ms-fill-lower{background:rgba(0,0,0,.5);border-radius:10px}.cr-slider::-ms-fill-upper{background:rgba(0,0,0,.5);border-radius:10px}.cr-slider::-ms-thumb{border:none;height:16px;width:16px;border-radius:50%;background:#ddd;margin-top:1px}.cr-slider:focus::-ms-fill-lower{background:rgba(0,0,0,.5)}.cr-slider:focus::-ms-fill-upper{background:rgba(0,0,0,.5)}.cr-rotate-controls{position:absolute;bottom:5px;left:5px;z-index:1}.cr-rotate-controls button{border:0;background:0 0}.cr-rotate-controls i:before{font-style:normal;font-weight:900;font-size:22px}.cm-em,.hljs-comment,.hljs-emphasis,.hljs-quote,.tui-editor-contents address,.tui-editor-contents cite,.tui-editor-contents dfn,.tui-editor-contents em,.tui-editor-contents i,.tui-editor-contents var{font-style:italic}.cr-rotate-l i:before{content:'↺'}.cr-rotate-r i:before{content:'↻'}.bootstrap-tagsinput{background-color:#fff;border:1px solid #ccc;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);padding:4px 6px;color:#555;border-radius:4px;max-width:100%;line-height:22px;cursor:text}.bootstrap-tagsinput input,.bootstrap-tagsinput input:focus{border:none;box-shadow:none}.bootstrap-tagsinput input{outline:0;background-color:transparent;padding:0 6px;margin:0;width:auto;max-width:inherit}.bootstrap-tagsinput.form-control input::-moz-placeholder{color:#777;opacity:1}.bootstrap-tagsinput.form-control input:-ms-input-placeholder{color:#777}.bootstrap-tagsinput.form-control input::-webkit-input-placeholder{color:#777}.bootstrap-tagsinput .tag{margin-right:2px;color:#fff}.bootstrap-tagsinput .tag [data-role=remove]{margin-left:8px;cursor:pointer}.bootstrap-tagsinput .tag [data-role=remove]:after{content:"x";padding:0 2px}.bootstrap-tagsinput .tag [data-role=remove]:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05)}.bootstrap-tagsinput .tag [data-role=remove]:hover:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}/*! +/* Sat Sep 09 2023 14:08:55 GMT+0700 (Indochina Time) */@charset "UTF-8";#return-to-top{position:fixed;bottom:20px;right:20px;background:#000;background:rgba(0,0,0,.7);width:50px;height:50px;text-decoration:none;-webkit-border-radius:35px;-moz-border-radius:35px;border-radius:35px;display:none;-webkit-transition:all .3s linear;-moz-transition:all .3s ease;-ms-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease;z-index:9}#return-to-top:hover{background:rgba(0,0,0,.9)}#return-to-top i{color:#fff;margin:0;position:relative;left:4px;top:0;font-size:30px;-webkit-transition:all .3s ease;-moz-transition:all .3s ease;-ms-transition:all .3s ease;-o-transition:all .3s ease;transition:all .3s ease}#return-to-top:hover i{color:#fff;top:5px}@media (min-width:992px){.language-switcher{display:inline;position:absolute;right:150px;bottom:15px}.language-switcher.portal{bottom:0}.language-switcher .dropdown-menu{right:0}}@media screen and (max-width:991px){.language-switcher{display:inline;position:absolute;left:20px}.language-switcher .dropdown-menu{left:0}}.language-switcher .dropdown-menu{width:250px;overflow:hidden!important}.navbar-collapse .dropdown-menu .dropdown-item{color:#444}.dialogdemoThemeInheritance .container{text-align:center}.data-table .header{padding:10px;font-weight:700;background:#d3d3d3}.mix-loader-container{top:0;left:0;width:100%;height:100%;position:fixed;background-color:#21252987;opacity:.97;z-index:9999;display:flex;justify-content:center;align-items:center}.mix-loader-container .spinner{margin:100px auto;width:40px;height:40px;position:relative;text-align:center;-webkit-animation:sk-rotate 2s infinite linear;animation:sk-rotate 2s infinite linear}.mix-loader-container .dot1,.mix-loader-container .dot2{width:60%;height:60%;display:inline-block;position:absolute;top:0;background-color:#fff;border-radius:100%;-webkit-animation:sk-bounce 2s infinite ease-in-out;animation:sk-bounce 2s infinite ease-in-out}.mix-loader-container .dot2{top:auto;bottom:0;-webkit-animation-delay:-1s;animation-delay:-1s}@-webkit-keyframes sk-rotate{100%{-webkit-transform:rotate(360deg)}}@keyframes sk-rotate{100%{transform:rotate(360deg);-webkit-transform:rotate(360deg)}}@-webkit-keyframes sk-bounce{0%,100%{-webkit-transform:scale(0)}50%{-webkit-transform:scale(1)}}@keyframes sk-bounce{0%,100%{transform:scale(0);-webkit-transform:scale(0)}50%{transform:scale(1);-webkit-transform:scale(1)}}.lds-ellipsis{display:inline-block;position:relative;width:80px;height:80px}.lds-ellipsis div{position:absolute;top:33px;width:13px;height:13px;border-radius:50%;background:#fff;animation-timing-function:cubic-bezier(0,1,1,0)}.lds-ellipsis div:nth-child(1){left:8px;animation:lds-ellipsis1 .6s infinite}.lds-ellipsis div:nth-child(2){left:8px;animation:lds-ellipsis2 .6s infinite}.lds-ellipsis div:nth-child(3){left:32px;animation:lds-ellipsis2 .6s infinite}.lds-ellipsis div:nth-child(4){left:56px;animation:lds-ellipsis3 .6s infinite}@keyframes lds-ellipsis1{0%{transform:scale(0)}100%{transform:scale(1)}}@keyframes lds-ellipsis3{0%{transform:scale(1)}100%{transform:scale(0)}}@keyframes lds-ellipsis2{0%{transform:translate(0,0)}100%{transform:translate(24px,0)}}#dlg-preview-popup .modal-body .img{max-width:100%}quill-editor .ql-container{min-height:300px;overflow:auto}quill-editor .ql-toolbar{position:sticky!important;top:3.9rem;z-index:12;background-color:#fff}#modal-shopping-cart .modal-title{margin-top:0}#modal-shopping-cart .cart-item{margin:10px 0}#modal-shopping-cart .modal-dialog{max-width:unset;margin:20px}#modal-shopping-cart{color:#5c4b43;z-index:1060}#modal-shopping-cart .modal-footer button{margin:0 10px}.snowflake{display:block;position:absolute;-webkit-border-radius:50%;-moz-border-radius:50%;border-radius:50%;-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);-o-transform:translateZ(0);transform:translateZ(0);-webkit-user-select:none;-moz-user-select:none;user-select:none;background-image:-webkit-radial-gradient(center,circle farthest-corner,rgba(255,255,255,1) 40%,rgba(255,255,255,0) 100%);background-image:-moz-radial-gradient(center,circle farthest-corner,rgba(255,255,255,1) 40%,rgba(255,255,255,0) 100%);background-image:-ms-radial-gradient(center,circle farthest-corner,rgba(255,255,255,1) 40%,rgba(255,255,255,0) 100%);background-image:radial-gradient(center,circle farthest-corner,rgba(255,255,255,1) 40%,rgba(255,255,255,0) 100%)}#snow{position:fixed;width:100%;height:100%}.star-rating{margin:0;padding:0;display:inline-block}.star-rating .star{padding:1px;color:#ddd;font-size:12px;text-shadow:.05em .05em #aaa;list-style-type:none;display:inline-block;cursor:pointer}.star-rating .star.filled{color:#fd0}.star-rating.readonly .star.filled{color:#666}.youtube{background-color:#000;margin-bottom:30px;position:relative;padding-top:56.25%;overflow:hidden;cursor:pointer}.youtube img{width:100%;top:-16.82%;left:0;opacity:.7}.youtube .play-button{width:90px;height:60px;background-color:#333;box-shadow:0 0 30px rgba(0,0,0,.6);z-index:1;opacity:.8;border-radius:6px}.now-ui-icons.circle,tags-input[disabled] .tags,tags-input[disabled] .tags .input{background-color:#eee}.youtube .play-button:before{content:"";border-style:solid;border-width:15px 0 15px 26px;border-color:transparent transparent transparent #fff}.youtube .play-button,.youtube img{cursor:pointer}.youtube .play-button,.youtube .play-button:before,.youtube iframe,.youtube img{position:absolute}.youtube .play-button,.youtube .play-button:before{top:50%;left:50%;transform:translate3d(-50%,-50%,0)}.youtube iframe{height:100%;width:100%;top:0;left:0}tags-input{box-shadow:none;border:none;padding:0;min-height:34px}tags-input .tags{border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;-moz-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}tags-input .tags .tag-item{color:#000}tags-input .tags .tag-item.selected{color:#fff;border:1px solid #d43f3a}tags-input .tags .tag-item .remove-button:hover{text-decoration:none}tags-input .tags.focused{border:1px solid #66afe9}tags-input .autocomplete{border-radius:4px}tags-input.ng-invalid .tags{border-color:#843534}.input-group tags-input{padding:0;display:table-cell}.input-group tags-input:not(:first-child) .tags{border-top-left-radius:0;border-bottom-left-radius:0}.input-group tags-input:not(:last-child) .tags{border-top-right-radius:0;border-bottom-right-radius:0}.input-group-lg tags-input:first-child .tags{border-top-left-radius:6px;border-bottom-left-radius:6px}.input-group-lg tags-input:last-child .tags{border-top-right-radius:6px;border-bottom-right-radius:6px}.input-group-sm tags-input:first-child .tags{border-top-left-radius:3px;border-bottom-left-radius:3px}.input-group-sm tags-input:last-child .tags{border-top-right-radius:3px;border-bottom-right-radius:3px}.input-group-lg tags-input,tags-input.ti-input-lg{min-height:46px}.input-group-lg tags-input .tags,tags-input.ti-input-lg .tags{border-radius:6px}.input-group-lg tags-input .tags .tag-item,tags-input.ti-input-lg .tags .tag-item{height:38px;line-height:37px;font-size:18px;border-radius:6px}.input-group-lg tags-input .tags .tag-item .remove-button,tags-input.ti-input-lg .tags .tag-item .remove-button{font-size:20px}.input-group-lg tags-input .tags .input,tags-input.ti-input-lg .tags .input{height:38px;font-size:18px}.input-group-sm tags-input,tags-input.ti-input-sm{min-height:30px}.input-group-sm tags-input .tags,tags-input.ti-input-sm .tags{border-radius:3px}.input-group-sm tags-input .tags .tag-item,tags-input.ti-input-sm .tags .tag-item{height:22px;line-height:21px;font-size:12px;border-radius:3px}.input-group-sm tags-input .tags .tag-item .remove-button,tags-input.ti-input-sm .tags .tag-item .remove-button{font-size:16px}.input-group-sm tags-input .tags .input,tags-input.ti-input-sm .tags .input{height:22px;font-size:12px}.has-feedback tags-input .tags{padding-right:30px}.has-success tags-input .tags{border-color:#3c763d}.has-success tags-input .tags.focused{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-error tags-input .tags{border-color:#a94442}.has-error tags-input .tags.focused{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-warning tags-input .tags{border-color:#8a6d3b}.has-warning tags-input .tags.focused{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;-moz-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}tags-input{display:block}tags-input *,tags-input :after,tags-input :before{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}tags-input .host{margin:5px 0;position:relative;height:100%}tags-input .host:active{outline:0}tags-input .tags{-moz-appearance:textfield;-webkit-appearance:textfield;padding:1px;overflow:hidden;word-wrap:break-word;cursor:text;background-color:#fff;border:1px solid #a9a9a9;box-shadow:1px 1px 1px 0 #d3d3d3 inset;height:100%}tags-input .tags.focused{outline:0;-webkit-box-shadow:0 0 3px 1px rgba(5,139,242,.6);-moz-box-shadow:0 0 3px 1px rgba(5,139,242,.6);box-shadow:0 0 3px 1px rgba(5,139,242,.6)}tags-input .tags .tag-list{margin:0;padding:0;list-style-type:none}tags-input .tags .tag-item{margin:2px;padding:0 5px;display:inline-block;float:left;font:14px "Helvetica Neue",Helvetica,Arial,sans-serif;height:26px;line-height:25px;border:1px solid #acacac;border-radius:3px;background:-webkit-linear-gradient(top,#f0f9ff 0,#cbebff 47%,#a1dbff 100%);background:linear-gradient(to bottom,#f0f9ff 0,#cbebff 47%,#a1dbff 100%)}tags-input .tags .tag-item.selected{background:-webkit-linear-gradient(top,#febbbb 0,#fe9090 45%,#ff5c5c 100%);background:linear-gradient(to bottom,#febbbb 0,#fe9090 45%,#ff5c5c 100%)}tags-input .tags .tag-item .remove-button{margin:0 0 0 5px;padding:0;border:none;background:0 0;cursor:pointer;vertical-align:middle;font:700 16px Arial,sans-serif;color:#585858}tags-input[disabled] .tags,tags-input[disabled] .tags .input,tags-input[disabled] .tags .tag-item .remove-button{cursor:default}tags-input .tags .input.invalid-tag,tags-input .tags .tag-item .remove-button:active{color:red}tags-input .tags .input{border:0;outline:0;margin:2px;padding:0 0 0 5px;float:left;height:26px;font:14px "Helvetica Neue",Helvetica,Arial,sans-serif}tags-input .tags .input::-ms-clear{display:none}tags-input.ng-invalid .tags{-webkit-box-shadow:0 0 3px 1px rgba(255,0,0,.6);-moz-box-shadow:0 0 3px 1px rgba(255,0,0,.6);box-shadow:0 0 3px 1px rgba(255,0,0,.6)}tags-input[disabled] .host:focus{outline:0}tags-input[disabled] .tags .tag-item{opacity:.65;background:-webkit-linear-gradient(top,#f0f9ff 0,rgba(203,235,255,.75) 47%,rgba(161,219,255,.62) 100%);background:linear-gradient(to bottom,#f0f9ff 0,rgba(203,235,255,.75) 47%,rgba(161,219,255,.62) 100%)}tags-input[disabled] .tags .tag-item .remove-button:active{color:#585858}tags-input .autocomplete{margin-top:5px;position:absolute;padding:5px 0;z-index:999;width:100%;background-color:#fff;border:1px solid rgba(0,0,0,.2);-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);-moz-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}tags-input .autocomplete .suggestion-list{margin:0;padding:0;list-style-type:none;max-height:280px;overflow-y:auto;position:relative}tags-input .autocomplete .suggestion-item{padding:5px 10px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:16px "Helvetica Neue",Helvetica,Arial,sans-serif;color:#000;background-color:#fff}tags-input .autocomplete .suggestion-item.selected,tags-input .autocomplete .suggestion-item.selected em{color:#fff;background-color:#0097cf}tags-input .autocomplete .suggestion-item em{font:normal 700 16px "Helvetica Neue",Helvetica,Arial,sans-serif;color:#000;background-color:#fff}.portal-menus ul[dnd-list],.portal-menus ul[dnd-list]>li{position:relative}.portal-menus ul[dnd-list]{min-height:42px;padding-left:0}.portal-menus ul[dnd-list] .dndDraggingSource{display:none}.portal-menus ul[dnd-list] .dndPlaceholder{display:block;background-color:#ddd;padding:10px 15px;min-height:42px}.portal-menus ul[dnd-list] li{background-color:#fff;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;display:block;margin-bottom:-1px;position:relative;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.alertify .ajs-dimmer,.alertify .ajs-modal{position:fixed;z-index:1981;top:0;right:0;bottom:0;left:0}.portal-menus ul[dnd-list] li dnd-nodrag{display:block;padding:10px 15px}.portal-menus .handle{cursor:move}.alertify .ajs-dimmer{padding:0;margin:0;background-color:#252525;opacity:.5}.alertify .ajs-modal{padding:0;overflow-y:auto}.alertify .ajs-dialog{position:relative;margin:5% auto;min-height:110px;max-width:500px;padding:24px 24px 0;outline:0;background-color:#fff}.alertify .ajs-dialog.ajs-capture:before{content:'';position:absolute;top:0;right:0;bottom:0;left:0;display:block;z-index:1}.alertify .ajs-reset{position:absolute!important;display:inline!important;width:0!important;height:0!important;opacity:0!important}.alertify .ajs-commands{position:absolute;right:4px;margin:-14px 24px 0 0;z-index:2}.alertify .ajs-commands button{display:none;width:10px;height:10px;margin-left:10px;padding:10px;border:0;background-color:transparent;background-repeat:no-repeat;background-position:center;cursor:pointer}.alertify .ajs-commands button.ajs-close{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAh0lEQVQYlY2QsQ0EIQwEB9cBAR1CJUaI/gigDnwR6NBL/7/xWLNrZ2b8EwGotVpr7eOitWa1VjugiNB7R1UPrKrWe0dEAHBbXUqxMQbeewDmnHjvyTm7C3zDwAUd9c63YQdUVdu6EAJzzquz7HXvTiklt+H9DQFYaxFjvDqllFyMkbXWvfpXHjJrWFgdBq/hAAAAAElFTkSuQmCC)}.alertify .ajs-commands button.ajs-maximize{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAOUlEQVQYlWP8//8/AzGAhYGBgaG4uBiv6t7eXkYmooxjYGAgWiELsvHYFMCcRX2rSXcjoSBiJDbAAeD+EGu+8BZcAAAAAElFTkSuQmCC)}.alertify .ajs-header{margin:-24px -24px 0;padding:16px 24px;background-color:#fff}.alertify .ajs-body{min-height:56px}.alertify .ajs-body .ajs-content{padding:16px 24px 16px 16px}.alertify .ajs-footer{padding:4px;margin-left:-24px;margin-right:-24px;min-height:43px;background-color:#fff}.alertify .ajs-footer .ajs-buttons.ajs-auxiliary .ajs-button,.alertify .ajs-footer .ajs-buttons.ajs-primary .ajs-button{margin:4px}.alertify .ajs-footer .ajs-buttons.ajs-primary{text-align:right}.alertify .ajs-footer .ajs-buttons.ajs-auxiliary{float:left;clear:none;text-align:left}.alertify .ajs-footer .ajs-buttons .ajs-button{min-width:88px;min-height:35px}.alertify .ajs-handle{position:absolute;display:none;width:10px;height:10px;right:0;bottom:0;z-index:1;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMS8xNEDQYmMAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAQ0lEQVQYlaXNMQoAIAxD0dT7H657l0KX3iJuUlBUNOsPPCGJm7VDp6ryeMxMuDsAQH7owW3pyn3RS26iKxERMLN3ugOaAkaL3sWVigAAAABJRU5ErkJggg==);-webkit-transform:scaleX(1);transform:scaleX(1);cursor:se-resize}.alertify.ajs-no-overflow .ajs-body .ajs-content{overflow:hidden!important}.alertify.ajs-no-padding.ajs-maximized .ajs-body .ajs-content{left:0;right:0;padding:0}.alertify.ajs-no-padding:not(.ajs-maximized) .ajs-body{margin-left:-24px;margin-right:-24px}.alertify.ajs-no-padding:not(.ajs-maximized) .ajs-body .ajs-content{padding:0}.alertify.ajs-no-padding.ajs-resizable .ajs-body .ajs-content{left:0;right:0}.alertify.ajs-closable .ajs-commands button.ajs-close,.alertify.ajs-maximizable .ajs-commands button.ajs-maximize,.alertify.ajs-maximizable .ajs-commands button.ajs-restore{display:inline-block}.alertify.ajs-maximized .ajs-dialog{width:100%!important;height:100%!important;max-width:none!important;margin:0 auto!important;top:0!important;left:0!important}.alertify.ajs-maximized.ajs-modeless .ajs-modal{position:fixed!important;min-height:100%!important;max-height:none!important;margin:0!important}.alertify.ajs-maximized .ajs-commands button.ajs-maximize{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAASklEQVQYlZWQ0QkAMQhDtXRincOZX78KVtrDCwgqJNEoIB3MPLj7lRUROlpyVXGzby6zWuY+kz6tj5sBMTMAyVV3/595RbOh3cAXsww1raeiOcoAAAAASUVORK5CYII=)}.alertify.ajs-maximized .ajs-dialog,.alertify.ajs-resizable .ajs-dialog{padding:0}.alertify.ajs-maximized .ajs-commands,.alertify.ajs-resizable .ajs-commands{margin:14px 24px 0 0}.alertify.ajs-maximized .ajs-header,.alertify.ajs-resizable .ajs-header{position:absolute;top:0;left:0;right:0;margin:0;padding:16px 24px}.alertify.ajs-maximized .ajs-body,.alertify.ajs-resizable .ajs-body{min-height:224px;display:inline-block}.alertify.ajs-maximized .ajs-body .ajs-content,.alertify.ajs-resizable .ajs-body .ajs-content{position:absolute;top:50px;right:24px;bottom:50px;left:24px;overflow:auto}.alertify.ajs-maximized .ajs-footer,.alertify.ajs-resizable .ajs-footer{position:absolute;left:0;right:0;bottom:0;margin:0}.alertify.ajs-resizable:not(.ajs-maximized) .ajs-dialog{min-width:548px}.alertify.ajs-resizable:not(.ajs-maximized) .ajs-handle{display:block}.alertify.ajs-movable:not(.ajs-maximized) .ajs-header{cursor:move}.alertify.ajs-modeless .ajs-dimmer,.alertify.ajs-modeless .ajs-reset{display:none}.alertify.ajs-modeless .ajs-modal{overflow:visible;max-width:none;max-height:0}.alertify.ajs-modeless.ajs-pinnable .ajs-commands button.ajs-pin{display:inline-block;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAQklEQVQYlcWPMQ4AIAwCqU9u38GbcbHRWN1MvKQDhQFMEpKImGJA0gCgnYw0V0rwxseg5erT4oSkQVI5d9f+e9+xA0NbLpWfitPXAAAAAElFTkSuQmCC)}.alertify.ajs-modeless.ajs-unpinned .ajs-modal{position:absolute}.alertify.ajs-modeless.ajs-unpinned .ajs-commands button.ajs-pin{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAO0lEQVQYlWP8//8/AzGAiShV6AqLi4txGs+CLoBLMYbC3t5eRmyaWfBZhwwYkX2NTxPRvibKjRhW4wMAhxkYGbLu3pEAAAAASUVORK5CYII=)}.alertify.ajs-modeless:not(.ajs-unpinned) .ajs-body{max-height:500px;overflow:auto}.alertify.ajs-basic .ajs-header{opacity:0}.alertify.ajs-basic .ajs-footer{visibility:hidden}.alertify.ajs-frameless .ajs-header{position:absolute;top:0;left:0;right:0;min-height:60px;margin:0;padding:0;opacity:0;z-index:1}.alertify.ajs-frameless .ajs-footer{display:none}.alertify.ajs-frameless .ajs-body .ajs-content{position:absolute;top:0;right:0;bottom:0;left:0}.alertify.ajs-frameless:not(.ajs-resizable) .ajs-dialog{padding-top:0}.alertify.ajs-frameless:not(.ajs-resizable) .ajs-dialog .ajs-commands{margin-top:0}.ajs-no-overflow{overflow:hidden!important;outline:0}.ajs-no-overflow.ajs-fixed{position:fixed;top:0;right:0;bottom:0;left:0;overflow-y:scroll!important}.ajs-no-selection,.ajs-no-selection *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@media screen and (max-width:568px){.alertify .ajs-dialog{min-width:150px}.alertify:not(.ajs-maximized) .ajs-modal{padding:0 5%}.alertify:not(.ajs-maximized).ajs-resizable .ajs-dialog{min-width:initial;min-width:auto}}@-moz-document url-prefix(){.alertify button:focus{outline:#3593d2 dotted 1px}}.alertify .ajs-dimmer,.alertify .ajs-modal{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-transition-property:opacity,visibility;transition-property:opacity,visibility;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transition-duration:250ms;transition-duration:250ms}.alertify.ajs-hidden .ajs-dimmer,.alertify.ajs-hidden .ajs-modal{visibility:hidden;opacity:0}.alertify.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-duration:.5s;animation-duration:.5s}.alertify.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-duration:250ms;animation-duration:250ms}.alertify .ajs-dialog.ajs-shake{-webkit-animation-name:ajs-shake;animation-name:ajs-shake;-webkit-animation-duration:.1s;animation-duration:.1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes ajs-shake{0%,100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes ajs-shake{0%,100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.alertify.ajs-slide.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-name:ajs-slideIn;animation-name:ajs-slideIn;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1.275);animation-timing-function:cubic-bezier(.175,.885,.32,1.275)}.alertify.ajs-slide.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-name:ajs-slideOut;animation-name:ajs-slideOut;-webkit-animation-timing-function:cubic-bezier(.6,-.28,.735,.045);animation-timing-function:cubic-bezier(.6,-.28,.735,.045)}.alertify.ajs-zoom.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-name:ajs-zoomIn;animation-name:ajs-zoomIn}.alertify.ajs-zoom.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-name:ajs-zoomOut;animation-name:ajs-zoomOut}.alertify.ajs-fade.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-name:ajs-fadeIn;animation-name:ajs-fadeIn}.alertify.ajs-fade.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-name:ajs-fadeOut;animation-name:ajs-fadeOut}.alertify.ajs-pulse.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-name:ajs-pulseIn;animation-name:ajs-pulseIn}.alertify.ajs-pulse.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-name:ajs-pulseOut;animation-name:ajs-pulseOut}.alertify.ajs-flipx.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-name:ajs-flipInX;animation-name:ajs-flipInX}.alertify.ajs-flipx.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-name:ajs-flipOutX;animation-name:ajs-flipOutX}.alertify.ajs-flipy.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-name:ajs-flipInY;animation-name:ajs-flipInY}.alertify.ajs-flipy.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-name:ajs-flipOutY;animation-name:ajs-flipOutY}@-webkit-keyframes ajs-pulseIn{0%,100%,20%,40%,60%,80%{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes ajs-pulseIn{0%,100%,20%,40%,60%,80%{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@-webkit-keyframes ajs-pulseOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}100%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes ajs-pulseOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}100%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes ajs-zoomIn{0%{opacity:0;-webkit-transform:scale3d(.25,.25,.25);transform:scale3d(.25,.25,.25)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes ajs-zoomIn{0%{opacity:0;-webkit-transform:scale3d(.25,.25,.25);transform:scale3d(.25,.25,.25)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@-webkit-keyframes ajs-zoomOut{0%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}100%{opacity:0;-webkit-transform:scale3d(.25,.25,.25);transform:scale3d(.25,.25,.25)}}@keyframes ajs-zoomOut{0%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}100%{opacity:0;-webkit-transform:scale3d(.25,.25,.25);transform:scale3d(.25,.25,.25)}}@-webkit-keyframes ajs-fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes ajs-fadeIn{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes ajs-fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes ajs-fadeOut{0%{opacity:1}100%{opacity:0}}@-webkit-keyframes ajs-flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes ajs-flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@-webkit-keyframes ajs-flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}@keyframes ajs-flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}@-webkit-keyframes ajs-flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes ajs-flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@-webkit-keyframes ajs-flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}@keyframes ajs-flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}@-webkit-keyframes ajs-slideIn{0%{margin-top:-100%}100%{margin-top:5%}}@keyframes ajs-slideIn{0%{margin-top:-100%}100%{margin-top:5%}}@-webkit-keyframes ajs-slideOut{0%{margin-top:5%}100%{margin-top:-100%}}@keyframes ajs-slideOut{0%{margin-top:5%}100%{margin-top:-100%}}.alertify-notifier{position:fixed;width:0;overflow:visible;z-index:1982;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.alertify-notifier .ajs-message{position:relative;width:260px;max-height:0;padding:0;opacity:0;margin:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-transition-duration:250ms;transition-duration:250ms;-webkit-transition-timing-function:linear;transition-timing-function:linear}.alertify-notifier .ajs-message.ajs-visible{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.275);transition-timing-function:cubic-bezier(.175,.885,.32,1.275);opacity:1;max-height:100%;padding:15px;margin-top:10px}.alertify-notifier .ajs-message.ajs-success{background:rgba(91,189,114,.95)}.alertify-notifier .ajs-message.ajs-error{background:rgba(217,92,92,.95)}.alertify-notifier .ajs-message.ajs-warning{background:rgba(252,248,215,.95)}.alertify-notifier .ajs-message .ajs-close{position:absolute;top:0;right:0;width:16px;height:16px;cursor:pointer;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAABGdBTUEAALGPC/xhBQAAAFBJREFUGBl1j0EKADEIA+ve/P9f9bh1hEihNBfjVCO1v7RKVqJK4h8gM5cAPR42AkQEpSXPwMTyoi13n5N9YqJehm3Fnr7nL1D0ZEbD5OubGyC7a9gx+9eNAAAAAElFTkSuQmCC);background-repeat:no-repeat;background-position:center center;background-color:rgba(0,0,0,.5);border-top-right-radius:2px}.alertify-notifier.ajs-top{top:10px}.alertify-notifier.ajs-bottom{bottom:10px}.alertify-notifier.ajs-right{right:10px}.alertify-notifier.ajs-right .ajs-message{right:-320px}.alertify-notifier.ajs-right .ajs-message.ajs-visible{right:290px}.alertify-notifier.ajs-left{left:10px}.alertify-notifier.ajs-left .ajs-message{left:-300px}.alertify-notifier.ajs-left .ajs-message.ajs-visible{left:0}.alertify-notifier.ajs-center{left:50%}.alertify-notifier.ajs-center .ajs-message{-webkit-transform:translateX(-50%);transform:translateX(-50%)}.alertify-notifier.ajs-center .ajs-message.ajs-visible{left:50%;-webkit-transition-timing-function:cubic-bezier(.57,.43,.1,.65);transition-timing-function:cubic-bezier(.57,.43,.1,.65)}.alertify-notifier.ajs-center.ajs-top .ajs-message{top:-300px}.alertify-notifier.ajs-center.ajs-top .ajs-message.ajs-visible{top:0}.alertify-notifier.ajs-center.ajs-bottom .ajs-message{bottom:-300px}.alertify-notifier.ajs-center.ajs-bottom .ajs-message.ajs-visible{bottom:0}.ajs-no-transition.alertify .ajs-dialog,.ajs-no-transition.alertify .ajs-dimmer,.ajs-no-transition.alertify .ajs-modal,.ajs-no-transition.alertify-notifier .ajs-message{-webkit-transition:none!important;transition:none!important;-webkit-animation:none!important;animation:none!important}@media (prefers-reduced-motion:reduce){.alertify .ajs-dialog,.alertify .ajs-dimmer,.alertify .ajs-modal,.alertify-notifier .ajs-message{-webkit-transition:none!important;transition:none!important;-webkit-animation:none!important;animation:none!important}}#trumbowyg-icons,#trumbowyg-icons svg{height:0;width:0}#trumbowyg-icons{overflow:hidden;visibility:hidden}.trumbowyg-box *,.trumbowyg-box ::after,.trumbowyg-box ::before,.trumbowyg-modal *,.trumbowyg-modal ::after,.trumbowyg-modal ::before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.trumbowyg-box svg,.trumbowyg-modal svg{width:17px;height:100%;fill:#222}.trumbowyg-box,.trumbowyg-editor{display:block;position:relative;border:1px solid #DDD;width:100%;min-height:300px}.trumbowyg-box .trumbowyg-editor{margin:0 auto}.trumbowyg-box.trumbowyg-fullscreen{background:#FEFEFE;border:none!important}.trumbowyg-editor,.trumbowyg-textarea{position:relative;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:20px;min-height:300px;width:100%;border-style:none;resize:none;outline:0;overflow:auto;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.trumbowyg-editor.trumbowyg-autogrow-on-enter,.trumbowyg-textarea.trumbowyg-autogrow-on-enter{-webkit-transition:height .3s ease-out;-o-transition:height .3s ease-out;transition:height .3s ease-out}.trumbowyg-box-blur .trumbowyg-editor *,.trumbowyg-box-blur .trumbowyg-editor::before{color:transparent!important;text-shadow:0 0 7px #333}@media screen and (min-width:0 \0){.trumbowyg-box-blur .trumbowyg-editor *,.trumbowyg-box-blur .trumbowyg-editor::before{color:rgba(200,200,200,.6)!important}}@supports (-ms-accelerator:true){.trumbowyg-box-blur .trumbowyg-editor *,.trumbowyg-box-blur .trumbowyg-editor::before{color:rgba(200,200,200,.6)!important}}.trumbowyg-box-blur .trumbowyg-editor hr,.trumbowyg-box-blur .trumbowyg-editor img{opacity:.2}.trumbowyg-textarea{position:relative;display:block;overflow:auto;border:none;font-size:14px;font-family:Inconsolata,Consolas,Courier,"Courier New",sans-serif;line-height:18px}.trumbowyg-box.trumbowyg-editor-visible .trumbowyg-textarea{height:1px!important;width:25%;min-height:0!important;padding:0!important;background:0 0;opacity:0!important}.trumbowyg-box.trumbowyg-editor-hidden .trumbowyg-textarea{display:block;margin-bottom:1px}.trumbowyg-box.trumbowyg-editor-hidden .trumbowyg-editor{display:none}.trumbowyg-box.trumbowyg-disabled .trumbowyg-textarea{opacity:.8;background:0 0}.trumbowyg-editor[contenteditable=true]:empty:not(:focus)::before{content:attr(placeholder);color:#999;pointer-events:none;white-space:break-spaces}.trumbowyg-button-pane{width:100%;min-height:36px;background:#ecf0f1;border-bottom:1px solid #d7e0e2;margin:0;padding:0 5px;position:relative;list-style-type:none;line-height:10px;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:11}.trumbowyg-button-pane::after{content:" ";display:block;position:absolute;top:36px;left:0;right:0;width:100%;height:1px;background:#d7e0e2}.trumbowyg-button-pane .trumbowyg-button-group{display:inline-block}.trumbowyg-button-pane .trumbowyg-button-group .trumbowyg-fullscreen-button svg{color:transparent}.trumbowyg-button-pane .trumbowyg-button-group::after{content:" ";display:inline-block;width:1px;background:#d7e0e2;margin:0 5px;height:35px;vertical-align:top}.bootstrap-tagsinput,.fa-stack,.md-avatar,.mi-stack,.trumbowyg-button-pane button{vertical-align:middle}.trumbowyg-button-pane .trumbowyg-button-group:last-child::after{content:none}.trumbowyg-button-pane button{display:inline-block;position:relative;width:35px;height:35px;padding:1px 6px!important;margin-bottom:1px;overflow:hidden;border:none;cursor:pointer;background:0 0;-webkit-transition:background-color 150ms,opacity 150ms;-o-transition:background-color 150ms,opacity 150ms;transition:background-color 150ms,opacity 150ms}.trumbowyg-button-pane button.trumbowyg-textual-button{width:auto;line-height:35px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.trumbowyg-button-pane button.trumbowyg-disable,.trumbowyg-button-pane.trumbowyg-disable button:not(.trumbowyg-not-disable):not(.trumbowyg-active),.trumbowyg-disabled .trumbowyg-button-pane button:not(.trumbowyg-not-disable):not(.trumbowyg-viewHTML-button){opacity:.2;cursor:default;pointer-events:none}.trumbowyg-button-pane.trumbowyg-disable .trumbowyg-button-group::before,.trumbowyg-disabled .trumbowyg-button-pane .trumbowyg-button-group::before{background:#e3e9eb}.trumbowyg-button-pane button.trumbowyg-active,.trumbowyg-button-pane button:not(.trumbowyg-disable):focus,.trumbowyg-button-pane button:not(.trumbowyg-disable):hover{background-color:#FFF;outline:0}.trumbowyg-button-pane .trumbowyg-open-dropdown::after{display:block;content:" ";position:absolute;top:25px;right:3px;height:0;width:0;border:3px solid transparent;border-top-color:#555}.trumbowyg-button-pane .trumbowyg-open-dropdown.trumbowyg-textual-button{padding-left:10px!important;padding-right:18px!important}.trumbowyg-button-pane .trumbowyg-open-dropdown.trumbowyg-textual-button::after{top:17px;right:7px}.trumbowyg-button-pane .trumbowyg-right{float:right}.trumbowyg-dropdown{max-width:300px;max-height:250px;overflow-y:auto;overflow-x:hidden;white-space:nowrap;border:1px solid #ecf0f1;padding:5px 0;border-top:none;background:#FFF;margin-left:-1px;-webkit-box-shadow:rgba(0,0,0,.1) 0 2px 3px;box-shadow:rgba(0,0,0,.1) 0 2px 3px;z-index:12}.trumbowyg-dropdown button{display:block;width:100%;height:35px;line-height:35px;text-decoration:none;background:#FFF;padding:0 20px 0 10px;color:#333!important;border:none;cursor:pointer;text-align:left;font-size:15px;-webkit-transition:all 150ms;-o-transition:all 150ms;transition:all 150ms}.trumbowyg-dropdown button:focus,.trumbowyg-dropdown button:hover{background:#ecf0f1}.trumbowyg-dropdown button svg{float:left;margin-right:14px}.trumbowyg-modal{position:absolute;top:0;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);-o-transform:translateX(-50%);transform:translateX(-50%);max-width:520px;width:100%;height:350px;z-index:12;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}.trumbowyg-modal-box{position:absolute;top:0;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);-o-transform:translateX(-50%);transform:translateX(-50%);max-width:500px;width:calc(100% - 20px);padding-bottom:45px;z-index:1;background-color:#FFF;text-align:center;font-size:14px;-webkit-box-shadow:rgba(0,0,0,.2) 0 2px 3px;box-shadow:rgba(0,0,0,.2) 0 2px 3px;-webkit-backface-visibility:hidden;backface-visibility:hidden}.trumbowyg-modal-box .trumbowyg-modal-title{font-size:24px;font-weight:700;margin:0 0 20px;padding:15px 0 13px;display:block;border-bottom:1px solid #EEE;color:#333;background:#fbfcfc}.trumbowyg-modal-box .trumbowyg-progress{width:100%;height:3px;position:absolute;top:58px}.trumbowyg-modal-box .trumbowyg-progress .trumbowyg-progress-bar{background:#2BC06A;width:0;height:100%;-webkit-transition:width 150ms linear;-o-transition:width 150ms linear;transition:width 150ms linear}.trumbowyg-modal-box .trumbowyg-input-row{position:relative;margin:15px 12px;border:1px solid #DEDEDE;overflow:hidden}.trumbowyg-modal-box .trumbowyg-input-infos{text-align:left;-webkit-transition:all 150ms;-o-transition:all 150ms;transition:all 150ms;width:150px;border-right:1px solid #DEDEDE;padding:0 7px;background-color:#fbfcfc;position:absolute;left:0;top:0;bottom:0}.trumbowyg-modal-box .trumbowyg-input-infos label{color:#69878f;overflow:hidden}.trumbowyg-modal-box .trumbowyg-input-infos label,.trumbowyg-modal-box .trumbowyg-input-infos label span{display:block;height:27px;line-height:27px;-webkit-transition:all 150ms;-o-transition:all 150ms;transition:all 150ms}.trumbowyg-modal-box .trumbowyg-input-infos .trumbowyg-msg-error{color:#e74c3c}.trumbowyg-modal-box .trumbowyg-input-html{padding:1px 1px 1px 152px}.trumbowyg-modal-box .trumbowyg-input-html,.trumbowyg-modal-box .trumbowyg-input-html input,.trumbowyg-modal-box .trumbowyg-input-html select,.trumbowyg-modal-box .trumbowyg-input-html textarea{font-size:14px}.trumbowyg-modal-box .trumbowyg-input-html input,.trumbowyg-modal-box .trumbowyg-input-html select,.trumbowyg-modal-box .trumbowyg-input-html textarea{-webkit-transition:all 150ms;-o-transition:all 150ms;transition:all 150ms;height:27px;line-height:27px;border:0;width:100%;padding:0 7px}.trumbowyg-modal-box .trumbowyg-input-html input:focus,.trumbowyg-modal-box .trumbowyg-input-html input:hover,.trumbowyg-modal-box .trumbowyg-input-html select:focus,.trumbowyg-modal-box .trumbowyg-input-html select:hover,.trumbowyg-modal-box .trumbowyg-input-html textarea:focus,.trumbowyg-modal-box .trumbowyg-input-html textarea:hover{outline:#95a5a6 solid 1px}.trumbowyg-modal-box .trumbowyg-input-html input:focus,.trumbowyg-modal-box .trumbowyg-input-html select:focus,.trumbowyg-modal-box .trumbowyg-input-html textarea:focus{background:#fbfcfc}.trumbowyg-modal-box .trumbowyg-input-html input[type=checkbox]{width:16px;height:16px;padding:0}.trumbowyg-modal-box .trumbowyg-input-html-with-checkbox{text-align:left;padding:3px 1px 1px 3px}.trumbowyg-modal-box .trumbowyg-input-error input,.trumbowyg-modal-box .trumbowyg-input-error select,.trumbowyg-modal-box .trumbowyg-input-error textarea{outline:#e74c3c solid 1px}.trumbowyg-modal-box .trumbowyg-input-error .trumbowyg-input-infos label span:first-child{margin-top:-27px}.trumbowyg-modal-box .error{margin-top:25px;display:block;color:red}.trumbowyg-modal-box .trumbowyg-modal-button{position:absolute;bottom:10px;right:0;text-decoration:none;color:#FFF;display:block;width:100px;height:35px;line-height:33px;margin:0 10px;background-color:#333;border:none;cursor:pointer;font-family:"Trebuchet MS",Helvetica,Verdana,sans-serif;font-size:16px;-webkit-transition:all 150ms;-o-transition:all 150ms;transition:all 150ms}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit{right:110px;background:#2bc06a}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:focus,.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:hover{background:#40d47e;outline:0}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:active{background:#25a25a}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset{color:#555;background:#e6e6e6}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:focus,.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:hover{background:#fbfbfb;outline:0}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:active{background:#d5d5d5}.trumbowyg-overlay{position:absolute;background-color:rgba(255,255,255,.5);height:100%;width:100%;left:0;display:none;top:0;z-index:10}body.trumbowyg-body-fullscreen{overflow:hidden}.trumbowyg-fullscreen{position:fixed;top:0;left:0;width:100%;height:100%;margin:0;padding:0;z-index:99999}.trumbowyg-fullscreen .trumbowyg-editor,.trumbowyg-fullscreen.trumbowyg-box{border:none}.trumbowyg-fullscreen .trumbowyg-editor,.trumbowyg-fullscreen .trumbowyg-textarea{height:calc(100% - 37px)!important;overflow:auto}.trumbowyg-fullscreen .trumbowyg-overlay{height:100%!important}.trumbowyg-fullscreen .trumbowyg-button-group .trumbowyg-fullscreen-button svg{color:#222;fill:transparent}.trumbowyg-editor embed,.trumbowyg-editor img,.trumbowyg-editor object,.trumbowyg-editor video{max-width:100%}.trumbowyg-editor img,.trumbowyg-editor video{height:auto}.trumbowyg-editor img{cursor:move}.trumbowyg-editor canvas:focus{outline:0}.trumbowyg-editor.trumbowyg-reset-css{background:#FEFEFE!important;font-family:"Trebuchet MS",Helvetica,Verdana,sans-serif!important;font-size:14px!important;line-height:1.45em!important;color:#333}.trumbowyg-editor.trumbowyg-reset-css a{color:#15c!important;text-decoration:underline!important}.trumbowyg-editor.trumbowyg-reset-css blockquote,.trumbowyg-editor.trumbowyg-reset-css div,.trumbowyg-editor.trumbowyg-reset-css ol,.trumbowyg-editor.trumbowyg-reset-css p,.trumbowyg-editor.trumbowyg-reset-css ul{-webkit-box-shadow:none!important;box-shadow:none!important;background:0 0!important;margin:0 0 15px!important;line-height:1.4em!important;font-family:"Trebuchet MS",Helvetica,Verdana,sans-serif!important;font-size:14px!important;border:none}.trumbowyg-editor.trumbowyg-reset-css hr,.trumbowyg-editor.trumbowyg-reset-css iframe,.trumbowyg-editor.trumbowyg-reset-css object{margin-bottom:15px!important}.trumbowyg-editor.trumbowyg-reset-css blockquote{margin-left:32px!important;font-style:italic!important;color:#555}.trumbowyg-editor.trumbowyg-reset-css ul{list-style:disc}.trumbowyg-editor.trumbowyg-reset-css ol{list-style:decimal}.trumbowyg-editor.trumbowyg-reset-css ol,.trumbowyg-editor.trumbowyg-reset-css ul{padding-left:20px!important}.trumbowyg-editor.trumbowyg-reset-css ol ol,.trumbowyg-editor.trumbowyg-reset-css ol ul,.trumbowyg-editor.trumbowyg-reset-css ul ol,.trumbowyg-editor.trumbowyg-reset-css ul ul{border:none;margin:2px!important;padding:0 0 0 24px!important}.trumbowyg-editor.trumbowyg-reset-css hr{display:block;height:1px;border:none;border-top:1px solid #CCC}.trumbowyg-editor.trumbowyg-reset-css h1,.trumbowyg-editor.trumbowyg-reset-css h2,.trumbowyg-editor.trumbowyg-reset-css h3,.trumbowyg-editor.trumbowyg-reset-css h4{color:#111;background:0 0;margin:0!important;padding:0!important;font-weight:700}.trumbowyg-editor.trumbowyg-reset-css h1{font-size:32px!important;line-height:38px!important;margin-bottom:20px!important}.trumbowyg-editor.trumbowyg-reset-css h2{font-size:26px!important;line-height:34px!important;margin-bottom:15px!important}.trumbowyg-editor.trumbowyg-reset-css h3{font-size:22px!important;line-height:28px!important;margin-bottom:7px!important}.trumbowyg-editor.trumbowyg-reset-css h4{font-size:16px!important;line-height:22px!important;margin-bottom:7px!important}.trumbowyg-dark .trumbowyg-textarea{background:#111;color:#ddd}.trumbowyg-dark .trumbowyg-box{border:1px solid #343434}.trumbowyg-dark .trumbowyg-box.trumbowyg-fullscreen{background:#111}.trumbowyg-dark .trumbowyg-box.trumbowyg-box-blur .trumbowyg-editor *,.trumbowyg-dark .trumbowyg-box.trumbowyg-box-blur .trumbowyg-editor::before{text-shadow:0 0 7px #ccc}@media screen and (min-width:0 \0){.trumbowyg-dark .trumbowyg-box.trumbowyg-box-blur .trumbowyg-editor *,.trumbowyg-dark .trumbowyg-box.trumbowyg-box-blur .trumbowyg-editor::before{color:rgba(20,20,20,.6)!important}}@supports (-ms-accelerator:true){.trumbowyg-dark .trumbowyg-box.trumbowyg-box-blur .trumbowyg-editor *,.trumbowyg-dark .trumbowyg-box.trumbowyg-box-blur .trumbowyg-editor::before{color:rgba(20,20,20,.6)!important}}.trumbowyg-dark .trumbowyg-box svg{fill:#ecf0f1;color:#ecf0f1}.trumbowyg-dark .trumbowyg-button-pane{background-color:#222;border-bottom-color:#343434}.trumbowyg-dark .trumbowyg-button-pane::after{background:#343434}.trumbowyg-dark .trumbowyg-button-pane .trumbowyg-button-group:not(:empty)::after{background-color:#343434}.trumbowyg-dark .trumbowyg-button-pane .trumbowyg-button-group:not(:empty) .trumbowyg-fullscreen-button svg{color:transparent}.trumbowyg-dark .trumbowyg-button-pane.trumbowyg-disable .trumbowyg-button-group::after{background-color:#2a2a2a}.trumbowyg-dark .trumbowyg-button-pane button.trumbowyg-active,.trumbowyg-dark .trumbowyg-button-pane button:not(.trumbowyg-disable):focus,.trumbowyg-dark .trumbowyg-button-pane button:not(.trumbowyg-disable):hover{background-color:#333}.trumbowyg-dark .trumbowyg-button-pane .trumbowyg-open-dropdown::after{border-top-color:#fff}.trumbowyg-dark .trumbowyg-fullscreen .trumbowyg-button-pane .trumbowyg-button-group:not(:empty) .trumbowyg-fullscreen-button svg{color:#ecf0f1;fill:transparent}.trumbowyg-dark .trumbowyg-dropdown{border-color:#222;background:#333;-webkit-box-shadow:rgba(0,0,0,.3) 0 2px 3px;box-shadow:rgba(0,0,0,.3) 0 2px 3px}.trumbowyg-dark .trumbowyg-dropdown button{background:#333;color:#fff!important}.trumbowyg-dark .trumbowyg-dropdown button:focus,.trumbowyg-dark .trumbowyg-dropdown button:hover{background:#222}.trumbowyg-dark .trumbowyg-modal-box{background-color:#222}.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-title{border-bottom:1px solid #555;color:#fff;background:#3c3c3c}.trumbowyg-dark .trumbowyg-modal-box label{display:block;position:relative;margin:15px 12px;height:27px;line-height:27px;overflow:hidden}.trumbowyg-dark .trumbowyg-modal-box label .trumbowyg-input-infos span{color:#eee;background-color:#2f2f2f;border-color:#222}.trumbowyg-dark .trumbowyg-modal-box label .trumbowyg-input-infos span.trumbowyg-msg-error{color:#e74c3c}.trumbowyg-dark .trumbowyg-modal-box label.trumbowyg-input-error input,.trumbowyg-dark .trumbowyg-modal-box label.trumbowyg-input-error textarea{border-color:#e74c3c}.trumbowyg-dark .trumbowyg-modal-box label input{border-color:#222;color:#eee;background:#333}.trumbowyg-dark .trumbowyg-modal-box label input:focus,.trumbowyg-dark .trumbowyg-modal-box label input:hover{border-color:#626262}.trumbowyg-dark .trumbowyg-modal-box label input:focus{background-color:#2f2f2f}.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit{background:#1b7943}.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:focus,.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:hover{background:#25a25a}.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:active{background:#176437}.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset{background:#333;color:#ccc}.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:focus,.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:hover{background:#444}.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:active{background:#111}.trumbowyg-dark .trumbowyg-overlay{background-color:rgba(15,15,15,.6)}.trumbowyg-editor table{width:100%}.trumbowyg-editor table td{border:1px dotted #e7eaec;padding:8px}.trumbowyg-dropdown-table table{margin:10px;display:inline-block}.trumbowyg-dropdown-table table td{display:inline-block;height:20px;width:20px;margin:1px;padding:0;background-color:#fff;-webkit-box-shadow:0 0 0 1px #cecece inset;box-shadow:0 0 0 1px #cecece inset}.trumbowyg-dropdown-table table td.active{background-color:#00b393;-webkit-box-shadow:none;box-shadow:none;cursor:pointer}.trumbowyg-dropdown-table .trumbowyg-table-size{text-align:center}.trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list),.trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list){max-width:276px;padding:7px 5px;overflow:initial}.trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button,.trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button{display:block;position:relative;float:left;text-indent:-9999px;height:20px;width:20px;border:1px solid #333;padding:0;margin:2px}.trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button:focus::after,.trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button:hover::after,.trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button:focus::after,.trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button:hover::after{content:" ";display:block;position:absolute;top:-5px;left:-5px;width:27px;height:27px;background:inherit;border:1px solid #fff;-webkit-box-shadow:#000 0 0 2px;box-shadow:#000 0 0 2px;z-index:10}.trumbowyg-dropdown-backColor.trumbowyg-dropdown--color-list button:not(.trumbowyg-backColorRemove-dropdown-button){position:relative;color:#fff!important}.trumbowyg-dropdown-backColor.trumbowyg-dropdown--color-list button:not(.trumbowyg-backColorRemove-dropdown-button):focus::after,.trumbowyg-dropdown-backColor.trumbowyg-dropdown--color-list button:not(.trumbowyg-backColorRemove-dropdown-button):hover::after{content:" ";display:block;position:absolute;top:13px;left:0;width:0;height:0;border:5px solid transparent;border-left-color:#fff}.trumbowyg-dropdown-emoji{width:265px;padding:7px 0 7px 5px}.trumbowyg-dropdown-emoji svg{display:none!important}.trumbowyg-dropdown-emoji button{display:block;position:relative;float:left;height:26px;width:26px;padding:0;margin:2px;line-height:24px;text-align:center}.trumbowyg-dropdown-emoji button:focus::after,.trumbowyg-dropdown-emoji button:hover::after{display:block;position:absolute;top:-5px;left:-5px;height:27px;width:27px;background:inherit;-webkit-box-shadow:#000 0 0 2px;box-shadow:#000 0 0 2px;z-index:10;background-color:transparent}.trumbowyg .emoji{width:22px;height:22px;display:inline-block}.custom-file-img{max-width:100%}.md-avatar{width:50px;height:50px}.mix-tree-view .container{padding-right:0;padding-left:25px}.mix-tree-view .dropdown-menu{z-index:99999}.mix-tree-view .item{padding-bottom:2px;border-left:1px #eee solid}.mix-tree-view .item-fields{padding:12px 8px 0 26px}.sw-search{margin-right:0!important;margin-left:0!important}.sw-sidebar a{color:var(--text-color,#212529)}.ActiveUsers.is-increasing{-webkit-animation:a 3s;animation:a 3s}.ActiveUsers.is-decreasing{-webkit-animation:b 3s;animation:b 3s}@-webkit-keyframes a{10%{background-color:#ebffeb;border-color:rgba(0,128,0,.5);color:green}}@keyframes a{10%{background-color:#ebffeb;border-color:rgba(0,128,0,.5);color:green}}@-webkit-keyframes b{10%{background-color:#ffebeb;border-color:rgba(255,0,0,.5);color:red}}@keyframes b{10%{background-color:#ffebeb;border-color:rgba(255,0,0,.5);color:red}}.Chartjs{font-size:.85em}.Chartjs-figure{height:250px}.Chartjs-legend{list-style:none;margin:0;padding:1em 0 0;text-align:center}.Chartjs-legend>li{display:inline-block;padding:.25em .5em}.Chartjs-legend>li>i{display:inline-block;height:1em;margin-right:.5em;vertical-align:-.1em;width:1em}@media (min-width:570px){.Chartjs-figure{margin-right:1.5em}}.mix-sel-icons .dropdown-menu{left:-90px!important}.mix-sel-icons .dropdown-menu.show{max-height:250px;overflow:scroll}.mix-sel-icons .list-icon{max-height:150px;overflow-y:scroll;overflow-x:hidden}#modal-posts img{height:30px}.monaco-editor-full{position:fixed!important;left:0;top:0;width:100%;z-index:2222}.monaco-editor-full .monaco-editor-btn-group-full{z-index:2223;position:fixed;top:15px;right:25px}*{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}@-moz-keyframes rotation{from{-moz-transform:rotate(0);-moz-transform-origin:85% 90%}to{-moz-transform:rotate(359deg);-moz-transform-origin:85% 90%}}@-webkit-keyframes rotation{from{-webkit-transform:rotate(0);-webkit-transform-origin:85% 90%}to{-webkit-transform:rotate(359deg);-webkit-transform-origin:85% 90%}}[class*=" icon-"].loading-indicator{float:left;display:none;font-size:24px;margin:7px;color:#ec173a}[class*=" icon-"].loading-indicator.on{display:block;-webkit-animation:rotation 1.5s infinite linear;-moz-animation:rotation 1.5s infinite linear}.browser-warning,.user .icon-phone-4{display:none}.user-list{padding:9px 0}.user:hover .icon-phone-4{display:inline-block}.user a{position:relative;overflow:hidden}.user .username{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;padding-right:16px}.user .helper{position:absolute;right:10px;top:5px}.actions{display:none}[data-mode=incall] .actions,[data-mode=calling] .actions{display:block}.actions .hangup{width:100%}.actions .status{text-align:center;margin-bottom:20px}.video{height:100%;width:100%;border:2px solid #000}.cool-background{background:linear-gradient(135deg,#eceddc 25%,transparent 25%) -50px 0,linear-gradient(225deg,#eceddc 25%,transparent 25%) -50px 0,linear-gradient(315deg,#eceddc 25%,transparent 25%),linear-gradient(45deg,#eceddc 25%,transparent 25%);background-size:100px 100px;background-color:#ec173a}.alertify-cover{background:rgba(0,0,0,.8)}.simpleDemo ul[dnd-list]{min-height:42px;padding-left:0}.simpleDemo ul[dnd-list] .dndDraggingSource{display:none}.simpleDemo ul[dnd-list] .dndPlaceholder{background-color:#ddd;display:block;min-height:42px}.simpleDemo ul[dnd-list] li{background-color:#fff;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;display:block;padding:10px 15px;margin-bottom:-1px}.simpleDemo ul[dnd-list] li.selected{background-color:#dff0d8;color:#3c763d}@media (min-width:576px){.jumbotron{padding:2rem 1rem!important}}.alert.position-sticky{bottom:10px}fb-login{background-color:#0ff}medias .modal{z-index:1049}medias #modal-files .modal-body .table img{height:30px}medias #modal-files .modal-body .table img.preview{height:auto}mix-column-preview .row{max-height:120px;margin:10px 0;overflow:hidden}mix-column-preview img{max-width:100%}mix-module-data-table .data-table .header{padding:5px;color:#495057;background-color:hsla(var(--primary-color-hue,211),100%,50%,.075);border-color:#dee2e6;font-weight:400;font-size:small}mix-module-data-table .preview-container{max-height:4em;overflow:hidden}qr-code .qr-output canvas{max-width:100%}#dlg-preview-popup .modal-body img{display:block;margin:0 auto;max-width:100%;height:auto}#dlg-preview-popup pre{overflow:visible}upload-croppie .cr-boundary{overflow:hidden}body,html{height:100%}.btn,.btn-link{cursor:pointer}.content-body{max-width:66vw}.w-85{width:85vw}.display-4{font-size:2rem!important}div[dnd-list],ul[dnd-list]{min-height:42px;padding-left:0}div[dnd-list] .dndDraggingSource,ul[dnd-list] .dndDraggingSource{display:none}div[dnd-list] .dndPlaceholder,ul[dnd-list] .dndPlaceholder{background-color:#ddd;display:block;min-height:42px}div[dnd-list] .dnd-item,ul[dnd-list] li{background-color:#fff;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;display:block;padding:10px 15px;margin-bottom:-1px}div[dnd-list] .dnd-item.selected,ul[dnd-list] li.selected{background-color:#dff0d8;color:#3c763d}.mouse{z-index:9999999;width:70px;height:70px;background-color:transparent;color:#fff;position:absolute}hub-messages .nav-link .new-msg-count,log-stream .nav-link .new-msg-count{color:#fff;top:-5px;right:5px;background-color:red;padding:2px 4px 0;font-weight:700}hub-messages .nav-link{position:relative}hub-messages .nav-link .new-msg-count{position:absolute}log-stream #modal-log-stream .modal-body{max-height:80vh;overflow-y:scroll}log-stream .nav-link{position:relative}log-stream .nav-link .new-msg-count{position:absolute}main-side-bar-dynamic .sw-sidebar .sw-toc-item{position:relative}main-side-bar-dynamic .sw-sidebar .sw-toc-item .sw-toc-link .sw-toc-link{padding-left:0}main-side-bar-dynamic .sw-sidebar .sw-toc-item .btn-group{right:20px;opacity:1}main-side-bar-dynamic .sw-sidebar ul{padding-left:15px}main-side-bar-dynamic .sw-sidebar .sw-toc-sub-link .btn-group{padding:2px 0}.custom-image{max-width:30vw}.attr-set-value-item:last-child{border-bottom:0!important}mix-database-nav-values .row{padding:10px 0}mix-database-nav-values mix-column-preview .rowx{max-height:110px;overflow:hidden}@media (min-width:992px){#modal-content-filter .modal-lg,#modal-content-filter .modal-xl{max-width:80vw}}.table-data td.preview{max-width:120px;overflow:hidden}.img-container>img,.img-preview>img{max-width:100%}.content{width:100%;display:flex;align-items:center;flex-direction:column;background:0 0}.flag-icon,.flag-icon-background{background-size:contain;background-position:50%}.img-container,.img-preview{background-color:#f7f7f7;text-align:center;width:100%}.img-container{margin-bottom:1rem;max-height:497px;min-height:200px}@media (min-width:768px){.img-container{min-height:497px}}.docs-preview{margin-right:-1rem}.img-preview{float:left;margin-bottom:.5rem;margin-right:.5rem;overflow:hidden}.preview-lg{height:9rem;width:16rem}.preview-md{height:4.5rem;width:8rem}.preview-sm{height:2.25rem;width:4rem}.preview-xs{height:1.125rem;margin-right:0;width:2rem}.docs-data>.input-group{margin-bottom:.5rem}.docs-data>.input-group>label{justify-content:center;min-width:5rem}.docs-data>.input-group>span{justify-content:center;min-width:3rem}.docs-buttons>.btn,.docs-buttons>.btn-group,.docs-buttons>.form-control{margin-bottom:.5rem;margin-right:.25rem}.docs-toggles>.btn,.docs-toggles>.btn-group,.docs-toggles>.dropdown{margin-bottom:.5rem}.custom-file-val{position:absolute;bottom:0}.sw-content{width:100%!important}input[type=date]::-webkit-inner-spin-button{display:none}.ace_razor{background-color:#ff0}.ace_punctuation.ace_block.ace_razor,.ace_punctuation.ace_short.ace_razor{color:#000}@media screen and (max-width:580px){.hide-on-mb{display:none}}#modal-files img.preview{width:100%;height:auto}@media screen and (min-width:580px){.hide-on-desktop{display:none}}.bootstrap-tagsinput,.cm-tab,.cr-rotate-controls i:before,.flag-icon,.now-ui-icons{display:inline-block}@media screen and (max-width:991px){.navbar .navbar-nav{min-height:unset}}@font-face{font-family:'Nucleo Outline';src:url(../fonts/nucleo-outline.eot);src:url(../fonts/nucleo-outline.eot) format("embedded-opentype"),url(../fonts/nucleo-outline.woff2) format("woff2"),url(../fonts/nucleo-outline.woff) format("woff"),url(../fonts/nucleo-outline.ttf) format("truetype"),url(../fonts/nucleo-outline.svg) format("svg");font-weight:400;font-style:normal}.now-ui-icons{font:normal normal normal 14px/1 'Nucleo Outline';font-size:inherit;speak:none;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.now-ui-icons.circle{padding:.33333333em;vertical-align:-16%;border-radius:50%}.fa-ul,.nc-icon-ul{padding-left:0;list-style-type:none}.nc-icon-ul{margin-left:2.14285714em}.nc-icon-ul>li{position:relative}.nc-icon-ul>li>.now-ui-icons{position:absolute;left:-1.57142857em;top:.14285714em;text-align:center}.nc-icon-ul>li>.now-ui-icons.circle{top:-.19047619em;left:-1.9047619em}.now-ui-icons.spin{-webkit-animation:nc-icon-spin 2s infinite linear;-moz-animation:nc-icon-spin 2s infinite linear;animation:nc-icon-spin 2s infinite linear}@-webkit-keyframes nc-icon-spin{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(360deg)}}@-moz-keyframes nc-icon-spin{0%{-moz-transform:rotate(0)}100%{-moz-transform:rotate(360deg)}}@keyframes nc-icon-spin{0%{-webkit-transform:rotate(0);-moz-transform:rotate(0);-ms-transform:rotate(0);-o-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}.now-ui-icons.ui-1_check:before{content:"\ea22"}.now-ui-icons.ui-1_email-85:before{content:"\ea2a"}.now-ui-icons.arrows-1_cloud-download-93:before{content:"\ea21"}.now-ui-icons.arrows-1_cloud-upload-94:before{content:"\ea24"}.now-ui-icons.arrows-1_minimal-down:before{content:"\ea39"}.now-ui-icons.arrows-1_minimal-left:before{content:"\ea3a"}.now-ui-icons.arrows-1_minimal-right:before{content:"\ea3b"}.now-ui-icons.arrows-1_minimal-up:before{content:"\ea3c"}.now-ui-icons.arrows-1_refresh-69:before{content:"\ea44"}.now-ui-icons.arrows-1_share-66:before{content:"\ea4c"}.now-ui-icons.business_badge:before{content:"\ea09"}.now-ui-icons.business_bank:before{content:"\ea0a"}.now-ui-icons.business_briefcase-24:before{content:"\ea13"}.now-ui-icons.business_bulb-63:before{content:"\ea15"}.now-ui-icons.business_chart-bar-32:before{content:"\ea1e"}.now-ui-icons.business_chart-pie-36:before{content:"\ea1f"}.now-ui-icons.business_globe:before{content:"\ea2f"}.now-ui-icons.business_money-coins:before{content:"\ea40"}.now-ui-icons.clothes_tie-bow:before{content:"\ea5b"}.now-ui-icons.design_vector:before{content:"\ea61"}.now-ui-icons.design_app:before{content:"\ea08"}.now-ui-icons.design_bullet-list-67:before{content:"\ea14"}.now-ui-icons.design_image:before{content:"\ea33"}.now-ui-icons.design_palette:before{content:"\ea41"}.now-ui-icons.design_scissors:before{content:"\ea4a"}.now-ui-icons.design-2_html5:before{content:"\ea32"}.now-ui-icons.design-2_ruler-pencil:before{content:"\ea48"}.now-ui-icons.emoticons_satisfied:before{content:"\ea49"}.now-ui-icons.files_box:before{content:"\ea12"}.now-ui-icons.files_paper:before{content:"\ea43"}.now-ui-icons.files_single-copy-04:before{content:"\ea52"}.now-ui-icons.health_ambulance:before{content:"\ea07"}.now-ui-icons.loader_gear:before{content:"\ea4e"}.now-ui-icons.loader_refresh:before{content:"\ea44"}.now-ui-icons.location_bookmark:before{content:"\ea10"}.now-ui-icons.location_compass-05:before{content:"\ea25"}.now-ui-icons.location_map-big:before{content:"\ea3d"}.now-ui-icons.location_pin:before{content:"\ea47"}.now-ui-icons.location_world:before{content:"\ea63"}.now-ui-icons.media-1_album:before{content:"\ea02"}.now-ui-icons.media-1_button-pause:before{content:"\ea16"}.now-ui-icons.media-1_button-play:before{content:"\ea18"}.now-ui-icons.media-1_button-power:before{content:"\ea19"}.now-ui-icons.media-1_camera-compact:before{content:"\ea1c"}.now-ui-icons.media-2_note-03:before{content:"\ea3f"}.now-ui-icons.media-2_sound-wave:before{content:"\ea57"}.now-ui-icons.objects_diamond:before{content:"\ea29"}.now-ui-icons.objects_globe:before{content:"\ea2f"}.now-ui-icons.objects_key-25:before{content:"\ea38"}.now-ui-icons.objects_planet:before{content:"\ea46"}.now-ui-icons.objects_spaceship:before{content:"\ea55"}.now-ui-icons.objects_support-17:before{content:"\ea56"}.now-ui-icons.objects_umbrella-13:before{content:"\ea5f"}.now-ui-icons.education_agenda-bookmark:before{content:"\ea01"}.now-ui-icons.education_atom:before{content:"\ea0c"}.now-ui-icons.education_glasses:before{content:"\ea2d"}.now-ui-icons.education_hat:before{content:"\ea30"}.now-ui-icons.education_paper:before{content:"\ea42"}.now-ui-icons.shopping_bag-16:before{content:"\ea0d"}.now-ui-icons.shopping_basket:before{content:"\ea0b"}.now-ui-icons.shopping_box:before{content:"\ea11"}.now-ui-icons.shopping_cart-simple:before{content:"\ea1d"}.now-ui-icons.shopping_credit-card:before{content:"\ea28"}.now-ui-icons.shopping_delivery-fast:before{content:"\ea27"}.now-ui-icons.shopping_shop:before{content:"\ea50"}.now-ui-icons.shopping_tag-content:before{content:"\ea59"}.now-ui-icons.sport_trophy:before{content:"\ea5d"}.now-ui-icons.sport_user-run:before{content:"\ea60"}.now-ui-icons.tech_controller-modern:before{content:"\ea26"}.now-ui-icons.tech_headphones:before{content:"\ea31"}.now-ui-icons.tech_laptop:before{content:"\ea36"}.now-ui-icons.tech_mobile:before{content:"\ea3e"}.now-ui-icons.tech_tablet:before{content:"\ea58"}.now-ui-icons.tech_tv:before{content:"\ea5e"}.now-ui-icons.tech_watch-time:before{content:"\ea62"}.now-ui-icons.text_align-center:before{content:"\ea05"}.now-ui-icons.text_align-left:before{content:"\ea06"}.now-ui-icons.text_bold:before{content:"\ea0e"}.now-ui-icons.text_caps-small:before{content:"\ea1b"}.now-ui-icons.gestures_tap-01:before{content:"\ea5a"}.now-ui-icons.transportation_air-baloon:before{content:"\ea03"}.now-ui-icons.transportation_bus-front-12:before{content:"\ea17"}.now-ui-icons.travel_info:before{content:"\ea04"}.now-ui-icons.travel_istanbul:before{content:"\ea34"}.now-ui-icons.ui-1_bell-53:before{content:"\ea0f"}.now-ui-icons.ui-1_calendar-60:before{content:"\ea1a"}.now-ui-icons.ui-1_lock-circle-open:before{content:"\ea35"}.now-ui-icons.ui-1_send:before{content:"\ea4d"}.now-ui-icons.ui-1_settings-gear-63:before{content:"\ea4e"}.now-ui-icons.ui-1_simple-add:before{content:"\ea4f"}.now-ui-icons.ui-1_simple-delete:before{content:"\ea54"}.now-ui-icons.ui-1_simple-remove:before{content:"\ea53"}.now-ui-icons.ui-1_zoom-bold:before{content:"\ea64"}.now-ui-icons.ui-2_chat-round:before{content:"\ea20"}.now-ui-icons.ui-2_favourite-28:before{content:"\ea2b"}.now-ui-icons.ui-2_like:before{content:"\ea37"}.now-ui-icons.ui-2_settings-90:before{content:"\ea4b"}.now-ui-icons.ui-2_time-alarm:before{content:"\ea5c"}.now-ui-icons.users_circle-08:before{content:"\ea23"}.now-ui-icons.users_single-02:before{content:"\ea51"}.flag-icon-background{background-repeat:no-repeat}.flag-icon{background-repeat:no-repeat;position:relative;width:1.33333333em;line-height:1em}.flag-icon:before{content:"\00a0"}.flag-icon.flag-icon-squared{width:1em}.flag-icon-ad{background-image:url(../flags/4x3/ad.svg)}.flag-icon-ad.flag-icon-squared{background-image:url(../flags/1x1/ad.svg)}.flag-icon-ae{background-image:url(../flags/4x3/ae.svg)}.flag-icon-ae.flag-icon-squared{background-image:url(../flags/1x1/ae.svg)}.flag-icon-af{background-image:url(../flags/4x3/af.svg)}.flag-icon-af.flag-icon-squared{background-image:url(../flags/1x1/af.svg)}.flag-icon-ag{background-image:url(../flags/4x3/ag.svg)}.flag-icon-ag.flag-icon-squared{background-image:url(../flags/1x1/ag.svg)}.flag-icon-ai{background-image:url(../flags/4x3/ai.svg)}.flag-icon-ai.flag-icon-squared{background-image:url(../flags/1x1/ai.svg)}.flag-icon-al{background-image:url(../flags/4x3/al.svg)}.flag-icon-al.flag-icon-squared{background-image:url(../flags/1x1/al.svg)}.flag-icon-am{background-image:url(../flags/4x3/am.svg)}.flag-icon-am.flag-icon-squared{background-image:url(../flags/1x1/am.svg)}.flag-icon-ao{background-image:url(../flags/4x3/ao.svg)}.flag-icon-ao.flag-icon-squared{background-image:url(../flags/1x1/ao.svg)}.flag-icon-aq{background-image:url(../flags/4x3/aq.svg)}.flag-icon-aq.flag-icon-squared{background-image:url(../flags/1x1/aq.svg)}.flag-icon-ar{background-image:url(../flags/4x3/ar.svg)}.flag-icon-ar.flag-icon-squared{background-image:url(../flags/1x1/ar.svg)}.flag-icon-as{background-image:url(../flags/4x3/as.svg)}.flag-icon-as.flag-icon-squared{background-image:url(../flags/1x1/as.svg)}.flag-icon-at{background-image:url(../flags/4x3/at.svg)}.flag-icon-at.flag-icon-squared{background-image:url(../flags/1x1/at.svg)}.flag-icon-au{background-image:url(../flags/4x3/au.svg)}.flag-icon-au.flag-icon-squared{background-image:url(../flags/1x1/au.svg)}.flag-icon-aw{background-image:url(../flags/4x3/aw.svg)}.flag-icon-aw.flag-icon-squared{background-image:url(../flags/1x1/aw.svg)}.flag-icon-ax{background-image:url(../flags/4x3/ax.svg)}.flag-icon-ax.flag-icon-squared{background-image:url(../flags/1x1/ax.svg)}.flag-icon-az{background-image:url(../flags/4x3/az.svg)}.flag-icon-az.flag-icon-squared{background-image:url(../flags/1x1/az.svg)}.flag-icon-ba{background-image:url(../flags/4x3/ba.svg)}.flag-icon-ba.flag-icon-squared{background-image:url(../flags/1x1/ba.svg)}.flag-icon-bb{background-image:url(../flags/4x3/bb.svg)}.flag-icon-bb.flag-icon-squared{background-image:url(../flags/1x1/bb.svg)}.flag-icon-bd{background-image:url(../flags/4x3/bd.svg)}.flag-icon-bd.flag-icon-squared{background-image:url(../flags/1x1/bd.svg)}.flag-icon-be{background-image:url(../flags/4x3/be.svg)}.flag-icon-be.flag-icon-squared{background-image:url(../flags/1x1/be.svg)}.flag-icon-bf{background-image:url(../flags/4x3/bf.svg)}.flag-icon-bf.flag-icon-squared{background-image:url(../flags/1x1/bf.svg)}.flag-icon-bg{background-image:url(../flags/4x3/bg.svg)}.flag-icon-bg.flag-icon-squared{background-image:url(../flags/1x1/bg.svg)}.flag-icon-bh{background-image:url(../flags/4x3/bh.svg)}.flag-icon-bh.flag-icon-squared{background-image:url(../flags/1x1/bh.svg)}.flag-icon-bi{background-image:url(../flags/4x3/bi.svg)}.flag-icon-bi.flag-icon-squared{background-image:url(../flags/1x1/bi.svg)}.flag-icon-bj{background-image:url(../flags/4x3/bj.svg)}.flag-icon-bj.flag-icon-squared{background-image:url(../flags/1x1/bj.svg)}.flag-icon-bl{background-image:url(../flags/4x3/bl.svg)}.flag-icon-bl.flag-icon-squared{background-image:url(../flags/1x1/bl.svg)}.flag-icon-bm{background-image:url(../flags/4x3/bm.svg)}.flag-icon-bm.flag-icon-squared{background-image:url(../flags/1x1/bm.svg)}.flag-icon-bn{background-image:url(../flags/4x3/bn.svg)}.flag-icon-bn.flag-icon-squared{background-image:url(../flags/1x1/bn.svg)}.flag-icon-bo{background-image:url(../flags/4x3/bo.svg)}.flag-icon-bo.flag-icon-squared{background-image:url(../flags/1x1/bo.svg)}.flag-icon-bq{background-image:url(../flags/4x3/bq.svg)}.flag-icon-bq.flag-icon-squared{background-image:url(../flags/1x1/bq.svg)}.flag-icon-br{background-image:url(../flags/4x3/br.svg)}.flag-icon-br.flag-icon-squared{background-image:url(../flags/1x1/br.svg)}.flag-icon-bs{background-image:url(../flags/4x3/bs.svg)}.flag-icon-bs.flag-icon-squared{background-image:url(../flags/1x1/bs.svg)}.flag-icon-bt{background-image:url(../flags/4x3/bt.svg)}.flag-icon-bt.flag-icon-squared{background-image:url(../flags/1x1/bt.svg)}.flag-icon-bv{background-image:url(../flags/4x3/bv.svg)}.flag-icon-bv.flag-icon-squared{background-image:url(../flags/1x1/bv.svg)}.flag-icon-bw{background-image:url(../flags/4x3/bw.svg)}.flag-icon-bw.flag-icon-squared{background-image:url(../flags/1x1/bw.svg)}.flag-icon-by{background-image:url(../flags/4x3/by.svg)}.flag-icon-by.flag-icon-squared{background-image:url(../flags/1x1/by.svg)}.flag-icon-bz{background-image:url(../flags/4x3/bz.svg)}.flag-icon-bz.flag-icon-squared{background-image:url(../flags/1x1/bz.svg)}.flag-icon-ca{background-image:url(../flags/4x3/ca.svg)}.flag-icon-ca.flag-icon-squared{background-image:url(../flags/1x1/ca.svg)}.flag-icon-cc{background-image:url(../flags/4x3/cc.svg)}.flag-icon-cc.flag-icon-squared{background-image:url(../flags/1x1/cc.svg)}.flag-icon-cd{background-image:url(../flags/4x3/cd.svg)}.flag-icon-cd.flag-icon-squared{background-image:url(../flags/1x1/cd.svg)}.flag-icon-cf{background-image:url(../flags/4x3/cf.svg)}.flag-icon-cf.flag-icon-squared{background-image:url(../flags/1x1/cf.svg)}.flag-icon-cg{background-image:url(../flags/4x3/cg.svg)}.flag-icon-cg.flag-icon-squared{background-image:url(../flags/1x1/cg.svg)}.flag-icon-ch{background-image:url(../flags/4x3/ch.svg)}.flag-icon-ch.flag-icon-squared{background-image:url(../flags/1x1/ch.svg)}.flag-icon-ci{background-image:url(../flags/4x3/ci.svg)}.flag-icon-ci.flag-icon-squared{background-image:url(../flags/1x1/ci.svg)}.flag-icon-ck{background-image:url(../flags/4x3/ck.svg)}.flag-icon-ck.flag-icon-squared{background-image:url(../flags/1x1/ck.svg)}.flag-icon-cl{background-image:url(../flags/4x3/cl.svg)}.flag-icon-cl.flag-icon-squared{background-image:url(../flags/1x1/cl.svg)}.flag-icon-cm{background-image:url(../flags/4x3/cm.svg)}.flag-icon-cm.flag-icon-squared{background-image:url(../flags/1x1/cm.svg)}.flag-icon-cn{background-image:url(../flags/4x3/cn.svg)}.flag-icon-cn.flag-icon-squared{background-image:url(../flags/1x1/cn.svg)}.flag-icon-co{background-image:url(../flags/4x3/co.svg)}.flag-icon-co.flag-icon-squared{background-image:url(../flags/1x1/co.svg)}.flag-icon-cr{background-image:url(../flags/4x3/cr.svg)}.flag-icon-cr.flag-icon-squared{background-image:url(../flags/1x1/cr.svg)}.flag-icon-cu{background-image:url(../flags/4x3/cu.svg)}.flag-icon-cu.flag-icon-squared{background-image:url(../flags/1x1/cu.svg)}.flag-icon-cv{background-image:url(../flags/4x3/cv.svg)}.flag-icon-cv.flag-icon-squared{background-image:url(../flags/1x1/cv.svg)}.flag-icon-cw{background-image:url(../flags/4x3/cw.svg)}.flag-icon-cw.flag-icon-squared{background-image:url(../flags/1x1/cw.svg)}.flag-icon-cx{background-image:url(../flags/4x3/cx.svg)}.flag-icon-cx.flag-icon-squared{background-image:url(../flags/1x1/cx.svg)}.flag-icon-cy{background-image:url(../flags/4x3/cy.svg)}.flag-icon-cy.flag-icon-squared{background-image:url(../flags/1x1/cy.svg)}.flag-icon-cz{background-image:url(../flags/4x3/cz.svg)}.flag-icon-cz.flag-icon-squared{background-image:url(../flags/1x1/cz.svg)}.flag-icon-de{background-image:url(../flags/4x3/de.svg)}.flag-icon-de.flag-icon-squared{background-image:url(../flags/1x1/de.svg)}.flag-icon-dj{background-image:url(../flags/4x3/dj.svg)}.flag-icon-dj.flag-icon-squared{background-image:url(../flags/1x1/dj.svg)}.flag-icon-dk{background-image:url(../flags/4x3/dk.svg)}.flag-icon-dk.flag-icon-squared{background-image:url(../flags/1x1/dk.svg)}.flag-icon-dm{background-image:url(../flags/4x3/dm.svg)}.flag-icon-dm.flag-icon-squared{background-image:url(../flags/1x1/dm.svg)}.flag-icon-do{background-image:url(../flags/4x3/do.svg)}.flag-icon-do.flag-icon-squared{background-image:url(../flags/1x1/do.svg)}.flag-icon-dz{background-image:url(../flags/4x3/dz.svg)}.flag-icon-dz.flag-icon-squared{background-image:url(../flags/1x1/dz.svg)}.flag-icon-ec{background-image:url(../flags/4x3/ec.svg)}.flag-icon-ec.flag-icon-squared{background-image:url(../flags/1x1/ec.svg)}.flag-icon-ee{background-image:url(../flags/4x3/ee.svg)}.flag-icon-ee.flag-icon-squared{background-image:url(../flags/1x1/ee.svg)}.flag-icon-eg{background-image:url(../flags/4x3/eg.svg)}.flag-icon-eg.flag-icon-squared{background-image:url(../flags/1x1/eg.svg)}.flag-icon-eh{background-image:url(../flags/4x3/eh.svg)}.flag-icon-eh.flag-icon-squared{background-image:url(../flags/1x1/eh.svg)}.flag-icon-er{background-image:url(../flags/4x3/er.svg)}.flag-icon-er.flag-icon-squared{background-image:url(../flags/1x1/er.svg)}.flag-icon-es{background-image:url(../flags/4x3/es.svg)}.flag-icon-es.flag-icon-squared{background-image:url(../flags/1x1/es.svg)}.flag-icon-et{background-image:url(../flags/4x3/et.svg)}.flag-icon-et.flag-icon-squared{background-image:url(../flags/1x1/et.svg)}.flag-icon-fi{background-image:url(../flags/4x3/fi.svg)}.flag-icon-fi.flag-icon-squared{background-image:url(../flags/1x1/fi.svg)}.flag-icon-fj{background-image:url(../flags/4x3/fj.svg)}.flag-icon-fj.flag-icon-squared{background-image:url(../flags/1x1/fj.svg)}.flag-icon-fk{background-image:url(../flags/4x3/fk.svg)}.flag-icon-fk.flag-icon-squared{background-image:url(../flags/1x1/fk.svg)}.flag-icon-fm{background-image:url(../flags/4x3/fm.svg)}.flag-icon-fm.flag-icon-squared{background-image:url(../flags/1x1/fm.svg)}.flag-icon-fo{background-image:url(../flags/4x3/fo.svg)}.flag-icon-fo.flag-icon-squared{background-image:url(../flags/1x1/fo.svg)}.flag-icon-fr{background-image:url(../flags/4x3/fr.svg)}.flag-icon-fr.flag-icon-squared{background-image:url(../flags/1x1/fr.svg)}.flag-icon-ga{background-image:url(../flags/4x3/ga.svg)}.flag-icon-ga.flag-icon-squared{background-image:url(../flags/1x1/ga.svg)}.flag-icon-gb{background-image:url(../flags/4x3/gb.svg)}.flag-icon-gb.flag-icon-squared{background-image:url(../flags/1x1/gb.svg)}.flag-icon-gd{background-image:url(../flags/4x3/gd.svg)}.flag-icon-gd.flag-icon-squared{background-image:url(../flags/1x1/gd.svg)}.flag-icon-ge{background-image:url(../flags/4x3/ge.svg)}.flag-icon-ge.flag-icon-squared{background-image:url(../flags/1x1/ge.svg)}.flag-icon-gf{background-image:url(../flags/4x3/gf.svg)}.flag-icon-gf.flag-icon-squared{background-image:url(../flags/1x1/gf.svg)}.flag-icon-gg{background-image:url(../flags/4x3/gg.svg)}.flag-icon-gg.flag-icon-squared{background-image:url(../flags/1x1/gg.svg)}.flag-icon-gh{background-image:url(../flags/4x3/gh.svg)}.flag-icon-gh.flag-icon-squared{background-image:url(../flags/1x1/gh.svg)}.flag-icon-gi{background-image:url(../flags/4x3/gi.svg)}.flag-icon-gi.flag-icon-squared{background-image:url(../flags/1x1/gi.svg)}.flag-icon-gl{background-image:url(../flags/4x3/gl.svg)}.flag-icon-gl.flag-icon-squared{background-image:url(../flags/1x1/gl.svg)}.flag-icon-gm{background-image:url(../flags/4x3/gm.svg)}.flag-icon-gm.flag-icon-squared{background-image:url(../flags/1x1/gm.svg)}.flag-icon-gn{background-image:url(../flags/4x3/gn.svg)}.flag-icon-gn.flag-icon-squared{background-image:url(../flags/1x1/gn.svg)}.flag-icon-gp{background-image:url(../flags/4x3/gp.svg)}.flag-icon-gp.flag-icon-squared{background-image:url(../flags/1x1/gp.svg)}.flag-icon-gq{background-image:url(../flags/4x3/gq.svg)}.flag-icon-gq.flag-icon-squared{background-image:url(../flags/1x1/gq.svg)}.flag-icon-gr{background-image:url(../flags/4x3/gr.svg)}.flag-icon-gr.flag-icon-squared{background-image:url(../flags/1x1/gr.svg)}.flag-icon-gs{background-image:url(../flags/4x3/gs.svg)}.flag-icon-gs.flag-icon-squared{background-image:url(../flags/1x1/gs.svg)}.flag-icon-gt{background-image:url(../flags/4x3/gt.svg)}.flag-icon-gt.flag-icon-squared{background-image:url(../flags/1x1/gt.svg)}.flag-icon-gu{background-image:url(../flags/4x3/gu.svg)}.flag-icon-gu.flag-icon-squared{background-image:url(../flags/1x1/gu.svg)}.flag-icon-gw{background-image:url(../flags/4x3/gw.svg)}.flag-icon-gw.flag-icon-squared{background-image:url(../flags/1x1/gw.svg)}.flag-icon-gy{background-image:url(../flags/4x3/gy.svg)}.flag-icon-gy.flag-icon-squared{background-image:url(../flags/1x1/gy.svg)}.flag-icon-hk{background-image:url(../flags/4x3/hk.svg)}.flag-icon-hk.flag-icon-squared{background-image:url(../flags/1x1/hk.svg)}.flag-icon-hm{background-image:url(../flags/4x3/hm.svg)}.flag-icon-hm.flag-icon-squared{background-image:url(../flags/1x1/hm.svg)}.flag-icon-hn{background-image:url(../flags/4x3/hn.svg)}.flag-icon-hn.flag-icon-squared{background-image:url(../flags/1x1/hn.svg)}.flag-icon-hr{background-image:url(../flags/4x3/hr.svg)}.flag-icon-hr.flag-icon-squared{background-image:url(../flags/1x1/hr.svg)}.flag-icon-ht{background-image:url(../flags/4x3/ht.svg)}.flag-icon-ht.flag-icon-squared{background-image:url(../flags/1x1/ht.svg)}.flag-icon-hu{background-image:url(../flags/4x3/hu.svg)}.flag-icon-hu.flag-icon-squared{background-image:url(../flags/1x1/hu.svg)}.flag-icon-id{background-image:url(../flags/4x3/id.svg)}.flag-icon-id.flag-icon-squared{background-image:url(../flags/1x1/id.svg)}.flag-icon-ie{background-image:url(../flags/4x3/ie.svg)}.flag-icon-ie.flag-icon-squared{background-image:url(../flags/1x1/ie.svg)}.flag-icon-il{background-image:url(../flags/4x3/il.svg)}.flag-icon-il.flag-icon-squared{background-image:url(../flags/1x1/il.svg)}.flag-icon-im{background-image:url(../flags/4x3/im.svg)}.flag-icon-im.flag-icon-squared{background-image:url(../flags/1x1/im.svg)}.flag-icon-in{background-image:url(../flags/4x3/in.svg)}.flag-icon-in.flag-icon-squared{background-image:url(../flags/1x1/in.svg)}.flag-icon-io{background-image:url(../flags/4x3/io.svg)}.flag-icon-io.flag-icon-squared{background-image:url(../flags/1x1/io.svg)}.flag-icon-iq{background-image:url(../flags/4x3/iq.svg)}.flag-icon-iq.flag-icon-squared{background-image:url(../flags/1x1/iq.svg)}.flag-icon-ir{background-image:url(../flags/4x3/ir.svg)}.flag-icon-ir.flag-icon-squared{background-image:url(../flags/1x1/ir.svg)}.flag-icon-is{background-image:url(../flags/4x3/is.svg)}.flag-icon-is.flag-icon-squared{background-image:url(../flags/1x1/is.svg)}.flag-icon-it{background-image:url(../flags/4x3/it.svg)}.flag-icon-it.flag-icon-squared{background-image:url(../flags/1x1/it.svg)}.flag-icon-je{background-image:url(../flags/4x3/je.svg)}.flag-icon-je.flag-icon-squared{background-image:url(../flags/1x1/je.svg)}.flag-icon-jm{background-image:url(../flags/4x3/jm.svg)}.flag-icon-jm.flag-icon-squared{background-image:url(../flags/1x1/jm.svg)}.flag-icon-jo{background-image:url(../flags/4x3/jo.svg)}.flag-icon-jo.flag-icon-squared{background-image:url(../flags/1x1/jo.svg)}.flag-icon-jp{background-image:url(../flags/4x3/jp.svg)}.flag-icon-jp.flag-icon-squared{background-image:url(../flags/1x1/jp.svg)}.flag-icon-ke{background-image:url(../flags/4x3/ke.svg)}.flag-icon-ke.flag-icon-squared{background-image:url(../flags/1x1/ke.svg)}.flag-icon-kg{background-image:url(../flags/4x3/kg.svg)}.flag-icon-kg.flag-icon-squared{background-image:url(../flags/1x1/kg.svg)}.flag-icon-kh{background-image:url(../flags/4x3/kh.svg)}.flag-icon-kh.flag-icon-squared{background-image:url(../flags/1x1/kh.svg)}.flag-icon-ki{background-image:url(../flags/4x3/ki.svg)}.flag-icon-ki.flag-icon-squared{background-image:url(../flags/1x1/ki.svg)}.flag-icon-km{background-image:url(../flags/4x3/km.svg)}.flag-icon-km.flag-icon-squared{background-image:url(../flags/1x1/km.svg)}.flag-icon-kn{background-image:url(../flags/4x3/kn.svg)}.flag-icon-kn.flag-icon-squared{background-image:url(../flags/1x1/kn.svg)}.flag-icon-kp{background-image:url(../flags/4x3/kp.svg)}.flag-icon-kp.flag-icon-squared{background-image:url(../flags/1x1/kp.svg)}.flag-icon-kr{background-image:url(../flags/4x3/kr.svg)}.flag-icon-kr.flag-icon-squared{background-image:url(../flags/1x1/kr.svg)}.flag-icon-kw{background-image:url(../flags/4x3/kw.svg)}.flag-icon-kw.flag-icon-squared{background-image:url(../flags/1x1/kw.svg)}.flag-icon-ky{background-image:url(../flags/4x3/ky.svg)}.flag-icon-ky.flag-icon-squared{background-image:url(../flags/1x1/ky.svg)}.flag-icon-kz{background-image:url(../flags/4x3/kz.svg)}.flag-icon-kz.flag-icon-squared{background-image:url(../flags/1x1/kz.svg)}.flag-icon-la{background-image:url(../flags/4x3/la.svg)}.flag-icon-la.flag-icon-squared{background-image:url(../flags/1x1/la.svg)}.flag-icon-lb{background-image:url(../flags/4x3/lb.svg)}.flag-icon-lb.flag-icon-squared{background-image:url(../flags/1x1/lb.svg)}.flag-icon-lc{background-image:url(../flags/4x3/lc.svg)}.flag-icon-lc.flag-icon-squared{background-image:url(../flags/1x1/lc.svg)}.flag-icon-li{background-image:url(../flags/4x3/li.svg)}.flag-icon-li.flag-icon-squared{background-image:url(../flags/1x1/li.svg)}.flag-icon-lk{background-image:url(../flags/4x3/lk.svg)}.flag-icon-lk.flag-icon-squared{background-image:url(../flags/1x1/lk.svg)}.flag-icon-lr{background-image:url(../flags/4x3/lr.svg)}.flag-icon-lr.flag-icon-squared{background-image:url(../flags/1x1/lr.svg)}.flag-icon-ls{background-image:url(../flags/4x3/ls.svg)}.flag-icon-ls.flag-icon-squared{background-image:url(../flags/1x1/ls.svg)}.flag-icon-lt{background-image:url(../flags/4x3/lt.svg)}.flag-icon-lt.flag-icon-squared{background-image:url(../flags/1x1/lt.svg)}.flag-icon-lu{background-image:url(../flags/4x3/lu.svg)}.flag-icon-lu.flag-icon-squared{background-image:url(../flags/1x1/lu.svg)}.flag-icon-lv{background-image:url(../flags/4x3/lv.svg)}.flag-icon-lv.flag-icon-squared{background-image:url(../flags/1x1/lv.svg)}.flag-icon-ly{background-image:url(../flags/4x3/ly.svg)}.flag-icon-ly.flag-icon-squared{background-image:url(../flags/1x1/ly.svg)}.flag-icon-ma{background-image:url(../flags/4x3/ma.svg)}.flag-icon-ma.flag-icon-squared{background-image:url(../flags/1x1/ma.svg)}.flag-icon-mc{background-image:url(../flags/4x3/mc.svg)}.flag-icon-mc.flag-icon-squared{background-image:url(../flags/1x1/mc.svg)}.flag-icon-md{background-image:url(../flags/4x3/md.svg)}.flag-icon-md.flag-icon-squared{background-image:url(../flags/1x1/md.svg)}.flag-icon-me{background-image:url(../flags/4x3/me.svg)}.flag-icon-me.flag-icon-squared{background-image:url(../flags/1x1/me.svg)}.flag-icon-mf{background-image:url(../flags/4x3/mf.svg)}.flag-icon-mf.flag-icon-squared{background-image:url(../flags/1x1/mf.svg)}.flag-icon-mg{background-image:url(../flags/4x3/mg.svg)}.flag-icon-mg.flag-icon-squared{background-image:url(../flags/1x1/mg.svg)}.flag-icon-mh{background-image:url(../flags/4x3/mh.svg)}.flag-icon-mh.flag-icon-squared{background-image:url(../flags/1x1/mh.svg)}.flag-icon-mk{background-image:url(../flags/4x3/mk.svg)}.flag-icon-mk.flag-icon-squared{background-image:url(../flags/1x1/mk.svg)}.flag-icon-ml{background-image:url(../flags/4x3/ml.svg)}.flag-icon-ml.flag-icon-squared{background-image:url(../flags/1x1/ml.svg)}.flag-icon-mm{background-image:url(../flags/4x3/mm.svg)}.flag-icon-mm.flag-icon-squared{background-image:url(../flags/1x1/mm.svg)}.flag-icon-mn{background-image:url(../flags/4x3/mn.svg)}.flag-icon-mn.flag-icon-squared{background-image:url(../flags/1x1/mn.svg)}.flag-icon-mo{background-image:url(../flags/4x3/mo.svg)}.flag-icon-mo.flag-icon-squared{background-image:url(../flags/1x1/mo.svg)}.flag-icon-mp{background-image:url(../flags/4x3/mp.svg)}.flag-icon-mp.flag-icon-squared{background-image:url(../flags/1x1/mp.svg)}.flag-icon-mq{background-image:url(../flags/4x3/mq.svg)}.flag-icon-mq.flag-icon-squared{background-image:url(../flags/1x1/mq.svg)}.flag-icon-mr{background-image:url(../flags/4x3/mr.svg)}.flag-icon-mr.flag-icon-squared{background-image:url(../flags/1x1/mr.svg)}.flag-icon-ms{background-image:url(../flags/4x3/ms.svg)}.flag-icon-ms.flag-icon-squared{background-image:url(../flags/1x1/ms.svg)}.flag-icon-mt{background-image:url(../flags/4x3/mt.svg)}.flag-icon-mt.flag-icon-squared{background-image:url(../flags/1x1/mt.svg)}.flag-icon-mu{background-image:url(../flags/4x3/mu.svg)}.flag-icon-mu.flag-icon-squared{background-image:url(../flags/1x1/mu.svg)}.flag-icon-mv{background-image:url(../flags/4x3/mv.svg)}.flag-icon-mv.flag-icon-squared{background-image:url(../flags/1x1/mv.svg)}.flag-icon-mw{background-image:url(../flags/4x3/mw.svg)}.flag-icon-mw.flag-icon-squared{background-image:url(../flags/1x1/mw.svg)}.flag-icon-mx{background-image:url(../flags/4x3/mx.svg)}.flag-icon-mx.flag-icon-squared{background-image:url(../flags/1x1/mx.svg)}.flag-icon-my{background-image:url(../flags/4x3/my.svg)}.flag-icon-my.flag-icon-squared{background-image:url(../flags/1x1/my.svg)}.flag-icon-mz{background-image:url(../flags/4x3/mz.svg)}.flag-icon-mz.flag-icon-squared{background-image:url(../flags/1x1/mz.svg)}.flag-icon-na{background-image:url(../flags/4x3/na.svg)}.flag-icon-na.flag-icon-squared{background-image:url(../flags/1x1/na.svg)}.flag-icon-nc{background-image:url(../flags/4x3/nc.svg)}.flag-icon-nc.flag-icon-squared{background-image:url(../flags/1x1/nc.svg)}.flag-icon-ne{background-image:url(../flags/4x3/ne.svg)}.flag-icon-ne.flag-icon-squared{background-image:url(../flags/1x1/ne.svg)}.flag-icon-nf{background-image:url(../flags/4x3/nf.svg)}.flag-icon-nf.flag-icon-squared{background-image:url(../flags/1x1/nf.svg)}.flag-icon-ng{background-image:url(../flags/4x3/ng.svg)}.flag-icon-ng.flag-icon-squared{background-image:url(../flags/1x1/ng.svg)}.flag-icon-ni{background-image:url(../flags/4x3/ni.svg)}.flag-icon-ni.flag-icon-squared{background-image:url(../flags/1x1/ni.svg)}.flag-icon-nl{background-image:url(../flags/4x3/nl.svg)}.flag-icon-nl.flag-icon-squared{background-image:url(../flags/1x1/nl.svg)}.flag-icon-no{background-image:url(../flags/4x3/no.svg)}.flag-icon-no.flag-icon-squared{background-image:url(../flags/1x1/no.svg)}.flag-icon-np{background-image:url(../flags/4x3/np.svg)}.flag-icon-np.flag-icon-squared{background-image:url(../flags/1x1/np.svg)}.flag-icon-nr{background-image:url(../flags/4x3/nr.svg)}.flag-icon-nr.flag-icon-squared{background-image:url(../flags/1x1/nr.svg)}.flag-icon-nu{background-image:url(../flags/4x3/nu.svg)}.flag-icon-nu.flag-icon-squared{background-image:url(../flags/1x1/nu.svg)}.flag-icon-nz{background-image:url(../flags/4x3/nz.svg)}.flag-icon-nz.flag-icon-squared{background-image:url(../flags/1x1/nz.svg)}.flag-icon-om{background-image:url(../flags/4x3/om.svg)}.flag-icon-om.flag-icon-squared{background-image:url(../flags/1x1/om.svg)}.flag-icon-pa{background-image:url(../flags/4x3/pa.svg)}.flag-icon-pa.flag-icon-squared{background-image:url(../flags/1x1/pa.svg)}.flag-icon-pe{background-image:url(../flags/4x3/pe.svg)}.flag-icon-pe.flag-icon-squared{background-image:url(../flags/1x1/pe.svg)}.flag-icon-pf{background-image:url(../flags/4x3/pf.svg)}.flag-icon-pf.flag-icon-squared{background-image:url(../flags/1x1/pf.svg)}.flag-icon-pg{background-image:url(../flags/4x3/pg.svg)}.flag-icon-pg.flag-icon-squared{background-image:url(../flags/1x1/pg.svg)}.flag-icon-ph{background-image:url(../flags/4x3/ph.svg)}.flag-icon-ph.flag-icon-squared{background-image:url(../flags/1x1/ph.svg)}.flag-icon-pk{background-image:url(../flags/4x3/pk.svg)}.flag-icon-pk.flag-icon-squared{background-image:url(../flags/1x1/pk.svg)}.flag-icon-pl{background-image:url(../flags/4x3/pl.svg)}.flag-icon-pl.flag-icon-squared{background-image:url(../flags/1x1/pl.svg)}.flag-icon-pm{background-image:url(../flags/4x3/pm.svg)}.flag-icon-pm.flag-icon-squared{background-image:url(../flags/1x1/pm.svg)}.flag-icon-pn{background-image:url(../flags/4x3/pn.svg)}.flag-icon-pn.flag-icon-squared{background-image:url(../flags/1x1/pn.svg)}.flag-icon-pr{background-image:url(../flags/4x3/pr.svg)}.flag-icon-pr.flag-icon-squared{background-image:url(../flags/1x1/pr.svg)}.flag-icon-ps{background-image:url(../flags/4x3/ps.svg)}.flag-icon-ps.flag-icon-squared{background-image:url(../flags/1x1/ps.svg)}.flag-icon-pt{background-image:url(../flags/4x3/pt.svg)}.flag-icon-pt.flag-icon-squared{background-image:url(../flags/1x1/pt.svg)}.flag-icon-pw{background-image:url(../flags/4x3/pw.svg)}.flag-icon-pw.flag-icon-squared{background-image:url(../flags/1x1/pw.svg)}.flag-icon-py{background-image:url(../flags/4x3/py.svg)}.flag-icon-py.flag-icon-squared{background-image:url(../flags/1x1/py.svg)}.flag-icon-qa{background-image:url(../flags/4x3/qa.svg)}.flag-icon-qa.flag-icon-squared{background-image:url(../flags/1x1/qa.svg)}.flag-icon-re{background-image:url(../flags/4x3/re.svg)}.flag-icon-re.flag-icon-squared{background-image:url(../flags/1x1/re.svg)}.flag-icon-ro{background-image:url(../flags/4x3/ro.svg)}.flag-icon-ro.flag-icon-squared{background-image:url(../flags/1x1/ro.svg)}.flag-icon-rs{background-image:url(../flags/4x3/rs.svg)}.flag-icon-rs.flag-icon-squared{background-image:url(../flags/1x1/rs.svg)}.flag-icon-ru{background-image:url(../flags/4x3/ru.svg)}.flag-icon-ru.flag-icon-squared{background-image:url(../flags/1x1/ru.svg)}.flag-icon-rw{background-image:url(../flags/4x3/rw.svg)}.flag-icon-rw.flag-icon-squared{background-image:url(../flags/1x1/rw.svg)}.flag-icon-sa{background-image:url(../flags/4x3/sa.svg)}.flag-icon-sa.flag-icon-squared{background-image:url(../flags/1x1/sa.svg)}.flag-icon-sb{background-image:url(../flags/4x3/sb.svg)}.flag-icon-sb.flag-icon-squared{background-image:url(../flags/1x1/sb.svg)}.flag-icon-sc{background-image:url(../flags/4x3/sc.svg)}.flag-icon-sc.flag-icon-squared{background-image:url(../flags/1x1/sc.svg)}.flag-icon-sd{background-image:url(../flags/4x3/sd.svg)}.flag-icon-sd.flag-icon-squared{background-image:url(../flags/1x1/sd.svg)}.flag-icon-se{background-image:url(../flags/4x3/se.svg)}.flag-icon-se.flag-icon-squared{background-image:url(../flags/1x1/se.svg)}.flag-icon-sg{background-image:url(../flags/4x3/sg.svg)}.flag-icon-sg.flag-icon-squared{background-image:url(../flags/1x1/sg.svg)}.flag-icon-sh{background-image:url(../flags/4x3/sh.svg)}.flag-icon-sh.flag-icon-squared{background-image:url(../flags/1x1/sh.svg)}.flag-icon-si{background-image:url(../flags/4x3/si.svg)}.flag-icon-si.flag-icon-squared{background-image:url(../flags/1x1/si.svg)}.flag-icon-sj{background-image:url(../flags/4x3/sj.svg)}.flag-icon-sj.flag-icon-squared{background-image:url(../flags/1x1/sj.svg)}.flag-icon-sk{background-image:url(../flags/4x3/sk.svg)}.flag-icon-sk.flag-icon-squared{background-image:url(../flags/1x1/sk.svg)}.flag-icon-sl{background-image:url(../flags/4x3/sl.svg)}.flag-icon-sl.flag-icon-squared{background-image:url(../flags/1x1/sl.svg)}.flag-icon-sm{background-image:url(../flags/4x3/sm.svg)}.flag-icon-sm.flag-icon-squared{background-image:url(../flags/1x1/sm.svg)}.flag-icon-sn{background-image:url(../flags/4x3/sn.svg)}.flag-icon-sn.flag-icon-squared{background-image:url(../flags/1x1/sn.svg)}.flag-icon-so{background-image:url(../flags/4x3/so.svg)}.flag-icon-so.flag-icon-squared{background-image:url(../flags/1x1/so.svg)}.flag-icon-sr{background-image:url(../flags/4x3/sr.svg)}.flag-icon-sr.flag-icon-squared{background-image:url(../flags/1x1/sr.svg)}.flag-icon-ss{background-image:url(../flags/4x3/ss.svg)}.flag-icon-ss.flag-icon-squared{background-image:url(../flags/1x1/ss.svg)}.flag-icon-st{background-image:url(../flags/4x3/st.svg)}.flag-icon-st.flag-icon-squared{background-image:url(../flags/1x1/st.svg)}.flag-icon-sv{background-image:url(../flags/4x3/sv.svg)}.flag-icon-sv.flag-icon-squared{background-image:url(../flags/1x1/sv.svg)}.flag-icon-sx{background-image:url(../flags/4x3/sx.svg)}.flag-icon-sx.flag-icon-squared{background-image:url(../flags/1x1/sx.svg)}.flag-icon-sy{background-image:url(../flags/4x3/sy.svg)}.flag-icon-sy.flag-icon-squared{background-image:url(../flags/1x1/sy.svg)}.flag-icon-sz{background-image:url(../flags/4x3/sz.svg)}.flag-icon-sz.flag-icon-squared{background-image:url(../flags/1x1/sz.svg)}.flag-icon-tc{background-image:url(../flags/4x3/tc.svg)}.flag-icon-tc.flag-icon-squared{background-image:url(../flags/1x1/tc.svg)}.flag-icon-td{background-image:url(../flags/4x3/td.svg)}.flag-icon-td.flag-icon-squared{background-image:url(../flags/1x1/td.svg)}.flag-icon-tf{background-image:url(../flags/4x3/tf.svg)}.flag-icon-tf.flag-icon-squared{background-image:url(../flags/1x1/tf.svg)}.flag-icon-tg{background-image:url(../flags/4x3/tg.svg)}.flag-icon-tg.flag-icon-squared{background-image:url(../flags/1x1/tg.svg)}.flag-icon-th{background-image:url(../flags/4x3/th.svg)}.flag-icon-th.flag-icon-squared{background-image:url(../flags/1x1/th.svg)}.flag-icon-tj{background-image:url(../flags/4x3/tj.svg)}.flag-icon-tj.flag-icon-squared{background-image:url(../flags/1x1/tj.svg)}.flag-icon-tk{background-image:url(../flags/4x3/tk.svg)}.flag-icon-tk.flag-icon-squared{background-image:url(../flags/1x1/tk.svg)}.flag-icon-tl{background-image:url(../flags/4x3/tl.svg)}.flag-icon-tl.flag-icon-squared{background-image:url(../flags/1x1/tl.svg)}.flag-icon-tm{background-image:url(../flags/4x3/tm.svg)}.flag-icon-tm.flag-icon-squared{background-image:url(../flags/1x1/tm.svg)}.flag-icon-tn{background-image:url(../flags/4x3/tn.svg)}.flag-icon-tn.flag-icon-squared{background-image:url(../flags/1x1/tn.svg)}.flag-icon-to{background-image:url(../flags/4x3/to.svg)}.flag-icon-to.flag-icon-squared{background-image:url(../flags/1x1/to.svg)}.flag-icon-tr{background-image:url(../flags/4x3/tr.svg)}.flag-icon-tr.flag-icon-squared{background-image:url(../flags/1x1/tr.svg)}.flag-icon-tt{background-image:url(../flags/4x3/tt.svg)}.flag-icon-tt.flag-icon-squared{background-image:url(../flags/1x1/tt.svg)}.flag-icon-tv{background-image:url(../flags/4x3/tv.svg)}.flag-icon-tv.flag-icon-squared{background-image:url(../flags/1x1/tv.svg)}.flag-icon-tw{background-image:url(../flags/4x3/tw.svg)}.flag-icon-tw.flag-icon-squared{background-image:url(../flags/1x1/tw.svg)}.flag-icon-tz{background-image:url(../flags/4x3/tz.svg)}.flag-icon-tz.flag-icon-squared{background-image:url(../flags/1x1/tz.svg)}.flag-icon-ua{background-image:url(../flags/4x3/ua.svg)}.flag-icon-ua.flag-icon-squared{background-image:url(../flags/1x1/ua.svg)}.flag-icon-ug{background-image:url(../flags/4x3/ug.svg)}.flag-icon-ug.flag-icon-squared{background-image:url(../flags/1x1/ug.svg)}.flag-icon-um{background-image:url(../flags/4x3/um.svg)}.flag-icon-um.flag-icon-squared{background-image:url(../flags/1x1/um.svg)}.flag-icon-us{background-image:url(../flags/4x3/us.svg)}.flag-icon-us.flag-icon-squared{background-image:url(../flags/1x1/us.svg)}.flag-icon-uy{background-image:url(../flags/4x3/uy.svg)}.flag-icon-uy.flag-icon-squared{background-image:url(../flags/1x1/uy.svg)}.flag-icon-uz{background-image:url(../flags/4x3/uz.svg)}.flag-icon-uz.flag-icon-squared{background-image:url(../flags/1x1/uz.svg)}.flag-icon-va{background-image:url(../flags/4x3/va.svg)}.flag-icon-va.flag-icon-squared{background-image:url(../flags/1x1/va.svg)}.flag-icon-vc{background-image:url(../flags/4x3/vc.svg)}.flag-icon-vc.flag-icon-squared{background-image:url(../flags/1x1/vc.svg)}.flag-icon-ve{background-image:url(../flags/4x3/ve.svg)}.flag-icon-ve.flag-icon-squared{background-image:url(../flags/1x1/ve.svg)}.flag-icon-vg{background-image:url(../flags/4x3/vg.svg)}.flag-icon-vg.flag-icon-squared{background-image:url(../flags/1x1/vg.svg)}.flag-icon-vi{background-image:url(../flags/4x3/vi.svg)}.flag-icon-vi.flag-icon-squared{background-image:url(../flags/1x1/vi.svg)}.flag-icon-vn{background-image:url(../flags/4x3/vn.svg)}.flag-icon-vn.flag-icon-squared{background-image:url(../flags/1x1/vn.svg)}.flag-icon-vu{background-image:url(../flags/4x3/vu.svg)}.flag-icon-vu.flag-icon-squared{background-image:url(../flags/1x1/vu.svg)}.flag-icon-wf{background-image:url(../flags/4x3/wf.svg)}.flag-icon-wf.flag-icon-squared{background-image:url(../flags/1x1/wf.svg)}.flag-icon-ws{background-image:url(../flags/4x3/ws.svg)}.flag-icon-ws.flag-icon-squared{background-image:url(../flags/1x1/ws.svg)}.flag-icon-ye{background-image:url(../flags/4x3/ye.svg)}.flag-icon-ye.flag-icon-squared{background-image:url(../flags/1x1/ye.svg)}.flag-icon-yt{background-image:url(../flags/4x3/yt.svg)}.flag-icon-yt.flag-icon-squared{background-image:url(../flags/1x1/yt.svg)}.flag-icon-za{background-image:url(../flags/4x3/za.svg)}.flag-icon-za.flag-icon-squared{background-image:url(../flags/1x1/za.svg)}.flag-icon-zm{background-image:url(../flags/4x3/zm.svg)}.flag-icon-zm.flag-icon-squared{background-image:url(../flags/1x1/zm.svg)}.flag-icon-zw{background-image:url(../flags/4x3/zw.svg)}.flag-icon-zw.flag-icon-squared{background-image:url(../flags/1x1/zw.svg)}.flag-icon-es-ct{background-image:url(../flags/4x3/es-ct.svg)}.flag-icon-es-ct.flag-icon-squared{background-image:url(../flags/1x1/es-ct.svg)}.flag-icon-eu{background-image:url(../flags/4x3/eu.svg)}.flag-icon-eu.flag-icon-squared{background-image:url(../flags/1x1/eu.svg)}.flag-icon-gb-eng{background-image:url(../flags/4x3/gb-eng.svg)}.flag-icon-gb-eng.flag-icon-squared{background-image:url(../flags/1x1/gb-eng.svg)}.flag-icon-gb-nir{background-image:url(../flags/4x3/gb-nir.svg)}.flag-icon-gb-nir.flag-icon-squared{background-image:url(../flags/1x1/gb-nir.svg)}.flag-icon-gb-sct{background-image:url(../flags/4x3/gb-sct.svg)}.flag-icon-gb-sct.flag-icon-squared{background-image:url(../flags/1x1/gb-sct.svg)}.flag-icon-gb-wls{background-image:url(../flags/4x3/gb-wls.svg)}.flag-icon-gb-wls.flag-icon-squared{background-image:url(../flags/1x1/gb-wls.svg)}.flag-icon-un{background-image:url(../flags/4x3/un.svg)}.flag-icon-un.flag-icon-squared{background-image:url(../flags/1x1/un.svg)}.flag-icon-xk{background-image:url(../flags/4x3/xk.svg)}.flag-icon-xk.flag-icon-squared{background-image:url(../flags/1x1/xk.svg)}.loader-container{top:0;left:0;width:100%;height:100%;position:fixed;background-color:#000;opacity:.2;z-index:9999}#loader{position:absolute;left:50%;top:50%;z-index:1;margin:-75px 0 0 -75px;border:16px solid #f3f3f3;border-radius:50%;border-top:16px solid #3498db;width:120px;height:120px;-webkit-animation:spin 2s linear infinite;animation:spin 2s linear infinite}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.modal-open{overflow:hidden;padding-right:0!important}.croppie-container{width:100%;height:100%}.croppie-container .cr-image{z-index:-1;position:absolute;top:0;left:0;transform-origin:0 0;max-height:none;max-width:none}.croppie-container .cr-boundary{position:relative;overflow:hidden;margin:0 auto;z-index:1;width:100%;height:100%}.croppie-container .cr-resizer,.croppie-container .cr-viewport{position:absolute;border:2px solid #fff;margin:auto;top:0;bottom:0;right:0;left:0;box-shadow:0 0 2000px 2000px rgba(0,0,0,.5);z-index:0}.croppie-container .cr-resizer{z-index:2;box-shadow:none;pointer-events:none}.croppie-container .cr-resizer-horisontal,.croppie-container .cr-resizer-vertical{position:absolute;pointer-events:all}.croppie-container .cr-resizer-horisontal::after,.croppie-container .cr-resizer-vertical::after{display:block;position:absolute;box-sizing:border-box;border:1px solid #000;background:#fff;width:10px;height:10px;content:''}.croppie-container .cr-resizer-vertical{bottom:-5px;cursor:row-resize;width:100%;height:10px}.croppie-container .cr-resizer-vertical::after{left:50%;margin-left:-5px}.croppie-container .cr-resizer-horisontal{right:-5px;cursor:col-resize;width:10px;height:100%}.croppie-container .cr-resizer-horisontal::after{top:50%;margin-top:-5px}.croppie-container .cr-original-image{display:none}.croppie-container .cr-vp-circle{border-radius:50%}.croppie-container .cr-overlay{z-index:1;position:absolute;cursor:move;touch-action:none}.croppie-container .cr-slider-wrap{width:75%;margin:15px auto;text-align:center}.croppie-result{position:relative;overflow:hidden}.croppie-result img{position:absolute}.croppie-container .cr-image,.croppie-container .cr-overlay,.croppie-container .cr-viewport{-webkit-transform:translateZ(0);-moz-transform:translateZ(0);-ms-transform:translateZ(0);transform:translateZ(0)}.cr-slider{-webkit-appearance:none;max-width:100%;padding-top:8px;padding-bottom:8px;background-color:transparent}.cr-slider::-webkit-slider-runnable-track{width:100%;height:3px;background:rgba(0,0,0,.5);border:0;border-radius:3px}.cr-slider::-webkit-slider-thumb{-webkit-appearance:none;border:none;height:16px;width:16px;border-radius:50%;background:#ddd;margin-top:-6px}.cr-slider:focus{outline:0}.cr-slider::-moz-range-track{width:100%;height:3px;background:rgba(0,0,0,.5);border:0;border-radius:3px}.cr-slider::-moz-range-thumb{border:none;height:16px;width:16px;border-radius:50%;background:#ddd;margin-top:-6px}.cr-slider:-moz-focusring{outline:#fff solid 1px;outline-offset:-1px}.cr-slider::-ms-track{width:100%;height:5px;background:0 0;border-color:transparent;border-width:6px 0;color:transparent}.cr-slider::-ms-fill-lower{background:rgba(0,0,0,.5);border-radius:10px}.cr-slider::-ms-fill-upper{background:rgba(0,0,0,.5);border-radius:10px}.cr-slider::-ms-thumb{border:none;height:16px;width:16px;border-radius:50%;background:#ddd;margin-top:1px}.cr-slider:focus::-ms-fill-lower{background:rgba(0,0,0,.5)}.cr-slider:focus::-ms-fill-upper{background:rgba(0,0,0,.5)}.cr-rotate-controls{position:absolute;bottom:5px;left:5px;z-index:1}.cr-rotate-controls button{border:0;background:0 0}.cr-rotate-controls i:before{font-style:normal;font-weight:900;font-size:22px}.cm-em,.hljs-comment,.hljs-emphasis,.hljs-quote,.tui-editor-contents address,.tui-editor-contents cite,.tui-editor-contents dfn,.tui-editor-contents em,.tui-editor-contents i,.tui-editor-contents var{font-style:italic}.cr-rotate-l i:before{content:'↺'}.cr-rotate-r i:before{content:'↻'}.bootstrap-tagsinput{background-color:#fff;border:1px solid #ccc;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);padding:4px 6px;color:#555;border-radius:4px;max-width:100%;line-height:22px;cursor:text}.bootstrap-tagsinput input,.bootstrap-tagsinput input:focus{border:none;box-shadow:none}.bootstrap-tagsinput input{outline:0;background-color:transparent;padding:0 6px;margin:0;width:auto;max-width:inherit}.bootstrap-tagsinput.form-control input::-moz-placeholder{color:#777;opacity:1}.bootstrap-tagsinput.form-control input:-ms-input-placeholder{color:#777}.bootstrap-tagsinput.form-control input::-webkit-input-placeholder{color:#777}.bootstrap-tagsinput .tag{margin-right:2px;color:#fff}.bootstrap-tagsinput .tag [data-role=remove]{margin-left:8px;cursor:pointer}.bootstrap-tagsinput .tag [data-role=remove]:after{content:"x";padding:0 2px}.bootstrap-tagsinput .tag [data-role=remove]:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05)}.bootstrap-tagsinput .tag [data-role=remove]:hover:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}/*! * Font Awesome Free 5.12.1 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - */@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:400;font-display:auto;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:auto;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:auto;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.CodeMirror{height:300px;color:#000;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor-mark{background-color:rgba(20,255,20,.5);-webkit-animation:blink 1.06s steps(1) infinite;-moz-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite}.cm-animate-fat-cursor{width:auto;border:0;-webkit-animation:blink 1.06s steps(1) infinite;-moz-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite;background-color:#7e7}@-moz-keyframes blink{50%{background-color:transparent}}@-webkit-keyframes blink{50%{background-color:transparent}}@keyframes blink{50%{background-color:transparent}}.cm-tab{text-decoration:inherit}.cm-link,.tui-editor-contents a{text-decoration:underline}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:-20px;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;height:100%;outline:0;position:relative}.CodeMirror-sizer{position:relative;border-right:30px solid transparent}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-30px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:0 0!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-width:0;background:0 0;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;-webkit-font-variant-ligatures:contextual;font-variant-ligatures:contextual}.CodeMirror,.te-input-language input,.te-ww-block-overlay.code-block-header,.tui-editor-defaultUI{font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif}.CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:0}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{-moz-box-sizing:content-box;box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:''}span.CodeMirror-selectedtext{background:0 0}.hljs{display:block;overflow-x:auto;padding:.5em;color:#333;background:#f8f8f8}.hljs-comment,.hljs-quote{color:#998}.hljs-keyword,.hljs-selector-tag,.hljs-subst{color:#333;font-weight:700}.hljs-literal,.hljs-number,.hljs-tag .hljs-attr,.hljs-template-variable,.hljs-variable{color:teal}.hljs-doctag,.hljs-string{color:#d14}.hljs-section,.hljs-selector-id,.hljs-title{color:#900;font-weight:700}.hljs-subst{font-weight:400}.hljs-class .hljs-title,.hljs-type{color:#458;font-weight:700}.hljs-attribute,.hljs-name,.hljs-tag{color:navy;font-weight:400}.hljs-link,.hljs-regexp{color:#009926}.hljs-bullet,.hljs-symbol{color:#990073}.hljs-built_in,.hljs-builtin-name{color:#0086b3}.hljs-meta{color:#999;font-weight:700}.hljs-deletion{background:#fdd}.hljs-addition{background:#dfd}.hljs-strong{font-weight:700}.tui-editor-contents :not(table){line-height:160%;box-sizing:content-box}.tui-editor-contents strong{font-weight:700}.tui-editor-contents p{margin:10px 0;color:#555}.tui-editor-contents>div>div:first-of-type h1,.tui-editor-contents>h1:first-of-type{margin-top:14px}.tui-editor-contents h1,.tui-editor-contents h2,.tui-editor-contents h3,.tui-editor-contents h5{font-weight:700}.tui-editor-contents h1{font-size:1.6rem;line-height:28px;border-bottom:3px double #999;margin:52px 0 15px;padding-bottom:7px;color:#000}.tui-editor-contents h2{font-size:1.3rem;line-height:23px;border-bottom:1px solid #dbdbdb;margin:30px 0 13px;padding-bottom:7px;color:#333}.tui-editor-contents h3,.tui-editor-contents h4{font-size:1.2rem;line-height:18px;margin:20px 0 2px;color:#333}.tui-editor-contents h5,.tui-editor-contents h6{font-size:1rem;line-height:17px;margin:10px 0 -4px;color:#333}.tui-editor-contents blockquote{margin:15px 0;border-left:4px solid #ddd;padding:0 15px;color:#777}.tui-editor-contents blockquote>:first-child{margin-top:0}.tui-editor-contents blockquote>:last-child{margin-bottom:0}.tui-editor-contents code,.tui-editor-contents pre{font-family:Consolas,Courier,"Apple SD 산돌고딕 Neo",-apple-system,"Lucida Grande","Apple SD Gothic Neo","맑은 고딕","Malgun Gothic","Segoe UI","돋움",dotum,sans-serif;border:0;border-radius:0}.tui-editor-contents pre{margin:2px 0 8px;padding:18px;background-color:#f5f7f8}.tui-editor-contents code{color:#c1788b;padding:4px 4px 2px 0;letter-spacing:-.3px}.tui-editor-contents pre code{padding:0;color:inherit;white-space:pre-wrap;background-color:transparent}.tui-editor-contents pre.addon{border:1px solid #e8ebed;background-color:#fff}.tui-editor-contents img{margin:4px 0 10px;box-sizing:border-box;vertical-align:top;max-width:100%}.tui-editor-contents table{margin:2px 0 14px;color:#555;width:auto;border-collapse:collapse;box-sizing:border-box}.tui-editor-contents table td,.tui-editor-contents table th{height:32px;padding:5px 14px 5px 12px}.tui-editor-contents table td{border:1px solid #eaeaea}.tui-editor-contents table th{border:1px solid #72777b;border-top:0;background-color:#7b8184;font-weight:300;color:#fff;padding-top:6px}.tui-editor-contents dir,.tui-editor-contents menu,.tui-editor-contents ol,.tui-editor-contents ul{display:block;list-style-type:disc;padding-left:17px;margin:6px 0 10px;color:#555}.tui-editor-contents ol{list-style-type:decimal}.tui-editor-contents ol ol,.tui-editor-contents ol ul,.tui-editor-contents ul ol,.tui-editor-contents ul ul{margin-top:0!important;margin-bottom:0!important}.tui-editor-contents ol li,.tui-editor-contents ul li{position:relative}.tui-editor-contents ul p,ol p{margin:0}.tui-editor-contents hr{border-top:1px solid #eee;margin:16px 0}.tui-editor-contents a{color:#5286bc}.tui-editor-contents a:hover{color:#007cff}.tui-editor-contents{font-size:13px;margin:0;padding:0}.tui-editor-contents .task-list-item{border:0;list-style:none;padding-left:22px;margin-left:-22px}.tui-editor-contents .task-list-item:before{background-repeat:no-repeat;background-size:16px 16px;background-position:center;height:18px;width:18px;position:absolute;left:0;top:1px;cursor:pointer;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAADdJREFUKBVjvHv37n8GMgALSI+SkhJJWu/du8fARJIOJMWjGpECA505GjjoIYLEB6dVUNojFQAA/1MJUFWet/4AAAAASUVORK5CYII=)}.tui-editor-contents .task-list-item.checked:before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAMpJREFUKBVjjJ/64D8DGYCJDD1gLbTVyM3OxJDiJMzAxcYIdyALnIWDAdJU7i/OICfCxsDMxMgwc88bwk5F1vTs/W+GFUffwY2H+1FBlI2hLliCQYCbGSyJrqlzwwuGj9//YWoMtRBgUBJnZ6gMEGeQFWaFOw9kE7omkG5GWDyCPF7mJ86gIMbO8P//fwZGRkYGXJpAGuFO/fbrP0PXppcMD179JKgJRSOIA9N8/NZXrM4DqYEBjOgAaYYFOUwRNhruVGyS+MTI1ggAx8NTGcUtFVQAAAAASUVORK5CYII=)}.tui-editor-contents .task-list-item .task-list-item-checkbox,.tui-editor-contents .task-list-item input[type=checkbox]{margin-left:-17px;margin-right:3.8px;margin-top:3px}.tui-editor-contents-placeholder:before{content:attr(data-placeholder);color:grey;line-height:160%;position:absolute}.auto-height,.auto-height .tui-editor-defaultUI{height:auto}.auto-height .tui-editor{position:relative}:not(.auto-height)>.tui-editor-defaultUI,:not(.auto-height)>.tui-editor-defaultUI>.te-editor-section{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}:not(.auto-height)>.tui-editor-defaultUI>.te-editor-section{-ms-flex:1;flex:1}.tui-editor-defaultUI-toolbar:after,.tui-editor:after{content:"";display:block;height:0;clear:both}.tui-editor{position:absolute;line-height:1;color:#181818;width:100%;height:inherit}.te-editor-section{min-height:0;position:relative;height:inherit}.te-md-container{display:none;overflow:hidden;height:100%}.te-md-container .te-editor{line-height:1.5}.te-md-container .te-editor,.te-md-container .te-preview{box-sizing:border-box;padding:0;height:inherit}.te-md-container .CodeMirror{font-size:13px;height:inherit}.te-md-container .te-preview{overflow:auto;padding:0 25px;height:100%}.te-md-container .te-preview>p:first-child{margin-top:0!important}.te-md-container .te-preview .tui-editor-contents{padding-top:11px}.tui-editor .te-preview-style-tab>.te-editor,.tui-editor .te-preview-style-tab>.te-preview{float:left;width:100%;display:none}.tui-editor .te-preview-style-tab>.te-tab-active{display:block}.tui-editor .te-preview-style-vertical>.te-tab-section{display:none}.tui-editor .te-preview-style-tab>.te-tab-section{display:block}.tui-editor .te-preview-style-vertical .te-editor,.tui-editor .te-preview-style-vertical .te-preview{float:left;width:50%}.tui-editor .te-md-splitter{display:none;position:absolute;left:50%;top:0;height:100%;width:1px;border-left:1px solid #e5e5e5}.tui-editor .te-preview-style-vertical .te-md-splitter{display:block}.te-ww-container{display:none;overflow:hidden;z-index:10;height:inherit;background-color:#fff}.te-ww-container>.te-editor{overflow:auto;height:inherit}.te-ww-container .tui-editor-contents:focus{outline:0}.te-ww-container .tui-editor-contents{padding:0 25px}.te-ww-container .tui-editor-contents:first-child{box-sizing:border-box;margin:0;padding:16px 25px 0;height:inherit}.te-ww-container .tui-editor-contents:last-child{margin-bottom:16px}.te-md-mode .te-md-container,.te-ww-mode .te-ww-container{display:block;z-index:100}.tui-editor-defaultUI.te-hide,.tui-editor.te-hide{display:none}.tui-editor-defaultUI .CodeMirror-lines{padding-top:13px;padding-bottom:13px}.tui-editor-defaultUI .CodeMirror-line{padding-left:25px;padding-right:25px}.tui-editor-defaultUI .CodeMirror pre.CodeMirror-placeholder{padding-left:25px;color:grey}.tui-editor-defaultUI .CodeMirror-scroll{cursor:text}.tui-editor-contents td.te-cell-selected{background-color:#d8dfec}.tui-editor-contents td.te-cell-selected::selection{background-color:#d8dfec}.tui-editor-contents th.te-cell-selected{background-color:#908f8f}.tui-editor-contents th.te-cell-selected::selection{background-color:#908f8f}.tui-editor-defaultUI{position:relative;border:1px solid #e5e5e5;height:100%}.tui-editor-defaultUI button{color:#fff;padding:0 14px 0 15px;height:28px;font-size:12px;border:none;cursor:pointer;outline:0}.tui-editor-defaultUI button.te-ok-button{background-color:#4b96e6}.tui-editor-defaultUI button.te-close-button{background-color:#777}.tui-editor-defaultUI-toolbar{padding:0 25px;height:31px;background-color:#fff;border:0;overflow:hidden}.tui-toolbar-divider{float:left;display:inline-block;width:1px;height:14px;background-color:#ddd;margin:9px 6px}.tui-toolbar-button-group{height:28px;border-right:1px solid #d9d9d9;float:left}.te-toolbar-section{height:32px;box-sizing:border-box;border-bottom:1px solid #e5e5e5}.tui-editor-defaultUI-toolbar button{float:left;box-sizing:border-box;outline:0;cursor:pointer;background-color:#fff;width:22px;height:22px;padding:3px;border-radius:0;margin:5px 3px;border:1px solid #fff}.tui-editor-defaultUI-toolbar button.active,.tui-editor-defaultUI-toolbar button:active,.tui-editor-defaultUI-toolbar button:hover{border:1px solid #aaa;background-color:#fff}.tui-editor-defaultUI-toolbar button:first-child{margin-left:0}.tui-editor-defaultUI-toolbar button:last-child{margin-right:0}.tui-editor-defaultUI-toolbar button.tui-scrollsync{width:auto;color:#777;border:0}.tui-editor-defaultUI button.tui-scrollsync:after{content:"Scroll off"}.tui-editor-defaultUI button.tui-scrollsync.active{color:#125de6;font-weight:700}.tui-editor-defaultUI button.tui-scrollsync.active:after{content:"Scroll on"}.tui-editor-defaultUI .te-mode-switch-section{background-color:#f9f9f9;border-top:1px solid #e5e5e5;height:20px;font-size:12px}.tui-editor-defaultUI .te-mode-switch{float:right;height:100%}.tui-editor-defaultUI .te-switch-button{width:92px;height:inherit;background:#e5e5e5;outline:0;color:#a0aabf;cursor:pointer;border:0;border-left:1px solid #ddd;border-right:1px solid #ddd}.tui-editor-defaultUI .te-switch-button.active{background-color:#fff;color:#000}.tui-editor-defaultUI .te-markdown-tab-section{float:left;height:31px;background:#fff}.te-markdown-tab-section .te-tab{margin:0 -7px 0 24px;background:#fff}.tui-editor-defaultUI .te-tab button{box-sizing:border-box;line-height:100%;position:relative;cursor:pointer;z-index:1;font-size:13px;background-color:#f9f9f9;border:1px solid #e5e5e5;border-top:0;padding:0 9px;color:#777;border-radius:0;outline:0}.te-markdown-tab-section .te-tab button:last-child{margin-left:-1px}.te-markdown-tab-section .te-tab button.te-tab-active,.te-markdown-tab-section .te-tab button:hover.te-tab-active{background-color:#fff;color:#333;border-bottom:1px solid #fff;z-index:2}.te-markdown-tab-section .te-tab button:hover{background-color:#fff;color:#333}.tui-popup-modal-background{background-color:rgba(202,202,202,.6);position:fixed;margin:0;left:0;top:0;width:100%;height:100%;z-index:9999}.tui-popup-modal-background.fit-window .tui-popup-wrapper,.tui-popup-wrapper.fit-window{width:100%;height:100%}.tui-popup-wrapper{width:500px;margin-right:auto;border:1px solid #cacaca;background:#fff;z-index:9999}.tui-popup-modal-background .tui-popup-wrapper{position:absolute;margin:auto;top:0;right:0;bottom:0;left:0}.tui-popup-header{padding:10px;height:auto;line-height:normal;position:relative;border-bottom:1px solid #cacaca}.tui-popup-header .tui-popup-header-buttons{float:right}.tui-popup-header .tui-popup-header-buttons button{padding:0;background-color:transparent;background-size:cover;float:left}.tui-popup-header .tui-popup-close-button{margin:3px;width:13px;height:13px;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIxMHB4IiBoZWlnaHQ9IjEwcHgiIHZpZXdCb3g9IjAgMCAxMCAxMCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT5GMjc2Qzc4MC0zM0JBLTQ3MTItQTM3OC04RkQwQUNDOTFDRTk8L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggc2tldGNodG9vbC48L2Rlc2M+ICAgIDxkZWZzPjwvZGVmcz4gICAgPGcgaWQ9IlN5bWJvbHMiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiAgICAgICAgPGcgaWQ9ImxuYi1mb2xkZXItZGVsIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGZpbGw9IiM3Nzc3NzciPiAgICAgICAgICAgIDxwYXRoIGQ9Ik01LDMuNTg1Nzg2NDQgTDEuNzA3MTA2NzgsMC4yOTI4OTMyMTkgTDAuMjkyODkzMjE5LDEuNzA3MTA2NzggTDMuNTg1Nzg2NDQsNSBMMC4yOTI4OTMyMTksOC4yOTI4OTMyMiBMMS43MDcxMDY3OCw5LjcwNzEwNjc4IEw1LDYuNDE0MjEzNTYgTDguMjkyODkzMjIsOS43MDcxMDY3OCBMOS43MDcxMDY3OCw4LjI5Mjg5MzIyIEw2LjQxNDIxMzU2LDUgTDkuNzA3MTA2NzgsMS43MDcxMDY3OCBMOC4yOTI4OTMyMiwwLjI5Mjg5MzIxOSBMNSwzLjU4NTc4NjQ0IFoiIGlkPSJDb21iaW5lZC1TaGFwZSI+PC9wYXRoPiAgICAgICAgPC9nPiAgICA8L2c+PC9zdmc+)}.tui-popup-header .tui-popup-title{font-size:13px;font-weight:700;color:#333;vertical-align:bottom}.tui-popup-body{padding:15px;font-size:12px}.tui-editor-popup{position:absolute;top:30px;left:50%;margin-left:-250px}.tui-editor-popup.tui-popup-modal-background{position:fixed;top:0;left:0;margin:0}.tui-editor-popup .tui-popup-body label{font-weight:700;color:#666;display:block;margin:10px 0 5px}.tui-editor-popup .tui-popup-body .te-button-section{margin-top:15px}.tui-editor-popup .tui-popup-body input[type=file],.tui-editor-popup .tui-popup-body input[type=text]{padding:4px 10px;border:1px solid #bfbfbf;box-sizing:border-box;width:100%}.tui-editor-popup .tui-popup-body input.wrong{border-color:red}.te-popup-add-link .tui-popup-wrapper{height:219px}.te-popup-add-image .tui-popup-wrapper{height:243px}.te-popup-add-image .te-tab{display:block;background:0 0;border-bottom:1px solid #ebebeb;margin-bottom:8px}.te-dropdown-toolbar .tui-toolbar-divider,.te-popup-add-image .te-file-type,.te-popup-add-image .te-url-type,.tui-popup-color .tui-colorpicker-container .tui-colorpicker-palette-toggle-slider{display:none}.te-popup-add-image div.te-tab-active,.te-popup-add-image form.te-tab-active{display:block}.te-popup-add-image .te-tab button{border:1px solid #ccc;background:#eee;min-width:100px;margin-left:-1px;border-bottom:0;border-radius:3px 3px 0 0}.te-popup-add-image .te-tab button.te-tab-active{background:#fff}.te-popup-add-table .te-table-selection{position:relative}.te-popup-add-table .te-table-body{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAARCAYAAAAougcOAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAOklEQVQ4EWO8e/fuPwYGBkYgphlgAZmspKREMwtABjPR1HSo4aOWkBTKo8E1GlwkhQBJikdT1wgNLgAMSwQgckFvTgAAAABJRU5ErkJggg==)}.te-popup-add-table .te-table-header{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAARCAYAAAAougcOAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAOklEQVQ4EWO8e/fuPwYGBkYgphlgAZksLCxMMwtABjPR1HSo4aOWkBTKo8E1GlwkhQBJikdT1wgNLgDxKwPzTeWPdAAAAABJRU5ErkJggg==)}.te-popup-add-table .te-selection-area{position:absolute;top:0;left:0;background:#80d2ff;opacity:.3;z-index:999}.te-popup-add-table .te-description{margin:10px 0 0;text-align:center}.te-popup-table-utils{width:120px}.te-popup-table-utils .tui-popup-body{padding:0}.te-popup-table-utils button{width:100%;background-color:#fff;border:none;outline:0;padding:0 10px;font-size:12px;line-height:28px;text-align:left;color:#777}.fa-inverse,.mi-inverse,.tui-tooltip{color:#fff}.te-popup-table-utils button:hover{background-color:#f4f4f4}.te-popup-table-utils hr{background-color:#cacaca;border-style:none;height:1px}.te-heading-add{width:auto}.te-heading-add .tui-popup-body{padding:0}.te-heading-add h1,.te-heading-add h2,.te-heading-add h3,.te-heading-add h4,.te-heading-add h5,.te-heading-add h6,.te-heading-add p,.te-heading-add ul{padding:0;margin:0}.te-heading-add ul{list-style:none}.te-heading-add ul li{padding:2px 10px;cursor:pointer}.te-dropdown-toolbar .tui-popup-body,.tui-popup-color{padding:0}.te-heading-add ul li:hover{background-color:#eee}.te-heading-add h1{font-size:24px}.te-heading-add h2{font-size:22px}.te-heading-add h3{font-size:20px}.te-heading-add h4{font-size:18px}.te-heading-add h5{font-size:16px}.te-heading-add h6{font-size:14px}.te-dropdown-toolbar{position:absolute;width:auto}.tui-popup-color .tui-colorpicker-container,.tui-popup-color .tui-colorpicker-palette-container{width:144px}.tui-popup-color .tui-colorpicker-container ul{width:144px;margin-bottom:8px}.tui-popup-color .tui-colorpicker-container li{padding:0 1px 1px 0}.tui-popup-color .tui-colorpicker-container li .tui-colorpicker-palette-button{border:0;width:17px;height:17px}.tui-popup-color .tui-popup-body{padding:10px}.tui-popup-color .te-apply-button,.tui-popup-color .tui-colorpicker-palette-hex{float:right}.tui-popup-color .te-apply-button{height:21px;width:35px;background:#fff;border:1px solid #efefef;position:absolute;bottom:141px;right:10px}.tui-tooltip,.tui-tooltip .arrow{background-color:#222;position:absolute}.tui-popup-color .tui-colorpicker-container .tui-colorpicker-palette-hex{border:1px solid #E1E1E1;padding:3px 14px;margin-left:-1px}.tui-popup-color .tui-colorpicker-container div.tui-colorpicker-clearfix{display:inline-block}.tui-popup-color .tui-colorpicker-container .tui-colorpicker-palette-preview{width:19px;height:19px}.tui-popup-color .tui-colorpicker-slider-container .tui-colorpicker-slider-right{width:22px}.tui-popup-color .tui-colorpicker-slider-container .tui-colorpicker-huebar-handle{display:none}.tui-tooltip{z-index:999;opacity:.8;padding:2px 5px;font-size:10px}.tui-tooltip .arrow{content:"";display:inline-block;width:10px;height:10px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg);top:-3px;left:6px;z-index:-1}.tui-toolbar-icons{background:url(tui-editor.png);background-size:218px 188px;display:inline-block}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min--moz-device-pixel-ratio:2),only screen and (-o-min-device-pixel-ratio:2/1),only screen and (min-device-pixel-ratio:2),only screen and (min-resolution:192dpi),only screen and (min-resolution:2dppx){.tui-toolbar-icons{background:url(tui-editor-2x.png);background-size:218px 188px;display:inline-block}}.tui-toolbar-icons.tui-heading{background-position:-172px -48px}.tui-toolbar-icons.tui-heading:disabled{background-position:-193px -48px}.tui-toolbar-icons.tui-bold{background-position:-4px -4px}.tui-toolbar-icons.tui-bold:disabled{background-position:-25px -4px}.tui-toolbar-icons.tui-italic{background-position:-4px -48px}.tui-toolbar-icons.tui-italic:disabled{background-position:-25px -48px}.tui-toolbar-icons.tui-color{background-position:-172px -70px}.tui-toolbar-icons.tui-color:disabled{background-position:-193px -70px}.tui-toolbar-icons.tui-strike{background-position:-4px -26px}.tui-toolbar-icons.tui-strike:disabled{background-position:-25px -26px}.tui-toolbar-icons.tui-hrline{background-position:-46px -92px}.tui-toolbar-icons.tui-hrline:disabled{background-position:-67px -92px}.tui-toolbar-icons.tui-quote{background-position:-4px -114px}.tui-toolbar-icons.tui-quote:disabled{background-position:-25px -114px}.tui-toolbar-icons.tui-ul{background-position:-46px -4px}.tui-toolbar-icons.tui-ul:disabled{background-position:-67px -4px}.tui-toolbar-icons.tui-ol{background-position:-46px -26px}.tui-toolbar-icons.tui-ol:disabled{background-position:-67px -26px}.tui-toolbar-icons.tui-task{background-position:-130px -48px}.tui-toolbar-icons.tui-task:disabled{background-position:-151px -48px}.tui-toolbar-icons.tui-indent{background-position:-46px -48px}.tui-toolbar-icons.tui-indent:disabled{background-position:-67px -48px}.tui-toolbar-icons.tui-outdent{background-position:-46px -70px}.tui-toolbar-icons.tui-outdent:disabled{background-position:-67px -70px}.tui-toolbar-icons.tui-table{background-position:-88px -92px}.tui-toolbar-icons.tui-table:disabled{background-position:-109px -92px}.tui-toolbar-icons.tui-image{background-position:-130px -4px}.tui-toolbar-icons.tui-image:disabled{background-position:-151px -4px}.tui-toolbar-icons.tui-link{background-position:-130px -26px}.tui-toolbar-icons.tui-link:disabled{background-position:-151px -26px}.tui-toolbar-icons.tui-code{background-position:-130px -92px}.tui-toolbar-icons.tui-code:disabled{background-position:-151px -92px}.tui-toolbar-icons.tui-codeblock{background-position:-130px -70px}.tui-toolbar-icons.tui-codeblock:disabled{background-position:-151px -70px}.tui-toolbar-icons.tui-more{background-position:-172px -92px}.tui-toolbar-icons.tui-more:disabled{background-position:-193px -92px}.tui-colorpicker-svg-huebar,.tui-colorpicker-svg-slider,.tui-colorpicker-vml-slider{border:1px solid #ebebeb}.CodeMirror-sizer{margin-top:6px}.CodeMirror .cm-header{font-weight:700;color:inherit}.CodeMirror .cm-header-1{font-size:24px}.CodeMirror .cm-header-2{font-size:22px}.CodeMirror .cm-header-3{font-size:20px}.CodeMirror .cm-header-4{font-size:18px}.CodeMirror .cm-header-5{font-size:16px}.CodeMirror .cm-header-6{font-size:14px}.CodeMirror .cm-variable-2{color:inherit}.tui-editor-pseudo-clipboard{position:fixed;left:-1000px;top:-1000px;width:100px;height:100px}.te-ww-block-overlay.code-block-header{text-align:right}.te-ww-block-overlay.code-block-header span{font-size:10px;font-weight:600;padding:0 10px;color:#333;cursor:default}.te-ww-block-overlay.code-block-header button{margin:8px;font-size:10px;color:#333;background-color:#f9f9f9;border:1px solid #ddd;padding:4px;height:auto}.te-popup-code-block-languages{position:fixed;box-sizing:border-box;width:130px}.te-popup-code-block-languages .tui-popup-body{max-height:169px;overflow:auto;padding:0}.te-popup-code-block-languages button{width:100%;background-color:#fff;border:none;outline:0;padding:0 10px;font-size:12px;line-height:24px;text-align:left;color:#777}.te-popup-code-block-languages button.active{background-color:#f4f4f4}.tui-popup-code-block-editor .tui-popup-wrapper{width:70%;height:70%;margin:auto;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.te-input-language{position:relative;margin-left:15px;cursor:pointer}.te-input-language input{font-size:10px;padding:3px 5px;border:1px solid #ddd;background-color:#f9f9f9;box-sizing:border-box;width:130px;outline:0}.te-input-language input::-ms-clear{display:none}.te-input-language::after{content:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIxMnB4IiBoZWlnaHQ9IjE0cHgiIHZpZXdCb3g9IjAgMCAxMiAxNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT42Q0NBRDk2QS0yMjYxLTRFNDAtOTk1RC1DRUUyQUREQUQ3NkQ8L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggc2tldGNodG9vbC48L2Rlc2M+ICAgIDxkZWZzPjwvZGVmcz4gICAgPGcgaWQ9IlN5bWJvbHMiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiAgICAgICAgPGcgaWQ9ImNvbS10cmFuZ2xlLWQtc2lkZSIgZmlsbD0iIzU1NTU1NSI+ICAgICAgICAgICAgPHBvbHlnb24gaWQ9IlJlY3RhbmdsZS03IiBwb2ludHM9IjIgNSAxMCA1IDYgMTAiPjwvcG9seWdvbj4gICAgICAgIDwvZz4gICAgPC9nPjwvc3ZnPg==);position:absolute;top:1px;right:3px}.te-input-language.active::after{content:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIxMnB4IiBoZWlnaHQ9IjE0cHgiIHZpZXdCb3g9IjAgMCAxMiAxNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT5BNEZDRkIzMy0zNjdBLTREMjAtOEEyNC1DQ0I2ODFBMDZDODg8L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggc2tldGNodG9vbC48L2Rlc2M+ICAgIDxkZWZzPjwvZGVmcz4gICAgPGcgaWQ9IlN5bWJvbHMiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiAgICAgICAgPGcgaWQ9ImNvbS10cmFuZ2xlLXVwLXNpZGUiIGZpbGw9IiM1NTU1NTUiPiAgICAgICAgICAgIDxwb2x5Z29uIGlkPSJSZWN0YW5nbGUtNyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNi4wMDAwMDAsIDYuNTAwMDAwKSBzY2FsZSgxLCAtMSkgdHJhbnNsYXRlKC02LjAwMDAwMCwgLTYuNTAwMDAwKSAiIHBvaW50cz0iMiA0IDEwIDQgNiA5Ij48L3BvbHlnb24+ICAgICAgICA8L2c+ICAgIDwvZz48L3N2Zz4=)}.tui-popup-code-block-editor button{margin:-1px 3px}.tui-popup-code-block-editor .tui-popup-header-buttons{height:20px}.tui-popup-code-block-editor .popup-editor-toggle-preview::after{content:'Preview off';color:#777;margin-right:22px}.tui-popup-code-block-editor .popup-editor-toggle-preview.active::after{content:'Preview on';color:#4b96e6}.tui-popup-code-block-editor .popup-editor-toggle-scroll::after{content:'Scroll off';color:#777;margin-right:16px}.tui-popup-code-block-editor .popup-editor-toggle-scroll.active::after{content:'Scroll on';color:#4b96e6}.tui-popup-code-block-editor .popup-editor-toggle-fit{width:18px;height:18px;margin-top:4px;margin-right:14px;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIxOHB4IiBoZWlnaHQ9IjE4cHgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT40OUQ4RTYyMy1GRTAyLTQ1RUUtQkQ5Ri0xMjUyQjEzRTU1MkQ8L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggc2tldGNodG9vbC48L2Rlc2M+ICAgIDxkZWZzPjwvZGVmcz4gICAgPGcgaWQ9IlN5bWJvbHMiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiAgICAgICAgPGcgaWQ9ImNvbnRlbnRzLWV4cGFuZCIgZmlsbD0iIzU1NTU1NSI+ICAgICAgICAgICAgPHBhdGggZD0iTTMsMyBMOSwzIEw5LDUgTDUsNSBMNSw5IEwzLDkgTDMsMyBaIE0xNSwxNSBMOSwxNSBMOSwxMyBMMTMsMTMgTDEzLDkgTDE1LDkgTDE1LDE1IFoiIGlkPSJDb21iaW5lZC1TaGFwZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOS4wMDAwMDAsIDkuMDAwMDAwKSBzY2FsZSgtMSwgMSkgdHJhbnNsYXRlKC05LjAwMDAwMCwgLTkuMDAwMDAwKSAiPjwvcGF0aD4gICAgICAgICAgICA8cG9seWdvbiBpZD0iTGluZSIgZmlsbC1ydWxlPSJub256ZXJvIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMS41MDAwMDAsIDYuNTAwMDAwKSBzY2FsZSgtMSwgMSkgdHJhbnNsYXRlKC0xMS41MDAwMDAsIC02LjUwMDAwMCkgIiBwb2ludHM9IjkuMDg1Nzg2NDQgNS41IDEyLjUgOC45MTQyMTM1NiAxMy45MTQyMTM2IDcuNSAxMC41IDQuMDg1Nzg2NDQiPjwvcG9seWdvbj4gICAgICAgICAgICA8cG9seWdvbiBpZD0iTGluZS1Db3B5IiBmaWxsLXJ1bGU9Im5vbnplcm8iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDYuNTAwMDAwLCAxMS41MDAwMDApIHNjYWxlKC0xLCAxKSB0cmFuc2xhdGUoLTYuNTAwMDAwLCAtMTEuNTAwMDAwKSAiIHBvaW50cz0iNC4wODU3ODY0NCAxMC41IDcuNSAxMy45MTQyMTM2IDguOTE0MjEzNTYgMTIuNSA1LjUgOS4wODU3ODY0NCI+PC9wb2x5Z29uPiAgICAgICAgPC9nPiAgICA8L2c+PC9zdmc+)}.tui-popup-code-block-editor .popup-editor-toggle-fit.active{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIxOHB4IiBoZWlnaHQ9IjE4cHgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT4wN0Q1MjlCRi1GNTIzLTREN0EtQTlGNi05NTUzNTU5RDNEMUE8L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggc2tldGNodG9vbC48L2Rlc2M+ICAgIDxkZWZzPjwvZGVmcz4gICAgPGcgaWQ9IlN5bWJvbHMiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiAgICAgICAgPGcgaWQ9ImNvbnRlbnRzLXJlZHVjZSIgZmlsbD0iIzU1NTU1NSI+ICAgICAgICAgICAgPHBvbHlnb24gaWQ9IlBhdGgtMzIiIGZpbGwtcnVsZT0ibm9uemVybyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNS41MDAwMDAsIDEyLjUwMDAwMCkgc2NhbGUoLTEsIDEpIHRyYW5zbGF0ZSgtNS41MDAwMDAsIC0xMi41MDAwMDApICIgcG9pbnRzPSIzLjA4NTc4NjQ0IDExLjUgNi41IDE0LjkxNDIxMzYgNy45MTQyMTM1NiAxMy41IDQuNSAxMC4wODU3ODY0Ij48L3BvbHlnb24+ICAgICAgICAgICAgPHBhdGggZD0iTTksOSBMMTUsOSBMMTUsMTEgTDExLDExIEwxMSwxNSBMOSwxNSBMOSw5IFogTTksOSBMMyw5IEwzLDcgTDcsNyBMNywzIEw5LDMgTDksOSBaIiBpZD0iQ29tYmluZWQtU2hhcGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDkuMDAwMDAwLCA5LjAwMDAwMCkgc2NhbGUoLTEsIDEpIHRyYW5zbGF0ZSgtOS4wMDAwMDAsIC05LjAwMDAwMCkgIj48L3BhdGg+ICAgICAgICAgICAgPHBvbHlnb24gaWQ9IlBhdGgtMzMiIGZpbGwtcnVsZT0ibm9uemVybyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTIuNTAwMDAwLCA1LjUwMDAwMCkgc2NhbGUoLTEsIDEpIHRyYW5zbGF0ZSgtMTIuNTAwMDAwLCAtNS41MDAwMDApICIgcG9pbnRzPSIxNC45MTQyMTM2IDYuNSAxMS41IDMuMDg1Nzg2NDQgMTAuMDg1Nzg2NCA0LjUgMTMuNSA3LjkxNDIxMzU2Ij48L3BvbHlnb24+ICAgICAgICA8L2c+ICAgIDwvZz48L3N2Zz4=)}.tui-popup-code-block-editor .tui-popup-close-button{margin-top:6px}.tui-popup-code-block-editor .tui-popup-body{z-index:-1;padding:0;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex:1;flex:1}.tui-split-scroll.single-content .tui-split-content-right,.tui-split-scroll.single-content .tui-splitter,.tui-split-scroll.single-content button.tui-scrollsync{display:none}.tui-popup-code-block-editor .popup-editor-body{position:relative;-ms-flex:1;flex:1;border-bottom:1px solid #cacaca}.tui-popup-code-block-editor .te-button-section{padding:15px}.tui-popup-code-block-editor .te-button-section button{float:left}.tui-popup-code-block-editor .tui-editor-contents pre{margin:0;background-color:transparent}.tui-popup-code-block-editor .CodeMirror{height:auto}.tui-popup-code-block-editor .CodeMirror-line{font-family:Consolas,Courier,"Apple SD 산돌고딕 Neo",-apple-system,"Lucida Grande","Apple SD Gothic Neo","맑은 고딕","Malgun Gothic","Segoe UI","돋움",dotum,sans-serif;font-size:13px;line-height:160%;letter-spacing:-.3px}.tui-popup-code-block-editor .popup-editor-editor-wrapper{min-height:100%}.tui-split-scroll-wrapper{position:relative}.tui-split-scroll{position:absolute}.tui-split-scroll,.tui-split-scroll-wrapper{width:100%;height:100%}.tui-split-scroll .tui-split-content-left,.tui-split-scroll .tui-split-content-right{position:absolute;top:0;width:50%;box-sizing:border-box}.tui-split-scroll .tui-split-content-left{left:0}.tui-split-scroll .tui-split-content-right{left:50%}.tui-split-scroll .tui-splitter{position:absolute;left:50%;top:0;height:100%;width:1px;border-left:1px solid #cacaca}.tui-split-scroll .tui-split-scroll-content{width:100%;height:100%;overflow:hidden;position:relative}.tui-split-scroll .tui-split-content-left,.tui-split-scroll .tui-split-content-right{height:100%;overflow-x:hidden;overflow-y:auto}.tui-split-scroll button.tui-scrollsync{top:10px;opacity:.2}.tui-split-scroll button.tui-scrollsync::after{content:"scroll off"}.tui-split-scroll.scroll-sync button.tui-scrollsync{opacity:.5}.tui-split-scroll.scroll-sync .tui-split-content-left,.tui-split-scroll.scroll-sync .tui-split-content-right{height:auto;overflow:initial}.tui-split-scroll.scroll-sync button.tui-scrollsync::after{content:"scroll on"}.tui-split-scroll.scroll-sync .tui-split-scroll-content{overflow-y:auto}.tui-split-scroll.single-content .tui-split-content-left{width:100%}.fa,.fa-stack,.fab,.fad,.fal,.far,.fas,.mi,.mi-stack{display:inline-block}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.tui-split-scroll-wrapper .tui-splitter{left:calc(50% - 9px)}}@supports (-ms-accelerator:true){.tui-split-scroll-wrapper .tui-splitter{left:calc(50% - 9px)}}@media screen and (max-width:480px){.tui-popup-wrapper{max-width:300px}.tui-editor-popup{margin-left:-150px}.te-dropdown-toolbar{max-width:none}}/*! + */@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:400;font-display:auto;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:auto;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:auto;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.CodeMirror{height:300px;color:#000;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor-mark{background-color:rgba(20,255,20,.5);-webkit-animation:blink 1.06s steps(1) infinite;-moz-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite}.cm-animate-fat-cursor{width:auto;border:0;-webkit-animation:blink 1.06s steps(1) infinite;-moz-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite;background-color:#7e7}@-moz-keyframes blink{50%{background-color:transparent}}@-webkit-keyframes blink{50%{background-color:transparent}}@keyframes blink{50%{background-color:transparent}}.cm-tab{text-decoration:inherit}.cm-link,.tui-editor-contents a{text-decoration:underline}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:-20px;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;height:100%;outline:0;position:relative}.CodeMirror-sizer{position:relative;border-right:30px solid transparent}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-30px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:0 0!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-width:0;background:0 0;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;-webkit-font-variant-ligatures:contextual;font-variant-ligatures:contextual}.CodeMirror,.te-input-language input,.te-ww-block-overlay.code-block-header,.tui-editor-defaultUI{font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif}.CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:0}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{-moz-box-sizing:content-box;box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:''}span.CodeMirror-selectedtext{background:0 0}.hljs{display:block;overflow-x:auto;padding:.5em;color:#333;background:#f8f8f8}.hljs-comment,.hljs-quote{color:#998}.hljs-keyword,.hljs-selector-tag,.hljs-subst{color:#333;font-weight:700}.hljs-literal,.hljs-number,.hljs-tag .hljs-attr,.hljs-template-variable,.hljs-variable{color:teal}.hljs-doctag,.hljs-string{color:#d14}.hljs-section,.hljs-selector-id,.hljs-title{color:#900;font-weight:700}.hljs-subst{font-weight:400}.hljs-class .hljs-title,.hljs-type{color:#458;font-weight:700}.hljs-attribute,.hljs-name,.hljs-tag{color:navy;font-weight:400}.hljs-link,.hljs-regexp{color:#009926}.hljs-bullet,.hljs-symbol{color:#990073}.hljs-built_in,.hljs-builtin-name{color:#0086b3}.hljs-meta{color:#999;font-weight:700}.hljs-deletion{background:#fdd}.hljs-addition{background:#dfd}.hljs-strong{font-weight:700}.tui-editor-contents :not(table){line-height:160%;box-sizing:content-box}.tui-editor-contents strong{font-weight:700}.tui-editor-contents p{margin:10px 0;color:#555}.tui-editor-contents>div>div:first-of-type h1,.tui-editor-contents>h1:first-of-type{margin-top:14px}.tui-editor-contents h1,.tui-editor-contents h2,.tui-editor-contents h3,.tui-editor-contents h5{font-weight:700}.tui-editor-contents h1{font-size:1.6rem;line-height:28px;border-bottom:3px double #999;margin:52px 0 15px;padding-bottom:7px;color:#000}.tui-editor-contents h2{font-size:1.3rem;line-height:23px;border-bottom:1px solid #dbdbdb;margin:30px 0 13px;padding-bottom:7px;color:#333}.tui-editor-contents h3,.tui-editor-contents h4{font-size:1.2rem;line-height:18px;margin:20px 0 2px;color:#333}.tui-editor-contents h5,.tui-editor-contents h6{font-size:1rem;line-height:17px;margin:10px 0 -4px;color:#333}.tui-editor-contents blockquote{margin:15px 0;border-left:4px solid #ddd;padding:0 15px;color:#777}.tui-editor-contents blockquote>:first-child{margin-top:0}.tui-editor-contents blockquote>:last-child{margin-bottom:0}.tui-editor-contents code,.tui-editor-contents pre{font-family:Consolas,Courier,"Apple SD 산돌고딕 Neo",-apple-system,"Lucida Grande","Apple SD Gothic Neo","맑은 고딕","Malgun Gothic","Segoe UI","돋움",dotum,sans-serif;border:0;border-radius:0}.tui-editor-contents pre{margin:2px 0 8px;padding:18px;background-color:#f5f7f8}.tui-editor-contents code{color:#c1788b;padding:4px 4px 2px 0;letter-spacing:-.3px}.tui-editor-contents pre code{padding:0;color:inherit;white-space:pre-wrap;background-color:transparent}.tui-editor-contents pre.addon{border:1px solid #e8ebed;background-color:#fff}.tui-editor-contents img{margin:4px 0 10px;box-sizing:border-box;vertical-align:top;max-width:100%}.tui-editor-contents table{margin:2px 0 14px;color:#555;width:auto;border-collapse:collapse;box-sizing:border-box}.tui-editor-contents table td,.tui-editor-contents table th{height:32px;padding:5px 14px 5px 12px}.tui-editor-contents table td{border:1px solid #eaeaea}.tui-editor-contents table th{border:1px solid #72777b;border-top:0;background-color:#7b8184;font-weight:300;color:#fff;padding-top:6px}.tui-editor-contents dir,.tui-editor-contents menu,.tui-editor-contents ol,.tui-editor-contents ul{display:block;list-style-type:disc;padding-left:17px;margin:6px 0 10px;color:#555}.tui-editor-contents ol{list-style-type:decimal}.tui-editor-contents ol ol,.tui-editor-contents ol ul,.tui-editor-contents ul ol,.tui-editor-contents ul ul{margin-top:0!important;margin-bottom:0!important}.tui-editor-contents ol li,.tui-editor-contents ul li{position:relative}.tui-editor-contents ul p,ol p{margin:0}.tui-editor-contents ol li.task-list-item:before,.tui-editor-contents pre ul li:before,.tui-editor-contents ul li.task-list-item:before{content:""}.tui-editor-contents hr{border-top:1px solid #eee;margin:16px 0}.tui-editor-contents a{color:#5286bc}.tui-editor-contents a:hover{color:#007cff}.tui-editor-contents{font-size:13px;margin:0;padding:0}.tui-editor-contents .task-list-item{border:0;list-style:none;padding-left:22px;margin-left:-22px}.tui-editor-contents .task-list-item:before{background-repeat:no-repeat;background-size:16px 16px;background-position:center;content:"";height:18px;width:18px;position:absolute;left:0;top:1px;cursor:pointer;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAADdJREFUKBVjvHv37n8GMgALSI+SkhJJWu/du8fARJIOJMWjGpECA505GjjoIYLEB6dVUNojFQAA/1MJUFWet/4AAAAASUVORK5CYII=)}.tui-editor-contents .task-list-item.checked:before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAMpJREFUKBVjjJ/64D8DGYCJDD1gLbTVyM3OxJDiJMzAxcYIdyALnIWDAdJU7i/OICfCxsDMxMgwc88bwk5F1vTs/W+GFUffwY2H+1FBlI2hLliCQYCbGSyJrqlzwwuGj9//YWoMtRBgUBJnZ6gMEGeQFWaFOw9kE7omkG5GWDyCPF7mJ86gIMbO8P//fwZGRkYGXJpAGuFO/fbrP0PXppcMD179JKgJRSOIA9N8/NZXrM4DqYEBjOgAaYYFOUwRNhruVGyS+MTI1ggAx8NTGcUtFVQAAAAASUVORK5CYII=)}.tui-editor-contents .task-list-item .task-list-item-checkbox,.tui-editor-contents .task-list-item input[type=checkbox]{margin-left:-17px;margin-right:3.8px;margin-top:3px}.tui-editor-contents-placeholder:before{content:attr(data-placeholder);color:grey;line-height:160%;position:absolute}.auto-height,.auto-height .tui-editor-defaultUI{height:auto}.auto-height .tui-editor{position:relative}:not(.auto-height)>.tui-editor-defaultUI,:not(.auto-height)>.tui-editor-defaultUI>.te-editor-section{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}:not(.auto-height)>.tui-editor-defaultUI>.te-editor-section{-ms-flex:1;flex:1}.tui-editor-defaultUI-toolbar:after,.tui-editor:after{content:"";display:block;height:0;clear:both}.tui-editor{position:absolute;line-height:1;color:#181818;width:100%;height:inherit}.te-editor-section{min-height:0;position:relative;height:inherit}.te-md-container{display:none;overflow:hidden;height:100%}.te-md-container .te-editor{line-height:1.5}.te-md-container .te-editor,.te-md-container .te-preview{box-sizing:border-box;padding:0;height:inherit}.te-md-container .CodeMirror{font-size:13px;height:inherit}.te-md-container .te-preview{overflow:auto;padding:0 25px;height:100%}.te-md-container .te-preview>p:first-child{margin-top:0!important}.te-md-container .te-preview .tui-editor-contents{padding-top:11px}.tui-editor .te-preview-style-tab>.te-editor,.tui-editor .te-preview-style-tab>.te-preview{float:left;width:100%;display:none}.tui-editor .te-preview-style-tab>.te-tab-active{display:block}.tui-editor .te-preview-style-vertical>.te-tab-section{display:none}.tui-editor .te-preview-style-tab>.te-tab-section{display:block}.tui-editor .te-preview-style-vertical .te-editor,.tui-editor .te-preview-style-vertical .te-preview{float:left;width:50%}.tui-editor .te-md-splitter{display:none;position:absolute;left:50%;top:0;height:100%;width:1px;border-left:1px solid #e5e5e5}.tui-editor .te-preview-style-vertical .te-md-splitter{display:block}.te-ww-container{display:none;overflow:hidden;z-index:10;height:inherit;background-color:#fff}.te-ww-container>.te-editor{overflow:auto;height:inherit}.te-ww-container .tui-editor-contents:focus{outline:0}.te-ww-container .tui-editor-contents{padding:0 25px}.te-ww-container .tui-editor-contents:first-child{box-sizing:border-box;margin:0;padding:16px 25px 0;height:inherit}.te-ww-container .tui-editor-contents:last-child{margin-bottom:16px}.te-md-mode .te-md-container,.te-ww-mode .te-ww-container{display:block;z-index:100}.tui-editor-defaultUI.te-hide,.tui-editor.te-hide{display:none}.tui-editor-defaultUI .CodeMirror-lines{padding-top:13px;padding-bottom:13px}.tui-editor-defaultUI .CodeMirror-line{padding-left:25px;padding-right:25px}.tui-editor-defaultUI .CodeMirror pre.CodeMirror-placeholder{padding-left:25px;color:grey}.tui-editor-defaultUI .CodeMirror-scroll{cursor:text}.tui-editor-contents td.te-cell-selected{background-color:#d8dfec}.tui-editor-contents td.te-cell-selected::selection{background-color:#d8dfec}.tui-editor-contents th.te-cell-selected{background-color:#908f8f}.tui-editor-contents th.te-cell-selected::selection{background-color:#908f8f}.tui-editor-defaultUI{position:relative;border:1px solid #e5e5e5;height:100%}.tui-editor-defaultUI button{color:#fff;padding:0 14px 0 15px;height:28px;font-size:12px;border:none;cursor:pointer;outline:0}.tui-editor-defaultUI button.te-ok-button{background-color:#4b96e6}.tui-editor-defaultUI button.te-close-button{background-color:#777}.tui-editor-defaultUI-toolbar{padding:0 25px;height:31px;background-color:#fff;border:0;overflow:hidden}.tui-toolbar-divider{float:left;display:inline-block;width:1px;height:14px;background-color:#ddd;margin:9px 6px}.tui-toolbar-button-group{height:28px;border-right:1px solid #d9d9d9;float:left}.te-toolbar-section{height:32px;box-sizing:border-box;border-bottom:1px solid #e5e5e5}.tui-editor-defaultUI-toolbar button{float:left;box-sizing:border-box;outline:0;cursor:pointer;background-color:#fff;width:22px;height:22px;padding:3px;border-radius:0;margin:5px 3px;border:1px solid #fff}.tui-editor-defaultUI-toolbar button.active,.tui-editor-defaultUI-toolbar button:active,.tui-editor-defaultUI-toolbar button:hover{border:1px solid #aaa;background-color:#fff}.tui-editor-defaultUI-toolbar button:first-child{margin-left:0}.tui-editor-defaultUI-toolbar button:last-child{margin-right:0}.tui-editor-defaultUI-toolbar button.tui-scrollsync{width:auto;color:#777;border:0}.tui-editor-defaultUI button.tui-scrollsync:after{content:"Scroll off"}.tui-editor-defaultUI button.tui-scrollsync.active{color:#125de6;font-weight:700}.tui-editor-defaultUI button.tui-scrollsync.active:after{content:"Scroll on"}.tui-editor-defaultUI .te-mode-switch-section{background-color:#f9f9f9;border-top:1px solid #e5e5e5;height:20px;font-size:12px}.tui-editor-defaultUI .te-mode-switch{float:right;height:100%}.tui-editor-defaultUI .te-switch-button{width:92px;height:inherit;background:#e5e5e5;outline:0;color:#a0aabf;cursor:pointer;border:0;border-left:1px solid #ddd;border-right:1px solid #ddd}.tui-editor-defaultUI .te-switch-button.active{background-color:#fff;color:#000}.tui-editor-defaultUI .te-markdown-tab-section{float:left;height:31px;background:#fff}.te-markdown-tab-section .te-tab{margin:0 -7px 0 24px;background:#fff}.tui-editor-defaultUI .te-tab button{box-sizing:border-box;line-height:100%;position:relative;cursor:pointer;z-index:1;font-size:13px;background-color:#f9f9f9;border:1px solid #e5e5e5;border-top:0;padding:0 9px;color:#777;border-radius:0;outline:0}.te-markdown-tab-section .te-tab button:last-child{margin-left:-1px}.te-markdown-tab-section .te-tab button.te-tab-active,.te-markdown-tab-section .te-tab button:hover.te-tab-active{background-color:#fff;color:#333;border-bottom:1px solid #fff;z-index:2}.te-markdown-tab-section .te-tab button:hover{background-color:#fff;color:#333}.tui-popup-modal-background{background-color:rgba(202,202,202,.6);position:fixed;margin:0;left:0;top:0;width:100%;height:100%;z-index:9999}.tui-popup-modal-background.fit-window .tui-popup-wrapper,.tui-popup-wrapper.fit-window{width:100%;height:100%}.tui-popup-wrapper{width:500px;margin-right:auto;border:1px solid #cacaca;background:#fff;z-index:9999}.tui-popup-modal-background .tui-popup-wrapper{position:absolute;margin:auto;top:0;right:0;bottom:0;left:0}.tui-popup-header{padding:10px;height:auto;line-height:normal;position:relative;border-bottom:1px solid #cacaca}.tui-popup-header .tui-popup-header-buttons{float:right}.tui-popup-header .tui-popup-header-buttons button{padding:0;background-color:transparent;background-size:cover;float:left}.tui-popup-header .tui-popup-close-button{margin:3px;width:13px;height:13px;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIxMHB4IiBoZWlnaHQ9IjEwcHgiIHZpZXdCb3g9IjAgMCAxMCAxMCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT5GMjc2Qzc4MC0zM0JBLTQ3MTItQTM3OC04RkQwQUNDOTFDRTk8L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggc2tldGNodG9vbC48L2Rlc2M+ICAgIDxkZWZzPjwvZGVmcz4gICAgPGcgaWQ9IlN5bWJvbHMiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiAgICAgICAgPGcgaWQ9ImxuYi1mb2xkZXItZGVsIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGZpbGw9IiM3Nzc3NzciPiAgICAgICAgICAgIDxwYXRoIGQ9Ik01LDMuNTg1Nzg2NDQgTDEuNzA3MTA2NzgsMC4yOTI4OTMyMTkgTDAuMjkyODkzMjE5LDEuNzA3MTA2NzggTDMuNTg1Nzg2NDQsNSBMMC4yOTI4OTMyMTksOC4yOTI4OTMyMiBMMS43MDcxMDY3OCw5LjcwNzEwNjc4IEw1LDYuNDE0MjEzNTYgTDguMjkyODkzMjIsOS43MDcxMDY3OCBMOS43MDcxMDY3OCw4LjI5Mjg5MzIyIEw2LjQxNDIxMzU2LDUgTDkuNzA3MTA2NzgsMS43MDcxMDY3OCBMOC4yOTI4OTMyMiwwLjI5Mjg5MzIxOSBMNSwzLjU4NTc4NjQ0IFoiIGlkPSJDb21iaW5lZC1TaGFwZSI+PC9wYXRoPiAgICAgICAgPC9nPiAgICA8L2c+PC9zdmc+)}.tui-popup-header .tui-popup-title{font-size:13px;font-weight:700;color:#333;vertical-align:bottom}.tui-popup-body{padding:15px;font-size:12px}.tui-editor-popup{position:absolute;top:30px;left:50%;margin-left:-250px}.tui-editor-popup.tui-popup-modal-background{position:fixed;top:0;left:0;margin:0}.tui-editor-popup .tui-popup-body label{font-weight:700;color:#666;display:block;margin:10px 0 5px}.tui-editor-popup .tui-popup-body .te-button-section{margin-top:15px}.tui-editor-popup .tui-popup-body input[type=file],.tui-editor-popup .tui-popup-body input[type=text]{padding:4px 10px;border:1px solid #bfbfbf;box-sizing:border-box;width:100%}.tui-editor-popup .tui-popup-body input.wrong{border-color:red}.te-popup-add-link .tui-popup-wrapper{height:219px}.te-popup-add-image .tui-popup-wrapper{height:243px}.te-popup-add-image .te-tab{display:block;background:0 0;border-bottom:1px solid #ebebeb;margin-bottom:8px}.te-dropdown-toolbar .tui-toolbar-divider,.te-popup-add-image .te-file-type,.te-popup-add-image .te-url-type,.tui-popup-color .tui-colorpicker-container .tui-colorpicker-palette-toggle-slider{display:none}.te-popup-add-image div.te-tab-active,.te-popup-add-image form.te-tab-active{display:block}.te-popup-add-image .te-tab button{border:1px solid #ccc;background:#eee;min-width:100px;margin-left:-1px;border-bottom:0;border-radius:3px 3px 0 0}.te-popup-add-image .te-tab button.te-tab-active{background:#fff}.te-popup-add-table .te-table-selection{position:relative}.te-popup-add-table .te-table-body{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAARCAYAAAAougcOAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAOklEQVQ4EWO8e/fuPwYGBkYgphlgAZmspKREMwtABjPR1HSo4aOWkBTKo8E1GlwkhQBJikdT1wgNLgAMSwQgckFvTgAAAABJRU5ErkJggg==)}.te-popup-add-table .te-table-header{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAARCAYAAAAougcOAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAOklEQVQ4EWO8e/fuPwYGBkYgphlgAZksLCxMMwtABjPR1HSo4aOWkBTKo8E1GlwkhQBJikdT1wgNLgDxKwPzTeWPdAAAAABJRU5ErkJggg==)}.te-popup-add-table .te-selection-area{position:absolute;top:0;left:0;background:#80d2ff;opacity:.3;z-index:999}.te-popup-add-table .te-description{margin:10px 0 0;text-align:center}.te-popup-table-utils{width:120px}.te-popup-table-utils .tui-popup-body{padding:0}.te-popup-table-utils button{width:100%;background-color:#fff;border:none;outline:0;padding:0 10px;font-size:12px;line-height:28px;text-align:left;color:#777}.fa-inverse,.mi-inverse,.tui-tooltip{color:#fff}.te-popup-table-utils button:hover{background-color:#f4f4f4}.te-popup-table-utils hr{background-color:#cacaca;border-style:none;height:1px}.te-heading-add{width:auto}.te-heading-add .tui-popup-body{padding:0}.te-heading-add h1,.te-heading-add h2,.te-heading-add h3,.te-heading-add h4,.te-heading-add h5,.te-heading-add h6,.te-heading-add p,.te-heading-add ul{padding:0;margin:0}.te-heading-add ul{list-style:none}.te-heading-add ul li{padding:2px 10px;cursor:pointer}.te-dropdown-toolbar .tui-popup-body,.tui-popup-color{padding:0}.te-heading-add ul li:hover{background-color:#eee}.te-heading-add h1{font-size:24px}.te-heading-add h2{font-size:22px}.te-heading-add h3{font-size:20px}.te-heading-add h4{font-size:18px}.te-heading-add h5{font-size:16px}.te-heading-add h6{font-size:14px}.te-dropdown-toolbar{position:absolute;width:auto}.tui-popup-color .tui-colorpicker-container,.tui-popup-color .tui-colorpicker-palette-container{width:144px}.tui-popup-color .tui-colorpicker-container ul{width:144px;margin-bottom:8px}.tui-popup-color .tui-colorpicker-container li{padding:0 1px 1px 0}.tui-popup-color .tui-colorpicker-container li .tui-colorpicker-palette-button{border:0;width:17px;height:17px}.tui-popup-color .tui-popup-body{padding:10px}.tui-popup-color .te-apply-button,.tui-popup-color .tui-colorpicker-palette-hex{float:right}.tui-popup-color .te-apply-button{height:21px;width:35px;background:#fff;border:1px solid #efefef;position:absolute;bottom:141px;right:10px}.tui-tooltip,.tui-tooltip .arrow{background-color:#222;position:absolute}.tui-popup-color .tui-colorpicker-container .tui-colorpicker-palette-hex{border:1px solid #E1E1E1;padding:3px 14px;margin-left:-1px}.tui-popup-color .tui-colorpicker-container div.tui-colorpicker-clearfix{display:inline-block}.tui-popup-color .tui-colorpicker-container .tui-colorpicker-palette-preview{width:19px;height:19px}.tui-popup-color .tui-colorpicker-slider-container .tui-colorpicker-slider-right{width:22px}.tui-popup-color .tui-colorpicker-slider-container .tui-colorpicker-huebar-handle{display:none}.tui-tooltip{z-index:999;opacity:.8;padding:2px 5px;font-size:10px}.tui-tooltip .arrow{content:"";display:inline-block;width:10px;height:10px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg);top:-3px;left:6px;z-index:-1}.tui-toolbar-icons{background:url(tui-editor.png);background-size:218px 188px;display:inline-block}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min--moz-device-pixel-ratio:2),only screen and (-o-min-device-pixel-ratio:2/1),only screen and (min-device-pixel-ratio:2),only screen and (min-resolution:192dpi),only screen and (min-resolution:2dppx){.tui-toolbar-icons{background:url(tui-editor-2x.png);background-size:218px 188px;display:inline-block}}.tui-toolbar-icons.tui-heading{background-position:-172px -48px}.tui-toolbar-icons.tui-heading:disabled{background-position:-193px -48px}.tui-toolbar-icons.tui-bold{background-position:-4px -4px}.tui-toolbar-icons.tui-bold:disabled{background-position:-25px -4px}.tui-toolbar-icons.tui-italic{background-position:-4px -48px}.tui-toolbar-icons.tui-italic:disabled{background-position:-25px -48px}.tui-toolbar-icons.tui-color{background-position:-172px -70px}.tui-toolbar-icons.tui-color:disabled{background-position:-193px -70px}.tui-toolbar-icons.tui-strike{background-position:-4px -26px}.tui-toolbar-icons.tui-strike:disabled{background-position:-25px -26px}.tui-toolbar-icons.tui-hrline{background-position:-46px -92px}.tui-toolbar-icons.tui-hrline:disabled{background-position:-67px -92px}.tui-toolbar-icons.tui-quote{background-position:-4px -114px}.tui-toolbar-icons.tui-quote:disabled{background-position:-25px -114px}.tui-toolbar-icons.tui-ul{background-position:-46px -4px}.tui-toolbar-icons.tui-ul:disabled{background-position:-67px -4px}.tui-toolbar-icons.tui-ol{background-position:-46px -26px}.tui-toolbar-icons.tui-ol:disabled{background-position:-67px -26px}.tui-toolbar-icons.tui-task{background-position:-130px -48px}.tui-toolbar-icons.tui-task:disabled{background-position:-151px -48px}.tui-toolbar-icons.tui-indent{background-position:-46px -48px}.tui-toolbar-icons.tui-indent:disabled{background-position:-67px -48px}.tui-toolbar-icons.tui-outdent{background-position:-46px -70px}.tui-toolbar-icons.tui-outdent:disabled{background-position:-67px -70px}.tui-toolbar-icons.tui-table{background-position:-88px -92px}.tui-toolbar-icons.tui-table:disabled{background-position:-109px -92px}.tui-toolbar-icons.tui-image{background-position:-130px -4px}.tui-toolbar-icons.tui-image:disabled{background-position:-151px -4px}.tui-toolbar-icons.tui-link{background-position:-130px -26px}.tui-toolbar-icons.tui-link:disabled{background-position:-151px -26px}.tui-toolbar-icons.tui-code{background-position:-130px -92px}.tui-toolbar-icons.tui-code:disabled{background-position:-151px -92px}.tui-toolbar-icons.tui-codeblock{background-position:-130px -70px}.tui-toolbar-icons.tui-codeblock:disabled{background-position:-151px -70px}.tui-toolbar-icons.tui-more{background-position:-172px -92px}.tui-toolbar-icons.tui-more:disabled{background-position:-193px -92px}.tui-colorpicker-svg-huebar,.tui-colorpicker-svg-slider,.tui-colorpicker-vml-slider{border:1px solid #ebebeb}.CodeMirror-sizer{margin-top:6px}.CodeMirror .cm-header{font-weight:700;color:inherit}.CodeMirror .cm-header-1{font-size:24px}.CodeMirror .cm-header-2{font-size:22px}.CodeMirror .cm-header-3{font-size:20px}.CodeMirror .cm-header-4{font-size:18px}.CodeMirror .cm-header-5{font-size:16px}.CodeMirror .cm-header-6{font-size:14px}.CodeMirror .cm-variable-2{color:inherit}.tui-editor-pseudo-clipboard{position:fixed;left:-1000px;top:-1000px;width:100px;height:100px}.te-ww-block-overlay.code-block-header{text-align:right}.te-ww-block-overlay.code-block-header span{font-size:10px;font-weight:600;padding:0 10px;color:#333;cursor:default}.te-ww-block-overlay.code-block-header button{margin:8px;font-size:10px;color:#333;background-color:#f9f9f9;border:1px solid #ddd;padding:4px;height:auto}.te-popup-code-block-languages{position:fixed;box-sizing:border-box;width:130px}.te-popup-code-block-languages .tui-popup-body{max-height:169px;overflow:auto;padding:0}.te-popup-code-block-languages button{width:100%;background-color:#fff;border:none;outline:0;padding:0 10px;font-size:12px;line-height:24px;text-align:left;color:#777}.te-popup-code-block-languages button.active{background-color:#f4f4f4}.tui-popup-code-block-editor .tui-popup-wrapper{width:70%;height:70%;margin:auto;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.te-input-language{position:relative;margin-left:15px;cursor:pointer}.te-input-language input{font-size:10px;padding:3px 5px;border:1px solid #ddd;background-color:#f9f9f9;box-sizing:border-box;width:130px;outline:0}.te-input-language input::-ms-clear{display:none}.te-input-language::after{content:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIxMnB4IiBoZWlnaHQ9IjE0cHgiIHZpZXdCb3g9IjAgMCAxMiAxNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT42Q0NBRDk2QS0yMjYxLTRFNDAtOTk1RC1DRUUyQUREQUQ3NkQ8L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggc2tldGNodG9vbC48L2Rlc2M+ICAgIDxkZWZzPjwvZGVmcz4gICAgPGcgaWQ9IlN5bWJvbHMiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiAgICAgICAgPGcgaWQ9ImNvbS10cmFuZ2xlLWQtc2lkZSIgZmlsbD0iIzU1NTU1NSI+ICAgICAgICAgICAgPHBvbHlnb24gaWQ9IlJlY3RhbmdsZS03IiBwb2ludHM9IjIgNSAxMCA1IDYgMTAiPjwvcG9seWdvbj4gICAgICAgIDwvZz4gICAgPC9nPjwvc3ZnPg==);position:absolute;top:1px;right:3px}.te-input-language.active::after{content:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIxMnB4IiBoZWlnaHQ9IjE0cHgiIHZpZXdCb3g9IjAgMCAxMiAxNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT5BNEZDRkIzMy0zNjdBLTREMjAtOEEyNC1DQ0I2ODFBMDZDODg8L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggc2tldGNodG9vbC48L2Rlc2M+ICAgIDxkZWZzPjwvZGVmcz4gICAgPGcgaWQ9IlN5bWJvbHMiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiAgICAgICAgPGcgaWQ9ImNvbS10cmFuZ2xlLXVwLXNpZGUiIGZpbGw9IiM1NTU1NTUiPiAgICAgICAgICAgIDxwb2x5Z29uIGlkPSJSZWN0YW5nbGUtNyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNi4wMDAwMDAsIDYuNTAwMDAwKSBzY2FsZSgxLCAtMSkgdHJhbnNsYXRlKC02LjAwMDAwMCwgLTYuNTAwMDAwKSAiIHBvaW50cz0iMiA0IDEwIDQgNiA5Ij48L3BvbHlnb24+ICAgICAgICA8L2c+ICAgIDwvZz48L3N2Zz4=)}.tui-popup-code-block-editor button{margin:-1px 3px}.tui-popup-code-block-editor .tui-popup-header-buttons{height:20px}.tui-popup-code-block-editor .popup-editor-toggle-preview::after{content:'Preview off';color:#777;margin-right:22px}.tui-popup-code-block-editor .popup-editor-toggle-preview.active::after{content:'Preview on';color:#4b96e6}.tui-popup-code-block-editor .popup-editor-toggle-scroll::after{content:'Scroll off';color:#777;margin-right:16px}.tui-popup-code-block-editor .popup-editor-toggle-scroll.active::after{content:'Scroll on';color:#4b96e6}.tui-popup-code-block-editor .popup-editor-toggle-fit{width:18px;height:18px;margin-top:4px;margin-right:14px;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIxOHB4IiBoZWlnaHQ9IjE4cHgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT40OUQ4RTYyMy1GRTAyLTQ1RUUtQkQ5Ri0xMjUyQjEzRTU1MkQ8L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggc2tldGNodG9vbC48L2Rlc2M+ICAgIDxkZWZzPjwvZGVmcz4gICAgPGcgaWQ9IlN5bWJvbHMiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiAgICAgICAgPGcgaWQ9ImNvbnRlbnRzLWV4cGFuZCIgZmlsbD0iIzU1NTU1NSI+ICAgICAgICAgICAgPHBhdGggZD0iTTMsMyBMOSwzIEw5LDUgTDUsNSBMNSw5IEwzLDkgTDMsMyBaIE0xNSwxNSBMOSwxNSBMOSwxMyBMMTMsMTMgTDEzLDkgTDE1LDkgTDE1LDE1IFoiIGlkPSJDb21iaW5lZC1TaGFwZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOS4wMDAwMDAsIDkuMDAwMDAwKSBzY2FsZSgtMSwgMSkgdHJhbnNsYXRlKC05LjAwMDAwMCwgLTkuMDAwMDAwKSAiPjwvcGF0aD4gICAgICAgICAgICA8cG9seWdvbiBpZD0iTGluZSIgZmlsbC1ydWxlPSJub256ZXJvIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMS41MDAwMDAsIDYuNTAwMDAwKSBzY2FsZSgtMSwgMSkgdHJhbnNsYXRlKC0xMS41MDAwMDAsIC02LjUwMDAwMCkgIiBwb2ludHM9IjkuMDg1Nzg2NDQgNS41IDEyLjUgOC45MTQyMTM1NiAxMy45MTQyMTM2IDcuNSAxMC41IDQuMDg1Nzg2NDQiPjwvcG9seWdvbj4gICAgICAgICAgICA8cG9seWdvbiBpZD0iTGluZS1Db3B5IiBmaWxsLXJ1bGU9Im5vbnplcm8iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDYuNTAwMDAwLCAxMS41MDAwMDApIHNjYWxlKC0xLCAxKSB0cmFuc2xhdGUoLTYuNTAwMDAwLCAtMTEuNTAwMDAwKSAiIHBvaW50cz0iNC4wODU3ODY0NCAxMC41IDcuNSAxMy45MTQyMTM2IDguOTE0MjEzNTYgMTIuNSA1LjUgOS4wODU3ODY0NCI+PC9wb2x5Z29uPiAgICAgICAgPC9nPiAgICA8L2c+PC9zdmc+)}.tui-popup-code-block-editor .popup-editor-toggle-fit.active{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIxOHB4IiBoZWlnaHQ9IjE4cHgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT4wN0Q1MjlCRi1GNTIzLTREN0EtQTlGNi05NTUzNTU5RDNEMUE8L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggc2tldGNodG9vbC48L2Rlc2M+ICAgIDxkZWZzPjwvZGVmcz4gICAgPGcgaWQ9IlN5bWJvbHMiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiAgICAgICAgPGcgaWQ9ImNvbnRlbnRzLXJlZHVjZSIgZmlsbD0iIzU1NTU1NSI+ICAgICAgICAgICAgPHBvbHlnb24gaWQ9IlBhdGgtMzIiIGZpbGwtcnVsZT0ibm9uemVybyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNS41MDAwMDAsIDEyLjUwMDAwMCkgc2NhbGUoLTEsIDEpIHRyYW5zbGF0ZSgtNS41MDAwMDAsIC0xMi41MDAwMDApICIgcG9pbnRzPSIzLjA4NTc4NjQ0IDExLjUgNi41IDE0LjkxNDIxMzYgNy45MTQyMTM1NiAxMy41IDQuNSAxMC4wODU3ODY0Ij48L3BvbHlnb24+ICAgICAgICAgICAgPHBhdGggZD0iTTksOSBMMTUsOSBMMTUsMTEgTDExLDExIEwxMSwxNSBMOSwxNSBMOSw5IFogTTksOSBMMyw5IEwzLDcgTDcsNyBMNywzIEw5LDMgTDksOSBaIiBpZD0iQ29tYmluZWQtU2hhcGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDkuMDAwMDAwLCA5LjAwMDAwMCkgc2NhbGUoLTEsIDEpIHRyYW5zbGF0ZSgtOS4wMDAwMDAsIC05LjAwMDAwMCkgIj48L3BhdGg+ICAgICAgICAgICAgPHBvbHlnb24gaWQ9IlBhdGgtMzMiIGZpbGwtcnVsZT0ibm9uemVybyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTIuNTAwMDAwLCA1LjUwMDAwMCkgc2NhbGUoLTEsIDEpIHRyYW5zbGF0ZSgtMTIuNTAwMDAwLCAtNS41MDAwMDApICIgcG9pbnRzPSIxNC45MTQyMTM2IDYuNSAxMS41IDMuMDg1Nzg2NDQgMTAuMDg1Nzg2NCA0LjUgMTMuNSA3LjkxNDIxMzU2Ij48L3BvbHlnb24+ICAgICAgICA8L2c+ICAgIDwvZz48L3N2Zz4=)}.tui-popup-code-block-editor .tui-popup-close-button{margin-top:6px}.tui-popup-code-block-editor .tui-popup-body{z-index:-1;padding:0;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex:1;flex:1}.tui-split-scroll.single-content .tui-split-content-right,.tui-split-scroll.single-content .tui-splitter,.tui-split-scroll.single-content button.tui-scrollsync{display:none}.tui-popup-code-block-editor .popup-editor-body{position:relative;-ms-flex:1;flex:1;border-bottom:1px solid #cacaca}.tui-popup-code-block-editor .te-button-section{padding:15px}.tui-popup-code-block-editor .te-button-section button{float:left}.tui-popup-code-block-editor .tui-editor-contents pre{margin:0;background-color:transparent}.tui-popup-code-block-editor .CodeMirror{height:auto}.tui-popup-code-block-editor .CodeMirror-line{font-family:Consolas,Courier,"Apple SD 산돌고딕 Neo",-apple-system,"Lucida Grande","Apple SD Gothic Neo","맑은 고딕","Malgun Gothic","Segoe UI","돋움",dotum,sans-serif;font-size:13px;line-height:160%;letter-spacing:-.3px}.tui-popup-code-block-editor .popup-editor-editor-wrapper{min-height:100%}.tui-split-scroll-wrapper{position:relative}.tui-split-scroll{position:absolute}.tui-split-scroll,.tui-split-scroll-wrapper{width:100%;height:100%}.tui-split-scroll .tui-split-content-left,.tui-split-scroll .tui-split-content-right{position:absolute;top:0;width:50%;box-sizing:border-box}.tui-split-scroll .tui-split-content-left{left:0}.tui-split-scroll .tui-split-content-right{left:50%}.tui-split-scroll .tui-splitter{position:absolute;left:50%;top:0;height:100%;width:1px;border-left:1px solid #cacaca}.tui-split-scroll .tui-split-scroll-content{width:100%;height:100%;overflow:hidden;position:relative}.tui-split-scroll .tui-split-content-left,.tui-split-scroll .tui-split-content-right{height:100%;overflow-x:hidden;overflow-y:auto}.tui-split-scroll button.tui-scrollsync{top:10px;opacity:.2}.tui-split-scroll button.tui-scrollsync::after{content:"scroll off"}.tui-split-scroll.scroll-sync button.tui-scrollsync{opacity:.5}.tui-split-scroll.scroll-sync .tui-split-content-left,.tui-split-scroll.scroll-sync .tui-split-content-right{height:auto;overflow:initial}.tui-split-scroll.scroll-sync button.tui-scrollsync::after{content:"scroll on"}.tui-split-scroll.scroll-sync .tui-split-scroll-content{overflow-y:auto}.tui-split-scroll.single-content .tui-split-content-left{width:100%}.fa,.fa-stack,.fab,.fad,.fal,.far,.fas,.mi,.mi-stack{display:inline-block}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.tui-split-scroll-wrapper .tui-splitter{left:calc(50% - 9px)}}@supports (-ms-accelerator:true){.tui-split-scroll-wrapper .tui-splitter{left:calc(50% - 9px)}}@media screen and (max-width:480px){.tui-popup-wrapper{max-width:300px}.tui-editor-popup{margin-left:-150px}.te-dropdown-toolbar{max-width:none}}/*! * Font Awesome Free 5.12.1 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) */.fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x,.fa-stack-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{margin-left:2.5em}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{-webkit-filter:none;filter:none}.fa-stack{height:2em;line-height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.mi-stack,.mi-ul>li{position:relative}.fa-stack-1x{line-height:inherit}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adobe:before{content:"\f778"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-bahai:before{content:"\f666"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-alt:before{content:"\f422"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-cotton-bureau:before{content:"\f89e"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dailymotion:before{content:"\f952"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-alt:before{content:"\f424"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\f907"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-ideal:before{content:"\f913"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-instagram-square:before{content:"\f955"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microblog:before{content:"\f91a"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mixer:before{content:"\f956"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse:before{content:"\f8cc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-square:before{content:"\f91e"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopify:before{content:"\f957"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swift:before{content:"\f8e1"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\f941"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\f949"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-wave-square:before{content:"\f83e"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:400;font-display:auto;src:url(../fonts/fa-brands-400.eot);src:url(../fonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-brands-400.woff2) format("woff2"),url(../fonts/fa-brands-400.woff) format("woff"),url(../fonts/fa-brands-400.ttf) format("truetype"),url(../fonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:auto;src:url(../fonts/fa-regular-400.eot);src:url(../fonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-regular-400.woff2) format("woff2"),url(../fonts/fa-regular-400.woff) format("woff"),url(../fonts/fa-regular-400.ttf) format("truetype"),url(../fonts/fa-regular-400.svg#fontawesome) format("svg")}.fab,.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:auto;src:url(../fonts/fa-solid-900.eot);src:url(../fonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-solid-900.woff2) format("woff2"),url(../fonts/fa-solid-900.woff) format("woff"),url(../fonts/fa-solid-900.ttf) format("truetype"),url(../fonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900}/*! diff --git a/src/applications/mixcore/wwwroot/mix-app/css/portal.min.css b/src/applications/mixcore/wwwroot/mix-app/css/portal.min.css index ce6abe130..3ea216b20 100644 --- a/src/applications/mixcore/wwwroot/mix-app/css/portal.min.css +++ b/src/applications/mixcore/wwwroot/mix-app/css/portal.min.css @@ -1,9 +1,9 @@ -/* Sun Feb 04 2024 23:41:10 GMT+0700 (Indochina Time) */@charset "UTF-8";/*! +/* Sun Jun 25 2023 15:07:09 GMT+0700 (Indochina Time) */@charset "UTF-8";/*! * Bootstrap v5.0.2 (https://getbootstrap.com/) * Copyright 2011-2021 The Bootstrap Authors * Copyright 2011-2021 Twitter, Inc. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */.popover,.tooltip,body{font-family:var(--bs-font-sans-serif);font-weight:400;line-height:1.5}.btn,.btn-link,.dropdown-item,.form-control,.form-select,.input-group-text,.popover,.tooltip,body{font-weight:400}.btn,.col-form-label,.form-control,.form-control-plaintext,.form-select,.input-group-text,.modal-title,.offcanvas-title,.popover,.tooltip,body{line-height:1.5}.table,body{color:#212529}.CodeMirror pre,body{-webkit-tap-highlight-color:transparent}.popover,.tooltip,address{font-style:normal}.btn-link,a{text-decoration:underline}.CodeMirror-wrap pre,.popover,.tooltip,pre code{word-break:normal}.card,.popover,.toast-body,.tooltip,code{word-wrap:break-word}.btn,.btn-group,.btn-group-vertical,.navbar-toggler-icon,img,svg{vertical-align:middle}.CodeMirror pre,select{word-wrap:normal}label,output{display:inline-block}progress,sub,sup{vertical-align:baseline}:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0))}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-size:1rem;background-color:#fff;-webkit-text-size-adjust:100%}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}address,dl,ol,p,pre,ul{margin-bottom:1rem}blockquote,figure{margin:0 0 1rem}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}dl,ol,p,ul{margin-top:0}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}.alertify .ajs-commands button,.btn,.carousel-indicators [data-bs-target],.form-control-color:not(:disabled):not([readonly]),.form-control[type=file]:not(:disabled):not([readonly]),[role=button],[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled),summary{cursor:pointer}address{line-height:inherit}ol,ul{padding-left:2rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit}code,kbd{font-size:.875em}code{color:#d63384}a>code{color:inherit}kbd{padding:.2rem .4rem;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}button{border-radius:0}fieldset,iframe{border:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}.display-1,.display-2,.display-3,.display-4,.display-5,.display-6{line-height:1.2;font-weight:300}.form-control,.form-select{-webkit-appearance:none;-moz-appearance:none}summary{display:list-item}[hidden]{display:none!important}.btn,.figure,.form-check-inline,.list-inline-item{display:inline-block}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw)}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw)}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw)}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw)}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw)}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer,.figure-caption{font-size:.875em;color:#6c757d}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem}.blockquote-footer::before{content:"— "}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure-img{margin-bottom:.5rem;line-height:1}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{width:100%;padding-right:var(--bs-gutter-x,.75rem);padding-left:var(--bs-gutter-x,.75rem);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}.custom-file-img,.invalid-tooltip,.offcanvas,.row>*,.toast,.toast-container,.trumbowyg-editor embed,.trumbowyg-editor img,.trumbowyg-editor object,.trumbowyg-editor video,.valid-tooltip{max-width:100%}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(var(--bs-gutter-y) * -1);margin-right:calc(var(--bs-gutter-x) * -.5);margin-left:calc(var(--bs-gutter-x) * -.5)}.row>*{flex-shrink:0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2,.col-3{flex:0 0 auto}.col-2{width:16.66666667%}.col-3{width:25%}.col-4,.col-5{flex:0 0 auto}.col-4{width:33.33333333%}.col-5{width:41.66666667%}.col-6,.col-7{flex:0 0 auto}.col-6{width:50%}.col-7{width:58.33333333%}.col-8,.col-9{flex:0 0 auto}.col-8{width:66.66666667%}.col-9{width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-bg:transparent;--bs-table-accent-bg:transparent;--bs-table-striped-color:#212529;--bs-table-striped-bg:rgba(0, 0, 0, 0.05);--bs-table-active-color:#212529;--bs-table-active-bg:rgba(0, 0, 0, 0.1);--bs-table-hover-color:#212529;--bs-table-hover-bg:rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:#dee2e6}.card-title,.form-label{margin-bottom:.5rem}.table>:not(caption)>*>*{padding:.5rem;background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.form-check-input:focus,.form-control:focus,.form-select:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.25);outline:0}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table>:not(:last-child)>:last-child>*{border-bottom-color:currentColor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-striped>tbody>tr:nth-of-type(odd){--bs-table-accent-bg:var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg:var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover{--bs-table-accent-bg:var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-bg:#cfe2ff;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000;color:#000;border-color:#bacbe6}.table-secondary{--bs-table-bg:#e2e3e5;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000;color:#000;border-color:#cbccce}.table-success{--bs-table-bg:#d1e7dd;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000;color:#000;border-color:#bcd0c7}.table-info{--bs-table-bg:#cff4fc;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000;color:#000;border-color:#badce3}.table-warning{--bs-table-bg:#fff3cd;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000;color:#000;border-color:#e6dbb9}.table-danger{--bs-table-bg:#f8d7da;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000;color:#000;border-color:#dfc2c4}.table-light{--bs-table-bg:#f8f9fa;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000;color:#000;border-color:#dfe0e1}.table-dark{--bs-table-bg:#212529;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:#fff;border-color:#373b3e}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.collapsing,.dropdown-divider,.form-control[type=file],.progress,.progress-bar{overflow:hidden}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:#6c757d}.form-control,.form-control:focus{color:#212529;background-color:#fff}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;background-clip:padding-box;border:1px solid #ced4da;appearance:none;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.btn,.form-control::file-selector-button{transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control:focus{border-color:#86b7fe}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0}@media (prefers-reduced-motion:reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#dde0e3}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#dde0e3}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + (.5rem + 2px));padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + (1rem + 2px));padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + (.75rem + 2px))}textarea.form-control-sm{min-height:calc(1.5em + (.5rem + 2px))}textarea.form-control-lg{min-height:calc(1.5em + (1rem + 2px))}.form-control-color{max-width:3rem;height:auto;padding:.375rem}.form-control-color::-moz-color-swatch{height:1.5em;border-radius:.25rem}.form-control-color::-webkit-color-swatch{height:1.5em;border-radius:.25rem}.form-select{display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;-moz-padding-start:calc(.75rem - 3px);font-size:1rem;color:#212529;background-color:#fff;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}.form-check-input,.form-range{-webkit-appearance:none;-moz-appearance:none}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#e9ecef}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #212529}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(0,0,0,.25);appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-check-inline{margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.5rem;padding:0;background-color:transparent;appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-select{height:calc(3.5rem + 2px);line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1rem .75rem;pointer-events:none;border:1px solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}.form-floating>.form-control{padding:1rem .75rem}.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus{z-index:3}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;color:#212529;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#198754}.invalid-tooltip,.valid-tooltip{margin-top:.1rem;position:absolute}.valid-tooltip{top:100%;z-index:5;display:none;padding:.25rem .5rem;font-size:.875rem;color:#fff;background-color:rgba(25,135,84,.9);border-radius:.25rem}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover,.input-group .form-control.is-valid,.input-group .form-select.is-valid,.was-validated .input-group .form-control:valid,.was-validated .input-group .form-select:valid{z-index:1}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#198754;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:#198754}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:#198754}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:#198754}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#198754}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group .form-control.is-valid:focus,.input-group .form-select.is-valid:focus,.was-validated .input-group .form-control:valid:focus,.was-validated .input-group .form-select:valid:focus{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#dc3545}.invalid-tooltip{top:100%;z-index:5;display:none;padding:.25rem .5rem;font-size:.875rem;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.accordion-button:hover,.input-group .form-control.is-invalid,.input-group .form-select.is-invalid,.was-validated .input-group .form-control:invalid,.was-validated .input-group .form-select:invalid{z-index:2}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:#dc3545}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:#dc3545}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:#dc3545}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.btn,.btn:hover{color:#212529}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group .form-control.is-invalid:focus,.input-group .form-select.is-invalid:focus,.was-validated .input-group .form-control:invalid:focus,.was-validated .input-group .form-select:invalid:focus{z-index:3}.btn{text-align:center;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;border-radius:.25rem}.dropdown-toggle::after,.dropup .dropdown-toggle::after{vertical-align:.255em;content:""}@media (prefers-reduced-motion:reduce){.btn,.form-floating>label{transition:none}}.btn-check:focus+.btn,.btn:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.btn-check:active+.btn-primary:focus,.btn-check:checked+.btn-primary:focus,.btn-check:focus+.btn-primary,.btn-primary.active:focus,.btn-primary:active:focus,.btn-primary:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{pointer-events:none;opacity:.65}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:focus+.btn-primary,.btn-primary:focus,.btn-primary:hover{background-color:#0b5ed7;border-color:#0a58ca;color:#fff}.btn-check:active+.btn-primary,.btn-check:checked+.btn-primary,.btn-primary.active,.btn-primary:active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0a58ca;border-color:#0a53be}.btn-check:active+.btn-secondary:focus,.btn-check:checked+.btn-secondary:focus,.btn-check:focus+.btn-secondary,.btn-secondary.active:focus,.btn-secondary:active:focus,.btn-secondary:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:focus+.btn-secondary,.btn-secondary:focus,.btn-secondary:hover{background-color:#5c636a;border-color:#565e64;color:#fff}.btn-check:active+.btn-secondary,.btn-check:checked+.btn-secondary,.btn-secondary.active,.btn-secondary:active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#565e64;border-color:#51585e}.btn-check:active+.btn-success:focus,.btn-check:checked+.btn-success:focus,.btn-check:focus+.btn-success,.btn-success.active:focus,.btn-success:active:focus,.btn-success:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-success{color:#fff;background-color:#198754;border-color:#198754}.btn-check:focus+.btn-success,.btn-success:focus,.btn-success:hover{background-color:#157347;border-color:#146c43;color:#fff}.btn-check:active+.btn-success,.btn-check:checked+.btn-success,.btn-success.active,.btn-success:active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#146c43;border-color:#13653f}.btn-check:active+.btn-info:focus,.btn-check:checked+.btn-info:focus,.btn-check:focus+.btn-info,.btn-info.active:focus,.btn-info:active:focus,.btn-info:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#198754;border-color:#198754}.btn-info{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:focus+.btn-info,.btn-info:focus,.btn-info:hover{color:#000;background-color:#31d2f2;border-color:#25cff2}.btn-check:active+.btn-info,.btn-check:checked+.btn-info,.btn-info.active,.btn-info:active,.show>.btn-info.dropdown-toggle{color:#000;background-color:#3dd5f3;border-color:#25cff2}.btn-info.disabled,.btn-info:disabled{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-warning{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#000;background-color:#ffca2c;border-color:#ffc720}.btn-check:focus+.btn-warning,.btn-warning:focus{color:#000;background-color:#ffca2c;border-color:#ffc720;box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-check:active+.btn-warning,.btn-check:checked+.btn-warning,.btn-warning.active,.btn-warning:active,.show>.btn-warning.dropdown-toggle{color:#000;background-color:#ffcd39;border-color:#ffc720}.btn-check:active+.btn-warning:focus,.btn-check:checked+.btn-warning:focus,.btn-warning.active:focus,.btn-warning:active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-check:active+.btn-danger:focus,.btn-check:checked+.btn-danger:focus,.btn-check:focus+.btn-danger,.btn-danger.active:focus,.btn-danger:active:focus,.btn-danger:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:focus+.btn-danger,.btn-danger:focus,.btn-danger:hover{background-color:#bb2d3b;border-color:#b02a37;color:#fff}.btn-check:active+.btn-danger,.btn-check:checked+.btn-danger,.btn-danger.active,.btn-danger:active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#b02a37;border-color:#a52834}.btn-check:active+.btn-light:focus,.btn-check:checked+.btn-light:focus,.btn-check:focus+.btn-light,.btn-light.active:focus,.btn-light:active:focus,.btn-light:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-light{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:active+.btn-light,.btn-check:checked+.btn-light,.btn-check:focus+.btn-light,.btn-light.active,.btn-light:active,.btn-light:focus,.btn-light:hover,.show>.btn-light.dropdown-toggle{background-color:#f9fafb;border-color:#f9fafb;color:#000}.btn-check:active+.btn-dark:focus,.btn-check:checked+.btn-dark:focus,.btn-check:focus+.btn-dark,.btn-dark.active:focus,.btn-dark:active:focus,.btn-dark:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-light.disabled,.btn-light:disabled{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-dark{color:#fff;background-color:#212529;border-color:#212529}.btn-check:focus+.btn-dark,.btn-dark:focus,.btn-dark:hover{background-color:#1c1f23;border-color:#1a1e21;color:#fff}.btn-check:active+.btn-dark,.btn-check:checked+.btn-dark,.btn-dark.active,.btn-dark:active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1a1e21;border-color:#191c1f}.btn-check:active+.btn-outline-primary:focus,.btn-check:checked+.btn-outline-primary:focus,.btn-check:focus+.btn-outline-primary,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus,.btn-outline-primary:active:focus,.btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#212529;border-color:#212529}.btn-outline-primary{color:#0d6efd;border-color:#0d6efd}.btn-check:active+.btn-outline-primary,.btn-check:checked+.btn-outline-primary,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show,.btn-outline-primary:active,.btn-outline-primary:hover{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:active+.btn-outline-secondary:focus,.btn-check:checked+.btn-outline-secondary:focus,.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus,.btn-outline-secondary:active:focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#0d6efd;background-color:transparent}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-check:active+.btn-outline-secondary,.btn-check:checked+.btn-outline-secondary,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show,.btn-outline-secondary:active,.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:active+.btn-outline-success:focus,.btn-check:checked+.btn-outline-success:focus,.btn-check:focus+.btn-outline-success,.btn-outline-success.active:focus,.btn-outline-success.dropdown-toggle.show:focus,.btn-outline-success:active:focus,.btn-outline-success:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-success{color:#198754;border-color:#198754}.btn-check:active+.btn-outline-success,.btn-check:checked+.btn-outline-success,.btn-outline-success.active,.btn-outline-success.dropdown-toggle.show,.btn-outline-success:active,.btn-outline-success:hover{color:#fff;background-color:#198754;border-color:#198754}.btn-check:active+.btn-outline-info:focus,.btn-check:checked+.btn-outline-info:focus,.btn-check:focus+.btn-outline-info,.btn-outline-info.active:focus,.btn-outline-info.dropdown-toggle.show:focus,.btn-outline-info:active:focus,.btn-outline-info:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#198754;background-color:transparent}.btn-outline-info{color:#0dcaf0;border-color:#0dcaf0}.btn-check:active+.btn-outline-info,.btn-check:checked+.btn-outline-info,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show,.btn-outline-info:active,.btn-outline-info:hover{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:active+.btn-outline-warning:focus,.btn-check:checked+.btn-outline-warning:focus,.btn-check:focus+.btn-outline-warning,.btn-outline-warning.active:focus,.btn-outline-warning.dropdown-toggle.show:focus,.btn-outline-warning:active:focus,.btn-outline-warning:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#0dcaf0;background-color:transparent}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-check:active+.btn-outline-warning,.btn-check:checked+.btn-outline-warning,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show,.btn-outline-warning:active,.btn-outline-warning:hover{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:active+.btn-outline-danger:focus,.btn-check:checked+.btn-outline-danger:focus,.btn-check:focus+.btn-outline-danger,.btn-outline-danger.active:focus,.btn-outline-danger.dropdown-toggle.show:focus,.btn-outline-danger:active:focus,.btn-outline-danger:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-check:active+.btn-outline-danger,.btn-check:checked+.btn-outline-danger,.btn-outline-danger.active,.btn-outline-danger.dropdown-toggle.show,.btn-outline-danger:active,.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:active+.btn-outline-light:focus,.btn-check:checked+.btn-outline-light:focus,.btn-check:focus+.btn-outline-light,.btn-outline-light.active:focus,.btn-outline-light.dropdown-toggle.show:focus,.btn-outline-light:active:focus,.btn-outline-light:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-check:active+.btn-outline-light,.btn-check:checked+.btn-outline-light,.btn-outline-light.active,.btn-outline-light.dropdown-toggle.show,.btn-outline-light:active,.btn-outline-light:hover{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:active+.btn-outline-dark:focus,.btn-check:checked+.btn-outline-dark:focus,.btn-check:focus+.btn-outline-dark,.btn-outline-dark.active:focus,.btn-outline-dark.dropdown-toggle.show:focus,.btn-outline-dark:active:focus,.btn-outline-dark:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-dark{color:#212529;border-color:#212529}.btn-check:active+.btn-outline-dark,.btn-check:checked+.btn-outline-dark,.btn-outline-dark.active,.btn-outline-dark.dropdown-toggle.show,.btn-outline-dark:active,.btn-outline-dark:hover{color:#fff;background-color:#212529;border-color:#212529}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#212529;background-color:transparent}.btn-link{color:#0d6efd}.btn-link:hover{color:#0a58ca}.btn-link.disabled,.btn-link:disabled{color:#6c757d}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropend,.dropstart,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:.125rem}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid;vertical-align:0}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropstart .dropdown-toggle::after{margin-left:.255em;vertical-align:.255em;content:"";display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent;vertical-align:0}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropdown-divider{height:0;margin:.5rem 0;border-top:1px solid rgba(0,0,0,.15)}.dropdown-item{display:block;width:100%;padding:.25rem 1rem;clear:both;color:#212529;text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0}.dropdown-menu-dark,.dropdown-menu-dark .dropdown-divider{border-color:rgba(0,0,0,.15)}.dropdown-item:focus,.dropdown-item:hover{color:#1e2125;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#0d6efd}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1rem;color:#212529}.dropdown-menu-dark{color:#dee2e6;background-color:#343a40}.dropdown-menu-dark .dropdown-item{color:#dee2e6}.dropdown-menu-dark .dropdown-item:focus,.dropdown-menu-dark .dropdown-item:hover{color:#fff;background-color:rgba(255,255,255,.15)}.dropdown-menu-dark .dropdown-item.active,.dropdown-menu-dark .dropdown-item:active{color:#fff;background-color:#0d6efd}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#adb5bd}.dropdown-menu-dark .dropdown-item-text{color:#dee2e6}.dropdown-menu-dark .dropdown-header{color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.card>hr,.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem;color:#0d6efd;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:#0a58ca}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;background:0 0;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6;isolation:isolate}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{background:0 0;border:0;border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#0d6efd}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.card,.navbar-nav{flex-direction:column}.navbar-brand{padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;text-decoration:none;white-space:nowrap}.navbar-nav{display:flex;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem;transition:box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 .25rem}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.accordion-button,.alert,.btn .badge,.card,.list-group-item,.modal-content,.modal-dialog,.page-link{position:relative}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.55)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.55);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.55)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.55)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.55);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.55)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{display:flex;min-width:0;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:1rem}.card-footer,.card-header{padding:.5rem 1rem;background-color:rgba(0,0,0,.03)}.accordion-header,.card-header,.card-subtitle,.card-text:last-child{margin-bottom:0}.card-subtitle{margin-top:-.25rem}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1rem}.card-header-pills,.card-header-tabs{margin-right:-.5rem;margin-left:-.5rem}.card-header{border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.5rem;border-bottom:0}.card-group>.card,.toast-container>:not(:last-child){margin-bottom:.75rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(.25rem - 1px)}.accordion-body,.accordion-button{padding:1rem 1.25rem}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion-button{display:flex;align-items:center;width:100%;font-size:1rem;color:#212529;text-align:left;background-color:#fff;border:0;border-radius:0;overflow-anchor:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:#0c63e4;background-color:#e7f1ff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.125)}.accordion-button:focus,.btn-close:focus,.page-link:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.25);outline:0}.accordion-button:not(.collapsed)::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");transform:rotate(-180deg)}.accordion-button::after{flex-shrink:0;width:1.25rem;height:1.25rem;margin-left:auto;content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:1.25rem;transition:transform .2s ease-in-out}@media (prefers-reduced-motion:reduce){.accordion-button::after{transition:none}}.accordion-button:focus{z-index:3;border-color:#86b7fe}.alert,.breadcrumb{margin-bottom:1rem}.accordion-item{background-color:#fff;border:1px solid rgba(0,0,0,.125)}.accordion-item:first-of-type{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.accordion-item:first-of-type .accordion-button{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button{border-radius:0}.breadcrumb{display:flex;flex-wrap:wrap;padding:0;list-style:none}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:var(--bs-breadcrumb-divider,"/")}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none}.page-link{display:block;color:#0d6efd;text-decoration:none;background-color:#fff;border:1px solid #dee2e6;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;padding:.375rem .75rem}.page-link:focus,.page-link:hover{color:#0a58ca;background-color:#e9ecef}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;border-color:#dee2e6}.page-link:focus{z-index:3}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;background-color:#fff;border-color:#dee2e6}.page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem}.pagination-sm .page-link,.popover,.toast,.tooltip{font-size:.875rem}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty,.toast.hide{display:none}.btn .badge{top:-1px}.alert{padding:1rem;border:1px solid transparent;border-radius:.25rem}.list-group,.progress{display:flex;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{color:#084298;background-color:#cfe2ff;border-color:#b6d4fe}.alert-primary .alert-link{color:#06357a}.alert-secondary{color:#41464b;background-color:#e2e3e5;border-color:#d3d6d8}.alert-secondary .alert-link{color:#34383c}.alert-success{color:#0f5132;background-color:#d1e7dd;border-color:#badbcc}.alert-success .alert-link{color:#0c4128}.alert-info{color:#055160;background-color:#cff4fc;border-color:#b6effb}.alert-info .alert-link{color:#04414d}.alert-warning{color:#664d03;background-color:#fff3cd;border-color:#ffecb5}.alert-warning .alert-link{color:#523e02}.alert-danger{color:#842029;background-color:#f8d7da;border-color:#f5c2c7}.alert-danger .alert-link{color:#6a1a21}.alert-light{color:#636464;background-color:#fefefe;border-color:#fdfdfe}.alert-light .alert-link{color:#4f5050}.alert-dark{color:#141619;background-color:#d3d3d4;border-color:#bcbebf}.alert-dark .alert-link{color:#101214}@-webkit-keyframes progress-bar-stripes{0%{background-position-x:1rem}}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{height:1rem;font-size:.75rem;background-color:#e9ecef}.progress-bar{display:flex;flex-direction:column;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#0d6efd;transition:width .6s ease}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:1s linear infinite progress-bar-stripes;animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}.progress-bar-animated{-webkit-animation:none;animation:none}}.list-group{flex-direction:column;padding-left:0;margin-bottom:0}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>li::before{content:counters(section,".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{display:block;padding:.5rem 1rem;color:#212529;text-decoration:none;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#084298;background-color:#cfe2ff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#084298;background-color:#bacbe6}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#084298;border-color:#084298}.list-group-item-secondary{color:#41464b;background-color:#e2e3e5}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#41464b;background-color:#cbccce}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#41464b;border-color:#41464b}.list-group-item-success{color:#0f5132;background-color:#d1e7dd}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#0f5132;background-color:#bcd0c7}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#0f5132;border-color:#0f5132}.list-group-item-info{color:#055160;background-color:#cff4fc}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#055160;background-color:#badce3}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#055160;border-color:#055160}.list-group-item-warning{color:#664d03;background-color:#fff3cd}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#664d03;background-color:#e6dbb9}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#664d03;border-color:#664d03}.list-group-item-danger{color:#842029;background-color:#f8d7da}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#842029;background-color:#dfc2c4}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#842029;border-color:#842029}.list-group-item-light{color:#636464;background-color:#fefefe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#636464;background-color:#e5e5e5}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#636464;border-color:#636464}.list-group-item-dark{color:#141619;background-color:#d3d3d4}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#141619;background-color:#bebebf}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#141619;border-color:#141619}.btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em;color:#000;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;border:0;border-radius:.25rem;opacity:.5}.carousel-indicators [data-bs-target],.modal-content,.offcanvas,.popover,.toast,.toast-header{background-clip:padding-box}.btn-close:hover{color:#000;text-decoration:none;opacity:.75}.btn-close:focus{opacity:1}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:.25}.modal-backdrop.fade,.toast:not(.showing):not(.show){opacity:0}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{width:350px;pointer-events:auto;background-color:rgba(255,255,255,.85);border:1px solid rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.15);border-radius:.25rem}.toast-container{width:-webkit-max-content;width:-moz-max-content;width:max-content;pointer-events:none}.toast-header{display:flex;align-items:center;padding:.5rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-header .btn-close{margin-right:-.375rem;margin-left:.75rem}.toast-body{padding:.75rem}.modal{position:fixed;top:0;left:0;z-index:1060;display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body,.modal-fullscreen .modal-body,.offcanvas-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-content{display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .btn-close{padding:.5rem;margin:-.5rem -.5rem -.5rem auto}.modal-title{margin-bottom:0}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;flex-shrink:0;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{height:calc(100% - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-footer,.modal-fullscreen .modal-header{border-radius:0}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-footer,.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-footer,.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-footer,.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-footer,.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-footer,.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{position:absolute;z-index:1080;display:block;margin:0;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-spacing:normal;white-space:normal;line-break:auto;opacity:0}.tooltip.show{opacity:.9}.tooltip .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[data-popper-placement^=right],.bs-tooltip-end{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{right:-1px;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[data-popper-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[data-popper-placement^=left],.bs-tooltip-start{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1070;display:block;max-width:276px;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-spacing:normal;white-space:normal;line-break:auto;background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .popover-arrow{position:absolute;display:block;width:1rem;height:.5rem}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f0f0f0}.carousel,.carousel-inner,.carousel-item{position:relative}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.offcanvas-top,.popover-header{border-bottom:1px solid rgba(0,0,0,.2)}.popover-header{padding:.5rem 1rem;margin-bottom:0;font-size:1rem;background-color:#f0f0f0;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:1rem;color:#212529}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;background-color:#fff;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.CodeMirror,.ace_punctuation.ace_block.ace_razor,.ace_punctuation.ace_short.ace_razor,.carousel-dark .carousel-caption{color:#000}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}@-webkit-keyframes spinner-border{to{transform:rotate(360deg)}}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:.75s linear infinite spinner-border;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:.75s linear infinite spinner-grow;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}.offcanvas-bottom,.offcanvas-top{right:0;left:0;height:30vh;max-height:100%}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}.offcanvas{position:fixed;bottom:0;z-index:1050;display:flex;flex-direction:column;visibility:hidden;background-color:#fff;outline:0;transition:transform .3s ease-in-out}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:1rem}.offcanvas-header .btn-close{padding:.5rem;margin-top:-.5rem;margin-right:-.5rem;margin-bottom:-.5rem}.offcanvas-title{margin-bottom:0}.offcanvas-body{flex-grow:1;padding:1rem}.offcanvas-start{top:0;left:0;width:400px;border-right:1px solid rgba(0,0,0,.2);transform:translateX(-100%)}.offcanvas-end{top:0;right:0;width:400px;border-left:1px solid rgba(0,0,0,.2);transform:translateX(100%)}.offcanvas-top{top:0;transform:translateY(-100%)}.offcanvas-bottom{border-top:1px solid rgba(0,0,0,.2);transform:translateY(100%)}.offcanvas.show{transform:none}.clearfix::after{display:block;clear:both;content:""}.link-primary{color:#0d6efd}.link-primary:focus,.link-primary:hover{color:#0a58ca}.link-secondary{color:#6c757d}.link-secondary:focus,.link-secondary:hover{color:#565e64}.link-success{color:#198754}.link-success:focus,.link-success:hover{color:#146c43}.link-info{color:#0dcaf0}.link-info:focus,.link-info:hover{color:#3dd5f3}.link-warning{color:#ffc107}.link-warning:focus,.link-warning:hover{color:#ffcd39}.link-danger{color:#dc3545}.link-danger:focus,.link-danger:hover{color:#b02a37}.link-light{color:#f8f9fa}.link-light:focus,.link-light:hover{color:#f9fafb}.link-dark{color:#212529}.link-dark:focus,.link-dark:hover{color:#1a1e21}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.fixed-bottom,.fixed-top{position:fixed;z-index:1030;right:0;left:0}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:calc(3 / 4 * 100%)}.ratio-16x9{--bs-aspect-ratio:calc(9 / 16 * 100%)}.ratio-21x9{--bs-aspect-ratio:calc(9 / 21 * 100%)}.fixed-top{top:0}.fixed-bottom{bottom:0}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.alertify .ajs-dialog.ajs-capture:before,.cm-tab-wrap-hack:after{content:''}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:1px solid #dee2e6!important}.border-0{border:0!important}.border-top{border-top:1px solid #dee2e6!important}.border-top-0{border-top:0!important}.border-end{border-right:1px solid #dee2e6!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:1px solid #dee2e6!important}.border-start-0{border-left:0!important}.border-primary{border-color:#0d6efd!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#198754!important}.border-info{border-color:#0dcaf0!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#212529!important}.border-white{border-color:#fff!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.ms-0,.sw-search{margin-left:0!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-light{font-weight:300!important}.fw-lighter{font-weight:lighter!important}.fw-normal{font-weight:400!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{color:#0d6efd!important}.text-secondary{color:#6c757d!important}.text-success{color:#198754!important}.text-info{color:#0dcaf0!important}.text-warning{color:#ffc107!important}.text-danger{color:#dc3545!important}.text-light{color:#f8f9fa!important}.text-dark{color:#212529!important}.text-white{color:#fff!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-reset{color:inherit!important}.bg-primary{background-color:#0d6efd!important}.bg-secondary{background-color:#6c757d!important}.bg-success{background-color:#198754!important}.bg-info{background-color:#0dcaf0!important}.bg-warning{background-color:#ffc107!important}.bg-danger{background-color:#dc3545!important}.bg-light{background-color:#f8f9fa!important}.bg-dark{background-color:#212529!important}.bg-body,.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:.25rem!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:.2rem!important}.rounded-2{border-radius:.25rem!important}.rounded-3{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-end,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-end{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-start{border-bottom-left-radius:.25rem!important}.rounded-start,.rounded-top{border-top-left-radius:.25rem!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}.alertify .ajs-dimmer{position:fixed;z-index:1981;top:0;right:0;bottom:0;left:0;padding:0;margin:0;background-color:#252525;opacity:.5}.alertify .ajs-modal{position:fixed;top:0;right:0;left:0;bottom:0;padding:0;overflow-y:auto;z-index:1981}.alertify .ajs-dialog{position:relative;margin:5% auto;min-height:110px;max-width:500px;padding:24px 24px 0;outline:0;background-color:#fff}.alertify .ajs-dialog.ajs-capture:before{position:absolute;top:0;right:0;bottom:0;left:0;display:block;z-index:1}.alertify .ajs-reset{position:absolute!important;display:inline!important;width:0!important;height:0!important;opacity:0!important}.alertify .ajs-commands{position:absolute;right:4px;margin:-14px 24px 0 0;z-index:2}.alertify .ajs-commands button{display:none;width:10px;height:10px;margin-left:10px;padding:10px;border:0;background-color:transparent;background-repeat:no-repeat;background-position:center}.alertify .ajs-commands button.ajs-close{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAh0lEQVQYlY2QsQ0EIQwEB9cBAR1CJUaI/gigDnwR6NBL/7/xWLNrZ2b8EwGotVpr7eOitWa1VjugiNB7R1UPrKrWe0dEAHBbXUqxMQbeewDmnHjvyTm7C3zDwAUd9c63YQdUVdu6EAJzzquz7HXvTiklt+H9DQFYaxFjvDqllFyMkbXWvfpXHjJrWFgdBq/hAAAAAElFTkSuQmCC)}.alertify .ajs-commands button.ajs-maximize{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAOUlEQVQYlWP8//8/AzGAhYGBgaG4uBiv6t7eXkYmooxjYGAgWiELsvHYFMCcRX2rSXcjoSBiJDbAAeD+EGu+8BZcAAAAAElFTkSuQmCC)}.alertify .ajs-header{margin:-24px -24px 0;padding:16px 24px;background-color:#fff}.alertify .ajs-body{min-height:56px}.alertify .ajs-body .ajs-content{padding:16px 24px 16px 16px}.alertify .ajs-footer{padding:4px;margin-left:-24px;margin-right:-24px;min-height:43px;background-color:#fff}.alertify .ajs-footer .ajs-buttons.ajs-auxiliary .ajs-button,.alertify .ajs-footer .ajs-buttons.ajs-primary .ajs-button{margin:4px}.alertify .ajs-footer .ajs-buttons.ajs-primary{text-align:right}.alertify .ajs-footer .ajs-buttons.ajs-auxiliary{float:left;clear:none;text-align:left}.alertify .ajs-footer .ajs-buttons .ajs-button{min-width:88px;min-height:35px}.alertify .ajs-handle{position:absolute;display:none;width:10px;height:10px;right:0;bottom:0;z-index:1;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMS8xNEDQYmMAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAQ0lEQVQYlaXNMQoAIAxD0dT7H657l0KX3iJuUlBUNOsPPCGJm7VDp6ryeMxMuDsAQH7owW3pyn3RS26iKxERMLN3ugOaAkaL3sWVigAAAABJRU5ErkJggg==);-webkit-transform:scaleX(1);transform:scaleX(1);cursor:se-resize}.alertify.ajs-no-overflow .ajs-body .ajs-content{overflow:hidden!important}.alertify.ajs-no-padding.ajs-maximized .ajs-body .ajs-content{left:0;right:0;padding:0}.alertify.ajs-no-padding:not(.ajs-maximized) .ajs-body{margin-left:-24px;margin-right:-24px}.alertify.ajs-no-padding:not(.ajs-maximized) .ajs-body .ajs-content{padding:0}.alertify.ajs-no-padding.ajs-resizable .ajs-body .ajs-content{left:0;right:0}.alertify.ajs-closable .ajs-commands button.ajs-close,.alertify.ajs-maximizable .ajs-commands button.ajs-maximize,.alertify.ajs-maximizable .ajs-commands button.ajs-restore{display:inline-block}.alertify.ajs-maximized .ajs-dialog{width:100%!important;height:100%!important;max-width:none!important;margin:0 auto!important;top:0!important;left:0!important}.alertify.ajs-maximized.ajs-modeless .ajs-modal{position:fixed!important;min-height:100%!important;max-height:none!important;margin:0!important}.alertify.ajs-maximized .ajs-commands button.ajs-maximize{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAASklEQVQYlZWQ0QkAMQhDtXRincOZX78KVtrDCwgqJNEoIB3MPLj7lRUROlpyVXGzby6zWuY+kz6tj5sBMTMAyVV3/595RbOh3cAXsww1raeiOcoAAAAASUVORK5CYII=)}.alertify.ajs-maximized .ajs-dialog,.alertify.ajs-resizable .ajs-dialog{padding:0}.alertify.ajs-maximized .ajs-commands,.alertify.ajs-resizable .ajs-commands{margin:14px 24px 0 0}.alertify.ajs-maximized .ajs-header,.alertify.ajs-resizable .ajs-header{position:absolute;top:0;left:0;right:0;margin:0;padding:16px 24px}.alertify.ajs-maximized .ajs-body,.alertify.ajs-resizable .ajs-body{min-height:224px;display:inline-block}.alertify.ajs-maximized .ajs-body .ajs-content,.alertify.ajs-resizable .ajs-body .ajs-content{position:absolute;top:50px;right:24px;bottom:50px;left:24px;overflow:auto}.alertify.ajs-maximized .ajs-footer,.alertify.ajs-resizable .ajs-footer{position:absolute;left:0;right:0;bottom:0;margin:0}.alertify.ajs-resizable:not(.ajs-maximized) .ajs-dialog{min-width:548px}.alertify.ajs-resizable:not(.ajs-maximized) .ajs-handle{display:block}.alertify.ajs-movable:not(.ajs-maximized) .ajs-header{cursor:move}.alertify.ajs-modeless .ajs-dimmer,.alertify.ajs-modeless .ajs-reset{display:none}.alertify.ajs-modeless .ajs-modal{overflow:visible;max-width:none;max-height:0}.alertify.ajs-modeless.ajs-pinnable .ajs-commands button.ajs-pin{display:inline-block;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAQklEQVQYlcWPMQ4AIAwCqU9u38GbcbHRWN1MvKQDhQFMEpKImGJA0gCgnYw0V0rwxseg5erT4oSkQVI5d9f+e9+xA0NbLpWfitPXAAAAAElFTkSuQmCC)}.alertify.ajs-modeless.ajs-unpinned .ajs-modal{position:absolute}.alertify.ajs-modeless.ajs-unpinned .ajs-commands button.ajs-pin{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAO0lEQVQYlWP8//8/AzGAiShV6AqLi4txGs+CLoBLMYbC3t5eRmyaWfBZhwwYkX2NTxPRvibKjRhW4wMAhxkYGbLu3pEAAAAASUVORK5CYII=)}.alertify.ajs-modeless:not(.ajs-unpinned) .ajs-body{max-height:500px;overflow:auto}.alertify.ajs-basic .ajs-header{opacity:0}.alertify.ajs-basic .ajs-footer{visibility:hidden}.alertify.ajs-frameless .ajs-header{position:absolute;top:0;left:0;right:0;min-height:60px;margin:0;padding:0;opacity:0;z-index:1}.alertify.ajs-frameless .ajs-footer{display:none}.alertify.ajs-frameless .ajs-body .ajs-content{position:absolute;top:0;right:0;bottom:0;left:0}.alertify.ajs-frameless:not(.ajs-resizable) .ajs-dialog{padding-top:0}.alertify.ajs-frameless:not(.ajs-resizable) .ajs-dialog .ajs-commands{margin-top:0}.ajs-no-overflow{overflow:hidden!important;outline:0}.ajs-no-overflow.ajs-fixed{position:fixed;top:0;right:0;bottom:0;left:0;overflow-y:scroll!important}.ajs-no-selection,.ajs-no-selection *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@media screen and (max-width:568px){.alertify .ajs-dialog{min-width:150px}.alertify:not(.ajs-maximized) .ajs-modal{padding:0 5%}.alertify:not(.ajs-maximized).ajs-resizable .ajs-dialog{min-width:initial;min-width:auto}}@-moz-document url-prefix(){.alertify button:focus{outline:#3593d2 dotted 1px}}.alertify .ajs-dimmer,.alertify .ajs-modal{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-transition-property:opacity,visibility;transition-property:opacity,visibility;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transition-duration:250ms;transition-duration:250ms}.alertify.ajs-hidden .ajs-dimmer,.alertify.ajs-hidden .ajs-modal{visibility:hidden;opacity:0}.alertify.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-duration:.5s;animation-duration:.5s}.alertify.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-duration:250ms;animation-duration:250ms}.alertify .ajs-dialog.ajs-shake{-webkit-animation-name:ajs-shake;animation-name:ajs-shake;-webkit-animation-duration:.1s;animation-duration:.1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes ajs-shake{0%,100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes ajs-shake{0%,100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.alertify.ajs-slide.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-name:ajs-slideIn;animation-name:ajs-slideIn;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1.275);animation-timing-function:cubic-bezier(.175,.885,.32,1.275)}.alertify.ajs-slide.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-name:ajs-slideOut;animation-name:ajs-slideOut;-webkit-animation-timing-function:cubic-bezier(.6,-.28,.735,.045);animation-timing-function:cubic-bezier(.6,-.28,.735,.045)}.alertify.ajs-zoom.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-name:ajs-zoomIn;animation-name:ajs-zoomIn}.alertify.ajs-zoom.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-name:ajs-zoomOut;animation-name:ajs-zoomOut}.alertify.ajs-fade.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-name:ajs-fadeIn;animation-name:ajs-fadeIn}.alertify.ajs-fade.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-name:ajs-fadeOut;animation-name:ajs-fadeOut}.alertify.ajs-pulse.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-name:ajs-pulseIn;animation-name:ajs-pulseIn}.alertify.ajs-pulse.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-name:ajs-pulseOut;animation-name:ajs-pulseOut}.alertify.ajs-flipx.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-name:ajs-flipInX;animation-name:ajs-flipInX}.alertify.ajs-flipx.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-name:ajs-flipOutX;animation-name:ajs-flipOutX}.alertify.ajs-flipy.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-name:ajs-flipInY;animation-name:ajs-flipInY}.alertify.ajs-flipy.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-name:ajs-flipOutY;animation-name:ajs-flipOutY}@-webkit-keyframes ajs-pulseIn{0%,100%,20%,40%,60%,80%{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes ajs-pulseIn{0%,100%,20%,40%,60%,80%{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@-webkit-keyframes ajs-pulseOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}100%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes ajs-pulseOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}100%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes ajs-zoomIn{0%{opacity:0;-webkit-transform:scale3d(.25,.25,.25);transform:scale3d(.25,.25,.25)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes ajs-zoomIn{0%{opacity:0;-webkit-transform:scale3d(.25,.25,.25);transform:scale3d(.25,.25,.25)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@-webkit-keyframes ajs-zoomOut{0%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}100%{opacity:0;-webkit-transform:scale3d(.25,.25,.25);transform:scale3d(.25,.25,.25)}}@keyframes ajs-zoomOut{0%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}100%{opacity:0;-webkit-transform:scale3d(.25,.25,.25);transform:scale3d(.25,.25,.25)}}@-webkit-keyframes ajs-fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes ajs-fadeIn{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes ajs-fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes ajs-fadeOut{0%{opacity:1}100%{opacity:0}}@-webkit-keyframes ajs-flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes ajs-flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@-webkit-keyframes ajs-flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}@keyframes ajs-flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}@-webkit-keyframes ajs-flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes ajs-flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@-webkit-keyframes ajs-flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}@keyframes ajs-flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}@-webkit-keyframes ajs-slideIn{0%{margin-top:-100%}100%{margin-top:5%}}@keyframes ajs-slideIn{0%{margin-top:-100%}100%{margin-top:5%}}@-webkit-keyframes ajs-slideOut{0%{margin-top:5%}100%{margin-top:-100%}}@keyframes ajs-slideOut{0%{margin-top:5%}100%{margin-top:-100%}}.alertify-notifier{position:fixed;width:0;overflow:visible;z-index:1982;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.alertify-notifier .ajs-message{position:relative;width:260px;max-height:0;padding:0;opacity:0;margin:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-transition-duration:250ms;transition-duration:250ms;-webkit-transition-timing-function:linear;transition-timing-function:linear}.alertify-notifier .ajs-message.ajs-visible{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.275);transition-timing-function:cubic-bezier(.175,.885,.32,1.275);opacity:1;max-height:100%;padding:15px;margin-top:10px}.alertify-notifier .ajs-message.ajs-success{background:rgba(91,189,114,.95)}.alertify-notifier .ajs-message.ajs-error{background:rgba(217,92,92,.95)}.alertify-notifier .ajs-message.ajs-warning{background:rgba(252,248,215,.95)}.alertify-notifier .ajs-message .ajs-close{position:absolute;top:0;right:0;width:16px;height:16px;cursor:pointer;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAABGdBTUEAALGPC/xhBQAAAFBJREFUGBl1j0EKADEIA+ve/P9f9bh1hEihNBfjVCO1v7RKVqJK4h8gM5cAPR42AkQEpSXPwMTyoi13n5N9YqJehm3Fnr7nL1D0ZEbD5OubGyC7a9gx+9eNAAAAAElFTkSuQmCC);background-repeat:no-repeat;background-position:center center;background-color:rgba(0,0,0,.5);border-top-right-radius:2px}.alertify-notifier.ajs-top{top:10px}.alertify-notifier.ajs-bottom{bottom:10px}.alertify-notifier.ajs-right{right:10px}.alertify-notifier.ajs-right .ajs-message{right:-320px}.alertify-notifier.ajs-right .ajs-message.ajs-visible{right:290px}.alertify-notifier.ajs-left{left:10px}.alertify-notifier.ajs-left .ajs-message{left:-300px}.alertify-notifier.ajs-left .ajs-message.ajs-visible{left:0}.alertify-notifier.ajs-center{left:50%}.alertify-notifier.ajs-center .ajs-message{-webkit-transform:translateX(-50%);transform:translateX(-50%)}.alertify-notifier.ajs-center .ajs-message.ajs-visible{left:50%;-webkit-transition-timing-function:cubic-bezier(.57,.43,.1,.65);transition-timing-function:cubic-bezier(.57,.43,.1,.65)}.alertify-notifier.ajs-center.ajs-top .ajs-message{top:-300px}.alertify-notifier.ajs-center.ajs-top .ajs-message.ajs-visible{top:0}.alertify-notifier.ajs-center.ajs-bottom .ajs-message{bottom:-300px}.alertify-notifier.ajs-center.ajs-bottom .ajs-message.ajs-visible{bottom:0}.ajs-no-transition.alertify .ajs-dialog,.ajs-no-transition.alertify .ajs-dimmer,.ajs-no-transition.alertify .ajs-modal,.ajs-no-transition.alertify-notifier .ajs-message{-webkit-transition:none!important;transition:none!important;-webkit-animation:none!important;animation:none!important}@media (prefers-reduced-motion:reduce){.alertify .ajs-dialog,.alertify .ajs-dimmer,.alertify .ajs-modal,.alertify-notifier .ajs-message{-webkit-transition:none!important;transition:none!important;-webkit-animation:none!important;animation:none!important}}#trumbowyg-icons,#trumbowyg-icons svg{height:0;width:0}#trumbowyg-icons{overflow:hidden;visibility:hidden}.trumbowyg-box *,.trumbowyg-box ::after,.trumbowyg-box ::before,.trumbowyg-modal *,.trumbowyg-modal ::after,.trumbowyg-modal ::before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*,.trumbowyg-editor,.trumbowyg-textarea{-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.trumbowyg-box svg,.trumbowyg-modal svg{width:17px;height:100%;fill:#222}.trumbowyg-box,.trumbowyg-editor{display:block;position:relative;border:1px solid #DDD;width:100%;min-height:300px}.trumbowyg-box .trumbowyg-editor{margin:0 auto}.trumbowyg-box.trumbowyg-fullscreen{background:#FEFEFE;border:none!important}.trumbowyg-editor,.trumbowyg-textarea{position:relative;box-sizing:border-box;padding:20px;min-height:300px;width:100%;border-style:none;resize:none;outline:0;overflow:auto;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.trumbowyg-editor.trumbowyg-autogrow-on-enter,.trumbowyg-textarea.trumbowyg-autogrow-on-enter{-webkit-transition:height .3s ease-out;-o-transition:height .3s ease-out;transition:height .3s ease-out}.trumbowyg-box-blur .trumbowyg-editor *,.trumbowyg-box-blur .trumbowyg-editor::before{color:transparent!important;text-shadow:0 0 7px #333}@media screen and (min-width:0 \0){.trumbowyg-box-blur .trumbowyg-editor *,.trumbowyg-box-blur .trumbowyg-editor::before{color:rgba(200,200,200,.6)!important}}@supports (-ms-accelerator:true){.trumbowyg-box-blur .trumbowyg-editor *,.trumbowyg-box-blur .trumbowyg-editor::before{color:rgba(200,200,200,.6)!important}}.trumbowyg-box-blur .trumbowyg-editor hr,.trumbowyg-box-blur .trumbowyg-editor img{opacity:.2}.trumbowyg-textarea{position:relative;display:block;overflow:auto;border:none;font-size:14px;font-family:Inconsolata,Consolas,Courier,"Courier New",sans-serif;line-height:18px}.trumbowyg-box.trumbowyg-editor-visible .trumbowyg-textarea{height:1px!important;width:25%;min-height:0!important;padding:0!important;background:0 0;opacity:0!important}.trumbowyg-box.trumbowyg-editor-hidden .trumbowyg-textarea{display:block;margin-bottom:1px}.trumbowyg-box.trumbowyg-editor-hidden .trumbowyg-editor{display:none}.trumbowyg-box.trumbowyg-disabled .trumbowyg-textarea{opacity:.8;background:0 0}.trumbowyg-editor[contenteditable=true]:empty:not(:focus)::before{content:attr(placeholder);color:#999;pointer-events:none;white-space:break-spaces}.trumbowyg-button-pane{width:100%;min-height:36px;background:#ecf0f1;border-bottom:1px solid #d7e0e2;margin:0;padding:0 5px;position:relative;list-style-type:none;line-height:10px;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:11}.trumbowyg-button-pane::after{content:" ";display:block;position:absolute;top:36px;left:0;right:0;width:100%;height:1px;background:#d7e0e2}.trumbowyg-button-pane .trumbowyg-button-group{display:inline-block}.trumbowyg-button-pane .trumbowyg-button-group .trumbowyg-fullscreen-button svg{color:transparent}.trumbowyg-button-pane .trumbowyg-button-group::after{content:" ";display:inline-block;width:1px;background:#d7e0e2;margin:0 5px;height:35px;vertical-align:top}.trumbowyg-button-pane .trumbowyg-button-group:last-child::after{content:none}.trumbowyg-button-pane button{display:inline-block;position:relative;width:35px;height:35px;padding:1px 6px!important;margin-bottom:1px;overflow:hidden;border:none;cursor:pointer;background:0 0;vertical-align:middle;-webkit-transition:background-color 150ms,opacity 150ms;-o-transition:background-color 150ms,opacity 150ms;transition:background-color 150ms,opacity 150ms}.trumbowyg-button-pane button.trumbowyg-textual-button{width:auto;line-height:35px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.trumbowyg-button-pane button.trumbowyg-disable,.trumbowyg-button-pane.trumbowyg-disable button:not(.trumbowyg-not-disable):not(.trumbowyg-active),.trumbowyg-disabled .trumbowyg-button-pane button:not(.trumbowyg-not-disable):not(.trumbowyg-viewHTML-button){opacity:.2;cursor:default;pointer-events:none}.trumbowyg-button-pane.trumbowyg-disable .trumbowyg-button-group::before,.trumbowyg-disabled .trumbowyg-button-pane .trumbowyg-button-group::before{background:#e3e9eb}.trumbowyg-button-pane button.trumbowyg-active,.trumbowyg-button-pane button:not(.trumbowyg-disable):focus,.trumbowyg-button-pane button:not(.trumbowyg-disable):hover{background-color:#FFF;outline:0}.trumbowyg-button-pane .trumbowyg-open-dropdown::after{display:block;content:" ";position:absolute;top:25px;right:3px;height:0;width:0;border:3px solid transparent;border-top-color:#555}.trumbowyg-button-pane .trumbowyg-open-dropdown.trumbowyg-textual-button{padding-left:10px!important;padding-right:18px!important}.trumbowyg-button-pane .trumbowyg-open-dropdown.trumbowyg-textual-button::after{top:17px;right:7px}.trumbowyg-button-pane .trumbowyg-right{float:right}.trumbowyg-dropdown{max-width:300px;max-height:250px;overflow-y:auto;overflow-x:hidden;white-space:nowrap;border:1px solid #ecf0f1;padding:5px 0;border-top:none;background:#FFF;margin-left:-1px;-webkit-box-shadow:rgba(0,0,0,.1) 0 2px 3px;box-shadow:rgba(0,0,0,.1) 0 2px 3px;z-index:12}.trumbowyg-dropdown button{display:block;width:100%;height:35px;line-height:35px;text-decoration:none;background:#FFF;padding:0 20px 0 10px;color:#333!important;border:none;cursor:pointer;text-align:left;font-size:15px;-webkit-transition:all 150ms;-o-transition:all 150ms;transition:all 150ms}.trumbowyg-dropdown button:focus,.trumbowyg-dropdown button:hover{background:#ecf0f1}.trumbowyg-dropdown button svg{float:left;margin-right:14px}.trumbowyg-modal{position:absolute;top:0;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);-o-transform:translateX(-50%);transform:translateX(-50%);max-width:520px;width:100%;height:350px;z-index:12;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}.trumbowyg-modal-box{position:absolute;top:0;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);-o-transform:translateX(-50%);transform:translateX(-50%);max-width:500px;width:calc(100% - 20px);padding-bottom:45px;z-index:1;background-color:#FFF;text-align:center;font-size:14px;-webkit-box-shadow:rgba(0,0,0,.2) 0 2px 3px;box-shadow:rgba(0,0,0,.2) 0 2px 3px;-webkit-backface-visibility:hidden;backface-visibility:hidden}.trumbowyg-modal-box .trumbowyg-modal-title{font-size:24px;font-weight:700;margin:0 0 20px;padding:15px 0 13px;display:block;border-bottom:1px solid #EEE;color:#333;background:#fbfcfc}.trumbowyg-modal-box .trumbowyg-progress{width:100%;height:3px;position:absolute;top:58px}.trumbowyg-modal-box .trumbowyg-progress .trumbowyg-progress-bar{background:#2BC06A;width:0;height:100%;-webkit-transition:width 150ms linear;-o-transition:width 150ms linear;transition:width 150ms linear}.trumbowyg-modal-box .trumbowyg-input-row{position:relative;margin:15px 12px;border:1px solid #DEDEDE;overflow:hidden}.trumbowyg-modal-box .trumbowyg-input-infos{text-align:left;-webkit-transition:all 150ms;-o-transition:all 150ms;transition:all 150ms;width:150px;border-right:1px solid #DEDEDE;padding:0 7px;background-color:#fbfcfc;position:absolute;left:0;top:0;bottom:0}.trumbowyg-modal-box .trumbowyg-input-infos label{color:#69878f;overflow:hidden}.trumbowyg-modal-box .trumbowyg-input-infos label,.trumbowyg-modal-box .trumbowyg-input-infos label span{display:block;height:27px;line-height:27px;-webkit-transition:all 150ms;-o-transition:all 150ms;transition:all 150ms}.trumbowyg-modal-box .trumbowyg-input-infos .trumbowyg-msg-error{color:#e74c3c}.trumbowyg-modal-box .trumbowyg-input-html{padding:1px 1px 1px 152px}.trumbowyg-modal-box .trumbowyg-input-html,.trumbowyg-modal-box .trumbowyg-input-html input,.trumbowyg-modal-box .trumbowyg-input-html select,.trumbowyg-modal-box .trumbowyg-input-html textarea{font-size:14px}.trumbowyg-modal-box .trumbowyg-input-html input,.trumbowyg-modal-box .trumbowyg-input-html select,.trumbowyg-modal-box .trumbowyg-input-html textarea{-webkit-transition:all 150ms;-o-transition:all 150ms;transition:all 150ms;height:27px;line-height:27px;border:0;width:100%;padding:0 7px}.trumbowyg-modal-box .trumbowyg-input-html input:focus,.trumbowyg-modal-box .trumbowyg-input-html input:hover,.trumbowyg-modal-box .trumbowyg-input-html select:focus,.trumbowyg-modal-box .trumbowyg-input-html select:hover,.trumbowyg-modal-box .trumbowyg-input-html textarea:focus,.trumbowyg-modal-box .trumbowyg-input-html textarea:hover{outline:#95a5a6 solid 1px}.trumbowyg-modal-box .trumbowyg-input-html input:focus,.trumbowyg-modal-box .trumbowyg-input-html select:focus,.trumbowyg-modal-box .trumbowyg-input-html textarea:focus{background:#fbfcfc}.trumbowyg-modal-box .trumbowyg-input-html input[type=checkbox]{width:16px;height:16px;padding:0}.trumbowyg-modal-box .trumbowyg-input-html-with-checkbox{text-align:left;padding:3px 1px 1px 3px}.trumbowyg-modal-box .trumbowyg-input-error input,.trumbowyg-modal-box .trumbowyg-input-error select,.trumbowyg-modal-box .trumbowyg-input-error textarea{outline:#e74c3c solid 1px}.trumbowyg-modal-box .trumbowyg-input-error .trumbowyg-input-infos label span:first-child{margin-top:-27px}.trumbowyg-modal-box .error{margin-top:25px;display:block;color:red}.trumbowyg-modal-box .trumbowyg-modal-button{position:absolute;bottom:10px;right:0;text-decoration:none;color:#FFF;display:block;width:100px;height:35px;line-height:33px;margin:0 10px;background-color:#333;border:none;cursor:pointer;font-family:"Trebuchet MS",Helvetica,Verdana,sans-serif;font-size:16px;-webkit-transition:all 150ms;-o-transition:all 150ms;transition:all 150ms}.portal-menus .handle,.trumbowyg-editor img{cursor:move}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit{right:110px;background:#2bc06a}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:focus,.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:hover{background:#40d47e;outline:0}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:active{background:#25a25a}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset{color:#555;background:#e6e6e6}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:focus,.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:hover{background:#fbfbfb;outline:0}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:active{background:#d5d5d5}.trumbowyg-overlay{position:absolute;background-color:rgba(255,255,255,.5);height:100%;width:100%;left:0;display:none;top:0;z-index:10}body.trumbowyg-body-fullscreen{overflow:hidden}.trumbowyg-fullscreen{position:fixed;top:0;left:0;width:100%;height:100%;margin:0;padding:0;z-index:99999}.trumbowyg-fullscreen .trumbowyg-editor,.trumbowyg-fullscreen.trumbowyg-box{border:none}.trumbowyg-fullscreen .trumbowyg-editor,.trumbowyg-fullscreen .trumbowyg-textarea{height:calc(100% - 37px)!important;overflow:auto}.trumbowyg-fullscreen .trumbowyg-overlay{height:100%!important}.trumbowyg-fullscreen .trumbowyg-button-group .trumbowyg-fullscreen-button svg{color:#222;fill:transparent}.trumbowyg-editor img,.trumbowyg-editor video{height:auto}.trumbowyg-editor canvas:focus{outline:0}.trumbowyg-editor.trumbowyg-reset-css{background:#FEFEFE!important;font-family:"Trebuchet MS",Helvetica,Verdana,sans-serif!important;font-size:14px!important;line-height:1.45em!important;color:#333}.trumbowyg-editor.trumbowyg-reset-css a{color:#15c!important;text-decoration:underline!important}.trumbowyg-editor.trumbowyg-reset-css blockquote,.trumbowyg-editor.trumbowyg-reset-css div,.trumbowyg-editor.trumbowyg-reset-css ol,.trumbowyg-editor.trumbowyg-reset-css p,.trumbowyg-editor.trumbowyg-reset-css ul{-webkit-box-shadow:none!important;box-shadow:none!important;background:0 0!important;margin:0 0 15px!important;line-height:1.4em!important;font-family:"Trebuchet MS",Helvetica,Verdana,sans-serif!important;font-size:14px!important;border:none}.trumbowyg-editor.trumbowyg-reset-css hr,.trumbowyg-editor.trumbowyg-reset-css iframe,.trumbowyg-editor.trumbowyg-reset-css object{margin-bottom:15px!important}.trumbowyg-editor.trumbowyg-reset-css blockquote{margin-left:32px!important;font-style:italic!important;color:#555}.trumbowyg-editor.trumbowyg-reset-css ul{list-style:disc}.trumbowyg-editor.trumbowyg-reset-css ol{list-style:decimal}.trumbowyg-editor.trumbowyg-reset-css ol,.trumbowyg-editor.trumbowyg-reset-css ul{padding-left:20px!important}.trumbowyg-editor.trumbowyg-reset-css ol ol,.trumbowyg-editor.trumbowyg-reset-css ol ul,.trumbowyg-editor.trumbowyg-reset-css ul ol,.trumbowyg-editor.trumbowyg-reset-css ul ul{border:none;margin:2px!important;padding:0 0 0 24px!important}.trumbowyg-editor.trumbowyg-reset-css hr{display:block;height:1px;border:none;border-top:1px solid #CCC}.trumbowyg-editor.trumbowyg-reset-css h1,.trumbowyg-editor.trumbowyg-reset-css h2,.trumbowyg-editor.trumbowyg-reset-css h3,.trumbowyg-editor.trumbowyg-reset-css h4{color:#111;background:0 0;margin:0!important;padding:0!important;font-weight:700}.trumbowyg-editor.trumbowyg-reset-css h1{font-size:32px!important;line-height:38px!important;margin-bottom:20px!important}.trumbowyg-editor.trumbowyg-reset-css h2{font-size:26px!important;line-height:34px!important;margin-bottom:15px!important}.trumbowyg-editor.trumbowyg-reset-css h3{font-size:22px!important;line-height:28px!important;margin-bottom:7px!important}.trumbowyg-editor.trumbowyg-reset-css h4{font-size:16px!important;line-height:22px!important;margin-bottom:7px!important}.trumbowyg-dark .trumbowyg-textarea{background:#111;color:#ddd}.trumbowyg-dark .trumbowyg-box{border:1px solid #343434}.trumbowyg-dark .trumbowyg-box.trumbowyg-fullscreen{background:#111}.trumbowyg-dark .trumbowyg-box.trumbowyg-box-blur .trumbowyg-editor *,.trumbowyg-dark .trumbowyg-box.trumbowyg-box-blur .trumbowyg-editor::before{text-shadow:0 0 7px #ccc}@media screen and (min-width:0 \0){.trumbowyg-dark .trumbowyg-box.trumbowyg-box-blur .trumbowyg-editor *,.trumbowyg-dark .trumbowyg-box.trumbowyg-box-blur .trumbowyg-editor::before{color:rgba(20,20,20,.6)!important}}@supports (-ms-accelerator:true){.trumbowyg-dark .trumbowyg-box.trumbowyg-box-blur .trumbowyg-editor *,.trumbowyg-dark .trumbowyg-box.trumbowyg-box-blur .trumbowyg-editor::before{color:rgba(20,20,20,.6)!important}}.trumbowyg-dark .trumbowyg-box svg{fill:#ecf0f1;color:#ecf0f1}.trumbowyg-dark .trumbowyg-button-pane{background-color:#222;border-bottom-color:#343434}.trumbowyg-dark .trumbowyg-button-pane::after{background:#343434}.trumbowyg-dark .trumbowyg-button-pane .trumbowyg-button-group:not(:empty)::after{background-color:#343434}.trumbowyg-dark .trumbowyg-button-pane .trumbowyg-button-group:not(:empty) .trumbowyg-fullscreen-button svg{color:transparent}.trumbowyg-dark .trumbowyg-button-pane.trumbowyg-disable .trumbowyg-button-group::after{background-color:#2a2a2a}.trumbowyg-dark .trumbowyg-button-pane button.trumbowyg-active,.trumbowyg-dark .trumbowyg-button-pane button:not(.trumbowyg-disable):focus,.trumbowyg-dark .trumbowyg-button-pane button:not(.trumbowyg-disable):hover{background-color:#333}.trumbowyg-dark .trumbowyg-button-pane .trumbowyg-open-dropdown::after{border-top-color:#fff}.trumbowyg-dark .trumbowyg-fullscreen .trumbowyg-button-pane .trumbowyg-button-group:not(:empty) .trumbowyg-fullscreen-button svg{color:#ecf0f1;fill:transparent}.trumbowyg-dark .trumbowyg-dropdown{border-color:#222;background:#333;-webkit-box-shadow:rgba(0,0,0,.3) 0 2px 3px;box-shadow:rgba(0,0,0,.3) 0 2px 3px}.trumbowyg-dark .trumbowyg-dropdown button{background:#333;color:#fff!important}.trumbowyg-dark .trumbowyg-dropdown button:focus,.trumbowyg-dark .trumbowyg-dropdown button:hover{background:#222}.trumbowyg-dark .trumbowyg-modal-box{background-color:#222}.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-title{border-bottom:1px solid #555;color:#fff;background:#3c3c3c}.trumbowyg-dark .trumbowyg-modal-box label{display:block;position:relative;margin:15px 12px;height:27px;line-height:27px;overflow:hidden}.trumbowyg-dark .trumbowyg-modal-box label .trumbowyg-input-infos span{color:#eee;background-color:#2f2f2f;border-color:#222}.trumbowyg-dark .trumbowyg-modal-box label .trumbowyg-input-infos span.trumbowyg-msg-error{color:#e74c3c}.trumbowyg-dark .trumbowyg-modal-box label.trumbowyg-input-error input,.trumbowyg-dark .trumbowyg-modal-box label.trumbowyg-input-error textarea{border-color:#e74c3c}.trumbowyg-dark .trumbowyg-modal-box label input{border-color:#222;color:#eee;background:#333}.trumbowyg-dark .trumbowyg-modal-box label input:focus,.trumbowyg-dark .trumbowyg-modal-box label input:hover{border-color:#626262}.trumbowyg-dark .trumbowyg-modal-box label input:focus{background-color:#2f2f2f}.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit{background:#1b7943}.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:focus,.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:hover{background:#25a25a}.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:active{background:#176437}.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset{background:#333;color:#ccc}.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:focus,.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:hover{background:#444}.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:active{background:#111}.trumbowyg-dark .trumbowyg-overlay{background-color:rgba(15,15,15,.6)}.trumbowyg-editor table{width:100%}.trumbowyg-editor table td{border:1px dotted #e7eaec;padding:8px}.trumbowyg-dropdown-table table{margin:10px;display:inline-block}.trumbowyg-dropdown-table table td{display:inline-block;height:20px;width:20px;margin:1px;padding:0;background-color:#fff;-webkit-box-shadow:0 0 0 1px #cecece inset;box-shadow:0 0 0 1px #cecece inset}.trumbowyg-dropdown-table table td.active{background-color:#00b393;-webkit-box-shadow:none;box-shadow:none;cursor:pointer}.trumbowyg-dropdown-table .trumbowyg-table-size{text-align:center}.trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list),.trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list){max-width:276px;padding:7px 5px;overflow:initial}.trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button,.trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button{display:block;position:relative;float:left;text-indent:-9999px;height:20px;width:20px;border:1px solid #333;padding:0;margin:2px}.trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button:focus::after,.trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button:hover::after,.trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button:focus::after,.trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button:hover::after{content:" ";display:block;position:absolute;top:-5px;left:-5px;width:27px;height:27px;background:inherit;border:1px solid #fff;-webkit-box-shadow:#000 0 0 2px;box-shadow:#000 0 0 2px;z-index:10}.trumbowyg-dropdown-backColor.trumbowyg-dropdown--color-list button:not(.trumbowyg-backColorRemove-dropdown-button){position:relative;color:#fff!important}.trumbowyg-dropdown-backColor.trumbowyg-dropdown--color-list button:not(.trumbowyg-backColorRemove-dropdown-button):focus::after,.trumbowyg-dropdown-backColor.trumbowyg-dropdown--color-list button:not(.trumbowyg-backColorRemove-dropdown-button):hover::after{content:" ";display:block;position:absolute;top:13px;left:0;width:0;height:0;border:5px solid transparent;border-left-color:#fff}.trumbowyg-dropdown-emoji{width:265px;padding:7px 0 7px 5px}.trumbowyg-dropdown-emoji svg{display:none!important}.trumbowyg-dropdown-emoji button{display:block;position:relative;float:left;height:26px;width:26px;padding:0;margin:2px;line-height:24px;text-align:center}.trumbowyg-dropdown-emoji button:focus::after,.trumbowyg-dropdown-emoji button:hover::after{display:block;position:absolute;top:-5px;left:-5px;height:27px;width:27px;background:inherit;-webkit-box-shadow:#000 0 0 2px;box-shadow:#000 0 0 2px;z-index:10;background-color:transparent}.trumbowyg .emoji{width:22px;height:22px;display:inline-block}.simpleDemo ul[dnd-list]{min-height:42px;padding-left:0}.simpleDemo ul[dnd-list] .dndDraggingSource{display:none}.simpleDemo ul[dnd-list] .dndPlaceholder{background-color:#ddd;display:block;min-height:42px}.simpleDemo ul[dnd-list] li{background-color:#fff;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;display:block;padding:10px 15px;margin-bottom:-1px}.simpleDemo ul[dnd-list] li.selected{background-color:#dff0d8;color:#3c763d}@media (min-width:576px){.jumbotron{padding:2rem 1rem!important}}.alert.position-sticky{bottom:10px}.md-avatar{vertical-align:middle;width:50px;height:50px}.mix-tree-view .container{padding-right:0;padding-left:25px}.mix-tree-view .dropdown-menu{z-index:99999}.mix-tree-view .item{padding-bottom:2px;border-left:1px #eee solid}.mix-tree-view .item-fields{padding:12px 8px 0 26px}.sw-search{margin-right:0!important}.sw-sidebar a{color:var(--text-color,#212529)}.ActiveUsers.is-increasing{-webkit-animation:a 3s;animation:a 3s}.ActiveUsers.is-decreasing{-webkit-animation:b 3s;animation:b 3s}@-webkit-keyframes a{10%{background-color:#ebffeb;border-color:rgba(0,128,0,.5);color:green}}@keyframes a{10%{background-color:#ebffeb;border-color:rgba(0,128,0,.5);color:green}}@-webkit-keyframes b{10%{background-color:#ffebeb;border-color:rgba(255,0,0,.5);color:red}}@keyframes b{10%{background-color:#ffebeb;border-color:rgba(255,0,0,.5);color:red}}.Chartjs{font-size:.85em}.Chartjs-figure{height:250px}.Chartjs-legend{list-style:none;margin:0;padding:1em 0 0;text-align:center}.Chartjs-legend>li{display:inline-block;padding:.25em .5em}.Chartjs-legend>li>i{display:inline-block;height:1em;margin-right:.5em;vertical-align:-.1em;width:1em}@media (min-width:570px){.Chartjs-figure{margin-right:1.5em}}.attr-set-value-item:last-child{border-bottom:0!important}.custom-image{max-width:30vw}.mix-sel-icons .dropdown-menu{left:-90px!important}.mix-sel-icons .dropdown-menu.show{max-height:250px;overflow:scroll}.mix-sel-icons .list-icon{max-height:150px;overflow-y:scroll;overflow-x:hidden}.img-preview,.sr-only,.user .username,.user a{overflow:hidden}#modal-posts img{height:30px}.monaco-editor-full{position:fixed!important;left:0;top:0;width:100%;z-index:2222}.monaco-editor-full .monaco-editor-btn-group-full{z-index:2223;position:fixed;top:15px;right:25px}*{box-sizing:border-box}@-moz-keyframes rotation{from{-moz-transform:rotate(0);-moz-transform-origin:85% 90%}to{-moz-transform:rotate(359deg);-moz-transform-origin:85% 90%}}@-webkit-keyframes rotation{from{-webkit-transform:rotate(0);-webkit-transform-origin:85% 90%}to{-webkit-transform:rotate(359deg);-webkit-transform-origin:85% 90%}}[class*=" icon-"].loading-indicator{float:left;display:none;font-size:24px;margin:7px;color:#ec173a}[class*=" icon-"].loading-indicator.on{display:block;-webkit-animation:rotation 1.5s infinite linear;-moz-animation:rotation 1.5s infinite linear}.browser-warning,.user .icon-phone-4{display:none}.user-list{padding:9px 0}.user:hover .icon-phone-4{display:inline-block}.user a{position:relative}.user .username{white-space:nowrap;text-overflow:ellipsis;padding-right:16px}.user .helper{position:absolute;right:10px;top:5px}.actions{display:none}[data-mode=incall] .actions,[data-mode=calling] .actions{display:block}.actions .hangup{width:100%}.actions .status{text-align:center;margin-bottom:20px}.video{height:100%;width:100%;border:2px solid #000}.cool-background{background:linear-gradient(135deg,#eceddc 25%,transparent 25%) -50px 0,linear-gradient(225deg,#eceddc 25%,transparent 25%) -50px 0,linear-gradient(315deg,#eceddc 25%,transparent 25%),linear-gradient(45deg,#eceddc 25%,transparent 25%);background-size:100px 100px;background-color:#ec173a}.alertify-cover{background:rgba(0,0,0,.8)}.portal-menus ul[dnd-list],.portal-menus ul[dnd-list]>li{position:relative}.portal-menus ul[dnd-list]{min-height:42px;padding-left:0}.portal-menus ul[dnd-list] .dndDraggingSource{display:none}.portal-menus ul[dnd-list] .dndPlaceholder{display:block;background-color:#ddd;padding:10px 15px;min-height:42px}.portal-menus ul[dnd-list] li{background-color:#fff;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;display:block;margin-bottom:-1px;position:relative;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.portal-menus ul[dnd-list] li dnd-nodrag{display:block;padding:10px 15px}.img-container,.img-preview{background-color:#f7f7f7;text-align:center;width:100%}.img-container{margin-bottom:1rem;max-height:497px;min-height:200px}@media (min-width:768px){.img-container{min-height:497px}}.img-container>img{max-width:100%}.docs-preview{margin-right:-1rem}.img-preview{float:left;margin-bottom:.5rem;margin-right:.5rem}.img-preview>img{max-width:100%}.preview-lg{height:9rem;width:16rem}.preview-md{height:4.5rem;width:8rem}.preview-sm{height:2.25rem;width:4rem}.preview-xs{height:1.125rem;margin-right:0;width:2rem}.docs-data>.input-group{margin-bottom:.5rem}.docs-data>.input-group>label{justify-content:center;min-width:5rem}.docs-data>.input-group>span{justify-content:center;min-width:3rem}.docs-buttons>.btn,.docs-buttons>.btn-group,.docs-buttons>.form-control{margin-bottom:.5rem;margin-right:.25rem}.docs-toggles>.btn,.docs-toggles>.btn-group,.docs-toggles>.dropdown{margin-bottom:.5rem}.custom-file-val{position:absolute;bottom:0}.sw-content{width:100%!important}input[type=date]::-webkit-inner-spin-button{display:none}.ace_razor{background-color:#ff0}.loader-container{top:0;left:0;width:100%;height:100%;position:fixed;background-color:#041323;opacity:.2;z-index:9999}#loader,.cm-fat-cursor div.CodeMirror-cursors{z-index:1}#loader{position:absolute;left:50%;top:50%;margin:-75px 0 0 -75px;border:16px solid #f3f3f3;border-radius:50%;border-top:16px solid #3498db;width:120px;height:120px;-webkit-animation:spin 2s linear infinite;animation:spin 2s linear infinite}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@media screen and (max-width:580px){.hide-on-mb{display:none}}#modal-files img.preview{width:100%;height:auto}@media screen and (min-width:580px){.hide-on-desktop{display:none}}@media screen and (max-width:991px){.navbar .navbar-nav{min-height:unset}}@font-face{font-family:'Nucleo Outline';src:url(../fonts/nucleo-outline.eot);src:url(../fonts/nucleo-outline.eot) format("embedded-opentype"),url(../fonts/nucleo-outline.woff2) format("woff2"),url(../fonts/nucleo-outline.woff) format("woff"),url(../fonts/nucleo-outline.ttf) format("truetype"),url(../fonts/nucleo-outline.svg) format("svg");font-weight:400;font-style:normal}.now-ui-icons{display:inline-block;font:normal normal normal 14px/1 'Nucleo Outline';font-size:inherit;speak:none;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.now-ui-icons.circle{padding:.33333333em;vertical-align:-16%;background-color:#eee;border-radius:50%}.bootstrap-tagsinput,.fa-stack{vertical-align:middle;display:inline-block}.nc-icon-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.nc-icon-ul>li{position:relative}.nc-icon-ul>li>.now-ui-icons{position:absolute;left:-1.57142857em;top:.14285714em;text-align:center}.fa-stack,.fa-ul>li{position:relative}.nc-icon-ul>li>.now-ui-icons.circle{top:-.19047619em;left:-1.9047619em}.now-ui-icons.spin{-webkit-animation:nc-icon-spin 2s infinite linear;-moz-animation:nc-icon-spin 2s infinite linear;animation:nc-icon-spin 2s infinite linear}@-webkit-keyframes nc-icon-spin{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(360deg)}}@-moz-keyframes nc-icon-spin{0%{-moz-transform:rotate(0)}100%{-moz-transform:rotate(360deg)}}@keyframes nc-icon-spin{0%{-webkit-transform:rotate(0);-moz-transform:rotate(0);-ms-transform:rotate(0);-o-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}.now-ui-icons.ui-1_check:before{content:"\ea22"}.now-ui-icons.ui-1_email-85:before{content:"\ea2a"}.now-ui-icons.arrows-1_cloud-download-93:before{content:"\ea21"}.now-ui-icons.arrows-1_cloud-upload-94:before{content:"\ea24"}.now-ui-icons.arrows-1_minimal-down:before{content:"\ea39"}.now-ui-icons.arrows-1_minimal-left:before{content:"\ea3a"}.now-ui-icons.arrows-1_minimal-right:before{content:"\ea3b"}.now-ui-icons.arrows-1_minimal-up:before{content:"\ea3c"}.now-ui-icons.arrows-1_refresh-69:before{content:"\ea44"}.now-ui-icons.arrows-1_share-66:before{content:"\ea4c"}.now-ui-icons.business_badge:before{content:"\ea09"}.now-ui-icons.business_bank:before{content:"\ea0a"}.now-ui-icons.business_briefcase-24:before{content:"\ea13"}.now-ui-icons.business_bulb-63:before{content:"\ea15"}.now-ui-icons.business_chart-bar-32:before{content:"\ea1e"}.now-ui-icons.business_chart-pie-36:before{content:"\ea1f"}.now-ui-icons.business_globe:before{content:"\ea2f"}.now-ui-icons.business_money-coins:before{content:"\ea40"}.now-ui-icons.clothes_tie-bow:before{content:"\ea5b"}.now-ui-icons.design_vector:before{content:"\ea61"}.now-ui-icons.design_app:before{content:"\ea08"}.now-ui-icons.design_bullet-list-67:before{content:"\ea14"}.now-ui-icons.design_image:before{content:"\ea33"}.now-ui-icons.design_palette:before{content:"\ea41"}.now-ui-icons.design_scissors:before{content:"\ea4a"}.now-ui-icons.design-2_html5:before{content:"\ea32"}.now-ui-icons.design-2_ruler-pencil:before{content:"\ea48"}.now-ui-icons.emoticons_satisfied:before{content:"\ea49"}.now-ui-icons.files_box:before{content:"\ea12"}.now-ui-icons.files_paper:before{content:"\ea43"}.now-ui-icons.files_single-copy-04:before{content:"\ea52"}.now-ui-icons.health_ambulance:before{content:"\ea07"}.now-ui-icons.loader_gear:before{content:"\ea4e"}.now-ui-icons.loader_refresh:before{content:"\ea44"}.now-ui-icons.location_bookmark:before{content:"\ea10"}.now-ui-icons.location_compass-05:before{content:"\ea25"}.now-ui-icons.location_map-big:before{content:"\ea3d"}.now-ui-icons.location_pin:before{content:"\ea47"}.now-ui-icons.location_world:before{content:"\ea63"}.now-ui-icons.media-1_album:before{content:"\ea02"}.now-ui-icons.media-1_button-pause:before{content:"\ea16"}.now-ui-icons.media-1_button-play:before{content:"\ea18"}.now-ui-icons.media-1_button-power:before{content:"\ea19"}.now-ui-icons.media-1_camera-compact:before{content:"\ea1c"}.now-ui-icons.media-2_note-03:before{content:"\ea3f"}.now-ui-icons.media-2_sound-wave:before{content:"\ea57"}.now-ui-icons.objects_diamond:before{content:"\ea29"}.now-ui-icons.objects_globe:before{content:"\ea2f"}.now-ui-icons.objects_key-25:before{content:"\ea38"}.now-ui-icons.objects_planet:before{content:"\ea46"}.now-ui-icons.objects_spaceship:before{content:"\ea55"}.now-ui-icons.objects_support-17:before{content:"\ea56"}.now-ui-icons.objects_umbrella-13:before{content:"\ea5f"}.now-ui-icons.education_agenda-bookmark:before{content:"\ea01"}.now-ui-icons.education_atom:before{content:"\ea0c"}.now-ui-icons.education_glasses:before{content:"\ea2d"}.now-ui-icons.education_hat:before{content:"\ea30"}.now-ui-icons.education_paper:before{content:"\ea42"}.now-ui-icons.shopping_bag-16:before{content:"\ea0d"}.now-ui-icons.shopping_basket:before{content:"\ea0b"}.now-ui-icons.shopping_box:before{content:"\ea11"}.now-ui-icons.shopping_cart-simple:before{content:"\ea1d"}.now-ui-icons.shopping_credit-card:before{content:"\ea28"}.now-ui-icons.shopping_delivery-fast:before{content:"\ea27"}.now-ui-icons.shopping_shop:before{content:"\ea50"}.now-ui-icons.shopping_tag-content:before{content:"\ea59"}.now-ui-icons.sport_trophy:before{content:"\ea5d"}.now-ui-icons.sport_user-run:before{content:"\ea60"}.now-ui-icons.tech_controller-modern:before{content:"\ea26"}.now-ui-icons.tech_headphones:before{content:"\ea31"}.now-ui-icons.tech_laptop:before{content:"\ea36"}.now-ui-icons.tech_mobile:before{content:"\ea3e"}.now-ui-icons.tech_tablet:before{content:"\ea58"}.now-ui-icons.tech_tv:before{content:"\ea5e"}.now-ui-icons.tech_watch-time:before{content:"\ea62"}.now-ui-icons.text_align-center:before{content:"\ea05"}.now-ui-icons.text_align-left:before{content:"\ea06"}.now-ui-icons.text_bold:before{content:"\ea0e"}.now-ui-icons.text_caps-small:before{content:"\ea1b"}.now-ui-icons.gestures_tap-01:before{content:"\ea5a"}.now-ui-icons.transportation_air-baloon:before{content:"\ea03"}.now-ui-icons.transportation_bus-front-12:before{content:"\ea17"}.now-ui-icons.travel_info:before{content:"\ea04"}.now-ui-icons.travel_istanbul:before{content:"\ea34"}.now-ui-icons.ui-1_bell-53:before{content:"\ea0f"}.now-ui-icons.ui-1_calendar-60:before{content:"\ea1a"}.now-ui-icons.ui-1_lock-circle-open:before{content:"\ea35"}.now-ui-icons.ui-1_send:before{content:"\ea4d"}.now-ui-icons.ui-1_settings-gear-63:before{content:"\ea4e"}.now-ui-icons.ui-1_simple-add:before{content:"\ea4f"}.now-ui-icons.ui-1_simple-delete:before{content:"\ea54"}.now-ui-icons.ui-1_simple-remove:before{content:"\ea53"}.now-ui-icons.ui-1_zoom-bold:before{content:"\ea64"}.now-ui-icons.ui-2_chat-round:before{content:"\ea20"}.now-ui-icons.ui-2_favourite-28:before{content:"\ea2b"}.now-ui-icons.ui-2_like:before{content:"\ea37"}.now-ui-icons.ui-2_settings-90:before{content:"\ea4b"}.now-ui-icons.ui-2_time-alarm:before{content:"\ea5c"}.now-ui-icons.users_circle-08:before{content:"\ea23"}.now-ui-icons.users_single-02:before{content:"\ea51"}.bootstrap-tagsinput{background-color:#fff;border:1px solid #ccc;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);padding:4px 6px;color:#555;border-radius:4px;max-width:100%;line-height:22px;cursor:text}.bootstrap-tagsinput input,.bootstrap-tagsinput input:focus{border:none;box-shadow:none}.bootstrap-tagsinput input{outline:0;background-color:transparent;padding:0 6px;margin:0;width:auto;max-width:inherit}.bootstrap-tagsinput.form-control input::-moz-placeholder{color:#777;opacity:1}.bootstrap-tagsinput.form-control input:-ms-input-placeholder{color:#777}.bootstrap-tagsinput.form-control input::-webkit-input-placeholder{color:#777}.bootstrap-tagsinput .tag{margin-right:2px;color:#fff}.bootstrap-tagsinput .tag [data-role=remove]{margin-left:8px;cursor:pointer}.bootstrap-tagsinput .tag [data-role=remove]:after{content:"x";padding:0 2px}.bootstrap-tagsinput .tag [data-role=remove]:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05)}.bootstrap-tagsinput .tag [data-role=remove]:hover:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}/*! + */.popover,.tooltip,body{font-family:var(--bs-font-sans-serif)}.table,body{color:#212529}.CodeMirror pre,body{-webkit-tap-highlight-color:transparent}.popover,.tooltip,address{font-style:normal}.btn-link,a{text-decoration:underline}.CodeMirror-wrap pre,.popover,.tooltip,pre code{word-break:normal}.card,.popover,.toast-body,.tooltip,code{word-wrap:break-word}.btn,.btn-group,.btn-group-vertical,.navbar-toggler-icon,img,svg{vertical-align:middle}.CodeMirror pre,select{word-wrap:normal}label,output{display:inline-block}.badge,progress,sub,sup{vertical-align:baseline}.input-group,.row{flex-wrap:wrap;display:flex}:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0))}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-size:1rem;font-weight:400;line-height:1.5;background-color:#fff;-webkit-text-size-adjust:100%}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}.img-fluid,.img-thumbnail{max-width:100%;height:auto}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}address,dl,ol,p,pre,ul{margin-bottom:1rem}blockquote,figure{margin:0 0 1rem}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}dl,ol,p,ul{margin-top:0}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}.alertify .ajs-commands button,.btn,.carousel-indicators [data-bs-target],.form-control-color:not(:disabled):not([readonly]),.form-control[type=file]:not(:disabled):not([readonly]),[role=button],[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled),summary{cursor:pointer}address{line-height:inherit}ol,ul{padding-left:2rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}b,strong{font-weight:bolder}.alert-link,.badge,kbd kbd{font-weight:700}.small,small{font-size:.875em}.mark,mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit}code,kbd{font-size:.875em}code{color:#d63384}a>code{color:inherit}kbd{padding:.2rem .4rem;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}button{border-radius:0}fieldset,iframe{border:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}.display-1,.display-2,.display-3,.display-4,.display-5,.display-6{line-height:1.2;font-weight:300}.form-control,.form-select{-webkit-appearance:none;-moz-appearance:none}summary{display:list-item}[hidden]{display:none!important}.btn,.figure,.form-check-inline,.list-inline-item{display:inline-block}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw)}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw)}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw)}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw)}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw)}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-inline,.list-unstyled{padding-left:0;list-style:none}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer,.figure-caption{font-size:.875em;color:#6c757d}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem}.blockquote-footer::before{content:"— "}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem}.figure-img{margin-bottom:.5rem;line-height:1}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{width:100%;padding-right:var(--bs-gutter-x,.75rem);padding-left:var(--bs-gutter-x,.75rem);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}.custom-file-img,.invalid-tooltip,.offcanvas,.row>*,.toast,.toast-container,.trumbowyg-editor embed,.trumbowyg-editor img,.trumbowyg-editor object,.trumbowyg-editor video,.valid-tooltip{max-width:100%}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;margin-top:calc(var(--bs-gutter-y) * -1);margin-right:calc(var(--bs-gutter-x) * -.5);margin-left:calc(var(--bs-gutter-x) * -.5)}.row>*{flex-shrink:0;width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2,.col-3{flex:0 0 auto}.col-2{width:16.66666667%}.col-3{width:25%}.col-4,.col-5{flex:0 0 auto}.col-4{width:33.33333333%}.col-5{width:41.66666667%}.col-6,.col-7{flex:0 0 auto}.col-6{width:50%}.col-7{width:58.33333333%}.col-8,.col-9{flex:0 0 auto}.col-8{width:66.66666667%}.col-9{width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-bg:transparent;--bs-table-accent-bg:transparent;--bs-table-striped-color:#212529;--bs-table-striped-bg:rgba(0, 0, 0, 0.05);--bs-table-active-color:#212529;--bs-table-active-bg:rgba(0, 0, 0, 0.1);--bs-table-hover-color:#212529;--bs-table-hover-bg:rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;vertical-align:top;border-color:#dee2e6}.table>:not(caption)>*>*{padding:.5rem;background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.form-check-input:focus,.form-control:focus,.form-select:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.25);outline:0}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table>:not(:last-child)>:last-child>*{border-bottom-color:currentColor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-striped>tbody>tr:nth-of-type(odd){--bs-table-accent-bg:var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg:var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover{--bs-table-accent-bg:var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-bg:#cfe2ff;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000;color:#000;border-color:#bacbe6}.table-secondary{--bs-table-bg:#e2e3e5;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000;color:#000;border-color:#cbccce}.table-success{--bs-table-bg:#d1e7dd;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000;color:#000;border-color:#bcd0c7}.table-info{--bs-table-bg:#cff4fc;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000;color:#000;border-color:#badce3}.table-warning{--bs-table-bg:#fff3cd;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000;color:#000;border-color:#e6dbb9}.table-danger{--bs-table-bg:#f8d7da;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000;color:#000;border-color:#dfc2c4}.table-light{--bs-table-bg:#f8f9fa;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000;color:#000;border-color:#dfe0e1}.table-dark{--bs-table-bg:#212529;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:#fff;border-color:#373b3e}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.collapsing,.dropdown-divider,.form-control[type=file],.progress,.progress-bar{overflow:hidden}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:#6c757d}.form-control,.form-control:focus{color:#212529;background-color:#fff}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;background-clip:padding-box;border:1px solid #ced4da;appearance:none;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.btn,.form-control::file-selector-button{transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control:focus{border-color:#86b7fe}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0}@media (prefers-reduced-motion:reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#dde0e3}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#dde0e3}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + (.5rem + 2px));padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + (1rem + 2px));padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.form-select,.input-group-text{font-size:1rem;font-weight:400}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + (.75rem + 2px))}textarea.form-control-sm{min-height:calc(1.5em + (.5rem + 2px))}textarea.form-control-lg{min-height:calc(1.5em + (1rem + 2px))}.form-control-color{max-width:3rem;height:auto;padding:.375rem}.form-control-color::-moz-color-swatch{height:1.5em;border-radius:.25rem}.form-control-color::-webkit-color-swatch{height:1.5em;border-radius:.25rem}.form-select{display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;-moz-padding-start:calc(.75rem - 3px);line-height:1.5;color:#212529;background-color:#fff;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}.form-check-input,.form-range{-webkit-appearance:none;-moz-appearance:none}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#e9ecef}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #212529}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(0,0,0,.25);appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-check-inline{margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.5rem;padding:0;background-color:transparent;appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-floating{position:relative}.invalid-tooltip,.valid-tooltip{position:absolute;border-radius:.25rem}.form-floating>.form-control,.form-floating>.form-select{height:calc(3.5rem + 2px);line-height:1.25}.btn,.input-group-text,.modal-title,.offcanvas-title,.popover,.tooltip{line-height:1.5}.form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1rem .75rem;pointer-events:none;border:1px solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}.form-floating>.form-control{padding:1rem .75rem}.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.input-group{position:relative;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus{z-index:3}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;color:#212529;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu),.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#198754}.valid-tooltip{top:100%;z-index:5;display:none;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(25,135,84,.9)}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover,.input-group .form-control.is-valid,.input-group .form-select.is-valid,.was-validated .input-group .form-control:valid,.was-validated .input-group .form-select:valid{z-index:1}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#198754;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:#198754}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:#198754}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:#198754}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#198754}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group .form-control.is-valid:focus,.input-group .form-select.is-valid:focus,.was-validated .input-group .form-control:valid:focus,.was-validated .input-group .form-select:valid:focus{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#dc3545}.invalid-tooltip{top:100%;z-index:5;display:none;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(220,53,69,.9)}.dropdown-header,.dropdown-item,.dropdown-item-text,.dropdown-menu.show,.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:#dc3545}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:#dc3545}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:#dc3545}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.btn,.btn:hover{color:#212529}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group .form-control.is-invalid,.input-group .form-select.is-invalid,.was-validated .input-group .form-control:invalid,.was-validated .input-group .form-select:invalid{z-index:2}.input-group .form-control.is-invalid:focus,.input-group .form-select.is-invalid:focus,.was-validated .input-group .form-control:invalid:focus,.was-validated .input-group .form-select:invalid:focus{z-index:3}.btn{font-weight:400;text-align:center;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;border-radius:.25rem}.dropdown-toggle::after,.dropup .dropdown-toggle::after{vertical-align:.255em;content:""}@media (prefers-reduced-motion:reduce){.btn,.form-floating>label{transition:none}}.btn-check:focus+.btn,.btn:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.btn-check:active+.btn-primary:focus,.btn-check:checked+.btn-primary:focus,.btn-check:focus+.btn-primary,.btn-primary.active:focus,.btn-primary:active:focus,.btn-primary:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{pointer-events:none;opacity:.65}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:focus+.btn-primary,.btn-primary:focus,.btn-primary:hover{background-color:#0b5ed7;border-color:#0a58ca;color:#fff}.btn-check:active+.btn-primary,.btn-check:checked+.btn-primary,.btn-primary.active,.btn-primary:active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0a58ca;border-color:#0a53be}.btn-check:active+.btn-secondary:focus,.btn-check:checked+.btn-secondary:focus,.btn-check:focus+.btn-secondary,.btn-secondary.active:focus,.btn-secondary:active:focus,.btn-secondary:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:focus+.btn-secondary,.btn-secondary:focus,.btn-secondary:hover{background-color:#5c636a;border-color:#565e64;color:#fff}.btn-check:active+.btn-secondary,.btn-check:checked+.btn-secondary,.btn-secondary.active,.btn-secondary:active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#565e64;border-color:#51585e}.btn-check:active+.btn-success:focus,.btn-check:checked+.btn-success:focus,.btn-check:focus+.btn-success,.btn-success.active:focus,.btn-success:active:focus,.btn-success:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-success{color:#fff;background-color:#198754;border-color:#198754}.btn-check:focus+.btn-success,.btn-success:focus,.btn-success:hover{background-color:#157347;border-color:#146c43;color:#fff}.btn-check:active+.btn-success,.btn-check:checked+.btn-success,.btn-success.active,.btn-success:active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#146c43;border-color:#13653f}.btn-check:active+.btn-info:focus,.btn-check:checked+.btn-info:focus,.btn-check:focus+.btn-info,.btn-info.active:focus,.btn-info:active:focus,.btn-info:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#198754;border-color:#198754}.btn-info{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:focus+.btn-info,.btn-info:focus,.btn-info:hover{color:#000;background-color:#31d2f2;border-color:#25cff2}.btn-check:active+.btn-info,.btn-check:checked+.btn-info,.btn-info.active,.btn-info:active,.show>.btn-info.dropdown-toggle{color:#000;background-color:#3dd5f3;border-color:#25cff2}.btn-info.disabled,.btn-info:disabled{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-warning{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#000;background-color:#ffca2c;border-color:#ffc720}.btn-check:focus+.btn-warning,.btn-warning:focus{color:#000;background-color:#ffca2c;border-color:#ffc720;box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-check:active+.btn-warning,.btn-check:checked+.btn-warning,.btn-warning.active,.btn-warning:active,.show>.btn-warning.dropdown-toggle{color:#000;background-color:#ffcd39;border-color:#ffc720}.btn-check:active+.btn-warning:focus,.btn-check:checked+.btn-warning:focus,.btn-warning.active:focus,.btn-warning:active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-check:active+.btn-danger:focus,.btn-check:checked+.btn-danger:focus,.btn-check:focus+.btn-danger,.btn-danger.active:focus,.btn-danger:active:focus,.btn-danger:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:focus+.btn-danger,.btn-danger:focus,.btn-danger:hover{background-color:#bb2d3b;border-color:#b02a37;color:#fff}.btn-check:active+.btn-danger,.btn-check:checked+.btn-danger,.btn-danger.active,.btn-danger:active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#b02a37;border-color:#a52834}.btn-check:active+.btn-light:focus,.btn-check:checked+.btn-light:focus,.btn-check:focus+.btn-light,.btn-light.active:focus,.btn-light:active:focus,.btn-light:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-light{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:active+.btn-light,.btn-check:checked+.btn-light,.btn-check:focus+.btn-light,.btn-light.active,.btn-light:active,.btn-light:focus,.btn-light:hover,.show>.btn-light.dropdown-toggle{background-color:#f9fafb;border-color:#f9fafb;color:#000}.btn-check:active+.btn-dark:focus,.btn-check:checked+.btn-dark:focus,.btn-check:focus+.btn-dark,.btn-dark.active:focus,.btn-dark:active:focus,.btn-dark:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-light.disabled,.btn-light:disabled{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-dark{color:#fff;background-color:#212529;border-color:#212529}.btn-check:focus+.btn-dark,.btn-dark:focus,.btn-dark:hover{background-color:#1c1f23;border-color:#1a1e21;color:#fff}.btn-check:active+.btn-dark,.btn-check:checked+.btn-dark,.btn-dark.active,.btn-dark:active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1a1e21;border-color:#191c1f}.btn-check:active+.btn-outline-primary:focus,.btn-check:checked+.btn-outline-primary:focus,.btn-check:focus+.btn-outline-primary,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus,.btn-outline-primary:active:focus,.btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#212529;border-color:#212529}.btn-outline-primary{color:#0d6efd;border-color:#0d6efd}.btn-check:active+.btn-outline-primary,.btn-check:checked+.btn-outline-primary,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show,.btn-outline-primary:active,.btn-outline-primary:hover{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:active+.btn-outline-secondary:focus,.btn-check:checked+.btn-outline-secondary:focus,.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus,.btn-outline-secondary:active:focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#0d6efd;background-color:transparent}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-check:active+.btn-outline-secondary,.btn-check:checked+.btn-outline-secondary,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show,.btn-outline-secondary:active,.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:active+.btn-outline-success:focus,.btn-check:checked+.btn-outline-success:focus,.btn-check:focus+.btn-outline-success,.btn-outline-success.active:focus,.btn-outline-success.dropdown-toggle.show:focus,.btn-outline-success:active:focus,.btn-outline-success:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-success{color:#198754;border-color:#198754}.btn-check:active+.btn-outline-success,.btn-check:checked+.btn-outline-success,.btn-outline-success.active,.btn-outline-success.dropdown-toggle.show,.btn-outline-success:active,.btn-outline-success:hover{color:#fff;background-color:#198754;border-color:#198754}.btn-check:active+.btn-outline-info:focus,.btn-check:checked+.btn-outline-info:focus,.btn-check:focus+.btn-outline-info,.btn-outline-info.active:focus,.btn-outline-info.dropdown-toggle.show:focus,.btn-outline-info:active:focus,.btn-outline-info:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#198754;background-color:transparent}.btn-outline-info{color:#0dcaf0;border-color:#0dcaf0}.btn-check:active+.btn-outline-info,.btn-check:checked+.btn-outline-info,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show,.btn-outline-info:active,.btn-outline-info:hover{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:active+.btn-outline-warning:focus,.btn-check:checked+.btn-outline-warning:focus,.btn-check:focus+.btn-outline-warning,.btn-outline-warning.active:focus,.btn-outline-warning.dropdown-toggle.show:focus,.btn-outline-warning:active:focus,.btn-outline-warning:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#0dcaf0;background-color:transparent}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-check:active+.btn-outline-warning,.btn-check:checked+.btn-outline-warning,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show,.btn-outline-warning:active,.btn-outline-warning:hover{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:active+.btn-outline-danger:focus,.btn-check:checked+.btn-outline-danger:focus,.btn-check:focus+.btn-outline-danger,.btn-outline-danger.active:focus,.btn-outline-danger.dropdown-toggle.show:focus,.btn-outline-danger:active:focus,.btn-outline-danger:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-check:active+.btn-outline-danger,.btn-check:checked+.btn-outline-danger,.btn-outline-danger.active,.btn-outline-danger.dropdown-toggle.show,.btn-outline-danger:active,.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:active+.btn-outline-light:focus,.btn-check:checked+.btn-outline-light:focus,.btn-check:focus+.btn-outline-light,.btn-outline-light.active:focus,.btn-outline-light.dropdown-toggle.show:focus,.btn-outline-light:active:focus,.btn-outline-light:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-check:active+.btn-outline-light,.btn-check:checked+.btn-outline-light,.btn-outline-light.active,.btn-outline-light.dropdown-toggle.show,.btn-outline-light:active,.btn-outline-light:hover{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:active+.btn-outline-dark:focus,.btn-check:checked+.btn-outline-dark:focus,.btn-check:focus+.btn-outline-dark,.btn-outline-dark.active:focus,.btn-outline-dark.dropdown-toggle.show:focus,.btn-outline-dark:active:focus,.btn-outline-dark:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-dark{color:#212529;border-color:#212529}.btn-check:active+.btn-outline-dark,.btn-check:checked+.btn-outline-dark,.btn-outline-dark.active,.btn-outline-dark.dropdown-toggle.show,.btn-outline-dark:active,.btn-outline-dark:hover{color:#fff;background-color:#212529;border-color:#212529}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#212529;background-color:transparent}.btn-link{font-weight:400;color:#0d6efd}.btn-link:hover{color:#0a58ca}.btn-link.disabled,.btn-link:disabled{color:#6c757d}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropend,.dropstart,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:.125rem}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid;vertical-align:0}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropstart .dropdown-toggle::after{margin-left:.255em;vertical-align:.255em;content:"";display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent;vertical-align:0}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropdown-divider{height:0;margin:.5rem 0;border-top:1px solid rgba(0,0,0,.15)}.dropdown-item{width:100%;padding:.25rem 1rem;clear:both;font-weight:400;color:#212529;text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0}.dropdown-menu-dark,.dropdown-menu-dark .dropdown-divider{border-color:rgba(0,0,0,.15)}.dropdown-item:focus,.dropdown-item:hover{color:#1e2125;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#0d6efd}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:transparent}.dropdown-header{padding:.5rem 1rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{padding:.25rem 1rem;color:#212529}.dropdown-menu-dark{color:#dee2e6;background-color:#343a40}.dropdown-menu-dark .dropdown-item{color:#dee2e6}.dropdown-menu-dark .dropdown-item:focus,.dropdown-menu-dark .dropdown-item:hover{color:#fff;background-color:rgba(255,255,255,.15)}.dropdown-menu-dark .dropdown-item.active,.dropdown-menu-dark .dropdown-item:active{color:#fff;background-color:#0d6efd}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#adb5bd}.dropdown-menu-dark .dropdown-item-text{color:#dee2e6}.dropdown-menu-dark .dropdown-header{color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.card>hr,.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem;color:#0d6efd;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}.page-link:focus,.page-link:hover{color:#0a58ca;background-color:#e9ecef}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:#0a58ca}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;background:0 0;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6;isolation:isolate}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{background:0 0;border:0;border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#0d6efd}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;text-decoration:none;white-space:nowrap}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem;transition:box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 .25rem}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.card,.progress-bar{flex-direction:column}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand,.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.55)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.55);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.55)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand,.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.55)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.55);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.55)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;min-width:0;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:1rem}.card-footer,.card-header{padding:.5rem 1rem;background-color:rgba(0,0,0,.03)}.card-title{margin-bottom:.5rem}.card-header,.card-subtitle,.card-text:last-child{margin-bottom:0}.card-subtitle{margin-top:-.25rem}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1rem}.card-header-pills,.card-header-tabs{margin-right:-.5rem;margin-left:-.5rem}.card-header{border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-bottom:-.5rem;border-bottom:0}.card-group>.card,.toast-container>:not(:last-child){margin-bottom:.75rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(.25rem - 1px)}.accordion-button,.alert,.btn .badge,.list-group-item,.page-link{position:relative}.accordion-body,.accordion-button{padding:1rem 1.25rem}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion-button{display:flex;align-items:center;width:100%;font-size:1rem;color:#212529;text-align:left;background-color:#fff;border:0;border-radius:0;overflow-anchor:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:#0c63e4;background-color:#e7f1ff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.125)}.accordion-button:focus,.btn-close:focus,.page-link:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.25);outline:0}.accordion-button:not(.collapsed)::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");transform:rotate(-180deg)}.accordion-button::after{flex-shrink:0;width:1.25rem;height:1.25rem;margin-left:auto;content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:1.25rem;transition:transform .2s ease-in-out}@media (prefers-reduced-motion:reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:#86b7fe}.accordion-header{margin-bottom:0}.alert,.breadcrumb{margin-bottom:1rem}.accordion-item{background-color:#fff;border:1px solid rgba(0,0,0,.125)}.accordion-item:first-of-type{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.accordion-item:first-of-type .accordion-button{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button{border-radius:0}.breadcrumb{display:flex;flex-wrap:wrap;padding:0;list-style:none}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:var(--bs-breadcrumb-divider,"/")}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none}.page-link{display:block;color:#0d6efd;text-decoration:none;background-color:#fff;border:1px solid #dee2e6;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;padding:.375rem .75rem}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;border-color:#dee2e6}.page-link:focus{z-index:3}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;background-color:#fff;border-color:#dee2e6}.page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem}.pagination-sm .page-link,.popover,.toast,.tooltip{font-size:.875rem}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.35em .65em;font-size:.75em;line-height:1;color:#fff;text-align:center;white-space:nowrap;border-radius:.25rem}.badge:empty,.toast.hide{display:none}.btn .badge{top:-1px}.alert{padding:1rem;border:1px solid transparent;border-radius:.25rem}.list-group,.progress,.tooltip-inner{border-radius:.25rem}.alert-heading{color:inherit}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{color:#084298;background-color:#cfe2ff;border-color:#b6d4fe}.alert-primary .alert-link{color:#06357a}.alert-secondary{color:#41464b;background-color:#e2e3e5;border-color:#d3d6d8}.alert-secondary .alert-link{color:#34383c}.alert-success{color:#0f5132;background-color:#d1e7dd;border-color:#badbcc}.alert-success .alert-link{color:#0c4128}.alert-info{color:#055160;background-color:#cff4fc;border-color:#b6effb}.alert-info .alert-link{color:#04414d}.alert-warning{color:#664d03;background-color:#fff3cd;border-color:#ffecb5}.alert-warning .alert-link{color:#523e02}.alert-danger{color:#842029;background-color:#f8d7da;border-color:#f5c2c7}.alert-danger .alert-link{color:#6a1a21}.alert-light{color:#636464;background-color:#fefefe;border-color:#fdfdfe}.alert-light .alert-link{color:#4f5050}.alert-dark{color:#141619;background-color:#d3d3d4;border-color:#bcbebf}.alert-dark .alert-link{color:#101214}@-webkit-keyframes progress-bar-stripes{0%{background-position-x:1rem}}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{display:flex;height:1rem;font-size:.75rem;background-color:#e9ecef}.progress-bar{display:flex;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#0d6efd;transition:width .6s ease}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:1s linear infinite progress-bar-stripes;animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}.progress-bar-animated{-webkit-animation:none;animation:none}}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>li::before{content:counters(section,".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{display:block;padding:.5rem 1rem;color:#212529;text-decoration:none;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#084298;background-color:#cfe2ff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#084298;background-color:#bacbe6}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#084298;border-color:#084298}.list-group-item-secondary{color:#41464b;background-color:#e2e3e5}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#41464b;background-color:#cbccce}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#41464b;border-color:#41464b}.list-group-item-success{color:#0f5132;background-color:#d1e7dd}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#0f5132;background-color:#bcd0c7}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#0f5132;border-color:#0f5132}.list-group-item-info{color:#055160;background-color:#cff4fc}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#055160;background-color:#badce3}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#055160;border-color:#055160}.list-group-item-warning{color:#664d03;background-color:#fff3cd}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#664d03;background-color:#e6dbb9}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#664d03;border-color:#664d03}.list-group-item-danger{color:#842029;background-color:#f8d7da}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#842029;background-color:#dfc2c4}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#842029;border-color:#842029}.list-group-item-light{color:#636464;background-color:#fefefe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#636464;background-color:#e5e5e5}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#636464;border-color:#636464}.list-group-item-dark{color:#141619;background-color:#d3d3d4}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#141619;background-color:#bebebf}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#141619;border-color:#141619}.btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em;color:#000;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;border:0;border-radius:.25rem;opacity:.5}.toast,.toast-header{background-color:rgba(255,255,255,.85)}.carousel-indicators [data-bs-target],.modal-content,.offcanvas,.popover,.toast,.toast-header{background-clip:padding-box}.btn-close:hover{color:#000;text-decoration:none;opacity:.75}.btn-close:focus{opacity:1}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:.25}.modal-backdrop.fade,.toast:not(.showing):not(.show){opacity:0}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{width:350px;pointer-events:auto;border:1px solid rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.15);border-radius:.25rem}.toast-container{width:-webkit-max-content;width:-moz-max-content;width:max-content;pointer-events:none}.toast-header{display:flex;align-items:center;padding:.5rem .75rem;color:#6c757d;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-header .btn-close{margin-right:-.375rem;margin-left:.75rem}.toast-body{padding:.75rem}.modal{position:fixed;top:0;left:0;z-index:1060;display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.alertify .ajs-modal,.modal-dialog-scrollable .modal-body,.modal-fullscreen .modal-body,.offcanvas-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .btn-close{padding:.5rem;margin:-.5rem -.5rem -.5rem auto}.modal-title{margin-bottom:0}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;flex-shrink:0;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{height:calc(100% - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-footer,.modal-fullscreen .modal-header{border-radius:0}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-footer,.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-footer,.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-footer,.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-footer,.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-footer,.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}}.tooltip{position:absolute;z-index:1080;display:block;margin:0;font-weight:400;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-spacing:normal;white-space:normal;line-break:auto;opacity:0}.tooltip.show{opacity:.9}.tooltip .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[data-popper-placement^=right],.bs-tooltip-end{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{right:-1px;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[data-popper-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[data-popper-placement^=left],.bs-tooltip-start{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000}.popover{position:absolute;top:0;left:0;z-index:1070;display:block;max-width:276px;font-weight:400;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-spacing:normal;white-space:normal;line-break:auto;background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .popover-arrow{position:absolute;display:block;width:1rem;height:.5rem}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-width:0 .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:1px;border-width:0 .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f0f0f0}.carousel,.carousel-inner,.carousel-item{position:relative}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem 1rem;margin-bottom:0;font-size:1rem;background-color:#f0f0f0;border-bottom:1px solid rgba(0,0,0,.2);border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:1rem;color:#212529}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;background-color:#fff;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.CodeMirror,.ace_punctuation.ace_block.ace_razor,.ace_punctuation.ace_short.ace_razor,.carousel-dark .carousel-caption{color:#000}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}@-webkit-keyframes spinner-border{to{transform:rotate(360deg)}}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:.75s linear infinite spinner-border;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:.75s linear infinite spinner-grow;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}.offcanvas-bottom,.offcanvas-top{right:0;left:0;height:30vh;max-height:100%}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}.offcanvas{position:fixed;bottom:0;z-index:1050;display:flex;flex-direction:column;visibility:hidden;background-color:#fff;outline:0;transition:transform .3s ease-in-out}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:1rem}.offcanvas-header .btn-close{padding:.5rem;margin-top:-.5rem;margin-right:-.5rem;margin-bottom:-.5rem}.offcanvas-title{margin-bottom:0}.offcanvas-body{flex-grow:1;padding:1rem}.offcanvas-start{top:0;left:0;width:400px;border-right:1px solid rgba(0,0,0,.2);transform:translateX(-100%)}.offcanvas-end{top:0;right:0;width:400px;border-left:1px solid rgba(0,0,0,.2);transform:translateX(100%)}.offcanvas-top{top:0;border-bottom:1px solid rgba(0,0,0,.2);transform:translateY(-100%)}.offcanvas-bottom{border-top:1px solid rgba(0,0,0,.2);transform:translateY(100%)}.offcanvas.show{transform:none}.clearfix::after{display:block;clear:both;content:""}.link-primary{color:#0d6efd}.link-primary:focus,.link-primary:hover{color:#0a58ca}.link-secondary{color:#6c757d}.link-secondary:focus,.link-secondary:hover{color:#565e64}.link-success{color:#198754}.link-success:focus,.link-success:hover{color:#146c43}.link-info{color:#0dcaf0}.link-info:focus,.link-info:hover{color:#3dd5f3}.link-warning{color:#ffc107}.link-warning:focus,.link-warning:hover{color:#ffcd39}.link-danger{color:#dc3545}.link-danger:focus,.link-danger:hover{color:#b02a37}.link-light{color:#f8f9fa}.link-light:focus,.link-light:hover{color:#f9fafb}.link-dark{color:#212529}.link-dark:focus,.link-dark:hover{color:#1a1e21}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.alertify .ajs-reset,.d-inline{display:inline!important}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.fixed-bottom,.fixed-top{position:fixed;z-index:1030;right:0;left:0}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:calc(3 / 4 * 100%)}.ratio-16x9{--bs-aspect-ratio:calc(9 / 16 * 100%)}.ratio-21x9{--bs-aspect-ratio:calc(9 / 21 * 100%)}.fixed-top{top:0}.fixed-bottom{bottom:0}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.alertify .ajs-dialog.ajs-capture:before,.cm-tab-wrap-hack:after{content:''}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:1px solid #dee2e6!important}.border-0{border:0!important}.border-top{border-top:1px solid #dee2e6!important}.border-top-0{border-top:0!important}.border-end{border-right:1px solid #dee2e6!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:1px solid #dee2e6!important}.border-start-0{border-left:0!important}.border-primary{border-color:#0d6efd!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#198754!important}.border-info{border-color:#0dcaf0!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#212529!important}.border-white{border-color:#fff!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-light{font-weight:300!important}.fw-lighter{font-weight:lighter!important}.fw-normal{font-weight:400!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{color:#0d6efd!important}.text-secondary{color:#6c757d!important}.text-success{color:#198754!important}.text-info{color:#0dcaf0!important}.text-warning{color:#ffc107!important}.text-danger{color:#dc3545!important}.text-light{color:#f8f9fa!important}.text-dark{color:#212529!important}.text-white{color:#fff!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-reset{color:inherit!important}.bg-primary{background-color:#0d6efd!important}.bg-secondary{background-color:#6c757d!important}.bg-success{background-color:#198754!important}.bg-info{background-color:#0dcaf0!important}.bg-warning{background-color:#ffc107!important}.bg-danger{background-color:#dc3545!important}.bg-light{background-color:#f8f9fa!important}.bg-dark{background-color:#212529!important}.bg-body,.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:.25rem!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:.2rem!important}.rounded-2{border-radius:.25rem!important}.rounded-3{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-end,.rounded-top{border-top-right-radius:.25rem!important}.rounded-bottom,.rounded-end{border-bottom-right-radius:.25rem!important}.rounded-bottom,.rounded-start{border-bottom-left-radius:.25rem!important}.rounded-start,.rounded-top{border-top-left-radius:.25rem!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}.alertify .ajs-dimmer,.alertify .ajs-modal{position:fixed;padding:0;z-index:1981;top:0;right:0;bottom:0;left:0}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}}.alertify .ajs-dimmer{margin:0;background-color:#252525;opacity:.5}.alertify .ajs-dialog{position:relative;margin:5% auto;min-height:110px;max-width:500px;padding:24px 24px 0;outline:0;background-color:#fff}.alertify .ajs-dialog.ajs-capture:before{position:absolute;top:0;right:0;bottom:0;left:0;display:block;z-index:1}.alertify .ajs-reset{position:absolute!important;width:0!important;height:0!important;opacity:0!important}.alertify .ajs-commands{position:absolute;right:4px;margin:-14px 24px 0 0;z-index:2}.alertify .ajs-commands button{display:none;width:10px;height:10px;margin-left:10px;padding:10px;border:0;background-color:transparent;background-repeat:no-repeat;background-position:center}.alertify .ajs-commands button.ajs-close{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAh0lEQVQYlY2QsQ0EIQwEB9cBAR1CJUaI/gigDnwR6NBL/7/xWLNrZ2b8EwGotVpr7eOitWa1VjugiNB7R1UPrKrWe0dEAHBbXUqxMQbeewDmnHjvyTm7C3zDwAUd9c63YQdUVdu6EAJzzquz7HXvTiklt+H9DQFYaxFjvDqllFyMkbXWvfpXHjJrWFgdBq/hAAAAAElFTkSuQmCC)}.alertify .ajs-commands button.ajs-maximize{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAOUlEQVQYlWP8//8/AzGAhYGBgaG4uBiv6t7eXkYmooxjYGAgWiELsvHYFMCcRX2rSXcjoSBiJDbAAeD+EGu+8BZcAAAAAElFTkSuQmCC)}.alertify .ajs-header{margin:-24px -24px 0;padding:16px 24px;background-color:#fff}.alertify .ajs-body{min-height:56px}.alertify .ajs-body .ajs-content{padding:16px 24px 16px 16px}.alertify .ajs-footer{padding:4px;margin-left:-24px;margin-right:-24px;min-height:43px;background-color:#fff}.alertify .ajs-footer .ajs-buttons.ajs-auxiliary .ajs-button,.alertify .ajs-footer .ajs-buttons.ajs-primary .ajs-button{margin:4px}.alertify .ajs-footer .ajs-buttons.ajs-primary{text-align:right}.alertify .ajs-footer .ajs-buttons.ajs-auxiliary{float:left;clear:none;text-align:left}.alertify .ajs-footer .ajs-buttons .ajs-button{min-width:88px;min-height:35px}.alertify .ajs-handle{position:absolute;display:none;width:10px;height:10px;right:0;bottom:0;z-index:1;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMS8xNEDQYmMAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAQ0lEQVQYlaXNMQoAIAxD0dT7H657l0KX3iJuUlBUNOsPPCGJm7VDp6ryeMxMuDsAQH7owW3pyn3RS26iKxERMLN3ugOaAkaL3sWVigAAAABJRU5ErkJggg==);-webkit-transform:scaleX(1);transform:scaleX(1);cursor:se-resize}.alertify.ajs-no-overflow .ajs-body .ajs-content{overflow:hidden!important}.alertify.ajs-no-padding.ajs-maximized .ajs-body .ajs-content{left:0;right:0;padding:0}.alertify.ajs-no-padding:not(.ajs-maximized) .ajs-body{margin-left:-24px;margin-right:-24px}.alertify.ajs-no-padding:not(.ajs-maximized) .ajs-body .ajs-content{padding:0}.alertify.ajs-no-padding.ajs-resizable .ajs-body .ajs-content{left:0;right:0}.alertify.ajs-closable .ajs-commands button.ajs-close,.alertify.ajs-maximizable .ajs-commands button.ajs-maximize,.alertify.ajs-maximizable .ajs-commands button.ajs-restore{display:inline-block}.alertify.ajs-maximized .ajs-dialog{width:100%!important;height:100%!important;max-width:none!important;margin:0 auto!important;top:0!important;left:0!important}.alertify.ajs-maximized.ajs-modeless .ajs-modal{position:fixed!important;min-height:100%!important;max-height:none!important;margin:0!important}.alertify.ajs-maximized .ajs-commands button.ajs-maximize{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAASklEQVQYlZWQ0QkAMQhDtXRincOZX78KVtrDCwgqJNEoIB3MPLj7lRUROlpyVXGzby6zWuY+kz6tj5sBMTMAyVV3/595RbOh3cAXsww1raeiOcoAAAAASUVORK5CYII=)}.alertify.ajs-maximized .ajs-dialog,.alertify.ajs-resizable .ajs-dialog{padding:0}.alertify.ajs-maximized .ajs-commands,.alertify.ajs-resizable .ajs-commands{margin:14px 24px 0 0}.alertify.ajs-maximized .ajs-header,.alertify.ajs-resizable .ajs-header{position:absolute;top:0;left:0;right:0;margin:0;padding:16px 24px}.alertify.ajs-maximized .ajs-body,.alertify.ajs-resizable .ajs-body{min-height:224px;display:inline-block}.alertify.ajs-maximized .ajs-body .ajs-content,.alertify.ajs-resizable .ajs-body .ajs-content{position:absolute;top:50px;right:24px;bottom:50px;left:24px;overflow:auto}.alertify.ajs-maximized .ajs-footer,.alertify.ajs-resizable .ajs-footer{position:absolute;left:0;right:0;bottom:0;margin:0}.alertify.ajs-resizable:not(.ajs-maximized) .ajs-dialog{min-width:548px}.alertify.ajs-resizable:not(.ajs-maximized) .ajs-handle{display:block}.alertify.ajs-movable:not(.ajs-maximized) .ajs-header{cursor:move}.alertify.ajs-modeless .ajs-dimmer,.alertify.ajs-modeless .ajs-reset{display:none}.alertify.ajs-modeless .ajs-modal{overflow:visible;max-width:none;max-height:0}.alertify.ajs-modeless.ajs-pinnable .ajs-commands button.ajs-pin{display:inline-block;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAQklEQVQYlcWPMQ4AIAwCqU9u38GbcbHRWN1MvKQDhQFMEpKImGJA0gCgnYw0V0rwxseg5erT4oSkQVI5d9f+e9+xA0NbLpWfitPXAAAAAElFTkSuQmCC)}.alertify.ajs-modeless.ajs-unpinned .ajs-modal{position:absolute}.alertify.ajs-modeless.ajs-unpinned .ajs-commands button.ajs-pin{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAABZ0RVh0Q3JlYXRpb24gVGltZQAwNy8xMy8xNOrZqugAAAAcdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3JrcyBDUzbovLKMAAAAO0lEQVQYlWP8//8/AzGAiShV6AqLi4txGs+CLoBLMYbC3t5eRmyaWfBZhwwYkX2NTxPRvibKjRhW4wMAhxkYGbLu3pEAAAAASUVORK5CYII=)}.alertify.ajs-modeless:not(.ajs-unpinned) .ajs-body{max-height:500px;overflow:auto}.alertify.ajs-basic .ajs-header{opacity:0}.alertify.ajs-basic .ajs-footer{visibility:hidden}.alertify.ajs-frameless .ajs-header{position:absolute;top:0;left:0;right:0;min-height:60px;margin:0;padding:0;opacity:0;z-index:1}.alertify.ajs-frameless .ajs-footer{display:none}.alertify.ajs-frameless .ajs-body .ajs-content{position:absolute;top:0;right:0;bottom:0;left:0}.alertify.ajs-frameless:not(.ajs-resizable) .ajs-dialog{padding-top:0}.alertify.ajs-frameless:not(.ajs-resizable) .ajs-dialog .ajs-commands{margin-top:0}.ajs-no-overflow{overflow:hidden!important;outline:0}.ajs-no-overflow.ajs-fixed{position:fixed;top:0;right:0;bottom:0;left:0;overflow-y:scroll!important}.ajs-no-selection,.ajs-no-selection *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@media screen and (max-width:568px){.alertify .ajs-dialog{min-width:150px}.alertify:not(.ajs-maximized) .ajs-modal{padding:0 5%}.alertify:not(.ajs-maximized).ajs-resizable .ajs-dialog{min-width:initial;min-width:auto}}@-moz-document url-prefix(){.alertify button:focus{outline:#3593d2 dotted 1px}}.alertify .ajs-dimmer,.alertify .ajs-modal{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-transition-property:opacity,visibility;transition-property:opacity,visibility;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transition-duration:250ms;transition-duration:250ms}.alertify.ajs-hidden .ajs-dimmer,.alertify.ajs-hidden .ajs-modal{visibility:hidden;opacity:0}.alertify.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-duration:.5s;animation-duration:.5s}.alertify.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-duration:250ms;animation-duration:250ms}.alertify .ajs-dialog.ajs-shake{-webkit-animation-name:ajs-shake;animation-name:ajs-shake;-webkit-animation-duration:.1s;animation-duration:.1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes ajs-shake{0%,100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes ajs-shake{0%,100%{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.alertify.ajs-slide.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-name:ajs-slideIn;animation-name:ajs-slideIn;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1.275);animation-timing-function:cubic-bezier(.175,.885,.32,1.275)}.alertify.ajs-slide.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-name:ajs-slideOut;animation-name:ajs-slideOut;-webkit-animation-timing-function:cubic-bezier(.6,-.28,.735,.045);animation-timing-function:cubic-bezier(.6,-.28,.735,.045)}.alertify.ajs-zoom.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-name:ajs-zoomIn;animation-name:ajs-zoomIn}.alertify.ajs-zoom.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-name:ajs-zoomOut;animation-name:ajs-zoomOut}.alertify.ajs-fade.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-name:ajs-fadeIn;animation-name:ajs-fadeIn}.alertify.ajs-fade.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-name:ajs-fadeOut;animation-name:ajs-fadeOut}.alertify.ajs-pulse.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-name:ajs-pulseIn;animation-name:ajs-pulseIn}.alertify.ajs-pulse.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-name:ajs-pulseOut;animation-name:ajs-pulseOut}.alertify.ajs-flipx.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-name:ajs-flipInX;animation-name:ajs-flipInX}.alertify.ajs-flipx.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-name:ajs-flipOutX;animation-name:ajs-flipOutX}.alertify.ajs-flipy.ajs-in:not(.ajs-hidden) .ajs-dialog{-webkit-animation-name:ajs-flipInY;animation-name:ajs-flipInY}.alertify.ajs-flipy.ajs-out.ajs-hidden .ajs-dialog{-webkit-animation-name:ajs-flipOutY;animation-name:ajs-flipOutY}@-webkit-keyframes ajs-pulseIn{0%,100%,20%,40%,60%,80%{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes ajs-pulseIn{0%,100%,20%,40%,60%,80%{-webkit-transition-timing-function:cubic-bezier(.215,.61,.355,1);transition-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@-webkit-keyframes ajs-pulseOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}100%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes ajs-pulseOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}100%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@-webkit-keyframes ajs-zoomIn{0%{opacity:0;-webkit-transform:scale3d(.25,.25,.25);transform:scale3d(.25,.25,.25)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@keyframes ajs-zoomIn{0%{opacity:0;-webkit-transform:scale3d(.25,.25,.25);transform:scale3d(.25,.25,.25)}100%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}}@-webkit-keyframes ajs-zoomOut{0%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}100%{opacity:0;-webkit-transform:scale3d(.25,.25,.25);transform:scale3d(.25,.25,.25)}}@keyframes ajs-zoomOut{0%{opacity:1;-webkit-transform:scale3d(1,1,1);transform:scale3d(1,1,1)}100%{opacity:0;-webkit-transform:scale3d(.25,.25,.25);transform:scale3d(.25,.25,.25)}}@-webkit-keyframes ajs-fadeIn{0%{opacity:0}100%{opacity:1}}@keyframes ajs-fadeIn{0%{opacity:0}100%{opacity:1}}@-webkit-keyframes ajs-fadeOut{0%{opacity:1}100%{opacity:0}}@keyframes ajs-fadeOut{0%{opacity:1}100%{opacity:0}}@-webkit-keyframes ajs-flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes ajs-flipInX{0%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(1,0,0,10deg);transform:perspective(400px) rotate3d(1,0,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-5deg);transform:perspective(400px) rotate3d(1,0,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@-webkit-keyframes ajs-flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}@keyframes ajs-flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(1,0,0,-20deg);transform:perspective(400px) rotate3d(1,0,0,-20deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(1,0,0,90deg);transform:perspective(400px) rotate3d(1,0,0,90deg);opacity:0}}@-webkit-keyframes ajs-flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes ajs-flipInY{0%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in;opacity:0}40%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-20deg);transform:perspective(400px) rotate3d(0,1,0,-20deg);-webkit-transition-timing-function:ease-in;transition-timing-function:ease-in}60%{-webkit-transform:perspective(400px) rotate3d(0,1,0,10deg);transform:perspective(400px) rotate3d(0,1,0,10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-5deg);transform:perspective(400px) rotate3d(0,1,0,-5deg)}100%{-webkit-transform:perspective(400px);transform:perspective(400px)}}@-webkit-keyframes ajs-flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}@keyframes ajs-flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotate3d(0,1,0,-15deg);transform:perspective(400px) rotate3d(0,1,0,-15deg);opacity:1}100%{-webkit-transform:perspective(400px) rotate3d(0,1,0,90deg);transform:perspective(400px) rotate3d(0,1,0,90deg);opacity:0}}@-webkit-keyframes ajs-slideIn{0%{margin-top:-100%}100%{margin-top:5%}}@keyframes ajs-slideIn{0%{margin-top:-100%}100%{margin-top:5%}}@-webkit-keyframes ajs-slideOut{0%{margin-top:5%}100%{margin-top:-100%}}@keyframes ajs-slideOut{0%{margin-top:5%}100%{margin-top:-100%}}.alertify-notifier{position:fixed;width:0;overflow:visible;z-index:1982;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.alertify-notifier .ajs-message{position:relative;width:260px;max-height:0;padding:0;opacity:0;margin:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-transition-duration:250ms;transition-duration:250ms;-webkit-transition-timing-function:linear;transition-timing-function:linear}.alertify-notifier .ajs-message.ajs-visible{-webkit-transition-duration:.5s;transition-duration:.5s;-webkit-transition-timing-function:cubic-bezier(.175,.885,.32,1.275);transition-timing-function:cubic-bezier(.175,.885,.32,1.275);opacity:1;max-height:100%;padding:15px;margin-top:10px}.alertify-notifier .ajs-message.ajs-success{background:rgba(91,189,114,.95)}.alertify-notifier .ajs-message.ajs-error{background:rgba(217,92,92,.95)}.alertify-notifier .ajs-message.ajs-warning{background:rgba(252,248,215,.95)}.alertify-notifier .ajs-message .ajs-close{position:absolute;top:0;right:0;width:16px;height:16px;cursor:pointer;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAABGdBTUEAALGPC/xhBQAAAFBJREFUGBl1j0EKADEIA+ve/P9f9bh1hEihNBfjVCO1v7RKVqJK4h8gM5cAPR42AkQEpSXPwMTyoi13n5N9YqJehm3Fnr7nL1D0ZEbD5OubGyC7a9gx+9eNAAAAAElFTkSuQmCC);background-repeat:no-repeat;background-position:center center;background-color:rgba(0,0,0,.5);border-top-right-radius:2px}.alertify-notifier.ajs-top{top:10px}.alertify-notifier.ajs-bottom{bottom:10px}.alertify-notifier.ajs-right{right:10px}.alertify-notifier.ajs-right .ajs-message{right:-320px}.alertify-notifier.ajs-right .ajs-message.ajs-visible{right:290px}.alertify-notifier.ajs-left{left:10px}.alertify-notifier.ajs-left .ajs-message{left:-300px}.alertify-notifier.ajs-left .ajs-message.ajs-visible{left:0}.alertify-notifier.ajs-center{left:50%}.alertify-notifier.ajs-center .ajs-message{-webkit-transform:translateX(-50%);transform:translateX(-50%)}.alertify-notifier.ajs-center .ajs-message.ajs-visible{left:50%;-webkit-transition-timing-function:cubic-bezier(.57,.43,.1,.65);transition-timing-function:cubic-bezier(.57,.43,.1,.65)}.alertify-notifier.ajs-center.ajs-top .ajs-message{top:-300px}.alertify-notifier.ajs-center.ajs-top .ajs-message.ajs-visible{top:0}.alertify-notifier.ajs-center.ajs-bottom .ajs-message{bottom:-300px}.alertify-notifier.ajs-center.ajs-bottom .ajs-message.ajs-visible{bottom:0}.ajs-no-transition.alertify .ajs-dialog,.ajs-no-transition.alertify .ajs-dimmer,.ajs-no-transition.alertify .ajs-modal,.ajs-no-transition.alertify-notifier .ajs-message{-webkit-transition:none!important;transition:none!important;-webkit-animation:none!important;animation:none!important}@media (prefers-reduced-motion:reduce){.alertify .ajs-dialog,.alertify .ajs-dimmer,.alertify .ajs-modal,.alertify-notifier .ajs-message{-webkit-transition:none!important;transition:none!important;-webkit-animation:none!important;animation:none!important}}#trumbowyg-icons,#trumbowyg-icons svg{height:0;width:0}#trumbowyg-icons{overflow:hidden;visibility:hidden}.trumbowyg-box *,.trumbowyg-box ::after,.trumbowyg-box ::before,.trumbowyg-modal *,.trumbowyg-modal ::after,.trumbowyg-modal ::before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*,.trumbowyg-editor,.trumbowyg-textarea{-moz-box-sizing:border-box;-webkit-box-sizing:border-box}.trumbowyg-box svg,.trumbowyg-modal svg{width:17px;height:100%;fill:#222}.trumbowyg-box,.trumbowyg-editor{display:block;position:relative;border:1px solid #DDD;width:100%;min-height:300px}.trumbowyg-box .trumbowyg-editor{margin:0 auto}.trumbowyg-box.trumbowyg-fullscreen{background:#FEFEFE;border:none!important}.trumbowyg-editor,.trumbowyg-textarea{position:relative;box-sizing:border-box;padding:20px;min-height:300px;width:100%;border-style:none;resize:none;outline:0;overflow:auto;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.trumbowyg-editor.trumbowyg-autogrow-on-enter,.trumbowyg-textarea.trumbowyg-autogrow-on-enter{-webkit-transition:height .3s ease-out;-o-transition:height .3s ease-out;transition:height .3s ease-out}.trumbowyg-box-blur .trumbowyg-editor *,.trumbowyg-box-blur .trumbowyg-editor::before{color:transparent!important;text-shadow:0 0 7px #333}@media screen and (min-width:0 \0){.trumbowyg-box-blur .trumbowyg-editor *,.trumbowyg-box-blur .trumbowyg-editor::before{color:rgba(200,200,200,.6)!important}}@supports (-ms-accelerator:true){.trumbowyg-box-blur .trumbowyg-editor *,.trumbowyg-box-blur .trumbowyg-editor::before{color:rgba(200,200,200,.6)!important}}.trumbowyg-box-blur .trumbowyg-editor hr,.trumbowyg-box-blur .trumbowyg-editor img{opacity:.2}.trumbowyg-textarea{position:relative;display:block;overflow:auto;border:none;font-size:14px;font-family:Inconsolata,Consolas,Courier,"Courier New",sans-serif;line-height:18px}.trumbowyg-box.trumbowyg-editor-visible .trumbowyg-textarea{height:1px!important;width:25%;min-height:0!important;padding:0!important;background:0 0;opacity:0!important}.trumbowyg-box.trumbowyg-editor-hidden .trumbowyg-textarea{display:block;margin-bottom:1px}.trumbowyg-box.trumbowyg-editor-hidden .trumbowyg-editor{display:none}.trumbowyg-box.trumbowyg-disabled .trumbowyg-textarea{opacity:.8;background:0 0}.trumbowyg-editor[contenteditable=true]:empty:not(:focus)::before{content:attr(placeholder);color:#999;pointer-events:none;white-space:break-spaces}.trumbowyg-button-pane{width:100%;min-height:36px;background:#ecf0f1;border-bottom:1px solid #d7e0e2;margin:0;padding:0 5px;position:relative;list-style-type:none;line-height:10px;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:11}.trumbowyg-button-pane::after{content:" ";display:block;position:absolute;top:36px;left:0;right:0;width:100%;height:1px;background:#d7e0e2}.trumbowyg-button-pane .trumbowyg-button-group{display:inline-block}.trumbowyg-button-pane .trumbowyg-button-group .trumbowyg-fullscreen-button svg{color:transparent}.trumbowyg-button-pane .trumbowyg-button-group::after{content:" ";display:inline-block;width:1px;background:#d7e0e2;margin:0 5px;height:35px;vertical-align:top}.trumbowyg-button-pane .trumbowyg-button-group:last-child::after{content:none}.trumbowyg-button-pane button{display:inline-block;position:relative;width:35px;height:35px;padding:1px 6px!important;margin-bottom:1px;overflow:hidden;border:none;cursor:pointer;background:0 0;vertical-align:middle;-webkit-transition:background-color 150ms,opacity 150ms;-o-transition:background-color 150ms,opacity 150ms;transition:background-color 150ms,opacity 150ms}.trumbowyg-button-pane button.trumbowyg-textual-button{width:auto;line-height:35px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.trumbowyg-button-pane button.trumbowyg-disable,.trumbowyg-button-pane.trumbowyg-disable button:not(.trumbowyg-not-disable):not(.trumbowyg-active),.trumbowyg-disabled .trumbowyg-button-pane button:not(.trumbowyg-not-disable):not(.trumbowyg-viewHTML-button){opacity:.2;cursor:default;pointer-events:none}.trumbowyg-button-pane.trumbowyg-disable .trumbowyg-button-group::before,.trumbowyg-disabled .trumbowyg-button-pane .trumbowyg-button-group::before{background:#e3e9eb}.trumbowyg-button-pane button.trumbowyg-active,.trumbowyg-button-pane button:not(.trumbowyg-disable):focus,.trumbowyg-button-pane button:not(.trumbowyg-disable):hover{background-color:#FFF;outline:0}.trumbowyg-button-pane .trumbowyg-open-dropdown::after{display:block;content:" ";position:absolute;top:25px;right:3px;height:0;width:0;border:3px solid transparent;border-top-color:#555}.trumbowyg-button-pane .trumbowyg-open-dropdown.trumbowyg-textual-button{padding-left:10px!important;padding-right:18px!important}.trumbowyg-button-pane .trumbowyg-open-dropdown.trumbowyg-textual-button::after{top:17px;right:7px}.trumbowyg-button-pane .trumbowyg-right{float:right}.trumbowyg-dropdown{max-width:300px;max-height:250px;overflow-y:auto;overflow-x:hidden;white-space:nowrap;border:1px solid #ecf0f1;padding:5px 0;border-top:none;background:#FFF;margin-left:-1px;-webkit-box-shadow:rgba(0,0,0,.1) 0 2px 3px;box-shadow:rgba(0,0,0,.1) 0 2px 3px;z-index:12}.trumbowyg-dropdown button{display:block;width:100%;height:35px;line-height:35px;text-decoration:none;background:#FFF;padding:0 20px 0 10px;color:#333!important;border:none;cursor:pointer;text-align:left;font-size:15px;-webkit-transition:all 150ms;-o-transition:all 150ms;transition:all 150ms}.trumbowyg-dropdown button:focus,.trumbowyg-dropdown button:hover{background:#ecf0f1}.trumbowyg-dropdown button svg{float:left;margin-right:14px}.trumbowyg-modal{position:absolute;top:0;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);-o-transform:translateX(-50%);transform:translateX(-50%);max-width:520px;width:100%;height:350px;z-index:12;overflow:hidden;-webkit-backface-visibility:hidden;backface-visibility:hidden}.trumbowyg-modal-box{position:absolute;top:0;left:50%;-webkit-transform:translateX(-50%);-ms-transform:translateX(-50%);-o-transform:translateX(-50%);transform:translateX(-50%);max-width:500px;width:calc(100% - 20px);padding-bottom:45px;z-index:1;background-color:#FFF;text-align:center;font-size:14px;-webkit-box-shadow:rgba(0,0,0,.2) 0 2px 3px;box-shadow:rgba(0,0,0,.2) 0 2px 3px;-webkit-backface-visibility:hidden;backface-visibility:hidden}.trumbowyg-modal-box .trumbowyg-modal-title{font-size:24px;font-weight:700;margin:0 0 20px;padding:15px 0 13px;display:block;border-bottom:1px solid #EEE;color:#333;background:#fbfcfc}.trumbowyg-modal-box .trumbowyg-progress{width:100%;height:3px;position:absolute;top:58px}.trumbowyg-modal-box .trumbowyg-progress .trumbowyg-progress-bar{background:#2BC06A;width:0;height:100%;-webkit-transition:width 150ms linear;-o-transition:width 150ms linear;transition:width 150ms linear}.trumbowyg-modal-box .trumbowyg-input-row{position:relative;margin:15px 12px;border:1px solid #DEDEDE;overflow:hidden}.trumbowyg-modal-box .trumbowyg-input-infos{text-align:left;-webkit-transition:all 150ms;-o-transition:all 150ms;transition:all 150ms;width:150px;border-right:1px solid #DEDEDE;padding:0 7px;background-color:#fbfcfc;position:absolute;left:0;top:0;bottom:0}.trumbowyg-modal-box .trumbowyg-input-infos label{color:#69878f;overflow:hidden}.trumbowyg-modal-box .trumbowyg-input-infos label,.trumbowyg-modal-box .trumbowyg-input-infos label span{display:block;height:27px;line-height:27px;-webkit-transition:all 150ms;-o-transition:all 150ms;transition:all 150ms}.trumbowyg-modal-box .trumbowyg-input-infos .trumbowyg-msg-error{color:#e74c3c}.trumbowyg-modal-box .trumbowyg-input-html{padding:1px 1px 1px 152px}.trumbowyg-modal-box .trumbowyg-input-html,.trumbowyg-modal-box .trumbowyg-input-html input,.trumbowyg-modal-box .trumbowyg-input-html select,.trumbowyg-modal-box .trumbowyg-input-html textarea{font-size:14px}.trumbowyg-modal-box .trumbowyg-input-html input,.trumbowyg-modal-box .trumbowyg-input-html select,.trumbowyg-modal-box .trumbowyg-input-html textarea{-webkit-transition:all 150ms;-o-transition:all 150ms;transition:all 150ms;height:27px;line-height:27px;border:0;width:100%;padding:0 7px}.trumbowyg-modal-box .trumbowyg-input-html input:focus,.trumbowyg-modal-box .trumbowyg-input-html input:hover,.trumbowyg-modal-box .trumbowyg-input-html select:focus,.trumbowyg-modal-box .trumbowyg-input-html select:hover,.trumbowyg-modal-box .trumbowyg-input-html textarea:focus,.trumbowyg-modal-box .trumbowyg-input-html textarea:hover{outline:#95a5a6 solid 1px}.trumbowyg-modal-box .trumbowyg-input-html input:focus,.trumbowyg-modal-box .trumbowyg-input-html select:focus,.trumbowyg-modal-box .trumbowyg-input-html textarea:focus{background:#fbfcfc}.trumbowyg-modal-box .trumbowyg-input-html input[type=checkbox]{width:16px;height:16px;padding:0}.trumbowyg-modal-box .trumbowyg-input-html-with-checkbox{text-align:left;padding:3px 1px 1px 3px}.trumbowyg-modal-box .trumbowyg-input-error input,.trumbowyg-modal-box .trumbowyg-input-error select,.trumbowyg-modal-box .trumbowyg-input-error textarea{outline:#e74c3c solid 1px}.trumbowyg-modal-box .trumbowyg-input-error .trumbowyg-input-infos label span:first-child{margin-top:-27px}.trumbowyg-modal-box .error{margin-top:25px;display:block;color:red}.trumbowyg-modal-box .trumbowyg-modal-button{position:absolute;bottom:10px;right:0;text-decoration:none;color:#FFF;display:block;width:100px;height:35px;line-height:33px;margin:0 10px;background-color:#333;border:none;cursor:pointer;font-family:"Trebuchet MS",Helvetica,Verdana,sans-serif;font-size:16px;-webkit-transition:all 150ms;-o-transition:all 150ms;transition:all 150ms}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit{right:110px;background:#2bc06a}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:focus,.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:hover{background:#40d47e;outline:0}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:active{background:#25a25a}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset{color:#555;background:#e6e6e6}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:focus,.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:hover{background:#fbfbfb;outline:0}.trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:active{background:#d5d5d5}.trumbowyg-overlay{position:absolute;background-color:rgba(255,255,255,.5);height:100%;width:100%;left:0;display:none;top:0;z-index:10}body.trumbowyg-body-fullscreen{overflow:hidden}.trumbowyg-fullscreen{position:fixed;top:0;left:0;width:100%;height:100%;margin:0;padding:0;z-index:99999}.trumbowyg-fullscreen .trumbowyg-editor,.trumbowyg-fullscreen.trumbowyg-box{border:none}.trumbowyg-fullscreen .trumbowyg-editor,.trumbowyg-fullscreen .trumbowyg-textarea{height:calc(100% - 37px)!important;overflow:auto}.trumbowyg-fullscreen .trumbowyg-overlay{height:100%!important}.trumbowyg-fullscreen .trumbowyg-button-group .trumbowyg-fullscreen-button svg{color:#222;fill:transparent}.trumbowyg-editor img,.trumbowyg-editor video{height:auto}.trumbowyg-editor img{cursor:move}.trumbowyg-editor canvas:focus{outline:0}.trumbowyg-editor.trumbowyg-reset-css{background:#FEFEFE!important;font-family:"Trebuchet MS",Helvetica,Verdana,sans-serif!important;font-size:14px!important;line-height:1.45em!important;color:#333}.trumbowyg-editor.trumbowyg-reset-css a{color:#15c!important;text-decoration:underline!important}.trumbowyg-editor.trumbowyg-reset-css blockquote,.trumbowyg-editor.trumbowyg-reset-css div,.trumbowyg-editor.trumbowyg-reset-css ol,.trumbowyg-editor.trumbowyg-reset-css p,.trumbowyg-editor.trumbowyg-reset-css ul{-webkit-box-shadow:none!important;box-shadow:none!important;background:0 0!important;margin:0 0 15px!important;line-height:1.4em!important;font-family:"Trebuchet MS",Helvetica,Verdana,sans-serif!important;font-size:14px!important;border:none}.trumbowyg-editor.trumbowyg-reset-css hr,.trumbowyg-editor.trumbowyg-reset-css iframe,.trumbowyg-editor.trumbowyg-reset-css object{margin-bottom:15px!important}.trumbowyg-editor.trumbowyg-reset-css blockquote{margin-left:32px!important;font-style:italic!important;color:#555}.trumbowyg-editor.trumbowyg-reset-css ul{list-style:disc}.trumbowyg-editor.trumbowyg-reset-css ol{list-style:decimal}.trumbowyg-editor.trumbowyg-reset-css ol,.trumbowyg-editor.trumbowyg-reset-css ul{padding-left:20px!important}.trumbowyg-editor.trumbowyg-reset-css ol ol,.trumbowyg-editor.trumbowyg-reset-css ol ul,.trumbowyg-editor.trumbowyg-reset-css ul ol,.trumbowyg-editor.trumbowyg-reset-css ul ul{border:none;margin:2px!important;padding:0 0 0 24px!important}.trumbowyg-editor.trumbowyg-reset-css hr{display:block;height:1px;border:none;border-top:1px solid #CCC}.trumbowyg-editor.trumbowyg-reset-css h1,.trumbowyg-editor.trumbowyg-reset-css h2,.trumbowyg-editor.trumbowyg-reset-css h3,.trumbowyg-editor.trumbowyg-reset-css h4{color:#111;background:0 0;margin:0!important;padding:0!important;font-weight:700}.trumbowyg-editor.trumbowyg-reset-css h1{font-size:32px!important;line-height:38px!important;margin-bottom:20px!important}.trumbowyg-editor.trumbowyg-reset-css h2{font-size:26px!important;line-height:34px!important;margin-bottom:15px!important}.trumbowyg-editor.trumbowyg-reset-css h3{font-size:22px!important;line-height:28px!important;margin-bottom:7px!important}.trumbowyg-editor.trumbowyg-reset-css h4{font-size:16px!important;line-height:22px!important;margin-bottom:7px!important}.trumbowyg-dark .trumbowyg-textarea{background:#111;color:#ddd}.trumbowyg-dark .trumbowyg-box{border:1px solid #343434}.trumbowyg-dark .trumbowyg-box.trumbowyg-fullscreen{background:#111}.trumbowyg-dark .trumbowyg-box.trumbowyg-box-blur .trumbowyg-editor *,.trumbowyg-dark .trumbowyg-box.trumbowyg-box-blur .trumbowyg-editor::before{text-shadow:0 0 7px #ccc}@media screen and (min-width:0 \0){.trumbowyg-dark .trumbowyg-box.trumbowyg-box-blur .trumbowyg-editor *,.trumbowyg-dark .trumbowyg-box.trumbowyg-box-blur .trumbowyg-editor::before{color:rgba(20,20,20,.6)!important}}@supports (-ms-accelerator:true){.trumbowyg-dark .trumbowyg-box.trumbowyg-box-blur .trumbowyg-editor *,.trumbowyg-dark .trumbowyg-box.trumbowyg-box-blur .trumbowyg-editor::before{color:rgba(20,20,20,.6)!important}}.trumbowyg-dark .trumbowyg-box svg{fill:#ecf0f1;color:#ecf0f1}.trumbowyg-dark .trumbowyg-button-pane{background-color:#222;border-bottom-color:#343434}.trumbowyg-dark .trumbowyg-button-pane::after{background:#343434}.trumbowyg-dark .trumbowyg-button-pane .trumbowyg-button-group:not(:empty)::after{background-color:#343434}.trumbowyg-dark .trumbowyg-button-pane .trumbowyg-button-group:not(:empty) .trumbowyg-fullscreen-button svg{color:transparent}.trumbowyg-dark .trumbowyg-button-pane.trumbowyg-disable .trumbowyg-button-group::after{background-color:#2a2a2a}.trumbowyg-dark .trumbowyg-button-pane button.trumbowyg-active,.trumbowyg-dark .trumbowyg-button-pane button:not(.trumbowyg-disable):focus,.trumbowyg-dark .trumbowyg-button-pane button:not(.trumbowyg-disable):hover{background-color:#333}.trumbowyg-dark .trumbowyg-button-pane .trumbowyg-open-dropdown::after{border-top-color:#fff}.trumbowyg-dark .trumbowyg-fullscreen .trumbowyg-button-pane .trumbowyg-button-group:not(:empty) .trumbowyg-fullscreen-button svg{color:#ecf0f1;fill:transparent}.trumbowyg-dark .trumbowyg-dropdown{border-color:#222;background:#333;-webkit-box-shadow:rgba(0,0,0,.3) 0 2px 3px;box-shadow:rgba(0,0,0,.3) 0 2px 3px}.trumbowyg-dark .trumbowyg-dropdown button{background:#333;color:#fff!important}.trumbowyg-dark .trumbowyg-dropdown button:focus,.trumbowyg-dark .trumbowyg-dropdown button:hover{background:#222}.trumbowyg-dark .trumbowyg-modal-box{background-color:#222}.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-title{border-bottom:1px solid #555;color:#fff;background:#3c3c3c}.trumbowyg-dark .trumbowyg-modal-box label{display:block;position:relative;margin:15px 12px;height:27px;line-height:27px;overflow:hidden}.trumbowyg-dark .trumbowyg-modal-box label .trumbowyg-input-infos span{color:#eee;background-color:#2f2f2f;border-color:#222}.trumbowyg-dark .trumbowyg-modal-box label .trumbowyg-input-infos span.trumbowyg-msg-error{color:#e74c3c}.trumbowyg-dark .trumbowyg-modal-box label.trumbowyg-input-error input,.trumbowyg-dark .trumbowyg-modal-box label.trumbowyg-input-error textarea{border-color:#e74c3c}.trumbowyg-dark .trumbowyg-modal-box label input{border-color:#222;color:#eee;background:#333}.trumbowyg-dark .trumbowyg-modal-box label input:focus,.trumbowyg-dark .trumbowyg-modal-box label input:hover{border-color:#626262}.trumbowyg-dark .trumbowyg-modal-box label input:focus{background-color:#2f2f2f}.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit{background:#1b7943}.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:focus,.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:hover{background:#25a25a}.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-submit:active{background:#176437}.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset{background:#333;color:#ccc}.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:focus,.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:hover{background:#444}.trumbowyg-dark .trumbowyg-modal-box .trumbowyg-modal-button.trumbowyg-modal-reset:active{background:#111}.trumbowyg-dark .trumbowyg-overlay{background-color:rgba(15,15,15,.6)}.trumbowyg-editor table{width:100%}.trumbowyg-editor table td{border:1px dotted #e7eaec;padding:8px}.trumbowyg-dropdown-table table{margin:10px;display:inline-block}.trumbowyg-dropdown-table table td{display:inline-block;height:20px;width:20px;margin:1px;padding:0;background-color:#fff;-webkit-box-shadow:0 0 0 1px #cecece inset;box-shadow:0 0 0 1px #cecece inset}.trumbowyg-dropdown-table table td.active{background-color:#00b393;-webkit-box-shadow:none;box-shadow:none;cursor:pointer}.trumbowyg-dropdown-table .trumbowyg-table-size{text-align:center}.trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list),.trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list){max-width:276px;padding:7px 5px;overflow:initial}.trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button,.trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button{display:block;position:relative;float:left;text-indent:-9999px;height:20px;width:20px;border:1px solid #333;padding:0;margin:2px}.trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button:focus::after,.trumbowyg-dropdown-backColor:not(.trumbowyg-dropdown--color-list) button:hover::after,.trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button:focus::after,.trumbowyg-dropdown-foreColor:not(.trumbowyg-dropdown--color-list) button:hover::after{content:" ";display:block;position:absolute;top:-5px;left:-5px;width:27px;height:27px;background:inherit;border:1px solid #fff;-webkit-box-shadow:#000 0 0 2px;box-shadow:#000 0 0 2px;z-index:10}.trumbowyg-dropdown-backColor.trumbowyg-dropdown--color-list button:not(.trumbowyg-backColorRemove-dropdown-button){position:relative;color:#fff!important}.trumbowyg-dropdown-backColor.trumbowyg-dropdown--color-list button:not(.trumbowyg-backColorRemove-dropdown-button):focus::after,.trumbowyg-dropdown-backColor.trumbowyg-dropdown--color-list button:not(.trumbowyg-backColorRemove-dropdown-button):hover::after{content:" ";display:block;position:absolute;top:13px;left:0;width:0;height:0;border:5px solid transparent;border-left-color:#fff}.trumbowyg-dropdown-emoji{width:265px;padding:7px 0 7px 5px}.trumbowyg-dropdown-emoji svg{display:none!important}.trumbowyg-dropdown-emoji button{display:block;position:relative;float:left;height:26px;width:26px;padding:0;margin:2px;line-height:24px;text-align:center}.trumbowyg-dropdown-emoji button:focus::after,.trumbowyg-dropdown-emoji button:hover::after{display:block;position:absolute;top:-5px;left:-5px;height:27px;width:27px;background:inherit;-webkit-box-shadow:#000 0 0 2px;box-shadow:#000 0 0 2px;z-index:10;background-color:transparent}.trumbowyg .emoji{width:22px;height:22px;display:inline-block}.md-avatar{vertical-align:middle;width:50px;height:50px}.mix-tree-view .container{padding-right:0;padding-left:25px}.mix-tree-view .dropdown-menu{z-index:99999}.mix-tree-view .item{padding-bottom:2px;border-left:1px #eee solid}.mix-tree-view .item-fields{padding:12px 8px 0 26px}.sw-search{margin-right:0!important;margin-left:0!important}.sw-sidebar a{color:var(--text-color,#212529)}.ActiveUsers.is-increasing{-webkit-animation:a 3s;animation:a 3s}.ActiveUsers.is-decreasing{-webkit-animation:b 3s;animation:b 3s}@-webkit-keyframes a{10%{background-color:#ebffeb;border-color:rgba(0,128,0,.5);color:green}}@keyframes a{10%{background-color:#ebffeb;border-color:rgba(0,128,0,.5);color:green}}@-webkit-keyframes b{10%{background-color:#ffebeb;border-color:rgba(255,0,0,.5);color:red}}@keyframes b{10%{background-color:#ffebeb;border-color:rgba(255,0,0,.5);color:red}}.Chartjs{font-size:.85em}.Chartjs-figure{height:250px}.Chartjs-legend{list-style:none;margin:0;padding:1em 0 0;text-align:center}.Chartjs-legend>li{display:inline-block;padding:.25em .5em}.Chartjs-legend>li>i{display:inline-block;height:1em;margin-right:.5em;vertical-align:-.1em;width:1em}@media (min-width:570px){.Chartjs-figure{margin-right:1.5em}}.attr-set-value-item:last-child{border-bottom:0!important}.mix-sel-icons .dropdown-menu{left:-90px!important}.mix-sel-icons .dropdown-menu.show{max-height:250px;overflow:scroll}.mix-sel-icons .list-icon{max-height:150px;overflow-y:scroll;overflow-x:hidden}.img-preview,.sr-only,.user .username,.user a{overflow:hidden}.custom-image{max-width:30vw}#modal-posts img{height:30px}.monaco-editor-full{position:fixed!important;left:0;top:0;width:100%;z-index:2222}.monaco-editor-full .monaco-editor-btn-group-full{z-index:2223;position:fixed;top:15px;right:25px}*{box-sizing:border-box}@-moz-keyframes rotation{from{-moz-transform:rotate(0);-moz-transform-origin:85% 90%}to{-moz-transform:rotate(359deg);-moz-transform-origin:85% 90%}}@-webkit-keyframes rotation{from{-webkit-transform:rotate(0);-webkit-transform-origin:85% 90%}to{-webkit-transform:rotate(359deg);-webkit-transform-origin:85% 90%}}[class*=" icon-"].loading-indicator{float:left;display:none;font-size:24px;margin:7px;color:#ec173a}[class*=" icon-"].loading-indicator.on{display:block;-webkit-animation:rotation 1.5s infinite linear;-moz-animation:rotation 1.5s infinite linear}.browser-warning,.user .icon-phone-4{display:none}.user-list{padding:9px 0}.user:hover .icon-phone-4{display:inline-block}.user a{position:relative}.user .username{white-space:nowrap;text-overflow:ellipsis;padding-right:16px}.user .helper{position:absolute;right:10px;top:5px}.actions{display:none}[data-mode=incall] .actions,[data-mode=calling] .actions{display:block}.actions .hangup{width:100%}.actions .status{text-align:center;margin-bottom:20px}.video{height:100%;width:100%;border:2px solid #000}.cool-background{background:linear-gradient(135deg,#eceddc 25%,transparent 25%) -50px 0,linear-gradient(225deg,#eceddc 25%,transparent 25%) -50px 0,linear-gradient(315deg,#eceddc 25%,transparent 25%),linear-gradient(45deg,#eceddc 25%,transparent 25%);background-size:100px 100px;background-color:#ec173a}.alertify-cover{background:rgba(0,0,0,.8)}.simpleDemo ul[dnd-list]{min-height:42px;padding-left:0}.simpleDemo ul[dnd-list] .dndDraggingSource{display:none}.simpleDemo ul[dnd-list] .dndPlaceholder{background-color:#ddd;display:block;min-height:42px}.simpleDemo ul[dnd-list] li{background-color:#fff;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;display:block;padding:10px 15px;margin-bottom:-1px}.simpleDemo ul[dnd-list] li.selected{background-color:#dff0d8;color:#3c763d}@media (min-width:576px){.jumbotron{padding:2rem 1rem!important}}.alert.position-sticky{bottom:10px}.portal-menus ul[dnd-list],.portal-menus ul[dnd-list]>li{position:relative}.portal-menus ul[dnd-list]{min-height:42px;padding-left:0}.portal-menus ul[dnd-list] .dndDraggingSource{display:none}.portal-menus ul[dnd-list] .dndPlaceholder{display:block;background-color:#ddd;padding:10px 15px;min-height:42px}.portal-menus ul[dnd-list] li{background-color:#fff;border:1px solid #ddd;border-top-right-radius:4px;border-top-left-radius:4px;display:block;margin-bottom:-1px;position:relative;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.portal-menus ul[dnd-list] li dnd-nodrag{display:block;padding:10px 15px}.portal-menus .handle{cursor:move}.img-container,.img-preview{background-color:#f7f7f7;text-align:center;width:100%}.img-container{margin-bottom:1rem;max-height:497px;min-height:200px}@media (min-width:768px){.img-container{min-height:497px}}.img-container>img{max-width:100%}.docs-preview{margin-right:-1rem}.img-preview{float:left;margin-bottom:.5rem;margin-right:.5rem}.img-preview>img{max-width:100%}.preview-lg{height:9rem;width:16rem}.preview-md{height:4.5rem;width:8rem}.preview-sm{height:2.25rem;width:4rem}.preview-xs{height:1.125rem;margin-right:0;width:2rem}.docs-data>.input-group{margin-bottom:.5rem}.docs-data>.input-group>label{justify-content:center;min-width:5rem}.docs-data>.input-group>span{justify-content:center;min-width:3rem}.docs-buttons>.btn,.docs-buttons>.btn-group,.docs-buttons>.form-control{margin-bottom:.5rem;margin-right:.25rem}.docs-toggles>.btn,.docs-toggles>.btn-group,.docs-toggles>.dropdown{margin-bottom:.5rem}.custom-file-val{position:absolute;bottom:0}.sw-content{width:100%!important}input[type=date]::-webkit-inner-spin-button{display:none}.ace_razor{background-color:#ff0}.loader-container{top:0;left:0;width:100%;height:100%;position:fixed;background-color:#041323;opacity:.2;z-index:9999}#loader,.cm-fat-cursor div.CodeMirror-cursors{z-index:1}#loader{position:absolute;left:50%;top:50%;margin:-75px 0 0 -75px;border:16px solid #f3f3f3;border-radius:50%;border-top:16px solid #3498db;width:120px;height:120px;-webkit-animation:spin 2s linear infinite;animation:spin 2s linear infinite}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@media screen and (max-width:580px){.hide-on-mb{display:none}}#modal-files img.preview{width:100%;height:auto}@media screen and (min-width:580px){.hide-on-desktop{display:none}}@media screen and (max-width:991px){.navbar .navbar-nav{min-height:unset}}@font-face{font-family:'Nucleo Outline';src:url(../fonts/nucleo-outline.eot);src:url(../fonts/nucleo-outline.eot) format("embedded-opentype"),url(../fonts/nucleo-outline.woff2) format("woff2"),url(../fonts/nucleo-outline.woff) format("woff"),url(../fonts/nucleo-outline.ttf) format("truetype"),url(../fonts/nucleo-outline.svg) format("svg");font-weight:400;font-style:normal}.now-ui-icons{display:inline-block;font:normal normal normal 14px/1 'Nucleo Outline';font-size:inherit;speak:none;text-transform:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.now-ui-icons.circle{padding:.33333333em;vertical-align:-16%;background-color:#eee;border-radius:50%}.bootstrap-tagsinput,.fa-stack{vertical-align:middle;display:inline-block}.nc-icon-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.nc-icon-ul>li{position:relative}.nc-icon-ul>li>.now-ui-icons{position:absolute;left:-1.57142857em;top:.14285714em;text-align:center}.fa-stack,.fa-ul>li{position:relative}.nc-icon-ul>li>.now-ui-icons.circle{top:-.19047619em;left:-1.9047619em}.now-ui-icons.spin{-webkit-animation:nc-icon-spin 2s infinite linear;-moz-animation:nc-icon-spin 2s infinite linear;animation:nc-icon-spin 2s infinite linear}@-webkit-keyframes nc-icon-spin{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(360deg)}}@-moz-keyframes nc-icon-spin{0%{-moz-transform:rotate(0)}100%{-moz-transform:rotate(360deg)}}@keyframes nc-icon-spin{0%{-webkit-transform:rotate(0);-moz-transform:rotate(0);-ms-transform:rotate(0);-o-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}}.now-ui-icons.ui-1_check:before{content:"\ea22"}.now-ui-icons.ui-1_email-85:before{content:"\ea2a"}.now-ui-icons.arrows-1_cloud-download-93:before{content:"\ea21"}.now-ui-icons.arrows-1_cloud-upload-94:before{content:"\ea24"}.now-ui-icons.arrows-1_minimal-down:before{content:"\ea39"}.now-ui-icons.arrows-1_minimal-left:before{content:"\ea3a"}.now-ui-icons.arrows-1_minimal-right:before{content:"\ea3b"}.now-ui-icons.arrows-1_minimal-up:before{content:"\ea3c"}.now-ui-icons.arrows-1_refresh-69:before{content:"\ea44"}.now-ui-icons.arrows-1_share-66:before{content:"\ea4c"}.now-ui-icons.business_badge:before{content:"\ea09"}.now-ui-icons.business_bank:before{content:"\ea0a"}.now-ui-icons.business_briefcase-24:before{content:"\ea13"}.now-ui-icons.business_bulb-63:before{content:"\ea15"}.now-ui-icons.business_chart-bar-32:before{content:"\ea1e"}.now-ui-icons.business_chart-pie-36:before{content:"\ea1f"}.now-ui-icons.business_globe:before{content:"\ea2f"}.now-ui-icons.business_money-coins:before{content:"\ea40"}.now-ui-icons.clothes_tie-bow:before{content:"\ea5b"}.now-ui-icons.design_vector:before{content:"\ea61"}.now-ui-icons.design_app:before{content:"\ea08"}.now-ui-icons.design_bullet-list-67:before{content:"\ea14"}.now-ui-icons.design_image:before{content:"\ea33"}.now-ui-icons.design_palette:before{content:"\ea41"}.now-ui-icons.design_scissors:before{content:"\ea4a"}.now-ui-icons.design-2_html5:before{content:"\ea32"}.now-ui-icons.design-2_ruler-pencil:before{content:"\ea48"}.now-ui-icons.emoticons_satisfied:before{content:"\ea49"}.now-ui-icons.files_box:before{content:"\ea12"}.now-ui-icons.files_paper:before{content:"\ea43"}.now-ui-icons.files_single-copy-04:before{content:"\ea52"}.now-ui-icons.health_ambulance:before{content:"\ea07"}.now-ui-icons.loader_gear:before{content:"\ea4e"}.now-ui-icons.loader_refresh:before{content:"\ea44"}.now-ui-icons.location_bookmark:before{content:"\ea10"}.now-ui-icons.location_compass-05:before{content:"\ea25"}.now-ui-icons.location_map-big:before{content:"\ea3d"}.now-ui-icons.location_pin:before{content:"\ea47"}.now-ui-icons.location_world:before{content:"\ea63"}.now-ui-icons.media-1_album:before{content:"\ea02"}.now-ui-icons.media-1_button-pause:before{content:"\ea16"}.now-ui-icons.media-1_button-play:before{content:"\ea18"}.now-ui-icons.media-1_button-power:before{content:"\ea19"}.now-ui-icons.media-1_camera-compact:before{content:"\ea1c"}.now-ui-icons.media-2_note-03:before{content:"\ea3f"}.now-ui-icons.media-2_sound-wave:before{content:"\ea57"}.now-ui-icons.objects_diamond:before{content:"\ea29"}.now-ui-icons.objects_globe:before{content:"\ea2f"}.now-ui-icons.objects_key-25:before{content:"\ea38"}.now-ui-icons.objects_planet:before{content:"\ea46"}.now-ui-icons.objects_spaceship:before{content:"\ea55"}.now-ui-icons.objects_support-17:before{content:"\ea56"}.now-ui-icons.objects_umbrella-13:before{content:"\ea5f"}.now-ui-icons.education_agenda-bookmark:before{content:"\ea01"}.now-ui-icons.education_atom:before{content:"\ea0c"}.now-ui-icons.education_glasses:before{content:"\ea2d"}.now-ui-icons.education_hat:before{content:"\ea30"}.now-ui-icons.education_paper:before{content:"\ea42"}.now-ui-icons.shopping_bag-16:before{content:"\ea0d"}.now-ui-icons.shopping_basket:before{content:"\ea0b"}.now-ui-icons.shopping_box:before{content:"\ea11"}.now-ui-icons.shopping_cart-simple:before{content:"\ea1d"}.now-ui-icons.shopping_credit-card:before{content:"\ea28"}.now-ui-icons.shopping_delivery-fast:before{content:"\ea27"}.now-ui-icons.shopping_shop:before{content:"\ea50"}.now-ui-icons.shopping_tag-content:before{content:"\ea59"}.now-ui-icons.sport_trophy:before{content:"\ea5d"}.now-ui-icons.sport_user-run:before{content:"\ea60"}.now-ui-icons.tech_controller-modern:before{content:"\ea26"}.now-ui-icons.tech_headphones:before{content:"\ea31"}.now-ui-icons.tech_laptop:before{content:"\ea36"}.now-ui-icons.tech_mobile:before{content:"\ea3e"}.now-ui-icons.tech_tablet:before{content:"\ea58"}.now-ui-icons.tech_tv:before{content:"\ea5e"}.now-ui-icons.tech_watch-time:before{content:"\ea62"}.now-ui-icons.text_align-center:before{content:"\ea05"}.now-ui-icons.text_align-left:before{content:"\ea06"}.now-ui-icons.text_bold:before{content:"\ea0e"}.now-ui-icons.text_caps-small:before{content:"\ea1b"}.now-ui-icons.gestures_tap-01:before{content:"\ea5a"}.now-ui-icons.transportation_air-baloon:before{content:"\ea03"}.now-ui-icons.transportation_bus-front-12:before{content:"\ea17"}.now-ui-icons.travel_info:before{content:"\ea04"}.now-ui-icons.travel_istanbul:before{content:"\ea34"}.now-ui-icons.ui-1_bell-53:before{content:"\ea0f"}.now-ui-icons.ui-1_calendar-60:before{content:"\ea1a"}.now-ui-icons.ui-1_lock-circle-open:before{content:"\ea35"}.now-ui-icons.ui-1_send:before{content:"\ea4d"}.now-ui-icons.ui-1_settings-gear-63:before{content:"\ea4e"}.now-ui-icons.ui-1_simple-add:before{content:"\ea4f"}.now-ui-icons.ui-1_simple-delete:before{content:"\ea54"}.now-ui-icons.ui-1_simple-remove:before{content:"\ea53"}.now-ui-icons.ui-1_zoom-bold:before{content:"\ea64"}.now-ui-icons.ui-2_chat-round:before{content:"\ea20"}.now-ui-icons.ui-2_favourite-28:before{content:"\ea2b"}.now-ui-icons.ui-2_like:before{content:"\ea37"}.now-ui-icons.ui-2_settings-90:before{content:"\ea4b"}.now-ui-icons.ui-2_time-alarm:before{content:"\ea5c"}.now-ui-icons.users_circle-08:before{content:"\ea23"}.now-ui-icons.users_single-02:before{content:"\ea51"}.bootstrap-tagsinput{background-color:#fff;border:1px solid #ccc;box-shadow:inset 0 1px 1px rgba(0,0,0,.075);padding:4px 6px;color:#555;border-radius:4px;max-width:100%;line-height:22px;cursor:text}.bootstrap-tagsinput input,.bootstrap-tagsinput input:focus{border:none;box-shadow:none}.bootstrap-tagsinput input{outline:0;background-color:transparent;padding:0 6px;margin:0;width:auto;max-width:inherit}.bootstrap-tagsinput.form-control input::-moz-placeholder{color:#777;opacity:1}.bootstrap-tagsinput.form-control input:-ms-input-placeholder{color:#777}.bootstrap-tagsinput.form-control input::-webkit-input-placeholder{color:#777}.bootstrap-tagsinput .tag{margin-right:2px;color:#fff}.bootstrap-tagsinput .tag [data-role=remove]{margin-left:8px;cursor:pointer}.bootstrap-tagsinput .tag [data-role=remove]:after{content:"x";padding:0 2px}.bootstrap-tagsinput .tag [data-role=remove]:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 1px 2px rgba(0,0,0,.05)}.bootstrap-tagsinput .tag [data-role=remove]:hover:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}/*! * Font Awesome Free 5.12.1 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) */.fa,.fab,.fad,.fal,.far,.fas{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-block;font-style:normal;font-variant:normal;text-rendering:auto;line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x,.fa-stack-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{text-align:center;width:1.25em}.fa-ul{list-style-type:none;margin-left:2.5em;padding-left:0}.fa-li{left:-2em;position:absolute;text-align:center;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{-webkit-filter:none;filter:none}.fa-stack{height:2em;line-height:2em;width:2.5em}.CodeMirror pre,.fa-stack-1x{line-height:inherit}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;text-align:center;width:100%}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adobe:before{content:"\f778"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-bahai:before{content:"\f666"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-alt:before{content:"\f422"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-cotton-bureau:before{content:"\f89e"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dailymotion:before{content:"\f952"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-alt:before{content:"\f424"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\f907"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-ideal:before{content:"\f913"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-instagram-square:before{content:"\f955"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microblog:before{content:"\f91a"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mixer:before{content:"\f956"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse:before{content:"\f8cc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-square:before{content:"\f91e"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopify:before{content:"\f957"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swift:before{content:"\f8e1"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\f941"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\f949"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-wave-square:before{content:"\f83e"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}.sr-only{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;padding:0;position:absolute;width:1px}.sr-only-focusable:active,.sr-only-focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:400;font-display:auto;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:auto;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.fab,.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:auto;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900}.CodeMirror{height:300px;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-gutter-filler,.CodeMirror-scrollbar-filler{background-color:#fff}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:#000}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid #000;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor-mark{background-color:rgba(20,255,20,.5);-webkit-animation:blink 1.06s steps(1) infinite;-moz-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite}.cm-animate-fat-cursor{width:auto;border:0;-webkit-animation:blink 1.06s steps(1) infinite;-moz-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite;background-color:#7e7}@-moz-keyframes blink{50%{background-color:transparent}}@-webkit-keyframes blink{50%{background-color:transparent}}@keyframes blink{50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.cm-link,.tui-editor-contents a{text-decoration:underline}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:-20px;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:#00f}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-type,.cm-s-default .cm-variable-3{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta,.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-invalidchar,.cm-s-default .cm-error{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:#fff}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;height:100%;outline:0;position:relative}.CodeMirror-sizer{position:relative;border-right:30px solid transparent}.CodeMirror-gutter-filler,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-vscrollbar{position:absolute;z-index:6;display:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-30px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:0 0!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-width:0;background:0 0;font-family:inherit;font-size:inherit;margin:0;white-space:pre;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-font-variant-ligatures:contextual;font-variant-ligatures:contextual}.CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:0}.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber,.CodeMirror-scroll,.CodeMirror-sizer{-moz-box-sizing:content-box;box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}.CodeMirror-focused div.CodeMirror-cursors,div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.tui-editor-contents .task-list-item:before,.tui-editor-contents ol li.task-list-item:before,.tui-editor-contents pre ul li:before,.tui-editor-contents ul li.task-list-item:before,.tui-editor-defaultUI-toolbar:after,.tui-editor:after,.tui-tooltip .arrow{content:""}span.CodeMirror-selectedtext{background:0 0}.hljs{display:block;overflow-x:auto;padding:.5em;color:#333;background:#f8f8f8}.hljs-comment,.hljs-quote{color:#998;font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-subst{color:#333;font-weight:700}.hljs-literal,.hljs-number,.hljs-tag .hljs-attr,.hljs-template-variable,.hljs-variable{color:teal}.hljs-doctag,.hljs-string{color:#d14}.hljs-section,.hljs-selector-id,.hljs-title{color:#900;font-weight:700}.hljs-subst{font-weight:400}.hljs-class .hljs-title,.hljs-type{color:#458;font-weight:700}.hljs-attribute,.hljs-name,.hljs-tag{color:navy;font-weight:400}.hljs-link,.hljs-regexp{color:#009926}.hljs-bullet,.hljs-symbol{color:#990073}.hljs-built_in,.hljs-builtin-name{color:#0086b3}.hljs-meta{color:#999;font-weight:700}.hljs-deletion{background:#fdd}.hljs-addition{background:#dfd}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.CodeMirror{font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif}.tui-editor-contents :not(table){line-height:160%;box-sizing:content-box}.tui-editor-contents address,.tui-editor-contents cite,.tui-editor-contents dfn,.tui-editor-contents em,.tui-editor-contents i,.tui-editor-contents var{font-style:italic}.tui-editor-contents strong{font-weight:700}.tui-editor-contents p{margin:10px 0;color:#555}.tui-editor-contents>div>div:first-of-type h1,.tui-editor-contents>h1:first-of-type{margin-top:14px}.tui-editor-contents h1,.tui-editor-contents h2,.tui-editor-contents h3,.tui-editor-contents h5{font-weight:700}.tui-editor-contents h1{font-size:1.6rem;line-height:28px;border-bottom:3px double #999;margin:52px 0 15px;padding-bottom:7px;color:#000}.tui-editor-contents h2{font-size:1.3rem;line-height:23px;border-bottom:1px solid #dbdbdb;margin:30px 0 13px;padding-bottom:7px;color:#333}.tui-editor-contents h3,.tui-editor-contents h4{font-size:1.2rem;line-height:18px;margin:20px 0 2px;color:#333}.tui-editor-contents h5,.tui-editor-contents h6{font-size:1rem;line-height:17px;margin:10px 0 -4px;color:#333}.tui-editor-contents blockquote{margin:15px 0;border-left:4px solid #ddd;padding:0 15px;color:#777}.tui-editor-contents blockquote>:first-child{margin-top:0}.tui-editor-contents blockquote>:last-child{margin-bottom:0}.tui-editor-contents code,.tui-editor-contents pre{font-family:Consolas,Courier,"Apple SD 산돌고딕 Neo",-apple-system,"Lucida Grande","Apple SD Gothic Neo","맑은 고딕","Malgun Gothic","Segoe UI","돋움",dotum,sans-serif;border:0;border-radius:0}.te-input-language input,.te-ww-block-overlay.code-block-header,.tui-editor-defaultUI{font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif}.tui-editor-contents pre{margin:2px 0 8px;padding:18px;background-color:#f5f7f8}.tui-editor-contents code{color:#c1788b;padding:4px 4px 2px 0;letter-spacing:-.3px}.tui-editor-contents pre code{padding:0;color:inherit;white-space:pre-wrap;background-color:transparent}.tui-editor-contents pre.addon{border:1px solid #e8ebed;background-color:#fff}.tui-editor-contents img{margin:4px 0 10px;box-sizing:border-box;vertical-align:top;max-width:100%}.tui-editor-contents table{margin:2px 0 14px;color:#555;width:auto;border-collapse:collapse;box-sizing:border-box}.tui-editor-contents table td,.tui-editor-contents table th{height:32px;padding:5px 14px 5px 12px}.tui-editor-contents table td{border:1px solid #eaeaea}.tui-editor-contents table th{border:1px solid #72777b;border-top:0;background-color:#7b8184;font-weight:300;color:#fff;padding-top:6px}.tui-editor-contents dir,.tui-editor-contents menu,.tui-editor-contents ol,.tui-editor-contents ul{display:block;list-style-type:disc;padding-left:17px;margin:6px 0 10px;color:#555}.tui-editor-contents ol{list-style-type:decimal}.tui-editor-contents ol ol,.tui-editor-contents ol ul,.tui-editor-contents ul ol,.tui-editor-contents ul ul{margin-top:0!important;margin-bottom:0!important}.tui-editor-contents ol li,.tui-editor-contents ul li{position:relative}.tui-editor-contents ul p,ol p{margin:0}.tui-editor-contents hr{border-top:1px solid #eee;margin:16px 0}.tui-editor-contents a{color:#5286bc}.tui-editor-contents a:hover{color:#007cff}.tui-editor-contents{font-size:13px;margin:0;padding:0}.tui-editor-contents .task-list-item{border:0;list-style:none;padding-left:22px;margin-left:-22px}.tui-editor-contents .task-list-item:before{background-repeat:no-repeat;background-size:16px 16px;background-position:center;height:18px;width:18px;position:absolute;left:0;top:1px;cursor:pointer;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAADdJREFUKBVjvHv37n8GMgALSI+SkhJJWu/du8fARJIOJMWjGpECA505GjjoIYLEB6dVUNojFQAA/1MJUFWet/4AAAAASUVORK5CYII=)}.tui-editor-contents .task-list-item.checked:before{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAAXNSR0IArs4c6QAAAMpJREFUKBVjjJ/64D8DGYCJDD1gLbTVyM3OxJDiJMzAxcYIdyALnIWDAdJU7i/OICfCxsDMxMgwc88bwk5F1vTs/W+GFUffwY2H+1FBlI2hLliCQYCbGSyJrqlzwwuGj9//YWoMtRBgUBJnZ6gMEGeQFWaFOw9kE7omkG5GWDyCPF7mJ86gIMbO8P//fwZGRkYGXJpAGuFO/fbrP0PXppcMD179JKgJRSOIA9N8/NZXrM4DqYEBjOgAaYYFOUwRNhruVGyS+MTI1ggAx8NTGcUtFVQAAAAASUVORK5CYII=)}.tui-editor-contents .task-list-item .task-list-item-checkbox,.tui-editor-contents .task-list-item input[type=checkbox]{margin-left:-17px;margin-right:3.8px;margin-top:3px}.tui-editor-contents-placeholder:before{content:attr(data-placeholder);color:grey;line-height:160%;position:absolute}.auto-height,.auto-height .tui-editor-defaultUI{height:auto}.auto-height .tui-editor{position:relative}:not(.auto-height)>.tui-editor-defaultUI,:not(.auto-height)>.tui-editor-defaultUI>.te-editor-section{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}:not(.auto-height)>.tui-editor-defaultUI>.te-editor-section{-ms-flex:1;flex:1}.tui-editor-defaultUI-toolbar:after,.tui-editor:after{display:block;height:0;clear:both}.tui-editor{position:absolute;line-height:1;color:#181818;width:100%;height:inherit}.te-editor-section{min-height:0;position:relative;height:inherit}.te-md-container{display:none;overflow:hidden;height:100%}.te-md-container .te-editor{line-height:1.5}.te-md-container .te-editor,.te-md-container .te-preview{box-sizing:border-box;padding:0;height:inherit}.te-md-container .CodeMirror{font-size:13px;height:inherit}.te-md-container .te-preview{overflow:auto;padding:0 25px;height:100%}.te-md-container .te-preview>p:first-child{margin-top:0!important}.te-md-container .te-preview .tui-editor-contents{padding-top:11px}.tui-editor .te-preview-style-tab>.te-editor,.tui-editor .te-preview-style-tab>.te-preview{float:left;width:100%;display:none}.tui-editor .te-preview-style-tab>.te-tab-active{display:block}.tui-editor .te-preview-style-vertical>.te-tab-section{display:none}.tui-editor .te-preview-style-tab>.te-tab-section{display:block}.tui-editor .te-preview-style-vertical .te-editor,.tui-editor .te-preview-style-vertical .te-preview{float:left;width:50%}.tui-editor .te-md-splitter{display:none;position:absolute;left:50%;top:0;height:100%;width:1px;border-left:1px solid #e5e5e5}.tui-editor .te-preview-style-vertical .te-md-splitter{display:block}.te-ww-container{display:none;overflow:hidden;z-index:10;height:inherit;background-color:#fff}.te-ww-container>.te-editor{overflow:auto;height:inherit}.te-ww-container .tui-editor-contents:focus{outline:0}.te-ww-container .tui-editor-contents{padding:0 25px}.te-ww-container .tui-editor-contents:first-child{box-sizing:border-box;margin:0;padding:16px 25px 0;height:inherit}.te-ww-container .tui-editor-contents:last-child{margin-bottom:16px}.te-md-mode .te-md-container,.te-ww-mode .te-ww-container{display:block;z-index:100}.tui-editor-defaultUI.te-hide,.tui-editor.te-hide{display:none}.tui-editor-defaultUI .CodeMirror-lines{padding-top:13px;padding-bottom:13px}.tui-editor-defaultUI .CodeMirror-line{padding-left:25px;padding-right:25px}.tui-editor-defaultUI .CodeMirror pre.CodeMirror-placeholder{padding-left:25px;color:grey}.tui-editor-defaultUI .CodeMirror-scroll{cursor:text}.tui-editor-contents td.te-cell-selected{background-color:#d8dfec}.tui-editor-contents td.te-cell-selected::selection{background-color:#d8dfec}.tui-editor-contents th.te-cell-selected{background-color:#908f8f}.tui-editor-contents th.te-cell-selected::selection{background-color:#908f8f}.tui-editor-defaultUI{position:relative;border:1px solid #e5e5e5;height:100%}.tui-editor-defaultUI button{color:#fff;padding:0 14px 0 15px;height:28px;font-size:12px;border:none;cursor:pointer;outline:0}.tui-editor-defaultUI button.te-ok-button{background-color:#4b96e6}.tui-editor-defaultUI button.te-close-button{background-color:#777}.tui-editor-defaultUI-toolbar{padding:0 25px;height:31px;background-color:#fff;border:0;overflow:hidden}.tui-toolbar-divider{float:left;display:inline-block;width:1px;height:14px;background-color:#ddd;margin:9px 6px}.tui-toolbar-button-group{height:28px;border-right:1px solid #d9d9d9;float:left}.te-toolbar-section{height:32px;box-sizing:border-box;border-bottom:1px solid #e5e5e5}.tui-editor-defaultUI-toolbar button{float:left;box-sizing:border-box;outline:0;cursor:pointer;background-color:#fff;width:22px;height:22px;padding:3px;border-radius:0;margin:5px 3px;border:1px solid #fff}.tui-editor-defaultUI-toolbar button.active,.tui-editor-defaultUI-toolbar button:active,.tui-editor-defaultUI-toolbar button:hover{border:1px solid #aaa;background-color:#fff}.tui-editor-defaultUI-toolbar button:first-child{margin-left:0}.tui-editor-defaultUI-toolbar button:last-child{margin-right:0}.tui-editor-defaultUI-toolbar button.tui-scrollsync{width:auto;color:#777;border:0}.tui-editor-defaultUI button.tui-scrollsync:after{content:"Scroll off"}.tui-editor-defaultUI button.tui-scrollsync.active{color:#125de6;font-weight:700}.tui-editor-defaultUI button.tui-scrollsync.active:after{content:"Scroll on"}.tui-editor-defaultUI .te-mode-switch-section{background-color:#f9f9f9;border-top:1px solid #e5e5e5;height:20px;font-size:12px}.tui-editor-defaultUI .te-mode-switch{float:right;height:100%}.tui-editor-defaultUI .te-switch-button{width:92px;height:inherit;background:#e5e5e5;outline:0;color:#a0aabf;cursor:pointer;border:0;border-left:1px solid #ddd;border-right:1px solid #ddd}.tui-editor-defaultUI .te-switch-button.active{background-color:#fff;color:#000}.tui-editor-defaultUI .te-markdown-tab-section{float:left;height:31px;background:#fff}.te-markdown-tab-section .te-tab{margin:0 -7px 0 24px;background:#fff}.tui-editor-defaultUI .te-tab button{box-sizing:border-box;line-height:100%;position:relative;cursor:pointer;z-index:1;font-size:13px;background-color:#f9f9f9;border:1px solid #e5e5e5;border-top:0;padding:0 9px;color:#777;border-radius:0;outline:0}.te-markdown-tab-section .te-tab button:last-child{margin-left:-1px}.te-markdown-tab-section .te-tab button.te-tab-active,.te-markdown-tab-section .te-tab button:hover.te-tab-active{background-color:#fff;color:#333;border-bottom:1px solid #fff;z-index:2}.te-markdown-tab-section .te-tab button:hover{background-color:#fff;color:#333}.tui-popup-modal-background{background-color:rgba(202,202,202,.6);position:fixed;margin:0;left:0;top:0;width:100%;height:100%;z-index:9999}.tui-popup-modal-background.fit-window .tui-popup-wrapper,.tui-popup-wrapper.fit-window{width:100%;height:100%}.tui-popup-wrapper{width:500px;margin-right:auto;border:1px solid #cacaca;background:#fff;z-index:9999}.tui-popup-modal-background .tui-popup-wrapper{position:absolute;margin:auto;top:0;right:0;bottom:0;left:0}.tui-popup-header{padding:10px;height:auto;line-height:normal;position:relative;border-bottom:1px solid #cacaca}.tui-popup-header .tui-popup-header-buttons{float:right}.tui-popup-header .tui-popup-header-buttons button{padding:0;background-color:transparent;background-size:cover;float:left}.tui-popup-header .tui-popup-close-button{margin:3px;width:13px;height:13px;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIxMHB4IiBoZWlnaHQ9IjEwcHgiIHZpZXdCb3g9IjAgMCAxMCAxMCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT5GMjc2Qzc4MC0zM0JBLTQ3MTItQTM3OC04RkQwQUNDOTFDRTk8L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggc2tldGNodG9vbC48L2Rlc2M+ICAgIDxkZWZzPjwvZGVmcz4gICAgPGcgaWQ9IlN5bWJvbHMiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiAgICAgICAgPGcgaWQ9ImxuYi1mb2xkZXItZGVsIiBmaWxsLXJ1bGU9Im5vbnplcm8iIGZpbGw9IiM3Nzc3NzciPiAgICAgICAgICAgIDxwYXRoIGQ9Ik01LDMuNTg1Nzg2NDQgTDEuNzA3MTA2NzgsMC4yOTI4OTMyMTkgTDAuMjkyODkzMjE5LDEuNzA3MTA2NzggTDMuNTg1Nzg2NDQsNSBMMC4yOTI4OTMyMTksOC4yOTI4OTMyMiBMMS43MDcxMDY3OCw5LjcwNzEwNjc4IEw1LDYuNDE0MjEzNTYgTDguMjkyODkzMjIsOS43MDcxMDY3OCBMOS43MDcxMDY3OCw4LjI5Mjg5MzIyIEw2LjQxNDIxMzU2LDUgTDkuNzA3MTA2NzgsMS43MDcxMDY3OCBMOC4yOTI4OTMyMiwwLjI5Mjg5MzIxOSBMNSwzLjU4NTc4NjQ0IFoiIGlkPSJDb21iaW5lZC1TaGFwZSI+PC9wYXRoPiAgICAgICAgPC9nPiAgICA8L2c+PC9zdmc+)}.tui-popup-header .tui-popup-title{font-size:13px;font-weight:700;color:#333;vertical-align:bottom}.tui-popup-body{padding:15px;font-size:12px}.tui-editor-popup{position:absolute;top:30px;left:50%;margin-left:-250px}.tui-editor-popup.tui-popup-modal-background{position:fixed;top:0;left:0;margin:0}.tui-editor-popup .tui-popup-body label{font-weight:700;color:#666;display:block;margin:10px 0 5px}.tui-editor-popup .tui-popup-body .te-button-section{margin-top:15px}.tui-editor-popup .tui-popup-body input[type=file],.tui-editor-popup .tui-popup-body input[type=text]{padding:4px 10px;border:1px solid #bfbfbf;box-sizing:border-box;width:100%}.tui-editor-popup .tui-popup-body input.wrong{border-color:red}.te-popup-add-link .tui-popup-wrapper{height:219px}.te-popup-add-image .tui-popup-wrapper{height:243px}.te-popup-add-image .te-tab{display:block;background:0 0;border-bottom:1px solid #ebebeb;margin-bottom:8px}.te-dropdown-toolbar .tui-toolbar-divider,.te-popup-add-image .te-file-type,.te-popup-add-image .te-url-type,.tui-popup-color .tui-colorpicker-container .tui-colorpicker-palette-toggle-slider{display:none}.te-popup-add-image div.te-tab-active,.te-popup-add-image form.te-tab-active{display:block}.te-popup-add-image .te-tab button{border:1px solid #ccc;background:#eee;min-width:100px;margin-left:-1px;border-bottom:0;border-radius:3px 3px 0 0}.te-popup-add-image .te-tab button.te-tab-active{background:#fff}.te-popup-add-table .te-table-selection{position:relative}.te-popup-add-table .te-table-body{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAARCAYAAAAougcOAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAOklEQVQ4EWO8e/fuPwYGBkYgphlgAZmspKREMwtABjPR1HSo4aOWkBTKo8E1GlwkhQBJikdT1wgNLgAMSwQgckFvTgAAAABJRU5ErkJggg==)}.te-popup-add-table .te-table-header{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAARCAYAAAAougcOAAAC7mlDQ1BJQ0MgUHJvZmlsZQAAeAGFVM9rE0EU/jZuqdAiCFprDrJ4kCJJWatoRdQ2/RFiawzbH7ZFkGQzSdZuNuvuJrWliOTi0SreRe2hB/+AHnrwZC9KhVpFKN6rKGKhFy3xzW5MtqXqwM5+8943731vdt8ADXLSNPWABOQNx1KiEWlsfEJq/IgAjqIJQTQlVdvsTiQGQYNz+Xvn2HoPgVtWw3v7d7J3rZrStpoHhP1A4Eea2Sqw7xdxClkSAog836Epx3QI3+PY8uyPOU55eMG1Dys9xFkifEA1Lc5/TbhTzSXTQINIOJT1cVI+nNeLlNcdB2luZsbIEL1PkKa7zO6rYqGcTvYOkL2d9H5Os94+wiHCCxmtP0a4jZ71jNU/4mHhpObEhj0cGDX0+GAVtxqp+DXCFF8QTSeiVHHZLg3xmK79VvJKgnCQOMpkYYBzWkhP10xu+LqHBX0m1xOv4ndWUeF5jxNn3tTd70XaAq8wDh0MGgyaDUhQEEUEYZiwUECGPBoxNLJyPyOrBhuTezJ1JGq7dGJEsUF7Ntw9t1Gk3Tz+KCJxlEO1CJL8Qf4qr8lP5Xn5y1yw2Fb3lK2bmrry4DvF5Zm5Gh7X08jjc01efJXUdpNXR5aseXq8muwaP+xXlzHmgjWPxHOw+/EtX5XMlymMFMXjVfPqS4R1WjE3359sfzs94i7PLrXWc62JizdWm5dn/WpI++6qvJPmVflPXvXx/GfNxGPiKTEmdornIYmXxS7xkthLqwviYG3HCJ2VhinSbZH6JNVgYJq89S9dP1t4vUZ/DPVRlBnM0lSJ93/CKmQ0nbkOb/qP28f8F+T3iuefKAIvbODImbptU3HvEKFlpW5zrgIXv9F98LZua6N+OPwEWDyrFq1SNZ8gvAEcdod6HugpmNOWls05Uocsn5O66cpiUsxQ20NSUtcl12VLFrOZVWLpdtiZ0x1uHKE5QvfEp0plk/qv8RGw/bBS+fmsUtl+ThrWgZf6b8C8/UXAeIuJAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAOklEQVQ4EWO8e/fuPwYGBkYgphlgAZksLCxMMwtABjPR1HSo4aOWkBTKo8E1GlwkhQBJikdT1wgNLgDxKwPzTeWPdAAAAABJRU5ErkJggg==)}.te-popup-add-table .te-selection-area{position:absolute;top:0;left:0;background:#80d2ff;opacity:.3;z-index:999}.te-popup-add-table .te-description{margin:10px 0 0;text-align:center}.te-popup-table-utils{width:120px}.te-popup-table-utils .tui-popup-body{padding:0}.te-popup-table-utils button{width:100%;background-color:#fff;border:none;outline:0;padding:0 10px;font-size:12px;line-height:28px;text-align:left;color:#777}.te-popup-table-utils button:hover{background-color:#f4f4f4}.te-popup-table-utils hr{background-color:#cacaca;border-style:none;height:1px}.te-heading-add{width:auto}.te-heading-add .tui-popup-body{padding:0}.te-heading-add h1,.te-heading-add h2,.te-heading-add h3,.te-heading-add h4,.te-heading-add h5,.te-heading-add h6,.te-heading-add p,.te-heading-add ul{padding:0;margin:0}.te-heading-add ul{list-style:none}.te-heading-add ul li{padding:2px 10px;cursor:pointer}.te-heading-add ul li:hover{background-color:#eee}.te-heading-add h1{font-size:24px}.te-heading-add h2{font-size:22px}.te-heading-add h3{font-size:20px}.te-heading-add h4{font-size:18px}.te-heading-add h5{font-size:16px}.te-heading-add h6{font-size:14px}.te-dropdown-toolbar{position:absolute;width:auto}.te-dropdown-toolbar .tui-popup-body{padding:0}.tui-popup-color{padding:0}.tui-popup-color .tui-colorpicker-container,.tui-popup-color .tui-colorpicker-palette-container{width:144px}.tui-popup-color .tui-colorpicker-container ul{width:144px;margin-bottom:8px}.tui-popup-color .tui-colorpicker-container li{padding:0 1px 1px 0}.tui-popup-color .tui-colorpicker-container li .tui-colorpicker-palette-button{border:0;width:17px;height:17px}.tui-popup-color .tui-popup-body{padding:10px}.tui-popup-color .te-apply-button,.tui-popup-color .tui-colorpicker-palette-hex{float:right}.tui-popup-color .te-apply-button{height:21px;width:35px;background:#fff;border:1px solid #efefef;position:absolute;bottom:141px;right:10px}.tui-tooltip,.tui-tooltip .arrow{background-color:#222;position:absolute}.tui-popup-color .tui-colorpicker-container .tui-colorpicker-palette-hex{border:1px solid #E1E1E1;padding:3px 14px;margin-left:-1px}.tui-popup-color .tui-colorpicker-container div.tui-colorpicker-clearfix{display:inline-block}.tui-popup-color .tui-colorpicker-container .tui-colorpicker-palette-preview{width:19px;height:19px}.tui-popup-color .tui-colorpicker-slider-container .tui-colorpicker-slider-right{width:22px}.tui-popup-color .tui-colorpicker-slider-container .tui-colorpicker-huebar-handle{display:none}.tui-tooltip{z-index:999;opacity:.8;color:#fff;padding:2px 5px;font-size:10px}.tui-tooltip .arrow{display:inline-block;width:10px;height:10px;-webkit-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg);top:-3px;left:6px;z-index:-1}.tui-toolbar-icons{background:url(tui-editor.png);background-size:218px 188px;display:inline-block}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min--moz-device-pixel-ratio:2),only screen and (-o-min-device-pixel-ratio:2/1),only screen and (min-device-pixel-ratio:2),only screen and (min-resolution:192dpi),only screen and (min-resolution:2dppx){.tui-toolbar-icons{background:url(tui-editor-2x.png);background-size:218px 188px;display:inline-block}}.tui-toolbar-icons.tui-heading{background-position:-172px -48px}.tui-toolbar-icons.tui-heading:disabled{background-position:-193px -48px}.tui-toolbar-icons.tui-bold{background-position:-4px -4px}.tui-toolbar-icons.tui-bold:disabled{background-position:-25px -4px}.tui-toolbar-icons.tui-italic{background-position:-4px -48px}.tui-toolbar-icons.tui-italic:disabled{background-position:-25px -48px}.tui-toolbar-icons.tui-color{background-position:-172px -70px}.tui-toolbar-icons.tui-color:disabled{background-position:-193px -70px}.tui-toolbar-icons.tui-strike{background-position:-4px -26px}.tui-toolbar-icons.tui-strike:disabled{background-position:-25px -26px}.tui-toolbar-icons.tui-hrline{background-position:-46px -92px}.tui-toolbar-icons.tui-hrline:disabled{background-position:-67px -92px}.tui-toolbar-icons.tui-quote{background-position:-4px -114px}.tui-toolbar-icons.tui-quote:disabled{background-position:-25px -114px}.tui-toolbar-icons.tui-ul{background-position:-46px -4px}.tui-toolbar-icons.tui-ul:disabled{background-position:-67px -4px}.tui-toolbar-icons.tui-ol{background-position:-46px -26px}.tui-toolbar-icons.tui-ol:disabled{background-position:-67px -26px}.tui-toolbar-icons.tui-task{background-position:-130px -48px}.tui-toolbar-icons.tui-task:disabled{background-position:-151px -48px}.tui-toolbar-icons.tui-indent{background-position:-46px -48px}.tui-toolbar-icons.tui-indent:disabled{background-position:-67px -48px}.tui-toolbar-icons.tui-outdent{background-position:-46px -70px}.tui-toolbar-icons.tui-outdent:disabled{background-position:-67px -70px}.tui-toolbar-icons.tui-table{background-position:-88px -92px}.tui-toolbar-icons.tui-table:disabled{background-position:-109px -92px}.tui-toolbar-icons.tui-image{background-position:-130px -4px}.tui-toolbar-icons.tui-image:disabled{background-position:-151px -4px}.tui-toolbar-icons.tui-link{background-position:-130px -26px}.tui-toolbar-icons.tui-link:disabled{background-position:-151px -26px}.tui-toolbar-icons.tui-code{background-position:-130px -92px}.tui-toolbar-icons.tui-code:disabled{background-position:-151px -92px}.tui-toolbar-icons.tui-codeblock{background-position:-130px -70px}.tui-toolbar-icons.tui-codeblock:disabled{background-position:-151px -70px}.tui-toolbar-icons.tui-more{background-position:-172px -92px}.tui-toolbar-icons.tui-more:disabled{background-position:-193px -92px}.tui-colorpicker-svg-huebar,.tui-colorpicker-svg-slider,.tui-colorpicker-vml-slider{border:1px solid #ebebeb}.CodeMirror-sizer{margin-top:6px}.CodeMirror .cm-header{font-weight:700;color:inherit}.CodeMirror .cm-header-1{font-size:24px}.CodeMirror .cm-header-2{font-size:22px}.CodeMirror .cm-header-3{font-size:20px}.CodeMirror .cm-header-4{font-size:18px}.CodeMirror .cm-header-5{font-size:16px}.CodeMirror .cm-header-6{font-size:14px}.CodeMirror .cm-variable-2{color:inherit}.tui-editor-pseudo-clipboard{position:fixed;left:-1000px;top:-1000px;width:100px;height:100px}.te-ww-block-overlay.code-block-header{text-align:right}.te-ww-block-overlay.code-block-header span{font-size:10px;font-weight:600;padding:0 10px;color:#333;cursor:default}.te-ww-block-overlay.code-block-header button{margin:8px;font-size:10px;color:#333;background-color:#f9f9f9;border:1px solid #ddd;padding:4px;height:auto}.te-popup-code-block-languages{position:fixed;box-sizing:border-box;width:130px}.te-popup-code-block-languages .tui-popup-body{max-height:169px;overflow:auto;padding:0}.te-popup-code-block-languages button{width:100%;background-color:#fff;border:none;outline:0;padding:0 10px;font-size:12px;line-height:24px;text-align:left;color:#777}.te-popup-code-block-languages button.active{background-color:#f4f4f4}.tui-popup-code-block-editor .tui-popup-wrapper{width:70%;height:70%;margin:auto;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.te-input-language{position:relative;margin-left:15px;cursor:pointer}.te-input-language input{font-size:10px;padding:3px 5px;border:1px solid #ddd;background-color:#f9f9f9;box-sizing:border-box;width:130px;outline:0}.te-input-language input::-ms-clear{display:none}.te-input-language::after{content:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIxMnB4IiBoZWlnaHQ9IjE0cHgiIHZpZXdCb3g9IjAgMCAxMiAxNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT42Q0NBRDk2QS0yMjYxLTRFNDAtOTk1RC1DRUUyQUREQUQ3NkQ8L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggc2tldGNodG9vbC48L2Rlc2M+ICAgIDxkZWZzPjwvZGVmcz4gICAgPGcgaWQ9IlN5bWJvbHMiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiAgICAgICAgPGcgaWQ9ImNvbS10cmFuZ2xlLWQtc2lkZSIgZmlsbD0iIzU1NTU1NSI+ICAgICAgICAgICAgPHBvbHlnb24gaWQ9IlJlY3RhbmdsZS03IiBwb2ludHM9IjIgNSAxMCA1IDYgMTAiPjwvcG9seWdvbj4gICAgICAgIDwvZz4gICAgPC9nPjwvc3ZnPg==);position:absolute;top:1px;right:3px}.te-input-language.active::after{content:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIxMnB4IiBoZWlnaHQ9IjE0cHgiIHZpZXdCb3g9IjAgMCAxMiAxNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT5BNEZDRkIzMy0zNjdBLTREMjAtOEEyNC1DQ0I2ODFBMDZDODg8L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggc2tldGNodG9vbC48L2Rlc2M+ICAgIDxkZWZzPjwvZGVmcz4gICAgPGcgaWQ9IlN5bWJvbHMiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiAgICAgICAgPGcgaWQ9ImNvbS10cmFuZ2xlLXVwLXNpZGUiIGZpbGw9IiM1NTU1NTUiPiAgICAgICAgICAgIDxwb2x5Z29uIGlkPSJSZWN0YW5nbGUtNyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNi4wMDAwMDAsIDYuNTAwMDAwKSBzY2FsZSgxLCAtMSkgdHJhbnNsYXRlKC02LjAwMDAwMCwgLTYuNTAwMDAwKSAiIHBvaW50cz0iMiA0IDEwIDQgNiA5Ij48L3BvbHlnb24+ICAgICAgICA8L2c+ICAgIDwvZz48L3N2Zz4=)}.tui-popup-code-block-editor button{margin:-1px 3px}.tui-popup-code-block-editor .tui-popup-header-buttons{height:20px}.tui-popup-code-block-editor .popup-editor-toggle-preview::after{content:'Preview off';color:#777;margin-right:22px}.tui-popup-code-block-editor .popup-editor-toggle-preview.active::after{content:'Preview on';color:#4b96e6}.tui-popup-code-block-editor .popup-editor-toggle-scroll::after{content:'Scroll off';color:#777;margin-right:16px}.tui-popup-code-block-editor .popup-editor-toggle-scroll.active::after{content:'Scroll on';color:#4b96e6}.tui-popup-code-block-editor .popup-editor-toggle-fit{width:18px;height:18px;margin-top:4px;margin-right:14px;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIxOHB4IiBoZWlnaHQ9IjE4cHgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT40OUQ4RTYyMy1GRTAyLTQ1RUUtQkQ5Ri0xMjUyQjEzRTU1MkQ8L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggc2tldGNodG9vbC48L2Rlc2M+ICAgIDxkZWZzPjwvZGVmcz4gICAgPGcgaWQ9IlN5bWJvbHMiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiAgICAgICAgPGcgaWQ9ImNvbnRlbnRzLWV4cGFuZCIgZmlsbD0iIzU1NTU1NSI+ICAgICAgICAgICAgPHBhdGggZD0iTTMsMyBMOSwzIEw5LDUgTDUsNSBMNSw5IEwzLDkgTDMsMyBaIE0xNSwxNSBMOSwxNSBMOSwxMyBMMTMsMTMgTDEzLDkgTDE1LDkgTDE1LDE1IFoiIGlkPSJDb21iaW5lZC1TaGFwZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoOS4wMDAwMDAsIDkuMDAwMDAwKSBzY2FsZSgtMSwgMSkgdHJhbnNsYXRlKC05LjAwMDAwMCwgLTkuMDAwMDAwKSAiPjwvcGF0aD4gICAgICAgICAgICA8cG9seWdvbiBpZD0iTGluZSIgZmlsbC1ydWxlPSJub256ZXJvIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxMS41MDAwMDAsIDYuNTAwMDAwKSBzY2FsZSgtMSwgMSkgdHJhbnNsYXRlKC0xMS41MDAwMDAsIC02LjUwMDAwMCkgIiBwb2ludHM9IjkuMDg1Nzg2NDQgNS41IDEyLjUgOC45MTQyMTM1NiAxMy45MTQyMTM2IDcuNSAxMC41IDQuMDg1Nzg2NDQiPjwvcG9seWdvbj4gICAgICAgICAgICA8cG9seWdvbiBpZD0iTGluZS1Db3B5IiBmaWxsLXJ1bGU9Im5vbnplcm8iIHRyYW5zZm9ybT0idHJhbnNsYXRlKDYuNTAwMDAwLCAxMS41MDAwMDApIHNjYWxlKC0xLCAxKSB0cmFuc2xhdGUoLTYuNTAwMDAwLCAtMTEuNTAwMDAwKSAiIHBvaW50cz0iNC4wODU3ODY0NCAxMC41IDcuNSAxMy45MTQyMTM2IDguOTE0MjEzNTYgMTIuNSA1LjUgOS4wODU3ODY0NCI+PC9wb2x5Z29uPiAgICAgICAgPC9nPiAgICA8L2c+PC9zdmc+)}.tui-popup-code-block-editor .popup-editor-toggle-fit.active{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIxOHB4IiBoZWlnaHQ9IjE4cHgiIHZpZXdCb3g9IjAgMCAxOCAxOCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT4wN0Q1MjlCRi1GNTIzLTREN0EtQTlGNi05NTUzNTU5RDNEMUE8L3RpdGxlPiAgICA8ZGVzYz5DcmVhdGVkIHdpdGggc2tldGNodG9vbC48L2Rlc2M+ICAgIDxkZWZzPjwvZGVmcz4gICAgPGcgaWQ9IlN5bWJvbHMiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiAgICAgICAgPGcgaWQ9ImNvbnRlbnRzLXJlZHVjZSIgZmlsbD0iIzU1NTU1NSI+ICAgICAgICAgICAgPHBvbHlnb24gaWQ9IlBhdGgtMzIiIGZpbGwtcnVsZT0ibm9uemVybyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoNS41MDAwMDAsIDEyLjUwMDAwMCkgc2NhbGUoLTEsIDEpIHRyYW5zbGF0ZSgtNS41MDAwMDAsIC0xMi41MDAwMDApICIgcG9pbnRzPSIzLjA4NTc4NjQ0IDExLjUgNi41IDE0LjkxNDIxMzYgNy45MTQyMTM1NiAxMy41IDQuNSAxMC4wODU3ODY0Ij48L3BvbHlnb24+ICAgICAgICAgICAgPHBhdGggZD0iTTksOSBMMTUsOSBMMTUsMTEgTDExLDExIEwxMSwxNSBMOSwxNSBMOSw5IFogTTksOSBMMyw5IEwzLDcgTDcsNyBMNywzIEw5LDMgTDksOSBaIiBpZD0iQ29tYmluZWQtU2hhcGUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDkuMDAwMDAwLCA5LjAwMDAwMCkgc2NhbGUoLTEsIDEpIHRyYW5zbGF0ZSgtOS4wMDAwMDAsIC05LjAwMDAwMCkgIj48L3BhdGg+ICAgICAgICAgICAgPHBvbHlnb24gaWQ9IlBhdGgtMzMiIGZpbGwtcnVsZT0ibm9uemVybyIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMTIuNTAwMDAwLCA1LjUwMDAwMCkgc2NhbGUoLTEsIDEpIHRyYW5zbGF0ZSgtMTIuNTAwMDAwLCAtNS41MDAwMDApICIgcG9pbnRzPSIxNC45MTQyMTM2IDYuNSAxMS41IDMuMDg1Nzg2NDQgMTAuMDg1Nzg2NCA0LjUgMTMuNSA3LjkxNDIxMzU2Ij48L3BvbHlnb24+ICAgICAgICA8L2c+ICAgIDwvZz48L3N2Zz4=)}.tui-popup-code-block-editor .tui-popup-close-button{margin-top:6px}.tui-popup-code-block-editor .tui-popup-body{z-index:-1;padding:0;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex:1;flex:1}.tui-split-scroll.single-content .tui-split-content-right,.tui-split-scroll.single-content .tui-splitter,.tui-split-scroll.single-content button.tui-scrollsync{display:none}.tui-popup-code-block-editor .popup-editor-body{position:relative;-ms-flex:1;flex:1;border-bottom:1px solid #cacaca}.tui-popup-code-block-editor .te-button-section{padding:15px}.tui-popup-code-block-editor .te-button-section button{float:left}.tui-popup-code-block-editor .tui-editor-contents pre{margin:0;background-color:transparent}.tui-popup-code-block-editor .CodeMirror{height:auto}.tui-popup-code-block-editor .CodeMirror-line{font-family:Consolas,Courier,"Apple SD 산돌고딕 Neo",-apple-system,"Lucida Grande","Apple SD Gothic Neo","맑은 고딕","Malgun Gothic","Segoe UI","돋움",dotum,sans-serif;font-size:13px;line-height:160%;letter-spacing:-.3px}.tui-popup-code-block-editor .popup-editor-editor-wrapper{min-height:100%}.tui-split-scroll-wrapper{position:relative}.tui-split-scroll{position:absolute}.tui-split-scroll,.tui-split-scroll-wrapper{width:100%;height:100%}.tui-split-scroll .tui-split-content-left,.tui-split-scroll .tui-split-content-right{position:absolute;top:0;width:50%;box-sizing:border-box}.tui-split-scroll .tui-split-content-left{left:0}.tui-split-scroll .tui-split-content-right{left:50%}.tui-split-scroll .tui-splitter{position:absolute;left:50%;top:0;height:100%;width:1px;border-left:1px solid #cacaca}.tui-split-scroll .tui-split-scroll-content{width:100%;height:100%;overflow:hidden;position:relative}.tui-split-scroll .tui-split-content-left,.tui-split-scroll .tui-split-content-right{height:100%;overflow-x:hidden;overflow-y:auto}.tui-split-scroll button.tui-scrollsync{top:10px;opacity:.2}.tui-split-scroll button.tui-scrollsync::after{content:"scroll off"}.tui-split-scroll.scroll-sync button.tui-scrollsync{opacity:.5}.tui-split-scroll.scroll-sync .tui-split-content-left,.tui-split-scroll.scroll-sync .tui-split-content-right{height:auto;overflow:initial}.tui-split-scroll.scroll-sync button.tui-scrollsync::after{content:"scroll on"}.tui-split-scroll.scroll-sync .tui-split-scroll-content{overflow-y:auto}.tui-split-scroll.single-content .tui-split-content-left{width:100%}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.tui-split-scroll-wrapper .tui-splitter{left:calc(50% - 9px)}}@supports (-ms-accelerator:true){.tui-split-scroll-wrapper .tui-splitter{left:calc(50% - 9px)}}@media screen and (max-width:480px){.tui-popup-wrapper{max-width:300px}.tui-editor-popup{margin-left:-150px}.te-dropdown-toolbar{max-width:none}} \ No newline at end of file diff --git a/src/applications/mixcore/wwwroot/mix-app/css/shared.min.css b/src/applications/mixcore/wwwroot/mix-app/css/shared.min.css index 7cb235107..8a901500e 100644 --- a/src/applications/mixcore/wwwroot/mix-app/css/shared.min.css +++ b/src/applications/mixcore/wwwroot/mix-app/css/shared.min.css @@ -1,4 +1,4 @@ -/* Sun Feb 04 2024 23:41:11 GMT+0700 (Indochina Time) */.flag-icon,.flag-icon-background{background-size:contain;background-position:50%;background-repeat:no-repeat}.fa-fw,.fa-li,.fa-stack-1x,.fa-stack-2x,.mi-fw,.mi-li,.mi-stack-1x,.mi-stack-2x{text-align:center}.fa,.fab,.fad,.fal,.far,.fas,.mi{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-style:normal;font-variant:normal;text-rendering:auto;display:inline-block}.fa-ul,.mi-ul{list-style-type:none}.flag-icon{position:relative;display:inline-block;width:1.33333333em;line-height:1em}.flag-icon:before{content:"\00a0"}.flag-icon.flag-icon-squared{width:1em}.flag-icon-ad{background-image:url(../flags/4x3/ad.svg)}.flag-icon-ad.flag-icon-squared{background-image:url(../flags/1x1/ad.svg)}.flag-icon-ae{background-image:url(../flags/4x3/ae.svg)}.flag-icon-ae.flag-icon-squared{background-image:url(../flags/1x1/ae.svg)}.flag-icon-af{background-image:url(../flags/4x3/af.svg)}.flag-icon-af.flag-icon-squared{background-image:url(../flags/1x1/af.svg)}.flag-icon-ag{background-image:url(../flags/4x3/ag.svg)}.flag-icon-ag.flag-icon-squared{background-image:url(../flags/1x1/ag.svg)}.flag-icon-ai{background-image:url(../flags/4x3/ai.svg)}.flag-icon-ai.flag-icon-squared{background-image:url(../flags/1x1/ai.svg)}.flag-icon-al{background-image:url(../flags/4x3/al.svg)}.flag-icon-al.flag-icon-squared{background-image:url(../flags/1x1/al.svg)}.flag-icon-am{background-image:url(../flags/4x3/am.svg)}.flag-icon-am.flag-icon-squared{background-image:url(../flags/1x1/am.svg)}.flag-icon-ao{background-image:url(../flags/4x3/ao.svg)}.flag-icon-ao.flag-icon-squared{background-image:url(../flags/1x1/ao.svg)}.flag-icon-aq{background-image:url(../flags/4x3/aq.svg)}.flag-icon-aq.flag-icon-squared{background-image:url(../flags/1x1/aq.svg)}.flag-icon-ar{background-image:url(../flags/4x3/ar.svg)}.flag-icon-ar.flag-icon-squared{background-image:url(../flags/1x1/ar.svg)}.flag-icon-as{background-image:url(../flags/4x3/as.svg)}.flag-icon-as.flag-icon-squared{background-image:url(../flags/1x1/as.svg)}.flag-icon-at{background-image:url(../flags/4x3/at.svg)}.flag-icon-at.flag-icon-squared{background-image:url(../flags/1x1/at.svg)}.flag-icon-au{background-image:url(../flags/4x3/au.svg)}.flag-icon-au.flag-icon-squared{background-image:url(../flags/1x1/au.svg)}.flag-icon-aw{background-image:url(../flags/4x3/aw.svg)}.flag-icon-aw.flag-icon-squared{background-image:url(../flags/1x1/aw.svg)}.flag-icon-ax{background-image:url(../flags/4x3/ax.svg)}.flag-icon-ax.flag-icon-squared{background-image:url(../flags/1x1/ax.svg)}.flag-icon-az{background-image:url(../flags/4x3/az.svg)}.flag-icon-az.flag-icon-squared{background-image:url(../flags/1x1/az.svg)}.flag-icon-ba{background-image:url(../flags/4x3/ba.svg)}.flag-icon-ba.flag-icon-squared{background-image:url(../flags/1x1/ba.svg)}.flag-icon-bb{background-image:url(../flags/4x3/bb.svg)}.flag-icon-bb.flag-icon-squared{background-image:url(../flags/1x1/bb.svg)}.flag-icon-bd{background-image:url(../flags/4x3/bd.svg)}.flag-icon-bd.flag-icon-squared{background-image:url(../flags/1x1/bd.svg)}.flag-icon-be{background-image:url(../flags/4x3/be.svg)}.flag-icon-be.flag-icon-squared{background-image:url(../flags/1x1/be.svg)}.flag-icon-bf{background-image:url(../flags/4x3/bf.svg)}.flag-icon-bf.flag-icon-squared{background-image:url(../flags/1x1/bf.svg)}.flag-icon-bg{background-image:url(../flags/4x3/bg.svg)}.flag-icon-bg.flag-icon-squared{background-image:url(../flags/1x1/bg.svg)}.flag-icon-bh{background-image:url(../flags/4x3/bh.svg)}.flag-icon-bh.flag-icon-squared{background-image:url(../flags/1x1/bh.svg)}.flag-icon-bi{background-image:url(../flags/4x3/bi.svg)}.flag-icon-bi.flag-icon-squared{background-image:url(../flags/1x1/bi.svg)}.flag-icon-bj{background-image:url(../flags/4x3/bj.svg)}.flag-icon-bj.flag-icon-squared{background-image:url(../flags/1x1/bj.svg)}.flag-icon-bl{background-image:url(../flags/4x3/bl.svg)}.flag-icon-bl.flag-icon-squared{background-image:url(../flags/1x1/bl.svg)}.flag-icon-bm{background-image:url(../flags/4x3/bm.svg)}.flag-icon-bm.flag-icon-squared{background-image:url(../flags/1x1/bm.svg)}.flag-icon-bn{background-image:url(../flags/4x3/bn.svg)}.flag-icon-bn.flag-icon-squared{background-image:url(../flags/1x1/bn.svg)}.flag-icon-bo{background-image:url(../flags/4x3/bo.svg)}.flag-icon-bo.flag-icon-squared{background-image:url(../flags/1x1/bo.svg)}.flag-icon-bq{background-image:url(../flags/4x3/bq.svg)}.flag-icon-bq.flag-icon-squared{background-image:url(../flags/1x1/bq.svg)}.flag-icon-br{background-image:url(../flags/4x3/br.svg)}.flag-icon-br.flag-icon-squared{background-image:url(../flags/1x1/br.svg)}.flag-icon-bs{background-image:url(../flags/4x3/bs.svg)}.flag-icon-bs.flag-icon-squared{background-image:url(../flags/1x1/bs.svg)}.flag-icon-bt{background-image:url(../flags/4x3/bt.svg)}.flag-icon-bt.flag-icon-squared{background-image:url(../flags/1x1/bt.svg)}.flag-icon-bv{background-image:url(../flags/4x3/bv.svg)}.flag-icon-bv.flag-icon-squared{background-image:url(../flags/1x1/bv.svg)}.flag-icon-bw{background-image:url(../flags/4x3/bw.svg)}.flag-icon-bw.flag-icon-squared{background-image:url(../flags/1x1/bw.svg)}.flag-icon-by{background-image:url(../flags/4x3/by.svg)}.flag-icon-by.flag-icon-squared{background-image:url(../flags/1x1/by.svg)}.flag-icon-bz{background-image:url(../flags/4x3/bz.svg)}.flag-icon-bz.flag-icon-squared{background-image:url(../flags/1x1/bz.svg)}.flag-icon-ca{background-image:url(../flags/4x3/ca.svg)}.flag-icon-ca.flag-icon-squared{background-image:url(../flags/1x1/ca.svg)}.flag-icon-cc{background-image:url(../flags/4x3/cc.svg)}.flag-icon-cc.flag-icon-squared{background-image:url(../flags/1x1/cc.svg)}.flag-icon-cd{background-image:url(../flags/4x3/cd.svg)}.flag-icon-cd.flag-icon-squared{background-image:url(../flags/1x1/cd.svg)}.flag-icon-cf{background-image:url(../flags/4x3/cf.svg)}.flag-icon-cf.flag-icon-squared{background-image:url(../flags/1x1/cf.svg)}.flag-icon-cg{background-image:url(../flags/4x3/cg.svg)}.flag-icon-cg.flag-icon-squared{background-image:url(../flags/1x1/cg.svg)}.flag-icon-ch{background-image:url(../flags/4x3/ch.svg)}.flag-icon-ch.flag-icon-squared{background-image:url(../flags/1x1/ch.svg)}.flag-icon-ci{background-image:url(../flags/4x3/ci.svg)}.flag-icon-ci.flag-icon-squared{background-image:url(../flags/1x1/ci.svg)}.flag-icon-ck{background-image:url(../flags/4x3/ck.svg)}.flag-icon-ck.flag-icon-squared{background-image:url(../flags/1x1/ck.svg)}.flag-icon-cl{background-image:url(../flags/4x3/cl.svg)}.flag-icon-cl.flag-icon-squared{background-image:url(../flags/1x1/cl.svg)}.flag-icon-cm{background-image:url(../flags/4x3/cm.svg)}.flag-icon-cm.flag-icon-squared{background-image:url(../flags/1x1/cm.svg)}.flag-icon-cn{background-image:url(../flags/4x3/cn.svg)}.flag-icon-cn.flag-icon-squared{background-image:url(../flags/1x1/cn.svg)}.flag-icon-co{background-image:url(../flags/4x3/co.svg)}.flag-icon-co.flag-icon-squared{background-image:url(../flags/1x1/co.svg)}.flag-icon-cr{background-image:url(../flags/4x3/cr.svg)}.flag-icon-cr.flag-icon-squared{background-image:url(../flags/1x1/cr.svg)}.flag-icon-cu{background-image:url(../flags/4x3/cu.svg)}.flag-icon-cu.flag-icon-squared{background-image:url(../flags/1x1/cu.svg)}.flag-icon-cv{background-image:url(../flags/4x3/cv.svg)}.flag-icon-cv.flag-icon-squared{background-image:url(../flags/1x1/cv.svg)}.flag-icon-cw{background-image:url(../flags/4x3/cw.svg)}.flag-icon-cw.flag-icon-squared{background-image:url(../flags/1x1/cw.svg)}.flag-icon-cx{background-image:url(../flags/4x3/cx.svg)}.flag-icon-cx.flag-icon-squared{background-image:url(../flags/1x1/cx.svg)}.flag-icon-cy{background-image:url(../flags/4x3/cy.svg)}.flag-icon-cy.flag-icon-squared{background-image:url(../flags/1x1/cy.svg)}.flag-icon-cz{background-image:url(../flags/4x3/cz.svg)}.flag-icon-cz.flag-icon-squared{background-image:url(../flags/1x1/cz.svg)}.flag-icon-de{background-image:url(../flags/4x3/de.svg)}.flag-icon-de.flag-icon-squared{background-image:url(../flags/1x1/de.svg)}.flag-icon-dj{background-image:url(../flags/4x3/dj.svg)}.flag-icon-dj.flag-icon-squared{background-image:url(../flags/1x1/dj.svg)}.flag-icon-dk{background-image:url(../flags/4x3/dk.svg)}.flag-icon-dk.flag-icon-squared{background-image:url(../flags/1x1/dk.svg)}.flag-icon-dm{background-image:url(../flags/4x3/dm.svg)}.flag-icon-dm.flag-icon-squared{background-image:url(../flags/1x1/dm.svg)}.flag-icon-do{background-image:url(../flags/4x3/do.svg)}.flag-icon-do.flag-icon-squared{background-image:url(../flags/1x1/do.svg)}.flag-icon-dz{background-image:url(../flags/4x3/dz.svg)}.flag-icon-dz.flag-icon-squared{background-image:url(../flags/1x1/dz.svg)}.flag-icon-ec{background-image:url(../flags/4x3/ec.svg)}.flag-icon-ec.flag-icon-squared{background-image:url(../flags/1x1/ec.svg)}.flag-icon-ee{background-image:url(../flags/4x3/ee.svg)}.flag-icon-ee.flag-icon-squared{background-image:url(../flags/1x1/ee.svg)}.flag-icon-eg{background-image:url(../flags/4x3/eg.svg)}.flag-icon-eg.flag-icon-squared{background-image:url(../flags/1x1/eg.svg)}.flag-icon-eh{background-image:url(../flags/4x3/eh.svg)}.flag-icon-eh.flag-icon-squared{background-image:url(../flags/1x1/eh.svg)}.flag-icon-er{background-image:url(../flags/4x3/er.svg)}.flag-icon-er.flag-icon-squared{background-image:url(../flags/1x1/er.svg)}.flag-icon-es{background-image:url(../flags/4x3/es.svg)}.flag-icon-es.flag-icon-squared{background-image:url(../flags/1x1/es.svg)}.flag-icon-et{background-image:url(../flags/4x3/et.svg)}.flag-icon-et.flag-icon-squared{background-image:url(../flags/1x1/et.svg)}.flag-icon-fi{background-image:url(../flags/4x3/fi.svg)}.flag-icon-fi.flag-icon-squared{background-image:url(../flags/1x1/fi.svg)}.flag-icon-fj{background-image:url(../flags/4x3/fj.svg)}.flag-icon-fj.flag-icon-squared{background-image:url(../flags/1x1/fj.svg)}.flag-icon-fk{background-image:url(../flags/4x3/fk.svg)}.flag-icon-fk.flag-icon-squared{background-image:url(../flags/1x1/fk.svg)}.flag-icon-fm{background-image:url(../flags/4x3/fm.svg)}.flag-icon-fm.flag-icon-squared{background-image:url(../flags/1x1/fm.svg)}.flag-icon-fo{background-image:url(../flags/4x3/fo.svg)}.flag-icon-fo.flag-icon-squared{background-image:url(../flags/1x1/fo.svg)}.flag-icon-fr{background-image:url(../flags/4x3/fr.svg)}.flag-icon-fr.flag-icon-squared{background-image:url(../flags/1x1/fr.svg)}.flag-icon-ga{background-image:url(../flags/4x3/ga.svg)}.flag-icon-ga.flag-icon-squared{background-image:url(../flags/1x1/ga.svg)}.flag-icon-gb{background-image:url(../flags/4x3/gb.svg)}.flag-icon-gb.flag-icon-squared{background-image:url(../flags/1x1/gb.svg)}.flag-icon-gd{background-image:url(../flags/4x3/gd.svg)}.flag-icon-gd.flag-icon-squared{background-image:url(../flags/1x1/gd.svg)}.flag-icon-ge{background-image:url(../flags/4x3/ge.svg)}.flag-icon-ge.flag-icon-squared{background-image:url(../flags/1x1/ge.svg)}.flag-icon-gf{background-image:url(../flags/4x3/gf.svg)}.flag-icon-gf.flag-icon-squared{background-image:url(../flags/1x1/gf.svg)}.flag-icon-gg{background-image:url(../flags/4x3/gg.svg)}.flag-icon-gg.flag-icon-squared{background-image:url(../flags/1x1/gg.svg)}.flag-icon-gh{background-image:url(../flags/4x3/gh.svg)}.flag-icon-gh.flag-icon-squared{background-image:url(../flags/1x1/gh.svg)}.flag-icon-gi{background-image:url(../flags/4x3/gi.svg)}.flag-icon-gi.flag-icon-squared{background-image:url(../flags/1x1/gi.svg)}.flag-icon-gl{background-image:url(../flags/4x3/gl.svg)}.flag-icon-gl.flag-icon-squared{background-image:url(../flags/1x1/gl.svg)}.flag-icon-gm{background-image:url(../flags/4x3/gm.svg)}.flag-icon-gm.flag-icon-squared{background-image:url(../flags/1x1/gm.svg)}.flag-icon-gn{background-image:url(../flags/4x3/gn.svg)}.flag-icon-gn.flag-icon-squared{background-image:url(../flags/1x1/gn.svg)}.flag-icon-gp{background-image:url(../flags/4x3/gp.svg)}.flag-icon-gp.flag-icon-squared{background-image:url(../flags/1x1/gp.svg)}.flag-icon-gq{background-image:url(../flags/4x3/gq.svg)}.flag-icon-gq.flag-icon-squared{background-image:url(../flags/1x1/gq.svg)}.flag-icon-gr{background-image:url(../flags/4x3/gr.svg)}.flag-icon-gr.flag-icon-squared{background-image:url(../flags/1x1/gr.svg)}.flag-icon-gs{background-image:url(../flags/4x3/gs.svg)}.flag-icon-gs.flag-icon-squared{background-image:url(../flags/1x1/gs.svg)}.flag-icon-gt{background-image:url(../flags/4x3/gt.svg)}.flag-icon-gt.flag-icon-squared{background-image:url(../flags/1x1/gt.svg)}.flag-icon-gu{background-image:url(../flags/4x3/gu.svg)}.flag-icon-gu.flag-icon-squared{background-image:url(../flags/1x1/gu.svg)}.flag-icon-gw{background-image:url(../flags/4x3/gw.svg)}.flag-icon-gw.flag-icon-squared{background-image:url(../flags/1x1/gw.svg)}.flag-icon-gy{background-image:url(../flags/4x3/gy.svg)}.flag-icon-gy.flag-icon-squared{background-image:url(../flags/1x1/gy.svg)}.flag-icon-hk{background-image:url(../flags/4x3/hk.svg)}.flag-icon-hk.flag-icon-squared{background-image:url(../flags/1x1/hk.svg)}.flag-icon-hm{background-image:url(../flags/4x3/hm.svg)}.flag-icon-hm.flag-icon-squared{background-image:url(../flags/1x1/hm.svg)}.flag-icon-hn{background-image:url(../flags/4x3/hn.svg)}.flag-icon-hn.flag-icon-squared{background-image:url(../flags/1x1/hn.svg)}.flag-icon-hr{background-image:url(../flags/4x3/hr.svg)}.flag-icon-hr.flag-icon-squared{background-image:url(../flags/1x1/hr.svg)}.flag-icon-ht{background-image:url(../flags/4x3/ht.svg)}.flag-icon-ht.flag-icon-squared{background-image:url(../flags/1x1/ht.svg)}.flag-icon-hu{background-image:url(../flags/4x3/hu.svg)}.flag-icon-hu.flag-icon-squared{background-image:url(../flags/1x1/hu.svg)}.flag-icon-id{background-image:url(../flags/4x3/id.svg)}.flag-icon-id.flag-icon-squared{background-image:url(../flags/1x1/id.svg)}.flag-icon-ie{background-image:url(../flags/4x3/ie.svg)}.flag-icon-ie.flag-icon-squared{background-image:url(../flags/1x1/ie.svg)}.flag-icon-il{background-image:url(../flags/4x3/il.svg)}.flag-icon-il.flag-icon-squared{background-image:url(../flags/1x1/il.svg)}.flag-icon-im{background-image:url(../flags/4x3/im.svg)}.flag-icon-im.flag-icon-squared{background-image:url(../flags/1x1/im.svg)}.flag-icon-in{background-image:url(../flags/4x3/in.svg)}.flag-icon-in.flag-icon-squared{background-image:url(../flags/1x1/in.svg)}.flag-icon-io{background-image:url(../flags/4x3/io.svg)}.flag-icon-io.flag-icon-squared{background-image:url(../flags/1x1/io.svg)}.flag-icon-iq{background-image:url(../flags/4x3/iq.svg)}.flag-icon-iq.flag-icon-squared{background-image:url(../flags/1x1/iq.svg)}.flag-icon-ir{background-image:url(../flags/4x3/ir.svg)}.flag-icon-ir.flag-icon-squared{background-image:url(../flags/1x1/ir.svg)}.flag-icon-is{background-image:url(../flags/4x3/is.svg)}.flag-icon-is.flag-icon-squared{background-image:url(../flags/1x1/is.svg)}.flag-icon-it{background-image:url(../flags/4x3/it.svg)}.flag-icon-it.flag-icon-squared{background-image:url(../flags/1x1/it.svg)}.flag-icon-je{background-image:url(../flags/4x3/je.svg)}.flag-icon-je.flag-icon-squared{background-image:url(../flags/1x1/je.svg)}.flag-icon-jm{background-image:url(../flags/4x3/jm.svg)}.flag-icon-jm.flag-icon-squared{background-image:url(../flags/1x1/jm.svg)}.flag-icon-jo{background-image:url(../flags/4x3/jo.svg)}.flag-icon-jo.flag-icon-squared{background-image:url(../flags/1x1/jo.svg)}.flag-icon-jp{background-image:url(../flags/4x3/jp.svg)}.flag-icon-jp.flag-icon-squared{background-image:url(../flags/1x1/jp.svg)}.flag-icon-ke{background-image:url(../flags/4x3/ke.svg)}.flag-icon-ke.flag-icon-squared{background-image:url(../flags/1x1/ke.svg)}.flag-icon-kg{background-image:url(../flags/4x3/kg.svg)}.flag-icon-kg.flag-icon-squared{background-image:url(../flags/1x1/kg.svg)}.flag-icon-kh{background-image:url(../flags/4x3/kh.svg)}.flag-icon-kh.flag-icon-squared{background-image:url(../flags/1x1/kh.svg)}.flag-icon-ki{background-image:url(../flags/4x3/ki.svg)}.flag-icon-ki.flag-icon-squared{background-image:url(../flags/1x1/ki.svg)}.flag-icon-km{background-image:url(../flags/4x3/km.svg)}.flag-icon-km.flag-icon-squared{background-image:url(../flags/1x1/km.svg)}.flag-icon-kn{background-image:url(../flags/4x3/kn.svg)}.flag-icon-kn.flag-icon-squared{background-image:url(../flags/1x1/kn.svg)}.flag-icon-kp{background-image:url(../flags/4x3/kp.svg)}.flag-icon-kp.flag-icon-squared{background-image:url(../flags/1x1/kp.svg)}.flag-icon-kr{background-image:url(../flags/4x3/kr.svg)}.flag-icon-kr.flag-icon-squared{background-image:url(../flags/1x1/kr.svg)}.flag-icon-kw{background-image:url(../flags/4x3/kw.svg)}.flag-icon-kw.flag-icon-squared{background-image:url(../flags/1x1/kw.svg)}.flag-icon-ky{background-image:url(../flags/4x3/ky.svg)}.flag-icon-ky.flag-icon-squared{background-image:url(../flags/1x1/ky.svg)}.flag-icon-kz{background-image:url(../flags/4x3/kz.svg)}.flag-icon-kz.flag-icon-squared{background-image:url(../flags/1x1/kz.svg)}.flag-icon-la{background-image:url(../flags/4x3/la.svg)}.flag-icon-la.flag-icon-squared{background-image:url(../flags/1x1/la.svg)}.flag-icon-lb{background-image:url(../flags/4x3/lb.svg)}.flag-icon-lb.flag-icon-squared{background-image:url(../flags/1x1/lb.svg)}.flag-icon-lc{background-image:url(../flags/4x3/lc.svg)}.flag-icon-lc.flag-icon-squared{background-image:url(../flags/1x1/lc.svg)}.flag-icon-li{background-image:url(../flags/4x3/li.svg)}.flag-icon-li.flag-icon-squared{background-image:url(../flags/1x1/li.svg)}.flag-icon-lk{background-image:url(../flags/4x3/lk.svg)}.flag-icon-lk.flag-icon-squared{background-image:url(../flags/1x1/lk.svg)}.flag-icon-lr{background-image:url(../flags/4x3/lr.svg)}.flag-icon-lr.flag-icon-squared{background-image:url(../flags/1x1/lr.svg)}.flag-icon-ls{background-image:url(../flags/4x3/ls.svg)}.flag-icon-ls.flag-icon-squared{background-image:url(../flags/1x1/ls.svg)}.flag-icon-lt{background-image:url(../flags/4x3/lt.svg)}.flag-icon-lt.flag-icon-squared{background-image:url(../flags/1x1/lt.svg)}.flag-icon-lu{background-image:url(../flags/4x3/lu.svg)}.flag-icon-lu.flag-icon-squared{background-image:url(../flags/1x1/lu.svg)}.flag-icon-lv{background-image:url(../flags/4x3/lv.svg)}.flag-icon-lv.flag-icon-squared{background-image:url(../flags/1x1/lv.svg)}.flag-icon-ly{background-image:url(../flags/4x3/ly.svg)}.flag-icon-ly.flag-icon-squared{background-image:url(../flags/1x1/ly.svg)}.flag-icon-ma{background-image:url(../flags/4x3/ma.svg)}.flag-icon-ma.flag-icon-squared{background-image:url(../flags/1x1/ma.svg)}.flag-icon-mc{background-image:url(../flags/4x3/mc.svg)}.flag-icon-mc.flag-icon-squared{background-image:url(../flags/1x1/mc.svg)}.flag-icon-md{background-image:url(../flags/4x3/md.svg)}.flag-icon-md.flag-icon-squared{background-image:url(../flags/1x1/md.svg)}.flag-icon-me{background-image:url(../flags/4x3/me.svg)}.flag-icon-me.flag-icon-squared{background-image:url(../flags/1x1/me.svg)}.flag-icon-mf{background-image:url(../flags/4x3/mf.svg)}.flag-icon-mf.flag-icon-squared{background-image:url(../flags/1x1/mf.svg)}.flag-icon-mg{background-image:url(../flags/4x3/mg.svg)}.flag-icon-mg.flag-icon-squared{background-image:url(../flags/1x1/mg.svg)}.flag-icon-mh{background-image:url(../flags/4x3/mh.svg)}.flag-icon-mh.flag-icon-squared{background-image:url(../flags/1x1/mh.svg)}.flag-icon-mk{background-image:url(../flags/4x3/mk.svg)}.flag-icon-mk.flag-icon-squared{background-image:url(../flags/1x1/mk.svg)}.flag-icon-ml{background-image:url(../flags/4x3/ml.svg)}.flag-icon-ml.flag-icon-squared{background-image:url(../flags/1x1/ml.svg)}.flag-icon-mm{background-image:url(../flags/4x3/mm.svg)}.flag-icon-mm.flag-icon-squared{background-image:url(../flags/1x1/mm.svg)}.flag-icon-mn{background-image:url(../flags/4x3/mn.svg)}.flag-icon-mn.flag-icon-squared{background-image:url(../flags/1x1/mn.svg)}.flag-icon-mo{background-image:url(../flags/4x3/mo.svg)}.flag-icon-mo.flag-icon-squared{background-image:url(../flags/1x1/mo.svg)}.flag-icon-mp{background-image:url(../flags/4x3/mp.svg)}.flag-icon-mp.flag-icon-squared{background-image:url(../flags/1x1/mp.svg)}.flag-icon-mq{background-image:url(../flags/4x3/mq.svg)}.flag-icon-mq.flag-icon-squared{background-image:url(../flags/1x1/mq.svg)}.flag-icon-mr{background-image:url(../flags/4x3/mr.svg)}.flag-icon-mr.flag-icon-squared{background-image:url(../flags/1x1/mr.svg)}.flag-icon-ms{background-image:url(../flags/4x3/ms.svg)}.flag-icon-ms.flag-icon-squared{background-image:url(../flags/1x1/ms.svg)}.flag-icon-mt{background-image:url(../flags/4x3/mt.svg)}.flag-icon-mt.flag-icon-squared{background-image:url(../flags/1x1/mt.svg)}.flag-icon-mu{background-image:url(../flags/4x3/mu.svg)}.flag-icon-mu.flag-icon-squared{background-image:url(../flags/1x1/mu.svg)}.flag-icon-mv{background-image:url(../flags/4x3/mv.svg)}.flag-icon-mv.flag-icon-squared{background-image:url(../flags/1x1/mv.svg)}.flag-icon-mw{background-image:url(../flags/4x3/mw.svg)}.flag-icon-mw.flag-icon-squared{background-image:url(../flags/1x1/mw.svg)}.flag-icon-mx{background-image:url(../flags/4x3/mx.svg)}.flag-icon-mx.flag-icon-squared{background-image:url(../flags/1x1/mx.svg)}.flag-icon-my{background-image:url(../flags/4x3/my.svg)}.flag-icon-my.flag-icon-squared{background-image:url(../flags/1x1/my.svg)}.flag-icon-mz{background-image:url(../flags/4x3/mz.svg)}.flag-icon-mz.flag-icon-squared{background-image:url(../flags/1x1/mz.svg)}.flag-icon-na{background-image:url(../flags/4x3/na.svg)}.flag-icon-na.flag-icon-squared{background-image:url(../flags/1x1/na.svg)}.flag-icon-nc{background-image:url(../flags/4x3/nc.svg)}.flag-icon-nc.flag-icon-squared{background-image:url(../flags/1x1/nc.svg)}.flag-icon-ne{background-image:url(../flags/4x3/ne.svg)}.flag-icon-ne.flag-icon-squared{background-image:url(../flags/1x1/ne.svg)}.flag-icon-nf{background-image:url(../flags/4x3/nf.svg)}.flag-icon-nf.flag-icon-squared{background-image:url(../flags/1x1/nf.svg)}.flag-icon-ng{background-image:url(../flags/4x3/ng.svg)}.flag-icon-ng.flag-icon-squared{background-image:url(../flags/1x1/ng.svg)}.flag-icon-ni{background-image:url(../flags/4x3/ni.svg)}.flag-icon-ni.flag-icon-squared{background-image:url(../flags/1x1/ni.svg)}.flag-icon-nl{background-image:url(../flags/4x3/nl.svg)}.flag-icon-nl.flag-icon-squared{background-image:url(../flags/1x1/nl.svg)}.flag-icon-no{background-image:url(../flags/4x3/no.svg)}.flag-icon-no.flag-icon-squared{background-image:url(../flags/1x1/no.svg)}.flag-icon-np{background-image:url(../flags/4x3/np.svg)}.flag-icon-np.flag-icon-squared{background-image:url(../flags/1x1/np.svg)}.flag-icon-nr{background-image:url(../flags/4x3/nr.svg)}.flag-icon-nr.flag-icon-squared{background-image:url(../flags/1x1/nr.svg)}.flag-icon-nu{background-image:url(../flags/4x3/nu.svg)}.flag-icon-nu.flag-icon-squared{background-image:url(../flags/1x1/nu.svg)}.flag-icon-nz{background-image:url(../flags/4x3/nz.svg)}.flag-icon-nz.flag-icon-squared{background-image:url(../flags/1x1/nz.svg)}.flag-icon-om{background-image:url(../flags/4x3/om.svg)}.flag-icon-om.flag-icon-squared{background-image:url(../flags/1x1/om.svg)}.flag-icon-pa{background-image:url(../flags/4x3/pa.svg)}.flag-icon-pa.flag-icon-squared{background-image:url(../flags/1x1/pa.svg)}.flag-icon-pe{background-image:url(../flags/4x3/pe.svg)}.flag-icon-pe.flag-icon-squared{background-image:url(../flags/1x1/pe.svg)}.flag-icon-pf{background-image:url(../flags/4x3/pf.svg)}.flag-icon-pf.flag-icon-squared{background-image:url(../flags/1x1/pf.svg)}.flag-icon-pg{background-image:url(../flags/4x3/pg.svg)}.flag-icon-pg.flag-icon-squared{background-image:url(../flags/1x1/pg.svg)}.flag-icon-ph{background-image:url(../flags/4x3/ph.svg)}.flag-icon-ph.flag-icon-squared{background-image:url(../flags/1x1/ph.svg)}.flag-icon-pk{background-image:url(../flags/4x3/pk.svg)}.flag-icon-pk.flag-icon-squared{background-image:url(../flags/1x1/pk.svg)}.flag-icon-pl{background-image:url(../flags/4x3/pl.svg)}.flag-icon-pl.flag-icon-squared{background-image:url(../flags/1x1/pl.svg)}.flag-icon-pm{background-image:url(../flags/4x3/pm.svg)}.flag-icon-pm.flag-icon-squared{background-image:url(../flags/1x1/pm.svg)}.flag-icon-pn{background-image:url(../flags/4x3/pn.svg)}.flag-icon-pn.flag-icon-squared{background-image:url(../flags/1x1/pn.svg)}.flag-icon-pr{background-image:url(../flags/4x3/pr.svg)}.flag-icon-pr.flag-icon-squared{background-image:url(../flags/1x1/pr.svg)}.flag-icon-ps{background-image:url(../flags/4x3/ps.svg)}.flag-icon-ps.flag-icon-squared{background-image:url(../flags/1x1/ps.svg)}.flag-icon-pt{background-image:url(../flags/4x3/pt.svg)}.flag-icon-pt.flag-icon-squared{background-image:url(../flags/1x1/pt.svg)}.flag-icon-pw{background-image:url(../flags/4x3/pw.svg)}.flag-icon-pw.flag-icon-squared{background-image:url(../flags/1x1/pw.svg)}.flag-icon-py{background-image:url(../flags/4x3/py.svg)}.flag-icon-py.flag-icon-squared{background-image:url(../flags/1x1/py.svg)}.flag-icon-qa{background-image:url(../flags/4x3/qa.svg)}.flag-icon-qa.flag-icon-squared{background-image:url(../flags/1x1/qa.svg)}.flag-icon-re{background-image:url(../flags/4x3/re.svg)}.flag-icon-re.flag-icon-squared{background-image:url(../flags/1x1/re.svg)}.flag-icon-ro{background-image:url(../flags/4x3/ro.svg)}.flag-icon-ro.flag-icon-squared{background-image:url(../flags/1x1/ro.svg)}.flag-icon-rs{background-image:url(../flags/4x3/rs.svg)}.flag-icon-rs.flag-icon-squared{background-image:url(../flags/1x1/rs.svg)}.flag-icon-ru{background-image:url(../flags/4x3/ru.svg)}.flag-icon-ru.flag-icon-squared{background-image:url(../flags/1x1/ru.svg)}.flag-icon-rw{background-image:url(../flags/4x3/rw.svg)}.flag-icon-rw.flag-icon-squared{background-image:url(../flags/1x1/rw.svg)}.flag-icon-sa{background-image:url(../flags/4x3/sa.svg)}.flag-icon-sa.flag-icon-squared{background-image:url(../flags/1x1/sa.svg)}.flag-icon-sb{background-image:url(../flags/4x3/sb.svg)}.flag-icon-sb.flag-icon-squared{background-image:url(../flags/1x1/sb.svg)}.flag-icon-sc{background-image:url(../flags/4x3/sc.svg)}.flag-icon-sc.flag-icon-squared{background-image:url(../flags/1x1/sc.svg)}.flag-icon-sd{background-image:url(../flags/4x3/sd.svg)}.flag-icon-sd.flag-icon-squared{background-image:url(../flags/1x1/sd.svg)}.flag-icon-se{background-image:url(../flags/4x3/se.svg)}.flag-icon-se.flag-icon-squared{background-image:url(../flags/1x1/se.svg)}.flag-icon-sg{background-image:url(../flags/4x3/sg.svg)}.flag-icon-sg.flag-icon-squared{background-image:url(../flags/1x1/sg.svg)}.flag-icon-sh{background-image:url(../flags/4x3/sh.svg)}.flag-icon-sh.flag-icon-squared{background-image:url(../flags/1x1/sh.svg)}.flag-icon-si{background-image:url(../flags/4x3/si.svg)}.flag-icon-si.flag-icon-squared{background-image:url(../flags/1x1/si.svg)}.flag-icon-sj{background-image:url(../flags/4x3/sj.svg)}.flag-icon-sj.flag-icon-squared{background-image:url(../flags/1x1/sj.svg)}.flag-icon-sk{background-image:url(../flags/4x3/sk.svg)}.flag-icon-sk.flag-icon-squared{background-image:url(../flags/1x1/sk.svg)}.flag-icon-sl{background-image:url(../flags/4x3/sl.svg)}.flag-icon-sl.flag-icon-squared{background-image:url(../flags/1x1/sl.svg)}.flag-icon-sm{background-image:url(../flags/4x3/sm.svg)}.flag-icon-sm.flag-icon-squared{background-image:url(../flags/1x1/sm.svg)}.flag-icon-sn{background-image:url(../flags/4x3/sn.svg)}.flag-icon-sn.flag-icon-squared{background-image:url(../flags/1x1/sn.svg)}.flag-icon-so{background-image:url(../flags/4x3/so.svg)}.flag-icon-so.flag-icon-squared{background-image:url(../flags/1x1/so.svg)}.flag-icon-sr{background-image:url(../flags/4x3/sr.svg)}.flag-icon-sr.flag-icon-squared{background-image:url(../flags/1x1/sr.svg)}.flag-icon-ss{background-image:url(../flags/4x3/ss.svg)}.flag-icon-ss.flag-icon-squared{background-image:url(../flags/1x1/ss.svg)}.flag-icon-st{background-image:url(../flags/4x3/st.svg)}.flag-icon-st.flag-icon-squared{background-image:url(../flags/1x1/st.svg)}.flag-icon-sv{background-image:url(../flags/4x3/sv.svg)}.flag-icon-sv.flag-icon-squared{background-image:url(../flags/1x1/sv.svg)}.flag-icon-sx{background-image:url(../flags/4x3/sx.svg)}.flag-icon-sx.flag-icon-squared{background-image:url(../flags/1x1/sx.svg)}.flag-icon-sy{background-image:url(../flags/4x3/sy.svg)}.flag-icon-sy.flag-icon-squared{background-image:url(../flags/1x1/sy.svg)}.flag-icon-sz{background-image:url(../flags/4x3/sz.svg)}.flag-icon-sz.flag-icon-squared{background-image:url(../flags/1x1/sz.svg)}.flag-icon-tc{background-image:url(../flags/4x3/tc.svg)}.flag-icon-tc.flag-icon-squared{background-image:url(../flags/1x1/tc.svg)}.flag-icon-td{background-image:url(../flags/4x3/td.svg)}.flag-icon-td.flag-icon-squared{background-image:url(../flags/1x1/td.svg)}.flag-icon-tf{background-image:url(../flags/4x3/tf.svg)}.flag-icon-tf.flag-icon-squared{background-image:url(../flags/1x1/tf.svg)}.flag-icon-tg{background-image:url(../flags/4x3/tg.svg)}.flag-icon-tg.flag-icon-squared{background-image:url(../flags/1x1/tg.svg)}.flag-icon-th{background-image:url(../flags/4x3/th.svg)}.flag-icon-th.flag-icon-squared{background-image:url(../flags/1x1/th.svg)}.flag-icon-tj{background-image:url(../flags/4x3/tj.svg)}.flag-icon-tj.flag-icon-squared{background-image:url(../flags/1x1/tj.svg)}.flag-icon-tk{background-image:url(../flags/4x3/tk.svg)}.flag-icon-tk.flag-icon-squared{background-image:url(../flags/1x1/tk.svg)}.flag-icon-tl{background-image:url(../flags/4x3/tl.svg)}.flag-icon-tl.flag-icon-squared{background-image:url(../flags/1x1/tl.svg)}.flag-icon-tm{background-image:url(../flags/4x3/tm.svg)}.flag-icon-tm.flag-icon-squared{background-image:url(../flags/1x1/tm.svg)}.flag-icon-tn{background-image:url(../flags/4x3/tn.svg)}.flag-icon-tn.flag-icon-squared{background-image:url(../flags/1x1/tn.svg)}.flag-icon-to{background-image:url(../flags/4x3/to.svg)}.flag-icon-to.flag-icon-squared{background-image:url(../flags/1x1/to.svg)}.flag-icon-tr{background-image:url(../flags/4x3/tr.svg)}.flag-icon-tr.flag-icon-squared{background-image:url(../flags/1x1/tr.svg)}.flag-icon-tt{background-image:url(../flags/4x3/tt.svg)}.flag-icon-tt.flag-icon-squared{background-image:url(../flags/1x1/tt.svg)}.flag-icon-tv{background-image:url(../flags/4x3/tv.svg)}.flag-icon-tv.flag-icon-squared{background-image:url(../flags/1x1/tv.svg)}.flag-icon-tw{background-image:url(../flags/4x3/tw.svg)}.flag-icon-tw.flag-icon-squared{background-image:url(../flags/1x1/tw.svg)}.flag-icon-tz{background-image:url(../flags/4x3/tz.svg)}.flag-icon-tz.flag-icon-squared{background-image:url(../flags/1x1/tz.svg)}.flag-icon-ua{background-image:url(../flags/4x3/ua.svg)}.flag-icon-ua.flag-icon-squared{background-image:url(../flags/1x1/ua.svg)}.flag-icon-ug{background-image:url(../flags/4x3/ug.svg)}.flag-icon-ug.flag-icon-squared{background-image:url(../flags/1x1/ug.svg)}.flag-icon-um{background-image:url(../flags/4x3/um.svg)}.flag-icon-um.flag-icon-squared{background-image:url(../flags/1x1/um.svg)}.flag-icon-us{background-image:url(../flags/4x3/us.svg)}.flag-icon-us.flag-icon-squared{background-image:url(../flags/1x1/us.svg)}.flag-icon-uy{background-image:url(../flags/4x3/uy.svg)}.flag-icon-uy.flag-icon-squared{background-image:url(../flags/1x1/uy.svg)}.flag-icon-uz{background-image:url(../flags/4x3/uz.svg)}.flag-icon-uz.flag-icon-squared{background-image:url(../flags/1x1/uz.svg)}.flag-icon-va{background-image:url(../flags/4x3/va.svg)}.flag-icon-va.flag-icon-squared{background-image:url(../flags/1x1/va.svg)}.flag-icon-vc{background-image:url(../flags/4x3/vc.svg)}.flag-icon-vc.flag-icon-squared{background-image:url(../flags/1x1/vc.svg)}.flag-icon-ve{background-image:url(../flags/4x3/ve.svg)}.flag-icon-ve.flag-icon-squared{background-image:url(../flags/1x1/ve.svg)}.flag-icon-vg{background-image:url(../flags/4x3/vg.svg)}.flag-icon-vg.flag-icon-squared{background-image:url(../flags/1x1/vg.svg)}.flag-icon-vi{background-image:url(../flags/4x3/vi.svg)}.flag-icon-vi.flag-icon-squared{background-image:url(../flags/1x1/vi.svg)}.flag-icon-vn{background-image:url(../flags/4x3/vn.svg)}.flag-icon-vn.flag-icon-squared{background-image:url(../flags/1x1/vn.svg)}.flag-icon-vu{background-image:url(../flags/4x3/vu.svg)}.flag-icon-vu.flag-icon-squared{background-image:url(../flags/1x1/vu.svg)}.flag-icon-wf{background-image:url(../flags/4x3/wf.svg)}.flag-icon-wf.flag-icon-squared{background-image:url(../flags/1x1/wf.svg)}.flag-icon-ws{background-image:url(../flags/4x3/ws.svg)}.flag-icon-ws.flag-icon-squared{background-image:url(../flags/1x1/ws.svg)}.flag-icon-ye{background-image:url(../flags/4x3/ye.svg)}.flag-icon-ye.flag-icon-squared{background-image:url(../flags/1x1/ye.svg)}.flag-icon-yt{background-image:url(../flags/4x3/yt.svg)}.flag-icon-yt.flag-icon-squared{background-image:url(../flags/1x1/yt.svg)}.flag-icon-za{background-image:url(../flags/4x3/za.svg)}.flag-icon-za.flag-icon-squared{background-image:url(../flags/1x1/za.svg)}.flag-icon-zm{background-image:url(../flags/4x3/zm.svg)}.flag-icon-zm.flag-icon-squared{background-image:url(../flags/1x1/zm.svg)}.flag-icon-zw{background-image:url(../flags/4x3/zw.svg)}.flag-icon-zw.flag-icon-squared{background-image:url(../flags/1x1/zw.svg)}.flag-icon-es-ct{background-image:url(../flags/4x3/es-ct.svg)}.flag-icon-es-ct.flag-icon-squared{background-image:url(../flags/1x1/es-ct.svg)}.flag-icon-eu{background-image:url(../flags/4x3/eu.svg)}.flag-icon-eu.flag-icon-squared{background-image:url(../flags/1x1/eu.svg)}.flag-icon-gb-eng{background-image:url(../flags/4x3/gb-eng.svg)}.flag-icon-gb-eng.flag-icon-squared{background-image:url(../flags/1x1/gb-eng.svg)}.flag-icon-gb-nir{background-image:url(../flags/4x3/gb-nir.svg)}.flag-icon-gb-nir.flag-icon-squared{background-image:url(../flags/1x1/gb-nir.svg)}.flag-icon-gb-sct{background-image:url(../flags/4x3/gb-sct.svg)}.flag-icon-gb-sct.flag-icon-squared{background-image:url(../flags/1x1/gb-sct.svg)}.flag-icon-gb-wls{background-image:url(../flags/4x3/gb-wls.svg)}.flag-icon-gb-wls.flag-icon-squared{background-image:url(../flags/1x1/gb-wls.svg)}.flag-icon-un{background-image:url(../flags/4x3/un.svg)}.flag-icon-un.flag-icon-squared{background-image:url(../flags/1x1/un.svg)}.flag-icon-xk{background-image:url(../flags/4x3/xk.svg)}.flag-icon-xk.flag-icon-squared{background-image:url(../flags/1x1/xk.svg)}.loader-container{top:0;left:0;width:100%;height:100%;position:fixed;background-color:#000;opacity:.2;z-index:9999}#loader{position:absolute;left:50%;top:50%;z-index:1;margin:-75px 0 0 -75px;border:16px solid #f3f3f3;border-radius:50%;border-top:16px solid #3498db;width:120px;height:120px;-webkit-animation:spin 2s linear infinite;animation:spin 2s linear infinite}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.modal-open{overflow:hidden;padding-right:0!important}/*! +/* Sun Jun 25 2023 15:07:11 GMT+0700 (Indochina Time) */.flag-icon,.flag-icon-background{background-size:contain;background-position:50%;background-repeat:no-repeat}.fa-fw,.fa-li,.fa-stack-1x,.fa-stack-2x,.mi-fw,.mi-li,.mi-stack-1x,.mi-stack-2x{text-align:center}.fa,.fab,.fad,.fal,.far,.fas,.mi{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-style:normal;font-variant:normal;text-rendering:auto;display:inline-block}.fa-ul,.mi-ul{list-style-type:none}.flag-icon{position:relative;display:inline-block;width:1.33333333em;line-height:1em}.flag-icon:before{content:"\00a0"}.flag-icon.flag-icon-squared{width:1em}.flag-icon-ad{background-image:url(../flags/4x3/ad.svg)}.flag-icon-ad.flag-icon-squared{background-image:url(../flags/1x1/ad.svg)}.flag-icon-ae{background-image:url(../flags/4x3/ae.svg)}.flag-icon-ae.flag-icon-squared{background-image:url(../flags/1x1/ae.svg)}.flag-icon-af{background-image:url(../flags/4x3/af.svg)}.flag-icon-af.flag-icon-squared{background-image:url(../flags/1x1/af.svg)}.flag-icon-ag{background-image:url(../flags/4x3/ag.svg)}.flag-icon-ag.flag-icon-squared{background-image:url(../flags/1x1/ag.svg)}.flag-icon-ai{background-image:url(../flags/4x3/ai.svg)}.flag-icon-ai.flag-icon-squared{background-image:url(../flags/1x1/ai.svg)}.flag-icon-al{background-image:url(../flags/4x3/al.svg)}.flag-icon-al.flag-icon-squared{background-image:url(../flags/1x1/al.svg)}.flag-icon-am{background-image:url(../flags/4x3/am.svg)}.flag-icon-am.flag-icon-squared{background-image:url(../flags/1x1/am.svg)}.flag-icon-ao{background-image:url(../flags/4x3/ao.svg)}.flag-icon-ao.flag-icon-squared{background-image:url(../flags/1x1/ao.svg)}.flag-icon-aq{background-image:url(../flags/4x3/aq.svg)}.flag-icon-aq.flag-icon-squared{background-image:url(../flags/1x1/aq.svg)}.flag-icon-ar{background-image:url(../flags/4x3/ar.svg)}.flag-icon-ar.flag-icon-squared{background-image:url(../flags/1x1/ar.svg)}.flag-icon-as{background-image:url(../flags/4x3/as.svg)}.flag-icon-as.flag-icon-squared{background-image:url(../flags/1x1/as.svg)}.flag-icon-at{background-image:url(../flags/4x3/at.svg)}.flag-icon-at.flag-icon-squared{background-image:url(../flags/1x1/at.svg)}.flag-icon-au{background-image:url(../flags/4x3/au.svg)}.flag-icon-au.flag-icon-squared{background-image:url(../flags/1x1/au.svg)}.flag-icon-aw{background-image:url(../flags/4x3/aw.svg)}.flag-icon-aw.flag-icon-squared{background-image:url(../flags/1x1/aw.svg)}.flag-icon-ax{background-image:url(../flags/4x3/ax.svg)}.flag-icon-ax.flag-icon-squared{background-image:url(../flags/1x1/ax.svg)}.flag-icon-az{background-image:url(../flags/4x3/az.svg)}.flag-icon-az.flag-icon-squared{background-image:url(../flags/1x1/az.svg)}.flag-icon-ba{background-image:url(../flags/4x3/ba.svg)}.flag-icon-ba.flag-icon-squared{background-image:url(../flags/1x1/ba.svg)}.flag-icon-bb{background-image:url(../flags/4x3/bb.svg)}.flag-icon-bb.flag-icon-squared{background-image:url(../flags/1x1/bb.svg)}.flag-icon-bd{background-image:url(../flags/4x3/bd.svg)}.flag-icon-bd.flag-icon-squared{background-image:url(../flags/1x1/bd.svg)}.flag-icon-be{background-image:url(../flags/4x3/be.svg)}.flag-icon-be.flag-icon-squared{background-image:url(../flags/1x1/be.svg)}.flag-icon-bf{background-image:url(../flags/4x3/bf.svg)}.flag-icon-bf.flag-icon-squared{background-image:url(../flags/1x1/bf.svg)}.flag-icon-bg{background-image:url(../flags/4x3/bg.svg)}.flag-icon-bg.flag-icon-squared{background-image:url(../flags/1x1/bg.svg)}.flag-icon-bh{background-image:url(../flags/4x3/bh.svg)}.flag-icon-bh.flag-icon-squared{background-image:url(../flags/1x1/bh.svg)}.flag-icon-bi{background-image:url(../flags/4x3/bi.svg)}.flag-icon-bi.flag-icon-squared{background-image:url(../flags/1x1/bi.svg)}.flag-icon-bj{background-image:url(../flags/4x3/bj.svg)}.flag-icon-bj.flag-icon-squared{background-image:url(../flags/1x1/bj.svg)}.flag-icon-bl{background-image:url(../flags/4x3/bl.svg)}.flag-icon-bl.flag-icon-squared{background-image:url(../flags/1x1/bl.svg)}.flag-icon-bm{background-image:url(../flags/4x3/bm.svg)}.flag-icon-bm.flag-icon-squared{background-image:url(../flags/1x1/bm.svg)}.flag-icon-bn{background-image:url(../flags/4x3/bn.svg)}.flag-icon-bn.flag-icon-squared{background-image:url(../flags/1x1/bn.svg)}.flag-icon-bo{background-image:url(../flags/4x3/bo.svg)}.flag-icon-bo.flag-icon-squared{background-image:url(../flags/1x1/bo.svg)}.flag-icon-bq{background-image:url(../flags/4x3/bq.svg)}.flag-icon-bq.flag-icon-squared{background-image:url(../flags/1x1/bq.svg)}.flag-icon-br{background-image:url(../flags/4x3/br.svg)}.flag-icon-br.flag-icon-squared{background-image:url(../flags/1x1/br.svg)}.flag-icon-bs{background-image:url(../flags/4x3/bs.svg)}.flag-icon-bs.flag-icon-squared{background-image:url(../flags/1x1/bs.svg)}.flag-icon-bt{background-image:url(../flags/4x3/bt.svg)}.flag-icon-bt.flag-icon-squared{background-image:url(../flags/1x1/bt.svg)}.flag-icon-bv{background-image:url(../flags/4x3/bv.svg)}.flag-icon-bv.flag-icon-squared{background-image:url(../flags/1x1/bv.svg)}.flag-icon-bw{background-image:url(../flags/4x3/bw.svg)}.flag-icon-bw.flag-icon-squared{background-image:url(../flags/1x1/bw.svg)}.flag-icon-by{background-image:url(../flags/4x3/by.svg)}.flag-icon-by.flag-icon-squared{background-image:url(../flags/1x1/by.svg)}.flag-icon-bz{background-image:url(../flags/4x3/bz.svg)}.flag-icon-bz.flag-icon-squared{background-image:url(../flags/1x1/bz.svg)}.flag-icon-ca{background-image:url(../flags/4x3/ca.svg)}.flag-icon-ca.flag-icon-squared{background-image:url(../flags/1x1/ca.svg)}.flag-icon-cc{background-image:url(../flags/4x3/cc.svg)}.flag-icon-cc.flag-icon-squared{background-image:url(../flags/1x1/cc.svg)}.flag-icon-cd{background-image:url(../flags/4x3/cd.svg)}.flag-icon-cd.flag-icon-squared{background-image:url(../flags/1x1/cd.svg)}.flag-icon-cf{background-image:url(../flags/4x3/cf.svg)}.flag-icon-cf.flag-icon-squared{background-image:url(../flags/1x1/cf.svg)}.flag-icon-cg{background-image:url(../flags/4x3/cg.svg)}.flag-icon-cg.flag-icon-squared{background-image:url(../flags/1x1/cg.svg)}.flag-icon-ch{background-image:url(../flags/4x3/ch.svg)}.flag-icon-ch.flag-icon-squared{background-image:url(../flags/1x1/ch.svg)}.flag-icon-ci{background-image:url(../flags/4x3/ci.svg)}.flag-icon-ci.flag-icon-squared{background-image:url(../flags/1x1/ci.svg)}.flag-icon-ck{background-image:url(../flags/4x3/ck.svg)}.flag-icon-ck.flag-icon-squared{background-image:url(../flags/1x1/ck.svg)}.flag-icon-cl{background-image:url(../flags/4x3/cl.svg)}.flag-icon-cl.flag-icon-squared{background-image:url(../flags/1x1/cl.svg)}.flag-icon-cm{background-image:url(../flags/4x3/cm.svg)}.flag-icon-cm.flag-icon-squared{background-image:url(../flags/1x1/cm.svg)}.flag-icon-cn{background-image:url(../flags/4x3/cn.svg)}.flag-icon-cn.flag-icon-squared{background-image:url(../flags/1x1/cn.svg)}.flag-icon-co{background-image:url(../flags/4x3/co.svg)}.flag-icon-co.flag-icon-squared{background-image:url(../flags/1x1/co.svg)}.flag-icon-cr{background-image:url(../flags/4x3/cr.svg)}.flag-icon-cr.flag-icon-squared{background-image:url(../flags/1x1/cr.svg)}.flag-icon-cu{background-image:url(../flags/4x3/cu.svg)}.flag-icon-cu.flag-icon-squared{background-image:url(../flags/1x1/cu.svg)}.flag-icon-cv{background-image:url(../flags/4x3/cv.svg)}.flag-icon-cv.flag-icon-squared{background-image:url(../flags/1x1/cv.svg)}.flag-icon-cw{background-image:url(../flags/4x3/cw.svg)}.flag-icon-cw.flag-icon-squared{background-image:url(../flags/1x1/cw.svg)}.flag-icon-cx{background-image:url(../flags/4x3/cx.svg)}.flag-icon-cx.flag-icon-squared{background-image:url(../flags/1x1/cx.svg)}.flag-icon-cy{background-image:url(../flags/4x3/cy.svg)}.flag-icon-cy.flag-icon-squared{background-image:url(../flags/1x1/cy.svg)}.flag-icon-cz{background-image:url(../flags/4x3/cz.svg)}.flag-icon-cz.flag-icon-squared{background-image:url(../flags/1x1/cz.svg)}.flag-icon-de{background-image:url(../flags/4x3/de.svg)}.flag-icon-de.flag-icon-squared{background-image:url(../flags/1x1/de.svg)}.flag-icon-dj{background-image:url(../flags/4x3/dj.svg)}.flag-icon-dj.flag-icon-squared{background-image:url(../flags/1x1/dj.svg)}.flag-icon-dk{background-image:url(../flags/4x3/dk.svg)}.flag-icon-dk.flag-icon-squared{background-image:url(../flags/1x1/dk.svg)}.flag-icon-dm{background-image:url(../flags/4x3/dm.svg)}.flag-icon-dm.flag-icon-squared{background-image:url(../flags/1x1/dm.svg)}.flag-icon-do{background-image:url(../flags/4x3/do.svg)}.flag-icon-do.flag-icon-squared{background-image:url(../flags/1x1/do.svg)}.flag-icon-dz{background-image:url(../flags/4x3/dz.svg)}.flag-icon-dz.flag-icon-squared{background-image:url(../flags/1x1/dz.svg)}.flag-icon-ec{background-image:url(../flags/4x3/ec.svg)}.flag-icon-ec.flag-icon-squared{background-image:url(../flags/1x1/ec.svg)}.flag-icon-ee{background-image:url(../flags/4x3/ee.svg)}.flag-icon-ee.flag-icon-squared{background-image:url(../flags/1x1/ee.svg)}.flag-icon-eg{background-image:url(../flags/4x3/eg.svg)}.flag-icon-eg.flag-icon-squared{background-image:url(../flags/1x1/eg.svg)}.flag-icon-eh{background-image:url(../flags/4x3/eh.svg)}.flag-icon-eh.flag-icon-squared{background-image:url(../flags/1x1/eh.svg)}.flag-icon-er{background-image:url(../flags/4x3/er.svg)}.flag-icon-er.flag-icon-squared{background-image:url(../flags/1x1/er.svg)}.flag-icon-es{background-image:url(../flags/4x3/es.svg)}.flag-icon-es.flag-icon-squared{background-image:url(../flags/1x1/es.svg)}.flag-icon-et{background-image:url(../flags/4x3/et.svg)}.flag-icon-et.flag-icon-squared{background-image:url(../flags/1x1/et.svg)}.flag-icon-fi{background-image:url(../flags/4x3/fi.svg)}.flag-icon-fi.flag-icon-squared{background-image:url(../flags/1x1/fi.svg)}.flag-icon-fj{background-image:url(../flags/4x3/fj.svg)}.flag-icon-fj.flag-icon-squared{background-image:url(../flags/1x1/fj.svg)}.flag-icon-fk{background-image:url(../flags/4x3/fk.svg)}.flag-icon-fk.flag-icon-squared{background-image:url(../flags/1x1/fk.svg)}.flag-icon-fm{background-image:url(../flags/4x3/fm.svg)}.flag-icon-fm.flag-icon-squared{background-image:url(../flags/1x1/fm.svg)}.flag-icon-fo{background-image:url(../flags/4x3/fo.svg)}.flag-icon-fo.flag-icon-squared{background-image:url(../flags/1x1/fo.svg)}.flag-icon-fr{background-image:url(../flags/4x3/fr.svg)}.flag-icon-fr.flag-icon-squared{background-image:url(../flags/1x1/fr.svg)}.flag-icon-ga{background-image:url(../flags/4x3/ga.svg)}.flag-icon-ga.flag-icon-squared{background-image:url(../flags/1x1/ga.svg)}.flag-icon-gb{background-image:url(../flags/4x3/gb.svg)}.flag-icon-gb.flag-icon-squared{background-image:url(../flags/1x1/gb.svg)}.flag-icon-gd{background-image:url(../flags/4x3/gd.svg)}.flag-icon-gd.flag-icon-squared{background-image:url(../flags/1x1/gd.svg)}.flag-icon-ge{background-image:url(../flags/4x3/ge.svg)}.flag-icon-ge.flag-icon-squared{background-image:url(../flags/1x1/ge.svg)}.flag-icon-gf{background-image:url(../flags/4x3/gf.svg)}.flag-icon-gf.flag-icon-squared{background-image:url(../flags/1x1/gf.svg)}.flag-icon-gg{background-image:url(../flags/4x3/gg.svg)}.flag-icon-gg.flag-icon-squared{background-image:url(../flags/1x1/gg.svg)}.flag-icon-gh{background-image:url(../flags/4x3/gh.svg)}.flag-icon-gh.flag-icon-squared{background-image:url(../flags/1x1/gh.svg)}.flag-icon-gi{background-image:url(../flags/4x3/gi.svg)}.flag-icon-gi.flag-icon-squared{background-image:url(../flags/1x1/gi.svg)}.flag-icon-gl{background-image:url(../flags/4x3/gl.svg)}.flag-icon-gl.flag-icon-squared{background-image:url(../flags/1x1/gl.svg)}.flag-icon-gm{background-image:url(../flags/4x3/gm.svg)}.flag-icon-gm.flag-icon-squared{background-image:url(../flags/1x1/gm.svg)}.flag-icon-gn{background-image:url(../flags/4x3/gn.svg)}.flag-icon-gn.flag-icon-squared{background-image:url(../flags/1x1/gn.svg)}.flag-icon-gp{background-image:url(../flags/4x3/gp.svg)}.flag-icon-gp.flag-icon-squared{background-image:url(../flags/1x1/gp.svg)}.flag-icon-gq{background-image:url(../flags/4x3/gq.svg)}.flag-icon-gq.flag-icon-squared{background-image:url(../flags/1x1/gq.svg)}.flag-icon-gr{background-image:url(../flags/4x3/gr.svg)}.flag-icon-gr.flag-icon-squared{background-image:url(../flags/1x1/gr.svg)}.flag-icon-gs{background-image:url(../flags/4x3/gs.svg)}.flag-icon-gs.flag-icon-squared{background-image:url(../flags/1x1/gs.svg)}.flag-icon-gt{background-image:url(../flags/4x3/gt.svg)}.flag-icon-gt.flag-icon-squared{background-image:url(../flags/1x1/gt.svg)}.flag-icon-gu{background-image:url(../flags/4x3/gu.svg)}.flag-icon-gu.flag-icon-squared{background-image:url(../flags/1x1/gu.svg)}.flag-icon-gw{background-image:url(../flags/4x3/gw.svg)}.flag-icon-gw.flag-icon-squared{background-image:url(../flags/1x1/gw.svg)}.flag-icon-gy{background-image:url(../flags/4x3/gy.svg)}.flag-icon-gy.flag-icon-squared{background-image:url(../flags/1x1/gy.svg)}.flag-icon-hk{background-image:url(../flags/4x3/hk.svg)}.flag-icon-hk.flag-icon-squared{background-image:url(../flags/1x1/hk.svg)}.flag-icon-hm{background-image:url(../flags/4x3/hm.svg)}.flag-icon-hm.flag-icon-squared{background-image:url(../flags/1x1/hm.svg)}.flag-icon-hn{background-image:url(../flags/4x3/hn.svg)}.flag-icon-hn.flag-icon-squared{background-image:url(../flags/1x1/hn.svg)}.flag-icon-hr{background-image:url(../flags/4x3/hr.svg)}.flag-icon-hr.flag-icon-squared{background-image:url(../flags/1x1/hr.svg)}.flag-icon-ht{background-image:url(../flags/4x3/ht.svg)}.flag-icon-ht.flag-icon-squared{background-image:url(../flags/1x1/ht.svg)}.flag-icon-hu{background-image:url(../flags/4x3/hu.svg)}.flag-icon-hu.flag-icon-squared{background-image:url(../flags/1x1/hu.svg)}.flag-icon-id{background-image:url(../flags/4x3/id.svg)}.flag-icon-id.flag-icon-squared{background-image:url(../flags/1x1/id.svg)}.flag-icon-ie{background-image:url(../flags/4x3/ie.svg)}.flag-icon-ie.flag-icon-squared{background-image:url(../flags/1x1/ie.svg)}.flag-icon-il{background-image:url(../flags/4x3/il.svg)}.flag-icon-il.flag-icon-squared{background-image:url(../flags/1x1/il.svg)}.flag-icon-im{background-image:url(../flags/4x3/im.svg)}.flag-icon-im.flag-icon-squared{background-image:url(../flags/1x1/im.svg)}.flag-icon-in{background-image:url(../flags/4x3/in.svg)}.flag-icon-in.flag-icon-squared{background-image:url(../flags/1x1/in.svg)}.flag-icon-io{background-image:url(../flags/4x3/io.svg)}.flag-icon-io.flag-icon-squared{background-image:url(../flags/1x1/io.svg)}.flag-icon-iq{background-image:url(../flags/4x3/iq.svg)}.flag-icon-iq.flag-icon-squared{background-image:url(../flags/1x1/iq.svg)}.flag-icon-ir{background-image:url(../flags/4x3/ir.svg)}.flag-icon-ir.flag-icon-squared{background-image:url(../flags/1x1/ir.svg)}.flag-icon-is{background-image:url(../flags/4x3/is.svg)}.flag-icon-is.flag-icon-squared{background-image:url(../flags/1x1/is.svg)}.flag-icon-it{background-image:url(../flags/4x3/it.svg)}.flag-icon-it.flag-icon-squared{background-image:url(../flags/1x1/it.svg)}.flag-icon-je{background-image:url(../flags/4x3/je.svg)}.flag-icon-je.flag-icon-squared{background-image:url(../flags/1x1/je.svg)}.flag-icon-jm{background-image:url(../flags/4x3/jm.svg)}.flag-icon-jm.flag-icon-squared{background-image:url(../flags/1x1/jm.svg)}.flag-icon-jo{background-image:url(../flags/4x3/jo.svg)}.flag-icon-jo.flag-icon-squared{background-image:url(../flags/1x1/jo.svg)}.flag-icon-jp{background-image:url(../flags/4x3/jp.svg)}.flag-icon-jp.flag-icon-squared{background-image:url(../flags/1x1/jp.svg)}.flag-icon-ke{background-image:url(../flags/4x3/ke.svg)}.flag-icon-ke.flag-icon-squared{background-image:url(../flags/1x1/ke.svg)}.flag-icon-kg{background-image:url(../flags/4x3/kg.svg)}.flag-icon-kg.flag-icon-squared{background-image:url(../flags/1x1/kg.svg)}.flag-icon-kh{background-image:url(../flags/4x3/kh.svg)}.flag-icon-kh.flag-icon-squared{background-image:url(../flags/1x1/kh.svg)}.flag-icon-ki{background-image:url(../flags/4x3/ki.svg)}.flag-icon-ki.flag-icon-squared{background-image:url(../flags/1x1/ki.svg)}.flag-icon-km{background-image:url(../flags/4x3/km.svg)}.flag-icon-km.flag-icon-squared{background-image:url(../flags/1x1/km.svg)}.flag-icon-kn{background-image:url(../flags/4x3/kn.svg)}.flag-icon-kn.flag-icon-squared{background-image:url(../flags/1x1/kn.svg)}.flag-icon-kp{background-image:url(../flags/4x3/kp.svg)}.flag-icon-kp.flag-icon-squared{background-image:url(../flags/1x1/kp.svg)}.flag-icon-kr{background-image:url(../flags/4x3/kr.svg)}.flag-icon-kr.flag-icon-squared{background-image:url(../flags/1x1/kr.svg)}.flag-icon-kw{background-image:url(../flags/4x3/kw.svg)}.flag-icon-kw.flag-icon-squared{background-image:url(../flags/1x1/kw.svg)}.flag-icon-ky{background-image:url(../flags/4x3/ky.svg)}.flag-icon-ky.flag-icon-squared{background-image:url(../flags/1x1/ky.svg)}.flag-icon-kz{background-image:url(../flags/4x3/kz.svg)}.flag-icon-kz.flag-icon-squared{background-image:url(../flags/1x1/kz.svg)}.flag-icon-la{background-image:url(../flags/4x3/la.svg)}.flag-icon-la.flag-icon-squared{background-image:url(../flags/1x1/la.svg)}.flag-icon-lb{background-image:url(../flags/4x3/lb.svg)}.flag-icon-lb.flag-icon-squared{background-image:url(../flags/1x1/lb.svg)}.flag-icon-lc{background-image:url(../flags/4x3/lc.svg)}.flag-icon-lc.flag-icon-squared{background-image:url(../flags/1x1/lc.svg)}.flag-icon-li{background-image:url(../flags/4x3/li.svg)}.flag-icon-li.flag-icon-squared{background-image:url(../flags/1x1/li.svg)}.flag-icon-lk{background-image:url(../flags/4x3/lk.svg)}.flag-icon-lk.flag-icon-squared{background-image:url(../flags/1x1/lk.svg)}.flag-icon-lr{background-image:url(../flags/4x3/lr.svg)}.flag-icon-lr.flag-icon-squared{background-image:url(../flags/1x1/lr.svg)}.flag-icon-ls{background-image:url(../flags/4x3/ls.svg)}.flag-icon-ls.flag-icon-squared{background-image:url(../flags/1x1/ls.svg)}.flag-icon-lt{background-image:url(../flags/4x3/lt.svg)}.flag-icon-lt.flag-icon-squared{background-image:url(../flags/1x1/lt.svg)}.flag-icon-lu{background-image:url(../flags/4x3/lu.svg)}.flag-icon-lu.flag-icon-squared{background-image:url(../flags/1x1/lu.svg)}.flag-icon-lv{background-image:url(../flags/4x3/lv.svg)}.flag-icon-lv.flag-icon-squared{background-image:url(../flags/1x1/lv.svg)}.flag-icon-ly{background-image:url(../flags/4x3/ly.svg)}.flag-icon-ly.flag-icon-squared{background-image:url(../flags/1x1/ly.svg)}.flag-icon-ma{background-image:url(../flags/4x3/ma.svg)}.flag-icon-ma.flag-icon-squared{background-image:url(../flags/1x1/ma.svg)}.flag-icon-mc{background-image:url(../flags/4x3/mc.svg)}.flag-icon-mc.flag-icon-squared{background-image:url(../flags/1x1/mc.svg)}.flag-icon-md{background-image:url(../flags/4x3/md.svg)}.flag-icon-md.flag-icon-squared{background-image:url(../flags/1x1/md.svg)}.flag-icon-me{background-image:url(../flags/4x3/me.svg)}.flag-icon-me.flag-icon-squared{background-image:url(../flags/1x1/me.svg)}.flag-icon-mf{background-image:url(../flags/4x3/mf.svg)}.flag-icon-mf.flag-icon-squared{background-image:url(../flags/1x1/mf.svg)}.flag-icon-mg{background-image:url(../flags/4x3/mg.svg)}.flag-icon-mg.flag-icon-squared{background-image:url(../flags/1x1/mg.svg)}.flag-icon-mh{background-image:url(../flags/4x3/mh.svg)}.flag-icon-mh.flag-icon-squared{background-image:url(../flags/1x1/mh.svg)}.flag-icon-mk{background-image:url(../flags/4x3/mk.svg)}.flag-icon-mk.flag-icon-squared{background-image:url(../flags/1x1/mk.svg)}.flag-icon-ml{background-image:url(../flags/4x3/ml.svg)}.flag-icon-ml.flag-icon-squared{background-image:url(../flags/1x1/ml.svg)}.flag-icon-mm{background-image:url(../flags/4x3/mm.svg)}.flag-icon-mm.flag-icon-squared{background-image:url(../flags/1x1/mm.svg)}.flag-icon-mn{background-image:url(../flags/4x3/mn.svg)}.flag-icon-mn.flag-icon-squared{background-image:url(../flags/1x1/mn.svg)}.flag-icon-mo{background-image:url(../flags/4x3/mo.svg)}.flag-icon-mo.flag-icon-squared{background-image:url(../flags/1x1/mo.svg)}.flag-icon-mp{background-image:url(../flags/4x3/mp.svg)}.flag-icon-mp.flag-icon-squared{background-image:url(../flags/1x1/mp.svg)}.flag-icon-mq{background-image:url(../flags/4x3/mq.svg)}.flag-icon-mq.flag-icon-squared{background-image:url(../flags/1x1/mq.svg)}.flag-icon-mr{background-image:url(../flags/4x3/mr.svg)}.flag-icon-mr.flag-icon-squared{background-image:url(../flags/1x1/mr.svg)}.flag-icon-ms{background-image:url(../flags/4x3/ms.svg)}.flag-icon-ms.flag-icon-squared{background-image:url(../flags/1x1/ms.svg)}.flag-icon-mt{background-image:url(../flags/4x3/mt.svg)}.flag-icon-mt.flag-icon-squared{background-image:url(../flags/1x1/mt.svg)}.flag-icon-mu{background-image:url(../flags/4x3/mu.svg)}.flag-icon-mu.flag-icon-squared{background-image:url(../flags/1x1/mu.svg)}.flag-icon-mv{background-image:url(../flags/4x3/mv.svg)}.flag-icon-mv.flag-icon-squared{background-image:url(../flags/1x1/mv.svg)}.flag-icon-mw{background-image:url(../flags/4x3/mw.svg)}.flag-icon-mw.flag-icon-squared{background-image:url(../flags/1x1/mw.svg)}.flag-icon-mx{background-image:url(../flags/4x3/mx.svg)}.flag-icon-mx.flag-icon-squared{background-image:url(../flags/1x1/mx.svg)}.flag-icon-my{background-image:url(../flags/4x3/my.svg)}.flag-icon-my.flag-icon-squared{background-image:url(../flags/1x1/my.svg)}.flag-icon-mz{background-image:url(../flags/4x3/mz.svg)}.flag-icon-mz.flag-icon-squared{background-image:url(../flags/1x1/mz.svg)}.flag-icon-na{background-image:url(../flags/4x3/na.svg)}.flag-icon-na.flag-icon-squared{background-image:url(../flags/1x1/na.svg)}.flag-icon-nc{background-image:url(../flags/4x3/nc.svg)}.flag-icon-nc.flag-icon-squared{background-image:url(../flags/1x1/nc.svg)}.flag-icon-ne{background-image:url(../flags/4x3/ne.svg)}.flag-icon-ne.flag-icon-squared{background-image:url(../flags/1x1/ne.svg)}.flag-icon-nf{background-image:url(../flags/4x3/nf.svg)}.flag-icon-nf.flag-icon-squared{background-image:url(../flags/1x1/nf.svg)}.flag-icon-ng{background-image:url(../flags/4x3/ng.svg)}.flag-icon-ng.flag-icon-squared{background-image:url(../flags/1x1/ng.svg)}.flag-icon-ni{background-image:url(../flags/4x3/ni.svg)}.flag-icon-ni.flag-icon-squared{background-image:url(../flags/1x1/ni.svg)}.flag-icon-nl{background-image:url(../flags/4x3/nl.svg)}.flag-icon-nl.flag-icon-squared{background-image:url(../flags/1x1/nl.svg)}.flag-icon-no{background-image:url(../flags/4x3/no.svg)}.flag-icon-no.flag-icon-squared{background-image:url(../flags/1x1/no.svg)}.flag-icon-np{background-image:url(../flags/4x3/np.svg)}.flag-icon-np.flag-icon-squared{background-image:url(../flags/1x1/np.svg)}.flag-icon-nr{background-image:url(../flags/4x3/nr.svg)}.flag-icon-nr.flag-icon-squared{background-image:url(../flags/1x1/nr.svg)}.flag-icon-nu{background-image:url(../flags/4x3/nu.svg)}.flag-icon-nu.flag-icon-squared{background-image:url(../flags/1x1/nu.svg)}.flag-icon-nz{background-image:url(../flags/4x3/nz.svg)}.flag-icon-nz.flag-icon-squared{background-image:url(../flags/1x1/nz.svg)}.flag-icon-om{background-image:url(../flags/4x3/om.svg)}.flag-icon-om.flag-icon-squared{background-image:url(../flags/1x1/om.svg)}.flag-icon-pa{background-image:url(../flags/4x3/pa.svg)}.flag-icon-pa.flag-icon-squared{background-image:url(../flags/1x1/pa.svg)}.flag-icon-pe{background-image:url(../flags/4x3/pe.svg)}.flag-icon-pe.flag-icon-squared{background-image:url(../flags/1x1/pe.svg)}.flag-icon-pf{background-image:url(../flags/4x3/pf.svg)}.flag-icon-pf.flag-icon-squared{background-image:url(../flags/1x1/pf.svg)}.flag-icon-pg{background-image:url(../flags/4x3/pg.svg)}.flag-icon-pg.flag-icon-squared{background-image:url(../flags/1x1/pg.svg)}.flag-icon-ph{background-image:url(../flags/4x3/ph.svg)}.flag-icon-ph.flag-icon-squared{background-image:url(../flags/1x1/ph.svg)}.flag-icon-pk{background-image:url(../flags/4x3/pk.svg)}.flag-icon-pk.flag-icon-squared{background-image:url(../flags/1x1/pk.svg)}.flag-icon-pl{background-image:url(../flags/4x3/pl.svg)}.flag-icon-pl.flag-icon-squared{background-image:url(../flags/1x1/pl.svg)}.flag-icon-pm{background-image:url(../flags/4x3/pm.svg)}.flag-icon-pm.flag-icon-squared{background-image:url(../flags/1x1/pm.svg)}.flag-icon-pn{background-image:url(../flags/4x3/pn.svg)}.flag-icon-pn.flag-icon-squared{background-image:url(../flags/1x1/pn.svg)}.flag-icon-pr{background-image:url(../flags/4x3/pr.svg)}.flag-icon-pr.flag-icon-squared{background-image:url(../flags/1x1/pr.svg)}.flag-icon-ps{background-image:url(../flags/4x3/ps.svg)}.flag-icon-ps.flag-icon-squared{background-image:url(../flags/1x1/ps.svg)}.flag-icon-pt{background-image:url(../flags/4x3/pt.svg)}.flag-icon-pt.flag-icon-squared{background-image:url(../flags/1x1/pt.svg)}.flag-icon-pw{background-image:url(../flags/4x3/pw.svg)}.flag-icon-pw.flag-icon-squared{background-image:url(../flags/1x1/pw.svg)}.flag-icon-py{background-image:url(../flags/4x3/py.svg)}.flag-icon-py.flag-icon-squared{background-image:url(../flags/1x1/py.svg)}.flag-icon-qa{background-image:url(../flags/4x3/qa.svg)}.flag-icon-qa.flag-icon-squared{background-image:url(../flags/1x1/qa.svg)}.flag-icon-re{background-image:url(../flags/4x3/re.svg)}.flag-icon-re.flag-icon-squared{background-image:url(../flags/1x1/re.svg)}.flag-icon-ro{background-image:url(../flags/4x3/ro.svg)}.flag-icon-ro.flag-icon-squared{background-image:url(../flags/1x1/ro.svg)}.flag-icon-rs{background-image:url(../flags/4x3/rs.svg)}.flag-icon-rs.flag-icon-squared{background-image:url(../flags/1x1/rs.svg)}.flag-icon-ru{background-image:url(../flags/4x3/ru.svg)}.flag-icon-ru.flag-icon-squared{background-image:url(../flags/1x1/ru.svg)}.flag-icon-rw{background-image:url(../flags/4x3/rw.svg)}.flag-icon-rw.flag-icon-squared{background-image:url(../flags/1x1/rw.svg)}.flag-icon-sa{background-image:url(../flags/4x3/sa.svg)}.flag-icon-sa.flag-icon-squared{background-image:url(../flags/1x1/sa.svg)}.flag-icon-sb{background-image:url(../flags/4x3/sb.svg)}.flag-icon-sb.flag-icon-squared{background-image:url(../flags/1x1/sb.svg)}.flag-icon-sc{background-image:url(../flags/4x3/sc.svg)}.flag-icon-sc.flag-icon-squared{background-image:url(../flags/1x1/sc.svg)}.flag-icon-sd{background-image:url(../flags/4x3/sd.svg)}.flag-icon-sd.flag-icon-squared{background-image:url(../flags/1x1/sd.svg)}.flag-icon-se{background-image:url(../flags/4x3/se.svg)}.flag-icon-se.flag-icon-squared{background-image:url(../flags/1x1/se.svg)}.flag-icon-sg{background-image:url(../flags/4x3/sg.svg)}.flag-icon-sg.flag-icon-squared{background-image:url(../flags/1x1/sg.svg)}.flag-icon-sh{background-image:url(../flags/4x3/sh.svg)}.flag-icon-sh.flag-icon-squared{background-image:url(../flags/1x1/sh.svg)}.flag-icon-si{background-image:url(../flags/4x3/si.svg)}.flag-icon-si.flag-icon-squared{background-image:url(../flags/1x1/si.svg)}.flag-icon-sj{background-image:url(../flags/4x3/sj.svg)}.flag-icon-sj.flag-icon-squared{background-image:url(../flags/1x1/sj.svg)}.flag-icon-sk{background-image:url(../flags/4x3/sk.svg)}.flag-icon-sk.flag-icon-squared{background-image:url(../flags/1x1/sk.svg)}.flag-icon-sl{background-image:url(../flags/4x3/sl.svg)}.flag-icon-sl.flag-icon-squared{background-image:url(../flags/1x1/sl.svg)}.flag-icon-sm{background-image:url(../flags/4x3/sm.svg)}.flag-icon-sm.flag-icon-squared{background-image:url(../flags/1x1/sm.svg)}.flag-icon-sn{background-image:url(../flags/4x3/sn.svg)}.flag-icon-sn.flag-icon-squared{background-image:url(../flags/1x1/sn.svg)}.flag-icon-so{background-image:url(../flags/4x3/so.svg)}.flag-icon-so.flag-icon-squared{background-image:url(../flags/1x1/so.svg)}.flag-icon-sr{background-image:url(../flags/4x3/sr.svg)}.flag-icon-sr.flag-icon-squared{background-image:url(../flags/1x1/sr.svg)}.flag-icon-ss{background-image:url(../flags/4x3/ss.svg)}.flag-icon-ss.flag-icon-squared{background-image:url(../flags/1x1/ss.svg)}.flag-icon-st{background-image:url(../flags/4x3/st.svg)}.flag-icon-st.flag-icon-squared{background-image:url(../flags/1x1/st.svg)}.flag-icon-sv{background-image:url(../flags/4x3/sv.svg)}.flag-icon-sv.flag-icon-squared{background-image:url(../flags/1x1/sv.svg)}.flag-icon-sx{background-image:url(../flags/4x3/sx.svg)}.flag-icon-sx.flag-icon-squared{background-image:url(../flags/1x1/sx.svg)}.flag-icon-sy{background-image:url(../flags/4x3/sy.svg)}.flag-icon-sy.flag-icon-squared{background-image:url(../flags/1x1/sy.svg)}.flag-icon-sz{background-image:url(../flags/4x3/sz.svg)}.flag-icon-sz.flag-icon-squared{background-image:url(../flags/1x1/sz.svg)}.flag-icon-tc{background-image:url(../flags/4x3/tc.svg)}.flag-icon-tc.flag-icon-squared{background-image:url(../flags/1x1/tc.svg)}.flag-icon-td{background-image:url(../flags/4x3/td.svg)}.flag-icon-td.flag-icon-squared{background-image:url(../flags/1x1/td.svg)}.flag-icon-tf{background-image:url(../flags/4x3/tf.svg)}.flag-icon-tf.flag-icon-squared{background-image:url(../flags/1x1/tf.svg)}.flag-icon-tg{background-image:url(../flags/4x3/tg.svg)}.flag-icon-tg.flag-icon-squared{background-image:url(../flags/1x1/tg.svg)}.flag-icon-th{background-image:url(../flags/4x3/th.svg)}.flag-icon-th.flag-icon-squared{background-image:url(../flags/1x1/th.svg)}.flag-icon-tj{background-image:url(../flags/4x3/tj.svg)}.flag-icon-tj.flag-icon-squared{background-image:url(../flags/1x1/tj.svg)}.flag-icon-tk{background-image:url(../flags/4x3/tk.svg)}.flag-icon-tk.flag-icon-squared{background-image:url(../flags/1x1/tk.svg)}.flag-icon-tl{background-image:url(../flags/4x3/tl.svg)}.flag-icon-tl.flag-icon-squared{background-image:url(../flags/1x1/tl.svg)}.flag-icon-tm{background-image:url(../flags/4x3/tm.svg)}.flag-icon-tm.flag-icon-squared{background-image:url(../flags/1x1/tm.svg)}.flag-icon-tn{background-image:url(../flags/4x3/tn.svg)}.flag-icon-tn.flag-icon-squared{background-image:url(../flags/1x1/tn.svg)}.flag-icon-to{background-image:url(../flags/4x3/to.svg)}.flag-icon-to.flag-icon-squared{background-image:url(../flags/1x1/to.svg)}.flag-icon-tr{background-image:url(../flags/4x3/tr.svg)}.flag-icon-tr.flag-icon-squared{background-image:url(../flags/1x1/tr.svg)}.flag-icon-tt{background-image:url(../flags/4x3/tt.svg)}.flag-icon-tt.flag-icon-squared{background-image:url(../flags/1x1/tt.svg)}.flag-icon-tv{background-image:url(../flags/4x3/tv.svg)}.flag-icon-tv.flag-icon-squared{background-image:url(../flags/1x1/tv.svg)}.flag-icon-tw{background-image:url(../flags/4x3/tw.svg)}.flag-icon-tw.flag-icon-squared{background-image:url(../flags/1x1/tw.svg)}.flag-icon-tz{background-image:url(../flags/4x3/tz.svg)}.flag-icon-tz.flag-icon-squared{background-image:url(../flags/1x1/tz.svg)}.flag-icon-ua{background-image:url(../flags/4x3/ua.svg)}.flag-icon-ua.flag-icon-squared{background-image:url(../flags/1x1/ua.svg)}.flag-icon-ug{background-image:url(../flags/4x3/ug.svg)}.flag-icon-ug.flag-icon-squared{background-image:url(../flags/1x1/ug.svg)}.flag-icon-um{background-image:url(../flags/4x3/um.svg)}.flag-icon-um.flag-icon-squared{background-image:url(../flags/1x1/um.svg)}.flag-icon-us{background-image:url(../flags/4x3/us.svg)}.flag-icon-us.flag-icon-squared{background-image:url(../flags/1x1/us.svg)}.flag-icon-uy{background-image:url(../flags/4x3/uy.svg)}.flag-icon-uy.flag-icon-squared{background-image:url(../flags/1x1/uy.svg)}.flag-icon-uz{background-image:url(../flags/4x3/uz.svg)}.flag-icon-uz.flag-icon-squared{background-image:url(../flags/1x1/uz.svg)}.flag-icon-va{background-image:url(../flags/4x3/va.svg)}.flag-icon-va.flag-icon-squared{background-image:url(../flags/1x1/va.svg)}.flag-icon-vc{background-image:url(../flags/4x3/vc.svg)}.flag-icon-vc.flag-icon-squared{background-image:url(../flags/1x1/vc.svg)}.flag-icon-ve{background-image:url(../flags/4x3/ve.svg)}.flag-icon-ve.flag-icon-squared{background-image:url(../flags/1x1/ve.svg)}.flag-icon-vg{background-image:url(../flags/4x3/vg.svg)}.flag-icon-vg.flag-icon-squared{background-image:url(../flags/1x1/vg.svg)}.flag-icon-vi{background-image:url(../flags/4x3/vi.svg)}.flag-icon-vi.flag-icon-squared{background-image:url(../flags/1x1/vi.svg)}.flag-icon-vn{background-image:url(../flags/4x3/vn.svg)}.flag-icon-vn.flag-icon-squared{background-image:url(../flags/1x1/vn.svg)}.flag-icon-vu{background-image:url(../flags/4x3/vu.svg)}.flag-icon-vu.flag-icon-squared{background-image:url(../flags/1x1/vu.svg)}.flag-icon-wf{background-image:url(../flags/4x3/wf.svg)}.flag-icon-wf.flag-icon-squared{background-image:url(../flags/1x1/wf.svg)}.flag-icon-ws{background-image:url(../flags/4x3/ws.svg)}.flag-icon-ws.flag-icon-squared{background-image:url(../flags/1x1/ws.svg)}.flag-icon-ye{background-image:url(../flags/4x3/ye.svg)}.flag-icon-ye.flag-icon-squared{background-image:url(../flags/1x1/ye.svg)}.flag-icon-yt{background-image:url(../flags/4x3/yt.svg)}.flag-icon-yt.flag-icon-squared{background-image:url(../flags/1x1/yt.svg)}.flag-icon-za{background-image:url(../flags/4x3/za.svg)}.flag-icon-za.flag-icon-squared{background-image:url(../flags/1x1/za.svg)}.flag-icon-zm{background-image:url(../flags/4x3/zm.svg)}.flag-icon-zm.flag-icon-squared{background-image:url(../flags/1x1/zm.svg)}.flag-icon-zw{background-image:url(../flags/4x3/zw.svg)}.flag-icon-zw.flag-icon-squared{background-image:url(../flags/1x1/zw.svg)}.flag-icon-es-ct{background-image:url(../flags/4x3/es-ct.svg)}.flag-icon-es-ct.flag-icon-squared{background-image:url(../flags/1x1/es-ct.svg)}.flag-icon-eu{background-image:url(../flags/4x3/eu.svg)}.flag-icon-eu.flag-icon-squared{background-image:url(../flags/1x1/eu.svg)}.flag-icon-gb-eng{background-image:url(../flags/4x3/gb-eng.svg)}.flag-icon-gb-eng.flag-icon-squared{background-image:url(../flags/1x1/gb-eng.svg)}.flag-icon-gb-nir{background-image:url(../flags/4x3/gb-nir.svg)}.flag-icon-gb-nir.flag-icon-squared{background-image:url(../flags/1x1/gb-nir.svg)}.flag-icon-gb-sct{background-image:url(../flags/4x3/gb-sct.svg)}.flag-icon-gb-sct.flag-icon-squared{background-image:url(../flags/1x1/gb-sct.svg)}.flag-icon-gb-wls{background-image:url(../flags/4x3/gb-wls.svg)}.flag-icon-gb-wls.flag-icon-squared{background-image:url(../flags/1x1/gb-wls.svg)}.flag-icon-un{background-image:url(../flags/4x3/un.svg)}.flag-icon-un.flag-icon-squared{background-image:url(../flags/1x1/un.svg)}.flag-icon-xk{background-image:url(../flags/4x3/xk.svg)}.flag-icon-xk.flag-icon-squared{background-image:url(../flags/1x1/xk.svg)}.loader-container{top:0;left:0;width:100%;height:100%;position:fixed;background-color:#000;opacity:.2;z-index:9999}#loader{position:absolute;left:50%;top:50%;z-index:1;margin:-75px 0 0 -75px;border:16px solid #f3f3f3;border-radius:50%;border-top:16px solid #3498db;width:120px;height:120px;-webkit-animation:spin 2s linear infinite;animation:spin 2s linear infinite}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.modal-open{overflow:hidden;padding-right:0!important}/*! * Font Awesome Free 5.12.1 by @fontawesome - https://fontawesome.com * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) */.fa,.fab,.fad,.fal,.far,.fas{line-height:1}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-.0667em}.fa-xs{font-size:.75em}.fa-sm{font-size:.875em}.fa-1x{font-size:1em}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-6x{font-size:6em}.fa-7x{font-size:7em}.fa-8x{font-size:8em}.fa-9x{font-size:9em}.fa-10x{font-size:10em}.fa-fw{width:1.25em}.fa-ul{margin-left:2.5em;padding-left:0}.fa-ul>li{position:relative}.fa-li{left:-2em;position:absolute;width:2em;line-height:inherit}.fa-border{border:.08em solid #eee;border-radius:.1em;padding:.2em .25em .15em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left,.fab.fa-pull-left,.fal.fa-pull-left,.far.fa-pull-left,.fas.fa-pull-left{margin-right:.3em}.fa.fa-pull-right,.fab.fa-pull-right,.fal.fa-pull-right,.far.fa-pull-right,.fas.fa-pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-webkit-transform:scaleY(-1);transform:scaleY(-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical,.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1);transform:scale(-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;line-height:2em;position:relative;vertical-align:middle;width:2.5em}.fa-stack-1x,.fa-stack-2x{left:0;position:absolute;width:100%}.mi-stack,.mi-ul>li{position:relative}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-500px:before{content:"\f26e"}.fa-accessible-icon:before{content:"\f368"}.fa-accusoft:before{content:"\f369"}.fa-acquisitions-incorporated:before{content:"\f6af"}.fa-ad:before{content:"\f641"}.fa-address-book:before{content:"\f2b9"}.fa-address-card:before{content:"\f2bb"}.fa-adjust:before{content:"\f042"}.fa-adn:before{content:"\f170"}.fa-adobe:before{content:"\f778"}.fa-adversal:before{content:"\f36a"}.fa-affiliatetheme:before{content:"\f36b"}.fa-air-freshener:before{content:"\f5d0"}.fa-airbnb:before{content:"\f834"}.fa-algolia:before{content:"\f36c"}.fa-align-center:before{content:"\f037"}.fa-align-justify:before{content:"\f039"}.fa-align-left:before{content:"\f036"}.fa-align-right:before{content:"\f038"}.fa-alipay:before{content:"\f642"}.fa-allergies:before{content:"\f461"}.fa-amazon:before{content:"\f270"}.fa-amazon-pay:before{content:"\f42c"}.fa-ambulance:before{content:"\f0f9"}.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-amilia:before{content:"\f36d"}.fa-anchor:before{content:"\f13d"}.fa-android:before{content:"\f17b"}.fa-angellist:before{content:"\f209"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-down:before{content:"\f107"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angry:before{content:"\f556"}.fa-angrycreative:before{content:"\f36e"}.fa-angular:before{content:"\f420"}.fa-ankh:before{content:"\f644"}.fa-app-store:before{content:"\f36f"}.fa-app-store-ios:before{content:"\f370"}.fa-apper:before{content:"\f371"}.fa-apple:before{content:"\f179"}.fa-apple-alt:before{content:"\f5d1"}.fa-apple-pay:before{content:"\f415"}.fa-archive:before{content:"\f187"}.fa-archway:before{content:"\f557"}.fa-arrow-alt-circle-down:before{content:"\f358"}.fa-arrow-alt-circle-left:before{content:"\f359"}.fa-arrow-alt-circle-right:before{content:"\f35a"}.fa-arrow-alt-circle-up:before{content:"\f35b"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-down:before{content:"\f063"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrows-alt:before{content:"\f0b2"}.fa-arrows-alt-h:before{content:"\f337"}.fa-arrows-alt-v:before{content:"\f338"}.fa-artstation:before{content:"\f77a"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asterisk:before{content:"\f069"}.fa-asymmetrik:before{content:"\f372"}.fa-at:before{content:"\f1fa"}.fa-atlas:before{content:"\f558"}.fa-atlassian:before{content:"\f77b"}.fa-atom:before{content:"\f5d2"}.fa-audible:before{content:"\f373"}.fa-audio-description:before{content:"\f29e"}.fa-autoprefixer:before{content:"\f41c"}.fa-avianex:before{content:"\f374"}.fa-aviato:before{content:"\f421"}.fa-award:before{content:"\f559"}.fa-aws:before{content:"\f375"}.fa-baby:before{content:"\f77c"}.fa-baby-carriage:before{content:"\f77d"}.fa-backspace:before{content:"\f55a"}.fa-backward:before{content:"\f04a"}.fa-bacon:before{content:"\f7e5"}.fa-bahai:before{content:"\f666"}.fa-balance-scale:before{content:"\f24e"}.fa-balance-scale-left:before{content:"\f515"}.fa-balance-scale-right:before{content:"\f516"}.fa-ban:before{content:"\f05e"}.fa-band-aid:before{content:"\f462"}.fa-bandcamp:before{content:"\f2d5"}.fa-barcode:before{content:"\f02a"}.fa-bars:before{content:"\f0c9"}.fa-baseball-ball:before{content:"\f433"}.fa-basketball-ball:before{content:"\f434"}.fa-bath:before{content:"\f2cd"}.fa-battery-empty:before{content:"\f244"}.fa-battery-full:before{content:"\f240"}.fa-battery-half:before{content:"\f242"}.fa-battery-quarter:before{content:"\f243"}.fa-battery-three-quarters:before{content:"\f241"}.fa-battle-net:before{content:"\f835"}.fa-bed:before{content:"\f236"}.fa-beer:before{content:"\f0fc"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-bell:before{content:"\f0f3"}.fa-bell-slash:before{content:"\f1f6"}.fa-bezier-curve:before{content:"\f55b"}.fa-bible:before{content:"\f647"}.fa-bicycle:before{content:"\f206"}.fa-biking:before{content:"\f84a"}.fa-bimobject:before{content:"\f378"}.fa-binoculars:before{content:"\f1e5"}.fa-biohazard:before{content:"\f780"}.fa-birthday-cake:before{content:"\f1fd"}.fa-bitbucket:before{content:"\f171"}.fa-bitcoin:before{content:"\f379"}.fa-bity:before{content:"\f37a"}.fa-black-tie:before{content:"\f27e"}.fa-blackberry:before{content:"\f37b"}.fa-blender:before{content:"\f517"}.fa-blender-phone:before{content:"\f6b6"}.fa-blind:before{content:"\f29d"}.fa-blog:before{content:"\f781"}.fa-blogger:before{content:"\f37c"}.fa-blogger-b:before{content:"\f37d"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-bold:before{content:"\f032"}.fa-bolt:before{content:"\f0e7"}.fa-bomb:before{content:"\f1e2"}.fa-bone:before{content:"\f5d7"}.fa-bong:before{content:"\f55c"}.fa-book:before{content:"\f02d"}.fa-book-dead:before{content:"\f6b7"}.fa-book-medical:before{content:"\f7e6"}.fa-book-open:before{content:"\f518"}.fa-book-reader:before{content:"\f5da"}.fa-bookmark:before{content:"\f02e"}.fa-bootstrap:before{content:"\f836"}.fa-border-all:before{content:"\f84c"}.fa-border-none:before{content:"\f850"}.fa-border-style:before{content:"\f853"}.fa-bowling-ball:before{content:"\f436"}.fa-box:before{content:"\f466"}.fa-box-open:before{content:"\f49e"}.fa-boxes:before{content:"\f468"}.fa-braille:before{content:"\f2a1"}.fa-brain:before{content:"\f5dc"}.fa-bread-slice:before{content:"\f7ec"}.fa-briefcase:before{content:"\f0b1"}.fa-briefcase-medical:before{content:"\f469"}.fa-broadcast-tower:before{content:"\f519"}.fa-broom:before{content:"\f51a"}.fa-brush:before{content:"\f55d"}.fa-btc:before{content:"\f15a"}.fa-buffer:before{content:"\f837"}.fa-bug:before{content:"\f188"}.fa-building:before{content:"\f1ad"}.fa-bullhorn:before{content:"\f0a1"}.fa-bullseye:before{content:"\f140"}.fa-burn:before{content:"\f46a"}.fa-buromobelexperte:before{content:"\f37f"}.fa-bus:before{content:"\f207"}.fa-bus-alt:before{content:"\f55e"}.fa-business-time:before{content:"\f64a"}.fa-buy-n-large:before{content:"\f8a6"}.fa-buysellads:before{content:"\f20d"}.fa-calculator:before{content:"\f1ec"}.fa-calendar:before{content:"\f133"}.fa-calendar-alt:before{content:"\f073"}.fa-calendar-check:before{content:"\f274"}.fa-calendar-day:before{content:"\f783"}.fa-calendar-minus:before{content:"\f272"}.fa-calendar-plus:before{content:"\f271"}.fa-calendar-times:before{content:"\f273"}.fa-calendar-week:before{content:"\f784"}.fa-camera:before{content:"\f030"}.fa-camera-retro:before{content:"\f083"}.fa-campground:before{content:"\f6bb"}.fa-canadian-maple-leaf:before{content:"\f785"}.fa-candy-cane:before{content:"\f786"}.fa-cannabis:before{content:"\f55f"}.fa-capsules:before{content:"\f46b"}.fa-car:before{content:"\f1b9"}.fa-car-alt:before{content:"\f5de"}.fa-car-battery:before{content:"\f5df"}.fa-car-crash:before{content:"\f5e1"}.fa-car-side:before{content:"\f5e4"}.fa-caravan:before{content:"\f8ff"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-caret-square-down:before{content:"\f150"}.fa-caret-square-left:before{content:"\f191"}.fa-caret-square-right:before{content:"\f152"}.fa-caret-square-up:before{content:"\f151"}.fa-caret-up:before{content:"\f0d8"}.fa-carrot:before{content:"\f787"}.fa-cart-arrow-down:before{content:"\f218"}.fa-cart-plus:before{content:"\f217"}.fa-cash-register:before{content:"\f788"}.fa-cat:before{content:"\f6be"}.fa-cc-amazon-pay:before{content:"\f42d"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-apple-pay:before{content:"\f416"}.fa-cc-diners-club:before{content:"\f24c"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-cc-visa:before{content:"\f1f0"}.fa-centercode:before{content:"\f380"}.fa-centos:before{content:"\f789"}.fa-certificate:before{content:"\f0a3"}.fa-chair:before{content:"\f6c0"}.fa-chalkboard:before{content:"\f51b"}.fa-chalkboard-teacher:before{content:"\f51c"}.fa-charging-station:before{content:"\f5e7"}.fa-chart-area:before{content:"\f1fe"}.fa-chart-bar:before{content:"\f080"}.fa-chart-line:before{content:"\f201"}.fa-chart-pie:before{content:"\f200"}.fa-check:before{content:"\f00c"}.fa-check-circle:before{content:"\f058"}.fa-check-double:before{content:"\f560"}.fa-check-square:before{content:"\f14a"}.fa-cheese:before{content:"\f7ef"}.fa-chess:before{content:"\f439"}.fa-chess-bishop:before{content:"\f43a"}.fa-chess-board:before{content:"\f43c"}.fa-chess-king:before{content:"\f43f"}.fa-chess-knight:before{content:"\f441"}.fa-chess-pawn:before{content:"\f443"}.fa-chess-queen:before{content:"\f445"}.fa-chess-rook:before{content:"\f447"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-down:before{content:"\f078"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-chevron-up:before{content:"\f077"}.fa-child:before{content:"\f1ae"}.fa-chrome:before{content:"\f268"}.fa-chromecast:before{content:"\f838"}.fa-church:before{content:"\f51d"}.fa-circle:before{content:"\f111"}.fa-circle-notch:before{content:"\f1ce"}.fa-city:before{content:"\f64f"}.fa-clinic-medical:before{content:"\f7f2"}.fa-clipboard:before{content:"\f328"}.fa-clipboard-check:before{content:"\f46c"}.fa-clipboard-list:before{content:"\f46d"}.fa-clock:before{content:"\f017"}.fa-clone:before{content:"\f24d"}.fa-closed-captioning:before{content:"\f20a"}.fa-cloud:before{content:"\f0c2"}.fa-cloud-download-alt:before{content:"\f381"}.fa-cloud-meatball:before{content:"\f73b"}.fa-cloud-moon:before{content:"\f6c3"}.fa-cloud-moon-rain:before{content:"\f73c"}.fa-cloud-rain:before{content:"\f73d"}.fa-cloud-showers-heavy:before{content:"\f740"}.fa-cloud-sun:before{content:"\f6c4"}.fa-cloud-sun-rain:before{content:"\f743"}.fa-cloud-upload-alt:before{content:"\f382"}.fa-cloudscale:before{content:"\f383"}.fa-cloudsmith:before{content:"\f384"}.fa-cloudversify:before{content:"\f385"}.fa-cocktail:before{content:"\f561"}.fa-code:before{content:"\f121"}.fa-code-branch:before{content:"\f126"}.fa-codepen:before{content:"\f1cb"}.fa-codiepie:before{content:"\f284"}.fa-coffee:before{content:"\f0f4"}.fa-cog:before{content:"\f013"}.fa-cogs:before{content:"\f085"}.fa-coins:before{content:"\f51e"}.fa-columns:before{content:"\f0db"}.fa-comment:before{content:"\f075"}.fa-comment-alt:before{content:"\f27a"}.fa-comment-dollar:before{content:"\f651"}.fa-comment-dots:before{content:"\f4ad"}.fa-comment-medical:before{content:"\f7f5"}.fa-comment-slash:before{content:"\f4b3"}.fa-comments:before{content:"\f086"}.fa-comments-dollar:before{content:"\f653"}.fa-compact-disc:before{content:"\f51f"}.fa-compass:before{content:"\f14e"}.fa-compress:before{content:"\f066"}.fa-compress-alt:before{content:"\f422"}.fa-compress-arrows-alt:before{content:"\f78c"}.fa-concierge-bell:before{content:"\f562"}.fa-confluence:before{content:"\f78d"}.fa-connectdevelop:before{content:"\f20e"}.fa-contao:before{content:"\f26d"}.fa-cookie:before{content:"\f563"}.fa-cookie-bite:before{content:"\f564"}.fa-copy:before{content:"\f0c5"}.fa-copyright:before{content:"\f1f9"}.fa-cotton-bureau:before{content:"\f89e"}.fa-couch:before{content:"\f4b8"}.fa-cpanel:before{content:"\f388"}.fa-creative-commons:before{content:"\f25e"}.fa-creative-commons-by:before{content:"\f4e7"}.fa-creative-commons-nc:before{content:"\f4e8"}.fa-creative-commons-nc-eu:before{content:"\f4e9"}.fa-creative-commons-nc-jp:before{content:"\f4ea"}.fa-creative-commons-nd:before{content:"\f4eb"}.fa-creative-commons-pd:before{content:"\f4ec"}.fa-creative-commons-pd-alt:before{content:"\f4ed"}.fa-creative-commons-remix:before{content:"\f4ee"}.fa-creative-commons-sa:before{content:"\f4ef"}.fa-creative-commons-sampling:before{content:"\f4f0"}.fa-creative-commons-sampling-plus:before{content:"\f4f1"}.fa-creative-commons-share:before{content:"\f4f2"}.fa-creative-commons-zero:before{content:"\f4f3"}.fa-credit-card:before{content:"\f09d"}.fa-critical-role:before{content:"\f6c9"}.fa-crop:before{content:"\f125"}.fa-crop-alt:before{content:"\f565"}.fa-cross:before{content:"\f654"}.fa-crosshairs:before{content:"\f05b"}.fa-crow:before{content:"\f520"}.fa-crown:before{content:"\f521"}.fa-crutch:before{content:"\f7f7"}.fa-css3:before{content:"\f13c"}.fa-css3-alt:before{content:"\f38b"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-cut:before{content:"\f0c4"}.fa-cuttlefish:before{content:"\f38c"}.fa-d-and-d:before{content:"\f38d"}.fa-d-and-d-beyond:before{content:"\f6ca"}.fa-dailymotion:before{content:"\f952"}.fa-dashcube:before{content:"\f210"}.fa-database:before{content:"\f1c0"}.fa-deaf:before{content:"\f2a4"}.fa-delicious:before{content:"\f1a5"}.fa-democrat:before{content:"\f747"}.fa-deploydog:before{content:"\f38e"}.fa-deskpro:before{content:"\f38f"}.fa-desktop:before{content:"\f108"}.fa-dev:before{content:"\f6cc"}.fa-deviantart:before{content:"\f1bd"}.fa-dharmachakra:before{content:"\f655"}.fa-dhl:before{content:"\f790"}.fa-diagnoses:before{content:"\f470"}.fa-diaspora:before{content:"\f791"}.fa-dice:before{content:"\f522"}.fa-dice-d20:before{content:"\f6cf"}.fa-dice-d6:before{content:"\f6d1"}.fa-dice-five:before{content:"\f523"}.fa-dice-four:before{content:"\f524"}.fa-dice-one:before{content:"\f525"}.fa-dice-six:before{content:"\f526"}.fa-dice-three:before{content:"\f527"}.fa-dice-two:before{content:"\f528"}.fa-digg:before{content:"\f1a6"}.fa-digital-ocean:before{content:"\f391"}.fa-digital-tachograph:before{content:"\f566"}.fa-directions:before{content:"\f5eb"}.fa-discord:before{content:"\f392"}.fa-discourse:before{content:"\f393"}.fa-divide:before{content:"\f529"}.fa-dizzy:before{content:"\f567"}.fa-dna:before{content:"\f471"}.fa-dochub:before{content:"\f394"}.fa-docker:before{content:"\f395"}.fa-dog:before{content:"\f6d3"}.fa-dollar-sign:before{content:"\f155"}.fa-dolly:before{content:"\f472"}.fa-dolly-flatbed:before{content:"\f474"}.fa-donate:before{content:"\f4b9"}.fa-door-closed:before{content:"\f52a"}.fa-door-open:before{content:"\f52b"}.fa-dot-circle:before{content:"\f192"}.fa-dove:before{content:"\f4ba"}.fa-download:before{content:"\f019"}.fa-draft2digital:before{content:"\f396"}.fa-drafting-compass:before{content:"\f568"}.fa-dragon:before{content:"\f6d5"}.fa-draw-polygon:before{content:"\f5ee"}.fa-dribbble:before{content:"\f17d"}.fa-dribbble-square:before{content:"\f397"}.fa-dropbox:before{content:"\f16b"}.fa-drum:before{content:"\f569"}.fa-drum-steelpan:before{content:"\f56a"}.fa-drumstick-bite:before{content:"\f6d7"}.fa-drupal:before{content:"\f1a9"}.fa-dumbbell:before{content:"\f44b"}.fa-dumpster:before{content:"\f793"}.fa-dumpster-fire:before{content:"\f794"}.fa-dungeon:before{content:"\f6d9"}.fa-dyalog:before{content:"\f399"}.fa-earlybirds:before{content:"\f39a"}.fa-ebay:before{content:"\f4f4"}.fa-edge:before{content:"\f282"}.fa-edit:before{content:"\f044"}.fa-egg:before{content:"\f7fb"}.fa-eject:before{content:"\f052"}.fa-elementor:before{content:"\f430"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-ello:before{content:"\f5f1"}.fa-ember:before{content:"\f423"}.fa-empire:before{content:"\f1d1"}.fa-envelope:before{content:"\f0e0"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-text:before{content:"\f658"}.fa-envelope-square:before{content:"\f199"}.fa-envira:before{content:"\f299"}.fa-equals:before{content:"\f52c"}.fa-eraser:before{content:"\f12d"}.fa-erlang:before{content:"\f39d"}.fa-ethereum:before{content:"\f42e"}.fa-ethernet:before{content:"\f796"}.fa-etsy:before{content:"\f2d7"}.fa-euro-sign:before{content:"\f153"}.fa-evernote:before{content:"\f839"}.fa-exchange-alt:before{content:"\f362"}.fa-exclamation:before{content:"\f12a"}.fa-exclamation-circle:before{content:"\f06a"}.fa-exclamation-triangle:before{content:"\f071"}.fa-expand:before{content:"\f065"}.fa-expand-alt:before{content:"\f424"}.fa-expand-arrows-alt:before{content:"\f31e"}.fa-expeditedssl:before{content:"\f23e"}.fa-external-link-alt:before{content:"\f35d"}.fa-external-link-square-alt:before{content:"\f360"}.fa-eye:before{content:"\f06e"}.fa-eye-dropper:before{content:"\f1fb"}.fa-eye-slash:before{content:"\f070"}.fa-facebook:before{content:"\f09a"}.fa-facebook-f:before{content:"\f39e"}.fa-facebook-messenger:before{content:"\f39f"}.fa-facebook-square:before{content:"\f082"}.fa-fan:before{content:"\f863"}.fa-fantasy-flight-games:before{content:"\f6dc"}.fa-fast-backward:before{content:"\f049"}.fa-fast-forward:before{content:"\f050"}.fa-fax:before{content:"\f1ac"}.fa-feather:before{content:"\f52d"}.fa-feather-alt:before{content:"\f56b"}.fa-fedex:before{content:"\f797"}.fa-fedora:before{content:"\f798"}.fa-female:before{content:"\f182"}.fa-fighter-jet:before{content:"\f0fb"}.fa-figma:before{content:"\f799"}.fa-file:before{content:"\f15b"}.fa-file-alt:before{content:"\f15c"}.fa-file-archive:before{content:"\f1c6"}.fa-file-audio:before{content:"\f1c7"}.fa-file-code:before{content:"\f1c9"}.fa-file-contract:before{content:"\f56c"}.fa-file-csv:before{content:"\f6dd"}.fa-file-download:before{content:"\f56d"}.fa-file-excel:before{content:"\f1c3"}.fa-file-export:before{content:"\f56e"}.fa-file-image:before{content:"\f1c5"}.fa-file-import:before{content:"\f56f"}.fa-file-invoice:before{content:"\f570"}.fa-file-invoice-dollar:before{content:"\f571"}.fa-file-medical:before{content:"\f477"}.fa-file-medical-alt:before{content:"\f478"}.fa-file-pdf:before{content:"\f1c1"}.fa-file-powerpoint:before{content:"\f1c4"}.fa-file-prescription:before{content:"\f572"}.fa-file-signature:before{content:"\f573"}.fa-file-upload:before{content:"\f574"}.fa-file-video:before{content:"\f1c8"}.fa-file-word:before{content:"\f1c2"}.fa-fill:before{content:"\f575"}.fa-fill-drip:before{content:"\f576"}.fa-film:before{content:"\f008"}.fa-filter:before{content:"\f0b0"}.fa-fingerprint:before{content:"\f577"}.fa-fire:before{content:"\f06d"}.fa-fire-alt:before{content:"\f7e4"}.fa-fire-extinguisher:before{content:"\f134"}.fa-firefox:before{content:"\f269"}.fa-firefox-browser:before{content:"\f907"}.fa-first-aid:before{content:"\f479"}.fa-first-order:before{content:"\f2b0"}.fa-first-order-alt:before{content:"\f50a"}.fa-firstdraft:before{content:"\f3a1"}.fa-fish:before{content:"\f578"}.fa-fist-raised:before{content:"\f6de"}.fa-flag:before{content:"\f024"}.fa-flag-checkered:before{content:"\f11e"}.fa-flag-usa:before{content:"\f74d"}.fa-flask:before{content:"\f0c3"}.fa-flickr:before{content:"\f16e"}.fa-flipboard:before{content:"\f44d"}.fa-flushed:before{content:"\f579"}.fa-fly:before{content:"\f417"}.fa-folder:before{content:"\f07b"}.fa-folder-minus:before{content:"\f65d"}.fa-folder-open:before{content:"\f07c"}.fa-folder-plus:before{content:"\f65e"}.fa-font:before{content:"\f031"}.fa-font-awesome:before{content:"\f2b4"}.fa-font-awesome-alt:before{content:"\f35c"}.fa-font-awesome-flag:before{content:"\f425"}.fa-font-awesome-logo-full:before{content:"\f4e6"}.fa-fonticons:before{content:"\f280"}.fa-fonticons-fi:before{content:"\f3a2"}.fa-football-ball:before{content:"\f44e"}.fa-fort-awesome:before{content:"\f286"}.fa-fort-awesome-alt:before{content:"\f3a3"}.fa-forumbee:before{content:"\f211"}.fa-forward:before{content:"\f04e"}.fa-foursquare:before{content:"\f180"}.fa-free-code-camp:before{content:"\f2c5"}.fa-freebsd:before{content:"\f3a4"}.fa-frog:before{content:"\f52e"}.fa-frown:before{content:"\f119"}.fa-frown-open:before{content:"\f57a"}.fa-fulcrum:before{content:"\f50b"}.fa-funnel-dollar:before{content:"\f662"}.fa-futbol:before{content:"\f1e3"}.fa-galactic-republic:before{content:"\f50c"}.fa-galactic-senate:before{content:"\f50d"}.fa-gamepad:before{content:"\f11b"}.fa-gas-pump:before{content:"\f52f"}.fa-gavel:before{content:"\f0e3"}.fa-gem:before{content:"\f3a5"}.fa-genderless:before{content:"\f22d"}.fa-get-pocket:before{content:"\f265"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-ghost:before{content:"\f6e2"}.fa-gift:before{content:"\f06b"}.fa-gifts:before{content:"\f79c"}.fa-git:before{content:"\f1d3"}.fa-git-alt:before{content:"\f841"}.fa-git-square:before{content:"\f1d2"}.fa-github:before{content:"\f09b"}.fa-github-alt:before{content:"\f113"}.fa-github-square:before{content:"\f092"}.fa-gitkraken:before{content:"\f3a6"}.fa-gitlab:before{content:"\f296"}.fa-gitter:before{content:"\f426"}.fa-glass-cheers:before{content:"\f79f"}.fa-glass-martini:before{content:"\f000"}.fa-glass-martini-alt:before{content:"\f57b"}.fa-glass-whiskey:before{content:"\f7a0"}.fa-glasses:before{content:"\f530"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-globe:before{content:"\f0ac"}.fa-globe-africa:before{content:"\f57c"}.fa-globe-americas:before{content:"\f57d"}.fa-globe-asia:before{content:"\f57e"}.fa-globe-europe:before{content:"\f7a2"}.fa-gofore:before{content:"\f3a7"}.fa-golf-ball:before{content:"\f450"}.fa-goodreads:before{content:"\f3a8"}.fa-goodreads-g:before{content:"\f3a9"}.fa-google:before{content:"\f1a0"}.fa-google-drive:before{content:"\f3aa"}.fa-google-play:before{content:"\f3ab"}.fa-google-plus:before{content:"\f2b3"}.fa-google-plus-g:before{content:"\f0d5"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-wallet:before{content:"\f1ee"}.fa-gopuram:before{content:"\f664"}.fa-graduation-cap:before{content:"\f19d"}.fa-gratipay:before{content:"\f184"}.fa-grav:before{content:"\f2d6"}.fa-greater-than:before{content:"\f531"}.fa-greater-than-equal:before{content:"\f532"}.fa-grimace:before{content:"\f57f"}.fa-grin:before{content:"\f580"}.fa-grin-alt:before{content:"\f581"}.fa-grin-beam:before{content:"\f582"}.fa-grin-beam-sweat:before{content:"\f583"}.fa-grin-hearts:before{content:"\f584"}.fa-grin-squint:before{content:"\f585"}.fa-grin-squint-tears:before{content:"\f586"}.fa-grin-stars:before{content:"\f587"}.fa-grin-tears:before{content:"\f588"}.fa-grin-tongue:before{content:"\f589"}.fa-grin-tongue-squint:before{content:"\f58a"}.fa-grin-tongue-wink:before{content:"\f58b"}.fa-grin-wink:before{content:"\f58c"}.fa-grip-horizontal:before{content:"\f58d"}.fa-grip-lines:before{content:"\f7a4"}.fa-grip-lines-vertical:before{content:"\f7a5"}.fa-grip-vertical:before{content:"\f58e"}.fa-gripfire:before{content:"\f3ac"}.fa-grunt:before{content:"\f3ad"}.fa-guitar:before{content:"\f7a6"}.fa-gulp:before{content:"\f3ae"}.fa-h-square:before{content:"\f0fd"}.fa-hacker-news:before{content:"\f1d4"}.fa-hacker-news-square:before{content:"\f3af"}.fa-hackerrank:before{content:"\f5f7"}.fa-hamburger:before{content:"\f805"}.fa-hammer:before{content:"\f6e3"}.fa-hamsa:before{content:"\f665"}.fa-hand-holding:before{content:"\f4bd"}.fa-hand-holding-heart:before{content:"\f4be"}.fa-hand-holding-usd:before{content:"\f4c0"}.fa-hand-lizard:before{content:"\f258"}.fa-hand-middle-finger:before{content:"\f806"}.fa-hand-paper:before{content:"\f256"}.fa-hand-peace:before{content:"\f25b"}.fa-hand-point-down:before{content:"\f0a7"}.fa-hand-point-left:before{content:"\f0a5"}.fa-hand-point-right:before{content:"\f0a4"}.fa-hand-point-up:before{content:"\f0a6"}.fa-hand-pointer:before{content:"\f25a"}.fa-hand-rock:before{content:"\f255"}.fa-hand-scissors:before{content:"\f257"}.fa-hand-spock:before{content:"\f259"}.fa-hands:before{content:"\f4c2"}.fa-hands-helping:before{content:"\f4c4"}.fa-handshake:before{content:"\f2b5"}.fa-hanukiah:before{content:"\f6e6"}.fa-hard-hat:before{content:"\f807"}.fa-hashtag:before{content:"\f292"}.fa-hat-cowboy:before{content:"\f8c0"}.fa-hat-cowboy-side:before{content:"\f8c1"}.fa-hat-wizard:before{content:"\f6e8"}.fa-hdd:before{content:"\f0a0"}.fa-heading:before{content:"\f1dc"}.fa-headphones:before{content:"\f025"}.fa-headphones-alt:before{content:"\f58f"}.fa-headset:before{content:"\f590"}.fa-heart:before{content:"\f004"}.fa-heart-broken:before{content:"\f7a9"}.fa-heartbeat:before{content:"\f21e"}.fa-helicopter:before{content:"\f533"}.fa-highlighter:before{content:"\f591"}.fa-hiking:before{content:"\f6ec"}.fa-hippo:before{content:"\f6ed"}.fa-hips:before{content:"\f452"}.fa-hire-a-helper:before{content:"\f3b0"}.fa-history:before{content:"\f1da"}.fa-hockey-puck:before{content:"\f453"}.fa-holly-berry:before{content:"\f7aa"}.fa-home:before{content:"\f015"}.fa-hooli:before{content:"\f427"}.fa-hornbill:before{content:"\f592"}.fa-horse:before{content:"\f6f0"}.fa-horse-head:before{content:"\f7ab"}.fa-hospital:before{content:"\f0f8"}.fa-hospital-alt:before{content:"\f47d"}.fa-hospital-symbol:before{content:"\f47e"}.fa-hot-tub:before{content:"\f593"}.fa-hotdog:before{content:"\f80f"}.fa-hotel:before{content:"\f594"}.fa-hotjar:before{content:"\f3b1"}.fa-hourglass:before{content:"\f254"}.fa-hourglass-end:before{content:"\f253"}.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-start:before{content:"\f251"}.fa-house-damage:before{content:"\f6f1"}.fa-houzz:before{content:"\f27c"}.fa-hryvnia:before{content:"\f6f2"}.fa-html5:before{content:"\f13b"}.fa-hubspot:before{content:"\f3b2"}.fa-i-cursor:before{content:"\f246"}.fa-ice-cream:before{content:"\f810"}.fa-icicles:before{content:"\f7ad"}.fa-icons:before{content:"\f86d"}.fa-id-badge:before{content:"\f2c1"}.fa-id-card:before{content:"\f2c2"}.fa-id-card-alt:before{content:"\f47f"}.fa-ideal:before{content:"\f913"}.fa-igloo:before{content:"\f7ae"}.fa-image:before{content:"\f03e"}.fa-images:before{content:"\f302"}.fa-imdb:before{content:"\f2d8"}.fa-inbox:before{content:"\f01c"}.fa-indent:before{content:"\f03c"}.fa-industry:before{content:"\f275"}.fa-infinity:before{content:"\f534"}.fa-info:before{content:"\f129"}.fa-info-circle:before{content:"\f05a"}.fa-instagram:before{content:"\f16d"}.fa-instagram-square:before{content:"\f955"}.fa-intercom:before{content:"\f7af"}.fa-internet-explorer:before{content:"\f26b"}.fa-invision:before{content:"\f7b0"}.fa-ioxhost:before{content:"\f208"}.fa-italic:before{content:"\f033"}.fa-itch-io:before{content:"\f83a"}.fa-itunes:before{content:"\f3b4"}.fa-itunes-note:before{content:"\f3b5"}.fa-java:before{content:"\f4e4"}.fa-jedi:before{content:"\f669"}.fa-jedi-order:before{content:"\f50e"}.fa-jenkins:before{content:"\f3b6"}.fa-jira:before{content:"\f7b1"}.fa-joget:before{content:"\f3b7"}.fa-joint:before{content:"\f595"}.fa-joomla:before{content:"\f1aa"}.fa-journal-whills:before{content:"\f66a"}.fa-js:before{content:"\f3b8"}.fa-js-square:before{content:"\f3b9"}.fa-jsfiddle:before{content:"\f1cc"}.fa-kaaba:before{content:"\f66b"}.fa-kaggle:before{content:"\f5fa"}.fa-key:before{content:"\f084"}.fa-keybase:before{content:"\f4f5"}.fa-keyboard:before{content:"\f11c"}.fa-keycdn:before{content:"\f3ba"}.fa-khanda:before{content:"\f66d"}.fa-kickstarter:before{content:"\f3bb"}.fa-kickstarter-k:before{content:"\f3bc"}.fa-kiss:before{content:"\f596"}.fa-kiss-beam:before{content:"\f597"}.fa-kiss-wink-heart:before{content:"\f598"}.fa-kiwi-bird:before{content:"\f535"}.fa-korvue:before{content:"\f42f"}.fa-landmark:before{content:"\f66f"}.fa-language:before{content:"\f1ab"}.fa-laptop:before{content:"\f109"}.fa-laptop-code:before{content:"\f5fc"}.fa-laptop-medical:before{content:"\f812"}.fa-laravel:before{content:"\f3bd"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-laugh:before{content:"\f599"}.fa-laugh-beam:before{content:"\f59a"}.fa-laugh-squint:before{content:"\f59b"}.fa-laugh-wink:before{content:"\f59c"}.fa-layer-group:before{content:"\f5fd"}.fa-leaf:before{content:"\f06c"}.fa-leanpub:before{content:"\f212"}.fa-lemon:before{content:"\f094"}.fa-less:before{content:"\f41d"}.fa-less-than:before{content:"\f536"}.fa-less-than-equal:before{content:"\f537"}.fa-level-down-alt:before{content:"\f3be"}.fa-level-up-alt:before{content:"\f3bf"}.fa-life-ring:before{content:"\f1cd"}.fa-lightbulb:before{content:"\f0eb"}.fa-line:before{content:"\f3c0"}.fa-link:before{content:"\f0c1"}.fa-linkedin:before{content:"\f08c"}.fa-linkedin-in:before{content:"\f0e1"}.fa-linode:before{content:"\f2b8"}.fa-linux:before{content:"\f17c"}.fa-lira-sign:before{content:"\f195"}.fa-list:before{content:"\f03a"}.fa-list-alt:before{content:"\f022"}.fa-list-ol:before{content:"\f0cb"}.fa-list-ul:before{content:"\f0ca"}.fa-location-arrow:before{content:"\f124"}.fa-lock:before{content:"\f023"}.fa-lock-open:before{content:"\f3c1"}.fa-long-arrow-alt-down:before{content:"\f309"}.fa-long-arrow-alt-left:before{content:"\f30a"}.fa-long-arrow-alt-right:before{content:"\f30b"}.fa-long-arrow-alt-up:before{content:"\f30c"}.fa-low-vision:before{content:"\f2a8"}.fa-luggage-cart:before{content:"\f59d"}.fa-lyft:before{content:"\f3c3"}.fa-magento:before{content:"\f3c4"}.fa-magic:before{content:"\f0d0"}.fa-magnet:before{content:"\f076"}.fa-mail-bulk:before{content:"\f674"}.fa-mailchimp:before{content:"\f59e"}.fa-male:before{content:"\f183"}.fa-mandalorian:before{content:"\f50f"}.fa-map:before{content:"\f279"}.fa-map-marked:before{content:"\f59f"}.fa-map-marked-alt:before{content:"\f5a0"}.fa-map-marker:before{content:"\f041"}.fa-map-marker-alt:before{content:"\f3c5"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-markdown:before{content:"\f60f"}.fa-marker:before{content:"\f5a1"}.fa-mars:before{content:"\f222"}.fa-mars-double:before{content:"\f227"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mask:before{content:"\f6fa"}.fa-mastodon:before{content:"\f4f6"}.fa-maxcdn:before{content:"\f136"}.fa-mdb:before{content:"\f8ca"}.fa-medal:before{content:"\f5a2"}.fa-medapps:before{content:"\f3c6"}.fa-medium:before{content:"\f23a"}.fa-medium-m:before{content:"\f3c7"}.fa-medkit:before{content:"\f0fa"}.fa-medrt:before{content:"\f3c8"}.fa-meetup:before{content:"\f2e0"}.fa-megaport:before{content:"\f5a3"}.fa-meh:before{content:"\f11a"}.fa-meh-blank:before{content:"\f5a4"}.fa-meh-rolling-eyes:before{content:"\f5a5"}.fa-memory:before{content:"\f538"}.fa-mendeley:before{content:"\f7b3"}.fa-menorah:before{content:"\f676"}.fa-mercury:before{content:"\f223"}.fa-meteor:before{content:"\f753"}.fa-microblog:before{content:"\f91a"}.fa-microchip:before{content:"\f2db"}.fa-microphone:before{content:"\f130"}.fa-microphone-alt:before{content:"\f3c9"}.fa-microphone-alt-slash:before{content:"\f539"}.fa-microphone-slash:before{content:"\f131"}.fa-microscope:before{content:"\f610"}.fa-microsoft:before{content:"\f3ca"}.fa-minus:before{content:"\f068"}.fa-minus-circle:before{content:"\f056"}.fa-minus-square:before{content:"\f146"}.fa-mitten:before{content:"\f7b5"}.fa-mix:before{content:"\f3cb"}.fa-mixcloud:before{content:"\f289"}.fa-mixer:before{content:"\f956"}.fa-mizuni:before{content:"\f3cc"}.fa-mobile:before{content:"\f10b"}.fa-mobile-alt:before{content:"\f3cd"}.fa-modx:before{content:"\f285"}.fa-monero:before{content:"\f3d0"}.fa-money-bill:before{content:"\f0d6"}.fa-money-bill-alt:before{content:"\f3d1"}.fa-money-bill-wave:before{content:"\f53a"}.fa-money-bill-wave-alt:before{content:"\f53b"}.fa-money-check:before{content:"\f53c"}.fa-money-check-alt:before{content:"\f53d"}.fa-monument:before{content:"\f5a6"}.fa-moon:before{content:"\f186"}.fa-mortar-pestle:before{content:"\f5a7"}.fa-mosque:before{content:"\f678"}.fa-motorcycle:before{content:"\f21c"}.fa-mountain:before{content:"\f6fc"}.fa-mouse:before{content:"\f8cc"}.fa-mouse-pointer:before{content:"\f245"}.fa-mug-hot:before{content:"\f7b6"}.fa-music:before{content:"\f001"}.fa-napster:before{content:"\f3d2"}.fa-neos:before{content:"\f612"}.fa-network-wired:before{content:"\f6ff"}.fa-neuter:before{content:"\f22c"}.fa-newspaper:before{content:"\f1ea"}.fa-nimblr:before{content:"\f5a8"}.fa-node:before{content:"\f419"}.fa-node-js:before{content:"\f3d3"}.fa-not-equal:before{content:"\f53e"}.fa-notes-medical:before{content:"\f481"}.fa-npm:before{content:"\f3d4"}.fa-ns8:before{content:"\f3d5"}.fa-nutritionix:before{content:"\f3d6"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-oil-can:before{content:"\f613"}.fa-old-republic:before{content:"\f510"}.fa-om:before{content:"\f679"}.fa-opencart:before{content:"\f23d"}.fa-openid:before{content:"\f19b"}.fa-opera:before{content:"\f26a"}.fa-optin-monster:before{content:"\f23c"}.fa-orcid:before{content:"\f8d2"}.fa-osi:before{content:"\f41a"}.fa-otter:before{content:"\f700"}.fa-outdent:before{content:"\f03b"}.fa-page4:before{content:"\f3d7"}.fa-pagelines:before{content:"\f18c"}.fa-pager:before{content:"\f815"}.fa-paint-brush:before{content:"\f1fc"}.fa-paint-roller:before{content:"\f5aa"}.fa-palette:before{content:"\f53f"}.fa-palfed:before{content:"\f3d8"}.fa-pallet:before{content:"\f482"}.fa-paper-plane:before{content:"\f1d8"}.fa-paperclip:before{content:"\f0c6"}.fa-parachute-box:before{content:"\f4cd"}.fa-paragraph:before{content:"\f1dd"}.fa-parking:before{content:"\f540"}.fa-passport:before{content:"\f5ab"}.fa-pastafarianism:before{content:"\f67b"}.fa-paste:before{content:"\f0ea"}.fa-patreon:before{content:"\f3d9"}.fa-pause:before{content:"\f04c"}.fa-pause-circle:before{content:"\f28b"}.fa-paw:before{content:"\f1b0"}.fa-paypal:before{content:"\f1ed"}.fa-peace:before{content:"\f67c"}.fa-pen:before{content:"\f304"}.fa-pen-alt:before{content:"\f305"}.fa-pen-fancy:before{content:"\f5ac"}.fa-pen-nib:before{content:"\f5ad"}.fa-pen-square:before{content:"\f14b"}.fa-pencil-alt:before{content:"\f303"}.fa-pencil-ruler:before{content:"\f5ae"}.fa-penny-arcade:before{content:"\f704"}.fa-people-carry:before{content:"\f4ce"}.fa-pepper-hot:before{content:"\f816"}.fa-percent:before{content:"\f295"}.fa-percentage:before{content:"\f541"}.fa-periscope:before{content:"\f3da"}.fa-person-booth:before{content:"\f756"}.fa-phabricator:before{content:"\f3db"}.fa-phoenix-framework:before{content:"\f3dc"}.fa-phoenix-squadron:before{content:"\f511"}.fa-phone:before{content:"\f095"}.fa-phone-alt:before{content:"\f879"}.fa-phone-slash:before{content:"\f3dd"}.fa-phone-square:before{content:"\f098"}.fa-phone-square-alt:before{content:"\f87b"}.fa-phone-volume:before{content:"\f2a0"}.fa-photo-video:before{content:"\f87c"}.fa-php:before{content:"\f457"}.fa-pied-piper:before{content:"\f2ae"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-pied-piper-hat:before{content:"\f4e5"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-square:before{content:"\f91e"}.fa-piggy-bank:before{content:"\f4d3"}.fa-pills:before{content:"\f484"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-p:before{content:"\f231"}.fa-pinterest-square:before{content:"\f0d3"}.fa-pizza-slice:before{content:"\f818"}.fa-place-of-worship:before{content:"\f67f"}.fa-plane:before{content:"\f072"}.fa-plane-arrival:before{content:"\f5af"}.fa-plane-departure:before{content:"\f5b0"}.fa-play:before{content:"\f04b"}.fa-play-circle:before{content:"\f144"}.fa-playstation:before{content:"\f3df"}.fa-plug:before{content:"\f1e6"}.fa-plus:before{content:"\f067"}.fa-plus-circle:before{content:"\f055"}.fa-plus-square:before{content:"\f0fe"}.fa-podcast:before{content:"\f2ce"}.fa-poll:before{content:"\f681"}.fa-poll-h:before{content:"\f682"}.fa-poo:before{content:"\f2fe"}.fa-poo-storm:before{content:"\f75a"}.fa-poop:before{content:"\f619"}.fa-portrait:before{content:"\f3e0"}.fa-pound-sign:before{content:"\f154"}.fa-power-off:before{content:"\f011"}.fa-pray:before{content:"\f683"}.fa-praying-hands:before{content:"\f684"}.fa-prescription:before{content:"\f5b1"}.fa-prescription-bottle:before{content:"\f485"}.fa-prescription-bottle-alt:before{content:"\f486"}.fa-print:before{content:"\f02f"}.fa-procedures:before{content:"\f487"}.fa-product-hunt:before{content:"\f288"}.fa-project-diagram:before{content:"\f542"}.fa-pushed:before{content:"\f3e1"}.fa-puzzle-piece:before{content:"\f12e"}.fa-python:before{content:"\f3e2"}.fa-qq:before{content:"\f1d6"}.fa-qrcode:before{content:"\f029"}.fa-question:before{content:"\f128"}.fa-question-circle:before{content:"\f059"}.fa-quidditch:before{content:"\f458"}.fa-quinscape:before{content:"\f459"}.fa-quora:before{content:"\f2c4"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-quran:before{content:"\f687"}.fa-r-project:before{content:"\f4f7"}.fa-radiation:before{content:"\f7b9"}.fa-radiation-alt:before{content:"\f7ba"}.fa-rainbow:before{content:"\f75b"}.fa-random:before{content:"\f074"}.fa-raspberry-pi:before{content:"\f7bb"}.fa-ravelry:before{content:"\f2d9"}.fa-react:before{content:"\f41b"}.fa-reacteurope:before{content:"\f75d"}.fa-readme:before{content:"\f4d5"}.fa-rebel:before{content:"\f1d0"}.fa-receipt:before{content:"\f543"}.fa-record-vinyl:before{content:"\f8d9"}.fa-recycle:before{content:"\f1b8"}.fa-red-river:before{content:"\f3e3"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-alien:before{content:"\f281"}.fa-reddit-square:before{content:"\f1a2"}.fa-redhat:before{content:"\f7bc"}.fa-redo:before{content:"\f01e"}.fa-redo-alt:before{content:"\f2f9"}.fa-registered:before{content:"\f25d"}.fa-remove-format:before{content:"\f87d"}.fa-renren:before{content:"\f18b"}.fa-reply:before{content:"\f3e5"}.fa-reply-all:before{content:"\f122"}.fa-replyd:before{content:"\f3e6"}.fa-republican:before{content:"\f75e"}.fa-researchgate:before{content:"\f4f8"}.fa-resolving:before{content:"\f3e7"}.fa-restroom:before{content:"\f7bd"}.fa-retweet:before{content:"\f079"}.fa-rev:before{content:"\f5b2"}.fa-ribbon:before{content:"\f4d6"}.fa-ring:before{content:"\f70b"}.fa-road:before{content:"\f018"}.fa-robot:before{content:"\f544"}.fa-rocket:before{content:"\f135"}.fa-rocketchat:before{content:"\f3e8"}.fa-rockrms:before{content:"\f3e9"}.fa-route:before{content:"\f4d7"}.fa-rss:before{content:"\f09e"}.fa-rss-square:before{content:"\f143"}.fa-ruble-sign:before{content:"\f158"}.fa-ruler:before{content:"\f545"}.fa-ruler-combined:before{content:"\f546"}.fa-ruler-horizontal:before{content:"\f547"}.fa-ruler-vertical:before{content:"\f548"}.fa-running:before{content:"\f70c"}.fa-rupee-sign:before{content:"\f156"}.fa-sad-cry:before{content:"\f5b3"}.fa-sad-tear:before{content:"\f5b4"}.fa-safari:before{content:"\f267"}.fa-salesforce:before{content:"\f83b"}.fa-sass:before{content:"\f41e"}.fa-satellite:before{content:"\f7bf"}.fa-satellite-dish:before{content:"\f7c0"}.fa-save:before{content:"\f0c7"}.fa-schlix:before{content:"\f3ea"}.fa-school:before{content:"\f549"}.fa-screwdriver:before{content:"\f54a"}.fa-scribd:before{content:"\f28a"}.fa-scroll:before{content:"\f70e"}.fa-sd-card:before{content:"\f7c2"}.fa-search:before{content:"\f002"}.fa-search-dollar:before{content:"\f688"}.fa-search-location:before{content:"\f689"}.fa-search-minus:before{content:"\f010"}.fa-search-plus:before{content:"\f00e"}.fa-searchengin:before{content:"\f3eb"}.fa-seedling:before{content:"\f4d8"}.fa-sellcast:before{content:"\f2da"}.fa-sellsy:before{content:"\f213"}.fa-server:before{content:"\f233"}.fa-servicestack:before{content:"\f3ec"}.fa-shapes:before{content:"\f61f"}.fa-share:before{content:"\f064"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-share-square:before{content:"\f14d"}.fa-shekel-sign:before{content:"\f20b"}.fa-shield-alt:before{content:"\f3ed"}.fa-ship:before{content:"\f21a"}.fa-shipping-fast:before{content:"\f48b"}.fa-shirtsinbulk:before{content:"\f214"}.fa-shoe-prints:before{content:"\f54b"}.fa-shopify:before{content:"\f957"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-shopping-cart:before{content:"\f07a"}.fa-shopware:before{content:"\f5b5"}.fa-shower:before{content:"\f2cc"}.fa-shuttle-van:before{content:"\f5b6"}.fa-sign:before{content:"\f4d9"}.fa-sign-in-alt:before{content:"\f2f6"}.fa-sign-language:before{content:"\f2a7"}.fa-sign-out-alt:before{content:"\f2f5"}.fa-signal:before{content:"\f012"}.fa-signature:before{content:"\f5b7"}.fa-sim-card:before{content:"\f7c4"}.fa-simplybuilt:before{content:"\f215"}.fa-sistrix:before{content:"\f3ee"}.fa-sitemap:before{content:"\f0e8"}.fa-sith:before{content:"\f512"}.fa-skating:before{content:"\f7c5"}.fa-sketch:before{content:"\f7c6"}.fa-skiing:before{content:"\f7c9"}.fa-skiing-nordic:before{content:"\f7ca"}.fa-skull:before{content:"\f54c"}.fa-skull-crossbones:before{content:"\f714"}.fa-skyatlas:before{content:"\f216"}.fa-skype:before{content:"\f17e"}.fa-slack:before{content:"\f198"}.fa-slack-hash:before{content:"\f3ef"}.fa-slash:before{content:"\f715"}.fa-sleigh:before{content:"\f7cc"}.fa-sliders-h:before{content:"\f1de"}.fa-slideshare:before{content:"\f1e7"}.fa-smile:before{content:"\f118"}.fa-smile-beam:before{content:"\f5b8"}.fa-smile-wink:before{content:"\f4da"}.fa-smog:before{content:"\f75f"}.fa-smoking:before{content:"\f48d"}.fa-smoking-ban:before{content:"\f54d"}.fa-sms:before{content:"\f7cd"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-snowboarding:before{content:"\f7ce"}.fa-snowflake:before{content:"\f2dc"}.fa-snowman:before{content:"\f7d0"}.fa-snowplow:before{content:"\f7d2"}.fa-socks:before{content:"\f696"}.fa-solar-panel:before{content:"\f5ba"}.fa-sort:before{content:"\f0dc"}.fa-sort-alpha-down:before{content:"\f15d"}.fa-sort-alpha-down-alt:before{content:"\f881"}.fa-sort-alpha-up:before{content:"\f15e"}.fa-sort-alpha-up-alt:before{content:"\f882"}.fa-sort-amount-down:before{content:"\f160"}.fa-sort-amount-down-alt:before{content:"\f884"}.fa-sort-amount-up:before{content:"\f161"}.fa-sort-amount-up-alt:before{content:"\f885"}.fa-sort-down:before{content:"\f0dd"}.fa-sort-numeric-down:before{content:"\f162"}.fa-sort-numeric-down-alt:before{content:"\f886"}.fa-sort-numeric-up:before{content:"\f163"}.fa-sort-numeric-up-alt:before{content:"\f887"}.fa-sort-up:before{content:"\f0de"}.fa-soundcloud:before{content:"\f1be"}.fa-sourcetree:before{content:"\f7d3"}.fa-spa:before{content:"\f5bb"}.fa-space-shuttle:before{content:"\f197"}.fa-speakap:before{content:"\f3f3"}.fa-speaker-deck:before{content:"\f83c"}.fa-spell-check:before{content:"\f891"}.fa-spider:before{content:"\f717"}.fa-spinner:before{content:"\f110"}.fa-splotch:before{content:"\f5bc"}.fa-spotify:before{content:"\f1bc"}.fa-spray-can:before{content:"\f5bd"}.fa-square:before{content:"\f0c8"}.fa-square-full:before{content:"\f45c"}.fa-square-root-alt:before{content:"\f698"}.fa-squarespace:before{content:"\f5be"}.fa-stack-exchange:before{content:"\f18d"}.fa-stack-overflow:before{content:"\f16c"}.fa-stackpath:before{content:"\f842"}.fa-stamp:before{content:"\f5bf"}.fa-star:before{content:"\f005"}.fa-star-and-crescent:before{content:"\f699"}.fa-star-half:before{content:"\f089"}.fa-star-half-alt:before{content:"\f5c0"}.fa-star-of-david:before{content:"\f69a"}.fa-star-of-life:before{content:"\f621"}.fa-staylinked:before{content:"\f3f5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-steam-symbol:before{content:"\f3f6"}.fa-step-backward:before{content:"\f048"}.fa-step-forward:before{content:"\f051"}.fa-stethoscope:before{content:"\f0f1"}.fa-sticker-mule:before{content:"\f3f7"}.fa-sticky-note:before{content:"\f249"}.fa-stop:before{content:"\f04d"}.fa-stop-circle:before{content:"\f28d"}.fa-stopwatch:before{content:"\f2f2"}.fa-store:before{content:"\f54e"}.fa-store-alt:before{content:"\f54f"}.fa-strava:before{content:"\f428"}.fa-stream:before{content:"\f550"}.fa-street-view:before{content:"\f21d"}.fa-strikethrough:before{content:"\f0cc"}.fa-stripe:before{content:"\f429"}.fa-stripe-s:before{content:"\f42a"}.fa-stroopwafel:before{content:"\f551"}.fa-studiovinari:before{content:"\f3f8"}.fa-stumbleupon:before{content:"\f1a4"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-subscript:before{content:"\f12c"}.fa-subway:before{content:"\f239"}.fa-suitcase:before{content:"\f0f2"}.fa-suitcase-rolling:before{content:"\f5c1"}.fa-sun:before{content:"\f185"}.fa-superpowers:before{content:"\f2dd"}.fa-superscript:before{content:"\f12b"}.fa-supple:before{content:"\f3f9"}.fa-surprise:before{content:"\f5c2"}.fa-suse:before{content:"\f7d6"}.fa-swatchbook:before{content:"\f5c3"}.fa-swift:before{content:"\f8e1"}.fa-swimmer:before{content:"\f5c4"}.fa-swimming-pool:before{content:"\f5c5"}.fa-symfony:before{content:"\f83d"}.fa-synagogue:before{content:"\f69b"}.fa-sync:before{content:"\f021"}.fa-sync-alt:before{content:"\f2f1"}.fa-syringe:before{content:"\f48e"}.fa-table:before{content:"\f0ce"}.fa-table-tennis:before{content:"\f45d"}.fa-tablet:before{content:"\f10a"}.fa-tablet-alt:before{content:"\f3fa"}.fa-tablets:before{content:"\f490"}.fa-tachometer-alt:before{content:"\f3fd"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-tape:before{content:"\f4db"}.fa-tasks:before{content:"\f0ae"}.fa-taxi:before{content:"\f1ba"}.fa-teamspeak:before{content:"\f4f9"}.fa-teeth:before{content:"\f62e"}.fa-teeth-open:before{content:"\f62f"}.fa-telegram:before{content:"\f2c6"}.fa-telegram-plane:before{content:"\f3fe"}.fa-temperature-high:before{content:"\f769"}.fa-temperature-low:before{content:"\f76b"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-tenge:before{content:"\f7d7"}.fa-terminal:before{content:"\f120"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-th:before{content:"\f00a"}.fa-th-large:before{content:"\f009"}.fa-th-list:before{content:"\f00b"}.fa-the-red-yeti:before{content:"\f69d"}.fa-theater-masks:before{content:"\f630"}.fa-themeco:before{content:"\f5c6"}.fa-themeisle:before{content:"\f2b2"}.fa-thermometer:before{content:"\f491"}.fa-thermometer-empty:before{content:"\f2cb"}.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-think-peaks:before{content:"\f731"}.fa-thumbs-down:before{content:"\f165"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbtack:before{content:"\f08d"}.fa-ticket-alt:before{content:"\f3ff"}.fa-times:before{content:"\f00d"}.fa-times-circle:before{content:"\f057"}.fa-tint:before{content:"\f043"}.fa-tint-slash:before{content:"\f5c7"}.fa-tired:before{content:"\f5c8"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-toilet:before{content:"\f7d8"}.fa-toilet-paper:before{content:"\f71e"}.fa-toolbox:before{content:"\f552"}.fa-tools:before{content:"\f7d9"}.fa-tooth:before{content:"\f5c9"}.fa-torah:before{content:"\f6a0"}.fa-torii-gate:before{content:"\f6a1"}.fa-tractor:before{content:"\f722"}.fa-trade-federation:before{content:"\f513"}.fa-trademark:before{content:"\f25c"}.fa-traffic-light:before{content:"\f637"}.fa-trailer:before{content:"\f941"}.fa-train:before{content:"\f238"}.fa-tram:before{content:"\f7da"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-trash:before{content:"\f1f8"}.fa-trash-alt:before{content:"\f2ed"}.fa-trash-restore:before{content:"\f829"}.fa-trash-restore-alt:before{content:"\f82a"}.fa-tree:before{content:"\f1bb"}.fa-trello:before{content:"\f181"}.fa-tripadvisor:before{content:"\f262"}.fa-trophy:before{content:"\f091"}.fa-truck:before{content:"\f0d1"}.fa-truck-loading:before{content:"\f4de"}.fa-truck-monster:before{content:"\f63b"}.fa-truck-moving:before{content:"\f4df"}.fa-truck-pickup:before{content:"\f63c"}.fa-tshirt:before{content:"\f553"}.fa-tty:before{content:"\f1e4"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-tv:before{content:"\f26c"}.fa-twitch:before{content:"\f1e8"}.fa-twitter:before{content:"\f099"}.fa-twitter-square:before{content:"\f081"}.fa-typo3:before{content:"\f42b"}.fa-uber:before{content:"\f402"}.fa-ubuntu:before{content:"\f7df"}.fa-uikit:before{content:"\f403"}.fa-umbraco:before{content:"\f8e8"}.fa-umbrella:before{content:"\f0e9"}.fa-umbrella-beach:before{content:"\f5ca"}.fa-underline:before{content:"\f0cd"}.fa-undo:before{content:"\f0e2"}.fa-undo-alt:before{content:"\f2ea"}.fa-uniregistry:before{content:"\f404"}.fa-unity:before{content:"\f949"}.fa-universal-access:before{content:"\f29a"}.fa-university:before{content:"\f19c"}.fa-unlink:before{content:"\f127"}.fa-unlock:before{content:"\f09c"}.fa-unlock-alt:before{content:"\f13e"}.fa-untappd:before{content:"\f405"}.fa-upload:before{content:"\f093"}.fa-ups:before{content:"\f7e0"}.fa-usb:before{content:"\f287"}.fa-user:before{content:"\f007"}.fa-user-alt:before{content:"\f406"}.fa-user-alt-slash:before{content:"\f4fa"}.fa-user-astronaut:before{content:"\f4fb"}.fa-user-check:before{content:"\f4fc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-clock:before{content:"\f4fd"}.fa-user-cog:before{content:"\f4fe"}.fa-user-edit:before{content:"\f4ff"}.fa-user-friends:before{content:"\f500"}.fa-user-graduate:before{content:"\f501"}.fa-user-injured:before{content:"\f728"}.fa-user-lock:before{content:"\f502"}.fa-user-md:before{content:"\f0f0"}.fa-user-minus:before{content:"\f503"}.fa-user-ninja:before{content:"\f504"}.fa-user-nurse:before{content:"\f82f"}.fa-user-plus:before{content:"\f234"}.fa-user-secret:before{content:"\f21b"}.fa-user-shield:before{content:"\f505"}.fa-user-slash:before{content:"\f506"}.fa-user-tag:before{content:"\f507"}.fa-user-tie:before{content:"\f508"}.fa-user-times:before{content:"\f235"}.fa-users:before{content:"\f0c0"}.fa-users-cog:before{content:"\f509"}.fa-usps:before{content:"\f7e1"}.fa-ussunnah:before{content:"\f407"}.fa-utensil-spoon:before{content:"\f2e5"}.fa-utensils:before{content:"\f2e7"}.fa-vaadin:before{content:"\f408"}.fa-vector-square:before{content:"\f5cb"}.fa-venus:before{content:"\f221"}.fa-venus-double:before{content:"\f226"}.fa-venus-mars:before{content:"\f228"}.fa-viacoin:before{content:"\f237"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-vial:before{content:"\f492"}.fa-vials:before{content:"\f493"}.fa-viber:before{content:"\f409"}.fa-video:before{content:"\f03d"}.fa-video-slash:before{content:"\f4e2"}.fa-vihara:before{content:"\f6a7"}.fa-vimeo:before{content:"\f40a"}.fa-vimeo-square:before{content:"\f194"}.fa-vimeo-v:before{content:"\f27d"}.fa-vine:before{content:"\f1ca"}.fa-vk:before{content:"\f189"}.fa-vnv:before{content:"\f40b"}.fa-voicemail:before{content:"\f897"}.fa-volleyball-ball:before{content:"\f45f"}.fa-volume-down:before{content:"\f027"}.fa-volume-mute:before{content:"\f6a9"}.fa-volume-off:before{content:"\f026"}.fa-volume-up:before{content:"\f028"}.fa-vote-yea:before{content:"\f772"}.fa-vr-cardboard:before{content:"\f729"}.fa-vuejs:before{content:"\f41f"}.fa-walking:before{content:"\f554"}.fa-wallet:before{content:"\f555"}.fa-warehouse:before{content:"\f494"}.fa-water:before{content:"\f773"}.fa-wave-square:before{content:"\f83e"}.fa-waze:before{content:"\f83f"}.fa-weebly:before{content:"\f5cc"}.fa-weibo:before{content:"\f18a"}.fa-weight:before{content:"\f496"}.fa-weight-hanging:before{content:"\f5cd"}.fa-weixin:before{content:"\f1d7"}.fa-whatsapp:before{content:"\f232"}.fa-whatsapp-square:before{content:"\f40c"}.fa-wheelchair:before{content:"\f193"}.fa-whmcs:before{content:"\f40d"}.fa-wifi:before{content:"\f1eb"}.fa-wikipedia-w:before{content:"\f266"}.fa-wind:before{content:"\f72e"}.fa-window-close:before{content:"\f410"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-windows:before{content:"\f17a"}.fa-wine-bottle:before{content:"\f72f"}.fa-wine-glass:before{content:"\f4e3"}.fa-wine-glass-alt:before{content:"\f5ce"}.fa-wix:before{content:"\f5cf"}.fa-wizards-of-the-coast:before{content:"\f730"}.fa-wolf-pack-battalion:before{content:"\f514"}.fa-won-sign:before{content:"\f159"}.fa-wordpress:before{content:"\f19a"}.fa-wordpress-simple:before{content:"\f411"}.fa-wpbeginner:before{content:"\f297"}.fa-wpexplorer:before{content:"\f2de"}.fa-wpforms:before{content:"\f298"}.fa-wpressr:before{content:"\f3e4"}.fa-wrench:before{content:"\f0ad"}.fa-x-ray:before{content:"\f497"}.fa-xbox:before{content:"\f412"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-y-combinator:before{content:"\f23b"}.fa-yahoo:before{content:"\f19e"}.fa-yammer:before{content:"\f840"}.fa-yandex:before{content:"\f413"}.fa-yandex-international:before{content:"\f414"}.fa-yarn:before{content:"\f7e3"}.fa-yelp:before{content:"\f1e9"}.fa-yen-sign:before{content:"\f157"}.fa-yin-yang:before{content:"\f6ad"}.fa-yoast:before{content:"\f2b1"}.fa-youtube:before{content:"\f167"}.fa-youtube-square:before{content:"\f431"}.fa-zhihu:before{content:"\f63f"}@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:400;font-display:auto;src:url(../fonts/fa-brands-400.eot);src:url(../fonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-brands-400.woff2) format("woff2"),url(../fonts/fa-brands-400.woff) format("woff"),url(../fonts/fa-brands-400.ttf) format("truetype"),url(../fonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:auto;src:url(../fonts/fa-regular-400.eot);src:url(../fonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-regular-400.woff2) format("woff2"),url(../fonts/fa-regular-400.woff) format("woff"),url(../fonts/fa-regular-400.ttf) format("truetype"),url(../fonts/fa-regular-400.svg#fontawesome) format("svg")}.fab,.far{font-weight:400}@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:auto;src:url(../fonts/fa-solid-900.eot);src:url(../fonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../fonts/fa-solid-900.woff2) format("woff2"),url(../fonts/fa-solid-900.woff) format("woff"),url(../fonts/fa-solid-900.ttf) format("truetype"),url(../fonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.far,.fas{font-family:"Font Awesome 5 Free"}.fa,.fas{font-weight:900}/*! diff --git a/src/applications/mixcore/wwwroot/mix-app/js/app-client.min.js b/src/applications/mixcore/wwwroot/mix-app/js/app-client.min.js index 07f48a772..c99724623 100644 --- a/src/applications/mixcore/wwwroot/mix-app/js/app-client.min.js +++ b/src/applications/mixcore/wwwroot/mix-app/js/app-client.min.js @@ -201,51 +201,27 @@ var cart = angular.module("cart", []); ]); })(window.angular); -modules.component("addToCartButton", { +modules.component("fbCustomerChat", { templateUrl: - "/mix-app/views/app-client/components/add-to-cart-button/view.html", + "/mix-app/views/app-client/components/fb-customer-chat/view.html", + controller: [ + "$location", + function ($location) { + var ctrl = this; + this.$onInit = function () { + setTimeout(() => { + FB.XFBML.parse(); + }, 200); + }; + }, + ], bindings: { - cartData: "=", - propertyId: "=", - title: "=", - imageUrl: "=", - price: "=", - quantity: "=?", + fbPageId: "=", + themeColor: "=", + inGreeting: "=", + outGreeting: "=", }, - controller: "AddToCartController", }); -modules.controller("AddToCartController", [ - "$rootScope", - "$scope", - "localStorageService", - function ($rootScope, $scope, localStorageService) { - $scope.init = function () { - $scope.quantity = $scope.quantity || 1; - }; - $scope.addToCart = function () { - var current = $rootScope.findObjectByKey( - $scope.cartData.items, - "propertyId", - $scope.propertyId - ); - if (current) { - current.quantity += parseInt($scope.quantity); - } else { - var item = { - propertyId: $scope.propertyId, - title: $scope.title, - imageUrl: $scope.imageUrl, - price: $scope.price, - quantity: parseInt($scope.quantity) || 1, - }; - $scope.cartData.items.push(item); - $scope.cartData.totalItem += 1; - } - $scope.cartData.total += parseInt($scope.price); - localStorageService.set("shoppingCart", $scope.cartData); - }; - }, -]); modules.component("booking", { templateUrl: "/mix-app/views/app-client/components/booking/index.html", @@ -304,27 +280,51 @@ modules.component("booking", { }, }); -modules.component("fbCustomerChat", { +modules.component("addToCartButton", { templateUrl: - "/mix-app/views/app-client/components/fb-customer-chat/view.html", - controller: [ - "$location", - function ($location) { - var ctrl = this; - this.$onInit = function () { - setTimeout(() => { - FB.XFBML.parse(); - }, 200); - }; - }, - ], + "/mix-app/views/app-client/components/add-to-cart-button/view.html", bindings: { - fbPageId: "=", - themeColor: "=", - inGreeting: "=", - outGreeting: "=", + cartData: "=", + propertyId: "=", + title: "=", + imageUrl: "=", + price: "=", + quantity: "=?", }, + controller: "AddToCartController", }); +modules.controller("AddToCartController", [ + "$rootScope", + "$scope", + "localStorageService", + function ($rootScope, $scope, localStorageService) { + $scope.init = function () { + $scope.quantity = $scope.quantity || 1; + }; + $scope.addToCart = function () { + var current = $rootScope.findObjectByKey( + $scope.cartData.items, + "propertyId", + $scope.propertyId + ); + if (current) { + current.quantity += parseInt($scope.quantity); + } else { + var item = { + propertyId: $scope.propertyId, + title: $scope.title, + imageUrl: $scope.imageUrl, + price: $scope.price, + quantity: parseInt($scope.quantity) || 1, + }; + $scope.cartData.items.push(item); + $scope.cartData.totalItem += 1; + } + $scope.cartData.total += parseInt($scope.price); + localStorageService.set("shoppingCart", $scope.cartData); + }; + }, +]); modules.component("fbLike", { templateUrl: "/mix-app/views/app-client/components/fb-like/fb-like.html", diff --git a/src/applications/mixcore/wwwroot/mix-app/js/app-init.min.js b/src/applications/mixcore/wwwroot/mix-app/js/app-init.min.js index f4230d94c..00dc56014 100644 --- a/src/applications/mixcore/wwwroot/mix-app/js/app-init.min.js +++ b/src/applications/mixcore/wwwroot/mix-app/js/app-init.min.js @@ -38,127 +38,6 @@ app.config(function ($routeProvider, $locationProvider, $sceProvider) { }); }); -"use strict"; -app.controller("Step2Controller", [ - "$scope", - "$rootScope", - "ApiService", - "Step2Services", - "AuthService", - function ($scope, $rootScope, apiService, services, authService) { - $scope.user = { - username: "", - email: "", - password: "", - confirmPassword: "", - isAgreed: false, - }; - $scope.init = async function () { - await apiService.getGlobalSettings(); - }; - $scope.register = async function () { - if (!$scope.user.isAgreed) { - var ele = document.getElementById("notTNCYetChecked"); - ele.style.display = "block"; - } else { - if ($scope.password !== $scope.confirmPassword) { - $rootScope.showErrors(["Confirm Password is not matched"]); - } else { - $rootScope.isBusy = true; - var result = await services.register($scope.user); - if (result.success) { - await apiService.getAllSettings(); - var loginData = { - username: $scope.user.username, - password: $scope.user.password, - rememberMe: true, - }; - var result = await authService.login(loginData, false); - if (result.success) { - $rootScope.isBusy = false; - $rootScope.goToPath("/init/step3"); - $scope.$apply(); - } else { - if (result) { - $rootScope.showErrors(result.errors); - } - $rootScope.isBusy = false; - $scope.$apply(); - } - } else { - if (result) { - $rootScope.showErrors(result.errors); - } - $rootScope.isBusy = false; - $scope.$apply(); - } - } - } - }; - $scope.advanceSetup = async function () { - if (!$scope.user.isAgreed) { - var ele = document.getElementById("notTNCYetChecked"); - ele.style.display = "block"; - } else { - if ($scope.password !== $scope.confirmPassword) { - $rootScope.showErrors(["Confirm Password is not matched"]); - } else { - $rootScope.isBusy = true; - var result = await services.register($scope.user); - if (result.success) { - var loginData = { - username: $scope.user.username, - password: $scope.user.password, - rememberMe: true, - }; - var result = await authService.login(loginData); - if (result) { - $rootScope.isBusy = false; - $scope.$apply(); - } else { - if (result) { - $rootScope.showErrors(result.errors); - } - $rootScope.isBusy = false; - $scope.$apply(); - } - } else { - if (result) { - $rootScope.showErrors(result.errors); - } - $rootScope.isBusy = false; - $scope.$apply(); - } - } - } - }; - }, -]); - -"use strict"; -app.factory("Step2Services", [ - "$http", - "ApiService", - "CommonService", - function ($http, apiService, commonService) { - //var serviceBase = 'http://ngauthenticationapi.azurewebsites.net/'; - - var usersServiceFactory = {}; - var _register = async function (user) { - var req = { - method: "POST", - url: "/rest/mix-tenancy/setup/init-account", - data: JSON.stringify(user), - }; - - return await apiService.sendRequest(req, true); - }; - - usersServiceFactory.register = _register; - return usersServiceFactory; - }, -]); - "use strict"; app.controller("Step1Controller", [ "$scope", @@ -322,66 +201,123 @@ app.factory("Step1Services", [ ]); "use strict"; -app.controller("Step4Controller", [ +app.controller("Step2Controller", [ "$scope", "$rootScope", "ApiService", + "Step2Services", "AuthService", - "Step4Services", - function ($scope, $rootScope, apiService, authService, service) { - $scope.importThemeDto = null; - $scope.canContinue = true; - $scope.data = []; + function ($scope, $rootScope, apiService, services, authService) { + $scope.user = { + username: "", + email: "", + password: "", + confirmPassword: "", + isAgreed: false, + }; $scope.init = async function () { await apiService.getGlobalSettings(); - var getData = await service.loadTheme(); - if (getData.success) { - $scope.importThemeDto = getData.data; - $rootScope.isBusy = false; - $scope.$apply(); + }; + $scope.register = async function () { + if (!$scope.user.isAgreed) { + var ele = document.getElementById("notTNCYetChecked"); + ele.style.display = "block"; + } else { + if ($scope.password !== $scope.confirmPassword) { + $rootScope.showErrors(["Confirm Password is not matched"]); + } else { + $rootScope.isBusy = true; + var result = await services.register($scope.user); + if (result.success) { + await apiService.getAllSettings(); + var loginData = { + username: $scope.user.username, + password: $scope.user.password, + rememberMe: true, + }; + var result = await authService.login(loginData, false); + if (result.success) { + $rootScope.isBusy = false; + $rootScope.goToPath("/init/step3"); + $scope.$apply(); + } else { + if (result) { + $rootScope.showErrors(result.errors); + } + $rootScope.isBusy = false; + $scope.$apply(); + } + } else { + if (result) { + $rootScope.showErrors(result.errors); + } + $rootScope.isBusy = false; + $scope.$apply(); + } + } } }; - $scope.submit = async function () { - $rootScope.isBusy = true; - var result = await service.submit($scope.importThemeDto); - if (result.success) { - window.top.location = "/"; + $scope.advanceSetup = async function () { + if (!$scope.user.isAgreed) { + var ele = document.getElementById("notTNCYetChecked"); + ele.style.display = "block"; } else { - if (result) { - $rootScope.showErrors(result.errors); + if ($scope.password !== $scope.confirmPassword) { + $rootScope.showErrors(["Confirm Password is not matched"]); + } else { + $rootScope.isBusy = true; + var result = await services.register($scope.user); + if (result.success) { + var loginData = { + username: $scope.user.username, + password: $scope.user.password, + rememberMe: true, + }; + var result = await authService.login(loginData); + if (result) { + $rootScope.isBusy = false; + $scope.$apply(); + } else { + if (result) { + $rootScope.showErrors(result.errors); + } + $rootScope.isBusy = false; + $scope.$apply(); + } + } else { + if (result) { + $rootScope.showErrors(result.errors); + } + $rootScope.isBusy = false; + $scope.$apply(); + } } - $rootScope.isBusy = false; - $scope.$apply(); } }; }, ]); "use strict"; -app.factory("Step4Services", [ +app.factory("Step2Services", [ + "$http", "ApiService", "CommonService", - function (apiService, commonService) { - var service = {}; + function ($http, apiService, commonService) { + //var serviceBase = 'http://ngauthenticationapi.azurewebsites.net/'; - var _loadTheme = async function () { - var req = { - method: "GET", - url: "/rest/mix-tenancy/setup/load-theme", - }; - return await apiService.sendRequest(req); - }; - var _submit = async function (data) { + var usersServiceFactory = {}; + var _register = async function (user) { var req = { method: "POST", - url: "/rest/mix-tenancy/setup/import-theme", - data: JSON.stringify(data), + url: "/rest/mix-tenancy/setup/init-account", + data: JSON.stringify(user), }; - return await apiService.sendRequest(req); + + return await apiService.sendRequest(req, true); }; - service.loadTheme = _loadTheme; - service.submit = _submit; - return service; + + usersServiceFactory.register = _register; + return usersServiceFactory; }, ]); @@ -506,6 +442,70 @@ app.factory("Step3Services", [ }, ]); +"use strict"; +app.controller("Step4Controller", [ + "$scope", + "$rootScope", + "ApiService", + "AuthService", + "Step4Services", + function ($scope, $rootScope, apiService, authService, service) { + $scope.importThemeDto = null; + $scope.canContinue = true; + $scope.data = []; + $scope.init = async function () { + await apiService.getGlobalSettings(); + var getData = await service.loadTheme(); + if (getData.success) { + $scope.importThemeDto = getData.data; + $rootScope.isBusy = false; + $scope.$apply(); + } + }; + $scope.submit = async function () { + $rootScope.isBusy = true; + var result = await service.submit($scope.importThemeDto); + if (result.success) { + window.top.location = "/"; + } else { + if (result) { + $rootScope.showErrors(result.errors); + } + $rootScope.isBusy = false; + $scope.$apply(); + } + }; + }, +]); + +"use strict"; +app.factory("Step4Services", [ + "ApiService", + "CommonService", + function (apiService, commonService) { + var service = {}; + + var _loadTheme = async function () { + var req = { + method: "GET", + url: "/rest/mix-tenancy/setup/load-theme", + }; + return await apiService.sendRequest(req); + }; + var _submit = async function (data) { + var req = { + method: "POST", + url: "/rest/mix-tenancy/setup/import-theme", + data: JSON.stringify(data), + }; + return await apiService.sendRequest(req); + }; + service.loadTheme = _loadTheme; + service.submit = _submit; + return service; + }, +]); + "use strict"; app.controller("Step5Controller", [ "$scope", @@ -568,9 +568,9 @@ app.factory("Step5Services", [ }, ]); -modules.component("mssqlLocalInfo", { +modules.component("mssqlInfo", { templateUrl: - "/mix-app/views/app-init/pages/step1/components/mssql-local-info/view.html", + "/mix-app/views/app-init/pages/step1/components/mssql-info/view.html", controller: [ "$rootScope", function ($rootScope) { @@ -582,9 +582,9 @@ modules.component("mssqlLocalInfo", { }, }); -modules.component("mssqlInfo", { +modules.component("mssqlLocalInfo", { templateUrl: - "/mix-app/views/app-init/pages/step1/components/mssql-info/view.html", + "/mix-app/views/app-init/pages/step1/components/mssql-local-info/view.html", controller: [ "$rootScope", function ($rootScope) { diff --git a/src/applications/mixcore/wwwroot/mix-app/js/app-portal-required.min.js b/src/applications/mixcore/wwwroot/mix-app/js/app-portal-required.min.js index 0e8aedb7f..f6039aaaf 100644 --- a/src/applications/mixcore/wwwroot/mix-app/js/app-portal-required.min.js +++ b/src/applications/mixcore/wwwroot/mix-app/js/app-portal-required.min.js @@ -1 +1 @@ -/* Sun Feb 04 2024 20:54:30 GMT+0700 (Indochina Time) */!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],o=Object.getPrototypeOf,i=n.slice,r=n.flat?function(e){return n.flat.call(e)}:function(e){return n.concat.apply([],e)},s=n.push,a=n.indexOf,l={},u=l.toString,c=l.hasOwnProperty,d=c.toString,f=d.call(Object),h={},p=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},g=function(e){return null!=e&&e===e.window},m=e.document,b={type:!0,src:!0,nonce:!0,noModule:!0};function v(e,t,n){var o,i,r=(n=n||m).createElement("script");if(r.text=e,t)for(o in b)(i=t[o]||t.getAttribute&&t.getAttribute(o))&&r.setAttribute(o,i);n.head.appendChild(r).parentNode.removeChild(r)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[u.call(e)]||"object":typeof e}var y="3.6.0",_=function(e,t){return new _.fn.init(e,t)};function F(e){var t=!!e&&"length"in e&&e.length,n=x(e);return!p(e)&&!g(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),G=new RegExp(H),X=new RegExp("^"+I+"$"),V={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+R),PSEUDO:new RegExp("^"+H),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+B+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},K=/HTML$/i,Y=/^(?:input|select|textarea|button)$/i,Q=/^h\d$/i,J=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},oe=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"�":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){f()},se=ye(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{L.apply(S=P.call(_.childNodes),_.childNodes),S[_.childNodes.length].nodeType}catch(t){L={apply:S.length?function(e,t){j.apply(e,P.call(t))}:function(e,t){for(var n=e.length,o=0;e[n++]=t[o++];);e.length=n-1}}}function ae(e,t,o,i){var r,a,u,c,d,p,b,v=t&&t.ownerDocument,_=t?t.nodeType:9;if(o=o||[],"string"!=typeof e||!e||1!==_&&9!==_&&11!==_)return o;if(!i&&(f(t),t=t||h,g)){if(11!==_&&(d=Z.exec(e)))if(r=d[1]){if(9===_){if(!(u=t.getElementById(r)))return o;if(u.id===r)return o.push(u),o}else if(v&&(u=v.getElementById(r))&&x(t,u)&&u.id===r)return o.push(u),o}else{if(d[2])return L.apply(o,t.getElementsByTagName(e)),o;if((r=d[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(o,t.getElementsByClassName(r)),o}if(n.qsa&&!k[e+" "]&&(!m||!m.test(e))&&(1!==_||"object"!==t.nodeName.toLowerCase())){if(b=e,v=t,1===_&&(U.test(e)||W.test(e))){for((v=ee.test(e)&&be(t.parentNode)||t)===t&&n.scope||((c=t.getAttribute("id"))?c=c.replace(oe,ie):t.setAttribute("id",c=y)),a=(p=s(e)).length;a--;)p[a]=(c?"#"+c:":scope")+" "+xe(p[a]);b=p.join(",")}try{return L.apply(o,v.querySelectorAll(b)),o}catch(t){k(e,!0)}finally{c===y&&t.removeAttribute("id")}}}return l(e.replace($,"$1"),t,o,i)}function le(){var e=[];return function t(n,i){return e.push(n+" ")>o.cacheLength&&delete t[e.shift()],t[n+" "]=i}}function ue(e){return e[y]=!0,e}function ce(e){var t=h.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function de(e,t){for(var n=e.split("|"),i=n.length;i--;)o.attrHandle[n[i]]=t}function fe(e,t){var n=t&&e,o=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(o)return o;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function he(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function ge(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&se(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function me(e){return ue(function(t){return t=+t,ue(function(n,o){for(var i,r=e([],n.length,t),s=r.length;s--;)n[i=r[s]]&&(n[i]=!(o[i]=n[i]))})})}function be(e){return e&&void 0!==e.getElementsByTagName&&e}for(t in n=ae.support={},r=ae.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!K.test(t||n&&n.nodeName||"HTML")},f=ae.setDocument=function(e){var t,i,s=e?e.ownerDocument||e:_;return s!=h&&9===s.nodeType&&s.documentElement&&(p=(h=s).documentElement,g=!r(h),_!=h&&(i=h.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.scope=ce(function(e){return p.appendChild(e).appendChild(h.createElement("div")),void 0!==e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),n.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ce(function(e){return e.appendChild(h.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=J.test(h.getElementsByClassName),n.getById=ce(function(e){return p.appendChild(e).id=y,!h.getElementsByName||!h.getElementsByName(y).length}),n.getById?(o.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},o.find.ID=function(e,t){if(void 0!==t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(o.filter.ID=function(e){var t=e.replace(te,ne);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},o.find.ID=function(e,t){if(void 0!==t.getElementById&&g){var n,o,i,r=t.getElementById(e);if(r){if((n=r.getAttributeNode("id"))&&n.value===e)return[r];for(i=t.getElementsByName(e),o=0;r=i[o++];)if((n=r.getAttributeNode("id"))&&n.value===e)return[r]}return[]}}),o.find.TAG=n.getElementsByTagName?function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,o=[],i=0,r=t.getElementsByTagName(e);if("*"===e){for(;n=r[i++];)1===n.nodeType&&o.push(n);return o}return r},o.find.CLASS=n.getElementsByClassName&&function(e,t){if(void 0!==t.getElementsByClassName&&g)return t.getElementsByClassName(e)},b=[],m=[],(n.qsa=J.test(h.querySelectorAll))&&(ce(function(e){var t;p.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&m.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||m.push("\\["+M+"*(?:value|"+B+")"),e.querySelectorAll("[id~="+y+"-]").length||m.push("~="),(t=h.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||m.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||m.push(":checked"),e.querySelectorAll("a#"+y+"+*").length||m.push(".#.+[+~]"),e.querySelectorAll("\\\f"),m.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=h.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&m.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&m.push(":enabled",":disabled"),p.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&m.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),m.push(",.*:")})),(n.matchesSelector=J.test(v=p.matches||p.webkitMatchesSelector||p.mozMatchesSelector||p.oMatchesSelector||p.msMatchesSelector))&&ce(function(e){n.disconnectedMatch=v.call(e,"*"),v.call(e,"[s!='']:x"),b.push("!=",H)}),m=m.length&&new RegExp(m.join("|")),b=b.length&&new RegExp(b.join("|")),t=J.test(p.compareDocumentPosition),x=t||J.test(p.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,o=t&&t.parentNode;return e===o||!(!o||1!==o.nodeType||!(n.contains?n.contains(o):e.compareDocumentPosition&&16&e.compareDocumentPosition(o)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},T=t?function(e,t){if(e===t)return d=!0,0;var o=!e.compareDocumentPosition-!t.compareDocumentPosition;return o||(1&(o=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===o?e==h||e.ownerDocument==_&&x(_,e)?-1:t==h||t.ownerDocument==_&&x(_,t)?1:c?N(c,e)-N(c,t):0:4&o?-1:1)}:function(e,t){if(e===t)return d=!0,0;var n,o=0,i=e.parentNode,r=t.parentNode,s=[e],a=[t];if(!i||!r)return e==h?-1:t==h?1:i?-1:r?1:c?N(c,e)-N(c,t):0;if(i===r)return fe(e,t);for(n=e;n=n.parentNode;)s.unshift(n);for(n=t;n=n.parentNode;)a.unshift(n);for(;s[o]===a[o];)o++;return o?fe(s[o],a[o]):s[o]==_?-1:a[o]==_?1:0}),h},ae.matches=function(e,t){return ae(e,null,null,t)},ae.matchesSelector=function(e,t){if(f(e),n.matchesSelector&&g&&!k[t+" "]&&(!b||!b.test(t))&&(!m||!m.test(t)))try{var o=v.call(e,t);if(o||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return o}catch(e){k(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||ae.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&ae.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&G.test(n)&&(t=s(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(o){var i=ae.attr(o,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function O(e,t,n){return p(t)?_.grep(e,function(e,o){return!!t.call(e,o,e)!==n}):t.nodeType?_.grep(e,function(e){return e===t!==n}):"string"!=typeof t?_.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(_.fn.init=function(e,t,n){var o,i;if(!e)return this;if(n=n||S,"string"==typeof e){if(!(o="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:D.exec(e))||!o[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(o[1]){if(t=t instanceof _?t[0]:t,_.merge(this,_.parseHTML(o[1],t&&t.nodeType?t.ownerDocument||t:m,!0)),T.test(o[1])&&_.isPlainObject(t))for(o in t)p(this[o])?this[o](t[o]):this.attr(o,t[o]);return this}return(i=m.getElementById(o[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):p(e)?void 0!==n.ready?n.ready(e):e(_):_.makeArray(e,this)}).prototype=_.fn,S=_(m);var j=/^(?:parents|prev(?:Until|All))/,L={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}_.fn.extend({has:function(e){var t=_(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,pe=/^$|^module$|\/(?:java|ecma)script/i;ce=m.createDocumentFragment().appendChild(m.createElement("div")),(de=m.createElement("input")).setAttribute("type","radio"),de.setAttribute("checked","checked"),de.setAttribute("name","t"),ce.appendChild(de),h.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",h.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",h.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function me(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&k(e,t)?_.merge([e],n):n}function be(e,t){for(var n=0,o=e.length;n",""]);var ve=/<|&#?\w+;/;function xe(e,t,n,o,i){for(var r,s,a,l,u,c,d=t.createDocumentFragment(),f=[],h=0,p=e.length;h\s*$/g;function Oe(e,t){return k(e,"table")&&k(11!==t.nodeType?t:t.firstChild,"tr")&&_(e).children("tbody")[0]||e}function Se(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function De(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function je(e,t){var n,o,i,r,s,a;if(1===t.nodeType){if(K.hasData(e)&&(a=K.get(e).events))for(i in K.remove(t,"handle events"),a)for(n=0,o=a[i].length;n").attr(e.scriptAttrs||{}).prop({charset:e.scriptCharset,src:e.url}).on("load error",n=function(e){t.remove(),n=null,e&&i("error"===e.type?404:200,e.type)}),m.head.appendChild(t[0])},abort:function(){n&&n()}}});var qt,Wt=[],Ut=/(=)\?(?=&|$)|\?\?/;_.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Wt.pop()||_.expando+"_"+_t.guid++;return this[e]=!0,e}}),_.ajaxPrefilter("json jsonp",function(t,n,o){var i,r,s,a=!1!==t.jsonp&&(Ut.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(t.data)&&"data");if(a||"jsonp"===t.dataTypes[0])return i=t.jsonpCallback=p(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,a?t[a]=t[a].replace(Ut,"$1"+i):!1!==t.jsonp&&(t.url+=(Ft.test(t.url)?"&":"?")+t.jsonp+"="+i),t.converters["script json"]=function(){return s||_.error(i+" was not called"),s[0]},t.dataTypes[0]="json",r=e[i],e[i]=function(){s=arguments},o.always(function(){void 0===r?_(e).removeProp(i):e[i]=r,t[i]&&(t.jsonpCallback=n.jsonpCallback,Wt.push(i)),s&&p(r)&&r(s[0]),s=r=void 0}),"script"}),h.createHTMLDocument=((qt=m.implementation.createHTMLDocument("").body).innerHTML="
",2===qt.childNodes.length),_.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(h.createHTMLDocument?((o=(t=m.implementation.createHTMLDocument("")).createElement("base")).href=m.location.href,t.head.appendChild(o)):t=m),r=!n&&[],(i=T.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,r),r&&r.length&&_(r).remove(),_.merge([],i.childNodes)));var o,i,r},_.fn.load=function(e,t,n){var o,i,r,s=this,a=e.indexOf(" ");return-1").append(_.parseHTML(e)).find(o):e)}).always(n&&function(e,t){s.each(function(){n.apply(this,r||[e.responseText,t,e])})}),this},_.expr.pseudos.animated=function(e){return _.grep(_.timers,function(t){return e===t.elem}).length},_.offset={setOffset:function(e,t,n){var o,i,r,s,a,l,u=_.css(e,"position"),c=_(e),d={};"static"===u&&(e.style.position="relative"),a=c.offset(),r=_.css(e,"top"),l=_.css(e,"left"),("absolute"===u||"fixed"===u)&&-1<(r+l).indexOf("auto")?(s=(o=c.position()).top,i=o.left):(s=parseFloat(r)||0,i=parseFloat(l)||0),p(t)&&(t=t.call(e,n,_.extend({},a))),null!=t.top&&(d.top=t.top-a.top+s),null!=t.left&&(d.left=t.left-a.left+i),"using"in t?t.using.call(e,d):c.css(d)}},_.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){_.offset.setOffset(this,e,t)});var t,n,o=this[0];return o?o.getClientRects().length?(t=o.getBoundingClientRect(),n=o.ownerDocument.defaultView,{top:t.top+n.pageYOffset,left:t.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,o=this[0],i={top:0,left:0};if("fixed"===_.css(o,"position"))t=o.getBoundingClientRect();else{for(t=this.offset(),n=o.ownerDocument,e=o.offsetParent||n.documentElement;e&&(e===n.body||e===n.documentElement)&&"static"===_.css(e,"position");)e=e.parentNode;e&&e!==o&&1===e.nodeType&&((i=_(e).offset()).top+=_.css(e,"borderTopWidth",!0),i.left+=_.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-_.css(o,"marginTop",!0),left:t.left-i.left-_.css(o,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&"static"===_.css(e,"position");)e=e.offsetParent;return e||oe})}}),_.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n="pageYOffset"===t;_.fn[e]=function(o){return $(this,function(e,o,i){var r;if(g(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===i)return r?r[t]:e[o];r?r.scrollTo(n?r.pageXOffset:i,n?i:r.pageYOffset):e[o]=i},e,o,arguments.length)}}),_.each(["top","left"],function(e,t){_.cssHooks[t]=He(h.pixelPosition,function(e,n){if(n)return n=Re(e,t),Ne.test(n)?_(e).position()[t]+"px":n})}),_.each({Height:"height",Width:"width"},function(e,t){_.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,o){_.fn[o]=function(i,r){var s=arguments.length&&(n||"boolean"!=typeof i),a=n||(!0===i||!0===r?"margin":"border");return $(this,function(t,n,i){var r;return g(t)?0===o.indexOf("outer")?t["inner"+e]:t.document.documentElement["client"+e]:9===t.nodeType?(r=t.documentElement,Math.max(t.body["scroll"+e],r["scroll"+e],t.body["offset"+e],r["offset"+e],r["client"+e])):void 0===i?_.css(t,n,a):_.style(t,n,i,a)},t,s?i:void 0,s)}})}),_.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){_.fn[t]=function(e){return this.on(t,e)}}),_.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,o){return this.on(t,e,n,o)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),_.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){_.fn[t]=function(e,n){return 0[].concat(...Element.prototype.querySelectorAll.call(t,e)),findOne:(e,t=document.documentElement)=>Element.prototype.querySelector.call(t,e),children:(e,t)=>[].concat(...e.children).filter(e=>e.matches(t)),parents(e,t){const n=[];let o=e.parentNode;for(;o&&o.nodeType===Node.ELEMENT_NODE&&3!==o.nodeType;)o.matches(t)&&n.push(o),o=o.parentNode;return n},prev(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return[n];n=n.previousElementSibling}return[]},next(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return[n];n=n.nextElementSibling}return[]}},o=e=>{do{e+=Math.floor(1e6*Math.random())}while(document.getElementById(e));return e},i=e=>{let t=e.getAttribute("data-bs-target");if(!t||"#"===t){let n=e.getAttribute("href");if(!n||!n.includes("#")&&!n.startsWith("."))return null;n.includes("#")&&!n.startsWith("#")&&(n="#"+n.split("#")[1]),t=n&&"#"!==n?n.trim():null}return t},r=e=>{const t=i(e);return t&&document.querySelector(t)?t:null},s=e=>{const t=i(e);return t?document.querySelector(t):null},a=e=>{e.dispatchEvent(new Event("transitionend"))},l=e=>!(!e||"object"!=typeof e)&&(void 0!==e.jquery&&(e=e[0]),void 0!==e.nodeType),u=e=>l(e)?e.jquery?e[0]:e:"string"==typeof e&&e.length>0?n.findOne(e):null,c=(e,t,n)=>{Object.keys(n).forEach(o=>{const i=n[o],r=t[o],s=r&&l(r)?"element":null==(a=r)?""+a:{}.toString.call(a).match(/\s([a-z]+)/i)[1].toLowerCase();var a;if(!new RegExp(i).test(s))throw new TypeError(`${e.toUpperCase()}: Option "${o}" provided type "${s}" but expected type "${i}".`)})},d=e=>!(!l(e)||0===e.getClientRects().length)&&"visible"===getComputedStyle(e).getPropertyValue("visibility"),f=e=>!e||e.nodeType!==Node.ELEMENT_NODE||!!e.classList.contains("disabled")||(void 0!==e.disabled?e.disabled:e.hasAttribute("disabled")&&"false"!==e.getAttribute("disabled")),h=e=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){const t=e.getRootNode();return t instanceof ShadowRoot?t:null}return e instanceof ShadowRoot?e:e.parentNode?h(e.parentNode):null},p=()=>{},g=e=>e.offsetHeight,m=()=>{const{jQuery:e}=window;return e&&!document.body.hasAttribute("data-bs-no-jquery")?e:null},b=[],v=()=>"rtl"===document.documentElement.dir,x=e=>{var t;t=(()=>{const t=m();if(t){const n=e.NAME,o=t.fn[n];t.fn[n]=e.jQueryInterface,t.fn[n].Constructor=e,t.fn[n].noConflict=(()=>(t.fn[n]=o,e.jQueryInterface))}}),"loading"===document.readyState?(b.length||document.addEventListener("DOMContentLoaded",()=>{b.forEach(e=>e())}),b.push(t)):t()},y=e=>{"function"==typeof e&&e()},_=(e,t,n=!0)=>{if(!n)return void y(e);const o=(e=>{if(!e)return 0;let{transitionDuration:t,transitionDelay:n}=window.getComputedStyle(e);const o=Number.parseFloat(t),i=Number.parseFloat(n);return o||i?(t=t.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(t)+Number.parseFloat(n))):0})(t)+5;let i=!1;const r=({target:n})=>{n===t&&(i=!0,t.removeEventListener("transitionend",r),y(e))};t.addEventListener("transitionend",r),setTimeout(()=>{i||a(t)},o)},F=(e,t,n,o)=>{let i=e.indexOf(t);if(-1===i)return e[!n&&o?e.length-1:0];const r=e.length;return i+=n?1:-1,o&&(i=(i+r)%r),e[Math.max(0,Math.min(i,r-1))]},w=/[^.]*(?=\..*)\.|.*/,E=/\..*/,C=/::\d+$/,A={};let k=1;const T={mouseenter:"mouseover",mouseleave:"mouseout"},O=/^(mouseenter|mouseleave)/i,S=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function D(e,t){return t&&`${t}::${k++}`||e.uidEvent||k++}function j(e){const t=D(e);return e.uidEvent=t,A[t]=A[t]||{},A[t]}function L(e,t,n=null){const o=Object.keys(e);for(let i=0,r=o.length;i(function(t){if(!t.relatedTarget||t.relatedTarget!==t.delegateTarget&&!t.delegateTarget.contains(t.relatedTarget))return e.call(this,t)});o?o=e(o):n=e(n)}const[r,s,a]=P(t,n,o),l=j(e),u=l[a]||(l[a]={}),c=L(u,s,r?n:null);if(c)return void(c.oneOff=c.oneOff&&i);const d=D(s,t.replace(w,"")),f=r?function(e,t,n){return function o(i){const r=e.querySelectorAll(t);for(let{target:s}=i;s&&s!==this;s=s.parentNode)for(let a=r.length;a--;)if(r[a]===s)return i.delegateTarget=s,o.oneOff&&I.off(e,i.type,t,n),n.apply(s,[i]);return null}}(e,n,o):function(e,t){return function n(o){return o.delegateTarget=e,n.oneOff&&I.off(e,o.type,t),t.apply(e,[o])}}(e,n);f.delegationSelector=r?n:null,f.originalHandler=s,f.oneOff=i,f.uidEvent=d,u[d]=f,e.addEventListener(a,f,r)}function B(e,t,n,o,i){const r=L(t[n],o,i);r&&(e.removeEventListener(n,r,Boolean(i)),delete t[n][r.uidEvent])}function M(e){return e=e.replace(E,""),T[e]||e}const I={on(e,t,n,o){N(e,t,n,o,!1)},one(e,t,n,o){N(e,t,n,o,!0)},off(e,t,n,o){if("string"!=typeof t||!e)return;const[i,r,s]=P(t,n,o),a=s!==t,l=j(e),u=t.startsWith(".");if(void 0!==r){if(!l||!l[s])return;return void B(e,l,s,r,i?n:null)}u&&Object.keys(l).forEach(n=>{!function(e,t,n,o){const i=t[n]||{};Object.keys(i).forEach(r=>{if(r.includes(o)){const o=i[r];B(e,t,n,o.originalHandler,o.delegationSelector)}})}(e,l,n,t.slice(1))});const c=l[s]||{};Object.keys(c).forEach(n=>{const o=n.replace(C,"");if(!a||t.includes(o)){const t=c[n];B(e,l,s,t.originalHandler,t.delegationSelector)}})},trigger(e,t,n){if("string"!=typeof t||!e)return null;const o=m(),i=M(t),r=t!==i,s=S.has(i);let a,l=!0,u=!0,c=!1,d=null;return r&&o&&(a=o.Event(t,n),o(e).trigger(a),l=!a.isPropagationStopped(),u=!a.isImmediatePropagationStopped(),c=a.isDefaultPrevented()),s?(d=document.createEvent("HTMLEvents")).initEvent(i,l,!0):d=new CustomEvent(t,{bubbles:l,cancelable:!0}),void 0!==n&&Object.keys(n).forEach(e=>{Object.defineProperty(d,e,{get:()=>n[e]})}),c&&d.preventDefault(),u&&e.dispatchEvent(d),d.defaultPrevented&&void 0!==a&&a.preventDefault(),d}},R=new Map;var H={set(e,t,n){R.has(e)||R.set(e,new Map);const o=R.get(e);o.has(t)||0===o.size?o.set(t,n):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(o.keys())[0]}.`)},get:(e,t)=>R.has(e)&&R.get(e).get(t)||null,remove(e,t){if(!R.has(e))return;const n=R.get(e);n.delete(t),0===n.size&&R.delete(e)}};class z{constructor(e){(e=u(e))&&(this._element=e,H.set(this._element,this.constructor.DATA_KEY,this))}dispose(){H.remove(this._element,this.constructor.DATA_KEY),I.off(this._element,this.constructor.EVENT_KEY),Object.getOwnPropertyNames(this).forEach(e=>{this[e]=null})}_queueCallback(e,t,n=!0){_(e,t,n)}static getInstance(e){return H.get(e,this.DATA_KEY)}static getOrCreateInstance(e,t={}){return this.getInstance(e)||new this(e,"object"==typeof t?t:null)}static get VERSION(){return"5.0.2"}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}static get DATA_KEY(){return"bs."+this.NAME}static get EVENT_KEY(){return"."+this.DATA_KEY}}class $ extends z{static get NAME(){return"alert"}close(e){const t=e?this._getRootElement(e):this._element,n=this._triggerCloseEvent(t);null===n||n.defaultPrevented||this._removeElement(t)}_getRootElement(e){return s(e)||e.closest(".alert")}_triggerCloseEvent(e){return I.trigger(e,"close.bs.alert")}_removeElement(e){e.classList.remove("show");const t=e.classList.contains("fade");this._queueCallback(()=>this._destroyElement(e),e,t)}_destroyElement(e){e.remove(),I.trigger(e,"closed.bs.alert")}static jQueryInterface(e){return this.each(function(){const t=$.getOrCreateInstance(this);"close"===e&&t[e](this)})}static handleDismiss(e){return function(t){t&&t.preventDefault(),e.close(this)}}}I.on(document,"click.bs.alert.data-api",'[data-bs-dismiss="alert"]',$.handleDismiss(new $)),x($);class q extends z{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(e){return this.each(function(){const t=q.getOrCreateInstance(this);"toggle"===e&&t[e]()})}}function W(e){return"true"===e||"false"!==e&&(e===Number(e).toString()?Number(e):""===e||"null"===e?null:e)}function U(e){return e.replace(/[A-Z]/g,e=>"-"+e.toLowerCase())}I.on(document,"click.bs.button.data-api",'[data-bs-toggle="button"]',e=>{e.preventDefault();const t=e.target.closest('[data-bs-toggle="button"]');q.getOrCreateInstance(t).toggle()}),x(q);const G={setDataAttribute(e,t,n){e.setAttribute("data-bs-"+U(t),n)},removeDataAttribute(e,t){e.removeAttribute("data-bs-"+U(t))},getDataAttributes(e){if(!e)return{};const t={};return Object.keys(e.dataset).filter(e=>e.startsWith("bs")).forEach(n=>{let o=n.replace(/^bs/,"");o=o.charAt(0).toLowerCase()+o.slice(1,o.length),t[o]=W(e.dataset[n])}),t},getDataAttribute:(e,t)=>W(e.getAttribute("data-bs-"+U(t))),offset(e){const t=e.getBoundingClientRect();return{top:t.top+document.body.scrollTop,left:t.left+document.body.scrollLeft}},position:e=>({top:e.offsetTop,left:e.offsetLeft})},X={interval:5e3,keyboard:!0,slide:!1,pause:"hover",wrap:!0,touch:!0},V={interval:"(number|boolean)",keyboard:"boolean",slide:"(boolean|string)",pause:"(string|boolean)",wrap:"boolean",touch:"boolean"},K="next",Y="prev",Q="left",J="right",Z={ArrowLeft:J,ArrowRight:Q};class ee extends z{constructor(e,t){super(e),this._items=null,this._interval=null,this._activeElement=null,this._isPaused=!1,this._isSliding=!1,this.touchTimeout=null,this.touchStartX=0,this.touchDeltaX=0,this._config=this._getConfig(t),this._indicatorsElement=n.findOne(".carousel-indicators",this._element),this._touchSupported="ontouchstart"in document.documentElement||navigator.maxTouchPoints>0,this._pointerEvent=Boolean(window.PointerEvent),this._addEventListeners()}static get Default(){return X}static get NAME(){return"carousel"}next(){this._slide(K)}nextWhenVisible(){!document.hidden&&d(this._element)&&this.next()}prev(){this._slide(Y)}pause(e){e||(this._isPaused=!0),n.findOne(".carousel-item-next, .carousel-item-prev",this._element)&&(a(this._element),this.cycle(!0)),clearInterval(this._interval),this._interval=null}cycle(e){e||(this._isPaused=!1),this._interval&&(clearInterval(this._interval),this._interval=null),this._config&&this._config.interval&&!this._isPaused&&(this._updateInterval(),this._interval=setInterval((document.visibilityState?this.nextWhenVisible:this.next).bind(this),this._config.interval))}to(e){this._activeElement=n.findOne(".active.carousel-item",this._element);const t=this._getItemIndex(this._activeElement);if(e>this._items.length-1||e<0)return;if(this._isSliding)return void I.one(this._element,"slid.bs.carousel",()=>this.to(e));if(t===e)return this.pause(),void this.cycle();const o=e>t?K:Y;this._slide(o,this._items[e])}_getConfig(e){return e={...X,...G.getDataAttributes(this._element),..."object"==typeof e?e:{}},c("carousel",e,V),e}_handleSwipe(){const e=Math.abs(this.touchDeltaX);if(e<=40)return;const t=e/this.touchDeltaX;this.touchDeltaX=0,t&&this._slide(t>0?J:Q)}_addEventListeners(){this._config.keyboard&&I.on(this._element,"keydown.bs.carousel",e=>this._keydown(e)),"hover"===this._config.pause&&(I.on(this._element,"mouseenter.bs.carousel",e=>this.pause(e)),I.on(this._element,"mouseleave.bs.carousel",e=>this.cycle(e))),this._config.touch&&this._touchSupported&&this._addTouchEventListeners()}_addTouchEventListeners(){const e=e=>{!this._pointerEvent||"pen"!==e.pointerType&&"touch"!==e.pointerType?this._pointerEvent||(this.touchStartX=e.touches[0].clientX):this.touchStartX=e.clientX},t=e=>{this.touchDeltaX=e.touches&&e.touches.length>1?0:e.touches[0].clientX-this.touchStartX},o=e=>{!this._pointerEvent||"pen"!==e.pointerType&&"touch"!==e.pointerType||(this.touchDeltaX=e.clientX-this.touchStartX),this._handleSwipe(),"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(e=>this.cycle(e),500+this._config.interval))};n.find(".carousel-item img",this._element).forEach(e=>{I.on(e,"dragstart.bs.carousel",e=>e.preventDefault())}),this._pointerEvent?(I.on(this._element,"pointerdown.bs.carousel",t=>e(t)),I.on(this._element,"pointerup.bs.carousel",e=>o(e)),this._element.classList.add("pointer-event")):(I.on(this._element,"touchstart.bs.carousel",t=>e(t)),I.on(this._element,"touchmove.bs.carousel",e=>t(e)),I.on(this._element,"touchend.bs.carousel",e=>o(e)))}_keydown(e){if(/input|textarea/i.test(e.target.tagName))return;const t=Z[e.key];t&&(e.preventDefault(),this._slide(t))}_getItemIndex(e){return this._items=e&&e.parentNode?n.find(".carousel-item",e.parentNode):[],this._items.indexOf(e)}_getItemByOrder(e,t){const n=e===K;return F(this._items,t,n,this._config.wrap)}_triggerSlideEvent(e,t){const o=this._getItemIndex(e),i=this._getItemIndex(n.findOne(".active.carousel-item",this._element));return I.trigger(this._element,"slide.bs.carousel",{relatedTarget:e,direction:t,from:i,to:o})}_setActiveIndicatorElement(e){if(this._indicatorsElement){const t=n.findOne(".active",this._indicatorsElement);t.classList.remove("active"),t.removeAttribute("aria-current");const o=n.find("[data-bs-target]",this._indicatorsElement);for(let t=0;t{I.trigger(this._element,"slid.bs.carousel",{relatedTarget:s,direction:f,from:r,to:a})};if(this._element.classList.contains("slide")){s.classList.add(d),g(s),i.classList.add(c),s.classList.add(c);const e=()=>{s.classList.remove(c,d),s.classList.add("active"),i.classList.remove("active",d,c),this._isSliding=!1,setTimeout(h,0)};this._queueCallback(e,i,!0)}else i.classList.remove("active"),s.classList.add("active"),this._isSliding=!1,h();l&&this.cycle()}_directionToOrder(e){return[J,Q].includes(e)?v()?e===Q?Y:K:e===Q?K:Y:e}_orderToDirection(e){return[K,Y].includes(e)?v()?e===Y?Q:J:e===Y?J:Q:e}static carouselInterface(e,t){const n=ee.getOrCreateInstance(e,t);let{_config:o}=n;"object"==typeof t&&(o={...o,...t});const i="string"==typeof t?t:o.slide;if("number"==typeof t)n.to(t);else if("string"==typeof i){if(void 0===n[i])throw new TypeError(`No method named "${i}"`);n[i]()}else o.interval&&o.ride&&(n.pause(),n.cycle())}static jQueryInterface(e){return this.each(function(){ee.carouselInterface(this,e)})}static dataApiClickHandler(e){const t=s(this);if(!t||!t.classList.contains("carousel"))return;const n={...G.getDataAttributes(t),...G.getDataAttributes(this)},o=this.getAttribute("data-bs-slide-to");o&&(n.interval=!1),ee.carouselInterface(t,n),o&&ee.getInstance(t).to(o),e.preventDefault()}}I.on(document,"click.bs.carousel.data-api","[data-bs-slide], [data-bs-slide-to]",ee.dataApiClickHandler),I.on(window,"load.bs.carousel.data-api",()=>{const e=n.find('[data-bs-ride="carousel"]');for(let t=0,n=e.length;te===this._element);null!==i&&s.length&&(this._selector=i,this._triggerArray.push(t))}this._parent=this._config.parent?this._getParent():null,this._config.parent||this._addAriaAndCollapsedClass(this._element,this._triggerArray),this._config.toggle&&this.toggle()}static get Default(){return te}static get NAME(){return"collapse"}toggle(){this._element.classList.contains("show")?this.hide():this.show()}show(){if(this._isTransitioning||this._element.classList.contains("show"))return;let e,t;this._parent&&(0===(e=n.find(".show, .collapsing",this._parent).filter(e=>"string"==typeof this._config.parent?e.getAttribute("data-bs-parent")===this._config.parent:e.classList.contains("collapse"))).length&&(e=null));const o=n.findOne(this._selector);if(e){const n=e.find(e=>o!==e);if((t=n?oe.getInstance(n):null)&&t._isTransitioning)return}if(I.trigger(this._element,"show.bs.collapse").defaultPrevented)return;e&&e.forEach(e=>{o!==e&&oe.collapseInterface(e,"hide"),t||H.set(e,"bs.collapse",null)});const i=this._getDimension();this._element.classList.remove("collapse"),this._element.classList.add("collapsing"),this._element.style[i]=0,this._triggerArray.length&&this._triggerArray.forEach(e=>{e.classList.remove("collapsed"),e.setAttribute("aria-expanded",!0)}),this.setTransitioning(!0);const r="scroll"+(i[0].toUpperCase()+i.slice(1));this._queueCallback(()=>{this._element.classList.remove("collapsing"),this._element.classList.add("collapse","show"),this._element.style[i]="",this.setTransitioning(!1),I.trigger(this._element,"shown.bs.collapse")},this._element,!0),this._element.style[i]=this._element[r]+"px"}hide(){if(this._isTransitioning||!this._element.classList.contains("show"))return;if(I.trigger(this._element,"hide.bs.collapse").defaultPrevented)return;const e=this._getDimension();this._element.style[e]=this._element.getBoundingClientRect()[e]+"px",g(this._element),this._element.classList.add("collapsing"),this._element.classList.remove("collapse","show");const t=this._triggerArray.length;if(t>0)for(let e=0;e{this.setTransitioning(!1),this._element.classList.remove("collapsing"),this._element.classList.add("collapse"),I.trigger(this._element,"hidden.bs.collapse")},this._element,!0)}setTransitioning(e){this._isTransitioning=e}_getConfig(e){return(e={...te,...e}).toggle=Boolean(e.toggle),c("collapse",e,ne),e}_getDimension(){return this._element.classList.contains("width")?"width":"height"}_getParent(){let{parent:e}=this._config;const t=`[data-bs-toggle="collapse"][data-bs-parent="${e=u(e)}"]`;return n.find(t,e).forEach(e=>{const t=s(e);this._addAriaAndCollapsedClass(t,[e])}),e}_addAriaAndCollapsedClass(e,t){if(!e||!t.length)return;const n=e.classList.contains("show");t.forEach(e=>{n?e.classList.remove("collapsed"):e.classList.add("collapsed"),e.setAttribute("aria-expanded",n)})}static collapseInterface(e,t){let n=oe.getInstance(e);const o={...te,...G.getDataAttributes(e),..."object"==typeof t&&t?t:{}};if(!n&&o.toggle&&"string"==typeof t&&/show|hide/.test(t)&&(o.toggle=!1),n||(n=new oe(e,o)),"string"==typeof t){if(void 0===n[t])throw new TypeError(`No method named "${t}"`);n[t]()}}static jQueryInterface(e){return this.each(function(){oe.collapseInterface(this,e)})}}I.on(document,"click.bs.collapse.data-api",'[data-bs-toggle="collapse"]',function(e){("A"===e.target.tagName||e.delegateTarget&&"A"===e.delegateTarget.tagName)&&e.preventDefault();const t=G.getDataAttributes(this),o=r(this);n.find(o).forEach(e=>{const n=oe.getInstance(e);let o;n?(null===n._parent&&"string"==typeof t.parent&&(n._config.parent=t.parent,n._parent=n._getParent()),o="toggle"):o=t,oe.collapseInterface(e,o)})}),x(oe);const ie=new RegExp("ArrowUp|ArrowDown|Escape"),re=v()?"top-end":"top-start",se=v()?"top-start":"top-end",ae=v()?"bottom-end":"bottom-start",le=v()?"bottom-start":"bottom-end",ue=v()?"left-start":"right-start",ce=v()?"right-start":"left-start",de={offset:[0,2],boundary:"clippingParents",reference:"toggle",display:"dynamic",popperConfig:null,autoClose:!0},fe={offset:"(array|string|function)",boundary:"(string|element)",reference:"(string|element|object)",display:"string",popperConfig:"(null|object|function)",autoClose:"(boolean|string)"};class he extends z{constructor(e,t){super(e),this._popper=null,this._config=this._getConfig(t),this._menu=this._getMenuElement(),this._inNavbar=this._detectNavbar(),this._addEventListeners()}static get Default(){return de}static get DefaultType(){return fe}static get NAME(){return"dropdown"}toggle(){f(this._element)||(this._element.classList.contains("show")?this.hide():this.show())}show(){if(f(this._element)||this._menu.classList.contains("show"))return;const e=he.getParentFromElement(this._element),n={relatedTarget:this._element};if(!I.trigger(this._element,"show.bs.dropdown",n).defaultPrevented){if(this._inNavbar)G.setDataAttribute(this._menu,"popper","none");else{if(void 0===t)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let n=this._element;"parent"===this._config.reference?n=e:l(this._config.reference)?n=u(this._config.reference):"object"==typeof this._config.reference&&(n=this._config.reference);const o=this._getPopperConfig(),i=o.modifiers.find(e=>"applyStyles"===e.name&&!1===e.enabled);this._popper=t.createPopper(n,this._menu,o),i&&G.setDataAttribute(this._menu,"popper","static")}"ontouchstart"in document.documentElement&&!e.closest(".navbar-nav")&&[].concat(...document.body.children).forEach(e=>I.on(e,"mouseover",p)),this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.toggle("show"),this._element.classList.toggle("show"),I.trigger(this._element,"shown.bs.dropdown",n)}}hide(){if(f(this._element)||!this._menu.classList.contains("show"))return;const e={relatedTarget:this._element};this._completeHide(e)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_addEventListeners(){I.on(this._element,"click.bs.dropdown",e=>{e.preventDefault(),this.toggle()})}_completeHide(e){I.trigger(this._element,"hide.bs.dropdown",e).defaultPrevented||("ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(e=>I.off(e,"mouseover",p)),this._popper&&this._popper.destroy(),this._menu.classList.remove("show"),this._element.classList.remove("show"),this._element.setAttribute("aria-expanded","false"),G.removeDataAttribute(this._menu,"popper"),I.trigger(this._element,"hidden.bs.dropdown",e))}_getConfig(e){if(e={...this.constructor.Default,...G.getDataAttributes(this._element),...e},c("dropdown",e,this.constructor.DefaultType),"object"==typeof e.reference&&!l(e.reference)&&"function"!=typeof e.reference.getBoundingClientRect)throw new TypeError("dropdown".toUpperCase()+': Option "reference" provided type "object" without a required "getBoundingClientRect" method.');return e}_getMenuElement(){return n.next(this._element,".dropdown-menu")[0]}_getPlacement(){const e=this._element.parentNode;if(e.classList.contains("dropend"))return ue;if(e.classList.contains("dropstart"))return ce;const t="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return e.classList.contains("dropup")?t?se:re:t?le:ae}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:e}=this._config;return"string"==typeof e?e.split(",").map(e=>Number.parseInt(e,10)):"function"==typeof e?t=>e(t,this._element):e}_getPopperConfig(){const e={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return"static"===this._config.display&&(e.modifiers=[{name:"applyStyles",enabled:!1}]),{...e,..."function"==typeof this._config.popperConfig?this._config.popperConfig(e):this._config.popperConfig}}_selectMenuItem({key:e,target:t}){const o=n.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter(d);o.length&&F(o,t,"ArrowDown"===e,!o.includes(t)).focus()}static dropdownInterface(e,t){const n=he.getOrCreateInstance(e,t);if("string"==typeof t){if(void 0===n[t])throw new TypeError(`No method named "${t}"`);n[t]()}}static jQueryInterface(e){return this.each(function(){he.dropdownInterface(this,e)})}static clearMenus(e){if(e&&(2===e.button||"keyup"===e.type&&"Tab"!==e.key))return;const t=n.find('[data-bs-toggle="dropdown"]');for(let n=0,o=t.length;nthis.matches('[data-bs-toggle="dropdown"]')?this:n.prev(this,'[data-bs-toggle="dropdown"]')[0];return"Escape"===e.key?(o().focus(),void he.clearMenus()):"ArrowUp"===e.key||"ArrowDown"===e.key?(t||o().click(),void he.getInstance(o())._selectMenuItem(e)):void(t&&"Space"!==e.key||he.clearMenus())}}I.on(document,"keydown.bs.dropdown.data-api",'[data-bs-toggle="dropdown"]',he.dataApiKeydownHandler),I.on(document,"keydown.bs.dropdown.data-api",".dropdown-menu",he.dataApiKeydownHandler),I.on(document,"click.bs.dropdown.data-api",he.clearMenus),I.on(document,"keyup.bs.dropdown.data-api",he.clearMenus),I.on(document,"click.bs.dropdown.data-api",'[data-bs-toggle="dropdown"]',function(e){e.preventDefault(),he.dropdownInterface(this)}),x(he);class pe{constructor(){this._element=document.body}getWidth(){const e=document.documentElement.clientWidth;return Math.abs(window.innerWidth-e)}hide(){const e=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,"paddingRight",t=>t+e),this._setElementAttributes(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top","paddingRight",t=>t+e),this._setElementAttributes(".sticky-top","marginRight",t=>t-e)}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(e,t,n){const o=this.getWidth();this._applyManipulationCallback(e,e=>{if(e!==this._element&&window.innerWidth>e.clientWidth+o)return;this._saveInitialAttribute(e,t);const i=window.getComputedStyle(e)[t];e.style[t]=n(Number.parseFloat(i))+"px"})}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,"paddingRight"),this._resetElementAttributes(".fixed-top, .fixed-bottom, .is-fixed, .sticky-top","paddingRight"),this._resetElementAttributes(".sticky-top","marginRight")}_saveInitialAttribute(e,t){const n=e.style[t];n&&G.setDataAttribute(e,t,n)}_resetElementAttributes(e,t){this._applyManipulationCallback(e,e=>{const n=G.getDataAttribute(e,t);void 0===n?e.style.removeProperty(t):(G.removeDataAttribute(e,t),e.style[t]=n)})}_applyManipulationCallback(e,t){l(e)?t(e):n.find(e,this._element).forEach(t)}isOverflowing(){return this.getWidth()>0}}const ge={isVisible:!0,isAnimated:!1,rootElement:"body",clickCallback:null},me={isVisible:"boolean",isAnimated:"boolean",rootElement:"(element|string)",clickCallback:"(function|null)"};class be{constructor(e){this._config=this._getConfig(e),this._isAppended=!1,this._element=null}show(e){this._config.isVisible?(this._append(),this._config.isAnimated&&g(this._getElement()),this._getElement().classList.add("show"),this._emulateAnimation(()=>{y(e)})):y(e)}hide(e){this._config.isVisible?(this._getElement().classList.remove("show"),this._emulateAnimation(()=>{this.dispose(),y(e)})):y(e)}_getElement(){if(!this._element){const e=document.createElement("div");e.className="modal-backdrop",this._config.isAnimated&&e.classList.add("fade"),this._element=e}return this._element}_getConfig(e){return(e={...ge,..."object"==typeof e?e:{}}).rootElement=u(e.rootElement),c("backdrop",e,me),e}_append(){this._isAppended||(this._config.rootElement.appendChild(this._getElement()),I.on(this._getElement(),"mousedown.bs.backdrop",()=>{y(this._config.clickCallback)}),this._isAppended=!0)}dispose(){this._isAppended&&(I.off(this._element,"mousedown.bs.backdrop"),this._element.remove(),this._isAppended=!1)}_emulateAnimation(e){_(e,this._getElement(),this._config.isAnimated)}}const ve={backdrop:!0,keyboard:!0,focus:!0},xe={backdrop:"(boolean|string)",keyboard:"boolean",focus:"boolean"};class ye extends z{constructor(e,t){super(e),this._config=this._getConfig(t),this._dialog=n.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._isShown=!1,this._ignoreBackdropClick=!1,this._isTransitioning=!1,this._scrollBar=new pe}static get Default(){return ve}static get NAME(){return"modal"}toggle(e){return this._isShown?this.hide():this.show(e)}show(e){this._isShown||this._isTransitioning||I.trigger(this._element,"show.bs.modal",{relatedTarget:e}).defaultPrevented||(this._isShown=!0,this._isAnimated()&&(this._isTransitioning=!0),this._scrollBar.hide(),document.body.classList.add("modal-open"),this._adjustDialog(),this._setEscapeEvent(),this._setResizeEvent(),I.on(this._element,"click.dismiss.bs.modal",'[data-bs-dismiss="modal"]',e=>this.hide(e)),I.on(this._dialog,"mousedown.dismiss.bs.modal",()=>{I.one(this._element,"mouseup.dismiss.bs.modal",e=>{e.target===this._element&&(this._ignoreBackdropClick=!0)})}),this._showBackdrop(()=>this._showElement(e)))}hide(e){if(e&&["A","AREA"].includes(e.target.tagName)&&e.preventDefault(),!this._isShown||this._isTransitioning)return;if(I.trigger(this._element,"hide.bs.modal").defaultPrevented)return;this._isShown=!1;const t=this._isAnimated();t&&(this._isTransitioning=!0),this._setEscapeEvent(),this._setResizeEvent(),I.off(document,"focusin.bs.modal"),this._element.classList.remove("show"),I.off(this._element,"click.dismiss.bs.modal"),I.off(this._dialog,"mousedown.dismiss.bs.modal"),this._queueCallback(()=>this._hideModal(),this._element,t)}dispose(){[window,this._dialog].forEach(e=>I.off(e,".bs.modal")),this._backdrop.dispose(),super.dispose(),I.off(document,"focusin.bs.modal")}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new be({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_getConfig(e){return e={...ve,...G.getDataAttributes(this._element),..."object"==typeof e?e:{}},c("modal",e,xe),e}_showElement(e){const t=this._isAnimated(),o=n.findOne(".modal-body",this._dialog);this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE||document.body.appendChild(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0,o&&(o.scrollTop=0),t&&g(this._element),this._element.classList.add("show"),this._config.focus&&this._enforceFocus(),this._queueCallback(()=>{this._config.focus&&this._element.focus(),this._isTransitioning=!1,I.trigger(this._element,"shown.bs.modal",{relatedTarget:e})},this._dialog,t)}_enforceFocus(){I.off(document,"focusin.bs.modal"),I.on(document,"focusin.bs.modal",e=>{document===e.target||this._element===e.target||this._element.contains(e.target)||this._element.focus()})}_setEscapeEvent(){this._isShown?I.on(this._element,"keydown.dismiss.bs.modal",e=>{this._config.keyboard&&"Escape"===e.key?(e.preventDefault(),this.hide()):this._config.keyboard||"Escape"!==e.key||this._triggerBackdropTransition()}):I.off(this._element,"keydown.dismiss.bs.modal")}_setResizeEvent(){this._isShown?I.on(window,"resize.bs.modal",()=>this._adjustDialog()):I.off(window,"resize.bs.modal")}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide(()=>{document.body.classList.remove("modal-open"),this._resetAdjustments(),this._scrollBar.reset(),I.trigger(this._element,"hidden.bs.modal")})}_showBackdrop(e){I.on(this._element,"click.dismiss.bs.modal",e=>{this._ignoreBackdropClick?this._ignoreBackdropClick=!1:e.target===e.currentTarget&&(!0===this._config.backdrop?this.hide():"static"===this._config.backdrop&&this._triggerBackdropTransition())}),this._backdrop.show(e)}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(I.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented)return;const{classList:e,scrollHeight:t,style:n}=this._element,o=t>document.documentElement.clientHeight;!o&&"hidden"===n.overflowY||e.contains("modal-static")||(o||(n.overflowY="hidden"),e.add("modal-static"),this._queueCallback(()=>{e.remove("modal-static"),o||this._queueCallback(()=>{n.overflowY=""},this._dialog)},this._dialog),this._element.focus())}_adjustDialog(){const e=this._element.scrollHeight>document.documentElement.clientHeight,t=this._scrollBar.getWidth(),n=t>0;(!n&&e&&!v()||n&&!e&&v())&&(this._element.style.paddingLeft=t+"px"),(n&&!e&&!v()||!n&&e&&v())&&(this._element.style.paddingRight=t+"px")}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(e,t){return this.each(function(){const n=ye.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===n[e])throw new TypeError(`No method named "${e}"`);n[e](t)}})}}I.on(document,"click.bs.modal.data-api",'[data-bs-toggle="modal"]',function(e){const t=s(this);["A","AREA"].includes(this.tagName)&&e.preventDefault(),I.one(t,"show.bs.modal",e=>{e.defaultPrevented||I.one(t,"hidden.bs.modal",()=>{d(this)&&this.focus()})}),ye.getOrCreateInstance(t).toggle(this)}),x(ye);const _e={backdrop:!0,keyboard:!0,scroll:!1},Fe={backdrop:"boolean",keyboard:"boolean",scroll:"boolean"};class we extends z{constructor(e,t){super(e),this._config=this._getConfig(t),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._addEventListeners()}static get NAME(){return"offcanvas"}static get Default(){return _e}toggle(e){return this._isShown?this.hide():this.show(e)}show(e){this._isShown||I.trigger(this._element,"show.bs.offcanvas",{relatedTarget:e}).defaultPrevented||(this._isShown=!0,this._element.style.visibility="visible",this._backdrop.show(),this._config.scroll||((new pe).hide(),this._enforceFocusOnElement(this._element)),this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add("show"),this._queueCallback(()=>{I.trigger(this._element,"shown.bs.offcanvas",{relatedTarget:e})},this._element,!0))}hide(){this._isShown&&(I.trigger(this._element,"hide.bs.offcanvas").defaultPrevented||(I.off(document,"focusin.bs.offcanvas"),this._element.blur(),this._isShown=!1,this._element.classList.remove("show"),this._backdrop.hide(),this._queueCallback(()=>{this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._element.style.visibility="hidden",this._config.scroll||(new pe).reset(),I.trigger(this._element,"hidden.bs.offcanvas")},this._element,!0)))}dispose(){this._backdrop.dispose(),super.dispose(),I.off(document,"focusin.bs.offcanvas")}_getConfig(e){return e={..._e,...G.getDataAttributes(this._element),..."object"==typeof e?e:{}},c("offcanvas",e,Fe),e}_initializeBackDrop(){return new be({isVisible:this._config.backdrop,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:()=>this.hide()})}_enforceFocusOnElement(e){I.off(document,"focusin.bs.offcanvas"),I.on(document,"focusin.bs.offcanvas",t=>{document===t.target||e===t.target||e.contains(t.target)||e.focus()}),e.focus()}_addEventListeners(){I.on(this._element,"click.dismiss.bs.offcanvas",'[data-bs-dismiss="offcanvas"]',()=>this.hide()),I.on(this._element,"keydown.dismiss.bs.offcanvas",e=>{this._config.keyboard&&"Escape"===e.key&&this.hide()})}static jQueryInterface(e){return this.each(function(){const t=we.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e]||e.startsWith("_")||"constructor"===e)throw new TypeError(`No method named "${e}"`);t[e](this)}})}}I.on(document,"click.bs.offcanvas.data-api",'[data-bs-toggle="offcanvas"]',function(e){const t=s(this);if(["A","AREA"].includes(this.tagName)&&e.preventDefault(),f(this))return;I.one(t,"hidden.bs.offcanvas",()=>{d(this)&&this.focus()});const o=n.findOne(".offcanvas.show");o&&o!==t&&we.getInstance(o).hide(),we.getOrCreateInstance(t).toggle(this)}),I.on(window,"load.bs.offcanvas.data-api",()=>n.find(".offcanvas.show").forEach(e=>we.getOrCreateInstance(e).show())),x(we);const Ee=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),Ce=/^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/i,Ae=/^data:(?:image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\/(?:mpeg|mp4|ogg|webm)|audio\/(?:mp3|oga|ogg|opus));base64,[\d+/a-z]+=*$/i,ke=(e,t)=>{const n=e.nodeName.toLowerCase();if(t.includes(n))return!Ee.has(n)||Boolean(Ce.test(e.nodeValue)||Ae.test(e.nodeValue));const o=t.filter(e=>e instanceof RegExp);for(let e=0,t=o.length;e{ke(e,a)||n.removeAttribute(e.nodeName)})}return o.body.innerHTML}const Oe=new RegExp("(^|\\s)bs-tooltip\\S+","g"),Se=new Set(["sanitize","allowList","sanitizeFn"]),De={animation:"boolean",template:"string",title:"(string|element|function)",trigger:"string",delay:"(number|object)",html:"boolean",selector:"(string|boolean)",placement:"(string|function)",offset:"(array|string|function)",container:"(string|element|boolean)",fallbackPlacements:"array",boundary:"(string|element)",customClass:"(string|function)",sanitize:"boolean",sanitizeFn:"(null|function)",allowList:"object",popperConfig:"(null|object|function)"},je={AUTO:"auto",TOP:"top",RIGHT:v()?"left":"right",BOTTOM:"bottom",LEFT:v()?"right":"left"},Le={animation:!0,template:'',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:[0,0],container:!1,fallbackPlacements:["top","right","bottom","left"],boundary:"clippingParents",customClass:"",sanitize:!0,sanitizeFn:null,allowList:{"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},popperConfig:null},Pe={HIDE:"hide.bs.tooltip",HIDDEN:"hidden.bs.tooltip",SHOW:"show.bs.tooltip",SHOWN:"shown.bs.tooltip",INSERTED:"inserted.bs.tooltip",CLICK:"click.bs.tooltip",FOCUSIN:"focusin.bs.tooltip",FOCUSOUT:"focusout.bs.tooltip",MOUSEENTER:"mouseenter.bs.tooltip",MOUSELEAVE:"mouseleave.bs.tooltip"};class Ne extends z{constructor(e,n){if(void 0===t)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(e),this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this._config=this._getConfig(n),this.tip=null,this._setListeners()}static get Default(){return Le}static get NAME(){return"tooltip"}static get Event(){return Pe}static get DefaultType(){return De}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(e){if(this._isEnabled)if(e){const t=this._initializeOnDelegatedTarget(e);t._activeTrigger.click=!t._activeTrigger.click,t._isWithActiveTrigger()?t._enter(null,t):t._leave(null,t)}else{if(this.getTipElement().classList.contains("show"))return void this._leave(null,this);this._enter(null,this)}}dispose(){clearTimeout(this._timeout),I.off(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this.tip&&this.tip.remove(),this._popper&&this._popper.destroy(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this.isWithContent()||!this._isEnabled)return;const e=I.trigger(this._element,this.constructor.Event.SHOW),n=h(this._element),i=null===n?this._element.ownerDocument.documentElement.contains(this._element):n.contains(this._element);if(e.defaultPrevented||!i)return;const r=this.getTipElement(),s=o(this.constructor.NAME);r.setAttribute("id",s),this._element.setAttribute("aria-describedby",s),this.setContent(),this._config.animation&&r.classList.add("fade");const a="function"==typeof this._config.placement?this._config.placement.call(this,r,this._element):this._config.placement,l=this._getAttachment(a);this._addAttachmentClass(l);const{container:u}=this._config;H.set(r,this.constructor.DATA_KEY,this),this._element.ownerDocument.documentElement.contains(this.tip)||(u.appendChild(r),I.trigger(this._element,this.constructor.Event.INSERTED)),this._popper?this._popper.update():this._popper=t.createPopper(this._element,r,this._getPopperConfig(l)),r.classList.add("show");const c="function"==typeof this._config.customClass?this._config.customClass():this._config.customClass;c&&r.classList.add(...c.split(" ")),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(e=>{I.on(e,"mouseover",p)});const d=this.tip.classList.contains("fade");this._queueCallback(()=>{const e=this._hoverState;this._hoverState=null,I.trigger(this._element,this.constructor.Event.SHOWN),"out"===e&&this._leave(null,this)},this.tip,d)}hide(){if(!this._popper)return;const e=this.getTipElement();if(I.trigger(this._element,this.constructor.Event.HIDE).defaultPrevented)return;e.classList.remove("show"),"ontouchstart"in document.documentElement&&[].concat(...document.body.children).forEach(e=>I.off(e,"mouseover",p)),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1;const t=this.tip.classList.contains("fade");this._queueCallback(()=>{this._isWithActiveTrigger()||("show"!==this._hoverState&&e.remove(),this._cleanTipClass(),this._element.removeAttribute("aria-describedby"),I.trigger(this._element,this.constructor.Event.HIDDEN),this._popper&&(this._popper.destroy(),this._popper=null))},this.tip,t),this._hoverState=""}update(){null!==this._popper&&this._popper.update()}isWithContent(){return Boolean(this.getTitle())}getTipElement(){if(this.tip)return this.tip;const e=document.createElement("div");return e.innerHTML=this._config.template,this.tip=e.children[0],this.tip}setContent(){const e=this.getTipElement();this.setElementContent(n.findOne(".tooltip-inner",e),this.getTitle()),e.classList.remove("fade","show")}setElementContent(e,t){if(null!==e)return l(t)?(t=u(t),void(this._config.html?t.parentNode!==e&&(e.innerHTML="",e.appendChild(t)):e.textContent=t.textContent)):void(this._config.html?(this._config.sanitize&&(t=Te(t,this._config.allowList,this._config.sanitizeFn)),e.innerHTML=t):e.textContent=t)}getTitle(){let e=this._element.getAttribute("data-bs-original-title");return e||(e="function"==typeof this._config.title?this._config.title.call(this._element):this._config.title),e}updateAttachment(e){return"right"===e?"end":"left"===e?"start":e}_initializeOnDelegatedTarget(e,t){const n=this.constructor.DATA_KEY;return(t=t||H.get(e.delegateTarget,n))||(t=new this.constructor(e.delegateTarget,this._getDelegateConfig()),H.set(e.delegateTarget,n,t)),t}_getOffset(){const{offset:e}=this._config;return"string"==typeof e?e.split(",").map(e=>Number.parseInt(e,10)):"function"==typeof e?t=>e(t,this._element):e}_getPopperConfig(e){const t={placement:e,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"onChange",enabled:!0,phase:"afterWrite",fn:e=>this._handlePopperPlacementChange(e)}],onFirstUpdate:e=>{e.options.placement!==e.placement&&this._handlePopperPlacementChange(e)}};return{...t,..."function"==typeof this._config.popperConfig?this._config.popperConfig(t):this._config.popperConfig}}_addAttachmentClass(e){this.getTipElement().classList.add("bs-tooltip-"+this.updateAttachment(e))}_getAttachment(e){return je[e.toUpperCase()]}_setListeners(){this._config.trigger.split(" ").forEach(e=>{if("click"===e)I.on(this._element,this.constructor.Event.CLICK,this._config.selector,e=>this.toggle(e));else if("manual"!==e){const t="hover"===e?this.constructor.Event.MOUSEENTER:this.constructor.Event.FOCUSIN,n="hover"===e?this.constructor.Event.MOUSELEAVE:this.constructor.Event.FOCUSOUT;I.on(this._element,t,this._config.selector,e=>this._enter(e)),I.on(this._element,n,this._config.selector,e=>this._leave(e))}}),this._hideModalHandler=(()=>{this._element&&this.hide()}),I.on(this._element.closest(".modal"),"hide.bs.modal",this._hideModalHandler),this._config.selector?this._config={...this._config,trigger:"manual",selector:""}:this._fixTitle()}_fixTitle(){const e=this._element.getAttribute("title"),t=typeof this._element.getAttribute("data-bs-original-title");(e||"string"!==t)&&(this._element.setAttribute("data-bs-original-title",e||""),!e||this._element.getAttribute("aria-label")||this._element.textContent||this._element.setAttribute("aria-label",e),this._element.setAttribute("title",""))}_enter(e,t){t=this._initializeOnDelegatedTarget(e,t),e&&(t._activeTrigger["focusin"===e.type?"focus":"hover"]=!0),t.getTipElement().classList.contains("show")||"show"===t._hoverState?t._hoverState="show":(clearTimeout(t._timeout),t._hoverState="show",t._config.delay&&t._config.delay.show?t._timeout=setTimeout(()=>{"show"===t._hoverState&&t.show()},t._config.delay.show):t.show())}_leave(e,t){t=this._initializeOnDelegatedTarget(e,t),e&&(t._activeTrigger["focusout"===e.type?"focus":"hover"]=t._element.contains(e.relatedTarget)),t._isWithActiveTrigger()||(clearTimeout(t._timeout),t._hoverState="out",t._config.delay&&t._config.delay.hide?t._timeout=setTimeout(()=>{"out"===t._hoverState&&t.hide()},t._config.delay.hide):t.hide())}_isWithActiveTrigger(){for(const e in this._activeTrigger)if(this._activeTrigger[e])return!0;return!1}_getConfig(e){const t=G.getDataAttributes(this._element);return Object.keys(t).forEach(e=>{Se.has(e)&&delete t[e]}),(e={...this.constructor.Default,...t,..."object"==typeof e&&e?e:{}}).container=!1===e.container?document.body:u(e.container),"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),c("tooltip",e,this.constructor.DefaultType),e.sanitize&&(e.template=Te(e.template,e.allowList,e.sanitizeFn)),e}_getDelegateConfig(){const e={};if(this._config)for(const t in this._config)this.constructor.Default[t]!==this._config[t]&&(e[t]=this._config[t]);return e}_cleanTipClass(){const e=this.getTipElement(),t=e.getAttribute("class").match(Oe);null!==t&&t.length>0&&t.map(e=>e.trim()).forEach(t=>e.classList.remove(t))}_handlePopperPlacementChange(e){const{state:t}=e;t&&(this.tip=t.elements.popper,this._cleanTipClass(),this._addAttachmentClass(this._getAttachment(t.placement)))}static jQueryInterface(e){return this.each(function(){const t=Ne.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}})}}x(Ne);const Be=new RegExp("(^|\\s)bs-popover\\S+","g"),Me={...Ne.Default,placement:"right",offset:[0,8],trigger:"click",content:"",template:''},Ie={...Ne.DefaultType,content:"(string|element|function)"},Re={HIDE:"hide.bs.popover",HIDDEN:"hidden.bs.popover",SHOW:"show.bs.popover",SHOWN:"shown.bs.popover",INSERTED:"inserted.bs.popover",CLICK:"click.bs.popover",FOCUSIN:"focusin.bs.popover",FOCUSOUT:"focusout.bs.popover",MOUSEENTER:"mouseenter.bs.popover",MOUSELEAVE:"mouseleave.bs.popover"};class He extends Ne{static get Default(){return Me}static get NAME(){return"popover"}static get Event(){return Re}static get DefaultType(){return Ie}isWithContent(){return this.getTitle()||this._getContent()}getTipElement(){return this.tip||(this.tip=super.getTipElement(),this.getTitle()||n.findOne(".popover-header",this.tip).remove(),this._getContent()||n.findOne(".popover-body",this.tip).remove()),this.tip}setContent(){const e=this.getTipElement();this.setElementContent(n.findOne(".popover-header",e),this.getTitle());let t=this._getContent();"function"==typeof t&&(t=t.call(this._element)),this.setElementContent(n.findOne(".popover-body",e),t),e.classList.remove("fade","show")}_addAttachmentClass(e){this.getTipElement().classList.add("bs-popover-"+this.updateAttachment(e))}_getContent(){return this._element.getAttribute("data-bs-content")||this._config.content}_cleanTipClass(){const e=this.getTipElement(),t=e.getAttribute("class").match(Be);null!==t&&t.length>0&&t.map(e=>e.trim()).forEach(t=>e.classList.remove(t))}static jQueryInterface(e){return this.each(function(){const t=He.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}})}}x(He);const ze={offset:10,method:"auto",target:""},$e={offset:"number",method:"string",target:"(string|element)"};class qe extends z{constructor(e,t){super(e),this._scrollElement="BODY"===this._element.tagName?window:this._element,this._config=this._getConfig(t),this._selector=`${this._config.target} .nav-link, ${this._config.target} .list-group-item, ${this._config.target} .dropdown-item`,this._offsets=[],this._targets=[],this._activeTarget=null,this._scrollHeight=0,I.on(this._scrollElement,"scroll.bs.scrollspy",()=>this._process()),this.refresh(),this._process()}static get Default(){return ze}static get NAME(){return"scrollspy"}refresh(){const e=this._scrollElement===this._scrollElement.window?"offset":"position",t="auto"===this._config.method?e:this._config.method,o="position"===t?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),n.find(this._selector).map(e=>{const i=r(e),s=i?n.findOne(i):null;if(s){const e=s.getBoundingClientRect();if(e.width||e.height)return[G[t](s).top+o,i]}return null}).filter(e=>e).sort((e,t)=>e[0]-t[0]).forEach(e=>{this._offsets.push(e[0]),this._targets.push(e[1])})}dispose(){I.off(this._scrollElement,".bs.scrollspy"),super.dispose()}_getConfig(e){if("string"!=typeof(e={...ze,...G.getDataAttributes(this._element),..."object"==typeof e&&e?e:{}}).target&&l(e.target)){let{id:t}=e.target;t||(t=o("scrollspy"),e.target.id=t),e.target="#"+t}return c("scrollspy",e,$e),e}_getScrollTop(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop}_getScrollHeight(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)}_getOffsetHeight(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height}_process(){const e=this._getScrollTop()+this._config.offset,t=this._getScrollHeight(),n=this._config.offset+t-this._getOffsetHeight();if(this._scrollHeight!==t&&this.refresh(),e>=n){const e=this._targets[this._targets.length-1];this._activeTarget!==e&&this._activate(e)}else{if(this._activeTarget&&e0)return this._activeTarget=null,void this._clear();for(let t=this._offsets.length;t--;)this._activeTarget!==this._targets[t]&&e>=this._offsets[t]&&(void 0===this._offsets[t+1]||e`${t}[data-bs-target="${e}"],${t}[href="${e}"]`),o=n.findOne(t.join(","));o.classList.contains("dropdown-item")?(n.findOne(".dropdown-toggle",o.closest(".dropdown")).classList.add("active"),o.classList.add("active")):(o.classList.add("active"),n.parents(o,".nav, .list-group").forEach(e=>{n.prev(e,".nav-link, .list-group-item").forEach(e=>e.classList.add("active")),n.prev(e,".nav-item").forEach(e=>{n.children(e,".nav-link").forEach(e=>e.classList.add("active"))})})),I.trigger(this._scrollElement,"activate.bs.scrollspy",{relatedTarget:e})}_clear(){n.find(this._selector).filter(e=>e.classList.contains("active")).forEach(e=>e.classList.remove("active"))}static jQueryInterface(e){return this.each(function(){const t=qe.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}})}}I.on(window,"load.bs.scrollspy.data-api",()=>{n.find('[data-bs-spy="scroll"]').forEach(e=>new qe(e))}),x(qe);class We extends z{static get NAME(){return"tab"}show(){if(this._element.parentNode&&this._element.parentNode.nodeType===Node.ELEMENT_NODE&&this._element.classList.contains("active"))return;let e;const t=s(this._element),o=this._element.closest(".nav, .list-group");if(o){const t="UL"===o.nodeName||"OL"===o.nodeName?":scope > li > .active":".active";e=(e=n.find(t,o))[e.length-1]}const i=e?I.trigger(e,"hide.bs.tab",{relatedTarget:this._element}):null;if(I.trigger(this._element,"show.bs.tab",{relatedTarget:e}).defaultPrevented||null!==i&&i.defaultPrevented)return;this._activate(this._element,o);const r=()=>{I.trigger(e,"hidden.bs.tab",{relatedTarget:this._element}),I.trigger(this._element,"shown.bs.tab",{relatedTarget:e})};t?this._activate(t,t.parentNode,r):r()}_activate(e,t,o){const i=(!t||"UL"!==t.nodeName&&"OL"!==t.nodeName?n.children(t,".active"):n.find(":scope > li > .active",t))[0],r=o&&i&&i.classList.contains("fade"),s=()=>this._transitionComplete(e,i,o);i&&r?(i.classList.remove("show"),this._queueCallback(s,e,!0)):s()}_transitionComplete(e,t,o){if(t){t.classList.remove("active");const e=n.findOne(":scope > .dropdown-menu .active",t.parentNode);e&&e.classList.remove("active"),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!1)}e.classList.add("active"),"tab"===e.getAttribute("role")&&e.setAttribute("aria-selected",!0),g(e),e.classList.contains("fade")&&e.classList.add("show");let i=e.parentNode;if(i&&"LI"===i.nodeName&&(i=i.parentNode),i&&i.classList.contains("dropdown-menu")){const t=e.closest(".dropdown");t&&n.find(".dropdown-toggle",t).forEach(e=>e.classList.add("active")),e.setAttribute("aria-expanded",!0)}o&&o()}static jQueryInterface(e){return this.each(function(){const t=We.getOrCreateInstance(this);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}})}}I.on(document,"click.bs.tab.data-api",'[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',function(e){["A","AREA"].includes(this.tagName)&&e.preventDefault(),f(this)||We.getOrCreateInstance(this).show()}),x(We);const Ue={animation:"boolean",autohide:"boolean",delay:"number"},Ge={animation:!0,autohide:!0,delay:5e3};class Xe extends z{constructor(e,t){super(e),this._config=this._getConfig(t),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get DefaultType(){return Ue}static get Default(){return Ge}static get NAME(){return"toast"}show(){I.trigger(this._element,"show.bs.toast").defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove("hide"),g(this._element),this._element.classList.add("showing"),this._queueCallback(()=>{this._element.classList.remove("showing"),this._element.classList.add("show"),I.trigger(this._element,"shown.bs.toast"),this._maybeScheduleHide()},this._element,this._config.animation))}hide(){this._element.classList.contains("show")&&(I.trigger(this._element,"hide.bs.toast").defaultPrevented||(this._element.classList.remove("show"),this._queueCallback(()=>{this._element.classList.add("hide"),I.trigger(this._element,"hidden.bs.toast")},this._element,this._config.animation)))}dispose(){this._clearTimeout(),this._element.classList.contains("show")&&this._element.classList.remove("show"),super.dispose()}_getConfig(e){return e={...Ge,...G.getDataAttributes(this._element),..."object"==typeof e&&e?e:{}},c("toast",e,this.constructor.DefaultType),e}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout(()=>{this.hide()},this._config.delay)))}_onInteraction(e,t){switch(e.type){case"mouseover":case"mouseout":this._hasMouseInteraction=t;break;case"focusin":case"focusout":this._hasKeyboardInteraction=t}if(t)return void this._clearTimeout();const n=e.relatedTarget;this._element===n||this._element.contains(n)||this._maybeScheduleHide()}_setListeners(){I.on(this._element,"click.dismiss.bs.toast",'[data-bs-dismiss="toast"]',()=>this.hide()),I.on(this._element,"mouseover.bs.toast",e=>this._onInteraction(e,!0)),I.on(this._element,"mouseout.bs.toast",e=>this._onInteraction(e,!1)),I.on(this._element,"focusin.bs.toast",e=>this._onInteraction(e,!0)),I.on(this._element,"focusout.bs.toast",e=>this._onInteraction(e,!1))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(e){return this.each(function(){const t=Xe.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e](this)}})}}return x(Xe),{Alert:$,Button:q,Carousel:ee,Collapse:oe,Dropdown:he,Modal:ye,Offcanvas:we,Popover:He,ScrollSpy:qe,Tab:We,Toast:Xe,Tooltip:Ne}}),function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e("object"==typeof exports?require("jquery"):jQuery)}(function(e){function t(t,o,i){o={content:{message:"object"==typeof o?o.message:o,title:o.title?o.title:"",icon:o.icon?o.icon:"",url:o.url?o.url:"#",target:o.target?o.target:"-"}},i=e.extend(!0,{},o,i),this.settings=e.extend(!0,{},n,i),this._defaults=n,"-"==this.settings.content.target&&(this.settings.content.target=this.settings.url_target),this.animations={start:"webkitAnimationStart oanimationstart MSAnimationStart animationstart",end:"webkitAnimationEnd oanimationend MSAnimationEnd animationend"},"number"==typeof this.settings.offset&&(this.settings.offset={x:this.settings.offset,y:this.settings.offset}),this.init()}var n={element:"body",position:null,type:"info",allow_dismiss:!0,newest_on_top:!1,showProgressbar:!1,placement:{from:"top",align:"right"},offset:20,spacing:10,z_index:1031,delay:5e3,timer:1e3,url_target:"_blank",mouse_over:null,animate:{enter:"animated fadeInDown",exit:"animated fadeOutUp"},onShow:null,onShown:null,onClose:null,onClosed:null,icon_type:"class",template:''};String.format=function(){for(var e=arguments[0],t=1;t .progress-bar').removeClass("progress-bar-"+e.settings.type),e.settings.type=o[t],this.$ele.addClass("alert-"+o[t]).find('[data-notify="progressbar"] > .progress-bar').addClass("progress-bar-"+o[t]);break;case"icon":var i=this.$ele.find('[data-notify="icon"]');"class"==e.settings.icon_type.toLowerCase()?i.removeClass(e.settings.content.icon).addClass(o[t]):(i.is("img")||i.find("img"),i.attr("src",o[t]));break;case"progress":var r=e.settings.delay-e.settings.delay*(o[t]/100);this.$ele.data("notify-delay",r),this.$ele.find('[data-notify="progressbar"] > div').attr("aria-valuenow",o[t]).css("width",o[t]+"%");break;case"url":this.$ele.find('[data-notify="url"]').attr("href",o[t]);break;case"target":this.$ele.find('[data-notify="url"]').attr("target",o[t]);break;default:this.$ele.find('[data-notify="'+t+'"]').html(o[t])}var s=this.$ele.outerHeight()+parseInt(e.settings.spacing)+parseInt(e.settings.offset.y);e.reposition(s)},close:function(){e.close()}}},buildNotify:function(){var t=this.settings.content;this.$ele=e(String.format(this.settings.template,this.settings.type,t.title,t.message,t.url,t.target)),this.$ele.attr("data-notify-position",this.settings.placement.from+"-"+this.settings.placement.align),this.settings.allow_dismiss||this.$ele.find('[data-notify="dismiss"]').css("display","none"),(this.settings.delay<=0&&!this.settings.showProgressbar||!this.settings.showProgressbar)&&this.$ele.find('[data-notify="progressbar"]').remove()},setIcon:function(){"class"==this.settings.icon_type.toLowerCase()?this.$ele.find('[data-notify="icon"]').addClass(this.settings.content.icon):this.$ele.find('[data-notify="icon"]').is("img")?this.$ele.find('[data-notify="icon"]').attr("src",this.settings.content.icon):this.$ele.find('[data-notify="icon"]').append('Notify Icon')},styleDismiss:function(){this.$ele.find('[data-notify="dismiss"]').css({position:"absolute",right:"10px",top:"5px",zIndex:this.settings.z_index+2})},styleURL:function(){this.$ele.find('[data-notify="url"]').css({backgroundImage:"url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)",height:"100%",left:"0px",position:"absolute",top:"0px",width:"100%",zIndex:this.settings.z_index+1})},placement:function(){var t=this,n=this.settings.offset.y,o={display:"inline-block",margin:"0px auto",position:this.settings.position?this.settings.position:"body"===this.settings.element?"fixed":"absolute",transition:"all .5s ease-in-out",zIndex:this.settings.z_index},i=!1,r=this.settings;switch(e('[data-notify-position="'+this.settings.placement.from+"-"+this.settings.placement.align+'"]:not([data-closing="true"])').each(function(){return n=Math.max(n,parseInt(e(this).css(r.placement.from))+parseInt(e(this).outerHeight())+parseInt(r.spacing))}),1==this.settings.newest_on_top&&(n=this.settings.offset.y),o[this.settings.placement.from]=n+"px",this.settings.placement.align){case"left":case"right":o[this.settings.placement.align]=this.settings.offset.x+"px";break;case"center":o.left=0,o.right=0}this.$ele.css(o).addClass(this.settings.animate.enter),e.each(Array("webkit","moz","o","ms",""),function(e,n){t.$ele[0].style[n+"AnimationIterationCount"]=1}),e(this.settings.element).append(this.$ele),1==this.settings.newest_on_top&&(n=parseInt(n)+parseInt(this.settings.spacing)+this.$ele.outerHeight(),this.reposition(n)),e.isFunction(t.settings.onShow)&&t.settings.onShow.call(this.$ele),this.$ele.one(this.animations.start,function(e){i=!0}).one(this.animations.end,function(n){e.isFunction(t.settings.onShown)&&t.settings.onShown.call(this)}),setTimeout(function(){i||e.isFunction(t.settings.onShown)&&t.settings.onShown.call(this)},600)},bind:function(){var t=this;if(this.$ele.find('[data-notify="dismiss"]').on("click",function(){t.close()}),this.$ele.mouseover(function(t){e(this).data("data-hover","true")}).mouseout(function(t){e(this).data("data-hover","false")}),this.$ele.data("data-hover","false"),this.settings.delay>0){t.$ele.data("notify-delay",t.settings.delay);var n=setInterval(function(){var e=parseInt(t.$ele.data("notify-delay"))-t.settings.timer;if("false"===t.$ele.data("data-hover")&&"pause"==t.settings.mouse_over||"pause"!=t.settings.mouse_over){var o=(t.settings.delay-e)/t.settings.delay*100;t.$ele.data("notify-delay",e),t.$ele.find('[data-notify="progressbar"] > div').attr("aria-valuenow",o).css("width",o+"%")}e<=-t.settings.timer&&(clearInterval(n),t.close())},t.settings.timer)}},close:function(){var t=this,n=parseInt(this.$ele.css(this.settings.placement.from)),o=!1;this.$ele.data("closing","true").addClass(this.settings.animate.exit),t.reposition(n),e.isFunction(t.settings.onClose)&&t.settings.onClose.call(this.$ele),this.$ele.one(this.animations.start,function(e){o=!0}).one(this.animations.end,function(n){e(this).remove(),e.isFunction(t.settings.onClosed)&&t.settings.onClosed.call(this)}),setTimeout(function(){o||(t.$ele.remove(),t.settings.onClosed&&t.settings.onClosed(t.$ele))},600)},reposition:function(t){var n=this,o='[data-notify-position="'+this.settings.placement.from+"-"+this.settings.placement.align+'"]:not([data-closing="true"])',i=this.$ele.nextAll(o);1==this.settings.newest_on_top&&(i=this.$ele.prevAll(o)),i.each(function(){e(this).css(n.settings.placement.from,t),t=parseInt(t)+parseInt(n.settings.spacing)+e(this).outerHeight()})}}),e.notify=function(e,n){return new t(this,e,n).notify},e.notifyDefaults=function(t){return n=e.extend(!0,{},n,t)},e.notifyClose=function(t){void 0===t||"all"==t?e("[data-notify]").find('[data-notify="dismiss"]').trigger("click"):e('[data-notify-position="'+t+'"]').find('[data-notify="dismiss"]').trigger("click")}}),function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(o,i,function(t){return e[t]}.bind(null,i));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=15)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.data=t,this.text=n.text||t,this.options=n}},function(e,t,n){"use strict";var o;function i(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(t,"__esModule",{value:!0});var r=t.SET_A=0,s=t.SET_B=1,a=t.SET_C=2,l=(t.SHIFT=98,t.START_A=103),u=t.START_B=104,c=t.START_C=105;t.MODULO=103,t.STOP=106,t.FNC1=207,t.SET_BY_CODE=(i(o={},l,r),i(o,u,s),i(o,c,a),o),t.SWAP={101:r,100:s,99:a},t.A_START_CHAR=String.fromCharCode(208),t.B_START_CHAR=String.fromCharCode(209),t.C_START_CHAR=String.fromCharCode(210),t.A_CHARS="[\0-_È-Ï]",t.B_CHARS="[ -È-Ï]",t.C_CHARS="(Ï*[0-9]{2}Ï*)",t.BARS=[11011001100,11001101100,11001100110,10010011e3,10010001100,10001001100,10011001e3,10011000100,10001100100,11001001e3,11001000100,11000100100,10110011100,10011011100,10011001110,10111001100,10011101100,10011100110,11001110010,11001011100,11001001110,11011100100,11001110100,11101101110,11101001100,11100101100,11100100110,11101100100,11100110100,11100110010,11011011e3,11011000110,11000110110,10100011e3,10001011e3,10001000110,10110001e3,10001101e3,10001100010,11010001e3,11000101e3,11000100010,10110111e3,10110001110,10001101110,10111011e3,10111000110,10001110110,11101110110,11010001110,11000101110,11011101e3,11011100010,11011101110,11101011e3,11101000110,11100010110,11101101e3,11101100010,11100011010,11101111010,11001000010,11110001010,1010011e4,10100001100,1001011e4,10010000110,10000101100,10000100110,1011001e4,10110000100,1001101e4,10011000010,10000110100,10000110010,11000010010,1100101e4,11110111010,11000010100,10001111010,10100111100,10010111100,10010011110,10111100100,10011110100,10011110010,11110100100,11110010100,11110010010,11011011110,11011110110,11110110110,10101111e3,10100011110,10001011110,10111101e3,10111100010,11110101e3,11110100010,10111011110,10111101110,11101011110,11110101110,11010000100,1101001e4,11010011100,1100011101011]},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SIDE_BIN="101",t.MIDDLE_BIN="01010",t.BINARIES={L:["0001101","0011001","0010011","0111101","0100011","0110001","0101111","0111011","0110111","0001011"],G:["0100111","0110011","0011011","0100001","0011101","0111001","0000101","0010001","0001001","0010111"],R:["1110010","1100110","1101100","1000010","1011100","1001110","1010000","1000100","1001000","1110100"],O:["0001101","0011001","0010011","0111101","0100011","0110001","0101111","0111011","0110111","0001011"],E:["0100111","0110011","0011011","0100001","0011101","0111001","0000101","0010001","0001001","0010111"]},t.EAN2_STRUCTURE=["LL","LG","GL","GG"],t.EAN5_STRUCTURE=["GGLLL","GLGLL","GLLGL","GLLLG","LGGLL","LLGGL","LLLGG","LGLGL","LGLLG","LLGLG"],t.EAN13_STRUCTURE=["LLLLLL","LLGLGG","LLGGLG","LLGGGL","LGLLGG","LGGLLG","LGGGLL","LGLGLG","LGLGGL","LGGLGL"]},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=n(2);t.default=function(e,t,n){var i=e.split("").map(function(e,n){return o.BINARIES[t[n]]}).map(function(t,n){return t?t[e[n]]:""});if(n){var r=e.length-1;i=i.map(function(e,t){return t=200){r=e.shift()-105;var a=s.SWAP[r];void 0!==a?i=t.next(e,n+1,a):(o!==s.SET_A&&o!==s.SET_B||r!==s.SHIFT||(e[0]=o===s.SET_A?e[0]>95?e[0]-96:e[0]:e[0]<32?e[0]+96:e[0]),i=t.next(e,n+1,o))}else r=t.correctIndex(e,o),i=t.next(e,n+1,o);var l=r*n;return{result:t.getBar(r)+i.result,checksum:l+i.checksum}}}]),t}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.mod10=function(e){for(var t=0,n=0;n10*n.width?10*n.width:n.fontSize,o.guardHeight=n.height+o.fontSize/2+n.textMargin,o}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,s(n(0)).default),o(t,[{key:"encode",value:function(){return this.options.flat?this.encodeFlat():this.encodeGuarded()}},{key:"leftText",value:function(e,t){return this.text.substr(e,t)}},{key:"leftEncode",value:function(e,t){return(0,r.default)(e,t)}},{key:"rightText",value:function(e,t){return this.text.substr(e,t)}},{key:"rightEncode",value:function(e,t){return(0,r.default)(e,t)}},{key:"encodeGuarded",value:function(){var e={fontSize:this.fontSize},t={height:this.guardHeight};return[{data:i.SIDE_BIN,options:t},{data:this.leftEncode(),text:this.leftText(),options:e},{data:i.MIDDLE_BIN,options:t},{data:this.rightEncode(),text:this.rightText(),options:e},{data:i.SIDE_BIN,options:t}]}},{key:"encodeFlat",value:function(){return{data:[i.SIDE_BIN,this.leftEncode(),i.MIDDLE_BIN,this.rightEncode(),i.SIDE_BIN].join(""),text:this.text}}}]),t}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n10*n.width?o.fontSize=10*n.width:o.fontSize=n.fontSize,o.guardHeight=n.height+o.fontSize/2+n.textMargin,o}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r(n(0)).default),o(t,[{key:"valid",value:function(){return-1!==this.data.search(/^[0-9]{12}$/)&&this.data[11]==a(this.data)}},{key:"encode",value:function(){return this.options.flat?this.flatEncoding():this.guardedEncoding()}},{key:"flatEncoding",value:function(){var e="";return e+="101",e+=(0,i.default)(this.data.substr(0,6),"LLLLLL"),e+="01010",e+=(0,i.default)(this.data.substr(6,6),"RRRRRR"),{data:e+="101",text:this.text}}},{key:"guardedEncoding",value:function(){var e=[];return this.displayValue&&e.push({data:"00000000",text:this.text.substr(0,1),options:{textAlign:"left",fontSize:this.fontSize}}),e.push({data:"101"+(0,i.default)(this.data[0],"L"),options:{height:this.guardHeight}}),e.push({data:(0,i.default)(this.data.substr(1,5),"LLLLL"),text:this.text.substr(1,5),options:{fontSize:this.fontSize}}),e.push({data:"01010",options:{height:this.guardHeight}}),e.push({data:(0,i.default)(this.data.substr(6,5),"RRRRR"),text:this.text.substr(6,5),options:{fontSize:this.fontSize}}),e.push({data:(0,i.default)(this.data[11],"R")+"101",options:{height:this.guardHeight}}),this.displayValue&&e.push({data:"00000000",text:this.text.substr(11,1),options:{textAlign:"right",fontSize:this.fontSize}}),e}}]),t}();function a(e){var t,n=0;for(t=1;t<11;t+=2)n+=parseInt(e[t]);for(t=0;t<11;t+=2)n+=3*parseInt(e[t]);return(10-n%10)%10}t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o,i=function(){function e(e,t){for(var n=0;n0?t.fontSize+t.textMargin:0)+t.marginTop+t.marginBottom}function s(e,t,n){if(n.displayValue&&tt&&(t=e[n].height);return t},t.getEncodingHeight=r,t.getBarcodePadding=s,t.calculateEncodingAttributes=function(e,t,n){for(var o=0;o=r(e);return t+String.fromCharCode(o?206:205)+a(e,o)}t.default=function(e){var t=void 0;if(s(e).length>=2)t=o.C_START_CHAR+l(e);else{var n=i(e)>r(e);t=(n?o.A_START_CHAR:o.B_START_CHAR)+a(e,n)}return t.replace(/[\xCD\xCE]([^])[\xCD\xCE]/,function(e,t){return String.fromCharCode(203)+t})}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o,i=function(){function e(e,t){for(var n=0;n10*n.width?o.fontSize=10*n.width:o.fontSize=n.fontSize,o.guardHeight=n.height+o.fontSize/2+n.textMargin,o}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),o(t,[{key:"valid",value:function(){return this.isValid}},{key:"encode",value:function(){return this.options.flat?this.flatEncoding():this.guardedEncoding()}},{key:"flatEncoding",value:function(){var e="";return e+="101",e+=this.encodeMiddleDigits(),{data:e+="010101",text:this.text}}},{key:"guardedEncoding",value:function(){var e=[];return this.displayValue&&e.push({data:"00000000",text:this.text[0],options:{textAlign:"left",fontSize:this.fontSize}}),e.push({data:"101",options:{height:this.guardHeight}}),e.push({data:this.encodeMiddleDigits(),text:this.text.substring(1,7),options:{fontSize:this.fontSize}}),e.push({data:"010101",options:{height:this.guardHeight}}),this.displayValue&&e.push({data:"00000000",text:this.text[7],options:{textAlign:"right",fontSize:this.fontSize}}),e}},{key:"encodeMiddleDigits",value:function(){var e=this.upcA[0],t=this.upcA[this.upcA.length-1],n=c[parseInt(t)][parseInt(e)];return(0,i.default)(this.middleDigits,n)}}]),t}();function f(e,t){for(var n=parseInt(e[e.length-1]),o=u[n],i="",r=0,a=0;a=3&&this.number<=131070}}]),t}();t.pharmacode=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.codabar=void 0;var o,i=function(){function e(e,t){for(var n=0;n0?(n=0,i.textAlign="left"):"right"==e.textAlign?(n=t.width-1,i.textAlign="right"):(n=t.width/2,i.textAlign="center"),i.fillText(t.text,n,o))}},{key:"moveCanvasDrawing",value:function(e){this.canvas.getContext("2d").translate(e.width,0)}},{key:"restoreCanvas",value:function(){this.canvas.getContext("2d").restore()}}]),e}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o,i=function(){function e(e,t){for(var n=0;n0&&(this.drawRect(s-t.width*r,o,t.width*r,t.height,e),r=0);r>0&&this.drawRect(s-t.width*(r-1),o,t.width*r,t.height,e)}},{key:"drawSVGText",value:function(e,t,n){var o,i,r=this.document.createElementNS(a,"text");t.displayValue&&(r.setAttribute("style","font:"+t.fontOptions+" "+t.fontSize+"px "+t.font),i="top"==t.textPosition?t.fontSize-t.textMargin:t.height+t.textMargin+t.fontSize,"left"==t.textAlign||n.barcodePadding>0?(o=0,r.setAttribute("text-anchor","start")):"right"==t.textAlign?(o=n.width-1,r.setAttribute("text-anchor","end")):(o=n.width/2,r.setAttribute("text-anchor","middle")),r.setAttribute("x",o),r.setAttribute("y",i),r.appendChild(this.document.createTextNode(n.text)),e.appendChild(r))}},{key:"setSvgAttributes",value:function(e,t){var n=this.svg;n.setAttribute("width",e+"px"),n.setAttribute("height",t+"px"),n.setAttribute("x","0px"),n.setAttribute("y","0px"),n.setAttribute("viewBox","0 0 "+e+" "+t),n.setAttribute("xmlns",a),n.setAttribute("version","1.1"),n.setAttribute("style","transform: translate(0,0)")}},{key:"createGroup",value:function(e,t,n){var o=this.document.createElementNS(a,"g");return o.setAttribute("transform","translate("+e+", "+t+")"),n.appendChild(o),o}},{key:"setGroupOptions",value:function(e,t){e.setAttribute("style","fill:"+t.lineColor+";")}},{key:"drawRect",value:function(e,t,n,o,i){var r=this.document.createElementNS(a,"rect");return r.setAttribute("x",e),r.setAttribute("y",t),r.setAttribute("width",n),r.setAttribute("height",o),i.appendChild(r),r}}]),e}();t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;ne.length)return;if(!(_ instanceof l)){if(g&&x!=t.length-1){if(f.lastIndex=y,!(k=f.exec(e)))break;for(var F=k.index+(p?k[1].length:0),w=k.index+k[0].length,E=x,C=y,A=t.length;E"+r.content+""},!_self.document)return _self.addEventListener&&(n.disableWorkerMessageHandler||_self.addEventListener("message",function(e){var t=JSON.parse(e.data),o=t.language,i=t.code,r=t.immediateClose;_self.postMessage(n.highlight(i,n.languages[o],o)),r&&_self.close()},!1)),_self.Prism;var i=document.currentScript||[].slice.call(document.getElementsByTagName("script")).pop();return i&&(n.filename=i.src,n.manual||i.hasAttribute("data-manual")||("loading"!==document.readyState?window.requestAnimationFrame?window.requestAnimationFrame(n.highlightAll):window.setTimeout(n.highlightAll,16):document.addEventListener("DOMContentLoaded",n.highlightAll))),_self.Prism}();"undefined"!=typeof module&&module.exports&&(module.exports=Prism),"undefined"!=typeof global&&(global.Prism=Prism),Prism.languages.markup={comment://,prolog:/<\?[\s\S]+?\?>/,doctype://i,cdata://i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/i,inside:{punctuation:[/^=/,{pattern:/(^|[^\\])["']/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.hooks.add("wrap",function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))}),Prism.languages.xml=Prism.languages.markup,Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup,Prism.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-]+?.*?(?:;|(?=\s*\{))/i,inside:{rule:/@[\w-]+/}},url:/url\((?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|.*?)\)/i,selector:/[^{}\s][^{};]*?(?=\s*\{)/,string:{pattern:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},property:/[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i,important:/\B!important\b/i,function:/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:]/},Prism.languages.css.atrule.inside.rest=Prism.languages.css,Prism.languages.markup&&(Prism.languages.insertBefore("markup","tag",{style:{pattern:/()[\s\S]*?(?=<\/style>)/i,lookbehind:!0,inside:Prism.languages.css,alias:"language-css",greedy:!0}}),Prism.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:Prism.languages.markup.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:Prism.languages.css}},alias:"language-css"}},Prism.languages.markup.tag)),Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/[a-z0-9_]+(?=\()/i,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/},Prism.languages.javascript=Prism.languages.extend("clike",{keyword:/\b(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/,number:/\b(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+|NaN|Infinity)\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/,function:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*\()/i,operator:/-[-=]?|\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/}),Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[[^\]\r\n]+]|\\.|[^/\\\[\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})\]]))/,lookbehind:!0,greedy:!0},"function-variable":{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=\s*(?:function\b|(?:\([^()]*\)|[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/i,alias:"function"},constant:/\b[A-Z][A-Z\d_]*\b/}),Prism.languages.insertBefore("javascript","string",{"template-string":{pattern:/`(?:\\[\s\S]|\${[^}]+}|[^\\`])*`/,greedy:!0,inside:{interpolation:{pattern:/\${[^}]+}/,inside:{"interpolation-punctuation":{pattern:/^\${|}$/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}}}),Prism.languages.javascript["template-string"].inside.interpolation.inside.rest=Prism.languages.javascript,Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{script:{pattern:/()[\s\S]*?(?=<\/script>)/i,lookbehind:!0,inside:Prism.languages.javascript,alias:"language-javascript",greedy:!0}}),Prism.languages.js=Prism.languages.javascript,"undefined"!=typeof self&&self.Prism&&self.document&&document.querySelector&&(self.Prism.fileHighlight=function(){var e={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"};Array.prototype.slice.call(document.querySelectorAll("pre[data-src]")).forEach(function(t){for(var n,o=t.getAttribute("data-src"),i=t,r=/\blang(?:uage)?-([\w-]+)\b/i;i&&!r.test(i.className);)i=i.parentNode;if(i&&(n=(t.className.match(r)||[,""])[1]),!n){var s=(o.match(/\.(\w+)$/)||[,""])[1];n=e[s]||s}var a=document.createElement("code");a.className="language-"+n,t.textContent="",a.textContent="Loading…",t.appendChild(a);var l=new XMLHttpRequest;l.open("GET",o,!0),l.onreadystatechange=function(){4==l.readyState&&(l.status<400&&l.responseText?(a.textContent=l.responseText,Prism.highlightElement(a)):400<=l.status?a.textContent="✖ Error "+l.status+" while fetching file: "+l.statusText:a.textContent="✖ Error: File does not exist or is empty")},l.send(null)}),Prism.plugins.toolbar&&Prism.plugins.toolbar.registerButton("download-file",function(e){var t=e.element.parentNode;if(t&&/pre/i.test(t.nodeName)&&t.hasAttribute("data-src")&&t.hasAttribute("data-download-link")){var n=t.getAttribute("data-src"),o=document.createElement("a");return o.textContent=t.getAttribute("data-download-link-label")||"Download",o.setAttribute("download",""),o.href=n,o}})},document.addEventListener("DOMContentLoaded",self.Prism.fileHighlight)),function(e){"use strict";function t(e,t){e.className+=" "+t}function n(e,t){for(var n=e.className.split(" "),o=t.split(" "),i=0;i-1&&n.splice(r,1)}e.className=n.join(" ")}function o(){return"rtl"===e.getComputedStyle(document.body).direction}function i(){return document.documentElement&&document.documentElement.scrollTop||document.body.scrollTop}function r(){return document.documentElement&&document.documentElement.scrollLeft||document.body.scrollLeft}function s(e){for(;e.lastChild;)e.removeChild(e.lastChild)}function a(e){if(null===e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n0){for(var n=[],o=0;o=0?(n(document.body,Fe.noOverflow),k(!1)):e>0&&document.body.className.indexOf(Fe.noOverflow)<0&&(k(!0),t(document.body,Fe.noOverflow))}function k(o){T.defaults.preventBodyShift&&(o&&document.documentElement.scrollHeight>document.documentElement.clientHeight?(Ee=be,we=e.getComputedStyle(document.body).top,t(document.body,Fe.fixed),document.body.style.top=-be+"px"):o||(be=Ee,document.body.style.top=we,n(document.body,Fe.fixed),F()))}function O(e,t){for(var n=y.indexOf(t)+1;n200&&(Ae=e.timeStamp)&&!Ce){var n=e.srcElement||e.target;!0===t.get("closableByDimmer")&&n===t.elements.modal&&j(t)}Ce=!1}function $(e,t){if(Date.now()-ke>200&&(ke=Date.now()))for(var n=0;n-1?($(t,function(e){return e.key===n}),!1):void 0}Te=!1}function U(e){var t=y[y.length-1],n=e.keyCode;if(n===m||n===b){for(var o=t.__internal.buttons,i=0;ip-1&&ve.indexOf(n)>-1)return e.preventDefault(),e.stopPropagation(),$(t,function(e){return e.key===n}),!1}function G(e,t){if(t)t.focus();else{var n=e.__internal.focus,o=n.element;switch(typeof n.element){case"number":e.__internal.buttons.length>n.element&&(o=!0===e.get("basic")?e.elements.reset[0]:e.__internal.buttons[n.element].element);break;case"string":o=e.elements.body.querySelector(n.element);break;case"function":o=n.element.call(e)}!0!==e.get("defaultFocusOff")&&(null!=o||0!==e.__internal.buttons.length)||(o=e.elements.reset[0]),o&&o.focus&&(o.focus(),n.select&&o.select&&o.select())}}function X(e,t){if(!t)for(var n=y.length-1;n>-1;n-=1)if(y[n].isModal()){t=y[n];break}if(t&&t.isModal()){var o,i=t.elements.reset[0],r=t.elements.reset[1],s=e.relatedTarget,a=t.elements.root.contains(s),l=e.srcElement||e.target;if(l===i&&!a||l===r&&s===i)return;l===r||l===document.body?o=i:l===i&&s===r?o=V(t):l===i&&a&&(o=V(t,!0)),G(t,o)}}function V(e,t){var n=[].slice.call(e.elements.dialog.querySelectorAll(x.tabbable));t&&n.reverse();for(var o=0;oRe?t.style.left=Ie+c+"px":t.offsetWidth>=He&&(t.style.left=Ie-c+"px")}}(t,Me.elements.dialog,!Me.get("modal")&&!Me.get("pinned")))}function se(){if(Me){var e=Me;Me=null,n(document.body,Fe.noSelection),n(e.elements.dialog,Fe.capture),Ce=!0,d("onresized",e)}}function ae(e){Me=null;var t=e.elements.dialog;"none"===t.style.maxWidth&&(t.style.maxWidth=t.style.minWidth=t.style.width=t.style.height=t.style.minHeight=t.style.left="",Ie=Number.Nan,Re=He=ze=0)}function le(){for(var e=0;e-1&&e.navigator.userAgent.indexOf("Chrome")<0,_e={dimmer:'
',modal:'
',dialog:'
',reset:'',commands:'
',header:'
',body:'
',content:'
',footer:'',buttons:{primary:'
',auxiliary:'
'},button:'',resizeHandle:'
'},Fe={animationIn:"ajs-in",animationOut:"ajs-out",base:"alertify",basic:"ajs-basic",capture:"ajs-capture",closable:"ajs-closable",fixed:"ajs-fixed",frameless:"ajs-frameless",hidden:"ajs-hidden",maximize:"ajs-maximize",maximized:"ajs-maximized",maximizable:"ajs-maximizable",modeless:"ajs-modeless",movable:"ajs-movable",noSelection:"ajs-no-selection",noOverflow:"ajs-no-overflow",noPadding:"ajs-no-padding",pin:"ajs-pin",pinnable:"ajs-pinnable",prefix:"ajs-",resizable:"ajs-resizable",restore:"ajs-restore",shake:"ajs-shake",unpinned:"ajs-unpinned",noTransition:"ajs-no-transition"},we="",Ee=0,Ce=!1,Ae=0,ke=0,Te=!1,Oe=null,Se=0,De=0,je="pageX",Le="pageY",Pe=null,Ne=!1,Be=null,Me=null,Ie=Number.Nan,Re=0,He=0,ze=0;return{__init:f,isOpen:function(){return this.__internal.isOpen},isModal:function(){return this.elements.root.className.indexOf(Fe.modeless)<0},isMaximized:function(){return this.elements.root.className.indexOf(Fe.maximized)>-1},isPinned:function(){return this.elements.root.className.indexOf(Fe.unpinned)<0},maximize:function(){return this.isMaximized()||B(this),this},restore:function(){return this.isMaximized()&&M(this),this},pin:function(){return this.isPinned()||P(this),this},unpin:function(){return this.isPinned()&&N(this),this},bringToFront:function(){return O(0,this),this},moveTo:function(e,t){if(!isNaN(e)&&!isNaN(t)){d("onmove",this);var n=this.elements.dialog,i=n,r=0,s=0;n.style.left&&(r-=parseInt(n.style.left,10)),n.style.top&&(s-=parseInt(n.style.top,10));do{r+=i.offsetLeft,s+=i.offsetTop}while(i=i.offsetParent);var a=e-r,l=t-s;o()&&(a*=-1),n.style.left=a+"px",n.style.top=l+"px",d("onmoved",this)}return this},resizeTo:function(e,t){var n=parseFloat(e),o=parseFloat(t),i=/(\d*\.\d+|\d+)%/;if(!isNaN(n)&&!isNaN(o)&&!0===this.get("resizable")){d("onresize",this),(""+e).match(i)&&(n=n/100*document.documentElement.clientWidth),(""+t).match(i)&&(o=o/100*document.documentElement.clientHeight);var r=this.elements.dialog;"none"!==r.style.maxWidth&&(r.style.minWidth=(He=r.offsetWidth)+"px"),r.style.maxWidth="none",r.style.minHeight=this.elements.header.offsetHeight+this.elements.footer.offsetHeight+"px",r.style.width=n+"px",r.style.height=o+"px",d("onresized",this)}return this},setting:function(e,t){var n=this,o=D(this,this.__internal.options,function(e,t,o){S(n,e,t,o)},e,t);if("get"===o.op)return o.found?o.value:void 0!==this.settings?D(this,this.settings,this.settingUpdated||function(){},e,t).value:void 0;if("set"===o.op){if(o.items.length>0)for(var i=this.settingUpdated||function(){},r=0;r0){var t=this;this.__internal.timer=setTimeout(function(){t.dismiss()},1e3*this.__internal.delay)}return this},setContent:function(n){if("string"==typeof n?(s(this.element),this.element.innerHTML=n):n instanceof e.HTMLElement&&this.element.firstChild!==n&&(s(this.element),this.element.appendChild(n)),this.__internal.closeButton){var o=document.createElement("span");t(o,f.close),o.setAttribute("data-close",!0),this.element.appendChild(o)}return this},dismissOthers:function(){return k.dismissAll(this),this}})}var c,d=[],f=x.notifier.classes,h=f.base;return{setting:function(e,t){if(o(this),void 0===t)return this.__internal[e];switch(e){case"position":this.__internal.position=t,a(this);break;case"delay":this.__internal.delay=t}return this},set:function(e,t){return this.setting(e,t),this},get:function(e){return this.setting(e)},create:function(e,t){o(this);var n=document.createElement("div");return n.className=f.message+("string"==typeof e&&""!==e?" "+f.prefix+e:""),l(n,t)},dismissAll:function(e){for(var t=d.slice(0),n=0;n>t?1:0;return n}function h(e,t,n,o,i,r,s){var a=p;a(e,t,n[0],o-2,i-2,r,s),a(e,t,n[1],o-2,i-1,r,s),a(e,t,n[2],o-1,i-2,r,s),a(e,t,n[3],o-1,i-1,r,s),a(e,t,n[4],o-1,i,r,s),a(e,t,n[5],o,i-2,r,s),a(e,t,n[6],o,i-1,r,s),a(e,t,n[7],o,i,r,s)}function p(e,t,n,o,i,r,s){o<0&&(o+=r,i+=4-(r+4)%8),i<0&&(i+=s,o+=4-(s+4)%8),1!==t[o][i]&&(e[o][i]=n,t[o][i]=1)}return function(g,m){var b,v=function(e){var t,n,o=[],i=0;for(t=0;t>=8;return o}function F(e,t,n){return String.fromCharCode(n)+String.fromCharCode(t)+String.fromCharCode(e)}function w(e){var t=parseInt("0x"+e.substr(1),16),n=255&t;return F((t>>=8)>>8,255&t,n)}function E(e){return e.match(/#[0-91-F]/gi)}function C(e){for(var t,n,o,i,r,s,a,l="",u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",c=0;c>2,r=(3&t)<<4|(n=e.charCodeAt(c++))>>4,s=(15&n)<<2|(o=e.charCodeAt(c++))>>6,a=63&o,isNaN(n)?s=a=64:isNaN(o)&&(a=64),l+=u.charAt(i)+u.charAt(r)+u.charAt(s)+u.charAt(a);return l}function A(e){var t,n=[];for(n[0]=[],t=0;t',p='
';for(a=0;a'+o+""),k(e,i*d).html(f)}function S(e,t,n,o,i,r){var s,a,l,u,c,d,f,h,p=n.length,g=n[0].length,m=i*g,b=r*p;for(t.showHRI&&(l=y(t.fontSize),b+=y(t.marginHRI)+l),u='',u+='',c='',a=0;a',u+=''+o+"",u+=""),u+="",(h=document.createElement("img")).setAttribute("src","data:image/svg+xml;base64,"+C(u)),k(e,m).append(h)}function D(e,t,n,o,i,r,s,a){var l,u,c,d,f,h,p=e.get(0),g=n.length,m=n[0].length;if(p&&p.getContext){for((c=p.getContext("2d")).lineWidth=1,c.lineCap="butt",c.fillStyle=t.bgColor,c.fillRect(i,r,m*s,g*a),c.fillStyle=t.color,u=0;u?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",a=0,l=0,u=0;for(t=0;te||this.moduleCount<=e||0>t||this.moduleCount<=t)throw Error(e+","+t);return this.modules[e][t]},getModuleCount:function(){return this.moduleCount},make:function(){if(1>this.typeNumber){var e=1;for(e=1;40>e;e++){for(var t=s.getRSBlocks(e,this.errorCorrectLevel),n=new a,o=0,i=0;i=n;n++)if(!(-1>=e+n||this.moduleCount<=e+n))for(var o=-1;7>=o;o++)-1>=t+o||this.moduleCount<=t+o||(this.modules[e+n][t+o]=0<=n&&6>=n&&(0==o||6==o)||0<=o&&6>=o&&(0==n||6==n)||2<=n&&4>=n&&2<=o&&4>=o)},getBestMaskPattern:function(){for(var e=0,t=0,n=0;8>n;n++){this.makeImpl(!0,n);var o=l.getLostPoint(this);(0==n||e>o)&&(e=o,t=n)}return t},createMovieClip:function(e,t,n){for(e=e.createEmptyMovieClip(t,n),this.make(),t=0;t=r;r++)for(var s=-2;2>=s;s++)this.modules[o+r][i+s]=-2==r||2==r||-2==s||2==s||0==r&&0==s}},setupTypeNumber:function(e){for(var t=l.getBCHTypeNumber(this.typeNumber),n=0;18>n;n++){var o=!e&&1==(t>>n&1);this.modules[Math.floor(n/3)][n%3+this.moduleCount-8-3]=o}for(n=0;18>n;n++)o=!e&&1==(t>>n&1),this.modules[n%3+this.moduleCount-8-3][Math.floor(n/3)]=o},setupTypeInfo:function(e,t){for(var n=l.getBCHTypeInfo(this.errorCorrectLevel<<3|t),o=0;15>o;o++){var i=!e&&1==(n>>o&1);6>o?this.modules[o][8]=i:8>o?this.modules[o+1][8]=i:this.modules[this.moduleCount-15+o][8]=i}for(o=0;15>o;o++)i=!e&&1==(n>>o&1),8>o?this.modules[8][this.moduleCount-o-1]=i:9>o?this.modules[8][15-o-1+1]=i:this.modules[8][15-o-1]=i;this.modules[this.moduleCount-8][8]=!e},mapData:function(e,t){for(var n=-1,o=this.moduleCount-1,i=7,r=0,s=this.moduleCount-1;0a;a++)if(null==this.modules[o][s-a]){var u=!1;r>>i&1)),l.getMask(t,o,s-a)&&(u=!u),this.modules[o][s-a]=u,-1==--i&&(r++,i=7)}if(0>(o+=n)||this.moduleCount<=o){o-=n,n=-n;break}}}},i.PAD0=236,i.PAD1=17,i.createData=function(e,t,n){t=s.getRSBlocks(e,t);for(var o=new a,r=0;r8*e)throw Error("code length overflow. ("+o.getLengthInBits()+">"+8*e+")");for(o.getLengthInBits()+4<=8*e&&o.put(0,4);0!=o.getLengthInBits()%8;)o.putBit(!1);for(;!(o.getLengthInBits()>=8*e||(o.put(i.PAD0,8),o.getLengthInBits()>=8*e));)o.put(i.PAD1,8);return i.createBytes(o,t)},i.createBytes=function(e,t){for(var n=0,o=0,i=0,s=Array(t.length),a=Array(t.length),u=0;u>>=1;return t},getPatternPosition:function(e){return l.PATTERN_POSITION_TABLE[e-1]},getMask:function(e,t,n){switch(e){case 0:return 0==(t+n)%2;case 1:return 0==t%2;case 2:return 0==n%3;case 3:return 0==(t+n)%3;case 4:return 0==(Math.floor(t/2)+Math.floor(n/3))%2;case 5:return 0==t*n%2+t*n%3;case 6:return 0==(t*n%2+t*n%3)%2;case 7:return 0==(t*n%3+(t+n)%2)%2;default:throw Error("bad maskPattern:"+e)}},getErrorCorrectPolynomial:function(e){for(var t=new r([1],0),n=0;nt)switch(e){case 1:return 10;case 2:return 9;case n:case 8:return 8;default:throw Error("mode:"+e)}else if(27>t)switch(e){case 1:return 12;case 2:return 11;case n:return 16;case 8:return 10;default:throw Error("mode:"+e)}else{if(!(41>t))throw Error("type:"+t);switch(e){case 1:return 14;case 2:return 13;case n:return 16;case 8:return 12;default:throw Error("mode:"+e)}}},getLostPoint:function(e){for(var t=e.getModuleCount(),n=0,o=0;o=a;a++)if(!(0>o+a||t<=o+a))for(var l=-1;1>=l;l++)0>i+l||t<=i+l||0==a&&0==l||s==e.isDark(o+a,i+l)&&r++;5e)throw Error("glog("+e+")");return u.LOG_TABLE[e]},gexp:function(e){for(;0>e;)e+=255;for(;256<=e;)e-=255;return u.EXP_TABLE[e]},EXP_TABLE:Array(256),LOG_TABLE:Array(256)},c=0;8>c;c++)u.EXP_TABLE[c]=1<c;c++)u.EXP_TABLE[c]=u.EXP_TABLE[c-4]^u.EXP_TABLE[c-5]^u.EXP_TABLE[c-6]^u.EXP_TABLE[c-8];for(c=0;255>c;c++)u.LOG_TABLE[u.EXP_TABLE[c]]=c;return r.prototype={get:function(e){return this.num[e]},getLength:function(){return this.num.length},multiply:function(e){for(var t=Array(this.getLength()+e.getLength()-1),n=0;nthis.getLength()-e.getLength())return this;for(var t=u.glog(this.get(0))-u.glog(e.get(0)),n=Array(this.getLength()),o=0;o>>7-e%8&1)},put:function(e,t){for(var n=0;n>>t-n-1&1))},getLengthInBits:function(){return this.length},putBit:function(e){var t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}},"string"==typeof t&&(t={text:t}),t=e.extend({},{render:"canvas",width:256,height:256,typeNumber:-1,correctLevel:2,background:"#ffffff",foreground:"#000000"},t),this.each(function(){var n;if("canvas"==t.render){(n=new i(t.typeNumber,t.correctLevel)).addData(t.text),n.make();var o=document.createElement("canvas");o.width=t.width,o.height=t.height;for(var r=o.getContext("2d"),s=t.width/n.getModuleCount(),a=t.height/n.getModuleCount(),l=0;l").css("width",t.width+"px").css("height",t.height+"px").css("border","0px").css("border-collapse","collapse").css("background-color",t.background),r=t.width/n.getModuleCount(),s=t.height/n.getModuleCount(),a=0;a").css("height",s+"px").appendTo(o),u=0;u").css("width",r+"px").css("background-color",n.isDark(a,u)?t.foreground:t.background).appendTo(l);n=o,jQuery(n).appendTo(this)})}}(jQuery),function(){"use strict";var e="undefined"!=typeof window&&void 0!==window.document?window.document:{},t="undefined"!=typeof module&&module.exports,n=function(){for(var t,n=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],o=0,i=n.length,r={};o",{class:n+"box "+n+"editor-visible "+n+e.o.lang+" trumbowyg"}),e.isTextarea=e.$ta.is("textarea"),e.isTextarea?(i=e.$ta.val(),e.$ed=o("
"),e.$box.insertAfter(e.$ta).append(e.$ed,e.$ta)):(e.$ed=e.$ta,i=e.$ed.html(),e.$ta=o("",h.noCloneChecked=!!ve.cloneNode(!0).lastChild.defaultValue,ve.innerHTML="",h.option=!!ve.lastChild;var Ce={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function Ee(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&C(e,t)?F.merge([e],n):n}function Ae(e,t){for(var n=0,i=e.length;n",""]);var ke=/<|&#?\w+;/;function Te(e,t,n,i,o){for(var r,s,a,l,u,c,d=t.createDocumentFragment(),f=[],h=0,p=e.length;h\s*$/g;function Me(e,t){return C(e,"table")&&C(11!==t.nodeType?t:t.firstChild,"tr")&&F(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function He(e,t){var n,i,o,r,s,a;if(1===t.nodeType){if(oe.hasData(e)&&(a=oe.get(e).events))for(o in oe.remove(t,"handle events"),a)for(n=0,i=a[o].length;n").attr(e.scriptAttrs||{}).prop({charset:e.scriptCharset,src:e.url}).on("load error",n=function(e){t.remove(),n=null,e&&o("error"===e.type?404:200,e.type)}),m.head.appendChild(t[0])},abort:function(){n&&n()}}});var Yt,Jt=[],Zt=/(=)\?(?=&|$)|\?\?/;F.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Jt.pop()||F.expando+"_"+kt.guid++;return this[e]=!0,e}}),F.ajaxPrefilter("json jsonp",function(t,n,i){var o,r,s,a=!1!==t.jsonp&&(Zt.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(t.data)&&"data");if(a||"jsonp"===t.dataTypes[0])return o=t.jsonpCallback=p(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,a?t[a]=t[a].replace(Zt,"$1"+o):!1!==t.jsonp&&(t.url+=(Tt.test(t.url)?"&":"?")+t.jsonp+"="+o),t.converters["script json"]=function(){return s||F.error(o+" was not called"),s[0]},t.dataTypes[0]="json",r=e[o],e[o]=function(){s=arguments},i.always(function(){void 0===r?F(e).removeProp(o):e[o]=r,t[o]&&(t.jsonpCallback=n.jsonpCallback,Jt.push(o)),s&&p(r)&&r(s[0]),s=r=void 0}),"script"}),h.createHTMLDocument=((Yt=m.implementation.createHTMLDocument("").body).innerHTML="
",2===Yt.childNodes.length),F.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(h.createHTMLDocument?((i=(t=m.implementation.createHTMLDocument("")).createElement("base")).href=m.location.href,t.head.appendChild(i)):t=m),r=!n&&[],(o=M.exec(e))?[t.createElement(o[1])]:(o=Te([e],t,r),r&&r.length&&F(r).remove(),F.merge([],o.childNodes)));var i,o,r},F.fn.load=function(e,t,n){var i,o,r,s=this,a=e.indexOf(" ");return-1").append(F.parseHTML(e)).find(i):e)}).always(n&&function(e,t){s.each(function(){n.apply(this,r||[e.responseText,t,e])})}),this},F.expr.pseudos.animated=function(e){return F.grep(F.timers,function(t){return e===t.elem}).length},F.offset={setOffset:function(e,t,n){var i,o,r,s,a,l,u=F.css(e,"position"),c=F(e),d={};"static"===u&&(e.style.position="relative"),a=c.offset(),r=F.css(e,"top"),l=F.css(e,"left"),("absolute"===u||"fixed"===u)&&-1<(r+l).indexOf("auto")?(s=(i=c.position()).top,o=i.left):(s=parseFloat(r)||0,o=parseFloat(l)||0),p(t)&&(t=t.call(e,n,F.extend({},a))),null!=t.top&&(d.top=t.top-a.top+s),null!=t.left&&(d.left=t.left-a.left+o),"using"in t?t.using.call(e,d):c.css(d)}},F.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){F.offset.setOffset(this,e,t)});var t,n,i=this[0];return i?i.getClientRects().length?(t=i.getBoundingClientRect(),n=i.ownerDocument.defaultView,{top:t.top+n.pageYOffset,left:t.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,i=this[0],o={top:0,left:0};if("fixed"===F.css(i,"position"))t=i.getBoundingClientRect();else{for(t=this.offset(),n=i.ownerDocument,e=i.offsetParent||n.documentElement;e&&(e===n.body||e===n.documentElement)&&"static"===F.css(e,"position");)e=e.parentNode;e&&e!==i&&1===e.nodeType&&((o=F(e).offset()).top+=F.css(e,"borderTopWidth",!0),o.left+=F.css(e,"borderLeftWidth",!0))}return{top:t.top-o.top-F.css(i,"marginTop",!0),left:t.left-o.left-F.css(i,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&"static"===F.css(e,"position");)e=e.offsetParent;return e||fe})}}),F.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n="pageYOffset"===t;F.fn[e]=function(i){return Y(this,function(e,i,o){var r;if(g(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===o)return r?r[t]:e[i];r?r.scrollTo(n?r.pageXOffset:o,n?o:r.pageYOffset):e[i]=o},e,i,arguments.length)}}),F.each(["top","left"],function(e,t){F.cssHooks[t]=Ke(h.pixelPosition,function(e,n){if(n)return n=Ve(e,t),qe.test(n)?F(e).position()[t]+"px":n})}),F.each({Height:"height",Width:"width"},function(e,t){F.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,i){F.fn[i]=function(o,r){var s=arguments.length&&(n||"boolean"!=typeof o),a=n||(!0===o||!0===r?"margin":"border");return Y(this,function(t,n,o){var r;return g(t)?0===i.indexOf("outer")?t["inner"+e]:t.document.documentElement["client"+e]:9===t.nodeType?(r=t.documentElement,Math.max(t.body["scroll"+e],r["scroll"+e],t.body["offset"+e],r["offset"+e],r["client"+e])):void 0===o?F.css(t,n,a):F.style(t,n,o,a)},t,s?o:void 0,s)}})}),F.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){F.fn[t]=function(e){return this.on(t,e)}}),F.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,i){return this.on(t,e,n,i)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.on("mouseenter",e).on("mouseleave",t||e)}}),F.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){F.fn[t]=function(e,n){return 0e[n]})}return t.default=e,Object.freeze(t)}(e),n=new Map,i={set(e,t,i){n.has(e)||n.set(e,new Map);const o=n.get(e);o.has(t)||0===o.size?o.set(t,i):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(o.keys())[0]}.`)},get:(e,t)=>n.has(e)&&n.get(e).get(t)||null,remove(e,t){if(!n.has(e))return;const i=n.get(e);i.delete(t),0===i.size&&n.delete(e)}},o="transitionend",r=e=>(e&&window.CSS&&window.CSS.escape&&(e=e.replace(/#([^\s"#']+)/g,(e,t)=>"#"+CSS.escape(t))),e),s=e=>{e.dispatchEvent(new Event(o))},a=e=>!(!e||"object"!=typeof e)&&(void 0!==e.jquery&&(e=e[0]),void 0!==e.nodeType),l=e=>a(e)?e.jquery?e[0]:e:"string"==typeof e&&e.length>0?document.querySelector(r(e)):null,u=e=>{if(!a(e)||0===e.getClientRects().length)return!1;const t="visible"===getComputedStyle(e).getPropertyValue("visibility"),n=e.closest("details:not([open])");if(!n)return t;if(n!==e){const t=e.closest("summary");if(t&&t.parentNode!==n)return!1;if(null===t)return!1}return t},c=e=>!e||e.nodeType!==Node.ELEMENT_NODE||!!e.classList.contains("disabled")||(void 0!==e.disabled?e.disabled:e.hasAttribute("disabled")&&"false"!==e.getAttribute("disabled")),d=e=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){const t=e.getRootNode();return t instanceof ShadowRoot?t:null}return e instanceof ShadowRoot?e:e.parentNode?d(e.parentNode):null},f=()=>{},h=e=>{e.offsetHeight},p=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,g=[],m=()=>"rtl"===document.documentElement.dir,b=e=>{var t;t=(()=>{const t=p();if(t){const n=e.NAME,i=t.fn[n];t.fn[n]=e.jQueryInterface,t.fn[n].Constructor=e,t.fn[n].noConflict=(()=>(t.fn[n]=i,e.jQueryInterface))}}),"loading"===document.readyState?(g.length||document.addEventListener("DOMContentLoaded",()=>{for(const e of g)e()}),g.push(t)):t()},x=(e,t=[],n=e)=>"function"==typeof e?e(...t):n,v=(e,t,n=!0)=>{if(!n)return void x(e);const i=(e=>{if(!e)return 0;let{transitionDuration:t,transitionDelay:n}=window.getComputedStyle(e);const i=Number.parseFloat(t),o=Number.parseFloat(n);return i||o?(t=t.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(t)+Number.parseFloat(n))):0})(t)+5;let r=!1;const a=({target:n})=>{n===t&&(r=!0,t.removeEventListener(o,a),x(e))};t.addEventListener(o,a),setTimeout(()=>{r||s(t)},i)},y=(e,t,n,i)=>{const o=e.length;let r=e.indexOf(t);return-1===r?!n&&i?e[o-1]:e[0]:(r+=n?1:-1,i&&(r=(r+o)%o),e[Math.max(0,Math.min(r,o-1))])},_=/[^.]*(?=\..*)\.|.*/,F=/\..*/,w=/::\d+$/,C={};let E=1;const A={mouseenter:"mouseover",mouseleave:"mouseout"},k=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function T(e,t){return t&&`${t}::${E++}`||e.uidEvent||E++}function O(e){const t=T(e);return e.uidEvent=t,C[t]=C[t]||{},C[t]}function S(e,t,n=null){return Object.values(e).find(e=>e.callable===t&&e.delegationSelector===n)}function D(e,t,n){const i="string"==typeof t,o=i?n:t||n;let r=N(e);return k.has(r)||(r=e),[i,o,r]}function j(e,t,n,i,o){if("string"!=typeof t||!e)return;let[r,s,a]=D(t,n,i);t in A&&(s=(e=>(function(t){if(!t.relatedTarget||t.relatedTarget!==t.delegateTarget&&!t.delegateTarget.contains(t.relatedTarget))return e.call(this,t)}))(s));const l=O(e),u=l[a]||(l[a]={}),c=S(u,s,r?n:null);if(c)return void(c.oneOff=c.oneOff&&o);const d=T(s,t.replace(_,"")),f=r?function(e,t,n){return function i(o){const r=e.querySelectorAll(t);for(let{target:s}=o;s&&s!==this;s=s.parentNode)for(const a of r)if(a===s)return M(o,{delegateTarget:s}),i.oneOff&&B.off(e,o.type,t,n),n.apply(s,[o])}}(e,n,s):function(e,t){return function n(i){return M(i,{delegateTarget:e}),n.oneOff&&B.off(e,i.type,t),t.apply(e,[i])}}(e,s);f.delegationSelector=r?n:null,f.callable=s,f.oneOff=o,f.uidEvent=d,u[d]=f,e.addEventListener(a,f,r)}function P(e,t,n,i,o){const r=S(t[n],i,o);r&&(e.removeEventListener(n,r,Boolean(o)),delete t[n][r.uidEvent])}function L(e,t,n,i){const o=t[n]||{};for(const[r,s]of Object.entries(o))r.includes(i)&&P(e,t,n,s.callable,s.delegationSelector)}function N(e){return e=e.replace(F,""),A[e]||e}const B={on(e,t,n,i){j(e,t,n,i,!1)},one(e,t,n,i){j(e,t,n,i,!0)},off(e,t,n,i){if("string"!=typeof t||!e)return;const[o,r,s]=D(t,n,i),a=s!==t,l=O(e),u=l[s]||{},c=t.startsWith(".");if(void 0===r){if(c)for(const n of Object.keys(l))L(e,l,n,t.slice(1));for(const[n,i]of Object.entries(u)){const o=n.replace(w,"");a&&!t.includes(o)||P(e,l,s,i.callable,i.delegationSelector)}}else{if(!Object.keys(u).length)return;P(e,l,s,r,o?n:null)}},trigger(e,t,n){if("string"!=typeof t||!e)return null;const i=p();let o=null,r=!0,s=!0,a=!1;t!==N(t)&&i&&(o=i.Event(t,n),i(e).trigger(o),r=!o.isPropagationStopped(),s=!o.isImmediatePropagationStopped(),a=o.isDefaultPrevented());const l=M(new Event(t,{bubbles:r,cancelable:!0}),n);return a&&l.preventDefault(),s&&e.dispatchEvent(l),l.defaultPrevented&&o&&o.preventDefault(),l}};function M(e,t={}){for(const[n,i]of Object.entries(t))try{e[n]=i}catch(t){Object.defineProperty(e,n,{configurable:!0,get:()=>i})}return e}function I(e){if("true"===e)return!0;if("false"===e)return!1;if(e===Number(e).toString())return Number(e);if(""===e||"null"===e)return null;if("string"!=typeof e)return e;try{return JSON.parse(decodeURIComponent(e))}catch(t){return e}}function R(e){return e.replace(/[A-Z]/g,e=>"-"+e.toLowerCase())}const H={setDataAttribute(e,t,n){e.setAttribute("data-bs-"+R(t),n)},removeDataAttribute(e,t){e.removeAttribute("data-bs-"+R(t))},getDataAttributes(e){if(!e)return{};const t={},n=Object.keys(e.dataset).filter(e=>e.startsWith("bs")&&!e.startsWith("bsConfig"));for(const i of n){let n=i.replace(/^bs/,"");t[n=n.charAt(0).toLowerCase()+n.slice(1,n.length)]=I(e.dataset[i])}return t},getDataAttribute:(e,t)=>I(e.getAttribute("data-bs-"+R(t)))};class ${static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(e){return e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e}_mergeConfigObj(e,t){const n=a(t)?H.getDataAttribute(t,"config"):{};return{...this.constructor.Default,..."object"==typeof n?n:{},...a(t)?H.getDataAttributes(t):{},..."object"==typeof e?e:{}}}_typeCheckConfig(e,t=this.constructor.DefaultType){for(const[i,o]of Object.entries(t)){const t=e[i],r=a(t)?"element":null==(n=t)?""+n:Object.prototype.toString.call(n).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(o).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${i}" provided type "${r}" but expected type "${o}".`)}var n}}class z extends ${constructor(e,t){super(),(e=l(e))&&(this._element=e,this._config=this._getConfig(t),i.set(this._element,this.constructor.DATA_KEY,this))}dispose(){i.remove(this._element,this.constructor.DATA_KEY),B.off(this._element,this.constructor.EVENT_KEY);for(const e of Object.getOwnPropertyNames(this))this[e]=null}_queueCallback(e,t,n=!0){v(e,t,n)}_getConfig(e){return e=this._mergeConfigObj(e,this._element),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}static getInstance(e){return i.get(l(e),this.DATA_KEY)}static getOrCreateInstance(e,t={}){return this.getInstance(e)||new this(e,"object"==typeof t?t:null)}static get VERSION(){return"5.3.2"}static get DATA_KEY(){return"bs."+this.NAME}static get EVENT_KEY(){return"."+this.DATA_KEY}static eventName(e){return`${e}${this.EVENT_KEY}`}}const q=e=>{let t=e.getAttribute("data-bs-target");if(!t||"#"===t){let n=e.getAttribute("href");if(!n||!n.includes("#")&&!n.startsWith("."))return null;n.includes("#")&&!n.startsWith("#")&&(n="#"+n.split("#")[1]),t=n&&"#"!==n?r(n.trim()):null}return t},W={find:(e,t=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(t,e)),findOne:(e,t=document.documentElement)=>Element.prototype.querySelector.call(t,e),children:(e,t)=>[].concat(...e.children).filter(e=>e.matches(t)),parents(e,t){const n=[];let i=e.parentNode.closest(t);for(;i;)n.push(i),i=i.parentNode.closest(t);return n},prev(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return[n];n=n.previousElementSibling}return[]},next(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return[n];n=n.nextElementSibling}return[]},focusableChildren(e){const t=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map(e=>e+':not([tabindex^="-"])').join(",");return this.find(t,e).filter(e=>!c(e)&&u(e))},getSelectorFromElement(e){const t=q(e);return t&&W.findOne(t)?t:null},getElementFromSelector(e){const t=q(e);return t?W.findOne(t):null},getMultipleElementsFromSelector(e){const t=q(e);return t?W.find(t):[]}},G=(e,t="hide")=>{const n="click.dismiss"+e.EVENT_KEY,i=e.NAME;B.on(document,n,`[data-bs-dismiss="${i}"]`,function(n){if(["A","AREA"].includes(this.tagName)&&n.preventDefault(),c(this))return;const o=W.getElementFromSelector(this)||this.closest("."+i);e.getOrCreateInstance(o)[t]()})};class X extends z{static get NAME(){return"alert"}close(){if(B.trigger(this._element,"close.bs.alert").defaultPrevented)return;this._element.classList.remove("show");const e=this._element.classList.contains("fade");this._queueCallback(()=>this._destroyElement(),this._element,e)}_destroyElement(){this._element.remove(),B.trigger(this._element,"closed.bs.alert"),this.dispose()}static jQueryInterface(e){return this.each(function(){const t=X.getOrCreateInstance(this);if("string"==typeof e){if(void 0===t[e]||e.startsWith("_")||"constructor"===e)throw new TypeError(`No method named "${e}"`);t[e](this)}})}}G(X,"close"),b(X);const U='[data-bs-toggle="button"]';class V extends z{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(e){return this.each(function(){const t=V.getOrCreateInstance(this);"toggle"===e&&t[e]()})}}B.on(document,"click.bs.button.data-api",U,e=>{e.preventDefault();const t=e.target.closest(U);V.getOrCreateInstance(t).toggle()}),b(V);const K=".bs.swipe",Q={endCallback:null,leftCallback:null,rightCallback:null},Y={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class J extends ${constructor(e,t){super(),this._element=e,e&&J.isSupported()&&(this._config=this._getConfig(t),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return Q}static get DefaultType(){return Y}static get NAME(){return"swipe"}dispose(){B.off(this._element,K)}_start(e){this._supportPointerEvents?this._eventIsPointerPenTouch(e)&&(this._deltaX=e.clientX):this._deltaX=e.touches[0].clientX}_end(e){this._eventIsPointerPenTouch(e)&&(this._deltaX=e.clientX-this._deltaX),this._handleSwipe(),x(this._config.endCallback)}_move(e){this._deltaX=e.touches&&e.touches.length>1?0:e.touches[0].clientX-this._deltaX}_handleSwipe(){const e=Math.abs(this._deltaX);if(e<=40)return;const t=e/this._deltaX;this._deltaX=0,t&&x(t>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(B.on(this._element,"pointerdown.bs.swipe",e=>this._start(e)),B.on(this._element,"pointerup.bs.swipe",e=>this._end(e)),this._element.classList.add("pointer-event")):(B.on(this._element,"touchstart.bs.swipe",e=>this._start(e)),B.on(this._element,"touchmove.bs.swipe",e=>this._move(e)),B.on(this._element,"touchend.bs.swipe",e=>this._end(e)))}_eventIsPointerPenTouch(e){return this._supportPointerEvents&&("pen"===e.pointerType||"touch"===e.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const Z=".bs.carousel",ee=".data-api",te="next",ne="prev",ie="left",oe="right",re="slid"+Z,se=`load${Z}${ee}`,ae=`click${Z}${ee}`,le="carousel",ue="active",ce=".active",de=".carousel-item",fe={ArrowLeft:oe,ArrowRight:ie},he={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},pe={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class ge extends z{constructor(e,t){super(e,t),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=W.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===le&&this.cycle()}static get Default(){return he}static get DefaultType(){return pe}static get NAME(){return"carousel"}next(){this._slide(te)}nextWhenVisible(){!document.hidden&&u(this._element)&&this.next()}prev(){this._slide(ne)}pause(){this._isSliding&&s(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval(()=>this.nextWhenVisible(),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?B.one(this._element,re,()=>this.cycle()):this.cycle())}to(e){const t=this._getItems();if(e>t.length-1||e<0)return;if(this._isSliding)return void B.one(this._element,re,()=>this.to(e));const n=this._getItemIndex(this._getActive());if(n===e)return;const i=e>n?te:ne;this._slide(i,t[e])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(e){return e.defaultInterval=e.interval,e}_addEventListeners(){this._config.keyboard&&B.on(this._element,"keydown.bs.carousel",e=>this._keydown(e)),"hover"===this._config.pause&&(B.on(this._element,"mouseenter.bs.carousel",()=>this.pause()),B.on(this._element,"mouseleave.bs.carousel",()=>this._maybeEnableCycle())),this._config.touch&&J.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const e of W.find(".carousel-item img",this._element))B.on(e,"dragstart.bs.carousel",e=>e.preventDefault());const e={leftCallback:()=>this._slide(this._directionToOrder(ie)),rightCallback:()=>this._slide(this._directionToOrder(oe)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(()=>this._maybeEnableCycle(),500+this._config.interval))}};this._swipeHelper=new J(this._element,e)}_keydown(e){if(/input|textarea/i.test(e.target.tagName))return;const t=fe[e.key];t&&(e.preventDefault(),this._slide(this._directionToOrder(t)))}_getItemIndex(e){return this._getItems().indexOf(e)}_setActiveIndicatorElement(e){if(!this._indicatorsElement)return;const t=W.findOne(ce,this._indicatorsElement);t.classList.remove(ue),t.removeAttribute("aria-current");const n=W.findOne(`[data-bs-slide-to="${e}"]`,this._indicatorsElement);n&&(n.classList.add(ue),n.setAttribute("aria-current","true"))}_updateInterval(){const e=this._activeElement||this._getActive();if(!e)return;const t=Number.parseInt(e.getAttribute("data-bs-interval"),10);this._config.interval=t||this._config.defaultInterval}_slide(e,t=null){if(this._isSliding)return;const n=this._getActive(),i=e===te,o=t||y(this._getItems(),n,i,this._config.wrap);if(o===n)return;const r=this._getItemIndex(o),s=t=>B.trigger(this._element,t,{relatedTarget:o,direction:this._orderToDirection(e),from:this._getItemIndex(n),to:r});if(s("slide.bs.carousel").defaultPrevented)return;if(!n||!o)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(r),this._activeElement=o;const l=i?"carousel-item-start":"carousel-item-end",u=i?"carousel-item-next":"carousel-item-prev";o.classList.add(u),h(o),n.classList.add(l),o.classList.add(l),this._queueCallback(()=>{o.classList.remove(l,u),o.classList.add(ue),n.classList.remove(ue,u,l),this._isSliding=!1,s(re)},n,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return W.findOne(".active.carousel-item",this._element)}_getItems(){return W.find(de,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(e){return m()?e===ie?ne:te:e===ie?te:ne}_orderToDirection(e){return m()?e===ne?ie:oe:e===ne?oe:ie}static jQueryInterface(e){return this.each(function(){const t=ge.getOrCreateInstance(this,e);if("number"!=typeof e){if("string"==typeof e){if(void 0===t[e]||e.startsWith("_")||"constructor"===e)throw new TypeError(`No method named "${e}"`);t[e]()}}else t.to(e)})}}B.on(document,ae,"[data-bs-slide], [data-bs-slide-to]",function(e){const t=W.getElementFromSelector(this);if(!t||!t.classList.contains(le))return;e.preventDefault();const n=ge.getOrCreateInstance(t),i=this.getAttribute("data-bs-slide-to");return i?(n.to(i),void n._maybeEnableCycle()):"next"===H.getDataAttribute(this,"slide")?(n.next(),void n._maybeEnableCycle()):(n.prev(),void n._maybeEnableCycle())}),B.on(window,se,()=>{const e=W.find('[data-bs-ride="carousel"]');for(const t of e)ge.getOrCreateInstance(t)}),b(ge);const me="show",be="collapse",xe="collapsing",ve=`:scope .${be} .${be}`,ye='[data-bs-toggle="collapse"]',_e={parent:null,toggle:!0},Fe={parent:"(null|element)",toggle:"boolean"};class we extends z{constructor(e,t){super(e,t),this._isTransitioning=!1,this._triggerArray=[];const n=W.find(ye);for(const e of n){const t=W.getSelectorFromElement(e),n=W.find(t).filter(e=>e===this._element);null!==t&&n.length&&this._triggerArray.push(e)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return _e}static get DefaultType(){return Fe}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let e=[];if(this._config.parent&&(e=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter(e=>e!==this._element).map(e=>we.getOrCreateInstance(e,{toggle:!1}))),e.length&&e[0]._isTransitioning)return;if(B.trigger(this._element,"show.bs.collapse").defaultPrevented)return;for(const t of e)t.hide();const t=this._getDimension();this._element.classList.remove(be),this._element.classList.add(xe),this._element.style[t]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const n="scroll"+(t[0].toUpperCase()+t.slice(1));this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove(xe),this._element.classList.add(be,me),this._element.style[t]="",B.trigger(this._element,"shown.bs.collapse")},this._element,!0),this._element.style[t]=this._element[n]+"px"}hide(){if(this._isTransitioning||!this._isShown())return;if(B.trigger(this._element,"hide.bs.collapse").defaultPrevented)return;const e=this._getDimension();this._element.style[e]=this._element.getBoundingClientRect()[e]+"px",h(this._element),this._element.classList.add(xe),this._element.classList.remove(be,me);for(const e of this._triggerArray){const t=W.getElementFromSelector(e);t&&!this._isShown(t)&&this._addAriaAndCollapsedClass([e],!1)}this._isTransitioning=!0,this._element.style[e]="",this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove(xe),this._element.classList.add(be),B.trigger(this._element,"hidden.bs.collapse")},this._element,!0)}_isShown(e=this._element){return e.classList.contains(me)}_configAfterMerge(e){return e.toggle=Boolean(e.toggle),e.parent=l(e.parent),e}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const e=this._getFirstLevelChildren(ye);for(const t of e){const e=W.getElementFromSelector(t);e&&this._addAriaAndCollapsedClass([t],this._isShown(e))}}_getFirstLevelChildren(e){const t=W.find(ve,this._config.parent);return W.find(e,this._config.parent).filter(e=>!t.includes(e))}_addAriaAndCollapsedClass(e,t){if(e.length)for(const n of e)n.classList.toggle("collapsed",!t),n.setAttribute("aria-expanded",t)}static jQueryInterface(e){const t={};return"string"==typeof e&&/show|hide/.test(e)&&(t.toggle=!1),this.each(function(){const n=we.getOrCreateInstance(this,t);if("string"==typeof e){if(void 0===n[e])throw new TypeError(`No method named "${e}"`);n[e]()}})}}B.on(document,"click.bs.collapse.data-api",ye,function(e){("A"===e.target.tagName||e.delegateTarget&&"A"===e.delegateTarget.tagName)&&e.preventDefault();for(const e of W.getMultipleElementsFromSelector(this))we.getOrCreateInstance(e,{toggle:!1}).toggle()}),b(we);const Ce="dropdown",Ee=".bs.dropdown",Ae=".data-api",ke="ArrowUp",Te="ArrowDown",Oe=`click${Ee}${Ae}`,Se=`keydown${Ee}${Ae}`,De=`keyup${Ee}${Ae}`,je="show",Pe='[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',Le=".dropdown-menu",Ne=m()?"top-end":"top-start",Be=m()?"top-start":"top-end",Me=m()?"bottom-end":"bottom-start",Ie=m()?"bottom-start":"bottom-end",Re=m()?"left-start":"right-start",He=m()?"right-start":"left-start",$e={autoClose:!0,boundary:"clippingParents",display:"dynamic",offset:[0,2],popperConfig:null,reference:"toggle"},ze={autoClose:"(boolean|string)",boundary:"(string|element)",display:"string",offset:"(array|string|function)",popperConfig:"(null|object|function)",reference:"(string|element|object)"};class qe extends z{constructor(e,t){super(e,t),this._popper=null,this._parent=this._element.parentNode,this._menu=W.next(this._element,Le)[0]||W.prev(this._element,Le)[0]||W.findOne(Le,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return $e}static get DefaultType(){return ze}static get NAME(){return Ce}toggle(){return this._isShown()?this.hide():this.show()}show(){if(c(this._element)||this._isShown())return;const e={relatedTarget:this._element};if(!B.trigger(this._element,"show.bs.dropdown",e).defaultPrevented){if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(".navbar-nav"))for(const e of[].concat(...document.body.children))B.on(e,"mouseover",f);this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(je),this._element.classList.add(je),B.trigger(this._element,"shown.bs.dropdown",e)}}hide(){if(c(this._element)||!this._isShown())return;const e={relatedTarget:this._element};this._completeHide(e)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(e){if(!B.trigger(this._element,"hide.bs.dropdown",e).defaultPrevented){if("ontouchstart"in document.documentElement)for(const e of[].concat(...document.body.children))B.off(e,"mouseover",f);this._popper&&this._popper.destroy(),this._menu.classList.remove(je),this._element.classList.remove(je),this._element.setAttribute("aria-expanded","false"),H.removeDataAttribute(this._menu,"popper"),B.trigger(this._element,"hidden.bs.dropdown",e)}}_getConfig(e){if("object"==typeof(e=super._getConfig(e)).reference&&!a(e.reference)&&"function"!=typeof e.reference.getBoundingClientRect)throw new TypeError(Ce.toUpperCase()+': Option "reference" provided type "object" without a required "getBoundingClientRect" method.');return e}_createPopper(){if(void 0===t)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let e=this._element;"parent"===this._config.reference?e=this._parent:a(this._config.reference)?e=l(this._config.reference):"object"==typeof this._config.reference&&(e=this._config.reference);const n=this._getPopperConfig();this._popper=t.createPopper(e,this._menu,n)}_isShown(){return this._menu.classList.contains(je)}_getPlacement(){const e=this._parent;if(e.classList.contains("dropend"))return Re;if(e.classList.contains("dropstart"))return He;if(e.classList.contains("dropup-center"))return"top";if(e.classList.contains("dropdown-center"))return"bottom";const t="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return e.classList.contains("dropup")?t?Be:Ne:t?Ie:Me}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:e}=this._config;return"string"==typeof e?e.split(",").map(e=>Number.parseInt(e,10)):"function"==typeof e?t=>e(t,this._element):e}_getPopperConfig(){const e={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(H.setDataAttribute(this._menu,"popper","static"),e.modifiers=[{name:"applyStyles",enabled:!1}]),{...e,...x(this._config.popperConfig,[e])}}_selectMenuItem({key:e,target:t}){const n=W.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter(e=>u(e));n.length&&y(n,t,e===Te,!n.includes(t)).focus()}static jQueryInterface(e){return this.each(function(){const t=qe.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}})}static clearMenus(e){if(2===e.button||"keyup"===e.type&&"Tab"!==e.key)return;const t=W.find('[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled).show');for(const n of t){const t=qe.getInstance(n);if(!t||!1===t._config.autoClose)continue;const i=e.composedPath(),o=i.includes(t._menu);if(i.includes(t._element)||"inside"===t._config.autoClose&&!o||"outside"===t._config.autoClose&&o)continue;if(t._menu.contains(e.target)&&("keyup"===e.type&&"Tab"===e.key||/input|select|option|textarea|form/i.test(e.target.tagName)))continue;const r={relatedTarget:t._element};"click"===e.type&&(r.clickEvent=e),t._completeHide(r)}}static dataApiKeydownHandler(e){const t=/input|textarea/i.test(e.target.tagName),n="Escape"===e.key,i=[ke,Te].includes(e.key);if(!i&&!n)return;if(t&&!n)return;e.preventDefault();const o=this.matches(Pe)?this:W.prev(this,Pe)[0]||W.next(this,Pe)[0]||W.findOne(Pe,e.delegateTarget.parentNode),r=qe.getOrCreateInstance(o);if(i)return e.stopPropagation(),r.show(),void r._selectMenuItem(e);r._isShown()&&(e.stopPropagation(),r.hide(),o.focus())}}B.on(document,Se,Pe,qe.dataApiKeydownHandler),B.on(document,Se,Le,qe.dataApiKeydownHandler),B.on(document,Oe,qe.clearMenus),B.on(document,De,qe.clearMenus),B.on(document,Oe,Pe,function(e){e.preventDefault(),qe.getOrCreateInstance(this).toggle()}),b(qe);const We="backdrop",Ge="mousedown.bs."+We,Xe={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},Ue={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class Ve extends ${constructor(e){super(),this._config=this._getConfig(e),this._isAppended=!1,this._element=null}static get Default(){return Xe}static get DefaultType(){return Ue}static get NAME(){return We}show(e){if(!this._config.isVisible)return void x(e);this._append();const t=this._getElement();this._config.isAnimated&&h(t),t.classList.add("show"),this._emulateAnimation(()=>{x(e)})}hide(e){this._config.isVisible?(this._getElement().classList.remove("show"),this._emulateAnimation(()=>{this.dispose(),x(e)})):x(e)}dispose(){this._isAppended&&(B.off(this._element,Ge),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const e=document.createElement("div");e.className=this._config.className,this._config.isAnimated&&e.classList.add("fade"),this._element=e}return this._element}_configAfterMerge(e){return e.rootElement=l(e.rootElement),e}_append(){if(this._isAppended)return;const e=this._getElement();this._config.rootElement.append(e),B.on(e,Ge,()=>{x(this._config.clickCallback)}),this._isAppended=!0}_emulateAnimation(e){v(e,this._getElement(),this._config.isAnimated)}}const Ke=".bs.focustrap",Qe="backward",Ye={autofocus:!0,trapElement:null},Je={autofocus:"boolean",trapElement:"element"};class Ze extends ${constructor(e){super(),this._config=this._getConfig(e),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return Ye}static get DefaultType(){return Je}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),B.off(document,Ke),B.on(document,"focusin.bs.focustrap",e=>this._handleFocusin(e)),B.on(document,"keydown.tab.bs.focustrap",e=>this._handleKeydown(e)),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,B.off(document,Ke))}_handleFocusin(e){const{trapElement:t}=this._config;if(e.target===document||e.target===t||t.contains(e.target))return;const n=W.focusableChildren(t);0===n.length?t.focus():this._lastTabNavDirection===Qe?n[n.length-1].focus():n[0].focus()}_handleKeydown(e){"Tab"===e.key&&(this._lastTabNavDirection=e.shiftKey?Qe:"forward")}}const et=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",tt=".sticky-top",nt="padding-right",it="margin-right";class ot{constructor(){this._element=document.body}getWidth(){const e=document.documentElement.clientWidth;return Math.abs(window.innerWidth-e)}hide(){const e=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,nt,t=>t+e),this._setElementAttributes(et,nt,t=>t+e),this._setElementAttributes(tt,it,t=>t-e)}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,nt),this._resetElementAttributes(et,nt),this._resetElementAttributes(tt,it)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(e,t,n){const i=this.getWidth();this._applyManipulationCallback(e,e=>{if(e!==this._element&&window.innerWidth>e.clientWidth+i)return;this._saveInitialAttribute(e,t);const o=window.getComputedStyle(e).getPropertyValue(t);e.style.setProperty(t,n(Number.parseFloat(o))+"px")})}_saveInitialAttribute(e,t){const n=e.style.getPropertyValue(t);n&&H.setDataAttribute(e,t,n)}_resetElementAttributes(e,t){this._applyManipulationCallback(e,e=>{const n=H.getDataAttribute(e,t);null!==n?(H.removeDataAttribute(e,t),e.style.setProperty(t,n)):e.style.removeProperty(t)})}_applyManipulationCallback(e,t){if(a(e))t(e);else for(const n of W.find(e,this._element))t(n)}}const rt=".bs.modal",st="hidden"+rt,at="show"+rt,lt=`click${rt}.data-api`,ut="modal-open",ct="modal-static",dt={backdrop:!0,focus:!0,keyboard:!0},ft={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class ht extends z{constructor(e,t){super(e,t),this._dialog=W.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new ot,this._addEventListeners()}static get Default(){return dt}static get DefaultType(){return ft}static get NAME(){return"modal"}toggle(e){return this._isShown?this.hide():this.show(e)}show(e){this._isShown||this._isTransitioning||B.trigger(this._element,at,{relatedTarget:e}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(ut),this._adjustDialog(),this._backdrop.show(()=>this._showElement(e)))}hide(){this._isShown&&!this._isTransitioning&&(B.trigger(this._element,"hide.bs.modal").defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove("show"),this._queueCallback(()=>this._hideModal(),this._element,this._isAnimated())))}dispose(){B.off(window,rt),B.off(this._dialog,rt),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Ve({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new Ze({trapElement:this._element})}_showElement(e){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const t=W.findOne(".modal-body",this._dialog);t&&(t.scrollTop=0),h(this._element),this._element.classList.add("show"),this._queueCallback(()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,B.trigger(this._element,"shown.bs.modal",{relatedTarget:e})},this._dialog,this._isAnimated())}_addEventListeners(){B.on(this._element,"keydown.dismiss.bs.modal",e=>{"Escape"===e.key&&(this._config.keyboard?this.hide():this._triggerBackdropTransition())}),B.on(window,"resize.bs.modal",()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()}),B.on(this._element,"mousedown.dismiss.bs.modal",e=>{B.one(this._element,"click.dismiss.bs.modal",t=>{this._element===e.target&&this._element===t.target&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())})})}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide(()=>{document.body.classList.remove(ut),this._resetAdjustments(),this._scrollBar.reset(),B.trigger(this._element,st)})}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(B.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented)return;const e=this._element.scrollHeight>document.documentElement.clientHeight,t=this._element.style.overflowY;"hidden"===t||this._element.classList.contains(ct)||(e||(this._element.style.overflowY="hidden"),this._element.classList.add(ct),this._queueCallback(()=>{this._element.classList.remove(ct),this._queueCallback(()=>{this._element.style.overflowY=t},this._dialog)},this._dialog),this._element.focus())}_adjustDialog(){const e=this._element.scrollHeight>document.documentElement.clientHeight,t=this._scrollBar.getWidth(),n=t>0;if(n&&!e){const e=m()?"paddingLeft":"paddingRight";this._element.style[e]=t+"px"}if(!n&&e){const e=m()?"paddingRight":"paddingLeft";this._element.style[e]=t+"px"}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(e,t){return this.each(function(){const n=ht.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===n[e])throw new TypeError(`No method named "${e}"`);n[e](t)}})}}B.on(document,lt,'[data-bs-toggle="modal"]',function(e){const t=W.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&e.preventDefault(),B.one(t,at,e=>{e.defaultPrevented||B.one(t,st,()=>{u(this)&&this.focus()})});const n=W.findOne(".modal.show");n&&ht.getInstance(n).hide(),ht.getOrCreateInstance(t).toggle(this)}),G(ht),b(ht);const pt=".bs.offcanvas",gt=".data-api",mt=`load${pt}${gt}`,bt="showing",xt=".offcanvas.show",vt="hidePrevented"+pt,yt="hidden"+pt,_t=`click${pt}${gt}`,Ft={backdrop:!0,keyboard:!0,scroll:!1},wt={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class Ct extends z{constructor(e,t){super(e,t),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return Ft}static get DefaultType(){return wt}static get NAME(){return"offcanvas"}toggle(e){return this._isShown?this.hide():this.show(e)}show(e){this._isShown||B.trigger(this._element,"show.bs.offcanvas",{relatedTarget:e}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new ot).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(bt),this._queueCallback(()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add("show"),this._element.classList.remove(bt),B.trigger(this._element,"shown.bs.offcanvas",{relatedTarget:e})},this._element,!0))}hide(){this._isShown&&(B.trigger(this._element,"hide.bs.offcanvas").defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add("hiding"),this._backdrop.hide(),this._queueCallback(()=>{this._element.classList.remove("show","hiding"),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new ot).reset(),B.trigger(this._element,yt)},this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const e=Boolean(this._config.backdrop);return new Ve({className:"offcanvas-backdrop",isVisible:e,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:e?()=>{"static"!==this._config.backdrop?this.hide():B.trigger(this._element,vt)}:null})}_initializeFocusTrap(){return new Ze({trapElement:this._element})}_addEventListeners(){B.on(this._element,"keydown.dismiss.bs.offcanvas",e=>{"Escape"===e.key&&(this._config.keyboard?this.hide():B.trigger(this._element,vt))})}static jQueryInterface(e){return this.each(function(){const t=Ct.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e]||e.startsWith("_")||"constructor"===e)throw new TypeError(`No method named "${e}"`);t[e](this)}})}}B.on(document,_t,'[data-bs-toggle="offcanvas"]',function(e){const t=W.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&e.preventDefault(),c(this))return;B.one(t,yt,()=>{u(this)&&this.focus()});const n=W.findOne(xt);n&&n!==t&&Ct.getInstance(n).hide(),Ct.getOrCreateInstance(t).toggle(this)}),B.on(window,mt,()=>{for(const e of W.find(xt))Ct.getOrCreateInstance(e).show()}),B.on(window,"resize.bs.offcanvas",()=>{for(const e of W.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(e).position&&Ct.getOrCreateInstance(e).hide()}),G(Ct),b(Ct);const Et={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},At=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),kt=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,Tt=(e,t)=>{const n=e.nodeName.toLowerCase();return t.includes(n)?!At.has(n)||Boolean(kt.test(e.nodeValue)):t.filter(e=>e instanceof RegExp).some(e=>e.test(n))},Ot={allowList:Et,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},St={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Dt={entry:"(string|element|function|null)",selector:"(string|element)"};class jt extends ${constructor(e){super(),this._config=this._getConfig(e)}static get Default(){return Ot}static get DefaultType(){return St}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map(e=>this._resolvePossibleFunction(e)).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(e){return this._checkContent(e),this._config.content={...this._config.content,...e},this}toHtml(){const e=document.createElement("div");e.innerHTML=this._maybeSanitize(this._config.template);for(const[t,n]of Object.entries(this._config.content))this._setContent(e,n,t);const t=e.children[0],n=this._resolvePossibleFunction(this._config.extraClass);return n&&t.classList.add(...n.split(" ")),t}_typeCheckConfig(e){super._typeCheckConfig(e),this._checkContent(e.content)}_checkContent(e){for(const[t,n]of Object.entries(e))super._typeCheckConfig({selector:t,entry:n},Dt)}_setContent(e,t,n){const i=W.findOne(n,e);i&&((t=this._resolvePossibleFunction(t))?a(t)?this._putElementInTemplate(l(t),i):this._config.html?i.innerHTML=this._maybeSanitize(t):i.textContent=t:i.remove())}_maybeSanitize(e){return this._config.sanitize?function(e,t,n){if(!e.length)return e;if(n&&"function"==typeof n)return n(e);const i=(new window.DOMParser).parseFromString(e,"text/html"),o=[].concat(...i.body.querySelectorAll("*"));for(const e of o){const n=e.nodeName.toLowerCase();if(!Object.keys(t).includes(n)){e.remove();continue}const i=[].concat(...e.attributes),o=[].concat(t["*"]||[],t[n]||[]);for(const t of i)Tt(t,o)||e.removeAttribute(t.nodeName)}return i.body.innerHTML}(e,this._config.allowList,this._config.sanitizeFn):e}_resolvePossibleFunction(e){return x(e,[this])}_putElementInTemplate(e,t){if(this._config.html)return t.innerHTML="",void t.append(e);t.textContent=e.textContent}}const Pt=new Set(["sanitize","allowList","sanitizeFn"]),Lt="fade",Nt="show",Bt="hide.bs.modal",Mt="hover",It="focus",Rt={AUTO:"auto",TOP:"top",RIGHT:m()?"left":"right",BOTTOM:"bottom",LEFT:m()?"right":"left"},Ht={allowList:Et,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},$t={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class zt extends z{constructor(e,n){if(void 0===t)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(e,n),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return Ht}static get DefaultType(){return $t}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),B.off(this._element.closest(".modal"),Bt,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const e=B.trigger(this._element,this.constructor.eventName("show")),t=(d(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(e.defaultPrevented||!t)return;this._disposePopper();const n=this._getTipElement();this._element.setAttribute("aria-describedby",n.getAttribute("id"));const{container:i}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(i.append(n),B.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(n),n.classList.add(Nt),"ontouchstart"in document.documentElement)for(const e of[].concat(...document.body.children))B.on(e,"mouseover",f);this._queueCallback(()=>{B.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1},this.tip,this._isAnimated())}hide(){if(this._isShown()&&!B.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove(Nt),"ontouchstart"in document.documentElement)for(const e of[].concat(...document.body.children))B.off(e,"mouseover",f);this._activeTrigger.click=!1,this._activeTrigger[It]=!1,this._activeTrigger[Mt]=!1,this._isHovered=null,this._queueCallback(()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),B.trigger(this._element,this.constructor.eventName("hidden")))},this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(e){const t=this._getTemplateFactory(e).toHtml();if(!t)return null;t.classList.remove(Lt,Nt),t.classList.add(`bs-${this.constructor.NAME}-auto`);const n=(e=>{do{e+=Math.floor(1e6*Math.random())}while(document.getElementById(e));return e})(this.constructor.NAME).toString();return t.setAttribute("id",n),this._isAnimated()&&t.classList.add(Lt),t}setContent(e){this._newContent=e,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(e){return this._templateFactory?this._templateFactory.changeContent(e):this._templateFactory=new jt({...this._config,content:e,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{".tooltip-inner":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(e){return this.constructor.getOrCreateInstance(e.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(Lt)}_isShown(){return this.tip&&this.tip.classList.contains(Nt)}_createPopper(e){const n=x(this._config.placement,[this,e,this._element]),i=Rt[n.toUpperCase()];return t.createPopper(this._element,e,this._getPopperConfig(i))}_getOffset(){const{offset:e}=this._config;return"string"==typeof e?e.split(",").map(e=>Number.parseInt(e,10)):"function"==typeof e?t=>e(t,this._element):e}_resolvePossibleFunction(e){return x(e,[this._element])}_getPopperConfig(e){const t={placement:e,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:e=>{this._getTipElement().setAttribute("data-popper-placement",e.state.placement)}}]};return{...t,...x(this._config.popperConfig,[t])}}_setListeners(){const e=this._config.trigger.split(" ");for(const t of e)if("click"===t)B.on(this._element,this.constructor.eventName("click"),this._config.selector,e=>{this._initializeOnDelegatedTarget(e).toggle()});else if("manual"!==t){const e=t===Mt?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),n=t===Mt?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");B.on(this._element,e,this._config.selector,e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusin"===e.type?It:Mt]=!0,t._enter()}),B.on(this._element,n,this._config.selector,e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusout"===e.type?It:Mt]=t._element.contains(e.relatedTarget),t._leave()})}this._hideModalHandler=(()=>{this._element&&this.hide()}),B.on(this._element.closest(".modal"),Bt,this._hideModalHandler)}_fixTitle(){const e=this._element.getAttribute("title");e&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",e),this._element.setAttribute("data-bs-original-title",e),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout(()=>{this._isHovered&&this.show()},this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout(()=>{this._isHovered||this.hide()},this._config.delay.hide))}_setTimeout(e,t){clearTimeout(this._timeout),this._timeout=setTimeout(e,t)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(e){const t=H.getDataAttributes(this._element);for(const e of Object.keys(t))Pt.has(e)&&delete t[e];return e={...t,..."object"==typeof e&&e?e:{}},e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e.container=!1===e.container?document.body:l(e.container),"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),e}_getDelegateConfig(){const e={};for(const[t,n]of Object.entries(this._config))this.constructor.Default[t]!==n&&(e[t]=n);return e.selector=!1,e.trigger="manual",e}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(e){return this.each(function(){const t=zt.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}})}}b(zt);const qt={...zt.Default,content:"",offset:[0,8],placement:"right",template:'',trigger:"click"},Wt={...zt.DefaultType,content:"(null|string|element|function)"};class Gt extends zt{static get Default(){return qt}static get DefaultType(){return Wt}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{".popover-header":this._getTitle(),".popover-body":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(e){return this.each(function(){const t=Gt.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}})}}b(Gt);const Xt=".bs.scrollspy",Ut="click"+Xt,Vt=`load${Xt}.data-api`,Kt="active",Qt="[href]",Yt=".nav-link",Jt=`${Yt}, .nav-item > ${Yt}, .list-group-item`,Zt={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},en={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class tn extends z{constructor(e,t){super(e,t),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return Zt}static get DefaultType(){return en}static get NAME(){return"scrollspy"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const e of this._observableSections.values())this._observer.observe(e)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(e){return e.target=l(e.target)||document.body,e.rootMargin=e.offset?e.offset+"px 0px -30%":e.rootMargin,"string"==typeof e.threshold&&(e.threshold=e.threshold.split(",").map(e=>Number.parseFloat(e))),e}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(B.off(this._config.target,Ut),B.on(this._config.target,Ut,Qt,e=>{const t=this._observableSections.get(e.target.hash);if(t){e.preventDefault();const n=this._rootElement||window,i=t.offsetTop-this._element.offsetTop;if(n.scrollTo)return void n.scrollTo({top:i,behavior:"smooth"});n.scrollTop=i}}))}_getNewObserver(){const e={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver(e=>this._observerCallback(e),e)}_observerCallback(e){const t=e=>this._targetLinks.get("#"+e.target.id),n=e=>{this._previousScrollData.visibleEntryTop=e.target.offsetTop,this._process(t(e))},i=(this._rootElement||document.documentElement).scrollTop,o=i>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=i;for(const r of e){if(!r.isIntersecting){this._activeTarget=null,this._clearActiveClass(t(r));continue}const e=r.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(o&&e){if(n(r),!i)return}else o||e||n(r)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const e=W.find(Qt,this._config.target);for(const t of e){if(!t.hash||c(t))continue;const e=W.findOne(decodeURI(t.hash),this._element);u(e)&&(this._targetLinks.set(decodeURI(t.hash),t),this._observableSections.set(t.hash,e))}}_process(e){this._activeTarget!==e&&(this._clearActiveClass(this._config.target),this._activeTarget=e,e.classList.add(Kt),this._activateParents(e),B.trigger(this._element,"activate.bs.scrollspy",{relatedTarget:e}))}_activateParents(e){if(e.classList.contains("dropdown-item"))W.findOne(".dropdown-toggle",e.closest(".dropdown")).classList.add(Kt);else for(const t of W.parents(e,".nav, .list-group"))for(const e of W.prev(t,Jt))e.classList.add(Kt)}_clearActiveClass(e){e.classList.remove(Kt);const t=W.find(`${Qt}.${Kt}`,e);for(const e of t)e.classList.remove(Kt)}static jQueryInterface(e){return this.each(function(){const t=tn.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e]||e.startsWith("_")||"constructor"===e)throw new TypeError(`No method named "${e}"`);t[e]()}})}}B.on(window,Vt,()=>{for(const e of W.find('[data-bs-spy="scroll"]'))tn.getOrCreateInstance(e)}),b(tn);const nn="ArrowLeft",on="ArrowRight",rn="ArrowUp",sn="ArrowDown",an="Home",ln="End",un="active",cn="show",dn=".dropdown-toggle",fn=`:not(${dn})`,hn='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',pn=`.nav-link${fn}, .list-group-item${fn}, [role="tab"]${fn}, ${hn}`,gn=`.${un}[data-bs-toggle="tab"], .${un}[data-bs-toggle="pill"], .${un}[data-bs-toggle="list"]`;class mn extends z{constructor(e){super(e),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),B.on(this._element,"keydown.bs.tab",e=>this._keydown(e)))}static get NAME(){return"tab"}show(){const e=this._element;if(this._elemIsActive(e))return;const t=this._getActiveElem(),n=t?B.trigger(t,"hide.bs.tab",{relatedTarget:e}):null;B.trigger(e,"show.bs.tab",{relatedTarget:t}).defaultPrevented||n&&n.defaultPrevented||(this._deactivate(t,e),this._activate(e,t))}_activate(e,t){e&&(e.classList.add(un),this._activate(W.getElementFromSelector(e)),this._queueCallback(()=>{"tab"===e.getAttribute("role")?(e.removeAttribute("tabindex"),e.setAttribute("aria-selected",!0),this._toggleDropDown(e,!0),B.trigger(e,"shown.bs.tab",{relatedTarget:t})):e.classList.add(cn)},e,e.classList.contains("fade")))}_deactivate(e,t){e&&(e.classList.remove(un),e.blur(),this._deactivate(W.getElementFromSelector(e)),this._queueCallback(()=>{"tab"===e.getAttribute("role")?(e.setAttribute("aria-selected",!1),e.setAttribute("tabindex","-1"),this._toggleDropDown(e,!1),B.trigger(e,"hidden.bs.tab",{relatedTarget:t})):e.classList.remove(cn)},e,e.classList.contains("fade")))}_keydown(e){if(![nn,on,rn,sn,an,ln].includes(e.key))return;e.stopPropagation(),e.preventDefault();const t=this._getChildren().filter(e=>!c(e));let n;if([an,ln].includes(e.key))n=t[e.key===an?0:t.length-1];else{const i=[on,sn].includes(e.key);n=y(t,e.target,i,!0)}n&&(n.focus({preventScroll:!0}),mn.getOrCreateInstance(n).show())}_getChildren(){return W.find(pn,this._parent)}_getActiveElem(){return this._getChildren().find(e=>this._elemIsActive(e))||null}_setInitialAttributes(e,t){this._setAttributeIfNotExists(e,"role","tablist");for(const e of t)this._setInitialAttributesOnChild(e)}_setInitialAttributesOnChild(e){e=this._getInnerElement(e);const t=this._elemIsActive(e),n=this._getOuterElement(e);e.setAttribute("aria-selected",t),n!==e&&this._setAttributeIfNotExists(n,"role","presentation"),t||e.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(e,"role","tab"),this._setInitialAttributesOnTargetPanel(e)}_setInitialAttributesOnTargetPanel(e){const t=W.getElementFromSelector(e);t&&(this._setAttributeIfNotExists(t,"role","tabpanel"),e.id&&this._setAttributeIfNotExists(t,"aria-labelledby",""+e.id))}_toggleDropDown(e,t){const n=this._getOuterElement(e);if(!n.classList.contains("dropdown"))return;const i=(e,i)=>{const o=W.findOne(e,n);o&&o.classList.toggle(i,t)};i(dn,un),i(".dropdown-menu",cn),n.setAttribute("aria-expanded",t)}_setAttributeIfNotExists(e,t,n){e.hasAttribute(t)||e.setAttribute(t,n)}_elemIsActive(e){return e.classList.contains(un)}_getInnerElement(e){return e.matches(pn)?e:W.findOne(pn,e)}_getOuterElement(e){return e.closest(".nav-item, .list-group-item")||e}static jQueryInterface(e){return this.each(function(){const t=mn.getOrCreateInstance(this);if("string"==typeof e){if(void 0===t[e]||e.startsWith("_")||"constructor"===e)throw new TypeError(`No method named "${e}"`);t[e]()}})}}B.on(document,"click.bs.tab",hn,function(e){["A","AREA"].includes(this.tagName)&&e.preventDefault(),c(this)||mn.getOrCreateInstance(this).show()}),B.on(window,"load.bs.tab",()=>{for(const e of W.find(gn))mn.getOrCreateInstance(e)}),b(mn);const bn="show",xn="showing",vn={animation:"boolean",autohide:"boolean",delay:"number"},yn={animation:!0,autohide:!0,delay:5e3};class _n extends z{constructor(e,t){super(e,t),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return yn}static get DefaultType(){return vn}static get NAME(){return"toast"}show(){B.trigger(this._element,"show.bs.toast").defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove("hide"),h(this._element),this._element.classList.add(bn,xn),this._queueCallback(()=>{this._element.classList.remove(xn),B.trigger(this._element,"shown.bs.toast"),this._maybeScheduleHide()},this._element,this._config.animation))}hide(){this.isShown()&&(B.trigger(this._element,"hide.bs.toast").defaultPrevented||(this._element.classList.add(xn),this._queueCallback(()=>{this._element.classList.add("hide"),this._element.classList.remove(xn,bn),B.trigger(this._element,"hidden.bs.toast")},this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(bn),super.dispose()}isShown(){return this._element.classList.contains(bn)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout(()=>{this.hide()},this._config.delay)))}_onInteraction(e,t){switch(e.type){case"mouseover":case"mouseout":this._hasMouseInteraction=t;break;case"focusin":case"focusout":this._hasKeyboardInteraction=t}if(t)return void this._clearTimeout();const n=e.relatedTarget;this._element===n||this._element.contains(n)||this._maybeScheduleHide()}_setListeners(){B.on(this._element,"mouseover.bs.toast",e=>this._onInteraction(e,!0)),B.on(this._element,"mouseout.bs.toast",e=>this._onInteraction(e,!1)),B.on(this._element,"focusin.bs.toast",e=>this._onInteraction(e,!0)),B.on(this._element,"focusout.bs.toast",e=>this._onInteraction(e,!1))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(e){return this.each(function(){const t=_n.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e](this)}})}}return G(_n),b(_n),{Alert:X,Button:V,Carousel:ge,Collapse:we,Dropdown:qe,Modal:ht,Offcanvas:Ct,Popover:Gt,ScrollSpy:tn,Tab:mn,Toast:_n,Tooltip:zt}}),function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e("object"==typeof exports?require("jquery"):jQuery)}(function(e){function t(t,i,o){i={content:{message:"object"==typeof i?i.message:i,title:i.title?i.title:"",icon:i.icon?i.icon:"",url:i.url?i.url:"#",target:i.target?i.target:"-"}},o=e.extend(!0,{},i,o),this.settings=e.extend(!0,{},n,o),this._defaults=n,"-"==this.settings.content.target&&(this.settings.content.target=this.settings.url_target),this.animations={start:"webkitAnimationStart oanimationstart MSAnimationStart animationstart",end:"webkitAnimationEnd oanimationend MSAnimationEnd animationend"},"number"==typeof this.settings.offset&&(this.settings.offset={x:this.settings.offset,y:this.settings.offset}),this.init()}var n={element:"body",position:null,type:"info",allow_dismiss:!0,newest_on_top:!1,showProgressbar:!1,placement:{from:"top",align:"right"},offset:20,spacing:10,z_index:1031,delay:5e3,timer:1e3,url_target:"_blank",mouse_over:null,animate:{enter:"animated fadeInDown",exit:"animated fadeOutUp"},onShow:null,onShown:null,onClose:null,onClosed:null,icon_type:"class",template:''};String.format=function(){for(var e=arguments[0],t=1;t .progress-bar').removeClass("progress-bar-"+e.settings.type),e.settings.type=i[t],this.$ele.addClass("alert-"+i[t]).find('[data-notify="progressbar"] > .progress-bar').addClass("progress-bar-"+i[t]);break;case"icon":var o=this.$ele.find('[data-notify="icon"]');"class"==e.settings.icon_type.toLowerCase()?o.removeClass(e.settings.content.icon).addClass(i[t]):(o.is("img")||o.find("img"),o.attr("src",i[t]));break;case"progress":var r=e.settings.delay-e.settings.delay*(i[t]/100);this.$ele.data("notify-delay",r),this.$ele.find('[data-notify="progressbar"] > div').attr("aria-valuenow",i[t]).css("width",i[t]+"%");break;case"url":this.$ele.find('[data-notify="url"]').attr("href",i[t]);break;case"target":this.$ele.find('[data-notify="url"]').attr("target",i[t]);break;default:this.$ele.find('[data-notify="'+t+'"]').html(i[t])}var s=this.$ele.outerHeight()+parseInt(e.settings.spacing)+parseInt(e.settings.offset.y);e.reposition(s)},close:function(){e.close()}}},buildNotify:function(){var t=this.settings.content;this.$ele=e(String.format(this.settings.template,this.settings.type,t.title,t.message,t.url,t.target)),this.$ele.attr("data-notify-position",this.settings.placement.from+"-"+this.settings.placement.align),this.settings.allow_dismiss||this.$ele.find('[data-notify="dismiss"]').css("display","none"),(this.settings.delay<=0&&!this.settings.showProgressbar||!this.settings.showProgressbar)&&this.$ele.find('[data-notify="progressbar"]').remove()},setIcon:function(){"class"==this.settings.icon_type.toLowerCase()?this.$ele.find('[data-notify="icon"]').addClass(this.settings.content.icon):this.$ele.find('[data-notify="icon"]').is("img")?this.$ele.find('[data-notify="icon"]').attr("src",this.settings.content.icon):this.$ele.find('[data-notify="icon"]').append('Notify Icon')},styleDismiss:function(){this.$ele.find('[data-notify="dismiss"]').css({position:"absolute",right:"10px",top:"5px",zIndex:this.settings.z_index+2})},styleURL:function(){this.$ele.find('[data-notify="url"]').css({backgroundImage:"url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)",height:"100%",left:"0px",position:"absolute",top:"0px",width:"100%",zIndex:this.settings.z_index+1})},placement:function(){var t=this,n=this.settings.offset.y,i={display:"inline-block",margin:"0px auto",position:this.settings.position?this.settings.position:"body"===this.settings.element?"fixed":"absolute",transition:"all .5s ease-in-out",zIndex:this.settings.z_index},o=!1,r=this.settings;switch(e('[data-notify-position="'+this.settings.placement.from+"-"+this.settings.placement.align+'"]:not([data-closing="true"])').each(function(){return n=Math.max(n,parseInt(e(this).css(r.placement.from))+parseInt(e(this).outerHeight())+parseInt(r.spacing))}),1==this.settings.newest_on_top&&(n=this.settings.offset.y),i[this.settings.placement.from]=n+"px",this.settings.placement.align){case"left":case"right":i[this.settings.placement.align]=this.settings.offset.x+"px";break;case"center":i.left=0,i.right=0}this.$ele.css(i).addClass(this.settings.animate.enter),e.each(Array("webkit","moz","o","ms",""),function(e,n){t.$ele[0].style[n+"AnimationIterationCount"]=1}),e(this.settings.element).append(this.$ele),1==this.settings.newest_on_top&&(n=parseInt(n)+parseInt(this.settings.spacing)+this.$ele.outerHeight(),this.reposition(n)),e.isFunction(t.settings.onShow)&&t.settings.onShow.call(this.$ele),this.$ele.one(this.animations.start,function(e){o=!0}).one(this.animations.end,function(n){e.isFunction(t.settings.onShown)&&t.settings.onShown.call(this)}),setTimeout(function(){o||e.isFunction(t.settings.onShown)&&t.settings.onShown.call(this)},600)},bind:function(){var t=this;if(this.$ele.find('[data-notify="dismiss"]').on("click",function(){t.close()}),this.$ele.mouseover(function(t){e(this).data("data-hover","true")}).mouseout(function(t){e(this).data("data-hover","false")}),this.$ele.data("data-hover","false"),this.settings.delay>0){t.$ele.data("notify-delay",t.settings.delay);var n=setInterval(function(){var e=parseInt(t.$ele.data("notify-delay"))-t.settings.timer;if("false"===t.$ele.data("data-hover")&&"pause"==t.settings.mouse_over||"pause"!=t.settings.mouse_over){var i=(t.settings.delay-e)/t.settings.delay*100;t.$ele.data("notify-delay",e),t.$ele.find('[data-notify="progressbar"] > div').attr("aria-valuenow",i).css("width",i+"%")}e<=-t.settings.timer&&(clearInterval(n),t.close())},t.settings.timer)}},close:function(){var t=this,n=parseInt(this.$ele.css(this.settings.placement.from)),i=!1;this.$ele.data("closing","true").addClass(this.settings.animate.exit),t.reposition(n),e.isFunction(t.settings.onClose)&&t.settings.onClose.call(this.$ele),this.$ele.one(this.animations.start,function(e){i=!0}).one(this.animations.end,function(n){e(this).remove(),e.isFunction(t.settings.onClosed)&&t.settings.onClosed.call(this)}),setTimeout(function(){i||(t.$ele.remove(),t.settings.onClosed&&t.settings.onClosed(t.$ele))},600)},reposition:function(t){var n=this,i='[data-notify-position="'+this.settings.placement.from+"-"+this.settings.placement.align+'"]:not([data-closing="true"])',o=this.$ele.nextAll(i);1==this.settings.newest_on_top&&(o=this.$ele.prevAll(i)),o.each(function(){e(this).css(n.settings.placement.from,t),t=parseInt(t)+parseInt(n.settings.spacing)+e(this).outerHeight()})}}),e.notify=function(e,n){return new t(this,e,n).notify},e.notifyDefaults=function(t){return n=e.extend(!0,{},n,t)},e.notifyClose=function(t){void 0===t||"all"==t?e("[data-notify]").find('[data-notify="dismiss"]').trigger("click"):e('[data-notify-position="'+t+'"]').find('[data-notify="dismiss"]').trigger("click")}}),function(e){var t={};function n(i){if(t[i])return t[i].exports;var o=t[i]={i:i,l:!1,exports:{}};return e[i].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(i,o,function(t){return e[t]}.bind(null,o));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=15)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.data=t,this.text=n.text||t,this.options=n}},function(e,t,n){"use strict";var i;function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(t,"__esModule",{value:!0});var r=t.SET_A=0,s=t.SET_B=1,a=t.SET_C=2,l=(t.SHIFT=98,t.START_A=103),u=t.START_B=104,c=t.START_C=105;t.MODULO=103,t.STOP=106,t.FNC1=207,t.SET_BY_CODE=(o(i={},l,r),o(i,u,s),o(i,c,a),i),t.SWAP={101:r,100:s,99:a},t.A_START_CHAR=String.fromCharCode(208),t.B_START_CHAR=String.fromCharCode(209),t.C_START_CHAR=String.fromCharCode(210),t.A_CHARS="[\0-_È-Ï]",t.B_CHARS="[ -È-Ï]",t.C_CHARS="(Ï*[0-9]{2}Ï*)",t.BARS=[11011001100,11001101100,11001100110,10010011e3,10010001100,10001001100,10011001e3,10011000100,10001100100,11001001e3,11001000100,11000100100,10110011100,10011011100,10011001110,10111001100,10011101100,10011100110,11001110010,11001011100,11001001110,11011100100,11001110100,11101101110,11101001100,11100101100,11100100110,11101100100,11100110100,11100110010,11011011e3,11011000110,11000110110,10100011e3,10001011e3,10001000110,10110001e3,10001101e3,10001100010,11010001e3,11000101e3,11000100010,10110111e3,10110001110,10001101110,10111011e3,10111000110,10001110110,11101110110,11010001110,11000101110,11011101e3,11011100010,11011101110,11101011e3,11101000110,11100010110,11101101e3,11101100010,11100011010,11101111010,11001000010,11110001010,1010011e4,10100001100,1001011e4,10010000110,10000101100,10000100110,1011001e4,10110000100,1001101e4,10011000010,10000110100,10000110010,11000010010,1100101e4,11110111010,11000010100,10001111010,10100111100,10010111100,10010011110,10111100100,10011110100,10011110010,11110100100,11110010100,11110010010,11011011110,11011110110,11110110110,10101111e3,10100011110,10001011110,10111101e3,10111100010,11110101e3,11110100010,10111011110,10111101110,11101011110,11110101110,11010000100,1101001e4,11010011100,1100011101011]},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SIDE_BIN="101",t.MIDDLE_BIN="01010",t.BINARIES={L:["0001101","0011001","0010011","0111101","0100011","0110001","0101111","0111011","0110111","0001011"],G:["0100111","0110011","0011011","0100001","0011101","0111001","0000101","0010001","0001001","0010111"],R:["1110010","1100110","1101100","1000010","1011100","1001110","1010000","1000100","1001000","1110100"],O:["0001101","0011001","0010011","0111101","0100011","0110001","0101111","0111011","0110111","0001011"],E:["0100111","0110011","0011011","0100001","0011101","0111001","0000101","0010001","0001001","0010111"]},t.EAN2_STRUCTURE=["LL","LG","GL","GG"],t.EAN5_STRUCTURE=["GGLLL","GLGLL","GLLGL","GLLLG","LGGLL","LLGGL","LLLGG","LGLGL","LGLLG","LLGLG"],t.EAN13_STRUCTURE=["LLLLLL","LLGLGG","LLGGLG","LLGGGL","LGLLGG","LGGLLG","LGGGLL","LGLGLG","LGLGGL","LGGLGL"]},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2);t.default=function(e,t,n){var o=e.split("").map(function(e,n){return i.BINARIES[t[n]]}).map(function(t,n){return t?t[e[n]]:""});if(n){var r=e.length-1;o=o.map(function(e,t){return t=200){r=e.shift()-105;var a=s.SWAP[r];void 0!==a?o=t.next(e,n+1,a):(i!==s.SET_A&&i!==s.SET_B||r!==s.SHIFT||(e[0]=i===s.SET_A?e[0]>95?e[0]-96:e[0]:e[0]<32?e[0]+96:e[0]),o=t.next(e,n+1,i))}else r=t.correctIndex(e,i),o=t.next(e,n+1,i);var l=r*n;return{result:t.getBar(r)+o.result,checksum:l+o.checksum}}}]),t}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.mod10=function(e){for(var t=0,n=0;n10*n.width?10*n.width:n.fontSize,i.guardHeight=n.height+i.fontSize/2+n.textMargin,i}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,s(n(0)).default),i(t,[{key:"encode",value:function(){return this.options.flat?this.encodeFlat():this.encodeGuarded()}},{key:"leftText",value:function(e,t){return this.text.substr(e,t)}},{key:"leftEncode",value:function(e,t){return(0,r.default)(e,t)}},{key:"rightText",value:function(e,t){return this.text.substr(e,t)}},{key:"rightEncode",value:function(e,t){return(0,r.default)(e,t)}},{key:"encodeGuarded",value:function(){var e={fontSize:this.fontSize},t={height:this.guardHeight};return[{data:o.SIDE_BIN,options:t},{data:this.leftEncode(),text:this.leftText(),options:e},{data:o.MIDDLE_BIN,options:t},{data:this.rightEncode(),text:this.rightText(),options:e},{data:o.SIDE_BIN,options:t}]}},{key:"encodeFlat",value:function(){return{data:[o.SIDE_BIN,this.leftEncode(),o.MIDDLE_BIN,this.rightEncode(),o.SIDE_BIN].join(""),text:this.text}}}]),t}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n10*n.width?i.fontSize=10*n.width:i.fontSize=n.fontSize,i.guardHeight=n.height+i.fontSize/2+n.textMargin,i}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r(n(0)).default),i(t,[{key:"valid",value:function(){return-1!==this.data.search(/^[0-9]{12}$/)&&this.data[11]==a(this.data)}},{key:"encode",value:function(){return this.options.flat?this.flatEncoding():this.guardedEncoding()}},{key:"flatEncoding",value:function(){var e="";return e+="101",e+=(0,o.default)(this.data.substr(0,6),"LLLLLL"),e+="01010",e+=(0,o.default)(this.data.substr(6,6),"RRRRRR"),{data:e+="101",text:this.text}}},{key:"guardedEncoding",value:function(){var e=[];return this.displayValue&&e.push({data:"00000000",text:this.text.substr(0,1),options:{textAlign:"left",fontSize:this.fontSize}}),e.push({data:"101"+(0,o.default)(this.data[0],"L"),options:{height:this.guardHeight}}),e.push({data:(0,o.default)(this.data.substr(1,5),"LLLLL"),text:this.text.substr(1,5),options:{fontSize:this.fontSize}}),e.push({data:"01010",options:{height:this.guardHeight}}),e.push({data:(0,o.default)(this.data.substr(6,5),"RRRRR"),text:this.text.substr(6,5),options:{fontSize:this.fontSize}}),e.push({data:(0,o.default)(this.data[11],"R")+"101",options:{height:this.guardHeight}}),this.displayValue&&e.push({data:"00000000",text:this.text.substr(11,1),options:{textAlign:"right",fontSize:this.fontSize}}),e}}]),t}();function a(e){var t,n=0;for(t=1;t<11;t+=2)n+=parseInt(e[t]);for(t=0;t<11;t+=2)n+=3*parseInt(e[t]);return(10-n%10)%10}t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,o=function(){function e(e,t){for(var n=0;n0?t.fontSize+t.textMargin:0)+t.marginTop+t.marginBottom}function s(e,t,n){if(n.displayValue&&tt&&(t=e[n].height);return t},t.getEncodingHeight=r,t.getBarcodePadding=s,t.calculateEncodingAttributes=function(e,t,n){for(var i=0;i=r(e);return t+String.fromCharCode(i?206:205)+a(e,i)}t.default=function(e){var t=void 0;if(s(e).length>=2)t=i.C_START_CHAR+l(e);else{var n=o(e)>r(e);t=(n?i.A_START_CHAR:i.B_START_CHAR)+a(e,n)}return t.replace(/[\xCD\xCE]([^])[\xCD\xCE]/,function(e,t){return String.fromCharCode(203)+t})}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,o=function(){function e(e,t){for(var n=0;n10*n.width?i.fontSize=10*n.width:i.fontSize=n.fontSize,i.guardHeight=n.height+i.fontSize/2+n.textMargin,i}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),i(t,[{key:"valid",value:function(){return this.isValid}},{key:"encode",value:function(){return this.options.flat?this.flatEncoding():this.guardedEncoding()}},{key:"flatEncoding",value:function(){var e="";return e+="101",e+=this.encodeMiddleDigits(),{data:e+="010101",text:this.text}}},{key:"guardedEncoding",value:function(){var e=[];return this.displayValue&&e.push({data:"00000000",text:this.text[0],options:{textAlign:"left",fontSize:this.fontSize}}),e.push({data:"101",options:{height:this.guardHeight}}),e.push({data:this.encodeMiddleDigits(),text:this.text.substring(1,7),options:{fontSize:this.fontSize}}),e.push({data:"010101",options:{height:this.guardHeight}}),this.displayValue&&e.push({data:"00000000",text:this.text[7],options:{textAlign:"right",fontSize:this.fontSize}}),e}},{key:"encodeMiddleDigits",value:function(){var e=this.upcA[0],t=this.upcA[this.upcA.length-1],n=c[parseInt(t)][parseInt(e)];return(0,o.default)(this.middleDigits,n)}}]),t}();function f(e,t){for(var n=parseInt(e[e.length-1]),i=u[n],o="",r=0,a=0;a=3&&this.number<=131070}}]),t}();t.pharmacode=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.codabar=void 0;var i,o=function(){function e(e,t){for(var n=0;n0?(n=0,o.textAlign="left"):"right"==e.textAlign?(n=t.width-1,o.textAlign="right"):(n=t.width/2,o.textAlign="center"),o.fillText(t.text,n,i))}},{key:"moveCanvasDrawing",value:function(e){this.canvas.getContext("2d").translate(e.width,0)}},{key:"restoreCanvas",value:function(){this.canvas.getContext("2d").restore()}}]),e}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,o=function(){function e(e,t){for(var n=0;n0&&(this.drawRect(s-t.width*r,i,t.width*r,t.height,e),r=0);r>0&&this.drawRect(s-t.width*(r-1),i,t.width*r,t.height,e)}},{key:"drawSVGText",value:function(e,t,n){var i,o,r=this.document.createElementNS(a,"text");t.displayValue&&(r.setAttribute("style","font:"+t.fontOptions+" "+t.fontSize+"px "+t.font),o="top"==t.textPosition?t.fontSize-t.textMargin:t.height+t.textMargin+t.fontSize,"left"==t.textAlign||n.barcodePadding>0?(i=0,r.setAttribute("text-anchor","start")):"right"==t.textAlign?(i=n.width-1,r.setAttribute("text-anchor","end")):(i=n.width/2,r.setAttribute("text-anchor","middle")),r.setAttribute("x",i),r.setAttribute("y",o),r.appendChild(this.document.createTextNode(n.text)),e.appendChild(r))}},{key:"setSvgAttributes",value:function(e,t){var n=this.svg;n.setAttribute("width",e+"px"),n.setAttribute("height",t+"px"),n.setAttribute("x","0px"),n.setAttribute("y","0px"),n.setAttribute("viewBox","0 0 "+e+" "+t),n.setAttribute("xmlns",a),n.setAttribute("version","1.1"),n.setAttribute("style","transform: translate(0,0)")}},{key:"createGroup",value:function(e,t,n){var i=this.document.createElementNS(a,"g");return i.setAttribute("transform","translate("+e+", "+t+")"),n.appendChild(i),i}},{key:"setGroupOptions",value:function(e,t){e.setAttribute("style","fill:"+t.lineColor+";")}},{key:"drawRect",value:function(e,t,n,i,o){var r=this.document.createElementNS(a,"rect");return r.setAttribute("x",e),r.setAttribute("y",t),r.setAttribute("width",n),r.setAttribute("height",i),o.appendChild(r),r}}]),e}();t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;ne.length)return;if(!(_ instanceof l)){if(g&&v!=t.length-1){if(f.lastIndex=y,!(k=f.exec(e)))break;for(var F=k.index+(p?k[1].length:0),w=k.index+k[0].length,C=v,E=y,A=t.length;C"+r.content+""},!_self.document)return _self.addEventListener&&(n.disableWorkerMessageHandler||_self.addEventListener("message",function(e){var t=JSON.parse(e.data),i=t.language,o=t.code,r=t.immediateClose;_self.postMessage(n.highlight(o,n.languages[i],i)),r&&_self.close()},!1)),_self.Prism;var o=document.currentScript||[].slice.call(document.getElementsByTagName("script")).pop();return o&&(n.filename=o.src,n.manual||o.hasAttribute("data-manual")||("loading"!==document.readyState?window.requestAnimationFrame?window.requestAnimationFrame(n.highlightAll):window.setTimeout(n.highlightAll,16):document.addEventListener("DOMContentLoaded",n.highlightAll))),_self.Prism}();"undefined"!=typeof module&&module.exports&&(module.exports=Prism),"undefined"!=typeof global&&(global.Prism=Prism),Prism.languages.markup={comment://,prolog:/<\?[\s\S]+?\?>/,doctype://i,cdata://i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/i,inside:{punctuation:[/^=/,{pattern:/(^|[^\\])["']/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.hooks.add("wrap",function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))}),Prism.languages.xml=Prism.languages.markup,Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup,Prism.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-]+?.*?(?:;|(?=\s*\{))/i,inside:{rule:/@[\w-]+/}},url:/url\((?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|.*?)\)/i,selector:/[^{}\s][^{};]*?(?=\s*\{)/,string:{pattern:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},property:/[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i,important:/\B!important\b/i,function:/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:]/},Prism.languages.css.atrule.inside.rest=Prism.languages.css,Prism.languages.markup&&(Prism.languages.insertBefore("markup","tag",{style:{pattern:/()[\s\S]*?(?=<\/style>)/i,lookbehind:!0,inside:Prism.languages.css,alias:"language-css",greedy:!0}}),Prism.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:Prism.languages.markup.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:Prism.languages.css}},alias:"language-css"}},Prism.languages.markup.tag)),Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/[a-z0-9_]+(?=\()/i,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/},Prism.languages.javascript=Prism.languages.extend("clike",{keyword:/\b(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/,number:/\b(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+|NaN|Infinity)\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/,function:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*\()/i,operator:/-[-=]?|\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/}),Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[[^\]\r\n]+]|\\.|[^/\\\[\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})\]]))/,lookbehind:!0,greedy:!0},"function-variable":{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=\s*(?:function\b|(?:\([^()]*\)|[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/i,alias:"function"},constant:/\b[A-Z][A-Z\d_]*\b/}),Prism.languages.insertBefore("javascript","string",{"template-string":{pattern:/`(?:\\[\s\S]|\${[^}]+}|[^\\`])*`/,greedy:!0,inside:{interpolation:{pattern:/\${[^}]+}/,inside:{"interpolation-punctuation":{pattern:/^\${|}$/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}}}),Prism.languages.javascript["template-string"].inside.interpolation.inside.rest=Prism.languages.javascript,Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{script:{pattern:/()[\s\S]*?(?=<\/script>)/i,lookbehind:!0,inside:Prism.languages.javascript,alias:"language-javascript",greedy:!0}}),Prism.languages.js=Prism.languages.javascript,"undefined"!=typeof self&&self.Prism&&self.document&&document.querySelector&&(self.Prism.fileHighlight=function(){var e={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"};Array.prototype.slice.call(document.querySelectorAll("pre[data-src]")).forEach(function(t){for(var n,i=t.getAttribute("data-src"),o=t,r=/\blang(?:uage)?-([\w-]+)\b/i;o&&!r.test(o.className);)o=o.parentNode;if(o&&(n=(t.className.match(r)||[,""])[1]),!n){var s=(i.match(/\.(\w+)$/)||[,""])[1];n=e[s]||s}var a=document.createElement("code");a.className="language-"+n,t.textContent="",a.textContent="Loading…",t.appendChild(a);var l=new XMLHttpRequest;l.open("GET",i,!0),l.onreadystatechange=function(){4==l.readyState&&(l.status<400&&l.responseText?(a.textContent=l.responseText,Prism.highlightElement(a)):400<=l.status?a.textContent="✖ Error "+l.status+" while fetching file: "+l.statusText:a.textContent="✖ Error: File does not exist or is empty")},l.send(null)}),Prism.plugins.toolbar&&Prism.plugins.toolbar.registerButton("download-file",function(e){var t=e.element.parentNode;if(t&&/pre/i.test(t.nodeName)&&t.hasAttribute("data-src")&&t.hasAttribute("data-download-link")){var n=t.getAttribute("data-src"),i=document.createElement("a");return i.textContent=t.getAttribute("data-download-link-label")||"Download",i.setAttribute("download",""),i.href=n,i}})},document.addEventListener("DOMContentLoaded",self.Prism.fileHighlight)),function(e){"use strict";function t(e,t){e.className+=" "+t}function n(e,t){for(var n=e.className.split(" "),i=t.split(" "),o=0;o-1&&n.splice(r,1)}e.className=n.join(" ")}function i(){return"rtl"===e.getComputedStyle(document.body).direction}function o(){return document.documentElement&&document.documentElement.scrollTop||document.body.scrollTop}function r(){return document.documentElement&&document.documentElement.scrollLeft||document.body.scrollLeft}function s(e){for(;e.lastChild;)e.removeChild(e.lastChild)}function a(e){if(null===e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n0){for(var n=[],i=0;i=0?(n(document.body,Fe.noOverflow),k(!1)):e>0&&document.body.className.indexOf(Fe.noOverflow)<0&&(k(!0),t(document.body,Fe.noOverflow))}function k(i){T.defaults.preventBodyShift&&(i&&document.documentElement.scrollHeight>document.documentElement.clientHeight?(Ce=be,we=e.getComputedStyle(document.body).top,t(document.body,Fe.fixed),document.body.style.top=-be+"px"):i||(be=Ce,document.body.style.top=we,n(document.body,Fe.fixed),F()))}function O(e,t){for(var n=y.indexOf(t)+1;n200&&(Ae=e.timeStamp)&&!Ee){var n=e.srcElement||e.target;!0===t.get("closableByDimmer")&&n===t.elements.modal&&j(t)}Ee=!1}function z(e,t){if(Date.now()-ke>200&&(ke=Date.now()))for(var n=0;n-1?(z(t,function(e){return e.key===n}),!1):void 0}Te=!1}function G(e){var t=y[y.length-1],n=e.keyCode;if(n===m||n===b){for(var i=t.__internal.buttons,o=0;op-1&&xe.indexOf(n)>-1)return e.preventDefault(),e.stopPropagation(),z(t,function(e){return e.key===n}),!1}function X(e,t){if(t)t.focus();else{var n=e.__internal.focus,i=n.element;switch(typeof n.element){case"number":e.__internal.buttons.length>n.element&&(i=!0===e.get("basic")?e.elements.reset[0]:e.__internal.buttons[n.element].element);break;case"string":i=e.elements.body.querySelector(n.element);break;case"function":i=n.element.call(e)}!0!==e.get("defaultFocusOff")&&(null!=i||0!==e.__internal.buttons.length)||(i=e.elements.reset[0]),i&&i.focus&&(i.focus(),n.select&&i.select&&i.select())}}function U(e,t){if(!t)for(var n=y.length-1;n>-1;n-=1)if(y[n].isModal()){t=y[n];break}if(t&&t.isModal()){var i,o=t.elements.reset[0],r=t.elements.reset[1],s=e.relatedTarget,a=t.elements.root.contains(s),l=e.srcElement||e.target;if(l===o&&!a||l===r&&s===o)return;l===r||l===document.body?i=o:l===o&&s===r?i=V(t):l===o&&a&&(i=V(t,!0)),X(t,i)}}function V(e,t){var n=[].slice.call(e.elements.dialog.querySelectorAll(v.tabbable));t&&n.reverse();for(var i=0;iRe?t.style.left=Ie+c+"px":t.offsetWidth>=He&&(t.style.left=Ie-c+"px")}}(t,Me.elements.dialog,!Me.get("modal")&&!Me.get("pinned")))}function se(){if(Me){var e=Me;Me=null,n(document.body,Fe.noSelection),n(e.elements.dialog,Fe.capture),Ee=!0,d("onresized",e)}}function ae(e){Me=null;var t=e.elements.dialog;"none"===t.style.maxWidth&&(t.style.maxWidth=t.style.minWidth=t.style.width=t.style.height=t.style.minHeight=t.style.left="",Ie=Number.Nan,Re=He=$e=0)}function le(){for(var e=0;e-1&&e.navigator.userAgent.indexOf("Chrome")<0,_e={dimmer:'
',modal:'
',dialog:'
',reset:'',commands:'
',header:'
',body:'
',content:'
',footer:'',buttons:{primary:'
',auxiliary:'
'},button:'',resizeHandle:'
'},Fe={animationIn:"ajs-in",animationOut:"ajs-out",base:"alertify",basic:"ajs-basic",capture:"ajs-capture",closable:"ajs-closable",fixed:"ajs-fixed",frameless:"ajs-frameless",hidden:"ajs-hidden",maximize:"ajs-maximize",maximized:"ajs-maximized",maximizable:"ajs-maximizable",modeless:"ajs-modeless",movable:"ajs-movable",noSelection:"ajs-no-selection",noOverflow:"ajs-no-overflow",noPadding:"ajs-no-padding",pin:"ajs-pin",pinnable:"ajs-pinnable",prefix:"ajs-",resizable:"ajs-resizable",restore:"ajs-restore",shake:"ajs-shake",unpinned:"ajs-unpinned",noTransition:"ajs-no-transition"},we="",Ce=0,Ee=!1,Ae=0,ke=0,Te=!1,Oe=null,Se=0,De=0,je="pageX",Pe="pageY",Le=null,Ne=!1,Be=null,Me=null,Ie=Number.Nan,Re=0,He=0,$e=0;return{__init:f,isOpen:function(){return this.__internal.isOpen},isModal:function(){return this.elements.root.className.indexOf(Fe.modeless)<0},isMaximized:function(){return this.elements.root.className.indexOf(Fe.maximized)>-1},isPinned:function(){return this.elements.root.className.indexOf(Fe.unpinned)<0},maximize:function(){return this.isMaximized()||B(this),this},restore:function(){return this.isMaximized()&&M(this),this},pin:function(){return this.isPinned()||L(this),this},unpin:function(){return this.isPinned()&&N(this),this},bringToFront:function(){return O(0,this),this},moveTo:function(e,t){if(!isNaN(e)&&!isNaN(t)){d("onmove",this);var n=this.elements.dialog,o=n,r=0,s=0;n.style.left&&(r-=parseInt(n.style.left,10)),n.style.top&&(s-=parseInt(n.style.top,10));do{r+=o.offsetLeft,s+=o.offsetTop}while(o=o.offsetParent);var a=e-r,l=t-s;i()&&(a*=-1),n.style.left=a+"px",n.style.top=l+"px",d("onmoved",this)}return this},resizeTo:function(e,t){var n=parseFloat(e),i=parseFloat(t),o=/(\d*\.\d+|\d+)%/;if(!isNaN(n)&&!isNaN(i)&&!0===this.get("resizable")){d("onresize",this),(""+e).match(o)&&(n=n/100*document.documentElement.clientWidth),(""+t).match(o)&&(i=i/100*document.documentElement.clientHeight);var r=this.elements.dialog;"none"!==r.style.maxWidth&&(r.style.minWidth=(He=r.offsetWidth)+"px"),r.style.maxWidth="none",r.style.minHeight=this.elements.header.offsetHeight+this.elements.footer.offsetHeight+"px",r.style.width=n+"px",r.style.height=i+"px",d("onresized",this)}return this},setting:function(e,t){var n=this,i=D(this,this.__internal.options,function(e,t,i){S(n,e,t,i)},e,t);if("get"===i.op)return i.found?i.value:void 0!==this.settings?D(this,this.settings,this.settingUpdated||function(){},e,t).value:void 0;if("set"===i.op){if(i.items.length>0)for(var o=this.settingUpdated||function(){},r=0;r0){var t=this;this.__internal.timer=setTimeout(function(){t.dismiss()},1e3*this.__internal.delay)}return this},setContent:function(n){if("string"==typeof n?(s(this.element),this.element.innerHTML=n):n instanceof e.HTMLElement&&this.element.firstChild!==n&&(s(this.element),this.element.appendChild(n)),this.__internal.closeButton){var i=document.createElement("span");t(i,f.close),i.setAttribute("data-close",!0),this.element.appendChild(i)}return this},dismissOthers:function(){return k.dismissAll(this),this}})}var c,d=[],f=v.notifier.classes,h=f.base;return{setting:function(e,t){if(i(this),void 0===t)return this.__internal[e];switch(e){case"position":this.__internal.position=t,a(this);break;case"delay":this.__internal.delay=t}return this},set:function(e,t){return this.setting(e,t),this},get:function(e){return this.setting(e)},create:function(e,t){i(this);var n=document.createElement("div");return n.className=f.message+("string"==typeof e&&""!==e?" "+f.prefix+e:""),l(n,t)},dismissAll:function(e){for(var t=d.slice(0),n=0;n>t?1:0;return n}function h(e,t,n,i,o,r,s){var a=p;a(e,t,n[0],i-2,o-2,r,s),a(e,t,n[1],i-2,o-1,r,s),a(e,t,n[2],i-1,o-2,r,s),a(e,t,n[3],i-1,o-1,r,s),a(e,t,n[4],i-1,o,r,s),a(e,t,n[5],i,o-2,r,s),a(e,t,n[6],i,o-1,r,s),a(e,t,n[7],i,o,r,s)}function p(e,t,n,i,o,r,s){i<0&&(i+=r,o+=4-(r+4)%8),o<0&&(o+=s,i+=4-(s+4)%8),1!==t[i][o]&&(e[i][o]=n,t[i][o]=1)}return function(g,m){var b,x=function(e){var t,n,i=[],o=0;for(t=0;t>=8;return i}function F(e,t,n){return String.fromCharCode(n)+String.fromCharCode(t)+String.fromCharCode(e)}function w(e){var t=parseInt("0x"+e.substr(1),16),n=255&t;return F((t>>=8)>>8,255&t,n)}function C(e){return e.match(/#[0-91-F]/gi)}function E(e){for(var t,n,i,o,r,s,a,l="",u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",c=0;c>2,r=(3&t)<<4|(n=e.charCodeAt(c++))>>4,s=(15&n)<<2|(i=e.charCodeAt(c++))>>6,a=63&i,isNaN(n)?s=a=64:isNaN(i)&&(a=64),l+=u.charAt(o)+u.charAt(r)+u.charAt(s)+u.charAt(a);return l}function A(e){var t,n=[];for(n[0]=[],t=0;t
',p='
';for(a=0;a'+i+""),k(e,o*d).html(f)}function S(e,t,n,i,o,r){var s,a,l,u,c,d,f,h,p=n.length,g=n[0].length,m=o*g,b=r*p;for(t.showHRI&&(l=y(t.fontSize),b+=y(t.marginHRI)+l),u='',u+='',c='',a=0;a',u+=''+i+"",u+=""),u+="",(h=document.createElement("img")).setAttribute("src","data:image/svg+xml;base64,"+E(u)),k(e,m).append(h)}function D(e,t,n,i,o,r,s,a){var l,u,c,d,f,h,p=e.get(0),g=n.length,m=n[0].length;if(p&&p.getContext){for((c=p.getContext("2d")).lineWidth=1,c.lineCap="butt",c.fillStyle=t.bgColor,c.fillRect(o,r,m*s,g*a),c.fillStyle=t.color,u=0;u?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",a=0,l=0,u=0;for(t=0;te||this.moduleCount<=e||0>t||this.moduleCount<=t)throw Error(e+","+t);return this.modules[e][t]},getModuleCount:function(){return this.moduleCount},make:function(){if(1>this.typeNumber){var e=1;for(e=1;40>e;e++){for(var t=s.getRSBlocks(e,this.errorCorrectLevel),n=new a,i=0,o=0;o=n;n++)if(!(-1>=e+n||this.moduleCount<=e+n))for(var i=-1;7>=i;i++)-1>=t+i||this.moduleCount<=t+i||(this.modules[e+n][t+i]=0<=n&&6>=n&&(0==i||6==i)||0<=i&&6>=i&&(0==n||6==n)||2<=n&&4>=n&&2<=i&&4>=i)},getBestMaskPattern:function(){for(var e=0,t=0,n=0;8>n;n++){this.makeImpl(!0,n);var i=l.getLostPoint(this);(0==n||e>i)&&(e=i,t=n)}return t},createMovieClip:function(e,t,n){for(e=e.createEmptyMovieClip(t,n),this.make(),t=0;t=r;r++)for(var s=-2;2>=s;s++)this.modules[i+r][o+s]=-2==r||2==r||-2==s||2==s||0==r&&0==s}},setupTypeNumber:function(e){for(var t=l.getBCHTypeNumber(this.typeNumber),n=0;18>n;n++){var i=!e&&1==(t>>n&1);this.modules[Math.floor(n/3)][n%3+this.moduleCount-8-3]=i}for(n=0;18>n;n++)i=!e&&1==(t>>n&1),this.modules[n%3+this.moduleCount-8-3][Math.floor(n/3)]=i},setupTypeInfo:function(e,t){for(var n=l.getBCHTypeInfo(this.errorCorrectLevel<<3|t),i=0;15>i;i++){var o=!e&&1==(n>>i&1);6>i?this.modules[i][8]=o:8>i?this.modules[i+1][8]=o:this.modules[this.moduleCount-15+i][8]=o}for(i=0;15>i;i++)o=!e&&1==(n>>i&1),8>i?this.modules[8][this.moduleCount-i-1]=o:9>i?this.modules[8][15-i-1+1]=o:this.modules[8][15-i-1]=o;this.modules[this.moduleCount-8][8]=!e},mapData:function(e,t){for(var n=-1,i=this.moduleCount-1,o=7,r=0,s=this.moduleCount-1;0a;a++)if(null==this.modules[i][s-a]){var u=!1;r>>o&1)),l.getMask(t,i,s-a)&&(u=!u),this.modules[i][s-a]=u,-1==--o&&(r++,o=7)}if(0>(i+=n)||this.moduleCount<=i){i-=n,n=-n;break}}}},o.PAD0=236,o.PAD1=17,o.createData=function(e,t,n){t=s.getRSBlocks(e,t);for(var i=new a,r=0;r8*e)throw Error("code length overflow. ("+i.getLengthInBits()+">"+8*e+")");for(i.getLengthInBits()+4<=8*e&&i.put(0,4);0!=i.getLengthInBits()%8;)i.putBit(!1);for(;!(i.getLengthInBits()>=8*e||(i.put(o.PAD0,8),i.getLengthInBits()>=8*e));)i.put(o.PAD1,8);return o.createBytes(i,t)},o.createBytes=function(e,t){for(var n=0,i=0,o=0,s=Array(t.length),a=Array(t.length),u=0;u>>=1;return t},getPatternPosition:function(e){return l.PATTERN_POSITION_TABLE[e-1]},getMask:function(e,t,n){switch(e){case 0:return 0==(t+n)%2;case 1:return 0==t%2;case 2:return 0==n%3;case 3:return 0==(t+n)%3;case 4:return 0==(Math.floor(t/2)+Math.floor(n/3))%2;case 5:return 0==t*n%2+t*n%3;case 6:return 0==(t*n%2+t*n%3)%2;case 7:return 0==(t*n%3+(t+n)%2)%2;default:throw Error("bad maskPattern:"+e)}},getErrorCorrectPolynomial:function(e){for(var t=new r([1],0),n=0;nt)switch(e){case 1:return 10;case 2:return 9;case n:case 8:return 8;default:throw Error("mode:"+e)}else if(27>t)switch(e){case 1:return 12;case 2:return 11;case n:return 16;case 8:return 10;default:throw Error("mode:"+e)}else{if(!(41>t))throw Error("type:"+t);switch(e){case 1:return 14;case 2:return 13;case n:return 16;case 8:return 12;default:throw Error("mode:"+e)}}},getLostPoint:function(e){for(var t=e.getModuleCount(),n=0,i=0;i=a;a++)if(!(0>i+a||t<=i+a))for(var l=-1;1>=l;l++)0>o+l||t<=o+l||0==a&&0==l||s==e.isDark(i+a,o+l)&&r++;5e)throw Error("glog("+e+")");return u.LOG_TABLE[e]},gexp:function(e){for(;0>e;)e+=255;for(;256<=e;)e-=255;return u.EXP_TABLE[e]},EXP_TABLE:Array(256),LOG_TABLE:Array(256)},c=0;8>c;c++)u.EXP_TABLE[c]=1<c;c++)u.EXP_TABLE[c]=u.EXP_TABLE[c-4]^u.EXP_TABLE[c-5]^u.EXP_TABLE[c-6]^u.EXP_TABLE[c-8];for(c=0;255>c;c++)u.LOG_TABLE[u.EXP_TABLE[c]]=c;return r.prototype={get:function(e){return this.num[e]},getLength:function(){return this.num.length},multiply:function(e){for(var t=Array(this.getLength()+e.getLength()-1),n=0;nthis.getLength()-e.getLength())return this;for(var t=u.glog(this.get(0))-u.glog(e.get(0)),n=Array(this.getLength()),i=0;i>>7-e%8&1)},put:function(e,t){for(var n=0;n>>t-n-1&1))},getLengthInBits:function(){return this.length},putBit:function(e){var t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}},"string"==typeof t&&(t={text:t}),t=e.extend({},{render:"canvas",width:256,height:256,typeNumber:-1,correctLevel:2,background:"#ffffff",foreground:"#000000"},t),this.each(function(){var n;if("canvas"==t.render){(n=new o(t.typeNumber,t.correctLevel)).addData(t.text),n.make();var i=document.createElement("canvas");i.width=t.width,i.height=t.height;for(var r=i.getContext("2d"),s=t.width/n.getModuleCount(),a=t.height/n.getModuleCount(),l=0;l").css("width",t.width+"px").css("height",t.height+"px").css("border","0px").css("border-collapse","collapse").css("background-color",t.background),r=t.width/n.getModuleCount(),s=t.height/n.getModuleCount(),a=0;a").css("height",s+"px").appendTo(i),u=0;u").css("width",r+"px").css("background-color",n.isDark(a,u)?t.foreground:t.background).appendTo(l);n=i,jQuery(n).appendTo(this)})}}(jQuery),function(){"use strict";var e="undefined"!=typeof window&&void 0!==window.document?window.document:{},t="undefined"!=typeof module&&module.exports,n=function(){for(var t,n=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],i=0,o=n.length,r={};i",{class:n+"box "+n+"editor-visible "+n+e.o.lang+" trumbowyg"}),e.isTextarea=e.$ta.is("textarea"),e.isTextarea?(o=e.$ta.val(),e.$ed=i("
"),e.$box.insertAfter(e.$ta).append(e.$ed,e.$ta)):(e.$ed=e.$ta,o=e.$ed.html(),e.$ta=i("
\ No newline at end of file +
\ No newline at end of file diff --git a/src/applications/mixcore/wwwroot/mix-app/views/app-portal/pages/localize/list.html b/src/applications/mixcore/wwwroot/mix-app/views/app-portal/pages/localize/list.html index 54144f81e..37e9d3152 100644 --- a/src/applications/mixcore/wwwroot/mix-app/views/app-portal/pages/localize/list.html +++ b/src/applications/mixcore/wwwroot/mix-app/views/app-portal/pages/localize/list.html @@ -1 +1 @@ -
KeywordValueDefault ValueCategory
\ No newline at end of file +
Setting KeyDescriptionValueCategory
\ No newline at end of file diff --git a/src/applications/mixcore/wwwroot/mix-app/views/app-portal/pages/mix-database-data/list.html b/src/applications/mixcore/wwwroot/mix-app/views/app-portal/pages/mix-database-data/list.html index 2c3e85ba9..63ab21fdb 100644 --- a/src/applications/mixcore/wwwroot/mix-app/views/app-portal/pages/mix-database-data/list.html +++ b/src/applications/mixcore/wwwroot/mix-app/views/app-portal/pages/mix-database-data/list.html @@ -1 +1 @@ -
Total items:
\ No newline at end of file +
Total items:
\ No newline at end of file diff --git a/src/applications/mixcore/wwwroot/mix-app/views/app-portal/pages/mixdb-context/components/mix-databases/view.html b/src/applications/mixcore/wwwroot/mix-app/views/app-portal/pages/mixdb-context/components/mix-databases/view.html index bd9c391d3..0c4933d09 100644 --- a/src/applications/mixcore/wwwroot/mix-app/views/app-portal/pages/mixdb-context/components/mix-databases/view.html +++ b/src/applications/mixcore/wwwroot/mix-app/views/app-portal/pages/mixdb-context/components/mix-databases/view.html @@ -1 +1 @@ -
DatabaseNameTypeAuthor
{{item.displayName}}{{item.systemName}}{{item.type}}{{item.createdBy}}🟢 🟡 🔴 ⚫️
\ No newline at end of file +
DatabaseNameTypeAuthor
{{item.displayName}}{{item.systemName}}{{item.type}}{{item.createdBy}}🟢 🟡 🔴 ⚫️
\ No newline at end of file diff --git a/src/applications/mixcore/wwwroot/mix-app/views/app-portal/pages/mixdb-context/details.html b/src/applications/mixcore/wwwroot/mix-app/views/app-portal/pages/mixdb-context/details.html index 28a6f9dd2..b0ae8d527 100644 --- a/src/applications/mixcore/wwwroot/mix-app/views/app-portal/pages/mixdb-context/details.html +++ b/src/applications/mixcore/wwwroot/mix-app/views/app-portal/pages/mixdb-context/details.html @@ -1 +1 @@ -
\ No newline at end of file +
\ No newline at end of file diff --git a/src/applications/mixcore/wwwroot/mix-app/views/app-portal/pages/oauth-client/details.html b/src/applications/mixcore/wwwroot/mix-app/views/app-portal/pages/oauth-client/details.html new file mode 100644 index 000000000..c18fbeac4 --- /dev/null +++ b/src/applications/mixcore/wwwroot/mix-app/views/app-portal/pages/oauth-client/details.html @@ -0,0 +1 @@ +
\ No newline at end of file diff --git a/src/applications/mixcore/wwwroot/mix-app/views/app-portal/pages/oauth-client/list.html b/src/applications/mixcore/wwwroot/mix-app/views/app-portal/pages/oauth-client/list.html new file mode 100644 index 000000000..fd5363bc8 --- /dev/null +++ b/src/applications/mixcore/wwwroot/mix-app/views/app-portal/pages/oauth-client/list.html @@ -0,0 +1 @@ +
NameApplicationTypeRefreshTokenLifeTimeSecretIsActive
{{item.createdDateTime | utcToLocal:'dd.MM.yy hh:mm a'}}{{item.createdBy}}🟢 🟡 🔴 ⚫️
\ No newline at end of file diff --git a/src/applications/mixcore/wwwroot/mix-app/views/app-portal/pages/theme/components/theme-export-mix-databases/view.html b/src/applications/mixcore/wwwroot/mix-app/views/app-portal/pages/theme/components/theme-export-mix-databases/view.html index 9f37a9716..3f4422c9b 100644 --- a/src/applications/mixcore/wwwroot/mix-app/views/app-portal/pages/theme/components/theme-export-mix-databases/view.html +++ b/src/applications/mixcore/wwwroot/mix-app/views/app-portal/pages/theme/components/theme-export-mix-databases/view.html @@ -1 +1 @@ -

\ No newline at end of file +

\ No newline at end of file diff --git a/src/applications/mixcore/wwwroot/mix-app/views/app-portal/pages/theme/export.html b/src/applications/mixcore/wwwroot/mix-app/views/app-portal/pages/theme/export.html index 83641d93d..142214851 100644 --- a/src/applications/mixcore/wwwroot/mix-app/views/app-portal/pages/theme/export.html +++ b/src/applications/mixcore/wwwroot/mix-app/views/app-portal/pages/theme/export.html @@ -1,3 +1,3 @@ -
Include Configurations
+
Include Configurations
 {{exportThemeDto|json}}
 
\ No newline at end of file diff --git a/src/applications/mixcore/wwwroot/mix-app/views/app-shared/components/mix-column-editor/view.html b/src/applications/mixcore/wwwroot/mix-app/views/app-shared/components/mix-column-editor/view.html index 30bec9d9f..e649396d9 100644 --- a/src/applications/mixcore/wwwroot/mix-app/views/app-shared/components/mix-column-editor/view.html +++ b/src/applications/mixcore/wwwroot/mix-app/views/app-shared/components/mix-column-editor/view.html @@ -1 +1 @@ -
Loading...
{{$ctrl.translate($ctrl.column.systemName)}}: {{$ctrl.translate($ctrl.editor)}}
\ No newline at end of file +
Loading...
{{$ctrl.translate($ctrl.column.systemName)}}: {{$ctrl.translate($ctrl.editor)}}
\ No newline at end of file diff --git a/src/modules/mix.common/Controllers/PostContentApiController.cs b/src/modules/mix.common/Controllers/PostContentApiController.cs index 50c802535..40dcc6c3c 100644 --- a/src/modules/mix.common/Controllers/PostContentApiController.cs +++ b/src/modules/mix.common/Controllers/PostContentApiController.cs @@ -1,4 +1,5 @@ -using Microsoft.AspNetCore.Mvc; +using MessagePack.Resolvers; +using Microsoft.AspNetCore.Mvc; using Mix.Common.Domain.ViewModels; using Mix.Heart.Extensions; using Mix.Heart.Models; @@ -69,7 +70,7 @@ protected override async Task GetById(int id) if (result.AdditionalData == null) { await result.LoadAdditionalDataAsync(_mixDbDataService); - await CacheService.SetAsync($"{id}/{typeof(PostContentViewModel).FullName}", result, typeof(MixPostContent).FullName, "full"); + await CacheService.SetAsync($"{id}/{typeof(PostContentViewModel).Name}", result, $"{typeof(MixPostContent).Assembly.GetName().Name}_{typeof(MixPostContent).Name}", "full"); } return result; } diff --git a/src/modules/mix.common/Controllers/SharedApiController.cs b/src/modules/mix.common/Controllers/SharedApiController.cs index 563f49fda..27f76a3e6 100644 --- a/src/modules/mix.common/Controllers/SharedApiController.cs +++ b/src/modules/mix.common/Controllers/SharedApiController.cs @@ -75,7 +75,7 @@ public ActionResult EncryptMessage(CryptoMessageDto encryptMessage) string msg = encryptMessage.ObjectData != null ? encryptMessage.ObjectData.ToString(Formatting.None) : encryptMessage.StringData; - var result = AesEncryptionHelper.EncryptString(msg, key); + var result = AesEncryptionHelper.EncryptString(msg, key, encryptMessage.GetEncoding()); return Ok(result); } @@ -84,7 +84,7 @@ public ActionResult EncryptMessage(CryptoMessageDto encryptMessage) public ActionResult DecryptMessage(CryptoMessageDto encryptMessage) { string key = encryptMessage.Key ?? GlobalConfigService.Instance.AppSettings.ApiEncryptKey; - string msg = AesEncryptionHelper.DecryptString(encryptMessage.StringData, key); + string msg = AesEncryptionHelper.DecryptString(encryptMessage.StringData, key, encryptMessage.GetEncoding()); return Ok(msg); } diff --git a/src/modules/mix.common/Domain/Dtos/CryptoMessageDto.cs b/src/modules/mix.common/Domain/Dtos/CryptoMessageDto.cs index b65340753..7bb3a10eb 100644 --- a/src/modules/mix.common/Domain/Dtos/CryptoMessageDto.cs +++ b/src/modules/mix.common/Domain/Dtos/CryptoMessageDto.cs @@ -1,9 +1,21 @@ -namespace Mix.Common.Domain.Dtos +using Mix.Common.Domain.Enums; +using System.Text; + +namespace Mix.Common.Domain.Dtos { public class CryptoMessageDto { public string Key { get; set; } public JObject ObjectData { get; set; } public string StringData { get; set; } + public MixEncoding EncodingType { get; set; } + public Encoding GetEncoding() + { + return EncodingType switch + { + MixEncoding.UNICODE => Encoding.Unicode, + _ => Encoding.UTF8 + }; + } } } diff --git a/src/modules/mix.common/Domain/Enums/MixEncoding.cs b/src/modules/mix.common/Domain/Enums/MixEncoding.cs new file mode 100644 index 000000000..602694c8e --- /dev/null +++ b/src/modules/mix.common/Domain/Enums/MixEncoding.cs @@ -0,0 +1,12 @@ +namespace Mix.Common.Domain.Enums +{ + public enum MixEncoding + { + UTF8, + UTF16, + UTF32, + UTF64, + UTF128, + UNICODE + } +} diff --git a/src/modules/mix.grpc/mix.grpc.csproj b/src/modules/mix.grpc/mix.grpc.csproj index 422ada4ec..b65575859 100644 --- a/src/modules/mix.grpc/mix.grpc.csproj +++ b/src/modules/mix.grpc/mix.grpc.csproj @@ -6,7 +6,7 @@ - + diff --git a/src/modules/mix.log/Startup.cs b/src/modules/mix.log/Startup.cs index e317e947c..81da90d1d 100644 --- a/src/modules/mix.log/Startup.cs +++ b/src/modules/mix.log/Startup.cs @@ -19,7 +19,6 @@ public void ConfigureServices(IServiceCollection services) { services.AddMixServices(Assembly.GetExecutingAssembly(), Configuration); services.AddMixCors(); - services.AddMixLog(Configuration); services.AddMixAuthorize(Configuration); } diff --git a/src/modules/mix.messenger/mix.messenger.csproj b/src/modules/mix.messenger/mix.messenger.csproj index fa124a00c..d28226fc6 100644 --- a/src/modules/mix.messenger/mix.messenger.csproj +++ b/src/modules/mix.messenger/mix.messenger.csproj @@ -5,13 +5,6 @@ Mix.Messenger - - - - - - - diff --git a/src/modules/mix.portal/Controllers/MixDatabaseContextController.cs b/src/modules/mix.portal/Controllers/MixDatabaseContextController.cs index 3efe6a8da..09249462c 100644 --- a/src/modules/mix.portal/Controllers/MixDatabaseContextController.cs +++ b/src/modules/mix.portal/Controllers/MixDatabaseContextController.cs @@ -4,6 +4,7 @@ using Mix.Lib.Interfaces; using Mix.Mq.Lib.Models; using Mix.RepoDb.Interfaces; +using Mix.Shared.Services; using Mix.SignalR.Interfaces; namespace Mix.Portal.Controllers @@ -27,6 +28,11 @@ public MixDatabaseContextController(IHttpContextAccessor httpContextAccessor, IC #region Overrides protected override async Task CreateHandlerAsync(MixDatabaseContextViewModel data, CancellationToken cancellationToken = default) { + if (data != null && !string.IsNullOrEmpty(data.DecryptedConnectionString)) + { + data.ConnectionString = AesEncryptionHelper.EncryptString(data.DecryptedConnectionString, GlobalConfigService.Instance.AesKey); + } + var result = await base.CreateHandlerAsync(data, cancellationToken); if (result > 0) { diff --git a/src/modules/mix.portal/Controllers/MixDatabaseController.cs b/src/modules/mix.portal/Controllers/MixDatabaseController.cs index 708c87ea7..ba3598b38 100644 --- a/src/modules/mix.portal/Controllers/MixDatabaseController.cs +++ b/src/modules/mix.portal/Controllers/MixDatabaseController.cs @@ -1,5 +1,6 @@ -using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc; using Mix.Auth.Constants; +using Mix.Database.Services; using Mix.Lib.Interfaces; using Mix.Mq.Lib.Models; using Mix.RepoDb.Interfaces; @@ -62,6 +63,24 @@ public async Task> Duplicate(int id, Cancella throw new MixException(MixErrorStatus.NotFound, id); } + //[MixAuthorize(MixRoles.Owner)] + [HttpGet("export-entity/{dbContextName}")] + public async Task ExportEntity(string dbContextName) + { + MixDatabaseContextViewModel dbContext = await MixDatabaseContextViewModel + .GetRepository(Uow, CacheService).GetSingleAsync(m => m.SystemName == dbContextName); + if (dbContext == null) + { + return BadRequest(dbContextName); + } + var runtimeDbContextService = new RuntimeDbContextService(HttpContextAccessor, _databaseService); + string cnn = dbContext != null + ? dbContext.DecryptedConnectionString + : _databaseService.GetConnectionString(MixConstants.CONST_MIXDB_CONNECTION); + var sourceFiles = runtimeDbContextService.CreateDynamicDbContext(cnn); + return Ok(sourceFiles); + } + [MixAuthorize(MixRoles.Owner)] [HttpGet("migrate/{name}")] public async Task Migrate(string name) diff --git a/src/modules/mix.portal/Controllers/MixDbController.cs b/src/modules/mix.portal/Controllers/MixDbController.cs index 933a166bc..a00c68fb3 100644 --- a/src/modules/mix.portal/Controllers/MixDbController.cs +++ b/src/modules/mix.portal/Controllers/MixDbController.cs @@ -1,4 +1,4 @@ -using Amazon.SQS.Model.Internal.MarshallTransformations; +using Amazon.SQS.Model.Internal.MarshallTransformations; using DocumentFormat.OpenXml.Office2016.Drawing.ChartDrawing; using DocumentFormat.OpenXml.Spreadsheet; using Microsoft.AspNetCore.Mvc; @@ -91,7 +91,7 @@ public override async Task OnActionExecutionAsync(ActionExecutingContext context _fieldNameService = new FieldNameService(_mixDb.NamingConvention); if (_mixDb.MixDatabaseContextId.HasValue) { - _repository.Init(_tableName, _mixDb.MixDatabaseContext.DatabaseProvider, _mixDb.MixDatabaseContext.ConnectionString); + _repository.Init(_tableName, _mixDb.MixDatabaseContext.DatabaseProvider, _mixDb.MixDatabaseContext.DecryptedConnectionString); } else { @@ -457,15 +457,17 @@ public async Task PatchMany([FromBody] IEnumerable lstOb [HttpDelete("{id}")] public async Task> Delete(int id) { - var data = await _repository.DeleteAsync(id, _fieldNameService); - var childAssociationsQueries = GetAssociationQueries(parentDatabaseName: _tableName, parentId: id); - var parentAssociationsQueries = GetAssociationQueries(childDatabaseName: _tableName, childId: id); - _repository.InitTableName(AssociationTableName); + var objId = GetId(id); + var result = await _mixDbDataService.GetById(_tableName, objId, false); + var data = await _repository.DeleteAsync(objId, _fieldNameService); + var childAssociationsQueries = GetAssociationQueries(parentDatabaseName: _tableName, parentId: objId); + var parentAssociationsQueries = GetAssociationQueries(childDatabaseName: _tableName, childId: objId); + _repository.InitTableName(GetRelationshipDbName()); await _repository.DeleteAsync(childAssociationsQueries); await _repository.DeleteAsync(parentAssociationsQueries); string username = _idService.GetClaim(User, MixClaims.Username); QueueService.PushMemoryQueue(CurrentTenant.Id, MixQueueTopics.MixBackgroundTasks, MixQueueActions.MixDbEvent, - new MixDbEventCommand(username, MixDbCommandQueueActions.Delete, _tableName, new(new JProperty("data", id)))); + new MixDbEventCommand(username, MixDbCommandQueueAction.Delete.ToString(), _tableName, new(new JProperty("data", result)))); return data > 0 ? Ok() : NotFound(); } diff --git a/src/modules/mix.portal/Domain/ViewModels/MixPostContentViewModel.cs b/src/modules/mix.portal/Domain/ViewModels/MixPostContentViewModel.cs index 4f28b11e5..7abcca010 100644 --- a/src/modules/mix.portal/Domain/ViewModels/MixPostContentViewModel.cs +++ b/src/modules/mix.portal/Domain/ViewModels/MixPostContentViewModel.cs @@ -159,7 +159,7 @@ public async Task LoadAdditionalDataAsync( if (isChanged) { - await cacheService.SetAsync($"{Id}/{GetType().FullName}", this, typeof(MixPostContent).FullName, "full"); + await cacheService.SetAsync($"{Id}/{GetType().Name}", this, $"{typeof(MixPostContent).Assembly.GetName().Name}_{typeof(MixPostContent).Name}", "full"); } } diff --git a/src/modules/mix.portal/Program.cs b/src/modules/mix.portal/Program.cs index 73350b7cd..548c91f58 100644 --- a/src/modules/mix.portal/Program.cs +++ b/src/modules/mix.portal/Program.cs @@ -4,6 +4,10 @@ using Mix.Log.Lib; using Microsoft.Azure.Amqp.Framing; using Mix.Lib.Middlewares; +using Mix.Log.Lib.Publishers; +using Microsoft.Extensions.DependencyInjection.Extensions; +using Mix.Log.Lib.Interfaces; +using Mix.Log.Lib.Services; var builder = MixCmsHelper.CreateWebApplicationBuilder(args); if (builder.Environment.IsDevelopment()) @@ -18,7 +22,8 @@ builder.Services.AddMixServices(Assembly.GetExecutingAssembly(), builder.Configuration); builder.Services.AddMixCors(); -builder.Services.AddMixLog(builder.Configuration); +builder.AddMixLogPublisher(); + // Must app Auth config after Add mixservice to init App config builder.Services.AddMixAuthorize(builder.Configuration); diff --git a/src/modules/mix.portal/Startup.cs b/src/modules/mix.portal/Startup.cs index 2d3a0239c..9e6f949c7 100644 --- a/src/modules/mix.portal/Startup.cs +++ b/src/modules/mix.portal/Startup.cs @@ -20,7 +20,6 @@ public void ConfigureServices(IServiceCollection services) services.AddMixServices(Assembly.GetExecutingAssembly(), Configuration); services.AddMixCors(); - services.AddMixLog(Configuration); // Must app Auth config after Add mixservice to init App config services.AddMixAuthorize(Configuration); } diff --git a/src/modules/mix.portal/mix.portal.csproj b/src/modules/mix.portal/mix.portal.csproj index b6f19bce2..f523f5e9a 100644 --- a/src/modules/mix.portal/mix.portal.csproj +++ b/src/modules/mix.portal/mix.portal.csproj @@ -1,4 +1,4 @@ - + net8.0 @@ -63,7 +63,7 @@ - + diff --git a/src/modules/mix.scheduler/Domain/Jobs/SendMessageQueueJob.cs b/src/modules/mix.scheduler/Domain/Jobs/SendMessageQueueJob.cs index d81a91bc6..c560055ec 100644 --- a/src/modules/mix.scheduler/Domain/Jobs/SendMessageQueueJob.cs +++ b/src/modules/mix.scheduler/Domain/Jobs/SendMessageQueueJob.cs @@ -26,7 +26,7 @@ public override Task ExecuteHandler(IJobExecutionContext context) Success = true, TopicId = objData.Value("topic"), Action = objData.Value("action"), - Data = objData.Value("data").ToString() + Data = objData.Value("data").ToString(Newtonsoft.Json.Formatting.None) }; QueueService.PushMemoryQueue(msg); diff --git a/src/modules/mix.tenancy/Domain/Services/InitCmsService.cs b/src/modules/mix.tenancy/Domain/Services/InitCmsService.cs index db81336c9..38b958f71 100644 --- a/src/modules/mix.tenancy/Domain/Services/InitCmsService.cs +++ b/src/modules/mix.tenancy/Domain/Services/InitCmsService.cs @@ -94,11 +94,10 @@ await _roleManager.CreateAsync(new MixRole() await _userManager.AddToRoleAsync(user, MixRoleEnums.SuperAdmin.ToString()); await _userManager.AddToRoleAsync(user, MixRoleEnums.Owner.ToString()); await _userManager.AddToTenant(user, 1); - var rsaKeys = RSAEncryptionHelper.GenerateKeys(); var aesKey = GlobalConfigService.Instance.AppSettings.ApiEncryptKey; await _cmsUow.CompleteAsync(); var token = await _identityService.GenerateAccessTokenAsync( - user, true, aesKey, rsaKeys[MixConstants.CONST_RSA_PUBLIC_KEY]); + user, true); if (token != null) { GlobalConfigService.Instance.AppSettings.ApiEncryptKey = aesKey; diff --git a/src/platform/core/mix-heart b/src/platform/core/mix-heart index b1f765bb0..7cb98caa5 160000 --- a/src/platform/core/mix-heart +++ b/src/platform/core/mix-heart @@ -1 +1 @@ -Subproject commit b1f765bb0df68ae20ecdf0066a3d7203fbe171a8 +Subproject commit 7cb98caa5813263be3233ab03fb61ee47316e3f1 diff --git a/src/platform/mix.auth/Models/RegisterExternalBindingModel.cs b/src/platform/mix.auth/Models/RegisterExternalBindingModel.cs index 1d0988f14..4cf6b5263 100644 --- a/src/platform/mix.auth/Models/RegisterExternalBindingModel.cs +++ b/src/platform/mix.auth/Models/RegisterExternalBindingModel.cs @@ -1,4 +1,5 @@ -using Mix.Auth.Enums; +using Mix.Auth.Enums; +using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Linq; @@ -12,6 +13,7 @@ public class RegisterExternalBindingModel public string UserName { get; set; } public string Email { get; set; } public string PhoneNumber { get; set; } + public JObject? Data { get; set; } public MixExternalLoginProviders Provider { get; set; } public string ExternalAccessToken { get; set; } diff --git a/src/platform/mix.communicator/Models/EmailMessageModel.cs b/src/platform/mix.communicator/Models/EmailMessageModel.cs index f48dc434f..a03f58fef 100644 --- a/src/platform/mix.communicator/Models/EmailMessageModel.cs +++ b/src/platform/mix.communicator/Models/EmailMessageModel.cs @@ -7,5 +7,6 @@ public sealed class EmailMessageModel public string To { get; set; } public string? CC { get; set; } public string? From { get; set; } + public string? FromName { get; set; } } } diff --git a/src/platform/mix.communicator/ServiceCollectionExtensions.cs b/src/platform/mix.communicator/ServiceCollectionExtensions.cs index e4153ed92..6cd55d6e6 100644 --- a/src/platform/mix.communicator/ServiceCollectionExtensions.cs +++ b/src/platform/mix.communicator/ServiceCollectionExtensions.cs @@ -8,6 +8,7 @@ public static class ServiceCollectionExtensions public static IServiceCollection AddMixCommunicators(this IServiceCollection services) { services.TryAddSingleton(); + services.TryAddSingleton(); services.TryAddScoped(); return services; } diff --git a/src/platform/mix.communicator/Services/EmailService.cs b/src/platform/mix.communicator/Services/EmailService.cs index 53f9e0bdd..c87bc0a8d 100644 --- a/src/platform/mix.communicator/Services/EmailService.cs +++ b/src/platform/mix.communicator/Services/EmailService.cs @@ -27,7 +27,7 @@ public async Task SendMail(EmailMessageModel msg) { IsBodyHtml = true, - From = new MailAddress(msg.From ?? Settings.From, Settings.FromName) + From = new MailAddress(msg.From ?? Settings.From, msg.FromName ?? Settings.FromName) }; foreach (var receipient in msg.To.Split(',')) { diff --git a/src/platform/mix.communicator/Services/FirebaseService.cs b/src/platform/mix.communicator/Services/FirebaseService.cs index a9ebb37a9..4676aee3f 100644 --- a/src/platform/mix.communicator/Services/FirebaseService.cs +++ b/src/platform/mix.communicator/Services/FirebaseService.cs @@ -36,30 +36,61 @@ public async Task VerifyTokenAsync(string idToken) return decodedToken; } - public async Task SendToDevice( + public async Task SendNotificationToDevice( string registrationToken, - Notification notification, - Dictionary messages) + Notification? notification = default) { - // This registration token comes from the client FCM SDKs. - //var registrationToken = "YOUR_REGISTRATION_TOKEN"; + try + { + + // This registration token comes from the client FCM SDKs. + var message = new Message() + { + Notification = notification, + Token = registrationToken, + }; - // See documentation on defining a message payload. - var message = new Message() + // Send a message to the device corresponding to the provided + // registration token. + string response = await FirebaseMessaging.DefaultInstance.SendAsync(message); + + // Response is a message ID string. + Console.WriteLine("Successfully sent message: " + response); + + return response; + } + catch (Exception) { - Data = messages, - Notification = notification, - Token = registrationToken, - }; + throw; + } + } + + public async Task SendWebPushToDevice( + List registrationTokens, WebpushConfig config) + { + try + { + + // This registration token comes from the client FCM SDKs. + var message = new MulticastMessage() + { + Tokens = registrationTokens, + Webpush = config + }; - // Send a message to the device corresponding to the provided - // registration token. - string response = await FirebaseMessaging.DefaultInstance.SendAsync(message); + // Send a message to the device corresponding to the provided + // registration token. + var responses = await FirebaseMessaging.DefaultInstance.SendMulticastAsync(message); - // Response is a message ID string. - Console.WriteLine("Successfully sent message: " + response); + // Response is a message ID string. + Console.WriteLine("Successfully sent message: " + responses); - return response; + return string.Join(",", responses.Responses.Select(r => r.MessageId)); + } + catch (Exception) + { + throw; + } } public async Task SendToMultipleDevices( @@ -79,7 +110,7 @@ public async Task SendToMultipleDevices( }; var responses = await FirebaseMessaging.DefaultInstance.SendMulticastAsync(message); // See the BatchResponse reference documentation - // for the contents of response. + // for the contents of responses. return string.Join(",", responses.Responses.Select(r => r.MessageId)); } catch (Exception ex) @@ -197,7 +228,7 @@ public async Task SendBatchMessages(string registrationToken) var response = await FirebaseMessaging.DefaultInstance.SendAllAsync(messages); // See the BatchResponse reference documentation - // for the contents of response. + // for the contents of responses. Console.WriteLine($"{response.SuccessCount} messages were sent successfully"); } } diff --git a/src/platform/mix.communicator/Services/FirestoreService.cs b/src/platform/mix.communicator/Services/FirestoreService.cs new file mode 100644 index 000000000..4c6ee9b17 --- /dev/null +++ b/src/platform/mix.communicator/Services/FirestoreService.cs @@ -0,0 +1,56 @@ +using Google.Apis.Auth.OAuth2; +using Google.Cloud.Firestore; +using Microsoft.Extensions.Configuration; +using Mix.Communicator.Models; + +namespace Mix.Communicator.Services +{ + // Ref: https://firebase.google.com/docs/cloud-messaging/send-message + public class FirestoreService + { + private readonly FirestoreDb _db; + private readonly FirebaseSettingModel _settings = new FirebaseSettingModel(); + public FirestoreService(IConfiguration configuration) + { + configuration.GetSection(MixAppSettingsSection.GoogleFirebase).Bind(_settings); + if (!string.IsNullOrEmpty(_settings.ProjectId) && !string.IsNullOrEmpty(_settings.Filename)) + { + + var googleCredential = _settings.Filename; + + var credential = GoogleCredential.FromFile(googleCredential); + var builder = new FirestoreDbBuilder + { + ProjectId = _settings.ProjectId, + Credential = credential, + }; + _db = builder.Build(); + } + } + + public async Task GetDocumentAsync(string collectionPath, string documentId) + { + return _db.Collection(collectionPath).Document(documentId); + } + + public async Task AddDocumentAsync(string collectionPath, Dictionary data) + { + DocumentReference docRef = _db.Collection(collectionPath).Document(); + return await docRef.SetAsync(data); + } + + public async Task UpdateDocumentAsync(string collectionPath, string documentId, Dictionary data) + { + DocumentReference docRef = _db.Collection(collectionPath).Document(documentId); + return await docRef.UpdateAsync(data); + } + + public async Task DeleteDocumentAsync(string collectionPath, string documentId) + { + DocumentReference docRef = _db.Collection(collectionPath).Document(documentId); + await docRef.DeleteAsync(); + } + + + } +} diff --git a/src/platform/mix.communicator/mix.communicator.csproj b/src/platform/mix.communicator/mix.communicator.csproj index 8e34a4e2c..42b158e2d 100644 --- a/src/platform/mix.communicator/mix.communicator.csproj +++ b/src/platform/mix.communicator/mix.communicator.csproj @@ -1,4 +1,4 @@ - + net8.0 @@ -13,8 +13,9 @@ - - + + + diff --git a/src/platform/mix.constant/Constants/MixFolders.cs b/src/platform/mix.constant/Constants/MixFolders.cs index fb63b6a1a..73dd053dd 100644 --- a/src/platform/mix.constant/Constants/MixFolders.cs +++ b/src/platform/mix.constant/Constants/MixFolders.cs @@ -24,6 +24,6 @@ public class MixFolders public const string UploadsFolder = "uploads"; public const string SiteContentAssetsFolder = "mixcontent/assets"; public const string DefaultMixContentFolder = "wwwroot/default-mixcontent"; - public const string MixCoreConfigurationFolder = "../../applications/mixcore/mixcontent/shared"; + public const string MixCoreConfigurationFolder = "../../applications/p4ps/mixcontent/shared"; } } \ No newline at end of file diff --git a/src/platform/mix.database/Base/BaseDbContext.cs b/src/platform/mix.database/Base/BaseDbContext.cs index 4d44f474e..8f6248d91 100644 --- a/src/platform/mix.database/Base/BaseDbContext.cs +++ b/src/platform/mix.database/Base/BaseDbContext.cs @@ -16,10 +16,11 @@ public BaseDbContext() { } - public BaseDbContext(DatabaseService databaseService, string connectionStringName) + public BaseDbContext(DatabaseService databaseService, string connectionStringName, MixDatabaseProvider? databaseProvider = null) { _databaseService = databaseService; _connectionStringName = connectionStringName; + _databaseProvider = databaseProvider ?? _databaseService.DatabaseProvider; _dbContextType = GetType(); } public BaseDbContext(string connectionString, MixDatabaseProvider databaseProvider) diff --git a/src/platform/mix.database/Entities/Account/Permission.cs b/src/platform/mix.database/Entities/Account/Permission.cs new file mode 100644 index 000000000..fc886676a --- /dev/null +++ b/src/platform/mix.database/Entities/Account/Permission.cs @@ -0,0 +1,17 @@ +using Mix.Heart.Entities; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Mix.Database.Entities.Account +{ + public class Permission : EntityBase + { + public int MixTenantId { get; set; } + public string DisplayName { get; set; } + public string Group { get; set; } + public string Key { get; set; } + } +} diff --git a/src/platform/mix.database/Entities/Account/SysMixDatabaseAssociation.cs b/src/platform/mix.database/Entities/Account/SysMixDatabaseAssociation.cs new file mode 100644 index 000000000..a2ae1d9e9 --- /dev/null +++ b/src/platform/mix.database/Entities/Account/SysMixDatabaseAssociation.cs @@ -0,0 +1,15 @@ +using Mix.Heart.Entities; + +namespace Mix.Database.Entities.Account +{ + public class SysMixDatabaseAssociation : EntityBase + { + public int MixTenantId { get; set; } + public string ParentDatabaseName { get; set; } + public string ChildDatabaseName { get; set; } + public Guid? GuidParentId { get; set; } + public Guid? GuidChildId { get; set; } + public int ParentId { get; set; } + public int ChildId { get; set; } + } +} diff --git a/src/platform/mix.database/Entities/Account/_MixCmsAccountContext.cs b/src/platform/mix.database/Entities/Account/_MixCmsAccountContext.cs index 1a0506752..fb01a5f6f 100644 --- a/src/platform/mix.database/Entities/Account/_MixCmsAccountContext.cs +++ b/src/platform/mix.database/Entities/Account/_MixCmsAccountContext.cs @@ -6,6 +6,7 @@ using Mix.Database.Services; using MySqlConnector; +using System.Security; namespace Mix.Database.Entities.Account { diff --git a/src/platform/mix.database/Entities/AuditLog/EntityConfigurations/AuditLogConfiguration.cs b/src/platform/mix.database/Entities/AuditLog/EntityConfigurations/AuditLogConfiguration.cs index 2a6d0175b..394a1f473 100644 --- a/src/platform/mix.database/Entities/AuditLog/EntityConfigurations/AuditLogConfiguration.cs +++ b/src/platform/mix.database/Entities/AuditLog/EntityConfigurations/AuditLogConfiguration.cs @@ -1,9 +1,10 @@ -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; using Mix.Database.Entities.Account; using Mix.Database.EntityConfigurations; using Mix.Database.Services; using Newtonsoft.Json.Linq; - +using Mix.Database.EntityConfigurations.Base; +using Microsoft.Extensions.DependencyModel.Resolution; namespace Mix.Database.Entities.AuditLog.EntityConfigurations { internal class AuditLogConfiguration : IEntityTypeConfiguration diff --git a/src/platform/mix.database/Entities/AuditLog/_AuditLogDbContext.cs b/src/platform/mix.database/Entities/AuditLog/_AuditLogDbContext.cs index f39c9af98..831fc51f1 100644 --- a/src/platform/mix.database/Entities/AuditLog/_AuditLogDbContext.cs +++ b/src/platform/mix.database/Entities/AuditLog/_AuditLogDbContext.cs @@ -1,4 +1,5 @@ -using Mix.Database.Entities.AuditLog.EntityConfigurations; +using Mix.Database.Entities.AuditLog.EntityConfigurations; +using Mix.Database.Services; using Mix.Heart.Services; namespace Mix.Database.Entities.AuditLog diff --git a/src/platform/mix.database/Entities/AuditLog/_MySqlAuditLogDbContext.cs b/src/platform/mix.database/Entities/AuditLog/_MySqlAuditLogDbContext.cs new file mode 100644 index 000000000..dd6098493 --- /dev/null +++ b/src/platform/mix.database/Entities/AuditLog/_MySqlAuditLogDbContext.cs @@ -0,0 +1,13 @@ +using Mix.Database.Entities.AuditLog.EntityConfigurations; +using Mix.Database.Services; +using Mix.Heart.Services; + +namespace Mix.Database.Entities.AuditLog +{ + public class MySqlAuditLogDbContext : AuditLogDbContext + { + public MySqlAuditLogDbContext(DatabaseService databaseService) : base(databaseService) + { + } + } +} diff --git a/src/platform/mix.database/Entities/AuditLog/_PostgresAuditLogDbContext.cs b/src/platform/mix.database/Entities/AuditLog/_PostgresAuditLogDbContext.cs new file mode 100644 index 000000000..10efcbf70 --- /dev/null +++ b/src/platform/mix.database/Entities/AuditLog/_PostgresAuditLogDbContext.cs @@ -0,0 +1,13 @@ +using Mix.Database.Entities.AuditLog.EntityConfigurations; +using Mix.Database.Services; +using Mix.Heart.Services; + +namespace Mix.Database.Entities.AuditLog +{ + public class PostgresAuditLogDbContext : AuditLogDbContext + { + public PostgresAuditLogDbContext(DatabaseService databaseService) : base(databaseService) + { + } + } +} diff --git a/src/platform/mix.database/Entities/AuditLog/_SqlServerAuditLogDbContext.cs b/src/platform/mix.database/Entities/AuditLog/_SqlServerAuditLogDbContext.cs new file mode 100644 index 000000000..5cacad224 --- /dev/null +++ b/src/platform/mix.database/Entities/AuditLog/_SqlServerAuditLogDbContext.cs @@ -0,0 +1,13 @@ +using Mix.Database.Entities.AuditLog.EntityConfigurations; +using Mix.Database.Services; +using Mix.Heart.Services; + +namespace Mix.Database.Entities.AuditLog +{ + public class SqlServerAuditLogDbContext : AuditLogDbContext + { + public SqlServerAuditLogDbContext(DatabaseService databaseService) : base(databaseService) + { + } + } +} diff --git a/src/platform/mix.database/Entities/AuditLog/_SqliteAuditLogDbContext.cs b/src/platform/mix.database/Entities/AuditLog/_SqliteAuditLogDbContext.cs new file mode 100644 index 000000000..d2166d0f8 --- /dev/null +++ b/src/platform/mix.database/Entities/AuditLog/_SqliteAuditLogDbContext.cs @@ -0,0 +1,13 @@ +using Mix.Database.Entities.AuditLog.EntityConfigurations; +using Mix.Database.Services; +using Mix.Heart.Services; + +namespace Mix.Database.Entities.AuditLog +{ + public class SqlITEAuditLogDbContext : AuditLogDbContext + { + public SqlITEAuditLogDbContext(DatabaseService databaseService) : base(databaseService) + { + } + } +} diff --git a/src/platform/mix.database/Entities/QueueLog/EntityConfigurations/QueueLogConfiguration.cs b/src/platform/mix.database/Entities/QueueLog/EntityConfigurations/QueueLogConfiguration.cs new file mode 100644 index 000000000..e3640c7b6 --- /dev/null +++ b/src/platform/mix.database/Entities/QueueLog/EntityConfigurations/QueueLogConfiguration.cs @@ -0,0 +1,70 @@ +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using Mix.Database.Entities.QueueLog; +using Mix.Database.EntityConfigurations.Base; +using Mix.Database.Services; +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Mix.Database.Entities.QueueLog.EntityConfigurations +{ + internal class QueueLogConfiguration : EntityBaseConfiguration + { + public QueueLogConfiguration(DatabaseService databaseService): base(databaseService) + { + } + + public override void Configure(EntityTypeBuilder builder) + { + base.Configure(builder); + + builder.Property(e => e.TopicId) + .HasColumnType($"{Config.String}{Config.MediumLength}"); + + builder.Property(e => e.SubscriptionId) + .HasColumnType($"{Config.String}{Config.MediumLength}"); + + builder.Property(e => e.DataTypeFullName) + .HasColumnType($"{Config.String}{Config.MediumLength}"); + + builder.Property(e => e.Action) + .HasColumnType($"{Config.String}{Config.MediumLength}"); + + builder.Property(e => e.Note) + .HasColumnType($"{Config.String}{Config.MediumLength}"); + + builder.Property(e => e.State) + .IsRequired() + .HasConversion(new EnumToStringConverter()) + .HasColumnType($"{Config.String}{Config.SmallLength}") + .HasCharSet(Config.CharSet); + + builder.Property(e => e.StringData) + .HasColumnType(Config.Text); + + builder.Property(e => e.ObjectData) + .HasConversion( + v => v.ToString(Newtonsoft.Json.Formatting.None), + v => !string.IsNullOrEmpty(v) ? JObject.Parse(v) : new()) + .IsRequired(false) + .HasColumnType(Config.Text); + + builder.Property(e => e.Exception) + .HasConversion( + v => v.ToString(Newtonsoft.Json.Formatting.None), + v => !string.IsNullOrEmpty(v) ? JObject.Parse(v) : new()) + .IsRequired(false) + .HasColumnType(Config.Text); + + builder.Property(e => e.Subscriptions) + .HasConversion( + v => v.ToString(Newtonsoft.Json.Formatting.None), + v => !string.IsNullOrEmpty(v) ? JArray.Parse(v) : new()) + .IsRequired(false) + .HasColumnType(Config.Text); + } + } +} diff --git a/src/platform/mix.database/Entities/QueueLog/QueueLog.cs b/src/platform/mix.database/Entities/QueueLog/QueueLog.cs new file mode 100644 index 000000000..af21a544e --- /dev/null +++ b/src/platform/mix.database/Entities/QueueLog/QueueLog.cs @@ -0,0 +1,25 @@ +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Mix.Database.Entities.QueueLog +{ + public sealed class QueueLog : EntityBase + { + public Guid? QueueMessageId { get; set; } + public string TopicId { get; set; } + public string SubscriptionId { get; set; } + public string Action { get; set; } + public string StringData { get; set; } + public JObject ObjectData { get; set; } + public JObject Exception { get; set; } + public JArray Subscriptions { get; set; } + public string DataTypeFullName { get; set; } + public string Note { get; set; } + public MixQueueMessageLogState State { get; set; } + public int TenantId { get; set; } + } +} diff --git a/src/platform/mix.database/Entities/QueueLog/_MySqlQueueLogDbContext.cs b/src/platform/mix.database/Entities/QueueLog/_MySqlQueueLogDbContext.cs new file mode 100644 index 000000000..291fa6d92 --- /dev/null +++ b/src/platform/mix.database/Entities/QueueLog/_MySqlQueueLogDbContext.cs @@ -0,0 +1,13 @@ +using Mix.Database.Entities.QueueLog.EntityConfigurations; +using Mix.Database.Services; +using Mix.Heart.Services; + +namespace Mix.Database.Entities.QueueLog +{ + public class MySqlQueueLogDbContext : QueueLogDbContext + { + public MySqlQueueLogDbContext(DatabaseService databaseService) : base(databaseService) + { + } + } +} diff --git a/src/platform/mix.database/Entities/QueueLog/_PostgresQueueLogDbContext.cs b/src/platform/mix.database/Entities/QueueLog/_PostgresQueueLogDbContext.cs new file mode 100644 index 000000000..0b9c240a8 --- /dev/null +++ b/src/platform/mix.database/Entities/QueueLog/_PostgresQueueLogDbContext.cs @@ -0,0 +1,13 @@ +using Mix.Database.Entities.QueueLog.EntityConfigurations; +using Mix.Database.Services; +using Mix.Heart.Services; + +namespace Mix.Database.Entities.QueueLog +{ + public class PostgresQueueLogDbContext : QueueLogDbContext + { + public PostgresQueueLogDbContext(DatabaseService databaseService) : base(databaseService) + { + } + } +} diff --git a/src/platform/mix.database/Entities/QueueLog/_QueueLogDbContext.cs b/src/platform/mix.database/Entities/QueueLog/_QueueLogDbContext.cs new file mode 100644 index 000000000..80ecafdae --- /dev/null +++ b/src/platform/mix.database/Entities/QueueLog/_QueueLogDbContext.cs @@ -0,0 +1,25 @@ +using Mix.Database.Entities.QueueLog.EntityConfigurations; +using Mix.Database.Entities.QueueLog; +using Mix.Database.Services; +using Mix.Heart.Services; + +namespace Mix.Database.Entities.QueueLog +{ + public class QueueLogDbContext : BaseDbContext + { + public QueueLogDbContext(DatabaseService databaseService) : base(databaseService, MixConstants.CONST_QUEUE_LOG_CONNECTION) + { + } + + public QueueLogDbContext(DatabaseService databaseService, string connectionStringName) : base(databaseService, connectionStringName) + { + } + + public QueueLogDbContext(string connectionString, MixDatabaseProvider databaseProvider) : base(connectionString, databaseProvider) + { + } + + public virtual DbSet QueueLog { get; set; } + + } +} diff --git a/src/platform/mix.database/Entities/QueueLog/_SqlServerQueueLogDbContext.cs b/src/platform/mix.database/Entities/QueueLog/_SqlServerQueueLogDbContext.cs new file mode 100644 index 000000000..bdfba57cb --- /dev/null +++ b/src/platform/mix.database/Entities/QueueLog/_SqlServerQueueLogDbContext.cs @@ -0,0 +1,13 @@ +using Mix.Database.Entities.QueueLog.EntityConfigurations; +using Mix.Database.Services; +using Mix.Heart.Services; + +namespace Mix.Database.Entities.QueueLog +{ + public class SqlServerQueueLogDbContext : QueueLogDbContext + { + public SqlServerQueueLogDbContext(DatabaseService databaseService) : base(databaseService) + { + } + } +} diff --git a/src/platform/mix.database/Entities/QueueLog/_SqliteQueueLogDbContext.cs b/src/platform/mix.database/Entities/QueueLog/_SqliteQueueLogDbContext.cs new file mode 100644 index 000000000..80c9283c5 --- /dev/null +++ b/src/platform/mix.database/Entities/QueueLog/_SqliteQueueLogDbContext.cs @@ -0,0 +1,13 @@ +using Mix.Database.Entities.QueueLog.EntityConfigurations; +using Mix.Database.Services; +using Mix.Heart.Services; + +namespace Mix.Database.Entities.QueueLog +{ + public class SqlITEQueueLogDbContext : QueueLogDbContext + { + public SqlITEQueueLogDbContext(DatabaseService databaseService) : base(databaseService) + { + } + } +} diff --git a/src/platform/mix.database/Migrations/AuditLogDb/MySql/20240310051036_InitAuditLog.cs b/src/platform/mix.database/Migrations/AuditLogDb/MySql/20240310051036_InitAuditLog.cs new file mode 100644 index 000000000..035e5a04d --- /dev/null +++ b/src/platform/mix.database/Migrations/AuditLogDb/MySql/20240310051036_InitAuditLog.cs @@ -0,0 +1,63 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Mix.Database.Migrations.MySqlAuditLogDb +{ + /// + public partial class InitAuditLog : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.AlterDatabase() + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.CreateTable( + name: "AuditLog", + columns: table => new + { + Id = table.Column(type: "char(36)", nullable: false, defaultValueSql: "gen_random_uuid()", collation: "ascii_general_ci"), + Success = table.Column(type: "tinyint(1)", nullable: false), + StatusCode = table.Column(type: "int", nullable: false), + RequestIp = table.Column(type: "longtext", nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + Endpoint = table.Column(type: "longtext", nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + Method = table.Column(type: "longtext", nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + QueryString = table.Column(type: "longtext", nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + Body = table.Column(type: "text", nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + Response = table.Column(type: "text", nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + Exception = table.Column(type: "text", nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + CreatedDateTime = table.Column(type: "timestamp with time zone(6)", nullable: false), + LastModified = table.Column(type: "timestamp with time zone(6)", nullable: true), + CreatedBy = table.Column(type: "varchar(250)", nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + ModifiedBy = table.Column(type: "varchar(250)", nullable: true) + .Annotation("MySql:CharSet", "utf8mb4"), + Priority = table.Column(type: "int", nullable: false), + Status = table.Column(type: "varchar(50)", nullable: false) + .Annotation("MySql:CharSet", "utf8"), + IsDeleted = table.Column(type: "tinyint(1)", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_AuditLog", x => x.Id); + }) + .Annotation("MySql:CharSet", "utf8mb4"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "AuditLog"); + } + } +} diff --git a/src/platform/mix.database/Migrations/AuditLogDb/Postgresql/20240310045005_InitAuditLog.cs b/src/platform/mix.database/Migrations/AuditLogDb/Postgresql/20240310045005_InitAuditLog.cs new file mode 100644 index 000000000..3c61affbd --- /dev/null +++ b/src/platform/mix.database/Migrations/AuditLogDb/Postgresql/20240310045005_InitAuditLog.cs @@ -0,0 +1,49 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Mix.Database.Migrations.PostgresAuditLogDb +{ + /// + public partial class InitAuditLog : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "AuditLog", + columns: table => new + { + Id = table.Column(type: "uuid", nullable: false, defaultValueSql: "gen_random_uuid()"), + Success = table.Column(type: "boolean", nullable: false), + StatusCode = table.Column(type: "integer", nullable: false), + RequestIp = table.Column(type: "text", nullable: true), + Endpoint = table.Column(type: "text", nullable: true), + Method = table.Column(type: "text", nullable: true), + QueryString = table.Column(type: "text", nullable: true), + Body = table.Column(type: "text", nullable: true), + Response = table.Column(type: "text", nullable: true), + Exception = table.Column(type: "text", nullable: true), + CreatedDateTime = table.Column(type: "timestamp with time zone", nullable: false), + LastModified = table.Column(type: "timestamp with time zone", nullable: true), + CreatedBy = table.Column(type: "varchar(250)", nullable: true), + ModifiedBy = table.Column(type: "varchar(250)", nullable: true), + Priority = table.Column(type: "int", nullable: false), + Status = table.Column(type: "varchar(50)", nullable: false), + IsDeleted = table.Column(type: "boolean", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_AuditLog", x => x.Id); + }); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "AuditLog"); + } + } +} diff --git a/src/platform/mix.database/Migrations/AuditLogDb/SqlServer/20240310051318_InitAuditLog.cs b/src/platform/mix.database/Migrations/AuditLogDb/SqlServer/20240310051318_InitAuditLog.cs new file mode 100644 index 000000000..4aa50cde5 --- /dev/null +++ b/src/platform/mix.database/Migrations/AuditLogDb/SqlServer/20240310051318_InitAuditLog.cs @@ -0,0 +1,49 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Mix.Database.Migrations.SqlServerAuditLogDb +{ + /// + public partial class InitAuditLog : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "AuditLog", + columns: table => new + { + Id = table.Column(type: "uniqueidentifier", nullable: false, defaultValueSql: "gen_random_uuid()"), + Success = table.Column(type: "bit", nullable: false), + StatusCode = table.Column(type: "int", nullable: false), + RequestIp = table.Column(type: "nvarchar(max)", nullable: true), + Endpoint = table.Column(type: "nvarchar(max)", nullable: true), + Method = table.Column(type: "nvarchar(max)", nullable: true), + QueryString = table.Column(type: "nvarchar(max)", nullable: true), + Body = table.Column(type: "text", nullable: true), + Response = table.Column(type: "text", nullable: true), + Exception = table.Column(type: "text", nullable: true), + CreatedDateTime = table.Column(type: "timestamp with time zone", nullable: false), + LastModified = table.Column(type: "timestamp with time zone", nullable: true), + CreatedBy = table.Column(type: "varchar(250)", nullable: true), + ModifiedBy = table.Column(type: "varchar(250)", nullable: true), + Priority = table.Column(type: "int", nullable: false), + Status = table.Column(type: "varchar(50)", nullable: false), + IsDeleted = table.Column(type: "bit", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_AuditLog", x => x.Id); + }); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "AuditLog"); + } + } +} diff --git a/src/platform/mix.database/Migrations/AuditLogDb/Sqlite/20240310050457_InitAuditLog.cs b/src/platform/mix.database/Migrations/AuditLogDb/Sqlite/20240310050457_InitAuditLog.cs new file mode 100644 index 000000000..2137c8d1c --- /dev/null +++ b/src/platform/mix.database/Migrations/AuditLogDb/Sqlite/20240310050457_InitAuditLog.cs @@ -0,0 +1,49 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Mix.Database.Migrations.SqlITEAuditLogDb +{ + /// + public partial class InitAuditLog : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "AuditLog", + columns: table => new + { + Id = table.Column(type: "TEXT", nullable: false, defaultValueSql: "gen_random_uuid()"), + Success = table.Column(type: "INTEGER", nullable: false), + StatusCode = table.Column(type: "INTEGER", nullable: false), + RequestIp = table.Column(type: "TEXT", nullable: true), + Endpoint = table.Column(type: "TEXT", nullable: true), + Method = table.Column(type: "TEXT", nullable: true), + QueryString = table.Column(type: "TEXT", nullable: true), + Body = table.Column(type: "text", nullable: true), + Response = table.Column(type: "text", nullable: true), + Exception = table.Column(type: "text", nullable: true), + CreatedDateTime = table.Column(type: "timestamp with time zone", nullable: false), + LastModified = table.Column(type: "timestamp with time zone", nullable: true), + CreatedBy = table.Column(type: "varchar(250)", nullable: true), + ModifiedBy = table.Column(type: "varchar(250)", nullable: true), + Priority = table.Column(type: "int", nullable: false), + Status = table.Column(type: "varchar(50)", nullable: false), + IsDeleted = table.Column(type: "INTEGER", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_AuditLog", x => x.Id); + }); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "AuditLog"); + } + } +} diff --git a/src/platform/mix.database/Migrations/QueueLog/MySql/20240310062243_InitQueueLog.cs b/src/platform/mix.database/Migrations/QueueLog/MySql/20240310062243_InitQueueLog.cs new file mode 100644 index 000000000..d1de18839 --- /dev/null +++ b/src/platform/mix.database/Migrations/QueueLog/MySql/20240310062243_InitQueueLog.cs @@ -0,0 +1,52 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Mix.Database.Migrations.MySqlQueueLogDb +{ + /// + public partial class InitQueueLog : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "QueueLog", + columns: table => new + { + Id = table.Column(type: "uuid", nullable: false, defaultValueSql: "gen_random_uuid()"), + QueueMessageId = table.Column(type: "uuid", nullable: true), + TopicId = table.Column(type: "varchar(250)", nullable: true), + SubscriptionId = table.Column(type: "varchar(250)", nullable: true), + Action = table.Column(type: "varchar(250)", nullable: true), + StringData = table.Column(type: "text", nullable: true), + ObjectData = table.Column(type: "text", nullable: true), + Exception = table.Column(type: "text", nullable: true), + Subscriptions = table.Column(type: "text", nullable: true), + DataTypeFullName = table.Column(type: "varchar(250)", nullable: true), + Note = table.Column(type: "varchar(250)", nullable: true), + State = table.Column(type: "varchar(50)", nullable: false), + TenantId = table.Column(type: "integer", nullable: false), + CreatedDateTime = table.Column(type: "timestamp with time zone", nullable: false), + LastModified = table.Column(type: "timestamp with time zone", nullable: true), + CreatedBy = table.Column(type: "varchar(250)", nullable: true), + ModifiedBy = table.Column(type: "varchar(250)", nullable: true), + Priority = table.Column(type: "int", nullable: false), + Status = table.Column(type: "varchar(50)", nullable: false), + IsDeleted = table.Column(type: "boolean", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_QueueLog", x => x.Id); + }); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "QueueLog"); + } + } +} diff --git a/src/platform/mix.database/Migrations/QueueLog/Postgres/20240310061825_InitQueueLog.cs b/src/platform/mix.database/Migrations/QueueLog/Postgres/20240310061825_InitQueueLog.cs new file mode 100644 index 000000000..675bd6b65 --- /dev/null +++ b/src/platform/mix.database/Migrations/QueueLog/Postgres/20240310061825_InitQueueLog.cs @@ -0,0 +1,52 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Mix.Database.Migrations.PostgresQueueLogDb +{ + /// + public partial class InitQueueLog : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "QueueLog", + columns: table => new + { + Id = table.Column(type: "uuid", nullable: false, defaultValueSql: "gen_random_uuid()"), + QueueMessageId = table.Column(type: "uuid", nullable: true), + TopicId = table.Column(type: "varchar(250)", nullable: true), + SubscriptionId = table.Column(type: "varchar(250)", nullable: true), + Action = table.Column(type: "varchar(250)", nullable: true), + StringData = table.Column(type: "text", nullable: true), + ObjectData = table.Column(type: "text", nullable: true), + Exception = table.Column(type: "text", nullable: true), + Subscriptions = table.Column(type: "text", nullable: true), + DataTypeFullName = table.Column(type: "varchar(250)", nullable: true), + Note = table.Column(type: "varchar(250)", nullable: true), + State = table.Column(type: "varchar(50)", nullable: false), + TenantId = table.Column(type: "integer", nullable: false), + CreatedDateTime = table.Column(type: "timestamp with time zone", nullable: false), + LastModified = table.Column(type: "timestamp with time zone", nullable: true), + CreatedBy = table.Column(type: "varchar(250)", nullable: true), + ModifiedBy = table.Column(type: "varchar(250)", nullable: true), + Priority = table.Column(type: "int", nullable: false), + Status = table.Column(type: "varchar(50)", nullable: false), + IsDeleted = table.Column(type: "boolean", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_QueueLog", x => x.Id); + }); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "QueueLog"); + } + } +} diff --git a/src/platform/mix.database/Migrations/QueueLog/SqlServer/20240310062419_InitQueueLog.cs b/src/platform/mix.database/Migrations/QueueLog/SqlServer/20240310062419_InitQueueLog.cs new file mode 100644 index 000000000..f90f9fa82 --- /dev/null +++ b/src/platform/mix.database/Migrations/QueueLog/SqlServer/20240310062419_InitQueueLog.cs @@ -0,0 +1,52 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Mix.Database.Migrations.SqlServerQueueLogDb +{ + /// + public partial class InitQueueLog : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "QueueLog", + columns: table => new + { + Id = table.Column(type: "uuid", nullable: false, defaultValueSql: "gen_random_uuid()"), + QueueMessageId = table.Column(type: "uuid", nullable: true), + TopicId = table.Column(type: "varchar(250)", nullable: true), + SubscriptionId = table.Column(type: "varchar(250)", nullable: true), + Action = table.Column(type: "varchar(250)", nullable: true), + StringData = table.Column(type: "text", nullable: true), + ObjectData = table.Column(type: "text", nullable: true), + Exception = table.Column(type: "text", nullable: true), + Subscriptions = table.Column(type: "text", nullable: true), + DataTypeFullName = table.Column(type: "varchar(250)", nullable: true), + Note = table.Column(type: "varchar(250)", nullable: true), + State = table.Column(type: "varchar(50)", nullable: false), + TenantId = table.Column(type: "integer", nullable: false), + CreatedDateTime = table.Column(type: "timestamp with time zone", nullable: false), + LastModified = table.Column(type: "timestamp with time zone", nullable: true), + CreatedBy = table.Column(type: "varchar(250)", nullable: true), + ModifiedBy = table.Column(type: "varchar(250)", nullable: true), + Priority = table.Column(type: "int", nullable: false), + Status = table.Column(type: "varchar(50)", nullable: false), + IsDeleted = table.Column(type: "boolean", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_QueueLog", x => x.Id); + }); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "QueueLog"); + } + } +} diff --git a/src/platform/mix.database/Migrations/QueueLog/Sqlite/20240310062056_InitQueueLog.cs b/src/platform/mix.database/Migrations/QueueLog/Sqlite/20240310062056_InitQueueLog.cs new file mode 100644 index 000000000..0f2973cb1 --- /dev/null +++ b/src/platform/mix.database/Migrations/QueueLog/Sqlite/20240310062056_InitQueueLog.cs @@ -0,0 +1,52 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace Mix.Database.Migrations.SqlITEQueueLogDb +{ + /// + public partial class InitQueueLog : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "QueueLog", + columns: table => new + { + Id = table.Column(type: "uuid", nullable: false, defaultValueSql: "gen_random_uuid()"), + QueueMessageId = table.Column(type: "uuid", nullable: true), + TopicId = table.Column(type: "varchar(250)", nullable: true), + SubscriptionId = table.Column(type: "varchar(250)", nullable: true), + Action = table.Column(type: "varchar(250)", nullable: true), + StringData = table.Column(type: "text", nullable: true), + ObjectData = table.Column(type: "text", nullable: true), + Exception = table.Column(type: "text", nullable: true), + Subscriptions = table.Column(type: "text", nullable: true), + DataTypeFullName = table.Column(type: "varchar(250)", nullable: true), + Note = table.Column(type: "varchar(250)", nullable: true), + State = table.Column(type: "varchar(50)", nullable: false), + TenantId = table.Column(type: "integer", nullable: false), + CreatedDateTime = table.Column(type: "timestamp with time zone", nullable: false), + LastModified = table.Column(type: "timestamp with time zone", nullable: true), + CreatedBy = table.Column(type: "varchar(250)", nullable: true), + ModifiedBy = table.Column(type: "varchar(250)", nullable: true), + Priority = table.Column(type: "int", nullable: false), + Status = table.Column(type: "varchar(50)", nullable: false), + IsDeleted = table.Column(type: "boolean", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_QueueLog", x => x.Id); + }); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "QueueLog"); + } + } +} diff --git a/src/platform/mix.database/Services/DatabaseService.cs b/src/platform/mix.database/Services/DatabaseService.cs index 3f4fafc85..51a4b6cfe 100644 --- a/src/platform/mix.database/Services/DatabaseService.cs +++ b/src/platform/mix.database/Services/DatabaseService.cs @@ -1,4 +1,4 @@ -using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Configuration; using Mix.Database.Entities.Account; using Mix.Database.Entities.MixDb; @@ -16,7 +16,7 @@ namespace Mix.Database.Services { public class DatabaseService : ConfigurationServiceBase { - public MixDatabaseProvider DatabaseProvider => AppSettings.DatabaseProvider; + public MixDatabaseProvider DatabaseProvider => AppSettings.DatabaseProvider; protected IHttpContextAccessor HttpContextAccessor; protected IConfiguration Configuration; public DatabaseService(IHttpContextAccessor httpContextAccessor, IConfiguration configuration) : base(MixAppConfigFilePaths.Database, true) @@ -121,6 +121,29 @@ public MixCmsAccountContext GetAccountDbContext() _ => null, }; } + + public AuditLogDbContext GetAuditLogDbContext() + { + return DatabaseProvider switch + { + MixDatabaseProvider.SQLSERVER => new SqlServerAuditLogDbContext(this), + MixDatabaseProvider.MySQL => new MySqlAuditLogDbContext(this), + MixDatabaseProvider.SQLITE => new SqlITEAuditLogDbContext(this), + MixDatabaseProvider.PostgreSQL => new PostgresAuditLogDbContext(this), + _ => null, + }; + } + public QueueLogDbContext GetQueueLogDbContext() + { + return DatabaseProvider switch + { + MixDatabaseProvider.SQLSERVER => new SqlServerQueueLogDbContext(this), + MixDatabaseProvider.MySQL => new MySqlQueueLogDbContext(this), + MixDatabaseProvider.SQLITE => new SqlITEQueueLogDbContext(this), + MixDatabaseProvider.PostgreSQL => new PostgresQueueLogDbContext(this), + _ => null, + }; + } public QuartzDbContext GetQuartzDbContext() { diff --git a/src/platform/mix.database/mix.database.csproj b/src/platform/mix.database/mix.database.csproj index a84253c13..776994002 100644 --- a/src/platform/mix.database/mix.database.csproj +++ b/src/platform/mix.database/mix.database.csproj @@ -1,4 +1,4 @@ - + net8.0 @@ -16,10 +16,10 @@ - - - - + + + + diff --git a/src/platform/mix.identity/Dtos/GrantPermissionsDto.cs b/src/platform/mix.identity/Dtos/GrantPermissionsDto.cs new file mode 100644 index 000000000..99638dc73 --- /dev/null +++ b/src/platform/mix.identity/Dtos/GrantPermissionsDto.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Mix.Identity.Dtos +{ + public sealed class GrantPermissionsDto + { + public List Permissions { get; set; } + public bool IsActive { get; set; } + public string? RequestedBy { get; set; } + } + public sealed class PermissionDto + { + public Guid RoleId { get; set; } + public int PermissionId { get; set; } + } +} diff --git a/src/platform/mix.identity/Models/RoleBOModel.cs b/src/platform/mix.identity/Models/RoleBOModel.cs new file mode 100644 index 000000000..c805a44fb --- /dev/null +++ b/src/platform/mix.identity/Models/RoleBOModel.cs @@ -0,0 +1,19 @@ +using Mix.Database.Entities.Account; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Mix.Identity.Models +{ + public sealed class RoleBOModel + { + public Guid Id { get; set; } + public string Name { get; set; } + public string NormalizedName { get; set; } + public string ConcurrencyStamp { get; set; } + + public List Permissions { get; set; } + } +} diff --git a/src/platform/mix.identity/Services/OAuthTokenService.cs b/src/platform/mix.identity/Services/OAuthTokenService.cs index cb87618f0..6414102c4 100644 --- a/src/platform/mix.identity/Services/OAuthTokenService.cs +++ b/src/platform/mix.identity/Services/OAuthTokenService.cs @@ -1,4 +1,4 @@ -using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Options; using Microsoft.IdentityModel.Tokens; using Mix.Database.Entities.Account; @@ -15,6 +15,7 @@ using Mix.Identity.Interfaces; using Mix.Auth.Common; using Mix.Auth.Enums; +using Mix.Shared.Services; namespace Mix.Identity.Services { @@ -24,18 +25,20 @@ public sealed class OAuthTokenService : IOAuthTokenService private readonly IOAuthClientService _clientService; private readonly IOAuthCodeStoreService _codeStoreService; private readonly OAuthServerOptions _options; - private readonly MixCmsAccountContext _context; + private readonly AuthConfigService _authConfigService; private readonly MixAuthenticationConfigurations _authConfigs; public OAuthTokenService(IOAuthCodeStoreService codeStoreService, IOptions options, IConfiguration configuration, - IOAuthClientService clientService) + IOAuthClientService clientService, + AuthConfigService authConfigService) { _clientService = clientService; _codeStoreService = codeStoreService; _options = options.Value; - _authConfigs = configuration.GetSection(MixAppSettingsSection.Authentication).Get(); + _authConfigService = authConfigService; + _authConfigs = _authConfigService.AppSettings; } public AuthorizeResponse AuthorizeRequest(IHttpContextAccessor httpContextAccessor, OAuthRequest authorizationRequest) { diff --git a/src/platform/mix.identity/mix.identity.csproj b/src/platform/mix.identity/mix.identity.csproj index ce3fdc1ac..aed653384 100644 --- a/src/platform/mix.identity/mix.identity.csproj +++ b/src/platform/mix.identity/mix.identity.csproj @@ -1,4 +1,4 @@ - + net8.0 @@ -21,16 +21,15 @@ - - - - - - - - + + + + + + + - + diff --git a/src/platform/mix.library/Base/MixQueryEntityApiControllerBase.cs b/src/platform/mix.library/Base/MixQueryEntityApiControllerBase.cs index 320151d60..83dbdcc48 100644 --- a/src/platform/mix.library/Base/MixQueryEntityApiControllerBase.cs +++ b/src/platform/mix.library/Base/MixQueryEntityApiControllerBase.cs @@ -7,6 +7,7 @@ using Mix.Lib.Models.Common; using Mix.Lib.Services; using Mix.Mq.Lib.Models; +using NuGet.Protocol.Plugins; using System.Linq.Expressions; namespace Mix.Lib.Base diff --git a/src/platform/mix.library/Dtos/ExportThemeDto.cs b/src/platform/mix.library/Dtos/ExportThemeDto.cs index 69e2fa9c7..04c419141 100644 --- a/src/platform/mix.library/Dtos/ExportThemeDto.cs +++ b/src/platform/mix.library/Dtos/ExportThemeDto.cs @@ -35,6 +35,7 @@ public class SelectedExport public List ModuleIds { get; set; } public List ModuleContentIds { get; set; } + public List MixDatabaseContextIds { get; set; } public List MixDatabaseIds { get; set; } } } diff --git a/src/platform/mix.library/Filters/HttpResponseExceptionFilter.cs b/src/platform/mix.library/Filters/HttpResponseExceptionFilter.cs index 79586dcfd..faea56eb7 100644 --- a/src/platform/mix.library/Filters/HttpResponseExceptionFilter.cs +++ b/src/platform/mix.library/Filters/HttpResponseExceptionFilter.cs @@ -48,7 +48,7 @@ public void OnActionExecuted(ActionExecutedContext context) }; context.ExceptionHandled = true; } - context.ExceptionHandled = true; + //context.ExceptionHandled = true; } } diff --git a/src/platform/mix.library/Helpers/MixCmsHelper.cs b/src/platform/mix.library/Helpers/MixCmsHelper.cs index 2fc54dfff..bc1917f29 100644 --- a/src/platform/mix.library/Helpers/MixCmsHelper.cs +++ b/src/platform/mix.library/Helpers/MixCmsHelper.cs @@ -1,4 +1,4 @@ -using ClosedXML.Excel; +using ClosedXML.Excel; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; @@ -73,21 +73,21 @@ public static WebApplicationBuilder CreateWebApplicationBuilder(string[] args) builder.WebHost.UseContentRoot(Directory.GetCurrentDirectory()); builder.Configuration - .AddJsonFile("appsettings.json",true, true) - .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/global.json", true, true) - .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/ocelot.json",true, true) - .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/storage.json",true, true) - .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/azure.json",true, true) - .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/queue.json",true, true) - .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/mix_heart.json",true, true) - .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/authentication.json",true, true) - .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/google_credential.json",true, true) - .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/google_firebase.json",true, true) - .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/smtp.json",true, true) - .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/payments.json",true, true) - .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/redis.json",true, true) - .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/log.json",true, true) - .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/rate_limit.json",true, true) + .AddJsonFile("appsettings.json",true, false) + .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/global.json", true, false) + .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/ocelot.json",true, false) + .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/storage.json",true, false) + .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/azure.json",true, false) + .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/queue.json",true, false) + .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/mix_heart.json",true, false) + //.AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/authentication.json",true, false) + .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/google_credential.json",true, false) + .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/google_firebase.json",true, false) + .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/smtp.json",true, false) + .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/payments.json",true, false) + .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/redis.json",true, false) + .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/log.json",true, false) + .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/rate_limit.json",true, false) .AddEnvironmentVariables(); return builder; } @@ -107,21 +107,21 @@ public static IHostBuilder CreateHostBuilder(string[] args) where TSta { config .SetBasePath(hostingContext.HostingEnvironment.ContentRootPath) - .AddJsonFile("appsettings.json",true, true) - .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/global.json",true, true) - .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/azure.json",true, true) - .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/ocelot.json",true, true) - .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/storage.json",true, true) - .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/queue.json",true, true) - .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/mix_heart.json",true, true) - .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/authentication.json",true, true) - .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/google_credential.json",true, true) - .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/google_firebase.json",true, true) - .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/smtp.json",true, true) - .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/payments.json",true, true) - .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/redis.json",true, true) - .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/log.json",true, true) - .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/rate_limit.json",true, true) + .AddJsonFile("appsettings.json",true, false) + .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/global.json",true, false) + .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/azure.json",true, false) + .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/ocelot.json",true, false) + .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/storage.json",true, false) + .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/queue.json",true, false) + .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/mix_heart.json",true, false) + //.AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/authentication.json",true, false) + .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/google_credential.json",true, false) + .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/google_firebase.json",true, false) + .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/smtp.json",true, false) + .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/payments.json",true, false) + .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/redis.json",true, false) + .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/log.json",true, false) + .AddJsonFile($"{Environment.CurrentDirectory}/{MixAppConfigFilePaths.Shared}/appconfigs/rate_limit.json",true, false) .AddEnvironmentVariables(); }) .ConfigureWebHostDefaults(webBuilder => diff --git a/src/platform/mix.library/Interfaces/IMixEdmService.cs b/src/platform/mix.library/Interfaces/IMixEdmService.cs index 2c74972e4..65cf02db1 100644 --- a/src/platform/mix.library/Interfaces/IMixEdmService.cs +++ b/src/platform/mix.library/Interfaces/IMixEdmService.cs @@ -5,7 +5,7 @@ public interface IMixEdmService public void SetTenantId(int tenantId); public void SetTenant(MixTenantSystemModel tenant); public Task GetEdmTemplate(string filename); - public Task SendMailWithEdmTemplate(string subject, string templateName, JObject data, string to, string cc = null, string from = null); - Task SendMailWithTemplate(string subject, string template, JObject data, string to, string cc = null, string from = null); + public Task SendMailWithEdmTemplate(string subject, string templateName, JObject data, string to, string cc = null, string from = null, string fromName = null); + Task SendMailWithTemplate(string subject, string template, JObject data, string to, string cc = null, string from = null, string fromName = null); } } diff --git a/src/platform/mix.library/Interfaces/IMixIdentityService.cs b/src/platform/mix.library/Interfaces/IMixIdentityService.cs index 93f239ed5..0d98fbf9e 100644 --- a/src/platform/mix.library/Interfaces/IMixIdentityService.cs +++ b/src/platform/mix.library/Interfaces/IMixIdentityService.cs @@ -14,15 +14,15 @@ public interface IMixIdentityService public List Roles { get; set; } public bool CheckEndpointPermission(ClaimsPrincipal user, PathString path, string method); public Claim CreateClaim(string type, string value); - public Task ExternalLogin(RegisterExternalBindingModel model, CancellationToken cancellationToken = default); - public Task GenerateAccessTokenAsync(MixUser user, bool isRemember, string aesKey, string rsaPublicKey, CancellationToken cancellationToken = default); - public Task GenerateTokenAsync(MixUser user, JObject info, DateTime expires, string refreshToken, string aesKey, string rsaPublicKey, MixAuthenticationConfigurations appConfigs); - public Task GetAuthData(MixUser user, bool rememberMe, int tenantId, CancellationToken cancellationToken = default); + public Task ExternalLogin(RegisterExternalBindingModel model, CancellationToken cancellationToken = default); + public Task GenerateAccessTokenAsync(MixUser user, bool isRemember, JObject additionalData = default, CancellationToken cancellationToken = default); + public Task GenerateTokenAsync(MixUser user, JObject info, DateTime expires, string refreshToken, MixAuthenticationConfigurations appConfigs); + public Task GetAuthData(MixUser user, bool rememberMe, int tenantId, JObject additionalData = default, CancellationToken cancellationToken = default); public string GetClaim(ClaimsPrincipal User, string claimType); - public Task GetTokenAsync(GetTokenModel model, CancellationToken cancellationToken = default); - public Task LoginAsync(LoginRequestModel model, CancellationToken cancellationToken = default); - public Task RegisterAsync(RegisterRequestModel model, int tenantId, UnitOfWorkInfo _cmsUOW, CancellationToken cancellationToken = default); - public Task RenewTokenAsync(RenewTokenDto refreshTokenDto, CancellationToken cancellationToken = default); + public Task GetTokenAsync(GetTokenModel model, CancellationToken cancellationToken = default); + public Task LoginAsync(LoginRequestModel model, CancellationToken cancellationToken = default); + public Task RegisterAsync(RegisterRequestModel model, int tenantId, UnitOfWorkInfo _cmsUOW, JObject additionalData = default, CancellationToken cancellationToken = default); + public Task RenewTokenAsync(RenewTokenDto refreshTokenDto, CancellationToken cancellationToken = default); public Task VerifyExternalAccessTokenAsync(MixExternalLoginProviders provider, string accessToken, MixAuthenticationConfigurations appConfigs); } } \ No newline at end of file diff --git a/src/platform/mix.library/Middlewares/AuditlogMiddleware.cs b/src/platform/mix.library/Middlewares/AuditlogMiddleware.cs index 4cbcebd49..3800895bb 100644 --- a/src/platform/mix.library/Middlewares/AuditlogMiddleware.cs +++ b/src/platform/mix.library/Middlewares/AuditlogMiddleware.cs @@ -14,25 +14,22 @@ namespace Mix.Lib.Middlewares public class AuditlogMiddleware { private readonly RequestDelegate _next; - private IAuditLogService _auditlogService; - private AuditLogDataModel _auditlogData; - private IConfiguration _configuration; - private GlobalSettingsModel _globalConfig; - private bool _isLog { get; set; } + private readonly IAuditLogService _auditlogService; + private readonly IConfiguration _configuration; + private readonly GlobalSettingsModel _globalConfig; public AuditlogMiddleware(RequestDelegate next, IConfiguration configuration, IAuditLogService auditlogService) { _configuration = configuration; _globalConfig = _configuration.Get(); _next = next; - _auditlogData = new(); _auditlogService = auditlogService; } - public async Task InvokeAsync(HttpContext context) + public async Task InvokeAsync(HttpContext context, AuditLogDataModel auditLogData) { var logConfigurations = _configuration.GetSection(MixAppSettingsSection.Log).Get(); - _isLog = CheckAuditLogPath(context.Request.Path); - if (!_isLog) + var isLog = CheckAuditLogPath(context.Request.Path); + if (!isLog) { await _next(context); } @@ -40,8 +37,7 @@ public async Task InvokeAsync(HttpContext context) else { //Copy a pointer to the original response body stream - await LogRequest(context); - + await LogRequest(context, auditLogData); //Copy a pointer to the original response body stream var originalBodyStream = context.Response.Body; @@ -50,7 +46,7 @@ public async Task InvokeAsync(HttpContext context) { if (logConfigurations.EnableAuditLog) { - _auditlogService.QueueRequest(_auditlogData); + _auditlogService.QueueRequest(auditLogData); } await _next(context); } @@ -66,46 +62,48 @@ public async Task InvokeAsync(HttpContext context) await _next(context); //Format the response from the server - await LogResponse(context); + await LogResponse(context, auditLogData); //Copy the contents of the new memory stream (which contains the response) to the original stream, which is then returned to the client. await responseBody.CopyToAsync(originalBodyStream); - _auditlogService.QueueRequest(_auditlogData); + _auditlogService.QueueRequest(auditLogData); responseBody.Dispose(); } } } - _auditlogData.StatusCode = context.Response.StatusCode; - if (logConfigurations.IsLogStream && _isLog) + auditLogData.StatusCode = context.Response.StatusCode; + if (logConfigurations.IsLogStream && isLog) { - await _auditlogService.LogStream(_auditlogData.Endpoint, _auditlogData.Exception ?? _auditlogData.Body, isSuccess: _auditlogData.StatusCode < 300); + await _auditlogService.LogStream(auditLogData.Endpoint, auditLogData.Exception ?? auditLogData.Body, isSuccess: auditLogData.StatusCode < 300); } } + private bool CheckAuditLogPath(string path) { return !_globalConfig.IsInit && (path.IndexOf("/api") >= 0 && path.IndexOf("audit-log") < 0 && path.IndexOf("queue-log") < 0); } - private async Task LogRequest(HttpContext context) + private async Task LogRequest(HttpContext context, AuditLogDataModel auditLogData) { var idService = context.RequestServices.GetService(typeof(MixIdentityService)) as MixIdentityService; var request = await FormatRequest(context.Request); - _auditlogData.CreatedBy = idService.GetClaim(context.User, MixClaims.Username); - _auditlogData.RequestIp = context.Request.HttpContext?.Connection?.RemoteIpAddress?.ToString(); - _auditlogData.Endpoint = context.Request.Path; - _auditlogData.Method = context.Request.Method; - _auditlogData.QueryString = context.Request.QueryString.ToString(); - _auditlogData.Body = request.IsJsonString() ? JObject.Parse(request) : new JObject(new JProperty("data", request)); + auditLogData.CreatedBy = idService.GetClaim(context.User, MixClaims.Username); + auditLogData.RequestIp = context.Request.HttpContext?.Connection?.RemoteIpAddress?.ToString(); + auditLogData.Endpoint = context.Request.Path; + auditLogData.Method = context.Request.Method; + auditLogData.QueryString = context.Request.QueryString.ToString(); + auditLogData.Body = request.IsJsonString() ? JObject.Parse(request) : new JObject(new JProperty("data", request)); } - private async Task LogResponse(HttpContext context) + + private async Task LogResponse(HttpContext context, AuditLogDataModel auditLogData) { if (context.Response.Body.CanSeek) { var response = await FormatResponse(context.Response); - _auditlogData.StatusCode = context.Response.StatusCode; - _auditlogData.Response = response.IsJsonString() ? JObject.Parse(response) : new JObject(new JProperty("data", response)); + auditLogData.StatusCode = context.Response.StatusCode; + auditLogData.Response = response.IsJsonString() ? JObject.Parse(response) : new JObject(new JProperty("data", response)); } } @@ -147,4 +145,4 @@ private async Task FormatRequest(HttpRequest request) return string.Empty; } } -} +} \ No newline at end of file diff --git a/src/platform/mix.library/Services/MixConfigurationService.cs b/src/platform/mix.library/Services/MixConfigurationService.cs index f850a6492..24a0d0aaf 100644 --- a/src/platform/mix.library/Services/MixConfigurationService.cs +++ b/src/platform/mix.library/Services/MixConfigurationService.cs @@ -32,9 +32,20 @@ public async Task Reload(UnitOfWorkInfo uow = null) else { uow = new(new MixCmsContext(_databaseService)); - Configs = await MixConfigurationContentViewModel.GetRepository(uow, CacheService).GetAllAsync( - m => m.MixTenantId == CurrentTenant.Id); - uow.Dispose(); + try + { + Configs = await MixConfigurationContentViewModel + .GetRepository(uow, CacheService) + .GetAllAsync(p => true); + } + catch (Exception ex) + { + Console.WriteLine($"MixConfigurationService getting config error {ex.Message}"); + } + finally + { + uow.Dispose(); + } } } } diff --git a/src/platform/mix.library/Services/MixEdmService.cs b/src/platform/mix.library/Services/MixEdmService.cs index 40e8e9855..76c192b25 100644 --- a/src/platform/mix.library/Services/MixEdmService.cs +++ b/src/platform/mix.library/Services/MixEdmService.cs @@ -38,7 +38,8 @@ public virtual async Task SendMailWithEdmTemplate( string subject, string templateName, JObject data, string to, string cc = null, - string from = null) + string from = null, + string fromName = null) { var template = await GetEdmTemplate(templateName); if (string.IsNullOrEmpty(template)) @@ -59,6 +60,7 @@ public virtual async Task SendMailWithEdmTemplate( Subject = subject, Message = template, From = from, + FromName = fromName, CC = cc, To = to }; @@ -69,7 +71,8 @@ public virtual async Task SendMailWithTemplate( string subject, string template, JObject data, string to, string cc = null, - string from = null) + string from = null, + string fromName = null) { foreach (var prop in data.Properties().ToList()) { @@ -84,6 +87,7 @@ public virtual async Task SendMailWithTemplate( Subject = subject, Message = template, From = from, + FromName = fromName, CC = cc, To = to }; diff --git a/src/platform/mix.library/Services/MixIdentityService.cs b/src/platform/mix.library/Services/MixIdentityService.cs index 5b29fde41..f52f0a0a2 100644 --- a/src/platform/mix.library/Services/MixIdentityService.cs +++ b/src/platform/mix.library/Services/MixIdentityService.cs @@ -1,4 +1,6 @@ -using Microsoft.AspNetCore.Http; +using DocumentFormat.OpenXml.Drawing.Charts; +using DocumentFormat.OpenXml.Office2010.Excel; +using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Identity; using Microsoft.Extensions.Configuration; using Microsoft.IdentityModel.Tokens; @@ -13,10 +15,12 @@ using Mix.Identity.Enums; using Mix.Identity.ViewModels; using Mix.Lib.Interfaces; - +using Mix.Mq.Lib.Models; using Mix.RepoDb.Interfaces; using Mix.RepoDb.Repositories; +using Mix.Service.Commands; using Mix.Shared.Models.Configurations; +using MySqlX.XDevAPI.Common; using Newtonsoft.Json; using System.IdentityModel.Tokens.Jwt; using System.Security.Claims; @@ -29,6 +33,7 @@ public class MixIdentityService : IMixIdentityService { protected const string TenantIdFieldName = "MixTenantId"; protected const string datetimeFormat = "yyyy-MM-ddTHH:mm:ss.FFFZ"; + protected readonly IMemoryQueueService QueueService; protected IConfiguration Configuration; protected readonly UnitOfWorkInfo AccountUow; protected readonly UnitOfWorkInfo CmsUow; @@ -78,7 +83,8 @@ public MixIdentityService( DatabaseService databaseService, MixCmsAccountContext accContext, UnitOfWorkInfo mixDbUow, - IMixDbDataService mixDbDataService, IConfiguration configuration) + IMixDbDataService mixDbDataService, IConfiguration configuration, + IMemoryQueueService queueService) { Session = httpContextAccessor.HttpContext?.Session; Configuration = configuration; @@ -99,6 +105,7 @@ public MixIdentityService( MixDbUow = mixDbUow; MixDbDataService = mixDbDataService; GlobalConfig = Configuration.GetSection(MixAppSettingsSection.GlobalSettings).Get(); + QueueService = queueService; } public virtual async Task Any(Guid userId) @@ -122,7 +129,7 @@ public virtual async Task GetUserAsync(Guid userId) return null; } - public virtual async Task LoginAsync(LoginRequestModel model, CancellationToken cancellationToken = default) + public virtual async Task LoginAsync(LoginRequestModel model, CancellationToken cancellationToken = default) { try { @@ -158,7 +165,7 @@ public virtual async Task LoginAsync(LoginRequestModel model, Cancellat if (result.Succeeded) { - return await GetAuthData(user, model.RememberMe, CurrentTenant.Id, cancellationToken); + return await GetAuthData(user, model.RememberMe, CurrentTenant.Id, default, cancellationToken); } else { @@ -175,36 +182,34 @@ public virtual async Task LoginAsync(LoginRequestModel model, Cancellat } } - public virtual async Task GetAuthData(MixUser user, bool rememberMe, int tenantId, CancellationToken cancellationToken = default) + public virtual async Task GetAuthData(MixUser user, bool rememberMe, int tenantId, JObject additionalData = default, CancellationToken cancellationToken = default) { - var rsaKeys = RSAEncryptionHelper.GenerateKeys(); - var aesKey = GlobalConfig.ApiEncryptKey; - var token = await GenerateAccessTokenAsync(user, rememberMe, aesKey, rsaKeys[MixConstants.CONST_RSA_PUBLIC_KEY], cancellationToken); - if (token != null) - { - var data = ReflectionHelper.ParseObject(token); - if (CurrentTenant.Configurations.IsEncryptApi) - { - var encryptedInfo = AesEncryptionHelper.EncryptString(data.ToString(Formatting.None), aesKey); - - var resp = new JObject() - { - //new JProperty(MixEncryptKeywords.AESKey, aesKey), - //new JProperty(MixEncryptKeywords.RSAKey, rsaKeys[MixConstants.CONST_RSA_PRIVATE_KEY]), - new JProperty(MixEncryptKeywords.Message, encryptedInfo) - }; - return resp; - } - else - { - return data; - } - } - return default; + return await GenerateAccessTokenAsync(user, rememberMe, additionalData, cancellationToken); + ////if (token != null) + ////{ + //// var data = ReflectionHelper.ParseObject(token); + //// if (CurrentTenant.Configurations.IsEncryptApi) + //// { + //// var encryptedInfo = AesEncryptionHelper.EncryptString(data.ToString(Formatting.None), aesKey); + + //// var resp = new JObject() + //// { + //// //new JProperty(MixEncryptKeywords.AESKey, aesKey), + //// //new JProperty(MixEncryptKeywords.RSAKey, rsaKeys[MixConstants.CONST_RSA_PRIVATE_KEY]), + //// new JProperty(MixEncryptKeywords.Message, encryptedInfo) + //// }; + //// return resp; + //// } + //// else + //// { + //// return data; + //// } + ////} + //return default; } - public virtual async Task GetTokenAsync(GetTokenModel model, CancellationToken cancellationToken = default) + public virtual async Task GetTokenAsync(GetTokenModel model, CancellationToken cancellationToken = default) { MixUser user = null; if (!string.IsNullOrEmpty(model.Email)) @@ -218,12 +223,12 @@ public virtual async Task GetTokenAsync(GetTokenModel model, Cancellati if (user != null) { - return await GetAuthData(user, true, CurrentTenant.Id, cancellationToken); + return await GetAuthData(user, true, CurrentTenant.Id, default, cancellationToken); } return default; } - public virtual async Task RegisterAsync(RegisterRequestModel model, int tenantId, UnitOfWorkInfo cmsUow, CancellationToken cancellationToken = default) + public virtual async Task RegisterAsync(RegisterRequestModel model, int tenantId, UnitOfWorkInfo cmsUow, JObject additionalData = default, CancellationToken cancellationToken = default) { var user = new MixUser { @@ -254,12 +259,13 @@ public virtual async Task RegisterAsync(RegisterRequestModel model, int await UserManager.AddToTenant(user, tenantId); user = await UserManager.FindByNameAsync(model.UserName).ConfigureAwait(false); + await GetOrCreateUserData(user, additionalData, cancellationToken); return user; } throw new MixException(MixErrorStatus.Badrequest, createResult.Errors.First().Description); } - public virtual async Task GetOrCreateUserData(MixUser user, CancellationToken cancellationToken = default) + public virtual async Task GetOrCreateUserData(MixUser user, JObject additionalData = default, CancellationToken cancellationToken = default) { try { @@ -280,7 +286,18 @@ public virtual async Task GetOrCreateUserData(MixUser user, Cancellatio new JProperty("PhoneNumber", user.PhoneNumber), }; + if (additionalData != null) + { + u.Add(additionalData.Properties()); + } + await MixDbDataService.CreateData(MixDatabaseNames.SYSTEM_USER_DATA, u); + + QueueService.PushMemoryQueue( + CurrentTenant.Id, + MixQueueTopics.MixBackgroundTasks, + MixQueueActions.MixDbEvent, + new MixDbEventCommand(user.UserName, MixDbCommandQueueAction.Create.ToString(), MixDatabaseNames.SYSTEM_USER_DATA, u)); } return u; } @@ -301,8 +318,7 @@ public virtual async Task GetOrCreateUserData(MixUser user, Cancellatio public virtual async Task GenerateAccessTokenAsync( MixUser user, bool isRemember, - string aesKey, - string rsaPublicKey, + JObject additionalData = default, CancellationToken cancellationToken = default) { try @@ -312,7 +328,7 @@ public virtual async Task GenerateAccessTokenAsync( var dtRefreshTokenExpired = dtIssued.AddMinutes(AuthConfigService.AppSettings.RefreshTokenExpiration); var refreshTokenId = Guid.Empty; var refreshToken = Guid.Empty; - //var userInfo = await GetOrCreateUserData(user, cancellationToken); + var userInfo = await GetOrCreateUserData(user, additionalData, cancellationToken); if (isRemember) { refreshToken = Guid.NewGuid(); @@ -333,11 +349,11 @@ public virtual async Task GenerateAccessTokenAsync( var token = new TokenResponseModel() { - Info = new(), + Info = userInfo, EmailConfirmed = user.EmailConfirmed, IsActive = user.IsActived, AccessToken = await GenerateTokenAsync( - user, new(), dtExpired, refreshToken.ToString(), aesKey, rsaPublicKey, AuthConfigService.AppSettings), + user, new(), dtExpired, refreshToken.ToString(), AuthConfigService.AppSettings), RefreshToken = refreshTokenId, TokenType = AuthConfigService.AppSettings.TokenType, ExpiresIn = AuthConfigService.AppSettings.AccessTokenExpiration, @@ -354,7 +370,7 @@ public virtual async Task GenerateAccessTokenAsync( } } - public virtual async Task ExternalLogin(RegisterExternalBindingModel model, CancellationToken cancellationToken = default) + public virtual async Task ExternalLogin(RegisterExternalBindingModel model, CancellationToken cancellationToken = default) { try { @@ -363,11 +379,24 @@ public virtual async Task ExternalLogin(RegisterExternalBindingModel mo { var user = await UserManager.FindByLoginAsync(model.Provider.ToString(), verifiedAccessToken.user_id); + if (user == null && !string.IsNullOrEmpty(model.Email)) + { + user = await UserManager.FindByEmailAsync(model.Email); + } + + if (user == null && !string.IsNullOrEmpty(model.PhoneNumber)) + { + user = await UserManager.FindByPhoneNumberAsync(model.PhoneNumber); + } + if (user == null && !string.IsNullOrEmpty(model.UserName)) + { + user = await UserManager.FindByNameAsync(model.UserName); + } // return local token if already register if (user != null) { - return await GetAuthData(user, true, CurrentTenant.Id, cancellationToken); + return await GetAuthData(user, true, CurrentTenant.Id, model.Data, cancellationToken); } // register new account @@ -390,9 +419,10 @@ public virtual async Task ExternalLogin(RegisterExternalBindingModel mo }, CurrentTenant.Id, CmsUow, + model.Data, cancellationToken); - return await GetAuthData(user, true, CurrentTenant.Id, cancellationToken); + return await GetAuthData(user, true, CurrentTenant.Id, model.Data, cancellationToken); } else { @@ -412,9 +442,9 @@ public virtual async Task ExternalLogin(RegisterExternalBindingModel mo } } - public async Task RenewTokenAsync(RenewTokenDto refreshTokenDto, CancellationToken cancellationToken = default) + public async Task RenewTokenAsync(RenewTokenDto refreshTokenDto, CancellationToken cancellationToken = default) { - JObject result = new(); + var result = new TokenResponseModel(); var oldToken = await RefreshTokenRepo.GetSingleAsync(t => t.Id == refreshTokenDto.RefreshToken, cancellationToken); if (oldToken != null) { @@ -424,10 +454,10 @@ public async Task RenewTokenAsync(RenewTokenDto refreshTokenDto, Cancel var principle = GetPrincipalFromExpiredToken(refreshTokenDto.AccessToken, AuthConfigService.AppSettings); if (principle != null && oldToken.Username == GetClaim(principle, MixClaims.Username)) { - var user = await UserManager.FindByEmailAsync(oldToken.Email); + var user = await UserManager.FindByNameAsync(oldToken.Username); await SignInManager.SignInAsync(user, true).ConfigureAwait(false); - var token = await GetAuthData(user, true, CurrentTenant.Id, cancellationToken); + var token = await GetAuthData(user, true, CurrentTenant.Id, default, cancellationToken); if (token != null) { await oldToken.DeleteAsync(cancellationToken); @@ -539,8 +569,6 @@ public async Task GenerateTokenAsync( JObject info, DateTime expires, string refreshToken, - string aesKey, - string rsaPublicKey, MixAuthenticationConfigurations appConfigs) { var userRoles = await UserManager.GetUserRolesAsync(user); @@ -560,8 +588,6 @@ public async Task GenerateTokenAsync( CreateClaim(MixClaims.TenantId, CurrentTenant.Id.ToString()), CreateClaim(MixClaims.RefreshToken, refreshToken), CreateClaim(MixClaims.Avatar, info?.Value("avatar") ?? MixConstants.CONST_DEFAULT_AVATAR), - CreateClaim(MixClaims.AESKey, aesKey), - CreateClaim(MixClaims.RSAPublicKey, rsaPublicKey), CreateClaim(MixClaims.ExpireAt, expires.ToString(datetimeFormat)) }); @@ -575,7 +601,19 @@ public async Task GenerateTokenAsync( return new JwtSecurityTokenHandler().WriteToken(jwtSecurityToken); } - + public async Task> LoadUserRoles(string username) + { + try + { + var user = await UserManager.FindByNameAsync(username); + return user != null ? (await UserManager.GetUserRolesAsync(user)).ToList() : default; + } + catch (Exception ex) + { + await MixLogService.LogExceptionAsync(ex); + return default; + } + } protected async Task> GetClaimsAsync(MixUser user, IList userRoles) { List claims = new(); diff --git a/src/platform/mix.library/Services/MixThemeExportService.cs b/src/platform/mix.library/Services/MixThemeExportService.cs index fe75dd002..d1c26dd7a 100644 --- a/src/platform/mix.library/Services/MixThemeExportService.cs +++ b/src/platform/mix.library/Services/MixThemeExportService.cs @@ -3,6 +3,7 @@ using Mix.Lib.Dtos; using Mix.Lib.Interfaces; using Mix.RepoDb.Repositories; +using Mix.Shared.Models; using System.Linq.Expressions; namespace Mix.Lib.Services @@ -222,7 +223,23 @@ private async Task ExportMixDbAsync() { foreach (var database in _siteData.MixDatabases) { - _repository.InitTableName(database.SystemName); + if (database.MixDatabaseContextId.HasValue) + { + var dbContext = _siteData.MixDatabaseContexts.First(m => m.Id == database.MixDatabaseContextId.Value); + if (dbContext == null) + { + return; + } + var cnn = dbContext.ConnectionString.IsBase64() + ? AesEncryptionHelper.DecryptString(dbContext.ConnectionString, GlobalConfigService.Instance.AppSettings.ApiEncryptKey) + : dbContext.ConnectionString; + _repository.Init(database.SystemName, dbContext.DatabaseProvider, cnn); + } + else + { + _repository.InitTableName(database.SystemName); + + } var data = await _repository.GetAllAsync(); if (data != null) { @@ -342,14 +359,18 @@ private async Task ExportPosts() private async Task ExportDatabases() { - _siteData.MixDatabaseColumns = await _context.MixDatabaseColumn - .Where(m => _dto.Content.MixDatabaseIds.Any(p => p == m.MixDatabaseId)) + _siteData.MixDatabaseContexts = await _context.MixDatabaseContext + .Where(m => _dto.Content.MixDatabaseContextIds.Any(p => p == m.Id)) .AsNoTracking() .ToListAsync(); _siteData.MixDatabases = await _context.MixDatabase .Where(m => _dto.Content.MixDatabaseIds.Any(p => p == m.Id)) .AsNoTracking() .ToListAsync(); + _siteData.MixDatabaseColumns = await _context.MixDatabaseColumn + .Where(m => _dto.Content.MixDatabaseIds.Any(p => p == m.MixDatabaseId)) + .AsNoTracking() + .ToListAsync(); _siteData.MixDatabaseRelationships = await _context.MixDatabaseRelationship .Where(m => _dto.Content.MixDatabaseIds.Any(p => p == m.ParentId)) .AsNoTracking() diff --git a/src/platform/mix.library/Services/MixThemeImportService.cs b/src/platform/mix.library/Services/MixThemeImportService.cs index f3dff291a..d7c80a894 100644 --- a/src/platform/mix.library/Services/MixThemeImportService.cs +++ b/src/platform/mix.library/Services/MixThemeImportService.cs @@ -1,24 +1,28 @@ -using DocumentFormat.OpenXml.Vml; +using DocumentFormat.OpenXml.Vml; using DocumentFormat.OpenXml.Wordprocessing; using Google.Protobuf.WellKnownTypes; using Humanizer; using Microsoft.AspNetCore.Http; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; +using Mix.Auth.Constants; using Mix.Database.Base; using Mix.Database.Entities.MixDb; using Mix.Database.Services; using Mix.Lib.Interfaces; +using Mix.RepoDb.Helpers; using Mix.RepoDb.Interfaces; using Mix.RepoDb.Repositories; using Mix.RepoDb.ViewModels; +using Mix.Signalr.Hub.Models; namespace Mix.Lib.Services { public class MixThemeImportService : IMixThemeImportService { private MixRepoDbRepository _repository { get; set; } - private MixCacheService _cacheService{ get; set; } + private FieldNameService _fieldNameService { get; set; } + private MixCacheService _cacheService { get; set; } private readonly CancellationTokenSource _cts; private readonly DatabaseService _databaseService; private readonly IDatabaseConstants _databaseConstant; @@ -286,7 +290,7 @@ private async Task ImportMixDatabases(UnitOfWorkInfo uow, MixCach { cancellationToken.ThrowIfCancellationRequested(); - await ImportDatabaseContextsAsync(uow.DbContext); + //await ImportDatabaseContextsAsync(uow.DbContext); await ImportDatabasesAsync(uow.DbContext); await ImportDatabaseRelationshipsAsync(uow.DbContext); await MigrateMixDatabaseAsync(uow, cacheService, mixDbService); @@ -457,6 +461,8 @@ private async Task ImportModuleContentsAsync() #endregion Import Module #region Import Database Data + + // TODO: should not import db context, it must be predefined before import database private async Task ImportDatabaseContextsAsync(MixCmsContext context) { @@ -464,21 +470,24 @@ private async Task ImportDatabaseContextsAsync(MixCmsContext context) { try { - var oldId = item.Id; - - while (context.MixDatabaseContext.Any(m => m.SystemName == item.SystemName)) + if (!context.MixDatabaseContext.Any(m => m.SystemName == item.SystemName)) { - item.SystemName = $"{item.SystemName}_1"; + var oldId = item.Id; + + while (context.MixDatabaseContext.Any(m => m.SystemName == item.SystemName)) + { + item.SystemName = $"{item.SystemName}_1"; + } + item.MixTenantId = CurrentTenant.Id; + item.Id = 0; + item.CreatedBy = _siteData.CreatedBy; + item.CreatedDateTime = DateTime.UtcNow; + item.DatabaseProvider = _databaseService.DatabaseProvider; + item.ConnectionString = _databaseService.GetConnectionString(MixConstants.CONST_CMS_CONNECTION); + context.Entry(item).State = EntityState.Added; + await context.SaveChangesAsync(_cts.Token); + _dicMixDatabaseContextIds.Add(oldId, item.Id); } - item.MixTenantId = CurrentTenant.Id; - item.Id = 0; - item.CreatedBy = _siteData.CreatedBy; - item.CreatedDateTime = DateTime.UtcNow; - item.DatabaseProvider = _databaseService.DatabaseProvider; - item.ConnectionString = _databaseService.GetConnectionString(MixConstants.CONST_CMS_CONNECTION); - context.Entry(item).State = EntityState.Added; - await context.SaveChangesAsync(_cts.Token); - _dicMixDatabaseContextIds.Add(oldId, item.Id); } catch (MixException) { @@ -499,12 +508,23 @@ private async Task ImportDatabasesAsync(MixCmsContext context) { try { + var oldDbContext = _siteData.MixDatabaseContexts.Find(m => m.Id == item.MixDatabaseContextId); var oldId = item.Id; var oldName = item.SystemName; + var currentDbContext = oldDbContext != null ? context.MixDatabaseContext.SingleOrDefault(m => m.SystemName == oldDbContext.SystemName) : default; var currentDb = context.MixDatabase.SingleOrDefault(m => m.SystemName == item.SystemName); + + + // Skip install database if there is no predefined db context + if (item.MixDatabaseContextId.HasValue && currentDbContext is null) + { + continue; + } + if (currentDb == null) { item.Id = 0; + item.MixDatabaseContextId = currentDbContext?.Id; item.CreatedBy = _siteData.CreatedBy; item.CreatedDateTime = DateTime.UtcNow; context.Entry(item).State = EntityState.Added; @@ -598,123 +618,67 @@ private async Task ImportDatabaseRelationshipsAsync(MixCmsContext dbContext) public async Task ImportMixDbDataAsync() { - foreach (var database in _siteData.MixDbModels) + var groupData = _siteData.MixDbModels.GroupBy(m => m.DatabaseName).ToList(); + foreach (var mixGroupData in groupData) { - // Not import user data from other site - if (database.DatabaseName == MixDatabaseNames.SYSTEM_USER_DATA) - { - continue; - } - - try + var oldDbContext = _siteData.MixDatabaseContexts.Find(m => m.Id == _siteData.MixDatabases.First(m => m.SystemName == mixGroupData.Key).MixDatabaseContextId); + var dbContext = oldDbContext != null ? _context.MixDatabaseContext.SingleOrDefault(m => m.SystemName == oldDbContext.SystemName) : default; + if (dbContext == null) { - var mixDb = _siteData.MixDatabases.FirstOrDefault(m => m.SystemName == database.DatabaseName); - if (mixDb != null && database.Data != null && database.Data.Count > 0) - { - var sql = GetInsertQuery(database, mixDb); - await _repository.ExecuteCommand(sql); - } + return; } - catch (MixException) + var mixDb = await RepoDbMixDatabaseViewModel.GetRepository(_uow, _cacheService).GetSingleAsync(m => m.SystemName == mixGroupData.Key); + if (mixDb.MixDatabaseContextId.HasValue) { - throw; + + var cnn = dbContext.ConnectionString.IsBase64() + ? AesEncryptionHelper.DecryptString(dbContext.ConnectionString, GlobalConfigService.Instance.AppSettings.ApiEncryptKey) + : dbContext.ConnectionString; + _repository.Init(mixDb.SystemName, dbContext.DatabaseProvider, cnn); + _fieldNameService = new FieldNameService(dbContext.NamingConvention); } - catch (Exception ex) + else { - throw new MixException(MixErrorStatus.Badrequest, nameof(ImportMixDbDataAsync), database.DatabaseName, ex.Message); - } - } - } + _repository.InitTableName(mixDb.SystemName); + _fieldNameService = new FieldNameService(MixDatabaseNamingConvention.TitleCase); - private string GetInsertQuery(MixDbModel database, MixDatabase mixDb) - { - List columns = new List { "Id", "CreatedDateTime", "LastModified", "MixTenantId", "CreatedBy", "ModifiedBy", "Priority", "Status", "IsDeleted" }; - columns.AddRange(_siteData.MixDatabaseColumns.Where(c => c.MixDatabaseName == database.DatabaseName).Select(c => c.SystemName.ToTitleCase()).ToList()); - List sqlList = new(); - var dbColumns = _siteData.MixDatabaseColumns.Where(m => m.MixDatabaseName == database.DatabaseName).ToList(); - foreach (var jToken in database.Data) - { - var item = (JObject)jToken; - List values = new(); - item["MixTenantId"] = CurrentTenant.Id; + } - if (mixDb.Type == MixDatabaseType.AdditionalData) + foreach (var mixData in mixGroupData) { - string parentType = item.Value("ParentType"); - if (parentType == "Post" && _dicPostContentIds.TryGetValue(item.Value("ParentId"), out int postId)) + // Not import user data from other site + if (mixData.DatabaseName == MixDatabaseNames.SYSTEM_USER_DATA) { - item["ParentId"] = postId; + continue; } - else if (parentType == "Page" && _dicPageIds.TryGetValue(item.Value("ParentId"), out int pageId)) + + try { - item["ParentId"] = pageId; + + + if (mixDb != null && mixData.Data != null && mixData.Data.Count > 0) + { + List lstDto = new(); + foreach (var jToken in mixData.Data) + { + lstDto.Add(await MixDbHelper.ParseDtoToEntityAsync((JObject)jToken, mixDb.Type, mixDb.Columns, _fieldNameService, username: _siteData.CreatedBy)); + } + await _repository.InsertManyAsync(lstDto, mixDb); + _repository.CompleteTransaction(); + } } - else + catch (MixException) { - continue; + throw; + } + catch (Exception ex) + { + throw new MixException(MixErrorStatus.Badrequest, nameof(ImportMixDbDataAsync), mixData.DatabaseName, ex.Message); } } - - foreach (var col in columns) - { - var colType = dbColumns.FirstOrDefault(c => c.SystemName.Equals(col, StringComparison.OrdinalIgnoreCase))?.DataType; - var defaultValue = dbColumns.FirstOrDefault(c => c.SystemName.Equals(col, StringComparison.OrdinalIgnoreCase))?.DefaultValue; - string objValue = GetColumnValue(col, colType, item, defaultValue, mixDb.Type); - values.Add(objValue); - } - - - - sqlList.Add($"Insert into {_databaseConstant.BacktickOpen}{database.DatabaseName}{_databaseConstant.BacktickClose} " + - $"({string.Join(',', columns.Select(c => $"{_databaseConstant.BacktickOpen}{c}{_databaseConstant.BacktickClose}"))}) " + - $"Values ({string.Join(',', values)})"); - } - return string.Join(';', sqlList); - } - - private string GetColumnValue(string col, MixDataType? colDataType, JObject item, string defaultValue, MixDatabaseType mixDbType) - { - switch (col) - { - case "CreatedDateTime": - case "LastModified": - colDataType = MixDataType.Date; - break; - case "IsDeleted": - colDataType = MixDataType.Boolean; - break; - case "Id": - case "MixTenantId": - case "Priority": - colDataType = MixDataType.Integer; - break; } - var strValue = item.Value(col); - - if (strValue != null && strValue.Contains("'")) - { - strValue = strValue.Replace("'", "\\'"); - } - if (string.IsNullOrEmpty(defaultValue)) - { - defaultValue = "NULL"; - } - return colDataType switch - { - MixDataType.Boolean => string.IsNullOrEmpty(strValue) ? defaultValue : strValue, - MixDataType.Integer => string.IsNullOrEmpty(strValue) ? defaultValue : strValue, - MixDataType.Reference => string.IsNullOrEmpty(strValue) ? defaultValue : strValue, - MixDataType.Date => item.Value(col) != null - ? $"'{item.Value(col)?.ToString("yyyy-MM-dd HH-mm-ss")}'" - : defaultValue, - MixDataType.DateTime => item.Value(col) != null - ? $"'{item.Value(col)?.ToString("yyyy-MM-dd HH-mm-ss")}'" - : defaultValue, - _ => string.IsNullOrEmpty(strValue) ? defaultValue : $"'{strValue}'" - }; } - #endregion Import Module #endregion diff --git a/src/platform/mix.library/Services/TenantUserManager.cs b/src/platform/mix.library/Services/TenantUserManager.cs index a59f969e0..7039676fc 100644 --- a/src/platform/mix.library/Services/TenantUserManager.cs +++ b/src/platform/mix.library/Services/TenantUserManager.cs @@ -120,7 +120,7 @@ public async Task> GetUserRolesAsync(MixUser user) var roles = from ur in Context.AspNetUserRoles join r in Context.MixRoles on ur.RoleId equals r.Id - where ur.UserId == user.Id && ur.MixTenantId == CurrentTenant.Id + where ur.UserId == user.Id select r; return await roles.ToListAsync(); } diff --git a/src/platform/mix.library/Startup/AuthServiceCollectionExtensions.cs b/src/platform/mix.library/Startup/AuthServiceCollectionExtensions.cs index f39129673..7185c79f5 100644 --- a/src/platform/mix.library/Startup/AuthServiceCollectionExtensions.cs +++ b/src/platform/mix.library/Startup/AuthServiceCollectionExtensions.cs @@ -1,4 +1,4 @@ -// Licensed to the mixcore Foundation under one or more agreements. +// Licensed to the mixcore Foundation under one or more agreements. // The mixcore Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -17,6 +17,8 @@ using Mix.Identity.Services; using Mix.Lib.Services; using Mix.Shared.Models.Configurations; +using Mix.Shared.Services; +using RabbitMQ.Client; using System.Reflection; using System.Text; namespace Microsoft.Extensions.DependencyInjection @@ -27,7 +29,8 @@ public static class AuthServiceCollectionExtensions public static IServiceCollection AddMixAuthorize(this IServiceCollection services, IConfiguration configuration) where TDbContext : DbContext { - AuthConfigService authConfigService = services.GetService(); + services.TryAddScoped(); + var _globalConfig = configuration.Get()!; if (_globalConfig.IsInit) { @@ -35,11 +38,20 @@ public static IServiceCollection AddMixAuthorize(this IServiceCollec authConfigService.SaveSettings(); } + services.AddMixIdentityServices(); + return services; + } + + public static IServiceCollection AddMixIdentityConfigurations(this IServiceCollection services, IConfiguration configuration) + where TDbContext : DbContext + { + services.TryAddScoped(); + var authConfigService = services.GetService(); var authConfigurations = authConfigService.AppSettings; PasswordOptions pOpt = new() { RequireDigit = false, - RequiredLength = 6, + RequiredLength = 4, RequireLowercase = false, RequireNonAlphanumeric = false, RequireUppercase = false @@ -117,6 +129,7 @@ public static IServiceCollection AddMixAuthorize(this IServiceCollec //}); // Firebase service must be singleton (only one firebase default instance) services.TryAddSingleton(); + services.TryAddSingleton(); services.TryAddScoped(); services.TryAddScoped>(); services.AddSingleton(); diff --git a/src/platform/mix.library/Startup/MixTenant.cs b/src/platform/mix.library/Startup/MixTenant.cs index 77802e0d8..b5c5516d2 100644 --- a/src/platform/mix.library/Startup/MixTenant.cs +++ b/src/platform/mix.library/Startup/MixTenant.cs @@ -15,16 +15,17 @@ public static partial class ServiceCollectionExtensions { public static IServiceCollection AddMixTenant(this IServiceCollection services, IConfiguration configuration) { - var authConfig = configuration.GetSection(MixAppSettingsSection.Authentication).Get(); + services.TryAddScoped(); + var authConfigService = services.GetService(); services.AddMixCache(configuration); services.AddSession( options => { - options.IdleTimeout = TimeSpan.FromMinutes(authConfig.AccessTokenExpiration); + options.IdleTimeout = TimeSpan.FromMinutes(authConfigService.AppSettings.AccessTokenExpiration); options.Cookie.SecurePolicy = CookieSecurePolicy.Always; options.Cookie.SameSite = SameSiteMode.Strict; options.Cookie.HttpOnly = true; - options.Cookie.Name = authConfig.Issuer; + options.Cookie.Name = authConfigService.AppSettings.Issuer; } ); diff --git a/src/platform/mix.library/Startup/Swagger.cs b/src/platform/mix.library/Startup/Swagger.cs index 4f8f0af09..1c755f56d 100644 --- a/src/platform/mix.library/Startup/Swagger.cs +++ b/src/platform/mix.library/Startup/Swagger.cs @@ -1,4 +1,4 @@ -using Microsoft.AspNetCore.Authentication.JwtBearer; +using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Builder; using Microsoft.OpenApi.Models; using Mix.Lib.Filters; @@ -57,8 +57,8 @@ public static IApplicationBuilder UseMixSwaggerApps(this IApplicationBuilder app string routeTemplate = "swagger/{documentName}/swagger.json"; string endPoint = $"/swagger/{version}/swagger.json"; - //if (isDevelop) - //{ + if (isDevelop) + { var xmlFilename = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; app.UseSwagger(opt => @@ -76,7 +76,7 @@ public static IApplicationBuilder UseMixSwaggerApps(this IApplicationBuilder app c.EnableFilter(); c.EnableDeepLinking(); }); - //} + } return app; } diff --git a/src/platform/mix.library/Startup/_ServiceCollectionExtensions.cs b/src/platform/mix.library/Startup/_ServiceCollectionExtensions.cs index 3105ff721..375105179 100644 --- a/src/platform/mix.library/Startup/_ServiceCollectionExtensions.cs +++ b/src/platform/mix.library/Startup/_ServiceCollectionExtensions.cs @@ -1,4 +1,4 @@ -using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.DataProtection; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; @@ -39,9 +39,6 @@ public static IServiceCollection AddMixServices(this IServiceCollection services var globalConfig = configuration.GetSection(MixAppSettingsSection.GlobalSettings) .Get(); - var authConfig = configuration.GetSection(MixAppSettingsSection.Authentication) - .Get(); - var redisCnn = configuration.GetSection("Redis").GetValue("ConnectionString"); services.Configure(options => { @@ -57,7 +54,7 @@ public static IServiceCollection AddMixServices(this IServiceCollection services { var redis = ConnectionMultiplexer.Connect(configuration.GetSection("Redis").GetValue("ConnectionString")); services.AddDataProtection() - .SetApplicationName(authConfig.Issuer) + .SetApplicationName(Assembly.GetExecutingAssembly().FullName) .PersistKeysToStackExchangeRedis(redis, "DataProtection-Keys"); var sp = services.BuildServiceProvider(); @@ -72,7 +69,7 @@ public static IServiceCollection AddMixServices(this IServiceCollection services { services.AddDataProtection() .UnprotectKeysWithAnyCertificate() - .SetApplicationName(authConfig.Issuer); + .SetApplicationName(Assembly.GetExecutingAssembly().FullName); } @@ -94,7 +91,6 @@ public static IServiceCollection AddMixServices(this IServiceCollection services services.AddMixTenant(configuration); services.AddGeneratedPublisher(); - services.AddMixModuleServices(configuration); services.AddGeneratedRestApi(MixAssemblies); @@ -120,11 +116,8 @@ public static IServiceCollection AddMixTestServices(this IServiceCollection serv { // Clone Settings from shared folder var globalConfig = configuration.GetSection(MixAppSettingsSection.GlobalSettings).Get()!; - var authConfig = configuration.GetSection(MixAppSettingsSection.Authentication) - .Get(); services.AddMvc().AddSessionStateTempDataProvider(); - services.AddMixCommonServices(configuration); services.TryAddScoped(); services.TryAddScoped(); @@ -149,8 +142,6 @@ public static IServiceCollection AddMixTestServices(this IServiceCollection serv services.AddMixSwaggerServices(executingAssembly); services.AddSSL(); - - services.Configure( options => options.Level = System.IO.Compression.CompressionLevel.Fastest); services.AddResponseCaching(); diff --git a/src/platform/mix.library/ViewModels/MixDatabaseContextViewModel.cs b/src/platform/mix.library/ViewModels/MixDatabaseContextViewModel.cs index 1d85c4c1e..bcb2ce59b 100644 --- a/src/platform/mix.library/ViewModels/MixDatabaseContextViewModel.cs +++ b/src/platform/mix.library/ViewModels/MixDatabaseContextViewModel.cs @@ -1,4 +1,6 @@ -namespace Mix.Lib.ViewModels +using System.Text.Json.Serialization; + +namespace Mix.Lib.ViewModels { public sealed class MixDatabaseContextViewModel : TenantDataViewModelBase @@ -11,6 +13,9 @@ public sealed class MixDatabaseContextViewModel public string SystemName { get; set; } public List Databases { get; set; } = new(); + + [JsonIgnore] + public string DecryptedConnectionString { get; set; } #endregion #region Constructors @@ -34,8 +39,24 @@ public MixDatabaseContextViewModel(MixDatabaseContext entity, UnitOfWorkInfo uow #region Overrides public override async Task ExpandView(CancellationToken cancellationToken = default) { - var dbRepo = MixDatabaseViewModel.GetRepository(UowInfo, CacheService); - Databases = await dbRepo.GetListAsync(m => m.MixDatabaseContextId == Id, cancellationToken); + Databases = await MixDatabaseViewModel.GetRepository(UowInfo, CacheService).GetListAsync(m => m.MixDatabaseContextId == Id, cancellationToken); + if (ConnectionString.IsBase64()) + { + DecryptedConnectionString ??= AesEncryptionHelper.DecryptString(ConnectionString, GlobalConfigService.Instance.AppSettings.ApiEncryptKey); + } + else + { + DecryptedConnectionString = ConnectionString; + } + } + + public override Task ParseEntity(CancellationToken cancellationToken = default) + { + if (!string.IsNullOrEmpty(DecryptedConnectionString)) + { + ConnectionString = AesEncryptionHelper.EncryptString(DecryptedConnectionString, GlobalConfigService.Instance.AppSettings.ApiEncryptKey); + } + return base.ParseEntity(cancellationToken); } protected override async Task DeleteHandlerAsync(CancellationToken cancellationToken = default) diff --git a/src/platform/mix.library/mix.library.csproj b/src/platform/mix.library/mix.library.csproj index 028856d00..a61ed6535 100644 --- a/src/platform/mix.library/mix.library.csproj +++ b/src/platform/mix.library/mix.library.csproj @@ -1,4 +1,4 @@ - + net8.0 @@ -82,13 +82,13 @@ - - - - - - - + + + + + + + diff --git a/src/platform/mix.log/ServiceCollectionExtension.cs b/src/platform/mix.log/ServiceCollectionExtension.cs index d45e5258e..4792543ca 100644 --- a/src/platform/mix.log/ServiceCollectionExtension.cs +++ b/src/platform/mix.log/ServiceCollectionExtension.cs @@ -1,8 +1,9 @@ -using Google.Api; +using Google.Api; using Microsoft.AspNetCore.Http; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; +using Microsoft.Extensions.Hosting; using Mix.Constant.Constants; using Mix.Database.Entities.AuditLog; using Mix.Database.Entities.Queue; @@ -32,7 +33,13 @@ namespace Mix.Log.Lib { public static class ServiceCollectionExtensions { - public static IServiceCollection AddMixLog(this IServiceCollection services, IConfiguration configuration) + // Only need to add these services to the main service + // which is use for subscribe and store log messages + // For other application: + // builder.Services.AddHostedService(); + // app.UseMiddleware(); + // For Ex: store log message to db, just need to add these services to main application only + public static IServiceCollection AddMixLogSubscriber(this IServiceCollection services, IConfiguration configuration) { var globalConfigs = configuration.GetSection(MixAppSettingsSection.GlobalSettings).Get()!; @@ -46,16 +53,25 @@ public static IServiceCollection AddMixLog(this IServiceCollection services, ICo services.AddDbContext(); - services.AddDbContext(); - services.TryAddScoped(); + services.AddDbContext(); + services.TryAddSingleton(); if (!globalConfigs!.IsInit) { - services.AddHostedService(); services.TryAddSingleton(); services.TryAddSingleton(); + services.AddHostedService(); } return services; } + + public static IHostApplicationBuilder AddMixLogPublisher(this IHostApplicationBuilder builder) + { + builder.Services.TryAddSingleton(); + builder.Services.TryAddScoped(); + builder.Services.AddHostedService(); + + return builder; + } } } diff --git a/src/platform/mix.log/Subscribers/MixLogSubscriber.cs b/src/platform/mix.log/Subscribers/MixLogSubscriber.cs index f3d49e6af..fe23ba21d 100644 --- a/src/platform/mix.log/Subscribers/MixLogSubscriber.cs +++ b/src/platform/mix.log/Subscribers/MixLogSubscriber.cs @@ -1,4 +1,5 @@ using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Microsoft.Extensions.ObjectPool; using Mix.Constant.Constants; @@ -78,52 +79,52 @@ public override async Task Handler(MessageQueueModel model) { return; } - - switch (model.Action) + try { - case MixQueueActions.AuditLog: - var auditLogCmd = model.ParseData(); - if (auditLogCmd != null) - { - await _auditLogService.SaveRequestAsync(auditLogCmd.Request); - } - break; - case MixQueueActions.EnqueueLog: - var queueMessage = model.ParseData(); + switch (model.Action) + { + case MixQueueActions.AuditLog: + var auditLogCmd = model.ParseData(); + if (auditLogCmd != null) + { + await _auditLogService.SaveRequestAsync(auditLogCmd.Request); + } + break; - if (queueMessage != null) - { - await _queueMessageLogService.EnqueueMessageAsync(queueMessage); - } - break; - case MixQueueActions.AckLog: - var ackQueueMessage = model.ParseData(); + case MixQueueActions.EnqueueLog: + var queueMessage = model.ParseData(); - if (ackQueueMessage != null) - { - ackQueueMessage.Sender = model.Sender; - await _queueMessageLogService.AckQueueMessage(ackQueueMessage); - } - break; + if (queueMessage != null) + { + await _queueMessageLogService.EnqueueMessageAsync(queueMessage); + } + break; + case MixQueueActions.AckLog: + var ackQueueMessage = model.ParseData(); - case MixQueueActions.ExceptionLog: - var ex = model.ParseData(); - await MixLogService.LogExceptionAsync(ex); - break; + if (ackQueueMessage != null) + { + ackQueueMessage.Sender = model.Sender; + await _queueMessageLogService.AckQueueMessage(ackQueueMessage); + } + break; - case MixQueueActions.QueueFailed: - var queueEx = model.ParseData(); - if (queueEx != null) - { - queueEx.Sender = model.Sender; - await _queueMessageLogService.FailedQueueMessage(queueEx); - } - break; + case MixQueueActions.ExceptionLog: + var ex = model.ParseData(); + await MixLogService.LogExceptionAsync(ex); + break; - case MixQueueActions.DeadLetter: - var deadLetterMsg = model.ParseData(); + case MixQueueActions.QueueFailed: + var queueEx = model.ParseData(); + if (queueEx != null) + { + queueEx.Sender = model.Sender; + await _queueMessageLogService.FailedQueueMessage(queueEx); + } + break; +<<<<<<< HEAD if (deadLetterMsg != null) { deadLetterMsg.Sender = model.Sender; @@ -131,6 +132,24 @@ public override async Task Handler(MessageQueueModel model) await _queueMessageLogService.DeadLetterMessageAsync(deadLetterMsg); } break; +======= + case MixQueueActions.DeadLetter: + var deadLetterMsg = model.ParseData(); + + if (deadLetterMsg != null) + { + deadLetterMsg.Sender = model.Sender; + + await _queueMessageLogService.DeadLetterMessageAsync(deadLetterMsg); + } + break; + } + } + catch (Exception ex) + { + await MixLogService.LogExceptionAsync(ex); + await SendMessage(model.Action, false, ex); +>>>>>>> 24564b775 (update latest code) } } diff --git a/src/platform/mix.mixdb/Services/RuntimeDbContextService.cs b/src/platform/mix.mixdb/Services/RuntimeDbContextService.cs index 8019d2684..d9ff6f212 100644 --- a/src/platform/mix.mixdb/Services/RuntimeDbContextService.cs +++ b/src/platform/mix.mixdb/Services/RuntimeDbContextService.cs @@ -1,4 +1,5 @@ -using Microsoft.AspNetCore.Http; +using Castle.Components.DictionaryAdapter.Xml; +using Microsoft.AspNetCore.Http; using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; using Microsoft.EntityFrameworkCore; @@ -126,7 +127,8 @@ public List CreateDynamicDbContext() ContextName = "DataContext", ContextNamespace = "TypedDataContext.Context", //ModelNamespace = "TypedDataContext.Models", - SuppressConnectionStringWarning = true + SuppressConnectionStringWarning = true, + }; var scaffoldedModelSources = scaffolder.ScaffoldModel( diff --git a/src/platform/mix.mixdb/mix.mixdb.csproj b/src/platform/mix.mixdb/mix.mixdb.csproj index 865937440..61d13b260 100644 --- a/src/platform/mix.mixdb/mix.mixdb.csproj +++ b/src/platform/mix.mixdb/mix.mixdb.csproj @@ -1,4 +1,4 @@ - + net8.0 @@ -8,12 +8,12 @@ - - + + all - - + + diff --git a/src/platform/mix.quartz/mix.quartz.csproj b/src/platform/mix.quartz/mix.quartz.csproj index 84c9610c4..cec51be2c 100644 --- a/src/platform/mix.quartz/mix.quartz.csproj +++ b/src/platform/mix.quartz/mix.quartz.csproj @@ -1,4 +1,4 @@ - + net8.0 @@ -6,11 +6,11 @@ - - - - - + + + + + diff --git a/src/platform/mix.queue/Engines/Mix/MixQueueSubscriber.cs b/src/platform/mix.queue/Engines/Mix/MixQueueSubscriber.cs index 71555befd..53650f45b 100644 --- a/src/platform/mix.queue/Engines/Mix/MixQueueSubscriber.cs +++ b/src/platform/mix.queue/Engines/Mix/MixQueueSubscriber.cs @@ -118,7 +118,7 @@ private void AckQueueMessage(T model) TopicId = MixQueueTopics.MixLog, Action = MixQueueActions.AckLog, Sender = _subscriptionId, - Data = ReflectionHelper.ParseObject(model).ToString(), + Data = ReflectionHelper.ParseObject(model).ToString(Newtonsoft.Json.Formatting.None), TenantId = 1, CreatedDate = DateTime.UtcNow }); diff --git a/src/platform/mix.queue/Engines/RabitMq/RabitMQSubscriber.cs b/src/platform/mix.queue/Engines/RabitMq/RabitMQSubscriber.cs index 8d37b8359..a12282ca3 100644 --- a/src/platform/mix.queue/Engines/RabitMq/RabitMQSubscriber.cs +++ b/src/platform/mix.queue/Engines/RabitMq/RabitMQSubscriber.cs @@ -1,9 +1,11 @@ -using Google.Cloud.PubSub.V1; +using Google.Cloud.PubSub.V1; using Microsoft.Extensions.ObjectPool; +using Mix.Heart.Extensions; using Mix.Mq.Lib.Models; using Mix.Queue.Interfaces; using Mix.Queue.Models.QueueSetting; using Newtonsoft.Json; +using Newtonsoft.Json.Linq; using RabbitMQ.Client; using RabbitMQ.Client.Events; using System; @@ -55,10 +57,22 @@ private void InitializeQueue(IPooledObjectPolicy objectPolicy, string to _consumer.Received += (ch, ea) => { // received message - string body = System.Text.Encoding.UTF8.GetString(ea.Body.ToArray()); - var msg = JsonConvert.DeserializeObject(body); - _messageHandler(msg); - _channel.BasicAck(ea.DeliveryTag, false); + try + { + string body = System.Text.Encoding.UTF8.GetString(ea.Body.ToArray()); + if (body.IsJsonString()) + { + var msg = JObject.Parse(body).ToObject(); + _messageHandler(msg); + _channel.BasicAck(ea.DeliveryTag, false); + } + } + catch (Exception ex) + { + Console.Error.WriteLine($"Cannot process message {subscriptionId}"); + Console.Error.WriteLine(ex); + _channel.BasicNack(ea.DeliveryTag, false, false); + } }; _channel.BasicConsume(queueResult.QueueName, false, _consumer); } diff --git a/src/platform/mix.queue/Engines/SubscriberBase.cs b/src/platform/mix.queue/Engines/SubscriberBase.cs index b90fa8e35..0e22bd300 100644 --- a/src/platform/mix.queue/Engines/SubscriberBase.cs +++ b/src/platform/mix.queue/Engines/SubscriberBase.cs @@ -203,7 +203,7 @@ public virtual Task HandleDeadLetter(MessageQueueModel message) { Action = MixQueueActions.DeadLetter, TopicId = MixQueueTopics.MixLog, - Data = ReflectionHelper.ParseObject(message).ToString(), + Data = ReflectionHelper.ParseObject(message).ToString(Newtonsoft.Json.Formatting.None), Success = false }); return Task.CompletedTask; @@ -217,8 +217,8 @@ public virtual Task HandleException(MessageQueueModel data, Exception ex) TopicId = MixQueueTopics.MixLog, Id = data.Id, Sender = _subscriber.SubscriptionId, - Data = ReflectionHelper.ParseObject(data).ToString(), - Exception = ex, + Data = ReflectionHelper.ParseObject(data).ToString(Newtonsoft.Json.Formatting.None), + //Exception = ex, Success = false }); return Task.CompletedTask; diff --git a/src/platform/mix.queue/Services/MemoryQueueService.cs b/src/platform/mix.queue/Services/MemoryQueueService.cs index 95a5e5300..01af29845 100644 --- a/src/platform/mix.queue/Services/MemoryQueueService.cs +++ b/src/platform/mix.queue/Services/MemoryQueueService.cs @@ -110,7 +110,7 @@ private void EnqueueLog(MessageQueueModel model) { TopicId = MixQueueTopics.MixLog, Action = MixQueueActions.EnqueueLog, - Data = ReflectionHelper.ParseObject(model).ToString(), + Data = ReflectionHelper.ParseObject(model).ToString(Newtonsoft.Json.Formatting.None), TenantId = 1, CreatedDate = DateTime.UtcNow }); diff --git a/src/platform/mix.queue/mix.queue.csproj b/src/platform/mix.queue/mix.queue.csproj index 2490ac833..19b2a283e 100644 --- a/src/platform/mix.queue/mix.queue.csproj +++ b/src/platform/mix.queue/mix.queue.csproj @@ -1,4 +1,4 @@ - + net8.0 @@ -15,16 +15,15 @@ - + - - - - - - - - + + + + + + + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/src/platform/mix.repodb/Helpers/MixDbHelper.cs b/src/platform/mix.repodb/Helpers/MixDbHelper.cs index 6ddd7c14a..619516939 100644 --- a/src/platform/mix.repodb/Helpers/MixDbHelper.cs +++ b/src/platform/mix.repodb/Helpers/MixDbHelper.cs @@ -1,4 +1,4 @@ -using Mix.Constant.Enums; +using Mix.Constant.Enums; using Mix.Heart.Enums; using Mix.Heart.Exceptions; using Mix.Heart.Extensions; @@ -25,7 +25,7 @@ public static Task ParseDtoToEntityAsync(JObject dto, List c.SystemName.Equals(colName, StringComparison.InvariantCultureIgnoreCase)); if (encryptedColumnNames.Contains(colName)) @@ -90,6 +90,10 @@ public static Task ParseDtoToEntityAsync(JObject dto, List ParseImportDtoToEntityAsync(JObject dto, List(); + case MixDataType.Json: + case MixDataType.ArrayRadio: + return value.Type != JTokenType.String + ? JObject.FromObject(value).ToString(Formatting.None) + : value.Value(); ; + case MixDataType.Integer: + case MixDataType.Reference: + return int.Parse(strValue); + case MixDataType.Double: + return double.Parse(strValue); + case MixDataType.Guid: + Guid.TryParse(value.ToString(), out var guildResult); + return guildResult; + default: + return value.ToString(); + } } } + catch (Exception ex) + { + throw new MixException(MixErrorStatus.Badrequest, ex); + } return null; } } diff --git a/src/platform/mix.repodb/Repositories/MixRepoDbRepository.cs b/src/platform/mix.repodb/Repositories/MixRepoDbRepository.cs index 2c2f6a7ed..dbf7c14f2 100644 --- a/src/platform/mix.repodb/Repositories/MixRepoDbRepository.cs +++ b/src/platform/mix.repodb/Repositories/MixRepoDbRepository.cs @@ -1,4 +1,4 @@ -using Microsoft.Data.SqlClient; +using Microsoft.Data.SqlClient; using Microsoft.Data.Sqlite; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Storage; @@ -25,6 +25,7 @@ using RepoDb; using RepoDb.Enumerations; using RepoDb.Interfaces; +using RepoDb.StatementBuilders; using System.Data; using System.Reflection.Metadata; using static Microsoft.EntityFrameworkCore.DbLoggerCategory; @@ -132,10 +133,14 @@ public async Task> GetPagingAsync(IEnumerable() { Items = data.ToList(), @@ -383,6 +388,7 @@ public async Task InsertAsync(JObject obj, RepoDbMixDatabaseViewModel mixD dicObjs.Add(dicObj); } } + var fields = dicObjs[0].Keys.Select(m => new Field(m)).ToList(); BeginTransaction(); @@ -426,7 +432,47 @@ public async Task InsertAsync(JObject obj, RepoDbMixDatabaseViewModel mixD } } - public async Task UpdateAsync(int id, JObject entity, RepoDbMixDatabaseViewModel mixDb) + public async Task UpdateManyAsync(List entities, RepoDbMixDatabaseViewModel mixDb) + { + try + { + if (entities.Count == 0) + { + return default; + } + + List> dicObjs = new(); + + foreach (var entity in entities) + { + var dicObj = ParseDictionary(entity, mixDb); + if (dicObj != null) + { + dicObjs.Add(dicObj); + } + } + + var fields = dicObjs[0].Keys.Select(m => new Field(m)).ToList(); + + BeginTransaction(); + var result = await _connection.UpdateAllAsync( + mixDb.SystemName, + entities: dicObjs, + fields: fields, + commandTimeout: _settings.CommandTimeout, + transaction: _dbTransaction, + trace: _trace); + CompleteTransaction(); + return result; + } + catch (Exception ex) + { + RollbackTransaction(); + throw new MixException(MixErrorStatus.ServerError, ex); + } + } + + public async Task UpdateAsync(object id, JObject entity, RepoDbMixDatabaseViewModel mixDb) { try { diff --git a/src/platform/mix.repodb/Repositories/OptimizedPostgresSqlStatementBuilder.cs b/src/platform/mix.repodb/Repositories/OptimizedPostgresSqlStatementBuilder.cs new file mode 100644 index 000000000..5999b17da --- /dev/null +++ b/src/platform/mix.repodb/Repositories/OptimizedPostgresSqlStatementBuilder.cs @@ -0,0 +1,401 @@ +using Microsoft.Data.SqlClient; +using Npgsql; +using RepoDb; +using RepoDb.Exceptions; +using RepoDb.Extensions; +using RepoDb.Interfaces; +using RepoDb.Resolvers; +using RepoDb.StatementBuilders; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; + +namespace Mix.RepoDb.Repositories +{ + + /// + /// A class used to build a SQL Statement for SQL Server. This is the default statement builder used by the library. + /// + internal sealed class OptimizedPostgresSqlStatementBuilder : BaseStatementBuilder + { + /// + /// Creates a new instance of object. + /// + public OptimizedPostgresSqlStatementBuilder() + : base(DbSettingMapper.Get(), + new PostgreSqlConvertFieldResolver(), + new ClientTypeToAverageableClientTypeResolver()) + { } + // + // Summary: + // Creates a new instance of RepoDb.StatementBuilders.PostgreSqlStatementBuilder + // class. + // + // Parameters: + // dbSetting: + // The database settings object currently in used. + // + // convertFieldResolver: + // The resolver used when converting a field in the database layer. + // + // averageableClientTypeResolver: + // The resolver used to identity the type for average. + public OptimizedPostgresSqlStatementBuilder(IDbSetting dbSetting, IResolver convertFieldResolver = null, IResolver averageableClientTypeResolver = null) + : base(dbSetting, convertFieldResolver, averageableClientTypeResolver) + { + } + + #region Create Batch Query + // + // Summary: + // Creates a SQL Statement for batch query operation. + // + // Parameters: + // tableName: + // The name of the target table. + // + // fields: + // The list of fields to be queried. + // + // page: + // The page of the batch. + // + // rowsPerBatch: + // The number of rows per batch. + // + // orderBy: + // The list of fields for ordering. + // + // where: + // The query expression. + // + // hints: + // The table hints to be used. + // + // Returns: + // A sql statement for batch query operation. + + public override string CreateBatchQuery(string tableName, IEnumerable fields, int page, int rowsPerBatch, IEnumerable orderBy = null, QueryGroup where = null, string hints = null) + { + GuardTableName(tableName); + GuardHints(hints); + if (fields == null || !fields.Any()) + { + throw new EmptyException("The list of queryable fields must not be null for '" + tableName + "'."); + } + + if (orderBy == null || !orderBy.Any()) + { + throw new EmptyException("The argument 'orderBy' is required."); + } + + if (page < 0) + { + throw new ArgumentOutOfRangeException("page", "The page must be equals or greater than 0."); + } + + if (rowsPerBatch < 1) + { + throw new ArgumentOutOfRangeException("rowsPerBatch", "The rows per batch must be equals or greater than 1."); + } + + int value = page * rowsPerBatch; + QueryBuilder queryBuilder = new QueryBuilder(); + queryBuilder.Clear().Select().FieldsFrom(fields, base.DbSetting) + .From() + .TableNameFrom(tableName, base.DbSetting) + .WhereFrom(where, base.DbSetting) + .OrderByFrom(orderBy, base.DbSetting) + .LimitOffset(rowsPerBatch, value) + .End(); + + // Return the query + string query = queryBuilder.GetString(); + Regex regex = new("(\"\\w+\")\\s(LIKE)"); + + return regex.Replace(query, "public.unaccent($1) ILIKE"); + } + + + #endregion + + #region Create Merge + + // + // Summary: + // Creates a SQL Statement for merge operation. + // + // Parameters: + // tableName: + // The name of the target table. + // + // fields: + // The list of fields to be merged. + // + // qualifiers: + // The list of the qualifier RepoDb.Field objects. + // + // primaryField: + // The primary field from the database. + // + // identityField: + // The identity field from the database. + // + // hints: + // The table hints to be used. + // + // Returns: + // A sql statement for merge operation. + public override string CreateMerge(string tableName, IEnumerable fields, IEnumerable qualifiers = null, DbField primaryField = null, DbField identityField = null, string hints = null) + { + GuardTableName(tableName); + GuardHints(hints); + GuardPrimary(primaryField); + GuardIdentity(identityField); + if (fields == null || !fields.Any()) + { + throw new EmptyException("The list of fields cannot be null or empty."); + } + + IEnumerable enumerable = qualifiers; + if ((enumerable == null || !enumerable.Any()) && primaryField != null) + { + qualifiers = primaryField.AsField().AsEnumerable(); + } + + IEnumerable enumerable2 = qualifiers; + if (enumerable2 == null || !enumerable2.Any()) + { + if (primaryField == null) + { + throw new PrimaryFieldNotFoundException("The is no primary field from the table '" + tableName + "' that can be used as qualifier."); + } + + throw new InvalidQualifiersException("There are no defined qualifier fields."); + } + + QueryBuilder queryBuilder = new QueryBuilder(); + List fields2 = fields.Where(delegate (Field f) + { + IEnumerable enumerable3 = qualifiers; + return enumerable3 == null || !enumerable3.Any((Field qf) => string.Equals(qf.Name, f.Name, StringComparison.OrdinalIgnoreCase)); + }).AsList(); + queryBuilder.Clear().Insert().Into() + .TableNameFrom(tableName, base.DbSetting) + .OpenParen() + .FieldsFrom(fields, base.DbSetting) + .CloseParen(); + if (identityField != null) + { + queryBuilder.WriteText("OVERRIDING SYSTEM VALUE"); + } + + queryBuilder.Values().OpenParen().ParametersFrom(fields, 0, base.DbSetting) + .CloseParen() + .OnConflict(qualifiers, base.DbSetting) + .DoUpdate() + .Set() + .FieldsAndParametersFrom(fields2, 0, base.DbSetting); + DbField returnKeyColumnAsDbField = GetReturnKeyColumnAsDbField(primaryField, identityField); + string text = "NULL"; + if (returnKeyColumnAsDbField != null) + { + string databaseType = GetDatabaseType(returnKeyColumnAsDbField); + text = (string.IsNullOrWhiteSpace(databaseType) ? returnKeyColumnAsDbField.Name.AsQuoted(base.DbSetting) : $"CAST({returnKeyColumnAsDbField.Name.AsQuoted(base.DbSetting)} AS {databaseType})"); + } + + string text2 = "RETURNING " + text + " AS " + "Result".AsQuoted(base.DbSetting); + queryBuilder.WriteText(text2); + queryBuilder.End(); + return queryBuilder.GetString(); + } + + #endregion + + #region Create Merge all + + // + // Summary: + // Creates a SQL Statement for merge-all operation. + // + // Parameters: + // tableName: + // The name of the target table. + // + // fields: + // The list of fields to be merged. + // + // qualifiers: + // The list of the qualifier RepoDb.Field objects. + // + // batchSize: + // The batch size of the operation. + // + // primaryField: + // The primary field from the database. + // + // identityField: + // The identity field from the database. + // + // hints: + // The table hints to be used. + // + // Returns: + // A sql statement for merge operation. + public override string CreateMergeAll(string tableName, IEnumerable fields, IEnumerable qualifiers, int batchSize = 10, DbField primaryField = null, DbField identityField = null, string hints = null) + { + GuardTableName(tableName); + GuardHints(hints); + GuardPrimary(primaryField); + GuardIdentity(identityField); + if (fields == null || !fields.Any()) + { + throw new EmptyException("The list of fields cannot be null or empty."); + } + + IEnumerable enumerable = qualifiers; + if ((enumerable == null || !enumerable.Any()) && primaryField != null) + { + qualifiers = primaryField.AsField().AsEnumerable(); + } + + IEnumerable enumerable2 = qualifiers; + if (enumerable2 == null || !enumerable2.Any()) + { + if (primaryField == null) + { + throw new PrimaryFieldNotFoundException("The is no primary field from the table '" + tableName + "' that can be used as qualifier."); + } + + throw new InvalidQualifiersException("There are no defined qualifier fields."); + } + + QueryBuilder queryBuilder = new QueryBuilder(); + List fields2 = fields.Where(delegate (Field f) + { + IEnumerable enumerable3 = qualifiers; + return enumerable3 == null || !enumerable3.Any((Field qf) => string.Equals(qf.Name, f.Name, StringComparison.OrdinalIgnoreCase)); + }).AsList(); + DbField returnKeyColumnAsDbField = GetReturnKeyColumnAsDbField(primaryField, identityField); + string text = "NULL"; + if (returnKeyColumnAsDbField != null) + { + string databaseType = GetDatabaseType(returnKeyColumnAsDbField); + text = (string.IsNullOrWhiteSpace(databaseType) ? returnKeyColumnAsDbField.Name.AsQuoted(base.DbSetting) : $"CAST({returnKeyColumnAsDbField.Name.AsQuoted(base.DbSetting)} AS {databaseType})"); + } + + queryBuilder.Clear(); + for (int i = 0; i < batchSize; i++) + { + queryBuilder.Insert().Into().TableNameFrom(tableName, base.DbSetting) + .OpenParen() + .FieldsFrom(fields, base.DbSetting) + .CloseParen(); + if (identityField != null) + { + queryBuilder.WriteText("OVERRIDING SYSTEM VALUE"); + } + + queryBuilder.Values().OpenParen().ParametersFrom(fields, i, base.DbSetting) + .CloseParen() + .OnConflict(qualifiers, base.DbSetting) + .DoUpdate() + .Set() + .FieldsAndParametersFrom(fields2, i, base.DbSetting); + string text2 = "RETURNING " + text + " AS " + "Result".AsQuoted(base.DbSetting) + ", " + $"{base.DbSetting.ParameterPrefix}__RepoDb_OrderColumn_{i}" + " AS " + "OrderColumn".AsQuoted(base.DbSetting); + queryBuilder.WriteText(text2); + queryBuilder.End(); + } + + return queryBuilder.GetString(); + } + + #endregion + + #region Create Skip Query + + // + // Summary: + // Creates a SQL Statement for 'BatchQuery' operation. + // + // Parameters: + // tableName: + // The name of the target table. + // + // fields: + // The mapping list of RepoDb.Field objects to be used. + // + // skip: + // The number of rows to skip. + // + // take: + // The number of rows per batch. + // + // orderBy: + // The list of fields for ordering. + // + // where: + // The query expression. + // + // hints: + // The table hints to be used. + // + // Returns: + // A sql statement for batch query operation. + public override string CreateSkipQuery(string tableName, IEnumerable fields, int skip, int take, IEnumerable orderBy = null, QueryGroup where = null, string hints = null) + { + GuardTableName(tableName); + GuardHints(hints); + if (fields == null || !fields.Any()) + { + throw new EmptyException("The list of queryable fields must not be null for '" + tableName + "'."); + } + + if (orderBy == null || !orderBy.Any()) + { + throw new EmptyException("The argument 'orderBy' is required."); + } + + if (skip < 0) + { + throw new ArgumentOutOfRangeException("skip", "The rows skipped must be equals or greater than 0."); + } + + if (take < 1) + { + throw new ArgumentOutOfRangeException("take", "The rows per batch must be equals or greater than 1."); + } + + QueryBuilder queryBuilder = new QueryBuilder(); + queryBuilder.Clear().Select().FieldsFrom(fields, base.DbSetting) + .From() + .TableNameFrom(tableName, base.DbSetting) + .WhereFrom(where, base.DbSetting) + .OrderByFrom(orderBy, base.DbSetting) + .LimitOffset(take, skip) + .End(); + return queryBuilder.GetString(); + } + + #endregion + + #region Private + + private string GetDatabaseType(DbField dbField) + { + DbType? dbType = new ClientTypeToDbTypeResolver().Resolve(dbField.Type); + if (!dbType.HasValue) + { + return null; + } + + return new DbTypeToPostgreSqlStringNameResolver().Resolve(dbType.Value); + } + #endregion + + } +} diff --git a/src/platform/mix.repodb/Services/MixDbDataService.cs b/src/platform/mix.repodb/Services/MixDbDataService.cs index c2fdd9f87..0863285f7 100644 --- a/src/platform/mix.repodb/Services/MixDbDataService.cs +++ b/src/platform/mix.repodb/Services/MixDbDataService.cs @@ -1,4 +1,4 @@ -using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Http; using Mix.Constant.Enums; using Mix.Database.Entities.Cms; using Mix.Database.Services; @@ -27,6 +27,7 @@ using Mix.Heart.Exceptions; using Mix.RepoDb.Helpers; using Mix.RepoDb.Dtos; +using System.Linq.Expressions; namespace Mix.RepoDb.Services { @@ -569,7 +570,7 @@ private async Task InitRepository(string tableName) if (_mixDb.MixDatabaseContextId.HasValue) { - _repository.Init(tableName, _mixDb.MixDatabaseContext.DatabaseProvider, _mixDb.MixDatabaseContext.ConnectionString); + _repository.Init(tableName, _mixDb.MixDatabaseContext.DatabaseProvider, _mixDb.MixDatabaseContext.DecryptedConnectionString); } else { @@ -610,10 +611,10 @@ private async Task ParseDto(string tableName, JObject dto) if (!result.ContainsKey(_fieldNameService.Id)) { result.Add(new JProperty(_fieldNameService.Id, string.Empty)); - if (!result.ContainsKey(_fieldNameService.CreatedDateTime)) - { - result.Add(new JProperty(_fieldNameService.CreatedDateTime, DateTime.UtcNow)); - } + } + if (!result.ContainsKey(_fieldNameService.CreatedDateTime)) + { + result.Add(new JProperty(_fieldNameService.CreatedDateTime, DateTime.UtcNow)); } else { diff --git a/src/platform/mix.repodb/Services/MixDbService.cs b/src/platform/mix.repodb/Services/MixDbService.cs index 79af90a33..52120c3e6 100644 --- a/src/platform/mix.repodb/Services/MixDbService.cs +++ b/src/platform/mix.repodb/Services/MixDbService.cs @@ -1,4 +1,4 @@ -using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Http; using Microsoft.Azure.Amqp.Framing; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Metadata.Internal; @@ -25,13 +25,16 @@ using Mix.Service.Services; using Mix.Shared.Dtos; using Mix.Shared.Models; +using Mix.Shared.Services; using MySqlX.XDevAPI.Common; using Newtonsoft.Json.Linq; +using Npgsql; using RepoDb; using RepoDb.Enumerations; using RepoDb.Interfaces; using System.Dynamic; using System.Linq.Dynamic.Core; +using System.Linq.Expressions; using ZstdSharp.Unsafe; namespace Mix.RepoDb.Services @@ -141,7 +144,18 @@ public async Task MigrateDatabase(RepoDbMixDatabaseViewModel database) { if (database.MixDatabaseContextId.HasValue) { - await SwitchDbContext(database.MixDatabaseContext); + if (database.MixDatabaseContextId.HasValue) + { + await SwitchDbContext(database.MixDatabaseContext); + } + + if (database is { Columns.Count: > 0 }) + { + await Migrate(database, database.MixDatabaseContext.DatabaseProvider, _repository); + _repository.CompleteTransaction(); + return true; + } + return false; } if (database is { Columns.Count: > 0 }) @@ -194,7 +208,7 @@ public async Task RestoreFromLocal(RepoDbMixDatabaseViewModel database, Fi insertQuery += string.Join(',', queries); if (database.MixDatabaseContextId.HasValue) { - _repository.Init(database.SystemName, database.MixDatabaseContext.DatabaseProvider, database.MixDatabaseContext.ConnectionString); + _repository.Init(database.SystemName, database.MixDatabaseContext.DatabaseProvider, database.MixDatabaseContext.DecryptedConnectionString); } else { @@ -264,6 +278,7 @@ public async Task MigrateInitNewDbContextDatabases(MixDatabaseContext dbCo try { + var cnn = AesEncryptionHelper.DecryptString(dbContext.ConnectionString, GlobalConfigService.Instance.AesKey); var strMixDbs = MixFileHelper.GetFile( "init-new-dbcontext-databases", MixFileExtensions.Json, MixFolders.JsonDataFolder); var obj = JObject.Parse(strMixDbs.Content); @@ -277,7 +292,7 @@ public async Task MigrateInitNewDbContextDatabases(MixDatabaseContext dbCo string newDbName = dbContext.NamingConvention == MixDatabaseNamingConvention.SnakeCase ? $"{dbContext.SystemName}_{database.DisplayName.ToColumnName(false)}" : $"{dbContext.SystemName.ToTitleCase()}{database.DisplayName.ToColumnName(true)}"; - _repository.Init(newDbName, dbContext.DatabaseProvider, dbContext.ConnectionString); + _repository.Init(newDbName, dbContext.DatabaseProvider, cnn); var currentDb = await RepoDbMixDatabaseViewModel.GetRepository(_cmsUow, CacheService) .GetSingleAsync(m => m.SystemName == newDbName); if (currentDb == null) @@ -285,6 +300,7 @@ public async Task MigrateInitNewDbContextDatabases(MixDatabaseContext dbCo currentDb = new(database, _cmsUow); currentDb.Id = 0; + currentDb.NamingConvention = dbContext.NamingConvention; currentDb.SystemName = newDbName; currentDb.MixTenantId = CurrentTenant?.Id ?? 1; currentDb.MixDatabaseContextId = dbContext.Id; @@ -298,7 +314,7 @@ public async Task MigrateInitNewDbContextDatabases(MixDatabaseContext dbCo { string newColName = dbContext.NamingConvention == MixDatabaseNamingConvention.SnakeCase ? col.DisplayName.ToColumnName(false) - : col.DisplayName.ToColumnName(false); + : col.DisplayName.ToColumnName(true); col.Id = 0; col.SystemName = newColName; col.MixDatabaseName = newDbName; @@ -311,7 +327,7 @@ public async Task MigrateInitNewDbContextDatabases(MixDatabaseContext dbCo } if (currentDb is { Columns.Count: > 0 }) { - await Migrate(currentDb, _databaseService.DatabaseProvider, _repository); + await Migrate(currentDb, dbContext.DatabaseProvider, _repository); } } @@ -484,8 +500,8 @@ private async Task SwitchDbContext(MixDatabaseContextReadViewModel dbContext) MixDatabaseProvider.SQLITE => new SqliteDatabaseConstants(), _ => throw new NotImplementedException() }; - _repository = new MixRepoDbRepository(_cache, dbContext.DatabaseProvider, dbContext.ConnectionString, _cmsUow); - + _repository = new MixRepoDbRepository(_cache, dbContext.DatabaseProvider, dbContext.DecryptedConnectionString, _cmsUow); + return Task.CompletedTask; } // Only run after init CMS success @@ -552,7 +568,7 @@ private string GetInsertQuery(ExpandoObject obj, List selectMembers) cancellationToken.ThrowIfCancellationRequested(); if (database.MixDatabaseContextId.HasValue) { - _repository.Init(database.SystemName, database.MixDatabaseContext.DatabaseProvider, database.MixDatabaseContext.ConnectionString); + _repository.Init(database.SystemName, database.MixDatabaseContext.DatabaseProvider, database.MixDatabaseContext.DecryptedConnectionString); } else { @@ -568,7 +584,14 @@ private async Task Migrate(RepoDbMixDatabaseViewModel database, var fieldNameService = new FieldNameService(database.NamingConvention); var colsSql = new List(); var tableName = database.SystemName; - + _databaseConstant = databaseProvider switch + { + MixDatabaseProvider.SQLSERVER => new SqlServerDatabaseConstants(), + MixDatabaseProvider.MySQL => new MySqlDatabaseConstants(), + MixDatabaseProvider.PostgreSQL => new PostgresDatabaseConstants(), + MixDatabaseProvider.SQLITE => new SqliteDatabaseConstants(), + _ => throw new NotImplementedException() + }; foreach (var col in database.Columns) { colsSql.Add(GenerateColumnSql(col)); diff --git a/src/platform/mix.repodb/ViewModels/MixDatabaseContextReadViewModel.cs b/src/platform/mix.repodb/ViewModels/MixDatabaseContextReadViewModel.cs index 5b7b9cad8..86b214823 100644 --- a/src/platform/mix.repodb/ViewModels/MixDatabaseContextReadViewModel.cs +++ b/src/platform/mix.repodb/ViewModels/MixDatabaseContextReadViewModel.cs @@ -1,10 +1,14 @@ -using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore; using Mix.Constant.Enums; using Mix.Database.Entities.Cms; using Mix.Heart.Enums; +using Mix.Heart.Extensions; +using Mix.Heart.Helpers; using Mix.Heart.UnitOfWork; using Mix.RepoDb.Base; +using Mix.Shared.Services; using System.ComponentModel.DataAnnotations; +using System.Text.Json.Serialization; namespace Mix.RepoDb.ViewModels { @@ -17,6 +21,8 @@ public sealed class MixDatabaseContextReadViewModel public string ConnectionString { get; set; } public string Schema { get; set; } public string SystemName { get; set; } + [JsonIgnore] + public string DecryptedConnectionString { get; set; } #endregion #region Constructors @@ -36,5 +42,22 @@ public MixDatabaseContextReadViewModel(MixDatabaseContext entity, UnitOfWorkInfo } #endregion + + #region Overrides + + public override Task ExpandView(CancellationToken cancellationToken = default) + { + if (ConnectionString.IsBase64()) + { + DecryptedConnectionString ??= AesEncryptionHelper.DecryptString(ConnectionString, GlobalConfigService.Instance.AppSettings.ApiEncryptKey); + } + else + { + DecryptedConnectionString = ConnectionString; + } + return Task.CompletedTask; + } + + #endregion } } diff --git a/src/platform/mix.service/Services/MixMemoryCacheService.cs b/src/platform/mix.service/Services/MixMemoryCacheService.cs index 68680f598..6499e31ae 100644 --- a/src/platform/mix.service/Services/MixMemoryCacheService.cs +++ b/src/platform/mix.service/Services/MixMemoryCacheService.cs @@ -8,7 +8,7 @@ public class MixMemoryCacheService : IMixMemoryCacheService public MemoryCache Cache { get; } = new MemoryCache( new MemoryCacheOptions { - ExpirationScanFrequency = TimeSpan.FromSeconds(3) + ExpirationScanFrequency = TimeSpan.FromSeconds(20) } ); diff --git a/src/platform/mix.shared/Services/AppSettingServiceBase.cs b/src/platform/mix.shared/Services/AppSettingServiceBase.cs index 63a08816e..77c184733 100644 --- a/src/platform/mix.shared/Services/AppSettingServiceBase.cs +++ b/src/platform/mix.shared/Services/AppSettingServiceBase.cs @@ -1,4 +1,6 @@ using Microsoft.Extensions.Configuration; +using Mix.Heart.Extensions; +using Mix.Heart.Helpers; using Newtonsoft.Json.Linq; namespace Mix.Shared.Services @@ -6,17 +8,22 @@ namespace Mix.Shared.Services public abstract class AppSettingServiceBase { private string _filePath; + public JObject RawSettings; protected string _sectionName; + protected bool _isEncrypt; + protected string _aesKey { get; set; } public T AppSettings { get; set; } protected string FilePath { get => _filePath; set => _filePath = value; } protected readonly FileSystemWatcher watcher = new(); protected readonly IConfiguration _configuration; - public AppSettingServiceBase(IConfiguration configuration, string section, string filePath) + public AppSettingServiceBase(IConfiguration configuration, string section, string filePath, bool isEncrypt) { _configuration = configuration; _sectionName = section; + _isEncrypt = isEncrypt; + _aesKey = GlobalConfigService.Instance.AppSettings.ApiEncryptKey; FilePath = filePath; LoadAppSettings(); } @@ -26,7 +33,15 @@ public bool SaveSettings() var settings = MixFileHelper.GetFile(FilePath, MixFileExtensions.Json, string.Empty, true, "{}"); if (settings != null) { - settings.Content = new JObject(new JProperty(_sectionName, JObject.FromObject(AppSettings))).ToString(); + + if (_isEncrypt && settings.Content.IsJsonString()) + { + settings.Content = AesEncryptionHelper.EncryptString(settings.Content, _aesKey); + } + else + { + settings.Content = new JObject(new JProperty(_sectionName, JObject.FromObject(AppSettings))).ToString(Newtonsoft.Json.Formatting.None); + } return MixFileHelper.SaveFile(settings); } else @@ -39,9 +54,24 @@ protected virtual void LoadAppSettings() { try { - var settings = _configuration.GetSection(_sectionName); - AppSettings = (T)Activator.CreateInstance(typeof(T)); - settings.Bind(AppSettings); + var settings = MixFileHelper.GetFileByFullName($"{FilePath}{MixFileExtensions.Json}", true, "{}"); + string content = string.IsNullOrWhiteSpace(settings.Content) ? "{}" : settings.Content; + if (_isEncrypt) + { + if (!content.IsJsonString()) + { + content = AesEncryptionHelper.DecryptString(content, _aesKey); + } + else + { + // Encrypt and save to setting file if not encrypted + settings.Content = AesEncryptionHelper.EncryptString(content, _aesKey); + MixFileHelper.SaveFile(settings); + } + } + RawSettings = JObject.Parse(content); + AppSettings = string.IsNullOrEmpty(_sectionName) ? RawSettings.ToObject() + : RawSettings[_sectionName].ToObject(); } catch (Exception ex) { diff --git a/src/platform/mix.shared/Services/AuthConfigService.cs b/src/platform/mix.shared/Services/AuthConfigService.cs index fd8736817..1c970bcb5 100644 --- a/src/platform/mix.shared/Services/AuthConfigService.cs +++ b/src/platform/mix.shared/Services/AuthConfigService.cs @@ -6,7 +6,7 @@ namespace Mix.Shared.Services public class AuthConfigService : AppSettingServiceBase { public AuthConfigService(IConfiguration configuration) - : base(configuration, MixAppSettingsSection.Authentication, MixAppConfigFilePaths.Authentication) + : base(configuration, MixAppSettingsSection.Authentication, MixAppConfigFilePaths.Authentication, true) { } } diff --git a/src/platform/mix.shared/Services/HttpService.cs b/src/platform/mix.shared/Services/HttpService.cs index da261ef3b..6f49f297d 100644 --- a/src/platform/mix.shared/Services/HttpService.cs +++ b/src/platform/mix.shared/Services/HttpService.cs @@ -149,6 +149,18 @@ public Task PostAsync(string requestUrl, T1 body, client => client.PostAsync(requestUrl, content, cancellationToken), bearerToken, requestHeaders); } + public async Task PostAsync(string requestUrl, T body, + string bearerToken = null, + List> requestHeaders = null, + string contentType = "application/json", + CancellationToken cancellationToken = default + ) + { + var content = CreateHttpContent(body, contentType); + await SendRequestAsync( + client => client.PostAsync(requestUrl, content, cancellationToken), bearerToken, requestHeaders); + } + public Task PutAsync(string requestUrl, T1 body, string bearerToken = null, List> requestHeaders = null, @@ -192,6 +204,7 @@ private HttpContent CreateHttpContent(T content, string contentType) } + private async Task SendRequestAsync( Func> sendRequestFn, string token = null, @@ -204,6 +217,10 @@ private async Task SendRequestAsync( var obj = JObject.Parse(data); return obj.ToObject(); } + else if (data.IsJArrayString()) + { + return JArray.Parse(data).ToObject(); + } else { return new JObject(new JProperty("data", data)).ToObject(); diff --git a/src/platform/mix.shared/mix.shared.csproj b/src/platform/mix.shared/mix.shared.csproj index a52af86af..3f74d0d0f 100644 --- a/src/platform/mix.shared/mix.shared.csproj +++ b/src/platform/mix.shared/mix.shared.csproj @@ -18,7 +18,7 @@ - + diff --git a/src/platform/mix.signalr.hub/Attributes/MixDbHubAuthorizeAttribute.cs b/src/platform/mix.signalr.hub/Attributes/MixDbHubAuthorizeAttribute.cs new file mode 100644 index 000000000..350d6767f --- /dev/null +++ b/src/platform/mix.signalr.hub/Attributes/MixDbHubAuthorizeAttribute.cs @@ -0,0 +1,155 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.Filters; +using Mix.Auth.Constants; +using Mix.Database.Entities.Cms; +using Mix.Service.Services; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Claims; +using System.Text; +using System.Threading.Tasks; + +namespace Mix.Signalr.Hub.Attributes +{ + public sealed class MixDbHubAuthorizeAttribute : TypeFilterAttribute + { + public MixDbHubAuthorizeAttribute(string tableName) + : base(typeof(DatabaseAuthorizeActionFilter)) + { + Arguments = [tableName]; + } + public class DatabaseAuthorizeActionFilter : IAuthorizationFilter + { + private string _tableName; + public string[] UserRoles { get; set; } + private readonly MixCmsContext _cmsContext; + protected readonly MixPermissionService _permissionService; + private ClaimsPrincipal userPrinciple; + public DatabaseAuthorizeActionFilter( + string tableName, + MixCmsContext cmsContext, + MixPermissionService permissionService) + { + _tableName = tableName; + _cmsContext = cmsContext; + _permissionService = permissionService; + } + + public void OnAuthorization(AuthorizationFilterContext context) + { + userPrinciple = context.HttpContext.User; + if (string.IsNullOrEmpty(_tableName)) + { + _tableName = context.HttpContext.Request.RouteValues["name"]?.ToString(); + } + var database = _cmsContext.MixDatabase.FirstOrDefault(m => m.SystemName == _tableName); + if (database == null) + { + context.Result = new BadRequestResult(); + return; + } + + // Not allow bypass by default for security => if not set, only superadmin can access this database + if (!CheckByPassAuthenticate(context.HttpContext.Request.Method, context.HttpContext.Request.Path, database)) + { + if (ValidToken()) + { + if (!IsInRoles(context.HttpContext.Request.Method, database, context.HttpContext.Request.Path)) + { + if (!ValidEnpointPermission(context)) + { + context.Result = new ForbidResult(); + return; + } + } + } + else + { + context.Result = new UnauthorizedResult(); + return; + } + } + } + + private bool CheckByPassAuthenticate(string method, string path, MixDatabase database) + { + return method switch + { + "GET" => database.ReadPermissions == null + || database.ReadPermissions.Count == 0, + "POST" => (path.EndsWith("filter") && (database.ReadPermissions == null || database.ReadPermissions.Count == 0)) + || (!path.EndsWith("filter") && (database.CreatePermissions == null || database.CreatePermissions.Count == 0)), + "PUT" => database.UpdatePermissions == null + || database.UpdatePermissions.Count == 0, + "PATCH" => database.UpdatePermissions == null + || database.UpdatePermissions.Count == 0, + "DELETE" => database.DeletePermissions == null + || database.DeletePermissions.Count == 0, + _ => false + }; + } + + #region Privates + + private bool ValidEnpointPermission(AuthorizationFilterContext context) + { + return _permissionService.CheckEndpointPermissionAsync( + UserRoles, context.HttpContext.Request.Path, context.HttpContext.Request.Method).Result; + } + + private bool ValidToken() + { + return userPrinciple.Identity.IsAuthenticated + && DateTime.TryParse(GetClaim(userPrinciple, MixClaims.ExpireAt), out var expireAt) + && DateTime.UtcNow < expireAt; + } + + private bool IsInRoles(string method, MixDatabase database, string path) + { + + UserRoles = GetClaim(userPrinciple, MixClaims.Role).Split(',', StringSplitOptions.RemoveEmptyEntries) + .Select(r => r.Trim()).ToArray(); + + if (UserRoles.Any(r => r == MixRoles.SuperAdmin || r == $"{MixRoles.Owner}-1")) + { + return true; + } + + switch (method) + { + case "GET": return CheckUserInRoles(database.ReadPermissions, UserRoles); + case "POST": + if (path.EndsWith("filter")) + { + return CheckUserInRoles(database.ReadPermissions, UserRoles); + } + else + { + return CheckUserInRoles(database.CreatePermissions, UserRoles); + } + case "PATCH": + case "PUT": return CheckUserInRoles(database.UpdatePermissions, UserRoles); + case "DELETE": return CheckUserInRoles(database.DeletePermissions, UserRoles); + default: + return false; + } + } + + private bool CheckUserInRoles(List allowedRoles, string[] userRoles) + { + return allowedRoles == null || allowedRoles.Count == 0 || allowedRoles.Any(r => userRoles.Any(ur => ur == $"{r}-1")); + } + + public string GetClaim(ClaimsPrincipal User, string claimType) + { + if (User == null) + { + return null; + } + return string.Join(',', User.Claims.Where(c => c.Type == claimType).Select(m => m.Value)); + } + #endregion + } + } +} diff --git a/src/platform/mix.signalr.hub/Hubs/BaseSignalrHub.cs b/src/platform/mix.signalr.hub/Hubs/BaseSignalrHub.cs index 880b53002..b59011f7c 100644 --- a/src/platform/mix.signalr.hub/Hubs/BaseSignalrHub.cs +++ b/src/platform/mix.signalr.hub/Hubs/BaseSignalrHub.cs @@ -1,4 +1,4 @@ -using Google.Api; +using Google.Api; using Microsoft.AspNetCore.Http.Features; using Microsoft.AspNetCore.SignalR; using Mix.Auth.Constants; @@ -11,24 +11,23 @@ using Mix.SignalR.Constants; using Mix.SignalR.Enums; using Mix.SignalR.Models; +using System.Collections.Concurrent; using System.Security.Claims; namespace Mix.SignalR.Hubs { public abstract class BaseSignalRHub : Hub { - protected IAuditLogService AuditLogService; protected IMixTenantService MixTenantService; protected HubUserModel? CurrentUser; protected int? TenantId; - protected BaseSignalRHub(IAuditLogService auditLogService, IMixTenantService mixTenantService) + protected BaseSignalRHub(IMixTenantService mixTenantService) { - AuditLogService = auditLogService; MixTenantService = mixTenantService; } - public static Dictionary> Rooms = new Dictionary>(); + public static ConcurrentDictionary> Rooms = new ConcurrentDictionary>(); public virtual async Task Join(string host) { if (MixTenantService.AllTenants == null) @@ -115,14 +114,28 @@ public virtual Task SendGroupMessage(SignalRMessageModel message, string groupNa } #region Private - protected async Task AddUserToRoom(string roomName) + protected virtual async Task AddUserToRoom(string roomName) { await Groups.AddToGroupAsync(Context.ConnectionId, roomName); - if (!Rooms.ContainsKey(roomName)) + Rooms.TryAdd(roomName, new ConcurrentBag()); + await NotifyNewUser(roomName); + } + + protected HubUserModel GetCurrentUser() + { + var userContext = Context.User; + return new() { - Rooms.Add(roomName, new List()); - } + TenantId = TenantId, + ConnectionId = Context.ConnectionId, + Username = userContext?.Identity?.Name ?? "Anonymous", + Avatar = userContext?.Claims.FirstOrDefault(m => m.Type == MixClaims.Avatar)?.Value ?? MixConstants.CONST_DEFAULT_EXTENSIONS_FILE_PATH, + Role = userContext?.Claims.FirstOrDefault(m => m.Type == MixClaims.Role)?.Value, + }; + } + protected virtual async Task NotifyNewUser(string roomName) + { var users = Rooms[roomName] ?? new(); if (!users.Any(u => u != null && u.ConnectionId == Context.ConnectionId)) { @@ -134,20 +147,20 @@ protected async Task AddUserToRoom(string roomName) } await SendMessageToCaller(new(user) { Action = MessageAction.MyConnection }); await SendMessageToCaller(new(users) { Action = MessageAction.MemberList }); - await SendGroupMessage(new(user) { Action = MessageAction.NewMember }, roomName); + await SendGroupMessage(new(user) { Action = MessageAction.MemberOnline }, roomName, true); } } - - - protected HubUserModel GetCurrentUser() + protected virtual async Task RemoveUserFromGroups() { - return new() + foreach (var room in Rooms) { - TenantId = TenantId, - ConnectionId = Context.ConnectionId, - Username = Context.User?.Identity?.Name ?? "Annonymous", - Avatar = Context.User?.Claims.FirstOrDefault(m => m.Type == MixClaims.Avatar)?.Value ?? MixConstants.CONST_DEFAULT_EXTENSIONS_FILE_PATH, - }; + var user = room.Value.FirstOrDefault(m => m.ConnectionId == Context.ConnectionId); + if (user != null) + { + room.Value.TryTake(out user); + await SendGroupMessage(new(user) { Action = MessageAction.MemberOffline }, room.Key); + } + } } #endregion @@ -155,26 +168,12 @@ protected HubUserModel GetCurrentUser() public override async Task OnConnectedAsync() { - var user = GetCurrentUser(); - if (user != null) - { - CurrentUser = user; - await SendMessageToCaller(new(user) { Action = MessageAction.MyConnection }); - } await base.OnConnectedAsync().ConfigureAwait(false); } public override async Task OnDisconnectedAsync(Exception? exception) { - foreach (var room in Rooms) - { - var user = room.Value.FirstOrDefault(m => m.ConnectionId == Context.ConnectionId); - if (user != null) - { - room.Value.Remove(user); - await SendGroupMessage(new(user) { Action = MessageAction.MemberOffline }, room.Key); - } - } + await RemoveUserFromGroups(); await base.OnDisconnectedAsync(exception).ConfigureAwait(false); } #endregion diff --git a/src/platform/mix.signalr.hub/Hubs/EditFileHub.cs b/src/platform/mix.signalr.hub/Hubs/EditFileHub.cs index 41241725d..30b395ccd 100644 --- a/src/platform/mix.signalr.hub/Hubs/EditFileHub.cs +++ b/src/platform/mix.signalr.hub/Hubs/EditFileHub.cs @@ -1,11 +1,11 @@ -using Mix.Lib.Interfaces; +using Mix.Lib.Interfaces; namespace Mix.SignalR.Hubs { public class EditFileHub : BaseSignalRHub { - public EditFileHub(IAuditLogService auditLogService, IMixTenantService mixTenantService) - : base(auditLogService, mixTenantService) + public EditFileHub(IMixTenantService mixTenantService) + : base(mixTenantService) { } } diff --git a/src/platform/mix.signalr.hub/Hubs/HighFrequencyHub.cs b/src/platform/mix.signalr.hub/Hubs/HighFrequencyHub.cs index 9fc1227e5..a7b2d9d11 100644 --- a/src/platform/mix.signalr.hub/Hubs/HighFrequencyHub.cs +++ b/src/platform/mix.signalr.hub/Hubs/HighFrequencyHub.cs @@ -8,8 +8,8 @@ namespace Mix.SignalR.Hubs { public class HighFrequencyHub : BaseSignalRHub { - public HighFrequencyHub(IAuditLogService auditLogService, IMixTenantService mixTenantService) - : base(auditLogService, mixTenantService) + public HighFrequencyHub(IMixTenantService mixTenantService) + : base(mixTenantService) { } public async Task UploadStream(IAsyncEnumerable stream, string room) diff --git a/src/platform/mix.signalr.hub/Hubs/LogStreamHub.cs b/src/platform/mix.signalr.hub/Hubs/LogStreamHub.cs index 797ecc784..7a4f8ac1c 100644 --- a/src/platform/mix.signalr.hub/Hubs/LogStreamHub.cs +++ b/src/platform/mix.signalr.hub/Hubs/LogStreamHub.cs @@ -5,8 +5,8 @@ namespace Mix.SignalR.Hubs { public class LogStreamHub : BaseSignalRHub { - public LogStreamHub(IAuditLogService auditLogService, IMixTenantService mixTenantService) - : base(auditLogService, mixTenantService) + public LogStreamHub(IMixTenantService mixTenantService) + : base(mixTenantService) { } } diff --git a/src/platform/mix.signalr.hub/Hubs/MixDbCommandHub.cs b/src/platform/mix.signalr.hub/Hubs/MixDbCommandHub.cs deleted file mode 100644 index 8cdf1302e..000000000 --- a/src/platform/mix.signalr.hub/Hubs/MixDbCommandHub.cs +++ /dev/null @@ -1,41 +0,0 @@ -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.SignalR; -using Mix.Constant.Constants; -using Mix.Heart.Helpers; -using Mix.Lib.Interfaces; -using Mix.Mq.Lib.Models; -using Mix.Queue.Interfaces; -using Mix.Service.Interfaces; -using Mix.Service.Models; -using Mix.Signalr.Hub.Models; -using Mix.SignalR.Constants; -using Mix.SignalR.Models; - -namespace Mix.SignalR.Hubs -{ - public class MixDbCommandHub : BaseSignalRHub - { - private readonly IMemoryQueueService _queueService; - public MixDbCommandHub(IAuditLogService auditLogService, IMixTenantService mixTenantService, IMemoryQueueService queueService) : base(auditLogService, mixTenantService) - { - _queueService = queueService; - } - - public virtual void CreateData(string message) - { - var obj = ReflectionHelper.ParseStringToObject(message); - obj.MixTenantId = CurrentUser?.TenantId ?? 1; - obj.RequestedBy = Context.User?.Identity?.Name; - obj.ConnectionId = Context.ConnectionId; - _queueService.PushMemoryQueue(obj.MixTenantId, MixQueueTopics.MixDbCommand, MixDbCommandQueueActions.Create, obj); - } - - public virtual void UpdateData(string message) - { - var obj = ReflectionHelper.ParseStringToObject(message); - obj.RequestedBy = Context.User?.Identity?.Name; - obj.ConnectionId = Context.ConnectionId; - _queueService.PushMemoryQueue(obj.MixTenantId, MixQueueTopics.MixDbCommand, MixDbCommandQueueActions.Update, obj); - } - } -} \ No newline at end of file diff --git a/src/platform/mix.signalr.hub/Hubs/MixDbHub.cs b/src/platform/mix.signalr.hub/Hubs/MixDbHub.cs new file mode 100644 index 000000000..b87d004b3 --- /dev/null +++ b/src/platform/mix.signalr.hub/Hubs/MixDbHub.cs @@ -0,0 +1,221 @@ +using Google.Api; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.SignalR; +using Mix.Auth.Constants; +using Mix.Constant.Constants; +using Mix.Constant.Enums; +using Mix.Database.Entities.Cms; +using Mix.Heart.Helpers; +using Mix.Heart.UnitOfWork; +using Mix.Lib.Interfaces; +using Mix.Mq.Lib.Models; +using Mix.Queue.Interfaces; +using Mix.Service.Interfaces; +using Mix.Service.Models; +using Mix.Signalr.Hub.Models; +using Mix.SignalR.Constants; +using Mix.SignalR.Enums; +using Mix.SignalR.Models; +using Newtonsoft.Json.Linq; +using System.Security.Claims; + +namespace Mix.SignalR.Hubs +{ + [Authorize] + public class MixDbHub : BaseSignalRHub + { + private readonly IMixMemoryCacheService _memoryCache; + private readonly MixCmsContext _ctx; + private readonly IMemoryQueueService _queueService; + public MixDbHub(IMixTenantService mixTenantService, IMemoryQueueService queueService, IMixMemoryCacheService memoryCache, MixCmsContext ctx) + : base(mixTenantService) + { + _queueService = queueService; + _memoryCache = memoryCache; + _ctx = ctx; + } + + #region Methods + + public async void JoinRooms(string[] roomNames) + { + foreach (var tableName in roomNames) + { + if (await CheckUserPermission(tableName, "GET")) + { + await AddUserToRoom($"mixdb-{tableName}"); + } + } + } + + public virtual async Task CreateDataAsync(string tableName, JObject data) + { + + if (await CheckUserPermission(tableName, "POST")) + { + var obj = new MixDbCommandModel() + { + MixDbName = tableName, + Body = data, + ConnectionId = Context.ConnectionId, + MixTenantId = 1, + RequestedBy = GetCurrentUser().Username + }; + _queueService.PushMemoryQueue(obj.MixTenantId, MixQueueTopics.MixDbCommand, MixDbCommandQueueAction.Create.ToString(), obj); + } + } + + public virtual async Task DeleteDataAsync(string tableName, JObject data) + { + + if (await CheckUserPermission(tableName, "DELETE")) + { + var obj = new MixDbCommandModel() + { + MixDbName = tableName, + Body = data, + ConnectionId = Context.ConnectionId, + MixTenantId = 1, + RequestedBy = GetCurrentUser().Username + }; + _queueService.PushMemoryQueue(obj.MixTenantId, MixQueueTopics.MixDbCommand, MixDbCommandQueueAction.Delete.ToString(), obj); + } + } + + public virtual async Task UpdateData(string tableName, JObject data) + { + if (await CheckUserPermission(tableName, "PUT")) + { + var obj = new MixDbCommandModel() + { + MixDbName = tableName, + Body = data, + ConnectionId = Context.ConnectionId, + MixTenantId = 1, + RequestedBy = GetCurrentUser().Username + }; + _queueService.PushMemoryQueue(obj.MixTenantId, MixQueueTopics.MixDbCommand, MixDbCommandQueueAction.Update.ToString(), obj); + } + } + #endregion + #region Private + + private async Task CheckUserPermission(string tableName, string action) + { + try + { + var tbl = await GetMixDatabase(tableName); + if (tbl == null) + { + await SendErrorMessageToCaller($"Invalid table name {tableName}"); + return false; + } + + if (CheckByPassAuthenticate(action, tbl)) + { + return true; + } + + if (Context.User == null) + { + await SendErrorMessageToCaller($"Unauthorized"); + return false; + } + + if (!IsInRoles(action, tbl)) + { + await SendErrorMessageToCaller($"You don't have permission to access {tableName}"); + return false; + } + + return true; + } + catch (Exception ex) + { + await SendErrorMessageToCaller(ex.Message); + return false; + } + + } + + private bool IsInRoles(string method, MixDatabase database) + { + + var userRoles = GetClaim(Context.User!, MixClaims.Role).Split(',', StringSplitOptions.RemoveEmptyEntries) + .Select(r => r.Trim()).ToArray(); + + if (userRoles.Any(r => r == MixRoles.SuperAdmin || r == $"{MixRoles.Owner}-1")) + { + return true; + } + + switch (method) + { + case "GET": return CheckUserInRoles(database.ReadPermissions, userRoles); + case "POST": + return CheckUserInRoles(database.CreatePermissions, userRoles); + case "PATCH": + case "PUT": return CheckUserInRoles(database.UpdatePermissions, userRoles); + case "DELETE": return CheckUserInRoles(database.DeletePermissions, userRoles); + default: + return false; + } + } + + private bool CheckUserInRoles(List allowedRoles, string[] userRoles) + { + return allowedRoles == null || allowedRoles.Count == 0 || allowedRoles.Any(r => userRoles.Any(ur => ur == $"{r}-1")); + } + + private string GetClaim(ClaimsPrincipal User, string claimType) + { + if (User == null) + { + return null; + } + return string.Join(',', User.Claims.Where(c => c.Type == claimType).Select(m => m.Value)); + } + + private bool CheckByPassAuthenticate(string method, MixDatabase database) + { + return method switch + { + "GET" => database.ReadPermissions == null + || database.ReadPermissions.Count == 0, + "POST" => database.CreatePermissions == null + || database.CreatePermissions.Count == 0, + "PUT" => database.UpdatePermissions == null + || database.UpdatePermissions.Count == 0, + "PATCH" => database.UpdatePermissions == null + || database.UpdatePermissions.Count == 0, + "DELETE" => database.DeletePermissions == null + || database.DeletePermissions.Count == 0, + _ => false + }; + } + + private async Task SendErrorMessageToCaller(string errMsg) + { + await SendMessageToCaller(new SignalRMessageModel() + { + Type = MessageType.Error, + Message = errMsg, + }); + } + + private async Task GetMixDatabase(string tableName) + { + return await _memoryCache.TryGetValueAsync( + tableName, + cache => + { + cache.SlidingExpiration = TimeSpan.FromSeconds(20); + var db = _ctx.MixDatabase.SingleOrDefault(m => m.SystemName == tableName); + return Task.FromResult(db); + } + ); + } + #endregion + } +} \ No newline at end of file diff --git a/src/platform/mix.signalr.hub/Hubs/MixThemeHub.cs b/src/platform/mix.signalr.hub/Hubs/MixThemeHub.cs index d9da6d739..4734e870e 100644 --- a/src/platform/mix.signalr.hub/Hubs/MixThemeHub.cs +++ b/src/platform/mix.signalr.hub/Hubs/MixThemeHub.cs @@ -5,8 +5,8 @@ namespace Mix.SignalR.Hubs { public class MixThemeHub : BaseSignalRHub { - public MixThemeHub(IAuditLogService auditLogService, IMixTenantService mixTenantService) - : base(auditLogService, mixTenantService) + public MixThemeHub(IMixTenantService mixTenantService) + : base(mixTenantService) { } } diff --git a/src/platform/mix.signalr.hub/Hubs/PortalHub.cs b/src/platform/mix.signalr.hub/Hubs/PortalHub.cs index f5fee1d4c..8286c1504 100644 --- a/src/platform/mix.signalr.hub/Hubs/PortalHub.cs +++ b/src/platform/mix.signalr.hub/Hubs/PortalHub.cs @@ -5,8 +5,8 @@ namespace Mix.SignalR.Hubs { public class PortalHub : BaseSignalRHub { - public PortalHub(IAuditLogService auditLogService, IMixTenantService mixTenantService) - : base(auditLogService, mixTenantService) + public PortalHub(IMixTenantService mixTenantService) + : base(mixTenantService) { } } diff --git a/src/platform/mix.signalr.hub/Hubs/VideoCallHub.cs b/src/platform/mix.signalr.hub/Hubs/VideoCallHub.cs index 75377379e..898cf9290 100644 --- a/src/platform/mix.signalr.hub/Hubs/VideoCallHub.cs +++ b/src/platform/mix.signalr.hub/Hubs/VideoCallHub.cs @@ -21,8 +21,8 @@ public class VideoCallHub : BaseSignalRHub private static readonly List UserCalls = new(); private static readonly List CallOffers = new(); - public VideoCallHub(IAuditLogService auditLogService, IMixTenantService mixTenantService) - : base(auditLogService, mixTenantService) + public VideoCallHub(IMixTenantService mixTenantService) + : base(mixTenantService) { } diff --git a/src/platform/mix.signalr/Enums/MessageAction.cs b/src/platform/mix.signalr/Enums/MessageAction.cs index 4a633f9b1..3f43146cb 100644 --- a/src/platform/mix.signalr/Enums/MessageAction.cs +++ b/src/platform/mix.signalr/Enums/MessageAction.cs @@ -4,7 +4,7 @@ public enum MessageAction { MyConnection, MemberList, - NewMember, + MemberOnline, NewMessage, NewQueueMessage, MemberOffline diff --git a/src/platform/mix.signalr/ServiceCollectionExtensions.cs b/src/platform/mix.signalr/ServiceCollectionExtensions.cs index 5f04b206d..1082c6a62 100644 --- a/src/platform/mix.signalr/ServiceCollectionExtensions.cs +++ b/src/platform/mix.signalr/ServiceCollectionExtensions.cs @@ -1,4 +1,4 @@ -using Microsoft.AspNetCore.Authentication.JwtBearer; +using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.SignalR; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection.Extensions; @@ -13,13 +13,19 @@ public static class ServiceCollectionExtensions public static IServiceCollection AddMixSignalR(this IServiceCollection services, IConfiguration configuration) { string azureConnectionString = configuration.GetSection("Azure")["SignalRConnectionString"]; - services.AddSignalR() - .AddJsonProtocol(options => - { - options.PayloadSerializerOptions.Converters - .Add(new JsonStringEnumConverter()); - }) - .AddAzureSignalRIf(azureConnectionString); + + services + .AddSignalR(options => + { + options.EnableDetailedErrors = true; + options.MaximumReceiveMessageSize = 15360; + }) + .AddJsonProtocol(options => + { + options.PayloadSerializerOptions.Converters.Add(new JsonStringEnumConverter()); + }) + .AddAzureSignalRIf(azureConnectionString); + services.TryAddEnumerable( ServiceDescriptor.Singleton, ConfigureJwtBearerOptions>()); diff --git a/src/platform/mix.signalr/mix.signalr.csproj b/src/platform/mix.signalr/mix.signalr.csproj index 4c89adf1c..a7a7fa020 100644 --- a/src/platform/mix.signalr/mix.signalr.csproj +++ b/src/platform/mix.signalr/mix.signalr.csproj @@ -7,10 +7,10 @@ - - - - + + + + diff --git a/src/platform/mix.storage.lib/Engines/Base/UploaderBase.cs b/src/platform/mix.storage.lib/Engines/Base/UploaderBase.cs index 6611338a2..31d2a86b4 100644 --- a/src/platform/mix.storage.lib/Engines/Base/UploaderBase.cs +++ b/src/platform/mix.storage.lib/Engines/Base/UploaderBase.cs @@ -8,7 +8,7 @@ namespace Mix.Storage.Lib.Engines.Base { public abstract class UploaderBase : IMixUploader { - protected ISession Session; + protected ISession? Session; protected readonly IConfiguration Configuration; protected UnitOfWorkInfo CmsUow; private MixTenantSystemModel _currentTenant; @@ -16,7 +16,10 @@ protected MixTenantSystemModel CurrentTenant { get { - _currentTenant ??= Session.Get(MixRequestQueryKeywords.Tenant); + _currentTenant ??= Session?.Get(MixRequestQueryKeywords.Tenant) ?? new MixTenantSystemModel() + { + Id = 1 + }; return _currentTenant; } } @@ -25,7 +28,7 @@ protected UploaderBase(IHttpContextAccessor httpContextAccessor, IConfiguration { CmsUow = cmsUow; Configuration = configuration; - Session = httpContextAccessor?.HttpContext?.Session ?? throw new MixException(MixErrorStatus.Badrequest, "Session not found."); ; + Session = httpContextAccessor?.HttpContext?.Session; } public async Task CreateMedia(string fullname, int tenantId, string? createdBy, CancellationToken cancellationToken = default) diff --git a/src/platform/mix.storage.lib/Helpers/ImageHelper.cs b/src/platform/mix.storage.lib/Helpers/ImageHelper.cs index 09d616193..f372c9392 100644 --- a/src/platform/mix.storage.lib/Helpers/ImageHelper.cs +++ b/src/platform/mix.storage.lib/Helpers/ImageHelper.cs @@ -1,7 +1,9 @@ -using Mix.Identity.ViewModels; +using Mix.Identity.ViewModels; using Mix.Storage.Lib.Models; using Org.BouncyCastle.Utilities; +using SixLabors.ImageSharp; using SixLabors.ImageSharp.Formats; +using SixLabors.ImageSharp.Processing; using System; using System.Collections.Generic; using System.Drawing.Imaging; diff --git a/src/platform/mix.storage.lib/Subscribers/StorageBackgroundTaskSubscriber.cs b/src/platform/mix.storage.lib/Subscribers/StorageBackgroundTaskSubscriber.cs index 6c106c858..c522f3196 100644 --- a/src/platform/mix.storage.lib/Subscribers/StorageBackgroundTaskSubscriber.cs +++ b/src/platform/mix.storage.lib/Subscribers/StorageBackgroundTaskSubscriber.cs @@ -56,11 +56,8 @@ public override async Task Handler(MessageQueueModel model) switch (model.Action) { case MixQueueActions.ScaleImage: - using (ServiceScope = ServicesProvider.CreateScope()) - { - MixStorageService srv = GetRequiredService(); - await srv.ScaleImage(model.Data); - } + MixStorageService srv = GetRequiredService(); + await srv.ScaleImage(model.Data); break; } } diff --git a/src/platform/mix.storage.lib/mix.storage.lib.csproj b/src/platform/mix.storage.lib/mix.storage.lib.csproj index 94e1dfeb4..b9bc18efe 100644 --- a/src/platform/mix.storage.lib/mix.storage.lib.csproj +++ b/src/platform/mix.storage.lib/mix.storage.lib.csproj @@ -1,4 +1,4 @@ - + net8.0 @@ -8,9 +8,9 @@ - - - + + + diff --git a/src/services/core/graphql/mix.services.graphql/mix.services.graphql.csproj b/src/services/core/graphql/mix.services.graphql/mix.services.graphql.csproj index e9f152b03..1a8c59c0b 100644 --- a/src/services/core/graphql/mix.services.graphql/mix.services.graphql.csproj +++ b/src/services/core/graphql/mix.services.graphql/mix.services.graphql.csproj @@ -1,4 +1,4 @@ - + net8.0 @@ -8,8 +8,8 @@ - - + + diff --git a/src/services/core/mix-databases/mix.services.databases.lib/Services/MixUserPermissionService.cs b/src/services/core/mix-databases/mix.services.databases.lib/Services/MixUserPermissionService.cs index 62f3d5c09..bfb54196c 100644 --- a/src/services/core/mix-databases/mix.services.databases.lib/Services/MixUserPermissionService.cs +++ b/src/services/core/mix-databases/mix.services.databases.lib/Services/MixUserPermissionService.cs @@ -1,4 +1,4 @@ -using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Http; using Mix.Mixdb.ViewModels; using Mix.Heart.Exceptions; using Mix.Heart.Helpers; @@ -11,6 +11,11 @@ using Mix.Heart.Services; using Mix.Lib.Interfaces; using Mix.Auth.Constants; +using Mix.Constant.Constants; +using Mix.Database.Entities.Account; +using Mix.Heart.Enums; +using Mix.Identity.Dtos; +using Microsoft.EntityFrameworkCore; namespace Mix.Services.Databases.Lib.Services { diff --git a/src/services/core/mix-databases/mix.servives.databases/Controllers/MixPermissionController.cs b/src/services/core/mix-databases/mix.servives.databases/Controllers/MixPermissionController.cs index cba8a9421..7c78ba780 100644 --- a/src/services/core/mix-databases/mix.servives.databases/Controllers/MixPermissionController.cs +++ b/src/services/core/mix-databases/mix.servives.databases/Controllers/MixPermissionController.cs @@ -1,4 +1,4 @@ -using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc; using Mix.Heart.UnitOfWork; using Mix.Lib.Attributes; using Mix.Lib.Base; @@ -15,6 +15,7 @@ using Mix.Lib.Interfaces; using Mix.Auth.Constants; using Mix.Mq.Lib.Models; +using Mix.Identity.Dtos; namespace Mix.Services.Databases.Controllers { diff --git a/src/services/mix-auth-service/mix.auth.api/Controllers/MixAccountController.cs b/src/services/mix-auth-service/mix.auth.api/Controllers/MixAccountController.cs index 50374694c..7bb40c636 100644 --- a/src/services/mix-auth-service/mix.auth.api/Controllers/MixAccountController.cs +++ b/src/services/mix-auth-service/mix.auth.api/Controllers/MixAccountController.cs @@ -1,4 +1,4 @@ -using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Identity; using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc.Filters; @@ -24,6 +24,8 @@ using Mix.Identity.Interfaces; using Mix.Mq.Lib.Models; using Mix.RepoDb.Interfaces; +using Mix.Service.Commands; +using MySqlX.XDevAPI.Common; namespace mix.auth.service.Controllers { @@ -125,7 +127,7 @@ public async Task Register([FromBody] RegisterRequestModel model) { await _idService.RegisterAsync(model, CurrentTenant.Id, _cmsUow); var user = await _userManager.FindByNameAsync(model.UserName).ConfigureAwait(false); - var result = _idService.GetAuthData(user, true, CurrentTenant.Id); + var result = await _idService.GetAuthData(user, true, CurrentTenant.Id); if (result != null && user != null) { if (_authConfigService.AppSettings.RequireConfirmedEmail) @@ -142,7 +144,6 @@ public async Task Register([FromBody] RegisterRequestModel model) await _edmService.SendMailWithEdmTemplate("Welcome", "Welcome", ReflectionHelper.ParseObject(user), user.Email); } - return Ok(result); } else @@ -357,6 +358,11 @@ await _repoDbRepository.DeleteAsync(new List() new QueryField("parentId", user.Id), new QueryField("parentType", MixContentType.User) }); + QueueService.PushMemoryQueue( + CurrentTenant.Id, + MixQueueTopics.MixBackgroundTasks, + MixQueueActions.MixDbEvent, + new MixDbEventCommand(user.UserName, MixDbCommandQueueAction.Delete.ToString(), MixDatabaseNames.SYSTEM_USER_DATA, ReflectionHelper.ParseObject(user))); return Ok(); } } diff --git a/src/services/mix-auth-service/mix.auth.api/Program.cs b/src/services/mix-auth-service/mix.auth.api/Program.cs index d674c9de9..5c1c86cb6 100644 --- a/src/services/mix-auth-service/mix.auth.api/Program.cs +++ b/src/services/mix-auth-service/mix.auth.api/Program.cs @@ -6,6 +6,18 @@ using Mix.Log.Lib; using Microsoft.Azure.Amqp.Framing; using Mix.Lib.Middlewares; +using Mix.Lib.Services; +using Mix.Mq.Lib.Models; +using Mix.Queue.Interfaces; +using Mix.Queue.Services; +using Microsoft.Extensions.DependencyInjection.Extensions; +using Mix.Lib.Publishers; +using Mix.Lib.Subscribers; +using Mix.Log.Lib.Subscribers; +using Mix.Log.Lib.Publishers; +using Mix.Log.Lib.Interfaces; +using Mix.Log.Lib.Services; +using Mix.Shared.Models.Configurations; if (Directory.Exists($"../{MixFolders.MixCoreConfigurationFolder}")) { @@ -18,7 +30,7 @@ { builder.AddServiceDefaults(); } - +var globalConfigs = builder.Configuration.GetSection(MixAppSettingsSection.GlobalSettings).Get()!; // Add services to the container. builder.Services.AddControllers(); @@ -27,15 +39,21 @@ builder.Services.AddMixServices(Assembly.GetExecutingAssembly(), builder.Configuration); builder.Services.AddMixCors(); -builder.Services.AddMixLog(builder.Configuration); // Must app Auth config after Add mixservice to init App config builder.Services.AddMixAuthorize(builder.Configuration); - - +builder.Services.AddScoped(); +builder.Services.TryAddSingleton, MemoryQueueService>(); +builder.Services.AddHostedService(); +builder.Services.AddHostedService(); +builder.AddMixLogPublisher(); var app = builder.Build(); app.UseMixTenant(); -app.UseMiddleware(); + +if (!globalConfigs!.IsInit) +{ + app.UseMiddleware(); +} app.UseMixCors(); app.UseRouting(); app.UseMixAuth(); diff --git a/src/services/mix-auth-service/mix.auth.api/mix.auth.api.csproj b/src/services/mix-auth-service/mix.auth.api/mix.auth.api.csproj index 84d076925..c5ca2b614 100644 --- a/src/services/mix-auth-service/mix.auth.api/mix.auth.api.csproj +++ b/src/services/mix-auth-service/mix.auth.api/mix.auth.api.csproj @@ -14,10 +14,7 @@ Mix.Auth.Api - - - - + @@ -52,7 +49,7 @@ - + diff --git a/src/services/mix-message-queue/mix.mq.server/Program.cs b/src/services/mix-message-queue/mix.mq.server/Program.cs index 55e605e13..bc71cbca4 100644 --- a/src/services/mix-message-queue/mix.mq.server/Program.cs +++ b/src/services/mix-message-queue/mix.mq.server/Program.cs @@ -9,6 +9,17 @@ using System.Configuration; using System.Reflection; using Mix.Queue.Extensions; +using Mix.Database.Entities.Account; +using Mix.Service.Interfaces; +using Mix.Service.Services; +using Mix.Database.Entities.Cms; +using Mix.Database.Services; +using Mix.Lib.Interfaces; +using Mix.Queue.Interfaces; +using Mix.Queue.Services; +using Mix.Shared.Services; +using Mix.SignalR.Interfaces; +using Mix.Lib.Services; if (Directory.Exists($"../{MixFolders.MixCoreConfigurationFolder}")) { @@ -48,7 +59,14 @@ .WithExposedHeaders("Grpc-Status", "Grpc-Message", "Grpc-Encoding", "Grpc-Accept-Encoding"); })); -builder.Services.AddMixLog(builder.Configuration); +builder.Services.TryAddSingleton(); +builder.Services.TryAddSingleton(); +builder.Services.TryAddSingleton(); +builder.Services.TryAddSingleton, MemoryQueueService>(); +builder.Services.TryAddSingleton(); +builder.Services.TryAddSingleton(); +builder.Services.TryAddSingleton(); + builder.Services.AddMixSignalR(builder.Configuration); builder.Services.AddMixCommunicators(); builder.Services.AddSwaggerGen(); diff --git a/src/services/mix-message-queue/mix.mq.server/mix.mq.server.csproj b/src/services/mix-message-queue/mix.mq.server/mix.mq.server.csproj index c1b21c814..7a7f1fe18 100644 --- a/src/services/mix-message-queue/mix.mq.server/mix.mq.server.csproj +++ b/src/services/mix-message-queue/mix.mq.server/mix.mq.server.csproj @@ -1,4 +1,4 @@ - + net8.0 @@ -18,11 +18,11 @@ - - - - - + + + + + diff --git a/src/test/locustfile.py b/src/test/locustfile.py index 6da4fa3a8..e958af2af 100644 --- a/src/test/locustfile.py +++ b/src/test/locustfile.py @@ -6,15 +6,15 @@ class QuickstartUser(HttpUser): # self.headers = {'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOlsiT3duZXItMSIsIlN1cGVyQWRtaW4iXSwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvbmFtZWlkZW50aWZpZXIiOiI1NWFmNjA4OC04MjllLTQ0YWEtODUyYS01YjdiY2NjOGFlM2IiLCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoidGlua3UiLCJSZWZyZXNoVG9rZW4iOiIyYzdkODljMi1hNzVlLTRmOGItODMyNC0xZmQyN2JmYjY5Y2MiLCJBdmF0YXIiOiIvbWl4LWFwcC9hc3NldHMvaW1nL3VzZXIucG5nIiwiQUVTS2V5IjoiTkVsVWVtcE9TbXg0UVZsWFJGUm1TeXM1WjBscFp6MDlMRVJCU0VOVFVVbFpXRVZOWVZSSlJsRXJjMjU2YkU5SWJtbzFaMHd3Y201UFJtOWlNRGxYU0VKU00wVTkiLCJSU0FQdWJsaWNLZXkiOiI8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJ1dGYtMTZcIj8-XHJcbjxSU0FQYXJhbWV0ZXJzIHhtbG5zOnhzaT1cImh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlXCIgeG1sbnM6eHNkPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWFcIj5cclxuICA8RXhwb25lbnQ-QVFBQjwvRXhwb25lbnQ-XHJcbiAgPE1vZHVsdXM-b1hIN09ISUVQdXFRRXVHRk8wRm81dXgyT0NyQTBoclAyeWpBK0FCUUlvV3JTdmMvVkM0T2pZdEpvODhQY2VaR2ZWc0dUaXhkdDlMZ1YrZzZTTVpGMWxIME1BUVRWTzhndGU0YzBvbkdZL09FOFAySDVSZFVQL0E0eVA1Sldjd1VuQ21mSG8ydUJuempPSXF4MnRjaFB4cnR6UmlQZnJkZGp1MHVUcXJJNUwwSVVERTFZSk1rbzFaUDVLY2oyQzBPcnVqd0FCVzBsTitxZXhFTnpidDBZZFoyVzd2UXBrZ0xFcXlVdWJ1RUo0MllieDQzSVBEWWxnY1JNaHZ2YnYxTGl2U3liLzBRZkJSNVhXSFRQYzduMGJZRWpBQkI1RkgrT29YdnlHZXpHSU1qR1FMMnoxVnpiT0lqMzFpS2lCclhrcjBrR2ZJSzRsQzdSNElqdkh1K0FRPT08L01vZHVsdXM-XHJcbjwvUlNBUGFyYW1ldGVycz4iLCJFeHBpcmVBdCI6IjIwMjMtMDUtMTRUMDU6MDA6MzMuNzk0WiIsIm5iZiI6MTY4NDAzOTIzMywiZXhwIjoxNjg0MDQwNDMzLCJpc3MiOiJtaXgtY29yZSIsImF1ZCI6Im1peC1jb3JlIn0.3IARED63s03ZOlCa0olj4sN9V3XFoAej0xS9sJfLL54'} @task def hello_world(self): - self.client.get("/") + # self.client.get("/") # self.client.get("/post/3/the-future-of-cms-from-mixcore") - # self.client.post( - # url="/api/v2/rest/mix-portal/mix-db/Metadata/hub", - # json={"type":"testuser", "content":"secret", "seoContent": "asdfa"}, - # auth=None, - # # headers={"authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOlsiT3duZXItMSIsIlN1cGVyQWRtaW4iXSwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvbmFtZWlkZW50aWZpZXIiOiI1NWFmNjA4OC04MjllLTQ0YWEtODUyYS01YjdiY2NjOGFlM2IiLCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoidGlua3UiLCJSZWZyZXNoVG9rZW4iOiIyYzdkODljMi1hNzVlLTRmOGItODMyNC0xZmQyN2JmYjY5Y2MiLCJBdmF0YXIiOiIvbWl4LWFwcC9hc3NldHMvaW1nL3VzZXIucG5nIiwiQUVTS2V5IjoiTkVsVWVtcE9TbXg0UVZsWFJGUm1TeXM1WjBscFp6MDlMRVJCU0VOVFVVbFpXRVZOWVZSSlJsRXJjMjU2YkU5SWJtbzFaMHd3Y201UFJtOWlNRGxYU0VKU00wVTkiLCJSU0FQdWJsaWNLZXkiOiI8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJ1dGYtMTZcIj8-XHJcbjxSU0FQYXJhbWV0ZXJzIHhtbG5zOnhzaT1cImh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlXCIgeG1sbnM6eHNkPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWFcIj5cclxuICA8RXhwb25lbnQ-QVFBQjwvRXhwb25lbnQ-XHJcbiAgPE1vZHVsdXM-b1hIN09ISUVQdXFRRXVHRk8wRm81dXgyT0NyQTBoclAyeWpBK0FCUUlvV3JTdmMvVkM0T2pZdEpvODhQY2VaR2ZWc0dUaXhkdDlMZ1YrZzZTTVpGMWxIME1BUVRWTzhndGU0YzBvbkdZL09FOFAySDVSZFVQL0E0eVA1Sldjd1VuQ21mSG8ydUJuempPSXF4MnRjaFB4cnR6UmlQZnJkZGp1MHVUcXJJNUwwSVVERTFZSk1rbzFaUDVLY2oyQzBPcnVqd0FCVzBsTitxZXhFTnpidDBZZFoyVzd2UXBrZ0xFcXlVdWJ1RUo0MllieDQzSVBEWWxnY1JNaHZ2YnYxTGl2U3liLzBRZkJSNVhXSFRQYzduMGJZRWpBQkI1RkgrT29YdnlHZXpHSU1qR1FMMnoxVnpiT0lqMzFpS2lCclhrcjBrR2ZJSzRsQzdSNElqdkh1K0FRPT08L01vZHVsdXM-XHJcbjwvUlNBUGFyYW1ldGVycz4iLCJFeHBpcmVBdCI6IjIwMjMtMDUtMTRUMDU6MDA6MzMuNzk0WiIsIm5iZiI6MTY4NDAzOTIzMywiZXhwIjoxNjg0MDQwNDMzLCJpc3MiOiJtaXgtY29yZSIsImF1ZCI6Im1peC1jb3JlIn0.3IARED63s03ZOlCa0olj4sN9V3XFoAej0xS9sJfLL54"}, - # name="Metadata/hub", - # ) + self.client.post( + url="/api/v2/rest/mix-portal/mix-db/Metadata/hub", + json={"type":"testuser", "content":"secret", "seoContent": "asdfa"}, + auth=None, + # headers={"authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL3dzLzIwMDgvMDYvaWRlbnRpdHkvY2xhaW1zL3JvbGUiOlsiT3duZXItMSIsIlN1cGVyQWRtaW4iXSwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvbmFtZWlkZW50aWZpZXIiOiI1NWFmNjA4OC04MjllLTQ0YWEtODUyYS01YjdiY2NjOGFlM2IiLCJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy93cy8yMDA1LzA1L2lkZW50aXR5L2NsYWltcy9uYW1lIjoidGlua3UiLCJSZWZyZXNoVG9rZW4iOiIyYzdkODljMi1hNzVlLTRmOGItODMyNC0xZmQyN2JmYjY5Y2MiLCJBdmF0YXIiOiIvbWl4LWFwcC9hc3NldHMvaW1nL3VzZXIucG5nIiwiQUVTS2V5IjoiTkVsVWVtcE9TbXg0UVZsWFJGUm1TeXM1WjBscFp6MDlMRVJCU0VOVFVVbFpXRVZOWVZSSlJsRXJjMjU2YkU5SWJtbzFaMHd3Y201UFJtOWlNRGxYU0VKU00wVTkiLCJSU0FQdWJsaWNLZXkiOiI8P3htbCB2ZXJzaW9uPVwiMS4wXCIgZW5jb2Rpbmc9XCJ1dGYtMTZcIj8-XHJcbjxSU0FQYXJhbWV0ZXJzIHhtbG5zOnhzaT1cImh0dHA6Ly93d3cudzMub3JnLzIwMDEvWE1MU2NoZW1hLWluc3RhbmNlXCIgeG1sbnM6eHNkPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWFcIj5cclxuICA8RXhwb25lbnQ-QVFBQjwvRXhwb25lbnQ-XHJcbiAgPE1vZHVsdXM-b1hIN09ISUVQdXFRRXVHRk8wRm81dXgyT0NyQTBoclAyeWpBK0FCUUlvV3JTdmMvVkM0T2pZdEpvODhQY2VaR2ZWc0dUaXhkdDlMZ1YrZzZTTVpGMWxIME1BUVRWTzhndGU0YzBvbkdZL09FOFAySDVSZFVQL0E0eVA1Sldjd1VuQ21mSG8ydUJuempPSXF4MnRjaFB4cnR6UmlQZnJkZGp1MHVUcXJJNUwwSVVERTFZSk1rbzFaUDVLY2oyQzBPcnVqd0FCVzBsTitxZXhFTnpidDBZZFoyVzd2UXBrZ0xFcXlVdWJ1RUo0MllieDQzSVBEWWxnY1JNaHZ2YnYxTGl2U3liLzBRZkJSNVhXSFRQYzduMGJZRWpBQkI1RkgrT29YdnlHZXpHSU1qR1FMMnoxVnpiT0lqMzFpS2lCclhrcjBrR2ZJSzRsQzdSNElqdkh1K0FRPT08L01vZHVsdXM-XHJcbjwvUlNBUGFyYW1ldGVycz4iLCJFeHBpcmVBdCI6IjIwMjMtMDUtMTRUMDU6MDA6MzMuNzk0WiIsIm5iZiI6MTY4NDAzOTIzMywiZXhwIjoxNjg0MDQwNDMzLCJpc3MiOiJtaXgtY29yZSIsImF1ZCI6Im1peC1jb3JlIn0.3IARED63s03ZOlCa0olj4sN9V3XFoAej0xS9sJfLL54"}, + name="Metadata/hub", + ) # self.client.post("/api/v2/rest/mix-portal/mix-db/Metadata/hub", {"type":"testuser", "content":"secret", "seoContent": "asdfa"}) # @task(3) diff --git a/src/test/mix.xunittest/mix.xunittest.csproj b/src/test/mix.xunittest/mix.xunittest.csproj index df5d51e37..a714e81e3 100644 --- a/src/test/mix.xunittest/mix.xunittest.csproj +++ b/src/test/mix.xunittest/mix.xunittest.csproj @@ -36,14 +36,14 @@ - - + + - + runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/src/test/p4ps.pos.api.tests/Services/Order/PosOrderServiceTests.cs b/src/test/p4ps.pos.api.tests/Services/Order/PosOrderServiceTests.cs new file mode 100644 index 000000000..9b57202cb --- /dev/null +++ b/src/test/p4ps.pos.api.tests/Services/Order/PosOrderServiceTests.cs @@ -0,0 +1,6 @@ +namespace p4ps.pos.api.tests.Services.Order +{ + public class PosOrderServiceTests + { + } +} diff --git a/src/test/p4ps.pos.api.tests/p4ps.pos.api.tests.csproj b/src/test/p4ps.pos.api.tests/p4ps.pos.api.tests.csproj new file mode 100644 index 000000000..95fc370b9 --- /dev/null +++ b/src/test/p4ps.pos.api.tests/p4ps.pos.api.tests.csproj @@ -0,0 +1,33 @@ + + + + net8.0 + enable + enable + + false + true + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + + + + + From db777849048a1a2e5fe9ef3ec761697b6d7e8552 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nh=E1=BA=ADt=20Ho=C3=A0ng?= Date: Sat, 31 Aug 2024 16:08:38 +0700 Subject: [PATCH 2/3] update --- src/applications/mixcore.gateway/Dockerfile | 24 +- src/applications/mixcore.gateway/Program.cs | 2 + .../appsettings.Production.json | 8 + .../mixcore.gateway/mixcore.gateway.csproj | 2 +- src/applications/mixcore.gateway/ocelot.json | 37 - .../mixcore.gateway/ocelot.sample.json | 79 - .../mixcore.gateway/p4ps.gateway.csproj | 34 - .../mixcore.gateway/p4ps.gateway.http | 6 - .../Extensions.cs | 0 ...mixcore.host.aspire.ServiceDefaults.csproj | 0 .../mixcore.host.aspire.AppHost/Program.cs | 10 - .../Properties/launchSettings.json | 16 - .../mixcore.host.aspire.AppHost.csproj | 22 - .../p4ps.host.aspire.AppHost.csproj | 28 - .../p4ps.host.aspire.ServiceDefaults.csproj | 30 - .../Domain/Services/MixNavigationService.cs | 2 +- .../mixcore/Domain/StartupServices.cs | 12 +- src/applications/mixcore/Program.cs | 208 +- src/applications/mixcore/mixcore.csproj | 2 +- .../mix-app/js/app-portal-required.min.js | 2 +- .../wwwroot/mix-app/js/app-portal.min.js | 10819 ++++++++------- .../wwwroot/mix-app/js/app-shared.min.js | 11587 ++++++++-------- .../wwwroot/mix-app/js/framework.min.js | 2 +- .../components/filter-list/filter-list.html | 2 +- .../components/header-nav/headerNav.html | 4 +- .../mix-database-data-values/view.html | 2 +- .../components/mix-database-form/view.html | 2 +- .../pages/mix-database-data/details.html | 2 +- .../pages/mix-database-data/list.html | 2 +- .../Controllers/SettingApiController.cs | 8 +- src/modules/mix.common/Startup.cs | 2 + .../Domain/Models/GrpcChannelModel.cs | 2 +- .../Controllers/MixAuditLogController.cs | 11 +- .../Controllers/MixQueueLogController.cs | 19 +- src/modules/mix.log/Startup.cs | 3 +- .../Controllers/MixDatabaseController.cs | 10 +- .../mix.portal/Controllers/MixDbController.cs | 328 +- .../Controllers/MixThemeController.cs | 2 +- src/modules/mix.portal/Program.cs | 3 +- src/modules/mix.portal/Startup.cs | 4 +- src/modules/mix.portal/mix.portal.csproj | 4 +- .../Controllers/FileSystemController.cs | 4 +- .../Controllers/StorageController.cs | 2 +- .../mix.tenancy/Controllers/InitController.cs | 2 +- src/platform/core/mix-heart | 2 +- .../Services/MixDbEventService.cs | 12 +- .../OAuthResponses/OAuthTokenResponse.cs | 38 + .../Models/RegisterExternalBindingModel.cs | 2 +- .../Services/FirebaseService.cs | 4 +- .../mix.communicator/mix.communicator.csproj | 2 +- .../mix.constant/Constants/MixConstants.cs | 1 + .../mix.constant/Constants/MixFolders.cs | 2 +- .../mix.constant/Constants/MixRepoDb.cs | 2 +- .../mix.constant/Enums/HttpRequestMethod.cs | 11 + .../Enums/MixCompareOperatorKind.cs | 1 + .../mix.constant/Enums/MixConjunction.cs | 8 + .../mix.constant/Enums/MixDatabaseType.cs | 1 + .../Enums/MixDbCommandQueueAction.cs | 11 + src/platform/mix.constant/mix.constant.csproj | 4 - .../PermissionConfiguration.cs | 19 + .../SysMixDatabaseAssociationConfiguration.cs | 28 + .../Entities/Account/_MixCmsAccountContext.cs | 3 +- .../AuditLogConfiguration.cs | 34 +- .../Entities/AuditLog/_AuditLogDbContext.cs | 24 +- .../Entities/MixDb/MixPermission.cs | 7 +- .../20240310051036_InitAuditLog.Designer.cs | 91 + .../MySqlAuditLogDbContextModelSnapshot.cs | 88 + .../20240310045005_InitAuditLog.Designer.cs | 93 + .../PostgresAuditLogDbContextModelSnapshot.cs | 90 + .../20240310051318_InitAuditLog.Designer.cs | 93 + ...SqlServerAuditLogDbContextModelSnapshot.cs | 90 + .../20240310050457_InitAuditLog.Designer.cs | 88 + .../SqlITEAuditLogDbContextModelSnapshot.cs | 85 + .../MySqlMixCmsContextModelSnapshot.cs | 8 +- .../SqlServerMixCmsContextModelSnapshot.cs | 7 +- .../SqliteMixCmsContextModelSnapshot.cs | 7 +- .../20240310062243_InitQueueLog.Designer.cs | 104 + .../MySqlQueueLogDbContextModelSnapshot.cs | 101 + .../20240310061825_InitQueueLog.Designer.cs | 104 + .../PostgresQueueLogDbContextModelSnapshot.cs | 101 + .../20240310062419_InitQueueLog.Designer.cs | 104 + ...SqlServerQueueLogDbContextModelSnapshot.cs | 101 + .../20240310062056_InitQueueLog.Designer.cs | 104 + .../SqlITEQueueLogDbContextModelSnapshot.cs | 101 + src/platform/mix.database/Readme.md | 13 + .../mix.database/Services/DatabaseService.cs | 18 +- src/platform/mix.database/mix.database.csproj | 4 +- .../Interfaces/IOAuthClientService.cs | 2 +- .../Interfaces/IOAuthTokenService.cs | 2 +- .../Services/OAuthClientService.cs | 21 +- .../Services/OAuthTokenService.cs | 19 +- .../ViewModels/PermissionViewModel.cs | 32 + src/platform/mix.identity/mix.identity.csproj | 2 +- .../Attributes/MixAuthorizeAttribute.cs | 4 +- .../Base/MixQueryEntityApiControllerBase.cs | 25 +- .../ControllerDocumentationConvention.cs | 1 - .../Filters/HttpResponseExceptionFilter.cs | 25 +- .../mix.library/Helpers/MixCmsHelper.cs | 2 +- .../Middlewares/AuditlogMiddleware.cs | 30 +- src/platform/mix.library/Readme.md | 1 + .../Services/MixConfigurationService.cs | 6 +- .../mix.library/Services/MixHubContext.cs | 21 + .../Services/MixIdentityService.cs | 15 +- .../Services/MixThemeExportService.cs | 2 +- .../Services/MixThemeImportService.cs | 25 +- .../mix.library/Services/MixUserConext.cs | 62 + .../AuthServiceCollectionExtensions.cs | 24 +- src/platform/mix.library/Startup/Swagger.cs | 2 +- .../mix.library/Startup/UnitOfWorks.cs | 8 +- .../Startup/_ServiceCollectionExtensions.cs | 2 +- .../MixDatabaseColumnViewModelHandler.cs | 4 +- .../MixDomainViewModelHandler.cs | 4 +- .../MixTenantSystemViewModelHandler.cs | 4 +- .../PageContentHandler.cs | 4 +- .../TemplateHandler.cs | 4 +- .../MixBackgroundTaskSubscriber.cs | 4 +- .../Subscribers/MixDbCommandSubscriber.cs | 16 +- .../MixViewModelChangedSubscriber.cs | 20 +- .../ViewModels/MixDatabaseViewModel.cs | 6 +- src/platform/mix.library/mix.library.csproj | 3 +- .../mix.log/Interfaces/IMixQueueLog.cs | 6 +- .../mix.log/ServiceCollectionExtension.cs | 12 +- .../mix.log/Services/AuditLogService.cs | 12 +- .../mix.log/Services/MixQueueLogService.cs | 35 +- .../mix.log/Subscribers/MixLogSubscriber.cs | 26 +- .../ViewModels/MixQueueMessageLogViewModel.cs | 6 +- .../Services/RuntimeDbContextService.cs | 42 +- .../ViewModels/MixPermissionViewModel.cs | 6 +- src/platform/mix.mixdb/mix.mixdb.csproj | 2 +- src/platform/mix.quartz/mix.quartz.csproj | 2 +- .../mix.queue/Engines/PublisherBase.cs | 101 +- .../RabitMq/RabbitModelPooledObjectPolicy.cs | 2 +- .../Engines/RabitMq/RabitMQSubscriber.cs | 2 +- .../Engines/RabitMq/RabitMqPublisher.cs | 17 +- .../mix.queue/Engines/SubscriberBase.cs | 68 +- .../mix.queue/Services/MemoryQueueService.cs | 1 - src/platform/mix.queue/mix.queue.csproj | 2 +- .../mix.repodb/Dtos/AlterColumnDto.cs | 1 + .../mix.repodb/Helpers/MixDbHelper.cs | 99 +- .../Interfaces/IMixDbDataService.cs | 17 +- .../Repositories/MixRepoDbRepository.cs | 51 +- .../OptimizedPostgresSqlStatementBuilder.cs | 30 +- .../mix.repodb/Repositories/RepoDbBase.cs | 8 +- .../mix.repodb/Services/MixDbDataService.cs | 158 +- .../mix.repodb/Services/MixDbService.cs | 89 +- .../Subscribers/MixRepoDbSubscriber.cs | 2 +- .../MixDatabaseContextReadViewModel.cs | 2 +- .../MixDatabaseRelationshipViewModel.cs | 47 - src/platform/mix.repodb/mix.repodb.csproj | 1 + .../mix.service/Commands/MixDbEventCommand.cs | 4 +- .../mix.service/Services/FieldNameService.cs | 5 +- .../Services/MixDbCommandHubClientService.cs | 2 +- .../mix.service/Services/MixLogService.cs | 2 +- .../mix.shared/Dtos/SearchMixDbRequestDto.cs | 36 +- .../mix.shared/Dtos/SearchRequestDto.cs | 1 + .../Extensions/JObjectExtensions.cs | 173 + src/platform/mix.shared/Helpers/MixHelper.cs | 2 +- .../mix.shared/Models/ConnectionStrings.cs | 2 + .../mix.shared/Models/MixDbAuditLogModel.cs | 18 + .../mix.shared/Services/HttpService.cs | 4 +- .../Extensions/ServiceCollectionExtensions.cs | 2 +- .../mix.signalr.hub/Hubs/BaseSignalrHub.cs | 10 +- .../mix.signalr.hub/Hubs/EditFileHub.cs | 2 +- src/platform/mix.signalr.hub/Hubs/MixDbHub.cs | 6 +- .../mix.signalr.hub/Hubs/VideoCallHub.cs | 6 +- .../mix.signalr/ConfigureJwtBearerOptions.cs | 2 +- .../mix.signalr/Constants/HubEndpoints.cs | 2 +- .../mix.signalr/Models/HubUserModel.cs | 2 + .../ServiceCollectionExtensions.cs | 2 +- .../mix.storage.lib/Helpers/ImageHelper.cs | 2 +- .../StorageBackgroundTaskSubscriber.cs | 2 +- .../mix.storage.lib/mix.storage.lib.csproj | 2 +- .../Enums/PaymentGateway.cs | 1 + .../Enums/PaymentStatus.cs | 10 +- .../Services/EcommerceService.cs | 6 +- .../Services/OnepayService.cs | 10 +- .../Services/OrderService.cs | 2 +- .../Services/PaypalService.cs | 6 +- .../ViewModels/OrderItemViewModel.cs | 2 +- .../ServiceCollectionExtensions.cs | 5 +- .../mix.services.graphql.lib.csproj | 4 +- .../mix.services.graphql.csproj | 4 +- .../Controllers/MixAccountController.cs | 569 + .../Controllers/MixRoleController.cs | 82 + .../Controllers/OAuthClientController.cs | 42 + .../mix-auth-service/mix.auth.api/Dockerfile | 47 + .../mix.auth.api/Dockerfile_linux | 43 + .../mix.auth.api/Domain/Protos/mixmq.proto | 29 + .../mix.auth.api/Domain/StartupService.cs | 25 + .../MixAuthBackgroundTaskSubscriber.cs | 94 + .../Domain/ViewModels/MixRoleViewModel.cs | 36 + .../mix-auth-service/mix.auth.api/Program.cs | 59 + .../Properties/launchSettings.json | 42 + .../appsettings.Development.json | 0 .../mix.auth.api/mix.auth.api.csproj | 53 + .../mix.auth.api/mix.auth.service.http | 6 + .../mix.auth.api/runtimeconfig.template.json | 8 + .../Interfaces/IMixPermissionService.cs | 6 +- .../Services/MixUserPermissionService.cs | 70 +- .../Controllers/MixPermissionController.cs | 13 +- .../mix.mq.lib/mix.mq.lib.csproj | 21 + .../mix.mq.server/Controllers/MqController.cs | 61 + .../mix.mq.server/Dockerfile | 45 + .../mix.mq.server/Dockerfile_linux | 41 + .../mix.mq.server/Domain/Protos/mixmq.proto | 30 + .../Domain/Services/GrpcStreamingService.cs | 154 + .../Domain/Services/MixMqService.cs | 76 + .../Services/MixMqSubscriptionService.cs | 33 + .../mix.mq.server/Domain/StartupService.cs | 36 + .../mix.mq.server/Program.cs | 100 + .../Properties/launchSettings.json | 42 + .../mix-message-queue/mix.mq.server/Readme.md | 119 + .../appsettings.Development.json | 8 + .../mix.mq.server/mix.mq.server.csproj | 32 + .../mix.mq.server/mix.mq.server.http | 6 + .../mix.mq.server/runtimeconfig.template.json | 12 + .../Services/Order/PosOrderServiceTests.cs | 2 +- .../p4ps.pos.api.tests.csproj | 2 +- 218 files changed, 16339 insertions(+), 12454 deletions(-) create mode 100644 src/applications/mixcore.gateway/appsettings.Production.json delete mode 100644 src/applications/mixcore.gateway/ocelot.json delete mode 100644 src/applications/mixcore.gateway/ocelot.sample.json delete mode 100644 src/applications/mixcore.gateway/p4ps.gateway.csproj delete mode 100644 src/applications/mixcore.gateway/p4ps.gateway.http rename src/applications/{mixcore.host.aspire => }/mixcore.host.aspire.ServiceDefaults/Extensions.cs (100%) rename src/applications/{mixcore.host.aspire => }/mixcore.host.aspire.ServiceDefaults/mixcore.host.aspire.ServiceDefaults.csproj (100%) delete mode 100644 src/applications/mixcore.host.aspire/mixcore.host.aspire.AppHost/Program.cs delete mode 100644 src/applications/mixcore.host.aspire/mixcore.host.aspire.AppHost/Properties/launchSettings.json delete mode 100644 src/applications/mixcore.host.aspire/mixcore.host.aspire.AppHost/mixcore.host.aspire.AppHost.csproj delete mode 100644 src/applications/mixcore.host.aspire/mixcore.host.aspire.AppHost/p4ps.host.aspire.AppHost.csproj delete mode 100644 src/applications/mixcore.host.aspire/mixcore.host.aspire.ServiceDefaults/p4ps.host.aspire.ServiceDefaults.csproj create mode 100644 src/platform/mix.auth/Models/OAuthResponses/OAuthTokenResponse.cs create mode 100644 src/platform/mix.constant/Enums/HttpRequestMethod.cs create mode 100644 src/platform/mix.constant/Enums/MixConjunction.cs create mode 100644 src/platform/mix.constant/Enums/MixDbCommandQueueAction.cs create mode 100644 src/platform/mix.database/Entities/Account/EntityConfigurations/PermissionConfiguration.cs create mode 100644 src/platform/mix.database/Entities/Account/EntityConfigurations/SysMixDatabaseAssociationConfiguration.cs create mode 100644 src/platform/mix.database/Migrations/AuditLogDb/MySql/20240310051036_InitAuditLog.Designer.cs create mode 100644 src/platform/mix.database/Migrations/AuditLogDb/MySql/MySqlAuditLogDbContextModelSnapshot.cs create mode 100644 src/platform/mix.database/Migrations/AuditLogDb/Postgresql/20240310045005_InitAuditLog.Designer.cs create mode 100644 src/platform/mix.database/Migrations/AuditLogDb/Postgresql/PostgresAuditLogDbContextModelSnapshot.cs create mode 100644 src/platform/mix.database/Migrations/AuditLogDb/SqlServer/20240310051318_InitAuditLog.Designer.cs create mode 100644 src/platform/mix.database/Migrations/AuditLogDb/SqlServer/SqlServerAuditLogDbContextModelSnapshot.cs create mode 100644 src/platform/mix.database/Migrations/AuditLogDb/Sqlite/20240310050457_InitAuditLog.Designer.cs create mode 100644 src/platform/mix.database/Migrations/AuditLogDb/Sqlite/SqlITEAuditLogDbContextModelSnapshot.cs create mode 100644 src/platform/mix.database/Migrations/QueueLog/MySql/20240310062243_InitQueueLog.Designer.cs create mode 100644 src/platform/mix.database/Migrations/QueueLog/MySql/MySqlQueueLogDbContextModelSnapshot.cs create mode 100644 src/platform/mix.database/Migrations/QueueLog/Postgres/20240310061825_InitQueueLog.Designer.cs create mode 100644 src/platform/mix.database/Migrations/QueueLog/Postgres/PostgresQueueLogDbContextModelSnapshot.cs create mode 100644 src/platform/mix.database/Migrations/QueueLog/SqlServer/20240310062419_InitQueueLog.Designer.cs create mode 100644 src/platform/mix.database/Migrations/QueueLog/SqlServer/SqlServerQueueLogDbContextModelSnapshot.cs create mode 100644 src/platform/mix.database/Migrations/QueueLog/Sqlite/20240310062056_InitQueueLog.Designer.cs create mode 100644 src/platform/mix.database/Migrations/QueueLog/Sqlite/SqlITEQueueLogDbContextModelSnapshot.cs create mode 100644 src/platform/mix.identity/ViewModels/PermissionViewModel.cs create mode 100644 src/platform/mix.library/Services/MixHubContext.cs create mode 100644 src/platform/mix.library/Services/MixUserConext.cs create mode 100644 src/platform/mix.shared/Extensions/JObjectExtensions.cs create mode 100644 src/platform/mix.shared/Models/MixDbAuditLogModel.cs create mode 100644 src/services/core/mix-auth-service/mix.auth.api/Controllers/MixAccountController.cs create mode 100644 src/services/core/mix-auth-service/mix.auth.api/Controllers/MixRoleController.cs create mode 100644 src/services/core/mix-auth-service/mix.auth.api/Controllers/OAuthClientController.cs create mode 100644 src/services/core/mix-auth-service/mix.auth.api/Dockerfile create mode 100644 src/services/core/mix-auth-service/mix.auth.api/Dockerfile_linux create mode 100644 src/services/core/mix-auth-service/mix.auth.api/Domain/Protos/mixmq.proto create mode 100644 src/services/core/mix-auth-service/mix.auth.api/Domain/StartupService.cs create mode 100644 src/services/core/mix-auth-service/mix.auth.api/Domain/Subscribers/MixAuthBackgroundTaskSubscriber.cs create mode 100644 src/services/core/mix-auth-service/mix.auth.api/Domain/ViewModels/MixRoleViewModel.cs create mode 100644 src/services/core/mix-auth-service/mix.auth.api/Program.cs create mode 100644 src/services/core/mix-auth-service/mix.auth.api/Properties/launchSettings.json rename src/{applications/mixcore.host.aspire/mixcore.host.aspire.AppHost => services/core/mix-auth-service/mix.auth.api}/appsettings.Development.json (100%) create mode 100644 src/services/core/mix-auth-service/mix.auth.api/mix.auth.api.csproj create mode 100644 src/services/core/mix-auth-service/mix.auth.api/mix.auth.service.http create mode 100644 src/services/core/mix-auth-service/mix.auth.api/runtimeconfig.template.json create mode 100644 src/services/core/mix-message-queue/mix.mq.lib/mix.mq.lib.csproj create mode 100644 src/services/core/mix-message-queue/mix.mq.server/Controllers/MqController.cs create mode 100644 src/services/core/mix-message-queue/mix.mq.server/Dockerfile create mode 100644 src/services/core/mix-message-queue/mix.mq.server/Dockerfile_linux create mode 100644 src/services/core/mix-message-queue/mix.mq.server/Domain/Protos/mixmq.proto create mode 100644 src/services/core/mix-message-queue/mix.mq.server/Domain/Services/GrpcStreamingService.cs create mode 100644 src/services/core/mix-message-queue/mix.mq.server/Domain/Services/MixMqService.cs create mode 100644 src/services/core/mix-message-queue/mix.mq.server/Domain/Services/MixMqSubscriptionService.cs create mode 100644 src/services/core/mix-message-queue/mix.mq.server/Domain/StartupService.cs create mode 100644 src/services/core/mix-message-queue/mix.mq.server/Program.cs create mode 100644 src/services/core/mix-message-queue/mix.mq.server/Properties/launchSettings.json create mode 100644 src/services/core/mix-message-queue/mix.mq.server/Readme.md create mode 100644 src/services/core/mix-message-queue/mix.mq.server/appsettings.Development.json create mode 100644 src/services/core/mix-message-queue/mix.mq.server/mix.mq.server.csproj create mode 100644 src/services/core/mix-message-queue/mix.mq.server/mix.mq.server.http create mode 100644 src/services/core/mix-message-queue/mix.mq.server/runtimeconfig.template.json diff --git a/src/applications/mixcore.gateway/Dockerfile b/src/applications/mixcore.gateway/Dockerfile index 5a52d3bc8..d097c8ccb 100644 --- a/src/applications/mixcore.gateway/Dockerfile +++ b/src/applications/mixcore.gateway/Dockerfile @@ -9,9 +9,29 @@ EXPOSE 8081 FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build ARG BUILD_CONFIGURATION=Release WORKDIR /src +COPY ["platform/core/mix-heart/nuget.config", "platform/core/mix-heart/"] COPY ["applications/mixcore.gateway/mixcore.gateway.csproj", "applications/mixcore.gateway/"] -COPY ["applications/mixcore.host.aspire/mixcore.host.aspire.ServiceDefaults/mixcore.host.aspire.ServiceDefaults.csproj", "applications/mixcore.host.aspire/mixcore.host.aspire.ServiceDefaults/"] -RUN dotnet restore "./applications/mixcore.gateway/./mixcore.gateway.csproj" +COPY ["platform/mix.library/mix.library.csproj", "platform/mix.library/"] +COPY ["platform/core/mix.mixdb.event/mix.mixdb.event.csproj", "platform/core/mix.mixdb.event/"] +COPY ["platform/mix.mixdb/mix.mixdb.csproj", "platform/mix.mixdb/"] +COPY ["platform/mix.database/mix.database.csproj", "platform/mix.database/"] +COPY ["platform/mix.shared/mix.shared.csproj", "platform/mix.shared/"] +COPY ["platform/core/mix-heart/src/mix.heart/mix.heart.csproj", "platform/core/mix-heart/src/mix.heart/"] +COPY ["platform/mix.constant/mix.constant.csproj", "platform/mix.constant/"] +COPY ["platform/mix.service/mix.service.csproj", "platform/mix.service/"] +COPY ["platform/mix.identity/mix.identity.csproj", "platform/mix.identity/"] +COPY ["platform/mix.auth/mix.auth.csproj", "platform/mix.auth/"] +COPY ["platform/mix.quartz/mix.quartz.csproj", "platform/mix.quartz/"] +COPY ["platform/mix.queue/mix.queue.csproj", "platform/mix.queue/"] +COPY ["services/core/mix-message-queue/mix.mq.server/mix.mq.server.csproj", "services/core/mix-message-queue/mix.mq/"] +COPY ["applications/mixcore.host.aspire.ServiceDefaults/mixcore.host.aspire.ServiceDefaults.csproj", "applications/mixcore.host.aspire.ServiceDefaults/"] +COPY ["services/core/mix-message-queue/mix.mq.lib/mix.mq.lib.csproj", "services/core/mix-message-queue/mix.mq.lib/"] +COPY ["platform/mix.signalr/mix.signalr.csproj", "platform/mix.signalr/"] +COPY ["platform/mix.repodb/mix.repodb.csproj", "platform/mix.repodb/"] +COPY ["platform/mix.communicator/mix.communicator.csproj", "platform/mix.communicator/"] +COPY ["platform/mix.signalr.hub/mix.signalr.hub.csproj", "platform/mix.signalr.hub/"] +COPY ["platform/mix.log/mix.log.lib.csproj", "platform/mix.log/"] +RUN dotnet restore "./applications/mixcore.gateway/mixcore.gateway.csproj" COPY . . WORKDIR "/src/applications/mixcore.gateway" RUN dotnet build "./mixcore.gateway.csproj" -c $BUILD_CONFIGURATION -o /app/build diff --git a/src/applications/mixcore.gateway/Program.cs b/src/applications/mixcore.gateway/Program.cs index 522fa33b2..7ca965d7c 100644 --- a/src/applications/mixcore.gateway/Program.cs +++ b/src/applications/mixcore.gateway/Program.cs @@ -4,6 +4,7 @@ using Mix.Database.Entities.Cms; using Mix.Heart.Services; using Mix.Lib.Helpers; +using Mix.Lib.Services; using Mix.Shared.Services; using Ocelot.DependencyInjection; using Ocelot.Middleware; @@ -36,6 +37,7 @@ builder.Services.AddControllers(); builder.Services.AddMixServices(Assembly.GetExecutingAssembly(), builder.Configuration); builder.Services.AddMixAuthorize(builder.Configuration); +builder.Services.AddScoped(); builder.Services.TryAddSingleton(); builder.Services.AddOcelot(builder.Configuration); // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle diff --git a/src/applications/mixcore.gateway/appsettings.Production.json b/src/applications/mixcore.gateway/appsettings.Production.json new file mode 100644 index 000000000..04f5eda0b --- /dev/null +++ b/src/applications/mixcore.gateway/appsettings.Production.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Critical", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/src/applications/mixcore.gateway/mixcore.gateway.csproj b/src/applications/mixcore.gateway/mixcore.gateway.csproj index 89cde9eea..674fa9c5d 100644 --- a/src/applications/mixcore.gateway/mixcore.gateway.csproj +++ b/src/applications/mixcore.gateway/mixcore.gateway.csproj @@ -22,7 +22,7 @@ - + diff --git a/src/applications/mixcore.gateway/ocelot.json b/src/applications/mixcore.gateway/ocelot.json deleted file mode 100644 index 31aa9590e..000000000 --- a/src/applications/mixcore.gateway/ocelot.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "Routes": [ - { - "Priority": 0, - "DownstreamPathTemplate": "/{everything}", - "DownstreamScheme": "https", - "DownstreamHostAndPorts": [ - { - "Host": "localhost", - "Port": 5010 - } - ], - "UpstreamPathTemplate": "/{everything}", - "UpstreamHttpMethod": [ "Get", "Post", "Put", "Patch", "Delete" ], - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 10 - }, - "FileCacheOptions": { - "TtlSeconds": 0, - "Region": "VN" - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": true, - "UseCookieContainer": true, - "UseTracing": true, - "MaxConnectionsPerServer": 20 - } - } - ], - "GlobalConfiguration": { - "BaseUrl": "" - } -} \ No newline at end of file diff --git a/src/applications/mixcore.gateway/ocelot.sample.json b/src/applications/mixcore.gateway/ocelot.sample.json deleted file mode 100644 index 7c583e0ba..000000000 --- a/src/applications/mixcore.gateway/ocelot.sample.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "Routes": [ - { - "Priority": 0, - "DownstreamPathTemplate": "/{everything}", - "DownstreamScheme": "https", - "DownstreamHostAndPorts": [ - { - "Host": "localhost", - "Port": 5010 - } - ], - "UpstreamPathTemplate": "/{everything}", - "UpstreamHttpMethod": [ "Get", "Post", "Put", "Patch", "Delete", "options" ], - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "FileCacheOptions": { - "TtlSeconds": 10, - "Region": "VN" - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": true, - "UseCookieContainer": true, - "UseTracing": true, - "MaxConnectionsPerServer": 20 - } - }, - { - "Priority": 1, - "DownstreamPathTemplate": "/hub/{everything}", - "DownstreamScheme": "ws", - "DownstreamHostAndPorts": [ - { - "Host": "localhost", - "Port": 5010 - } - ], - "UpstreamPathTemplate": "/hub/{everything}", - "UpstreamHttpMethod": [ "Get", "Post", "Put", "Patch", "Delete", "options" ], - "RateLimitOptions": { - "ClientWhitelist": [], - "EnableRateLimiting": true, - "Period": "1s", - "PeriodTimespan": 1, - "Limit": 100 - }, - "FileCacheOptions": { - "TtlSeconds": 10, - "Region": "VN" - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": true, - "UseCookieContainer": true, - "UseTracing": true, - "MaxConnectionsPerServer": 20 - } - } - ], - "GlobalConfiguration": { - "RateLimitOptions": { - "DisableRateLimitHeaders": false, - "QuotaExceededMessage": "Customize Tips!", - "HttpStatusCode": 999, - "ClientIdHeader": "Test" - }, - "HttpHandlerOptions": { - "AllowAutoRedirect": true, - "UseCookieContainer": true, - "UseTracing": true, - "MaxConnectionsPerServer": 20 - }, - "BaseUrl": "https://localhost:7221" - } -} \ No newline at end of file diff --git a/src/applications/mixcore.gateway/p4ps.gateway.csproj b/src/applications/mixcore.gateway/p4ps.gateway.csproj deleted file mode 100644 index 635b3b85c..000000000 --- a/src/applications/mixcore.gateway/p4ps.gateway.csproj +++ /dev/null @@ -1,34 +0,0 @@ - - - - net8.0 - false - true - false - enable - enable - true - mixcore.gateway - bbdd7c53-6dfa-4f6f-ab46-5ecda7005ed0 - Linux - ..\.. - - - - - - - - - - - - - - - - - - - - diff --git a/src/applications/mixcore.gateway/p4ps.gateway.http b/src/applications/mixcore.gateway/p4ps.gateway.http deleted file mode 100644 index 32ea4bf3d..000000000 --- a/src/applications/mixcore.gateway/p4ps.gateway.http +++ /dev/null @@ -1,6 +0,0 @@ -@mixcore.gateway_HostAddress = http://localhost:5025 - -GET {{mixcore.gateway_HostAddress}}/weatherforecast/ -Accept: application/json - -### diff --git a/src/applications/mixcore.host.aspire/mixcore.host.aspire.ServiceDefaults/Extensions.cs b/src/applications/mixcore.host.aspire.ServiceDefaults/Extensions.cs similarity index 100% rename from src/applications/mixcore.host.aspire/mixcore.host.aspire.ServiceDefaults/Extensions.cs rename to src/applications/mixcore.host.aspire.ServiceDefaults/Extensions.cs diff --git a/src/applications/mixcore.host.aspire/mixcore.host.aspire.ServiceDefaults/mixcore.host.aspire.ServiceDefaults.csproj b/src/applications/mixcore.host.aspire.ServiceDefaults/mixcore.host.aspire.ServiceDefaults.csproj similarity index 100% rename from src/applications/mixcore.host.aspire/mixcore.host.aspire.ServiceDefaults/mixcore.host.aspire.ServiceDefaults.csproj rename to src/applications/mixcore.host.aspire.ServiceDefaults/mixcore.host.aspire.ServiceDefaults.csproj diff --git a/src/applications/mixcore.host.aspire/mixcore.host.aspire.AppHost/Program.cs b/src/applications/mixcore.host.aspire/mixcore.host.aspire.AppHost/Program.cs deleted file mode 100644 index 1f65b47c9..000000000 --- a/src/applications/mixcore.host.aspire/mixcore.host.aspire.AppHost/Program.cs +++ /dev/null @@ -1,10 +0,0 @@ -var builder = DistributedApplication.CreateBuilder(args); - -//var mixmq = builder.AddProject("mix.mq.server"); - -var mixcore = builder.AddProject("mixcore"); - -//builder.AddProject("mix.auth.api"); -builder.AddProject("mixcore.gateway"); - -builder.Build().Run(); diff --git a/src/applications/mixcore.host.aspire/mixcore.host.aspire.AppHost/Properties/launchSettings.json b/src/applications/mixcore.host.aspire/mixcore.host.aspire.AppHost/Properties/launchSettings.json deleted file mode 100644 index 606cc3684..000000000 --- a/src/applications/mixcore.host.aspire/mixcore.host.aspire.AppHost/Properties/launchSettings.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "$schema": "http://json.schemastore.org/launchsettings.json", - "profiles": { - "https": { - "commandName": "Project", - "dotnetRunMessages": true, - "launchBrowser": true, - "applicationUrl": "https://localhost:15173", - "environmentVariables": { - "ASPNETCORE_ENVIRONMENT": "Development", - "DOTNET_ENVIRONMENT": "Development", - "DOTNET_DASHBOARD_OTLP_ENDPOINT_URL": "http://localhost:16178" - } - } - } -} diff --git a/src/applications/mixcore.host.aspire/mixcore.host.aspire.AppHost/mixcore.host.aspire.AppHost.csproj b/src/applications/mixcore.host.aspire/mixcore.host.aspire.AppHost/mixcore.host.aspire.AppHost.csproj deleted file mode 100644 index 61bf092d4..000000000 --- a/src/applications/mixcore.host.aspire/mixcore.host.aspire.AppHost/mixcore.host.aspire.AppHost.csproj +++ /dev/null @@ -1,22 +0,0 @@ - - - - Exe - net8.0 - enable - enable - true - - - - - - - - - - - - - - diff --git a/src/applications/mixcore.host.aspire/mixcore.host.aspire.AppHost/p4ps.host.aspire.AppHost.csproj b/src/applications/mixcore.host.aspire/mixcore.host.aspire.AppHost/p4ps.host.aspire.AppHost.csproj deleted file mode 100644 index 06ddcba50..000000000 --- a/src/applications/mixcore.host.aspire/mixcore.host.aspire.AppHost/p4ps.host.aspire.AppHost.csproj +++ /dev/null @@ -1,28 +0,0 @@ - - - - Exe - net8.0 - enable - enable - true - - - - - - - - - - - - - - - - - - - - diff --git a/src/applications/mixcore.host.aspire/mixcore.host.aspire.ServiceDefaults/p4ps.host.aspire.ServiceDefaults.csproj b/src/applications/mixcore.host.aspire/mixcore.host.aspire.ServiceDefaults/p4ps.host.aspire.ServiceDefaults.csproj deleted file mode 100644 index a398224f1..000000000 --- a/src/applications/mixcore.host.aspire/mixcore.host.aspire.ServiceDefaults/p4ps.host.aspire.ServiceDefaults.csproj +++ /dev/null @@ -1,30 +0,0 @@ - - - - Library - net8.0 - enable - enable - true - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/applications/mixcore/Domain/Services/MixNavigationService.cs b/src/applications/mixcore/Domain/Services/MixNavigationService.cs index 20bad4777..7e6803978 100644 --- a/src/applications/mixcore/Domain/Services/MixNavigationService.cs +++ b/src/applications/mixcore/Domain/Services/MixNavigationService.cs @@ -14,7 +14,7 @@ public MixNavigationService(MixCmsContext context) public Task GetNavigationAsync(string name, string culture, IUrlHelper Url) { - // TODO: Update get nav + // TODO: PUT get nav return default; } } diff --git a/src/applications/mixcore/Domain/StartupServices.cs b/src/applications/mixcore/Domain/StartupServices.cs index 43583d127..fcf8ab1d6 100644 --- a/src/applications/mixcore/Domain/StartupServices.cs +++ b/src/applications/mixcore/Domain/StartupServices.cs @@ -1,4 +1,4 @@ -using Microsoft.Extensions.DependencyInjection.Extensions; +using Microsoft.Extensions.DependencyInjection.Extensions; using Mix.Lib.Middlewares; using Mix.Lib.Publishers; using Mix.Lib.Subscribers; @@ -7,7 +7,6 @@ using Mix.Log.Lib.Publishers; using Mix.Log.Lib.Services; using Mix.Log.Lib.Subscribers; -using Mix.Quartz.Interfaces; using Mix.Quartz.Services; using Mix.RepoDb.Publishers; using Mix.RepoDb.Subscribers; @@ -34,7 +33,7 @@ public void AddServices(IServiceCollection services, IConfiguration configuratio services.AddHostedService(); services.AddHostedService(); - services.AddMixQuartzServices(configuration); + services.AddHostedService(); services.AddHostedService(); if (!globalConfigs!.IsInit) @@ -49,11 +48,8 @@ public void AddServices(IServiceCollection services, IConfiguration configuratio public void UseApps(IApplicationBuilder app, IConfiguration configuration, bool isDevelop) { - var globalConfigs = configuration.GetSection(MixAppSettingsSection.GlobalSettings).Get()!; - if (!globalConfigs!.IsInit) - { - app.UseMiddleware(); - } + // auditlog middleware must go after auth + app.UseMiddleware(); app.UseMixRateLimiter(); } diff --git a/src/applications/mixcore/Program.cs b/src/applications/mixcore/Program.cs index 2da9e604e..77868e8b3 100644 --- a/src/applications/mixcore/Program.cs +++ b/src/applications/mixcore/Program.cs @@ -4,6 +4,7 @@ using System.Text.Encodings.Web; using System.Text.Unicode; using Mix.Log.Lib; +using Mix.Lib.Middlewares; using Mix.Shared.Models.Configurations; using Mix.Queue.Extensions; using Mix.Lib.Services; @@ -13,106 +14,119 @@ using Mix.RepoDb.Publishers; using Mix.RepoDb.Subscribers; using Mix.Storage.Lib.Subscribers; +using Mix.Log.Lib.Publishers; using Mix.Log.Lib.Interfaces; using Mix.Log.Lib.Services; using Mix.Log.Lib.Models; -using Mix.Log.Lib.Publishers; -var builder = MixCmsHelper.CreateWebApplicationBuilder(args); - -if (builder.Environment.IsDevelopment()) +internal class Program { - builder.AddServiceDefaults(); -} -// Add services to the container. -builder.Services.AddControllersWithViews(); - - -builder.Services.AddWebEncoders(options => -{ - options.TextEncoderSettings = new TextEncoderSettings(UnicodeRanges.All); -}); -var globalConfig = builder.Configuration.GetSection(MixAppSettingsSection.GlobalSettings) - .Get(); -builder.Services.AddEndpointsApiExplorer(); -builder.AddMixQueue(); -builder.Services.AddMixServices(Assembly.GetExecutingAssembly(), builder.Configuration); - -builder.Services.ApplyMigrations(globalConfig); -builder.Services.AddMixCors(); -builder.Services.AddScoped(); -builder.Services.AddMixLogSubscriber(builder.Configuration); -builder.Services.AddMixAuthorize(builder.Configuration); - -builder.Services.TryAddScoped(); - -AddPortalServices(builder.Services, builder.Configuration); -var app = builder.Build(); - -Configure(app, builder.Environment, builder.Configuration); - -app.Run(); - - -void Configure(IApplicationBuilder app, IWebHostEnvironment env, IConfiguration configuration) -{ - if (!env.IsDevelopment()) + private static void Main(string[] args) { - // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. - app.UseHsts(); + var builder = MixCmsHelper.CreateWebApplicationBuilder(args); + + if (builder.Environment.IsDevelopment()) + { + builder.AddServiceDefaults(); + } + // Add services to the container. + builder.Services.AddControllersWithViews(); + + + builder.Services.AddWebEncoders(options => + { + options.TextEncoderSettings = new TextEncoderSettings(UnicodeRanges.All); + }); + var globalConfig = builder.Configuration.GetSection(MixAppSettingsSection.GlobalSettings) + .Get(); + builder.Services.AddEndpointsApiExplorer(); + builder.AddMixQueue(); + builder.Services.AddMixServices(Assembly.GetExecutingAssembly(), builder.Configuration); + builder.AddMixLogPublisher(); + builder.Services.ApplyMigrations(globalConfig); + builder.Services.AddMixCors(); + builder.Services.AddScoped(); + builder.Services.AddMixLogSubscriber(builder.Configuration); + builder.Services.AddMixAuthorize(builder.Configuration); + builder.Services.AddScoped(); + builder.Services.TryAddScoped(); + + AddPortalServices(builder.Services, builder.Configuration); + var app = builder.Build(); + + if (builder.Environment.IsDevelopment()) + { + app.MapDefaultEndpoints(); + } + + Configure(app, builder.Environment, builder.Configuration); + + app.Run(); + + + void Configure(IApplicationBuilder app, IWebHostEnvironment env, IConfiguration configuration) + { + if (!env.IsDevelopment()) + { + // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. + app.UseHsts(); + } + app.UseHttpsRedirection(); + app.UseMixTenant(); + app.UseRouting(); + + // Typically, UseStaticFiles is called before UseCors. Apps that use JavaScript to retrieve static files cross site must call UseCors before UseStaticFiles. + app.UseMixStaticFiles(env.ContentRootPath); + + + // UseCors must be placed after UseRouting and before UseAuthorization. This is to ensure that CORS headers are included in the response for both authorized and unauthorized calls. + app.UseMixCors(); + + // must go between app.UseRouting() and app.UseEndpoints. + app.UseMixAuth(); + // auditlog middleware must go after auth + app.UseMiddleware(); + app.UseMixRateLimiter(); + app.UseMixApps(Assembly.GetExecutingAssembly(), configuration, env.ContentRootPath, env.IsDevelopment()); + app.UseMixSwaggerApps(env.IsDevelopment(), Assembly.GetExecutingAssembly()); + app.UseResponseCompression(); + app.UseMixResponseCaching(); + + + + //if (GlobalConfigService.Instance.AppSettings.IsHttps) + //{ + // app.UseHttpsRedirection(); + //} + + + } + + void AddPortalServices(IServiceCollection services, IConfiguration configuration) + { + var globalConfigs = configuration.GetSection(MixAppSettingsSection.GlobalSettings).Get()!; + services.AddMixRoutes(); + + services.AddHostedService(); + services.AddHostedService(); + services.AddHostedService(); + services.AddHostedService(); + + services.AddHostedService(); + services.AddHostedService(); + services.AddHostedService(); + services.AddHostedService(); + + services.AddHostedService(); + services.AddHostedService(); + + if (!globalConfigs!.IsInit) + { + services.TryAddSingleton(); + services.TryAddScoped(); + services.AddHostedService(); + } + + services.AddMixRateLimiter(configuration); + } } - app.UseHttpsRedirection(); - app.UseMixTenant(); - - app.UseRouting(); - - // Typically, UseStaticFiles is called before UseCors. Apps that use JavaScript to retrieve static files cross site must call UseCors before UseStaticFiles. - app.UseMixStaticFiles(env.ContentRootPath); - - - // UseCors must be placed after UseRouting and before UseAuthorization. This is to ensure that CORS headers are included in the response for both authorized and unauthorized calls. - app.UseMixCors(); - - // must go between app.UseRouting() and app.UseEndpoints. - app.UseMixAuth(); - - app.UseMixApps(Assembly.GetExecutingAssembly(), configuration, env.ContentRootPath, env.IsDevelopment()); - app.UseMixSwaggerApps(env.IsDevelopment(), Assembly.GetExecutingAssembly()); - app.UseResponseCompression(); - app.UseMixResponseCaching(); - - - - //if (GlobalConfigService.Instance.AppSettings.IsHttps) - //{ - // app.UseHttpsRedirection(); - //} - - -} - -void AddPortalServices(IServiceCollection services, IConfiguration configuration) -{ - var globalConfigs = configuration.GetSection(MixAppSettingsSection.GlobalSettings).Get()!; - services.AddMixRoutes(); - - services.AddHostedService(); - services.AddHostedService(); - services.AddHostedService(); - services.AddHostedService(); - - services.AddHostedService(); - services.AddHostedService(); - services.AddHostedService(); - services.AddHostedService(); - - services.AddHostedService(); - services.AddHostedService(); - - if (!globalConfigs!.IsInit) - { - services.TryAddSingleton(); - services.TryAddScoped(); - services.AddHostedService(); - } - -} +} \ No newline at end of file diff --git a/src/applications/mixcore/mixcore.csproj b/src/applications/mixcore/mixcore.csproj index 78e46e6be..7b6801c19 100644 --- a/src/applications/mixcore/mixcore.csproj +++ b/src/applications/mixcore/mixcore.csproj @@ -15,7 +15,6 @@ - @@ -26,6 +25,7 @@ + diff --git a/src/applications/mixcore/wwwroot/mix-app/js/app-portal-required.min.js b/src/applications/mixcore/wwwroot/mix-app/js/app-portal-required.min.js index f6039aaaf..97a10ce8e 100644 --- a/src/applications/mixcore/wwwroot/mix-app/js/app-portal-required.min.js +++ b/src/applications/mixcore/wwwroot/mix-app/js/app-portal-required.min.js @@ -1 +1 @@ -/* Wed Dec 27 2023 13:30:21 GMT+0700 (Indochina Time) */!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],i=Object.getPrototypeOf,o=n.slice,r=n.flat?function(e){return n.flat.call(e)}:function(e){return n.concat.apply([],e)},s=n.push,a=n.indexOf,l={},u=l.toString,c=l.hasOwnProperty,d=c.toString,f=d.call(Object),h={},p=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},g=function(e){return null!=e&&e===e.window},m=e.document,b={type:!0,src:!0,nonce:!0,noModule:!0};function x(e,t,n){var i,o,r=(n=n||m).createElement("script");if(r.text=e,t)for(i in b)(o=t[i]||t.getAttribute&&t.getAttribute(i))&&r.setAttribute(i,o);n.head.appendChild(r).parentNode.removeChild(r)}function v(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[u.call(e)]||"object":typeof e}var y="3.7.1",_=/HTML$/i,F=function(e,t){return new F.fn.init(e,t)};function w(e){var t=!!e&&"length"in e&&e.length,n=v(e);return!p(e)&&!g(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+T+")"+T+"*"),$=new RegExp(T+"|>"),z=new RegExp(M),q=new RegExp("^"+N+"$"),W={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N+"|[*])"),ATTR:new RegExp("^"+B),PSEUDO:new RegExp("^"+M),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+T+"*(even|odd|(([+-]|)(\\d*)n|)"+T+"*(?:([+-]|)"+T+"*(\\d+)|))"+T+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+T+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+T+"*((?:-\\d)?\\d*)"+T+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,U=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,V=/[+~]/,K=new RegExp("\\\\[\\da-fA-F]{1,6}"+T+"?|\\\\([^\\r\\n\\f])","g"),Q=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},Y=function(){le()},J=fe(function(e){return!0===e.disabled&&C(e,"fieldset")},{dir:"parentNode",next:"legend"});try{m.apply(n=o.call(j.childNodes),j.childNodes),n[j.childNodes.length].nodeType}catch(t){m={apply:function(e,t){P.apply(e,o.call(t))},call:function(e){P.apply(e,o.call(arguments,1))}}}function Z(e,t,n,i){var o,r,s,a,l,c,d,g=t&&t.ownerDocument,x=t?t.nodeType:9;if(n=n||[],"string"!=typeof e||!e||1!==x&&9!==x&&11!==x)return n;if(!i&&(le(t),t=t||u,f)){if(11!==x&&(l=U.exec(e)))if(o=l[1]){if(9===x){if(!(s=t.getElementById(o)))return n;if(s.id===o)return m.call(n,s),n}else if(g&&(s=g.getElementById(o))&&Z.contains(t,s)&&s.id===o)return m.call(n,s),n}else{if(l[2])return m.apply(n,t.getElementsByTagName(e)),n;if((o=l[3])&&t.getElementsByClassName)return m.apply(n,t.getElementsByClassName(o)),n}if(!(S[e+" "]||p&&p.test(e))){if(d=e,g=t,1===x&&($.test(e)||H.test(e))){for((g=V.test(e)&&ae(t.parentNode)||t)==t&&h.scope||((a=t.getAttribute("id"))?a=F.escapeSelector(a):t.setAttribute("id",a=b)),r=(c=ce(e)).length;r--;)c[r]=(a?"#"+a:":scope")+" "+de(c[r]);d=c.join(",")}try{return m.apply(n,g.querySelectorAll(d)),n}catch(t){S(e,!0)}finally{a===b&&t.removeAttribute("id")}}}return xe(e.replace(O,"$1"),t,n,i)}function ee(){var e=[];return function t(n,o){return e.push(n+" ")>i.cacheLength&&delete t[e.shift()],t[n+" "]=o}}function te(e){return e[b]=!0,e}function ne(e){var t=u.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function ie(e){return function(t){return C(t,"input")&&t.type===e}}function oe(e){return function(t){return(C(t,"input")||C(t,"button"))&&t.type===e}}function re(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&J(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function se(e){return te(function(t){return t=+t,te(function(n,i){for(var o,r=e([],n.length,t),s=r.length;s--;)n[o=r[s]]&&(n[o]=!(i[o]=n[o]))})})}function ae(e){return e&&void 0!==e.getElementsByTagName&&e}function le(e){var t,n=e?e.ownerDocument||e:j;return n!=u&&9===n.nodeType&&n.documentElement&&(d=(u=n).documentElement,f=!F.isXMLDoc(u),g=d.matches||d.webkitMatchesSelector||d.msMatchesSelector,d.msMatchesSelector&&j!=u&&(t=u.defaultView)&&t.top!==t&&t.addEventListener("unload",Y),h.getById=ne(function(e){return d.appendChild(e).id=F.expando,!u.getElementsByName||!u.getElementsByName(F.expando).length}),h.disconnectedMatch=ne(function(e){return g.call(e,"*")}),h.scope=ne(function(){return u.querySelectorAll(":scope")}),h.cssHas=ne(function(){try{return u.querySelector(":has(*,:jqfake)"),!1}catch(e){return!0}}),h.getById?(i.filter.ID=function(e){var t=e.replace(K,Q);return function(e){return e.getAttribute("id")===t}},i.find.ID=function(e,t){if(void 0!==t.getElementById&&f){var n=t.getElementById(e);return n?[n]:[]}}):(i.filter.ID=function(e){var t=e.replace(K,Q);return function(e){var n=void 0!==e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},i.find.ID=function(e,t){if(void 0!==t.getElementById&&f){var n,i,o,r=t.getElementById(e);if(r){if((n=r.getAttributeNode("id"))&&n.value===e)return[r];for(o=t.getElementsByName(e),i=0;r=o[i++];)if((n=r.getAttributeNode("id"))&&n.value===e)return[r]}return[]}}),i.find.TAG=function(e,t){return void 0!==t.getElementsByTagName?t.getElementsByTagName(e):t.querySelectorAll(e)},i.find.CLASS=function(e,t){if(void 0!==t.getElementsByClassName&&f)return t.getElementsByClassName(e)},p=[],ne(function(e){var t;d.appendChild(e).innerHTML="",e.querySelectorAll("[selected]").length||p.push("\\["+T+"*(?:value|"+L+")"),e.querySelectorAll("[id~="+b+"-]").length||p.push("~="),e.querySelectorAll("a#"+b+"+*").length||p.push(".#.+[+~]"),e.querySelectorAll(":checked").length||p.push(":checked"),(t=u.createElement("input")).setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),d.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&p.push(":enabled",":disabled"),(t=u.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||p.push("\\["+T+"*name"+T+"*="+T+"*(?:''|\"\")")}),h.cssHas||p.push(":has"),p=p.length&&new RegExp(p.join("|")),D=function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!h.sortDetached&&t.compareDocumentPosition(e)===n?e===u||e.ownerDocument==j&&Z.contains(j,e)?-1:t===u||t.ownerDocument==j&&Z.contains(j,t)?1:s?a.call(s,e)-a.call(s,t):0:4&n?-1:1)}),u}for(t in Z.matches=function(e,t){return Z(e,null,null,t)},Z.matchesSelector=function(e,t){if(le(e),f&&!S[t+" "]&&(!p||!p.test(t)))try{var n=g.call(e,t);if(n||h.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){S(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(K,Q),e[3]=(e[3]||e[4]||e[5]||"").replace(K,Q),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||Z.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&Z.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return W.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&z.test(n)&&(t=ce(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(K,Q).toLowerCase();return"*"===e?function(){return!0}:function(e){return C(e,t)}},CLASS:function(e){var t=y[e+" "];return t||(t=new RegExp("(^|"+T+")"+e+"("+T+"|$)"))&&y(e,function(e){return t.test("string"==typeof e.className&&e.className||void 0!==e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(i){var o=Z.attr(i,e);return null==o?"!="===t:!t||(o+="","="===t?o===n:"!="===t?o!==n:"^="===t?n&&0===o.indexOf(n):"*="===t?n&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function I(e,t,n){return p(t)?F.grep(e,function(e,i){return!!t.call(e,i,e)!==n}):t.nodeType?F.grep(e,function(e){return e===t!==n}):"string"!=typeof t?F.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(F.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||R,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:H.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof F?t[0]:t,F.merge(this,F.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:m,!0)),M.test(i[1])&&F.isPlainObject(t))for(i in t)p(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=m.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):p(e)?void 0!==n.ready?n.ready(e):e(F):F.makeArray(e,this)}).prototype=F.fn,R=F(m);var $=/^(?:parents|prev(?:Until|All))/,z={children:!0,contents:!0,next:!0,prev:!0};function q(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}F.fn.extend({has:function(e){var t=F(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,we=/^$|^module$|\/(?:java|ecma)script/i;ve=m.createDocumentFragment().appendChild(m.createElement("div")),(ye=m.createElement("input")).setAttribute("type","radio"),ye.setAttribute("checked","checked"),ye.setAttribute("name","t"),ve.appendChild(ye),h.checkClone=ve.cloneNode(!0).cloneNode(!0).lastChild.checked,ve.innerHTML="",h.noCloneChecked=!!ve.cloneNode(!0).lastChild.defaultValue,ve.innerHTML="",h.option=!!ve.lastChild;var Ce={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function Ee(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&C(e,t)?F.merge([e],n):n}function Ae(e,t){for(var n=0,i=e.length;n",""]);var ke=/<|&#?\w+;/;function Te(e,t,n,i,o){for(var r,s,a,l,u,c,d=t.createDocumentFragment(),f=[],h=0,p=e.length;h\s*$/g;function Me(e,t){return C(e,"table")&&C(11!==t.nodeType?t:t.firstChild,"tr")&&F(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function He(e,t){var n,i,o,r,s,a;if(1===t.nodeType){if(oe.hasData(e)&&(a=oe.get(e).events))for(o in oe.remove(t,"handle events"),a)for(n=0,i=a[o].length;n").attr(e.scriptAttrs||{}).prop({charset:e.scriptCharset,src:e.url}).on("load error",n=function(e){t.remove(),n=null,e&&o("error"===e.type?404:200,e.type)}),m.head.appendChild(t[0])},abort:function(){n&&n()}}});var Yt,Jt=[],Zt=/(=)\?(?=&|$)|\?\?/;F.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Jt.pop()||F.expando+"_"+kt.guid++;return this[e]=!0,e}}),F.ajaxPrefilter("json jsonp",function(t,n,i){var o,r,s,a=!1!==t.jsonp&&(Zt.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(t.data)&&"data");if(a||"jsonp"===t.dataTypes[0])return o=t.jsonpCallback=p(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,a?t[a]=t[a].replace(Zt,"$1"+o):!1!==t.jsonp&&(t.url+=(Tt.test(t.url)?"&":"?")+t.jsonp+"="+o),t.converters["script json"]=function(){return s||F.error(o+" was not called"),s[0]},t.dataTypes[0]="json",r=e[o],e[o]=function(){s=arguments},i.always(function(){void 0===r?F(e).removeProp(o):e[o]=r,t[o]&&(t.jsonpCallback=n.jsonpCallback,Jt.push(o)),s&&p(r)&&r(s[0]),s=r=void 0}),"script"}),h.createHTMLDocument=((Yt=m.implementation.createHTMLDocument("").body).innerHTML="
",2===Yt.childNodes.length),F.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(h.createHTMLDocument?((i=(t=m.implementation.createHTMLDocument("")).createElement("base")).href=m.location.href,t.head.appendChild(i)):t=m),r=!n&&[],(o=M.exec(e))?[t.createElement(o[1])]:(o=Te([e],t,r),r&&r.length&&F(r).remove(),F.merge([],o.childNodes)));var i,o,r},F.fn.load=function(e,t,n){var i,o,r,s=this,a=e.indexOf(" ");return-1").append(F.parseHTML(e)).find(i):e)}).always(n&&function(e,t){s.each(function(){n.apply(this,r||[e.responseText,t,e])})}),this},F.expr.pseudos.animated=function(e){return F.grep(F.timers,function(t){return e===t.elem}).length},F.offset={setOffset:function(e,t,n){var i,o,r,s,a,l,u=F.css(e,"position"),c=F(e),d={};"static"===u&&(e.style.position="relative"),a=c.offset(),r=F.css(e,"top"),l=F.css(e,"left"),("absolute"===u||"fixed"===u)&&-1<(r+l).indexOf("auto")?(s=(i=c.position()).top,o=i.left):(s=parseFloat(r)||0,o=parseFloat(l)||0),p(t)&&(t=t.call(e,n,F.extend({},a))),null!=t.top&&(d.top=t.top-a.top+s),null!=t.left&&(d.left=t.left-a.left+o),"using"in t?t.using.call(e,d):c.css(d)}},F.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){F.offset.setOffset(this,e,t)});var t,n,i=this[0];return i?i.getClientRects().length?(t=i.getBoundingClientRect(),n=i.ownerDocument.defaultView,{top:t.top+n.pageYOffset,left:t.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,i=this[0],o={top:0,left:0};if("fixed"===F.css(i,"position"))t=i.getBoundingClientRect();else{for(t=this.offset(),n=i.ownerDocument,e=i.offsetParent||n.documentElement;e&&(e===n.body||e===n.documentElement)&&"static"===F.css(e,"position");)e=e.parentNode;e&&e!==i&&1===e.nodeType&&((o=F(e).offset()).top+=F.css(e,"borderTopWidth",!0),o.left+=F.css(e,"borderLeftWidth",!0))}return{top:t.top-o.top-F.css(i,"marginTop",!0),left:t.left-o.left-F.css(i,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&"static"===F.css(e,"position");)e=e.offsetParent;return e||fe})}}),F.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n="pageYOffset"===t;F.fn[e]=function(i){return Y(this,function(e,i,o){var r;if(g(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===o)return r?r[t]:e[i];r?r.scrollTo(n?r.pageXOffset:o,n?o:r.pageYOffset):e[i]=o},e,i,arguments.length)}}),F.each(["top","left"],function(e,t){F.cssHooks[t]=Ke(h.pixelPosition,function(e,n){if(n)return n=Ve(e,t),qe.test(n)?F(e).position()[t]+"px":n})}),F.each({Height:"height",Width:"width"},function(e,t){F.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,i){F.fn[i]=function(o,r){var s=arguments.length&&(n||"boolean"!=typeof o),a=n||(!0===o||!0===r?"margin":"border");return Y(this,function(t,n,o){var r;return g(t)?0===i.indexOf("outer")?t["inner"+e]:t.document.documentElement["client"+e]:9===t.nodeType?(r=t.documentElement,Math.max(t.body["scroll"+e],r["scroll"+e],t.body["offset"+e],r["offset"+e],r["client"+e])):void 0===o?F.css(t,n,a):F.style(t,n,o,a)},t,s?o:void 0,s)}})}),F.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){F.fn[t]=function(e){return this.on(t,e)}}),F.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,i){return this.on(t,e,n,i)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.on("mouseenter",e).on("mouseleave",t||e)}}),F.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){F.fn[t]=function(e,n){return 0e[n]})}return t.default=e,Object.freeze(t)}(e),n=new Map,i={set(e,t,i){n.has(e)||n.set(e,new Map);const o=n.get(e);o.has(t)||0===o.size?o.set(t,i):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(o.keys())[0]}.`)},get:(e,t)=>n.has(e)&&n.get(e).get(t)||null,remove(e,t){if(!n.has(e))return;const i=n.get(e);i.delete(t),0===i.size&&n.delete(e)}},o="transitionend",r=e=>(e&&window.CSS&&window.CSS.escape&&(e=e.replace(/#([^\s"#']+)/g,(e,t)=>"#"+CSS.escape(t))),e),s=e=>{e.dispatchEvent(new Event(o))},a=e=>!(!e||"object"!=typeof e)&&(void 0!==e.jquery&&(e=e[0]),void 0!==e.nodeType),l=e=>a(e)?e.jquery?e[0]:e:"string"==typeof e&&e.length>0?document.querySelector(r(e)):null,u=e=>{if(!a(e)||0===e.getClientRects().length)return!1;const t="visible"===getComputedStyle(e).getPropertyValue("visibility"),n=e.closest("details:not([open])");if(!n)return t;if(n!==e){const t=e.closest("summary");if(t&&t.parentNode!==n)return!1;if(null===t)return!1}return t},c=e=>!e||e.nodeType!==Node.ELEMENT_NODE||!!e.classList.contains("disabled")||(void 0!==e.disabled?e.disabled:e.hasAttribute("disabled")&&"false"!==e.getAttribute("disabled")),d=e=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){const t=e.getRootNode();return t instanceof ShadowRoot?t:null}return e instanceof ShadowRoot?e:e.parentNode?d(e.parentNode):null},f=()=>{},h=e=>{e.offsetHeight},p=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,g=[],m=()=>"rtl"===document.documentElement.dir,b=e=>{var t;t=(()=>{const t=p();if(t){const n=e.NAME,i=t.fn[n];t.fn[n]=e.jQueryInterface,t.fn[n].Constructor=e,t.fn[n].noConflict=(()=>(t.fn[n]=i,e.jQueryInterface))}}),"loading"===document.readyState?(g.length||document.addEventListener("DOMContentLoaded",()=>{for(const e of g)e()}),g.push(t)):t()},x=(e,t=[],n=e)=>"function"==typeof e?e(...t):n,v=(e,t,n=!0)=>{if(!n)return void x(e);const i=(e=>{if(!e)return 0;let{transitionDuration:t,transitionDelay:n}=window.getComputedStyle(e);const i=Number.parseFloat(t),o=Number.parseFloat(n);return i||o?(t=t.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(t)+Number.parseFloat(n))):0})(t)+5;let r=!1;const a=({target:n})=>{n===t&&(r=!0,t.removeEventListener(o,a),x(e))};t.addEventListener(o,a),setTimeout(()=>{r||s(t)},i)},y=(e,t,n,i)=>{const o=e.length;let r=e.indexOf(t);return-1===r?!n&&i?e[o-1]:e[0]:(r+=n?1:-1,i&&(r=(r+o)%o),e[Math.max(0,Math.min(r,o-1))])},_=/[^.]*(?=\..*)\.|.*/,F=/\..*/,w=/::\d+$/,C={};let E=1;const A={mouseenter:"mouseover",mouseleave:"mouseout"},k=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function T(e,t){return t&&`${t}::${E++}`||e.uidEvent||E++}function O(e){const t=T(e);return e.uidEvent=t,C[t]=C[t]||{},C[t]}function S(e,t,n=null){return Object.values(e).find(e=>e.callable===t&&e.delegationSelector===n)}function D(e,t,n){const i="string"==typeof t,o=i?n:t||n;let r=N(e);return k.has(r)||(r=e),[i,o,r]}function j(e,t,n,i,o){if("string"!=typeof t||!e)return;let[r,s,a]=D(t,n,i);t in A&&(s=(e=>(function(t){if(!t.relatedTarget||t.relatedTarget!==t.delegateTarget&&!t.delegateTarget.contains(t.relatedTarget))return e.call(this,t)}))(s));const l=O(e),u=l[a]||(l[a]={}),c=S(u,s,r?n:null);if(c)return void(c.oneOff=c.oneOff&&o);const d=T(s,t.replace(_,"")),f=r?function(e,t,n){return function i(o){const r=e.querySelectorAll(t);for(let{target:s}=o;s&&s!==this;s=s.parentNode)for(const a of r)if(a===s)return M(o,{delegateTarget:s}),i.oneOff&&B.off(e,o.type,t,n),n.apply(s,[o])}}(e,n,s):function(e,t){return function n(i){return M(i,{delegateTarget:e}),n.oneOff&&B.off(e,i.type,t),t.apply(e,[i])}}(e,s);f.delegationSelector=r?n:null,f.callable=s,f.oneOff=o,f.uidEvent=d,u[d]=f,e.addEventListener(a,f,r)}function P(e,t,n,i,o){const r=S(t[n],i,o);r&&(e.removeEventListener(n,r,Boolean(o)),delete t[n][r.uidEvent])}function L(e,t,n,i){const o=t[n]||{};for(const[r,s]of Object.entries(o))r.includes(i)&&P(e,t,n,s.callable,s.delegationSelector)}function N(e){return e=e.replace(F,""),A[e]||e}const B={on(e,t,n,i){j(e,t,n,i,!1)},one(e,t,n,i){j(e,t,n,i,!0)},off(e,t,n,i){if("string"!=typeof t||!e)return;const[o,r,s]=D(t,n,i),a=s!==t,l=O(e),u=l[s]||{},c=t.startsWith(".");if(void 0===r){if(c)for(const n of Object.keys(l))L(e,l,n,t.slice(1));for(const[n,i]of Object.entries(u)){const o=n.replace(w,"");a&&!t.includes(o)||P(e,l,s,i.callable,i.delegationSelector)}}else{if(!Object.keys(u).length)return;P(e,l,s,r,o?n:null)}},trigger(e,t,n){if("string"!=typeof t||!e)return null;const i=p();let o=null,r=!0,s=!0,a=!1;t!==N(t)&&i&&(o=i.Event(t,n),i(e).trigger(o),r=!o.isPropagationStopped(),s=!o.isImmediatePropagationStopped(),a=o.isDefaultPrevented());const l=M(new Event(t,{bubbles:r,cancelable:!0}),n);return a&&l.preventDefault(),s&&e.dispatchEvent(l),l.defaultPrevented&&o&&o.preventDefault(),l}};function M(e,t={}){for(const[n,i]of Object.entries(t))try{e[n]=i}catch(t){Object.defineProperty(e,n,{configurable:!0,get:()=>i})}return e}function I(e){if("true"===e)return!0;if("false"===e)return!1;if(e===Number(e).toString())return Number(e);if(""===e||"null"===e)return null;if("string"!=typeof e)return e;try{return JSON.parse(decodeURIComponent(e))}catch(t){return e}}function R(e){return e.replace(/[A-Z]/g,e=>"-"+e.toLowerCase())}const H={setDataAttribute(e,t,n){e.setAttribute("data-bs-"+R(t),n)},removeDataAttribute(e,t){e.removeAttribute("data-bs-"+R(t))},getDataAttributes(e){if(!e)return{};const t={},n=Object.keys(e.dataset).filter(e=>e.startsWith("bs")&&!e.startsWith("bsConfig"));for(const i of n){let n=i.replace(/^bs/,"");t[n=n.charAt(0).toLowerCase()+n.slice(1,n.length)]=I(e.dataset[i])}return t},getDataAttribute:(e,t)=>I(e.getAttribute("data-bs-"+R(t)))};class ${static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(e){return e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e}_mergeConfigObj(e,t){const n=a(t)?H.getDataAttribute(t,"config"):{};return{...this.constructor.Default,..."object"==typeof n?n:{},...a(t)?H.getDataAttributes(t):{},..."object"==typeof e?e:{}}}_typeCheckConfig(e,t=this.constructor.DefaultType){for(const[i,o]of Object.entries(t)){const t=e[i],r=a(t)?"element":null==(n=t)?""+n:Object.prototype.toString.call(n).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(o).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${i}" provided type "${r}" but expected type "${o}".`)}var n}}class z extends ${constructor(e,t){super(),(e=l(e))&&(this._element=e,this._config=this._getConfig(t),i.set(this._element,this.constructor.DATA_KEY,this))}dispose(){i.remove(this._element,this.constructor.DATA_KEY),B.off(this._element,this.constructor.EVENT_KEY);for(const e of Object.getOwnPropertyNames(this))this[e]=null}_queueCallback(e,t,n=!0){v(e,t,n)}_getConfig(e){return e=this._mergeConfigObj(e,this._element),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}static getInstance(e){return i.get(l(e),this.DATA_KEY)}static getOrCreateInstance(e,t={}){return this.getInstance(e)||new this(e,"object"==typeof t?t:null)}static get VERSION(){return"5.3.2"}static get DATA_KEY(){return"bs."+this.NAME}static get EVENT_KEY(){return"."+this.DATA_KEY}static eventName(e){return`${e}${this.EVENT_KEY}`}}const q=e=>{let t=e.getAttribute("data-bs-target");if(!t||"#"===t){let n=e.getAttribute("href");if(!n||!n.includes("#")&&!n.startsWith("."))return null;n.includes("#")&&!n.startsWith("#")&&(n="#"+n.split("#")[1]),t=n&&"#"!==n?r(n.trim()):null}return t},W={find:(e,t=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(t,e)),findOne:(e,t=document.documentElement)=>Element.prototype.querySelector.call(t,e),children:(e,t)=>[].concat(...e.children).filter(e=>e.matches(t)),parents(e,t){const n=[];let i=e.parentNode.closest(t);for(;i;)n.push(i),i=i.parentNode.closest(t);return n},prev(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return[n];n=n.previousElementSibling}return[]},next(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return[n];n=n.nextElementSibling}return[]},focusableChildren(e){const t=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map(e=>e+':not([tabindex^="-"])').join(",");return this.find(t,e).filter(e=>!c(e)&&u(e))},getSelectorFromElement(e){const t=q(e);return t&&W.findOne(t)?t:null},getElementFromSelector(e){const t=q(e);return t?W.findOne(t):null},getMultipleElementsFromSelector(e){const t=q(e);return t?W.find(t):[]}},G=(e,t="hide")=>{const n="click.dismiss"+e.EVENT_KEY,i=e.NAME;B.on(document,n,`[data-bs-dismiss="${i}"]`,function(n){if(["A","AREA"].includes(this.tagName)&&n.preventDefault(),c(this))return;const o=W.getElementFromSelector(this)||this.closest("."+i);e.getOrCreateInstance(o)[t]()})};class X extends z{static get NAME(){return"alert"}close(){if(B.trigger(this._element,"close.bs.alert").defaultPrevented)return;this._element.classList.remove("show");const e=this._element.classList.contains("fade");this._queueCallback(()=>this._destroyElement(),this._element,e)}_destroyElement(){this._element.remove(),B.trigger(this._element,"closed.bs.alert"),this.dispose()}static jQueryInterface(e){return this.each(function(){const t=X.getOrCreateInstance(this);if("string"==typeof e){if(void 0===t[e]||e.startsWith("_")||"constructor"===e)throw new TypeError(`No method named "${e}"`);t[e](this)}})}}G(X,"close"),b(X);const U='[data-bs-toggle="button"]';class V extends z{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(e){return this.each(function(){const t=V.getOrCreateInstance(this);"toggle"===e&&t[e]()})}}B.on(document,"click.bs.button.data-api",U,e=>{e.preventDefault();const t=e.target.closest(U);V.getOrCreateInstance(t).toggle()}),b(V);const K=".bs.swipe",Q={endCallback:null,leftCallback:null,rightCallback:null},Y={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class J extends ${constructor(e,t){super(),this._element=e,e&&J.isSupported()&&(this._config=this._getConfig(t),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return Q}static get DefaultType(){return Y}static get NAME(){return"swipe"}dispose(){B.off(this._element,K)}_start(e){this._supportPointerEvents?this._eventIsPointerPenTouch(e)&&(this._deltaX=e.clientX):this._deltaX=e.touches[0].clientX}_end(e){this._eventIsPointerPenTouch(e)&&(this._deltaX=e.clientX-this._deltaX),this._handleSwipe(),x(this._config.endCallback)}_move(e){this._deltaX=e.touches&&e.touches.length>1?0:e.touches[0].clientX-this._deltaX}_handleSwipe(){const e=Math.abs(this._deltaX);if(e<=40)return;const t=e/this._deltaX;this._deltaX=0,t&&x(t>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(B.on(this._element,"pointerdown.bs.swipe",e=>this._start(e)),B.on(this._element,"pointerup.bs.swipe",e=>this._end(e)),this._element.classList.add("pointer-event")):(B.on(this._element,"touchstart.bs.swipe",e=>this._start(e)),B.on(this._element,"touchmove.bs.swipe",e=>this._move(e)),B.on(this._element,"touchend.bs.swipe",e=>this._end(e)))}_eventIsPointerPenTouch(e){return this._supportPointerEvents&&("pen"===e.pointerType||"touch"===e.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const Z=".bs.carousel",ee=".data-api",te="next",ne="prev",ie="left",oe="right",re="slid"+Z,se=`load${Z}${ee}`,ae=`click${Z}${ee}`,le="carousel",ue="active",ce=".active",de=".carousel-item",fe={ArrowLeft:oe,ArrowRight:ie},he={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},pe={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class ge extends z{constructor(e,t){super(e,t),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=W.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===le&&this.cycle()}static get Default(){return he}static get DefaultType(){return pe}static get NAME(){return"carousel"}next(){this._slide(te)}nextWhenVisible(){!document.hidden&&u(this._element)&&this.next()}prev(){this._slide(ne)}pause(){this._isSliding&&s(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval(()=>this.nextWhenVisible(),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?B.one(this._element,re,()=>this.cycle()):this.cycle())}to(e){const t=this._getItems();if(e>t.length-1||e<0)return;if(this._isSliding)return void B.one(this._element,re,()=>this.to(e));const n=this._getItemIndex(this._getActive());if(n===e)return;const i=e>n?te:ne;this._slide(i,t[e])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(e){return e.defaultInterval=e.interval,e}_addEventListeners(){this._config.keyboard&&B.on(this._element,"keydown.bs.carousel",e=>this._keydown(e)),"hover"===this._config.pause&&(B.on(this._element,"mouseenter.bs.carousel",()=>this.pause()),B.on(this._element,"mouseleave.bs.carousel",()=>this._maybeEnableCycle())),this._config.touch&&J.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const e of W.find(".carousel-item img",this._element))B.on(e,"dragstart.bs.carousel",e=>e.preventDefault());const e={leftCallback:()=>this._slide(this._directionToOrder(ie)),rightCallback:()=>this._slide(this._directionToOrder(oe)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(()=>this._maybeEnableCycle(),500+this._config.interval))}};this._swipeHelper=new J(this._element,e)}_keydown(e){if(/input|textarea/i.test(e.target.tagName))return;const t=fe[e.key];t&&(e.preventDefault(),this._slide(this._directionToOrder(t)))}_getItemIndex(e){return this._getItems().indexOf(e)}_setActiveIndicatorElement(e){if(!this._indicatorsElement)return;const t=W.findOne(ce,this._indicatorsElement);t.classList.remove(ue),t.removeAttribute("aria-current");const n=W.findOne(`[data-bs-slide-to="${e}"]`,this._indicatorsElement);n&&(n.classList.add(ue),n.setAttribute("aria-current","true"))}_updateInterval(){const e=this._activeElement||this._getActive();if(!e)return;const t=Number.parseInt(e.getAttribute("data-bs-interval"),10);this._config.interval=t||this._config.defaultInterval}_slide(e,t=null){if(this._isSliding)return;const n=this._getActive(),i=e===te,o=t||y(this._getItems(),n,i,this._config.wrap);if(o===n)return;const r=this._getItemIndex(o),s=t=>B.trigger(this._element,t,{relatedTarget:o,direction:this._orderToDirection(e),from:this._getItemIndex(n),to:r});if(s("slide.bs.carousel").defaultPrevented)return;if(!n||!o)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(r),this._activeElement=o;const l=i?"carousel-item-start":"carousel-item-end",u=i?"carousel-item-next":"carousel-item-prev";o.classList.add(u),h(o),n.classList.add(l),o.classList.add(l),this._queueCallback(()=>{o.classList.remove(l,u),o.classList.add(ue),n.classList.remove(ue,u,l),this._isSliding=!1,s(re)},n,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return W.findOne(".active.carousel-item",this._element)}_getItems(){return W.find(de,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(e){return m()?e===ie?ne:te:e===ie?te:ne}_orderToDirection(e){return m()?e===ne?ie:oe:e===ne?oe:ie}static jQueryInterface(e){return this.each(function(){const t=ge.getOrCreateInstance(this,e);if("number"!=typeof e){if("string"==typeof e){if(void 0===t[e]||e.startsWith("_")||"constructor"===e)throw new TypeError(`No method named "${e}"`);t[e]()}}else t.to(e)})}}B.on(document,ae,"[data-bs-slide], [data-bs-slide-to]",function(e){const t=W.getElementFromSelector(this);if(!t||!t.classList.contains(le))return;e.preventDefault();const n=ge.getOrCreateInstance(t),i=this.getAttribute("data-bs-slide-to");return i?(n.to(i),void n._maybeEnableCycle()):"next"===H.getDataAttribute(this,"slide")?(n.next(),void n._maybeEnableCycle()):(n.prev(),void n._maybeEnableCycle())}),B.on(window,se,()=>{const e=W.find('[data-bs-ride="carousel"]');for(const t of e)ge.getOrCreateInstance(t)}),b(ge);const me="show",be="collapse",xe="collapsing",ve=`:scope .${be} .${be}`,ye='[data-bs-toggle="collapse"]',_e={parent:null,toggle:!0},Fe={parent:"(null|element)",toggle:"boolean"};class we extends z{constructor(e,t){super(e,t),this._isTransitioning=!1,this._triggerArray=[];const n=W.find(ye);for(const e of n){const t=W.getSelectorFromElement(e),n=W.find(t).filter(e=>e===this._element);null!==t&&n.length&&this._triggerArray.push(e)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return _e}static get DefaultType(){return Fe}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let e=[];if(this._config.parent&&(e=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter(e=>e!==this._element).map(e=>we.getOrCreateInstance(e,{toggle:!1}))),e.length&&e[0]._isTransitioning)return;if(B.trigger(this._element,"show.bs.collapse").defaultPrevented)return;for(const t of e)t.hide();const t=this._getDimension();this._element.classList.remove(be),this._element.classList.add(xe),this._element.style[t]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const n="scroll"+(t[0].toUpperCase()+t.slice(1));this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove(xe),this._element.classList.add(be,me),this._element.style[t]="",B.trigger(this._element,"shown.bs.collapse")},this._element,!0),this._element.style[t]=this._element[n]+"px"}hide(){if(this._isTransitioning||!this._isShown())return;if(B.trigger(this._element,"hide.bs.collapse").defaultPrevented)return;const e=this._getDimension();this._element.style[e]=this._element.getBoundingClientRect()[e]+"px",h(this._element),this._element.classList.add(xe),this._element.classList.remove(be,me);for(const e of this._triggerArray){const t=W.getElementFromSelector(e);t&&!this._isShown(t)&&this._addAriaAndCollapsedClass([e],!1)}this._isTransitioning=!0,this._element.style[e]="",this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove(xe),this._element.classList.add(be),B.trigger(this._element,"hidden.bs.collapse")},this._element,!0)}_isShown(e=this._element){return e.classList.contains(me)}_configAfterMerge(e){return e.toggle=Boolean(e.toggle),e.parent=l(e.parent),e}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const e=this._getFirstLevelChildren(ye);for(const t of e){const e=W.getElementFromSelector(t);e&&this._addAriaAndCollapsedClass([t],this._isShown(e))}}_getFirstLevelChildren(e){const t=W.find(ve,this._config.parent);return W.find(e,this._config.parent).filter(e=>!t.includes(e))}_addAriaAndCollapsedClass(e,t){if(e.length)for(const n of e)n.classList.toggle("collapsed",!t),n.setAttribute("aria-expanded",t)}static jQueryInterface(e){const t={};return"string"==typeof e&&/show|hide/.test(e)&&(t.toggle=!1),this.each(function(){const n=we.getOrCreateInstance(this,t);if("string"==typeof e){if(void 0===n[e])throw new TypeError(`No method named "${e}"`);n[e]()}})}}B.on(document,"click.bs.collapse.data-api",ye,function(e){("A"===e.target.tagName||e.delegateTarget&&"A"===e.delegateTarget.tagName)&&e.preventDefault();for(const e of W.getMultipleElementsFromSelector(this))we.getOrCreateInstance(e,{toggle:!1}).toggle()}),b(we);const Ce="dropdown",Ee=".bs.dropdown",Ae=".data-api",ke="ArrowUp",Te="ArrowDown",Oe=`click${Ee}${Ae}`,Se=`keydown${Ee}${Ae}`,De=`keyup${Ee}${Ae}`,je="show",Pe='[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',Le=".dropdown-menu",Ne=m()?"top-end":"top-start",Be=m()?"top-start":"top-end",Me=m()?"bottom-end":"bottom-start",Ie=m()?"bottom-start":"bottom-end",Re=m()?"left-start":"right-start",He=m()?"right-start":"left-start",$e={autoClose:!0,boundary:"clippingParents",display:"dynamic",offset:[0,2],popperConfig:null,reference:"toggle"},ze={autoClose:"(boolean|string)",boundary:"(string|element)",display:"string",offset:"(array|string|function)",popperConfig:"(null|object|function)",reference:"(string|element|object)"};class qe extends z{constructor(e,t){super(e,t),this._popper=null,this._parent=this._element.parentNode,this._menu=W.next(this._element,Le)[0]||W.prev(this._element,Le)[0]||W.findOne(Le,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return $e}static get DefaultType(){return ze}static get NAME(){return Ce}toggle(){return this._isShown()?this.hide():this.show()}show(){if(c(this._element)||this._isShown())return;const e={relatedTarget:this._element};if(!B.trigger(this._element,"show.bs.dropdown",e).defaultPrevented){if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(".navbar-nav"))for(const e of[].concat(...document.body.children))B.on(e,"mouseover",f);this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(je),this._element.classList.add(je),B.trigger(this._element,"shown.bs.dropdown",e)}}hide(){if(c(this._element)||!this._isShown())return;const e={relatedTarget:this._element};this._completeHide(e)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(e){if(!B.trigger(this._element,"hide.bs.dropdown",e).defaultPrevented){if("ontouchstart"in document.documentElement)for(const e of[].concat(...document.body.children))B.off(e,"mouseover",f);this._popper&&this._popper.destroy(),this._menu.classList.remove(je),this._element.classList.remove(je),this._element.setAttribute("aria-expanded","false"),H.removeDataAttribute(this._menu,"popper"),B.trigger(this._element,"hidden.bs.dropdown",e)}}_getConfig(e){if("object"==typeof(e=super._getConfig(e)).reference&&!a(e.reference)&&"function"!=typeof e.reference.getBoundingClientRect)throw new TypeError(Ce.toUpperCase()+': Option "reference" provided type "object" without a required "getBoundingClientRect" method.');return e}_createPopper(){if(void 0===t)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let e=this._element;"parent"===this._config.reference?e=this._parent:a(this._config.reference)?e=l(this._config.reference):"object"==typeof this._config.reference&&(e=this._config.reference);const n=this._getPopperConfig();this._popper=t.createPopper(e,this._menu,n)}_isShown(){return this._menu.classList.contains(je)}_getPlacement(){const e=this._parent;if(e.classList.contains("dropend"))return Re;if(e.classList.contains("dropstart"))return He;if(e.classList.contains("dropup-center"))return"top";if(e.classList.contains("dropdown-center"))return"bottom";const t="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return e.classList.contains("dropup")?t?Be:Ne:t?Ie:Me}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:e}=this._config;return"string"==typeof e?e.split(",").map(e=>Number.parseInt(e,10)):"function"==typeof e?t=>e(t,this._element):e}_getPopperConfig(){const e={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(H.setDataAttribute(this._menu,"popper","static"),e.modifiers=[{name:"applyStyles",enabled:!1}]),{...e,...x(this._config.popperConfig,[e])}}_selectMenuItem({key:e,target:t}){const n=W.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter(e=>u(e));n.length&&y(n,t,e===Te,!n.includes(t)).focus()}static jQueryInterface(e){return this.each(function(){const t=qe.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}})}static clearMenus(e){if(2===e.button||"keyup"===e.type&&"Tab"!==e.key)return;const t=W.find('[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled).show');for(const n of t){const t=qe.getInstance(n);if(!t||!1===t._config.autoClose)continue;const i=e.composedPath(),o=i.includes(t._menu);if(i.includes(t._element)||"inside"===t._config.autoClose&&!o||"outside"===t._config.autoClose&&o)continue;if(t._menu.contains(e.target)&&("keyup"===e.type&&"Tab"===e.key||/input|select|option|textarea|form/i.test(e.target.tagName)))continue;const r={relatedTarget:t._element};"click"===e.type&&(r.clickEvent=e),t._completeHide(r)}}static dataApiKeydownHandler(e){const t=/input|textarea/i.test(e.target.tagName),n="Escape"===e.key,i=[ke,Te].includes(e.key);if(!i&&!n)return;if(t&&!n)return;e.preventDefault();const o=this.matches(Pe)?this:W.prev(this,Pe)[0]||W.next(this,Pe)[0]||W.findOne(Pe,e.delegateTarget.parentNode),r=qe.getOrCreateInstance(o);if(i)return e.stopPropagation(),r.show(),void r._selectMenuItem(e);r._isShown()&&(e.stopPropagation(),r.hide(),o.focus())}}B.on(document,Se,Pe,qe.dataApiKeydownHandler),B.on(document,Se,Le,qe.dataApiKeydownHandler),B.on(document,Oe,qe.clearMenus),B.on(document,De,qe.clearMenus),B.on(document,Oe,Pe,function(e){e.preventDefault(),qe.getOrCreateInstance(this).toggle()}),b(qe);const We="backdrop",Ge="mousedown.bs."+We,Xe={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},Ue={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class Ve extends ${constructor(e){super(),this._config=this._getConfig(e),this._isAppended=!1,this._element=null}static get Default(){return Xe}static get DefaultType(){return Ue}static get NAME(){return We}show(e){if(!this._config.isVisible)return void x(e);this._append();const t=this._getElement();this._config.isAnimated&&h(t),t.classList.add("show"),this._emulateAnimation(()=>{x(e)})}hide(e){this._config.isVisible?(this._getElement().classList.remove("show"),this._emulateAnimation(()=>{this.dispose(),x(e)})):x(e)}dispose(){this._isAppended&&(B.off(this._element,Ge),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const e=document.createElement("div");e.className=this._config.className,this._config.isAnimated&&e.classList.add("fade"),this._element=e}return this._element}_configAfterMerge(e){return e.rootElement=l(e.rootElement),e}_append(){if(this._isAppended)return;const e=this._getElement();this._config.rootElement.append(e),B.on(e,Ge,()=>{x(this._config.clickCallback)}),this._isAppended=!0}_emulateAnimation(e){v(e,this._getElement(),this._config.isAnimated)}}const Ke=".bs.focustrap",Qe="backward",Ye={autofocus:!0,trapElement:null},Je={autofocus:"boolean",trapElement:"element"};class Ze extends ${constructor(e){super(),this._config=this._getConfig(e),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return Ye}static get DefaultType(){return Je}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),B.off(document,Ke),B.on(document,"focusin.bs.focustrap",e=>this._handleFocusin(e)),B.on(document,"keydown.tab.bs.focustrap",e=>this._handleKeydown(e)),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,B.off(document,Ke))}_handleFocusin(e){const{trapElement:t}=this._config;if(e.target===document||e.target===t||t.contains(e.target))return;const n=W.focusableChildren(t);0===n.length?t.focus():this._lastTabNavDirection===Qe?n[n.length-1].focus():n[0].focus()}_handleKeydown(e){"Tab"===e.key&&(this._lastTabNavDirection=e.shiftKey?Qe:"forward")}}const et=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",tt=".sticky-top",nt="padding-right",it="margin-right";class ot{constructor(){this._element=document.body}getWidth(){const e=document.documentElement.clientWidth;return Math.abs(window.innerWidth-e)}hide(){const e=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,nt,t=>t+e),this._setElementAttributes(et,nt,t=>t+e),this._setElementAttributes(tt,it,t=>t-e)}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,nt),this._resetElementAttributes(et,nt),this._resetElementAttributes(tt,it)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(e,t,n){const i=this.getWidth();this._applyManipulationCallback(e,e=>{if(e!==this._element&&window.innerWidth>e.clientWidth+i)return;this._saveInitialAttribute(e,t);const o=window.getComputedStyle(e).getPropertyValue(t);e.style.setProperty(t,n(Number.parseFloat(o))+"px")})}_saveInitialAttribute(e,t){const n=e.style.getPropertyValue(t);n&&H.setDataAttribute(e,t,n)}_resetElementAttributes(e,t){this._applyManipulationCallback(e,e=>{const n=H.getDataAttribute(e,t);null!==n?(H.removeDataAttribute(e,t),e.style.setProperty(t,n)):e.style.removeProperty(t)})}_applyManipulationCallback(e,t){if(a(e))t(e);else for(const n of W.find(e,this._element))t(n)}}const rt=".bs.modal",st="hidden"+rt,at="show"+rt,lt=`click${rt}.data-api`,ut="modal-open",ct="modal-static",dt={backdrop:!0,focus:!0,keyboard:!0},ft={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class ht extends z{constructor(e,t){super(e,t),this._dialog=W.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new ot,this._addEventListeners()}static get Default(){return dt}static get DefaultType(){return ft}static get NAME(){return"modal"}toggle(e){return this._isShown?this.hide():this.show(e)}show(e){this._isShown||this._isTransitioning||B.trigger(this._element,at,{relatedTarget:e}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(ut),this._adjustDialog(),this._backdrop.show(()=>this._showElement(e)))}hide(){this._isShown&&!this._isTransitioning&&(B.trigger(this._element,"hide.bs.modal").defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove("show"),this._queueCallback(()=>this._hideModal(),this._element,this._isAnimated())))}dispose(){B.off(window,rt),B.off(this._dialog,rt),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Ve({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new Ze({trapElement:this._element})}_showElement(e){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const t=W.findOne(".modal-body",this._dialog);t&&(t.scrollTop=0),h(this._element),this._element.classList.add("show"),this._queueCallback(()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,B.trigger(this._element,"shown.bs.modal",{relatedTarget:e})},this._dialog,this._isAnimated())}_addEventListeners(){B.on(this._element,"keydown.dismiss.bs.modal",e=>{"Escape"===e.key&&(this._config.keyboard?this.hide():this._triggerBackdropTransition())}),B.on(window,"resize.bs.modal",()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()}),B.on(this._element,"mousedown.dismiss.bs.modal",e=>{B.one(this._element,"click.dismiss.bs.modal",t=>{this._element===e.target&&this._element===t.target&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())})})}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide(()=>{document.body.classList.remove(ut),this._resetAdjustments(),this._scrollBar.reset(),B.trigger(this._element,st)})}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(B.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented)return;const e=this._element.scrollHeight>document.documentElement.clientHeight,t=this._element.style.overflowY;"hidden"===t||this._element.classList.contains(ct)||(e||(this._element.style.overflowY="hidden"),this._element.classList.add(ct),this._queueCallback(()=>{this._element.classList.remove(ct),this._queueCallback(()=>{this._element.style.overflowY=t},this._dialog)},this._dialog),this._element.focus())}_adjustDialog(){const e=this._element.scrollHeight>document.documentElement.clientHeight,t=this._scrollBar.getWidth(),n=t>0;if(n&&!e){const e=m()?"paddingLeft":"paddingRight";this._element.style[e]=t+"px"}if(!n&&e){const e=m()?"paddingRight":"paddingLeft";this._element.style[e]=t+"px"}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(e,t){return this.each(function(){const n=ht.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===n[e])throw new TypeError(`No method named "${e}"`);n[e](t)}})}}B.on(document,lt,'[data-bs-toggle="modal"]',function(e){const t=W.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&e.preventDefault(),B.one(t,at,e=>{e.defaultPrevented||B.one(t,st,()=>{u(this)&&this.focus()})});const n=W.findOne(".modal.show");n&&ht.getInstance(n).hide(),ht.getOrCreateInstance(t).toggle(this)}),G(ht),b(ht);const pt=".bs.offcanvas",gt=".data-api",mt=`load${pt}${gt}`,bt="showing",xt=".offcanvas.show",vt="hidePrevented"+pt,yt="hidden"+pt,_t=`click${pt}${gt}`,Ft={backdrop:!0,keyboard:!0,scroll:!1},wt={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class Ct extends z{constructor(e,t){super(e,t),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return Ft}static get DefaultType(){return wt}static get NAME(){return"offcanvas"}toggle(e){return this._isShown?this.hide():this.show(e)}show(e){this._isShown||B.trigger(this._element,"show.bs.offcanvas",{relatedTarget:e}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new ot).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(bt),this._queueCallback(()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add("show"),this._element.classList.remove(bt),B.trigger(this._element,"shown.bs.offcanvas",{relatedTarget:e})},this._element,!0))}hide(){this._isShown&&(B.trigger(this._element,"hide.bs.offcanvas").defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add("hiding"),this._backdrop.hide(),this._queueCallback(()=>{this._element.classList.remove("show","hiding"),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new ot).reset(),B.trigger(this._element,yt)},this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const e=Boolean(this._config.backdrop);return new Ve({className:"offcanvas-backdrop",isVisible:e,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:e?()=>{"static"!==this._config.backdrop?this.hide():B.trigger(this._element,vt)}:null})}_initializeFocusTrap(){return new Ze({trapElement:this._element})}_addEventListeners(){B.on(this._element,"keydown.dismiss.bs.offcanvas",e=>{"Escape"===e.key&&(this._config.keyboard?this.hide():B.trigger(this._element,vt))})}static jQueryInterface(e){return this.each(function(){const t=Ct.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e]||e.startsWith("_")||"constructor"===e)throw new TypeError(`No method named "${e}"`);t[e](this)}})}}B.on(document,_t,'[data-bs-toggle="offcanvas"]',function(e){const t=W.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&e.preventDefault(),c(this))return;B.one(t,yt,()=>{u(this)&&this.focus()});const n=W.findOne(xt);n&&n!==t&&Ct.getInstance(n).hide(),Ct.getOrCreateInstance(t).toggle(this)}),B.on(window,mt,()=>{for(const e of W.find(xt))Ct.getOrCreateInstance(e).show()}),B.on(window,"resize.bs.offcanvas",()=>{for(const e of W.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(e).position&&Ct.getOrCreateInstance(e).hide()}),G(Ct),b(Ct);const Et={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],div:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},At=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),kt=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,Tt=(e,t)=>{const n=e.nodeName.toLowerCase();return t.includes(n)?!At.has(n)||Boolean(kt.test(e.nodeValue)):t.filter(e=>e instanceof RegExp).some(e=>e.test(n))},Ot={allowList:Et,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},St={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Dt={entry:"(string|element|function|null)",selector:"(string|element)"};class jt extends ${constructor(e){super(),this._config=this._getConfig(e)}static get Default(){return Ot}static get DefaultType(){return St}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map(e=>this._resolvePossibleFunction(e)).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(e){return this._checkContent(e),this._config.content={...this._config.content,...e},this}toHtml(){const e=document.createElement("div");e.innerHTML=this._maybeSanitize(this._config.template);for(const[t,n]of Object.entries(this._config.content))this._setContent(e,n,t);const t=e.children[0],n=this._resolvePossibleFunction(this._config.extraClass);return n&&t.classList.add(...n.split(" ")),t}_typeCheckConfig(e){super._typeCheckConfig(e),this._checkContent(e.content)}_checkContent(e){for(const[t,n]of Object.entries(e))super._typeCheckConfig({selector:t,entry:n},Dt)}_setContent(e,t,n){const i=W.findOne(n,e);i&&((t=this._resolvePossibleFunction(t))?a(t)?this._putElementInTemplate(l(t),i):this._config.html?i.innerHTML=this._maybeSanitize(t):i.textContent=t:i.remove())}_maybeSanitize(e){return this._config.sanitize?function(e,t,n){if(!e.length)return e;if(n&&"function"==typeof n)return n(e);const i=(new window.DOMParser).parseFromString(e,"text/html"),o=[].concat(...i.body.querySelectorAll("*"));for(const e of o){const n=e.nodeName.toLowerCase();if(!Object.keys(t).includes(n)){e.remove();continue}const i=[].concat(...e.attributes),o=[].concat(t["*"]||[],t[n]||[]);for(const t of i)Tt(t,o)||e.removeAttribute(t.nodeName)}return i.body.innerHTML}(e,this._config.allowList,this._config.sanitizeFn):e}_resolvePossibleFunction(e){return x(e,[this])}_putElementInTemplate(e,t){if(this._config.html)return t.innerHTML="",void t.append(e);t.textContent=e.textContent}}const Pt=new Set(["sanitize","allowList","sanitizeFn"]),Lt="fade",Nt="show",Bt="hide.bs.modal",Mt="hover",It="focus",Rt={AUTO:"auto",TOP:"top",RIGHT:m()?"left":"right",BOTTOM:"bottom",LEFT:m()?"right":"left"},Ht={allowList:Et,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},$t={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class zt extends z{constructor(e,n){if(void 0===t)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(e,n),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return Ht}static get DefaultType(){return $t}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),B.off(this._element.closest(".modal"),Bt,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const e=B.trigger(this._element,this.constructor.eventName("show")),t=(d(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(e.defaultPrevented||!t)return;this._disposePopper();const n=this._getTipElement();this._element.setAttribute("aria-describedby",n.getAttribute("id"));const{container:i}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(i.append(n),B.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(n),n.classList.add(Nt),"ontouchstart"in document.documentElement)for(const e of[].concat(...document.body.children))B.on(e,"mouseover",f);this._queueCallback(()=>{B.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1},this.tip,this._isAnimated())}hide(){if(this._isShown()&&!B.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove(Nt),"ontouchstart"in document.documentElement)for(const e of[].concat(...document.body.children))B.off(e,"mouseover",f);this._activeTrigger.click=!1,this._activeTrigger[It]=!1,this._activeTrigger[Mt]=!1,this._isHovered=null,this._queueCallback(()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),B.trigger(this._element,this.constructor.eventName("hidden")))},this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(e){const t=this._getTemplateFactory(e).toHtml();if(!t)return null;t.classList.remove(Lt,Nt),t.classList.add(`bs-${this.constructor.NAME}-auto`);const n=(e=>{do{e+=Math.floor(1e6*Math.random())}while(document.getElementById(e));return e})(this.constructor.NAME).toString();return t.setAttribute("id",n),this._isAnimated()&&t.classList.add(Lt),t}setContent(e){this._newContent=e,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(e){return this._templateFactory?this._templateFactory.changeContent(e):this._templateFactory=new jt({...this._config,content:e,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{".tooltip-inner":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(e){return this.constructor.getOrCreateInstance(e.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(Lt)}_isShown(){return this.tip&&this.tip.classList.contains(Nt)}_createPopper(e){const n=x(this._config.placement,[this,e,this._element]),i=Rt[n.toUpperCase()];return t.createPopper(this._element,e,this._getPopperConfig(i))}_getOffset(){const{offset:e}=this._config;return"string"==typeof e?e.split(",").map(e=>Number.parseInt(e,10)):"function"==typeof e?t=>e(t,this._element):e}_resolvePossibleFunction(e){return x(e,[this._element])}_getPopperConfig(e){const t={placement:e,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:e=>{this._getTipElement().setAttribute("data-popper-placement",e.state.placement)}}]};return{...t,...x(this._config.popperConfig,[t])}}_setListeners(){const e=this._config.trigger.split(" ");for(const t of e)if("click"===t)B.on(this._element,this.constructor.eventName("click"),this._config.selector,e=>{this._initializeOnDelegatedTarget(e).toggle()});else if("manual"!==t){const e=t===Mt?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),n=t===Mt?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");B.on(this._element,e,this._config.selector,e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusin"===e.type?It:Mt]=!0,t._enter()}),B.on(this._element,n,this._config.selector,e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusout"===e.type?It:Mt]=t._element.contains(e.relatedTarget),t._leave()})}this._hideModalHandler=(()=>{this._element&&this.hide()}),B.on(this._element.closest(".modal"),Bt,this._hideModalHandler)}_fixTitle(){const e=this._element.getAttribute("title");e&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",e),this._element.setAttribute("data-bs-original-title",e),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout(()=>{this._isHovered&&this.show()},this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout(()=>{this._isHovered||this.hide()},this._config.delay.hide))}_setTimeout(e,t){clearTimeout(this._timeout),this._timeout=setTimeout(e,t)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(e){const t=H.getDataAttributes(this._element);for(const e of Object.keys(t))Pt.has(e)&&delete t[e];return e={...t,..."object"==typeof e&&e?e:{}},e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e.container=!1===e.container?document.body:l(e.container),"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),e}_getDelegateConfig(){const e={};for(const[t,n]of Object.entries(this._config))this.constructor.Default[t]!==n&&(e[t]=n);return e.selector=!1,e.trigger="manual",e}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(e){return this.each(function(){const t=zt.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}})}}b(zt);const qt={...zt.Default,content:"",offset:[0,8],placement:"right",template:'',trigger:"click"},Wt={...zt.DefaultType,content:"(null|string|element|function)"};class Gt extends zt{static get Default(){return qt}static get DefaultType(){return Wt}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{".popover-header":this._getTitle(),".popover-body":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(e){return this.each(function(){const t=Gt.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}})}}b(Gt);const Xt=".bs.scrollspy",Ut="click"+Xt,Vt=`load${Xt}.data-api`,Kt="active",Qt="[href]",Yt=".nav-link",Jt=`${Yt}, .nav-item > ${Yt}, .list-group-item`,Zt={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},en={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class tn extends z{constructor(e,t){super(e,t),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return Zt}static get DefaultType(){return en}static get NAME(){return"scrollspy"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const e of this._observableSections.values())this._observer.observe(e)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(e){return e.target=l(e.target)||document.body,e.rootMargin=e.offset?e.offset+"px 0px -30%":e.rootMargin,"string"==typeof e.threshold&&(e.threshold=e.threshold.split(",").map(e=>Number.parseFloat(e))),e}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(B.off(this._config.target,Ut),B.on(this._config.target,Ut,Qt,e=>{const t=this._observableSections.get(e.target.hash);if(t){e.preventDefault();const n=this._rootElement||window,i=t.offsetTop-this._element.offsetTop;if(n.scrollTo)return void n.scrollTo({top:i,behavior:"smooth"});n.scrollTop=i}}))}_getNewObserver(){const e={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver(e=>this._observerCallback(e),e)}_observerCallback(e){const t=e=>this._targetLinks.get("#"+e.target.id),n=e=>{this._previousScrollData.visibleEntryTop=e.target.offsetTop,this._process(t(e))},i=(this._rootElement||document.documentElement).scrollTop,o=i>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=i;for(const r of e){if(!r.isIntersecting){this._activeTarget=null,this._clearActiveClass(t(r));continue}const e=r.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(o&&e){if(n(r),!i)return}else o||e||n(r)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const e=W.find(Qt,this._config.target);for(const t of e){if(!t.hash||c(t))continue;const e=W.findOne(decodeURI(t.hash),this._element);u(e)&&(this._targetLinks.set(decodeURI(t.hash),t),this._observableSections.set(t.hash,e))}}_process(e){this._activeTarget!==e&&(this._clearActiveClass(this._config.target),this._activeTarget=e,e.classList.add(Kt),this._activateParents(e),B.trigger(this._element,"activate.bs.scrollspy",{relatedTarget:e}))}_activateParents(e){if(e.classList.contains("dropdown-item"))W.findOne(".dropdown-toggle",e.closest(".dropdown")).classList.add(Kt);else for(const t of W.parents(e,".nav, .list-group"))for(const e of W.prev(t,Jt))e.classList.add(Kt)}_clearActiveClass(e){e.classList.remove(Kt);const t=W.find(`${Qt}.${Kt}`,e);for(const e of t)e.classList.remove(Kt)}static jQueryInterface(e){return this.each(function(){const t=tn.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e]||e.startsWith("_")||"constructor"===e)throw new TypeError(`No method named "${e}"`);t[e]()}})}}B.on(window,Vt,()=>{for(const e of W.find('[data-bs-spy="scroll"]'))tn.getOrCreateInstance(e)}),b(tn);const nn="ArrowLeft",on="ArrowRight",rn="ArrowUp",sn="ArrowDown",an="Home",ln="End",un="active",cn="show",dn=".dropdown-toggle",fn=`:not(${dn})`,hn='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',pn=`.nav-link${fn}, .list-group-item${fn}, [role="tab"]${fn}, ${hn}`,gn=`.${un}[data-bs-toggle="tab"], .${un}[data-bs-toggle="pill"], .${un}[data-bs-toggle="list"]`;class mn extends z{constructor(e){super(e),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),B.on(this._element,"keydown.bs.tab",e=>this._keydown(e)))}static get NAME(){return"tab"}show(){const e=this._element;if(this._elemIsActive(e))return;const t=this._getActiveElem(),n=t?B.trigger(t,"hide.bs.tab",{relatedTarget:e}):null;B.trigger(e,"show.bs.tab",{relatedTarget:t}).defaultPrevented||n&&n.defaultPrevented||(this._deactivate(t,e),this._activate(e,t))}_activate(e,t){e&&(e.classList.add(un),this._activate(W.getElementFromSelector(e)),this._queueCallback(()=>{"tab"===e.getAttribute("role")?(e.removeAttribute("tabindex"),e.setAttribute("aria-selected",!0),this._toggleDropDown(e,!0),B.trigger(e,"shown.bs.tab",{relatedTarget:t})):e.classList.add(cn)},e,e.classList.contains("fade")))}_deactivate(e,t){e&&(e.classList.remove(un),e.blur(),this._deactivate(W.getElementFromSelector(e)),this._queueCallback(()=>{"tab"===e.getAttribute("role")?(e.setAttribute("aria-selected",!1),e.setAttribute("tabindex","-1"),this._toggleDropDown(e,!1),B.trigger(e,"hidden.bs.tab",{relatedTarget:t})):e.classList.remove(cn)},e,e.classList.contains("fade")))}_keydown(e){if(![nn,on,rn,sn,an,ln].includes(e.key))return;e.stopPropagation(),e.preventDefault();const t=this._getChildren().filter(e=>!c(e));let n;if([an,ln].includes(e.key))n=t[e.key===an?0:t.length-1];else{const i=[on,sn].includes(e.key);n=y(t,e.target,i,!0)}n&&(n.focus({preventScroll:!0}),mn.getOrCreateInstance(n).show())}_getChildren(){return W.find(pn,this._parent)}_getActiveElem(){return this._getChildren().find(e=>this._elemIsActive(e))||null}_setInitialAttributes(e,t){this._setAttributeIfNotExists(e,"role","tablist");for(const e of t)this._setInitialAttributesOnChild(e)}_setInitialAttributesOnChild(e){e=this._getInnerElement(e);const t=this._elemIsActive(e),n=this._getOuterElement(e);e.setAttribute("aria-selected",t),n!==e&&this._setAttributeIfNotExists(n,"role","presentation"),t||e.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(e,"role","tab"),this._setInitialAttributesOnTargetPanel(e)}_setInitialAttributesOnTargetPanel(e){const t=W.getElementFromSelector(e);t&&(this._setAttributeIfNotExists(t,"role","tabpanel"),e.id&&this._setAttributeIfNotExists(t,"aria-labelledby",""+e.id))}_toggleDropDown(e,t){const n=this._getOuterElement(e);if(!n.classList.contains("dropdown"))return;const i=(e,i)=>{const o=W.findOne(e,n);o&&o.classList.toggle(i,t)};i(dn,un),i(".dropdown-menu",cn),n.setAttribute("aria-expanded",t)}_setAttributeIfNotExists(e,t,n){e.hasAttribute(t)||e.setAttribute(t,n)}_elemIsActive(e){return e.classList.contains(un)}_getInnerElement(e){return e.matches(pn)?e:W.findOne(pn,e)}_getOuterElement(e){return e.closest(".nav-item, .list-group-item")||e}static jQueryInterface(e){return this.each(function(){const t=mn.getOrCreateInstance(this);if("string"==typeof e){if(void 0===t[e]||e.startsWith("_")||"constructor"===e)throw new TypeError(`No method named "${e}"`);t[e]()}})}}B.on(document,"click.bs.tab",hn,function(e){["A","AREA"].includes(this.tagName)&&e.preventDefault(),c(this)||mn.getOrCreateInstance(this).show()}),B.on(window,"load.bs.tab",()=>{for(const e of W.find(gn))mn.getOrCreateInstance(e)}),b(mn);const bn="show",xn="showing",vn={animation:"boolean",autohide:"boolean",delay:"number"},yn={animation:!0,autohide:!0,delay:5e3};class _n extends z{constructor(e,t){super(e,t),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return yn}static get DefaultType(){return vn}static get NAME(){return"toast"}show(){B.trigger(this._element,"show.bs.toast").defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove("hide"),h(this._element),this._element.classList.add(bn,xn),this._queueCallback(()=>{this._element.classList.remove(xn),B.trigger(this._element,"shown.bs.toast"),this._maybeScheduleHide()},this._element,this._config.animation))}hide(){this.isShown()&&(B.trigger(this._element,"hide.bs.toast").defaultPrevented||(this._element.classList.add(xn),this._queueCallback(()=>{this._element.classList.add("hide"),this._element.classList.remove(xn,bn),B.trigger(this._element,"hidden.bs.toast")},this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(bn),super.dispose()}isShown(){return this._element.classList.contains(bn)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout(()=>{this.hide()},this._config.delay)))}_onInteraction(e,t){switch(e.type){case"mouseover":case"mouseout":this._hasMouseInteraction=t;break;case"focusin":case"focusout":this._hasKeyboardInteraction=t}if(t)return void this._clearTimeout();const n=e.relatedTarget;this._element===n||this._element.contains(n)||this._maybeScheduleHide()}_setListeners(){B.on(this._element,"mouseover.bs.toast",e=>this._onInteraction(e,!0)),B.on(this._element,"mouseout.bs.toast",e=>this._onInteraction(e,!1)),B.on(this._element,"focusin.bs.toast",e=>this._onInteraction(e,!0)),B.on(this._element,"focusout.bs.toast",e=>this._onInteraction(e,!1))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(e){return this.each(function(){const t=_n.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e](this)}})}}return G(_n),b(_n),{Alert:X,Button:V,Carousel:ge,Collapse:we,Dropdown:qe,Modal:ht,Offcanvas:Ct,Popover:Gt,ScrollSpy:tn,Tab:mn,Toast:_n,Tooltip:zt}}),function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e("object"==typeof exports?require("jquery"):jQuery)}(function(e){function t(t,i,o){i={content:{message:"object"==typeof i?i.message:i,title:i.title?i.title:"",icon:i.icon?i.icon:"",url:i.url?i.url:"#",target:i.target?i.target:"-"}},o=e.extend(!0,{},i,o),this.settings=e.extend(!0,{},n,o),this._defaults=n,"-"==this.settings.content.target&&(this.settings.content.target=this.settings.url_target),this.animations={start:"webkitAnimationStart oanimationstart MSAnimationStart animationstart",end:"webkitAnimationEnd oanimationend MSAnimationEnd animationend"},"number"==typeof this.settings.offset&&(this.settings.offset={x:this.settings.offset,y:this.settings.offset}),this.init()}var n={element:"body",position:null,type:"info",allow_dismiss:!0,newest_on_top:!1,showProgressbar:!1,placement:{from:"top",align:"right"},offset:20,spacing:10,z_index:1031,delay:5e3,timer:1e3,url_target:"_blank",mouse_over:null,animate:{enter:"animated fadeInDown",exit:"animated fadeOutUp"},onShow:null,onShown:null,onClose:null,onClosed:null,icon_type:"class",template:''};String.format=function(){for(var e=arguments[0],t=1;t .progress-bar').removeClass("progress-bar-"+e.settings.type),e.settings.type=i[t],this.$ele.addClass("alert-"+i[t]).find('[data-notify="progressbar"] > .progress-bar').addClass("progress-bar-"+i[t]);break;case"icon":var o=this.$ele.find('[data-notify="icon"]');"class"==e.settings.icon_type.toLowerCase()?o.removeClass(e.settings.content.icon).addClass(i[t]):(o.is("img")||o.find("img"),o.attr("src",i[t]));break;case"progress":var r=e.settings.delay-e.settings.delay*(i[t]/100);this.$ele.data("notify-delay",r),this.$ele.find('[data-notify="progressbar"] > div').attr("aria-valuenow",i[t]).css("width",i[t]+"%");break;case"url":this.$ele.find('[data-notify="url"]').attr("href",i[t]);break;case"target":this.$ele.find('[data-notify="url"]').attr("target",i[t]);break;default:this.$ele.find('[data-notify="'+t+'"]').html(i[t])}var s=this.$ele.outerHeight()+parseInt(e.settings.spacing)+parseInt(e.settings.offset.y);e.reposition(s)},close:function(){e.close()}}},buildNotify:function(){var t=this.settings.content;this.$ele=e(String.format(this.settings.template,this.settings.type,t.title,t.message,t.url,t.target)),this.$ele.attr("data-notify-position",this.settings.placement.from+"-"+this.settings.placement.align),this.settings.allow_dismiss||this.$ele.find('[data-notify="dismiss"]').css("display","none"),(this.settings.delay<=0&&!this.settings.showProgressbar||!this.settings.showProgressbar)&&this.$ele.find('[data-notify="progressbar"]').remove()},setIcon:function(){"class"==this.settings.icon_type.toLowerCase()?this.$ele.find('[data-notify="icon"]').addClass(this.settings.content.icon):this.$ele.find('[data-notify="icon"]').is("img")?this.$ele.find('[data-notify="icon"]').attr("src",this.settings.content.icon):this.$ele.find('[data-notify="icon"]').append('Notify Icon')},styleDismiss:function(){this.$ele.find('[data-notify="dismiss"]').css({position:"absolute",right:"10px",top:"5px",zIndex:this.settings.z_index+2})},styleURL:function(){this.$ele.find('[data-notify="url"]').css({backgroundImage:"url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)",height:"100%",left:"0px",position:"absolute",top:"0px",width:"100%",zIndex:this.settings.z_index+1})},placement:function(){var t=this,n=this.settings.offset.y,i={display:"inline-block",margin:"0px auto",position:this.settings.position?this.settings.position:"body"===this.settings.element?"fixed":"absolute",transition:"all .5s ease-in-out",zIndex:this.settings.z_index},o=!1,r=this.settings;switch(e('[data-notify-position="'+this.settings.placement.from+"-"+this.settings.placement.align+'"]:not([data-closing="true"])').each(function(){return n=Math.max(n,parseInt(e(this).css(r.placement.from))+parseInt(e(this).outerHeight())+parseInt(r.spacing))}),1==this.settings.newest_on_top&&(n=this.settings.offset.y),i[this.settings.placement.from]=n+"px",this.settings.placement.align){case"left":case"right":i[this.settings.placement.align]=this.settings.offset.x+"px";break;case"center":i.left=0,i.right=0}this.$ele.css(i).addClass(this.settings.animate.enter),e.each(Array("webkit","moz","o","ms",""),function(e,n){t.$ele[0].style[n+"AnimationIterationCount"]=1}),e(this.settings.element).append(this.$ele),1==this.settings.newest_on_top&&(n=parseInt(n)+parseInt(this.settings.spacing)+this.$ele.outerHeight(),this.reposition(n)),e.isFunction(t.settings.onShow)&&t.settings.onShow.call(this.$ele),this.$ele.one(this.animations.start,function(e){o=!0}).one(this.animations.end,function(n){e.isFunction(t.settings.onShown)&&t.settings.onShown.call(this)}),setTimeout(function(){o||e.isFunction(t.settings.onShown)&&t.settings.onShown.call(this)},600)},bind:function(){var t=this;if(this.$ele.find('[data-notify="dismiss"]').on("click",function(){t.close()}),this.$ele.mouseover(function(t){e(this).data("data-hover","true")}).mouseout(function(t){e(this).data("data-hover","false")}),this.$ele.data("data-hover","false"),this.settings.delay>0){t.$ele.data("notify-delay",t.settings.delay);var n=setInterval(function(){var e=parseInt(t.$ele.data("notify-delay"))-t.settings.timer;if("false"===t.$ele.data("data-hover")&&"pause"==t.settings.mouse_over||"pause"!=t.settings.mouse_over){var i=(t.settings.delay-e)/t.settings.delay*100;t.$ele.data("notify-delay",e),t.$ele.find('[data-notify="progressbar"] > div').attr("aria-valuenow",i).css("width",i+"%")}e<=-t.settings.timer&&(clearInterval(n),t.close())},t.settings.timer)}},close:function(){var t=this,n=parseInt(this.$ele.css(this.settings.placement.from)),i=!1;this.$ele.data("closing","true").addClass(this.settings.animate.exit),t.reposition(n),e.isFunction(t.settings.onClose)&&t.settings.onClose.call(this.$ele),this.$ele.one(this.animations.start,function(e){i=!0}).one(this.animations.end,function(n){e(this).remove(),e.isFunction(t.settings.onClosed)&&t.settings.onClosed.call(this)}),setTimeout(function(){i||(t.$ele.remove(),t.settings.onClosed&&t.settings.onClosed(t.$ele))},600)},reposition:function(t){var n=this,i='[data-notify-position="'+this.settings.placement.from+"-"+this.settings.placement.align+'"]:not([data-closing="true"])',o=this.$ele.nextAll(i);1==this.settings.newest_on_top&&(o=this.$ele.prevAll(i)),o.each(function(){e(this).css(n.settings.placement.from,t),t=parseInt(t)+parseInt(n.settings.spacing)+e(this).outerHeight()})}}),e.notify=function(e,n){return new t(this,e,n).notify},e.notifyDefaults=function(t){return n=e.extend(!0,{},n,t)},e.notifyClose=function(t){void 0===t||"all"==t?e("[data-notify]").find('[data-notify="dismiss"]').trigger("click"):e('[data-notify-position="'+t+'"]').find('[data-notify="dismiss"]').trigger("click")}}),function(e){var t={};function n(i){if(t[i])return t[i].exports;var o=t[i]={i:i,l:!1,exports:{}};return e[i].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(i,o,function(t){return e[t]}.bind(null,o));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=15)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.data=t,this.text=n.text||t,this.options=n}},function(e,t,n){"use strict";var i;function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(t,"__esModule",{value:!0});var r=t.SET_A=0,s=t.SET_B=1,a=t.SET_C=2,l=(t.SHIFT=98,t.START_A=103),u=t.START_B=104,c=t.START_C=105;t.MODULO=103,t.STOP=106,t.FNC1=207,t.SET_BY_CODE=(o(i={},l,r),o(i,u,s),o(i,c,a),i),t.SWAP={101:r,100:s,99:a},t.A_START_CHAR=String.fromCharCode(208),t.B_START_CHAR=String.fromCharCode(209),t.C_START_CHAR=String.fromCharCode(210),t.A_CHARS="[\0-_È-Ï]",t.B_CHARS="[ -È-Ï]",t.C_CHARS="(Ï*[0-9]{2}Ï*)",t.BARS=[11011001100,11001101100,11001100110,10010011e3,10010001100,10001001100,10011001e3,10011000100,10001100100,11001001e3,11001000100,11000100100,10110011100,10011011100,10011001110,10111001100,10011101100,10011100110,11001110010,11001011100,11001001110,11011100100,11001110100,11101101110,11101001100,11100101100,11100100110,11101100100,11100110100,11100110010,11011011e3,11011000110,11000110110,10100011e3,10001011e3,10001000110,10110001e3,10001101e3,10001100010,11010001e3,11000101e3,11000100010,10110111e3,10110001110,10001101110,10111011e3,10111000110,10001110110,11101110110,11010001110,11000101110,11011101e3,11011100010,11011101110,11101011e3,11101000110,11100010110,11101101e3,11101100010,11100011010,11101111010,11001000010,11110001010,1010011e4,10100001100,1001011e4,10010000110,10000101100,10000100110,1011001e4,10110000100,1001101e4,10011000010,10000110100,10000110010,11000010010,1100101e4,11110111010,11000010100,10001111010,10100111100,10010111100,10010011110,10111100100,10011110100,10011110010,11110100100,11110010100,11110010010,11011011110,11011110110,11110110110,10101111e3,10100011110,10001011110,10111101e3,10111100010,11110101e3,11110100010,10111011110,10111101110,11101011110,11110101110,11010000100,1101001e4,11010011100,1100011101011]},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SIDE_BIN="101",t.MIDDLE_BIN="01010",t.BINARIES={L:["0001101","0011001","0010011","0111101","0100011","0110001","0101111","0111011","0110111","0001011"],G:["0100111","0110011","0011011","0100001","0011101","0111001","0000101","0010001","0001001","0010111"],R:["1110010","1100110","1101100","1000010","1011100","1001110","1010000","1000100","1001000","1110100"],O:["0001101","0011001","0010011","0111101","0100011","0110001","0101111","0111011","0110111","0001011"],E:["0100111","0110011","0011011","0100001","0011101","0111001","0000101","0010001","0001001","0010111"]},t.EAN2_STRUCTURE=["LL","LG","GL","GG"],t.EAN5_STRUCTURE=["GGLLL","GLGLL","GLLGL","GLLLG","LGGLL","LLGGL","LLLGG","LGLGL","LGLLG","LLGLG"],t.EAN13_STRUCTURE=["LLLLLL","LLGLGG","LLGGLG","LLGGGL","LGLLGG","LGGLLG","LGGGLL","LGLGLG","LGLGGL","LGGLGL"]},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2);t.default=function(e,t,n){var o=e.split("").map(function(e,n){return i.BINARIES[t[n]]}).map(function(t,n){return t?t[e[n]]:""});if(n){var r=e.length-1;o=o.map(function(e,t){return t=200){r=e.shift()-105;var a=s.SWAP[r];void 0!==a?o=t.next(e,n+1,a):(i!==s.SET_A&&i!==s.SET_B||r!==s.SHIFT||(e[0]=i===s.SET_A?e[0]>95?e[0]-96:e[0]:e[0]<32?e[0]+96:e[0]),o=t.next(e,n+1,i))}else r=t.correctIndex(e,i),o=t.next(e,n+1,i);var l=r*n;return{result:t.getBar(r)+o.result,checksum:l+o.checksum}}}]),t}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.mod10=function(e){for(var t=0,n=0;n10*n.width?10*n.width:n.fontSize,i.guardHeight=n.height+i.fontSize/2+n.textMargin,i}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,s(n(0)).default),i(t,[{key:"encode",value:function(){return this.options.flat?this.encodeFlat():this.encodeGuarded()}},{key:"leftText",value:function(e,t){return this.text.substr(e,t)}},{key:"leftEncode",value:function(e,t){return(0,r.default)(e,t)}},{key:"rightText",value:function(e,t){return this.text.substr(e,t)}},{key:"rightEncode",value:function(e,t){return(0,r.default)(e,t)}},{key:"encodeGuarded",value:function(){var e={fontSize:this.fontSize},t={height:this.guardHeight};return[{data:o.SIDE_BIN,options:t},{data:this.leftEncode(),text:this.leftText(),options:e},{data:o.MIDDLE_BIN,options:t},{data:this.rightEncode(),text:this.rightText(),options:e},{data:o.SIDE_BIN,options:t}]}},{key:"encodeFlat",value:function(){return{data:[o.SIDE_BIN,this.leftEncode(),o.MIDDLE_BIN,this.rightEncode(),o.SIDE_BIN].join(""),text:this.text}}}]),t}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n10*n.width?i.fontSize=10*n.width:i.fontSize=n.fontSize,i.guardHeight=n.height+i.fontSize/2+n.textMargin,i}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r(n(0)).default),i(t,[{key:"valid",value:function(){return-1!==this.data.search(/^[0-9]{12}$/)&&this.data[11]==a(this.data)}},{key:"encode",value:function(){return this.options.flat?this.flatEncoding():this.guardedEncoding()}},{key:"flatEncoding",value:function(){var e="";return e+="101",e+=(0,o.default)(this.data.substr(0,6),"LLLLLL"),e+="01010",e+=(0,o.default)(this.data.substr(6,6),"RRRRRR"),{data:e+="101",text:this.text}}},{key:"guardedEncoding",value:function(){var e=[];return this.displayValue&&e.push({data:"00000000",text:this.text.substr(0,1),options:{textAlign:"left",fontSize:this.fontSize}}),e.push({data:"101"+(0,o.default)(this.data[0],"L"),options:{height:this.guardHeight}}),e.push({data:(0,o.default)(this.data.substr(1,5),"LLLLL"),text:this.text.substr(1,5),options:{fontSize:this.fontSize}}),e.push({data:"01010",options:{height:this.guardHeight}}),e.push({data:(0,o.default)(this.data.substr(6,5),"RRRRR"),text:this.text.substr(6,5),options:{fontSize:this.fontSize}}),e.push({data:(0,o.default)(this.data[11],"R")+"101",options:{height:this.guardHeight}}),this.displayValue&&e.push({data:"00000000",text:this.text.substr(11,1),options:{textAlign:"right",fontSize:this.fontSize}}),e}}]),t}();function a(e){var t,n=0;for(t=1;t<11;t+=2)n+=parseInt(e[t]);for(t=0;t<11;t+=2)n+=3*parseInt(e[t]);return(10-n%10)%10}t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,o=function(){function e(e,t){for(var n=0;n0?t.fontSize+t.textMargin:0)+t.marginTop+t.marginBottom}function s(e,t,n){if(n.displayValue&&tt&&(t=e[n].height);return t},t.getEncodingHeight=r,t.getBarcodePadding=s,t.calculateEncodingAttributes=function(e,t,n){for(var i=0;i=r(e);return t+String.fromCharCode(i?206:205)+a(e,i)}t.default=function(e){var t=void 0;if(s(e).length>=2)t=i.C_START_CHAR+l(e);else{var n=o(e)>r(e);t=(n?i.A_START_CHAR:i.B_START_CHAR)+a(e,n)}return t.replace(/[\xCD\xCE]([^])[\xCD\xCE]/,function(e,t){return String.fromCharCode(203)+t})}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,o=function(){function e(e,t){for(var n=0;n10*n.width?i.fontSize=10*n.width:i.fontSize=n.fontSize,i.guardHeight=n.height+i.fontSize/2+n.textMargin,i}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),i(t,[{key:"valid",value:function(){return this.isValid}},{key:"encode",value:function(){return this.options.flat?this.flatEncoding():this.guardedEncoding()}},{key:"flatEncoding",value:function(){var e="";return e+="101",e+=this.encodeMiddleDigits(),{data:e+="010101",text:this.text}}},{key:"guardedEncoding",value:function(){var e=[];return this.displayValue&&e.push({data:"00000000",text:this.text[0],options:{textAlign:"left",fontSize:this.fontSize}}),e.push({data:"101",options:{height:this.guardHeight}}),e.push({data:this.encodeMiddleDigits(),text:this.text.substring(1,7),options:{fontSize:this.fontSize}}),e.push({data:"010101",options:{height:this.guardHeight}}),this.displayValue&&e.push({data:"00000000",text:this.text[7],options:{textAlign:"right",fontSize:this.fontSize}}),e}},{key:"encodeMiddleDigits",value:function(){var e=this.upcA[0],t=this.upcA[this.upcA.length-1],n=c[parseInt(t)][parseInt(e)];return(0,o.default)(this.middleDigits,n)}}]),t}();function f(e,t){for(var n=parseInt(e[e.length-1]),i=u[n],o="",r=0,a=0;a=3&&this.number<=131070}}]),t}();t.pharmacode=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.codabar=void 0;var i,o=function(){function e(e,t){for(var n=0;n0?(n=0,o.textAlign="left"):"right"==e.textAlign?(n=t.width-1,o.textAlign="right"):(n=t.width/2,o.textAlign="center"),o.fillText(t.text,n,i))}},{key:"moveCanvasDrawing",value:function(e){this.canvas.getContext("2d").translate(e.width,0)}},{key:"restoreCanvas",value:function(){this.canvas.getContext("2d").restore()}}]),e}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,o=function(){function e(e,t){for(var n=0;n0&&(this.drawRect(s-t.width*r,i,t.width*r,t.height,e),r=0);r>0&&this.drawRect(s-t.width*(r-1),i,t.width*r,t.height,e)}},{key:"drawSVGText",value:function(e,t,n){var i,o,r=this.document.createElementNS(a,"text");t.displayValue&&(r.setAttribute("style","font:"+t.fontOptions+" "+t.fontSize+"px "+t.font),o="top"==t.textPosition?t.fontSize-t.textMargin:t.height+t.textMargin+t.fontSize,"left"==t.textAlign||n.barcodePadding>0?(i=0,r.setAttribute("text-anchor","start")):"right"==t.textAlign?(i=n.width-1,r.setAttribute("text-anchor","end")):(i=n.width/2,r.setAttribute("text-anchor","middle")),r.setAttribute("x",i),r.setAttribute("y",o),r.appendChild(this.document.createTextNode(n.text)),e.appendChild(r))}},{key:"setSvgAttributes",value:function(e,t){var n=this.svg;n.setAttribute("width",e+"px"),n.setAttribute("height",t+"px"),n.setAttribute("x","0px"),n.setAttribute("y","0px"),n.setAttribute("viewBox","0 0 "+e+" "+t),n.setAttribute("xmlns",a),n.setAttribute("version","1.1"),n.setAttribute("style","transform: translate(0,0)")}},{key:"createGroup",value:function(e,t,n){var i=this.document.createElementNS(a,"g");return i.setAttribute("transform","translate("+e+", "+t+")"),n.appendChild(i),i}},{key:"setGroupOptions",value:function(e,t){e.setAttribute("style","fill:"+t.lineColor+";")}},{key:"drawRect",value:function(e,t,n,i,o){var r=this.document.createElementNS(a,"rect");return r.setAttribute("x",e),r.setAttribute("y",t),r.setAttribute("width",n),r.setAttribute("height",i),o.appendChild(r),r}}]),e}();t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;ne.length)return;if(!(_ instanceof l)){if(g&&v!=t.length-1){if(f.lastIndex=y,!(k=f.exec(e)))break;for(var F=k.index+(p?k[1].length:0),w=k.index+k[0].length,C=v,E=y,A=t.length;C"+r.content+""},!_self.document)return _self.addEventListener&&(n.disableWorkerMessageHandler||_self.addEventListener("message",function(e){var t=JSON.parse(e.data),i=t.language,o=t.code,r=t.immediateClose;_self.postMessage(n.highlight(o,n.languages[i],i)),r&&_self.close()},!1)),_self.Prism;var o=document.currentScript||[].slice.call(document.getElementsByTagName("script")).pop();return o&&(n.filename=o.src,n.manual||o.hasAttribute("data-manual")||("loading"!==document.readyState?window.requestAnimationFrame?window.requestAnimationFrame(n.highlightAll):window.setTimeout(n.highlightAll,16):document.addEventListener("DOMContentLoaded",n.highlightAll))),_self.Prism}();"undefined"!=typeof module&&module.exports&&(module.exports=Prism),"undefined"!=typeof global&&(global.Prism=Prism),Prism.languages.markup={comment://,prolog:/<\?[\s\S]+?\?>/,doctype://i,cdata://i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/i,inside:{punctuation:[/^=/,{pattern:/(^|[^\\])["']/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.hooks.add("wrap",function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))}),Prism.languages.xml=Prism.languages.markup,Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup,Prism.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-]+?.*?(?:;|(?=\s*\{))/i,inside:{rule:/@[\w-]+/}},url:/url\((?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|.*?)\)/i,selector:/[^{}\s][^{};]*?(?=\s*\{)/,string:{pattern:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},property:/[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i,important:/\B!important\b/i,function:/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:]/},Prism.languages.css.atrule.inside.rest=Prism.languages.css,Prism.languages.markup&&(Prism.languages.insertBefore("markup","tag",{style:{pattern:/()[\s\S]*?(?=<\/style>)/i,lookbehind:!0,inside:Prism.languages.css,alias:"language-css",greedy:!0}}),Prism.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:Prism.languages.markup.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:Prism.languages.css}},alias:"language-css"}},Prism.languages.markup.tag)),Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/[a-z0-9_]+(?=\()/i,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/},Prism.languages.javascript=Prism.languages.extend("clike",{keyword:/\b(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/,number:/\b(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+|NaN|Infinity)\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/,function:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*\()/i,operator:/-[-=]?|\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/}),Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[[^\]\r\n]+]|\\.|[^/\\\[\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})\]]))/,lookbehind:!0,greedy:!0},"function-variable":{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=\s*(?:function\b|(?:\([^()]*\)|[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/i,alias:"function"},constant:/\b[A-Z][A-Z\d_]*\b/}),Prism.languages.insertBefore("javascript","string",{"template-string":{pattern:/`(?:\\[\s\S]|\${[^}]+}|[^\\`])*`/,greedy:!0,inside:{interpolation:{pattern:/\${[^}]+}/,inside:{"interpolation-punctuation":{pattern:/^\${|}$/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}}}),Prism.languages.javascript["template-string"].inside.interpolation.inside.rest=Prism.languages.javascript,Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{script:{pattern:/()[\s\S]*?(?=<\/script>)/i,lookbehind:!0,inside:Prism.languages.javascript,alias:"language-javascript",greedy:!0}}),Prism.languages.js=Prism.languages.javascript,"undefined"!=typeof self&&self.Prism&&self.document&&document.querySelector&&(self.Prism.fileHighlight=function(){var e={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"};Array.prototype.slice.call(document.querySelectorAll("pre[data-src]")).forEach(function(t){for(var n,i=t.getAttribute("data-src"),o=t,r=/\blang(?:uage)?-([\w-]+)\b/i;o&&!r.test(o.className);)o=o.parentNode;if(o&&(n=(t.className.match(r)||[,""])[1]),!n){var s=(i.match(/\.(\w+)$/)||[,""])[1];n=e[s]||s}var a=document.createElement("code");a.className="language-"+n,t.textContent="",a.textContent="Loading…",t.appendChild(a);var l=new XMLHttpRequest;l.open("GET",i,!0),l.onreadystatechange=function(){4==l.readyState&&(l.status<400&&l.responseText?(a.textContent=l.responseText,Prism.highlightElement(a)):400<=l.status?a.textContent="✖ Error "+l.status+" while fetching file: "+l.statusText:a.textContent="✖ Error: File does not exist or is empty")},l.send(null)}),Prism.plugins.toolbar&&Prism.plugins.toolbar.registerButton("download-file",function(e){var t=e.element.parentNode;if(t&&/pre/i.test(t.nodeName)&&t.hasAttribute("data-src")&&t.hasAttribute("data-download-link")){var n=t.getAttribute("data-src"),i=document.createElement("a");return i.textContent=t.getAttribute("data-download-link-label")||"Download",i.setAttribute("download",""),i.href=n,i}})},document.addEventListener("DOMContentLoaded",self.Prism.fileHighlight)),function(e){"use strict";function t(e,t){e.className+=" "+t}function n(e,t){for(var n=e.className.split(" "),i=t.split(" "),o=0;o-1&&n.splice(r,1)}e.className=n.join(" ")}function i(){return"rtl"===e.getComputedStyle(document.body).direction}function o(){return document.documentElement&&document.documentElement.scrollTop||document.body.scrollTop}function r(){return document.documentElement&&document.documentElement.scrollLeft||document.body.scrollLeft}function s(e){for(;e.lastChild;)e.removeChild(e.lastChild)}function a(e){if(null===e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n0){for(var n=[],i=0;i=0?(n(document.body,Fe.noOverflow),k(!1)):e>0&&document.body.className.indexOf(Fe.noOverflow)<0&&(k(!0),t(document.body,Fe.noOverflow))}function k(i){T.defaults.preventBodyShift&&(i&&document.documentElement.scrollHeight>document.documentElement.clientHeight?(Ce=be,we=e.getComputedStyle(document.body).top,t(document.body,Fe.fixed),document.body.style.top=-be+"px"):i||(be=Ce,document.body.style.top=we,n(document.body,Fe.fixed),F()))}function O(e,t){for(var n=y.indexOf(t)+1;n200&&(Ae=e.timeStamp)&&!Ee){var n=e.srcElement||e.target;!0===t.get("closableByDimmer")&&n===t.elements.modal&&j(t)}Ee=!1}function z(e,t){if(Date.now()-ke>200&&(ke=Date.now()))for(var n=0;n-1?(z(t,function(e){return e.key===n}),!1):void 0}Te=!1}function G(e){var t=y[y.length-1],n=e.keyCode;if(n===m||n===b){for(var i=t.__internal.buttons,o=0;op-1&&xe.indexOf(n)>-1)return e.preventDefault(),e.stopPropagation(),z(t,function(e){return e.key===n}),!1}function X(e,t){if(t)t.focus();else{var n=e.__internal.focus,i=n.element;switch(typeof n.element){case"number":e.__internal.buttons.length>n.element&&(i=!0===e.get("basic")?e.elements.reset[0]:e.__internal.buttons[n.element].element);break;case"string":i=e.elements.body.querySelector(n.element);break;case"function":i=n.element.call(e)}!0!==e.get("defaultFocusOff")&&(null!=i||0!==e.__internal.buttons.length)||(i=e.elements.reset[0]),i&&i.focus&&(i.focus(),n.select&&i.select&&i.select())}}function U(e,t){if(!t)for(var n=y.length-1;n>-1;n-=1)if(y[n].isModal()){t=y[n];break}if(t&&t.isModal()){var i,o=t.elements.reset[0],r=t.elements.reset[1],s=e.relatedTarget,a=t.elements.root.contains(s),l=e.srcElement||e.target;if(l===o&&!a||l===r&&s===o)return;l===r||l===document.body?i=o:l===o&&s===r?i=V(t):l===o&&a&&(i=V(t,!0)),X(t,i)}}function V(e,t){var n=[].slice.call(e.elements.dialog.querySelectorAll(v.tabbable));t&&n.reverse();for(var i=0;iRe?t.style.left=Ie+c+"px":t.offsetWidth>=He&&(t.style.left=Ie-c+"px")}}(t,Me.elements.dialog,!Me.get("modal")&&!Me.get("pinned")))}function se(){if(Me){var e=Me;Me=null,n(document.body,Fe.noSelection),n(e.elements.dialog,Fe.capture),Ee=!0,d("onresized",e)}}function ae(e){Me=null;var t=e.elements.dialog;"none"===t.style.maxWidth&&(t.style.maxWidth=t.style.minWidth=t.style.width=t.style.height=t.style.minHeight=t.style.left="",Ie=Number.Nan,Re=He=$e=0)}function le(){for(var e=0;e-1&&e.navigator.userAgent.indexOf("Chrome")<0,_e={dimmer:'
',modal:'
',dialog:'
',reset:'',commands:'
',header:'
',body:'
',content:'
',footer:'',buttons:{primary:'
',auxiliary:'
'},button:'',resizeHandle:'
'},Fe={animationIn:"ajs-in",animationOut:"ajs-out",base:"alertify",basic:"ajs-basic",capture:"ajs-capture",closable:"ajs-closable",fixed:"ajs-fixed",frameless:"ajs-frameless",hidden:"ajs-hidden",maximize:"ajs-maximize",maximized:"ajs-maximized",maximizable:"ajs-maximizable",modeless:"ajs-modeless",movable:"ajs-movable",noSelection:"ajs-no-selection",noOverflow:"ajs-no-overflow",noPadding:"ajs-no-padding",pin:"ajs-pin",pinnable:"ajs-pinnable",prefix:"ajs-",resizable:"ajs-resizable",restore:"ajs-restore",shake:"ajs-shake",unpinned:"ajs-unpinned",noTransition:"ajs-no-transition"},we="",Ce=0,Ee=!1,Ae=0,ke=0,Te=!1,Oe=null,Se=0,De=0,je="pageX",Pe="pageY",Le=null,Ne=!1,Be=null,Me=null,Ie=Number.Nan,Re=0,He=0,$e=0;return{__init:f,isOpen:function(){return this.__internal.isOpen},isModal:function(){return this.elements.root.className.indexOf(Fe.modeless)<0},isMaximized:function(){return this.elements.root.className.indexOf(Fe.maximized)>-1},isPinned:function(){return this.elements.root.className.indexOf(Fe.unpinned)<0},maximize:function(){return this.isMaximized()||B(this),this},restore:function(){return this.isMaximized()&&M(this),this},pin:function(){return this.isPinned()||L(this),this},unpin:function(){return this.isPinned()&&N(this),this},bringToFront:function(){return O(0,this),this},moveTo:function(e,t){if(!isNaN(e)&&!isNaN(t)){d("onmove",this);var n=this.elements.dialog,o=n,r=0,s=0;n.style.left&&(r-=parseInt(n.style.left,10)),n.style.top&&(s-=parseInt(n.style.top,10));do{r+=o.offsetLeft,s+=o.offsetTop}while(o=o.offsetParent);var a=e-r,l=t-s;i()&&(a*=-1),n.style.left=a+"px",n.style.top=l+"px",d("onmoved",this)}return this},resizeTo:function(e,t){var n=parseFloat(e),i=parseFloat(t),o=/(\d*\.\d+|\d+)%/;if(!isNaN(n)&&!isNaN(i)&&!0===this.get("resizable")){d("onresize",this),(""+e).match(o)&&(n=n/100*document.documentElement.clientWidth),(""+t).match(o)&&(i=i/100*document.documentElement.clientHeight);var r=this.elements.dialog;"none"!==r.style.maxWidth&&(r.style.minWidth=(He=r.offsetWidth)+"px"),r.style.maxWidth="none",r.style.minHeight=this.elements.header.offsetHeight+this.elements.footer.offsetHeight+"px",r.style.width=n+"px",r.style.height=i+"px",d("onresized",this)}return this},setting:function(e,t){var n=this,i=D(this,this.__internal.options,function(e,t,i){S(n,e,t,i)},e,t);if("get"===i.op)return i.found?i.value:void 0!==this.settings?D(this,this.settings,this.settingUpdated||function(){},e,t).value:void 0;if("set"===i.op){if(i.items.length>0)for(var o=this.settingUpdated||function(){},r=0;r0){var t=this;this.__internal.timer=setTimeout(function(){t.dismiss()},1e3*this.__internal.delay)}return this},setContent:function(n){if("string"==typeof n?(s(this.element),this.element.innerHTML=n):n instanceof e.HTMLElement&&this.element.firstChild!==n&&(s(this.element),this.element.appendChild(n)),this.__internal.closeButton){var i=document.createElement("span");t(i,f.close),i.setAttribute("data-close",!0),this.element.appendChild(i)}return this},dismissOthers:function(){return k.dismissAll(this),this}})}var c,d=[],f=v.notifier.classes,h=f.base;return{setting:function(e,t){if(i(this),void 0===t)return this.__internal[e];switch(e){case"position":this.__internal.position=t,a(this);break;case"delay":this.__internal.delay=t}return this},set:function(e,t){return this.setting(e,t),this},get:function(e){return this.setting(e)},create:function(e,t){i(this);var n=document.createElement("div");return n.className=f.message+("string"==typeof e&&""!==e?" "+f.prefix+e:""),l(n,t)},dismissAll:function(e){for(var t=d.slice(0),n=0;n>t?1:0;return n}function h(e,t,n,i,o,r,s){var a=p;a(e,t,n[0],i-2,o-2,r,s),a(e,t,n[1],i-2,o-1,r,s),a(e,t,n[2],i-1,o-2,r,s),a(e,t,n[3],i-1,o-1,r,s),a(e,t,n[4],i-1,o,r,s),a(e,t,n[5],i,o-2,r,s),a(e,t,n[6],i,o-1,r,s),a(e,t,n[7],i,o,r,s)}function p(e,t,n,i,o,r,s){i<0&&(i+=r,o+=4-(r+4)%8),o<0&&(o+=s,i+=4-(s+4)%8),1!==t[i][o]&&(e[i][o]=n,t[i][o]=1)}return function(g,m){var b,x=function(e){var t,n,i=[],o=0;for(t=0;t>=8;return i}function F(e,t,n){return String.fromCharCode(n)+String.fromCharCode(t)+String.fromCharCode(e)}function w(e){var t=parseInt("0x"+e.substr(1),16),n=255&t;return F((t>>=8)>>8,255&t,n)}function C(e){return e.match(/#[0-91-F]/gi)}function E(e){for(var t,n,i,o,r,s,a,l="",u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",c=0;c>2,r=(3&t)<<4|(n=e.charCodeAt(c++))>>4,s=(15&n)<<2|(i=e.charCodeAt(c++))>>6,a=63&i,isNaN(n)?s=a=64:isNaN(i)&&(a=64),l+=u.charAt(o)+u.charAt(r)+u.charAt(s)+u.charAt(a);return l}function A(e){var t,n=[];for(n[0]=[],t=0;t
',p='
';for(a=0;a'+i+"
"),k(e,o*d).html(f)}function S(e,t,n,i,o,r){var s,a,l,u,c,d,f,h,p=n.length,g=n[0].length,m=o*g,b=r*p;for(t.showHRI&&(l=y(t.fontSize),b+=y(t.marginHRI)+l),u='',u+='',c='',a=0;a',u+=''+i+"",u+=""),u+="",(h=document.createElement("img")).setAttribute("src","data:image/svg+xml;base64,"+E(u)),k(e,m).append(h)}function D(e,t,n,i,o,r,s,a){var l,u,c,d,f,h,p=e.get(0),g=n.length,m=n[0].length;if(p&&p.getContext){for((c=p.getContext("2d")).lineWidth=1,c.lineCap="butt",c.fillStyle=t.bgColor,c.fillRect(o,r,m*s,g*a),c.fillStyle=t.color,u=0;u?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",a=0,l=0,u=0;for(t=0;te||this.moduleCount<=e||0>t||this.moduleCount<=t)throw Error(e+","+t);return this.modules[e][t]},getModuleCount:function(){return this.moduleCount},make:function(){if(1>this.typeNumber){var e=1;for(e=1;40>e;e++){for(var t=s.getRSBlocks(e,this.errorCorrectLevel),n=new a,i=0,o=0;o=n;n++)if(!(-1>=e+n||this.moduleCount<=e+n))for(var i=-1;7>=i;i++)-1>=t+i||this.moduleCount<=t+i||(this.modules[e+n][t+i]=0<=n&&6>=n&&(0==i||6==i)||0<=i&&6>=i&&(0==n||6==n)||2<=n&&4>=n&&2<=i&&4>=i)},getBestMaskPattern:function(){for(var e=0,t=0,n=0;8>n;n++){this.makeImpl(!0,n);var i=l.getLostPoint(this);(0==n||e>i)&&(e=i,t=n)}return t},createMovieClip:function(e,t,n){for(e=e.createEmptyMovieClip(t,n),this.make(),t=0;t=r;r++)for(var s=-2;2>=s;s++)this.modules[i+r][o+s]=-2==r||2==r||-2==s||2==s||0==r&&0==s}},setupTypeNumber:function(e){for(var t=l.getBCHTypeNumber(this.typeNumber),n=0;18>n;n++){var i=!e&&1==(t>>n&1);this.modules[Math.floor(n/3)][n%3+this.moduleCount-8-3]=i}for(n=0;18>n;n++)i=!e&&1==(t>>n&1),this.modules[n%3+this.moduleCount-8-3][Math.floor(n/3)]=i},setupTypeInfo:function(e,t){for(var n=l.getBCHTypeInfo(this.errorCorrectLevel<<3|t),i=0;15>i;i++){var o=!e&&1==(n>>i&1);6>i?this.modules[i][8]=o:8>i?this.modules[i+1][8]=o:this.modules[this.moduleCount-15+i][8]=o}for(i=0;15>i;i++)o=!e&&1==(n>>i&1),8>i?this.modules[8][this.moduleCount-i-1]=o:9>i?this.modules[8][15-i-1+1]=o:this.modules[8][15-i-1]=o;this.modules[this.moduleCount-8][8]=!e},mapData:function(e,t){for(var n=-1,i=this.moduleCount-1,o=7,r=0,s=this.moduleCount-1;0a;a++)if(null==this.modules[i][s-a]){var u=!1;r>>o&1)),l.getMask(t,i,s-a)&&(u=!u),this.modules[i][s-a]=u,-1==--o&&(r++,o=7)}if(0>(i+=n)||this.moduleCount<=i){i-=n,n=-n;break}}}},o.PAD0=236,o.PAD1=17,o.createData=function(e,t,n){t=s.getRSBlocks(e,t);for(var i=new a,r=0;r8*e)throw Error("code length overflow. ("+i.getLengthInBits()+">"+8*e+")");for(i.getLengthInBits()+4<=8*e&&i.put(0,4);0!=i.getLengthInBits()%8;)i.putBit(!1);for(;!(i.getLengthInBits()>=8*e||(i.put(o.PAD0,8),i.getLengthInBits()>=8*e));)i.put(o.PAD1,8);return o.createBytes(i,t)},o.createBytes=function(e,t){for(var n=0,i=0,o=0,s=Array(t.length),a=Array(t.length),u=0;u>>=1;return t},getPatternPosition:function(e){return l.PATTERN_POSITION_TABLE[e-1]},getMask:function(e,t,n){switch(e){case 0:return 0==(t+n)%2;case 1:return 0==t%2;case 2:return 0==n%3;case 3:return 0==(t+n)%3;case 4:return 0==(Math.floor(t/2)+Math.floor(n/3))%2;case 5:return 0==t*n%2+t*n%3;case 6:return 0==(t*n%2+t*n%3)%2;case 7:return 0==(t*n%3+(t+n)%2)%2;default:throw Error("bad maskPattern:"+e)}},getErrorCorrectPolynomial:function(e){for(var t=new r([1],0),n=0;nt)switch(e){case 1:return 10;case 2:return 9;case n:case 8:return 8;default:throw Error("mode:"+e)}else if(27>t)switch(e){case 1:return 12;case 2:return 11;case n:return 16;case 8:return 10;default:throw Error("mode:"+e)}else{if(!(41>t))throw Error("type:"+t);switch(e){case 1:return 14;case 2:return 13;case n:return 16;case 8:return 12;default:throw Error("mode:"+e)}}},getLostPoint:function(e){for(var t=e.getModuleCount(),n=0,i=0;i=a;a++)if(!(0>i+a||t<=i+a))for(var l=-1;1>=l;l++)0>o+l||t<=o+l||0==a&&0==l||s==e.isDark(i+a,o+l)&&r++;5e)throw Error("glog("+e+")");return u.LOG_TABLE[e]},gexp:function(e){for(;0>e;)e+=255;for(;256<=e;)e-=255;return u.EXP_TABLE[e]},EXP_TABLE:Array(256),LOG_TABLE:Array(256)},c=0;8>c;c++)u.EXP_TABLE[c]=1<c;c++)u.EXP_TABLE[c]=u.EXP_TABLE[c-4]^u.EXP_TABLE[c-5]^u.EXP_TABLE[c-6]^u.EXP_TABLE[c-8];for(c=0;255>c;c++)u.LOG_TABLE[u.EXP_TABLE[c]]=c;return r.prototype={get:function(e){return this.num[e]},getLength:function(){return this.num.length},multiply:function(e){for(var t=Array(this.getLength()+e.getLength()-1),n=0;nthis.getLength()-e.getLength())return this;for(var t=u.glog(this.get(0))-u.glog(e.get(0)),n=Array(this.getLength()),i=0;i>>7-e%8&1)},put:function(e,t){for(var n=0;n>>t-n-1&1))},getLengthInBits:function(){return this.length},putBit:function(e){var t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}},"string"==typeof t&&(t={text:t}),t=e.extend({},{render:"canvas",width:256,height:256,typeNumber:-1,correctLevel:2,background:"#ffffff",foreground:"#000000"},t),this.each(function(){var n;if("canvas"==t.render){(n=new o(t.typeNumber,t.correctLevel)).addData(t.text),n.make();var i=document.createElement("canvas");i.width=t.width,i.height=t.height;for(var r=i.getContext("2d"),s=t.width/n.getModuleCount(),a=t.height/n.getModuleCount(),l=0;l").css("width",t.width+"px").css("height",t.height+"px").css("border","0px").css("border-collapse","collapse").css("background-color",t.background),r=t.width/n.getModuleCount(),s=t.height/n.getModuleCount(),a=0;a").css("height",s+"px").appendTo(i),u=0;u").css("width",r+"px").css("background-color",n.isDark(a,u)?t.foreground:t.background).appendTo(l);n=i,jQuery(n).appendTo(this)})}}(jQuery),function(){"use strict";var e="undefined"!=typeof window&&void 0!==window.document?window.document:{},t="undefined"!=typeof module&&module.exports,n=function(){for(var t,n=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],i=0,o=n.length,r={};i",{class:n+"box "+n+"editor-visible "+n+e.o.lang+" trumbowyg"}),e.isTextarea=e.$ta.is("textarea"),e.isTextarea?(o=e.$ta.val(),e.$ed=i("
"),e.$box.insertAfter(e.$ta).append(e.$ed,e.$ta)):(e.$ed=e.$ta,o=e.$ed.html(),e.$ta=i("",h.noCloneChecked=!!ve.cloneNode(!0).lastChild.defaultValue,ve.innerHTML="",h.option=!!ve.lastChild;var Ce={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function Ee(e,t){var n;return n=void 0!==e.getElementsByTagName?e.getElementsByTagName(t||"*"):void 0!==e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&C(e,t)?F.merge([e],n):n}function Ae(e,t){for(var n=0,i=e.length;n",""]);var ke=/<|&#?\w+;/;function Te(e,t,n,i,o){for(var r,s,a,l,u,c,d=t.createDocumentFragment(),f=[],h=0,p=e.length;h\s*$/g;function Me(e,t){return C(e,"table")&&C(11!==t.nodeType?t:t.firstChild,"tr")&&F(e).children("tbody")[0]||e}function Ie(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function He(e,t){var n,i,o,r,s,a;if(1===t.nodeType){if(oe.hasData(e)&&(a=oe.get(e).events))for(o in oe.remove(t,"handle events"),a)for(n=0,i=a[o].length;n").attr(e.scriptAttrs||{}).prop({charset:e.scriptCharset,src:e.url}).on("load error",n=function(e){t.remove(),n=null,e&&o("error"===e.type?404:200,e.type)}),m.head.appendChild(t[0])},abort:function(){n&&n()}}});var Yt,Jt=[],Zt=/(=)\?(?=&|$)|\?\?/;F.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Jt.pop()||F.expando+"_"+kt.guid++;return this[e]=!0,e}}),F.ajaxPrefilter("json jsonp",function(t,n,i){var o,r,s,a=!1!==t.jsonp&&(Zt.test(t.url)?"url":"string"==typeof t.data&&0===(t.contentType||"").indexOf("application/x-www-form-urlencoded")&&Zt.test(t.data)&&"data");if(a||"jsonp"===t.dataTypes[0])return o=t.jsonpCallback=p(t.jsonpCallback)?t.jsonpCallback():t.jsonpCallback,a?t[a]=t[a].replace(Zt,"$1"+o):!1!==t.jsonp&&(t.url+=(Tt.test(t.url)?"&":"?")+t.jsonp+"="+o),t.converters["script json"]=function(){return s||F.error(o+" was not called"),s[0]},t.dataTypes[0]="json",r=e[o],e[o]=function(){s=arguments},i.always(function(){void 0===r?F(e).removeProp(o):e[o]=r,t[o]&&(t.jsonpCallback=n.jsonpCallback,Jt.push(o)),s&&p(r)&&r(s[0]),s=r=void 0}),"script"}),h.createHTMLDocument=((Yt=m.implementation.createHTMLDocument("").body).innerHTML="
",2===Yt.childNodes.length),F.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(h.createHTMLDocument?((i=(t=m.implementation.createHTMLDocument("")).createElement("base")).href=m.location.href,t.head.appendChild(i)):t=m),r=!n&&[],(o=M.exec(e))?[t.createElement(o[1])]:(o=Te([e],t,r),r&&r.length&&F(r).remove(),F.merge([],o.childNodes)));var i,o,r},F.fn.load=function(e,t,n){var i,o,r,s=this,a=e.indexOf(" ");return-1").append(F.parseHTML(e)).find(i):e)}).always(n&&function(e,t){s.each(function(){n.apply(this,r||[e.responseText,t,e])})}),this},F.expr.pseudos.animated=function(e){return F.grep(F.timers,function(t){return e===t.elem}).length},F.offset={setOffset:function(e,t,n){var i,o,r,s,a,l,u=F.css(e,"position"),c=F(e),d={};"static"===u&&(e.style.position="relative"),a=c.offset(),r=F.css(e,"top"),l=F.css(e,"left"),("absolute"===u||"fixed"===u)&&-1<(r+l).indexOf("auto")?(s=(i=c.position()).top,o=i.left):(s=parseFloat(r)||0,o=parseFloat(l)||0),p(t)&&(t=t.call(e,n,F.extend({},a))),null!=t.top&&(d.top=t.top-a.top+s),null!=t.left&&(d.left=t.left-a.left+o),"using"in t?t.using.call(e,d):c.css(d)}},F.fn.extend({offset:function(e){if(arguments.length)return void 0===e?this:this.each(function(t){F.offset.setOffset(this,e,t)});var t,n,i=this[0];return i?i.getClientRects().length?(t=i.getBoundingClientRect(),n=i.ownerDocument.defaultView,{top:t.top+n.pageYOffset,left:t.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,i=this[0],o={top:0,left:0};if("fixed"===F.css(i,"position"))t=i.getBoundingClientRect();else{for(t=this.offset(),n=i.ownerDocument,e=i.offsetParent||n.documentElement;e&&(e===n.body||e===n.documentElement)&&"static"===F.css(e,"position");)e=e.parentNode;e&&e!==i&&1===e.nodeType&&((o=F(e).offset()).top+=F.css(e,"borderTopWidth",!0),o.left+=F.css(e,"borderLeftWidth",!0))}return{top:t.top-o.top-F.css(i,"marginTop",!0),left:t.left-o.left-F.css(i,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var e=this.offsetParent;e&&"static"===F.css(e,"position");)e=e.offsetParent;return e||fe})}}),F.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,t){var n="pageYOffset"===t;F.fn[e]=function(i){return Y(this,function(e,i,o){var r;if(g(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===o)return r?r[t]:e[i];r?r.scrollTo(n?r.pageXOffset:o,n?o:r.pageYOffset):e[i]=o},e,i,arguments.length)}}),F.each(["top","left"],function(e,t){F.cssHooks[t]=Ke(h.pixelPosition,function(e,n){if(n)return n=Ve(e,t),qe.test(n)?F(e).position()[t]+"px":n})}),F.each({Height:"height",Width:"width"},function(e,t){F.each({padding:"inner"+e,content:t,"":"outer"+e},function(n,i){F.fn[i]=function(o,r){var s=arguments.length&&(n||"boolean"!=typeof o),a=n||(!0===o||!0===r?"margin":"border");return Y(this,function(t,n,o){var r;return g(t)?0===i.indexOf("outer")?t["inner"+e]:t.document.documentElement["client"+e]:9===t.nodeType?(r=t.documentElement,Math.max(t.body["scroll"+e],r["scroll"+e],t.body["offset"+e],r["offset"+e],r["client"+e])):void 0===o?F.css(t,n,a):F.style(t,n,o,a)},t,s?o:void 0,s)}})}),F.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){F.fn[t]=function(e){return this.on(t,e)}}),F.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,i){return this.on(t,e,n,i)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.on("mouseenter",e).on("mouseleave",t||e)}}),F.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,t){F.fn[t]=function(e,n){return 0e[n]})}return t.default=e,Object.freeze(t)}(e),n=new Map,i={set(e,t,i){n.has(e)||n.set(e,new Map);const o=n.get(e);o.has(t)||0===o.size?o.set(t,i):console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(o.keys())[0]}.`)},get:(e,t)=>n.has(e)&&n.get(e).get(t)||null,remove(e,t){if(!n.has(e))return;const i=n.get(e);i.delete(t),0===i.size&&n.delete(e)}},o="transitionend",r=e=>(e&&window.CSS&&window.CSS.escape&&(e=e.replace(/#([^\s"#']+)/g,(e,t)=>"#"+CSS.escape(t))),e),s=e=>{e.dispatchEvent(new Event(o))},a=e=>!(!e||"object"!=typeof e)&&(void 0!==e.jquery&&(e=e[0]),void 0!==e.nodeType),l=e=>a(e)?e.jquery?e[0]:e:"string"==typeof e&&e.length>0?document.querySelector(r(e)):null,u=e=>{if(!a(e)||0===e.getClientRects().length)return!1;const t="visible"===getComputedStyle(e).getPropertyValue("visibility"),n=e.closest("details:not([open])");if(!n)return t;if(n!==e){const t=e.closest("summary");if(t&&t.parentNode!==n)return!1;if(null===t)return!1}return t},c=e=>!e||e.nodeType!==Node.ELEMENT_NODE||!!e.classList.contains("disabled")||(void 0!==e.disabled?e.disabled:e.hasAttribute("disabled")&&"false"!==e.getAttribute("disabled")),d=e=>{if(!document.documentElement.attachShadow)return null;if("function"==typeof e.getRootNode){const t=e.getRootNode();return t instanceof ShadowRoot?t:null}return e instanceof ShadowRoot?e:e.parentNode?d(e.parentNode):null},f=()=>{},h=e=>{e.offsetHeight},p=()=>window.jQuery&&!document.body.hasAttribute("data-bs-no-jquery")?window.jQuery:null,g=[],m=()=>"rtl"===document.documentElement.dir,b=e=>{var t;t=(()=>{const t=p();if(t){const n=e.NAME,i=t.fn[n];t.fn[n]=e.jQueryInterface,t.fn[n].Constructor=e,t.fn[n].noConflict=(()=>(t.fn[n]=i,e.jQueryInterface))}}),"loading"===document.readyState?(g.length||document.addEventListener("DOMContentLoaded",()=>{for(const e of g)e()}),g.push(t)):t()},x=(e,t=[],n=e)=>"function"==typeof e?e(...t):n,v=(e,t,n=!0)=>{if(!n)return void x(e);const i=(e=>{if(!e)return 0;let{transitionDuration:t,transitionDelay:n}=window.getComputedStyle(e);const i=Number.parseFloat(t),o=Number.parseFloat(n);return i||o?(t=t.split(",")[0],n=n.split(",")[0],1e3*(Number.parseFloat(t)+Number.parseFloat(n))):0})(t)+5;let r=!1;const a=({target:n})=>{n===t&&(r=!0,t.removeEventListener(o,a),x(e))};t.addEventListener(o,a),setTimeout(()=>{r||s(t)},i)},y=(e,t,n,i)=>{const o=e.length;let r=e.indexOf(t);return-1===r?!n&&i?e[o-1]:e[0]:(r+=n?1:-1,i&&(r=(r+o)%o),e[Math.max(0,Math.min(r,o-1))])},_=/[^.]*(?=\..*)\.|.*/,F=/\..*/,w=/::\d+$/,C={};let E=1;const A={mouseenter:"mouseover",mouseleave:"mouseout"},k=new Set(["click","dblclick","mouseup","mousedown","contextmenu","mousewheel","DOMMouseScroll","mouseover","mouseout","mousemove","selectstart","selectend","keydown","keypress","keyup","orientationchange","touchstart","touchmove","touchend","touchcancel","pointerdown","pointermove","pointerup","pointerleave","pointercancel","gesturestart","gesturechange","gestureend","focus","blur","change","reset","select","submit","focusin","focusout","load","unload","beforeunload","resize","move","DOMContentLoaded","readystatechange","error","abort","scroll"]);function T(e,t){return t&&`${t}::${E++}`||e.uidEvent||E++}function O(e){const t=T(e);return e.uidEvent=t,C[t]=C[t]||{},C[t]}function S(e,t,n=null){return Object.values(e).find(e=>e.callable===t&&e.delegationSelector===n)}function D(e,t,n){const i="string"==typeof t,o=i?n:t||n;let r=N(e);return k.has(r)||(r=e),[i,o,r]}function j(e,t,n,i,o){if("string"!=typeof t||!e)return;let[r,s,a]=D(t,n,i);t in A&&(s=(e=>(function(t){if(!t.relatedTarget||t.relatedTarget!==t.delegateTarget&&!t.delegateTarget.contains(t.relatedTarget))return e.call(this,t)}))(s));const l=O(e),u=l[a]||(l[a]={}),c=S(u,s,r?n:null);if(c)return void(c.oneOff=c.oneOff&&o);const d=T(s,t.replace(_,"")),f=r?function(e,t,n){return function i(o){const r=e.querySelectorAll(t);for(let{target:s}=o;s&&s!==this;s=s.parentNode)for(const a of r)if(a===s)return M(o,{delegateTarget:s}),i.oneOff&&B.off(e,o.type,t,n),n.apply(s,[o])}}(e,n,s):function(e,t){return function n(i){return M(i,{delegateTarget:e}),n.oneOff&&B.off(e,i.type,t),t.apply(e,[i])}}(e,s);f.delegationSelector=r?n:null,f.callable=s,f.oneOff=o,f.uidEvent=d,u[d]=f,e.addEventListener(a,f,r)}function P(e,t,n,i,o){const r=S(t[n],i,o);r&&(e.removeEventListener(n,r,Boolean(o)),delete t[n][r.uidEvent])}function L(e,t,n,i){const o=t[n]||{};for(const[r,s]of Object.entries(o))r.includes(i)&&P(e,t,n,s.callable,s.delegationSelector)}function N(e){return e=e.replace(F,""),A[e]||e}const B={on(e,t,n,i){j(e,t,n,i,!1)},one(e,t,n,i){j(e,t,n,i,!0)},off(e,t,n,i){if("string"!=typeof t||!e)return;const[o,r,s]=D(t,n,i),a=s!==t,l=O(e),u=l[s]||{},c=t.startsWith(".");if(void 0===r){if(c)for(const n of Object.keys(l))L(e,l,n,t.slice(1));for(const[n,i]of Object.entries(u)){const o=n.replace(w,"");a&&!t.includes(o)||P(e,l,s,i.callable,i.delegationSelector)}}else{if(!Object.keys(u).length)return;P(e,l,s,r,o?n:null)}},trigger(e,t,n){if("string"!=typeof t||!e)return null;const i=p();let o=null,r=!0,s=!0,a=!1;t!==N(t)&&i&&(o=i.Event(t,n),i(e).trigger(o),r=!o.isPropagationStopped(),s=!o.isImmediatePropagationStopped(),a=o.isDefaultPrevented());const l=M(new Event(t,{bubbles:r,cancelable:!0}),n);return a&&l.preventDefault(),s&&e.dispatchEvent(l),l.defaultPrevented&&o&&o.preventDefault(),l}};function M(e,t={}){for(const[n,i]of Object.entries(t))try{e[n]=i}catch(t){Object.defineProperty(e,n,{configurable:!0,get:()=>i})}return e}function I(e){if("true"===e)return!0;if("false"===e)return!1;if(e===Number(e).toString())return Number(e);if(""===e||"null"===e)return null;if("string"!=typeof e)return e;try{return JSON.parse(decodeURIComponent(e))}catch(t){return e}}function R(e){return e.replace(/[A-Z]/g,e=>"-"+e.toLowerCase())}const H={setDataAttribute(e,t,n){e.setAttribute("data-bs-"+R(t),n)},removeDataAttribute(e,t){e.removeAttribute("data-bs-"+R(t))},getDataAttributes(e){if(!e)return{};const t={},n=Object.keys(e.dataset).filter(e=>e.startsWith("bs")&&!e.startsWith("bsConfig"));for(const i of n){let n=i.replace(/^bs/,"");t[n=n.charAt(0).toLowerCase()+n.slice(1,n.length)]=I(e.dataset[i])}return t},getDataAttribute:(e,t)=>I(e.getAttribute("data-bs-"+R(t)))};class ${static get Default(){return{}}static get DefaultType(){return{}}static get NAME(){throw new Error('You have to implement the static method "NAME", for each component!')}_getConfig(e){return e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e}_mergeConfigObj(e,t){const n=a(t)?H.getDataAttribute(t,"config"):{};return{...this.constructor.Default,..."object"==typeof n?n:{},...a(t)?H.getDataAttributes(t):{},..."object"==typeof e?e:{}}}_typeCheckConfig(e,t=this.constructor.DefaultType){for(const[i,o]of Object.entries(t)){const t=e[i],r=a(t)?"element":null==(n=t)?""+n:Object.prototype.toString.call(n).match(/\s([a-z]+)/i)[1].toLowerCase();if(!new RegExp(o).test(r))throw new TypeError(`${this.constructor.NAME.toUpperCase()}: Option "${i}" provided type "${r}" but expected type "${o}".`)}var n}}class z extends ${constructor(e,t){super(),(e=l(e))&&(this._element=e,this._config=this._getConfig(t),i.set(this._element,this.constructor.DATA_KEY,this))}dispose(){i.remove(this._element,this.constructor.DATA_KEY),B.off(this._element,this.constructor.EVENT_KEY);for(const e of Object.getOwnPropertyNames(this))this[e]=null}_queueCallback(e,t,n=!0){v(e,t,n)}_getConfig(e){return e=this._mergeConfigObj(e,this._element),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}static getInstance(e){return i.get(l(e),this.DATA_KEY)}static getOrCreateInstance(e,t={}){return this.getInstance(e)||new this(e,"object"==typeof t?t:null)}static get VERSION(){return"5.3.3"}static get DATA_KEY(){return"bs."+this.NAME}static get EVENT_KEY(){return"."+this.DATA_KEY}static eventName(e){return`${e}${this.EVENT_KEY}`}}const q=e=>{let t=e.getAttribute("data-bs-target");if(!t||"#"===t){let n=e.getAttribute("href");if(!n||!n.includes("#")&&!n.startsWith("."))return null;n.includes("#")&&!n.startsWith("#")&&(n="#"+n.split("#")[1]),t=n&&"#"!==n?n.trim():null}return t?t.split(",").map(e=>r(e)).join(","):null},W={find:(e,t=document.documentElement)=>[].concat(...Element.prototype.querySelectorAll.call(t,e)),findOne:(e,t=document.documentElement)=>Element.prototype.querySelector.call(t,e),children:(e,t)=>[].concat(...e.children).filter(e=>e.matches(t)),parents(e,t){const n=[];let i=e.parentNode.closest(t);for(;i;)n.push(i),i=i.parentNode.closest(t);return n},prev(e,t){let n=e.previousElementSibling;for(;n;){if(n.matches(t))return[n];n=n.previousElementSibling}return[]},next(e,t){let n=e.nextElementSibling;for(;n;){if(n.matches(t))return[n];n=n.nextElementSibling}return[]},focusableChildren(e){const t=["a","button","input","textarea","select","details","[tabindex]",'[contenteditable="true"]'].map(e=>e+':not([tabindex^="-"])').join(",");return this.find(t,e).filter(e=>!c(e)&&u(e))},getSelectorFromElement(e){const t=q(e);return t&&W.findOne(t)?t:null},getElementFromSelector(e){const t=q(e);return t?W.findOne(t):null},getMultipleElementsFromSelector(e){const t=q(e);return t?W.find(t):[]}},G=(e,t="hide")=>{const n="click.dismiss"+e.EVENT_KEY,i=e.NAME;B.on(document,n,`[data-bs-dismiss="${i}"]`,function(n){if(["A","AREA"].includes(this.tagName)&&n.preventDefault(),c(this))return;const o=W.getElementFromSelector(this)||this.closest("."+i);e.getOrCreateInstance(o)[t]()})};class X extends z{static get NAME(){return"alert"}close(){if(B.trigger(this._element,"close.bs.alert").defaultPrevented)return;this._element.classList.remove("show");const e=this._element.classList.contains("fade");this._queueCallback(()=>this._destroyElement(),this._element,e)}_destroyElement(){this._element.remove(),B.trigger(this._element,"closed.bs.alert"),this.dispose()}static jQueryInterface(e){return this.each(function(){const t=X.getOrCreateInstance(this);if("string"==typeof e){if(void 0===t[e]||e.startsWith("_")||"constructor"===e)throw new TypeError(`No method named "${e}"`);t[e](this)}})}}G(X,"close"),b(X);const U='[data-bs-toggle="button"]';class V extends z{static get NAME(){return"button"}toggle(){this._element.setAttribute("aria-pressed",this._element.classList.toggle("active"))}static jQueryInterface(e){return this.each(function(){const t=V.getOrCreateInstance(this);"toggle"===e&&t[e]()})}}B.on(document,"click.bs.button.data-api",U,e=>{e.preventDefault();const t=e.target.closest(U);V.getOrCreateInstance(t).toggle()}),b(V);const K=".bs.swipe",Q={endCallback:null,leftCallback:null,rightCallback:null},Y={endCallback:"(function|null)",leftCallback:"(function|null)",rightCallback:"(function|null)"};class J extends ${constructor(e,t){super(),this._element=e,e&&J.isSupported()&&(this._config=this._getConfig(t),this._deltaX=0,this._supportPointerEvents=Boolean(window.PointerEvent),this._initEvents())}static get Default(){return Q}static get DefaultType(){return Y}static get NAME(){return"swipe"}dispose(){B.off(this._element,K)}_start(e){this._supportPointerEvents?this._eventIsPointerPenTouch(e)&&(this._deltaX=e.clientX):this._deltaX=e.touches[0].clientX}_end(e){this._eventIsPointerPenTouch(e)&&(this._deltaX=e.clientX-this._deltaX),this._handleSwipe(),x(this._config.endCallback)}_move(e){this._deltaX=e.touches&&e.touches.length>1?0:e.touches[0].clientX-this._deltaX}_handleSwipe(){const e=Math.abs(this._deltaX);if(e<=40)return;const t=e/this._deltaX;this._deltaX=0,t&&x(t>0?this._config.rightCallback:this._config.leftCallback)}_initEvents(){this._supportPointerEvents?(B.on(this._element,"pointerdown.bs.swipe",e=>this._start(e)),B.on(this._element,"pointerup.bs.swipe",e=>this._end(e)),this._element.classList.add("pointer-event")):(B.on(this._element,"touchstart.bs.swipe",e=>this._start(e)),B.on(this._element,"touchmove.bs.swipe",e=>this._move(e)),B.on(this._element,"touchend.bs.swipe",e=>this._end(e)))}_eventIsPointerPenTouch(e){return this._supportPointerEvents&&("pen"===e.pointerType||"touch"===e.pointerType)}static isSupported(){return"ontouchstart"in document.documentElement||navigator.maxTouchPoints>0}}const Z=".bs.carousel",ee=".data-api",te="next",ne="prev",ie="left",oe="right",re="slid"+Z,se=`load${Z}${ee}`,ae=`click${Z}${ee}`,le="carousel",ue="active",ce=".active",de=".carousel-item",fe={ArrowLeft:oe,ArrowRight:ie},he={interval:5e3,keyboard:!0,pause:"hover",ride:!1,touch:!0,wrap:!0},pe={interval:"(number|boolean)",keyboard:"boolean",pause:"(string|boolean)",ride:"(boolean|string)",touch:"boolean",wrap:"boolean"};class ge extends z{constructor(e,t){super(e,t),this._interval=null,this._activeElement=null,this._isSliding=!1,this.touchTimeout=null,this._swipeHelper=null,this._indicatorsElement=W.findOne(".carousel-indicators",this._element),this._addEventListeners(),this._config.ride===le&&this.cycle()}static get Default(){return he}static get DefaultType(){return pe}static get NAME(){return"carousel"}next(){this._slide(te)}nextWhenVisible(){!document.hidden&&u(this._element)&&this.next()}prev(){this._slide(ne)}pause(){this._isSliding&&s(this._element),this._clearInterval()}cycle(){this._clearInterval(),this._updateInterval(),this._interval=setInterval(()=>this.nextWhenVisible(),this._config.interval)}_maybeEnableCycle(){this._config.ride&&(this._isSliding?B.one(this._element,re,()=>this.cycle()):this.cycle())}to(e){const t=this._getItems();if(e>t.length-1||e<0)return;if(this._isSliding)return void B.one(this._element,re,()=>this.to(e));const n=this._getItemIndex(this._getActive());if(n===e)return;const i=e>n?te:ne;this._slide(i,t[e])}dispose(){this._swipeHelper&&this._swipeHelper.dispose(),super.dispose()}_configAfterMerge(e){return e.defaultInterval=e.interval,e}_addEventListeners(){this._config.keyboard&&B.on(this._element,"keydown.bs.carousel",e=>this._keydown(e)),"hover"===this._config.pause&&(B.on(this._element,"mouseenter.bs.carousel",()=>this.pause()),B.on(this._element,"mouseleave.bs.carousel",()=>this._maybeEnableCycle())),this._config.touch&&J.isSupported()&&this._addTouchEventListeners()}_addTouchEventListeners(){for(const e of W.find(".carousel-item img",this._element))B.on(e,"dragstart.bs.carousel",e=>e.preventDefault());const e={leftCallback:()=>this._slide(this._directionToOrder(ie)),rightCallback:()=>this._slide(this._directionToOrder(oe)),endCallback:()=>{"hover"===this._config.pause&&(this.pause(),this.touchTimeout&&clearTimeout(this.touchTimeout),this.touchTimeout=setTimeout(()=>this._maybeEnableCycle(),500+this._config.interval))}};this._swipeHelper=new J(this._element,e)}_keydown(e){if(/input|textarea/i.test(e.target.tagName))return;const t=fe[e.key];t&&(e.preventDefault(),this._slide(this._directionToOrder(t)))}_getItemIndex(e){return this._getItems().indexOf(e)}_setActiveIndicatorElement(e){if(!this._indicatorsElement)return;const t=W.findOne(ce,this._indicatorsElement);t.classList.remove(ue),t.removeAttribute("aria-current");const n=W.findOne(`[data-bs-slide-to="${e}"]`,this._indicatorsElement);n&&(n.classList.add(ue),n.setAttribute("aria-current","true"))}_updateInterval(){const e=this._activeElement||this._getActive();if(!e)return;const t=Number.parseInt(e.getAttribute("data-bs-interval"),10);this._config.interval=t||this._config.defaultInterval}_slide(e,t=null){if(this._isSliding)return;const n=this._getActive(),i=e===te,o=t||y(this._getItems(),n,i,this._config.wrap);if(o===n)return;const r=this._getItemIndex(o),s=t=>B.trigger(this._element,t,{relatedTarget:o,direction:this._orderToDirection(e),from:this._getItemIndex(n),to:r});if(s("slide.bs.carousel").defaultPrevented)return;if(!n||!o)return;const a=Boolean(this._interval);this.pause(),this._isSliding=!0,this._setActiveIndicatorElement(r),this._activeElement=o;const l=i?"carousel-item-start":"carousel-item-end",u=i?"carousel-item-next":"carousel-item-prev";o.classList.add(u),h(o),n.classList.add(l),o.classList.add(l),this._queueCallback(()=>{o.classList.remove(l,u),o.classList.add(ue),n.classList.remove(ue,u,l),this._isSliding=!1,s(re)},n,this._isAnimated()),a&&this.cycle()}_isAnimated(){return this._element.classList.contains("slide")}_getActive(){return W.findOne(".active.carousel-item",this._element)}_getItems(){return W.find(de,this._element)}_clearInterval(){this._interval&&(clearInterval(this._interval),this._interval=null)}_directionToOrder(e){return m()?e===ie?ne:te:e===ie?te:ne}_orderToDirection(e){return m()?e===ne?ie:oe:e===ne?oe:ie}static jQueryInterface(e){return this.each(function(){const t=ge.getOrCreateInstance(this,e);if("number"!=typeof e){if("string"==typeof e){if(void 0===t[e]||e.startsWith("_")||"constructor"===e)throw new TypeError(`No method named "${e}"`);t[e]()}}else t.to(e)})}}B.on(document,ae,"[data-bs-slide], [data-bs-slide-to]",function(e){const t=W.getElementFromSelector(this);if(!t||!t.classList.contains(le))return;e.preventDefault();const n=ge.getOrCreateInstance(t),i=this.getAttribute("data-bs-slide-to");return i?(n.to(i),void n._maybeEnableCycle()):"next"===H.getDataAttribute(this,"slide")?(n.next(),void n._maybeEnableCycle()):(n.prev(),void n._maybeEnableCycle())}),B.on(window,se,()=>{const e=W.find('[data-bs-ride="carousel"]');for(const t of e)ge.getOrCreateInstance(t)}),b(ge);const me="show",be="collapse",xe="collapsing",ve=`:scope .${be} .${be}`,ye='[data-bs-toggle="collapse"]',_e={parent:null,toggle:!0},Fe={parent:"(null|element)",toggle:"boolean"};class we extends z{constructor(e,t){super(e,t),this._isTransitioning=!1,this._triggerArray=[];const n=W.find(ye);for(const e of n){const t=W.getSelectorFromElement(e),n=W.find(t).filter(e=>e===this._element);null!==t&&n.length&&this._triggerArray.push(e)}this._initializeChildren(),this._config.parent||this._addAriaAndCollapsedClass(this._triggerArray,this._isShown()),this._config.toggle&&this.toggle()}static get Default(){return _e}static get DefaultType(){return Fe}static get NAME(){return"collapse"}toggle(){this._isShown()?this.hide():this.show()}show(){if(this._isTransitioning||this._isShown())return;let e=[];if(this._config.parent&&(e=this._getFirstLevelChildren(".collapse.show, .collapse.collapsing").filter(e=>e!==this._element).map(e=>we.getOrCreateInstance(e,{toggle:!1}))),e.length&&e[0]._isTransitioning)return;if(B.trigger(this._element,"show.bs.collapse").defaultPrevented)return;for(const t of e)t.hide();const t=this._getDimension();this._element.classList.remove(be),this._element.classList.add(xe),this._element.style[t]=0,this._addAriaAndCollapsedClass(this._triggerArray,!0),this._isTransitioning=!0;const n="scroll"+(t[0].toUpperCase()+t.slice(1));this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove(xe),this._element.classList.add(be,me),this._element.style[t]="",B.trigger(this._element,"shown.bs.collapse")},this._element,!0),this._element.style[t]=this._element[n]+"px"}hide(){if(this._isTransitioning||!this._isShown())return;if(B.trigger(this._element,"hide.bs.collapse").defaultPrevented)return;const e=this._getDimension();this._element.style[e]=this._element.getBoundingClientRect()[e]+"px",h(this._element),this._element.classList.add(xe),this._element.classList.remove(be,me);for(const e of this._triggerArray){const t=W.getElementFromSelector(e);t&&!this._isShown(t)&&this._addAriaAndCollapsedClass([e],!1)}this._isTransitioning=!0,this._element.style[e]="",this._queueCallback(()=>{this._isTransitioning=!1,this._element.classList.remove(xe),this._element.classList.add(be),B.trigger(this._element,"hidden.bs.collapse")},this._element,!0)}_isShown(e=this._element){return e.classList.contains(me)}_configAfterMerge(e){return e.toggle=Boolean(e.toggle),e.parent=l(e.parent),e}_getDimension(){return this._element.classList.contains("collapse-horizontal")?"width":"height"}_initializeChildren(){if(!this._config.parent)return;const e=this._getFirstLevelChildren(ye);for(const t of e){const e=W.getElementFromSelector(t);e&&this._addAriaAndCollapsedClass([t],this._isShown(e))}}_getFirstLevelChildren(e){const t=W.find(ve,this._config.parent);return W.find(e,this._config.parent).filter(e=>!t.includes(e))}_addAriaAndCollapsedClass(e,t){if(e.length)for(const n of e)n.classList.toggle("collapsed",!t),n.setAttribute("aria-expanded",t)}static jQueryInterface(e){const t={};return"string"==typeof e&&/show|hide/.test(e)&&(t.toggle=!1),this.each(function(){const n=we.getOrCreateInstance(this,t);if("string"==typeof e){if(void 0===n[e])throw new TypeError(`No method named "${e}"`);n[e]()}})}}B.on(document,"click.bs.collapse.data-api",ye,function(e){("A"===e.target.tagName||e.delegateTarget&&"A"===e.delegateTarget.tagName)&&e.preventDefault();for(const e of W.getMultipleElementsFromSelector(this))we.getOrCreateInstance(e,{toggle:!1}).toggle()}),b(we);const Ce="dropdown",Ee=".bs.dropdown",Ae=".data-api",ke="ArrowUp",Te="ArrowDown",Oe=`click${Ee}${Ae}`,Se=`keydown${Ee}${Ae}`,De=`keyup${Ee}${Ae}`,je="show",Pe='[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled)',Le=".dropdown-menu",Ne=m()?"top-end":"top-start",Be=m()?"top-start":"top-end",Me=m()?"bottom-end":"bottom-start",Ie=m()?"bottom-start":"bottom-end",Re=m()?"left-start":"right-start",He=m()?"right-start":"left-start",$e={autoClose:!0,boundary:"clippingParents",display:"dynamic",offset:[0,2],popperConfig:null,reference:"toggle"},ze={autoClose:"(boolean|string)",boundary:"(string|element)",display:"string",offset:"(array|string|function)",popperConfig:"(null|object|function)",reference:"(string|element|object)"};class qe extends z{constructor(e,t){super(e,t),this._popper=null,this._parent=this._element.parentNode,this._menu=W.next(this._element,Le)[0]||W.prev(this._element,Le)[0]||W.findOne(Le,this._parent),this._inNavbar=this._detectNavbar()}static get Default(){return $e}static get DefaultType(){return ze}static get NAME(){return Ce}toggle(){return this._isShown()?this.hide():this.show()}show(){if(c(this._element)||this._isShown())return;const e={relatedTarget:this._element};if(!B.trigger(this._element,"show.bs.dropdown",e).defaultPrevented){if(this._createPopper(),"ontouchstart"in document.documentElement&&!this._parent.closest(".navbar-nav"))for(const e of[].concat(...document.body.children))B.on(e,"mouseover",f);this._element.focus(),this._element.setAttribute("aria-expanded",!0),this._menu.classList.add(je),this._element.classList.add(je),B.trigger(this._element,"shown.bs.dropdown",e)}}hide(){if(c(this._element)||!this._isShown())return;const e={relatedTarget:this._element};this._completeHide(e)}dispose(){this._popper&&this._popper.destroy(),super.dispose()}update(){this._inNavbar=this._detectNavbar(),this._popper&&this._popper.update()}_completeHide(e){if(!B.trigger(this._element,"hide.bs.dropdown",e).defaultPrevented){if("ontouchstart"in document.documentElement)for(const e of[].concat(...document.body.children))B.off(e,"mouseover",f);this._popper&&this._popper.destroy(),this._menu.classList.remove(je),this._element.classList.remove(je),this._element.setAttribute("aria-expanded","false"),H.removeDataAttribute(this._menu,"popper"),B.trigger(this._element,"hidden.bs.dropdown",e)}}_getConfig(e){if("object"==typeof(e=super._getConfig(e)).reference&&!a(e.reference)&&"function"!=typeof e.reference.getBoundingClientRect)throw new TypeError(Ce.toUpperCase()+': Option "reference" provided type "object" without a required "getBoundingClientRect" method.');return e}_createPopper(){if(void 0===t)throw new TypeError("Bootstrap's dropdowns require Popper (https://popper.js.org)");let e=this._element;"parent"===this._config.reference?e=this._parent:a(this._config.reference)?e=l(this._config.reference):"object"==typeof this._config.reference&&(e=this._config.reference);const n=this._getPopperConfig();this._popper=t.createPopper(e,this._menu,n)}_isShown(){return this._menu.classList.contains(je)}_getPlacement(){const e=this._parent;if(e.classList.contains("dropend"))return Re;if(e.classList.contains("dropstart"))return He;if(e.classList.contains("dropup-center"))return"top";if(e.classList.contains("dropdown-center"))return"bottom";const t="end"===getComputedStyle(this._menu).getPropertyValue("--bs-position").trim();return e.classList.contains("dropup")?t?Be:Ne:t?Ie:Me}_detectNavbar(){return null!==this._element.closest(".navbar")}_getOffset(){const{offset:e}=this._config;return"string"==typeof e?e.split(",").map(e=>Number.parseInt(e,10)):"function"==typeof e?t=>e(t,this._element):e}_getPopperConfig(){const e={placement:this._getPlacement(),modifiers:[{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"offset",options:{offset:this._getOffset()}}]};return(this._inNavbar||"static"===this._config.display)&&(H.setDataAttribute(this._menu,"popper","static"),e.modifiers=[{name:"applyStyles",enabled:!1}]),{...e,...x(this._config.popperConfig,[e])}}_selectMenuItem({key:e,target:t}){const n=W.find(".dropdown-menu .dropdown-item:not(.disabled):not(:disabled)",this._menu).filter(e=>u(e));n.length&&y(n,t,e===Te,!n.includes(t)).focus()}static jQueryInterface(e){return this.each(function(){const t=qe.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}})}static clearMenus(e){if(2===e.button||"keyup"===e.type&&"Tab"!==e.key)return;const t=W.find('[data-bs-toggle="dropdown"]:not(.disabled):not(:disabled).show');for(const n of t){const t=qe.getInstance(n);if(!t||!1===t._config.autoClose)continue;const i=e.composedPath(),o=i.includes(t._menu);if(i.includes(t._element)||"inside"===t._config.autoClose&&!o||"outside"===t._config.autoClose&&o)continue;if(t._menu.contains(e.target)&&("keyup"===e.type&&"Tab"===e.key||/input|select|option|textarea|form/i.test(e.target.tagName)))continue;const r={relatedTarget:t._element};"click"===e.type&&(r.clickEvent=e),t._completeHide(r)}}static dataApiKeydownHandler(e){const t=/input|textarea/i.test(e.target.tagName),n="Escape"===e.key,i=[ke,Te].includes(e.key);if(!i&&!n)return;if(t&&!n)return;e.preventDefault();const o=this.matches(Pe)?this:W.prev(this,Pe)[0]||W.next(this,Pe)[0]||W.findOne(Pe,e.delegateTarget.parentNode),r=qe.getOrCreateInstance(o);if(i)return e.stopPropagation(),r.show(),void r._selectMenuItem(e);r._isShown()&&(e.stopPropagation(),r.hide(),o.focus())}}B.on(document,Se,Pe,qe.dataApiKeydownHandler),B.on(document,Se,Le,qe.dataApiKeydownHandler),B.on(document,Oe,qe.clearMenus),B.on(document,De,qe.clearMenus),B.on(document,Oe,Pe,function(e){e.preventDefault(),qe.getOrCreateInstance(this).toggle()}),b(qe);const We="backdrop",Ge="mousedown.bs."+We,Xe={className:"modal-backdrop",clickCallback:null,isAnimated:!1,isVisible:!0,rootElement:"body"},Ue={className:"string",clickCallback:"(function|null)",isAnimated:"boolean",isVisible:"boolean",rootElement:"(element|string)"};class Ve extends ${constructor(e){super(),this._config=this._getConfig(e),this._isAppended=!1,this._element=null}static get Default(){return Xe}static get DefaultType(){return Ue}static get NAME(){return We}show(e){if(!this._config.isVisible)return void x(e);this._append();const t=this._getElement();this._config.isAnimated&&h(t),t.classList.add("show"),this._emulateAnimation(()=>{x(e)})}hide(e){this._config.isVisible?(this._getElement().classList.remove("show"),this._emulateAnimation(()=>{this.dispose(),x(e)})):x(e)}dispose(){this._isAppended&&(B.off(this._element,Ge),this._element.remove(),this._isAppended=!1)}_getElement(){if(!this._element){const e=document.createElement("div");e.className=this._config.className,this._config.isAnimated&&e.classList.add("fade"),this._element=e}return this._element}_configAfterMerge(e){return e.rootElement=l(e.rootElement),e}_append(){if(this._isAppended)return;const e=this._getElement();this._config.rootElement.append(e),B.on(e,Ge,()=>{x(this._config.clickCallback)}),this._isAppended=!0}_emulateAnimation(e){v(e,this._getElement(),this._config.isAnimated)}}const Ke=".bs.focustrap",Qe="backward",Ye={autofocus:!0,trapElement:null},Je={autofocus:"boolean",trapElement:"element"};class Ze extends ${constructor(e){super(),this._config=this._getConfig(e),this._isActive=!1,this._lastTabNavDirection=null}static get Default(){return Ye}static get DefaultType(){return Je}static get NAME(){return"focustrap"}activate(){this._isActive||(this._config.autofocus&&this._config.trapElement.focus(),B.off(document,Ke),B.on(document,"focusin.bs.focustrap",e=>this._handleFocusin(e)),B.on(document,"keydown.tab.bs.focustrap",e=>this._handleKeydown(e)),this._isActive=!0)}deactivate(){this._isActive&&(this._isActive=!1,B.off(document,Ke))}_handleFocusin(e){const{trapElement:t}=this._config;if(e.target===document||e.target===t||t.contains(e.target))return;const n=W.focusableChildren(t);0===n.length?t.focus():this._lastTabNavDirection===Qe?n[n.length-1].focus():n[0].focus()}_handleKeydown(e){"Tab"===e.key&&(this._lastTabNavDirection=e.shiftKey?Qe:"forward")}}const et=".fixed-top, .fixed-bottom, .is-fixed, .sticky-top",tt=".sticky-top",nt="padding-right",it="margin-right";class ot{constructor(){this._element=document.body}getWidth(){const e=document.documentElement.clientWidth;return Math.abs(window.innerWidth-e)}hide(){const e=this.getWidth();this._disableOverFlow(),this._setElementAttributes(this._element,nt,t=>t+e),this._setElementAttributes(et,nt,t=>t+e),this._setElementAttributes(tt,it,t=>t-e)}reset(){this._resetElementAttributes(this._element,"overflow"),this._resetElementAttributes(this._element,nt),this._resetElementAttributes(et,nt),this._resetElementAttributes(tt,it)}isOverflowing(){return this.getWidth()>0}_disableOverFlow(){this._saveInitialAttribute(this._element,"overflow"),this._element.style.overflow="hidden"}_setElementAttributes(e,t,n){const i=this.getWidth();this._applyManipulationCallback(e,e=>{if(e!==this._element&&window.innerWidth>e.clientWidth+i)return;this._saveInitialAttribute(e,t);const o=window.getComputedStyle(e).getPropertyValue(t);e.style.setProperty(t,n(Number.parseFloat(o))+"px")})}_saveInitialAttribute(e,t){const n=e.style.getPropertyValue(t);n&&H.setDataAttribute(e,t,n)}_resetElementAttributes(e,t){this._applyManipulationCallback(e,e=>{const n=H.getDataAttribute(e,t);null!==n?(H.removeDataAttribute(e,t),e.style.setProperty(t,n)):e.style.removeProperty(t)})}_applyManipulationCallback(e,t){if(a(e))t(e);else for(const n of W.find(e,this._element))t(n)}}const rt=".bs.modal",st="hidden"+rt,at="show"+rt,lt=`click${rt}.data-api`,ut="modal-open",ct="modal-static",dt={backdrop:!0,focus:!0,keyboard:!0},ft={backdrop:"(boolean|string)",focus:"boolean",keyboard:"boolean"};class ht extends z{constructor(e,t){super(e,t),this._dialog=W.findOne(".modal-dialog",this._element),this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._isShown=!1,this._isTransitioning=!1,this._scrollBar=new ot,this._addEventListeners()}static get Default(){return dt}static get DefaultType(){return ft}static get NAME(){return"modal"}toggle(e){return this._isShown?this.hide():this.show(e)}show(e){this._isShown||this._isTransitioning||B.trigger(this._element,at,{relatedTarget:e}).defaultPrevented||(this._isShown=!0,this._isTransitioning=!0,this._scrollBar.hide(),document.body.classList.add(ut),this._adjustDialog(),this._backdrop.show(()=>this._showElement(e)))}hide(){this._isShown&&!this._isTransitioning&&(B.trigger(this._element,"hide.bs.modal").defaultPrevented||(this._isShown=!1,this._isTransitioning=!0,this._focustrap.deactivate(),this._element.classList.remove("show"),this._queueCallback(()=>this._hideModal(),this._element,this._isAnimated())))}dispose(){B.off(window,rt),B.off(this._dialog,rt),this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}handleUpdate(){this._adjustDialog()}_initializeBackDrop(){return new Ve({isVisible:Boolean(this._config.backdrop),isAnimated:this._isAnimated()})}_initializeFocusTrap(){return new Ze({trapElement:this._element})}_showElement(e){document.body.contains(this._element)||document.body.append(this._element),this._element.style.display="block",this._element.removeAttribute("aria-hidden"),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.scrollTop=0;const t=W.findOne(".modal-body",this._dialog);t&&(t.scrollTop=0),h(this._element),this._element.classList.add("show"),this._queueCallback(()=>{this._config.focus&&this._focustrap.activate(),this._isTransitioning=!1,B.trigger(this._element,"shown.bs.modal",{relatedTarget:e})},this._dialog,this._isAnimated())}_addEventListeners(){B.on(this._element,"keydown.dismiss.bs.modal",e=>{"Escape"===e.key&&(this._config.keyboard?this.hide():this._triggerBackdropTransition())}),B.on(window,"resize.bs.modal",()=>{this._isShown&&!this._isTransitioning&&this._adjustDialog()}),B.on(this._element,"mousedown.dismiss.bs.modal",e=>{B.one(this._element,"click.dismiss.bs.modal",t=>{this._element===e.target&&this._element===t.target&&("static"!==this._config.backdrop?this._config.backdrop&&this.hide():this._triggerBackdropTransition())})})}_hideModal(){this._element.style.display="none",this._element.setAttribute("aria-hidden",!0),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._isTransitioning=!1,this._backdrop.hide(()=>{document.body.classList.remove(ut),this._resetAdjustments(),this._scrollBar.reset(),B.trigger(this._element,st)})}_isAnimated(){return this._element.classList.contains("fade")}_triggerBackdropTransition(){if(B.trigger(this._element,"hidePrevented.bs.modal").defaultPrevented)return;const e=this._element.scrollHeight>document.documentElement.clientHeight,t=this._element.style.overflowY;"hidden"===t||this._element.classList.contains(ct)||(e||(this._element.style.overflowY="hidden"),this._element.classList.add(ct),this._queueCallback(()=>{this._element.classList.remove(ct),this._queueCallback(()=>{this._element.style.overflowY=t},this._dialog)},this._dialog),this._element.focus())}_adjustDialog(){const e=this._element.scrollHeight>document.documentElement.clientHeight,t=this._scrollBar.getWidth(),n=t>0;if(n&&!e){const e=m()?"paddingLeft":"paddingRight";this._element.style[e]=t+"px"}if(!n&&e){const e=m()?"paddingRight":"paddingLeft";this._element.style[e]=t+"px"}}_resetAdjustments(){this._element.style.paddingLeft="",this._element.style.paddingRight=""}static jQueryInterface(e,t){return this.each(function(){const n=ht.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===n[e])throw new TypeError(`No method named "${e}"`);n[e](t)}})}}B.on(document,lt,'[data-bs-toggle="modal"]',function(e){const t=W.getElementFromSelector(this);["A","AREA"].includes(this.tagName)&&e.preventDefault(),B.one(t,at,e=>{e.defaultPrevented||B.one(t,st,()=>{u(this)&&this.focus()})});const n=W.findOne(".modal.show");n&&ht.getInstance(n).hide(),ht.getOrCreateInstance(t).toggle(this)}),G(ht),b(ht);const pt=".bs.offcanvas",gt=".data-api",mt=`load${pt}${gt}`,bt="showing",xt=".offcanvas.show",vt="hidePrevented"+pt,yt="hidden"+pt,_t=`click${pt}${gt}`,Ft={backdrop:!0,keyboard:!0,scroll:!1},wt={backdrop:"(boolean|string)",keyboard:"boolean",scroll:"boolean"};class Ct extends z{constructor(e,t){super(e,t),this._isShown=!1,this._backdrop=this._initializeBackDrop(),this._focustrap=this._initializeFocusTrap(),this._addEventListeners()}static get Default(){return Ft}static get DefaultType(){return wt}static get NAME(){return"offcanvas"}toggle(e){return this._isShown?this.hide():this.show(e)}show(e){this._isShown||B.trigger(this._element,"show.bs.offcanvas",{relatedTarget:e}).defaultPrevented||(this._isShown=!0,this._backdrop.show(),this._config.scroll||(new ot).hide(),this._element.setAttribute("aria-modal",!0),this._element.setAttribute("role","dialog"),this._element.classList.add(bt),this._queueCallback(()=>{this._config.scroll&&!this._config.backdrop||this._focustrap.activate(),this._element.classList.add("show"),this._element.classList.remove(bt),B.trigger(this._element,"shown.bs.offcanvas",{relatedTarget:e})},this._element,!0))}hide(){this._isShown&&(B.trigger(this._element,"hide.bs.offcanvas").defaultPrevented||(this._focustrap.deactivate(),this._element.blur(),this._isShown=!1,this._element.classList.add("hiding"),this._backdrop.hide(),this._queueCallback(()=>{this._element.classList.remove("show","hiding"),this._element.removeAttribute("aria-modal"),this._element.removeAttribute("role"),this._config.scroll||(new ot).reset(),B.trigger(this._element,yt)},this._element,!0)))}dispose(){this._backdrop.dispose(),this._focustrap.deactivate(),super.dispose()}_initializeBackDrop(){const e=Boolean(this._config.backdrop);return new Ve({className:"offcanvas-backdrop",isVisible:e,isAnimated:!0,rootElement:this._element.parentNode,clickCallback:e?()=>{"static"!==this._config.backdrop?this.hide():B.trigger(this._element,vt)}:null})}_initializeFocusTrap(){return new Ze({trapElement:this._element})}_addEventListeners(){B.on(this._element,"keydown.dismiss.bs.offcanvas",e=>{"Escape"===e.key&&(this._config.keyboard?this.hide():B.trigger(this._element,vt))})}static jQueryInterface(e){return this.each(function(){const t=Ct.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e]||e.startsWith("_")||"constructor"===e)throw new TypeError(`No method named "${e}"`);t[e](this)}})}}B.on(document,_t,'[data-bs-toggle="offcanvas"]',function(e){const t=W.getElementFromSelector(this);if(["A","AREA"].includes(this.tagName)&&e.preventDefault(),c(this))return;B.one(t,yt,()=>{u(this)&&this.focus()});const n=W.findOne(xt);n&&n!==t&&Ct.getInstance(n).hide(),Ct.getOrCreateInstance(t).toggle(this)}),B.on(window,mt,()=>{for(const e of W.find(xt))Ct.getOrCreateInstance(e).show()}),B.on(window,"resize.bs.offcanvas",()=>{for(const e of W.find("[aria-modal][class*=show][class*=offcanvas-]"))"fixed"!==getComputedStyle(e).position&&Ct.getOrCreateInstance(e).hide()}),G(Ct),b(Ct);const Et={"*":["class","dir","id","lang","role",/^aria-[\w-]*$/i],a:["target","href","title","rel"],area:[],b:[],br:[],col:[],code:[],dd:[],div:[],dl:[],dt:[],em:[],hr:[],h1:[],h2:[],h3:[],h4:[],h5:[],h6:[],i:[],img:["src","srcset","alt","title","width","height"],li:[],ol:[],p:[],pre:[],s:[],small:[],span:[],sub:[],sup:[],strong:[],u:[],ul:[]},At=new Set(["background","cite","href","itemtype","longdesc","poster","src","xlink:href"]),kt=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:/?#]*(?:[/?#]|$))/i,Tt=(e,t)=>{const n=e.nodeName.toLowerCase();return t.includes(n)?!At.has(n)||Boolean(kt.test(e.nodeValue)):t.filter(e=>e instanceof RegExp).some(e=>e.test(n))},Ot={allowList:Et,content:{},extraClass:"",html:!1,sanitize:!0,sanitizeFn:null,template:"
"},St={allowList:"object",content:"object",extraClass:"(string|function)",html:"boolean",sanitize:"boolean",sanitizeFn:"(null|function)",template:"string"},Dt={entry:"(string|element|function|null)",selector:"(string|element)"};class jt extends ${constructor(e){super(),this._config=this._getConfig(e)}static get Default(){return Ot}static get DefaultType(){return St}static get NAME(){return"TemplateFactory"}getContent(){return Object.values(this._config.content).map(e=>this._resolvePossibleFunction(e)).filter(Boolean)}hasContent(){return this.getContent().length>0}changeContent(e){return this._checkContent(e),this._config.content={...this._config.content,...e},this}toHtml(){const e=document.createElement("div");e.innerHTML=this._maybeSanitize(this._config.template);for(const[t,n]of Object.entries(this._config.content))this._setContent(e,n,t);const t=e.children[0],n=this._resolvePossibleFunction(this._config.extraClass);return n&&t.classList.add(...n.split(" ")),t}_typeCheckConfig(e){super._typeCheckConfig(e),this._checkContent(e.content)}_checkContent(e){for(const[t,n]of Object.entries(e))super._typeCheckConfig({selector:t,entry:n},Dt)}_setContent(e,t,n){const i=W.findOne(n,e);i&&((t=this._resolvePossibleFunction(t))?a(t)?this._putElementInTemplate(l(t),i):this._config.html?i.innerHTML=this._maybeSanitize(t):i.textContent=t:i.remove())}_maybeSanitize(e){return this._config.sanitize?function(e,t,n){if(!e.length)return e;if(n&&"function"==typeof n)return n(e);const i=(new window.DOMParser).parseFromString(e,"text/html"),o=[].concat(...i.body.querySelectorAll("*"));for(const e of o){const n=e.nodeName.toLowerCase();if(!Object.keys(t).includes(n)){e.remove();continue}const i=[].concat(...e.attributes),o=[].concat(t["*"]||[],t[n]||[]);for(const t of i)Tt(t,o)||e.removeAttribute(t.nodeName)}return i.body.innerHTML}(e,this._config.allowList,this._config.sanitizeFn):e}_resolvePossibleFunction(e){return x(e,[this])}_putElementInTemplate(e,t){if(this._config.html)return t.innerHTML="",void t.append(e);t.textContent=e.textContent}}const Pt=new Set(["sanitize","allowList","sanitizeFn"]),Lt="fade",Nt="show",Bt="hide.bs.modal",Mt="hover",It="focus",Rt={AUTO:"auto",TOP:"top",RIGHT:m()?"left":"right",BOTTOM:"bottom",LEFT:m()?"right":"left"},Ht={allowList:Et,animation:!0,boundary:"clippingParents",container:!1,customClass:"",delay:0,fallbackPlacements:["top","right","bottom","left"],html:!1,offset:[0,6],placement:"top",popperConfig:null,sanitize:!0,sanitizeFn:null,selector:!1,template:'',title:"",trigger:"hover focus"},$t={allowList:"object",animation:"boolean",boundary:"(string|element)",container:"(string|element|boolean)",customClass:"(string|function)",delay:"(number|object)",fallbackPlacements:"array",html:"boolean",offset:"(array|string|function)",placement:"(string|function)",popperConfig:"(null|object|function)",sanitize:"boolean",sanitizeFn:"(null|function)",selector:"(string|boolean)",template:"string",title:"(string|element|function)",trigger:"string"};class zt extends z{constructor(e,n){if(void 0===t)throw new TypeError("Bootstrap's tooltips require Popper (https://popper.js.org)");super(e,n),this._isEnabled=!0,this._timeout=0,this._isHovered=null,this._activeTrigger={},this._popper=null,this._templateFactory=null,this._newContent=null,this.tip=null,this._setListeners(),this._config.selector||this._fixTitle()}static get Default(){return Ht}static get DefaultType(){return $t}static get NAME(){return"tooltip"}enable(){this._isEnabled=!0}disable(){this._isEnabled=!1}toggleEnabled(){this._isEnabled=!this._isEnabled}toggle(){this._isEnabled&&(this._activeTrigger.click=!this._activeTrigger.click,this._isShown()?this._leave():this._enter())}dispose(){clearTimeout(this._timeout),B.off(this._element.closest(".modal"),Bt,this._hideModalHandler),this._element.getAttribute("data-bs-original-title")&&this._element.setAttribute("title",this._element.getAttribute("data-bs-original-title")),this._disposePopper(),super.dispose()}show(){if("none"===this._element.style.display)throw new Error("Please use show on visible elements");if(!this._isWithContent()||!this._isEnabled)return;const e=B.trigger(this._element,this.constructor.eventName("show")),t=(d(this._element)||this._element.ownerDocument.documentElement).contains(this._element);if(e.defaultPrevented||!t)return;this._disposePopper();const n=this._getTipElement();this._element.setAttribute("aria-describedby",n.getAttribute("id"));const{container:i}=this._config;if(this._element.ownerDocument.documentElement.contains(this.tip)||(i.append(n),B.trigger(this._element,this.constructor.eventName("inserted"))),this._popper=this._createPopper(n),n.classList.add(Nt),"ontouchstart"in document.documentElement)for(const e of[].concat(...document.body.children))B.on(e,"mouseover",f);this._queueCallback(()=>{B.trigger(this._element,this.constructor.eventName("shown")),!1===this._isHovered&&this._leave(),this._isHovered=!1},this.tip,this._isAnimated())}hide(){if(this._isShown()&&!B.trigger(this._element,this.constructor.eventName("hide")).defaultPrevented){if(this._getTipElement().classList.remove(Nt),"ontouchstart"in document.documentElement)for(const e of[].concat(...document.body.children))B.off(e,"mouseover",f);this._activeTrigger.click=!1,this._activeTrigger[It]=!1,this._activeTrigger[Mt]=!1,this._isHovered=null,this._queueCallback(()=>{this._isWithActiveTrigger()||(this._isHovered||this._disposePopper(),this._element.removeAttribute("aria-describedby"),B.trigger(this._element,this.constructor.eventName("hidden")))},this.tip,this._isAnimated())}}update(){this._popper&&this._popper.update()}_isWithContent(){return Boolean(this._getTitle())}_getTipElement(){return this.tip||(this.tip=this._createTipElement(this._newContent||this._getContentForTemplate())),this.tip}_createTipElement(e){const t=this._getTemplateFactory(e).toHtml();if(!t)return null;t.classList.remove(Lt,Nt),t.classList.add(`bs-${this.constructor.NAME}-auto`);const n=(e=>{do{e+=Math.floor(1e6*Math.random())}while(document.getElementById(e));return e})(this.constructor.NAME).toString();return t.setAttribute("id",n),this._isAnimated()&&t.classList.add(Lt),t}setContent(e){this._newContent=e,this._isShown()&&(this._disposePopper(),this.show())}_getTemplateFactory(e){return this._templateFactory?this._templateFactory.changeContent(e):this._templateFactory=new jt({...this._config,content:e,extraClass:this._resolvePossibleFunction(this._config.customClass)}),this._templateFactory}_getContentForTemplate(){return{".tooltip-inner":this._getTitle()}}_getTitle(){return this._resolvePossibleFunction(this._config.title)||this._element.getAttribute("data-bs-original-title")}_initializeOnDelegatedTarget(e){return this.constructor.getOrCreateInstance(e.delegateTarget,this._getDelegateConfig())}_isAnimated(){return this._config.animation||this.tip&&this.tip.classList.contains(Lt)}_isShown(){return this.tip&&this.tip.classList.contains(Nt)}_createPopper(e){const n=x(this._config.placement,[this,e,this._element]),i=Rt[n.toUpperCase()];return t.createPopper(this._element,e,this._getPopperConfig(i))}_getOffset(){const{offset:e}=this._config;return"string"==typeof e?e.split(",").map(e=>Number.parseInt(e,10)):"function"==typeof e?t=>e(t,this._element):e}_resolvePossibleFunction(e){return x(e,[this._element])}_getPopperConfig(e){const t={placement:e,modifiers:[{name:"flip",options:{fallbackPlacements:this._config.fallbackPlacements}},{name:"offset",options:{offset:this._getOffset()}},{name:"preventOverflow",options:{boundary:this._config.boundary}},{name:"arrow",options:{element:`.${this.constructor.NAME}-arrow`}},{name:"preSetPlacement",enabled:!0,phase:"beforeMain",fn:e=>{this._getTipElement().setAttribute("data-popper-placement",e.state.placement)}}]};return{...t,...x(this._config.popperConfig,[t])}}_setListeners(){const e=this._config.trigger.split(" ");for(const t of e)if("click"===t)B.on(this._element,this.constructor.eventName("click"),this._config.selector,e=>{this._initializeOnDelegatedTarget(e).toggle()});else if("manual"!==t){const e=t===Mt?this.constructor.eventName("mouseenter"):this.constructor.eventName("focusin"),n=t===Mt?this.constructor.eventName("mouseleave"):this.constructor.eventName("focusout");B.on(this._element,e,this._config.selector,e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusin"===e.type?It:Mt]=!0,t._enter()}),B.on(this._element,n,this._config.selector,e=>{const t=this._initializeOnDelegatedTarget(e);t._activeTrigger["focusout"===e.type?It:Mt]=t._element.contains(e.relatedTarget),t._leave()})}this._hideModalHandler=(()=>{this._element&&this.hide()}),B.on(this._element.closest(".modal"),Bt,this._hideModalHandler)}_fixTitle(){const e=this._element.getAttribute("title");e&&(this._element.getAttribute("aria-label")||this._element.textContent.trim()||this._element.setAttribute("aria-label",e),this._element.setAttribute("data-bs-original-title",e),this._element.removeAttribute("title"))}_enter(){this._isShown()||this._isHovered?this._isHovered=!0:(this._isHovered=!0,this._setTimeout(()=>{this._isHovered&&this.show()},this._config.delay.show))}_leave(){this._isWithActiveTrigger()||(this._isHovered=!1,this._setTimeout(()=>{this._isHovered||this.hide()},this._config.delay.hide))}_setTimeout(e,t){clearTimeout(this._timeout),this._timeout=setTimeout(e,t)}_isWithActiveTrigger(){return Object.values(this._activeTrigger).includes(!0)}_getConfig(e){const t=H.getDataAttributes(this._element);for(const e of Object.keys(t))Pt.has(e)&&delete t[e];return e={...t,..."object"==typeof e&&e?e:{}},e=this._mergeConfigObj(e),e=this._configAfterMerge(e),this._typeCheckConfig(e),e}_configAfterMerge(e){return e.container=!1===e.container?document.body:l(e.container),"number"==typeof e.delay&&(e.delay={show:e.delay,hide:e.delay}),"number"==typeof e.title&&(e.title=e.title.toString()),"number"==typeof e.content&&(e.content=e.content.toString()),e}_getDelegateConfig(){const e={};for(const[t,n]of Object.entries(this._config))this.constructor.Default[t]!==n&&(e[t]=n);return e.selector=!1,e.trigger="manual",e}_disposePopper(){this._popper&&(this._popper.destroy(),this._popper=null),this.tip&&(this.tip.remove(),this.tip=null)}static jQueryInterface(e){return this.each(function(){const t=zt.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}})}}b(zt);const qt={...zt.Default,content:"",offset:[0,8],placement:"right",template:'',trigger:"click"},Wt={...zt.DefaultType,content:"(null|string|element|function)"};class Gt extends zt{static get Default(){return qt}static get DefaultType(){return Wt}static get NAME(){return"popover"}_isWithContent(){return this._getTitle()||this._getContent()}_getContentForTemplate(){return{".popover-header":this._getTitle(),".popover-body":this._getContent()}}_getContent(){return this._resolvePossibleFunction(this._config.content)}static jQueryInterface(e){return this.each(function(){const t=Gt.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e]()}})}}b(Gt);const Xt=".bs.scrollspy",Ut="click"+Xt,Vt=`load${Xt}.data-api`,Kt="active",Qt="[href]",Yt=".nav-link",Jt=`${Yt}, .nav-item > ${Yt}, .list-group-item`,Zt={offset:null,rootMargin:"0px 0px -25%",smoothScroll:!1,target:null,threshold:[.1,.5,1]},en={offset:"(number|null)",rootMargin:"string",smoothScroll:"boolean",target:"element",threshold:"array"};class tn extends z{constructor(e,t){super(e,t),this._targetLinks=new Map,this._observableSections=new Map,this._rootElement="visible"===getComputedStyle(this._element).overflowY?null:this._element,this._activeTarget=null,this._observer=null,this._previousScrollData={visibleEntryTop:0,parentScrollTop:0},this.refresh()}static get Default(){return Zt}static get DefaultType(){return en}static get NAME(){return"scrollspy"}refresh(){this._initializeTargetsAndObservables(),this._maybeEnableSmoothScroll(),this._observer?this._observer.disconnect():this._observer=this._getNewObserver();for(const e of this._observableSections.values())this._observer.observe(e)}dispose(){this._observer.disconnect(),super.dispose()}_configAfterMerge(e){return e.target=l(e.target)||document.body,e.rootMargin=e.offset?e.offset+"px 0px -30%":e.rootMargin,"string"==typeof e.threshold&&(e.threshold=e.threshold.split(",").map(e=>Number.parseFloat(e))),e}_maybeEnableSmoothScroll(){this._config.smoothScroll&&(B.off(this._config.target,Ut),B.on(this._config.target,Ut,Qt,e=>{const t=this._observableSections.get(e.target.hash);if(t){e.preventDefault();const n=this._rootElement||window,i=t.offsetTop-this._element.offsetTop;if(n.scrollTo)return void n.scrollTo({top:i,behavior:"smooth"});n.scrollTop=i}}))}_getNewObserver(){const e={root:this._rootElement,threshold:this._config.threshold,rootMargin:this._config.rootMargin};return new IntersectionObserver(e=>this._observerCallback(e),e)}_observerCallback(e){const t=e=>this._targetLinks.get("#"+e.target.id),n=e=>{this._previousScrollData.visibleEntryTop=e.target.offsetTop,this._process(t(e))},i=(this._rootElement||document.documentElement).scrollTop,o=i>=this._previousScrollData.parentScrollTop;this._previousScrollData.parentScrollTop=i;for(const r of e){if(!r.isIntersecting){this._activeTarget=null,this._clearActiveClass(t(r));continue}const e=r.target.offsetTop>=this._previousScrollData.visibleEntryTop;if(o&&e){if(n(r),!i)return}else o||e||n(r)}}_initializeTargetsAndObservables(){this._targetLinks=new Map,this._observableSections=new Map;const e=W.find(Qt,this._config.target);for(const t of e){if(!t.hash||c(t))continue;const e=W.findOne(decodeURI(t.hash),this._element);u(e)&&(this._targetLinks.set(decodeURI(t.hash),t),this._observableSections.set(t.hash,e))}}_process(e){this._activeTarget!==e&&(this._clearActiveClass(this._config.target),this._activeTarget=e,e.classList.add(Kt),this._activateParents(e),B.trigger(this._element,"activate.bs.scrollspy",{relatedTarget:e}))}_activateParents(e){if(e.classList.contains("dropdown-item"))W.findOne(".dropdown-toggle",e.closest(".dropdown")).classList.add(Kt);else for(const t of W.parents(e,".nav, .list-group"))for(const e of W.prev(t,Jt))e.classList.add(Kt)}_clearActiveClass(e){e.classList.remove(Kt);const t=W.find(`${Qt}.${Kt}`,e);for(const e of t)e.classList.remove(Kt)}static jQueryInterface(e){return this.each(function(){const t=tn.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e]||e.startsWith("_")||"constructor"===e)throw new TypeError(`No method named "${e}"`);t[e]()}})}}B.on(window,Vt,()=>{for(const e of W.find('[data-bs-spy="scroll"]'))tn.getOrCreateInstance(e)}),b(tn);const nn="ArrowLeft",on="ArrowRight",rn="ArrowUp",sn="ArrowDown",an="Home",ln="End",un="active",cn="show",dn=".dropdown-toggle",fn=`:not(${dn})`,hn='[data-bs-toggle="tab"], [data-bs-toggle="pill"], [data-bs-toggle="list"]',pn=`.nav-link${fn}, .list-group-item${fn}, [role="tab"]${fn}, ${hn}`,gn=`.${un}[data-bs-toggle="tab"], .${un}[data-bs-toggle="pill"], .${un}[data-bs-toggle="list"]`;class mn extends z{constructor(e){super(e),this._parent=this._element.closest('.list-group, .nav, [role="tablist"]'),this._parent&&(this._setInitialAttributes(this._parent,this._getChildren()),B.on(this._element,"keydown.bs.tab",e=>this._keydown(e)))}static get NAME(){return"tab"}show(){const e=this._element;if(this._elemIsActive(e))return;const t=this._getActiveElem(),n=t?B.trigger(t,"hide.bs.tab",{relatedTarget:e}):null;B.trigger(e,"show.bs.tab",{relatedTarget:t}).defaultPrevented||n&&n.defaultPrevented||(this._deactivate(t,e),this._activate(e,t))}_activate(e,t){e&&(e.classList.add(un),this._activate(W.getElementFromSelector(e)),this._queueCallback(()=>{"tab"===e.getAttribute("role")?(e.removeAttribute("tabindex"),e.setAttribute("aria-selected",!0),this._toggleDropDown(e,!0),B.trigger(e,"shown.bs.tab",{relatedTarget:t})):e.classList.add(cn)},e,e.classList.contains("fade")))}_deactivate(e,t){e&&(e.classList.remove(un),e.blur(),this._deactivate(W.getElementFromSelector(e)),this._queueCallback(()=>{"tab"===e.getAttribute("role")?(e.setAttribute("aria-selected",!1),e.setAttribute("tabindex","-1"),this._toggleDropDown(e,!1),B.trigger(e,"hidden.bs.tab",{relatedTarget:t})):e.classList.remove(cn)},e,e.classList.contains("fade")))}_keydown(e){if(![nn,on,rn,sn,an,ln].includes(e.key))return;e.stopPropagation(),e.preventDefault();const t=this._getChildren().filter(e=>!c(e));let n;if([an,ln].includes(e.key))n=t[e.key===an?0:t.length-1];else{const i=[on,sn].includes(e.key);n=y(t,e.target,i,!0)}n&&(n.focus({preventScroll:!0}),mn.getOrCreateInstance(n).show())}_getChildren(){return W.find(pn,this._parent)}_getActiveElem(){return this._getChildren().find(e=>this._elemIsActive(e))||null}_setInitialAttributes(e,t){this._setAttributeIfNotExists(e,"role","tablist");for(const e of t)this._setInitialAttributesOnChild(e)}_setInitialAttributesOnChild(e){e=this._getInnerElement(e);const t=this._elemIsActive(e),n=this._getOuterElement(e);e.setAttribute("aria-selected",t),n!==e&&this._setAttributeIfNotExists(n,"role","presentation"),t||e.setAttribute("tabindex","-1"),this._setAttributeIfNotExists(e,"role","tab"),this._setInitialAttributesOnTargetPanel(e)}_setInitialAttributesOnTargetPanel(e){const t=W.getElementFromSelector(e);t&&(this._setAttributeIfNotExists(t,"role","tabpanel"),e.id&&this._setAttributeIfNotExists(t,"aria-labelledby",""+e.id))}_toggleDropDown(e,t){const n=this._getOuterElement(e);if(!n.classList.contains("dropdown"))return;const i=(e,i)=>{const o=W.findOne(e,n);o&&o.classList.toggle(i,t)};i(dn,un),i(".dropdown-menu",cn),n.setAttribute("aria-expanded",t)}_setAttributeIfNotExists(e,t,n){e.hasAttribute(t)||e.setAttribute(t,n)}_elemIsActive(e){return e.classList.contains(un)}_getInnerElement(e){return e.matches(pn)?e:W.findOne(pn,e)}_getOuterElement(e){return e.closest(".nav-item, .list-group-item")||e}static jQueryInterface(e){return this.each(function(){const t=mn.getOrCreateInstance(this);if("string"==typeof e){if(void 0===t[e]||e.startsWith("_")||"constructor"===e)throw new TypeError(`No method named "${e}"`);t[e]()}})}}B.on(document,"click.bs.tab",hn,function(e){["A","AREA"].includes(this.tagName)&&e.preventDefault(),c(this)||mn.getOrCreateInstance(this).show()}),B.on(window,"load.bs.tab",()=>{for(const e of W.find(gn))mn.getOrCreateInstance(e)}),b(mn);const bn="show",xn="showing",vn={animation:"boolean",autohide:"boolean",delay:"number"},yn={animation:!0,autohide:!0,delay:5e3};class _n extends z{constructor(e,t){super(e,t),this._timeout=null,this._hasMouseInteraction=!1,this._hasKeyboardInteraction=!1,this._setListeners()}static get Default(){return yn}static get DefaultType(){return vn}static get NAME(){return"toast"}show(){B.trigger(this._element,"show.bs.toast").defaultPrevented||(this._clearTimeout(),this._config.animation&&this._element.classList.add("fade"),this._element.classList.remove("hide"),h(this._element),this._element.classList.add(bn,xn),this._queueCallback(()=>{this._element.classList.remove(xn),B.trigger(this._element,"shown.bs.toast"),this._maybeScheduleHide()},this._element,this._config.animation))}hide(){this.isShown()&&(B.trigger(this._element,"hide.bs.toast").defaultPrevented||(this._element.classList.add(xn),this._queueCallback(()=>{this._element.classList.add("hide"),this._element.classList.remove(xn,bn),B.trigger(this._element,"hidden.bs.toast")},this._element,this._config.animation)))}dispose(){this._clearTimeout(),this.isShown()&&this._element.classList.remove(bn),super.dispose()}isShown(){return this._element.classList.contains(bn)}_maybeScheduleHide(){this._config.autohide&&(this._hasMouseInteraction||this._hasKeyboardInteraction||(this._timeout=setTimeout(()=>{this.hide()},this._config.delay)))}_onInteraction(e,t){switch(e.type){case"mouseover":case"mouseout":this._hasMouseInteraction=t;break;case"focusin":case"focusout":this._hasKeyboardInteraction=t}if(t)return void this._clearTimeout();const n=e.relatedTarget;this._element===n||this._element.contains(n)||this._maybeScheduleHide()}_setListeners(){B.on(this._element,"mouseover.bs.toast",e=>this._onInteraction(e,!0)),B.on(this._element,"mouseout.bs.toast",e=>this._onInteraction(e,!1)),B.on(this._element,"focusin.bs.toast",e=>this._onInteraction(e,!0)),B.on(this._element,"focusout.bs.toast",e=>this._onInteraction(e,!1))}_clearTimeout(){clearTimeout(this._timeout),this._timeout=null}static jQueryInterface(e){return this.each(function(){const t=_n.getOrCreateInstance(this,e);if("string"==typeof e){if(void 0===t[e])throw new TypeError(`No method named "${e}"`);t[e](this)}})}}return G(_n),b(_n),{Alert:X,Button:V,Carousel:ge,Collapse:we,Dropdown:qe,Modal:ht,Offcanvas:Ct,Popover:Gt,ScrollSpy:tn,Tab:mn,Toast:_n,Tooltip:zt}}),function(e){"function"==typeof define&&define.amd?define(["jquery"],e):e("object"==typeof exports?require("jquery"):jQuery)}(function(e){function t(t,i,o){i={content:{message:"object"==typeof i?i.message:i,title:i.title?i.title:"",icon:i.icon?i.icon:"",url:i.url?i.url:"#",target:i.target?i.target:"-"}},o=e.extend(!0,{},i,o),this.settings=e.extend(!0,{},n,o),this._defaults=n,"-"==this.settings.content.target&&(this.settings.content.target=this.settings.url_target),this.animations={start:"webkitAnimationStart oanimationstart MSAnimationStart animationstart",end:"webkitAnimationEnd oanimationend MSAnimationEnd animationend"},"number"==typeof this.settings.offset&&(this.settings.offset={x:this.settings.offset,y:this.settings.offset}),this.init()}var n={element:"body",position:null,type:"info",allow_dismiss:!0,newest_on_top:!1,showProgressbar:!1,placement:{from:"top",align:"right"},offset:20,spacing:10,z_index:1031,delay:5e3,timer:1e3,url_target:"_blank",mouse_over:null,animate:{enter:"animated fadeInDown",exit:"animated fadeOutUp"},onShow:null,onShown:null,onClose:null,onClosed:null,icon_type:"class",template:''};String.format=function(){for(var e=arguments[0],t=1;t .progress-bar').removeClass("progress-bar-"+e.settings.type),e.settings.type=i[t],this.$ele.addClass("alert-"+i[t]).find('[data-notify="progressbar"] > .progress-bar').addClass("progress-bar-"+i[t]);break;case"icon":var o=this.$ele.find('[data-notify="icon"]');"class"==e.settings.icon_type.toLowerCase()?o.removeClass(e.settings.content.icon).addClass(i[t]):(o.is("img")||o.find("img"),o.attr("src",i[t]));break;case"progress":var r=e.settings.delay-e.settings.delay*(i[t]/100);this.$ele.data("notify-delay",r),this.$ele.find('[data-notify="progressbar"] > div').attr("aria-valuenow",i[t]).css("width",i[t]+"%");break;case"url":this.$ele.find('[data-notify="url"]').attr("href",i[t]);break;case"target":this.$ele.find('[data-notify="url"]').attr("target",i[t]);break;default:this.$ele.find('[data-notify="'+t+'"]').html(i[t])}var s=this.$ele.outerHeight()+parseInt(e.settings.spacing)+parseInt(e.settings.offset.y);e.reposition(s)},close:function(){e.close()}}},buildNotify:function(){var t=this.settings.content;this.$ele=e(String.format(this.settings.template,this.settings.type,t.title,t.message,t.url,t.target)),this.$ele.attr("data-notify-position",this.settings.placement.from+"-"+this.settings.placement.align),this.settings.allow_dismiss||this.$ele.find('[data-notify="dismiss"]').css("display","none"),(this.settings.delay<=0&&!this.settings.showProgressbar||!this.settings.showProgressbar)&&this.$ele.find('[data-notify="progressbar"]').remove()},setIcon:function(){"class"==this.settings.icon_type.toLowerCase()?this.$ele.find('[data-notify="icon"]').addClass(this.settings.content.icon):this.$ele.find('[data-notify="icon"]').is("img")?this.$ele.find('[data-notify="icon"]').attr("src",this.settings.content.icon):this.$ele.find('[data-notify="icon"]').append('Notify Icon')},styleDismiss:function(){this.$ele.find('[data-notify="dismiss"]').css({position:"absolute",right:"10px",top:"5px",zIndex:this.settings.z_index+2})},styleURL:function(){this.$ele.find('[data-notify="url"]').css({backgroundImage:"url(data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)",height:"100%",left:"0px",position:"absolute",top:"0px",width:"100%",zIndex:this.settings.z_index+1})},placement:function(){var t=this,n=this.settings.offset.y,i={display:"inline-block",margin:"0px auto",position:this.settings.position?this.settings.position:"body"===this.settings.element?"fixed":"absolute",transition:"all .5s ease-in-out",zIndex:this.settings.z_index},o=!1,r=this.settings;switch(e('[data-notify-position="'+this.settings.placement.from+"-"+this.settings.placement.align+'"]:not([data-closing="true"])').each(function(){return n=Math.max(n,parseInt(e(this).css(r.placement.from))+parseInt(e(this).outerHeight())+parseInt(r.spacing))}),1==this.settings.newest_on_top&&(n=this.settings.offset.y),i[this.settings.placement.from]=n+"px",this.settings.placement.align){case"left":case"right":i[this.settings.placement.align]=this.settings.offset.x+"px";break;case"center":i.left=0,i.right=0}this.$ele.css(i).addClass(this.settings.animate.enter),e.each(Array("webkit","moz","o","ms",""),function(e,n){t.$ele[0].style[n+"AnimationIterationCount"]=1}),e(this.settings.element).append(this.$ele),1==this.settings.newest_on_top&&(n=parseInt(n)+parseInt(this.settings.spacing)+this.$ele.outerHeight(),this.reposition(n)),e.isFunction(t.settings.onShow)&&t.settings.onShow.call(this.$ele),this.$ele.one(this.animations.start,function(e){o=!0}).one(this.animations.end,function(n){e.isFunction(t.settings.onShown)&&t.settings.onShown.call(this)}),setTimeout(function(){o||e.isFunction(t.settings.onShown)&&t.settings.onShown.call(this)},600)},bind:function(){var t=this;if(this.$ele.find('[data-notify="dismiss"]').on("click",function(){t.close()}),this.$ele.mouseover(function(t){e(this).data("data-hover","true")}).mouseout(function(t){e(this).data("data-hover","false")}),this.$ele.data("data-hover","false"),this.settings.delay>0){t.$ele.data("notify-delay",t.settings.delay);var n=setInterval(function(){var e=parseInt(t.$ele.data("notify-delay"))-t.settings.timer;if("false"===t.$ele.data("data-hover")&&"pause"==t.settings.mouse_over||"pause"!=t.settings.mouse_over){var i=(t.settings.delay-e)/t.settings.delay*100;t.$ele.data("notify-delay",e),t.$ele.find('[data-notify="progressbar"] > div').attr("aria-valuenow",i).css("width",i+"%")}e<=-t.settings.timer&&(clearInterval(n),t.close())},t.settings.timer)}},close:function(){var t=this,n=parseInt(this.$ele.css(this.settings.placement.from)),i=!1;this.$ele.data("closing","true").addClass(this.settings.animate.exit),t.reposition(n),e.isFunction(t.settings.onClose)&&t.settings.onClose.call(this.$ele),this.$ele.one(this.animations.start,function(e){i=!0}).one(this.animations.end,function(n){e(this).remove(),e.isFunction(t.settings.onClosed)&&t.settings.onClosed.call(this)}),setTimeout(function(){i||(t.$ele.remove(),t.settings.onClosed&&t.settings.onClosed(t.$ele))},600)},reposition:function(t){var n=this,i='[data-notify-position="'+this.settings.placement.from+"-"+this.settings.placement.align+'"]:not([data-closing="true"])',o=this.$ele.nextAll(i);1==this.settings.newest_on_top&&(o=this.$ele.prevAll(i)),o.each(function(){e(this).css(n.settings.placement.from,t),t=parseInt(t)+parseInt(n.settings.spacing)+e(this).outerHeight()})}}),e.notify=function(e,n){return new t(this,e,n).notify},e.notifyDefaults=function(t){return n=e.extend(!0,{},n,t)},e.notifyClose=function(t){void 0===t||"all"==t?e("[data-notify]").find('[data-notify="dismiss"]').trigger("click"):e('[data-notify-position="'+t+'"]').find('[data-notify="dismiss"]').trigger("click")}}),function(e){var t={};function n(i){if(t[i])return t[i].exports;var o=t[i]={i:i,l:!1,exports:{}};return e[i].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(i,o,function(t){return e[t]}.bind(null,o));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=15)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function e(t,n){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.data=t,this.text=n.text||t,this.options=n}},function(e,t,n){"use strict";var i;function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(t,"__esModule",{value:!0});var r=t.SET_A=0,s=t.SET_B=1,a=t.SET_C=2,l=(t.SHIFT=98,t.START_A=103),u=t.START_B=104,c=t.START_C=105;t.MODULO=103,t.STOP=106,t.FNC1=207,t.SET_BY_CODE=(o(i={},l,r),o(i,u,s),o(i,c,a),i),t.SWAP={101:r,100:s,99:a},t.A_START_CHAR=String.fromCharCode(208),t.B_START_CHAR=String.fromCharCode(209),t.C_START_CHAR=String.fromCharCode(210),t.A_CHARS="[\0-_È-Ï]",t.B_CHARS="[ -È-Ï]",t.C_CHARS="(Ï*[0-9]{2}Ï*)",t.BARS=[11011001100,11001101100,11001100110,10010011e3,10010001100,10001001100,10011001e3,10011000100,10001100100,11001001e3,11001000100,11000100100,10110011100,10011011100,10011001110,10111001100,10011101100,10011100110,11001110010,11001011100,11001001110,11011100100,11001110100,11101101110,11101001100,11100101100,11100100110,11101100100,11100110100,11100110010,11011011e3,11011000110,11000110110,10100011e3,10001011e3,10001000110,10110001e3,10001101e3,10001100010,11010001e3,11000101e3,11000100010,10110111e3,10110001110,10001101110,10111011e3,10111000110,10001110110,11101110110,11010001110,11000101110,11011101e3,11011100010,11011101110,11101011e3,11101000110,11100010110,11101101e3,11101100010,11100011010,11101111010,11001000010,11110001010,1010011e4,10100001100,1001011e4,10010000110,10000101100,10000100110,1011001e4,10110000100,1001101e4,10011000010,10000110100,10000110010,11000010010,1100101e4,11110111010,11000010100,10001111010,10100111100,10010111100,10010011110,10111100100,10011110100,10011110010,11110100100,11110010100,11110010010,11011011110,11011110110,11110110110,10101111e3,10100011110,10001011110,10111101e3,10111100010,11110101e3,11110100010,10111011110,10111101110,11101011110,11110101110,11010000100,1101001e4,11010011100,1100011101011]},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SIDE_BIN="101",t.MIDDLE_BIN="01010",t.BINARIES={L:["0001101","0011001","0010011","0111101","0100011","0110001","0101111","0111011","0110111","0001011"],G:["0100111","0110011","0011011","0100001","0011101","0111001","0000101","0010001","0001001","0010111"],R:["1110010","1100110","1101100","1000010","1011100","1001110","1010000","1000100","1001000","1110100"],O:["0001101","0011001","0010011","0111101","0100011","0110001","0101111","0111011","0110111","0001011"],E:["0100111","0110011","0011011","0100001","0011101","0111001","0000101","0010001","0001001","0010111"]},t.EAN2_STRUCTURE=["LL","LG","GL","GG"],t.EAN5_STRUCTURE=["GGLLL","GLGLL","GLLGL","GLLLG","LGGLL","LLGGL","LLLGG","LGLGL","LGLLG","LLGLG"],t.EAN13_STRUCTURE=["LLLLLL","LLGLGG","LLGGLG","LLGGGL","LGLLGG","LGGLLG","LGGGLL","LGLGLG","LGLGGL","LGGLGL"]},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=n(2);t.default=function(e,t,n){var o=e.split("").map(function(e,n){return i.BINARIES[t[n]]}).map(function(t,n){return t?t[e[n]]:""});if(n){var r=e.length-1;o=o.map(function(e,t){return t=200){r=e.shift()-105;var a=s.SWAP[r];void 0!==a?o=t.next(e,n+1,a):(i!==s.SET_A&&i!==s.SET_B||r!==s.SHIFT||(e[0]=i===s.SET_A?e[0]>95?e[0]-96:e[0]:e[0]<32?e[0]+96:e[0]),o=t.next(e,n+1,i))}else r=t.correctIndex(e,i),o=t.next(e,n+1,i);var l=r*n;return{result:t.getBar(r)+o.result,checksum:l+o.checksum}}}]),t}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.mod10=function(e){for(var t=0,n=0;n10*n.width?10*n.width:n.fontSize,i.guardHeight=n.height+i.fontSize/2+n.textMargin,i}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,s(n(0)).default),i(t,[{key:"encode",value:function(){return this.options.flat?this.encodeFlat():this.encodeGuarded()}},{key:"leftText",value:function(e,t){return this.text.substr(e,t)}},{key:"leftEncode",value:function(e,t){return(0,r.default)(e,t)}},{key:"rightText",value:function(e,t){return this.text.substr(e,t)}},{key:"rightEncode",value:function(e,t){return(0,r.default)(e,t)}},{key:"encodeGuarded",value:function(){var e={fontSize:this.fontSize},t={height:this.guardHeight};return[{data:o.SIDE_BIN,options:t},{data:this.leftEncode(),text:this.leftText(),options:e},{data:o.MIDDLE_BIN,options:t},{data:this.rightEncode(),text:this.rightText(),options:e},{data:o.SIDE_BIN,options:t}]}},{key:"encodeFlat",value:function(){return{data:[o.SIDE_BIN,this.leftEncode(),o.MIDDLE_BIN,this.rightEncode(),o.SIDE_BIN].join(""),text:this.text}}}]),t}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n10*n.width?i.fontSize=10*n.width:i.fontSize=n.fontSize,i.guardHeight=n.height+i.fontSize/2+n.textMargin,i}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r(n(0)).default),i(t,[{key:"valid",value:function(){return-1!==this.data.search(/^[0-9]{12}$/)&&this.data[11]==a(this.data)}},{key:"encode",value:function(){return this.options.flat?this.flatEncoding():this.guardedEncoding()}},{key:"flatEncoding",value:function(){var e="";return e+="101",e+=(0,o.default)(this.data.substr(0,6),"LLLLLL"),e+="01010",e+=(0,o.default)(this.data.substr(6,6),"RRRRRR"),{data:e+="101",text:this.text}}},{key:"guardedEncoding",value:function(){var e=[];return this.displayValue&&e.push({data:"00000000",text:this.text.substr(0,1),options:{textAlign:"left",fontSize:this.fontSize}}),e.push({data:"101"+(0,o.default)(this.data[0],"L"),options:{height:this.guardHeight}}),e.push({data:(0,o.default)(this.data.substr(1,5),"LLLLL"),text:this.text.substr(1,5),options:{fontSize:this.fontSize}}),e.push({data:"01010",options:{height:this.guardHeight}}),e.push({data:(0,o.default)(this.data.substr(6,5),"RRRRR"),text:this.text.substr(6,5),options:{fontSize:this.fontSize}}),e.push({data:(0,o.default)(this.data[11],"R")+"101",options:{height:this.guardHeight}}),this.displayValue&&e.push({data:"00000000",text:this.text.substr(11,1),options:{textAlign:"right",fontSize:this.fontSize}}),e}}]),t}();function a(e){var t,n=0;for(t=1;t<11;t+=2)n+=parseInt(e[t]);for(t=0;t<11;t+=2)n+=3*parseInt(e[t]);return(10-n%10)%10}t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,o=function(){function e(e,t){for(var n=0;n0?t.fontSize+t.textMargin:0)+t.marginTop+t.marginBottom}function s(e,t,n){if(n.displayValue&&tt&&(t=e[n].height);return t},t.getEncodingHeight=r,t.getBarcodePadding=s,t.calculateEncodingAttributes=function(e,t,n){for(var i=0;i=r(e);return t+String.fromCharCode(i?206:205)+a(e,i)}t.default=function(e){var t=void 0;if(s(e).length>=2)t=i.C_START_CHAR+l(e);else{var n=o(e)>r(e);t=(n?i.A_START_CHAR:i.B_START_CHAR)+a(e,n)}return t.replace(/[\xCD\xCE]([^])[\xCD\xCE]/,function(e,t){return String.fromCharCode(203)+t})}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,o=function(){function e(e,t){for(var n=0;n10*n.width?i.fontSize=10*n.width:i.fontSize=n.fontSize,i.guardHeight=n.height+i.fontSize/2+n.textMargin,i}return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}(t,r.default),i(t,[{key:"valid",value:function(){return this.isValid}},{key:"encode",value:function(){return this.options.flat?this.flatEncoding():this.guardedEncoding()}},{key:"flatEncoding",value:function(){var e="";return e+="101",e+=this.encodeMiddleDigits(),{data:e+="010101",text:this.text}}},{key:"guardedEncoding",value:function(){var e=[];return this.displayValue&&e.push({data:"00000000",text:this.text[0],options:{textAlign:"left",fontSize:this.fontSize}}),e.push({data:"101",options:{height:this.guardHeight}}),e.push({data:this.encodeMiddleDigits(),text:this.text.substring(1,7),options:{fontSize:this.fontSize}}),e.push({data:"010101",options:{height:this.guardHeight}}),this.displayValue&&e.push({data:"00000000",text:this.text[7],options:{textAlign:"right",fontSize:this.fontSize}}),e}},{key:"encodeMiddleDigits",value:function(){var e=this.upcA[0],t=this.upcA[this.upcA.length-1],n=c[parseInt(t)][parseInt(e)];return(0,o.default)(this.middleDigits,n)}}]),t}();function f(e,t){for(var n=parseInt(e[e.length-1]),i=u[n],o="",r=0,a=0;a=3&&this.number<=131070}}]),t}();t.pharmacode=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.codabar=void 0;var i,o=function(){function e(e,t){for(var n=0;n0?(n=0,o.textAlign="left"):"right"==e.textAlign?(n=t.width-1,o.textAlign="right"):(n=t.width/2,o.textAlign="center"),o.fillText(t.text,n,i))}},{key:"moveCanvasDrawing",value:function(e){this.canvas.getContext("2d").translate(e.width,0)}},{key:"restoreCanvas",value:function(){this.canvas.getContext("2d").restore()}}]),e}();t.default=a},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i,o=function(){function e(e,t){for(var n=0;n0&&(this.drawRect(s-t.width*r,i,t.width*r,t.height,e),r=0);r>0&&this.drawRect(s-t.width*(r-1),i,t.width*r,t.height,e)}},{key:"drawSVGText",value:function(e,t,n){var i,o,r=this.document.createElementNS(a,"text");t.displayValue&&(r.setAttribute("style","font:"+t.fontOptions+" "+t.fontSize+"px "+t.font),o="top"==t.textPosition?t.fontSize-t.textMargin:t.height+t.textMargin+t.fontSize,"left"==t.textAlign||n.barcodePadding>0?(i=0,r.setAttribute("text-anchor","start")):"right"==t.textAlign?(i=n.width-1,r.setAttribute("text-anchor","end")):(i=n.width/2,r.setAttribute("text-anchor","middle")),r.setAttribute("x",i),r.setAttribute("y",o),r.appendChild(this.document.createTextNode(n.text)),e.appendChild(r))}},{key:"setSvgAttributes",value:function(e,t){var n=this.svg;n.setAttribute("width",e+"px"),n.setAttribute("height",t+"px"),n.setAttribute("x","0px"),n.setAttribute("y","0px"),n.setAttribute("viewBox","0 0 "+e+" "+t),n.setAttribute("xmlns",a),n.setAttribute("version","1.1"),n.setAttribute("style","transform: translate(0,0)")}},{key:"createGroup",value:function(e,t,n){var i=this.document.createElementNS(a,"g");return i.setAttribute("transform","translate("+e+", "+t+")"),n.appendChild(i),i}},{key:"setGroupOptions",value:function(e,t){e.setAttribute("style","fill:"+t.lineColor+";")}},{key:"drawRect",value:function(e,t,n,i,o){var r=this.document.createElementNS(a,"rect");return r.setAttribute("x",e),r.setAttribute("y",t),r.setAttribute("width",n),r.setAttribute("height",i),o.appendChild(r),r}}]),e}();t.default=l},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;ne.length)return;if(!(_ instanceof l)){if(g&&v!=t.length-1){if(f.lastIndex=y,!(k=f.exec(e)))break;for(var F=k.index+(p?k[1].length:0),w=k.index+k[0].length,C=v,E=y,A=t.length;C"+r.content+""},!_self.document)return _self.addEventListener&&(n.disableWorkerMessageHandler||_self.addEventListener("message",function(e){var t=JSON.parse(e.data),i=t.language,o=t.code,r=t.immediateClose;_self.postMessage(n.highlight(o,n.languages[i],i)),r&&_self.close()},!1)),_self.Prism;var o=document.currentScript||[].slice.call(document.getElementsByTagName("script")).pop();return o&&(n.filename=o.src,n.manual||o.hasAttribute("data-manual")||("loading"!==document.readyState?window.requestAnimationFrame?window.requestAnimationFrame(n.highlightAll):window.setTimeout(n.highlightAll,16):document.addEventListener("DOMContentLoaded",n.highlightAll))),_self.Prism}();"undefined"!=typeof module&&module.exports&&(module.exports=Prism),"undefined"!=typeof global&&(global.Prism=Prism),Prism.languages.markup={comment://,prolog:/<\?[\s\S]+?\?>/,doctype://i,cdata://i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/i,inside:{punctuation:[/^=/,{pattern:/(^|[^\\])["']/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.hooks.add("wrap",function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))}),Prism.languages.xml=Prism.languages.markup,Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup,Prism.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-]+?.*?(?:;|(?=\s*\{))/i,inside:{rule:/@[\w-]+/}},url:/url\((?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|.*?)\)/i,selector:/[^{}\s][^{};]*?(?=\s*\{)/,string:{pattern:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},property:/[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i,important:/\B!important\b/i,function:/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:]/},Prism.languages.css.atrule.inside.rest=Prism.languages.css,Prism.languages.markup&&(Prism.languages.insertBefore("markup","tag",{style:{pattern:/()[\s\S]*?(?=<\/style>)/i,lookbehind:!0,inside:Prism.languages.css,alias:"language-css",greedy:!0}}),Prism.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:Prism.languages.markup.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:Prism.languages.css}},alias:"language-css"}},Prism.languages.markup.tag)),Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/[a-z0-9_]+(?=\()/i,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/},Prism.languages.javascript=Prism.languages.extend("clike",{keyword:/\b(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/,number:/\b(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+|NaN|Infinity)\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/,function:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*\()/i,operator:/-[-=]?|\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/}),Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[[^\]\r\n]+]|\\.|[^/\\\[\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})\]]))/,lookbehind:!0,greedy:!0},"function-variable":{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=\s*(?:function\b|(?:\([^()]*\)|[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/i,alias:"function"},constant:/\b[A-Z][A-Z\d_]*\b/}),Prism.languages.insertBefore("javascript","string",{"template-string":{pattern:/`(?:\\[\s\S]|\${[^}]+}|[^\\`])*`/,greedy:!0,inside:{interpolation:{pattern:/\${[^}]+}/,inside:{"interpolation-punctuation":{pattern:/^\${|}$/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}}}),Prism.languages.javascript["template-string"].inside.interpolation.inside.rest=Prism.languages.javascript,Prism.languages.markup&&Prism.languages.insertBefore("markup","tag",{script:{pattern:/()[\s\S]*?(?=<\/script>)/i,lookbehind:!0,inside:Prism.languages.javascript,alias:"language-javascript",greedy:!0}}),Prism.languages.js=Prism.languages.javascript,"undefined"!=typeof self&&self.Prism&&self.document&&document.querySelector&&(self.Prism.fileHighlight=function(){var e={js:"javascript",py:"python",rb:"ruby",ps1:"powershell",psm1:"powershell",sh:"bash",bat:"batch",h:"c",tex:"latex"};Array.prototype.slice.call(document.querySelectorAll("pre[data-src]")).forEach(function(t){for(var n,i=t.getAttribute("data-src"),o=t,r=/\blang(?:uage)?-([\w-]+)\b/i;o&&!r.test(o.className);)o=o.parentNode;if(o&&(n=(t.className.match(r)||[,""])[1]),!n){var s=(i.match(/\.(\w+)$/)||[,""])[1];n=e[s]||s}var a=document.createElement("code");a.className="language-"+n,t.textContent="",a.textContent="Loading…",t.appendChild(a);var l=new XMLHttpRequest;l.open("GET",i,!0),l.onreadystatechange=function(){4==l.readyState&&(l.status<400&&l.responseText?(a.textContent=l.responseText,Prism.highlightElement(a)):400<=l.status?a.textContent="✖ Error "+l.status+" while fetching file: "+l.statusText:a.textContent="✖ Error: File does not exist or is empty")},l.send(null)}),Prism.plugins.toolbar&&Prism.plugins.toolbar.registerButton("download-file",function(e){var t=e.element.parentNode;if(t&&/pre/i.test(t.nodeName)&&t.hasAttribute("data-src")&&t.hasAttribute("data-download-link")){var n=t.getAttribute("data-src"),i=document.createElement("a");return i.textContent=t.getAttribute("data-download-link-label")||"Download",i.setAttribute("download",""),i.href=n,i}})},document.addEventListener("DOMContentLoaded",self.Prism.fileHighlight)),function(e){"use strict";function t(e,t){e.className+=" "+t}function n(e,t){for(var n=e.className.split(" "),i=t.split(" "),o=0;o-1&&n.splice(r,1)}e.className=n.join(" ")}function i(){return"rtl"===e.getComputedStyle(document.body).direction}function o(){return document.documentElement&&document.documentElement.scrollTop||document.body.scrollTop}function r(){return document.documentElement&&document.documentElement.scrollLeft||document.body.scrollLeft}function s(e){for(;e.lastChild;)e.removeChild(e.lastChild)}function a(e){if(null===e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n0){for(var n=[],i=0;i=0?(n(document.body,Fe.noOverflow),k(!1)):e>0&&document.body.className.indexOf(Fe.noOverflow)<0&&(k(!0),t(document.body,Fe.noOverflow))}function k(i){T.defaults.preventBodyShift&&(i&&document.documentElement.scrollHeight>document.documentElement.clientHeight?(Ce=be,we=e.getComputedStyle(document.body).top,t(document.body,Fe.fixed),document.body.style.top=-be+"px"):i||(be=Ce,document.body.style.top=we,n(document.body,Fe.fixed),F()))}function O(e,t){for(var n=y.indexOf(t)+1;n200&&(Ae=e.timeStamp)&&!Ee){var n=e.srcElement||e.target;!0===t.get("closableByDimmer")&&n===t.elements.modal&&j(t)}Ee=!1}function z(e,t){if(Date.now()-ke>200&&(ke=Date.now()))for(var n=0;n-1?(z(t,function(e){return e.key===n}),!1):void 0}Te=!1}function G(e){var t=y[y.length-1],n=e.keyCode;if(n===m||n===b){for(var i=t.__internal.buttons,o=0;op-1&&xe.indexOf(n)>-1)return e.preventDefault(),e.stopPropagation(),z(t,function(e){return e.key===n}),!1}function X(e,t){if(t)t.focus();else{var n=e.__internal.focus,i=n.element;switch(typeof n.element){case"number":e.__internal.buttons.length>n.element&&(i=!0===e.get("basic")?e.elements.reset[0]:e.__internal.buttons[n.element].element);break;case"string":i=e.elements.body.querySelector(n.element);break;case"function":i=n.element.call(e)}!0!==e.get("defaultFocusOff")&&(null!=i||0!==e.__internal.buttons.length)||(i=e.elements.reset[0]),i&&i.focus&&(i.focus(),n.select&&i.select&&i.select())}}function U(e,t){if(!t)for(var n=y.length-1;n>-1;n-=1)if(y[n].isModal()){t=y[n];break}if(t&&t.isModal()){var i,o=t.elements.reset[0],r=t.elements.reset[1],s=e.relatedTarget,a=t.elements.root.contains(s),l=e.srcElement||e.target;if(l===o&&!a||l===r&&s===o)return;l===r||l===document.body?i=o:l===o&&s===r?i=V(t):l===o&&a&&(i=V(t,!0)),X(t,i)}}function V(e,t){var n=[].slice.call(e.elements.dialog.querySelectorAll(v.tabbable));t&&n.reverse();for(var i=0;iRe?t.style.left=Ie+c+"px":t.offsetWidth>=He&&(t.style.left=Ie-c+"px")}}(t,Me.elements.dialog,!Me.get("modal")&&!Me.get("pinned")))}function se(){if(Me){var e=Me;Me=null,n(document.body,Fe.noSelection),n(e.elements.dialog,Fe.capture),Ee=!0,d("onresized",e)}}function ae(e){Me=null;var t=e.elements.dialog;"none"===t.style.maxWidth&&(t.style.maxWidth=t.style.minWidth=t.style.width=t.style.height=t.style.minHeight=t.style.left="",Ie=Number.Nan,Re=He=$e=0)}function le(){for(var e=0;e-1&&e.navigator.userAgent.indexOf("Chrome")<0,_e={dimmer:'
',modal:'
',dialog:'
',reset:'',commands:'
',header:'
',body:'
',content:'
',footer:'',buttons:{primary:'
',auxiliary:'
'},button:'',resizeHandle:'
'},Fe={animationIn:"ajs-in",animationOut:"ajs-out",base:"alertify",basic:"ajs-basic",capture:"ajs-capture",closable:"ajs-closable",fixed:"ajs-fixed",frameless:"ajs-frameless",hidden:"ajs-hidden",maximize:"ajs-maximize",maximized:"ajs-maximized",maximizable:"ajs-maximizable",modeless:"ajs-modeless",movable:"ajs-movable",noSelection:"ajs-no-selection",noOverflow:"ajs-no-overflow",noPadding:"ajs-no-padding",pin:"ajs-pin",pinnable:"ajs-pinnable",prefix:"ajs-",resizable:"ajs-resizable",restore:"ajs-restore",shake:"ajs-shake",unpinned:"ajs-unpinned",noTransition:"ajs-no-transition"},we="",Ce=0,Ee=!1,Ae=0,ke=0,Te=!1,Oe=null,Se=0,De=0,je="pageX",Pe="pageY",Le=null,Ne=!1,Be=null,Me=null,Ie=Number.Nan,Re=0,He=0,$e=0;return{__init:f,isOpen:function(){return this.__internal.isOpen},isModal:function(){return this.elements.root.className.indexOf(Fe.modeless)<0},isMaximized:function(){return this.elements.root.className.indexOf(Fe.maximized)>-1},isPinned:function(){return this.elements.root.className.indexOf(Fe.unpinned)<0},maximize:function(){return this.isMaximized()||B(this),this},restore:function(){return this.isMaximized()&&M(this),this},pin:function(){return this.isPinned()||L(this),this},unpin:function(){return this.isPinned()&&N(this),this},bringToFront:function(){return O(0,this),this},moveTo:function(e,t){if(!isNaN(e)&&!isNaN(t)){d("onmove",this);var n=this.elements.dialog,o=n,r=0,s=0;n.style.left&&(r-=parseInt(n.style.left,10)),n.style.top&&(s-=parseInt(n.style.top,10));do{r+=o.offsetLeft,s+=o.offsetTop}while(o=o.offsetParent);var a=e-r,l=t-s;i()&&(a*=-1),n.style.left=a+"px",n.style.top=l+"px",d("onmoved",this)}return this},resizeTo:function(e,t){var n=parseFloat(e),i=parseFloat(t),o=/(\d*\.\d+|\d+)%/;if(!isNaN(n)&&!isNaN(i)&&!0===this.get("resizable")){d("onresize",this),(""+e).match(o)&&(n=n/100*document.documentElement.clientWidth),(""+t).match(o)&&(i=i/100*document.documentElement.clientHeight);var r=this.elements.dialog;"none"!==r.style.maxWidth&&(r.style.minWidth=(He=r.offsetWidth)+"px"),r.style.maxWidth="none",r.style.minHeight=this.elements.header.offsetHeight+this.elements.footer.offsetHeight+"px",r.style.width=n+"px",r.style.height=i+"px",d("onresized",this)}return this},setting:function(e,t){var n=this,i=D(this,this.__internal.options,function(e,t,i){S(n,e,t,i)},e,t);if("get"===i.op)return i.found?i.value:void 0!==this.settings?D(this,this.settings,this.settingUpdated||function(){},e,t).value:void 0;if("set"===i.op){if(i.items.length>0)for(var o=this.settingUpdated||function(){},r=0;r0){var t=this;this.__internal.timer=setTimeout(function(){t.dismiss()},1e3*this.__internal.delay)}return this},setContent:function(n){if("string"==typeof n?(s(this.element),this.element.innerHTML=n):n instanceof e.HTMLElement&&this.element.firstChild!==n&&(s(this.element),this.element.appendChild(n)),this.__internal.closeButton){var i=document.createElement("span");t(i,f.close),i.setAttribute("data-close",!0),this.element.appendChild(i)}return this},dismissOthers:function(){return k.dismissAll(this),this}})}var c,d=[],f=v.notifier.classes,h=f.base;return{setting:function(e,t){if(i(this),void 0===t)return this.__internal[e];switch(e){case"position":this.__internal.position=t,a(this);break;case"delay":this.__internal.delay=t}return this},set:function(e,t){return this.setting(e,t),this},get:function(e){return this.setting(e)},create:function(e,t){i(this);var n=document.createElement("div");return n.className=f.message+("string"==typeof e&&""!==e?" "+f.prefix+e:""),l(n,t)},dismissAll:function(e){for(var t=d.slice(0),n=0;n>t?1:0;return n}function h(e,t,n,i,o,r,s){var a=p;a(e,t,n[0],i-2,o-2,r,s),a(e,t,n[1],i-2,o-1,r,s),a(e,t,n[2],i-1,o-2,r,s),a(e,t,n[3],i-1,o-1,r,s),a(e,t,n[4],i-1,o,r,s),a(e,t,n[5],i,o-2,r,s),a(e,t,n[6],i,o-1,r,s),a(e,t,n[7],i,o,r,s)}function p(e,t,n,i,o,r,s){i<0&&(i+=r,o+=4-(r+4)%8),o<0&&(o+=s,i+=4-(s+4)%8),1!==t[i][o]&&(e[i][o]=n,t[i][o]=1)}return function(g,m){var b,x=function(e){var t,n,i=[],o=0;for(t=0;t>=8;return i}function F(e,t,n){return String.fromCharCode(n)+String.fromCharCode(t)+String.fromCharCode(e)}function w(e){var t=parseInt("0x"+e.substr(1),16),n=255&t;return F((t>>=8)>>8,255&t,n)}function C(e){return e.match(/#[0-91-F]/gi)}function E(e){for(var t,n,i,o,r,s,a,l="",u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",c=0;c>2,r=(3&t)<<4|(n=e.charCodeAt(c++))>>4,s=(15&n)<<2|(i=e.charCodeAt(c++))>>6,a=63&i,isNaN(n)?s=a=64:isNaN(i)&&(a=64),l+=u.charAt(o)+u.charAt(r)+u.charAt(s)+u.charAt(a);return l}function A(e){var t,n=[];for(n[0]=[],t=0;t
',p='
';for(a=0;a'+i+"
"),k(e,o*d).html(f)}function S(e,t,n,i,o,r){var s,a,l,u,c,d,f,h,p=n.length,g=n[0].length,m=o*g,b=r*p;for(t.showHRI&&(l=y(t.fontSize),b+=y(t.marginHRI)+l),u='',u+='',c='',a=0;a',u+=''+i+"",u+=""),u+="",(h=document.createElement("img")).setAttribute("src","data:image/svg+xml;base64,"+E(u)),k(e,m).append(h)}function D(e,t,n,i,o,r,s,a){var l,u,c,d,f,h,p=e.get(0),g=n.length,m=n[0].length;if(p&&p.getContext){for((c=p.getContext("2d")).lineWidth=1,c.lineCap="butt",c.fillStyle=t.bgColor,c.fillRect(o,r,m*s,g*a),c.fillStyle=t.color,u=0;u?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~",a=0,l=0,u=0;for(t=0;te||this.moduleCount<=e||0>t||this.moduleCount<=t)throw Error(e+","+t);return this.modules[e][t]},getModuleCount:function(){return this.moduleCount},make:function(){if(1>this.typeNumber){var e=1;for(e=1;40>e;e++){for(var t=s.getRSBlocks(e,this.errorCorrectLevel),n=new a,i=0,o=0;o=n;n++)if(!(-1>=e+n||this.moduleCount<=e+n))for(var i=-1;7>=i;i++)-1>=t+i||this.moduleCount<=t+i||(this.modules[e+n][t+i]=0<=n&&6>=n&&(0==i||6==i)||0<=i&&6>=i&&(0==n||6==n)||2<=n&&4>=n&&2<=i&&4>=i)},getBestMaskPattern:function(){for(var e=0,t=0,n=0;8>n;n++){this.makeImpl(!0,n);var i=l.getLostPoint(this);(0==n||e>i)&&(e=i,t=n)}return t},createMovieClip:function(e,t,n){for(e=e.createEmptyMovieClip(t,n),this.make(),t=0;t=r;r++)for(var s=-2;2>=s;s++)this.modules[i+r][o+s]=-2==r||2==r||-2==s||2==s||0==r&&0==s}},setupTypeNumber:function(e){for(var t=l.getBCHTypeNumber(this.typeNumber),n=0;18>n;n++){var i=!e&&1==(t>>n&1);this.modules[Math.floor(n/3)][n%3+this.moduleCount-8-3]=i}for(n=0;18>n;n++)i=!e&&1==(t>>n&1),this.modules[n%3+this.moduleCount-8-3][Math.floor(n/3)]=i},setupTypeInfo:function(e,t){for(var n=l.getBCHTypeInfo(this.errorCorrectLevel<<3|t),i=0;15>i;i++){var o=!e&&1==(n>>i&1);6>i?this.modules[i][8]=o:8>i?this.modules[i+1][8]=o:this.modules[this.moduleCount-15+i][8]=o}for(i=0;15>i;i++)o=!e&&1==(n>>i&1),8>i?this.modules[8][this.moduleCount-i-1]=o:9>i?this.modules[8][15-i-1+1]=o:this.modules[8][15-i-1]=o;this.modules[this.moduleCount-8][8]=!e},mapData:function(e,t){for(var n=-1,i=this.moduleCount-1,o=7,r=0,s=this.moduleCount-1;0a;a++)if(null==this.modules[i][s-a]){var u=!1;r>>o&1)),l.getMask(t,i,s-a)&&(u=!u),this.modules[i][s-a]=u,-1==--o&&(r++,o=7)}if(0>(i+=n)||this.moduleCount<=i){i-=n,n=-n;break}}}},o.PAD0=236,o.PAD1=17,o.createData=function(e,t,n){t=s.getRSBlocks(e,t);for(var i=new a,r=0;r8*e)throw Error("code length overflow. ("+i.getLengthInBits()+">"+8*e+")");for(i.getLengthInBits()+4<=8*e&&i.put(0,4);0!=i.getLengthInBits()%8;)i.putBit(!1);for(;!(i.getLengthInBits()>=8*e||(i.put(o.PAD0,8),i.getLengthInBits()>=8*e));)i.put(o.PAD1,8);return o.createBytes(i,t)},o.createBytes=function(e,t){for(var n=0,i=0,o=0,s=Array(t.length),a=Array(t.length),u=0;u>>=1;return t},getPatternPosition:function(e){return l.PATTERN_POSITION_TABLE[e-1]},getMask:function(e,t,n){switch(e){case 0:return 0==(t+n)%2;case 1:return 0==t%2;case 2:return 0==n%3;case 3:return 0==(t+n)%3;case 4:return 0==(Math.floor(t/2)+Math.floor(n/3))%2;case 5:return 0==t*n%2+t*n%3;case 6:return 0==(t*n%2+t*n%3)%2;case 7:return 0==(t*n%3+(t+n)%2)%2;default:throw Error("bad maskPattern:"+e)}},getErrorCorrectPolynomial:function(e){for(var t=new r([1],0),n=0;nt)switch(e){case 1:return 10;case 2:return 9;case n:case 8:return 8;default:throw Error("mode:"+e)}else if(27>t)switch(e){case 1:return 12;case 2:return 11;case n:return 16;case 8:return 10;default:throw Error("mode:"+e)}else{if(!(41>t))throw Error("type:"+t);switch(e){case 1:return 14;case 2:return 13;case n:return 16;case 8:return 12;default:throw Error("mode:"+e)}}},getLostPoint:function(e){for(var t=e.getModuleCount(),n=0,i=0;i=a;a++)if(!(0>i+a||t<=i+a))for(var l=-1;1>=l;l++)0>o+l||t<=o+l||0==a&&0==l||s==e.isDark(i+a,o+l)&&r++;5e)throw Error("glog("+e+")");return u.LOG_TABLE[e]},gexp:function(e){for(;0>e;)e+=255;for(;256<=e;)e-=255;return u.EXP_TABLE[e]},EXP_TABLE:Array(256),LOG_TABLE:Array(256)},c=0;8>c;c++)u.EXP_TABLE[c]=1<c;c++)u.EXP_TABLE[c]=u.EXP_TABLE[c-4]^u.EXP_TABLE[c-5]^u.EXP_TABLE[c-6]^u.EXP_TABLE[c-8];for(c=0;255>c;c++)u.LOG_TABLE[u.EXP_TABLE[c]]=c;return r.prototype={get:function(e){return this.num[e]},getLength:function(){return this.num.length},multiply:function(e){for(var t=Array(this.getLength()+e.getLength()-1),n=0;nthis.getLength()-e.getLength())return this;for(var t=u.glog(this.get(0))-u.glog(e.get(0)),n=Array(this.getLength()),i=0;i>>7-e%8&1)},put:function(e,t){for(var n=0;n>>t-n-1&1))},getLengthInBits:function(){return this.length},putBit:function(e){var t=Math.floor(this.length/8);this.buffer.length<=t&&this.buffer.push(0),e&&(this.buffer[t]|=128>>>this.length%8),this.length++}},"string"==typeof t&&(t={text:t}),t=e.extend({},{render:"canvas",width:256,height:256,typeNumber:-1,correctLevel:2,background:"#ffffff",foreground:"#000000"},t),this.each(function(){var n;if("canvas"==t.render){(n=new o(t.typeNumber,t.correctLevel)).addData(t.text),n.make();var i=document.createElement("canvas");i.width=t.width,i.height=t.height;for(var r=i.getContext("2d"),s=t.width/n.getModuleCount(),a=t.height/n.getModuleCount(),l=0;l").css("width",t.width+"px").css("height",t.height+"px").css("border","0px").css("border-collapse","collapse").css("background-color",t.background),r=t.width/n.getModuleCount(),s=t.height/n.getModuleCount(),a=0;a").css("height",s+"px").appendTo(i),u=0;u").css("width",r+"px").css("background-color",n.isDark(a,u)?t.foreground:t.background).appendTo(l);n=i,jQuery(n).appendTo(this)})}}(jQuery),function(){"use strict";var e="undefined"!=typeof window&&void 0!==window.document?window.document:{},t="undefined"!=typeof module&&module.exports,n=function(){for(var t,n=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],i=0,o=n.length,r={};i",{class:n+"box "+n+"editor-visible "+n+e.o.lang+" trumbowyg"}),e.isTextarea=e.$ta.is("textarea"),e.isTextarea?(o=e.$ta.val(),e.$ed=i("
"),e.$box.insertAfter(e.$ta).append(e.$ed,e.$ta)):(e.$ed=e.$ta,o=e.$ed.html(),e.$ta=i("