From c34c562c5eb7b8215e30212c2f51723bf6903fb3 Mon Sep 17 00:00:00 2001 From: maliming <6908465+maliming@users.noreply.github.com> Date: Thu, 27 Aug 2020 14:09:53 +0800 Subject: [PATCH 001/242] Add ICurrentImpersonatorUser & ICurrentImpersonatorTenant. --- .../MultiTenancy/CurrentImpersonatorTenant.cs | 19 ++++++ .../ICurrentImpersonatorTenant.cs | 11 ++++ .../Principal/AbpClaimsIdentityExtensions.cs | 59 +++++++++++++++++++ .../Volo/Abp/Security/Claims/AbpClaimTypes.cs | 9 +++ .../Volo/Abp/Users/CurrentImpersonatorUser.cs | 19 ++++++ .../Abp/Users/ICurrentImpersonatorUser.cs | 11 ++++ 6 files changed, 128 insertions(+) create mode 100644 framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/CurrentImpersonatorTenant.cs create mode 100644 framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ICurrentImpersonatorTenant.cs create mode 100644 framework/src/Volo.Abp.Security/Volo/Abp/Users/CurrentImpersonatorUser.cs create mode 100644 framework/src/Volo.Abp.Security/Volo/Abp/Users/ICurrentImpersonatorUser.cs diff --git a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/CurrentImpersonatorTenant.cs b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/CurrentImpersonatorTenant.cs new file mode 100644 index 0000000000..c340899807 --- /dev/null +++ b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/CurrentImpersonatorTenant.cs @@ -0,0 +1,19 @@ +using System; +using System.Security.Principal; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Security.Claims; + +namespace Volo.Abp.MultiTenancy +{ + public class CurrentImpersonatorTenant : ICurrentImpersonatorTenant, ITransientDependency + { + public virtual Guid? Id => _principalAccessor.Principal?.FindImpersonatorTenantId(); + + private readonly ICurrentPrincipalAccessor _principalAccessor; + + public CurrentImpersonatorTenant(ICurrentPrincipalAccessor principalAccessor) + { + _principalAccessor = principalAccessor; + } + } +} diff --git a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ICurrentImpersonatorTenant.cs b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ICurrentImpersonatorTenant.cs new file mode 100644 index 0000000000..e3da12455d --- /dev/null +++ b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ICurrentImpersonatorTenant.cs @@ -0,0 +1,11 @@ +using System; +using JetBrains.Annotations; + +namespace Volo.Abp.MultiTenancy +{ + public interface ICurrentImpersonatorTenant + { + [CanBeNull] + Guid? Id { get; } + } +} diff --git a/framework/src/Volo.Abp.Security/System/Security/Principal/AbpClaimsIdentityExtensions.cs b/framework/src/Volo.Abp.Security/System/Security/Principal/AbpClaimsIdentityExtensions.cs index f4e4bba1a0..dd57eeacaf 100644 --- a/framework/src/Volo.Abp.Security/System/Security/Principal/AbpClaimsIdentityExtensions.cs +++ b/framework/src/Volo.Abp.Security/System/Security/Principal/AbpClaimsIdentityExtensions.cs @@ -39,6 +39,37 @@ namespace System.Security.Principal return Guid.Parse(userIdOrNull.Value); } + public static Guid? FindImpersonatorUserId([NotNull] this ClaimsPrincipal principal) + { + Check.NotNull(principal, nameof(principal)); + + var impersonatorUserIdOrNull = principal.Claims?.FirstOrDefault(c => c.Type == AbpClaimTypes.ImpersonatorUserId); + if (impersonatorUserIdOrNull == null || impersonatorUserIdOrNull.Value.IsNullOrWhiteSpace()) + { + return null; + } + if (Guid.TryParse(impersonatorUserIdOrNull.Value, out Guid result)) + { + return result; + } + return null; + } + + public static Guid? FindImpersonatorUserId([NotNull] this IIdentity identity) + { + Check.NotNull(identity, nameof(identity)); + + var claimsIdentity = identity as ClaimsIdentity; + + var impersonatorUserIdOrNull = claimsIdentity?.Claims?.FirstOrDefault(c => c.Type == AbpClaimTypes.ImpersonatorUserId); + if (impersonatorUserIdOrNull == null || impersonatorUserIdOrNull.Value.IsNullOrWhiteSpace()) + { + return null; + } + + return Guid.Parse(impersonatorUserIdOrNull.Value); + } + public static Guid? FindTenantId([NotNull] this ClaimsPrincipal principal) { Check.NotNull(principal, nameof(principal)); @@ -67,6 +98,34 @@ namespace System.Security.Principal return Guid.Parse(tenantIdOrNull.Value); } + public static Guid? FindImpersonatorTenantId([NotNull] this ClaimsPrincipal principal) + { + Check.NotNull(principal, nameof(principal)); + + var impersonatorTenantIdOrNull = principal.Claims?.FirstOrDefault(c => c.Type == AbpClaimTypes.ImpersonatorTenantId); + if (impersonatorTenantIdOrNull == null || impersonatorTenantIdOrNull.Value.IsNullOrWhiteSpace()) + { + return null; + } + + return Guid.Parse(impersonatorTenantIdOrNull.Value); + } + + public static Guid? FindImpersonatorTenantId([NotNull] this IIdentity identity) + { + Check.NotNull(identity, nameof(identity)); + + var claimsIdentity = identity as ClaimsIdentity; + + var impersonatorTenantIdOrNull = claimsIdentity?.Claims?.FirstOrDefault(c => c.Type == AbpClaimTypes.ImpersonatorTenantId); + if (impersonatorTenantIdOrNull == null || impersonatorTenantIdOrNull.Value.IsNullOrWhiteSpace()) + { + return null; + } + + return Guid.Parse(impersonatorTenantIdOrNull.Value); + } + public static string FindClientId([NotNull] this ClaimsPrincipal principal) { Check.NotNull(principal, nameof(principal)); diff --git a/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/AbpClaimTypes.cs b/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/AbpClaimTypes.cs index d0b883e4f3..b65a1f88a9 100644 --- a/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/AbpClaimTypes.cs +++ b/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/AbpClaimTypes.cs @@ -18,6 +18,11 @@ namespace Volo.Abp.Security.Claims /// public static string UserId { get; set; } = ClaimTypes.NameIdentifier; + /// + /// Default: "impersonator_userid". + /// + public static string ImpersonatorUserId { get; set; } = "impersonator_userid"; + /// /// Default: /// @@ -48,6 +53,10 @@ namespace Volo.Abp.Security.Claims /// public static string TenantId { get; set; } = "tenantid"; + /// + /// Default: "impersonator_tenantid". + /// + public static string ImpersonatorTenantId { get; set; } = "impersonator_tenantid"; /// /// Default: "editionid". diff --git a/framework/src/Volo.Abp.Security/Volo/Abp/Users/CurrentImpersonatorUser.cs b/framework/src/Volo.Abp.Security/Volo/Abp/Users/CurrentImpersonatorUser.cs new file mode 100644 index 0000000000..275a35106a --- /dev/null +++ b/framework/src/Volo.Abp.Security/Volo/Abp/Users/CurrentImpersonatorUser.cs @@ -0,0 +1,19 @@ +using System; +using System.Security.Principal; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Security.Claims; + +namespace Volo.Abp.Users +{ + public class CurrentImpersonatorUser : ICurrentImpersonatorUser, ITransientDependency + { + public virtual Guid? Id => _principalAccessor.Principal?.FindImpersonatorUserId(); + + private readonly ICurrentPrincipalAccessor _principalAccessor; + + public CurrentImpersonatorUser(ICurrentPrincipalAccessor principalAccessor) + { + _principalAccessor = principalAccessor; + } + } +} diff --git a/framework/src/Volo.Abp.Security/Volo/Abp/Users/ICurrentImpersonatorUser.cs b/framework/src/Volo.Abp.Security/Volo/Abp/Users/ICurrentImpersonatorUser.cs new file mode 100644 index 0000000000..8dcdb69aef --- /dev/null +++ b/framework/src/Volo.Abp.Security/Volo/Abp/Users/ICurrentImpersonatorUser.cs @@ -0,0 +1,11 @@ +using System; +using JetBrains.Annotations; + +namespace Volo.Abp.Users +{ + public interface ICurrentImpersonatorUser + { + [CanBeNull] + Guid? Id { get; } + } +} From d04425551661fcdc00bfdf9c5287cf34c7495bf6 Mon Sep 17 00:00:00 2001 From: maliming <6908465+maliming@users.noreply.github.com> Date: Sun, 30 Aug 2020 18:07:19 +0800 Subject: [PATCH 002/242] Add IdentityLinkUser aggregate root to Identity module. --- .../AbpIdentityServiceCollectionExtensions.cs | 5 +- .../Identity/AbpUserClaimsPrincipalFactory.cs | 34 +++++++- .../Identity/IIdentityLinkUserRepository.cs | 20 +++++ .../Volo/Abp/Identity/IdentityLinkUser.cs | 36 ++++++++ .../Volo/Abp/Identity/IdentityLinkUserInfo.cs | 17 ++++ .../Abp/Identity/IdentityUserLinkManager.cs | 86 +++++++++++++++++++ .../Abp/Identity/LinkUserTokenProvider.cs | 17 ++++ .../EfCoreIdentityLinkUserRepository.cs | 39 +++++++++ .../EntityFrameworkCore/IIdentityDbContext.cs | 2 + .../EntityFrameworkCore/IdentityDbContext.cs | 2 + ...IdentityDbContextModelBuilderExtensions.cs | 16 ++++ .../MongoDB/AbpIdentityMongoDbContext.cs | 2 + .../AbpIdentityMongoDbContextExtensions.cs | 5 ++ .../MongoDB/AbpIdentityMongoDbModule.cs | 1 + .../MongoDB/IAbpIdentityMongoDbContext.cs | 2 + .../MongoIdentityLinkUserRepository.cs | 38 ++++++++ .../AspNetCore/LinkUserTokenProvider_Tests.cs | 20 +++++ .../Identity/IdentityLinkUserManager_Tests.cs | 86 +++++++++++++++++++ .../IdentityLinkUserRepository_Tests.cs | 7 ++ .../IdentityLinkUserRepository_Tests.cs | 10 +++ .../Identity/AbpIdentityTestDataBuilder.cs | 20 ++++- .../IdentityLinkUserRepository_Tests.cs | 58 +++++++++++++ 22 files changed, 516 insertions(+), 7 deletions(-) create mode 100644 modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IIdentityLinkUserRepository.cs create mode 100644 modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityLinkUser.cs create mode 100644 modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityLinkUserInfo.cs create mode 100644 modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserLinkManager.cs create mode 100644 modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/LinkUserTokenProvider.cs create mode 100644 modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreIdentityLinkUserRepository.cs create mode 100644 modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityLinkUserRepository.cs create mode 100644 modules/identity/test/Volo.Abp.Identity.AspNetCore.Tests/Volo/Abp/Identity/AspNetCore/LinkUserTokenProvider_Tests.cs create mode 100644 modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/IdentityLinkUserManager_Tests.cs create mode 100644 modules/identity/test/Volo.Abp.Identity.EntityFrameworkCore.Tests/Volo/Abp/Identity/EntityFrameworkCore/IdentityLinkUserRepository_Tests.cs create mode 100644 modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/IdentityLinkUserRepository_Tests.cs create mode 100644 modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/IdentityLinkUserRepository_Tests.cs diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Microsoft/Extensions/DependencyInjection/AbpIdentityServiceCollectionExtensions.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Microsoft/Extensions/DependencyInjection/AbpIdentityServiceCollectionExtensions.cs index c2d91eafd7..c37889a897 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Microsoft/Extensions/DependencyInjection/AbpIdentityServiceCollectionExtensions.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Microsoft/Extensions/DependencyInjection/AbpIdentityServiceCollectionExtensions.cs @@ -29,11 +29,12 @@ namespace Microsoft.Extensions.DependencyInjection //AbpRoleStore services.TryAddScoped(); services.TryAddScoped(typeof(IRoleStore), provider => provider.GetService(typeof(IdentityRoleStore))); - + return services .AddIdentityCore(setupAction) .AddRoles() - .AddClaimsPrincipalFactory(); + .AddClaimsPrincipalFactory() + .AddTokenProvider(LinkUserTokenProvider.LinkUserTokenProviderName); } } } diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpUserClaimsPrincipalFactory.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpUserClaimsPrincipalFactory.cs index 8db2b95942..aa6263175a 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpUserClaimsPrincipalFactory.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpUserClaimsPrincipalFactory.cs @@ -4,22 +4,31 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Identity; using Microsoft.Extensions.Options; using Volo.Abp.DependencyInjection; +using Volo.Abp.MultiTenancy; using Volo.Abp.Security.Claims; using Volo.Abp.Uow; +using Volo.Abp.Users; namespace Volo.Abp.Identity { public class AbpUserClaimsPrincipalFactory : UserClaimsPrincipalFactory, ITransientDependency { + protected ICurrentImpersonatorUser CurrentImpersonatorUser { get; } + protected ICurrentImpersonatorTenant CurrentImpersonatorTenant { get; } + public AbpUserClaimsPrincipalFactory( UserManager userManager, - RoleManager roleManager, - IOptions options) + RoleManager roleManager, + IOptions options, + ICurrentImpersonatorUser currentImpersonatorUser, + ICurrentImpersonatorTenant currentImpersonatorTenant) : base( - userManager, - roleManager, + userManager, + roleManager, options) { + CurrentImpersonatorUser = currentImpersonatorUser; + CurrentImpersonatorTenant = currentImpersonatorTenant; } [UnitOfWork] @@ -34,6 +43,23 @@ namespace Volo.Abp.Identity .AddClaim(new Claim(AbpClaimTypes.TenantId, user.TenantId.ToString())); } + if (CurrentImpersonatorUser.Id != user.Id || CurrentImpersonatorTenant.Id != user.TenantId) + { + if (CurrentImpersonatorUser.Id.HasValue) + { + principal.Identities + .First() + .AddClaim(new Claim(AbpClaimTypes.ImpersonatorUserId, CurrentImpersonatorUser.Id.ToString())); + } + + if (CurrentImpersonatorTenant.Id.HasValue) + { + principal.Identities + .First() + .AddClaim(new Claim(AbpClaimTypes.ImpersonatorTenantId, CurrentImpersonatorTenant.Id.ToString())); + } + } + return principal; } } diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IIdentityLinkUserRepository.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IIdentityLinkUserRepository.cs new file mode 100644 index 0000000000..2040924d10 --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IIdentityLinkUserRepository.cs @@ -0,0 +1,20 @@ +using System; +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; +using Volo.Abp.Domain.Repositories; + +namespace Volo.Abp.Identity +{ + public interface IIdentityLinkUserRepository : IBasicRepository + { + Task FindAsync( + IdentityLinkUserInfo sourceLinkUserInfo, + IdentityLinkUserInfo targetLinkUserInfo, + CancellationToken cancellationToken = default); + + Task> GetListAsync( + IdentityLinkUserInfo linkUserInfo, + CancellationToken cancellationToken = default); + } +} diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityLinkUser.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityLinkUser.cs new file mode 100644 index 0000000000..ca8fe157d5 --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityLinkUser.cs @@ -0,0 +1,36 @@ +using System; +using Volo.Abp.Domain.Entities; + +namespace Volo.Abp.Identity +{ + public class IdentityLinkUser : AggregateRoot + { + public IdentityLinkUser(Guid id, IdentityLinkUserInfo sourceUser, IdentityLinkUserInfo targetUser) + : base(id) + { + SourceUserId = sourceUser.UserId; + SourceTenantId = sourceUser.TenantId; + + TargetUserId = targetUser.UserId; + TargetTenantId = targetUser.TenantId; + } + + public IdentityLinkUser(Guid id, Guid sourceUserId, Guid? sourceTenantId, Guid targetUserId, Guid? targetTenantId) + : base(id) + { + SourceUserId = sourceUserId; + SourceTenantId = sourceTenantId; + + TargetUserId = targetUserId; + TargetTenantId = targetTenantId; + } + + public virtual Guid SourceUserId { get; protected set; } + + public virtual Guid? SourceTenantId { get; protected set; } + + public virtual Guid TargetUserId { get; protected set; } + + public virtual Guid? TargetTenantId { get; protected set; } + } +} diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityLinkUserInfo.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityLinkUserInfo.cs new file mode 100644 index 0000000000..68edd57f4a --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityLinkUserInfo.cs @@ -0,0 +1,17 @@ +using System; + +namespace Volo.Abp.Identity +{ + public class IdentityLinkUserInfo + { + public virtual Guid UserId { get; set; } + + public virtual Guid? TenantId { get; set; } + + public IdentityLinkUserInfo(Guid userId, Guid? tenantId) + { + UserId = userId; + TenantId = tenantId; + } + } +} diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserLinkManager.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserLinkManager.cs new file mode 100644 index 0000000000..a067b259f4 --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityUserLinkManager.cs @@ -0,0 +1,86 @@ +using System; +using System.Threading.Tasks; +using Volo.Abp.Domain.Services; +using Volo.Abp.MultiTenancy; + +namespace Volo.Abp.Identity +{ + public class IdentityLinkUserManager : DomainService + { + protected IIdentityLinkUserRepository IdentityLinkUserRepository { get; } + + protected IdentityUserManager UserManager { get; } + + protected new ICurrentTenant CurrentTenant { get; } + + public IdentityLinkUserManager(IIdentityLinkUserRepository identityLinkUserRepository, IdentityUserManager userManager, ICurrentTenant currentTenant) + { + IdentityLinkUserRepository = identityLinkUserRepository; + UserManager = userManager; + CurrentTenant = currentTenant; + } + + public virtual async Task LinkAsync(IdentityLinkUserInfo sourceLinkUser, IdentityLinkUserInfo targetLinkUser) + { + if (sourceLinkUser.UserId == targetLinkUser.UserId && sourceLinkUser.TenantId == targetLinkUser.TenantId) + { + return; + } + + if (await IsLinkedAsync(sourceLinkUser, targetLinkUser)) + { + return; + } + + var userLink = new IdentityLinkUser( + GuidGenerator.Create(), + sourceLinkUser, + targetLinkUser); + await IdentityLinkUserRepository.InsertAsync(userLink, true); + } + + public virtual async Task IsLinkedAsync(IdentityLinkUserInfo sourceLinkUser, IdentityLinkUserInfo targetLinkUser) + { + return await IdentityLinkUserRepository.FindAsync(sourceLinkUser, targetLinkUser) != null; + } + + public virtual async Task UnlinkAsync(IdentityLinkUserInfo sourceLinkUser, IdentityLinkUserInfo targetLinkUser) + { + if (!await IsLinkedAsync(sourceLinkUser, targetLinkUser)) + { + return; + } + + var linkedUser = await IdentityLinkUserRepository.FindAsync(sourceLinkUser, targetLinkUser); + if (linkedUser != null) + { + await IdentityLinkUserRepository.DeleteAsync(linkedUser); + } + } + + public virtual async Task GenerateLinkTokenAsync(IdentityLinkUserInfo targetLinkUser) + { + using (CurrentTenant.Change(targetLinkUser.TenantId)) + { + var user = await UserManager.GetByIdAsync(targetLinkUser.UserId); + return await UserManager.GenerateUserTokenAsync( + user, + LinkUserTokenProvider.LinkUserTokenProviderName, + LinkUserTokenProvider.LinkUserTokenPurpose); + } + } + + public virtual async Task VerifyLinkTokenAsync(IdentityLinkUserInfo targetLinkUser, string token) + { + using (CurrentTenant.Change(targetLinkUser.TenantId)) + { + var user = await UserManager.GetByIdAsync(targetLinkUser.UserId); + return await UserManager.VerifyUserTokenAsync( + user, + LinkUserTokenProvider.LinkUserTokenProviderName, + LinkUserTokenProvider.LinkUserTokenPurpose, + token); + } + } + } +} diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/LinkUserTokenProvider.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/LinkUserTokenProvider.cs new file mode 100644 index 0000000000..706c045578 --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/LinkUserTokenProvider.cs @@ -0,0 +1,17 @@ +using System.Threading.Tasks; +using Microsoft.AspNetCore.Identity; + +namespace Volo.Abp.Identity +{ + public class LinkUserTokenProvider : TotpSecurityStampBasedTokenProvider + { + public const string LinkUserTokenProviderName = "AbpLinkUser"; + + public const string LinkUserTokenPurpose = "AbpLinkUserLogin"; + + public override Task CanGenerateTwoFactorTokenAsync(UserManager manager, IdentityUser user) + { + return Task.FromResult(false); + } + } +} diff --git a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreIdentityLinkUserRepository.cs b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreIdentityLinkUserRepository.cs new file mode 100644 index 0000000000..a1ea1fd7ba --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreIdentityLinkUserRepository.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Dynamic.Core; +using System.Threading; +using System.Threading.Tasks; +using Microsoft.EntityFrameworkCore; +using Volo.Abp.Domain.Repositories.EntityFrameworkCore; +using Volo.Abp.EntityFrameworkCore; + +namespace Volo.Abp.Identity.EntityFrameworkCore +{ + public class EfCoreIdentityLinkUserRepository : EfCoreRepository, IIdentityLinkUserRepository + { + public EfCoreIdentityLinkUserRepository(IDbContextProvider dbContextProvider) + : base(dbContextProvider) + { + + } + + public async Task FindAsync(IdentityLinkUserInfo sourceLinkUserInfo, IdentityLinkUserInfo targetLinkUserInfo, CancellationToken cancellationToken = default) + { + return await DbSet.FirstOrDefaultAsync(x => + x.SourceUserId == sourceLinkUserInfo.UserId && x.SourceTenantId == sourceLinkUserInfo.TenantId && + x.TargetUserId == targetLinkUserInfo.UserId && x.TargetTenantId == targetLinkUserInfo.TenantId || + x.TargetUserId == sourceLinkUserInfo.UserId && x.TargetTenantId == sourceLinkUserInfo.TenantId && + x.SourceUserId == targetLinkUserInfo.UserId && x.SourceTenantId == targetLinkUserInfo.TenantId + , cancellationToken: GetCancellationToken(cancellationToken)); + } + + public async Task> GetListAsync(IdentityLinkUserInfo linkUserInfo, CancellationToken cancellationToken = default) + { + return await DbSet.Where(x => + x.SourceUserId == linkUserInfo.UserId && x.SourceTenantId == linkUserInfo.TenantId || + x.TargetUserId == linkUserInfo.UserId && x.TargetTenantId == linkUserInfo.TenantId) + .ToListAsync(cancellationToken: GetCancellationToken(cancellationToken)); + } + } +} diff --git a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IIdentityDbContext.cs b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IIdentityDbContext.cs index 48da4daf87..d0e279b7ff 100644 --- a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IIdentityDbContext.cs +++ b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IIdentityDbContext.cs @@ -17,5 +17,7 @@ namespace Volo.Abp.Identity.EntityFrameworkCore DbSet OrganizationUnits { get; set; } DbSet IdentitySecurityLogs { get; set; } + + DbSet IdentityLinkUsers { get; set; } } } diff --git a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContext.cs b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContext.cs index 16679429b8..d6f7d9a9b3 100644 --- a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContext.cs +++ b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContext.cs @@ -20,6 +20,8 @@ namespace Volo.Abp.Identity.EntityFrameworkCore public DbSet IdentitySecurityLogs { get; set; } + public DbSet IdentityLinkUsers { get; set; } + public IdentityDbContext(DbContextOptions options) : base(options) { diff --git a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContextModelBuilderExtensions.cs b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContextModelBuilderExtensions.cs index 8efe82c5ce..a533ce6340 100644 --- a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContextModelBuilderExtensions.cs +++ b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContextModelBuilderExtensions.cs @@ -233,6 +233,22 @@ namespace Volo.Abp.Identity.EntityFrameworkCore b.HasIndex(x => new { x.TenantId, x.UserId }); }); + builder.Entity(b => + { + b.ToTable(options.TablePrefix + "LinkUsers", options.Schema); + + b.ConfigureByConvention(); + + b.HasIndex(x => new + { + UserId = x.SourceUserId, + TenantId = x.SourceTenantId, + LinkedUserId = x.TargetUserId, + LinkedTenantId = x.TargetTenantId + }).IsUnique(); + }); + + } } } diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/AbpIdentityMongoDbContext.cs b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/AbpIdentityMongoDbContext.cs index 19c3316b88..3e62359e6b 100644 --- a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/AbpIdentityMongoDbContext.cs +++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/AbpIdentityMongoDbContext.cs @@ -17,6 +17,8 @@ namespace Volo.Abp.Identity.MongoDB public IMongoCollection IdentitySecurityLogs => Collection(); + public IMongoCollection IdentityLinkUsers => Collection(); + protected override void CreateModel(IMongoModelBuilder modelBuilder) { base.CreateModel(modelBuilder); diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/AbpIdentityMongoDbContextExtensions.cs b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/AbpIdentityMongoDbContextExtensions.cs index 89aeddeb92..d9d926a3b8 100644 --- a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/AbpIdentityMongoDbContextExtensions.cs +++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/AbpIdentityMongoDbContextExtensions.cs @@ -41,6 +41,11 @@ namespace Volo.Abp.Identity.MongoDB { b.CollectionName = options.CollectionPrefix + "SecurityLogs"; }); + + builder.Entity(b => + { + b.CollectionName = options.CollectionPrefix + "LinkUsers"; + }); } } } diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/AbpIdentityMongoDbModule.cs b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/AbpIdentityMongoDbModule.cs index 3ceab94e23..188c8ff6ae 100644 --- a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/AbpIdentityMongoDbModule.cs +++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/AbpIdentityMongoDbModule.cs @@ -19,6 +19,7 @@ namespace Volo.Abp.Identity.MongoDB options.AddRepository(); options.AddRepository(); options.AddRepository(); + options.AddRepository(); }); } } diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/IAbpIdentityMongoDbContext.cs b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/IAbpIdentityMongoDbContext.cs index 54819ffa19..575451365d 100644 --- a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/IAbpIdentityMongoDbContext.cs +++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/IAbpIdentityMongoDbContext.cs @@ -16,5 +16,7 @@ namespace Volo.Abp.Identity.MongoDB IMongoCollection OrganizationUnits { get; } IMongoCollection IdentitySecurityLogs { get; } + + IMongoCollection IdentityLinkUsers { get; } } } diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityLinkUserRepository.cs b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityLinkUserRepository.cs new file mode 100644 index 0000000000..248458bb5d --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/MongoIdentityLinkUserRepository.cs @@ -0,0 +1,38 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Linq.Dynamic.Core; +using System.Threading; +using System.Threading.Tasks; +using MongoDB.Driver; +using MongoDB.Driver.Linq; +using Volo.Abp.Domain.Repositories.MongoDB; +using Volo.Abp.MongoDB; + +namespace Volo.Abp.Identity.MongoDB +{ + public class MongoIdentityLinkUserRepository : MongoDbRepository, IIdentityLinkUserRepository + { + public MongoIdentityLinkUserRepository(IMongoDbContextProvider dbContextProvider) : base(dbContextProvider) + { + } + + public async Task FindAsync(IdentityLinkUserInfo sourceLinkUserInfo, IdentityLinkUserInfo targetLinkUserInfo, CancellationToken cancellationToken = default) + { + return await GetMongoQueryable().FirstOrDefaultAsync(x => + x.SourceUserId == sourceLinkUserInfo.UserId && x.SourceTenantId == sourceLinkUserInfo.TenantId && + x.TargetUserId == targetLinkUserInfo.UserId && x.TargetTenantId == targetLinkUserInfo.TenantId || + x.TargetUserId == sourceLinkUserInfo.UserId && x.TargetTenantId == sourceLinkUserInfo.TenantId && + x.SourceUserId == targetLinkUserInfo.UserId && x.SourceTenantId == targetLinkUserInfo.TenantId + , cancellationToken: GetCancellationToken(cancellationToken)); + } + + public async Task> GetListAsync(IdentityLinkUserInfo linkUserInfo, CancellationToken cancellationToken = default) + { + return await GetMongoQueryable().Where(x => + x.SourceUserId == linkUserInfo.UserId && x.SourceTenantId == linkUserInfo.TenantId || + x.TargetUserId == linkUserInfo.UserId && x.TargetTenantId == linkUserInfo.TenantId) + .ToListAsync(cancellationToken: GetCancellationToken(cancellationToken)); + } + } +} diff --git a/modules/identity/test/Volo.Abp.Identity.AspNetCore.Tests/Volo/Abp/Identity/AspNetCore/LinkUserTokenProvider_Tests.cs b/modules/identity/test/Volo.Abp.Identity.AspNetCore.Tests/Volo/Abp/Identity/AspNetCore/LinkUserTokenProvider_Tests.cs new file mode 100644 index 0000000000..2791de9a4f --- /dev/null +++ b/modules/identity/test/Volo.Abp.Identity.AspNetCore.Tests/Volo/Abp/Identity/AspNetCore/LinkUserTokenProvider_Tests.cs @@ -0,0 +1,20 @@ +using Microsoft.AspNetCore.Identity; +using Microsoft.Extensions.Options; +using Shouldly; +using Xunit; + +namespace Volo.Abp.Identity.AspNetCore +{ + public class LinkUserTokenProvider_Tests : AbpIdentityAspNetCoreTestBase + { + [Fact] + public void LinkUserTokenProvider_Should_Be_Register() + { + var identityOptions = GetRequiredService>().Value; + + identityOptions.Tokens.ProviderMap.ShouldContain(x => + x.Key == LinkUserTokenProvider.LinkUserTokenProviderName && + x.Value.ProviderType == typeof(LinkUserTokenProvider)); + } + } +} diff --git a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/IdentityLinkUserManager_Tests.cs b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/IdentityLinkUserManager_Tests.cs new file mode 100644 index 0000000000..633f419da5 --- /dev/null +++ b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo/Abp/Identity/IdentityLinkUserManager_Tests.cs @@ -0,0 +1,86 @@ +using System.Threading.Tasks; +using Shouldly; +using Xunit; + +namespace Volo.Abp.Identity +{ + public class IdentityLinkUserManager_Tests : AbpIdentityDomainTestBase + { + protected IIdentityUserRepository UserRepository { get; } + protected IIdentityLinkUserRepository IdentityLinkUserRepository { get; } + protected IdentityLinkUserManager IdentityLinkUserManager { get; } + protected IdentityTestData TestData { get; } + + public IdentityLinkUserManager_Tests() + { + UserRepository = GetRequiredService(); + IdentityLinkUserRepository = GetRequiredService(); + IdentityLinkUserManager = GetRequiredService(); + TestData = GetRequiredService(); + } + + [Fact] + public virtual async Task LinkAsync() + { + var john = await UserRepository.GetAsync(TestData.UserJohnId); + var neo = await UserRepository.GetAsync(TestData.UserNeoId); + + (await IdentityLinkUserRepository.FindAsync(new IdentityLinkUserInfo(john.Id, john.TenantId), + new IdentityLinkUserInfo(neo.Id, neo.TenantId))).ShouldBeNull(); + + await IdentityLinkUserManager.LinkAsync(new IdentityLinkUserInfo(john.Id, john.TenantId), + new IdentityLinkUserInfo(neo.Id, neo.TenantId)); + + var linkUser = await IdentityLinkUserRepository.FindAsync(new IdentityLinkUserInfo(john.Id, john.TenantId), + new IdentityLinkUserInfo(neo.Id, neo.TenantId)); + + linkUser.ShouldNotBeNull(); + linkUser.SourceUserId.ShouldBe(john.Id); + linkUser.SourceTenantId.ShouldBe(john.TenantId); + + linkUser.TargetUserId.ShouldBe(neo.Id); + linkUser.TargetTenantId.ShouldBe(neo.TenantId); + } + + [Fact] + public virtual async Task UnlinkAsync() + { + var john = await UserRepository.GetAsync(TestData.UserJohnId); + var david = await UserRepository.GetAsync(TestData.UserDavidId); + + (await IdentityLinkUserRepository.FindAsync(new IdentityLinkUserInfo(john.Id, john.TenantId), + new IdentityLinkUserInfo(david.Id, david.TenantId))).ShouldNotBeNull(); + + await IdentityLinkUserManager.UnlinkAsync(new IdentityLinkUserInfo(john.Id, john.TenantId), + new IdentityLinkUserInfo(david.Id, david.TenantId)); + + (await IdentityLinkUserRepository.FindAsync(new IdentityLinkUserInfo(john.Id, john.TenantId), + new IdentityLinkUserInfo(david.Id, david.TenantId))).ShouldBeNull(); + } + + [Fact] + public virtual async Task IsLinkedAsync() + { + var john = await UserRepository.GetAsync(TestData.UserJohnId); + var david = await UserRepository.GetAsync(TestData.UserDavidId); + var neo = await UserRepository.GetAsync(TestData.UserNeoId); + + (await IdentityLinkUserManager.IsLinkedAsync(new IdentityLinkUserInfo(john.Id, john.TenantId), + new IdentityLinkUserInfo(david.Id, david.TenantId))).ShouldBeTrue(); + + (await IdentityLinkUserManager.IsLinkedAsync(new IdentityLinkUserInfo(john.Id, john.TenantId), + new IdentityLinkUserInfo(neo.Id, neo.TenantId))).ShouldBeFalse(); + } + + [Fact] + public virtual async Task GenerateAndVerifyLinkTokenAsync() + { + var john = await UserRepository.GetAsync(TestData.UserJohnId); + var token = await IdentityLinkUserManager.GenerateLinkTokenAsync(new IdentityLinkUserInfo(john.Id, john.TenantId)); + (await IdentityLinkUserManager.VerifyLinkTokenAsync(new IdentityLinkUserInfo(john.Id, john.TenantId), token)).ShouldBeTrue(); + + (await IdentityLinkUserManager.VerifyLinkTokenAsync(new IdentityLinkUserInfo(john.Id, john.TenantId), "123123")).ShouldBeFalse(); + } + + } +} diff --git a/modules/identity/test/Volo.Abp.Identity.EntityFrameworkCore.Tests/Volo/Abp/Identity/EntityFrameworkCore/IdentityLinkUserRepository_Tests.cs b/modules/identity/test/Volo.Abp.Identity.EntityFrameworkCore.Tests/Volo/Abp/Identity/EntityFrameworkCore/IdentityLinkUserRepository_Tests.cs new file mode 100644 index 0000000000..8e490fee8b --- /dev/null +++ b/modules/identity/test/Volo.Abp.Identity.EntityFrameworkCore.Tests/Volo/Abp/Identity/EntityFrameworkCore/IdentityLinkUserRepository_Tests.cs @@ -0,0 +1,7 @@ +namespace Volo.Abp.Identity.EntityFrameworkCore +{ + public class IdentityLinkUserRepository_Tests : IdentityLinkUserRepository_Tests + { + + } +} diff --git a/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/IdentityLinkUserRepository_Tests.cs b/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/IdentityLinkUserRepository_Tests.cs new file mode 100644 index 0000000000..c7c9f29a55 --- /dev/null +++ b/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo/Abp/Identity/MongoDB/IdentityLinkUserRepository_Tests.cs @@ -0,0 +1,10 @@ +using Xunit; + +namespace Volo.Abp.Identity.MongoDB +{ + [Collection(MongoTestCollection.Name)] + public class IdentityLinkUserRepository_Tests : IdentityLinkUserRepository_Tests + { + + } +} diff --git a/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/AbpIdentityTestDataBuilder.cs b/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/AbpIdentityTestDataBuilder.cs index 79dd858c20..708deaa68e 100644 --- a/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/AbpIdentityTestDataBuilder.cs +++ b/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/AbpIdentityTestDataBuilder.cs @@ -19,6 +19,8 @@ namespace Volo.Abp.Identity private readonly ILookupNormalizer _lookupNormalizer; private readonly IdentityTestData _testData; private readonly OrganizationUnitManager _organizationUnitManager; + private readonly IIdentityLinkUserRepository _identityLinkUserRepository; + private readonly IdentityLinkUserManager _identityLinkUserManager; private IdentityRole _adminRole; private IdentityRole _moderatorRole; @@ -36,7 +38,9 @@ namespace Volo.Abp.Identity IIdentitySecurityLogRepository identitySecurityLogRepository, ILookupNormalizer lookupNormalizer, IdentityTestData testData, - OrganizationUnitManager organizationUnitManager) + OrganizationUnitManager organizationUnitManager, + IIdentityLinkUserRepository identityLinkUserRepository, + IdentityLinkUserManager identityLinkUserManager) { _guidGenerator = guidGenerator; _userRepository = userRepository; @@ -46,6 +50,8 @@ namespace Volo.Abp.Identity _testData = testData; _organizationUnitRepository = organizationUnitRepository; _organizationUnitManager = organizationUnitManager; + _identityLinkUserRepository = identityLinkUserRepository; + _identityLinkUserManager = identityLinkUserManager; _identitySecurityLogRepository = identitySecurityLogRepository; } @@ -54,6 +60,7 @@ namespace Volo.Abp.Identity await AddRoles(); await AddOrganizationUnits(); await AddUsers(); + await AddLinkUsers(); await AddClaimTypes(); await AddSecurityLogs(); } @@ -128,6 +135,17 @@ namespace Volo.Abp.Identity await _userRepository.InsertAsync(neo); } + private async Task AddLinkUsers() + { + var john = await _userRepository.GetAsync(_testData.UserJohnId); + var david = await _userRepository.GetAsync(_testData.UserDavidId); + var neo = await _userRepository.GetAsync(_testData.UserNeoId); + + await _identityLinkUserManager.LinkAsync(new IdentityLinkUserInfo(john.Id, john.TenantId), + new IdentityLinkUserInfo(david.Id, david.TenantId)); + await _identityLinkUserManager.LinkAsync(new IdentityLinkUserInfo(david.Id, david.TenantId), + new IdentityLinkUserInfo(neo.Id, neo.TenantId)); + } private async Task AddClaimTypes() { diff --git a/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/IdentityLinkUserRepository_Tests.cs b/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/IdentityLinkUserRepository_Tests.cs new file mode 100644 index 0000000000..e5dd6dcd5f --- /dev/null +++ b/modules/identity/test/Volo.Abp.Identity.TestBase/Volo/Abp/Identity/IdentityLinkUserRepository_Tests.cs @@ -0,0 +1,58 @@ +using System.Threading.Tasks; +using Shouldly; +using Volo.Abp.Modularity; +using Xunit; + +namespace Volo.Abp.Identity +{ + public abstract class IdentityLinkUserRepository_Tests : AbpIdentityTestBase + where TStartupModule : IAbpModule + { + protected IIdentityUserRepository UserRepository { get; } + protected IIdentityLinkUserRepository IdentityLinkUserRepository { get; } + protected IdentityTestData TestData { get; } + + public IdentityLinkUserRepository_Tests() + { + UserRepository = GetRequiredService(); + IdentityLinkUserRepository = GetRequiredService(); + TestData = GetRequiredService(); + } + + [Fact] + public async Task FindAsync() + { + var john = await UserRepository.GetAsync(TestData.UserJohnId); + var david = await UserRepository.GetAsync(TestData.UserDavidId); + var neo = await UserRepository.GetAsync(TestData.UserNeoId); + + var johnAndDavidLinkUser = await IdentityLinkUserRepository.FindAsync( + new IdentityLinkUserInfo(john.Id, john.TenantId), + new IdentityLinkUserInfo(david.Id, david.TenantId)); + + johnAndDavidLinkUser.ShouldNotBeNull(); + johnAndDavidLinkUser.SourceUserId.ShouldBe(john.Id); + johnAndDavidLinkUser.SourceTenantId.ShouldBe(john.TenantId); + johnAndDavidLinkUser.TargetUserId.ShouldBe(david.Id); + johnAndDavidLinkUser.TargetTenantId.ShouldBe(david.TenantId); + + (await IdentityLinkUserRepository.FindAsync( + new IdentityLinkUserInfo(john.Id, john.TenantId), + new IdentityLinkUserInfo(neo.Id, neo.TenantId))).ShouldBeNull(); + } + + [Fact] + public async Task GetListAsync() + { + var john = await UserRepository.GetAsync(TestData.UserJohnId); + var david = await UserRepository.GetAsync(TestData.UserDavidId); + var neo = await UserRepository.GetAsync(TestData.UserNeoId); + + var davidLinkUsers = await IdentityLinkUserRepository.GetListAsync(new IdentityLinkUserInfo(david.Id, david.TenantId)); + davidLinkUsers.ShouldNotBeNull(); + + davidLinkUsers.ShouldContain(x => x.SourceUserId == john.Id && x.SourceTenantId == john.TenantId); + davidLinkUsers.ShouldContain(x => x.TargetUserId == neo.Id && x.TargetTenantId == neo.TenantId); + } + } +} From 433e21ccfbaed8a12a246a2d01fd0e5da622a21d Mon Sep 17 00:00:00 2001 From: maliming <6908465+maliming@users.noreply.github.com> Date: Wed, 9 Sep 2020 14:15:00 +0800 Subject: [PATCH 003/242] Refactor. --- .../MultiTenancy/CurrentImpersonatorTenant.cs | 19 ----------- .../Volo/Abp/MultiTenancy/CurrentTenant.cs | 10 ++++-- .../ICurrentImpersonatorTenant.cs | 11 ------- .../Volo/Abp/MultiTenancy/ICurrentTenant.cs | 3 ++ .../Principal/AbpClaimsIdentityExtensions.cs | 32 +++++++++---------- .../Volo/Abp/Security/Claims/AbpClaimTypes.cs | 8 ++--- .../CurrentPrincipalAccessorExtensions.cs | 24 ++++++++++++++ .../Volo/Abp/Users/CurrentImpersonatorUser.cs | 19 ----------- .../Volo/Abp/Users/CurrentUser.cs | 4 ++- .../Abp/Users/ICurrentImpersonatorUser.cs | 11 ------- .../Volo/Abp/Users/ICurrentUser.cs | 5 ++- .../Identity/AbpUserClaimsPrincipalFactory.cs | 31 ++++++++---------- .../CurrentPrincipalAccessorExtensions.cs | 25 +++++++++++++++ .../Volo/Abp/Identity/IdentityLinkUser.cs | 26 +++++++++------ .../EntityFrameworkCore/IIdentityDbContext.cs | 5 ++- .../EntityFrameworkCore/IdentityDbContext.cs | 4 +-- .../MongoDB/AbpIdentityMongoDbContext.cs | 4 +-- .../MongoDB/IAbpIdentityMongoDbContext.cs | 4 +-- 18 files changed, 125 insertions(+), 120 deletions(-) delete mode 100644 framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/CurrentImpersonatorTenant.cs delete mode 100644 framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ICurrentImpersonatorTenant.cs create mode 100644 framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/CurrentPrincipalAccessorExtensions.cs delete mode 100644 framework/src/Volo.Abp.Security/Volo/Abp/Users/CurrentImpersonatorUser.cs delete mode 100644 framework/src/Volo.Abp.Security/Volo/Abp/Users/ICurrentImpersonatorUser.cs create mode 100644 modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/CurrentPrincipalAccessorExtensions.cs diff --git a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/CurrentImpersonatorTenant.cs b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/CurrentImpersonatorTenant.cs deleted file mode 100644 index c340899807..0000000000 --- a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/CurrentImpersonatorTenant.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.Security.Principal; -using Volo.Abp.DependencyInjection; -using Volo.Abp.Security.Claims; - -namespace Volo.Abp.MultiTenancy -{ - public class CurrentImpersonatorTenant : ICurrentImpersonatorTenant, ITransientDependency - { - public virtual Guid? Id => _principalAccessor.Principal?.FindImpersonatorTenantId(); - - private readonly ICurrentPrincipalAccessor _principalAccessor; - - public CurrentImpersonatorTenant(ICurrentPrincipalAccessor principalAccessor) - { - _principalAccessor = principalAccessor; - } - } -} diff --git a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/CurrentTenant.cs b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/CurrentTenant.cs index 4cd6ae9527..442177ef6c 100644 --- a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/CurrentTenant.cs +++ b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/CurrentTenant.cs @@ -1,5 +1,7 @@ -using System; +using System; +using System.Security.Principal; using Volo.Abp.DependencyInjection; +using Volo.Abp.Security.Claims; namespace Volo.Abp.MultiTenancy { @@ -9,13 +11,17 @@ namespace Volo.Abp.MultiTenancy public virtual Guid? Id => _currentTenantAccessor.Current?.TenantId; + public virtual Guid? ImpersonatorId => _principalAccessor.Principal?.FindTenantImpersonatorId(); + public string Name => _currentTenantAccessor.Current?.Name; private readonly ICurrentTenantAccessor _currentTenantAccessor; + private readonly ICurrentPrincipalAccessor _principalAccessor; - public CurrentTenant(ICurrentTenantAccessor currentTenantAccessor) + public CurrentTenant(ICurrentTenantAccessor currentTenantAccessor, ICurrentPrincipalAccessor principalAccessor) { _currentTenantAccessor = currentTenantAccessor; + _principalAccessor = principalAccessor; } public IDisposable Change(Guid? id, string name = null) diff --git a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ICurrentImpersonatorTenant.cs b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ICurrentImpersonatorTenant.cs deleted file mode 100644 index e3da12455d..0000000000 --- a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ICurrentImpersonatorTenant.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System; -using JetBrains.Annotations; - -namespace Volo.Abp.MultiTenancy -{ - public interface ICurrentImpersonatorTenant - { - [CanBeNull] - Guid? Id { get; } - } -} diff --git a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ICurrentTenant.cs b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ICurrentTenant.cs index a9c608e74c..340c31ee6a 100644 --- a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ICurrentTenant.cs +++ b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ICurrentTenant.cs @@ -10,6 +10,9 @@ namespace Volo.Abp.MultiTenancy [CanBeNull] Guid? Id { get; } + [CanBeNull] + Guid? ImpersonatorId { get; } + [CanBeNull] string Name { get; } diff --git a/framework/src/Volo.Abp.Security/System/Security/Principal/AbpClaimsIdentityExtensions.cs b/framework/src/Volo.Abp.Security/System/Security/Principal/AbpClaimsIdentityExtensions.cs index dd57eeacaf..7f29a52eae 100644 --- a/framework/src/Volo.Abp.Security/System/Security/Principal/AbpClaimsIdentityExtensions.cs +++ b/framework/src/Volo.Abp.Security/System/Security/Principal/AbpClaimsIdentityExtensions.cs @@ -39,35 +39,35 @@ namespace System.Security.Principal return Guid.Parse(userIdOrNull.Value); } - public static Guid? FindImpersonatorUserId([NotNull] this ClaimsPrincipal principal) + public static Guid? FindUserImpersonatorId([NotNull] this ClaimsPrincipal principal) { Check.NotNull(principal, nameof(principal)); - var impersonatorUserIdOrNull = principal.Claims?.FirstOrDefault(c => c.Type == AbpClaimTypes.ImpersonatorUserId); - if (impersonatorUserIdOrNull == null || impersonatorUserIdOrNull.Value.IsNullOrWhiteSpace()) + var userImpersonatorIdOrNull = principal.Claims?.FirstOrDefault(c => c.Type == AbpClaimTypes.UserImpersonatorId); + if (userImpersonatorIdOrNull == null || userImpersonatorIdOrNull.Value.IsNullOrWhiteSpace()) { return null; } - if (Guid.TryParse(impersonatorUserIdOrNull.Value, out Guid result)) + if (Guid.TryParse(userImpersonatorIdOrNull.Value, out Guid result)) { return result; } return null; } - public static Guid? FindImpersonatorUserId([NotNull] this IIdentity identity) + public static Guid? FindUserImpersonatorId([NotNull] this IIdentity identity) { Check.NotNull(identity, nameof(identity)); var claimsIdentity = identity as ClaimsIdentity; - var impersonatorUserIdOrNull = claimsIdentity?.Claims?.FirstOrDefault(c => c.Type == AbpClaimTypes.ImpersonatorUserId); - if (impersonatorUserIdOrNull == null || impersonatorUserIdOrNull.Value.IsNullOrWhiteSpace()) + var userImpersonatorIdOrNull = claimsIdentity?.Claims?.FirstOrDefault(c => c.Type == AbpClaimTypes.UserImpersonatorId); + if (userImpersonatorIdOrNull == null || userImpersonatorIdOrNull.Value.IsNullOrWhiteSpace()) { return null; } - return Guid.Parse(impersonatorUserIdOrNull.Value); + return Guid.Parse(userImpersonatorIdOrNull.Value); } public static Guid? FindTenantId([NotNull] this ClaimsPrincipal principal) @@ -98,32 +98,32 @@ namespace System.Security.Principal return Guid.Parse(tenantIdOrNull.Value); } - public static Guid? FindImpersonatorTenantId([NotNull] this ClaimsPrincipal principal) + public static Guid? FindTenantImpersonatorId([NotNull] this ClaimsPrincipal principal) { Check.NotNull(principal, nameof(principal)); - var impersonatorTenantIdOrNull = principal.Claims?.FirstOrDefault(c => c.Type == AbpClaimTypes.ImpersonatorTenantId); - if (impersonatorTenantIdOrNull == null || impersonatorTenantIdOrNull.Value.IsNullOrWhiteSpace()) + var tenantImpersonatorIdOrNull = principal.Claims?.FirstOrDefault(c => c.Type == AbpClaimTypes.TenantImpersonatorId); + if (tenantImpersonatorIdOrNull == null || tenantImpersonatorIdOrNull.Value.IsNullOrWhiteSpace()) { return null; } - return Guid.Parse(impersonatorTenantIdOrNull.Value); + return Guid.Parse(tenantImpersonatorIdOrNull.Value); } - public static Guid? FindImpersonatorTenantId([NotNull] this IIdentity identity) + public static Guid? FindTenantImpersonatorId([NotNull] this IIdentity identity) { Check.NotNull(identity, nameof(identity)); var claimsIdentity = identity as ClaimsIdentity; - var impersonatorTenantIdOrNull = claimsIdentity?.Claims?.FirstOrDefault(c => c.Type == AbpClaimTypes.ImpersonatorTenantId); - if (impersonatorTenantIdOrNull == null || impersonatorTenantIdOrNull.Value.IsNullOrWhiteSpace()) + var tenantImpersonatorIdOrNull = claimsIdentity?.Claims?.FirstOrDefault(c => c.Type == AbpClaimTypes.TenantImpersonatorId); + if (tenantImpersonatorIdOrNull == null || tenantImpersonatorIdOrNull.Value.IsNullOrWhiteSpace()) { return null; } - return Guid.Parse(impersonatorTenantIdOrNull.Value); + return Guid.Parse(tenantImpersonatorIdOrNull.Value); } public static string FindClientId([NotNull] this ClaimsPrincipal principal) diff --git a/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/AbpClaimTypes.cs b/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/AbpClaimTypes.cs index b65a1f88a9..cfc5ba2c78 100644 --- a/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/AbpClaimTypes.cs +++ b/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/AbpClaimTypes.cs @@ -19,9 +19,9 @@ namespace Volo.Abp.Security.Claims public static string UserId { get; set; } = ClaimTypes.NameIdentifier; /// - /// Default: "impersonator_userid". + /// Default: "user_impersonator_id". /// - public static string ImpersonatorUserId { get; set; } = "impersonator_userid"; + public static string UserImpersonatorId { get; set; } = "user_impersonator_id"; /// /// Default: @@ -54,9 +54,9 @@ namespace Volo.Abp.Security.Claims public static string TenantId { get; set; } = "tenantid"; /// - /// Default: "impersonator_tenantid". + /// Default: "tenant_impersonator_id". /// - public static string ImpersonatorTenantId { get; set; } = "impersonator_tenantid"; + public static string TenantImpersonatorId { get; set; } = "tenant_impersonator_id"; /// /// Default: "editionid". diff --git a/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/CurrentPrincipalAccessorExtensions.cs b/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/CurrentPrincipalAccessorExtensions.cs new file mode 100644 index 0000000000..63f83f8a5a --- /dev/null +++ b/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/CurrentPrincipalAccessorExtensions.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Security.Claims; + +namespace Volo.Abp.Security.Claims +{ + public static class CurrentPrincipalAccessorExtensions + { + public static IDisposable Change(this ICurrentPrincipalAccessor currentPrincipalAccessor, Claim claim) + { + return currentPrincipalAccessor.Change(new[] {claim}); + } + + public static IDisposable Change(this ICurrentPrincipalAccessor currentPrincipalAccessor, IEnumerable claims) + { + return currentPrincipalAccessor.Change(new ClaimsIdentity(claims)); + } + + public static IDisposable Change(this ICurrentPrincipalAccessor currentPrincipalAccessor, ClaimsIdentity claimsIdentity) + { + return currentPrincipalAccessor.Change(new ClaimsPrincipal(claimsIdentity)); + } + } +} diff --git a/framework/src/Volo.Abp.Security/Volo/Abp/Users/CurrentImpersonatorUser.cs b/framework/src/Volo.Abp.Security/Volo/Abp/Users/CurrentImpersonatorUser.cs deleted file mode 100644 index 275a35106a..0000000000 --- a/framework/src/Volo.Abp.Security/Volo/Abp/Users/CurrentImpersonatorUser.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.Security.Principal; -using Volo.Abp.DependencyInjection; -using Volo.Abp.Security.Claims; - -namespace Volo.Abp.Users -{ - public class CurrentImpersonatorUser : ICurrentImpersonatorUser, ITransientDependency - { - public virtual Guid? Id => _principalAccessor.Principal?.FindImpersonatorUserId(); - - private readonly ICurrentPrincipalAccessor _principalAccessor; - - public CurrentImpersonatorUser(ICurrentPrincipalAccessor principalAccessor) - { - _principalAccessor = principalAccessor; - } - } -} diff --git a/framework/src/Volo.Abp.Security/Volo/Abp/Users/CurrentUser.cs b/framework/src/Volo.Abp.Security/Volo/Abp/Users/CurrentUser.cs index 487274860f..f1d6287e8c 100644 --- a/framework/src/Volo.Abp.Security/Volo/Abp/Users/CurrentUser.cs +++ b/framework/src/Volo.Abp.Security/Volo/Abp/Users/CurrentUser.cs @@ -15,6 +15,8 @@ namespace Volo.Abp.Users public virtual Guid? Id => _principalAccessor.Principal?.FindUserId(); + public virtual Guid? ImpersonatorId => _principalAccessor.Principal?.FindUserImpersonatorId(); + public virtual string UserName => this.FindClaimValue(AbpClaimTypes.UserName); public virtual string PhoneNumber => this.FindClaimValue(AbpClaimTypes.PhoneNumber); @@ -56,4 +58,4 @@ namespace Volo.Abp.Users return FindClaims(AbpClaimTypes.Role).Any(c => c.Value == roleName); } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.Security/Volo/Abp/Users/ICurrentImpersonatorUser.cs b/framework/src/Volo.Abp.Security/Volo/Abp/Users/ICurrentImpersonatorUser.cs deleted file mode 100644 index 8dcdb69aef..0000000000 --- a/framework/src/Volo.Abp.Security/Volo/Abp/Users/ICurrentImpersonatorUser.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System; -using JetBrains.Annotations; - -namespace Volo.Abp.Users -{ - public interface ICurrentImpersonatorUser - { - [CanBeNull] - Guid? Id { get; } - } -} diff --git a/framework/src/Volo.Abp.Security/Volo/Abp/Users/ICurrentUser.cs b/framework/src/Volo.Abp.Security/Volo/Abp/Users/ICurrentUser.cs index 18613406d8..1484330bad 100644 --- a/framework/src/Volo.Abp.Security/Volo/Abp/Users/ICurrentUser.cs +++ b/framework/src/Volo.Abp.Security/Volo/Abp/Users/ICurrentUser.cs @@ -11,12 +11,15 @@ namespace Volo.Abp.Users [CanBeNull] Guid? Id { get; } + [CanBeNull] + Guid? ImpersonatorId { get; } + [CanBeNull] string UserName { get; } [CanBeNull] string PhoneNumber { get; } - + bool PhoneNumberVerified { get; } [CanBeNull] diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpUserClaimsPrincipalFactory.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpUserClaimsPrincipalFactory.cs index aa6263175a..fa63da5ad7 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpUserClaimsPrincipalFactory.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpUserClaimsPrincipalFactory.cs @@ -13,50 +13,45 @@ namespace Volo.Abp.Identity { public class AbpUserClaimsPrincipalFactory : UserClaimsPrincipalFactory, ITransientDependency { - protected ICurrentImpersonatorUser CurrentImpersonatorUser { get; } - protected ICurrentImpersonatorTenant CurrentImpersonatorTenant { get; } + protected ICurrentUser CurrentUser { get; } + protected ICurrentTenant CurrentTenant { get; } public AbpUserClaimsPrincipalFactory( UserManager userManager, RoleManager roleManager, IOptions options, - ICurrentImpersonatorUser currentImpersonatorUser, - ICurrentImpersonatorTenant currentImpersonatorTenant) + ICurrentUser currentUser, + ICurrentTenant currentTenant) : base( userManager, roleManager, options) { - CurrentImpersonatorUser = currentImpersonatorUser; - CurrentImpersonatorTenant = currentImpersonatorTenant; + CurrentUser = currentUser; + CurrentTenant = currentTenant; } [UnitOfWork] public override async Task CreateAsync(IdentityUser user) { var principal = await base.CreateAsync(user); + var identity = principal.Identities.First(); if (user.TenantId.HasValue) { - principal.Identities - .First() - .AddClaim(new Claim(AbpClaimTypes.TenantId, user.TenantId.ToString())); + identity.AddClaim(new Claim(AbpClaimTypes.TenantId, user.TenantId.ToString())); } - if (CurrentImpersonatorUser.Id != user.Id || CurrentImpersonatorTenant.Id != user.TenantId) + if (CurrentUser.ImpersonatorId != user.Id || CurrentTenant.ImpersonatorId != user.TenantId) { - if (CurrentImpersonatorUser.Id.HasValue) + if (CurrentUser.ImpersonatorId.HasValue) { - principal.Identities - .First() - .AddClaim(new Claim(AbpClaimTypes.ImpersonatorUserId, CurrentImpersonatorUser.Id.ToString())); + identity.AddClaim(new Claim(AbpClaimTypes.UserImpersonatorId, CurrentUser.ImpersonatorId.ToString())); } - if (CurrentImpersonatorTenant.Id.HasValue) + if (CurrentTenant.ImpersonatorId.HasValue) { - principal.Identities - .First() - .AddClaim(new Claim(AbpClaimTypes.ImpersonatorTenantId, CurrentImpersonatorTenant.Id.ToString())); + identity.AddClaim(new Claim(AbpClaimTypes.TenantImpersonatorId, CurrentTenant.ImpersonatorId.ToString())); } } diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/CurrentPrincipalAccessorExtensions.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/CurrentPrincipalAccessorExtensions.cs new file mode 100644 index 0000000000..ecff91342b --- /dev/null +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/CurrentPrincipalAccessorExtensions.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Security.Claims; +using Volo.Abp.Security.Claims; + +namespace Volo.Abp.Identity +{ + public static class CurrentPrincipalAccessorExtensions + { + public static IDisposable ChangeImpersonatorId(this ICurrentPrincipalAccessor currentPrincipalAccessor, Guid? tenantImpersonatorId, Guid? userImpersonatorId) + { + var impersonatorClaims = new List(); + if (tenantImpersonatorId.HasValue) + { + impersonatorClaims.Add(new Claim(AbpClaimTypes.TenantImpersonatorId, tenantImpersonatorId.ToString())); + } + if (userImpersonatorId.HasValue) + { + impersonatorClaims.Add(new Claim(AbpClaimTypes.UserImpersonatorId, userImpersonatorId.ToString())); + } + + return currentPrincipalAccessor.Change(impersonatorClaims); + } + } +} diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityLinkUser.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityLinkUser.cs index ca8fe157d5..bec5563525 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityLinkUser.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityLinkUser.cs @@ -3,8 +3,24 @@ using Volo.Abp.Domain.Entities; namespace Volo.Abp.Identity { - public class IdentityLinkUser : AggregateRoot + public class IdentityLinkUser : BasicAggregateRoot { + public virtual Guid SourceUserId { get; protected set; } + + public virtual Guid? SourceTenantId { get; protected set; } + + public virtual Guid TargetUserId { get; protected set; } + + public virtual Guid? TargetTenantId { get; protected set; } + + /// + /// Initializes a new instance of . + /// + protected IdentityLinkUser() + { + + } + public IdentityLinkUser(Guid id, IdentityLinkUserInfo sourceUser, IdentityLinkUserInfo targetUser) : base(id) { @@ -24,13 +40,5 @@ namespace Volo.Abp.Identity TargetUserId = targetUserId; TargetTenantId = targetTenantId; } - - public virtual Guid SourceUserId { get; protected set; } - - public virtual Guid? SourceTenantId { get; protected set; } - - public virtual Guid TargetUserId { get; protected set; } - - public virtual Guid? TargetTenantId { get; protected set; } } } diff --git a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IIdentityDbContext.cs b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IIdentityDbContext.cs index d0e279b7ff..f76ff7b9c3 100644 --- a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IIdentityDbContext.cs +++ b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IIdentityDbContext.cs @@ -1,7 +1,6 @@ using Microsoft.EntityFrameworkCore; using Volo.Abp.Data; using Volo.Abp.EntityFrameworkCore; -using Volo.Abp.SecurityLog; namespace Volo.Abp.Identity.EntityFrameworkCore { @@ -16,8 +15,8 @@ namespace Volo.Abp.Identity.EntityFrameworkCore DbSet OrganizationUnits { get; set; } - DbSet IdentitySecurityLogs { get; set; } + DbSet SecurityLogs { get; set; } - DbSet IdentityLinkUsers { get; set; } + DbSet LinkUsers { get; set; } } } diff --git a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContext.cs b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContext.cs index d6f7d9a9b3..dd9c2ffea5 100644 --- a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContext.cs +++ b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityDbContext.cs @@ -18,9 +18,9 @@ namespace Volo.Abp.Identity.EntityFrameworkCore public DbSet OrganizationUnits { get; set; } - public DbSet IdentitySecurityLogs { get; set; } + public DbSet SecurityLogs { get; set; } - public DbSet IdentityLinkUsers { get; set; } + public DbSet LinkUsers { get; set; } public IdentityDbContext(DbContextOptions options) : base(options) diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/AbpIdentityMongoDbContext.cs b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/AbpIdentityMongoDbContext.cs index 3e62359e6b..7a59b255e3 100644 --- a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/AbpIdentityMongoDbContext.cs +++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/AbpIdentityMongoDbContext.cs @@ -15,9 +15,9 @@ namespace Volo.Abp.Identity.MongoDB public IMongoCollection OrganizationUnits => Collection(); - public IMongoCollection IdentitySecurityLogs => Collection(); + public IMongoCollection SecurityLogs => Collection(); - public IMongoCollection IdentityLinkUsers => Collection(); + public IMongoCollection LinkUsers => Collection(); protected override void CreateModel(IMongoModelBuilder modelBuilder) { diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/IAbpIdentityMongoDbContext.cs b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/IAbpIdentityMongoDbContext.cs index 575451365d..54e3ae7bdc 100644 --- a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/IAbpIdentityMongoDbContext.cs +++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo/Abp/Identity/MongoDB/IAbpIdentityMongoDbContext.cs @@ -15,8 +15,8 @@ namespace Volo.Abp.Identity.MongoDB IMongoCollection OrganizationUnits { get; } - IMongoCollection IdentitySecurityLogs { get; } + IMongoCollection SecurityLogs { get; } - IMongoCollection IdentityLinkUsers { get; } + IMongoCollection LinkUsers { get; } } } From 4ec2f5f2c738360a4f89f497e91b7591c7e90011 Mon Sep 17 00:00:00 2001 From: EngincanV Date: Wed, 9 Sep 2020 09:17:04 +0300 Subject: [PATCH 004/242] Replacing email template article --- .../POST.md | 364 ++++++++++++++++++ .../db-migrator-1.jpg | Bin 0 -> 43592 bytes .../db-migrator-2.jpg | Bin 0 -> 20810 bytes .../db-migrator-3.jpg | Bin 0 -> 6727 bytes .../email-details.jpg | Bin 0 -> 62048 bytes .../email-last.jpg | Bin 0 -> 102690 bytes .../embedded-resource-2.jpg | Bin 0 -> 22815 bytes .../embedded-resource.jpg | Bin 0 -> 93887 bytes .../inline-content.png | Bin 0 -> 66858 bytes .../standard-template.jpg | Bin 0 -> 62911 bytes .../template-definitions.png | Bin 0 -> 92998 bytes 11 files changed, 364 insertions(+) create mode 100644 docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/POST.md create mode 100644 docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/db-migrator-1.jpg create mode 100644 docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/db-migrator-2.jpg create mode 100644 docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/db-migrator-3.jpg create mode 100644 docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/email-details.jpg create mode 100644 docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/email-last.jpg create mode 100644 docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/embedded-resource-2.jpg create mode 100644 docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/embedded-resource.jpg create mode 100644 docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/inline-content.png create mode 100644 docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/standard-template.jpg create mode 100644 docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/template-definitions.png diff --git a/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/POST.md b/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/POST.md new file mode 100644 index 0000000000..fa5806c488 --- /dev/null +++ b/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/POST.md @@ -0,0 +1,364 @@ +# Replacing Email Template and Sending Emails + +## Introduction + +Hi, in this step by step article, I will show you how you can replace the existing templates and how you can send emails by using the replaced templates. + +## Creating the Solution + +Before starting to development, we need to create a solution named `TemplateReplace` (or whatever you want). We can download a new startup template by using [ABP CLI](https://docs.abp.io/en/abp/latest/CLI) : + +````bash +abp new TemplateReplace +```` + +Our project boilerplate will be ready after the download is finished. Then, open the solution in the Visual Studio (or your favorite IDE). + +Run the `TemplateReplace.DbMigrator` application as below to create the database and seed initial data (which creates the admin user, admin role, permissions etc.). + +![db-migrator-1](db-migrator-1.jpg) + +* Left click to `TemplateReplace.DbMigrator` and choose the `Debug`. + +![db-migrator-2](db-migrator-2.jpg) + +* After that, click the `Start new instance` option to start the database migrations. + +![db-migrator-3](db-migrator-3.jpg) + +Then we can run the `TemplateReplace.Web` project to see our application working. + +> _Default login credentials for admin: username is **admin** and password is **1q2w3E\***_ + +## Starting the Development + +First thing we need to do is, creating a email service to sending emails. ABP Framework provides `IEmailSender` service that is used to send emails. + +### Step - 1 + +Create an `Email` folder in the `TemplateReplace.Application.Contracts` project and add a interface named `IEmailService` inside of it : + +```csharp +using System.Threading.Tasks; + +namespace TemplateReplace.Email +{ + public interface IEmailService + { + Task SendAsync(); + } +} +``` + +### Step - 2 + +Create an `Email` folder in the `TemplateReplace.Application` project and add a class named `EmailService` inside of it to implement the `IEmailService` interface. + +```csharp +using System.Threading.Tasks; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Emailing; +using Volo.Abp.Emailing.Templates; +using Volo.Abp.TextTemplating; + +namespace TemplateReplace.Email +{ + public class EmailService : IEmailService, ITransientDependency + { + private readonly IEmailSender _emailSender; + private readonly ITemplateRenderer _templateRenderer; + + public EmailService(IEmailSender emailSender, ITemplateRenderer templateRenderer) + { + _emailSender = emailSender; + _templateRenderer = templateRenderer; + } + + public async Task SendAsync() + { + var emailBody = await _templateRenderer.RenderAsync( + StandardEmailTemplates.Message, + new + { + message = "This is email body..." + } + ); + + await _emailSender.SendAsync( + "from_email@abp.io", + "target_email@abp.io", + "Subject", + emailBody + ); + + return emailBody; + } + } +} +``` + +* ABP framework provides a strong and flexible [text templating system](https://docs.abp.io/en/abp/latest/Text-Templating). So, we can use the text templating system to create dynamic email contents. + +* To create an email content, we need to inject `ITemplateRenderer` and use the `RenderAsync` method to render a template. + +* We've used `StandardEmailTemplates.Message` as standart email template. This provides us a standard and simple message template to send mails. + +* The resulting email body should be like shown below: +```html + + + + + + + This is email body... + + +``` + +### Step - 3 + +* Now we need to create a user interface to be able to see the standard email template. To do this quickly, open your existing `Index.cshtml.cs` in your `TemplateReplace.Web` project. It's under the **Pages** folder. And copy-paste the below content. + +```csharp +using TemplateReplace.Email; + +namespace TemplateReplace.Web.Pages +{ + public class IndexModel : TemplateReplacePageModel + { + private readonly IEmailService _emailService; + public string EmailBody { get; set; } + + public IndexModel(IEmailService emailService) + { + _emailService = emailService; + } + + public async void OnGet() + { + if(CurrentUser.IsAuthenticated) + { + EmailBody = await _emailService.SendAsync(); + } + } + } +} +``` + +* Then, open your `Index.cshtml` file and set the content as below. + +```html +@page +@using Microsoft.AspNetCore.Mvc.Localization +@using TemplateReplace.Localization +@using Volo.Abp.Users +@model TemplateReplace.Web.Pages.IndexModel +@inject IHtmlLocalizer L +@inject ICurrentUser CurrentUser +@section styles { + + + +} +@section scripts { + + + +} +
+

@L["Welcome"]

+
+
+

@L["LongWelcomeMessage"]

+
+
+
+ abp.io + @if (!CurrentUser.IsAuthenticated) + { + @L["Login"] + } +
+ + +``` + +* After all of this, we can run the `TemplateReplace.Web` application and logged in to see the standard email template. + +![standard-template](standard-template.jpg) + +* As we see above, `StandardEmailTemplates.Message` template works as expected. But we need to be sure about the mail has been sent or not. To achieve this, we can examine the **logs**. So, open the `Logs` folder (It's under **TemplateReplace .Web** folder). Inside of this folder, there is a file named `logs.txt`. When we open this file and examine the lines, we can see our email details as below (target email address, subject of mail and email body). + +![email-details](email-details.jpg) + +### Step - 4 + +* So far we've sent mail by using standard email template of ABP. But we can want to replace the email template with the new one. We can achieve this by following [the documentation](https://docs.abp.io/en/abp/latest/Text-Templating#replacing-the-existing-templates). + +* First thing we need to do is creating our new **email template**. So, create a folder named `Templates` and add `EmailLayout.cshtml` file inside of it. And copy-paste the below content. + +```html + + + + + + + + +
+ + + + + +
+ + +``` + +* Then we need to make the template file as "Embedded Resource". We can do this as below. + +* First left click to **EmailLayout.cshtml** and choose `Properties`. + +![embedded-resource](embedded-resource.jpg) + +* Then be sure about build action is **Embedded resource**. + +![embedded-resource-2](embedded-resource-2.jpg) + +### Step - 5 (Replacing the Email Template) + +* To replace the current email template with our new email template, we need to override it. To achieve this, create a class in `TemplateReplace.Web` and fill it with the below content. + +```csharp +using Volo.Abp.DependencyInjection; +using Volo.Abp.Emailing.Templates; +using Volo.Abp.TextTemplating; + +namespace TemplateReplace.Web +{ + public class EmailTemplateDefinitionProvider : TemplateDefinitionProvider, ITransientDependency + { + public override void Define(ITemplateDefinitionContext context) + { + var emailLayoutTemplate = context.GetOrNull(StandardEmailTemplates.Message); + + emailLayoutTemplate + .WithVirtualFilePath( + "/Templates/EmailLayout.cshtml", + isInlineLocalized: true + ); + } + } +} +``` + +* In here we've created a template definition provider class that gets the email layout template and changes the virtual file path for the template. + +* This approach allows us to locate templates in any folder instead of the folder defined by the depended module. + +### Step - 6 + +* Lastly, we need to configure the [virtual file system](https://docs.abp.io/en/abp/latest/Virtual-File-System). To do this open your `TemplateReplaceWebModule` in `TemplateReplace.Web` and update the `ConfigureVirtualFileSystem` method as below. + +```csharp +//... +private void ConfigureVirtualFileSystem(IWebHostEnvironment hostingEnvironment) +{ + if (hostingEnvironment.IsDevelopment()) + { + Configure(options => + { + options.FileSets.AddEmbedded(); //to replace the standard email template + + //... + }); + } +} +//... +``` + +* And now when we start the application, we need to see the new email template like as below. + +![email-last](email-last.jpg) + +## Text Template Management + +![template-definitions](template-definitions.png) + +* ABP Commercial's [Text Template Management](https://commercial.abp.io/modules/Volo.TextTemplateManagement) module is really fascinating. It makes it super easy to stores and edits template contents. We can list all templates on a page, editing them, localizing them, and so on. + +![inline-content](inline-content.png) + +* ABP Commercial's text template management module, allows us to modify a template through the UI. + +* I highly recommend you to [check it out](https://commercial.abp.io/modules/Volo.TextTemplateManagement). + +## References + +* [Text Templating](https://docs.abp.io/en/abp/latest/Text-Templating) +* [Emailing](https://docs.abp.io/en/abp/latest/Emailing) +* [Virtual File System](https://docs.abp.io/en/abp/latest/Virtual-File-System) \ No newline at end of file diff --git a/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/db-migrator-1.jpg b/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/db-migrator-1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8a0c4c345bc074490ffb5b5bb0ccefb7682b5651 GIT binary patch literal 43592 zcmb@t2UJsE_cjlFa)6Ky?h01*)p z;3eS)xSj`S0!WC7|Je!K4Z==(isoN z(-D!-5ncBJcmMz*QbKS4>G1!#5fKymc$4fF`E3fq4UMz_Vj>a};u|FY^qO#YIN>_r z1|2E=9T|3&=V6M3LWSW?^Mx7Zef}5fzhHxTkpk zfs*E9Eo~iLy(ceBOwG(KEUg@!oLxY!ZtlK*{sDnO!6DIaVq)Xs6B08r-(_Xzy#J6} zR9sS8R$fv0rLMlAv8lPGwXM6Sx37QT`{2;{#N^cU%#t4|B~$gA{QM&F5(+ENN$k*BNq{IAmJdPyFq$K<|e&{5t+R=1D|Z< zEyhRbpKH6w`Q?n!Ob$L{x0waxQG%F%MEjqT{l60|>i?5u{}Sxqa?JrKNr(u8M?wcs z2VkL>AzlZ%gv*}x%Vf()^|366(4XLIw$Jjm?z$j zDq~Y$d0y`%&*EuzX7zX0r+MkMzgF-H6YTziWcOjrf3~vuK8k6-D|uJ&eOYdyFSBWMK`JY~ExatRH>4h`%i9EKo+c!0N2@r}9 zZ^tzETm#6$6wynsbIS@>ZOx5l{6tRl4I+M?vdSMS=?>q@xY_KI<={~Jz1!)*;@=to zKSUhY85%V;f3ck=gI~(KOt=PwNn?$!Iuy?s@K_+ard|h2w+0E-YM88UsNj;8TyL+h z%QR|C#Q$YnY}1wGHc}b>t48VlRoR-YtI7w*mt%qkMS3;dI*@LJg)E!2wl-(DPRpl` zeE5(Vu;3scz*{Sjsw&cv|30`l{y#Q2kCOh@0bb3CSCMfSZW@=*54f;q^;fQX&*&Ae z?M%Tj6f^sH>}_=R;@>SYwu|PT(0!JkKzjXB)sx*l(b9p+osd4*M&5V(<#mZyak38< zN^~DgC zE%|KxFPNP3ZKW@xZ2Nr1kU9MqT#uKX*k}?GbPeDRV$qvy*?m`6?8M;Zp3dv*_l+$OWRZ!(B)mRn!F8;>> zrI0{fawjoQVMyf1^vGcdymL9ErJ>z6YxK^4RC6ny7`w2S%bgA>op;X(nb+t3c=4># zEu6GBU22El5|y>KRD9#}%N`%h5#>(Lu0RX6GIM+ls2fq+M}jPI z*8qvp!gI&=A1nDSH?#VW7mg19ty!M=38=UFVazq)_O3inl$sodIj_Q<`NG63H=;0X z4zj;g35D2G!G@CGmxdZh?;pw|>4MCxS+xq*XFrrW zJ1lVZxKdWbqHghi<;zigZ?XCxzrD)IPBJV~Z|o-A8}!n{%sR-Eo62DbROfaLmozQ|8sah zXRRGEzI-RyzGF0H{H_h%ovv?&dF5Uwr3$t8J+vkUrYdSLL`AF1kO~dz(zZbO%))HlG>P`;- zZ9eE)j1lHE(Y6^>m;vsgMQh9^c0P~(+scakdxo2ve+nbVz!N?Nd&pOiUp{Sm)#qI? zH$NP#0^H+oOx0tmvD5>^YkqvI^j4grmsyRc5xpF{F(F+8nh{F$t+x76BG?e+LMIj$ z&D+nECON38WHi!PfO1Itk7}O4(rAwRrIGf*-0ODO3*$L~Hb7mNWKCf?i|g2&fTlo( zj1Dv_mXWthGHWkP15IX-x4IRB;76rcorX)B{n}Tk^f%C+eVqR2blElc#chU^3fB0u zW?rf-m|4|f^UoQmw>Yrv8X&z>p!YA6T>LMs+j{j~18&V?;-iDs?{t|b#lCe-#lesqSLy7EJ17fO_P4@910EXEnt1cNq=j7lF+;JZOZ;F zS(JY$MELIhmME?y&d8B%p_oxm?Mm1MZ6F zYQ2}f6LKT;giAXxm{}wp(M%qbsKh6D4&d=??W~)Xe+{Yf1)tU4qC|Gj+Z=U{i z8H1g53qbaJH*4!+flA}RGw)2Xas}9wO*0EKVR~8rOUwTT3+=YPr~cSTR6Ey`J)<$c z*E`eQ7rVdQ&ENsq16~(8v)M1iHILGkZiqY>Tv;tCB*uAhs_{VoI0uJ4w8szCC!Q`I z)J&T!bCkAycM?s7H@km~T5Pe+jN@2C#qlte`g8D2{K9ng z{U}5=zkk~N7~-3yu6Q19r)JCIRn}HI;lYAXjEum%RKYE zA$!M3JAuxK-X+*J*O-k-j{BE2QDjN}{?=Eu%Ht~Q#L4l+>XlR#a+mYLQBv)E8+j3Ma zmG>&7hB|n_{n(2OyhPVl|7)h_jNRS6c2CHxP`?3embx7L7Y|7oNGQzhmcIPJjmnzgp`F zg9b?1e)TG3Qg%UK1ul^x_x+FMhXjGl$=v<^O-AqgLF46yS!GMvwZ}|g?Gi>u4tGBu z`mNNxRrSQOSgmYP1#q(-ZB%s`h&M_pN_-}Q2U|?|kZEu{Fbj7cdI_A-%GC?q^is6a zZ@cq-r~u#&v4z?w<=Y=7AJ*R2S_Cb&L&C1K!Y;8^hoAc!-A>g~n=k{BC(`jtx3GEA ziL2w*J*OdFa|khy8iT!2M@sK_SU&$<*3!G57yf>>JdX z(p5pl%f|Hn0_on`0igw|-J<8~cZ6?i%S8fJ#}w1FD=v~r$l^K&~n6{ELZb%2-UK3l9^aH66@98Fglk}ud4ws*07r1}M-+08?9 zOcPI48uW9yp8;Dm<+mrUA1Yqq9K|2V)MF61^*EmEvDjw^H|;Iq02ayCRe0hO(-aPb znY&UjY_P)SJkf{n=``nD@oBX-zG@MF*WJ6$GN%SC4Lj13vQ;w(`w$q2%*Th2hVy^I zLC{Sx7->}5ml?b8n7F8%p0=2o)1Vfm@ZNNr$K%1WHM4Ibd}{4Xb6#!Thv!w4k1tP8 z^UW<^Y>$>6^CUGbv0-MSpH;3cQ@PJkrA(cyC!q`}t^qFAbKg(P1k$4{=MfnX?!2Ol zih0pqptAN1QAaP8^|0LU$%VqM;SK0@HWxJ=RwLzgeV>o3Amgjw33$n6ycEiNO0_`Rr*_8W3I-R!MyGtBTOBWH-e=@WWJ%`)w+#{k&el5O{C<>F_ z!ke*pNgqAEu-3$`go&?88e6CF>@;W0VHJ%gjzbU0w^K^y=a!ybW{5mC`*qjhp(DTc zYdN|CS>Osh)s8K%SB(y{oX}{dCZ}(Wqz2cGzVs^1Ws@x6fILrN9FQw&N!49A@MgUa z83D=}>6}|*W{zkK_q6aj)9MsBkkDsL9O^VhI0d1+N+l&ed^yOAhQ?;=zPP`4Zw$6Sn-Zv!{|ignXpj9F_?>mRtds z4?p&^9`4=%1}89~+U#KApO>{l%a&~1&T2u!Esa@4>9V&!%D&as;NLbd`5f9Fh=fJX znRiaRURZZ`Dr2FL@Txt!-HV$!)ds8WReQrDzCC~4b6Bh_{ev9qQgsDmAINQHIMJy+ zi9iFi%&{?RhNNM3wHWGD6?-=nupT>VG9xMN&mrF2I0^F{0xT13BC`o?4bv~;I-d7* z(MKta)zvwVVdv1d=LPVpKtgo$<04Q4+fh+tqu2Yk;#4qYmnaFB zo4N*=Q-4IxYdw##K93&hKR5CJMRL%1` zG*G}Mcp$Pm_bg7*;<UPQmBpYpuZ5^5Rt zp;YbZ-ffjgOJ_aGpPZ2<;!3z6LNh8r}|5#iG{KS%+8G5mTv2g2~+M z`ugbsp5+tMzscSXtOwt&V^bs#r2W!Pw9`8qW{2)5>^&rRXHg7f*dD`*NmJP^&Rf^( z+e>8AKm^i@_ZJ-9$j_g#f^KXggiWU4jl<_&jpD;8k4|lZa}eK)v61|zP0T)E3 zVuc;W_^g7$1o6drC{`T!?ScjMV~!`r34INS_5;$*VVBKj!W>J0Z1PF^4N>Fbp!A2= z0Nq$&H=6}+rrR-w2)%F1nX6^#_mWnD6k4k^6j<K(Ms zrordV8^4D&HELe(Zl90#bl#mo@Xn-s28U!P&b-Y7XO`OzdV=ClQcmew4bKdj(lpx% zV9QoroOltr2R|=-7?e4{&eJb_Ytc3L8j$939PU2Q+noDpT7gO|2&NDZN)^E^OO3Np z8h>iGx%05yseeVAiiZYUtdaJuleDQ8vw@8DAEgM&{(GRDl&`d@NBKelp6SnC;`v52 zCaL(V2Q|}CG^)XfC(ui}yQ{7K2p6c9Ro8(o9q5z39n_9PMGcv|GQ9(#tU{&~|M3FDFMp}%3 z|9Y5}!g0}#*MJ)MHQ-aJ^Yni^mA`4L#_H7afiHpG(&=SIJh_X&3P3s6IYju|a#GJq zS_(hrF*n;dLg$OM^aampOL}o5^nCYAvMm117MITbJ46#Wm#g>wqme+$FqTysMrEtL z0)gB$rDqT7W9VgzG_L`w)JIu(PC)Q?Zc)4a%O?>tYW!DafBZOXL$$|`OUBl7byGhI z41XXd<_J|Zh%Sc(831g?{-`%9gmUoVEm{li2Rhzg_y#(GKSoTdNTLsW*>hbl%u2nh zXXTrk&aAT5%`q&&@V?F*7BpoQc~LRMUQ{YJ_yTGBf0~3R0TrQ)BPM$Y*Q*bhls48&ZL=lFxtK(8~V=P&B z>`{`t3nWo{OXdw5kIX{rae}%lkbDko$KIB`*2^v3Hlf~NgwU$qX_~$$pDnKs;%yAj zTUQiIoktAXFtM3DzYkYKAEqGq;bGEW(V*ng=?3_p6k~{v;beoph!;i44*Mu&t)Be- z2eJ1oNj`>st6WKQmu$iV3y?ne51TvXqj;jtz-gp?XG_yjQOjQ^SKKy-pI4OjhU(-R z?}Z7I!dCj}Abv=IxqW_!ffnczVf%aSe!utgF^*Xq!S>rCMHL!ajL(Vw|2(X+k$GuEwa?xqys^9)({1eMkU0qZ}_~Nrv9C29c$x-0P&q1k`@6DFsza75WQ) zMNX_Qd#O$Hhba2rFS#jcRXcv@uk8&2c?Z16rhPoxtST4T=NEAc9j3Rqh7bFh3A8B zixX67x{>{zt9D0Lo_@r^K)!^BYDvYws@e8_l|J;t1`j%64|;raQXS274e0*dj>cEo z6Xk9hv^U2D$r_M+Nj_drJR9NBM`8@qoY76u7_vU4H`984UQ+lGnMV$Qn< zfk}$*cDsM-S?z@XIUi5li(th)B4oEgt6uwsSZxA^LoTSO&*Fu@UOJbLq!kV?Any*4 zsW{EdEjO@46=TyezCA!v1ReVDn;Hj@*7Y=`qaO+SRL#<)DJ@W4r>)IEx8}LfwBO$P zeb;Sg7`BK6e&60S51X?D{src#tBb&E{iU(OVd$XIZx@ill&!qS7=^{@g1OkwsNoc~ z&FP?**&g8;ATvLE3c%&-1KGRJY@oF~F-R201VT%?zk^Se@cPABpxU#d&QA?j38+SlVjoPd7f9=YQ*}h2!vqRVG7W-@ zTcck6fHwkt?mtuyAjueM;8|76LXVzW{_5leFWn8T>JVO)j&1acW63>@sakYPeD7UP z{q?&|AK$@^d%m%Me25`}P;op9FzCONV&Rq`An zL>x?}--%Ay&(HIC?i8ayPLs(`{ZKr=H-L@*6ZZ3^7?upr1ne4HQK!9X?(Y;=Gi}Ko z+A+5RrIS3-m(h2AE%SXooAa-hV(2_<{PL8(ex@|^g4I?1KNrbxU8z+5l_K5W#PZl5RLnM%*WJumno_$jEUXL0p8rXNP;*Di@(W~(qKmmQP{Wq&ao#99< z@#3rpiGJ1*XoK~2t~Oi+eZ^>qFRlT+ZFS-5 zsI&~iTtS$k6*VR!sBlET4q>0so%LVb+51wfs@<&aOiB|xvaP9=viIf!?QjF&8PWF@ zGxJ2~N@3eZVIqQ}3=8gsRJ(PGfMXQr`jfnihway?#v7U@TpqS-n|$72AcS50BxoQnx#)9%({4XZebA|(#y`cJxwfRO3u}J3Xb(z z7V0K}KuXq_dLzb>^^loAN0rzxD(A*Ue!B*6m3URkJzJ%9h!~e(Q_fa$)Nt2&^e=9a zO|zuKuYV3^AlCqrei3*((y1^OPfWmL-Ehk0UTMmmwwliv9m|&ShN}EW(+`~Lnp4T? zoD=f(wB693YRDJjzQUQ&G=H)?d0VhBp2RRmvM7FRs5hhe#G-}jkSQ!h9;+%9 zrVbnLC_xIw(jee(mav$Igqi#99vL9yF+*5BDPg_#rjcUlCF`aST%vvNX&TO_q>p^txj+ZN0yl zc77;80kM%pS$QY^2IKa9LAbhlk70IqPCNYM7uGKElHtWw?ulWd8W~o()b(x<$S}ti zIjv|nzuiB*d5iZ$Qpe)=bi|1%>q9!3w}>r;UWw~~*&j=~#~1(ROQCvfRask0rtxtd;4=X-3- zCD)D}4;r5A&vPs6X)UG`w$kcoNVg+eI_xrS|GtWK9psz`76-Ainr+>GF^1hcr5Z=@ zu%!Ii$BWImM+l*RzQzkcST30@a;+a5{ICMvExM;cq~Q}`91x4z&N-R82)4L4b`7wW zi~xOqXQXxa9|!rrJSGWW?OPA%$<#IAn6bL;znzx79xh50{RguW?L@F)_hCVbDC*J` z2(w7FwJ|b#ch3xnJ*P#;^#9WS{lmRW&4=2;K8PbaxYQaVcH-A^!VkVXvHk%zy=VXT z$CocZ^4dI!-mU#gtbE8FjXqk9X^v{(Sd`s*ntLuKg=(YM@Vg`C==}15_IJVH8u%m3 zy9n9B0i~GEayJyj?BeKIN1bA`R)D<3de*BBjkyr>gz2r=Fov3-?+Ym`26@jf@4isX zO3Mrg*b?rf*|2tyF%?6tJt~2*HcTh!tI`N=VBP%%6B0MxH3x>z=#*+D5FO(&Pe}=TF@gNkEZYH+ z`>KP)h~Y}h2jyRIBL`)ZwvSJM(XB%><4WcGrC*u{4k^M6$HSDV3#C#@dWuI%M*~3m zEhb8XIk(y=$kw78D%2I9oVO(&7{K?22Ed7-*8r=s@H-{=$pUh;S3k||psg+>**-!_ zKH<>Q%fn&DIUl~X%D~#2M)%i9wwJGx^COYXB(fpr13K~W+cf~4y0*_Pc@20|zJCqy zyhI-N4F5g920#OGHxb5(K&srG=A{qDXYdH*%x?JT3UJQ4n_H#+syNJXb&*3qQJU7; zO-Pz-mwhxx@S>YrF;(=Tj>|WyRu-`*AGz^R?@OQBnUe<+I2!7F6de0l03DnDxu;SF zKbp|JY4)K=$YtpGPS9<+w|eIei65ju5!p|c<96lu_d@Z&_3%iqOQ>Z{p{olPM47t~ z!JOGWS}D|_^eG_=;QC3#G2U76E}-82CYq&ydGxd`lqZ$|wHo};;q^htZ|096EWIP) zye4TQ)EGSvMl$Lzv>8`7waFEZMwo1a5fhhhn)FL^&*ioY;|m+MqHwlrlG1&1irwNs zs-ObZhbbe)jjfsqw0eKKLapt+9klCHUjmo8Ca--mg^&wE=tEr(CRq8 z2$H5>k_b6y_$!E~f*U;Jl%iKBj*>!mrtJJDY-45?`B(do)s&sdvV(gqDzE>+CWb(Ef<@jp;9#6VOB~j~7@s$hFju(c3Gm}}R8MD@C zwOy?6Cu7>f7Q^8>|<-dgYGQh?5*_X4R#SiDHdsV zfXD3A;~R7@90}!%rh_UJmpZCJNhkJGs@E+WcN#fc+YgSD_U%67kDv3sM{^K0EAny% zC?bR}?Sq6-*MI~CFq|@sHCpr6Nxp0-mA+vkM(|t9hZ28>9Y6kM`qwSLUlV<-wDbKt z!dMN50{h&>k$c0HCr^RR8nxID=%YTRz}GPOOKI|LuTM>>xk(7~yR!S|TyGnKzV#p8 z#SA{ERtC;pNRwk9yV{YVO(IwlXZmWf<%UQ8I*8O|5BEYBXD2GY401^Xrwl6>cuP!V z?}YXjdrptUuLmw3 zYy6Z8AW9mhh}mUyX4pe)%qkSCi60^4=Rt1-(C}Gk!`W3%n7zssUUxYe;IZv`A`4NV7b{7FG%oK|AdoS|0SHvGHN^_kxCS)1QaET zknF-|kC)t$#QQjft7x(Wc`k5YGu<9@Gxb+kN1f%PkpL-HhsDnuy>Y2uG$=LBk^Q-z z=|$Lfi?6@@&1U4SLo4~}CvzFdTjOPJU()dNHAzHBVAGypfuSoL9HX_^2t00=rMBm9 z$FPT%Nx(t$Fjezsm5(Uz{$FH)=)*23`mNj9%xIBeb&2c%@t0*SFnfJS{aby`*MJk8 zcq7^?vZRGzwuifo*czG<(|(~h6rWb3gX`O(`lzWDspCEd)R1*S8Q@_oC5vvqc23Qw zXISVKzP267a@`V-O6{0r-|_R}c3YB2>Q7na(hZ6@vnu$xDhh)Xn3%oke8^F!1P?jr z*QZ85PnQ0f+gT8@2d>||Dv)v5Qc5}tu^Q>f-GRO+8dIS`88U@EZ%4yYn(E8vcalOf zM?)*R>uuyU-Sg{$-Q!*fR0u@=sh$F_vP5~{h(2Mro_@`>gq4gnSl4eZXvxs<_m2MX z{N|jX8p4@eX?CAmWV&ILZO}`o5%Xvh?@B~2(WZa+06;&2l+Xn@tz#^60+-l+g;A^~ ziAysK*SNEn1k`GASRj-izYzE7OG76U?b}J}RSFan-1}lMccWgvp0?=HUU_+XH`cN5 z;xNizeP5b-&nh*t;*U%?T)#bI&NhzCc3Y$C+nQ?C9!-*!R0pPNtvQvz55kt4w4wuJ zj^_<*8-_bVly#q`Kp^Y_KDO%VBr2Il{3NffV;vZA-gbGy1B4L3ChXBP&fM3&WHH}o z&~M*RCzqVP|6oCj)1EExkY~5})etIcl8LWfae4G`JHX!{7&uY6lolC545YQumxBBG z#j8jL*DUOWm?6t|n*(x~|C0XY-d%huQ76TEuTLDAr5xdQ42?!oAhasOR2v%9B%3k^ zrt7W}TsoVee-g$mUs8!OukE{z4}27P{e`;PklU0Hi@95i??1EU=uu*c+i#>|htTVb z-#TEIVT84=FG`H^>ldyD5=gR?0OD;ZTVn@_F`8<>0~S5J@^!epy0+Ca&_?gU(bu)W z5pkLvFF@e>@bvJ-9`qM16MQko^{j9uEsmQ53th1d?Q`s%IV-r+(jL1?#eJ}}q-=ru zsIw)S!A9|s=L9IFD;#pH%95Z4sJ4j|W&6&{l9 z@cq8C%#E-tH}LY`nqSy`j?KZ-*H_p)wzHJ>j2P%D@;AqeEWH^!O0bXj@PcvLgmBn%aFPp0ZiMLGo9QbDWUoq0l z4zDlqVK+jngRJp%i;6u2cslG|wVffjJS*jyt^L-PSW4x0>2S-{WPFQ5`zzhj4g?%qaSiBV zuS4b|Z(ajdxCd7XX{^KKenrSyW7SvXx!IZ_>Y6Qac1fn8(GE_9vetUO@{8oVw+NK`Af3IjHY?v<-ok4DIVg<7kIE3AI2A@BcAf7%>Kvmy3F=#6A=UXpfX zV$RDf)C>>Pp?Y1IZK=g}n_7A)HeF(^V7y=Sk+o#~&E&^c+8!B5IbGX4fy~U@+3{DPdUKWt|uECRaZbezFn+ye$xvFF+}b?~ioR}OuH z2ILa_EdM)}VTBn(+MBT#Xyl3}lI8v%Y%c)x{%a zt-rDy9VXwYfc0N9B(JG-EMH#S&9z<1skYVemuI1!ZO9vUT}`lMe~=lKXqpxGfOVW;fTj01l^S6Lz?occQW^U4ZT2c1K4kixx?qCDoGD!es2Y3Y}duD@T?45j>L|2C;6Z&(u) zF+OaGhR6BCtVW;Vhng^?>xw*()CE!9E^^r(e(gASM7kWHYILYXqdLqUIi(8JD7G-$vfTpuI?P7G6#Vn0D1k-WW&zxPsUx-?ffsr!%2{2N`e}xt2q%kH@1LDy}9B5viM!obL9KcrNRx!F}-Jjt|^dLW$EfTCM6JY5zgQRLz~x@F$B>*-Ovwqzbxn%GYN7$hb*V$G}UCTqBFCX-s3lxwke< z`77()$<%DVB!$gnK|(jFEudpn2NSwrZSe>%3|4Fh`=vkCp63Q; z^FXU9j(v0CI4h62lm_%L>EgFn znFFM6-{{_g46_}*uQhtBXdf#5ziq}jB@g%MzAObr_4F>IQ-XYG*sN`>?S@w^VC9#l zlV9Iz>ao55Mv+B2%ct%5vA|j$p@kVbvp_fF_}jc<2@WY-{L)MkJUnjSB7It-W6-yi zYsMRQS(3$}{i_u+H?XMJVdZ`eh}#B<96^ej&kv7OIabwUcI!jsRba`|tNHcUs?0% z9*cSQtA_e+$;WrrlH*IY-u@i8V*&qR;$0wt-KfNt0a?Dc38fVy6HBAEj3Ey^Z|=pH z1tZpvgu;`5ZoT4>0?bvJHKxtcm`|IVbU;Wn8Zl;7uG3a=iI7kEUNw&Xd(f0F&&^sC+`o@r5U#V{H#k2%d?3VY#I@q4>Tah^o4tYk+e zW8tx`vLGL6iW95TLZ7Yx-RLaNXQn#LpnR`(&aMAo_@NqS3i|_FibH9TU`SP+5SDN(=-&7AYAyv!Q-|!Lq{b>)&hTH z#n>(5espzHt&0ki6{Eenpf|!EPlmC5aXVu_O+ckMK#T{TH@3CJ9vu8!9iQ31vzFzM z;H;yQyf0HpYU8Y#DLyRFIlh{EC+5s@9~u^#YuI&e>(B(h#~7y zbzSA7#20RZa+;Vuvx&xV`Yqitd0QHTu_8q3sCIp7K%;qELQ#R4?9;!9U+EZ zqC`V4e<*>6uI}&*$>~;)Q>T%}Iirhvv)iN^!#{yT7JsJrmw*+gCn9}mGIs9R zdob&M5Mqn}#9PU2&#LgvE=UJ;5hgx~aFGbp;XG5Cyiog4nqqvDj;Se8E88t%NHGTF zQB>qf`H5-HvXwB%IFA_|M|se*QNySnP;6tR!n|TGb3kyugPES12V<}JH^AS8<382U z)tKqpPc;dk;++uYEbi)yANMYT^54kG8}*x7xj8w!Prk>RnGxI%@N(%;SAb3$jT2%# z>ubO_RsCLIeN!GyPrk2F(}Y4AH8xW_wco66x^Yo0_#ivjn3>)}yVBbsP@e;yYs0ki z@$EC6_%KoQ1nRIia%B&u-rIHnFW!CidwIF6+>5kyVF(3!90{{6et1rlG}t06*4}9Y zXNVY^L&hH?ndZs~&auP>TQMM1U$KK;pvbGtaC)!brnjIyKbcV*qlv(^-ZmHSS7)!m zdGudg5|CS5@83bnW;?;ADF2SOAWWQ}94m>;bIS}t35~&xx|MUMyty+dn%r%O%D*uO z$1tNX`UX#m3G7Qtl-W_^n(^EkYm94bLI=cE&1nX|>h!~h_kC%sTx0~ZM?yHCt=tzp zt%QG&W)?u?zoeHS`mHV0k8WKHP+o(DR2Mdg8?5OsGYziL-0E!i4a+TB^g!OEmlnzTx}%9-De>GyuJ;$#+^gu2{^?vHv*zq0;aVxV$1qfadT z-a=$>S5MO%A&zR#cbPHjNS)CuxGxktYi*Wc8~^hmfKPPLVMvi-V9%PJC+20wQ6HXT zsx(QjF4JPHdMjIWxU|98Mz1xxh3$6DGmC)Drat>!qaN)xD1$y|YW^37088%}BhbIF z#h#1fAzqV&h~bUW9zF`sNkG{@fG8t(ZiY$uE1@l87IxDUSbcB(RorvE0(F^gQ8BWo z>9$ruKn-9LiSdb_Dp zD!NC`a-_T|>(lpZfPMa^hG+);xr^3%;d>0uX5Yaytnx{T#5w%S&SFX6=-i7ZHZxOx z2jdTDsIZ1MnC#N4eAE@k^BI4tSi`!VCb+lMSaMVEjTI-~)RW@Xv{*G6wCYFm2!3>S zE9%m+5)A6(mn_@@6|+e=iL!2dJ;ZmemBZS1&I(1xfLc3CELiI=;JKKqtfoA; zrael0@yXefvGU2HuZb6IfcOEyUwT8bOcEtcrkGXSVa`F2WCvLD`P>$FJ`3R4jrLYdo5Y3 ziKyqdve_8uQD0fJjrxreM*JeAu%N3n6d{{V?3!*+6Rgg_qu&r&s#{9PvFO~Yu)%#9 zILN*aSYPq`+#y9+J&}vtlxhl>K3BZpxi<#X2N%$xV{<<3sEJNAq}?8^*ohF2e$rNp zzB;Hv`}#B z-6h`aMa`$Vrpe8cv;wa!w95f2C&ypdH{&XUKqf5{3Moo^PbOjCEvpYdxw<63y+xT! z#7P^>bqii1zo>{h#N9!%7LWT^qR`dTN}TnE#g_U3k~LJ{WVLSFBIs2dp1vNx`?3V& z&34b%1_d~DWjI*{co1LWLMZ6J{HTCcl8V1+p1^~^6T&>K86*p7G7 z%VXcee?F9l+-^7U0vLCozzVt35v#HB-l<(H4}8bCtNC@{$}x#PN+|8Kd&pT2kZs3` zQH`Yy(K*%7p0D)NZKE-7u>OcS2yrfu{!I9HPblRleox(!jdl5UsP(5o94CD6IQ6j;8S&P%f6cs7THn_vXrT_m67GzS_APl0_RQB7d>J=GbI-!9Q8PU>H+Jq3EQi0r zP4T@nn!XBy3OV<~FQx0J-9eAVIn^ES#=1^WWtay`!CrR;qqhjD(7w@&;|cZSHYM|^ zn(pn=Wjs+Y*zPulCQjkIpRM`BDftlxNP%5pFi1d=27$WQKg4>VLP-sl+MNb-RKjZP zGnQ6aWCkg}n2tqunUTHKAP~qub<*y#u;+9yQ}^oonL;49&CK=45=pSxqhi#vHCZUJ?FbII7AQlJ=KLWSI|9sO|Tz0~;?JF;@Ao?@q7-_j;TiY{HZ z@`{(@w|O@nF(kG2afRAMa58wS#IdEucQubdBxF(1y6X7i_We_sLZ(@LQ_3v!v{q}* z5Q!T{l<0hP*8pFflqnS0He-lppDJBi4j%^%5$gQh^l0hGKM^8WIn)wtrKK@#pG$1| z^vnwKXh*6bc%O9ipw}nuN(G`6U4SsUh(?{kV_Om1E6a(s8<|O!~i4%qrZ005N zvYvHSZ&S9Lb8BFGOYf4svb`Ad1Ac=a)Bp|(pT@$I30#-^+%azP8omkK;ocXXbR)zPLYOMU}GK$W`D!FvH=0S$_VfJl&6B!L<`? zHL}!WS}`8Ev5Y6Z60_^k9%0%%HaSWiC^540(&9up&K_TZttVBK36V5{Wn8B?ykeKe z?W6VtBY8)Mt|N7ATX7D?KrUD)n%;N8IoT9elCQ^pi?RQ=$oRR z*I$0JbefxTo1_a$oFFzf!t&~vgjJr4ThMjZYXCO)NQTGu-8H~lq=HZo?cwpxm_{WA zfnAQj48fMZdN;Ot30Cf07{KF?Sq~g0PQ+b#ThawH9!QSAw3TV>^t;dd8hX2?j8XMr=PCJZ|t02|ekSZx@gx)wnoVQSFeqIs?X47Pz$@J2YJTU&o| z@M=;x`@qw?34*yl^jn53M2O7QyTREVPp3^xm9qGUV9xMx$dERSM*0Tdjs`||0K8|5~8F({Rq2lfsicTUSgjnOsoC=aNYTv85e%e zrisp(MSOoB4p{ZE1oYtD?Fyg=4AO+Y=v52`)5M(Ef}UWqQXAyQ=n9rpRaZUqcpqvw z54^Aol(P2^uF1dL`L&ZO*E8Vhp~hc^Zws%5qUZ=dvjBr{{5`NH&C$08E@ZB0Wt;K* zbgA%T#EU`8o8}##j2?N~u%F16+jVcfGsrg)W)pBJ+Bz>|jD~ods15CpPd*RU z&BNvqo^f!g0c#+6l=1%S-Xvz!Zl> z!NM``U;C9$GKqWOI>}24XIAJ9$ z$|)!s4>iZ*%CW}K?(YOr6`_)Mb#90kO0^k1FTM)vc#3cQW?;R0fF$#;><8C zv4kZ`ikj$?5m?7*io(>73E<9jvumabp|(2zq1cx*QK{{XN95qQ0lMYm(Nky+lkshND;gn0DZ*HjPjLgaP+Q*$M0%F%`WnXm8Fw za`qbFHcNAHRp2txvUnE!Q|2(Y#%2UO$}@m#|2?{Ab91p19zXL_9aji0=vg)7#IE(_ z-XHgBw7%un6_oqBe!_1rlr?53miXn@$FCny`z%^heB8IO^h&T(%j{*ZskXc(EC)CW+$p5~*FL#HN(1(?<&{9%0iHe?WoA1_uS{eDD$=W2#yYdAzNjtsq!zj`AwlJ>PXusVXrs>FFN@T2_qvEx*Vk@44xy4Z%pyThd%DieAqHBe=^>% z7YYsy45V(2lK&sHy=PccZL}?l0)iBgj#Q;9T`7tXM5KvyrG+LvM4GhF1r1fYfPfI` zH6S(gNN>_hB-GH9o&aKiz<1Vn&b|BD`<7>)`{Vw|kK`e+c;EHTHRqUPjH%Vg+=d$R zcYj2mYPp9=X!G^0b~!_zw5K6w6IqfV1amX+JlLWzoAf=M&{K2QLnh|&eeJFf7xfj(zZ9&xy@gAafB+Yg(7kj&;9mS{7bW&7*qa!4i!_0JM^p|xeQ6C0qamcya( zHA?>}x@nTcZEgZWMc|{`K)%>9lm&ydk5EhwGbV> z=2}#JO4kw;sfZ0~4RT)KwJ(;0OQ9#UA!D>yi$Ks!}%_OPhSu>OnFe@{zQL8mnFAF@?Ci!WH^jp)Y7 zHEj<`U$Gq?5XY-!J7%G7jkX#xGVfIVj0f(d2~yaA2kUo8SnDbX_|jo$)YlzeenLWX zB}6f8w%T22QqUYYEHHtH$-(zxp_^D)GkeNU4=A5-9L@;>j4F26d4KN1$phI7d$Zbf z+O5gWKgddny`uJHg*VU`yBKS`*3XGD*%ZH!0sirKh%xv}Wl)G?0hmYqR%HX%BMA@j z{l-QNqvaE8k$W&l6Cv$eQeRJwJW$}6NwJ{4SbSh4=kZ;v$yh>fB$ku zCZENM@+=?YUtn`nK^=IhUWgKH9>i3nCo2+#+zJe`FgII(1&#_udD?yhqSI-$kK1^& zhv>a1awkS@fdS+nDb~3}`s@&^+a5O_gFa1=A>Z^F-@OyDk#ML#g3$Y7nhxQ;N6Vx)iK>Ec6gx%l{>zuxv&g zX#(KFZQ%3)#{dL`hw7uh%2nq*OAn?S==Bam?8qexO5*SNBrJ)pvb`(2sma;LBuL4A zRl2F4M-O(|CKbXl6b)?eGSaiTSn)C@R;Pt71^>ri_1?Tgl;p`a6eW6^FMe!=D`RUXY z*L#0i78_K=vJxMx&lmlz*Tq-eE5euC%! z`a#WyX2-E&Bfks2hzF_zX`A6Fn=*e*oBBUwk^s|8YReMt3ZSh6@+xOQJM4_caKy7F zL!HIM{@>gXRC(>9n+`q29yN$HP8CdHH;wJNk&0k; zki|gft1nWzJ@-DIiIz`a+2NyBdZhd->W{7-y#~Ep`aZ3i7-ZO2WVG`M*Jny2Gv|*4 zqN#qNi=uU6C17%ZS%=FyVq_hs1skHfBCcirD0<2C(oN#K%5#DnS8vvGlwFFllu7$k zK{84aJ30|5(A>G%!beBavI1djP?+OQ!aXQG`6!0nNH9BJ{N(|a$U$h@VqCRe@eSG6 zR3mJ;XCBDJoCI2CI!nS0?OyDlgiqsTx^wm7vf5XYNixaJEzgW-#da#2xI0f9lGEPsB_@7 zroD~O=C(5X9YjIJ^PqeoEMCEg7?TgA4PuopSOxf$w&G{FQ`7mII&RI|o@Dk3`E8IP zV{OrPjC(vlrO?YaG=RREFVJuPj``Vf8^07@5jx4oCg5*IM9JUwm%RzmX z*qtao7f;bhrA}UYnlK+~^@HQCF=56{bIpTMZPkpV&f8wDxk^3YFq3|$>Q^ZF{aGuD zPLvk&wg369%`ZT~eW-|?2}a`*^N&O9J2_7p%AhUIk#^HS8AM-dH7s9)i_^V7dbs^4 zqT84C%Y7YcQILih-2T?kdZTaf-HI)1K}-jY`4a3wml>hA@C3ka^T3)XNs?6(hO0F1 zEL!rfEqZLEkQzP7PP0vkF{|jCuKpJ3Wvg!XM$_)d_)mZRGY*HvXMa^n?)KD%)#@pi z=TyfwwBD^RbNdrV6q>A+J>_rlg(@|BuP251A3abQPB6gx^=1k0A^7OY$?xD^gUhkYt|^6m?eX}!5-sr?>qdxf=bH8IN1 zKV4zzIz9qB>@3pjKPCJ7z{wd!K0sZ*-)ztETWj#PSE{utLw_}k%OxfLAWG>`#r7q~ z(KY!b(>4O)!YntPB0JVC{>9V9Ej_TIap)w6B{;A0A@3U9l3!!#}AG zbGYC2Ezhx8UGyVTNr&J4H?1v%7XdrEJr43hs*;)iG7?z3=~`?znd8Zt!;aM^gB zK5TAvnSc$^wEL1W7QlAnZlq+TYC8$3A2~FnJ7{mb8}^(MkpKSsmwPXDsM&Ndbd|@> z$^v{5WZa%=DvFI;u-3lQF8Vgo4*VCcMd3aw)2pIS_!U!+*iHOKj5Ddd?1%8_o+}^M zT)+z-C3Qz$%(-uPd!)23TUd~bzmurf6vTx%}l?Vt4p z>FsKsmhvhMr7&Q6N0mF5y2|+_F>!U#yGMEln;0vHRI`dy5th)~G04*S^gX?m*~qAD{Rbup=Z3iaq?kd=z6y&woakjBhuyuP*QQ>M-!2J%oaLjt8@<#PC5pchYC#ps{9+-Vxx1K9~s23J$vCiK2+ zm_M`nT(CcXc8bs1ti@+Yf}YBOlq0NB(>pxbAHXqz$ZXZn(v#Iu~MnikF!o zLT!GDzRuQ(W|>*{2b*6*&wf~GRUh+ZLZ-sRjZ(ins&g#%le;=-axkJiiu zr|S9Gh`)5*#PvV_sL@F24U%<8{=jc$CwWc5E5%^#fnjTEpY<(bgY&8i)$dR)8@gWZ zS^ARSNk4TjG#Ti>Z?{Zz1VteRcraujz!`5GgM1_ z_n2(<%X|C&LJ4GK4#!vPgEa{Py&ck1Z;tnZdKG6;C37qD7OoZ_FpR2jth_)CZ9n&o zFNRWq2WS!nnjcv4jZ3#sk*TG7v$Ad~eKzc}F2M{q)+v$6nQ(k_Vur31bo#LarS#IBa=$Y7=K_s=5SfrRECvds=40AaEK zh4f#9HgUca#C;{(Y^hg9nJTATA&uwzR5ByWR%fn6k!6nyh(z{>UjyAx8PS)l(>@I`g0{VAaiN z8=5`F=!)@Y1`k5SrtBx?eHL`xDn~v=CN@UW(Xr^@A2Jm9$i@pYS9}Kkhs+HC0{H=bvY=>wtnI%o zzW?sUS_a_Yw}1Xawo~yB+3&mNzW?>T?iC=lGy0!I+Nm}%Jf9f>)y1RPhZQ7PFF>## z8tZ-!_YQY+%M4BRJjlFCB{WS3=W4!Evnh9s>daAlieLU7#K620dK;n5%SZTxI+;~` zvt*rD`a^u>I-LZG7Jpd8ur?c zt-cYZn=Vt(DqFdh)Z;UE zhIx(G?;1nGOif!Nk4z%eJ5ccaNe8pVPe}@FKl^E$8Wp{W7&YjPY@7`v?C9KiWX2~> z*;^x>_#)OC_Uy-G1R0ICRrl9XD2nyHkEdsk)%l2Ij`>l={gb9LoIr_0>#}c{WXaXw z$1AL6F^FE<=S2l7c2U2`9FmXTk`)-^HQ}51gw}GGzggpLlaos(?~PCiaz0t=uLK|> z1=n~BSbzUTFdBCOaiU7@BB<8}|Jem~_3tiiksil<<-0e+ck>;i-MV(k7*S=0k$Gze zTwB(l@nG*V7rd3K8*h9*wyE_HbxQ!2jGoE==wM&+P|%Iy9`PtH*2pNRdW5$@s|BL1 zy^m%~WW)ExIaj;dICfx;59m9;q33{g8> zwt~@U{8+To-BqLlZa+VCZngDK`^MvhrLV0jHr?k_G_DI5H6q>7n?Rk?UbQrQ zd4&+~!-t34gmqn2vf7*nTxfFi&&7romi)6f0$OWOTz-E?z31CQ9<2Nf6%XsmBx(ZP zp(a_t|hFb4BaS~oLiWi7+g zMaUe^XR2?yC|t5)8hE%~zTa(0M|cSp{otA*H5>H_eQaCV)?b^h0qN0ygqAaZI zDpV3=LxMC3?e%^ZCGm2$*nCw%=IahI&kP5l6uB0p?DeMxaQlXsS+oaZKY@A8YGxL( zW(8fnx?S@RnO%3mHqx;oo_fL3Nf)GjI|oa@q{UBp9u>h16GM#wVWgphuu~ptg9O6K zIywsAA3G8@<5rdJ^lt)G*-0N3RM2p{nPu(enHu+NlcnosIm^3*tO5cpZVv$2bBso3 z_qWH48ql?IhTo>^fBB(WQAs?t!hcM;BaN!cJ3mEGhTJV9c81k}9=c{7yklEBR95Mp zu=yP-*pY5tl09nR+?+DMJ1S!P>L*!LsDFeG%?y4t+s${ajAUA3vCRo=?#kXJS7skodWn00VUX{0cC^{4fSU=vGFO;afT+sX;|&1IjG!r`3Q2D`$50ksn@rt& zq!RF6x>+XX(fpU!T0?I)F59r@{j3+kRl&~cA$8{xL~qk6U_U3W2fwN!f_tQVd^z5@ zuh!!?k|2WN$OFLg#(gtM^f7nOcctg>7z$5$0`YQcVBl;Urc;&l+nYfA0^vEvnmt;MuPy(L_qQIBGhPtNl^`_TZ$z~r9qG8Zhn%UV3nlt8y6VG}i6YN-&3_g!>V zZ%>~VG`?x>a2VnKSv)}?ro&{j0t!kbAx^IYeK2b%X)N_PUUAtdWy4)gM^{wc{YYR* z{D-jbEk>y{uB5$jHkyvgc2{^v9)W2|pQtUzHQx#zwzBw(llYPG4;eNiCLnl9qPzDp zO;M9C^M0kv$LH55u7RSN(k@J`#vV)FTw6Zb#M!bV}a4nv}09BJ=ipMu7Y>7YUImA9!uL~G&?Aoo( zGb-G(ADvp8<2r%0@&Yi_ZNJo{?n z)=A~Ut8o@8v>E+=|Bx|-awgKWZxJ72S*xrWQCb0)L!pySeA}0plNw=#(7&E9yc(nS z8(S$t))Bs8!vql9e?+k2M47IMtihiYB@PiM2e{?ma{olU$cdZVgU_ON9WP@B{ zpMZH**RcBM6<3#Z!jL^2{i|uA=Z?z5mEiB!2y=NUOU|(`U5eskTOQu|^ge=m*M-d7 zTBT(dy`LghgilO7P`U#xo7Z%-F9W;s8s_q7T)Cfm%dU`o!CfvR4`%aUM3*M=R_4*0r1|$i0`onpA`;6+a0Dwg#)#-QEcfSCKP6VQWZOw_X!5+ zEb= zF}qe2hf|#U%8iZn#8ut~_qCPf#67-O+9di_EgS6*maeqI$)3fd{6!y99aa2_UL}CZ zY4lx9CvmfVp$%)`J@2kiZaj$qE=vC(Nm-vU zebHo~`dIaQ1xSF%zE(|7de(tggV~!*E2+PkWNG*|^($@PPQ&pCryIT`P@i<}sSaB5 zCn*3Jg;dW)uzHDV8AQdY#-T0ukw1N+d*z0MsWwY_-FwvSB#2)~cgwE# zB_jd(H=?gmJRg;D4t|mS9I;2!|Hf!>Z^uA8hcT7mG88-^Z#Ao6Gu60q*!N%;M5T+V}qV=tNk*|OAxM=5;*I(TyP`^8jZRe7w6?2THg<7P;ozZ)WMa2l& z#&2&7#yVaZRWxXch`jUG#w|yI#0invL8UGrj#=MUT3+|6`aKXh8i`j3B_wNEUr|c_ zUVPl%?VXd~LTeM%ajzX;c`1y-kJhL}t_V5K@_$RKT)X{F?FGB-didbBx<{}AF{l7m z*L^9Dk-K<%u0ExtLfKXu=ClU;dvU6P=Z$2>Lr$?O8?psr2{?ED zI~&lJ3yGEWsw_~K0rG~*r}YMd4~_glpto8^p3+Y+c=YZm&`V~AbcnSA7(@93qRYKy z3wea6^U;gwNLJNb7pqZALqG4ZCc0Wlf*Jvnw&UgNBnkpwkIulJ(%qsRQ;f{-_{zn& z5q_;tudUK<%VfT&xUE~$e7!wES|)YC5=PZ?lJ%!5MkPwl#kZoSWmz|+?^V-h$4I05 zt)CsuJXJoN8Sgk>`20gA4Ympcs~k$ZRKFl(bcfLpMYpuA}$=COKZGqr}AmBQ_)$(2^u+Pg~OM3%kGPTY}k}qs_o)s>9_9l;KlfJF^x5)_V6zT^COiS(Q7?Dy$N>7}bJ{V(l+z@^wm5X-&$dc* zU~Ib=-lP8{vApo|8bMI1uuD>oGF7X|*qPC&OS=})YE<4Y5e^q=5Zm(Hu}{ozVPGIB z1B?yX)(d?#U@HMPDzb)+O~h+){5)AvO!9=5{wL-^Zn_y5iK}`fz}cBMs!ZEI$khXB z3)ZGforgO;;9ryAo%U|>g4^fPE2GGHV}Al_?P@3!#OtR^R@%{aijq978$>X2Z;EU7 z_LU==bq7hUff4Wwh>M6)BTxjg72w>U`m^gF7KF2XOGbExHOOVWm__Zr3Vd1PF#hdA z{w2Si){J!d1&$R%9w-$vg_@=a-mq7W9t7N_r90(hJ^no{Y(@Sh zkbh5$^3zF=x&;gKt-}%V`=n)o{IYw?t)bLo151&g{U2e)@=!$o)z)g-1z0*C9rOY0 z?P9EMMSscAZ1T4|T9Alc3MML%GS;#GXS1#UcOLhDm}Y_A5$)HcD2S#jN~WRw-sL+j z&asZuveh>E$em_RS9WE#LNM@b#8{ z5?*MZ^7I`UZ&%IluMFlyog!F}5x%Na4kE$3vo}tGYMqWR|9nW^K@rnbo(_mv&ML~L zeB-6MI57!wP$4TD?I~X*+n)Wo<`)sI4QH`Urnyn-!I9u|@Fgo@sd)v_5YKs02_HAS zUtU2qpVCaho2ioHyIKR9r=?+x(35!l$1g=F^P4N$Ax z9RQuDbO}}~@nW$Kyc96&4L)6nALB+ma7gkxTyd~nd($C7j7BgkJy=7&lKqElcP37I zVwY51uOnm6Qj_O4`G8kTCGz?(n>_%ybR80^FRo=@l7JR>&kT?EYJY5-cHvmDD`&-+ z{Uc++$E<2@w!>d;^pIP>Y%ko+(s_lcYu?g+Rhj~kFtr|ekX&80N%#dXzW55d$FWaR zDI2MRy``n+KX^IK%OekY##U^`yLrq0kkpf4_BSB5wZp`=@;fO;-PbKl7PI8*Yptu& zj4W}0}w^meQ zR6{l6$ zN?7tSV3znNj5(N@D4XT{(FZ|4|8qMlek$JBJWii& z8XpDeX-kU}CPQ`nk4>y@=oEP1o7Mc!wkKRgFPQnfo62bVza-lzx`IS! z7ZtRR;GaMiiDDxmhr!<+YZpj8YmH*U2#2#U09)m^0i^wa`-tw^1^CH$C{w(QCfp}3 zy3Gwzs#)R^${*r{+xzgKtR+j;OZ?3qoPLA)l>DvaI%`cpxr^b>GFN?cb|>iejFL98 zw-O+LVwd=D{&ZD@HRXJ?+g{pdO)wZ^>3BJL_fCM(P{ScT3u^gno)mk0iTa1^!8YVl zY5~&1(3^Q+(`f+RDR$uu$$=wME6nwh2FhPiPFd1sBq)hJgh(6T`E~`V%h21w+Ck80 zST#E!sd)LWg&b9aEauQaghVyyuFq;X1 zov^tcqGs1o@O_NKbg+VOe@;V)agVjIi^!zl{ed_Ss9kE$ycNv@ZGK&@TiSN9NJ}=9 zt5N{I759t8efgb60Amm z5h|=;9|7J$-$b%&Pblf&=oN6gjclO|R(Gr9LIPJMo=>sG(~p#WQz#X5_P%SBzMHsN zAtT~_Lk&my>5>+3pwt!7BTz+n{At(Gnyh-0@v?oYur}3)Ff6FKNBl6%$#hFg$XxFc z8D{j@cuCKy_rz$=qpQEo687Ezfb_dn;w=1-6|m4T%UR)xZ~#$R%9YrEZSuLLFI{3i zN#>U4`v_HcedUbUh8%%Dgmia=tn>_UxDJskfW@h!38+Z749iKJ0w0~zL=T32LY=}t(a|%GuC|UM26exB z^ySs=ha)0z-(en+6{~|-sVX~OF}#Dq(#@Jf2d2v6KQZvNwCfs&6My(=QltfLuf(2a zweZ;Vw=6Z|a-_O33O9@6itDr~bBYS(hbCER95aU1A80o`IT95AxhA^-z;ji|%SwU$ zIiD%Kc4$;#umkZECYKYSjvk--a4jk;NtCF0%LZC~!X*7Diqmi>)hRjLydU0oMSw$) zcfQ9WDyrjl=!6Qh9POTazj^!{Gnd&6i!;cXU+MPiR}o<3c88Yk!8h$&-W*pt<&G#> zFundWD1eHYlshPyPGYE5(qBVz>CF87xsyd1KdnMjRUeThTzsTTInk6BI>=HxEYM2v z_{q{7hv;)wx%dAcBA9V&>p@sAdKxr#@3Ij9A$Rz$!La?8H}&C|P}Uke3l;&-1@yPE z!Kz-x3ue|KWku)DpP{~q6WW}l{y@Yof9G+~)QUBkX&a0-fP2(r_6(^u{jT#jb12ecpYgrX9iqr4!Z?= z9V!Hq>SE&zi&j#gifQA62){3bpw2GR>b*sq0gD zt6=W<%FsW-BkD|l(-7cLHtO>h$qbS&2!#o~V@BTnLNF}8F)`_p5Q zRxH8Em2GV6VW2g-X;dUJ$2VePr?<%`XsFHy8AhMR1m9Ce>rk>7zW5iB_%E-9H{UNu z5+xFs&>km7wf}Xn!WXL?Y}0=vP0CX^be9bc@n|Kvsdd^^jZlP%cABb>8!nl5eyd(@ zL<{-(MYAcjRxdn(>wOv_$6IY$=|QD6M6uxuHnhlDOw|kO2^Wl+Ua24-$J7GVPA3il z+;5b+l~~)^HaEA`TfRK}w1xD}PP+Amab+(*J|B9ytJa5Wj%2w;$gwx;AlyLumu>rd z+iWYO)c<8Sy(JYzOBcwVb%Zc zSZ@5-hGQ@UXt_YmzBSi0M9gl{b^9dpC*?8x&|~LNBIpqfD`EP2`27O5rn5JJan?`q zjd>34R4Fv4?_P7=vg+Q3R^j(+csk0~kRF|Zf!hXVu2|)ZG$gWaH|(Bi@Efw5&DJp1 z`H$Tbku-8F84p~y&$iEfex9O{CS|cXw|Yy(%;$<)c4pTE@uQ7d#}@oB@=lCmtN4gS zT4g>&;>Qzq^QX`K7{A#5T`QGS>jUvZrKn+5%jWpd)UVsK@>wB!^^G#M9fRw7g*BIK zoyWIhYrH}NaLZf^Fho}&${wwjeg(!&JW!)BIOd$Xv3H z&ycbG-k`k79lvUi6Te3DoG&3+tl`G6ABmFVEWd88bysZ56E|=s#CZb$$^6T@_c{cP zD39VfC^qt=6cSmS@YwX?PkqfJm&`q^Jiolaorp$Ce-Cu#V!7+$8`!SO6(w)qRh8Yx zA^cnwQzi11Dd27STI`?`vY|vL?Nit9k~^`@*jIJ&$auDkOpt&We^m@bA?FRo&xyxw zNVT-D)M_NtJi7H>xxYBq5T2UiUC<+tI2gMKO}D82cp>B01R!aveDD0(v+`mwUBe0|HHSj4UBL!TpFCL(ez-@i zk6HS1l=)9c?U-I_AyYFvhkKad zQ>24Mt)RPZ$sKU1;zalM|7det&Mk~OzFVw1c|Q>U4_To6#hm=zA<`NZU_WLDSU1qN z#w9ZLduCae5IA;FSfk2Z{}X!+#@em$R_>dXT#p25%C{V6mnH1aEWz^UVW}7TirFjd zac|`4Ik~1M?doO#XQZsO#^%@F5SEo|E=5_7et11JPD;6--hZpYTJ$29q@737Ac(-< z2v7Mwn-EMIE6*_*rPW$x`keeLv*ZxD`1#6)7OwM-SJtr#A4v~i8Ah)W53PpzzeFeY z`ejwh=Q88hAhQ!@{Vdxo11I=F*;sScqd4ySxP=S>i?vl0{0;^r4#7IdwLRhvy*F!5 zxRF!ky2Kr#F>pnq@6G<}+(}LCt7A<{URrsdO5e!HB6I>smuzSwWIG8hkN6$13=d`4 z%H^Z|b@r8;WCL>oNm*wKw`6-ur$r6<RaP`M(E3?_w3u68Sg^q*s4Xd-jIdO6gZTT3o^dIFLwfT09f@CE7!i!NeOvv z!Px5nrFeE=QOTBF$2a#SWKQ)KW902`JX)*(WOOBzKUfh@7sl}Cu3QeeTFQ{QAc5Pz zgE!S+rpoyUF$5Ea2_|ruJYbg|WO>iTQ#B8LkC9Wk9;`$3Uukj=wt?cTG`mg|6hrzl zf*gHCTaCRWx^&;Xju~$~E#i1?->LpM`VqU7zsJtl)PUh%WZ2HYy7(mxvD*OfOg>h0 z5FSDD8R+<<8+GQ~j34g{)I%r^Zen`|YSOx7Mp=^c@Te|pj+r)*wM0f(F2)4?zWd}P zMa{Wzxz}N`9z)BxD46s@n%wzHkZ-jqfvTU@3amN#XM`LeG~s&zRu%u0&_q=mAKh84 zE^GDNM^EdJ_|61_uTjtsqP5cVhwlOo;2@C+5bu`t!zo#YSOh+P+oCV6I9oYr_Y96m zdzdEFj2fwbt0hmr)yieV8<{%^d80q4UxmQ;UnwTZwGlJDDqTSo<5l7$TcpG=vhB5b@;jj?6s019&Oz!ISxUMA&TBPgKoxnT1ZS2P@Wz+kXo&fNw%~K= zL%pvWMg}{g3kiPZDQ2&7?EA*mR%~JvohsHE2vz7R%dH3MWqlrw=XPCAN95YxEFPb( z$sC2xyLLkjAx3 z7Aa|W%lToIY6k=H8!TIM+*m)-P1CdyI?Ts^xn$-P{vy1PSv*p@U@%qi8`&LYvFZA- z7;6?ppEdWnMq|3X2yQo*s|lTs^-Gu}?1@BEy?VN#))Fy*#0WgB2<0K@roTUz-%fV6lT>aZ+!COQl9kIG}{w9@0lJ!z+@}N8d^fQx;pl7|~kx%l4lHfck0Bf9{ox~hT zgyU?;iG1DG+>N?YJ?yyxGsj$3rsq#~3?#l74S%VgyBsk8jNqh#; zZPLMAQ-_{dYsr1AQs1ZTIiA88edopswcu3-*6AhU&i7DZ;vWKYk3vgihM;NV?h?<8 z+y!X!mwx1q%oV}e9j?dW9G~vB>18+WKc$o-sF?nhs01Y++XU?gwAox~^Hz!7z^_}} z*D32Sp||<#KfC9C@{IiCLlaYgJ}=kfnE?*>P~&*v|GkHIh(hl&N1Kp$smffNsvB$= zzxu0t%&X-0FMU+XMU{hxq^Lj)tAOnseS<26JGS?ecP=%t2-hyqqe2Gc>}ssl@N|zo z`}OBt(~WsvqAPcoKQA&2<~D817>g|px1;64IvE^)Tppx^mHo12BucIRL&gp9a^(bN zQ#Af%YGaG@E(L>iL-@(8AG;JKTjL_1h%q$}U-_7Hx5cItacd`QDX|c8#+{LsP+i=C zbfkFjtPlK>i7j})D|vl@riMPP@BS0eFs}MzmMMlbD&w2`{--12*ET4qZOi{bF?;N-<*ZjXpWU- z1OTw=bPeaL98+y6tkw)loa3o0`tecGK5lIE{1Q+9nnyy8w`3QeV)wCoc65%6mg)k} zeq?jqyV=m-`iItU4)&sY^muqFr@<1@Kb~GPcdH zy)7Sk$026Vs`eet7%YUJw4wYh&@&F;Bi>Mpw54Wy=-WoZu&`){2THFf1flHfWY8pPZsXIh- zx42v1r?(@<+E9_y@QG1A;A)<&K;C8?N8u#@v}EPMvffN(7Q`vR?4#eF>|257+eTXN zY+puFu$HGyXIa~%w4#=0X`C&Miao`}J^(VO zY>qqKzaT>^q~Y9(Jzjc(NH>=UIUlFFi@(KDb!2|T6N7Z8a$R@?r}@9ZaVdU%PaWX4mEI8rDK}W^ ztq(G`st2I0N2HU}+yE$EzfYlqQ*m9<;o8`4icKMXDOh5?u~hFodhbO<06&*mCMyk& z;}?w<`v2#r9t?f0I^uYl2KKjWt$$X&+iLO{g_>@VP&|2Pf)h@FtccMWs|={!4rw*} z_>o+9QMah(aVMzt(t@rAa32PA{y^AfhnLKX*Jrk=LcT&RG)iQR7tQ6mnOP<*3tegj z^0h!Np9&U0>9lS1-ex z>;E0@N=bADfV#$*HCcl0ay+et83aFPr7F>Oe@W;^%Hl2imkaqq>Wpof_nAB?@BTjE zX&@DpEWgdGN;xDgp#_~nC-~|vP(T&J2@BH4S7KU5GpfKn=_5X`irK%GkGMZCk5IcW zy|zD;<9g7W_|8JV8_ki!rIlzzcqzZc>}Gei%JY==HGP-1pwW+_{KqS%`hV1Z*}_8q zU=~BimlzX!mmW^@ZbEVPvK9v)B<;iBael7XF)=YUc)H$yS0X%Hj{JZu;1#h9mtGGC zzZ6!*kLoit+I~WyGIKtd&;M2h1iL%W_6zn8D$b`M!HC~46fjc+i;Ly5ZlcGDKjCj& zA$!KntD3p#lh5loI!r)-=GVykovuSSKC0In2I}u6*AJJ4 zo*eELrC%;Rl3X5<{uIfUq%A;2!TL&&PUec1+_6g6JRqqj?yNb7w?Um(3%{kl82=i3 z-i>thKFKzz`zAfGs+;?yah^TPa)?7rdM=kCRdbDj$~DWT(@M%F3%bYkECuI#{?JI> zAyVfg`4b~bDF5~bmvSw2x#{M{5$W-JzjzXwM@4|sxNrz+UaO2b%pj#~d&$TYdNK7&5@^@^>m_L5XGXjBX* z?B-DKmpi-$KCnSb;>sCA;-v`8L?yC7qXE}_{8|bm z_shKx>%4UWglapghX8lIOdA>x|Dui)^uST}K{&7cl+WXMleOpJMzbTnv~jG{ZZ-y} zM%zMNp_CzafftH3P9MoCIaau*YeUC6l%l$$EJN7jYA#2t9NEvG&hIgqv(le@KpiPz zK3?O>G=O)~N8C^rvmo?GxB>sr@M?TUoWS&rW=LrR3Z6BzAyv@S9-;NZxF&J;@}-8; z;}jF|(k25l_QWqz^vu%`t5SY%;cJJ_Wcgg_xfBp^7x;qN?fa`LpC_p_Y6RrMw$xhViv=${YP$ovNxT%=W z1e;3c6cJ;W?(aFvG{BRE)hP?%KUcz!?%w&t`>M^j4{&2@qy2XtS4)rfjk03PcH|GQ zf!ccmQ54sVR9UVhn%0ka8%|iLl`LDD-;(B@A2Rk+bf(HJt|I!Y*3A?&Wu2QhPTr0# ze}At&Vb^A!4f^TwBy80D`kHP&OMT*nE z^ioPEA@!)EZO<`g{j8ViwI-9J*ai$RM4KdHEdYpS_Y3|Z3)jDtvp(;&m@RXi#bhBj zW?F6QjrD$%PzgkYKo{G_Saeo9al`tzh;~Ot(Uu|Ajvozs$-9~zmj$2m2{NXQEsB)L z8TT7PO+x7j>6z75TY+D`LC#*0n18C$d^lPX>037l-C0|(J?3x9!8xsya z7Jc`30dA=}lxS~JH|{IdVB^B+A9MSs@vcQ-#$7f&={Z!E2w*rB#C=E~6xF96r3fk_ zfWdg@4}i1QKV(#pK%RQVoXvKL&99g0HH|Tg#rMag#X4+RG}#WHi!SIfyq;eVCa4GY zChq>K+|KF(&jAy){wls`5kDg-5_5fO(`VV|WVmol6$RHQIpsVu-o0(DzjKk{3m&X@ z*(EvR#HLnhotws$vMZ7=z8QPM^6A~_^myoCO*bQc(dgY^_FF!?tdy(%^E-gG4;d0* z@9e0&(Q{%FbUET7SUJ(zwjUC!$L_VhR#u+2b;(O)@UMi~cW0gCtuE6Mow|FNN1!GD zkiD@S6-;qiXRNL5rGsD70@>S1QxB8(n$3o?G29?YG%Hr+ws^$t1>0d+domuRnI*e* ziZ084&pTb-T4q^_y+p)mS-I^H#c~bR1M^9AF?xw%fJFUK1?=sPi52gW$&~K?@U1!j z@_`hK$`6Vadp_~gX^#Y0!}@H<+ImtHy85HzTsiy>7R` z9{07!(!JMv1`q45VXxDoa{is2lf@S%7AlfpXroDbL}UhK7m>8Ui4^m}x|rh%3CX`2 zs9J?1@S>`>a4>OpR?E>>=H{|I&C0%kD(eXB2q&3?gdHw*cYFOLTB?5SEr+GdZtrW0 zA79682LRzDLCzXZQcn;y)|TcM#cYj;-NV{| z8hHhcpDOpi(3P#MmYY_ZU5+YlR#yr&=2Q_w&tGI~Agoas${*k6blqrov+2dPe*f+a zH)qrz&V_4Zi6MC5Y0?w?>*?xaGzamq^|`BNSi$hyr26qEyW>qM51kU!LEx2AN^>ni zX6**d*))5`pQ17P{C2AEDpVW97!Nl##A-DI7>YsO`$-Jlhs+-CC2P}EeybN9Rei-Y z1W$N;^En`uqNF>ttT)pzx zEb@4Pt(7-SJhEn@rnt-+@IAF-7kOST0{3Is897v4W(v))ulx+C zjhnp{y7b|PBrUvDk0wAx3R&f2f;2W7ZH)s{vtZ98bS@8x`-cV{Jr;#qSpKWZuy}1Wc@?j<^8_ zC4%1tL#`Mg=QBZ7|AaIu=GKIj&Owqtzj3SD&o$c(mkoz@U^S?_|!h(>B~~4mTPub(~*4d_~?Trsw}oKOG=Su z|AMplzR&YZ0v@FcRQwy?y2Z$zn1kPM(!~aDw}ytmi&8HuVQ|*p)~v+46~yFVE1}V% zLZaVtSBfStQocquIhywQgeN1! z(S9$o_gmL3x1m#`fQgQc!%YKn0V*Szv>(XObo90f3T1_62~cJ+d=e2WTKs==F8n`6 z&QTe95sdpXa#?NY^j9weJ?JZ;Hz(Goe?g^V)$W}NHQL^!=2!{0Y-cf?#Z7kppL6Q| zH|R3TiQiTDG`np+uybBZEUqRAO}ZZ0SU^(_eFm169%ioa6x&vkCm+(KokstU+RiJg zsc&8Ts0b<@5fG#(0n|{WD+EyKuqifL2&mLZlimr^B|rp(2ndl5h9XizN1F5^B}j)* zq?1qsg#6F?U+gi?{w}_K&i9Rdu|~$c&YE++>wTZ+_kb6NwfD4#wfnZ)D`ajY8a~zM zHNEXz00+@^(#F~Z=j`PV(H8~YAt&dOCEM!a;x^HT;|g3Kra^ckEG7E+_ZxL*^Oq>V zsAVU5yTPQ0d}KjPJob+|j885!)o}l%zL4ePw2%&OF>*_?QXT78)o&iX-Vs;Q(QV;+ z3UMOu4_x$m?dAo3l@pbuD+Mo0g1Bz>$ZqsrqlfDSY}KvpDzEPf@WQEglG=l>68rdB z$4bNJoC284<>RdsE+#+8yJ_-vnyb9?ONSws{-U_rk0#kMh_l-tSg&n?85DwkqTN?+ z5Jm&$pLiXR^4d?N0T3-_AgJ%m(bNk%)N4#DQP>G+CC;1c+e4{Tk%%#^0+7ka;{ux{ z985_mBTm=bz|m`@qBh-1^Us-=|dOvbK&eya1WIOvjH3|W!U@C*r&5BH|7 z*PwgDFIo^ZK}(CDugtQM`?DQ*j#`jYNazu=#qriU1BZh-Y`kIs^0{VawLjY>z*FC*Sl%sIb!~8k1VC$dvdP5a6waYGL zV}Sf+t0fjF4v;&~fEOd(Qpq%4N(jZSH2vBOZOYoRIZvM_+*%^Q9{ ze@BY9;rGC@@zhV2zWt}v=8IHq#P}j&^blsfC>(bb)g-)z<{6BEJnfB71u6-En98)4fcTRZ&3rHijq;gHyU9sJ&?_~jANLbrnG{0ws@v@@YrB7Gx zu$Am=eb&vJY1bBsiw*d`qyiOMIk{~PMwqWsNnR_|$|_VrlK^>9pM*g+Sc#Mq=6HO^ zHE~4wET(}h0{s*J^xVg@>iUqLuV1pR*eInM=!SJZ0JO+dW}uZa?<}K^f{q5NW=*g2 zBp;k@<;oxV_?Q^^(SR6azG}X|p>_rr)62YnZT{m^0J`V;bJ1|Gc|Ku(umv-z)~3qj z*?b|giDVfgYYYf#)rngTY*5Ge-FmSjh4VIkS8~2a=f;h*IU7G*il;XM>h3_lc?6@G zZ#E2}ho{Kct6*HulI$<`H=fm|=n$9(W$oxqQZ&RkjZEN^ms)mp@AS^r2RBP;>7%k6 zv`%#qttJal=~>9%^LWiUHIyE@&0o2bqAOt=!y@v476VsfSNtlQaLkg_%(Q3gdppo^ zL6U_m`E!!_J!j=c8NANsNz<2aiD;wV8@LCz+t^Y}F1I*2&&2EdC3Cn;*N09>APu|r znZN|T_*CNe&bDUznxv=IB4e{mvMOokzOQM%vZtIVP52LR#BC3i38BYTNHR;dRf z%>>kWGM6b?jZgyfnxJT9`9cjEtB1Fo364q=In0MEI(=V>g&&v}tdrc!F6u0XjjB4p z_c63UxiiaMF*4yqIa7O{4kJ=A{?Vt*7j zaseXV`Lm31jntpLCZCq$8{FH1w&WT4Qx_vwTT_#14MATO{80SH#_!(OovO#XopM01 zZ%?g-zY-O^Uu)t6wDcn|tANw>Jb)ni1n2@D{@dqY2qwk=%;CQQO`bip{iVSX^7m&9 zfWIwCK@n8naq?foLzLue1)?FgaBPS67;m1p*sb>^4oXi%B*KWyle1@94Aczm4$ z`3PIqYB1eFQ<%!S-YY~wchhW8vF5(Zx*H4?8LZ@J$wXEw^5xZt0dtO)E!WkJp{XkB zl8kPZY}GP6-wZ#8rEpu)&CkLg^0|gW_*mYHZ*RN294i%yNahq5=`L_L&;gx|(Ri10vy#O;AvEjSh^eYzI*98V@4WpVl#2dK2%&wso zZN`h-e3*t38L}=v;{~7Vk$(j4_wwh8%^`iHJ{T20P%>nAgBwrt+Dd4w1D9vngRl|n z%p=3~Zb+ts+wMvO>+6G#>wz;Q)HPK{uFcBoq7t6fCOaxBZ;o8h`JD`XL=GclJaz=t zDWDN{pR%NAE@+n5SL1`Fe;`=A&!gV+FxM^!Tp>?sjvbWfnZ&M{YwX)UF*CyIft=>W zLOh*&JOA;L^5b0s!Eno!&5;3%;vh@vj(zGHnO*bXg-h@}in71M-3|G}eI0Zpmw^St zGcS+=-pqo5!4c3UY{k!ryG+7$+wRglc+#5vZvWas{|NlHtJg?Bf1Z}E&TVm*I=`Gg ziWC7kcxfHsS{`MP85F6UmY?d3;AECL#YWG_bi!)+;)0||stW@JB-cgM`v%@@hsj{{ z!XS$obbUlJf+GCJ^#xPq18w}|?WK%aotn5@h5;R;T7lap->rg&egX3hwgzbF8-89c z6#C8`9ID2il2DWX+j0olvT^bBB* zgS86Zw5}thO&IOroR>!DX|k?yywWsq*KcMDbOo+GA5$_k=nQ#?B0m}%?>#l1tKP0p zSuAY>?$(kiij|KtQ542btwIp5Oel;OOd}OlTLrGD%{N~nM|D^}s2M`HdrU($9PP8u zsic|?R_d{S|TwQDK7Nij*MZcGT(2WFpQTxi{q z`txV%#I6!>BB~NaFvO^Zpyp_ZVxUP-fyKIlCce`gs)bZ|6t1ANtZObx!%Cm>dnW2n ztdhW_;d9i}>aj9UY{1!T)$1tkZW-;T*Fjh4KL}m8TYE!(n~v^&zw%h4pcdbQLkA{LG__E9X zF-`a3JgA7$N@s>PF1+-NZ=?X*^c#PC)me@gWHqr!>lNdpkH@w2yzk~xoZFmd92du< z0yVI{c)$}wH`lv>;j|Pf^C=Li!Fo6rV!LL8syZiPzB;F=?=Hm{CN~{E6x`aQJonij z%^P1PD;%%-i-uFLtXnZU1%ua!lMV`XTN#mY0f4`|*YF#TRn1M_REIO?(--us+gvwgiCnIzlGe`{T;84Wyk4(=EHP=QOyHvSN5K>Lz&-uiqURCV&! zq@$j;Tp0skT|s8hQ`rVtwd>wR9O(JZ@C?6DG269|>W!vXdHITG*?;-Xa5HB4OA|gF zevC~UpZlJ)7JQTQB(ol|FvD-iY(ai65vZ1>V;{gX)xF%!h|jc^mUn-Sz5ntVpEgwB z3YFbAfO@s;+(w!m(7d^f2={vL#e3%!-m_*aKXjeJ&O6=|GVvjTc&2X1so{9$~-=3Us1p^!R)xxpiO&#vAQ?+uY=E~(w2&K6KQeeSakZR? zR4fW`z*ZIf_dN{rO->TKeViybHOW4+A2y}$+zDnwUo-iF6clA}5Xcm{GFTRkTQ(3B=<>JQC7SNyQQ1x3rb*kvbQ!?yDfQXLn6`FO9Ny*?Q@d$ZAt zZ{y$lm-XXLIQMrZ_S(ixG8ulA2KpXSMM=S_t^xUGBJq}!ck&r;MXn(3b05`Qxz29b zm~usNj?A<$$K(su8kNKFuW=q#E8?*N;o{U$0GnjH$B|y&)lGX@kdCQX@j4USH*AqU z93tdK95kyYZUzgIT;44pZ`vbVv4xePYcG0&zW!EU(Yfi)eLGPlhMV=lLMcE$Vc}Y% zauR357Q|gGh|Za4SJBAIKp~wuT+%;v&3;i&$J$s zE|wO3u_UW(Se7@A%9`4wIQ*ide(?ptFE;evsymMEGjXtS@m((oR`7M~GohVZxG|P8`7L_%}gbjF(C~PF;_vP+>_ZT zpj}(JHp?;!iqu!tsQPYoPu3PB)%u=0!RH?PMW(P&13D>BRb(1}Y+ZhQAkTL)*tEPV z>d7z7T!OV9tuJ&{;yQPmf6WQDu4u~P38({rsk86J|QHSxI z+d+HM7}>f zrpTIembFQ0#9ig-w@R$#V)vXKYkR*J`f+m(m?b~EH2{Px{Y7KF!TuMGqhlR9s#1dp zWTu%_^`G049J`tE3P_e@EU->=4_5-8{~Xups$@+%k*&d1k3tkBDXIz)^Teit0)~+r zXsPyA^~?v}0(UhMo{Zm}2Pn%-))N$6;GBw_Yd0dhwsED%^Za}#65IQC0plh#keE7w zzcluZRZv5nnd%>*Q{0qW%8Xo1& zXyioaGjVuekIREf9(OZ-D8B;oOuBN}$iqr`PQ1Yf&0sH9F)0>%GsQRjsiOU|-NQbP zgxHY&_*7*_yeA842=2JR5HQHxxC{hbY^k;3o^&9Vb$qT(S#T!YXm1sHqI%tozPszs zh3>MnS-sxKiWpOI9?g3lkZdzHnO*Gt7mN>oYQGq?VE&kKTscK$IHRlH8`(7x%#OJm z{(l4a{EwkM=cnK%SODe6YZi$C^}FDpEGf1xjBRE{-ZB>OhriH0!5#)Fq?P@sM=&8? zwh;8`%}LJf{v9Q4#b8&b6r&0lGLjqT;OBO8@#_aQ)?imsetND$lLTH&mhVMXKj-Ya zcJYBoc&p26#>Y)fNz8ujOBkqw_%N zm`)V|7@g>^h`DmA92%%@sP~C3C<$x{`OT^RNcP<_H$|GSrXlo}OED*5KLxm`_f}6} z%PXk_Gf{cTw@F%FUo>cvUrkzS|Bj?(oeH_%W!wUK-B4gbK3%jzsxkyR=abW)#Z!l8 zC-DSfJ=5&Fz^fnO@$pF}_d&4~w|Na*_=)+-?|;}bI$0FfPc0v3p8I=@^B)PY+&keL z#}A%t2D)hkaj0A*Uk1DpVs(wbh6RaLEA<|EYvxqU*O^HRXct#k0M_f?_pX|kQyit# z=Uc}Gzo^U<3Bb@uJRBY(S5F!WnD-tEr=0+jtM8&Zwjr{)P*hcp9{=0y^M#7#5It{d zBcdxfNOfLvPsJs>G2M`;)rMlCs1hX_3FQRG(?Qm0SeqLi%E#4}ulVhN(B8*x#)tuy zlQJ~uYNJ0t@}~f^C^4!Hrq;q+D))Yq3Q|ccDS)EW{%~e#p*h`Qk@r&9-7*gh9Z!Pc z!Py)3f5^bUsP@Mnye9C!&ItQ|iF)j*2j*>tdjb@e{<0x}0dlg}qQYNIwg;50I3l9m z0V3lv864%t+{pR$h_1a`#ily(kAaRtUAaTAW<50Yap=Q75~9t6WJ16f(MQ|cA?STy z73y3-rABq<;zeUV$_2!ZnGO+cP2!fG)1Bq*0aE^w>P+aX=lmx_GDl78jJ%tm?KD{IHbN6&Y~{#YrJ!SgyxUAZokbXt&( z&UcjS^M+j;h@t<7$&YRpq!>dXOrtb_i|a{1m|nH+tkK3rv0-A}1>UsJ=;Z z|1{Kf-C#|+u&35VYeBylXvry&7+Q>1CFFSFViX|#y`B*;g4$)6Kx{hQx%UUrTbeky zOLM`|m6JQlm}B_SG^q}}4MVh@2)u_NfJ@|Q74AtkMWVib=m7pg&+o&U_l9@8+u#nL z3x|EtjVpT@0rUJ3vN9Ir0t;LPNwXwRAzDH%0L8gxq~_`c5m{HV8~L1Gq(G-GO-JvU zda0+@)~nfYBS4s|*f z^os0LQ5_hzH7kalzzf!XhpH@da~Y2h?+2UI zI!AwvpBeIdRlP5o^jYHmBpA^$%P`vDR%l_q)_Uz!t{!G6*B5#}JI*b|PWgdgu-xZ$ z&CeG3n+a~n^yQe*5u#Q5#@xj<1#?fupyY$9j&>h0iH5$Y$5-Za%Dm|6R4-8s!k&{N z8v{zA6OTkHmbDYLg*l0XSHU-(OB!yr(9_O;@Vjs=8BVl+HY&kBIbu#c8|#a5dfQQS z$H(OdqnF%|x=%A751xg=YAj}-F2_Caxb1lWDK^&Av>5*EXRACpm$mO*OJHFjt1uL0 zr|Z_jU0g-0^#W>LY-a8rKan~YQ%F;B@4+U`fWF^Ib0kDz9>Za7N=Bbro<0p_@O=s8 zie|#Gb@iE{vIPbjhGXWg$EHY?a6Da&b>FOh5NHd3@W5p*rR9GYFWk@*vp4v1M|Htj z&o-#2H^y{L-!4VUA*SG!yD%#_S4F;?RT!!D;58x_%WGmvv zKag!ypkGyzJw0cs!&&9%9^4``O&|BM6Xba78_h?LTY)*?aY%dyX`>^}6MtkG)HsmG z@*c4OR*Y!ZSWZ0R7OtH%IuLSwHeTg7#sP>gyI?!xRPOyUwm|nrJVYGOC2glKl(CSl zbg5%V^WFVVE(~WyY$I-dE6LF}scXWTzbYl5UK?|h{D09r8;2MM_${b1&A?|xY-`5$ zb=Y?{(F%G(+7j=$_?@0EPY187TS&obKqg7Q^iC-3V5^NCB_t~52s5D~FU8%ztsyEUnhPc!4oB9~R0=M}CrE_3qldHs zGp#q{=`cegh&DPNfR~^Z#TBY~XH;>ulpm=#jTF zml64w3Xm(NCvFe0Eb%1Wnqr`my8W>B@#+dLs!P%mQ~58u~a^}h3Es&^9Oim&ErLMXd!q-GrRnBOhCb0(N%?Y*ye%*^NT=|LT^*}rJ; z)y+%(XQ(alVpAyD|2eTU5(6V{r`1`a${HIxr^Ire+nN}Out8#Aspi^qjyFp0fxFC* z<#xiKJ}3I8>E2$SJ2N(XAzs;~ee1-o5q>X0*ptss39k;^MMcMmsns)yjwNMrao0ZPssgG~GgAIzx z)-UGzw01_+jd~E+35wLY-qrG2AA-6N-Ky*Iy=u!jvwg)h#x&xZ{uW~BNa~rrQZT=bW2%N&m?=gxxY9(7cS~9T@CG9z^>G7+K?Lwy+}j$DcBpgbynZ_R~|*eXP>!L zYNpYO3Xpq~hZkhWejpSy6a^Z7>K(n%f}6!S|%!?T&N4ZNX7fa2m`9kc(x>nd@? n60g9S7vk(9SmM7e?tGC3Dwc=;+!g=n-~VIRX>be){5A1k6O6nn literal 0 HcmV?d00001 diff --git a/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/db-migrator-2.jpg b/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/db-migrator-2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4adc9614c3aa44b3ab86e04f424955e515977d01 GIT binary patch literal 20810 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 literal 0 HcmV?d00001 diff --git a/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/db-migrator-3.jpg b/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/db-migrator-3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..16b365b8a53a09280e7cf9569b3a8cc208d849d1 GIT binary patch literal 6727 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 jjxZ!G*mr@@9Pm%})9)DmZ*CFef3R>eRmhH(;>^ literal 0 HcmV?d00001 diff --git a/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/email-details.jpg b/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/email-details.jpg new file mode 100644 index 0000000000000000000000000000000000000000..df23bcc8e027b663e2271f03c00c99015070e6f3 GIT binary patch literal 62048 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 literal 0 HcmV?d00001 diff --git a/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/email-last.jpg b/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/email-last.jpg new file mode 100644 index 0000000000000000000000000000000000000000..dbe974417bae798b37b7f46a5d483fa09dccbab3 GIT binary patch literal 102690 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≫OR9& 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%0Afg=Sj=7@h!F`)3}l~?eHroK(t0YSYDTO%En_GB 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

l@7OsT^j(nIv-^7lFKcI~wn}2*ZB39v!`)(}_ z=D(JG>eGDhyW6%gL!XF@Yq93K4%?S-U}KJ{JW1AgipHez!=zVc6#sJgP@k1R>(vqa zlX-5W;sd*zV_p>pg5uuY%TyZye7(4>sONK!(L>dyR*oDvW6QhEKwhbmRZ$a7pTEV_ z#|4$ys}x(9t@~Rp$V5-E9eT|qIUOX7#~eT=Sm}1Nf1sbUq!Ie1G||aUczV!w&u)dh z39sQ#?%^-4g|VUZ8j`(1J5@h_0x#;1xf!7!62NMY^vYtrq)|0<4KdE@sVU37k9fTq zqfI&uGVFb=t@Eo9wtAm+DRSDR2)Bq^F@*D%Y*e^@p`+Y8BvH*fF7jVqy7y%9JXx_` zv}fH@SgxoG(z?Hdxg z0tibvv9>Y_cC1)ahaAP8k>3@QM2x-1fEYI7Pk$@nZh`?D7|wOwE&V#j|tQX;SG=t==u~ zn7GC_!b!#57?*A^V903ioZGng=me+VX{aJ}%iB5mtaM^SS3H#tqfg$y7kynG#+?6} z0TxIxgPa7yICbtKM54}OOG|CMo4H=5$^h{>$844fue^ymTXh0Syw@R5z|`398KWzU`7k zBkxuc(WY^EKuQh-TU+^Vc=E;848X`iZ~Q>~{SFmnZNxoXCq{jY;v}?>*T1VgI2aB; zQlM?q&TDdQ0rB8zoM&+K( zk`FI|@65)FDcVjvuydXMU2IJZdi$7>c-ZU60`xB=4kL+lNLs_*Lh2m#W4`!7Fj&NI z#v)pvC7$kb!orxe@aY_1=Y#Y3w&3NwuyFyD+5|+#zezEfByE$bJWzG@;F^1MzQL86 znxwG1J1Tb)Q<`tn_x6 zs=b4)hC=^Dzm`D$G`R*HRMIBWLfcGG8F+-xU9MSdp(U!xO6x7i`yKkldcT#kvSO54 ziDIQ}iN?ij24pYPd;gcp^EsG{7qweP_3w0beO8DU+Iexj**qaiv>gW~E4dD-^@c$W znO?o6qv-)_kKcF7Mo3+-G&%Z*mv!Gn-W`9nu(0PSlW$1g0Pj0`+>6|4_1LalhcH#u)1pPH^l_(`$dAeRCFWRxk$e zKsy2EqHd%6M;?Tb|1NGS-pzJuJ&ro`?zNG8YA(?j;Cb;gMan?uC8F4J!NR~#-&d~>phIB$cce| z1A0&>^!#<1XF|am<>Egaoui%m z7f)Fn^^j8F|AaD<7v;FI1#OA->=`WnGOaD9Y;^PnCT12Yxu^+5vbI`>5_93_WPAch zFAa>E&5oaeZfS1C&{@oR4#e7D{wQlafvY`%*lWSbEIIRPHk&%wz4#)ykaopCIuL;? zvc(u_QYhjne^#Wd0@wAK;rK9yXEGQJl%J{)GS2p3bhw(eXN*vVRIHy0h5gYc`>5f66KyQ8AF+;x*KR0lV5 zLwrC)gZIUB9V9)*6|+b=n)% z8Tgu}ZdWe}(S6Zkv|e{BKs3Hdvk#@Beg7jaV%6dW((Qad0v*0IbLH$yCC4YSJ_()8 za_{kmg{A6@@1BKLj|0buxE}u)D$kl6+SDJ`wF*3}IE;p*&ggA2JS-2*i{ zqMdg-;0_(o$$UaGP~?*KyM=UkilNllBQ}GGK)rfTK3G{AK`xv|fP17O7MY7AD>&iR zg?IU;nRB_e;p=gd<|mz8>$$O;`VbLf#l1DG4C*3lsFpsS;vSYcg>+`Zhv zOZuz@GnV2Ij_uZZP+q3@M=!%sWXv8hi7;^!LwdB`_Ft{uKtT^1h1aBArWpvY*N+I? zT7*tcV~&nx5V6xi%c?{78;C%>n=`+$MiPpJJ*(Zl!KQ z>shpR0&c77*qa0|O++ShIvJHJBesj#TuHs`kHIH%<8O}zcucANr{;xFhU(t@z4)bq+`8S2eqgVg{ literal 0 HcmV?d00001 diff --git a/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/embedded-resource.jpg b/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/embedded-resource.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9d437790b172c574d81776f05bcff71a56b8e4ed GIT binary patch literal 93887 zcmeFZcT`hdw=WzzNbgOG0)o<{OBazY(xiqW(up+b5I{kC2LS;AkzPU%y-07;OQcun zC7}ig;mh-$bI*C-`~7jB`+fJ1GwwJ$dyc(Fvi2TpuDvqXZ_fFf`|kJMDu6;=Sxp&$ zg@pxpi}?WV766I>9Bk~rcFcy0+3^VR@NjYQ?hz2+6O!B`AtAm;OiW5fML|kNNk&Xe zK}SJJO+!mdOF~Z1Ku5zsMMF#T*G;f+FxTMX5#iwx(U208()@34cRvA?gxJVc2~KDCY|!9zD1;ZKRVgd8ubJ85+%;G81wJ_HlpqoZeFWa4_n&GYz)sF=9K zGf64MmrBYis%q+bZ}bfejf_pKtZi)V>>V84Jv_adM?^*?C4WgtP5YXj z@gpz4ps=X8q_n2C4qD&P*wozB-P7CGKQK5nIW;{q3;R7czqY=y`Dbf;XLk>Aa(Z@t zaf!UT{!1?`0M5Uu^&gu3PkK>e^uor)#la=`OD`;JZ;aqj;^I9J!lzQuA+U6#eklBj zkmf~VZgnRShlnnm_T7hxdvu(lYg~xGRQrc!e^0UC|4*9zhhqP!*F1m(2MhD?a3}%t z0HmSr9UviP<<>LkmT<?|$Bi_GJgvjA z0WPn22lyP)pSTcEx;2Qzg9tJ)1eM4mxr-(lr z^ab^OJL)Q>e(yOJ;%8P3;An6dtQX&0ehv-~nbS53`yfM7_x`U$oGK=Kg~ zGb7nF%_h_&T%-eYwgS~>k3Y$<`6Gz?GPuJ$cHf5G0SsHChKK~xQ@MN@o}@k@!r}gg z9Z+@#{JG52fs98eUZ^7qTQ*IRnfg=E#$%U_PY)e>Tn8v9K9Z1B{{&zkeiSiDbN5MI zQGnxB_C}o9gVnfu%2eQBDet+yB^fo=S1)klc|nw?;1yx#Z6^n3VA)IRnPs62BSl-T}J#MSA4e5b-^v{x1=9xo&m=h({V` ziptfEQ~VGJhp=)y|F1M5HC{Tr7rjIV?~6_87A5`py?bZTB)0`J^zixh*(rl@&nfYg z{BD-IAUkOK6cU1g2C3?s1@fHE5)a;EgoW%K{rI zFx8hsnAv$ER}&BUJ#V7oT5RIo75;@HEiQiPGBv{D)0t|JZ3}6Ta(#Sn zLpJro+8B+67Vp9?ER0iiQp3i^7)Qjlw}yd-Vf4@3(Z-ClZyW3Irgg<+T5_P7M3Bg- zd=C>@?wXmu&V(n>ws!jLCX!zOvKVZY!cbPBz`hzX@T~m$RuYMohaCR7OoTv8diaXn z0pgw_p@j&stoA$`OK;EjcK|7=L3fvj0oj_pVdLqGy+)M5EBF>ZmnKLKU(YeCTWm^{5YZ)@)6FqWnvJ-~$Z{6j{(4c3&Um+`L|J zpf{kay{^&h*x>2Tr=VnOD0OR$o*!f_?) zO)4Y#%UjthOhNS|Z`#$BK)7BAQMWpK{nlMF3G%Fu_{qu8b!Zy|wnZFZp@EsVY?P*8 z5?C(saS>Q6?pUjNyi!at?>3c)Q^IvDjKlA1SLg$u2V=|Tk{fLZ?gJGBPS+iPwv`!< zJ~@8r1nLz(cC!;Tq!w#cpiQ4OI0?bdeeG37rXqGMU(FVrKU{ z_fP?ccG+VOk0?wlHo1I_5+(5aM?vE#T0~U;x>lDw4cMkF-NFb?3X8~_GEsgIyc7!3 z-ybJsGyQcAMcn4tI7ilUbk?c z4*2Wi{^rWgv0&I8fJAhO`}LG9g0)Bv;=}=LncsCPRyBW?q0P`o^RbWpeoB0iy3?~F z=DiHV^F@KI!qm9yfD3s6o=VNzLO~hXVlWsn(;q4~b_akN zV%FDKgYVc;JpT{^Ug7&?v~u6qAr8%LTgfFRdvs}3O1_|nBP8E9^BxayAZTAl6_4t8 zzZ%v4oUCj3>O2g&=ID_U2^PU#CQRkKE!3)gt3DM}dUnd}wex7>-nVtP`8LVsHm| z`XlNr2dSSS8#BHuRT&kQweDa=<|Nl+KD!ikL^<*dTxP}C^;B;f?l$1ZovC9c9}~#t z$VwbH>w8r0$;_KH$g-RzpUHaOX)S}zfUh^O`IO^fwTBt&Wsga3TuR|W+j4Gz6c7mP zzsyhk{iOJk^OGhwxAmh*Lpu$4(0U;RZn*v^c|(?Ld368H)T=NCPh9WNh8{##C!-O3 zo56CF_v_60V^4_5rFNE%ZA;d+XADJddNhTw7NZ<=#b(-+GjWm#_Ui2{pHo&Jp8H=TR?52){ zh|fHH*FvU+ldVNduUoskAY48J3mV_rsYq#OM0SGZTJc*xGSaC74$}5`q#b*IH{NGWLup=K?(&V5gYE`z^`-!7ov7myH-@w@!+? zpJDOYb4f#q%2!3VcFHz&A#k+?+^gHP_`J_Afd}Vn#l_f$c!L$(P#bB*0{Jv9=xH;{ z*=WCV_`*i%d2Yku+~@mFW9E()EMOc2tb2vtVVQZlRkB2*bWcZ#E5=|}B-zWHGohct zzFWEwUO~fBPFNARu?CAel+kAk({FuWu@<3zENSlNv6a@-E1x<%dhAJb;Mej(3Kg#%0 zTTs40I;4vlJSfa_jKQbk4xlW@sa80(HtAtAP4~>|OPBfD{5ngxU&k;*!l7vb(LIgb zk#VWtr}ubs#{*e?ihBKQ&;_|jkkM@2k_@%CZ_#fJ8S&M}@2ov_DV%UozgKOG#?f@h zsh)ZJY0)4;&^+{$+4^4ps|@@4RO`_{xZQu${MD=$e?DPk8*PrGh?78(WA&jX9J5U1(E4<1wNJ~)uVsNur^?+gGTY>} zQhindbiZPvUVy)6YpF|LVU6mT;Z=68(3&F+f~bK=JENR#SE`zQN+b1Iw}j^p3W=*e zJl{Njm~{G+m1hbi=(G;3B;C7MzTf;d0Yq&yl$un{2}q{>-T!2X+-g_LsXHL%zk-4L z=RW*RWA{Id9@+Nla)C_&@|T9Un~RO>MRKo|ua~^1lgGeIU5P?+Wi*w-p?NI4|7U|l z2W`16!Y+#6NkA+-drnM4^WD&iB45=2!vJvyS-}@7ti}B}H*+jQ4>Mgea-*tgNLSs3 zd%qilTMAzcgWbZzk8&Z%5}UjozqD9BP6TOoOP&JuLU^;kS97xVO9f_N`Ey!*&C*}4 zWH16wEOSM;OCKC8j)bhq(=2szjT9!AD0qu%Z}=-$5aSKvc!|U$j<`#;7YRU1mmR4? zsm;`lk1!-jS%={Hg*X2{uRoc-g$w%)mS^VX{Uoj{&OGmqb=rW zgQ(e_IfB!Tlk^`1V8;mdfoDWHDa9qbE|1!^&JWBMoVC0wm#*0K9C9c`7b+u`8N*I{ zQj1=OuYJx?4DZmvR-HF(s^|8?NsmHhd2ht5$BL}uXL=%-yPq!mBu(!mpq?hHx?b+F zt1)Y&iT51+bQiKnu0XkcGaMGx;Tj2&M=zjyvLJu%063_4$oWcyL3I93HWxfB6Mg|C zmM5tA0%K}#bE7M8h*l2Un*Pl^O(oLwr9{I^}A39pyIl>>4o zz~63NkQ|75iJ-k|hu0T^^;Z4)<(1QPXTdENa?(Jt#`bXOz*Wlpnb8*Ijdi z4G4FOAV;L!g$o{1#UQz}c2|m~nYHC2nn!UtI+EY6J$1{&Ace|?t^N0pxA_(81j96X ze#cwwH+O)qf}ReOV_Oik3KVRgfN^&Tm-;Q@e>~vo4~ z2+qMSGxJ8#A=~OaJ5&3Y#L#9o407+w&_#-@WsLMYF?&_tiOb18;1D9LCxIoYyHwjO<(uB13}AtAdE;$4WsBOyTo7 zZ;f3ZBq&n1yE5@mEejJ3czN!d2b7xJ0lIwQd29VB4!K7Y9v<+StWA^DoMO<^-AlU5 zSm_~{YLZmz@_S`ke2T-b^{a1j)@a_$4-Lam;lCC%G5+o1^@mV`XNa?SxE3{1ArbuI#vi*#>M3?oQ zw^JTB;_#ym+5?l`Z?1T34z-4M^{KQkhb2t0?d`YUQ7y$dL#_I2X24Fl2kqnM z!;BtF21AN87gJu^k@PiIYt( zpDwa-+YlXT2)bQ}jO>L2`PXb`@M6WpO%<^4*l`cVK^`o><^}}%1Ws=EAk<3DfezO; zw~eVoKIvQ0xK@BT8is!rpvsc+PARn<_{Agk|MPOzK^A|Rr9 z%A?qrGg|}XQ&D*cv2D$eafzFMY;D-+Ie_=hP?Ft>^WIq|#O`N18FHcw{7Q@Iw@-P0 zx#>RB>*&1S%jJ`%jI6+*y0%{w`EI=L1+)hiEe*5wp%~a4o9b5-3?{yCp+{PEW~_wc zPMB3Rtr0>cH?2G_i9PKkes4b*{1U<}^IQs>{Fjj*WyeDoe-PSQW8J}N3Kh=@ANwhI z-={@o^4v^bydlhCQDXepb3mM9cvw3*vbI;(kr-6e zY0W1P8v84w_qIKg$u#MCNWibelC(cAOToZkw_ZPVLBS5IFj4`YebdV-8QyggeQ2=0 zR#EQECDL~pH7SF=EP<`9vJ?>Yq2pO+UtjKxg8d4mM-GJ|e%aaz-X0aQ^b#13raC57 zDOd1x`cPdO+co(oFGHS7p$qTr9l-w&b|v)k4iL7dW$09S9rRNMq;Q*!3RvfA204-P zC&Bcbm~5wy56cat|14yFuuB9a95I+f1{gbg`N>x+V>~Zsa80bmc?->h?99~49qHyh z96V2h^1>UF#C!wwZlGLMA{glGhR~hrWhL zTxx0N&HM4{`*H$4u%8wTIXzzD%L29VAt16td-hOJu-t`-^!5DiL%fuCp-VQ3fUbd3 z!sKIYQq2|2vm3YrWZr}qZDXLu&u428MF)S+G2oXv9L%Y?p?`!+L% zeh=Pa%}Wt*+Z470igzsX>}8EI$$vtNy3p*Kv!$uVjcHHl*i2iuw>Q*7p~~}=%Uf!6 z6qRjW;wZVb21%MF;96nPcck-L#hG-ZC)cdrD~%g|-Q}&BZ(W=e`8vF!F`X%?Z<1}v zo~n)b(?_>+`LL~%hkI7u6O3esU$sqvrDaTJMp6drlh*qN7DhnNq8@!A8TeIR-Fy^Z z^`H#rXArdvKRibRen7b=gv>n?Wa)&|0OyC9mQ4DcOD9#fN;kG~c>*9mxeROf)-N={ z=W5kvb87r1eqK{AUH$rhTHN1>wN2WYSQ_yJXBdUN>Zor|w;S^rcs^VW=c zeJpf!>d14!zb8i#{=&!6w*4TukazbC^h-LBF^r9FWEPkn2U#M>>S;TNAa?x#qy2}1xr zva}PZmvFi=ct>AGW#~CH(o=R0#)DPOK>*;hX*yFQnsRqVc&Vd|ZZ^ekT3 z^+Mz(Zs%~r_3u|-l!Z#@stYZpPnR$~bxqxQr4+lQcD#GS1&u^taReOIhWYmQ?{|J!J<$acs36QJy1;{b)(VavRZ9-LS0_ zrwOWzePdX&=!j=@(UVVY%>87nyX_Io4Ebp-R{UB}Zs_z4v>}_n*Sqhev}Th+SwSWw zW2@_}E7HQ96pz)mUM=84w9MqgYkkh8IKQZCEhD7G+De3V>o=0)VAtMP{eCc@9Sd3^e_N8ogOus5@iBN?-`GJjGcO3whZf@Tnq zIowMLD(y5pEX1?;B1wQY?tqtaGCvCfLj%+W_$yYnd`J2q0lrptHnM+uE)4w9BQBif z6P>L`0a35%-8MH$N>ldggK8@}N_-N}S~RT`vM1^!5VY-eF09hbnKaVoO5RE~PdcZ| zqhd(j6Ygf5f^lY#1Y5;3=*setd9Pse9?)6QIh(jyiI2{W#_bdLwJ76cR2RlcKR@Nv zJ3+UAe&@*VqlvcO7?wM9)D~8*^Xn-zz>gzZ<=1&xY&FV!#55$G-_^(Y`@EV|6wJZ> z!0~=w;c?y3TH||QE0TMyMgFrnJK_cS#e^8YhUU!M>PS9JYV+WfAlQKf)IOq?k|6|* zCWKcug}q6-&}`4ywmh0VzGjtF@`FXR6R!+z2vRRBYpiwPJD6abKyFV){2%4eB=r?? zy()*1bLNOR>A$xerKOKpxbU8NUm>P4gHl^NB!5{W{!Z5K1QcG|dSmLuRUJO`>Cb}= z!}oQL^i~A(-86$ue?;FjXa}V3*@FkRP8N&OshyQO``%pQ|H#jpnb0(z3;iz!v;P_H z|6RykiQ+}>l6Q54HKS7;@|6PCK@bC&&g4090XbbJr}m=KMW|x8I$q~o!i${DQiv~} zG{|YG?r>DXD&|@nH!UrVDR%SH+kMd8Q@XBZL?q3ZCC)fKo-;{}6Xpib>}T>0ww=wm zJz4`TDB_CD^;IC`<;95wwIHsdhRUpU@N-&K=eSp|S+fOVil>nlJN|Dnq|lQq^k+^S z-IIfkNhbMvrYp+DL&Zei^9-9C-^V!7Vn^~c?V|Q+36qOk2;{C!gnPTR??k4W6|n1 z`JBpBpW|M*+HyH7b;Y~Yq0lWazouB0v?Sh6n_-ydMulfx_;MCTI@gh7|c zHDG-O4i3d;Z9S>8cK~~15;u;fH`4mb;33D%K9ND zj#4(Q?u+wUj9+H5f%CbW}k;+6i2Yea2%yOhagVIsFKBtGHV zv!eF7Gg=`s(wHcp&QxemCLZVK4_hbHNP%sbUA;}hJn z;Nr#As3CZKKPj~eqP?ViZ&?hn)#4;#(kt6uYvWSVUun{p(;9ric;xk+4`}&o+30KO1vvliS zz#S;Fo?{nd&#RByoK%o8xfEFFh55YP+`Md1zN=MR!_1#^PhXEYPgoE~F85Ya3d zDek24(lL#YX^W(Bs5eS65H44yM~=8Q2lZFhpbRHv^hslTW3$>SF9Lcf7oAhqY^-e! z?=`+XwAI#giK8~%Em6DY=fgeX5q!|<3=w3{YuCKi>1hlB#-!qYj>FWu(j0wU0 zq!)FeUe}h~>KF8?oVk2QaiQ$>{J|Z7<{e5kQvvzOZbKI9(RAf;-Hqb9tiZlDVTV=B zmGebe>_}C9dgpuW5FE*|u^bW<8$l0w1QS76g_z*M=b4Jh5tmmlbeNmwKbP1H@V#MG z7RmNAtVii0bN$zD*?LnOGN9k)VG#rMnrx~*^9!1Fq&dqnK^#LbN&!R<+>?`|uKGq# zoa9c3%Y2!5BRGw%5?|k|`4%kONjt*q&U@fFbOCP3?#M;|njeL($&)(%xU!lSi>Fk{ ztxsj=yO?Mhq%sq6?(62Ge;g-2ot*76Gah79hcJvm$rd`W^2Irk8&7d}#G7Ofu&Yt+ z9#T;=4K22!U*NQ$fgvGrPAh0wnxVNALMwtF#qZ?cRAzrzH0My}Wh}a%WTFKvd3;)x z3XBwA4XWUHb{}Cv-j7+A$WRHANhnFz4O0!k)+pF{?Sd6D=%Dmy#?S(~H$AjIVmNS>@QwbTR8|j@uHViE-7ZaZb zxye?B@pHB#$ck=bBOvdVn7R_kWzq}1QmCzb9m@l+09B(kNCMD$NvoLunidrl6MFNs zZ399y^rvF;n=NZ&G(XsdNj}1R$yf7O<=x!EN98AyXgRJsK#vPEs9~8E2*K&25GySD zaa&a$%so%O~H*bR*Gi$ZBb~e#Dx~ILypspa!T1sW|Jpd z{mTbUr-gCPTuIc6TPVE_$9}1C8rHO5Tv`0eF~0*yJ2d>V&4E{THm6i%t&{Thn$$zq ziaj#}c#Sk5r2LgmzlIKp^EJG7IbHs!=BMj?sa%qz{e;->4!jQ!>K&umX{Sp?oRzUC zuP?o8ZJ=cKQp*D8%Xt*O)CN!qkt|K?LxAgXu|-HHQ8s)ZuT#aTKhtY7E*1te^xD~5 zMv8UzSCKM?8(Nh8YXNk-LnZ0gV`e*wVFTl9)j!y!j0q))N zE|C?Ol){yzpgSnYzJ!MDkN{16Xs%Z2;FZHHcMti_iNl}{I)mZ`@k#iZ{rVxio8VpO z_lpF3;vbe}R4BHKy79DqMo^d{-1iId;EawgfKmM+GKO?SSlQ}YaK)oB6BFsYAm=Or5;UVnJ zdcJiBh?Ju?9$5piQTs3(wIaOY#rAf+pPD-4SWWXCv$;h{eBw$sw$Ybn;e4NB^FS4_ zhZ39?#gM|lj}hM8CFdF})CTPxbuiHui0+yb#M!1H&S!aU>jTvz>u)t8DK7@=YK~|Z zP~taiT@XQKcyE){CZ}csnbWb8p{IInnKLFw2XZ*BOMI3C=@&F}WIG z$WO^Dtpf3zwXtZ?4&r%a>SfpUNKUxG5Tw0YE=Snp)oWL(cP-4%o^>98c8*zIw-e0D zN$$1tA#9V^f$}tFkgU{9yRu$iPk;6fwN&E=hQdH!ir$BTSK1{BPtKn~5wLX;96asCj~^rK(}eq!6& zerlGpveibODb^8+7KV>Tc?MW?nH;6$N1}hZ9M{d|hKy`q23ql$EwZIauEInt48YHk z;e|f&eRqI5kSQ`_65X#m;j}hI)L{^{yVhJM#3wJ#$rJqudmAAC9ya8$esO9@HIMc} z31DWvcJRM5vHk}+;s5WEc;XIFX7T+;#2sL!a$M&*Q*#>XGltc&Uv>xBQ7+T}m*ihD z;71hCKcoy)VBVhgD8If|Jm>zf^Q8h&thEhaG4T64+6b1e97TQJ-Hy5TQ~f(YsK`1$ zwzz1EinI4L^?MXQAr~ESU-Ds>Rj^461?NH=P{kwkiC}#eTSX)DTC_0kKeF+ z67V(s*gm%s+1Vf#x|%i7F>s@0jr&Osmy;?V@@Y9^hg59_HpDJNE4x+*jDDNW0evh~ zgGYDDv|L!eI3}fxPW~jhZ@nQ0J#FfHchX!*w&9CrzF0i3X_awjQg5|rz5_sJ!?$j? zyW|;+<`&Jyau*5N75OSym>uIZD43sNH(uXzA=BX-UF~d`MBDJ8NOy*LjxTGn2i^Mo z1c&FZS7d~YyB35fN_aqg4|xnLDSWH=Aj7MqbYXt+;F%S(Dh`iqBqQTthOdE?584^T zD>k`+8tz})_zZ24xV3kqF)a1z-w2PFu_<-T!1ZgJ%~{*u)r^s&sSo0PRUhp`*^|1c z+@flcWAD`MCLJj@wZ}$)BE16;rA4;i|J@NGza~6>a16Y01QnBp&iwht&j*jzA@tdJ z_*lnUq}@>mkM_9nKq8cQdpjnnQ(1x1a)E%dY2+Rz zzX=9;*VlRk8_x^YehpE-_Z%tbxLOmRi8~`mjG~82#EVsiHJErbqa!hSB5JJ?}4e1g6V-l7Bhn;`8WGW)2r*KOFZRz!+5J4~?E{p@y65f}~fJbglUrGKW?sIu&( zGAe2~ku8PfhF>bRBV+S-Aec~}MyC*Pk9yJE99S+g$s z-aI0_TRyz~DYDl$Z`bcpUg0okZGm{$2_I%$Tc2#)lr%qOO?PxLlsH^(=*4W~kPdV# zd9U4eXn59oZSpvZeTW zu<$Z{KB~|&@WSL;zWyEiMD(w#_3U9K3fzlEqCG>oulueu033^qV~-m;m=(PVSCWPLvqPNl?WMMaazOGcwYFh{#l!L2c5kK}-@(XrjUsRgP!< z_|c7ZNOVc?%Ap($7X@NLZGJT?1ZK-h*R~XtJ5}C z13=6{!Km`&H5m`iqp13MrIX#qrOdpa3T67{Tu3xG>v9ztx;L1EtEAn(QTWfO19*N! z{U4JywrlA1J)ZbmlUqC*tg?TuRx+OM*yQrQ1DILd0bYoi{3o0Fpj94W*AqyC3|eO+ zaFEEcob$bZ%s`AP3%XW{14ymDunK@tTAnrY(Dj zgMJoc>6fJpA&7GJ!^{GGbH1}^wwN?3@au6IV6nrvm4;9;wAS|d!1s^By>Y&kKjhci z>RhgA1?A!VLC6ebd$S86N`4w;2P$5gmxVx5vndwMEM7l|Bu=9J;FlcI5B0f9Wh0L% zMlkeyFJDN*sY*f$tC0Hkki@f~IC&>0-rj7o**g1H5pUd#(ER#gUbDx9X6l=4rOFOE4d6E3L8M>;aSo*kaIx2u^P9`pm)tkPsz|P^2YRWt3|1Kp z<$>dV?KRB>`}Rzvl~GWja?P}io)hkVfID-snwp+agGwSkEb)QC+mTV@$kQxCm5yrNEZqPRqp6CsEcL}tVp(UTBoj$E zfPtTs2@0DY58E_&edUL%`%44uEJ27eU>yQKx}2*b+u0+F2qlj#>QW7vUp69sx{~~8 z?&~InFag7Wtl-a;nBg^fIv+ApTOg2>xZB$=^vpZR&e!@>z^RL3PXga;q7Oj4xXn=% zJE1jJiK6t-Xt**ugD7tFRn`01REC|!vi*b`?L|Wl$2q<+9&5jo{5Hl{w8>omBPGTq zC@mwtr-P{iy2Nc%Qw8r2M?Jk>$lJU0;}gkG>$Lbq*rk^BP?4QXmo`>Sf8!qDG~;oQ zMFMMdG1vokPU_xoQoG=QSn}zbHnH&48K9%3>g9Qgx-wY0chcL){rfYbq0gb!-^pLR zWKEtds7nQ$Sg;-WAZ*RW`5x_~7hzV|12_2FswtWLW54E3n|bDEcZfARAn}UR?ax5X zh0u+**Fa54J4DL&+G$#j1U^-+s8>D2oAU{OyDr+u)#mdv`sVGADBcRQiY)vr z85js0`{9A=MwEe&*`q<)hr~CKsLsp})t#(XN@7RzOE}l4*fD0GeqH3J^%1Qelh(*b zdBv}6zx1_ey8`rCJ_4|&SIIOjCzLq9=qLQeOZz)$^M7UCo&KtB#0cvYeEB4R;KBu& zSGrSEC$-dzPA{;~BI>Dj_z*d-kNcs7v-)TJDDxjZSa!(jQ4V=*AWpKt6^uL3@ng!uV#;l^mvXtds#yx;!l|5YSX7a z*2lStCX!aqaP!JYKDs54dSG~-OkxnLzHGATR;3R$4y>%x51PYYO}=+JfaK~34?d2X z$BUy)yg2!dSJe`aLsR~zVx%$!ic(Fv;%hKGZ;|CShHC}OSh^vsy5|K$^5EalJupIt)SynWIC7S zaPHqSkgt>|kZPoqpu*~KJG;~vPqx9;+Pz+Mh_&t#NpH?x>%X%x?kTIf-0HSFTi+m| zVEl^>l)*`5D$M)Mw*o1%Ei-Eo(f$nC-Y~8U_$!B=f~qe`3=Dj z+#bdY$gwJ3(#zsmF`twj!#XMxYilwC1dEES=HTR9L2&K>9*SPOpKS` z;zoH76seVitEcp^HI^|Za_|+q=kF%l!3y40)_8A($WIGOIp(>dtP*oYhYE+p_xzce z4xgRzB?p7Itj2GLPWQ*6&3UKA1Zh?l9oubIqS$W)D!J#@*&O2i)Ecm!=7_3($kZA> za!l*K14NiVKmyl?1*wog-2iT2Eg5_BOO+=q_nywLmJC(j51FlyvOk})us9L+{xjuq zb~dH;>&E0-le?ew$vDc;$%T1`4Ij#{sF~11|31}AJQ#%S-ha&9kgj6U0TbJ@z<%$M zCAd!TQ;T{y59nwDixks14RZ4q>lcRnHrmoxdqbf88ejYyYG~1L%uleVlG?|=dzpLu z?A8PrAlNfZ<#=&J**?vYFpzGG_a%(;k199k{g5cHG=zN5HLs8Ufu|ufhOFc?x>YyNZw_aeUDE(BjF5hm@0x&i&!n};G&Yc1Ez6uZ6VKabmIg!UL3 zdbxe$J5gp(wrC=5ieM3TpC$oVAipouxI{3m!Cx#@h6YZqyru8h7x&&DUEFp)&U9W{ z+^Pig!G}Sx=KOV-Ruhm}Pddm!?O|7lyie(4{*UCeJq9ab7=H{Yr_nIE6(Xyx2d$cKX|&b^Xxk-e-X1qGcC%=Ov)JgSax(wsb8s1@VTX! zer$X$tLbltk|@Hs{5!zOJHT<1JhBvd^srOE-%7TE)<1RMX8QVmR88mVh6c^;d0Pc+ z`CRS?vfG6w=pNX7n2I;Z#`L5V>keQrb2R}^Myof3$RCK=+yU|?+d_JC>a#o6J4p62 zM4Rz5aSbmffie-3&f0ql9Q?41s~fc$=Q@6qVcqJqfwtN#0roU|rz8%1gHGK06wf$l z3zb44!CMzY^F=G~PSvLokCiibuX4tYwimZ`ah&ZP3@($owpzKY$a%XnM%N*w6N4!+dxn zDCWR(324AnESM<9!CPxv&r>JsbttCYWT2@?)Ta>Ckh*UPW@Wj$Pu zf1mt0mc~R=f`6Y&uaKjjOnJyh1oBMOWy&*{IOHkckk%|YQv6<6TqIJOe%=(euB!N8 zp#=ob5xR;tKtka~U1%0~M=Ug!S6y5h*zMi?{?VRsU@z_Mx6=_qzCc%&H`q6s_ap}; zPh_puy(7+tF+Szq1*KCtwAOrKVXhNb^TLxC`-gH=^^?c!e3r`6ZYHxqEUh3re^2+@ z5*IIla(<76Xwa?j?B1+Be;1^=m8xe#M48g7$*eouSF+3=^Thb)Z~6nk5ae#-`qvg<~ne%vEKqt~0sHbgx6yHC7cOD(k3;eaFKKt=RJfBjm%_3xUYlAFGJMDx&- zTR-jFAFYA&y~_}{a+5u&f+=9j@}7xi*5WWHC1Gx=L@J%oKr!HyqKpcQGaEGGxX{w{ z*qCb*<4WfLGb`rroa18Ho~QIT8&|V5Is43eATJnN?j0sO9wgP3d}|e;2@wA)ewN>$ zx|wcZEb~Ry!r{H!uFk}BCN`_8JHYpN^m9kKe#<+60vqb%OpX%3J|M0e9V~x^ReZw| zev2D)f@2UsgOz(BO@2*y2iU~VJMdyVqr`ApNsZ66@xy-~$nS7qUhKdWU;R61T;&eH zE@t=NH~+t3STeZ^lKOfDFRO4vPmHXuZHp(K)8}DKV26Sd=JEd(LH#K9uSK(EQvVW3 z{m*(1v&t|u1v0+(4nPi8+F)UwI-Iu)--?ob@hnp0WfE`I7eNnJpfg9x{S8KrsLH}1 zJ6=siG);emr#~B2?<&$mp5DPE>j?UQ;NW84u9yQa9t{*prxT(hJAFhxoCJ`w{n4Bg z#mYY3s*k`iooN;OK~A>g?aj|sk-;pddyVKil5{FNsW{C0$ZNNX4u4eQ3o%#mBu#d> z(3H>O|Jr23GW7VZ#9L1}=v3GbgqW4O>}wg@N6(~$A^d6kJFcl-5=<%62KA{YOQu5$ zR$(*(M*-MzYL%FZ$b-xE97^Lo!;G+;5_^ML1^JDQS6P43zb0TSmo-(#B#*n9g@t@q z`;MNJBT}p2KPqT^IywcMkA8b)@FzitxpABJvKL$!5LcG6&PvB?e(Np!DnJ3;A9) zBp0+&Iup06ye)0w#7a`(T<_456S@NoawCFngDZm0fQH-LU0PR9mPzgaRWoVmc=hsl zMm?61L$h;@qMcX~si$4}yA|01#O)$T-t}X^uCAjWH1=BtSi-i?KTA-*Zd!MK6&qX< zTUX=z+SRqPE~|*Kvx2F;x~hHL25}kN%DBdy?#ZHP1alS(u+zpQBbatC3@+I08+lSE z)TB+n9lK=OJ4F-`$I0D zuf7GzA5w&$99s5iHPJ1;$*~wN*&6&XoZ`pEJYk{dBd9WkehQX@n~g=+kCR*sGgKpSMfHw;9611Jv%Y^iYatXs;$9<3X3sW zzkf?6{LLda&;ofCeTzWt-_tseJr`^FpOSzdng6|Fil73_KP9?Cj1ok6_ka$c44X}h z-YjU+tJO^BQqOn0yC$o`gnI&wy*No|?+eqp8XF0a2GGrJZxrVG2UTP-cQdJkoy`e) znpr4~zpa;3`C1&s5BaR4CZhI4Ieji`MI_WT#s%~C6KYF%U}l9q({fBZCp@k(^5XER zDYHY8{Uw6{`!`-+-9F8&*)E&U?hK+W~$NaJj z{RA|2Z=V#LW>N?#%v3w;wxP)09}SkY#U*64)=Xl#n)gaHU)JRHKnY*Av3L(_mM#gbgoDk)+_j!+qy=2Lzpn%n z)E8t>EXD=qYCTkXkn7C7wv)(XLc9pVx7qR{jL?NTUieXo{Nrbi1 z2d%Ze*gHNHk)3T6d>cymzT1VNA?632<*#^NK$OU3WW(xMl$3MMYGwz%PfPa+GP7II z^ETJE-f+F^Qmgra{$`jJOG^Qppw)$AJ6|HIyUhBftV>!VQ-3%xf1rK&XP(nX|;D7^=y6CfZh)Ts2{1f+{d z?=^I!3#jyf0YXPQ2{k~7cm2-Zr|k2bd;j~K`{mx}IUn*N>q+LCYtFIe7<0_`eTSID zfuoLPhdEo=#nvV8G=q+5_`6?__988W<^(|&uAk&0= z(I`l?(KJ0th|DGp4rb;fdJ{9l(smZ~&{3K<9B=#?X5WL5){1Mm%&`Pu_80nnt+N_7 zf;$|_iP@PrgGZmpDY)iv(OA>&PRgnV1*+l2%uEHAt$5bHwGE`tX8+2Y`UzFX)f>9^ z42J4=^1nM%v^M-Q8P)>hNqldCGtKqW@RB7p6+u5a*h3@X_T;KO<#txXm5qlG+eInclB+$Y{4L{$zIT zgN*R{Ran*X2#QY`%a*&cS%IhGPK&_1+Y?DQemQSWWh_)*Oh=>GxfsV)L!&v{Lg>va z^E5hjvH2_ZA)eqUwntL|LQ6+&SmnKsVjtU7iEHaNw~|l;q;-9+HTFM+nKSRf*obeM)rAkr}+GR zUDu61MXslGY^fA{yabho6fp6U;bXQ`sH63%AtTm4+PHUBGq}$^y{bAH`v$d^qjMIL zSt_FM4(;Q#e_Q1J0gXN5i1 z>qLRfa?G-&9qXERJ^O=|&VA3!3)9xf0^U!0iH*fqBCU61rZZ#0*vijpsC063%6Gbl z3Lf7d4X8O7V-@VYFbYt_@*N~Xi&{0R~5g+B2IJhBR&X+g6T342h7E1jCYK>l>dBOQ=#@c>avI|CF**Fi}9f=DNFVimmrBwXO z$gyTi-m9;^T;GP+RBZ*^(i`sOOrCw^&}l!qZX$1JYHC4ulE5GErUe(DH?vU#ca;l~ zBtG%4qJhMggXgsBKf7l2Q5ubrTvt{M<_byuM)Jc6%qZ(yp8aTxO#(}Y9bYrvA^TY& zn`@J(Lbp8kd)QK%u8Z#5*i(ZU$x$R$GP+@b#VK3|OW#loLB(~k&x*^G2-=~f1y8va zZLm4V$>zkdi)FhW-9a2!QtH`))DV}@?{7qJv5&lotiBG&US%Z?JfBv0ig)yx`tXCL2gu=OgSHr5gRzOB|BUvgdsKSk^%Q(SMhZ#tmT3;y-pSu>Y+7 z@&{zJplkY%J6wk=^?!lUH&#R*ztp3-T)(X#s`dFTe_)vQzS18Md;;%qL7IyWC;R~w z;imlVUmcjSAsi{3UMlp*R}Wrp!1vGLv4;QqhyNX=|7aSC<*WMqCj3`&c%H(u6_r8% zkJ;DOL3!FO)Q4Cf*1n_xsY5-{jwh}vK^AQj@TC{q;KM^}zzo@e@UF^RipQF(fLZW6 zhC6qy+Et{yGLAlKuk#;&l~17E1592)Lg5tq2ZW1)&q&4N&l1_U$&G=l%Wn0CUVmkC z0bz&SO!f=h9}r%d9aH30b#_+s2hKOv&mWtdEc}9Yvy(Jb zF~T7MMp)a*=%q`!sWf$mbw@9TE!vNxyAg1zpW2FZaiag}<_iC*Zx=U!{bQ~O!+B3C zeB{UCiNuJJ zm2FS3b54|6E|%jDH_OY!+AhEL8O1DmGLJ zQDPxy|OUN`sljjL8h4`zUxu6fZrKzxp>ILZ4j%TX*a&5 zCo%W_u^e&qGMsV{3toz0yN>}!*T)(l4|Q{9b#cL^WKRjpLN(c=AY`@FJ5y3gVzah) z+Gx5%3jBjzdqR*ie1GK+2us`fk5*>*>EO^@{R)~i);nHr?+i+7xvw`UJQ(}uPqGqE{BBHx_Qs$nb0^?JTlR^7W6jfQI@+3T)+{fh(WR`$pYgZ8D|5ID8i zyv9mDbBH`!yjJG3>4uA$<=PCjy`@-J&rId$M=Df9ksRsMkitb0kUT&E4wb2ZkNk+g z#KQ?3@&9Ps4-J&k-^|Xm?_YYepZBE9OPa&YN6H1o$$U(3&Baa`zpz3PUbot)9NiZa z*$SK+ zneF8PEt*rJ>ucPeRcS&ry|;@^*QmPpF2bKu%L@MrH~R_J+F!k3inBm&zo@AT`#I$! z-ts;)J?r7o^^c2eDZM^flKmv6nhKFQccc1|GJJ~eA1jvG`JMDw^JgLICclK$gs*Az6qeImc;3A!?Y*8(^U1dhgxRakgWTI!n-m-gpEMc++$ z5(MXG$Dv#_t&AVs`ypQ@RKx3uP04i4rUe6d-IrZ-Sj;s@jLJD2Z#KYlcm#>8 zY+zk;-TJq6iI75H6=*kd*s#4w`G;+R3f(4zT=#sZ(^uUSVw6M8>hJG!$9QmwSYCZG zw7rUJ&vWXek>}f{o?{W<)yM3vN9Xmw_P!jC_*@qaV(n~+^nDBpPP(6K>fQN+&-8%S zk9S@u83O*kSRQl}H}VqGG`%>!B%x)`lh4|^ML*~-P--98>m7SHM=cD=qa0I773cOP zVihN_qIOI{WfV)c+Jrgzn9*N&FXsV0iGsi3f4k|t^ee?L8M`V-Vr9r5^u?}r_DY_d_Fs7-VBO>hV&ur1VZ_)SsP!%FdpILn%;tSk|U8*$84u z(`Xn~E}on=ns!ciem=HlVVb|%OZDwFImmqIOX}S$Xe?T=8e7!+!{SsmWo^_2-!7wJ zuM_fXw!iv`cY?$kr$PUf>i}x+Ij#Ue+^}&p;QH9o%a}$YpknG`$CMhm4w|sJ=P%Y+ zylX6207$f93p{*bl7FhA6O6kN2^;7_4ZM|A_x}Vr(JIP8=#=?GT+A8xb%) ze4SBhWh6)*hfu*5#fX(%lCPT2Dlc8~3^@{Mv+pm}Mm^9Ad-($Sw0Xn5i=%yDAeR|9 z{od|P1EgkYCi>+mS}+GQo9HVrFQ$O9g&I}TH$*u^h~S}*Vja#p4BZLMXa^tnq^&A| zo)wA|aNb!M@q}^ZUJ3AE?F_de^cizwse&(fe)4Vm3hvX}EU*-`e6tl^DceOA-HYI) zdky~edq6WVA2qv)3M%x1G*;I)jW?9B%-S{Up)DPk(pTc1wuN{bxPG06TVvz98{xEV z_loDu=gb^xa2!IUXtb$momSB>PtM7>I?mnJtLg>7B(_Rfs`oH(+4O2lyJveR`@y6%xFT%<$lHIF zMGq{&qr8O3HvKL;;>9vlN=pBLUK`K5KH+XhRjj^!q1Y3rcCC2i2D4xM*L}uKHug3o z)S176zvB5X;|7R$j(!yQq58eI!|Oj7-3-6S8jDl}cMXgIq_ojo(j!3mOM=-JKLL|b zYB2Zcd4bd+&NPYhkN&vwa7csfw2I0bM0J(gJ?1PddnKMk3ln-5>)o6WYkgT)xA56< ze$m`f&>rWx+ApWE6iG>=mMr`Pr+(A_bB4++Lwjc^;gh2NbgG zFXJL{@Oq}s{3*(JR8R_*pO_;qb=~+Yxs;Bo_#T)=UIK-y!P{5Cd}ZlS`-6#?n%Px_dWLAv1=avNtU-JJeCDO#$%b5em#WqV zm0m#QHS&*L*9sVXOiYgsSW_xpVc^9;L_}Iw#`Cl~qwSU>nr)x7T1pqOb~f&W`pS1c zvY}R~FIZJZqu+!1-Ysi(hSoYtr!)o^z*<;!xL;Y9Y)NOACzw?yDlxg}%$raSw!bxA zMa>!ticD=b%1bw3<`;T^O&_)K+!h;c3uXl;X>KaZuJK zNj1~Y^K*!0T28`~`M5sgU4kFjVi5TnH zcQZ3T$@~hNS4OUx;&re^eGqmA<>G9=5giElws`C~c)&dn%Ej|wX5a+=kW(~!P?X+i z;x-9oK~-EENeNy9Bh<$fU`n5WW~-Z!pI#ER_Jmsa-?WZVcHX2y2y0j=HLt}~eLMqy zaJ6W0`R%%bhm-7D58_!deEl7=&Lmjwryd>eIrVMb6^HkCnF+uQV|fAMOqL%zeXWR6~>#oa>L)i@_dc}bXkSCByS z{bf>erA}VlJhL_brg4!Y$8jl{cVZG>Meq3fFeT<^VHEi@A8e% zHpMSn86Q00_6}@h(P}M8VuwuJt%=T`SSG7ksMQq(@r$-K0iw$kWU$|hm!0oqm8$xd z$h4nL76B5M1}7-rol5#8EA`!VN>#3!>VsEf-H#PSvfG$BRwr9Gq1|hPT+0ZPg(Cr+ z&k}hkRVUhUh) zxI!}TQ@vcZRJ6a0X2hrFgADJF_fo}OO4_9oUnXZgxW-$H%f&*v{Z8NEO^Y`Dsxp0w zH|6OX~o_nV&AeFI~wlF<*3u=%014_*m{UHW_D=#%& z4>8vmR!1a41y)<@YLj*A;|M3T^DUbG5+Ags@$q4C5@aelTUyHwig7dkE(I8Sn~Y*l$5L!7p?y zcTc%}_t(V4j*px9Al=N%ew4$Kj{|QH#k>X`j?-1KZ&!B_U57c*l+*6dFqI6~Id*QK z*wM21xx9|lxpiPmRo`i!dAnCtq(tV9C8aw$Kp6LHY5$6;d_K%nuN8p{F2Y4R%N7c` zLvEYxyM31kBYyVvHM!ammll@2*N`Ay-wFg>vXG@t2IXZk6HemTr7B|8FX$I#>muqt z9KW7i<5@Z=PpUK@bQUxb5{x!ippCBWs8S|4V{;=c$TFAyfMOc7h#?_u^hp#vd*Ubr zWlMO}OX;`RT6qdiZwm1dLx1duS@pC$H$b$oGb=dBEt*9+K0>SbaDQ!RjG7s$z-z2? ze9ckgXnM$5i(Ix+rq#ds7YF2MN7{VHaXvEJq8y6fUB;G8{1#Gq6jj>%==X`wQ)1X|a ze@-$GNzwzVrSdG0iLG8oX35Z9&)L>sqN2fUey+%T5`=qiY)mm{*6%yh>=@`u_CWWg zf<=u#*~2aL>GM_u!m&-R2>o1;TmRO&rmQlGO)92N=z_SY9A5>Man?miY(vh#@TTY` z)t*?E-W(EaQM6a4i?vAu1~tntCdQP6UK_V_n-&u7yC28c3l~0^*VC>8=6zt$4Z@1vMDf zs1PY_-y=jfJEwviR|25rJscvB6Z$T*UAO5UMOhzA8L9a$2G0lR;HnmP{grX~kk9k| zLgLM0qQ6aN8p@?Beza%^xsG$ctj_<|{Uo+N`xlB_k9vReV0NE+%lF4Xw*a)K2G>7e zf!UojsSGk8qZN(J^-iM{tQ)>u%}&kN{izBB$2?$L$HG zJ?o}GfwqMI<5#YFNpHzQ-IL$WoT(R@;$L7=PWvPG*Qcq6RXQ=!umIrb^yirAJS&}m z_Q$9&t!R-HZmRYtoEhS4kkZbdgEN}T+WG3|;M5H)3B?U3R0W~R-j>MF!_nYy-n^bc zSQbL7u+3^F@e8!`GP@@+W8+BS%4W-HS1v6sgC+W1)dq7)#t)bFfYh2SwH!eoK^~i_@O_wyh^WcXi6{(})Ta7n9+xo78(y$)s6;P%?7 z*I6j-D+6^ug=5GO?W?~L#jb76^AQxi;m3UnM^pwE`ap$)fBOb#D0CLOb?#w~z=`;Z zm_Hy`ZW(pd{mSH+|IApcI@z?zP}_BOtqRC*1WMPq>Bg)S4-PzL61$*BOzpj_uM>ao zIDMWR?Q?*B1$E>a%B)Gbo^aLgxVT=9y}KpYRK0Z0Rr3QcK96)8j0Qb`Bs(Jb;7c-gjVVjWN^uDoXS$odk=oTpkD*l>13+?Q zp24VX?3n%DzVnc4#<(IEP5vj?T5Pz!t)(imQfmcHwn<>UurV|^a42(RR<&jdEjYlh zkwI&|p!4!(SwJ7>*VTV2F-!VNhsG&vSd0P!%=2UcowwIvr61Q+JX}RyY_{%HOy1r_>xO>5+)cVG*??M+j|Ma2)l6f}sN`t~Y*$>KGv%Ez#cdy1**!#vB)F z0*T!eSEvBmE;Ph};C>Jx@GgAu6fk~rCscU&aTS#XM3TTZv9~8H42L?MbDjHfir&8> zZ0CIz&dYQb@0xNh&q-sF!}BV5Oj)e8J)n|sDZ`#=wV_iI9xpOA^yAk?`+`i+4M0k9 zp%1z5mxMDljoq=PG3VPH4~8-kg(tY2(S}+lzYCR5(bd90BgA7LuIN>dHt_9=Ecj&m zyVwJjAnILR_Dc2LZu0WJg-i!mHLWMM<5Bs3bN&Vg}&ip&Id1xOOeW$gu^w$pE zI$5qrr0K6gpY7qIQiDK0$2FW^orY+w|9pj*_UBD_Pu?0E3C=I)(Uh!|)k)^|EpbOd znq3+rin{Bu>fd#IbK9jDtwLuL2Y&!!@GO_{i@Bt@komKPSsn9%6DS`vc~wNv$7XN7 zbJUu3dotk0vK(9g%93h!$;@m;Y=60Hz;MVb*E{&ogP@o5bulO9B$vE^WNIQlHp`(Vy%yH5`|BZ2EdJ~T4BEahmz8@Lqg19ypgcr%DabS(v13&(O& z_LvJx>~Hjr(88t()MOId-99LG&Xe| zeN2$a%Sy{+Y^?GM*VT&{*E?ce<&hZyjqBHL$-hqen$Y+35nmYpPyyUYKgO(pEp0m= z@fAM}9;CPs`A{^>DJAdrkC17L;grxMDX#&JiUwStkPuB_`Q+zVkJjT(?a3w@#`qz#L3gjm0o6k`A3+6 zw`7%w&nWK7Sn-O1S@E08FuOSa^tQ%m9>r#jP?uIs>6q22+&kR?TF_71CcF`1t>zrV zPZ4z&{HPCZW+rX!I~nYEt5Z&!z2{1Yx}PUcv(jRxJVQ|JtC@AR>h-A?tq#`wtdhRU zGH;3?WsT#VgJ$b^K1{CJwD>O1ux|CF7@yn=DH}v*YjvXa2QC3YUGLGw&^y6n?~0EA zxln;=S;GRH&&9Qu6II8gVqj=p1~*l5@Po5k2mQX5H|cg7rPtG~uq?`0m7?-ZKX9ad zdx!tpgm`h~4sTz1jyWn}cU4s8`oa8xM~XhXz#Cuz3NS82Z2%`hg;U}%`W0<#z{Gb~ zR}svUZP({9fL_UBcCYol_U+Jh#zCbVk|N0VzRLnYSh;3hxAoZQpkE7px%;{CGP4!2 z!*$az>;OT(v0_!4i_MvoPowr|YkV|mn= z4Drj}fUgNGai3e@?6C0(W2|a_Gm9yr4KZo?)`Y#jtY9#1i!2BH_)Rf8<4=(5uga>* zW#1(A#~m%FQJo_h+Y=Q>>o8gI%GHT!Eiv@;5n|cbu$SUy?loNP=`%^V>&3%fG(2r> zZ-H9<^o@HgZX4CS;I~JRbTY_5^zNE$^>4Av8dJ}3ArEd*)j%m9Te`U^vcH6c>?!-h zj9++KJ=hxuxTowijNSDs6rplNpQHG`to>KumHXQZ2iGRy+bHczqUm8BcsaDBs>Eym z?8=tH@h&gnJ!GxqFG-&1)htK6pGEwkg54tc)Nf%KoPfIjx%07t_P;dBSBg>SVTCVq znS4Qsd0(B?jOA`?nQSmMm%ph$$3esWy{1x=5_CgKT(v*w7P5mKQkB1r1i$VuT1kI8 zl&s4CA}>j8EjFD?Mdzl?YYJS3tr7BF>={r*7LHFR)ZRUL&iW&C@Ksg< znH+DI-#WrKfA-gA8nr}??`3Y$&~PnFX6&~@v6SkNU=I5%vYy93Ztwnb6P~T{D~27#(I)L~W^AC3dZ{rCjHlOhNXEP1FIy_HSYfY-=H9RQF6C}7eDBy&lkRRF++>Hft@F5Vn=Ob6e#vz`y^ zhi`cs;;Z)M!U+uYv424Fh=tQ#1zZbIg27?oa69l1C*?*@kjQD70>>{MvTc`lyw{P)RjT-q0>Lz)w{wG8x@w&3rJ8mYHJAFtf+ zQ$O?3`2#W)W!v7PIF{if7@ns5tq;5Z+K2qV_i*}eJv`K=gBcoNv?HMPa&P+0CG~3) z`sC_+QsfkGeoIqNKr;>sV?45xA^E~CoZ#O+I1ei#gxb!KtQs{0oS zN6lT;%zh94m_zK*&$kGRm&$h9f(=c?j5mDVLF@#zcfmfcK4u6T#?(7?>%3VnA$K(Y zQsG}AHs+T@kCw&s)Y!GExUSB2z>k(twpq4O2yl1$~e?%b@(3Ernud-xT5p* zf||nQq>3r%hlB+y1{~2K({w}<(lAlUtz0*5fquEo^so!R-hY#|Y;_?_T0VSPD8hnm zyiMK1!!~aL-3RgVa@eYUS~(l=)!4{No%D?q=xE!5{<_j5omXYLML^c;ZD0p)tT0UC z3+6Gf=DX$o0rB|x;00oN3Bexl1yOjYvO88rsinnneagZ=Okatwk55?tWw9tCffghO z`daC)fm5Z=gkn{|w1e&rXtD^@&0TZ-g2|jkMOyneSw+KqjgQpg--~9HmEhT?h47H_ zjg}XoJaJ+`;_le1!f9ftjx;hX72EcaR^~B^oZ>sfIwx;qj`__FCoi71$<9SaJ?u3W zu@&9x;gFx12ZXap0O;`z^9OWE6n}Y^3}|`f6X@mN0i-k`d?eVeZNnW@WX9FHY!ctZNDG(wz^?^(STD;#o@Dk+#M-MiBkI~} zjIAB19cTFOe-b_{Rs2YGzN>{*TC@k5);Dq<81U#TT+dG{Bn^+>$VF+931w;DldvqC+6AhZCxSz;} zU)$T_^4>85;wt0KLz=gE8##&yH~xS?+Hrgp2Y5-sZ8$!CPdMP|sI6sLNipxmw=D$` zKJO8oumfT4HmsTI<;KjTOTORCo^NEenwb*Y^%kd`)oU@7+aMN6rxFBt3PVZ|Ig z+olBx^!Nkf0^n&J?);rS0OkC(_8-s9M%$;XRz}<)eg8|xs|9d;|Zmn|o zr~yzaUy9;Yr2Kfi79_Xkqg-Qxi|wt!D!$49{J zVL+=-rQnNOo%rh0Y(tZ1)rsG2*-W29T&>thyat#!kG1!o7D&*9Sf5IQuOA-AEH86x;N1a_G^Uo(YYg zvIi;iXhgD$qb=m<|LjFtJCWZ9S}x)<{&_z_3$I9z_d30Co(-Uh_%24QfH$ZwA3joX zdU>Hu5RCuFrx+;CzjXfYU)7{Axl?rpM*CCz&3{7w#eaIjyO+m0eI?A z?Em5hy9h=FRzg1+@07zmg6^e%&~3E3`q5;x$yK?OIb=+A-{D-u6oC-O1~}sg}DxxR`c`B zg5y{KfBehQ0EH^!ieX1SvPrj|btutuO}-(n?nrvw0}ct)nNPO@rK~Q7u)e&~jpmxd zi@UqMmns++T5Is7y%TE9a#h8*tGI#U4lLeaN?hy3DR@dqoK;7NgK)5XqMEU%khYpK zY^Qui6UG%#wsGIDF!h}9AnM^r`dLuSsp+oCepd%Q&b)YojS{mE;VNr4f!@+J$2pB} zLZR{~EUP@7L)2_3N8f>I#O&!AVI93J6y8CMm~2xjo^fai%F7Gj#~PH09%B=n6-FtzrD(Zt?^*?;Ce;X z;UQ3|NxllJ8ipss`1H0YIkB;5>1rU4S#^7nb&3T_{@kglCl_Lyq~u@KZ>#NdKHH-T zv3&HnBoAW{yA;SfATNgHKj*%@1WHGuybG4##KsFIJh`4pkJ?>Cyb)m%fr-7}vG|y| z2ZELI=GC~!<#r*Xi3W%e&9;PJWhRgpsj4`>rQ>e|ddLyk z74#&Zy3{VDRRPBs`fYJ9o$}7g{u}bgxL~vC1_hd}Y3ah6;`uF9_AoT(@@;JxvfQ49Xm*kg@~zaymMjw!r}M%hs2dSh)7`D^j5{%GB0^yI z;~h9Xgybum(4?z8JK^WKhpFT1acveYS6eN%F`i!C&7G#KXI!K{tlt?$V{Y(+27Y+p zR(gFb?wb3#!1XfC^r&KAXbv*3-q+?A$}si58qhQ{zfz!{kGtq4u#dB7jN?_y99vAy z2Kmr6YBk;Dv_NEE+)4xli5mY{%#3bvv#_shVi&HHI@dfo_rm~B<*upOKyb!OJu&z{52R9#K}+QAjpx6g$+ zDNThqPsh3;bs~C6gg%U?&c?piPC#fa2zvDKWUj!eHpbP?gE~u%+S1$?T1_p~nIIqd ztv@F8h&-^ncOE-%Bg0tMYgxVA;-@yHQx@v{ml^O+f&v!SE;Lu*;& ztLP{~3-?)u`urI@^ACs<$PQPi{a1U>|L!%Rzv+hne(x{dHpuB8bwmE|iXLBWuUeAq z6S{?CSYnUZX=uL>3$~D6iv#F~X(X9S{1T_H&Jdiq743TBgTuq>mqF%J%O7467e%&d zmEwlM9mwO>%?1I3b6xSi$=y_Mg>P5hf)+ubuXIy*?#VWpq8~tz1r?7HOAU2KpHGf3 z|M*FMRTAN}c)v16&OW@flq9oxynhARW&N5;+Qk$$QkO&C@ht&jnJ! z?X!1a@odZd^w;urI!>$tE()TvgKN6i!i`K`c_0kS&SoxIajh%b6y^Z}Ser-ND4RO< zLbHdetgFu7`$a$?NuExzV5)D6$k4s;(oIad>(RxqgGcP)(~Zt_x@`TF#k}`1?b$CN zgs`TqsfR-kzet(v`F9RzM-lE|36bDSdHBi)cyARUR{=XT^7*Zp!m=UYd~$JX>{vd4Ff@XH zQ@8Pni~D(zlzkf}Mzzsh-`vZytfX>vN=fD}u0H6H-w*3Fc z(a^Oa{5Y5$zA(VEwl=QF)#*8W`XA~7|3yTt(5BeHKp1qmk@?Vq+5RxqoPgXey*C4> z+U*XU)=I2QmncLl=+v!YH}5^u&Wa%{H#hToS`o4ZlUO8O6Km*jmc_W0;<&W-@IkX@ z<3(0S$>*NJZAw%RoVdV6uwOI!wVQss;+onXncqmCc7(}kFy34+Iv?0m*gH15J*`nB zbpjEKThC4cYG~rIB+I{hD

we>eM5V zwotiJb>}g8W!Y8CxddB{0U6P3w2LMH8IW#vg9>)hrI+@*e

{WW~Wy=z{LeS3cqpFo}@N3=1 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 Tk&(yy?q}>=PSyT+A>n@jv)oVm literal 0 HcmV?d00001 diff --git a/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/standard-template.jpg b/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/standard-template.jpg new file mode 100644 index 0000000000000000000000000000000000000000..68f4dc4834e6b1f76176ffce1db4d0313d474241 GIT binary patch literal 62911 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νYoaQ&eIaaF1>SDvSGWfn=$ffXyLD|A@9)7kV3Km(q0APh^w^otX zv6(FB?ujtZys?^X@tu3V)Ljo5z}IoTo+ZVd*WEMrACmoq(H`N4KxhMsLmSl*LNHW< zHDosA^4B+S(V`W2uTz#YHQ(o`9uRS}&lhv?v*H2n6?wx;+ECFX;76u?O&r7Vkp(8D z-7=ut{5aOrXlS=g3|UnXxBc)5^PTS87hPLq!eJRcn5H8cEbk&XE>n4ouxb&r zFd8ny{}3E8d5|fT_T2a!3A`oON2vy|LC?8tm1DiKI^s@gvHceSVpq@!bN#}!2%ci5 zWP@9_0h86?dVfK`KGV+o^udTsRlDjdt9gUAevg{kZ50ky;!ndtoIx{nwVPiCO6S*W zEg+5;hzQ!8+o`8U-MSlTmYEb$^)oVc<&qSVC_HfB6fvQ#%(w!L&uo3i$P zFXc@TPmi7=#`^ldvM0)`p!Trf*6UaXgo>L4vu_L`o{QQIYdts1tIcCf&OmCW>O{*n zd%OJ7c`NL>eiW3wRmd?77N#tBUR5yTq~j{O0Im&t5o+REpR6tz&KVNxNW5kpWyRKn ziQ5V&T00^iwwlH2l1P@l+N#}XhjP{9Tu`)F{@tz^sZJn$vnC=&V@1iVX45ey{=*x3 zT?R?XP-tXv0@;}WOskn8f7VHr>X)bl?_OD{=b5iS+_l=qp0Ay}JbScyB1rvdO*}=f z4^o2B(zhJpby$|=?s20bOT9Th+wen1a_DWE*-Y%N$KG`a5kBO})GW zah>wz4KPB)dpHY>B8X;<`|7yF)3Ndr|6eqRi+S?<2ck?i1F43&0C7&=eNowQcvX zb||0Qusje+e&vzi15m;?ZxNRonMyanZy{Fv3- z?2PTD9fIWN`l_D8_?UnR^HSuLDA zdmeLx6us(8T(mRk2>s|FNeBZw*=uRocA&-CeX6*s^Bf_NcXl1uaAmoBkH>A!6dZ#b zUbh9dCFy}nC?Xgg`mm)1>D@CL0*hD9a@pz;8}>0WD-1?57=k>PIO8?O4`-sbE&z_v z(7A7x1)dN3Covgg;29VK_?8f5$yN0W$CU?t;T*qF@uUVeZ5u}SRg20kY0Uo{N?|4I zp#lsm0LG;UKqqZiPxv1bjE5{}U#ru?5og#1K)v4*z9oe&=mwDmQG6oqKD9p5C_T?p z>7Bw4FfQ`VRQ&lmlJ zDlTx43v5zBRdzEDMN7J1zJ|XMf4jN1dA9brNrQOj;eG93(wAy&gNh$WK?5?Dh*UYHM0rYU~riB$cI&6$bSVBwm~o z!B{8)x?O>=@IBB~dIYnSm6+>wcQ2Wo6)wAZb681>ktU4O-{e<;5AaV5eQ32vpfbN8Awl>*xbyNM0oe6>J=Nhl-Xzr-p!0^P0 zibl>ZSP3#19lgI0)+(Q3ie*92GGV_w4iOixws4s_zq8a!5-=^};N50ukT?S{(MK$B zV!=J^Po|T@kkk?uBiXi<^G*{Lvv*!!c|Z8>HjhVN@rNgzIj3}NRyWG>=a}HWc1Vdg z%C0IuRk<*#G35iU_*NB(htbP9tH7HYN`8m=8!-CjYuQp|dB{=*J^RKpDymWq*63MR z<2}6*DvstZ(zIDgFjBf2LsGP&nOn1EyFI}+dws6{okzwa z?3W%qCt9Uhj+=Mlpyd)pR)4hRqdlc(-uR6a8;T=Fq8fEgum|;WvkCKFF8Y2pDp~eQ zS+4z6O%l5K=J^Z2(QEYc6pSO5=Gc0uWOsbP!AV?3%kDZNk36~6OkrQkrrm!rR-xeN zgFkGck`pPkA_T@4xHR| z-HfnOC?OCa<7_HNYQT|pJ()ry(&=1E-PC#OZrjs|$j+^L#`^I$99+r> zT=uFdKUNB|nGlcb3*1;OGcc^7_Rt&lOqJ2uzBAtcAQmLE>n31|FvMeCy(DXOrlrOf zt7Br*8e>CBOkL6fBn^D>XY;!5#eP<#m%qnr6lEFNs|xaevOd})YED&y4< z*0Q&`dvn)P?<@;z`UZp$syh=rvf9OJKt48aJl@ls%nyP()Ht3pT5X1Q49IsyeC{KNT zX27-{hr2y5xgEX8d$mNrnG6RzJNdHo&V7Bkw-7ChZrSPXGO>5;(vtVe^TOB!1ByiP z;02DhHctD8wT+Y9>7T@y2AwVd1mG0=Mq6I$?KbCMX`*{7kOD63IM&j9XiHsh2V+vL zL6uYcx@^Oy@z;i{%PTZFC#+ptqJh^Hs6^e)KDrtUw=uK}yAQ{v(DJ^DF3#N;S3F7w z7doZXp2ocC@OwXJ{-d&6I16d~NR4}Os95YE&2oA@VWzY2<3|f^9}aEGzPJyK#W$V} z-XgxF>3;VYbKX~xwk@14=Ibu10IM#{Z8457V-?#{ zoLi0k>`5Cvuka0HO`sE#=xo$T%GGB~DQ7CVI-q1pq5lyJlKb%SN-ry_sNcK{y!lOf z#H9wtVX?1b8@<$QRH9kzYob3YZOyiRdbxC9xmdl#mgA$iozn+DA+yj#SxAkIc7IHR zd~quu_6@?Cbk2On1urmkpp;%Fh8QhJ*7-H`e&-5t3lzElC=vZK(6mx_pJ$mUJphsn z6k)@9+1;9)s0Vt}%jM!-UPKFc(McLlUh&<&ivqYRmHaPl5lO4a zT`ubxV`BQW#Qvs4&bX@A!}S)$^)wcm*j)Qt-xfoaqI)r#am|v8?rsoGq>5lCa&i0h zM#_+dU%`;ix4u(@+IMne9MvYNz9UBwXzLK=z|X#R#uEoFH)NEYcJdmV#%w}d34hfR z&LyKzv@Ma`7; z)i+N2*Yu>bd0u9wn@*(a*vojormNr2eCV2-MI?J~=N>Sv)GgGobQVi+JL0*x#nD^e zoSCJpxOBaW!2$vrk(zWT6^&{)o-Nt)+DY@xEL#u`ky{XaX_j&3IbY3Pm|2cfYP~0F zk6FAQ6nT-{D%K{x74dL`#xUtxxPK_MA-DLiv~CHFngR~Frn5`4fn^}EG6-Cxk2-@* z8J_51Icuj(po3O_>KLSohDROh%*kmINLq@WWi?rhljVkVMakq(hD?)IM~(A~zM46v zc@1V4&b2>%>dK*`GB#SwX~4rK`m^gYz)K+R=BDicQy3US+;MEhs|t+hO1n3WwOqX) zdn(XK^=@Y`%&kXZ@P=0$(ATcBN}r~f&=U`miOG|d`q#1@f9Abb3%l8~_l^Y=;MDWd zDWpl=V_pFJ7NJivYhi(n=sJ}RQ-PmG)~MVOd7hF1$)03h9nQf7b`5JHPDGoHToB)v zMz@cpht!2ezbFvaF?W`p=Ay1NfKx(r0{kbrQ(#3S2Bud0nB#C|Hkn*29t?M4wvP9V z>&TV7`4 z1YT|0OIQ$Md*ZFDvQD;3t^3c~U!|GlL}n|ZpL@z!L)*1&NwtgwnHGFKy4mI4Nf#cf zkQrBuA55_&Nl4FpsDBfkag#8x)fV?}mpKht>F3}~>xP>BFp5BCY@GhEG&RS=irR|A zM`;|U+4NJIA`%~GeCW4&SNM)N-K{<}9(|maJE|XbrAb^SkaW8-l*ccllyE<{XJSvf zxg^%HIcZfD{?R>XSWL4D>aBtsPNCc>lcy#M*C05&%iC}dypycK19T2k$3`Hm={H&Y zHR6%3K%+5NA~|MR6O691yu1?1ShN}Qyad4QF>H>VvIp-Jc>}VZ>ii7S7-L$2lHpv7 zu&}NL`o$KQ#U__v*Cn{#WF)hahZC6R;SW+oqlN-sray{l!6oe|74b>dRnv6TRr-@E zU8>t|fvK(j@ux^)jEugH+?e3;=Uum$@`jYck}O)^PBn~ovX=^##Yj!5G(Gi7mJcU7 zRDsu@UjB59JV?-2arM!NG!|l(-4FeGuWHgf{|iO(jx3u=)ZJ&Jv2WB!Q!J?R29u*> zkw_6GKZi`iQ1TDW3E$g|7_TJrp#fZ*J=F`-I-OZpl^IYCIH~gWyOu*wNAdk&aG{!q zbd(z_|8x(<&lld`_?UQN^_)5GZS9I z2N8(&0V7B0$0)jF4rYulO-H$f5*$Fk(Drt@tX`fK# z{Pu25tVGAX%=C#R^V65t$y*IEi?3+3WUA0{NP#M3Kb!#z?Pg{+<`zPa%^KGg=p^M< z*PA^xvrSV$y$Uy8=HR>PCnI^BG?BHq)pI@p-ZX-KKQI@{3HgVeWBk)Y{(t3JKC)2! zF!!|x1TY%Hg1P^!J2|bcQT0n4G91akM_}rzJ;D$s@Uo=tjao4@F=Dqv0_eQJ-;;1m zfxO{w?`%+A#e8b%Cv$Mrf|wKOHh+=kU6XINaSC}?a+GqkuKd6#?1oTVs2U(vp2wiv zH{d=-BT+V`WIfrxHI+admUP&tf92z~@Fg3=#b6E1hr%zmh66qKEKPovawZ0tElhkl z0rL4)bvDAngGeD#Wr( zGpKDAOx!B+3*?xOUcg;zG)eX(IO)|v2>y}Yx2oM${b$VjILM0&Kym=?(@gzT2F405 z`1(KrqSy)y~{1f$Bgn{$(&$2$K~xgtf%;Km=5;uv_E!bxL~d6y@W7 zvg;=aPS>44_d4C?VdBV-D>-PE5Kkbz3y^zd%(K{1d#C24Wa-RMM{p-R%h~%~EU9T? zY&~~qOG?KDfVNp|(YpamK>TPLD#rE>F>5lQK@@1*H zk57%{=$Q;91jq(wj7$UtDao8uopYP=TO`1pcaqmzV}e+4`tf2omHa7uH;ATYZ7WA{ z$w!epw=uD7Gp<@@iE@~Y_NTV7$ixn=MZWB(ajWyaxRNbvM6PhJl}9u3y8r+t-+HL*NyDa#dG0|vfa4_wARP73hg7E z9UleY)N%X1F9%|M1ZXi_)9+DeIcw3E-DO)gS-56J_>YcZDh_!Td*h>_NK{N9(`^84 zp1}kJ_}MoH*%9b)cf`x@-~@7}050YIRGPcE`|cY*N67c~#Ygk*DK2<;Lma`6 z8|<6Xad&aQ4EKn@O5T4ah^JrJ-h^+1wqYUzc=-1-0cH4!&z`Iu)&th+^5r}U<%nmU zqq6DjjIbEhk7yqRRZ(}Q2c{B6r0?M1j4bM%$!CI3eBq7qGd~xfa;%-kgm@_wH6N&> zAB{k)f_N1Znomt`M^@zI2pJg!f4vDf$Wc`H=O;Mz!Sk*sb;k$FdUtcy2?y8m&@g7> zy;Eg-2BZWyE1{ax?^q!>yS;6x0_lk3F8mKT4inS{}1-Q1FETZ zT@yt`r7BH&7Zd@JrnIO?69EC~LR2~tB1j1}0@9llK|qLfkuD_yfzYdfbO^oIKtc^9 z#M%FpGk5N+nS0L6?dNAL*4iuC`F8vE`@Q9PpGWro@*5blYlnK-;1VjSuX|=tYocMm z4fp7)U9w~8rzQH7>Tl5zl_@U5KTWx`7$$eiPpz2!at zLe#I8f@NT|itjnUa=6-dUGJ6`pV9rav@;{HKGB&5dKk~Mfrjg_G%y;^^M1#6_?Fn0 zxK_s0?gNj*Z=W)AJ^$gGrb_g8^+Q{lwoli} zkx76MfncgGH9?|f=3<49E}gx+ZGb(t{>$LjVs&)d@HdfjBR3SPkH+vqg}Kb9rc-;R zF_t&0%kgpnsC%d3nU3Bi1#ey6T6r#*qUuD21Nmw?y4#jT`7Q@h?Qpd)&$&JaXnQV# zv8HEG10_Smn>TWxbmk})WgpY-?{`EMmUrJtQTE)JV}NYwGQ!j!;`7o^5ervvu`uEO1-|66?Mwgr^(_N*e&VJ}9>V!F6nrLhB}IP2Y~Y$i{P9e>%L>;+H=+ z;jQ{`!t>A;Z|(fBrC_TcBYfY(oe|3vA&KHE>zmJANjF1V0l^GU_yU}69KwBVM0)x< zhxKq~$jS}dfRdkx+ShZXsh>ac_(aW(mU=p4PdD0clerK!$5VJN$ktU~X~Hom1Qkno zXg#(Cuki1PtzhezP+e4sO?F7TC)z$YvPtHLjGSi4s12!MAHgmgyjHRynoa;Hy;t?x zD6y=rFC}3Z)gb$C-y-wUtYzn)1%6SF{&DW?g}c0lh^;gpEEo$a2O>EKFOV(KF0sM$ zW1VL*nr*T!y{6r(D5qqxqFN+B#TOaA_B9CriOxYG!MU~JA#6gfHSPj|*FHG(?fLeo{idL;=JcDEs{l)N`@WP-=4sar z9INf0V0NyI*5h8lKf4uw%u;m5cJZ#UfO1HgA`DX@hZUURlB3d>H~RcSRGB<6>zaYU;_t z9ta1-r>-n;Vd0vgb=nI|+Bi-1Kx6-d!OvL1!A4dw8fF_$BVCz?=aY~W+-$R%I9jv((Jdpqu#WPeRDY(Mg% zyXJw&R`KGnGrz`llu4qtpuI_!)S}R{x(}Bcr(A}I&|u@E!pj)fL*z=z0=j~nolUq- zA7NxLHDT|~lD_DZX0DoQ7*zF z482U*se8XoMP zcE6Ej?j^w@#Hi?K`jL83=z%S-9Yy&;78if>tbXnAtMACjr?najKk76RweDQUMr>a& z5kG7cj_%;n7AY~w1zO(2U445S4oSCsQx5M+BZ4z-4&KVtvXIjuR6x$>R$5)6u`{Sl zcoh>-2Sj@TsT<0-R3Nzi)){5|79-4{UEZRV0p9#zzSwC1`oiSp<*PFWKYTlz-e2XV zG3N`}I6B1n2jZUJ$6WvXYsykQQ`&Y=>AS@RBgV3hI~P>>`g=bDSmpx1KOS9v*aH6i zYH+1_y*GcJlD?lZYweRak~b_`xN5#d4>Ng}paszn{fGQ^j;o!bbs1ARX4WuoKk46fXwX9H=T5ZaW#x&YRpU4=>uWHQyYO)MPmj3wCWv z+w>LIhHxQ=iklO=Q5qwhBYp=n*>T;F5ajCna@ zs&?d!BJ*k%Zza<+7l~f2jA={ne0s+Al}ScUytefwn3g28pzSzoG6ERi zjnw*T#ps7ex*?FTGFREoZqqk@v`QAg%BQhYy!sjz! z`U(MF6Q;~7ubvhVTWXLDHHxRS3($-9%F^Xp5)AgK9(C67myBi&Dq|L8Tm}Mv@LtKN zGTWO!3a%3Kr}fxrF;f~vI%hnWPaM6X^b->0WO{j<@>~?1eh;y{W5npF%-2*oS0 zz{A?TayhbJQbPKE!kP>!5iVfU&6#t!u?XlEw5pWe!K@w|1g)$=e~<7Io4oh)b@yY= zcd#}WG)n__?>89u!4OI^$GlyPWRSNp#&Vc-mw_KFcy#r{Dk_Z zA=|9x?vc+CUV$#jrbvW~OSmo0k5!0_^}-LsdhQCW&QN`_5&jIFo~hfpv@ScwQ)S$$ zq-OGQ8;b&Ew=uo9&Z?VX>B#etShgSs;f`8Tm2*;;lsN{S6x9Vqx!Mb86SaVFQ{i)YFf1N_w?uqU=<3h#x>t1pN!0aamlj<*42-XroSG9yqB3!! z#}YMDIOzLO0J$-VWkCc*p z`U@QJ&lMF{m+bV75s&8;UuF>s7pP)UQn|=b5P;a9pMIrescmcC`5f$}R~91j@}Y(6 zHZ?2tyH6YyrXA|c>qnv%$slhjr1>dUK|-bbwc9D&gwTt(y(9xYYwjrF#|gH^$HaX6RC{lW9ZeprIs4vBL~6PN@+56|INVO4@%}x$oDv z=%{96(jv(b=d;idfmd%qUxqE1JNN>CERNQz=J2n62D%YTZRB-#1^DHG2Hf_?0{i0Z z8HXfKZ!I-`$R+H+oQV95sOTSyc{hr$TA+Dud!r3HKn@xt>Deln0ZwdE&K6QuO@BE)n1>Ghctzk3$o8_%U~F zFXZa_p^=^n^!j|rH2YVBxTemPVuDYLnfiOTua&*jkG~JNjfYE4tRJqQ6VdGAW1zUB zsU)(kn=(hf1g8Q(vf93{EIhR6vG4uvVH5PNF=c)sd;*VnqE_u)QHwqO*Gl9b;Ef^y z`P&TskPekW_t^`ZzyxM*X)!v0J5fDE6?$UhX5Yi;7F07SkbE}u{zn6_viJ(dRz@M6>u zeL*;M02$~jxHucKA4`AwB}nej;=R#~0~hscJw$t?17sh9ck;JBK&Qe3b$68&2|jbt zb_-OE+VX8EFm6-R%hVQysvTHiZ%g_rNGllsbIgiWOWd{Xf-Y_@z_RyC*B4FVW7x5x zjZhH8=)^fgTCZS>`jC>54MVYdP3kzHbN{}Nap7}cNu2v^I8~S(E+bU7;o{40U3tx8 z_hUkPMe77MjZoTiU|Pa2b9x2>{P9?D;qeE!!-T5KvfNREcY1z6XWp`(6O`Z_FnhA; zr^|VoX#BuJYhjfnaLGCK5*||ZrSkd1XBhK%D{R^4kCVF})Mg}&m2YtIkl8ur3HVqb zzM1DB_tuktk_P|;J{EdMtPbhh08Lo&@><=&uGA-J|Eip3(W;R?RUU2I5!x#;!<>)m z<$ant^_3&d@!Qf~FlE*Cy7^OyHg;=_b4A|7#);dMri0&EUB=%OsHlseu&g5&NS4;N z5v$LE)9LnVs98r2yhRnVGdFK{NKa4|;ues%2lGxJ7arh)eNYr@ z<{BEO>!Qiadi$0{|EBEA|#EEN{@6F%WYi#qg`9d&wge!@cu4h#r z+V{I{$6~}%a8B{ynBn~Dy5=7lIFziS()H;4hIf1{Esr54y`_ngVWc7_%x&f8RuQaq ztjx=$xw9KayZZ4%$SwgjMQ!K0#usaHXYbId%k0?&EDd1EOeE)u&@C6o4;y45wSb33 z-S6u}IxOl;HL!uA>u=7!qiAFf7Jf&Px?bT|hz@m29x284=1vn$TJ3(ke@COQiF}($ zL7NlT_Gq!U*ZEu9!{-HHAf08k3gv`JsNnjyO6SB>bce*g47+W{($AXDT053^n^n$xyOD{hYT;g7PB&2{EK!B>f16NsEk}L}H3-@-Hb(i>8m7fwdrkC zpe79Y}m=+KSg;liiR4Vk$OVF*8h01WM0aYmy z2X9}pJF>pCh=@B^m%?j!t+6A+4>I$ANt~(Yt)+Uz3T-8^uvFi%>~nU`z%WPkOH#0L zzLS%@obA%p$eoymN=`mD@nhd1dn&TdZ5J04pl#r*ip&d6*T){zqD&PH@=PXXIXaW5 zqkG;I@WtG5k*|oWwCX>Lg0|Fhht44;;El?%LnQE5xu`8SqIt3K!(ka)bX6^i@8M*d zjikHL>yH;0Vp2K?fI%jM#kCO93(nAPo|7a?SkT?88p zZjM*Ss^+!j!mtFkq>SX`V+s$q04p|-CudD0a+LmGC z4bL&xx}WC|#&$6+#n@%-PNVg%Du*M-npswZ7J&mVppH9wk8;5qw<$A>6}uY_OQ`OI ziMP@XPNwZKd6dW9<9)~?bMxWX@ir|x;n`AU5pl%)dX-NsH6h#z@*Y`U6*G9x*`0Rr zCcZshQnmfeUfSmUmzuMJyDES4Kk~j3`Pu9rmiL zjyNr9RlRTTi%Ao-pEePAXV}^O!NmlO8{uXOf2Oj+$Vza9Sr|kH+C+(=}U(#^>kIQAXUi@rFAgCDKaJ7I|!aSwl?! z^J&ItT$L9L8ZR`uBU*+*4j_6HO-~PLD8n?&tZ%;98D$E6Rh;*5gUFdQ zyK+a=S~{GAx9Pa-QvQhe!p@R+FLM`w=wYn%!9vV0DyoJvI?T|aPpZr9^_<&UleyJ89uglIokR9E7bxy$ z7bkykLm%X!ksUjAWc8ThvRTuYr-a5U0()DJm>$^r8T~SF?@cmmH(Rs4Q0w9t2930kp+YZYo7qNr~nyx7i_KxcP1J+L6T z|0Fa3Wt_Pt$Nrn5ZQ4wiQx|^Qj~mQAB^b*;tsxM(g|J^@e#Rj?7xZf-xTwfr;Q0wA zVh?)7*R5<2rTTTP7RZjOFDhUq?1ur+d1Z{o*7(;KF}q#t6n%6b1@Fw2H8l!Tq!*9Q#xx-h#`nEN0rXOD zU(Jg#Ie9Vid$JY(SIfv@YlyEz}uD+MvM)JE)0Lk=Sb-Rce6$zAM6O|PUF3DMlq1yV!{jWhe~DG5TeWcuWKeoYM_-s0 zO1&$E?2XHDi;=l?kzTU>swgC>7gs-?U$Zd}R)- zj8k;gh_3v;?0JDB#P|XNAHUdQ)WBR02O=c)j8sf}I_FbNxsiEtZM4|b{Lr!~+qJ!4 z+#H#=wv#;qPe2m8HPd>QE(;Pd?6#qc+Q!XBwJdd|gh<^AWP_}{VWqQegaI#2(eBNX zA)a2;*W*O-1s6+qe9vO@Cb&YmZb9Ob31r4;EG4(^ms--1*`urnOg(qKnA$g7zvL~} zB*rK^>K3C**Asz;-Z60J$(;y%DLrhc89{}*@?|~MF3`RB!k%FgxD2K|I(pBYEnRX& z!%)b6#3jUm{XY8ktp|5Y@|)1tD*IV29Wibgqtf|aAFX#5&(|;`wQX;gWIeirxfbIt z8Ci5LoxT0Wp-znq9wLTEPow&FBX-jz4kHE*;31v}23{N))xcOi$YD(MEjKUy^sO#~ zNkw*#clEQEbx^1b?HE>OzF1DbEJ%M)Q6xLc{vy5px_M zofzywyCbsasmK{)M?eCS9mCO9xBS7_5S{m6hQyWak$d$uXAmOS8dcJxaW+gLlFNcwPt6SVbCl1n{uDC5c)yne zdI~qbvQcRS3L;tL684%;?84l%5LN4DiPSDo*}wuL#ta;7p2)bKu|xMkuX)Eppu5 zCmibrrk@l>__*++N<}!9Zco1)$m8)t%*~Mc zVsipiwSGi=)V8`ZJTJ~E(<}GIg*S0uZvFH=PZ19Z$Hlhy@G!z^C1}9}&sJ{6QE?~B z-EJ=L(YtM1BKJL_v*X&0U6(l^6ph#dvpT-55^ph}eXj`}IZCF*$s*5jv*CHdgAri| zNObbU@0#&Hxzy$xT>FC4oH?vtPMysu{VBEKebiBU+1^_>=s-1T(_jc?v@Bg0El(-; zX-4H|wyjEhlWee|Sj{_LSCw`5Wx^KVOQ7d#))I{==VqfkxNqX0kl9fKGU&^j>&{TV zva#aD=#noq%(=nY@sHl*d=>Cmp1O0vQ8&z(n?1A*L7zS5MvR=+@w3#}cgTEo6|-da zb8DAk^W*NI>XO{8yW7-GE3C6UWX|ocrP5<$1rvu_a(<5e3>#h|szf^P%7#A7zwh3w ziVt6*Vi}qO^t}3)G>*zTJG# zYIO2OXc@Z6Wmm|q{Tnsp{AX^wQMQO}s@?SO^1nF%RvD%%a47*lPW3U{WiCx5Dt_(0*Oc5tqo)-N zG<}V%Wo{+s&%Yq*`|S`A!US-$dQj;EE28%yT)x zvhj_v;0pVE4hO#~(zX%O$;hZyEByYTFibCpB?g(^_%b}1fz@}Pm?Q#5DI|4^6E0DCf7Y#%;-Mv zVx|i3v?t5H_9%Q%8S;W|?cIx(0E9`_XSd^b#vjN({psa-nx-#^nLi@;k7T7{rzOM` z3x1{5m}=5c(iEKYxnfzb%9lYq4`%?bpY&i+Ti67L2&?i@GJjq(x<74ve@GA=Gw&>0 z9-@1TktwXP#QJjX!w=IgKzD-zo)biaT}2Iu^AEfChmBeaq-g{w9+e^e9TahD*3IzVJ;(}BIkn&RZCj+jObBY9p&@K8Ea6u2 z^MQ3!bAD-XKb?JH>a=0`MF?~TMV(~i@#$OUF)oPLj(LLo3qgMXV)d26bsXAcWO|AR zeKXleSjT7&nOSPnICk+r;Q#*dqhXK4&pS_P_AEzKC3J<4=*_2(OB*_Yq60woP+hPX zspQ(DLr8QNlO27@JR5B{?EC3ln&F~q9X#a|g=>U*SJ#|f;b~@N8i#u7{63_beof4U7_Db$0wMsYCZBavw_bs z!Q{EB)!S@)+~kbnE&h*jr8E&SYS&7ZI;o<2GJy5Ib%t(ig}{SH>jH0l4r*A@6oA_} zCdIRfzj7!}`x#ErQ_#ZIeetgH!GR335_B2bzL;Eplz$}3t$^pBHN-*NN@;!X2R%gN zSt9A;-e%1<1UjCIkMGP!#`e&NHnLUz6w3bFBE8mTLFybaguY+6e zi-nw)JB}jF-VZ&Fmt>IJVUfNf!qFVx_vZE;zlMky3o*>$@y>C~p{J$sDLpVR<{3xE z4(WkXjh7o_pakB`cnIFgbOc}~d(qW2{zh`p>Gml*nIV!1?v$MAg@bN++w^ujkcFx< zRyzYen?I^fDDZ4NW|GuPcz5Y+eMrQp{z_VMD(Paxaztzb*lW=&FJa*#+yPKS9+IBO zi6UHa!iwjG2NxwrdWs6FJ#m`uj+gpC2WhQJmuuse!_5X=Zy0L0?l^O+YHU9;+QA*- z<>W>*GXMIs{jPvvgf*4m9noOJslJPB#K#ez8jKLOh^ZaIRDLn(H$|7kFMLf&DN2B- z**0!O3&b?CWSMFb})xZIGC6#L*lKq=Pl$&vZ z){(e~2t!@5$sw4x%F80MHs5S|$K)^2-qBWk$frI@qa{KsPaJrsW2rlB&hYyG54};FV*JaV($S zXt-_u{*r*oHA9BGdKWZ^lMMG7Ehcr8^Rx1lw`$PEhJlv58pjp$#<4Q7K)`^%0I1R{ z;%$0KGkl}sZX-jL`5z^cv?fxh(Hd{#_Oz-Vf3&$pe+}u+F{*rJ4OG#P?v*QBUgU66 zwRGg|7bJSy?t5L*vq+aSQ7%MBbrI?s;kZOXU6a}DWJ3>7X`0?Y%1}>0 zW4UdL%ABTuyzWS=yL)dk>g@;hM-AY2V_*fcaE3#2YG@lcI)e+ZjSO|KXKcw}87j>t z8dX^dMU9QID(fG+H1S?#QjLoL`Gtj-=AcmdCJIdmDDq_;!zwBjJK(O@%Z!YaWLpnB zH&s8R{?Ve7&41hEYuDW#iDDlaCZhQ4s*Bq}Es6dd4jxuTAAm`YbQ7~{<`x)v(J&?< z6D{`)M@|+Z8OKd^tsJ{v+gsL%YNJo7(lF#JAF`SkYbeC^H{;SF_eVJN@X+ubiHr`N zXlG*$R(-{9;%qu2j||UDxKdVMc$<1Ce?$Ed>SKe7H)#?sHw?5Z-~YGZ&HQ`hq5Mz6 z`}`leKZBVj`pvcX5wezTIlN?ZZ3=Bw<2~`;6su97BLYDEE$x*I-)rX~lHi0?it<0d z`}4m1IVb*nAO1;OpvtJzOYB@!?J#uh_)YPES&ZUeYEAuf-TYf=;s4$2{~vnY{QuPk zU|vS^G{~ys>{<@v+w75;k}umyA38OnUQ<+5-{W<*ydafPH4)To)L|ULLC@{bV{_`| z==!SsS(%%SWksb`ozmk7f)AO)rvtuEjXNS!>H-=MUjh2F8T{<&S&|aalr;p$ZxG=J z^zvlY-xL7?i@zzxZj~M*rule`{=Lvws+nGFo+H4r!0)_361N^yvQ#3lD z2?snI-0q}EfEf4zxyAjWtKoI2k6UX|ASM|{%@!7bgy&? zOt?ya&?8E=JK}jW0H*)n#s<^rx_6X>lUt^u$AzerVI%V|8nXBMV zG)|CbGs&3LzpXr<)c{=dKO7ryd^S@159jb%(`wFc(U;BNw0Nt~bS`-|-T6R2=b(JP zFCNWL9MD_jECDM1#MtV!B6@Aor|iwafk`!s`|y=XJlEnzdU!yq^3zUim4 z$LH&r={duaHe54@HfSh574lOMDHj0#8g%2kq#mfD}$0wtc@Fd$0*SGB0czdIa~yVyl*rJ?yGZqUvF+X!q=H zP#}8DRjo6&g*&tX<&$5>f=2_EsaV` z?AFYcdUUeou1x1Pi-)(yhpqwwt(!EAZrVcdFkoR)OtsBbVdI$ z`zv&ZL@#343q*=61CoBROMww0rA&u^4Ds*o|L>Aw_AeB+r3oOYMEx9`=no+2y-)fY zo}8i@jsk%0N8)b^r%fzDf~@`nP6UjFM=5 zHLBMsnNJFJRvpIt0MBT=TAFv^875^oZi-dE1& z%lK4Fe&<*%EQ7ps`{}M%>o%R|)gS9^UgwWmv1*$w?Cn9!AqcB{NAJ{)Qm)V1JPG`P z%={c>w1{CfnL`KPfR7Rs}b6UE7``Js*YFzFZC5>^F$17Kq zpIJqLye~fCV|G78HroN*-Ro&wd+)|#Sy}dFx8)we_?4=|#5AKlZNCmtd_pse{~1E& zf)bVPhb}8S_b@rmj}Ix&3)eiIe2abVP$-{~?^(QIY*?bzsx3XpSy9KC1k!gz z7W=JSO@AzXW2jKvK`_A&V^*;uX~?IKTGccYt4_9Y0oLQ~yZwKKA>I2w8B&Hn4e4L4 zO!5~)m-T<<+x}!S2_$t7y%K&*g!`OI|M#* z-b#A*5rSa=4E@JD@!(p>fSdCL9R|no)01V?Nsnj{#92=g!*2?Mw>ksF{xJJeBziuS z1XTDQz=2Qa9`TSIV+k(-zHA^C0Jnk&SAYT7bIE9c4t$1)o(l!e^6+2%EYX)A|L?cc z5ds=dZcG}J>^=#pa}8_!Wcwr3ipW(?8Jo#0(MppkQFR1wy79)=!7uwLU4086b~@uL zevSEVjp7MMfkvt6w_3|&hs^crQ5FWF;`GW_BAHPy_3k&GEjHe32Qid?s{Qe)@J3hn zbjc*hrRn7iE45CLr%MFbRRb^xa|#dtbdCO{-_XCO@&Bi?T=rjt0-0{h0#hwM@Nb-H zbl(3!DPXlRH9* zgZ@?|k-u#GFzLvu29?i~_Yt3dQ(XR^TjDH|YsIl!FnGQ23aI%n8@ z<5*nw|Jca-b9mq`{dsf#m_vWg9FoYNuN7b&{xk}In9e_q!ksg2Bkdj4n~+TJ(nKaw!wM>473+?oYgZt!!Zl z^W2kpu`FojEAu@)OK35?NmWtx9&{`A;(C$_a?)9_21wKR*6sBG%EJLN09n>s*!B~?@nivGklv1`kSKl83Knvv%=Tp zfDbr;4AB)WB7}D0w1?CST3}v9?CmC#&r6W+pNeInWfo5>8zeGPbL)OnOx=-KtKvJY zRKAS`!cwBk&S?q{P-fL7+R;y(0*t7?DZ!8G1r+grll_!CX#0Ti8M{(eXu=M1?+*4#I+0>tB1?cc*$X57GffxpU|C<6B;FS3| z3Q-MjJJ?*vfge>)>aH{Epn*HlwzbBcDWB{i8>`JL~Z|Ha$spW_V+;f{mK5tPw=(WQfvgheGf2%l?07c zn6LXV0EMt5m1aF!^f9x;&S|ZVi zWevB0ziCUEDWp(p+4{I@Qe&$xr@Fsq3NO$|C zDwE;oroU0}{>-2I1LEm_Euw@Ou|VtH(R{*1E-laj@{+f!T6dAEs%)TGq_=iXNzZ#5 z{l^T(&_`bV*h~05EkF=R?=8RBVI7Q3`c$!6u543aF-u&{C;mQ{tMVNJ92c~}igj9W zAZe92x<1HBdE8TI5vb?2A`1I{rsGR<%&H>mng@FaHih_5+udu`+};IoM-M^RD_1*y zMU{8h2b!^UemAz35t(g5@YJjvlI}4nssspSo|-q;=`qn!Fz=NI_1?VKOJ09ncZ{fB zkd!8Ynp&uXBa)Php!bygQhijt$Ub!?&tS;+zbRg!gB#eZqMa+fsy1_ZWcqSlSB24? z!3I15Cu3O-pbNg|GeuaqX?{74!+TVRvLt>}_%ZiyT6|>2s?e$-n$9(-FT;xVq}!|U z*HXGqm#{~couzg!A^GhBRn;LF&~|eG)zZy2CgTSS)l1vW5h8gSe^7`#gF=}Q-h$Ah zME3Xyl{#}~4$bcgJEoJ!Q6bRar&{jRd;#4mDhxB=XV>!fBNs#qvp&CD(-xHXK*XHih$yk-1$#AyL_bQD%Zy09}N7A#yA2$c{NNHd=JmnaR zXFR-$N4_`RL5ca$hhwu8MgY)^THO=QK&JGZ*h6z+&dVJHPolA}CPAv0R-knjGWyzS zT-_yi^JUTogZ%rrkb}Ex9B&SHz&SFFzLo@m`PgW7jtNMTBl2solg!;`)RDG|%ewCU zhKf8T7x9iZF$ssCH19S{gG$X21#>@6*xs{HhrhuWYp(zNn9HLCI-D`yEccuTx0TY7 zUg9tiZtl9hr!SqwY?}K42FdBTw;ko2+^u6a;AFF-P=7vh7tfWeFyZ)a?T)P@T;OQx z`}<3UlucZBLO*!z%Nz+e@?doD6Xx@7T{d`vmzLbF9b9tOk?*8A1k#@r~PejFwdQDz+?sMALDREFl3(sF)qM&x$yt|M~F$C1>#GZ~kc@M+1N~ z3k>jmn5K%;iJVt3eJoocrR!cf_vsbpA;Q)JpaXxsxp|oY=v{LtAOULiX5H-}HDk)D zei6{g#ZqDEuj}(R&b2(*1fTc$kqb93XVnHT?`ckMd%y+Ob|$FitwFS8hV`*Ks?lJJ zN5jrj2bX(3C9Hi_=Pnw-9vEmMwUn-RUku@oIHyYaOXO_vSf*NPwvO~7umnnX82-eM zlz&WLz9&c4TB@{spbDF9*NvP}BAAKGP=hEO*k?nNwg>yDClnu#R&?(5aEgBN@0`CM ze_#1{&JGjH?5mF-druP0b!49n-uI){L*cKdORgx@~Cw|8$( z)@eFM&W_XI3R0Ch+~qgLB_7gs*$mx7Fo_>wm4M~8OF7)Bf`TP%m31X-NvkV;Q!c6U z;U}7Vdez~Ko#)szy{Ch(P1eD)nDb;v~6qn^|Tn zm`8Rr$UmwtLCt{Z$7qR%} z%)dgN7JndN`@%i^Nq1fAiFE0jaCv8XfWtX-ODj07%>D4L<* zDgNlO8NVdq&|PPdTm!b2w@XFI(qDVlAT-~NYn zd+=9#41cX>@prx-_#C|H5$`0PqlM9GXI%(%nuP09j!4f}DK`maccrNB?z%pvuO>%Q0u$DZ7E1N53t-mQ!Da~X8aO8QY zBGr7&uWe1Y9y@~#n#U0TdV7U7slBL2UZOfmX{3I>({G@qg#6RcO7Q8uNh3Jc;RPnY z1>k$Z2>l#&a#@(B<8yJIw2pKqskmnRl=|QY8Syoo=MrwmXbi~|>Q;|OhKZv}B^OVZ z?i7_*KMQKf`fNva?H(tfsMsv88&!lAbC1-me&FB(2+TEDjao70RtvaUir4)%Pj)4Wc(*%znT%NF0e&I67+_wSr#IpjVyW}hD zl_?2Y7HUqWEHmU4HmkZMO~LqQDS}t|#BL$n-<=7gpcC;#<{wWXHgWgR6Mc)#NlD7r zfBAyux|Dewy$w&q%jZ|D?dQ_x)r`ZlZKK-PD+BA^20ji-jWyGstwM%SI01St&sx0U zc_w?7L38lXTB??Gc?b`^!$LdTvQ)o7kKo>Ojr$zSNoo#)uPNjd7~fGnFcL@cWY569 zPqtQ=?ux&rku!Z;syi`3mV>VV)hOGj2Y2fH6m(25S}n6hO}@O1FpVm|YgWxR8wxtBKO4>vd${TGu6 zg@Ll9Lk16_puqP*Lpi~lEL!vHQ4%Y+;ON1C6*Nzm_J;?H$sYHev>>S>hh*WEyNheR z=JR8rRXrd&%*;C37jT0^h)=-sszk+K*@Dmyjn&MbUVf+Zx=?d!b?Ae;P`?nl!(d79 z)%v<|-VATFy`bQeXLz|(thSRsu91?i)8qw%>-if#W5;9!PL-p*chfo<0Gi|Ig>ZEB z@P$akgs1U{xaFRH{jXBtA3r`U=YCknCwVA!DI$tJ(G?P;cO-Y9HdPIzeR81|C9$~D z<`Wu!#+VMRUB>3>9f$1L%Ez-d;n`Qd?{@g>-S62}v@3Rm*)_B42F;;EH7bdMo?}BB z#?&hcJ3mr-0BF7B-JYv&Zd1Jw)s(pzqXqHLbBTPa=aUa_#7l&e*#=QI#AgHv^-&w! zp>4$*-@KCe4cKR$YAc~Pa1X2(y`IlkzgTvqXI_AWH=Nx>v%AHHl=}s#5BV~3*Kwyg zKS?^V&FPijj*yDuUW>C9xvOxdLuMZotxQV*EnF`KwA+HziO$&&h){a{;FLDa2es{( zcG>9R?Ct1_ac>sSojt=lfs<>Vr6$P@L2oH4<#gE4ZiPTEd`qH7XCfhy9<6rXk9(sxB%sLh*pf|NIE`P5& z*qMFSpXR3f{;+{J@-PfH7F@z@J`D)^?zr6(u5rMOo?!aeGVgC`oi}CdX#(9O)ffIE z-B{=WbnX}60SAz0R$mBqsyUQP(8dUln9bK7d9P~p&>U?mK!Q)gzC^Yh#CHZuePy6;|{ zK9=)NOFvwDD0ml-T()%XcE`&PYM)F<)QiF`!=Ml+pVQf~74J6Y)^#AJ=lU{1cs$yn zzRQbC>$)C=a7=0F9uyGxoGi3k(y}@|7BPW~4Riya9iN_9^8mlBu0PCP75&3lP_N{gEu?Ovl!~Rxg9@>p2|V5RRH7$pysP6*N<%6q`#*YM+24Fdb^IR9{)-~@_NX2lQ!`=rFiLTw##p57z=m-fyps;NAWpkap&i()I=i&a^_iK7X_9S05gO*S>hfSRy&|E;5 zlXcML(?7wo-kOk$d=sq`5u{yq{s&Iqn~y`A2fONb8cxk2sMe#k!<4*GxRtmCRDZ&0 zZ>9v0rW%xr0^QcHzqU@|) z%mr9L8oxN+KjdR@BAicHj#@rq%l`Z8fI^5)X_YnnM zR%kGa1m=M}6S3>J#iy^`ZHbc7%Reu@{2O<)qkC6$@JUWo-bmEz5)bUaj;0R{EQC>* zmZEy3cGap(8*<2e605ubS6IS%BS?Bd89`fWI_*JZm=VV``kA(cM*DLr>U@&h0ls?X z8hNG}U^^qXVY7`r+U}KIx-zlar{iTyKUZYIDrrEtiE;_MvGZ?m(nGCv4P_nQ+vI!7 zt-&?GCZJxU%zlM2=IO!~b=kP(q&+)MwFHHP;@-}=`I2H$EV6U%_R$+h#=o2~JFOrp zt0s!iB1QYZg3>}yHm=38zuua87I2N|&Vn@s!7n^i1a^5x5<;Wto4Q;QBjmSu^Y^1I z=igp^H8*HPJ}!GouA1d~Bo2E!^>!P_&aM_F4^ zc!b=_Z9v`?n>O=w8Xtv7icXR}%t&0uRs~`pS(a$?dZYIhiHQ;Tff`vT!)HjZGiAQ zXhe0&4L-V!u^npE{o_G=h|-o6pf;W?CeL8jrQM-Sy<7NAF%wO{l9{vs)#;;wv*u9J zvSbu2G{-dwgT=}Nd@#rxTJbE!ctSre-ET#+lnorz)BBqdoqGsm#RaM|Rs@&v`+V~C zA=t)x!{{%rr3tWjoiLi-1439alywPbP6k=i#B6K$}D@PH_6M5QGcG1UYmTK5} z!}1R0V`HS{=BH<5x1?w}?z@;su3_-a7yWH%j0TKb&NYirt(Phr(p|u$nQ}YBufdKd zb_jweag&sJeo1*7UXV*xX4%3FZbWyp=A&3`Xlzytqb8#{5ef+b`zBu+aEtt!{6tL? zWNTr^6lElWdA+@Z#a_OJGk+XA)(q?hM4c6cw3gj(P`j54^WLkw!WX3GZAoKvXf z)qt-Xby}T;zEMSH(?QoZZ4+F|xc({aE{*&+gBqFmFTEvzPH`3Lf)d*Nv-0wS zSFcmY$M+|0zv}>VdG@p2w(m~Bq-3zaHJmxL*U|%@)xQxx%!As(!Tr=^7$?%*_*|ub zb^7^^4FbUf+EVvU?)aa1>hAtO(VqElog>2LFgKWiy0eq#qr(=H$~XynEmCjk%Tykb zty7CN3RKm*j3|sXD`iZVy4*`Ax-E*=@qpu$(HePX%7G!FOEx8d9vI zrUHI+7oS3HNoCm_0J#P#kT-3MDzI{C2ztMD1LzQ_DQ;q+XiS|XqF_Q?90dp&Aqnc{ zo6wp2I2Iylkd?C~#Z#I30ElI~i`$x)XcqNUALaz=Wajim>`J|bKpv0$IIO)o;X3#@ zW=jfHZ&bs#Rmlv<-y5bj6USV}|n0n6PtSo~LI+`}~DlQbk3+TvVeEjD7HV zHG4DJudu~lbMY6Wqmao-V_;^D{_AH2byKRUm&$afO8cMtgcYN$PA!kt3BDyNCXz&@ q;D+Q5BzGWTK*E580SN;V1|$qf7?3a^VL-xwgaHWy{|N)Y*6<$!pW&qd literal 0 HcmV?d00001 diff --git a/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/template-definitions.png b/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/template-definitions.png new file mode 100644 index 0000000000000000000000000000000000000000..aaf46b353e768a7251ec3847db86e5ec06726bd4 GIT binary patch literal 92998 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≤4W{`vju5an^Kg}+Bl$f-_Yi9Ccr8R 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 F{|7Dn3yuH) literal 0 HcmV?d00001 From 1b3ab2f82d16a49f36a3ecd6739c97c03626212d Mon Sep 17 00:00:00 2001 From: EngincanV Date: Wed, 9 Sep 2020 11:15:18 +0300 Subject: [PATCH 005/242] Update email-last.jpg --- .../email-last.jpg | Bin 102690 -> 114863 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/email-last.jpg b/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/email-last.jpg index dbe974417bae798b37b7f46a5d483fa09dccbab3..4f8c90e3cd16e683ee523e2ce16ceaf299ebd954 100644 GIT binary patch literal 114863 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 YzH&=ohzD%)d6Y&>#E;OhVElg*0Fc5E>Hq)$ literal 102690 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≫OR9& zYu>%4YLaO(vBx09e)AOgDJ^JR7S2i&8LyO^)i)p7Uw6y6nFKOh#s#=Bv5dbN1q`_T9~WNI9-svqJO)I%NX6j!IES<3StDh+Rpf|R#B)=!YeXP7h+Dqb<(*8|@b}c<+NvA;jDLa?##t>Ph z!q~KQIXwj*i_u9N!`h$?EPv^>)n^8eEZGCJ~OAR zXvbe|@Ys3>J-Zjb$TfF!6lK8LT0aos8(v~hc?05U&eQs6|6zqA>0-C=7oV=pnm|Ou znIFGlZyJ*hLX>e9W+D4|v!i*b!`gji_OT}e(oPo!k6VkkRSGL+M{H5%!%DKCw=Y!9Tf@KWY+p$1P;)vQAe=o{v_vB-0ugrh+~i8a(wDHSs#3r+CJ{O&x=6 z&ecqrdye&6%M$*UzCp1M6@EAMARymstV4@-21X@J57d9>Rng4qjV^37`w0!cc2jz^ z@!-B0O8BynQ10nm9|Bk%s_-}okBq_aN!H=-3`%-PI{b)hx91s+?5nL3FL@MKf;)`l zrTxyCcyW1Ntf$$L)IRj(h#>rP*p6otFmp~RRj;jDdsUTm8NWTNHdpUHsZMQ>P*Bg# zYw{;T-m9vScz!DbhLo7+Lx6Q=tt-Dr(cuH3DcvX+4%vt(ejQD-x6DpTN`3moV0*xn z2JmOjDym#Q5Zj5a>J?AC?+8KNk~p{-1=_K2f0`=|xTj|NRu*ngKhHk2n;lECQ+6rs zJINak_Z$j#8_tp*HxR(&pf)O#zTHKp!_2rhnz$%Q%nDLhvKQpyZ!gReNjYP#dOy~F z)1O$lSHjeY`*1dl)Vy)Aw&VQzmXx2B>@T|%p3OGrXBU)CR<2}B1tq6umA)QXFIY93 zou#P>p6@#;L^i(0R8Db{PaFIG%l~w z0mr}v6&^JUEfi)qWk|`vNq%g%%lH-B+h-3`8R5k3<}sq==fHVjfs|P)ljbLBm-05` z(N{OP-TNz?ZrfgeIM~N~Po>UJ(Cq4@HHAB65+|1o~`T9_ti`d2&q<`(tlpr@J zFZ~B;uHOxF$cE!C_J%4Y)B0`!Jb@^OHEyv^taI-GtF0BqruBHasIhXO%vJL(P3Ef+ zuLM9UP^s~$N#Z^d%@1b09cJd!@QsLIu>^?2f+V&DMD&)b0N@F-s8de~md~5xN-~aJ z04eI;zVOFOMw=~NMdy(>gU}vW>4yEaOgC&D_!u?d(leyrh~0JZrZ>I~LF)9OboaTC zF$6l#S}4oO7j;&e*3iq`>5fgQs5yhTvwGv#I=$pD-oLkOKI!Q^*FJp6z##S)BSze5 zMR2QzkQ|9RSG#kjMz3pb7No7M%S_Ss&84zO2Pi}I2)TmR%D zdV6cJb2ihZ5n@Uu>!iEWt9?y~*^p!YcB0b)h$b-*6(kaet;YVu)}&}t1rV!&!H!T8 z)^$}y=C5Dn7{-Pymv|Tc263kIY;!~8tzXZ7sl7J#k>nxq(&btKFbf$GDh(`6A4$7S zE|>r|BwhYi+!-i0lH3&S=Kh{_@(0}W(JQ-+Q?HJM;xGDrJ3m&+Uf=+)Q}H|4u)9|` z6mi_syD|*_cEG~EI}ia=!9$Y3>?jF^Hgu-F9I-Y5pL2V)l^iszb8S~FGOZgf{^Vwg z`Q5m>RI$W&S$lBy$?RS+Fk>fhh^uoBhTeBM*81!zB_z}AL2g*C)jfo?L4-bBCiEzt zdGWF%TJ|L8V7S=OQ2=XJjC^iXYnxd71c7G)HRyv^-2?)R!J?D23&iIFHDjgo6E#U< z&6)Ps<1FilQwBGOx24Vwx71u(x2gUfcdLO=_(h50t$ z?YgRk(_Els44En|5$a$j6=>g6=hCSGI9)$;kET9fYBs#G0%iqxA^lj^Hfm+;5g3>s zo}#fS5Lg!>XPe?#!z?t04_@LCN*y`mZpXTq)m=t+T&*x+T%_{+3jOMwUOoD^zFT%_ zahwr}DYhotO7gXn7cxU3hhVx>oRmYsDkH7J$#LH9$&o1eAkQQFVOvR#4M6 zdoDjfOXDi}t*Gs(^jF4k;W|+!_)QbC%a94+aeHLzbhvS1m!eY{KoI5!s1~Vdp#*jP zGWE3YSxw(g(hKJ1jzS@mUjs3iMgLI|F2c~Sq<5hg>WKm^jU1h(N2uw-5Ph@I2BZgX zA4vWEObOZ8UIY)wP;O8fz5z1EfCPRkRWpYQ*V+pusF~!xZyFv}FKoPT1Pb4L7<>W*aOG~C%4;IUSSWGu93sT+)OcZuqKrET1Znu5;623r`w ziFk~@6ya1pG*lQhvLB+YgZ(?obY<4sQbXbw|75(>V1mDSp&`3SMJDFtT50#;G`Kay zLgHd->G_H|g#3Krq1(yZ5I0R&as|z>j)Ib}BZ;+Ml_k%eBR)abzkT|xc9Sz>&W)KL z$t)VH?I6wGJh5h797*S+n0Bc1P<+ar>G$`6Mf-WJdBk&7IOZzp9>1z3YlT?))uqNxyWiuVl7G zQi5f)H8bT&)QaWDYJT0R*av}%<#w`P3q#z2t#~g+Kig3(`^CL*2}|UJv>o(_EgLZa zu)jq+C{BQPiDZW)_fAm~Wuy9oGcC8?SD``931(5JlZ3;u##bqL>x06n0qtNXIms= z)lMN17y)8g3!J^_E=+HT_Ohs`%muGsrY7+CuZOS~q-f$KQA9T{{{E?1K&KXbi1lX> zJojsdag(z?qkGYQ&5GP-(O+l4vFb9uq*u`oV@5{~P* z4-IP>Su47*q?3Z{YtTkpKDsC9y4@_|c@yBlfDGYDpeq=qe3(fr&I(;klth$OCZcsE zBA54vlx=4gM5OyUU%%85k6T&t*2te&Lmg1Fhrv>k;eKzY(C|L(gFWg%{{P0_dj>W6 zzw5pzib@rvSCu9mkq&~WbOGrdR0M$tksfLk1SB*80RbUO?~xKh4I)jXNevwmdI==d z2qC}o{MXuN=Bzzy_L(zhX3yTU_KUm-F9=Bd zp^P5UfWBy37d77>%n9U1ffu^mo!mVzHrC6Qd{lhp!kndIqAg^}Y;ylv7#V?D4i^0j zwU<#PeOrbKKy;S+uu!TgNQD9H&zyskBjmlu9?!+DuL&I@d!MLV1gr0M`{Z39{axN; zhuoIo+R~(d?GL3LEYPp)4ibp#?i$FamUMq{CYRDebpxKM($OO^MRo+hT6uuB#>pIz zh&Ld(NWczJ>O=eKV^5XT0yC>g#X3wm9BwGVp1ehIwU+Z8(EmE(#=2txz9iA|Yd!|5-d%6~siR@@akoi|)TCYNL#wXq$T z{J7))4;6KoT`OT?_^k|@V>=`x72~tf99YJ%8yn0kSB@NbPUXHf04wnou{cP*=O}=` z?42i0iY8Qa*tOR7Vi`hCkC4iOS^0+3w;JTMK!ReI3KZAG;5q#rzbg4OL++YDM^9$X z;loCQ=|(&t@csb`igB6SKtxky!ZiOx2msuJ>>$ zW2M&)^ffpAoH~icrwc}OON@QXEG z$3)1?dZ;2->w7qohU`NhYzbXrWqjD9cN6!>Q4|J9ApDlvd)u#=EIHoypGA;#klXJ^ zq*h$KUnbo#FsNa9SO-u4>=HQgCB^I;8|RR{@8Vk70i}YRD!-PNQ^L1L@@u3d6DI1m zW|9IS*p!0g!4!-1WaT-ZAH%OP>kG-n+bm(UV;VO%;Y3T4-rV=;pvxxYsrHT*a*-M zZ$M7yTZHy^0h-)oUXp-tM$T6fWz2*C&+-GNJ9ZOBDb4e%?_0Hy>A$a=pTyS($6mVO zbaE!UmF`=-Hq}Imd*pjqaKh0(4T-PDa&Tz3ZzHUv3I@w^MijB*7 z*zIuN3>8WVoo@L&TE5DuG$GUNjBJ@Zs1N8jwhjB!Dnieg%vuTj$%JKGYzG7MQ4+`z+{Ix&wH*>Q zr+46)(g2t5nqygPy{$L#PSZbup7D-FIx@VSEdV&+P+1z&Tlhr)vKI&?Xg=CJtt#7+ zbwBl*KOg%WI9a2<|NRn{&G7Dz?H>w6{xYl!VRvY+2YrVyLqZs$CWIz5v0fyZuB)eo zPtPmFYqez-5_Na;l&8nsZ%T)RgNUzm$H+zmM7N?{bfNX}y-mM5Emd#pF4s&TmX!%> zW0hQ2Gz>s&A}Oev5&eUS70_w>5ppp33aPlam;c5{t9CILkI_UW4&5MEjk&A$4kK98 z!E4nW=14f{XcqZ~g--YX$W*K-fhcu3@n_nN??^dT;U*O>AsbwieBXmF$)~1^(z~o& zmzdDt-e?d2)^HvSejWTb<~^_~tqP0?jd-3q`%R47YJoXR>f?tNa|ZNG^DDI56%X&0 zE_0B9^(e~T_#Z02qcQZC`fUS?@s)O98hCtE1#WY0XiI)b4C-bgX-C|FFm(W0bGRoU zRW89VZlWWGYtOUU(ssSnPP}^;99+~fLC(sQ5vLp9i6}r5E~7W0elk|9I-SQU3JF_f zuYpTtT@_}O?f)YCOXU*mfC*;q6m~6nIX0Fe5MJ~!-HZs1B>XraB^+upslV6kOt6puuUrA7ddt*2VaGVlZiiydSyW}|N z_|>#R=()u212S+vxivw;2JjBv(=Fc0LvkUQA#TwaL3T!s#&O!uxF}ZZSJ(zTXS}Lw2=Jfm9H=^v$xLT%@Xd_18NW-g zs_>Ajwihnz56N8>RQI#yzSgI$wrB#Ex7In!QXLvZf<(^E5^~WbitfCH_0Xwxls_~I zT90_|FGFnyed(cba|C(qD3^cI>P&f`Uc+cQA(j2%kc+geeUQp+^oQzTZDB6af^#0{ zY*j&#S(B2#qNmZUrnVWZrrK2h_ro;p+$G#dG56n-6-_T_vzq@8Lz@130p$Op&o6?U zk775i%Bv8kore{cl7+zgy#>7a|CWku`hZh|j-U}oIC)I@^+z%>@m*u~W=e6Yn}=&k zVaoK1o15fLZ`vXs726=GbBXCKIXD0(k?8kG$(IzlFf(i6zUO`G%)lN^k`qjM@X|Y> z@%0;hUh8kBmV*)p&Zf3@y(#XCwLw1znQUq&1POB(OrTjDz8#4K%|BEw6bP79i_4{E z985@>*kF&iHu75CrIb`oCzX9%0Afg=Sj=7@h!F`)3}l~?eHroK(t0YSYDTO%En_GB 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 Date: Mon, 14 Sep 2020 18:18:36 +0800 Subject: [PATCH 006/242] Add LinkLoginExtensionGrantValidator. --- .../AbpIdentityServerDomainModule.cs | 3 + .../LinkLoginExtensionGrantValidator.cs | 179 ++++++++++++++++++ 2 files changed, 182 insertions(+) create mode 100644 modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AspNetIdentity/LinkLoginExtensionGrantValidator.cs diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AbpIdentityServerDomainModule.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AbpIdentityServerDomainModule.cs index 9e36576e56..69a9cfabb9 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AbpIdentityServerDomainModule.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AbpIdentityServerDomainModule.cs @@ -9,6 +9,7 @@ using Volo.Abp.Caching; using Volo.Abp.Domain.Entities.Events.Distributed; using Volo.Abp.Identity; using Volo.Abp.IdentityServer.ApiResources; +using Volo.Abp.IdentityServer.AspNetIdentity; using Volo.Abp.IdentityServer.Clients; using Volo.Abp.IdentityServer.Devices; using Volo.Abp.IdentityServer.IdentityResources; @@ -94,6 +95,8 @@ namespace Volo.Abp.IdentityServer identityServerBuilder.AddInMemoryApiResources(configuration.GetSection("IdentityServer:ApiResources")); identityServerBuilder.AddInMemoryIdentityResources(configuration.GetSection("IdentityServer:IdentityResources")); } + + identityServerBuilder.AddExtensionGrantValidator(); } public override void PostConfigureServices(ServiceConfigurationContext context) diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AspNetIdentity/LinkLoginExtensionGrantValidator.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AspNetIdentity/LinkLoginExtensionGrantValidator.cs new file mode 100644 index 0000000000..3f4ff7dcf2 --- /dev/null +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AspNetIdentity/LinkLoginExtensionGrantValidator.cs @@ -0,0 +1,179 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Security.Claims; +using System.Threading.Tasks; +using IdentityServer4.Validation; +using Microsoft.Extensions.Localization; +using Microsoft.Extensions.Logging; +using Volo.Abp.Identity; +using Volo.Abp.IdentityServer.Localization; +using Volo.Abp.MultiTenancy; +using Volo.Abp.Security.Claims; +using Volo.Abp.Users; +using IdentityUser = Volo.Abp.Identity.IdentityUser; + +namespace Volo.Abp.IdentityServer.AspNetIdentity +{ + public class LinkLoginExtensionGrantValidator : IExtensionGrantValidator + { + public const string ExtensionGrantType = "LinkUserLogin"; + + public string GrantType => ExtensionGrantType; + + protected ITokenValidator TokenValidator { get; } + protected IdentityLinkUserManager IdentityLinkUserManager { get; } + protected ICurrentTenant CurrentTenant { get; } + protected ICurrentUser CurrentUser { get; } + protected ICurrentPrincipalAccessor CurrentPrincipalAccessor { get; } + protected IdentityUserManager UserManager { get; } + protected IdentitySecurityLogManager IdentitySecurityLogManager { get; } + protected ILogger Logger { get; } + protected IStringLocalizer Localizer { get; } + + public LinkLoginExtensionGrantValidator( + ITokenValidator tokenValidator, + IdentityLinkUserManager identityLinkUserManager, + ICurrentTenant currentTenant, + ICurrentUser currentUser, + IdentityUserManager userManager, + ICurrentPrincipalAccessor currentPrincipalAccessor, + IdentitySecurityLogManager identitySecurityLogManager, + ILogger logger, + IStringLocalizer localizer) + { + TokenValidator = tokenValidator; + IdentityLinkUserManager = identityLinkUserManager; + CurrentTenant = currentTenant; + CurrentUser = currentUser; + UserManager = userManager; + CurrentPrincipalAccessor = currentPrincipalAccessor; + IdentitySecurityLogManager = identitySecurityLogManager; + Logger = logger; + Localizer = localizer; + } + + public virtual async Task ValidateAsync(ExtensionGrantValidationContext context) + { + var accessToken = context.Request.Raw["access_token"]; + if (accessToken.IsNullOrWhiteSpace()) + { + context.Result = new GrantValidationResult + { + IsError = true, + Error = "invalid_access_token" + }; + return; + } + + var result = await TokenValidator.ValidateAccessTokenAsync(accessToken); + if (result.IsError) + { + context.Result = new GrantValidationResult + { + IsError = true, + Error = result.Error, + ErrorDescription = result.ErrorDescription + }; + return; + } + + using (CurrentPrincipalAccessor.Change(result.Claims)) + { + var linkUserId = Guid.Empty;; + if (!StringToGuid(context.Request.Raw["LinkUserId"], ref linkUserId)) + { + context.Result = new GrantValidationResult + { + IsError = true, + Error = "invalid_link_user_id" + }; + return; + } + + Guid? linkTenantId = null; + if (!context.Request.Raw["LinkTenantId"].IsNullOrWhiteSpace()) + { + if (!StringToGuid(context.Request.Raw["LinkTenantId"], ref linkTenantId)) + { + context.Result = new GrantValidationResult + { + IsError = true, + Error = "invalid_link_tenant_id" + }; + return; + } + } + + var isLinked = await IdentityLinkUserManager.IsLinkedAsync( + new IdentityLinkUserInfo(CurrentUser.GetId(), CurrentTenant.Id), + new IdentityLinkUserInfo(linkUserId, linkTenantId)); + + if (isLinked) + { + using (CurrentTenant.Change(linkTenantId)) + { + var user = await UserManager.GetByIdAsync(linkUserId); + var sub = await UserManager.GetUserIdAsync(user); + + var additionalClaims = new List(); + await AddCustomClaimsAsync(additionalClaims, user, context); + + context.Result = new GrantValidationResult( + sub, + GrantType, + additionalClaims.ToArray() + ); + } + } + else + { + context.Result = new GrantValidationResult + { + IsError = true, + //TODO: Localizer error message. + Error = "The_Target_User_Is_Not_Linked_ToYou" + }; + } + } + } + + protected virtual Task AddCustomClaimsAsync(List customClaims, IdentityUser user, ExtensionGrantValidationContext context) + { + if (user.TenantId.HasValue) + { + customClaims.Add(new Claim(AbpClaimTypes.TenantId, user.TenantId?.ToString())); + } + + return Task.CompletedTask; + } + + protected virtual bool StringToGuid(string str, ref Guid guid) + { + if (str.IsNullOrWhiteSpace()) + { + return false; + } + + if (Guid.TryParse(str, out var g)) + { + guid = g; + return true; + } + + return false; + } + + protected virtual bool StringToGuid(string str, ref Guid? guid) + { + var g = Guid.Empty; + if (StringToGuid(str, ref g)) + { + guid = g; + return true; + } + + return false; + } + } +} From f8b9595670222bf6a33115b538786350f1064b1e Mon Sep 17 00:00:00 2001 From: maliming <6908465+maliming@users.noreply.github.com> Date: Mon, 14 Sep 2020 20:08:27 +0800 Subject: [PATCH 007/242] Revert changes of the impersonator. --- .../Volo/Abp/MultiTenancy/CurrentTenant.cs | 8 +-- .../Volo/Abp/MultiTenancy/ICurrentTenant.cs | 3 - .../Principal/AbpClaimsIdentityExtensions.cs | 59 ------------------- .../Volo/Abp/Security/Claims/AbpClaimTypes.cs | 10 ---- .../Volo/Abp/Users/CurrentUser.cs | 2 - .../Volo/Abp/Users/ICurrentUser.cs | 3 - .../Identity/AbpUserClaimsPrincipalFactory.cs | 13 ---- .../CurrentPrincipalAccessorExtensions.cs | 25 -------- 8 files changed, 1 insertion(+), 122 deletions(-) delete mode 100644 modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/CurrentPrincipalAccessorExtensions.cs diff --git a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/CurrentTenant.cs b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/CurrentTenant.cs index 442177ef6c..cd5fb5c3b3 100644 --- a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/CurrentTenant.cs +++ b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/CurrentTenant.cs @@ -1,7 +1,5 @@ using System; -using System.Security.Principal; using Volo.Abp.DependencyInjection; -using Volo.Abp.Security.Claims; namespace Volo.Abp.MultiTenancy { @@ -11,17 +9,13 @@ namespace Volo.Abp.MultiTenancy public virtual Guid? Id => _currentTenantAccessor.Current?.TenantId; - public virtual Guid? ImpersonatorId => _principalAccessor.Principal?.FindTenantImpersonatorId(); - public string Name => _currentTenantAccessor.Current?.Name; private readonly ICurrentTenantAccessor _currentTenantAccessor; - private readonly ICurrentPrincipalAccessor _principalAccessor; - public CurrentTenant(ICurrentTenantAccessor currentTenantAccessor, ICurrentPrincipalAccessor principalAccessor) + public CurrentTenant(ICurrentTenantAccessor currentTenantAccessor) { _currentTenantAccessor = currentTenantAccessor; - _principalAccessor = principalAccessor; } public IDisposable Change(Guid? id, string name = null) diff --git a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ICurrentTenant.cs b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ICurrentTenant.cs index 340c31ee6a..a9c608e74c 100644 --- a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ICurrentTenant.cs +++ b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ICurrentTenant.cs @@ -10,9 +10,6 @@ namespace Volo.Abp.MultiTenancy [CanBeNull] Guid? Id { get; } - [CanBeNull] - Guid? ImpersonatorId { get; } - [CanBeNull] string Name { get; } diff --git a/framework/src/Volo.Abp.Security/System/Security/Principal/AbpClaimsIdentityExtensions.cs b/framework/src/Volo.Abp.Security/System/Security/Principal/AbpClaimsIdentityExtensions.cs index 7f29a52eae..f4e4bba1a0 100644 --- a/framework/src/Volo.Abp.Security/System/Security/Principal/AbpClaimsIdentityExtensions.cs +++ b/framework/src/Volo.Abp.Security/System/Security/Principal/AbpClaimsIdentityExtensions.cs @@ -39,37 +39,6 @@ namespace System.Security.Principal return Guid.Parse(userIdOrNull.Value); } - public static Guid? FindUserImpersonatorId([NotNull] this ClaimsPrincipal principal) - { - Check.NotNull(principal, nameof(principal)); - - var userImpersonatorIdOrNull = principal.Claims?.FirstOrDefault(c => c.Type == AbpClaimTypes.UserImpersonatorId); - if (userImpersonatorIdOrNull == null || userImpersonatorIdOrNull.Value.IsNullOrWhiteSpace()) - { - return null; - } - if (Guid.TryParse(userImpersonatorIdOrNull.Value, out Guid result)) - { - return result; - } - return null; - } - - public static Guid? FindUserImpersonatorId([NotNull] this IIdentity identity) - { - Check.NotNull(identity, nameof(identity)); - - var claimsIdentity = identity as ClaimsIdentity; - - var userImpersonatorIdOrNull = claimsIdentity?.Claims?.FirstOrDefault(c => c.Type == AbpClaimTypes.UserImpersonatorId); - if (userImpersonatorIdOrNull == null || userImpersonatorIdOrNull.Value.IsNullOrWhiteSpace()) - { - return null; - } - - return Guid.Parse(userImpersonatorIdOrNull.Value); - } - public static Guid? FindTenantId([NotNull] this ClaimsPrincipal principal) { Check.NotNull(principal, nameof(principal)); @@ -98,34 +67,6 @@ namespace System.Security.Principal return Guid.Parse(tenantIdOrNull.Value); } - public static Guid? FindTenantImpersonatorId([NotNull] this ClaimsPrincipal principal) - { - Check.NotNull(principal, nameof(principal)); - - var tenantImpersonatorIdOrNull = principal.Claims?.FirstOrDefault(c => c.Type == AbpClaimTypes.TenantImpersonatorId); - if (tenantImpersonatorIdOrNull == null || tenantImpersonatorIdOrNull.Value.IsNullOrWhiteSpace()) - { - return null; - } - - return Guid.Parse(tenantImpersonatorIdOrNull.Value); - } - - public static Guid? FindTenantImpersonatorId([NotNull] this IIdentity identity) - { - Check.NotNull(identity, nameof(identity)); - - var claimsIdentity = identity as ClaimsIdentity; - - var tenantImpersonatorIdOrNull = claimsIdentity?.Claims?.FirstOrDefault(c => c.Type == AbpClaimTypes.TenantImpersonatorId); - if (tenantImpersonatorIdOrNull == null || tenantImpersonatorIdOrNull.Value.IsNullOrWhiteSpace()) - { - return null; - } - - return Guid.Parse(tenantImpersonatorIdOrNull.Value); - } - public static string FindClientId([NotNull] this ClaimsPrincipal principal) { Check.NotNull(principal, nameof(principal)); diff --git a/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/AbpClaimTypes.cs b/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/AbpClaimTypes.cs index 0c3d62cde4..271d5d3d94 100644 --- a/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/AbpClaimTypes.cs +++ b/framework/src/Volo.Abp.Security/Volo/Abp/Security/Claims/AbpClaimTypes.cs @@ -28,11 +28,6 @@ namespace Volo.Abp.Security.Claims ///

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 literal 0 HcmV?d00001 diff --git a/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/inline-content.png b/docs/en/Community-Articles/2020-09-09-Replacing-Email-Template-and-Sending-Emails/inline-content.png new file mode 100644 index 0000000000000000000000000000000000000000..cbbf188f37e3212178057f6f17517dcbf9c267a1 GIT binary patch literal 66858 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

public static string UserId { get; set; } = ClaimTypes.NameIdentifier; - /// - /// Default: "user_impersonator_id". - /// - public static string UserImpersonatorId { get; set; } = "user_impersonator_id"; - /// /// Default: /// @@ -63,11 +58,6 @@ namespace Volo.Abp.Security.Claims ///
public static string TenantId { get; set; } = "tenantid"; - /// - /// Default: "tenant_impersonator_id". - /// - public static string TenantImpersonatorId { get; set; } = "tenant_impersonator_id"; - /// /// Default: "editionid". /// diff --git a/framework/src/Volo.Abp.Security/Volo/Abp/Users/CurrentUser.cs b/framework/src/Volo.Abp.Security/Volo/Abp/Users/CurrentUser.cs index 1f5ebc4b48..e769b9ec11 100644 --- a/framework/src/Volo.Abp.Security/Volo/Abp/Users/CurrentUser.cs +++ b/framework/src/Volo.Abp.Security/Volo/Abp/Users/CurrentUser.cs @@ -15,8 +15,6 @@ namespace Volo.Abp.Users public virtual Guid? Id => _principalAccessor.Principal?.FindUserId(); - public virtual Guid? ImpersonatorId => _principalAccessor.Principal?.FindUserImpersonatorId(); - public virtual string UserName => this.FindClaimValue(AbpClaimTypes.UserName); public virtual string Name => this.FindClaimValue(AbpClaimTypes.Name); diff --git a/framework/src/Volo.Abp.Security/Volo/Abp/Users/ICurrentUser.cs b/framework/src/Volo.Abp.Security/Volo/Abp/Users/ICurrentUser.cs index 8f68b34969..528f176c94 100644 --- a/framework/src/Volo.Abp.Security/Volo/Abp/Users/ICurrentUser.cs +++ b/framework/src/Volo.Abp.Security/Volo/Abp/Users/ICurrentUser.cs @@ -11,9 +11,6 @@ namespace Volo.Abp.Users [CanBeNull] Guid? Id { get; } - [CanBeNull] - Guid? ImpersonatorId { get; } - [CanBeNull] string UserName { get; } diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpUserClaimsPrincipalFactory.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpUserClaimsPrincipalFactory.cs index f3dc57ecf3..40847b7ba8 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpUserClaimsPrincipalFactory.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpUserClaimsPrincipalFactory.cs @@ -64,19 +64,6 @@ namespace Volo.Abp.Identity } identity.AddIfNotContains(new Claim(AbpClaimTypes.EmailVerified, user.EmailConfirmed.ToString())); - if (CurrentUser.ImpersonatorId != user.Id || CurrentTenant.ImpersonatorId != user.TenantId) - { - if (CurrentUser.ImpersonatorId.HasValue) - { - identity.AddClaim(new Claim(AbpClaimTypes.UserImpersonatorId, CurrentUser.ImpersonatorId.ToString())); - } - - if (CurrentTenant.ImpersonatorId.HasValue) - { - identity.AddClaim(new Claim(AbpClaimTypes.TenantImpersonatorId, CurrentTenant.ImpersonatorId.ToString())); - } - } - return principal; } } diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/CurrentPrincipalAccessorExtensions.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/CurrentPrincipalAccessorExtensions.cs deleted file mode 100644 index ecff91342b..0000000000 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/CurrentPrincipalAccessorExtensions.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Security.Claims; -using Volo.Abp.Security.Claims; - -namespace Volo.Abp.Identity -{ - public static class CurrentPrincipalAccessorExtensions - { - public static IDisposable ChangeImpersonatorId(this ICurrentPrincipalAccessor currentPrincipalAccessor, Guid? tenantImpersonatorId, Guid? userImpersonatorId) - { - var impersonatorClaims = new List(); - if (tenantImpersonatorId.HasValue) - { - impersonatorClaims.Add(new Claim(AbpClaimTypes.TenantImpersonatorId, tenantImpersonatorId.ToString())); - } - if (userImpersonatorId.HasValue) - { - impersonatorClaims.Add(new Claim(AbpClaimTypes.UserImpersonatorId, userImpersonatorId.ToString())); - } - - return currentPrincipalAccessor.Change(impersonatorClaims); - } - } -} From 65f3554b4ec5340835fd0278251e8bb5798a2a9c Mon Sep 17 00:00:00 2001 From: maliming <6908465+maliming@users.noreply.github.com> Date: Mon, 14 Sep 2020 20:45:19 +0800 Subject: [PATCH 008/242] Enhance LinkLoginExtensionGrantValidator. --- .../Identity/AbpUserClaimsPrincipalFactory.cs | 11 +---- .../Localization/Resources/en.json | 7 ++-- .../Localization/Resources/tr.json | 5 ++- .../Localization/Resources/zh-Hans.json | 5 ++- .../LinkLoginExtensionGrantValidator.cs | 40 +++---------------- 5 files changed, 17 insertions(+), 51 deletions(-) diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpUserClaimsPrincipalFactory.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpUserClaimsPrincipalFactory.cs index 40847b7ba8..9946ac5b37 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpUserClaimsPrincipalFactory.cs +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpUserClaimsPrincipalFactory.cs @@ -5,31 +5,22 @@ using System.Threading.Tasks; using Microsoft.AspNetCore.Identity; using Microsoft.Extensions.Options; using Volo.Abp.DependencyInjection; -using Volo.Abp.MultiTenancy; using Volo.Abp.Security.Claims; using Volo.Abp.Uow; -using Volo.Abp.Users; namespace Volo.Abp.Identity { public class AbpUserClaimsPrincipalFactory : UserClaimsPrincipalFactory, ITransientDependency { - protected ICurrentUser CurrentUser { get; } - protected ICurrentTenant CurrentTenant { get; } - public AbpUserClaimsPrincipalFactory( UserManager userManager, RoleManager roleManager, - IOptions options, - ICurrentUser currentUser, - ICurrentTenant currentTenant) + IOptions options) : base( userManager, roleManager, options) { - CurrentUser = currentUser; - CurrentTenant = currentTenant; } [UnitOfWork] diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/en.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/en.json index f974297b06..f582705ce4 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/en.json +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/en.json @@ -1,4 +1,4 @@ -{ +{ "culture": "en", "texts": { "Volo.IdentityServer:DuplicateIdentityResourceName": "Identity Resource name already exist: {Name}", @@ -7,6 +7,7 @@ "UserLockedOut": "The user account has been locked out due to invalid login attempts. Please wait a while and try again.", "InvalidUserNameOrPassword": "Invalid username or password!", "LoginIsNotAllowed": "You are not allowed to login! You need to confirm your email/phone number.", - "InvalidUsername": "Invalid username or password!" + "InvalidUsername": "Invalid username or password!", + "TheTargetUserIsNotLinkedToYou": "The target user is not linked to you!" } -} \ No newline at end of file +} diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/tr.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/tr.json index 60f7a75a77..8a90e54172 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/tr.json +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/tr.json @@ -7,6 +7,7 @@ "UserLockedOut": "Kullanıcı hesabı hatalı giriş denemeleri nedeniyle kilitlenmiştir. Lütfen bir süre bekleyip tekrar deneyin.", "InvalidUserNameOrPassword": "Kullanıcı adı ya da şifre geçersiz!", "LoginIsNotAllowed": "Giriş yapamazsınız! E-posta adresinizi ya da telefon numaranızı doğrulamanız gerekiyor.", - "InvalidUsername": "Kullanıcı adı ya da şifre geçersiz!" + "InvalidUsername": "Kullanıcı adı ya da şifre geçersiz!", + "TheTargetUserIsNotLinkedToYou": "Hedef kullanıcı sizinle bağlantılı değil!" } -} \ No newline at end of file +} diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/zh-Hans.json b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/zh-Hans.json index ac175e574d..ebe694ec7c 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/zh-Hans.json +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo/Abp/IdentityServer/Localization/Resources/zh-Hans.json @@ -7,6 +7,7 @@ "UserLockedOut": "登录失败,用户账户已被锁定.请稍后再试.", "InvalidUserNameOrPassword": "用户名或密码错误!", "LoginIsNotAllowed": "无法登录!你需要验证邮箱地址/手机号.", - "InvalidUsername": "用户名或密码错误!" + "InvalidUsername": "用户名或密码错误!", + "TheTargetUserIsNotLinkedToYou": "目标用户未和你有关联!" } -} \ No newline at end of file +} diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AspNetIdentity/LinkLoginExtensionGrantValidator.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AspNetIdentity/LinkLoginExtensionGrantValidator.cs index 3f4ff7dcf2..cc74afa175 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AspNetIdentity/LinkLoginExtensionGrantValidator.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AspNetIdentity/LinkLoginExtensionGrantValidator.cs @@ -17,7 +17,7 @@ namespace Volo.Abp.IdentityServer.AspNetIdentity { public class LinkLoginExtensionGrantValidator : IExtensionGrantValidator { - public const string ExtensionGrantType = "LinkUserLogin"; + public const string ExtensionGrantType = "LinkLogin"; public string GrantType => ExtensionGrantType; @@ -80,8 +80,7 @@ namespace Volo.Abp.IdentityServer.AspNetIdentity using (CurrentPrincipalAccessor.Change(result.Claims)) { - var linkUserId = Guid.Empty;; - if (!StringToGuid(context.Request.Raw["LinkUserId"], ref linkUserId)) + if (!Guid.TryParse(context.Request.Raw["LinkUserId"], out var linkUserId)) { context.Result = new GrantValidationResult { @@ -94,7 +93,7 @@ namespace Volo.Abp.IdentityServer.AspNetIdentity Guid? linkTenantId = null; if (!context.Request.Raw["LinkTenantId"].IsNullOrWhiteSpace()) { - if (!StringToGuid(context.Request.Raw["LinkTenantId"], ref linkTenantId)) + if (!Guid.TryParse(context.Request.Raw["LinkUserId"], out var parsedGuid)) { context.Result = new GrantValidationResult { @@ -103,6 +102,8 @@ namespace Volo.Abp.IdentityServer.AspNetIdentity }; return; } + + linkTenantId = parsedGuid; } var isLinked = await IdentityLinkUserManager.IsLinkedAsync( @@ -131,8 +132,7 @@ namespace Volo.Abp.IdentityServer.AspNetIdentity context.Result = new GrantValidationResult { IsError = true, - //TODO: Localizer error message. - Error = "The_Target_User_Is_Not_Linked_ToYou" + Error = Localizer["TheTargetUserIsNotLinkedToYou"] }; } } @@ -147,33 +147,5 @@ namespace Volo.Abp.IdentityServer.AspNetIdentity return Task.CompletedTask; } - - protected virtual bool StringToGuid(string str, ref Guid guid) - { - if (str.IsNullOrWhiteSpace()) - { - return false; - } - - if (Guid.TryParse(str, out var g)) - { - guid = g; - return true; - } - - return false; - } - - protected virtual bool StringToGuid(string str, ref Guid? guid) - { - var g = Guid.Empty; - if (StringToGuid(str, ref g)) - { - guid = g; - return true; - } - - return false; - } } } From 0f5ed2738599e2b8872cfdea25dd6ffb63c49809 Mon Sep 17 00:00:00 2001 From: maliming <6908465+maliming@users.noreply.github.com> Date: Mon, 14 Sep 2020 20:51:15 +0800 Subject: [PATCH 009/242] Fix typo. --- .../AspNetIdentity/LinkLoginExtensionGrantValidator.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AspNetIdentity/LinkLoginExtensionGrantValidator.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AspNetIdentity/LinkLoginExtensionGrantValidator.cs index cc74afa175..7c719d627e 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AspNetIdentity/LinkLoginExtensionGrantValidator.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo/Abp/IdentityServer/AspNetIdentity/LinkLoginExtensionGrantValidator.cs @@ -93,7 +93,7 @@ namespace Volo.Abp.IdentityServer.AspNetIdentity Guid? linkTenantId = null; if (!context.Request.Raw["LinkTenantId"].IsNullOrWhiteSpace()) { - if (!Guid.TryParse(context.Request.Raw["LinkUserId"], out var parsedGuid)) + if (!Guid.TryParse(context.Request.Raw["LinkTenantId"], out var parsedGuid)) { context.Result = new GrantValidationResult { From 540dedb35e344b36b9352b7e5acb09992e4e0c38 Mon Sep 17 00:00:00 2001 From: maliming <6908465+maliming@users.noreply.github.com> Date: Fri, 25 Sep 2020 16:37:20 +0800 Subject: [PATCH 010/242] Introduce ITenantConfigurationProvider. --- .../MultiTenancy/MultiTenancyMiddleware.cs | 48 ++------------- .../ITenantConfigurationProvider.cs | 9 +++ .../TenantConfigurationProvider.cs | 58 +++++++++++++++++++ 3 files changed, 73 insertions(+), 42 deletions(-) create mode 100644 framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ITenantConfigurationProvider.cs create mode 100644 framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantConfigurationProvider.cs diff --git a/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/MultiTenancyMiddleware.cs b/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/MultiTenancyMiddleware.cs index 2c82095dac..e0a5cfb498 100644 --- a/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/MultiTenancyMiddleware.cs +++ b/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/MultiTenancyMiddleware.cs @@ -1,5 +1,4 @@ -using System; -using System.Threading.Tasks; +using System.Threading.Tasks; using Microsoft.AspNetCore.Http; using Volo.Abp.DependencyInjection; using Volo.Abp.MultiTenancy; @@ -8,59 +7,24 @@ namespace Volo.Abp.AspNetCore.MultiTenancy { public class MultiTenancyMiddleware : IMiddleware, ITransientDependency { - private readonly ITenantResolver _tenantResolver; - private readonly ITenantStore _tenantStore; + private readonly ITenantConfigurationProvider _tenantConfigurationProvider; private readonly ICurrentTenant _currentTenant; - private readonly ITenantResolveResultAccessor _tenantResolveResultAccessor; public MultiTenancyMiddleware( - ITenantResolver tenantResolver, - ITenantStore tenantStore, - ICurrentTenant currentTenant, - ITenantResolveResultAccessor tenantResolveResultAccessor) + ITenantConfigurationProvider tenantConfigurationProvider, + ICurrentTenant currentTenant) { - _tenantResolver = tenantResolver; - _tenantStore = tenantStore; + _tenantConfigurationProvider = tenantConfigurationProvider; _currentTenant = currentTenant; - _tenantResolveResultAccessor = tenantResolveResultAccessor; } public async Task InvokeAsync(HttpContext context, RequestDelegate next) { - var resolveResult = _tenantResolver.ResolveTenantIdOrName(); - _tenantResolveResultAccessor.Result = resolveResult; - - TenantConfiguration tenant = null; - if (resolveResult.TenantIdOrName != null) - { - tenant = await FindTenantAsync(resolveResult.TenantIdOrName); - - if (tenant == null) - { - throw new BusinessException( - code: "Volo.AbpIo.MultiTenancy:010001", - message: "Tenant not found!", - details: "There is no tenant with the tenant id or name: " + resolveResult.TenantIdOrName - ); - } - } - + var tenant = await _tenantConfigurationProvider.ResolverAndGet(); using (_currentTenant.Change(tenant?.Id, tenant?.Name)) { await next(context); } } - - private async Task FindTenantAsync(string tenantIdOrName) - { - if (Guid.TryParse(tenantIdOrName, out var parsedTenantId)) - { - return await _tenantStore.FindAsync(parsedTenantId); - } - else - { - return await _tenantStore.FindAsync(tenantIdOrName); - } - } } } diff --git a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ITenantConfigurationProvider.cs b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ITenantConfigurationProvider.cs new file mode 100644 index 0000000000..6d573bac36 --- /dev/null +++ b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ITenantConfigurationProvider.cs @@ -0,0 +1,9 @@ +using System.Threading.Tasks; + +namespace Volo.Abp.MultiTenancy +{ + public interface ITenantConfigurationProvider + { + Task ResolverAndGet(); + } +} diff --git a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantConfigurationProvider.cs b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantConfigurationProvider.cs new file mode 100644 index 0000000000..c07ec3931d --- /dev/null +++ b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantConfigurationProvider.cs @@ -0,0 +1,58 @@ +using System; +using System.Threading.Tasks; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.MultiTenancy +{ + public class TenantConfigurationProvider : ITenantConfigurationProvider, ITransientDependency + { + protected virtual ITenantResolver TenantResolver { get; } + protected virtual ITenantStore TenantStore { get; } + protected virtual ITenantResolveResultAccessor TenantResolveResultAccessor { get; } + + public TenantConfigurationProvider( + ITenantResolver tenantResolver, + ITenantStore tenantStore, + ITenantResolveResultAccessor tenantResolveResultAccessor) + { + TenantResolver = tenantResolver; + TenantStore = tenantStore; + TenantResolveResultAccessor = tenantResolveResultAccessor; + } + + public virtual async Task ResolverAndGet() + { + var resolveResult = TenantResolver.ResolveTenantIdOrName(); + TenantResolveResultAccessor.Result = resolveResult; + + TenantConfiguration tenant = null; + if (resolveResult.TenantIdOrName != null) + { + tenant = await FindTenantAsync(resolveResult.TenantIdOrName); + + if (tenant == null) + { + throw new BusinessException( + code: "Volo.AbpIo.MultiTenancy:010001", + message: "Tenant not found!", + details: "There is no tenant with the tenant id or name: " + resolveResult.TenantIdOrName + ); + } + } + + return tenant; + } + + protected virtual async Task FindTenantAsync(string tenantIdOrName) + { + if (Guid.TryParse(tenantIdOrName, out var parsedTenantId)) + { + return await TenantStore.FindAsync(parsedTenantId); + } + else + { + return await TenantStore.FindAsync(tenantIdOrName); + } + } + } +} From 6a7a833c68adc8c3684cfff9493cb8ed05478df5 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Tue, 29 Sep 2020 18:50:47 +0800 Subject: [PATCH 011/242] Rebus Integration for Distributed Event Bus --- framework/Volo.Abp.sln | 7 + .../Volo.Abp.EventBus.Rebus/FodyWeavers.xml | 3 + .../Volo.Abp.EventBus.Rebus/FodyWeavers.xsd | 30 +++ .../Volo.Abp.EventBus.Rebus.csproj | 26 +++ .../EventBus/Rebus/AbpEventBusRebusModule.cs | 43 +++++ .../EventBus/Rebus/AbpEventBusRebusOptions.cs | 50 +++++ .../Rebus/RebusDistributedEventBus.cs | 176 ++++++++++++++++++ .../RebusDistributedEventHandlerAdapter.cs | 20 ++ nupkg/common.ps1 | 1 + 9 files changed, 356 insertions(+) create mode 100644 framework/src/Volo.Abp.EventBus.Rebus/FodyWeavers.xml create mode 100644 framework/src/Volo.Abp.EventBus.Rebus/FodyWeavers.xsd create mode 100644 framework/src/Volo.Abp.EventBus.Rebus/Volo.Abp.EventBus.Rebus.csproj create mode 100644 framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/AbpEventBusRebusModule.cs create mode 100644 framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/AbpEventBusRebusOptions.cs create mode 100644 framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/RebusDistributedEventBus.cs create mode 100644 framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/RebusDistributedEventHandlerAdapter.cs diff --git a/framework/Volo.Abp.sln b/framework/Volo.Abp.sln index 503b42c7e1..ef7a66ee00 100644 --- a/framework/Volo.Abp.sln +++ b/framework/Volo.Abp.sln @@ -347,6 +347,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Autofac.WebAssembl EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.AspNetCore.Authentication.OpenIdConnect", "src\Volo.Abp.AspNetCore.Authentication.OpenIdConnect\Volo.Abp.AspNetCore.Authentication.OpenIdConnect.csproj", "{DEFE3DB2-EA4F-4F90-87FC-B25D64427BC5}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.EventBus.Rebus", "src\Volo.Abp.EventBus.Rebus\Volo.Abp.EventBus.Rebus.csproj", "{F689967F-1EF1-4D75-8BA4-2F2F3506B1F3}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -1033,6 +1035,10 @@ Global {DEFE3DB2-EA4F-4F90-87FC-B25D64427BC5}.Debug|Any CPU.Build.0 = Debug|Any CPU {DEFE3DB2-EA4F-4F90-87FC-B25D64427BC5}.Release|Any CPU.ActiveCfg = Release|Any CPU {DEFE3DB2-EA4F-4F90-87FC-B25D64427BC5}.Release|Any CPU.Build.0 = Release|Any CPU + {F689967F-1EF1-4D75-8BA4-2F2F3506B1F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F689967F-1EF1-4D75-8BA4-2F2F3506B1F3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F689967F-1EF1-4D75-8BA4-2F2F3506B1F3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F689967F-1EF1-4D75-8BA4-2F2F3506B1F3}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -1208,6 +1214,7 @@ Global {29CA7471-4E3E-4E75-8B33-001DDF682F01} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6} {37F89B0B-1C6B-426F-A5EE-676D1956D9E9} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6} {DEFE3DB2-EA4F-4F90-87FC-B25D64427BC5} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6} + {F689967F-1EF1-4D75-8BA4-2F2F3506B1F3} = {5DF0E140-0513-4D0D-BE2E-3D4D85CD70E6} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {BB97ECF4-9A84-433F-A80B-2A3285BDD1D5} diff --git a/framework/src/Volo.Abp.EventBus.Rebus/FodyWeavers.xml b/framework/src/Volo.Abp.EventBus.Rebus/FodyWeavers.xml new file mode 100644 index 0000000000..be0de3a908 --- /dev/null +++ b/framework/src/Volo.Abp.EventBus.Rebus/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/framework/src/Volo.Abp.EventBus.Rebus/FodyWeavers.xsd b/framework/src/Volo.Abp.EventBus.Rebus/FodyWeavers.xsd new file mode 100644 index 0000000000..3f3946e282 --- /dev/null +++ b/framework/src/Volo.Abp.EventBus.Rebus/FodyWeavers.xsd @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. + + + + + A comma-separated list of error codes that can be safely ignored in assembly verification. + + + + + 'false' to turn off automatic generation of the XML Schema file. + + + + + \ No newline at end of file diff --git a/framework/src/Volo.Abp.EventBus.Rebus/Volo.Abp.EventBus.Rebus.csproj b/framework/src/Volo.Abp.EventBus.Rebus/Volo.Abp.EventBus.Rebus.csproj new file mode 100644 index 0000000000..0a01911990 --- /dev/null +++ b/framework/src/Volo.Abp.EventBus.Rebus/Volo.Abp.EventBus.Rebus.csproj @@ -0,0 +1,26 @@ + + + + + + + netstandard2.0 + Volo.Abp.EventBus.Rebus + Volo.Abp.EventBus.Rebus + $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; + false + false + false + + + + + + + + + + + + + diff --git a/framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/AbpEventBusRebusModule.cs b/framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/AbpEventBusRebusModule.cs new file mode 100644 index 0000000000..ec9dfe6b07 --- /dev/null +++ b/framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/AbpEventBusRebusModule.cs @@ -0,0 +1,43 @@ +using Microsoft.Extensions.DependencyInjection; +using Rebus.Handlers; +using Rebus.ServiceProvider; +using Volo.Abp.Modularity; + +namespace Volo.Abp.EventBus.Rebus +{ + [DependsOn( + typeof(AbpEventBusModule))] + public class AbpEventBusRebusModule : AbpModule + { + public override void ConfigureServices(ServiceConfigurationContext context) + { + var options = context.Services.ExecutePreConfiguredActions(); + + context.Services.AddTransient(typeof(IHandleMessages<>), typeof(RebusDistributedEventHandlerAdapter<>)); + + Configure(rebusOptions => + { + rebusOptions.Configurer = options.Configurer; + rebusOptions.Publish = options.Publish; + rebusOptions.InputQueueName = options.InputQueueName; + }); + + context.Services.AddRebus(configurer => + { + options.Configurer?.Invoke(configurer); + return configurer; + }); + + } + + public override void OnApplicationInitialization(ApplicationInitializationContext context) + { + context.ServiceProvider.UseRebus(); + + context + .ServiceProvider + .GetRequiredService() + .Initialize(); + } + } +} diff --git a/framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/AbpEventBusRebusOptions.cs b/framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/AbpEventBusRebusOptions.cs new file mode 100644 index 0000000000..d6e8a2c68a --- /dev/null +++ b/framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/AbpEventBusRebusOptions.cs @@ -0,0 +1,50 @@ +using System; +using System.Threading.Tasks; +using JetBrains.Annotations; +using Rebus.Bus; +using Rebus.Config; +using Rebus.Persistence.InMem; +using Rebus.Transport.InMem; + +namespace Volo.Abp.EventBus.Rebus +{ + public class AbpEventBusRebusOptions + { + [NotNull] + public string InputQueueName { get; set; } + + [NotNull] + public Action Configurer + { + get => _configurer; + set => _configurer = Check.NotNull(value, nameof(value)); + } + private Action _configurer; + + + [NotNull] + public Func Publish + { + get => _publish; + set => _publish = Check.NotNull(value, nameof(value)); + } + private Func _publish; + + public AbpEventBusRebusOptions() + { + _publish = DefaultPublish; + _configurer = DefaultConfigurer; + } + + private async Task DefaultPublish(IBus bus, Type eventType, object eventData) + { + await bus.Advanced.Routing.Send(InputQueueName, eventData); + } + + private void DefaultConfigurer(RebusConfigurer configurer) + { + configurer.Subscriptions(s => s.StoreInMemory()); + configurer.Transport(t => t.UseInMemoryTransport(new InMemNetwork(), InputQueueName)); + } + } +} diff --git a/framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/RebusDistributedEventBus.cs b/framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/RebusDistributedEventBus.cs new file mode 100644 index 0000000000..9a30281617 --- /dev/null +++ b/framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/RebusDistributedEventBus.cs @@ -0,0 +1,176 @@ +using System; +using System.Collections.Concurrent; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.Extensions.DependencyInjection; +using Microsoft.Extensions.Options; +using Rebus.Bus; +using Volo.Abp.DependencyInjection; +using Volo.Abp.EventBus.Distributed; +using Volo.Abp.MultiTenancy; +using Volo.Abp.Threading; + +namespace Volo.Abp.EventBus.Rebus +{ + [Dependency(ReplaceServices = true)] + [ExposeServices(typeof(IDistributedEventBus), typeof(RebusDistributedEventBus))] + public class RebusDistributedEventBus : EventBusBase, IDistributedEventBus, ISingletonDependency + { + protected IBus Rebus { get; } + + //TODO: Accessing to the List may not be thread-safe! + protected ConcurrentDictionary> HandlerFactories { get; } + protected ConcurrentDictionary EventTypes { get; } + protected AbpDistributedEventBusOptions AbpDistributedEventBusOptions { get; } + protected AbpEventBusRebusOptions AbpEventBusRebusOptions { get; } + + public RebusDistributedEventBus( + IServiceScopeFactory serviceScopeFactory, + ICurrentTenant currentTenant, + IBus rebus, + IOptions abpDistributedEventBusOptions, + IOptions abpEventBusRebusOptions) : + base(serviceScopeFactory, currentTenant) + { + Rebus = rebus; + AbpEventBusRebusOptions = abpEventBusRebusOptions.Value; + AbpDistributedEventBusOptions = abpDistributedEventBusOptions.Value; + + HandlerFactories = new ConcurrentDictionary>(); + EventTypes = new ConcurrentDictionary(); + } + + public void Initialize() + { + SubscribeHandlers(AbpDistributedEventBusOptions.Handlers); + } + + public override IDisposable Subscribe(Type eventType, IEventHandlerFactory factory) + { + var handlerFactories = GetOrCreateHandlerFactories(eventType); + + if (factory.IsInFactories(handlerFactories)) + { + return NullDisposable.Instance; + } + + handlerFactories.Add(factory); + + if (handlerFactories.Count == 1) //TODO: Multi-threading! + { + Rebus.Subscribe(eventType); + } + + return new EventHandlerFactoryUnregistrar(this, eventType, factory); + } + + public override void Unsubscribe(Func action) + { + Check.NotNull(action, nameof(action)); + + GetOrCreateHandlerFactories(typeof(TEvent)) + .Locking(factories => + { + factories.RemoveAll( + factory => + { + if (!(factory is SingleInstanceHandlerFactory singleInstanceFactory)) + { + return false; + } + + if (!(singleInstanceFactory.HandlerInstance is ActionEventHandler actionHandler)) + { + return false; + } + + return actionHandler.Action == action; + }); + }); + + Rebus.Unsubscribe(typeof(TEvent)); + } + + public override void Unsubscribe(Type eventType, IEventHandler handler) + { + GetOrCreateHandlerFactories(eventType) + .Locking(factories => + { + factories.RemoveAll( + factory => + factory is SingleInstanceHandlerFactory handlerFactory && + handlerFactory.HandlerInstance == handler + ); + }); + + Rebus.Unsubscribe(eventType); + } + + public override void Unsubscribe(Type eventType, IEventHandlerFactory factory) + { + GetOrCreateHandlerFactories(eventType).Locking(factories => factories.Remove(factory)); + Rebus.Unsubscribe(eventType); + } + + public override void UnsubscribeAll(Type eventType) + { + GetOrCreateHandlerFactories(eventType).Locking(factories => factories.Clear()); + Rebus.Unsubscribe(eventType); + } + + public IDisposable Subscribe(IDistributedEventHandler handler) where TEvent : class + { + return Subscribe(typeof(TEvent), handler); + } + + public override async Task PublishAsync(Type eventType, object eventData) + { + await AbpEventBusRebusOptions.Publish(Rebus, eventType, eventData); + } + + private List GetOrCreateHandlerFactories(Type eventType) + { + return HandlerFactories.GetOrAdd( + eventType, + type => + { + var eventName = EventNameAttribute.GetNameOrDefault(type); + EventTypes[eventName] = type; + return new List(); + } + ); + } + + protected override IEnumerable GetHandlerFactories(Type eventType) + { + var handlerFactoryList = new List(); + + foreach (var handlerFactory in HandlerFactories.Where(hf => ShouldTriggerEventForHandler(eventType, hf.Key)) + ) + { + handlerFactoryList.Add( + new EventTypeWithEventHandlerFactories(handlerFactory.Key, handlerFactory.Value)); + } + + return handlerFactoryList.ToArray(); + } + + private static bool ShouldTriggerEventForHandler(Type targetEventType, Type handlerEventType) + { + //Should trigger same type + if (handlerEventType == targetEventType) + { + return true; + } + + //Should trigger for inherited types + if (handlerEventType.IsAssignableFrom(targetEventType)) + { + return true; + } + + return false; + } + } +} diff --git a/framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/RebusDistributedEventHandlerAdapter.cs b/framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/RebusDistributedEventHandlerAdapter.cs new file mode 100644 index 0000000000..005226b885 --- /dev/null +++ b/framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/RebusDistributedEventHandlerAdapter.cs @@ -0,0 +1,20 @@ +using System.Threading.Tasks; +using Rebus.Handlers; + +namespace Volo.Abp.EventBus.Rebus +{ + public class RebusDistributedEventHandlerAdapter : IHandleMessages + { + protected RebusDistributedEventBus RebusDistributedEventBus { get; } + + public RebusDistributedEventHandlerAdapter(RebusDistributedEventBus rebusDistributedEventBus) + { + RebusDistributedEventBus = rebusDistributedEventBus; + } + + public async Task Handle(TEventData message) + { + await RebusDistributedEventBus.TriggerHandlersAsync(typeof(TEventData), message); + } + } +} diff --git a/nupkg/common.ps1 b/nupkg/common.ps1 index e5847e8a7c..dcaead0715 100644 --- a/nupkg/common.ps1 +++ b/nupkg/common.ps1 @@ -92,6 +92,7 @@ $projects = ( "framework/src/Volo.Abp.EventBus", "framework/src/Volo.Abp.EventBus.RabbitMQ", "framework/src/Volo.Abp.EventBus.Kafka", + "framework/src/Volo.Abp.EventBus.Rebus", "framework/src/Volo.Abp.Features", "framework/src/Volo.Abp.FluentValidation", "framework/src/Volo.Abp.GlobalFeatures", From 2293f234bf2c386eb044a4bbf27d4ed7867bb862 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Wed, 30 Sep 2020 13:51:59 +0800 Subject: [PATCH 012/242] removed space --- .../Volo/Abp/EventBus/Rebus/AbpEventBusRebusOptions.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/AbpEventBusRebusOptions.cs b/framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/AbpEventBusRebusOptions.cs index d6e8a2c68a..06a138f66b 100644 --- a/framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/AbpEventBusRebusOptions.cs +++ b/framework/src/Volo.Abp.EventBus.Rebus/Volo/Abp/EventBus/Rebus/AbpEventBusRebusOptions.cs @@ -21,7 +21,6 @@ namespace Volo.Abp.EventBus.Rebus } private Action _configurer; - [NotNull] public Func Publish { From d1596f7f9549522377ecd9865437a22ece015011 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Wed, 30 Sep 2020 17:42:48 +0800 Subject: [PATCH 013/242] Remove the HtmlAgilityPack.NetCore reference --- framework/src/Volo.Abp.Cli.Core/Volo.Abp.Cli.Core.csproj | 1 - 1 file changed, 1 deletion(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo.Abp.Cli.Core.csproj b/framework/src/Volo.Abp.Cli.Core/Volo.Abp.Cli.Core.csproj index 2dfd66f4ab..13f81e730b 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo.Abp.Cli.Core.csproj +++ b/framework/src/Volo.Abp.Cli.Core/Volo.Abp.Cli.Core.csproj @@ -14,7 +14,6 @@ - From 6945cb3c6313fe56de615b30b6428ab3220acc11 Mon Sep 17 00:00:00 2001 From: liangshiwei Date: Thu, 1 Oct 2020 10:21:08 +0800 Subject: [PATCH 014/242] Move BlogDto to Volo.Blogging.Application.Contracts.Shared proejct --- .../Volo/Blogging/Admin/Blogs/BlogDto.cs | 14 -------------- .../Admin/Blogs/IBlogManagementAppService.cs | 2 ++ .../BloggingAdminApplicationAutoMapperProfile.cs | 1 + .../Admin/Blogs/BlogManagementAppService.cs | 1 + .../Blogging/Admin/BlogManagementController.cs | 2 ++ .../AbpBloggingAdminWebAutoMapperProfile.cs | 2 ++ .../Pages/Blogging/Admin/Blogs/Edit.cshtml.cs | 1 + .../Volo/Blogging/Blogs/Dtos/BlogDto.cs | 2 +- 8 files changed, 10 insertions(+), 15 deletions(-) delete mode 100644 modules/blogging/src/Volo.Blogging.Admin.Application.Contracts/Volo/Blogging/Admin/Blogs/BlogDto.cs rename modules/blogging/src/{Volo.Blogging.Application.Contracts => Volo.Blogging.Application.Contracts.Shared}/Volo/Blogging/Blogs/Dtos/BlogDto.cs (99%) diff --git a/modules/blogging/src/Volo.Blogging.Admin.Application.Contracts/Volo/Blogging/Admin/Blogs/BlogDto.cs b/modules/blogging/src/Volo.Blogging.Admin.Application.Contracts/Volo/Blogging/Admin/Blogs/BlogDto.cs deleted file mode 100644 index 38b87e277c..0000000000 --- a/modules/blogging/src/Volo.Blogging.Admin.Application.Contracts/Volo/Blogging/Admin/Blogs/BlogDto.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using Volo.Abp.Application.Dtos; - -namespace Volo.Blogging.Admin.Blogs -{ - public class BlogDto : FullAuditedEntityDto - { - public string Name { get; set; } - - public string ShortName { get; set; } - - public string Description { get; set; } - } -} diff --git a/modules/blogging/src/Volo.Blogging.Admin.Application.Contracts/Volo/Blogging/Admin/Blogs/IBlogManagementAppService.cs b/modules/blogging/src/Volo.Blogging.Admin.Application.Contracts/Volo/Blogging/Admin/Blogs/IBlogManagementAppService.cs index 3554413d5f..35d6d1c97e 100644 --- a/modules/blogging/src/Volo.Blogging.Admin.Application.Contracts/Volo/Blogging/Admin/Blogs/IBlogManagementAppService.cs +++ b/modules/blogging/src/Volo.Blogging.Admin.Application.Contracts/Volo/Blogging/Admin/Blogs/IBlogManagementAppService.cs @@ -2,6 +2,8 @@ using System.Threading.Tasks; using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Services; +using Volo.Blogging.Blogs; +using Volo.Blogging.Blogs.Dtos; namespace Volo.Blogging.Admin.Blogs { diff --git a/modules/blogging/src/Volo.Blogging.Admin.Application/Volo/Blogging/Admin/BloggingAdminApplicationAutoMapperProfile.cs b/modules/blogging/src/Volo.Blogging.Admin.Application/Volo/Blogging/Admin/BloggingAdminApplicationAutoMapperProfile.cs index 2f2cf74563..378fc46132 100644 --- a/modules/blogging/src/Volo.Blogging.Admin.Application/Volo/Blogging/Admin/BloggingAdminApplicationAutoMapperProfile.cs +++ b/modules/blogging/src/Volo.Blogging.Admin.Application/Volo/Blogging/Admin/BloggingAdminApplicationAutoMapperProfile.cs @@ -1,6 +1,7 @@ using AutoMapper; using Volo.Blogging.Admin.Blogs; using Volo.Blogging.Blogs; +using Volo.Blogging.Blogs.Dtos; namespace Volo.Blogging.Admin { diff --git a/modules/blogging/src/Volo.Blogging.Admin.Application/Volo/Blogging/Admin/Blogs/BlogManagementAppService.cs b/modules/blogging/src/Volo.Blogging.Admin.Application/Volo/Blogging/Admin/Blogs/BlogManagementAppService.cs index 242ccb6330..e3560378cf 100644 --- a/modules/blogging/src/Volo.Blogging.Admin.Application/Volo/Blogging/Admin/Blogs/BlogManagementAppService.cs +++ b/modules/blogging/src/Volo.Blogging.Admin.Application/Volo/Blogging/Admin/Blogs/BlogManagementAppService.cs @@ -4,6 +4,7 @@ using System.Collections.Generic; using System.Threading.Tasks; using Volo.Abp.Application.Dtos; using Volo.Blogging.Blogs; +using Volo.Blogging.Blogs.Dtos; namespace Volo.Blogging.Admin.Blogs { diff --git a/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo/Blogging/Admin/BlogManagementController.cs b/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo/Blogging/Admin/BlogManagementController.cs index 782a05a42e..815604e871 100644 --- a/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo/Blogging/Admin/BlogManagementController.cs +++ b/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo/Blogging/Admin/BlogManagementController.cs @@ -5,6 +5,8 @@ using Volo.Abp; using Volo.Abp.Application.Dtos; using Volo.Abp.AspNetCore.Mvc; using Volo.Blogging.Admin.Blogs; +using Volo.Blogging.Blogs; +using Volo.Blogging.Blogs.Dtos; namespace Volo.Blogging.Admin { diff --git a/modules/blogging/src/Volo.Blogging.Admin.Web/AbpBloggingAdminWebAutoMapperProfile.cs b/modules/blogging/src/Volo.Blogging.Admin.Web/AbpBloggingAdminWebAutoMapperProfile.cs index 082daf9bae..35f83cd480 100644 --- a/modules/blogging/src/Volo.Blogging.Admin.Web/AbpBloggingAdminWebAutoMapperProfile.cs +++ b/modules/blogging/src/Volo.Blogging.Admin.Web/AbpBloggingAdminWebAutoMapperProfile.cs @@ -1,6 +1,8 @@ using AutoMapper; using Volo.Blogging.Admin.Blogs; using Volo.Blogging.Admin.Pages.Blogging.Admin.Blogs; +using Volo.Blogging.Blogs; +using Volo.Blogging.Blogs.Dtos; using EditModel = Volo.Blogging.Admin.Pages.Blogging.Admin.Blogs.EditModel; namespace Volo.Blogging.Admin diff --git a/modules/blogging/src/Volo.Blogging.Admin.Web/Pages/Blogging/Admin/Blogs/Edit.cshtml.cs b/modules/blogging/src/Volo.Blogging.Admin.Web/Pages/Blogging/Admin/Blogs/Edit.cshtml.cs index ae275cd4e6..9c752e6c44 100644 --- a/modules/blogging/src/Volo.Blogging.Admin.Web/Pages/Blogging/Admin/Blogs/Edit.cshtml.cs +++ b/modules/blogging/src/Volo.Blogging.Admin.Web/Pages/Blogging/Admin/Blogs/Edit.cshtml.cs @@ -6,6 +6,7 @@ using Microsoft.AspNetCore.Mvc; using Volo.Abp.Validation; using Volo.Blogging.Admin.Blogs; using Volo.Blogging.Blogs; +using Volo.Blogging.Blogs.Dtos; namespace Volo.Blogging.Admin.Pages.Blogging.Admin.Blogs { diff --git a/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/Blogs/Dtos/BlogDto.cs b/modules/blogging/src/Volo.Blogging.Application.Contracts.Shared/Volo/Blogging/Blogs/Dtos/BlogDto.cs similarity index 99% rename from modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/Blogs/Dtos/BlogDto.cs rename to modules/blogging/src/Volo.Blogging.Application.Contracts.Shared/Volo/Blogging/Blogs/Dtos/BlogDto.cs index 45aa60e171..fc72ae0d25 100644 --- a/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo/Blogging/Blogs/Dtos/BlogDto.cs +++ b/modules/blogging/src/Volo.Blogging.Application.Contracts.Shared/Volo/Blogging/Blogs/Dtos/BlogDto.cs @@ -11,4 +11,4 @@ namespace Volo.Blogging.Blogs.Dtos public string Description { get; set; } } -} \ No newline at end of file +} From 5305d57586a9fb101648d26284caaca6471e055c Mon Sep 17 00:00:00 2001 From: muhammedaltug Date: Thu, 1 Oct 2020 14:49:36 +0300 Subject: [PATCH 015/242] fix: add prefix to toaster css classes - Toaster Interface added for custom toaster service implementation - optimize imports and removed unnecessary service --- .../toast-container.component.html | 2 +- .../toast-container.component.scss | 2 +- .../lib/components/toast/toast.component.html | 12 ++-- .../lib/components/toast/toast.component.scss | 22 +++---- .../lib/components/toast/toast.component.ts | 12 ++-- .../theme-shared/src/lib/models/toaster.ts | 32 +++++++++++ .../src/lib/services/toaster.service.ts | 6 +- .../src/lib/theme-shared.module.ts | 57 +++++++------------ 8 files changed, 80 insertions(+), 65 deletions(-) diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/toast-container/toast-container.component.html b/npm/ng-packs/packages/theme-shared/src/lib/components/toast-container/toast-container.component.html index 88d45ff04b..3dc2427f92 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/components/toast-container/toast-container.component.html +++ b/npm/ng-packs/packages/theme-shared/src/lib/components/toast-container/toast-container.component.html @@ -1,5 +1,5 @@ - +
@@ -110,12 +110,12 @@ id="CreationTimeMin" name="CreationTimeMin" class="form-control datepicker" - placeholder="@L["StartDate"]"> + placeholder="@L["StartDate"].Value"> -
@@ -132,12 +132,12 @@ id="LastUpdatedTimeMin" name="LastUpdatedTimeMin" class="form-control datepicker" - placeholder="@L["StartDate"]"> + placeholder="@L["StartDate"].Value"> -
@@ -154,12 +154,12 @@ id="LastSignificantUpdateTimeMin" name="LastSignificantUpdateTimeMin" class="form-control datepicker" - placeholder="@L["StartDate"]"> + placeholder="@L["StartDate"].Value"> -
@@ -176,12 +176,12 @@ id="LastCachedTimeMin" name="LastCachedTimeMin" class="form-control datepicker" - placeholder="@L["StartDate"]"> + placeholder="@L["StartDate"].Value"> - @@ -212,4 +212,4 @@ - \ No newline at end of file + diff --git a/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Documents/index.js b/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Documents/index.js index 23203a23f5..29c55502d9 100644 --- a/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Documents/index.js +++ b/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Documents/index.js @@ -18,17 +18,20 @@ creationTimeMax: getFormattedDate($('#CreationTimeMax')), lastUpdatedTimeMin: getFormattedDate($('#LastUpdatedTimeMin')), lastUpdatedTimeMax: getFormattedDate($('#LastUpdatedTimeMax')), - lastSignificantUpdateTimeMin: getFormattedDate( - $('#LastSignificantUpdateTimeMin') - ), - lastSignificantUpdateTimeMax: getFormattedDate( - $('#LastSignificantUpdateTimeMax') - ), + lastSignificantUpdateTimeMin: getFormattedDate($('#LastSignificantUpdateTimeMin')), + lastSignificantUpdateTimeMax: getFormattedDate($('#LastSignificantUpdateTimeMax')), lastCachedTimeMin: getFormattedDate($('#LastCachedTimeMin')), lastCachedTimeMax: getFormattedDate($('#LastCachedTimeMax')), }; }; + var parseDateToLocaleDateString = function (date) { + var parsedDate = Date.parse(date); + return new Date(parsedDate).toLocaleDateString( + abp.localization.currentCulture.name + ); + }; + var dataTable = $('#DocumentsTable').DataTable( abp.libs.datatables.normalizeConfiguration({ processing: true, @@ -55,9 +58,7 @@ service .removeFromCache(data.record.id) .then(function () { - abp.message.success( - l('RemovedFromCache') - ); + abp.message.success(l('RemovedFromCache')); dataTable.ajax.reload(); }); }, @@ -74,9 +75,7 @@ service .reindex(data.record.id) .then(function () { - abp.message.success( - l('ReindexCompleted') - ); + abp.message.success(l('ReindexCompleted')); dataTable.ajax.reload(); }); }, @@ -112,10 +111,7 @@ return ''; } - var date = Date.parse(creationTime); - return new Date(date).toLocaleDateString( - abp.localization.currentCulture.name - ); + return parseDateToLocaleDateString(creationTime); }, }, { @@ -126,10 +122,7 @@ return ''; } - var date = Date.parse(lastUpdatedTime); - return new Date(date).toLocaleDateString( - abp.localization.currentCulture.name - ); + return parseDateToLocaleDateString(lastUpdatedTime); }, }, { @@ -140,10 +133,7 @@ return ''; } - var date = Date.parse(lastSignificantUpdateTime); - return new Date(date).toLocaleDateString( - abp.localization.currentCulture.name - ); + return parseDateToLocaleDateString(lastSignificantUpdateTime); }, }, { @@ -154,10 +144,7 @@ return ''; } - var date = Date.parse(lastCachedTime); - return new Date(date).toLocaleDateString( - abp.localization.currentCulture.name - ); + return parseDateToLocaleDateString(lastCachedTime); }, }, ], diff --git a/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Projects/index.js b/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Projects/index.js index 45554eb356..b898dbf6b8 100644 --- a/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Projects/index.js +++ b/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Projects/index.js @@ -156,8 +156,7 @@ .confirm(l('ReIndexAllProjectConfirmationMessage')) .done(function (accepted) { if (accepted) { - volo.docs.admin.projectsAdmin - .reindexAll() + volo.docs.admin.projectsAdmin.reindexAll() .then(function () { abp.message.success( l('SuccessfullyReIndexAllProject') diff --git a/modules/docs/src/Volo.Docs.Application/Volo/Docs/DocsApplicationAutoMapperProfile.cs b/modules/docs/src/Volo.Docs.Application/Volo/Docs/DocsApplicationAutoMapperProfile.cs index d29828ad05..fc2eec1759 100644 --- a/modules/docs/src/Volo.Docs.Application/Volo/Docs/DocsApplicationAutoMapperProfile.cs +++ b/modules/docs/src/Volo.Docs.Application/Volo/Docs/DocsApplicationAutoMapperProfile.cs @@ -11,10 +11,9 @@ namespace Volo.Docs { CreateMap(); CreateMap(); - CreateMap() - .Ignore(x => x.Project).Ignore(x => x.Contributors); + CreateMap().Ignore(x => x.Project).Ignore(x => x.Contributors); CreateMap(); CreateMap(); } } -} \ No newline at end of file +} diff --git a/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs b/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs index 6df4c6179e..fe00c41ac6 100644 --- a/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs +++ b/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs @@ -213,8 +213,7 @@ namespace Volo.Docs.Documents input.Version ); - if (!JsonConvertExtensions.TryDeserializeObject(document.Content, - out var documentParameters)) + if (!JsonConvertExtensions.TryDeserializeObject(document.Content,out var documentParameters)) { throw new UserFriendlyException( $"Cannot validate document parameters file '{project.ParametersDocumentName}' for the project {project.Name}."); @@ -257,10 +256,10 @@ namespace Volo.Docs.Documents } var cacheKey = CacheKeyGenerator.GenerateDocumentUpdateInfoCacheKey( - project: project, - documentName: document.Name, - languageCode: document.LanguageCode, - version: document.Version + project, + document.Name, + document.LanguageCode, + document.Version ); await DocumentUpdateCache.SetAsync(cacheKey, new DocumentUpdateInfo @@ -277,9 +276,10 @@ namespace Volo.Docs.Documents protected virtual DocumentWithDetailsDto CreateDocumentWithDetailsDto(Project project, Document document) { var documentDto = ObjectMapper.Map(document); + documentDto.Project = ObjectMapper.Map(project); - documentDto.Contributors = - ObjectMapper.Map, List>(document.Contributors); + documentDto.Contributors = ObjectMapper.Map, List>(document.Contributors); + return documentDto; } @@ -289,8 +289,7 @@ namespace Volo.Docs.Documents Logger.LogInformation($"Not found in the cache. Requesting {documentName} from the source..."); var source = _documentStoreFactory.Create(project.DocumentStoreType); - var sourceDocument = await source.GetDocumentAsync(project, documentName, languageCode, version, - oldDocument?.LastSignificantUpdateTime); + var sourceDocument = await source.GetDocumentAsync(project, documentName, languageCode, version, oldDocument?.LastSignificantUpdateTime); await _documentRepository.DeleteAsync(project.Id, sourceDocument.Name, sourceDocument.LanguageCode, sourceDocument.Version); @@ -299,10 +298,10 @@ namespace Volo.Docs.Documents Logger.LogInformation($"Document retrieved: {documentName}"); var cacheKey = CacheKeyGenerator.GenerateDocumentUpdateInfoCacheKey( - project: project, - documentName: sourceDocument.Name, - languageCode: sourceDocument.LanguageCode, - version: sourceDocument.Version + project, + sourceDocument.Name, + sourceDocument.LanguageCode, + sourceDocument.Version ); await DocumentUpdateCache.SetAsync(cacheKey, new DocumentUpdateInfo @@ -351,12 +350,13 @@ namespace Volo.Docs.Documents private string GetProjectVersionPrefixIfExist(Project project) { - if (GetGithubVersionProviderSource(project) == GithubVersionProviderSource.Branches) + if (GetGithubVersionProviderSource(project) != GithubVersionProviderSource.Branches) { - return project.ExtraProperties["VersionBranchPrefix"].ToString(); + return string.Empty; } - return ""; + return project.ExtraProperties["VersionBranchPrefix"].ToString(); + } private GithubVersionProviderSource GetGithubVersionProviderSource(Project project) diff --git a/modules/docs/src/Volo.Docs.Application/Volo/Docs/Projects/ProjectAppService.cs b/modules/docs/src/Volo.Docs.Application/Volo/Docs/Projects/ProjectAppService.cs index 728840135e..1f5a8d4c91 100644 --- a/modules/docs/src/Volo.Docs.Application/Volo/Docs/Projects/ProjectAppService.cs +++ b/modules/docs/src/Volo.Docs.Application/Volo/Docs/Projects/ProjectAppService.cs @@ -125,12 +125,13 @@ namespace Volo.Docs.Projects private string GetProjectVersionPrefixIfExist(Project project) { - if (GetGithubVersionProviderSource(project) == GithubVersionProviderSource.Branches) + if (GetGithubVersionProviderSource(project) != GithubVersionProviderSource.Branches) { - return project.ExtraProperties["VersionBranchPrefix"].ToString(); + return string.Empty; } - return ""; + return project.ExtraProperties["VersionBranchPrefix"].ToString(); + } private GithubVersionProviderSource GetGithubVersionProviderSource(Project project) From 674f1282b60905c3d5033bb2748a9019af900190 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Tue, 13 Oct 2020 17:09:17 +0300 Subject: [PATCH 176/242] Remove test code from the startup template. --- .../Pages/Index.razor | 23 -------- .../Pages/Index.razor.cs | 57 +------------------ 2 files changed, 1 insertion(+), 79 deletions(-) diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor index 0f0d1935df..8ae9643f63 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor @@ -13,29 +13,6 @@
Congratulations, MyProjectName is successfully running!
- - - UI Message Tests - - - - - - - - - -

Welcome to the Application

@L["LongWelcomeMessage"]

diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor.cs index c39cb6f880..3e1570ecc8 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor.cs @@ -1,62 +1,7 @@ -using System; -using System.Collections.Generic; -using System.Security.Claims; -using System.Threading.Tasks; -using Blazorise; -using Microsoft.AspNetCore.Components; -using Volo.Abp.AspNetCore.Components.WebAssembly; - -namespace MyCompanyName.MyProjectName.Blazor.Pages +namespace MyCompanyName.MyProjectName.Blazor.Pages { public partial class Index { - private IEnumerable _claims; - - protected override async Task OnInitializedAsync() - { - var authState = await AuthenticationStateProvider.GetAuthenticationStateAsync(); - if ( authState.User.Identity.IsAuthenticated ) - { - _claims = authState.User.Claims; - } - } - - Task OnInfoTestClicked() - { - return UiMessageService.InfoAsync( "This is the Info message", "Info", options => - { - options.OkButtonIcon = IconName.InfoCircle; - options.OkButtonText = "Hello info"; - } ); - } - - Task OnSuccessTestClicked() - { - return UiMessageService.SuccessAsync( "This is the Success message", "Success" ); - } - - Task OnWarningTestClicked() - { - return UiMessageService.WarnAsync( "This is the Warning message", "Warning" ); - } - - Task OnErrorTestClicked() - { - return UiMessageService.ErrorAsync( "This is the Error message", "Error" ); - } - - async Task OnConfirmTestClicked() - { - if ( await UiMessageService.ConfirmAsync( "Are you sure you want to delete the item?", "Confirm", options => - { - options.CancelButtonText = "Do not delete it"; - options.ConfirmButtonText = "Yes I'm sure"; - } ) ) - { - Console.WriteLine( "Confirmed" ); - } - } - [Inject] IUiMessageService UiMessageService { get; set; } } } From 746bc572d42d949ffe35c4ac35404ef011bfb40d Mon Sep 17 00:00:00 2001 From: bnymncoskuner Date: Tue, 13 Oct 2020 17:42:04 +0300 Subject: [PATCH 177/242] feat: improve home component of app template --- .../angular/src/app/home/home.component.html | 338 +++++++++++++++++- 1 file changed, 325 insertions(+), 13 deletions(-) diff --git a/templates/app/angular/src/app/home/home.component.html b/templates/app/angular/src/app/home/home.component.html index fc7a0a4183..ff311bf22f 100644 --- a/templates/app/angular/src/app/home/home.component.html +++ b/templates/app/angular/src/app/home/home.component.html @@ -1,14 +1,326 @@ -
-
-

{{ '::Welcome' | abpLocalization }}

-
-
-

{{ '::LongWelcomeMessage' | abpLocalization }}

-
-
-
-
abp.io - {{ 'AbpAccount::Login' | abpLocalization }} +
+
+ +

{{ '::Welcome' | abpLocalization }}

+ +

{{ '::LongWelcomeMessage' | abpLocalization }}

+ + {{ 'AbpAccount::Login' | abpLocalization }} +
+
+

Let's improve your application!

+

Here are some links to help you get started:

+
+
+
+
+ + + + + +
+
+ + + +

+ + + + +

+
+ + + + +
+
+
+ +
+

Meet the ABP Commercial

+

A Complete Web Application Platform Built on the ABP Framework

+
+ +
+
+

+ ABP Commercial is a platform based + on the open source ABP framework. It provides pre-built application modules, rapid + application development tooling, professional UI themes, premium support and more. +

+ +
+ + + + + + + + + + + +
+
+
+
+ + +
+
+
+ {{ context.title }} +
+

+ + {{ link.label }} +
+
+
+ + +
+
+
+ + + Details +
+
+
+
From 76417a276c302726bd210bc3751ac9bfe274a334 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Tue, 13 Oct 2020 18:37:28 +0300 Subject: [PATCH 178/242] fix: exit recursive interface generation when ref is cyclic --- npm/ng-packs/packages/schematics/src/utils/model.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/npm/ng-packs/packages/schematics/src/utils/model.ts b/npm/ng-packs/packages/schematics/src/utils/model.ts index f68aa9b181..f1177d2340 100644 --- a/npm/ng-packs/packages/schematics/src/utils/model.ts +++ b/npm/ng-packs/packages/schematics/src/utils/model.ts @@ -134,7 +134,8 @@ export function createImportRefToInterfaceReducerCreator(params: ModelGeneratorP return _interface.properties .reduce((refs, prop) => { prop.refs.forEach(type => { - if (types[type]?.isEnum || type === _interface.ref) return; + if (types[type]?.isEnum) return; + if (interfaces.some(i => i.ref === type)) return; refs.push(type); }); From 6929337346f8d0a8fbd989175493374d57a42adc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Levent=20Arman=20=C3=96zak?= Date: Tue, 13 Oct 2020 19:24:36 +0300 Subject: [PATCH 179/242] Update home.component.html --- .../angular/src/app/home/home.component.html | 41 +++++++++++-------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/templates/app/angular/src/app/home/home.component.html b/templates/app/angular/src/app/home/home.component.html index ff311bf22f..067a74c50f 100644 --- a/templates/app/angular/src/app/home/home.component.html +++ b/templates/app/angular/src/app/home/home.component.html @@ -45,7 +45,6 @@ starterLinkTemplate; context: { $implicit: { - borderLeft: true, title: 'Samples', description: 'See the example projects built with the ABP Framework.', links: [ @@ -64,7 +63,6 @@ starterLinkTemplate; context: { $implicit: { - borderLeft: true, title: 'ABP Community', description: 'Get involved with a vibrant community and become a contributor.', links: [ @@ -148,7 +146,6 @@ label: 'Request a feature' } ], - borderLeft: true, customTemplate: githubButtonsTemplate } } @@ -171,8 +168,7 @@ href: 'https://stackoverflow.com/questions/ask', label: 'Ask a Question' } - ], - borderLeft: true + ] } } " @@ -213,8 +209,7 @@ context: { $implicit: { title: 'Application Modules', - href: 'https://commercial.abp.io/modules?ref=tmpl', - borderLeft: true + href: 'https://commercial.abp.io/modules?ref=tmpl' } } " @@ -226,8 +221,7 @@ context: { $implicit: { title: 'Developer
Tools', - href: 'https://commercial.abp.io/tools?ref=tmpl', - borderLeft: true + href: 'https://commercial.abp.io/tools?ref=tmpl' } } " @@ -239,8 +233,7 @@ context: { $implicit: { title: 'UI
Themes', - href: 'https://commercial.abp.io/themes?ref=tmpl', - borderLeft: true + href: 'https://commercial.abp.io/themes?ref=tmpl' } } " @@ -252,8 +245,7 @@ context: { $implicit: { title: 'Premium Support', - href: 'https://support.abp.io/QA/Questions?ref=tmpl', - borderLeft: true + href: 'https://support.abp.io/QA/Questions?ref=tmpl' } } " @@ -265,8 +257,7 @@ context: { $implicit: { title: 'Additional Services', - href: 'https://commercial.abp.io/additional-services?ref=tmpl', - borderLeft: true + href: 'https://commercial.abp.io/additional-services?ref=tmpl' } } " @@ -290,7 +281,7 @@
-
+
{{ context.title }} @@ -312,7 +303,7 @@ -
+
@@ -324,3 +315,19 @@
+ + From ab7ab2dcb3ae0b4792478caf3a4fa14098d96da3 Mon Sep 17 00:00:00 2001 From: maliming <6908465+maliming@users.noreply.github.com> Date: Wed, 14 Oct 2020 13:57:17 +0800 Subject: [PATCH 180/242] Update package to net 5 RC 2. --- ....AspNetCore.Authentication.JwtBearer.csproj | 2 +- ...NetCore.Authentication.OpenIdConnect.csproj | 2 +- ...bp.AspNetCore.Components.WebAssembly.csproj | 4 ++-- ....AspNetCore.Mvc.UI.Theme.Shared.Demo.csproj | 2 +- .../Volo.Abp.AspNetCore.Mvc.csproj | 4 ++-- .../Volo.Abp.AspNetCore.TestBase.csproj | 2 +- .../Volo.Abp.Authorization.csproj | 2 +- .../Volo.Abp.Autofac/Volo.Abp.Autofac.csproj | 2 +- .../Volo.Abp.Caching.StackExchangeRedis.csproj | 2 +- .../Volo.Abp.Caching/Volo.Abp.Caching.csproj | 2 +- framework/src/Volo.Abp.Cli/Volo.Abp.Cli.csproj | 4 ++-- .../src/Volo.Abp.Core/Volo.Abp.Core.csproj | 18 +++++++++--------- ...lo.Abp.EntityFrameworkCore.SqlServer.csproj | 2 +- .../Volo.Abp.EntityFrameworkCore.Sqlite.csproj | 2 +- .../Volo.Abp.EntityFrameworkCore.csproj | 4 ++-- .../Volo.Abp.ExceptionHandling.csproj | 2 +- ...ttp.Client.IdentityModel.WebAssembly.csproj | 2 +- .../Volo.Abp.Http.Client.csproj | 2 +- .../Volo.Abp.IdentityModel.csproj | 2 +- .../Volo.Abp.VirtualFileSystem.csproj | 6 +++--- .../SimpleConsoleDemo/SimpleConsoleDemo.csproj | 2 +- ...Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj | 2 +- ...p.AspNetCore.Mvc.UI.Theme.Basic.Demo.csproj | 2 +- .../Volo.Abp.BlobStoring.Aliyun.Tests.csproj | 2 +- .../Volo.Abp.VirtualFileSystem.Tests.csproj | 2 +- ...lo.Abp.Account.Application.Contracts.csproj | 2 +- .../Volo.Abp.Account.Application.csproj | 4 ++-- .../Volo.Abp.Account.Web.IdentityServer.csproj | 2 +- .../Volo.Abp.Account.Web.csproj | 2 +- .../Volo.Abp.Account.Application.Tests.csproj | 2 +- ...ditLogging.EntityFrameworkCore.Tests.csproj | 2 +- ...lo.Abp.BackgroundJobs.DemoApp.Shared.csproj | 2 +- .../Volo.Abp.BackgroundJobs.DemoApp.csproj | 2 +- ...groundJobs.EntityFrameworkCore.Tests.csproj | 2 +- ....Database.Host.ConsoleApp.ConsoleApp.csproj | 6 +++--- ...g.Database.EntityFrameworkCore.Tests.csproj | 6 +++--- ....BloggingTestApp.EntityFrameworkCore.csproj | 4 ++-- .../Volo.Blogging.Admin.Web.csproj | 2 +- .../Volo.Blogging.Domain.Shared.csproj | 2 +- .../Volo.Blogging.Web/Volo.Blogging.Web.csproj | 2 +- .../Volo.CmsKit.HttpApi.Host.csproj | 6 +++--- .../Volo.CmsKit.IdentityServer.csproj | 4 ++-- .../Volo.CmsKit.Web.Host.csproj | 4 ++-- .../Volo.CmsKit.Web.Unified.csproj | 2 +- .../Volo.CmsKit.Admin.Web.csproj | 2 +- .../Volo.CmsKit.Common.Web.csproj | 2 +- .../Volo.CmsKit.Domain.Shared.csproj | 2 +- .../Volo.CmsKit.Public.Web.csproj | 2 +- .../src/Volo.CmsKit.Web/Volo.CmsKit.Web.csproj | 2 +- ...olo.CmsKit.EntityFrameworkCore.Tests.csproj | 2 +- ...CmsKit.HttpApi.Client.ConsoleTestApp.csproj | 2 +- .../VoloDocs.EntityFrameworkCore.csproj | 4 ++-- ...olo.Docs.Admin.Application.Contracts.csproj | 2 +- .../Volo.Docs.Admin.Web.csproj | 2 +- .../Volo.Docs.Domain/Volo.Docs.Domain.csproj | 4 ++-- .../src/Volo.Docs.Web/Volo.Docs.Web.csproj | 2 +- .../Volo.Docs.EntityFrameworkCore.Tests.csproj | 2 +- ....Abp.FeatureManagement.Domain.Shared.csproj | 2 +- .../Volo.Abp.FeatureManagement.Web.csproj | 2 +- ...Management.EntityFrameworkCore.Tests.csproj | 2 +- .../Volo.Abp.Identity.Domain.Shared.csproj | 2 +- .../Volo.Abp.Identity.Domain.csproj | 2 +- .../Volo.Abp.Identity.Web.csproj | 2 +- ...p.Identity.EntityFrameworkCore.Tests.csproj | 2 +- ...p.PermissionManagement.Domain.Shared.csproj | 2 +- .../Volo.Abp.PermissionManagement.Web.csproj | 2 +- ...bp.PermissionManagement.Domain.Tests.csproj | 2 +- ...Management.EntityFrameworkCore.Tests.csproj | 2 +- ....Abp.SettingManagement.Domain.Shared.csproj | 2 +- .../Volo.Abp.SettingManagement.Web.csproj | 2 +- ...o.Abp.TenantManagement.Domain.Shared.csproj | 2 +- .../Volo.Abp.TenantManagement.Web.csproj | 2 +- ...Management.EntityFrameworkCore.Tests.csproj | 2 +- .../MyCompanyName.MyProjectName.Blazor.csproj | 4 ++-- ...CompanyName.MyProjectName.DbMigrator.csproj | 2 +- ...panyName.MyProjectName.Domain.Shared.csproj | 2 +- ...ame.EntityFrameworkCore.DbMigrations.csproj | 2 +- ...mpanyName.MyProjectName.HttpApi.Host.csproj | 6 +++--- ...me.MyProjectName.HttpApi.HostWithIds.csproj | 2 +- ...anyName.MyProjectName.IdentityServer.csproj | 4 ++-- ...MyCompanyName.MyProjectName.Web.Host.csproj | 2 +- .../MyCompanyName.MyProjectName.Web.csproj | 2 +- ...ctName.HttpApi.Client.ConsoleTestApp.csproj | 2 +- .../MyCompanyName.MyProjectName.csproj | 2 +- ...ompanyName.MyProjectName.Blazor.Host.csproj | 4 ++-- ...mpanyName.MyProjectName.HttpApi.Host.csproj | 6 +++--- ...anyName.MyProjectName.IdentityServer.csproj | 4 ++-- ...MyCompanyName.MyProjectName.Web.Host.csproj | 2 +- ...ompanyName.MyProjectName.Web.Unified.csproj | 2 +- ...panyName.MyProjectName.Domain.Shared.csproj | 2 +- .../MyCompanyName.MyProjectName.Web.csproj | 2 +- ...rojectName.EntityFrameworkCore.Tests.csproj | 2 +- ...ctName.HttpApi.Client.ConsoleTestApp.csproj | 2 +- 93 files changed, 127 insertions(+), 127 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Authentication.JwtBearer/Volo.Abp.AspNetCore.Authentication.JwtBearer.csproj b/framework/src/Volo.Abp.AspNetCore.Authentication.JwtBearer/Volo.Abp.AspNetCore.Authentication.JwtBearer.csproj index 4132cfb6e6..97b9c6dc0a 100644 --- a/framework/src/Volo.Abp.AspNetCore.Authentication.JwtBearer/Volo.Abp.AspNetCore.Authentication.JwtBearer.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Authentication.JwtBearer/Volo.Abp.AspNetCore.Authentication.JwtBearer.csproj @@ -19,7 +19,7 @@ - + diff --git a/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Volo.Abp.AspNetCore.Authentication.OpenIdConnect.csproj b/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Volo.Abp.AspNetCore.Authentication.OpenIdConnect.csproj index 4e40e1bcf9..bac9441f00 100644 --- a/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Volo.Abp.AspNetCore.Authentication.OpenIdConnect.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Volo.Abp.AspNetCore.Authentication.OpenIdConnect.csproj @@ -9,7 +9,7 @@ - + diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo.Abp.AspNetCore.Components.WebAssembly.csproj b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo.Abp.AspNetCore.Components.WebAssembly.csproj index 97f9188b17..44a816678c 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo.Abp.AspNetCore.Components.WebAssembly.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo.Abp.AspNetCore.Components.WebAssembly.csproj @@ -20,8 +20,8 @@ - - + + diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.csproj index 49642dfeb7..3d20feea08 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.csproj @@ -26,7 +26,7 @@ - + diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.csproj index 9a5352d3c0..3e691f57f3 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.csproj @@ -27,9 +27,9 @@ - + - + diff --git a/framework/src/Volo.Abp.AspNetCore.TestBase/Volo.Abp.AspNetCore.TestBase.csproj b/framework/src/Volo.Abp.AspNetCore.TestBase/Volo.Abp.AspNetCore.TestBase.csproj index bb92260079..d571bf4d72 100644 --- a/framework/src/Volo.Abp.AspNetCore.TestBase/Volo.Abp.AspNetCore.TestBase.csproj +++ b/framework/src/Volo.Abp.AspNetCore.TestBase/Volo.Abp.AspNetCore.TestBase.csproj @@ -24,7 +24,7 @@ - + diff --git a/framework/src/Volo.Abp.Authorization/Volo.Abp.Authorization.csproj b/framework/src/Volo.Abp.Authorization/Volo.Abp.Authorization.csproj index f90afb7577..edfe716335 100644 --- a/framework/src/Volo.Abp.Authorization/Volo.Abp.Authorization.csproj +++ b/framework/src/Volo.Abp.Authorization/Volo.Abp.Authorization.csproj @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.csproj b/framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.csproj index 1caf9ea5b8..ae61d6b870 100644 --- a/framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.csproj +++ b/framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.csproj @@ -17,7 +17,7 @@ - + diff --git a/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo.Abp.Caching.StackExchangeRedis.csproj b/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo.Abp.Caching.StackExchangeRedis.csproj index b1da35396c..48304420e6 100644 --- a/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo.Abp.Caching.StackExchangeRedis.csproj +++ b/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo.Abp.Caching.StackExchangeRedis.csproj @@ -19,7 +19,7 @@ - + diff --git a/framework/src/Volo.Abp.Caching/Volo.Abp.Caching.csproj b/framework/src/Volo.Abp.Caching/Volo.Abp.Caching.csproj index 1015838673..757d95d2bc 100644 --- a/framework/src/Volo.Abp.Caching/Volo.Abp.Caching.csproj +++ b/framework/src/Volo.Abp.Caching/Volo.Abp.Caching.csproj @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.Cli/Volo.Abp.Cli.csproj b/framework/src/Volo.Abp.Cli/Volo.Abp.Cli.csproj index 017afaa4cf..79760820d8 100644 --- a/framework/src/Volo.Abp.Cli/Volo.Abp.Cli.csproj +++ b/framework/src/Volo.Abp.Cli/Volo.Abp.Cli.csproj @@ -18,8 +18,8 @@ - - + + diff --git a/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj b/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj index 6301e223b0..4414eed1c6 100644 --- a/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj +++ b/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj @@ -16,15 +16,15 @@ - - - - - - - - - + + + + + + + + + diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo.Abp.EntityFrameworkCore.SqlServer.csproj b/framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo.Abp.EntityFrameworkCore.SqlServer.csproj index 9dfc9ce0a0..ff0e06ebae 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo.Abp.EntityFrameworkCore.SqlServer.csproj +++ b/framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo.Abp.EntityFrameworkCore.SqlServer.csproj @@ -19,7 +19,7 @@ - + diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo.Abp.EntityFrameworkCore.Sqlite.csproj b/framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo.Abp.EntityFrameworkCore.Sqlite.csproj index 8f5ae1e052..010f419374 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo.Abp.EntityFrameworkCore.Sqlite.csproj +++ b/framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo.Abp.EntityFrameworkCore.Sqlite.csproj @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo.Abp.EntityFrameworkCore.csproj b/framework/src/Volo.Abp.EntityFrameworkCore/Volo.Abp.EntityFrameworkCore.csproj index 7175c368d5..a123570984 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo.Abp.EntityFrameworkCore.csproj +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo.Abp.EntityFrameworkCore.csproj @@ -20,8 +20,8 @@ - - + + diff --git a/framework/src/Volo.Abp.ExceptionHandling/Volo.Abp.ExceptionHandling.csproj b/framework/src/Volo.Abp.ExceptionHandling/Volo.Abp.ExceptionHandling.csproj index 127d48619b..d0aa06056e 100644 --- a/framework/src/Volo.Abp.ExceptionHandling/Volo.Abp.ExceptionHandling.csproj +++ b/framework/src/Volo.Abp.ExceptionHandling/Volo.Abp.ExceptionHandling.csproj @@ -19,7 +19,7 @@ - + diff --git a/framework/src/Volo.Abp.Http.Client.IdentityModel.WebAssembly/Volo.Abp.Http.Client.IdentityModel.WebAssembly.csproj b/framework/src/Volo.Abp.Http.Client.IdentityModel.WebAssembly/Volo.Abp.Http.Client.IdentityModel.WebAssembly.csproj index e5c079c8ac..95270edc7c 100644 --- a/framework/src/Volo.Abp.Http.Client.IdentityModel.WebAssembly/Volo.Abp.Http.Client.IdentityModel.WebAssembly.csproj +++ b/framework/src/Volo.Abp.Http.Client.IdentityModel.WebAssembly/Volo.Abp.Http.Client.IdentityModel.WebAssembly.csproj @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.Http.Client/Volo.Abp.Http.Client.csproj b/framework/src/Volo.Abp.Http.Client/Volo.Abp.Http.Client.csproj index 7607773070..a96f3afd4a 100644 --- a/framework/src/Volo.Abp.Http.Client/Volo.Abp.Http.Client.csproj +++ b/framework/src/Volo.Abp.Http.Client/Volo.Abp.Http.Client.csproj @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.IdentityModel/Volo.Abp.IdentityModel.csproj b/framework/src/Volo.Abp.IdentityModel/Volo.Abp.IdentityModel.csproj index c716c54031..eb5bc35428 100644 --- a/framework/src/Volo.Abp.IdentityModel/Volo.Abp.IdentityModel.csproj +++ b/framework/src/Volo.Abp.IdentityModel/Volo.Abp.IdentityModel.csproj @@ -16,7 +16,7 @@ - + diff --git a/framework/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj b/framework/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj index 8f20f770c1..748524acd2 100644 --- a/framework/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj +++ b/framework/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj @@ -15,9 +15,9 @@ - - - + + + diff --git a/framework/test/SimpleConsoleDemo/SimpleConsoleDemo.csproj b/framework/test/SimpleConsoleDemo/SimpleConsoleDemo.csproj index ddad34e68c..cbb90d7379 100644 --- a/framework/test/SimpleConsoleDemo/SimpleConsoleDemo.csproj +++ b/framework/test/SimpleConsoleDemo/SimpleConsoleDemo.csproj @@ -18,7 +18,7 @@ - + diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj index 1595a5009c..f4f91b2629 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj @@ -8,7 +8,7 @@ - + diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.csproj b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.csproj index e615725b54..606c1a5122 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.csproj @@ -15,7 +15,7 @@ - + diff --git a/framework/test/Volo.Abp.BlobStoring.Aliyun.Tests/Volo.Abp.BlobStoring.Aliyun.Tests.csproj b/framework/test/Volo.Abp.BlobStoring.Aliyun.Tests/Volo.Abp.BlobStoring.Aliyun.Tests.csproj index 2d94b1a324..f400d8e552 100644 --- a/framework/test/Volo.Abp.BlobStoring.Aliyun.Tests/Volo.Abp.BlobStoring.Aliyun.Tests.csproj +++ b/framework/test/Volo.Abp.BlobStoring.Aliyun.Tests/Volo.Abp.BlobStoring.Aliyun.Tests.csproj @@ -12,7 +12,7 @@ - + diff --git a/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo.Abp.VirtualFileSystem.Tests.csproj b/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo.Abp.VirtualFileSystem.Tests.csproj index 4cfedc5365..cc51ad5e35 100644 --- a/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo.Abp.VirtualFileSystem.Tests.csproj +++ b/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo.Abp.VirtualFileSystem.Tests.csproj @@ -16,7 +16,7 @@ - + diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo.Abp.Account.Application.Contracts.csproj b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo.Abp.Account.Application.Contracts.csproj index 785e268aa6..a15db40e48 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo.Abp.Account.Application.Contracts.csproj +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo.Abp.Account.Application.Contracts.csproj @@ -21,7 +21,7 @@ - + diff --git a/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.csproj b/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.csproj index 94cea0fb74..fd7f8f2e3c 100644 --- a/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.csproj +++ b/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.csproj @@ -17,7 +17,7 @@ - + @@ -25,7 +25,7 @@ - + diff --git a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Volo.Abp.Account.Web.IdentityServer.csproj b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Volo.Abp.Account.Web.IdentityServer.csproj index 135d5d53f8..ec41402629 100644 --- a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Volo.Abp.Account.Web.IdentityServer.csproj +++ b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Volo.Abp.Account.Web.IdentityServer.csproj @@ -38,7 +38,7 @@ - + diff --git a/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.csproj b/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.csproj index c8c1365388..c2053ccaff 100644 --- a/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.csproj +++ b/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.csproj @@ -40,7 +40,7 @@ - + diff --git a/modules/account/test/Volo.Abp.Account.Application.Tests/Volo.Abp.Account.Application.Tests.csproj b/modules/account/test/Volo.Abp.Account.Application.Tests/Volo.Abp.Account.Application.Tests.csproj index af2296595c..b48d633d96 100644 --- a/modules/account/test/Volo.Abp.Account.Application.Tests/Volo.Abp.Account.Application.Tests.csproj +++ b/modules/account/test/Volo.Abp.Account.Application.Tests/Volo.Abp.Account.Application.Tests.csproj @@ -7,7 +7,7 @@ - + diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests.csproj b/modules/audit-logging/test/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests.csproj index 718a01f577..d98c6f01e2 100644 --- a/modules/audit-logging/test/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests.csproj +++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests.csproj @@ -15,7 +15,7 @@ - + diff --git a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Shared/Volo.Abp.BackgroundJobs.DemoApp.Shared.csproj b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Shared/Volo.Abp.BackgroundJobs.DemoApp.Shared.csproj index da53ab33fa..e01e0f89b5 100644 --- a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Shared/Volo.Abp.BackgroundJobs.DemoApp.Shared.csproj +++ b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Shared/Volo.Abp.BackgroundJobs.DemoApp.Shared.csproj @@ -7,7 +7,7 @@ - + diff --git a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/Volo.Abp.BackgroundJobs.DemoApp.csproj b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/Volo.Abp.BackgroundJobs.DemoApp.csproj index 9e8790f5a2..00ad8439b9 100644 --- a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/Volo.Abp.BackgroundJobs.DemoApp.csproj +++ b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/Volo.Abp.BackgroundJobs.DemoApp.csproj @@ -6,7 +6,7 @@ - + all runtime; build; native; contentfiles; analyzers diff --git a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests.csproj b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests.csproj index 493a26afb0..33d81803df 100644 --- a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests.csproj +++ b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests.csproj @@ -15,7 +15,7 @@ - + diff --git a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/BlobStoring.Database.Host.ConsoleApp.ConsoleApp.csproj b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/BlobStoring.Database.Host.ConsoleApp.ConsoleApp.csproj index bea0e27228..906bb08e7e 100644 --- a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/BlobStoring.Database.Host.ConsoleApp.ConsoleApp.csproj +++ b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/BlobStoring.Database.Host.ConsoleApp.ConsoleApp.csproj @@ -20,13 +20,13 @@ - + - - + + diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests.csproj b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests.csproj index d32cb4f72a..42a2defd23 100644 --- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests.csproj +++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests.csproj @@ -7,9 +7,9 @@ - - - + + + diff --git a/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.csproj b/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.csproj index 108bad8fc8..c20efb9ba9 100644 --- a/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.csproj +++ b/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.csproj @@ -16,8 +16,8 @@ - - + + diff --git a/modules/blogging/src/Volo.Blogging.Admin.Web/Volo.Blogging.Admin.Web.csproj b/modules/blogging/src/Volo.Blogging.Admin.Web/Volo.Blogging.Admin.Web.csproj index 6559a1acbc..d56298d39d 100644 --- a/modules/blogging/src/Volo.Blogging.Admin.Web/Volo.Blogging.Admin.Web.csproj +++ b/modules/blogging/src/Volo.Blogging.Admin.Web/Volo.Blogging.Admin.Web.csproj @@ -24,7 +24,7 @@ - + diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.csproj b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.csproj index 0e43fe1456..83ba117670 100644 --- a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.csproj +++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.csproj @@ -21,7 +21,7 @@ - + diff --git a/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.csproj b/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.csproj index 90dd0ca9f5..20341c2df5 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.csproj +++ b/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.csproj @@ -24,7 +24,7 @@ - + diff --git a/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Volo.CmsKit.HttpApi.Host.csproj b/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Volo.CmsKit.HttpApi.Host.csproj index 186bc449a0..a81b088c54 100644 --- a/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Volo.CmsKit.HttpApi.Host.csproj +++ b/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Volo.CmsKit.HttpApi.Host.csproj @@ -14,9 +14,9 @@ - - - + + + diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/Volo.CmsKit.IdentityServer.csproj b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/Volo.CmsKit.IdentityServer.csproj index 5da6715422..c62935e032 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/Volo.CmsKit.IdentityServer.csproj +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/Volo.CmsKit.IdentityServer.csproj @@ -11,8 +11,8 @@ - - + + diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/Volo.CmsKit.Web.Host.csproj b/modules/cms-kit/host/Volo.CmsKit.Web.Host/Volo.CmsKit.Web.Host.csproj index 4ba2a01e15..bb7592e7b4 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/Volo.CmsKit.Web.Host.csproj +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/Volo.CmsKit.Web.Host.csproj @@ -13,8 +13,8 @@ - - + + diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Volo.CmsKit.Web.Unified.csproj b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Volo.CmsKit.Web.Unified.csproj index 210ad89850..c7a507d2b5 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Volo.CmsKit.Web.Unified.csproj +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Volo.CmsKit.Web.Unified.csproj @@ -13,7 +13,7 @@ - + diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.csproj b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.csproj index 1e77151d0c..94641fbfb1 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.csproj @@ -18,7 +18,7 @@ - + diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.csproj b/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.csproj index 5a09acba2d..80b92209a8 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.csproj @@ -19,7 +19,7 @@ - + diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.csproj b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.csproj index 55f05c24c7..84744e79b7 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.csproj @@ -12,7 +12,7 @@ - + diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.csproj b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.csproj index 624dc2767e..57e6ec872e 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.csproj @@ -15,7 +15,7 @@ - + diff --git a/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.csproj b/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.csproj index 9e437416dd..e7dd506f08 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.csproj @@ -19,7 +19,7 @@ - + diff --git a/modules/cms-kit/test/Volo.CmsKit.EntityFrameworkCore.Tests/Volo.CmsKit.EntityFrameworkCore.Tests.csproj b/modules/cms-kit/test/Volo.CmsKit.EntityFrameworkCore.Tests/Volo.CmsKit.EntityFrameworkCore.Tests.csproj index 072eb55696..060278f8fa 100644 --- a/modules/cms-kit/test/Volo.CmsKit.EntityFrameworkCore.Tests/Volo.CmsKit.EntityFrameworkCore.Tests.csproj +++ b/modules/cms-kit/test/Volo.CmsKit.EntityFrameworkCore.Tests/Volo.CmsKit.EntityFrameworkCore.Tests.csproj @@ -9,7 +9,7 @@ - + diff --git a/modules/cms-kit/test/Volo.CmsKit.HttpApi.Client.ConsoleTestApp/Volo.CmsKit.HttpApi.Client.ConsoleTestApp.csproj b/modules/cms-kit/test/Volo.CmsKit.HttpApi.Client.ConsoleTestApp/Volo.CmsKit.HttpApi.Client.ConsoleTestApp.csproj index 540ec29dd8..ffb0100ed0 100644 --- a/modules/cms-kit/test/Volo.CmsKit.HttpApi.Client.ConsoleTestApp/Volo.CmsKit.HttpApi.Client.ConsoleTestApp.csproj +++ b/modules/cms-kit/test/Volo.CmsKit.HttpApi.Client.ConsoleTestApp/Volo.CmsKit.HttpApi.Client.ConsoleTestApp.csproj @@ -20,7 +20,7 @@ - + diff --git a/modules/docs/app/VoloDocs.EntityFrameworkCore/VoloDocs.EntityFrameworkCore.csproj b/modules/docs/app/VoloDocs.EntityFrameworkCore/VoloDocs.EntityFrameworkCore.csproj index 411a6825b8..8f648b3dec 100644 --- a/modules/docs/app/VoloDocs.EntityFrameworkCore/VoloDocs.EntityFrameworkCore.csproj +++ b/modules/docs/app/VoloDocs.EntityFrameworkCore/VoloDocs.EntityFrameworkCore.csproj @@ -16,8 +16,8 @@ - - + + diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.csproj b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.csproj index 6e5f066685..cd357fc46a 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.csproj +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.csproj @@ -22,7 +22,7 @@ - + diff --git a/modules/docs/src/Volo.Docs.Admin.Web/Volo.Docs.Admin.Web.csproj b/modules/docs/src/Volo.Docs.Admin.Web/Volo.Docs.Admin.Web.csproj index e682942ae9..d5b8f49f19 100644 --- a/modules/docs/src/Volo.Docs.Admin.Web/Volo.Docs.Admin.Web.csproj +++ b/modules/docs/src/Volo.Docs.Admin.Web/Volo.Docs.Admin.Web.csproj @@ -27,7 +27,7 @@ - + diff --git a/modules/docs/src/Volo.Docs.Domain/Volo.Docs.Domain.csproj b/modules/docs/src/Volo.Docs.Domain/Volo.Docs.Domain.csproj index 1bfc2a1afb..5fc5cd77f6 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo.Docs.Domain.csproj +++ b/modules/docs/src/Volo.Docs.Domain/Volo.Docs.Domain.csproj @@ -17,10 +17,10 @@ - + - + diff --git a/modules/docs/src/Volo.Docs.Web/Volo.Docs.Web.csproj b/modules/docs/src/Volo.Docs.Web/Volo.Docs.Web.csproj index d15f1920b9..540866dbd1 100644 --- a/modules/docs/src/Volo.Docs.Web/Volo.Docs.Web.csproj +++ b/modules/docs/src/Volo.Docs.Web/Volo.Docs.Web.csproj @@ -24,7 +24,7 @@ - + diff --git a/modules/docs/test/Volo.Docs.EntityFrameworkCore.Tests/Volo.Docs.EntityFrameworkCore.Tests.csproj b/modules/docs/test/Volo.Docs.EntityFrameworkCore.Tests/Volo.Docs.EntityFrameworkCore.Tests.csproj index 2929bf1af0..b979007f84 100644 --- a/modules/docs/test/Volo.Docs.EntityFrameworkCore.Tests/Volo.Docs.EntityFrameworkCore.Tests.csproj +++ b/modules/docs/test/Volo.Docs.EntityFrameworkCore.Tests/Volo.Docs.EntityFrameworkCore.Tests.csproj @@ -7,7 +7,7 @@ - + diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo.Abp.FeatureManagement.Domain.Shared.csproj b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo.Abp.FeatureManagement.Domain.Shared.csproj index 8191c92f3c..72513557ec 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo.Abp.FeatureManagement.Domain.Shared.csproj +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo.Abp.FeatureManagement.Domain.Shared.csproj @@ -15,7 +15,7 @@ - + diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Volo.Abp.FeatureManagement.Web.csproj b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Volo.Abp.FeatureManagement.Web.csproj index 58238ef69e..36bc6cd239 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Volo.Abp.FeatureManagement.Web.csproj +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Volo.Abp.FeatureManagement.Web.csproj @@ -24,7 +24,7 @@ - + diff --git a/modules/feature-management/test/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests.csproj b/modules/feature-management/test/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests.csproj index a4ecdaaa2a..9ad9ea8c9c 100644 --- a/modules/feature-management/test/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests.csproj +++ b/modules/feature-management/test/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests.csproj @@ -15,7 +15,7 @@ - + diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.csproj b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.csproj index 477433ed2d..ba5b69720d 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.csproj +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.csproj @@ -27,7 +27,7 @@ - + diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.csproj b/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.csproj index 8ba2247cb9..670f686cfd 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.csproj +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.csproj @@ -30,7 +30,7 @@ - + diff --git a/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.csproj b/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.csproj index 678676779b..690d9ec6f4 100644 --- a/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.csproj +++ b/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.csproj @@ -43,7 +43,7 @@ - + diff --git a/modules/identity/test/Volo.Abp.Identity.EntityFrameworkCore.Tests/Volo.Abp.Identity.EntityFrameworkCore.Tests.csproj b/modules/identity/test/Volo.Abp.Identity.EntityFrameworkCore.Tests/Volo.Abp.Identity.EntityFrameworkCore.Tests.csproj index c61a4c3309..dcdf00e451 100644 --- a/modules/identity/test/Volo.Abp.Identity.EntityFrameworkCore.Tests/Volo.Abp.Identity.EntityFrameworkCore.Tests.csproj +++ b/modules/identity/test/Volo.Abp.Identity.EntityFrameworkCore.Tests/Volo.Abp.Identity.EntityFrameworkCore.Tests.csproj @@ -20,7 +20,7 @@ - + diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo.Abp.PermissionManagement.Domain.Shared.csproj b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo.Abp.PermissionManagement.Domain.Shared.csproj index e70feb1388..68f1166326 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo.Abp.PermissionManagement.Domain.Shared.csproj +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo.Abp.PermissionManagement.Domain.Shared.csproj @@ -25,7 +25,7 @@ - + diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Volo.Abp.PermissionManagement.Web.csproj b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Volo.Abp.PermissionManagement.Web.csproj index 4e9c229e2b..44ed5e9f88 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Volo.Abp.PermissionManagement.Web.csproj +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Volo.Abp.PermissionManagement.Web.csproj @@ -32,7 +32,7 @@ - + diff --git a/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo.Abp.PermissionManagement.Domain.Tests.csproj b/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo.Abp.PermissionManagement.Domain.Tests.csproj index 1faaaa6b2a..692cda97e9 100644 --- a/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo.Abp.PermissionManagement.Domain.Tests.csproj +++ b/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo.Abp.PermissionManagement.Domain.Tests.csproj @@ -17,7 +17,7 @@ - + diff --git a/modules/permission-management/test/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests.csproj b/modules/permission-management/test/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests.csproj index 490622f3c8..fffc43852c 100644 --- a/modules/permission-management/test/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests.csproj +++ b/modules/permission-management/test/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests.csproj @@ -17,7 +17,7 @@ - + diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo.Abp.SettingManagement.Domain.Shared.csproj b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo.Abp.SettingManagement.Domain.Shared.csproj index 4992936fbe..3b1c037a4b 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo.Abp.SettingManagement.Domain.Shared.csproj +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo.Abp.SettingManagement.Domain.Shared.csproj @@ -21,7 +21,7 @@ - + diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Volo.Abp.SettingManagement.Web.csproj b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Volo.Abp.SettingManagement.Web.csproj index 15b51231db..b841112085 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Volo.Abp.SettingManagement.Web.csproj +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Volo.Abp.SettingManagement.Web.csproj @@ -21,7 +21,7 @@ - + diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo.Abp.TenantManagement.Domain.Shared.csproj b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo.Abp.TenantManagement.Domain.Shared.csproj index ae1687f800..be0a123294 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo.Abp.TenantManagement.Domain.Shared.csproj +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo.Abp.TenantManagement.Domain.Shared.csproj @@ -25,7 +25,7 @@ - + diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Volo.Abp.TenantManagement.Web.csproj b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Volo.Abp.TenantManagement.Web.csproj index 59ce8c7dc1..ab702e874d 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Volo.Abp.TenantManagement.Web.csproj +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Volo.Abp.TenantManagement.Web.csproj @@ -35,7 +35,7 @@ - + diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests.csproj b/modules/tenant-management/test/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests.csproj index d2774e22ce..9443cce6c9 100644 --- a/modules/tenant-management/test/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests.csproj +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests.csproj @@ -19,7 +19,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj index f368f76811..740c1df4c1 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj @@ -7,8 +7,8 @@ - - + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj index fcb9f2e4de..8c46ad5946 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.DbMigrator/MyCompanyName.MyProjectName.DbMigrator.csproj @@ -23,7 +23,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.csproj index 5600ff8b3a..627a072cdc 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.csproj @@ -25,7 +25,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations.csproj index 178076a707..fedc72ecc2 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations/MyCompanyName.MyProjectName.EntityFrameworkCore.DbMigrations.csproj @@ -12,7 +12,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj index 6ca42b6706..26f3d6148a 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj @@ -13,9 +13,9 @@ - - - + + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj index 46d6844c9f..d4cb35b5b0 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/MyCompanyName.MyProjectName.HttpApi.HostWithIds.csproj @@ -13,7 +13,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj index 57174c6c5b..456b8ca312 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj @@ -34,8 +34,8 @@ - - + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj index adf313a72b..f6a7f0e8ea 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj @@ -19,7 +19,7 @@ - + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj index 0cb41a2312..9ec231237d 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj @@ -35,7 +35,7 @@ - + diff --git a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj index 3274a15c8d..b8837c8804 100644 --- a/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj +++ b/templates/app/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj @@ -22,7 +22,7 @@ - + diff --git a/templates/console/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj b/templates/console/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj index 9693855cc3..65101175a6 100644 --- a/templates/console/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj +++ b/templates/console/src/MyCompanyName.MyProjectName/MyCompanyName.MyProjectName.csproj @@ -12,7 +12,7 @@ - + diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyCompanyName.MyProjectName.Blazor.Host.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyCompanyName.MyProjectName.Blazor.Host.csproj index f284d78c0d..eacb8f447d 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyCompanyName.MyProjectName.Blazor.Host.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyCompanyName.MyProjectName.Blazor.Host.csproj @@ -9,8 +9,8 @@ - - + + diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj index f972c8ef7d..2d29e55d81 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.HttpApi.Host/MyCompanyName.MyProjectName.HttpApi.Host.csproj @@ -14,9 +14,9 @@ - - - + + + diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj index 850e2b2695..2f36e6d3ef 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.IdentityServer/MyCompanyName.MyProjectName.IdentityServer.csproj @@ -11,8 +11,8 @@ - - + + diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj index a81eb640a1..92fda72099 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Host/MyCompanyName.MyProjectName.Web.Host.csproj @@ -13,7 +13,7 @@ - + diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj index 03e38e6a5c..fb576d02cd 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Web.Unified/MyCompanyName.MyProjectName.Web.Unified.csproj @@ -13,7 +13,7 @@ - + diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.csproj b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.csproj index db35d81c6d..3988d70e5e 100644 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.csproj +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Domain.Shared/MyCompanyName.MyProjectName.Domain.Shared.csproj @@ -13,7 +13,7 @@ - + diff --git a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj index 8c97f295da..3db36aafe3 100644 --- a/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj +++ b/templates/module/aspnet-core/src/MyCompanyName.MyProjectName.Web/MyCompanyName.MyProjectName.Web.csproj @@ -21,7 +21,7 @@ - + diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj index 3d6358a9ec..8de0298aae 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests/MyCompanyName.MyProjectName.EntityFrameworkCore.Tests.csproj @@ -9,7 +9,7 @@ - + diff --git a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj index 50c7af2f3f..95c38a9087 100644 --- a/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj +++ b/templates/module/aspnet-core/test/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp/MyCompanyName.MyProjectName.HttpApi.Client.ConsoleTestApp.csproj @@ -20,7 +20,7 @@ - + From 62d206419fa859a989cfeb32a8ef12cf7a58e7a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Wed, 14 Oct 2020 10:27:21 +0300 Subject: [PATCH 181/242] Delete NullUiMessageService.cs --- .../WebAssembly/NullUiMessageService.cs | 34 ------------------- 1 file changed, 34 deletions(-) delete mode 100644 framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/NullUiMessageService.cs diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/NullUiMessageService.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/NullUiMessageService.cs deleted file mode 100644 index 2a00d29ec5..0000000000 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/NullUiMessageService.cs +++ /dev/null @@ -1,34 +0,0 @@ -using System; -using System.Threading.Tasks; -using Volo.Abp.DependencyInjection; - -namespace Volo.Abp.AspNetCore.Components.WebAssembly -{ - public class NullUiMessageService : IUiMessageService, ITransientDependency - { - public Task InfoAsync(string message, string title = null, Action options = null) - { - return Task.CompletedTask; - } - - public Task SuccessAsync(string message, string title = null, Action options = null) - { - return Task.CompletedTask; - } - - public Task WarnAsync(string message, string title = null, Action options = null) - { - return Task.CompletedTask; - } - - public Task ErrorAsync(string message, string title = null, Action options = null) - { - return Task.CompletedTask; - } - - public Task ConfirmAsync(string message, string title = null, Action options = null) - { - return Task.FromResult(true); - } - } -} From 975a0cfcada4a9f480df00314267c05a796645e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Wed, 14 Oct 2020 10:31:52 +0300 Subject: [PATCH 182/242] Blazor exception handling refactor & test code. --- .../AbpExceptionHandlingLogger.cs | 2 +- .../IUserExceptionInformer.cs | 7 ++-- .../UserExceptionInformer.cs | 34 +++++++++++-------- ...geService.cs => SimpleUiMessageService.cs} | 5 ++- .../BlazoriseUiMessageService.cs | 5 +++ .../Pages/Index.razor | 2 ++ .../Pages/Index.razor.cs | 10 ++++-- 7 files changed, 39 insertions(+), 26 deletions(-) rename framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/{UiMessageService.cs => SimpleUiMessageService.cs} (87%) diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/AbpExceptionHandlingLogger.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/AbpExceptionHandlingLogger.cs index 445ccbaba0..39ce5b9395 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/AbpExceptionHandlingLogger.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/AbpExceptionHandlingLogger.cs @@ -39,7 +39,7 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly.ExceptionHandling return; } - _userExceptionInformer.InformAsync(new UserExceptionInformerContext(exception)); + _userExceptionInformer.Inform(new UserExceptionInformerContext(exception)); } protected virtual void TryInitialize() diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/IUserExceptionInformer.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/IUserExceptionInformer.cs index 4399e706ec..2abbe3667b 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/IUserExceptionInformer.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/IUserExceptionInformer.cs @@ -1,10 +1,7 @@ -using System; -using System.Threading.Tasks; - -namespace Volo.Abp.AspNetCore.Components.WebAssembly.ExceptionHandling +namespace Volo.Abp.AspNetCore.Components.WebAssembly.ExceptionHandling { public interface IUserExceptionInformer { - Task InformAsync(UserExceptionInformerContext context); + void Inform(UserExceptionInformerContext context); } } diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/UserExceptionInformer.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/UserExceptionInformer.cs index 80f80c675a..a431d31202 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/UserExceptionInformer.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/UserExceptionInformer.cs @@ -1,5 +1,7 @@ using System; using System.Threading.Tasks; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Logging.Abstractions; using Volo.Abp.AspNetCore.ExceptionHandling; using Volo.Abp.DependencyInjection; using Volo.Abp.Http; @@ -9,19 +11,33 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly.ExceptionHandling { public class UserExceptionInformer : IUserExceptionInformer, ITransientDependency { + public ILogger Logger { get; set; } protected IUiMessageService MessageService { get; } protected IExceptionToErrorInfoConverter ExceptionToErrorInfoConverter { get; } - public UserExceptionInformer(IUiMessageService messageService, IExceptionToErrorInfoConverter exceptionToErrorInfoConverter) + public UserExceptionInformer( + IUiMessageService messageService, + IExceptionToErrorInfoConverter exceptionToErrorInfoConverter) { MessageService = messageService; ExceptionToErrorInfoConverter = exceptionToErrorInfoConverter; + Logger = NullLogger.Instance; } - public virtual async Task InformAsync(UserExceptionInformerContext context) + public void Inform(UserExceptionInformerContext context) { var errorInfo = GetErrorInfo(context); - await ShowErrorInfoAsync(errorInfo); + + if (errorInfo.Details.IsNullOrEmpty()) + { + Logger.LogInformation(errorInfo.Message + " - " + errorInfo.Details); + MessageService.ErrorAsync(errorInfo.Message); + } + else + { + Logger.LogInformation(errorInfo.Message); + MessageService.ErrorAsync(errorInfo.Details, errorInfo.Message); + } } protected virtual RemoteServiceErrorInfo GetErrorInfo(UserExceptionInformerContext context) @@ -33,17 +49,5 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly.ExceptionHandling return ExceptionToErrorInfoConverter.Convert(context.Exception, false); } - - protected virtual async Task ShowErrorInfoAsync(RemoteServiceErrorInfo errorInfo) - { - if (errorInfo.Details.IsNullOrEmpty()) - { - await MessageService.ErrorAsync(errorInfo.Message); - } - else - { - await MessageService.ErrorAsync(errorInfo.Details, errorInfo.Message); - } - } } } diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/UiMessageService.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/SimpleUiMessageService.cs similarity index 87% rename from framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/UiMessageService.cs rename to framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/SimpleUiMessageService.cs index 93970de348..8f43b3fdcd 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/UiMessageService.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/SimpleUiMessageService.cs @@ -5,12 +5,11 @@ using Volo.Abp.DependencyInjection; namespace Volo.Abp.AspNetCore.Components.WebAssembly { - //TODO: Implement with sweetalert in a new package - public class UiMessageService : IUiMessageService, ITransientDependency + public class SimpleUiMessageService : IUiMessageService, ITransientDependency { protected IJSRuntime JsRuntime { get; } - public UiMessageService(IJSRuntime jsRuntime) + public SimpleUiMessageService(IJSRuntime jsRuntime) { JsRuntime = jsRuntime; } diff --git a/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiMessageService.cs b/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiMessageService.cs index 3e83166191..5dfb138dfb 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiMessageService.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiMessageService.cs @@ -64,6 +64,11 @@ namespace Volo.Abp.BlazoriseUI var uiMessageOptions = CreateDefaultOptions(); options?.Invoke(uiMessageOptions); + if (MessageReceived == null) + { + Logger.LogWarning("MessageReceived was NULL...!!!!!!!!!!!! " + message); + } + MessageReceived?.Invoke(this, new UiMessageEventArgs(UiMessageType.Error, message, title, uiMessageOptions)); return Task.CompletedTask; diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor index 8ae9643f63..03ad70a6c3 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor @@ -23,6 +23,8 @@ @L["Login"] } + +
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor.cs index 3e1570ecc8..9a7a22f473 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor.cs @@ -1,7 +1,13 @@ -namespace MyCompanyName.MyProjectName.Blazor.Pages +using System; +using Volo.Abp; + +namespace MyCompanyName.MyProjectName.Blazor.Pages { public partial class Index { - + private void ThrowException() + { + throw new UserFriendlyException("Hey, there was a problem :("); + } } } From 58834e2a4d8f48eaebad6850d9b380c1142f214c Mon Sep 17 00:00:00 2001 From: maliming <6908465+maliming@users.noreply.github.com> Date: Wed, 14 Oct 2020 15:33:45 +0800 Subject: [PATCH 183/242] Use preview packages of Blazorise. --- NuGet.Config | 7 +++++++ .../src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj | 4 ++-- .../MyCompanyName.MyProjectName.Blazor.csproj | 4 ++-- .../MyCompanyName.MyProjectName.Blazor.Host.csproj | 4 ++-- 4 files changed, 13 insertions(+), 6 deletions(-) create mode 100644 NuGet.Config diff --git a/NuGet.Config b/NuGet.Config new file mode 100644 index 0000000000..a0572030a2 --- /dev/null +++ b/NuGet.Config @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/framework/src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj b/framework/src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj index 14a97eec0a..e696a2f915 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj +++ b/framework/src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj @@ -12,8 +12,8 @@ - - + + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj index 740c1df4c1..f84de6d335 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj @@ -5,8 +5,8 @@ - - + + diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyCompanyName.MyProjectName.Blazor.Host.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyCompanyName.MyProjectName.Blazor.Host.csproj index eacb8f447d..db178d8017 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyCompanyName.MyProjectName.Blazor.Host.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyCompanyName.MyProjectName.Blazor.Host.csproj @@ -7,8 +7,8 @@ - - + + From 9b931d0b54cd59c321613bb53230d517487ccd83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Wed, 14 Oct 2020 10:48:51 +0300 Subject: [PATCH 184/242] Don't dispose AbpExceptionHandlingLogger --- .../ExceptionHandling/AbpExceptionHandlingLogger.cs | 11 ++--------- .../AbpExceptionHandlingLoggerProvider.cs | 2 +- 2 files changed, 3 insertions(+), 10 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/AbpExceptionHandlingLogger.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/AbpExceptionHandlingLogger.cs index 39ce5b9395..2190489d4c 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/AbpExceptionHandlingLogger.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/AbpExceptionHandlingLogger.cs @@ -4,10 +4,9 @@ using Microsoft.Extensions.Logging; namespace Volo.Abp.AspNetCore.Components.WebAssembly.ExceptionHandling { - public class AbpExceptionHandlingLogger : ILogger, IDisposable + public class AbpExceptionHandlingLogger : ILogger { private readonly IServiceCollection _serviceCollection; - private IServiceScope _serviceScope; private IUserExceptionInformer _userExceptionInformer; public AbpExceptionHandlingLogger(IServiceCollection serviceCollection) @@ -50,8 +49,7 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly.ExceptionHandling return; } - _serviceScope = serviceProvider.CreateScope(); - _userExceptionInformer = _serviceScope.ServiceProvider.GetRequiredService(); + _userExceptionInformer = serviceProvider.GetRequiredService(); } public virtual bool IsEnabled(LogLevel logLevel) @@ -63,10 +61,5 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly.ExceptionHandling { return NullDisposable.Instance; } - - public virtual void Dispose() - { - _serviceScope?.Dispose(); - } } } diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/AbpExceptionHandlingLoggerProvider.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/AbpExceptionHandlingLoggerProvider.cs index d295559284..85eb021284 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/AbpExceptionHandlingLoggerProvider.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/AbpExceptionHandlingLoggerProvider.cs @@ -32,7 +32,7 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly.ExceptionHandling public void Dispose() { - _logger.Dispose(); + } } } From c22ee7d11a0570d33a76119f52af10dd682e53da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Wed, 14 Oct 2020 10:52:30 +0300 Subject: [PATCH 185/242] Remove temp code. --- .../ExceptionHandling/UserExceptionInformer.cs | 3 +-- .../Volo.Abp.BlazoriseUI/BlazoriseUiMessageService.cs | 5 ----- .../Pages/Index.razor | 2 -- .../Pages/Index.razor.cs | 10 ++-------- 4 files changed, 3 insertions(+), 17 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/UserExceptionInformer.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/UserExceptionInformer.cs index a431d31202..c409c38319 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/UserExceptionInformer.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/ExceptionHandling/UserExceptionInformer.cs @@ -30,12 +30,11 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly.ExceptionHandling if (errorInfo.Details.IsNullOrEmpty()) { - Logger.LogInformation(errorInfo.Message + " - " + errorInfo.Details); + //TODO: Should we introduce MessageService.Error (sync) method instead of such a usage (without await)..? MessageService.ErrorAsync(errorInfo.Message); } else { - Logger.LogInformation(errorInfo.Message); MessageService.ErrorAsync(errorInfo.Details, errorInfo.Message); } } diff --git a/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiMessageService.cs b/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiMessageService.cs index 5dfb138dfb..3e83166191 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiMessageService.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiMessageService.cs @@ -64,11 +64,6 @@ namespace Volo.Abp.BlazoriseUI var uiMessageOptions = CreateDefaultOptions(); options?.Invoke(uiMessageOptions); - if (MessageReceived == null) - { - Logger.LogWarning("MessageReceived was NULL...!!!!!!!!!!!! " + message); - } - MessageReceived?.Invoke(this, new UiMessageEventArgs(UiMessageType.Error, message, title, uiMessageOptions)); return Task.CompletedTask; diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor index 03ad70a6c3..8ae9643f63 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor @@ -23,8 +23,6 @@ @L["Login"] } - -
diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor.cs index 9a7a22f473..3e1570ecc8 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor.cs @@ -1,13 +1,7 @@ -using System; -using Volo.Abp; - -namespace MyCompanyName.MyProjectName.Blazor.Pages +namespace MyCompanyName.MyProjectName.Blazor.Pages { public partial class Index { - private void ThrowException() - { - throw new UserFriendlyException("Hey, there was a problem :("); - } + } } From bb976d80755f7409d0e9755df902b39c1a0624a1 Mon Sep 17 00:00:00 2001 From: maliming <6908465+maliming@users.noreply.github.com> Date: Wed, 14 Oct 2020 16:08:32 +0800 Subject: [PATCH 186/242] Set BlazorWebAssemblyLoadAllGlobalizationData in the blazor project. https://github.com/dotnet/aspnetcore/pull/26192 --- .../MyCompanyName.MyProjectName.Blazor.csproj | 1 + .../MyCompanyName.MyProjectName.Blazor.Host.csproj | 1 + 2 files changed, 2 insertions(+) diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj index f84de6d335..d1bec5d5d3 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj @@ -2,6 +2,7 @@ net5.0 + true diff --git a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyCompanyName.MyProjectName.Blazor.Host.csproj b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyCompanyName.MyProjectName.Blazor.Host.csproj index db178d8017..9d0ce4f54d 100644 --- a/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyCompanyName.MyProjectName.Blazor.Host.csproj +++ b/templates/module/aspnet-core/host/MyCompanyName.MyProjectName.Blazor.Host/MyCompanyName.MyProjectName.Blazor.Host.csproj @@ -4,6 +4,7 @@ net5.0 + true From 29d583743c648a38a372a6f5f10bc19bab4987f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Wed, 14 Oct 2020 13:45:39 +0300 Subject: [PATCH 187/242] Resolved #5401: Implement caching for WebAssemblyRemoteTenantStore --- .../WebAssemblyCurrentTenantAccessor.cs | 2 +- .../WebAssemblyRemoteTenantStore.cs | 45 ++++++++++--------- .../WebAssemblyRemoteTenantStoreCache.cs | 35 +++++++++++++++ 3 files changed, 59 insertions(+), 23 deletions(-) rename framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/{ => MultiTenancy}/WebAssemblyCurrentTenantAccessor.cs (80%) rename framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/{ => MultiTenancy}/WebAssemblyRemoteTenantStore.cs (54%) create mode 100644 framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/MultiTenancy/WebAssemblyRemoteTenantStoreCache.cs diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebAssemblyCurrentTenantAccessor.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/MultiTenancy/WebAssemblyCurrentTenantAccessor.cs similarity index 80% rename from framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebAssemblyCurrentTenantAccessor.cs rename to framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/MultiTenancy/WebAssemblyCurrentTenantAccessor.cs index eb0ee781ad..3857db2b36 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebAssemblyCurrentTenantAccessor.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/MultiTenancy/WebAssemblyCurrentTenantAccessor.cs @@ -1,7 +1,7 @@ using Volo.Abp.DependencyInjection; using Volo.Abp.MultiTenancy; -namespace Volo.Abp.AspNetCore.Components.WebAssembly +namespace Volo.Abp.AspNetCore.Components.WebAssembly.MultiTenancy { [Dependency(ReplaceServices = true)] public class WebAssemblyCurrentTenantAccessor : ICurrentTenantAccessor, ISingletonDependency diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebAssemblyRemoteTenantStore.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/MultiTenancy/WebAssemblyRemoteTenantStore.cs similarity index 54% rename from framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebAssemblyRemoteTenantStore.cs rename to framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/MultiTenancy/WebAssemblyRemoteTenantStore.cs index ebe170cfa8..7e132db9c9 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/WebAssemblyRemoteTenantStore.cs +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/MultiTenancy/WebAssemblyRemoteTenantStore.cs @@ -6,44 +6,55 @@ using Volo.Abp.Http.Client.DynamicProxying; using Volo.Abp.MultiTenancy; using Volo.Abp.Threading; -namespace Volo.Abp.AspNetCore.Components.WebAssembly +namespace Volo.Abp.AspNetCore.Components.WebAssembly.MultiTenancy { public class WebAssemblyRemoteTenantStore : ITenantStore, ITransientDependency { protected IHttpClientProxy Proxy { get; } + protected WebAssemblyRemoteTenantStoreCache Cache { get; } public WebAssemblyRemoteTenantStore( - IHttpClientProxy proxy) + IHttpClientProxy proxy, + WebAssemblyRemoteTenantStoreCache cache) { Proxy = proxy; + Cache = cache; } public async Task FindAsync(string name) { - //TODO: Cache + var cached = Cache.Find(name); + if (cached != null) + { + return cached; + } - return CreateTenantConfiguration(await Proxy.Service.FindTenantByNameAsync(name)); + var tenant = CreateTenantConfiguration(await Proxy.Service.FindTenantByNameAsync(name)); + Cache.Set(tenant); + return tenant; } public async Task FindAsync(Guid id) { - //TODO: Cache + var cached = Cache.Find(id); + if (cached != null) + { + return cached; + } - return CreateTenantConfiguration(await Proxy.Service.FindTenantByIdAsync(id)); + var tenant = CreateTenantConfiguration(await Proxy.Service.FindTenantByIdAsync(id)); + Cache.Set(tenant); + return tenant; } public TenantConfiguration Find(string name) { - //TODO: Cache - - return AsyncHelper.RunSync(async () => CreateTenantConfiguration(await Proxy.Service.FindTenantByNameAsync(name))); + return AsyncHelper.RunSync(() => FindAsync(name)); } public TenantConfiguration Find(Guid id) { - //TODO: Cache - - return AsyncHelper.RunSync(async () => CreateTenantConfiguration(await Proxy.Service.FindTenantByIdAsync(id))); + return AsyncHelper.RunSync(() => FindAsync(id)); } protected virtual TenantConfiguration CreateTenantConfiguration(FindTenantResultDto tenantResultDto) @@ -55,15 +66,5 @@ namespace Volo.Abp.AspNetCore.Components.WebAssembly return new TenantConfiguration(tenantResultDto.TenantId.Value, tenantResultDto.Name); } - - protected virtual string CreateCacheKey(string tenantName) - { - return $"RemoteTenantStore_Name_{tenantName}"; - } - - protected virtual string CreateCacheKey(Guid tenantId) - { - return $"RemoteTenantStore_Id_{tenantId:N}"; - } } } diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/MultiTenancy/WebAssemblyRemoteTenantStoreCache.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/MultiTenancy/WebAssemblyRemoteTenantStoreCache.cs new file mode 100644 index 0000000000..e1c5112e02 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/MultiTenancy/WebAssemblyRemoteTenantStoreCache.cs @@ -0,0 +1,35 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using Volo.Abp.DependencyInjection; +using Volo.Abp.MultiTenancy; + +namespace Volo.Abp.AspNetCore.Components.WebAssembly.MultiTenancy +{ + public class WebAssemblyRemoteTenantStoreCache : IScopedDependency + { + protected readonly List CachedTenants = new List(); + + public virtual TenantConfiguration Find(string name) + { + return CachedTenants.FirstOrDefault(t => t.Name == name); + } + + public virtual TenantConfiguration Find(Guid id) + { + return CachedTenants.FirstOrDefault(t => t.Id == id); + } + + public virtual void Set(TenantConfiguration tenant) + { + var existingTenant = Find(tenant.Id); + if (existingTenant != null) + { + existingTenant.Name = tenant.Name; + return; + } + + CachedTenants.Add(tenant); + } + } +} From 78587caa302280d4c9aa1c88d7516febac770885 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Wed, 14 Oct 2020 16:32:40 +0300 Subject: [PATCH 188/242] initial ABP Framework 3.3 RC blog post --- .../2020-10-15 v3_3_Preview/POST.md | 101 ++++++++++++++++++ .../2020-10-15 v3_3_Preview/abp-blazor-ui.png | Bin 0 -> 46802 bytes .../MyProjectNameDomainModule.cs | 20 ++++ 3 files changed, 121 insertions(+) create mode 100644 docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md create mode 100644 docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-blazor-ui.png diff --git a/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md new file mode 100644 index 0000000000..748fcd06e3 --- /dev/null +++ b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md @@ -0,0 +1,101 @@ +# ABP Framework 3.3 RC Has Been Published + +We have released the [ABP Framework](https://abp.io/) (and the [ABP Commercial](https://commercial.abp.io/)) `3.3.0-rc.1` today. This blog post introduces the new features and important changes of this new version. + +## What's new with the ABP Framework 3.3 + +### The Blazor UI + +We had released an experimental early preview version of the Blazor UI with the [previous version](https://blog.abp.io/abp/ABP-Framework-ABP-Commercial-3.2-RC-With-The-New-Blazor-UI). In this version, we've completed most of the fundamental infrastructure features and the application modules (like identity and tenant management). + +It currently has almost the same functionalities with the other UI types (Angular & MVC / Razor Pages). + +**Example screenshot**: User management page of the Blazor UI + +![abp-blazor-ui](abp-blazor-ui.png) + +> We've adapted the [Lepton Theme](https://commercial.abp.io/themes) for the ABP Commercial, see the related section below. + +We are still working on the fundamentals. So, the next version may introduce breaking changes for the Blazor UI, while we will work to keep them with minimal effect on your application code. + +#### Breaking Changes on the Blazor UI + +TODO + +### Automatic Validation for AntiForgery Token for HTTP APIs + +Starting with the version 3.3, all your HTTP API endpoints are **automatically protected** against CSRF attacks, unless you disable it for your application. + +[See the documentation](https://github.com/abpframework/abp/blob/dev/docs/en/CSRF-Anti-Forgery.md) to understand why you need it and how ABP Framework solves the problem. + +### Stream Support for the Application Service Methods + +[Application services](https://docs.abp.io/en/abp/latest/Application-Services) are consumed by clients and the parameters and return values (typically [Data Transfer Objects](https://docs.abp.io/en/abp/latest/Data-Transfer-Objects)). In case of the client is a remote application, then these objects should be serialized & deserialized. + +Until the version 3.3, we hadn't suggest to use the `Stream` in the application service contracts, since it is not serializable/deserializable. However, with the version 3.3, ABP Framework properly supports this scenario by introducing the new `IRemoteStreamContent` interface. + +Example: An application service that can get or return streams + +````csharp +using System; +using System.Threading.Tasks; +using Volo.Abp.Application.Services; +using Volo.Abp.Content; + +namespace MyProject.Test +{ + public interface ITestAppService : IApplicationService + { + Task Upload(Guid id, IRemoteStreamContent streamContent); + Task Download(Guid id); + } +} +```` + +The implementation can be like shown below: + +````csharp +using System; +using System.IO; +using System.Threading.Tasks; +using Volo.Abp; +using Volo.Abp.Application.Services; +using Volo.Abp.Content; + +namespace MyProject.Test +{ + public class TestAppService : ApplicationService, ITestAppService + { + public Task Download(Guid id) + { + var fs = new FileStream("C:\\Temp\\" + id + ".blob", FileMode.OpenOrCreate); + return Task.FromResult( + (IRemoteStreamContent) new RemoteStreamContent(fs) { + ContentType = "application/octet-stream" + } + ); + } + + public async Task Upload(Guid id, IRemoteStreamContent streamContent) + { + using (var fs = new FileStream("C:\\Temp\\" + id + ".blob", FileMode.Create)) + { + await streamContent.GetStream().CopyToAsync(fs); + await fs.FlushAsync(); + } + } + } +} +```` + +> This is just a demo code. Do it better on a production code :) + +Thanks to [@alexandru-bagu](https://github.com/alexandru-bagu) for the great contribution! + +## What's new with the ABP Commercial 3.3 + +TODO + +## Feedback + +Please try the ABP Framework 3.3.0 RC and [provide feedback](https://github.com/abpframework/abp/issues/new) to help us to release a more stable version. The planned release date for the [3.3.0 final](https://github.com/abpframework/abp/milestone/44) version is October 27th. \ No newline at end of file diff --git a/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-blazor-ui.png b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-blazor-ui.png new file mode 100644 index 0000000000000000000000000000000000000000..ea61f2a48849d96e17e6de24f422705ae9166c29 GIT binary patch literal 46802 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 literal 0 HcmV?d00001 diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyProjectNameDomainModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyProjectNameDomainModule.cs index 91b05c877d..d0ec8ec127 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyProjectNameDomainModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyProjectNameDomainModule.cs @@ -1,8 +1,12 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using MyCompanyName.MyProjectName.MultiTenancy; +using System; +using System.IO; +using System.Threading.Tasks; using Volo.Abp.AuditLogging; using Volo.Abp.BackgroundJobs; +using Volo.Abp.Content; using Volo.Abp.Emailing; using Volo.Abp.FeatureManagement; using Volo.Abp.Identity; @@ -42,5 +46,21 @@ namespace MyCompanyName.MyProjectName context.Services.Replace(ServiceDescriptor.Singleton()); #endif } + + public async Task Upload(Guid id, IRemoteStreamContent streamContent) + { + using (var fs = new FileStream("C:\\Temp\\" + id + ".blob", FileMode.Create)) + { + await streamContent.GetStream().CopyToAsync(fs); + await fs.FlushAsync(); + } + } + + public Task Download(Guid id) + { + var fs = new FileStream(id + ".blob", FileMode.OpenOrCreate); + return Task.FromResult((IRemoteStreamContent)new RemoteStreamContent(fs) { ContentType = "application/octet-stream" }); + } + } } From b1cb4de60683bf92f918ac2e48d91c327464ac09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Wed, 14 Oct 2020 16:33:22 +0300 Subject: [PATCH 189/242] Revert MyProjectNameDomainModule change --- .../MyProjectNameDomainModule.cs | 20 ------------------- 1 file changed, 20 deletions(-) diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyProjectNameDomainModule.cs b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyProjectNameDomainModule.cs index d0ec8ec127..91b05c877d 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyProjectNameDomainModule.cs +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Domain/MyProjectNameDomainModule.cs @@ -1,12 +1,8 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection.Extensions; using MyCompanyName.MyProjectName.MultiTenancy; -using System; -using System.IO; -using System.Threading.Tasks; using Volo.Abp.AuditLogging; using Volo.Abp.BackgroundJobs; -using Volo.Abp.Content; using Volo.Abp.Emailing; using Volo.Abp.FeatureManagement; using Volo.Abp.Identity; @@ -46,21 +42,5 @@ namespace MyCompanyName.MyProjectName context.Services.Replace(ServiceDescriptor.Singleton()); #endif } - - public async Task Upload(Guid id, IRemoteStreamContent streamContent) - { - using (var fs = new FileStream("C:\\Temp\\" + id + ".blob", FileMode.Create)) - { - await streamContent.GetStream().CopyToAsync(fs); - await fs.FlushAsync(); - } - } - - public Task Download(Guid id) - { - var fs = new FileStream(id + ".blob", FileMode.OpenOrCreate); - return Task.FromResult((IRemoteStreamContent)new RemoteStreamContent(fs) { ContentType = "application/octet-stream" }); - } - } } From 77ce57ce9789e9dd3f717031603e0f21257b45b5 Mon Sep 17 00:00:00 2001 From: maliming <6908465+maliming@users.noreply.github.com> Date: Wed, 14 Oct 2020 21:52:51 +0800 Subject: [PATCH 190/242] Use AsSplitQuery to improve query performance. https://docs.microsoft.com/en-us/ef/core/querying/related-data/eager#single-and-split-queries --- .../AbpAuditLoggingEfCoreQueryableExtensions.cs | 1 + .../EntityFrameworkCore/EfCoreAuditLogRepository.cs | 2 +- .../EfCoreIdentityUserRepository.cs | 10 ++++++---- .../IdentityEfCoreQueryableExtensions.cs | 5 +++-- .../AbpIdentityServerEfCoreQueryableExtensions.cs | 4 +++- .../ApiResources/ApiResourceRepository.cs | 3 ++- .../Abp/IdentityServer/Clients/ClientRepository.cs | 1 + 7 files changed, 17 insertions(+), 9 deletions(-) diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/AbpAuditLoggingEfCoreQueryableExtensions.cs b/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/AbpAuditLoggingEfCoreQueryableExtensions.cs index 6dc4bfadb8..11ba294610 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/AbpAuditLoggingEfCoreQueryableExtensions.cs +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/AbpAuditLoggingEfCoreQueryableExtensions.cs @@ -15,6 +15,7 @@ namespace Volo.Abp.AuditLogging } return queryable + .AsSplitQuery() .Include(x => x.Actions) .Include(x => x.EntityChanges).ThenInclude(ec=>ec.PropertyChanges); } diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/EntityFrameworkCore/EfCoreAuditLogRepository.cs b/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/EntityFrameworkCore/EfCoreAuditLogRepository.cs index 06dcf8ffed..9ce2bee070 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/EntityFrameworkCore/EfCoreAuditLogRepository.cs +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo/Abp/AuditLogging/EntityFrameworkCore/EfCoreAuditLogRepository.cs @@ -143,7 +143,7 @@ namespace Volo.Abp.AuditLogging.EntityFrameworkCore public Task GetEntityChange(Guid entityChangeId) { - return DbContext.Set().AsNoTracking().IncludeDetails().Where(x => x.Id == entityChangeId).FirstAsync(); + return DbContext.Set().AsNoTracking().IncludeDetails().OrderBy(x => x.Id).Where(x => x.Id == entityChangeId).FirstAsync(); } public virtual async Task> GetEntityChangeListAsync( diff --git a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreIdentityUserRepository.cs b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreIdentityUserRepository.cs index 5f6bcb7459..f96156e4ca 100644 --- a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreIdentityUserRepository.cs +++ b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreIdentityUserRepository.cs @@ -26,6 +26,7 @@ namespace Volo.Abp.Identity.EntityFrameworkCore { return await DbSet .IncludeDetails(includeDetails) + .OrderBy(x => x.NormalizedUserName) .FirstOrDefaultAsync( u => u.NormalizedUserName == normalizedUserName, GetCancellationToken(cancellationToken) @@ -41,14 +42,14 @@ namespace Volo.Abp.Identity.EntityFrameworkCore where userRole.UserId == id select role.Name; var organizationUnitIds = DbContext.Set().Where(q => q.UserId == id).Select(q => q.OrganizationUnitId).ToArray(); - + var organizationRoleIds = await ( from ouRole in DbContext.Set() - join ou in DbContext.Set() on ouRole.OrganizationUnitId equals ou.Id + join ou in DbContext.Set() on ouRole.OrganizationUnitId equals ou.Id where organizationUnitIds.Contains(ouRole.OrganizationUnitId) select ouRole.RoleId ).ToListAsync(GetCancellationToken(cancellationToken)); - + var orgUnitRoleNameQuery = DbContext.Roles.Where(r => organizationRoleIds.Contains(r.Id)).Select(n => n.Name); var resultQuery = query.Union(orgUnitRoleNameQuery); return await resultQuery.ToListAsync(GetCancellationToken(cancellationToken)); @@ -60,7 +61,7 @@ namespace Volo.Abp.Identity.EntityFrameworkCore { var query = from userOu in DbContext.Set() join roleOu in DbContext.Set() on userOu.OrganizationUnitId equals roleOu.OrganizationUnitId - join ou in DbContext.Set() on roleOu.OrganizationUnitId equals ou.Id + join ou in DbContext.Set() on roleOu.OrganizationUnitId equals ou.Id join userOuRoles in DbContext.Roles on roleOu.RoleId equals userOuRoles.Id where userOu.UserId == id select userOuRoles.Name; @@ -89,6 +90,7 @@ namespace Volo.Abp.Identity.EntityFrameworkCore { return await DbSet .IncludeDetails(includeDetails) + .OrderBy(x => x.NormalizedEmail) .FirstOrDefaultAsync(u => u.NormalizedEmail == normalizedEmail, GetCancellationToken(cancellationToken)); } diff --git a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityEfCoreQueryableExtensions.cs b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityEfCoreQueryableExtensions.cs index 5e4a0a2876..8b6e470600 100644 --- a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityEfCoreQueryableExtensions.cs +++ b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityEfCoreQueryableExtensions.cs @@ -1,4 +1,4 @@ -using System.Linq; +using System.Linq; using Microsoft.EntityFrameworkCore; namespace Volo.Abp.Identity.EntityFrameworkCore @@ -13,6 +13,7 @@ namespace Volo.Abp.Identity.EntityFrameworkCore } return queryable + .AsSplitQuery() .Include(x => x.Roles) .Include(x => x.Logins) .Include(x => x.Claims) @@ -42,4 +43,4 @@ namespace Volo.Abp.Identity.EntityFrameworkCore .Include(x => x.Roles); } } -} \ No newline at end of file +} diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/AbpIdentityServerEfCoreQueryableExtensions.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/AbpIdentityServerEfCoreQueryableExtensions.cs index 51b490fc47..89e76d5bc4 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/AbpIdentityServerEfCoreQueryableExtensions.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/AbpIdentityServerEfCoreQueryableExtensions.cs @@ -16,6 +16,7 @@ namespace Volo.Abp.IdentityServer } return queryable + .AsSplitQuery() .Include(x => x.Secrets) .Include(x => x.UserClaims) .Include(x => x.Scopes) @@ -41,6 +42,7 @@ namespace Volo.Abp.IdentityServer } return queryable + .AsSplitQuery() .Include(x => x.AllowedGrantTypes) .Include(x => x.RedirectUris) .Include(x => x.PostLogoutRedirectUris) @@ -52,4 +54,4 @@ namespace Volo.Abp.IdentityServer .Include(x => x.Properties); } } -} \ No newline at end of file +} diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/ApiResources/ApiResourceRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/ApiResources/ApiResourceRepository.cs index d4fc77ede2..b59a4a6bf3 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/ApiResources/ApiResourceRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/ApiResources/ApiResourceRepository.cs @@ -26,6 +26,7 @@ namespace Volo.Abp.IdentityServer.ApiResources { var query = from apiResource in DbSet.IncludeDetails(includeDetails) where apiResource.Name == name + orderby apiResource.Name select apiResource; return await query @@ -96,4 +97,4 @@ namespace Volo.Abp.IdentityServer.ApiResources return GetQueryable().IncludeDetails(); } } -} \ No newline at end of file +} diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Clients/ClientRepository.cs b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Clients/ClientRepository.cs index 1c7a0ccccb..e52467e4fd 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Clients/ClientRepository.cs +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo/Abp/IdentityServer/Clients/ClientRepository.cs @@ -25,6 +25,7 @@ namespace Volo.Abp.IdentityServer.Clients { return await DbSet .IncludeDetails(includeDetails) + .OrderBy(x => x.ClientId) .FirstOrDefaultAsync(x => x.ClientId == clientId, GetCancellationToken(cancellationToken)); } From 2c96e9bbd50f470831a6e46831973116b9de9e58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Wed, 14 Oct 2020 16:53:44 +0300 Subject: [PATCH 191/242] Update POST.md --- .../Blog-Posts/2020-10-15 v3_3_Preview/POST.md | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md index 748fcd06e3..b5d6621c09 100644 --- a/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md +++ b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md @@ -20,7 +20,7 @@ We are still working on the fundamentals. So, the next version may introduce bre #### Breaking Changes on the Blazor UI -TODO +TODO... ### Automatic Validation for AntiForgery Token for HTTP APIs @@ -28,6 +28,16 @@ Starting with the version 3.3, all your HTTP API endpoints are **automatically p [See the documentation](https://github.com/abpframework/abp/blob/dev/docs/en/CSRF-Anti-Forgery.md) to understand why you need it and how ABP Framework solves the problem. +### Rebus Integration Package for the Distributed Event Bus + +[Rebus](https://github.com/rebus-org/Rebus) describes itself as "Simple and lean service bus implementation for .NET". There are a lot of integration packages like RabbitMQ and Azure Service Bus for the Rebus. The new [Volo.Abp.EventBus.Rebus](https://www.nuget.org/packages/Volo.Abp.EventBus.Rebus) package allows you to use the Rebus as the [distributed event bus](https://docs.abp.io/en/abp/latest/Distributed-Event-Bus) for the ABP Framework. + +See [the documentation](https://github.com/abpframework/abp/blob/dev/docs/en/Distributed-Event-Bus-Rebus-Integration.md) to learn how to use Rebus with the ABP Framework. + +### Async Repository LINQ Methods + +TODO: https://github.com/abpframework/abp/pull/5477 + ### Stream Support for the Application Service Methods [Application services](https://docs.abp.io/en/abp/latest/Application-Services) are consumed by clients and the parameters and return values (typically [Data Transfer Objects](https://docs.abp.io/en/abp/latest/Data-Transfer-Objects)). In case of the client is a remote application, then these objects should be serialized & deserialized. @@ -92,6 +102,12 @@ namespace MyProject.Test Thanks to [@alexandru-bagu](https://github.com/alexandru-bagu) for the great contribution! +### Other Changes + +* Upgraded all the .NET Core / ASP.NET Core related packages to the version 3.1.8. If you have additional dependencies to the .NET Core / ASP.NET Core related packages, we suggest you to updates your packages to the version 3.1.8 to have the latest bug and security fixes published by Microsoft. +* The blogging module now uses the [BLOB Storing](https://docs.abp.io/en/abp/latest/Blob-Storing) system to store images & files of the blog posts. If you are using this module, then you need to manually migrate the local files to the BLOB Storing system after the upgrade. +* The Angular UI is now redirecting to the profile management page of the MVC UI instead of using its own UI, if you've configured the authorization code flow (which is default since the version 3.2.0). + ## What's new with the ABP Commercial 3.3 TODO From be73c4c2476c0a013dc89b27c690b4d95b4780c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Wed, 14 Oct 2020 17:45:18 +0300 Subject: [PATCH 192/242] Add Async Repository LINQ Extension Methods section --- .../2020-10-15 v3_3_Preview/POST.md | 62 ++++++++++++++++++- 1 file changed, 60 insertions(+), 2 deletions(-) diff --git a/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md index b5d6621c09..63c438fc14 100644 --- a/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md +++ b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md @@ -34,9 +34,67 @@ Starting with the version 3.3, all your HTTP API endpoints are **automatically p See [the documentation](https://github.com/abpframework/abp/blob/dev/docs/en/Distributed-Event-Bus-Rebus-Integration.md) to learn how to use Rebus with the ABP Framework. -### Async Repository LINQ Methods +### Async Repository LINQ Extension Methods -TODO: https://github.com/abpframework/abp/pull/5477 +You have a problem when you want to use **Async LINQ Extension Methods** (e.g. `FirstOrDefaultAsync(...)`) in your **domain** and **application** layers. These async methods are **not included in the standard LINQ extension methods**. They are defined by the [Microsoft.EntityFrameworkCore](https://www.nuget.org/packages/Microsoft.EntityFrameworkCore) NuGet package (see [the code](https://github.com/dotnet/efcore/blob/main/src/EFCore/Extensions/EntityFrameworkQueryableExtensions.cs)). So, you normally need to reference to the **Microsoft.EntityFrameworkCore** package to be able to use these async methods. + +If you don't want to depend on the EF Core in your business layer, then ABP Framework provides the `IAsyncQueryableExecuter` service to execute your queries asynchronously without depending to the EF Core package. You can see [the documentation](https://docs.abp.io/en/abp/latest/Repositories#option-3-iasyncqueryableexecuter) to get more information for this service. + +ABP Framework version 3.3 takes this one step further and allows you to directly execute the async LINQ extension methods on the `IRepository` interface. + +**Example: Use `CountAsync` and `FirstOrDefaultAsync` methods on the repositories** + +````csharp +using System; +using System.Threading.Tasks; +using Volo.Abp.Application.Services; +using Volo.Abp.Domain.Repositories; + +namespace MyCompanyName.MyProjectName +{ + public class BookAppService : ApplicationService, IBookAppService + { + private readonly IRepository _bookRepository; + + public BookAppService(IRepository bookRepository) + { + _bookRepository = bookRepository; + } + + public async Task DemoAsync() + { + var countAll = await _bookRepository + .CountAsync(); + + var count = await _bookRepository + .CountAsync(x => x.Name.Contains("A")); + + var book1984 = await _bookRepository + .FirstOrDefaultAsync(x => x.Name == "1984"); + } + } +} +```` + +All the standard LINQ methods are supported: *AllAsync, AnyAsync, AverageAsync, ContainsAsync, CountAsync, FirstAsync, FirstOrDefaultAsync, LastAsync, LastOrDefaultAsync, LongCountAsync, MaxAsync, MinAsync, SingleAsync, SingleOrDefaultAsync, SumAsync, ToArrayAsync, ToListAsync*. + +This approach still has a limitation. You need to execute the extension method directly on the repository object. For example, the usage below is **not supported**: + +````csharp +var count = await _bookRepository.Where(x => x.Name.Contains("A")).CountAsync(); +```` + +This is because the object returned from the `Where` method is not a repository object, it is a standard `IQueryable`. In such cases, you can still use the `IAsyncQueryableExecuter`: + +````csharp +var count = await AsyncExecuter.CountAsync( + _bookRepository.Where(x => x.Name.Contains("A")) +); +```` + +`AsyncExecuter` has all the standard extension methods, so you don't have any restriction here. See [the repository documentation](https://docs.abp.io/en/abp/latest/Repositories#iqueryable-async-operations) for all the options you have. + +> ABP Framework does it's best to not depend on the EF Core yet still be able to use the async LINQ extension methods. However, it there is no problem to depend on the EF Core for your application, you can add the Microsoft.EntityFrameworkCore NuGet package and use it natively. ### Stream Support for the Application Service Methods From bb31c9ff5a794b27bec216a82268c232c5c51e83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Wed, 14 Oct 2020 21:27:25 +0300 Subject: [PATCH 193/242] Added the ABP Commercial content. --- .../2020-10-15 v3_3_Preview/POST.md | 55 ++++++++++++++++++ .../abp-commercial-blazor-ui.png | Bin 0 -> 185674 bytes ...ercial-setting-account-external-logins.png | Bin 0 -> 203751 bytes 3 files changed, 55 insertions(+) create mode 100644 docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-commercial-blazor-ui.png create mode 100644 docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-commercial-setting-account-external-logins.png diff --git a/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md index 63c438fc14..ac7b93bf93 100644 --- a/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md +++ b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md @@ -168,8 +168,63 @@ Thanks to [@alexandru-bagu](https://github.com/alexandru-bagu) for the great con ## What's new with the ABP Commercial 3.3 +### The Blazor UI + +We have good news for the ABP Commercial Blazor UI too. We have implemented the [Lepton Theme](https://commercial.abp.io/themes) integration, so it is now available with the Blazor UI. Also, implemented most of the fundamental [modules](https://commercial.abp.io/modules). + +**A screenshot from the ABP Commercial startup template with the Blazor UI** + +![abp-commercial-blazor-ui](abp-commercial-blazor-ui.png) + +There are still missing features and modules. However, we are working on it to have a more complete version in the next release. + +### Multi-Tenant Social Logins + +[Account module](https://commercial.abp.io/modules/Volo.Account.Pro) now supports to manage the social/external logins in the UI. You can **enable/disable** and **set options** in the settings page. It also supports to use **different credentials for the tenants** and it is also **configured on the runtime**. + +![abp-commercial-setting-account-external-logins](abp-commercial-setting-account-external-logins.png) + +### Linked Accounts + TODO +### Paypal & Stripe Integrations + +TODO + +### ABP Suite Improvements + +We've done a lot of small improvements for the [ABP Suite](https://commercial.abp.io/tools/suite). Some of the enhancements are; + +* Show the previously installed modules as *installed* on the module list. +* Switch between the latest stable, the latest [preview](https://docs.abp.io/en/abp/latest/Previews) and the latest [nightly build](https://docs.abp.io/en/abp/latest/Nightly-Builds) versions of the ABP related packages. +* Moved the file that stores the *previously created entities* to the solution folder to allow you to store it in your source control system. + +### Others + +* Added an option to the Account Module to show reCAPTCHA on the login & the registration forms. + +Beside these, we've done a lot of small enhancements and bug fixes to provide a better development experience and increment your productivity. + +## New Articles + +The core ABP Framework team & the people continue to publish new articles on the ABP Community web site. The latest published articles are; + +* [Replacing Email Templates and Sending Emails](https://community.abp.io/articles/replacing-email-templates-and-sending-emails-jkeb8zzh) (by [@EngincanV](https://community.abp.io/members/EngincanV)) +* [How to Add Custom Properties to the User Entity](https://community.abp.io/articles/how-to-add-custom-property-to-the-user-entity-6ggxiddr) (by [@berkansasmaz](https://community.abp.io/members/berkansasmaz)) +* [Using the AdminLTE Theme with the ABP Framework MVC / Razor Pages UI](https://community.abp.io/articles/using-the-adminlte-theme-with-the-abp-framework-mvc-razor-pages-ui-gssbhb7m) (by [@mucahiddanis](https://community.abp.io/members/mucahiddanis)) +* [Using DevExtreme Angular Components With the ABP Framework](https://community.abp.io/articles/using-devextreme-angular-components-with-the-abp-framework-x5nyvj3i) (by [@bunyamin](https://community.abp.io/members/bunyamin)) + +It is appreciated if you want to [submit an article](https://community.abp.io/articles/submit) related to the ABP Framework. + +## About the Next Release + +The next version will be `4.0.0`. We are releasing a major version since we will move the ABP Framework to .NET 5.0. We see that for most of the applications this will not be a breaking change and we hope you easily upgrade it. + +The planned 4.0.0-rc.1 (Release Candidate) version date is November 11th, just after the Microsoft releases the .NET 5.0 final. The planned 4.0.0 final release date is November 26th. + +Follow the [GitHub milestones](https://github.com/abpframework/abp/milestones) for the planned ABP Framework version release dates. + ## Feedback Please try the ABP Framework 3.3.0 RC and [provide feedback](https://github.com/abpframework/abp/issues/new) to help us to release a more stable version. The planned release date for the [3.3.0 final](https://github.com/abpframework/abp/milestone/44) version is October 27th. \ No newline at end of file diff --git a/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-commercial-blazor-ui.png b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-commercial-blazor-ui.png new file mode 100644 index 0000000000000000000000000000000000000000..8da48af76efceb99f9149b4faa0b89e65a93c171 GIT binary patch literal 185674 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 >GS?E6E13YVOt>%8{Y5B!b&wEvnqcXVid`bOsg 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 UHsM!XKt_(fLvMRJ?a=T41>Ygd2LJ#7 literal 0 HcmV?d00001 From b1d9c202d294b4be4579ed51cabdf1346965f72f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Wed, 14 Oct 2020 21:45:15 +0300 Subject: [PATCH 194/242] Create BlazorUI-3_3.md --- docs/en/Migration-Guides/BlazorUI-3_3.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 docs/en/Migration-Guides/BlazorUI-3_3.md diff --git a/docs/en/Migration-Guides/BlazorUI-3_3.md b/docs/en/Migration-Guides/BlazorUI-3_3.md new file mode 100644 index 0000000000..5d0b8c48b4 --- /dev/null +++ b/docs/en/Migration-Guides/BlazorUI-3_3.md @@ -0,0 +1,9 @@ +# Migration Guide for the Blazor UI from the v3.2 to the v3.3 + +## Startup Template Changes + +TODO + +## BlazoriseCrudPageBase to AbpCrudPageBase + +Renamed `BlazoriseCrudPageBase` to `AbpCrudPageBase`. Just update the usages. It also has some changes, you may need to update method calls/usages manually. \ No newline at end of file From 4b3e9ee63cb7f719d6692eeee55faf1aa9d8797d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Wed, 14 Oct 2020 22:01:38 +0300 Subject: [PATCH 195/242] Update _Imports.razor --- .../src/MyCompanyName.MyProjectName.Blazor/_Imports.razor | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/_Imports.razor b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/_Imports.razor index 3fcce1e0d0..8daeb7f0f8 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/_Imports.razor +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/_Imports.razor @@ -9,5 +9,5 @@ @using MyCompanyName.MyProjectName.Blazor @using Blazorise @using Blazorise.DataGrid -@using Volo.Abp.BlazoriseUI; -@using Volo.Abp.BlazoriseUI.Components; \ No newline at end of file +@using Volo.Abp.BlazoriseUI +@using Volo.Abp.BlazoriseUI.Components \ No newline at end of file From e4684d5812178d61379eae5cf831d70d6be074a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Wed, 14 Oct 2020 22:02:06 +0300 Subject: [PATCH 196/242] Update BlazorUI-3_3.md --- docs/en/Migration-Guides/BlazorUI-3_3.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/en/Migration-Guides/BlazorUI-3_3.md b/docs/en/Migration-Guides/BlazorUI-3_3.md index 5d0b8c48b4..8a14481912 100644 --- a/docs/en/Migration-Guides/BlazorUI-3_3.md +++ b/docs/en/Migration-Guides/BlazorUI-3_3.md @@ -2,8 +2,12 @@ ## Startup Template Changes -TODO +* Remove `Volo.Abp.Account.Blazor` NuGet package from your `.Blazor.csproj` and add `Volo.Abp.TenantManagement.Blazor` NuGet package. +* Remove the ``typeof(AbpAccountBlazorModule)`` from the dependency list of *YourProjectBlazorModule* class and add the `typeof(AbpTenantManagementBlazorModule)`. +* Add `@using Volo.Abp.BlazoriseUI` and `@using Volo.Abp.BlazoriseUI.Components` into the `_Imports.razor` file. +* Remove the `div` with `id="blazor-error-ui"` (with its contents) from the `wwwroot/index.html ` file, since the ABP Framework now shows error messages as a better message box. ## BlazoriseCrudPageBase to AbpCrudPageBase -Renamed `BlazoriseCrudPageBase` to `AbpCrudPageBase`. Just update the usages. It also has some changes, you may need to update method calls/usages manually. \ No newline at end of file +Renamed `BlazoriseCrudPageBase` to `AbpCrudPageBase`. Just update the usages. It also has some changes, you may need to update method calls/usages manually. + From eb98866cd28bb12d5298f75724f16cab09cc4f8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Wed, 14 Oct 2020 22:02:14 +0300 Subject: [PATCH 197/242] Update POST.md --- docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md index ac7b93bf93..48dbd376ae 100644 --- a/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md +++ b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md @@ -20,7 +20,7 @@ We are still working on the fundamentals. So, the next version may introduce bre #### Breaking Changes on the Blazor UI -TODO... +There are some breaking changes with the Blazor UI. If you've built an application and upgrade it, your application might not properly work. See [the migration guide](https://github.com/abpframework/abp/blob/dev/docs/en/Migration-Guides/BlazorUI-3_3.md) for the changes you need to do after upgrading your application. ### Automatic Validation for AntiForgery Token for HTTP APIs From 9960377c1d6315dd412111c263eb5f3110679f8d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Wed, 14 Oct 2020 22:06:10 +0300 Subject: [PATCH 198/242] Update POST.md --- docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md index 48dbd376ae..e309438f82 100644 --- a/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md +++ b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md @@ -178,6 +178,10 @@ We have good news for the ABP Commercial Blazor UI too. We have implemented the There are still missing features and modules. However, we are working on it to have a more complete version in the next release. +#### Breaking Changes on the Blazor UI + +There are some breaking changes with the Blazor UI. If you've built an application and upgrade it, your application might not properly work. See the [ABP Commercial Blazor UI v 3.3 Migration Guide](https://github.com/abpio/abp-commercial-docs/blob/dev/en/migration-guides/blazor-ui-3_3.md) for the changes you need to do after upgrading your application. + ### Multi-Tenant Social Logins [Account module](https://commercial.abp.io/modules/Volo.Account.Pro) now supports to manage the social/external logins in the UI. You can **enable/disable** and **set options** in the settings page. It also supports to use **different credentials for the tenants** and it is also **configured on the runtime**. From c4994b0fc2fe716ca16edd1600acb7d9ef57e3aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Wed, 14 Oct 2020 22:23:21 +0300 Subject: [PATCH 199/242] Complete the initial post --- .../Blog-Posts/2020-10-15 v3_3_Preview/POST.md | 10 +++++++--- .../abp-commercial-linked-users.png | Bin 0 -> 29275 bytes 2 files changed, 7 insertions(+), 3 deletions(-) create mode 100644 docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-commercial-linked-users.png diff --git a/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md index e309438f82..2134fe79c3 100644 --- a/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md +++ b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md @@ -190,11 +190,15 @@ There are some breaking changes with the Blazor UI. If you've built an applicati ### Linked Accounts -TODO +Linked user system allows you to link other accounts (including account in a different tenant) with your account, so you can switch between account with a single-click. It is practical since you no longer need to logout and login again with entering the username and password of the other account. + +To manage the linked accounts, go to the profile management page from the user menu; + +![abp-commercial-linked-users](abp-commercial-linked-users.png) ### Paypal & Stripe Integrations -TODO +The [Payment Module](https://commercial.abp.io/modules/Volo.Payment) was supporting PayU and 2Checkout providers until the version 3.3. It now has integration for Paypal and Stripe. See the [technical documentation](https://docs.abp.io/en/commercial/latest/modules/payment) to learn how to use it. ### ABP Suite Improvements @@ -208,7 +212,7 @@ We've done a lot of small improvements for the [ABP Suite](https://commercial.ab * Added an option to the Account Module to show reCAPTCHA on the login & the registration forms. -Beside these, we've done a lot of small enhancements and bug fixes to provide a better development experience and increment your productivity. +Beside the new features introduced in this post, we've done a lot of small enhancements and bug fixes to provide a better development experience and increment the developer productivity. ## New Articles diff --git a/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-commercial-linked-users.png b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/abp-commercial-linked-users.png new file mode 100644 index 0000000000000000000000000000000000000000..ef957aecd5c22104a2b5dd260f02efad269b534e GIT binary patch literal 29275 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 Date: Wed, 14 Oct 2020 22:25:04 +0300 Subject: [PATCH 200/242] Typo fix. --- docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md index 2134fe79c3..6beaf231bf 100644 --- a/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md +++ b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md @@ -94,7 +94,7 @@ var count = await AsyncExecuter.CountAsync( `AsyncExecuter` has all the standard extension methods, so you don't have any restriction here. See [the repository documentation](https://docs.abp.io/en/abp/latest/Repositories#iqueryable-async-operations) for all the options you have. -> ABP Framework does it's best to not depend on the EF Core yet still be able to use the async LINQ extension methods. However, it there is no problem to depend on the EF Core for your application, you can add the Microsoft.EntityFrameworkCore NuGet package and use it natively. +> ABP Framework does its best to not depend on the EF Core yet still be able to use the async LINQ extension methods. However, it there is no problem to depend on the EF Core for your application, you can add the Microsoft.EntityFrameworkCore NuGet package and use it natively. ### Stream Support for the Application Service Methods From 0b218b81b791614904e0ba8de1aba9374ff7ebf0 Mon Sep 17 00:00:00 2001 From: maliming <6908465+maliming@users.noreply.github.com> Date: Thu, 15 Oct 2020 10:41:15 +0800 Subject: [PATCH 201/242] Configure AbpStringEncryptionOptions using random values in the template. Resolve #5743 --- .../Templates/App/AppTemplateBase.cs | 6 +++ .../RandomizeStringEncryptionStep.cs | 47 +++++++++++++++++++ .../Volo/Abp/Security/AbpSecurityModule.cs | 38 ++++++++++++++- .../appsettings.json | 3 ++ .../appsettings.json | 3 ++ .../appsettings.json | 3 ++ .../appsettings.json | 3 ++ 7 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/RandomizeStringEncryptionStep.cs diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs index d309d4858a..8846473d96 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs @@ -25,6 +25,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App SwitchDatabaseProvider(context, steps); DeleteUnrelatedProjects(context, steps); RandomizeSslPorts(context, steps); + RandomizeStringEncryption(context, steps); UpdateNuGetConfig(context, steps); CleanupFolderHierarchy(context, steps); @@ -185,6 +186,11 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates.App ); } + private static void RandomizeStringEncryption(ProjectBuildContext context, List steps) + { + steps.Add(new RandomizeStringEncryptionStep()); + } + private static void UpdateNuGetConfig(ProjectBuildContext context, List steps) { steps.Add(new UpdateNuGetConfigStep("/aspnet-core/NuGet.Config")); diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/RandomizeStringEncryptionStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/RandomizeStringEncryptionStep.cs new file mode 100644 index 0000000000..ea69d4483a --- /dev/null +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/RandomizeStringEncryptionStep.cs @@ -0,0 +1,47 @@ +using System; +using System.Linq; +using System.Text; +using Volo.Abp.Cli.ProjectBuilding.Building; + +namespace Volo.Abp.Cli.ProjectBuilding.Templates +{ + public class RandomizeStringEncryptionStep: ProjectBuildPipelineStep + { + public override void Execute(ProjectBuildContext context) + { + var appSettings = context.Files + .Where(x => !x.IsDirectory && x.Name.EndsWith("appSettings.json", StringComparison.InvariantCultureIgnoreCase)) + .Where(x => x.Content.IndexOf("StringEncryption", StringComparison.InvariantCultureIgnoreCase) >= 0) + .ToList(); + + const string defaultPassPhrase = "gsKnGZ041HLL4IM8"; + var randomPassPhrase = GetRandomString(defaultPassPhrase.Length); + foreach (var appSetting in appSettings) + { + appSetting.NormalizeLineEndings(); + + var appSettingLines = appSetting.GetLines(); + for (var i = 0; i < appSettingLines.Length; i++) + { + if (appSettingLines[i].Contains(defaultPassPhrase) && appSettingLines[i].Contains(defaultPassPhrase)) + { + appSettingLines[i] = appSettingLines[i].Replace(defaultPassPhrase, randomPassPhrase); + } + } + + appSetting.SetLines(appSettingLines); + } + } + + private static string GetRandomString(int length) + { + const string letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; + var builder = new StringBuilder(); + for (var i = 0; i < length; i++) + { + builder.Append(letters[RandomHelper.GetRandom(0, letters.Length)]); + } + return builder.ToString(); + } + } +} diff --git a/framework/src/Volo.Abp.Security/Volo/Abp/Security/AbpSecurityModule.cs b/framework/src/Volo.Abp.Security/Volo/Abp/Security/AbpSecurityModule.cs index f62a9566c4..b1cdcb1097 100644 --- a/framework/src/Volo.Abp.Security/Volo/Abp/Security/AbpSecurityModule.cs +++ b/framework/src/Volo.Abp.Security/Volo/Abp/Security/AbpSecurityModule.cs @@ -1,9 +1,45 @@ -using Volo.Abp.Modularity; +using System; +using System.Text; +using Microsoft.Extensions.DependencyInjection; +using Volo.Abp.Modularity; +using Volo.Abp.Security.Encryption; namespace Volo.Abp.Security { public class AbpSecurityModule : AbpModule { + public override void ConfigureServices(ServiceConfigurationContext context) + { + var configuration = context.Services.GetConfiguration(); + context.Services.Configure(options => + { + var keySize = configuration["StringEncryption:KeySize"]; + if (!keySize.IsNullOrWhiteSpace()) + { + if (int.TryParse(keySize, out var intValue)) + { + options.Keysize = intValue; + } + } + var defaultPassPhrase = configuration["StringEncryption:DefaultPassPhrase"]; + if (!defaultPassPhrase.IsNullOrWhiteSpace()) + { + options.DefaultPassPhrase = defaultPassPhrase; + } + + var initVectorBytes = configuration["StringEncryption:InitVectorBytes"]; + if (!initVectorBytes.IsNullOrWhiteSpace()) + { + options.InitVectorBytes = Encoding.ASCII.GetBytes(initVectorBytes);; + } + + var defaultSalt = configuration["StringEncryption:DefaultSalt"]; + if (!defaultSalt.IsNullOrWhiteSpace()) + { + options.DefaultSalt = Encoding.ASCII.GetBytes(defaultSalt);; + } + }); + } } } diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/appsettings.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/appsettings.json index 2cb4b81ab9..ab4349b9c6 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/appsettings.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.Host/appsettings.json @@ -12,6 +12,9 @@ "Authority": "https://localhost:44301", "RequireHttpsMetadata": "true" }, + "StringEncryption": { + "DefaultPassPhrase": "gsKnGZ041HLL4IM8" + }, "Settings": { "Abp.Mailing.Smtp.Host": "127.0.0.1", "Abp.Mailing.Smtp.Port": "25", diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/appsettings.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/appsettings.json index 9b456d26b9..e62c32aa0c 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/appsettings.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.HttpApi.HostWithIds/appsettings.json @@ -10,6 +10,9 @@ "Authority": "https://localhost:44305", "RequireHttpsMetadata": "false" }, + "StringEncryption": { + "DefaultPassPhrase": "gsKnGZ041HLL4IM8" + }, "Settings": { "Abp.Mailing.Smtp.Host": "127.0.0.1", "Abp.Mailing.Smtp.Port": "25", diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/appsettings.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/appsettings.json index 887908f3db..b2fa57365a 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/appsettings.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.IdentityServer/appsettings.json @@ -9,6 +9,9 @@ "Redis": { "Configuration": "127.0.0.1" }, + "StringEncryption": { + "DefaultPassPhrase": "gsKnGZ041HLL4IM8" + }, "Settings": { "Abp.Mailing.Smtp.Host": "127.0.0.1", "Abp.Mailing.Smtp.Port": "25", diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/appsettings.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/appsettings.json index 18dc17e87a..5f3d9b9bd8 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/appsettings.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web/appsettings.json @@ -16,6 +16,9 @@ } } }, + "StringEncryption": { + "DefaultPassPhrase": "gsKnGZ041HLL4IM8" + }, "Settings": { "Abp.Mailing.Smtp.Host": "127.0.0.1", "Abp.Mailing.Smtp.Port": "25", From 791979f0e057a343171ec2e3982ea94aca7f407e Mon Sep 17 00:00:00 2001 From: maliming <6908465+maliming@users.noreply.github.com> Date: Thu, 15 Oct 2020 10:48:03 +0800 Subject: [PATCH 202/242] Add StringEncryption in Web.Host project. --- .../src/MyCompanyName.MyProjectName.Web.Host/appsettings.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/appsettings.json b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/appsettings.json index f1a6421610..c89186b748 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/appsettings.json +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Web.Host/appsettings.json @@ -15,5 +15,8 @@ "RequireHttpsMetadata": "true", "ClientId": "MyProjectName_Web", "ClientSecret": "1q2w3e*" + }, + "StringEncryption": { + "DefaultPassPhrase": "gsKnGZ041HLL4IM8" } } From 31b077c1a33e653e5395454b7f00765b338e5f0a Mon Sep 17 00:00:00 2001 From: maliming Date: Thu, 15 Oct 2020 10:50:46 +0800 Subject: [PATCH 203/242] Update RandomizeStringEncryptionStep.cs --- .../ProjectBuilding/Templates/RandomizeStringEncryptionStep.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/RandomizeStringEncryptionStep.cs b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/RandomizeStringEncryptionStep.cs index ea69d4483a..6fc2bafc95 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/RandomizeStringEncryptionStep.cs +++ b/framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/RandomizeStringEncryptionStep.cs @@ -23,7 +23,7 @@ namespace Volo.Abp.Cli.ProjectBuilding.Templates var appSettingLines = appSetting.GetLines(); for (var i = 0; i < appSettingLines.Length; i++) { - if (appSettingLines[i].Contains(defaultPassPhrase) && appSettingLines[i].Contains(defaultPassPhrase)) + if (appSettingLines[i].Contains("DefaultPassPhrase") && appSettingLines[i].Contains(defaultPassPhrase)) { appSettingLines[i] = appSettingLines[i].Replace(defaultPassPhrase, randomPassPhrase); } From f4adf4b3620cf4a6467b6e17a4d77122f417d6c8 Mon Sep 17 00:00:00 2001 From: Alper Ebicoglu Date: Thu, 15 Oct 2020 08:54:12 +0300 Subject: [PATCH 204/242] Refactored texts --- .../2020-10-15 v3_3_Preview/POST.md | 36 +++++++++---------- 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md index 6beaf231bf..b42e17e865 100644 --- a/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md +++ b/docs/en/Blog-Posts/2020-10-15 v3_3_Preview/POST.md @@ -1,6 +1,6 @@ # ABP Framework 3.3 RC Has Been Published -We have released the [ABP Framework](https://abp.io/) (and the [ABP Commercial](https://commercial.abp.io/)) `3.3.0-rc.1` today. This blog post introduces the new features and important changes of this new version. +We have released the [ABP Framework](https://abp.io/) (and the [ABP Commercial](https://commercial.abp.io/)) `3.3.0-rc.1` today. This blog post introduces the new features and important changes in the new version. ## What's new with the ABP Framework 3.3 @@ -8,7 +8,7 @@ We have released the [ABP Framework](https://abp.io/) (and the [ABP Commercial]( We had released an experimental early preview version of the Blazor UI with the [previous version](https://blog.abp.io/abp/ABP-Framework-ABP-Commercial-3.2-RC-With-The-New-Blazor-UI). In this version, we've completed most of the fundamental infrastructure features and the application modules (like identity and tenant management). -It currently has almost the same functionalities with the other UI types (Angular & MVC / Razor Pages). +It currently has almost the same functionalities as the other UI types (Angular & MVC / Razor Pages). **Example screenshot**: User management page of the Blazor UI @@ -16,7 +16,7 @@ It currently has almost the same functionalities with the other UI types (Angula > We've adapted the [Lepton Theme](https://commercial.abp.io/themes) for the ABP Commercial, see the related section below. -We are still working on the fundamentals. So, the next version may introduce breaking changes for the Blazor UI, while we will work to keep them with minimal effect on your application code. +We are still working on the fundamentals. So, the next version may introduce breaking changes of the Blazor UI. We will work hard to keep them with the minimal effect on your application code. #### Breaking Changes on the Blazor UI @@ -36,9 +36,9 @@ See [the documentation](https://github.com/abpframework/abp/blob/dev/docs/en/Dis ### Async Repository LINQ Extension Methods -You have a problem when you want to use **Async LINQ Extension Methods** (e.g. `FirstOrDefaultAsync(...)`) in your **domain** and **application** layers. These async methods are **not included in the standard LINQ extension methods**. They are defined by the [Microsoft.EntityFrameworkCore](https://www.nuget.org/packages/Microsoft.EntityFrameworkCore) NuGet package (see [the code](https://github.com/dotnet/efcore/blob/main/src/EFCore/Extensions/EntityFrameworkQueryableExtensions.cs)). So, you normally need to reference to the **Microsoft.EntityFrameworkCore** package to be able to use these async methods. +You have a problem when you want to use **Async LINQ Extension Methods** (e.g. `FirstOrDefaultAsync(...)`) in your **domain** and **application** layers. These async methods are **not included in the standard LINQ extension methods**. Those are defined by the [Microsoft.EntityFrameworkCore](https://www.nuget.org/packages/Microsoft.EntityFrameworkCore) NuGet package (see [the code](https://github.com/dotnet/efcore/blob/main/src/EFCore/Extensions/EntityFrameworkQueryableExtensions.cs)). To be able to use these `async` methods, you need to reference to the `Microsoft.EntityFrameworkCore` package. -If you don't want to depend on the EF Core in your business layer, then ABP Framework provides the `IAsyncQueryableExecuter` service to execute your queries asynchronously without depending to the EF Core package. You can see [the documentation](https://docs.abp.io/en/abp/latest/Repositories#option-3-iasyncqueryableexecuter) to get more information for this service. +If you don't want to depend on the EF Core in your business layer, then ABP Framework provides the `IAsyncQueryableExecuter` service to execute your queries asynchronously without depending on the EF Core package. You can see [the documentation](https://docs.abp.io/en/abp/latest/Repositories#option-3-iasyncqueryableexecuter) to get more information about this service. ABP Framework version 3.3 takes this one step further and allows you to directly execute the async LINQ extension methods on the `IRepository` interface. @@ -78,7 +78,7 @@ namespace MyCompanyName.MyProjectName All the standard LINQ methods are supported: *AllAsync, AnyAsync, AverageAsync, ContainsAsync, CountAsync, FirstAsync, FirstOrDefaultAsync, LastAsync, LastOrDefaultAsync, LongCountAsync, MaxAsync, MinAsync, SingleAsync, SingleOrDefaultAsync, SumAsync, ToArrayAsync, ToListAsync*. -This approach still has a limitation. You need to execute the extension method directly on the repository object. For example, the usage below is **not supported**: +This approach still has a limitation. You need to execute the extension method directly on the repository object. For example, the below usage is **not supported**: ````csharp var count = await _bookRepository.Where(x => x.Name.Contains("A")).CountAsync(); @@ -94,7 +94,7 @@ var count = await AsyncExecuter.CountAsync( `AsyncExecuter` has all the standard extension methods, so you don't have any restriction here. See [the repository documentation](https://docs.abp.io/en/abp/latest/Repositories#iqueryable-async-operations) for all the options you have. -> ABP Framework does its best to not depend on the EF Core yet still be able to use the async LINQ extension methods. However, it there is no problem to depend on the EF Core for your application, you can add the Microsoft.EntityFrameworkCore NuGet package and use it natively. +> ABP Framework does its best to not depend on the EF Core and still be able to use the async LINQ extension methods. However, there is no problem to depend on the EF Core for your application, you can add the `Microsoft.EntityFrameworkCore` NuGet package and use the native methods. ### Stream Support for the Application Service Methods @@ -120,7 +120,7 @@ namespace MyProject.Test } ```` -The implementation can be like shown below: +The implementation can be as shown below: ````csharp using System; @@ -156,7 +156,7 @@ namespace MyProject.Test } ```` -> This is just a demo code. Do it better on a production code :) +> This is just a demo code. Do it better in your production code :) Thanks to [@alexandru-bagu](https://github.com/alexandru-bagu) for the great contribution! @@ -190,7 +190,7 @@ There are some breaking changes with the Blazor UI. If you've built an applicati ### Linked Accounts -Linked user system allows you to link other accounts (including account in a different tenant) with your account, so you can switch between account with a single-click. It is practical since you no longer need to logout and login again with entering the username and password of the other account. +Linked user system allows you to link other accounts (including account in a different tenant) with your account, so you can switch between different accounts with a single-click. It is practical since you no longer need to logout and login again with entering the credentials of the target account. To manage the linked accounts, go to the profile management page from the user menu; @@ -198,7 +198,7 @@ To manage the linked accounts, go to the profile management page from the user m ### Paypal & Stripe Integrations -The [Payment Module](https://commercial.abp.io/modules/Volo.Payment) was supporting PayU and 2Checkout providers until the version 3.3. It now has integration for Paypal and Stripe. See the [technical documentation](https://docs.abp.io/en/commercial/latest/modules/payment) to learn how to use it. +The [Payment Module](https://commercial.abp.io/modules/Volo.Payment) was supporting PayU and 2Checkout providers until the version 3.3. It's now integrated to PayPal and Stripe. See the [technical documentation](https://docs.abp.io/en/commercial/latest/modules/payment) to learn how to use it. ### ABP Suite Improvements @@ -206,17 +206,17 @@ We've done a lot of small improvements for the [ABP Suite](https://commercial.ab * Show the previously installed modules as *installed* on the module list. * Switch between the latest stable, the latest [preview](https://docs.abp.io/en/abp/latest/Previews) and the latest [nightly build](https://docs.abp.io/en/abp/latest/Nightly-Builds) versions of the ABP related packages. -* Moved the file that stores the *previously created entities* to the solution folder to allow you to store it in your source control system. +* Moved the file that stores the *previously created entities* into the solution folder to allow you to store it in your source control system. ### Others * Added an option to the Account Module to show reCAPTCHA on the login & the registration forms. -Beside the new features introduced in this post, we've done a lot of small enhancements and bug fixes to provide a better development experience and increment the developer productivity. +Besides the new features introduced in this post, we've done a lot of small other enhancements and bug fixes to provide a better development experience and increase the developer productivity. ## New Articles -The core ABP Framework team & the people continue to publish new articles on the ABP Community web site. The latest published articles are; +The core ABP Framework team & the community continue to publish new articles on the ABP Community web site. The recently published articles are; * [Replacing Email Templates and Sending Emails](https://community.abp.io/articles/replacing-email-templates-and-sending-emails-jkeb8zzh) (by [@EngincanV](https://community.abp.io/members/EngincanV)) * [How to Add Custom Properties to the User Entity](https://community.abp.io/articles/how-to-add-custom-property-to-the-user-entity-6ggxiddr) (by [@berkansasmaz](https://community.abp.io/members/berkansasmaz)) @@ -227,12 +227,12 @@ It is appreciated if you want to [submit an article](https://community.abp.io/ar ## About the Next Release -The next version will be `4.0.0`. We are releasing a major version since we will move the ABP Framework to .NET 5.0. We see that for most of the applications this will not be a breaking change and we hope you easily upgrade it. +The next version will be `4.0.0`. We are releasing a major version, since we will move the ABP Framework to .NET 5.0. We see that for most of the applications this will not be a breaking change and we hope you easily upgrade to it. -The planned 4.0.0-rc.1 (Release Candidate) version date is November 11th, just after the Microsoft releases the .NET 5.0 final. The planned 4.0.0 final release date is November 26th. +The planned 4.0.0-rc.1 (Release Candidate) version date is **November 11**, just after the Microsoft releases the .NET 5.0 final. The planned 4.0.0 final release date is **November 26**. -Follow the [GitHub milestones](https://github.com/abpframework/abp/milestones) for the planned ABP Framework version release dates. +Follow the [GitHub milestones](https://github.com/abpframework/abp/milestones) for all the planned ABP Framework version release dates. ## Feedback -Please try the ABP Framework 3.3.0 RC and [provide feedback](https://github.com/abpframework/abp/issues/new) to help us to release a more stable version. The planned release date for the [3.3.0 final](https://github.com/abpframework/abp/milestone/44) version is October 27th. \ No newline at end of file +Please check out the ABP Framework 3.3.0 RC and [provide feedback](https://github.com/abpframework/abp/issues/new) to help us to release a more stable version. The planned release date for the [3.3.0 final](https://github.com/abpframework/abp/milestone/44) version is October 27th. From eb2a6bacc81badda3221218a7b92bf9f4875c722 Mon Sep 17 00:00:00 2001 From: Erol Arkat Date: Thu, 15 Oct 2020 09:59:31 +0300 Subject: [PATCH 205/242] version update --- common.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common.props b/common.props index 5671a3fc31..80923c27d4 100644 --- a/common.props +++ b/common.props @@ -1,7 +1,7 @@ latest - 3.3.0 + 3.3.0-rc.1 $(NoWarn);CS1591;CS0436 https://abp.io/assets/abp_nupkg.png https://abp.io/ From 655b0e7e4f02d2eafce5387f5fd8ca5454ff3e86 Mon Sep 17 00:00:00 2001 From: Arman Ozak Date: Thu, 15 Oct 2020 10:24:56 +0300 Subject: [PATCH 206/242] fix: modify findRoute termination condition --- .../packages/core/src/lib/utils/route-utils.ts | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/utils/route-utils.ts b/npm/ng-packs/packages/core/src/lib/utils/route-utils.ts index 388e76cbf8..8c9553fac2 100644 --- a/npm/ng-packs/packages/core/src/lib/utils/route-utils.ts +++ b/npm/ng-packs/packages/core/src/lib/utils/route-utils.ts @@ -1,22 +1,16 @@ +import { NgZone } from '@angular/core'; import { PRIMARY_OUTLET, Router, UrlSegmentGroup } from '@angular/router'; import { ABP } from '../models/common'; import { RoutesService } from '../services/routes.service'; -import { TreeNode } from './tree-utils'; import { noop } from './common-utils'; -import { NgZone } from '@angular/core'; +import { TreeNode } from './tree-utils'; export function findRoute(routes: RoutesService, path: string): TreeNode { const node = routes.find(route => route.path === path); return node || path === '/' ? node - : findRoute( - routes, - path - .split('/') - .slice(0, -1) - .join('/'), - ); + : findRoute(routes, path.split('/').slice(0, -1).join('/') || '/'); } export function getRoutePath(router: Router, url = router.url) { From 4ee03a4cdc54f20e351a6adf20b9b4d58606368d Mon Sep 17 00:00:00 2001 From: maliming <6908465+maliming@users.noreply.github.com> Date: Thu, 15 Oct 2020 15:57:20 +0800 Subject: [PATCH 207/242] Update sdk version. --- .github/workflows/build-and-test.yml | 2 +- global.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 45447f4c8f..062bf71d89 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -17,7 +17,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-dotnet@master with: - dotnet-version: 5.0.100-rc.1.20452.10 + dotnet-version: 5.0.100-rc.2.20479.15 - name: Build All run: .\build-all.ps1 diff --git a/global.json b/global.json index 1801e2560c..f87af98b74 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "5.0.100-rc.1.20452.10", + "version": "5.0.100-rc.2.20479.15", "rollForward": "latestFeature" } } From 52e0e94baf3ff79806ac4ab78da44936b8e5743d Mon Sep 17 00:00:00 2001 From: Erol Arkat Date: Thu, 15 Oct 2020 11:35:33 +0300 Subject: [PATCH 208/242] common.ps1 fix --- nupkg/common.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nupkg/common.ps1 b/nupkg/common.ps1 index 97cbd5633c..b1252f47c8 100644 --- a/nupkg/common.ps1 +++ b/nupkg/common.ps1 @@ -46,7 +46,7 @@ $projects = ( "framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages", "framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic", "framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared", - "framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo" + "framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo", "framework/src/Volo.Abp.AspNetCore.Mvc.UI.Widgets", "framework/src/Volo.Abp.AspNetCore.Serilog", "framework/src/Volo.Abp.AspNetCore.SignalR", From c3103dee1cc73210cdb1e8673ef91c3897a1fd25 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Thu, 15 Oct 2020 13:53:58 +0300 Subject: [PATCH 209/242] show (preview) for the preview versions on the docs version list resolves https://github.com/abpframework/abp/issues/5562 --- .../Volo/Docs/Localization/Domain/en.json | 5 +++-- .../Volo/Docs/Localization/Domain/tr.json | 3 ++- .../Pages/Documents/Project/Index.cshtml.cs | 15 +++++++++++---- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/en.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/en.json index 67227c506a..4a9ac08ebb 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/en.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/en.json @@ -13,7 +13,7 @@ "ClearCacheConfirmationMessage": "Are you sure to clear all caches for project \"{0}\"", "ReIndexAllProjects": "ReIndex all projects", "ReIndexProject": "ReIndex project", - "ReIndexProjectConfirmationMessage":"Are you sure to reindex for project \"{0}\"", + "ReIndexProjectConfirmationMessage": "Are you sure to reindex for project \"{0}\"", "SuccessfullyReIndexProject": "Successfully reindex for project \"{0}\"", "ReIndexAllProjectConfirmationMessage": "Are you sure to reindex all project?", "SuccessfullyReIndexAllProject": "Successfully reindex for all projects", @@ -33,6 +33,7 @@ "Upd": "Upd", "NewExplanation": "Created in the last two weeks.", "UpdatedExplanation": "Updated in the last two weeks.", - "Volo.Docs.Domain:010002": "ShortName {ShortName} already exists." + "Volo.Docs.Domain:010002": "ShortName {ShortName} already exists.", + "Preview": "preview" } } diff --git a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/tr.json b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/tr.json index f41a049932..5d7b9a61ed 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/tr.json +++ b/modules/docs/src/Volo.Docs.Domain/Volo/Docs/Localization/Domain/tr.json @@ -33,6 +33,7 @@ "Upd": "Günc", "NewExplanation": "Son iki hafta içinde oluşturuldu.", "UpdatedExplanation": "Son iki hafta içinde güncellendi.", - "Volo.Docs.Domain:010002": "ShortName {ShortName} zaten var." + "Volo.Docs.Domain:010002": "ShortName {ShortName} zaten var.", + "Preview": "ön izleme" } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs index 9b7daa596a..a52027bb11 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs @@ -18,6 +18,7 @@ using Volo.Docs.HtmlConverting; using Volo.Docs.Models; using Volo.Docs.Projects; using Volo.Docs.GitHub.Documents.Version; +using Volo.Docs.Localization; namespace Volo.Docs.Pages.Documents.Project { @@ -99,6 +100,8 @@ namespace Volo.Docs.Pages.Documents.Project _documentSectionRenderer = documentSectionRenderer; _versionHelper = versionHelper; _uiOptions = options.Value; + + LocalizationResourceType = typeof(DocsResource); } public virtual async Task OnGetAsync() @@ -312,11 +315,15 @@ namespace Volo.Docs.Pages.Documents.Project { var LatestVersionBranchNameWithoutPrefix = RemoveVersionPrefix(Project.LatestVersionBranchName); - var latest = versions.FirstOrDefault(v=> v.Version == LatestVersionBranchNameWithoutPrefix); - - if (latest != null) + foreach (var version in versions) { - return latest; + if (version.Version == LatestVersionBranchNameWithoutPrefix) + { + return version; + } + + version.DisplayText = $"{version.DisplayText} ({L["Preview"].Value})"; + } } From 2e4f9025ea31af2cb2d05c7092f5eea63a29158e Mon Sep 17 00:00:00 2001 From: erolarkat Date: Thu, 15 Oct 2020 13:56:18 +0300 Subject: [PATCH 210/242] npm packages 3.3.0-rc.1 --- .../package.json | 2 +- .../yarn.lock | 224 +-- .../package.json | 4 +- .../yarn.lock | 260 +-- .../app/Volo.BloggingTestApp/package.json | 4 +- .../app/Volo.BloggingTestApp/yarn.lock | 332 +-- .../Volo.ClientSimulation.Demo/package.json | 2 +- .../demo/Volo.ClientSimulation.Demo/yarn.lock | 238 +-- modules/cms-kit/angular/package.json | 10 +- .../angular/projects/cms-kit/package.json | 4 +- .../Volo.CmsKit.IdentityServer/package.json | 2 +- .../host/Volo.CmsKit.IdentityServer/yarn.lock | 238 +-- .../host/Volo.CmsKit.Web.Host/package.json | 2 +- .../host/Volo.CmsKit.Web.Host/yarn.lock | 238 +-- .../host/Volo.CmsKit.Web.Unified/package.json | 2 +- .../wwwroot/libs/jquery/jquery.js | 1792 ++++++----------- .../star-rating-svg/css/star-rating-svg.css | 37 - .../js/jquery.star-rating-svg.min.js | 1 - .../host/Volo.CmsKit.Web.Unified/yarn.lock | 238 +-- modules/docs/app/VoloDocs.Web/package.json | 4 +- modules/docs/app/VoloDocs.Web/yarn.lock | 298 +-- .../wwwroot/libs/abp/core/abp.js | 94 +- npm/lerna.json | 2 +- npm/ng-packs/lerna.version.json | 2 +- npm/ng-packs/package.json | 22 +- npm/ng-packs/packages/account/package.json | 4 +- npm/ng-packs/packages/components/package.json | 4 +- npm/ng-packs/packages/core/package.json | 4 +- .../packages/feature-management/package.json | 4 +- npm/ng-packs/packages/identity/package.json | 6 +- .../permission-management/package.json | 4 +- npm/ng-packs/packages/schematics/package.json | 2 +- .../packages/setting-management/package.json | 4 +- .../packages/tenant-management/package.json | 6 +- .../packages/theme-basic/package.json | 4 +- .../packages/theme-shared/package.json | 4 +- npm/ng-packs/yarn.lock | 110 +- npm/packs/anchor-js/package.json | 4 +- .../package.json | 4 +- .../package.json | 30 +- npm/packs/aspnetcore.mvc.ui/package.json | 2 +- npm/packs/blogging/package.json | 10 +- npm/packs/bootstrap-datepicker/package.json | 2 +- npm/packs/bootstrap/package.json | 4 +- npm/packs/chart.js/package.json | 2 +- npm/packs/clipboard/package.json | 4 +- npm/packs/codemirror/package.json | 4 +- npm/packs/core/package.json | 4 +- npm/packs/cropperjs/package.json | 4 +- npm/packs/datatables.net-bs4/package.json | 4 +- npm/packs/datatables.net/package.json | 4 +- npm/packs/docs/package.json | 12 +- npm/packs/flag-icon-css/package.json | 2 +- npm/packs/font-awesome/package.json | 4 +- npm/packs/highlight.js/package.json | 4 +- npm/packs/jquery-form/package.json | 4 +- .../package.json | 4 +- npm/packs/jquery-validation/package.json | 4 +- npm/packs/jquery/package.json | 4 +- npm/packs/jstree/package.json | 4 +- npm/packs/lodash/package.json | 4 +- npm/packs/luxon/package.json | 4 +- .../package.json | 4 +- npm/packs/markdown-it/package.json | 4 +- npm/packs/owl.carousel/package.json | 4 +- npm/packs/popper.js/package.json | 4 +- npm/packs/prismjs/package.json | 6 +- npm/packs/select2/package.json | 4 +- npm/packs/signalr/package.json | 4 +- npm/packs/star-rating-svg/package.json | 4 +- npm/packs/sweetalert/package.json | 4 +- npm/packs/timeago/package.json | 4 +- npm/packs/toastr/package.json | 4 +- npm/packs/tui-editor/package.json | 10 +- npm/packs/uppy/package.json | 4 +- npm/packs/utils/package.json | 2 +- npm/packs/virtual-file-explorer/package.json | 6 +- templates/app/angular/package.json | 12 +- .../package.json | 2 +- .../yarn.lock | 238 +-- .../package.json | 2 +- .../yarn.lock | 238 +-- .../package.json | 2 +- .../yarn.lock | 238 +-- .../package.json | 2 +- .../MyCompanyName.MyProjectName.Web/yarn.lock | 238 +-- templates/module/angular/package.json | 12 +- .../projects/my-project-name/package.json | 4 +- .../package.json | 2 +- .../yarn.lock | 238 +-- .../package.json | 2 +- .../yarn.lock | 238 +-- .../package.json | 2 +- .../yarn.lock | 238 +-- 94 files changed, 2829 insertions(+), 3287 deletions(-) delete mode 100644 modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/star-rating-svg/css/star-rating-svg.css delete mode 100644 modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/star-rating-svg/js/jquery.star-rating-svg.min.js diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json index 539ede118e..7f51b3a9eb 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json @@ -3,7 +3,7 @@ "name": "asp.net", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.shared": "^3.2.1", + "@abp/aspnetcore.mvc.ui.theme.shared": "^3.3.0-rc.1", "highlight.js": "^9.13.1" }, "devDependencies": {} diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock index c4ed1c0ce8..77ebb00eb7 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock @@ -2,30 +2,30 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.shared@^3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.2.1.tgz#b628602dca8d1809e32f423962cff56379a790b0" - integrity sha512-aWZAaFnN9Ncyzy84wPTfUVtcyh98Sxu4m+fsGY5XtwA/nwDTDVtLMq81ueJWyFgN9GNk8+lT6VXfPDpA/MJo/A== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.2.1" - "@abp/bootstrap" "~3.2.1" - "@abp/bootstrap-datepicker" "~3.2.1" - "@abp/datatables.net-bs4" "~3.2.1" - "@abp/font-awesome" "~3.2.1" - "@abp/jquery-form" "~3.2.1" - "@abp/jquery-validation-unobtrusive" "~3.2.1" - "@abp/lodash" "~3.2.1" - "@abp/luxon" "~3.2.1" - "@abp/malihu-custom-scrollbar-plugin" "~3.2.1" - "@abp/select2" "~3.2.1" - "@abp/sweetalert" "~3.2.1" - "@abp/timeago" "~3.2.1" - "@abp/toastr" "~3.2.1" - -"@abp/aspnetcore.mvc.ui@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.2.1.tgz#dc0d2c331bf09ef0f79cec739e0f64edb1105084" - integrity sha512-Fpn16MeK71Uhw6636nlXCQaSwN9lN6QFUIGIICcWU+2eMA8fK4ZtavaYGG4mWqjkd4wzUHCz2AZbmbxK7bVnng== +"@abp/aspnetcore.mvc.ui.theme.shared@^3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0-rc.1.tgz#0ebb50effe6d1d8e87d30cf0258c92074c77922f" + integrity sha512-sYmKnmy9Fsh0dT+CPhsxk5UwqUTdWIXDbRCp9ZI+9AKGHHBkuFfTPSi3TBK+Y/vQAOn68JdMVdRLdMJHHUXm+g== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.3.0-rc.1" + "@abp/bootstrap" "~3.3.0-rc.1" + "@abp/bootstrap-datepicker" "~3.3.0-rc.1" + "@abp/datatables.net-bs4" "~3.3.0-rc.1" + "@abp/font-awesome" "~3.3.0-rc.1" + "@abp/jquery-form" "~3.3.0-rc.1" + "@abp/jquery-validation-unobtrusive" "~3.3.0-rc.1" + "@abp/lodash" "~3.3.0-rc.1" + "@abp/luxon" "~3.3.0-rc.1" + "@abp/malihu-custom-scrollbar-plugin" "~3.3.0-rc.1" + "@abp/select2" "~3.3.0-rc.1" + "@abp/sweetalert" "~3.3.0-rc.1" + "@abp/timeago" "~3.3.0-rc.1" + "@abp/toastr" "~3.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0-rc.1.tgz#69e0fa91fb1a4f7424e08e076df213fea90c796b" + integrity sha512-c6xNCJlhmz8EasZZeYkC6LoOJLMnfa+JGbtfZF8FXNT4MQVyFpfQtGInGAn6A3TDZR2Y/roJbjXf/D73cxMnGA== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -34,145 +34,145 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.2.1.tgz#5cb75bc53fab86f7b28bfc5fbfcbf233432d75ca" - integrity sha512-KzTDZTMd/TBaTDNuPF4+T+0zsmEimD2Uq8TlNw7knEEyo7a/lsfBNkBF9Xc8bjZcbC76BqajytsTzI1yftM4Uw== +"@abp/bootstrap-datepicker@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0-rc.1.tgz#4195fa5cf5cc72420c9d87a6c75ec26c3c70b9df" + integrity sha512-6ijmKV6ySrsBwtyQxoe+/Otmhzp1XJy0uGVnY2YhmOHuKzmQeIwfzrMMuLK5XX+Gsub1dYqsawFQNzJYxY2rLA== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.2.1.tgz#9574414f1e170240dacdf78408af34830264db97" - integrity sha512-gLIr4d5xfw5TSpSHIKr7oKznkdIbGhS+gtBitP1BFVLOU2h7/d6uTZoopC+JQU16DGvn8njo8W4DL7Amh9FOqQ== +"@abp/bootstrap@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0-rc.1.tgz#e5526e2ad9ac3e3d650d8d805708d083ce5ff6f2" + integrity sha512-TvTPt6e8cGgdH4EdWAadm/8ykE0wke0vYGWWbgNfrNuSb+/Mt/lg0U3nDaNdjDBtstkEPLHKA2lvS5Nb1mNr+w== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.2.1.tgz#3c133f67394d716df3e49f1eeb934c586df755e5" - integrity sha512-GbjrFO+oKl4JuZkYdeWtE+N837XRQr0hoX8O3pI1eAnuMku48QhGec2ZpSJuqG+c3wX6PHTZPIyHse4X+y6QgA== +"@abp/core@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0-rc.1.tgz#b84bdd9526c52f5d76a356d2854256477680ef6e" + integrity sha512-6KQ9Lu/Ok0FaIIRYoUUgnV0DFcT7H080Qfr7QHOv/nI6lviFwtAi/L3IJPCwKSoP+08RklyzvD9zOIdWNWEYMQ== dependencies: - "@abp/utils" "^3.2.1" + "@abp/utils" "^3.3.0-rc.1" -"@abp/datatables.net-bs4@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.2.1.tgz#b008b2964472fd8c8286a7c4b1e903d93a52e760" - integrity sha512-C/MmA6URugDD1tdUS6zS413ycHCjefeIG7nnJrtJmCZix7mfbdrp/Km/vKbE1KMSEYWis0w/SxIEy0kbkIW4OQ== +"@abp/datatables.net-bs4@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0-rc.1.tgz#360cd4e71c8015a3b9045636ec09f11c938685a6" + integrity sha512-7DTaQfpi4bEAKBq3QR4WHYVGGuk2v7zca0Q41XuWeSkcgGwctrJnuAdotNmihDQuwNZgYO+2gFDlVa5DXPELKQ== dependencies: - "@abp/datatables.net" "~3.2.1" + "@abp/datatables.net" "~3.3.0-rc.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.2.1.tgz#ba7d4c875ad2bc126687bc5d8e627f3c4d7fb2f4" - integrity sha512-o8/K6RGnPkQUe5ClAxyHNBOevVBnb8qSM4NXRXR2AUtEvjal+4UL9QOf1LZ0zPv4OAjaaAiOAp9Pmbv4FWuZ8Q== +"@abp/datatables.net@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0-rc.1.tgz#b4fdebc7806036d3d468453772fbc1fd3c3b443f" + integrity sha512-GqeKMFYvQ3Zfx35fKkYhYUpIEWtaW1KWo5VrA+EbyTcbhdrAuAUoDH4QgLpdhtCvNO74M8JFpMVEYHhhUkc0nQ== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" datatables.net "^1.10.21" -"@abp/font-awesome@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.2.1.tgz#d54a6d9627fdfeb6c615550f09241d0c805e3d39" - integrity sha512-5BlAuIX4qFdf/mvycUAREmVQ8jg0tRtDnVXt0E8kUtzghhEGG91NfcZIaB4zaWAwuJSyqqjS/VJ/URy1g50NZQ== +"@abp/font-awesome@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0-rc.1.tgz#700ba64f6c8832b812d5d1bca28dd4a487bec833" + integrity sha512-fna7mw5AIuP/FZSx1Ac94ZpGJIwQCZKuiIpmW/vVsFHUSICZ9J+uKa6hg3pt5SLFMAEVvAS6ScJyTkt6Hoc0Mg== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.2.1.tgz#9280b28e2103fc80b9124e3a53f2f0e03ac4bb46" - integrity sha512-Dy0wTCcmWgygrru59VPnlVw7qLu8aLTZOTpMPbSva502O19O+H7FljF9r0J7eYgoO6pcTO4R1tE/Yib3DwIBFg== +"@abp/jquery-form@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0-rc.1.tgz#9fe258a926013618cd99c03aca401c4fc543a72d" + integrity sha512-qLWucASxcgCKdVeix/NXYADhGOWBAR69U/xJj4p/H5i80PuMetH/bWCb9SQbrbyza/Gp4A8JV5vBKNmZFQqSbg== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.2.1.tgz#8f0b54f0d39b00ab93638fe1537ae7bd77e3e78e" - integrity sha512-mr/jZVm8QuYO1vWcNo3ytuQEeMBvjnMiTrvoUzY1OXX+HUFR6oi8FohXgxFUypElAqQ8jelV9K0qonX1zTQhcg== +"@abp/jquery-validation-unobtrusive@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0-rc.1.tgz#7860d04cfdf152976d780efab88712ae58db8541" + integrity sha512-KAAhLa3MHcwf6CWcAtlW2BQ9WeN8LwzDY6qCz6IVG25zjZfHZ6HEVeMAG3eJ6NRZlAWv2zZK8i8Qma9lKD55gA== dependencies: - "@abp/jquery-validation" "~3.2.1" + "@abp/jquery-validation" "~3.3.0-rc.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.2.1.tgz#b5330eb404f357936d16f3dd81752076bfee963d" - integrity sha512-nmubyFyA8TbLdsJt8MAspSRN4St8Xn8ICB8ancdiyxbS/6u9oeKlvP4++ZZ881NlFkPsyo7GkHjfl29pNzzzJA== +"@abp/jquery-validation@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0-rc.1.tgz#ab64965232b30a6ae9ed8660fc9587792bfd619d" + integrity sha512-84ueP2TWJVTYuqIzofrwu8NpWQA/thmQzDzhSnI6dTLrrYzDHLQ7YjwG3/591ka3b6u71diE6UfeyQ4iBiPQ5Q== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" jquery-validation "^1.19.2" -"@abp/jquery@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.2.1.tgz#c7ee0bbff0b480b8ed01f46d1ce07ebc8c35e4a2" - integrity sha512-AvfQ9rnnb+pQUDuGnuhpCB+FzWz3EqDptoeiCDQjPXxGql3Wk5GWw6QzvuREOXcU4CoUyzigyDgnO5WaSlx8kQ== +"@abp/jquery@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0-rc.1.tgz#d46f75bfbcc65d4675675c8b69d219a3276afe91" + integrity sha512-NdChW0cbsqWVkB6AvXnTfeNZm2Ai3jmYEO2HJZDYBbWHkMlvQRnQ6oVD6TJvqMDtK066ArL1KAofuSJI2l8njQ== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" jquery "~3.5.1" -"@abp/lodash@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.2.1.tgz#7abfe7d572eaa628c033a6d50520b8510ecce79a" - integrity sha512-ZDte0vUfM1fBrs/mRq7yCuugtYZKoP/6pOEebDOMdM1GztAEKicq8s7EXxwbqE4+kjxqeHzReh7ZwCtFAf/Zew== +"@abp/lodash@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0-rc.1.tgz#5cf5462e1df615af5a3f89b8eb6b5d639f134026" + integrity sha512-AXvTAHfKSkQjJ70eStqSq2sXrOHQE+O5/7/k6JuSLbhzfC1paAZeKjLyoGj1hSuyWHQl6tbqDxJQej/NxGucHw== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" lodash "^4.17.15" -"@abp/luxon@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.2.1.tgz#ad3473f24dbacd4d1bc15a07ee75cc1db7f1df6c" - integrity sha512-WZgAMHNx1beQSA48ZJ2x2g408iBXBUvKwBwAFJqbhNhEsO95tutO80j1LNHYvXCbrAatoz6K6IDRXDXV1U3zyg== +"@abp/luxon@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0-rc.1.tgz#e479e7e854ccb9fcd35ce15145d50a9c9581dc50" + integrity sha512-j+1cBVmGtE9Of14i7nwtn9ZSvNa+46beiyOqMVmuH5qjPQTbYUAVFOlL7jVmYswplxUdK1r52n1nOz13oADnwA== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.2.1.tgz#f4a19c6de14c7193eaf6c55c429580dcbcfe3965" - integrity sha512-pu8Tuh67ruG1fLEud1eves/eiBCiuowL+LVLyW+iX1bByfVlOB40nMQ7UCMQ6Jvv31pTEK2dfQ/n8K3W/pFiWQ== +"@abp/malihu-custom-scrollbar-plugin@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0-rc.1.tgz#3455730273e75ad8d81083989b4f0d4486fe6a2c" + integrity sha512-TePsuZmhX34y9OEPdyYnWuQnx8ntkMXO4gkwciT0fqen+Cs8ty1VFr7uBeFTIo/JTCBtrRehcOjCJiv/F3j1Ug== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.2.1.tgz#8a04a6f5f10cc4a48a3da37bbc38ff655e626ddf" - integrity sha512-i/euJ+kTHakwCI3Hf9+NhiQG+MYlU0iwp6GRmS2uHqgkMd2gVjnBq+elA2jsi50PXpxowv4vdBCNHcicI58W2w== +"@abp/select2@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0-rc.1.tgz#f5e159e13d2b7868a2283fb58af5121f1cc439e3" + integrity sha512-+fZoOHSZMeoMhIKQFrL62B1mwH10zNwsmEfgdLEvSiGNss+yGUmCZKxz9jSbQUr81N/kgew1CMxMjPGfyvpudA== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" select2 "^4.0.13" -"@abp/sweetalert@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.2.1.tgz#be99820491499fea06259fbc584e799a51cbabf3" - integrity sha512-If5UJQVJ05aEbxPHrwRpuEzCT5ygOHmPzpBblpzSo5XxNNDGGlumnwYmtbXBSXutXrIR0b5//Bo1EgBVtmJHOg== +"@abp/sweetalert@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0-rc.1.tgz#72e926a4e44dec851cf5abbe088f27294ccea671" + integrity sha512-IxrpZwgSO6t9DGKzWN3CfBL+lA5n/5Z3JBt6plWSYFSMMNDlxIOPyKcJBUUnlHnpUiqslCIiZRlOcCLTsw13tw== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" sweetalert "^2.1.2" -"@abp/timeago@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.2.1.tgz#4e5e6c76d5440de65646a076ce1a9d7225882243" - integrity sha512-4WLWoCYiSg5zYPcogV47TXA+YomDHHY0YfHHWmr6TP2bHd5ghsnMqnnkt58nUN9Psd77teo+Mo9jgR0h2IxRwQ== +"@abp/timeago@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0-rc.1.tgz#dec80881b231757f3d53fd017631517b0fb79e65" + integrity sha512-YQTE/p5SILYkfDSDbgdScqANb1d2F9a+d1Hijy/lUK6WLUqNkU2qlF1I/aBpJJWD6h8KAVqC5ZmOXZ/WDRSZ3w== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" timeago "^1.6.7" -"@abp/toastr@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.2.1.tgz#d35b44234ca6cbd5da6cc5f65d15e827bd7970dc" - integrity sha512-nBmWGL49psSF2tcNnR6PGBcfFAxo2u5HHNRzv2c2z46ZEGFa5DjuY46KZC24jMWY+yprINQewhKTmQUqJvaHqA== +"@abp/toastr@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0-rc.1.tgz#56d1c044c528ca12b4d3e37a19f21ec8cf3c3945" + integrity sha512-kTyzlneLWKbRDkSshch5MFIX46+t9SPoOly544KnX1erHmNJfVkBk69XmADeoltKHezbiglE81Kg2KXxVgrAqQ== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" toastr "^2.1.4" -"@abp/utils@^3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.2.1.tgz#960a0bbdfb781bbd6fb05e80bba2b9d95f2ae44c" - integrity sha512-bqYa1VIi1tZXCUbP2Z1WlcgPD4/wjhDVM1jiAN9UzDls1K3u+e2LyR4gLoN39WW1ULjCIhyzEAw/JgTcMmpUBw== +"@abp/utils@^3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0-rc.1.tgz#2ea2806a42d31dff246478497493e6a8735b3aa3" + integrity sha512-B58plJNC9UF9kigsGLd29qa9nyfIkgV7868NmNgsPwulAhcI1dKUgmSlymN1fBK4zPOVWbzReANVLKbQx13Z1Q== dependencies: just-compare "^1.3.0" diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json index 7cb63c1ea1..5282054343 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json @@ -3,8 +3,8 @@ "name": "asp.net", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.2.1", - "@abp/prismjs": "^3.2.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.0-rc.1", + "@abp/prismjs": "^3.3.0-rc.1" }, "devDependencies": {} } \ No newline at end of file diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock index 1dd15e460d..75478cd6cf 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.2.1.tgz#d8f9af85b6114d35bba5942e303b3a4b89c8cd75" - integrity sha512-utHlyw/xbtDqqA0ETrYTxZ8ZO49tI6FP3BAvRdevbhozdG8/el6BWpifZysKJv2VIm6d5P7DXD3uymCd5iX6EA== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.2.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.2.1.tgz#b628602dca8d1809e32f423962cff56379a790b0" - integrity sha512-aWZAaFnN9Ncyzy84wPTfUVtcyh98Sxu4m+fsGY5XtwA/nwDTDVtLMq81ueJWyFgN9GNk8+lT6VXfPDpA/MJo/A== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.2.1" - "@abp/bootstrap" "~3.2.1" - "@abp/bootstrap-datepicker" "~3.2.1" - "@abp/datatables.net-bs4" "~3.2.1" - "@abp/font-awesome" "~3.2.1" - "@abp/jquery-form" "~3.2.1" - "@abp/jquery-validation-unobtrusive" "~3.2.1" - "@abp/lodash" "~3.2.1" - "@abp/luxon" "~3.2.1" - "@abp/malihu-custom-scrollbar-plugin" "~3.2.1" - "@abp/select2" "~3.2.1" - "@abp/sweetalert" "~3.2.1" - "@abp/timeago" "~3.2.1" - "@abp/toastr" "~3.2.1" - -"@abp/aspnetcore.mvc.ui@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.2.1.tgz#dc0d2c331bf09ef0f79cec739e0f64edb1105084" - integrity sha512-Fpn16MeK71Uhw6636nlXCQaSwN9lN6QFUIGIICcWU+2eMA8fK4ZtavaYGG4mWqjkd4wzUHCz2AZbmbxK7bVnng== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0-rc.1.tgz#0c088d2946f93447388f8e63313b47398fe2f792" + integrity sha512-ysmFoSrEOMn33h6Q3swefEPkT8iABLR1RNLaHzaGOp042+3xJpvnPRC0PjdtFGIx9Mic3EHU7va/by9TGaRP0A== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0-rc.1.tgz#0ebb50effe6d1d8e87d30cf0258c92074c77922f" + integrity sha512-sYmKnmy9Fsh0dT+CPhsxk5UwqUTdWIXDbRCp9ZI+9AKGHHBkuFfTPSi3TBK+Y/vQAOn68JdMVdRLdMJHHUXm+g== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.3.0-rc.1" + "@abp/bootstrap" "~3.3.0-rc.1" + "@abp/bootstrap-datepicker" "~3.3.0-rc.1" + "@abp/datatables.net-bs4" "~3.3.0-rc.1" + "@abp/font-awesome" "~3.3.0-rc.1" + "@abp/jquery-form" "~3.3.0-rc.1" + "@abp/jquery-validation-unobtrusive" "~3.3.0-rc.1" + "@abp/lodash" "~3.3.0-rc.1" + "@abp/luxon" "~3.3.0-rc.1" + "@abp/malihu-custom-scrollbar-plugin" "~3.3.0-rc.1" + "@abp/select2" "~3.3.0-rc.1" + "@abp/sweetalert" "~3.3.0-rc.1" + "@abp/timeago" "~3.3.0-rc.1" + "@abp/toastr" "~3.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0-rc.1.tgz#69e0fa91fb1a4f7424e08e076df213fea90c796b" + integrity sha512-c6xNCJlhmz8EasZZeYkC6LoOJLMnfa+JGbtfZF8FXNT4MQVyFpfQtGInGAn6A3TDZR2Y/roJbjXf/D73cxMnGA== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,162 +41,162 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.2.1.tgz#5cb75bc53fab86f7b28bfc5fbfcbf233432d75ca" - integrity sha512-KzTDZTMd/TBaTDNuPF4+T+0zsmEimD2Uq8TlNw7knEEyo7a/lsfBNkBF9Xc8bjZcbC76BqajytsTzI1yftM4Uw== +"@abp/bootstrap-datepicker@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0-rc.1.tgz#4195fa5cf5cc72420c9d87a6c75ec26c3c70b9df" + integrity sha512-6ijmKV6ySrsBwtyQxoe+/Otmhzp1XJy0uGVnY2YhmOHuKzmQeIwfzrMMuLK5XX+Gsub1dYqsawFQNzJYxY2rLA== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.2.1.tgz#9574414f1e170240dacdf78408af34830264db97" - integrity sha512-gLIr4d5xfw5TSpSHIKr7oKznkdIbGhS+gtBitP1BFVLOU2h7/d6uTZoopC+JQU16DGvn8njo8W4DL7Amh9FOqQ== +"@abp/bootstrap@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0-rc.1.tgz#e5526e2ad9ac3e3d650d8d805708d083ce5ff6f2" + integrity sha512-TvTPt6e8cGgdH4EdWAadm/8ykE0wke0vYGWWbgNfrNuSb+/Mt/lg0U3nDaNdjDBtstkEPLHKA2lvS5Nb1mNr+w== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/clipboard@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-3.2.1.tgz#ffb57db0e73ae7c96df78dc7b739e436c9654ae0" - integrity sha512-iLCMV8JVkvdDzWf83UlkSIuU4Tiz+/wdGjiCt7lQp538fCYO7EAqurfWwMbb1Kaz0CRFzt/+AbDrXw004AND2Q== +"@abp/clipboard@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-3.3.0-rc.1.tgz#60e7e84352064c423831edb91e64abb17e56a878" + integrity sha512-7MoVQ0Vgn5UHfWVElO0NFUv4lJfiFRPgmrOfCQTKCFHwLxFWpOEnCp4aRHP2jWi5EgMP4cuSleDtwNSM4Fuqkw== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" clipboard "^2.0.6" -"@abp/core@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.2.1.tgz#3c133f67394d716df3e49f1eeb934c586df755e5" - integrity sha512-GbjrFO+oKl4JuZkYdeWtE+N837XRQr0hoX8O3pI1eAnuMku48QhGec2ZpSJuqG+c3wX6PHTZPIyHse4X+y6QgA== +"@abp/core@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0-rc.1.tgz#b84bdd9526c52f5d76a356d2854256477680ef6e" + integrity sha512-6KQ9Lu/Ok0FaIIRYoUUgnV0DFcT7H080Qfr7QHOv/nI6lviFwtAi/L3IJPCwKSoP+08RklyzvD9zOIdWNWEYMQ== dependencies: - "@abp/utils" "^3.2.1" + "@abp/utils" "^3.3.0-rc.1" -"@abp/datatables.net-bs4@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.2.1.tgz#b008b2964472fd8c8286a7c4b1e903d93a52e760" - integrity sha512-C/MmA6URugDD1tdUS6zS413ycHCjefeIG7nnJrtJmCZix7mfbdrp/Km/vKbE1KMSEYWis0w/SxIEy0kbkIW4OQ== +"@abp/datatables.net-bs4@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0-rc.1.tgz#360cd4e71c8015a3b9045636ec09f11c938685a6" + integrity sha512-7DTaQfpi4bEAKBq3QR4WHYVGGuk2v7zca0Q41XuWeSkcgGwctrJnuAdotNmihDQuwNZgYO+2gFDlVa5DXPELKQ== dependencies: - "@abp/datatables.net" "~3.2.1" + "@abp/datatables.net" "~3.3.0-rc.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.2.1.tgz#ba7d4c875ad2bc126687bc5d8e627f3c4d7fb2f4" - integrity sha512-o8/K6RGnPkQUe5ClAxyHNBOevVBnb8qSM4NXRXR2AUtEvjal+4UL9QOf1LZ0zPv4OAjaaAiOAp9Pmbv4FWuZ8Q== +"@abp/datatables.net@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0-rc.1.tgz#b4fdebc7806036d3d468453772fbc1fd3c3b443f" + integrity sha512-GqeKMFYvQ3Zfx35fKkYhYUpIEWtaW1KWo5VrA+EbyTcbhdrAuAUoDH4QgLpdhtCvNO74M8JFpMVEYHhhUkc0nQ== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" datatables.net "^1.10.21" -"@abp/font-awesome@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.2.1.tgz#d54a6d9627fdfeb6c615550f09241d0c805e3d39" - integrity sha512-5BlAuIX4qFdf/mvycUAREmVQ8jg0tRtDnVXt0E8kUtzghhEGG91NfcZIaB4zaWAwuJSyqqjS/VJ/URy1g50NZQ== +"@abp/font-awesome@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0-rc.1.tgz#700ba64f6c8832b812d5d1bca28dd4a487bec833" + integrity sha512-fna7mw5AIuP/FZSx1Ac94ZpGJIwQCZKuiIpmW/vVsFHUSICZ9J+uKa6hg3pt5SLFMAEVvAS6ScJyTkt6Hoc0Mg== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.2.1.tgz#9280b28e2103fc80b9124e3a53f2f0e03ac4bb46" - integrity sha512-Dy0wTCcmWgygrru59VPnlVw7qLu8aLTZOTpMPbSva502O19O+H7FljF9r0J7eYgoO6pcTO4R1tE/Yib3DwIBFg== +"@abp/jquery-form@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0-rc.1.tgz#9fe258a926013618cd99c03aca401c4fc543a72d" + integrity sha512-qLWucASxcgCKdVeix/NXYADhGOWBAR69U/xJj4p/H5i80PuMetH/bWCb9SQbrbyza/Gp4A8JV5vBKNmZFQqSbg== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.2.1.tgz#8f0b54f0d39b00ab93638fe1537ae7bd77e3e78e" - integrity sha512-mr/jZVm8QuYO1vWcNo3ytuQEeMBvjnMiTrvoUzY1OXX+HUFR6oi8FohXgxFUypElAqQ8jelV9K0qonX1zTQhcg== +"@abp/jquery-validation-unobtrusive@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0-rc.1.tgz#7860d04cfdf152976d780efab88712ae58db8541" + integrity sha512-KAAhLa3MHcwf6CWcAtlW2BQ9WeN8LwzDY6qCz6IVG25zjZfHZ6HEVeMAG3eJ6NRZlAWv2zZK8i8Qma9lKD55gA== dependencies: - "@abp/jquery-validation" "~3.2.1" + "@abp/jquery-validation" "~3.3.0-rc.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.2.1.tgz#b5330eb404f357936d16f3dd81752076bfee963d" - integrity sha512-nmubyFyA8TbLdsJt8MAspSRN4St8Xn8ICB8ancdiyxbS/6u9oeKlvP4++ZZ881NlFkPsyo7GkHjfl29pNzzzJA== +"@abp/jquery-validation@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0-rc.1.tgz#ab64965232b30a6ae9ed8660fc9587792bfd619d" + integrity sha512-84ueP2TWJVTYuqIzofrwu8NpWQA/thmQzDzhSnI6dTLrrYzDHLQ7YjwG3/591ka3b6u71diE6UfeyQ4iBiPQ5Q== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" jquery-validation "^1.19.2" -"@abp/jquery@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.2.1.tgz#c7ee0bbff0b480b8ed01f46d1ce07ebc8c35e4a2" - integrity sha512-AvfQ9rnnb+pQUDuGnuhpCB+FzWz3EqDptoeiCDQjPXxGql3Wk5GWw6QzvuREOXcU4CoUyzigyDgnO5WaSlx8kQ== +"@abp/jquery@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0-rc.1.tgz#d46f75bfbcc65d4675675c8b69d219a3276afe91" + integrity sha512-NdChW0cbsqWVkB6AvXnTfeNZm2Ai3jmYEO2HJZDYBbWHkMlvQRnQ6oVD6TJvqMDtK066ArL1KAofuSJI2l8njQ== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" jquery "~3.5.1" -"@abp/lodash@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.2.1.tgz#7abfe7d572eaa628c033a6d50520b8510ecce79a" - integrity sha512-ZDte0vUfM1fBrs/mRq7yCuugtYZKoP/6pOEebDOMdM1GztAEKicq8s7EXxwbqE4+kjxqeHzReh7ZwCtFAf/Zew== +"@abp/lodash@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0-rc.1.tgz#5cf5462e1df615af5a3f89b8eb6b5d639f134026" + integrity sha512-AXvTAHfKSkQjJ70eStqSq2sXrOHQE+O5/7/k6JuSLbhzfC1paAZeKjLyoGj1hSuyWHQl6tbqDxJQej/NxGucHw== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" lodash "^4.17.15" -"@abp/luxon@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.2.1.tgz#ad3473f24dbacd4d1bc15a07ee75cc1db7f1df6c" - integrity sha512-WZgAMHNx1beQSA48ZJ2x2g408iBXBUvKwBwAFJqbhNhEsO95tutO80j1LNHYvXCbrAatoz6K6IDRXDXV1U3zyg== +"@abp/luxon@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0-rc.1.tgz#e479e7e854ccb9fcd35ce15145d50a9c9581dc50" + integrity sha512-j+1cBVmGtE9Of14i7nwtn9ZSvNa+46beiyOqMVmuH5qjPQTbYUAVFOlL7jVmYswplxUdK1r52n1nOz13oADnwA== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.2.1.tgz#f4a19c6de14c7193eaf6c55c429580dcbcfe3965" - integrity sha512-pu8Tuh67ruG1fLEud1eves/eiBCiuowL+LVLyW+iX1bByfVlOB40nMQ7UCMQ6Jvv31pTEK2dfQ/n8K3W/pFiWQ== +"@abp/malihu-custom-scrollbar-plugin@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0-rc.1.tgz#3455730273e75ad8d81083989b4f0d4486fe6a2c" + integrity sha512-TePsuZmhX34y9OEPdyYnWuQnx8ntkMXO4gkwciT0fqen+Cs8ty1VFr7uBeFTIo/JTCBtrRehcOjCJiv/F3j1Ug== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/prismjs@^3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-3.2.1.tgz#8f8ef367c9a10c3ec871d721055fbed4a8ec867a" - integrity sha512-+wcKmi/F66qGRmTk+oYgYmJo+b9kQvJ+BG/+vIsN+n3Dzb/sjaDmc18pMFhEKWy7P/Yq28NxZdK+qO1LgzTktg== +"@abp/prismjs@^3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-3.3.0-rc.1.tgz#08e95a36089a9bbccf2cac9c0667e8632b59f565" + integrity sha512-myLGoT0nrLTCtqKdkqub7gv8DOo+Ccc1FjSAUlZgianoAXYKmbqDdlplS9EVE5CU0T2h5fiN0flf7reTqBn9Vg== dependencies: - "@abp/clipboard" "~3.2.1" - "@abp/core" "~3.2.1" + "@abp/clipboard" "~3.3.0-rc.1" + "@abp/core" "~3.3.0-rc.1" prismjs "^1.20.0" -"@abp/select2@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.2.1.tgz#8a04a6f5f10cc4a48a3da37bbc38ff655e626ddf" - integrity sha512-i/euJ+kTHakwCI3Hf9+NhiQG+MYlU0iwp6GRmS2uHqgkMd2gVjnBq+elA2jsi50PXpxowv4vdBCNHcicI58W2w== +"@abp/select2@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0-rc.1.tgz#f5e159e13d2b7868a2283fb58af5121f1cc439e3" + integrity sha512-+fZoOHSZMeoMhIKQFrL62B1mwH10zNwsmEfgdLEvSiGNss+yGUmCZKxz9jSbQUr81N/kgew1CMxMjPGfyvpudA== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" select2 "^4.0.13" -"@abp/sweetalert@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.2.1.tgz#be99820491499fea06259fbc584e799a51cbabf3" - integrity sha512-If5UJQVJ05aEbxPHrwRpuEzCT5ygOHmPzpBblpzSo5XxNNDGGlumnwYmtbXBSXutXrIR0b5//Bo1EgBVtmJHOg== +"@abp/sweetalert@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0-rc.1.tgz#72e926a4e44dec851cf5abbe088f27294ccea671" + integrity sha512-IxrpZwgSO6t9DGKzWN3CfBL+lA5n/5Z3JBt6plWSYFSMMNDlxIOPyKcJBUUnlHnpUiqslCIiZRlOcCLTsw13tw== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" sweetalert "^2.1.2" -"@abp/timeago@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.2.1.tgz#4e5e6c76d5440de65646a076ce1a9d7225882243" - integrity sha512-4WLWoCYiSg5zYPcogV47TXA+YomDHHY0YfHHWmr6TP2bHd5ghsnMqnnkt58nUN9Psd77teo+Mo9jgR0h2IxRwQ== +"@abp/timeago@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0-rc.1.tgz#dec80881b231757f3d53fd017631517b0fb79e65" + integrity sha512-YQTE/p5SILYkfDSDbgdScqANb1d2F9a+d1Hijy/lUK6WLUqNkU2qlF1I/aBpJJWD6h8KAVqC5ZmOXZ/WDRSZ3w== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" timeago "^1.6.7" -"@abp/toastr@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.2.1.tgz#d35b44234ca6cbd5da6cc5f65d15e827bd7970dc" - integrity sha512-nBmWGL49psSF2tcNnR6PGBcfFAxo2u5HHNRzv2c2z46ZEGFa5DjuY46KZC24jMWY+yprINQewhKTmQUqJvaHqA== +"@abp/toastr@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0-rc.1.tgz#56d1c044c528ca12b4d3e37a19f21ec8cf3c3945" + integrity sha512-kTyzlneLWKbRDkSshch5MFIX46+t9SPoOly544KnX1erHmNJfVkBk69XmADeoltKHezbiglE81Kg2KXxVgrAqQ== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" toastr "^2.1.4" -"@abp/utils@^3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.2.1.tgz#960a0bbdfb781bbd6fb05e80bba2b9d95f2ae44c" - integrity sha512-bqYa1VIi1tZXCUbP2Z1WlcgPD4/wjhDVM1jiAN9UzDls1K3u+e2LyR4gLoN39WW1ULjCIhyzEAw/JgTcMmpUBw== +"@abp/utils@^3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0-rc.1.tgz#2ea2806a42d31dff246478497493e6a8735b3aa3" + integrity sha512-B58plJNC9UF9kigsGLd29qa9nyfIkgV7868NmNgsPwulAhcI1dKUgmSlymN1fBK4zPOVWbzReANVLKbQx13Z1Q== dependencies: just-compare "^1.3.0" diff --git a/modules/blogging/app/Volo.BloggingTestApp/package.json b/modules/blogging/app/Volo.BloggingTestApp/package.json index f5b0ee5e5d..44c12f60bd 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/package.json +++ b/modules/blogging/app/Volo.BloggingTestApp/package.json @@ -3,7 +3,7 @@ "name": "volo.blogtestapp", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.2.1", - "@abp/blogging": "^3.2.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.0-rc.1", + "@abp/blogging": "^3.3.0-rc.1" } } \ No newline at end of file diff --git a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock index 0bd496f67d..c72a30781d 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/yarn.lock +++ b/modules/blogging/app/Volo.BloggingTestApp/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.2.1.tgz#d8f9af85b6114d35bba5942e303b3a4b89c8cd75" - integrity sha512-utHlyw/xbtDqqA0ETrYTxZ8ZO49tI6FP3BAvRdevbhozdG8/el6BWpifZysKJv2VIm6d5P7DXD3uymCd5iX6EA== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.2.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.2.1.tgz#b628602dca8d1809e32f423962cff56379a790b0" - integrity sha512-aWZAaFnN9Ncyzy84wPTfUVtcyh98Sxu4m+fsGY5XtwA/nwDTDVtLMq81ueJWyFgN9GNk8+lT6VXfPDpA/MJo/A== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.2.1" - "@abp/bootstrap" "~3.2.1" - "@abp/bootstrap-datepicker" "~3.2.1" - "@abp/datatables.net-bs4" "~3.2.1" - "@abp/font-awesome" "~3.2.1" - "@abp/jquery-form" "~3.2.1" - "@abp/jquery-validation-unobtrusive" "~3.2.1" - "@abp/lodash" "~3.2.1" - "@abp/luxon" "~3.2.1" - "@abp/malihu-custom-scrollbar-plugin" "~3.2.1" - "@abp/select2" "~3.2.1" - "@abp/sweetalert" "~3.2.1" - "@abp/timeago" "~3.2.1" - "@abp/toastr" "~3.2.1" - -"@abp/aspnetcore.mvc.ui@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.2.1.tgz#dc0d2c331bf09ef0f79cec739e0f64edb1105084" - integrity sha512-Fpn16MeK71Uhw6636nlXCQaSwN9lN6QFUIGIICcWU+2eMA8fK4ZtavaYGG4mWqjkd4wzUHCz2AZbmbxK7bVnng== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0-rc.1.tgz#0c088d2946f93447388f8e63313b47398fe2f792" + integrity sha512-ysmFoSrEOMn33h6Q3swefEPkT8iABLR1RNLaHzaGOp042+3xJpvnPRC0PjdtFGIx9Mic3EHU7va/by9TGaRP0A== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0-rc.1.tgz#0ebb50effe6d1d8e87d30cf0258c92074c77922f" + integrity sha512-sYmKnmy9Fsh0dT+CPhsxk5UwqUTdWIXDbRCp9ZI+9AKGHHBkuFfTPSi3TBK+Y/vQAOn68JdMVdRLdMJHHUXm+g== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.3.0-rc.1" + "@abp/bootstrap" "~3.3.0-rc.1" + "@abp/bootstrap-datepicker" "~3.3.0-rc.1" + "@abp/datatables.net-bs4" "~3.3.0-rc.1" + "@abp/font-awesome" "~3.3.0-rc.1" + "@abp/jquery-form" "~3.3.0-rc.1" + "@abp/jquery-validation-unobtrusive" "~3.3.0-rc.1" + "@abp/lodash" "~3.3.0-rc.1" + "@abp/luxon" "~3.3.0-rc.1" + "@abp/malihu-custom-scrollbar-plugin" "~3.3.0-rc.1" + "@abp/select2" "~3.3.0-rc.1" + "@abp/sweetalert" "~3.3.0-rc.1" + "@abp/timeago" "~3.3.0-rc.1" + "@abp/toastr" "~3.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0-rc.1.tgz#69e0fa91fb1a4f7424e08e076df213fea90c796b" + integrity sha512-c6xNCJlhmz8EasZZeYkC6LoOJLMnfa+JGbtfZF8FXNT4MQVyFpfQtGInGAn6A3TDZR2Y/roJbjXf/D73cxMnGA== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,214 +41,214 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/blogging@^3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-3.2.1.tgz#edd07431dff8faa69d79b2ecd672c646de27d561" - integrity sha512-4Rt43AvAIvXDRobpji1k+b8Imf2CSpQZf8Haz9K9E+MY4QHre4rrvL8U03kwwwvO5MI/9GXUoBMIdGdxtsrqqQ== +"@abp/blogging@^3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-3.3.0-rc.1.tgz#ff9301a2df1fa92154720df4b06e15a9f73798a8" + integrity sha512-qiOQXN/APxch7xYVmwvqY3Uz0hsXKRAzvzBgdvSCBCxCIWjB3Idlji3T5vXHkWu+eUt8ZiofhhQeVTajdVAX+Q== dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.2.1" - "@abp/owl.carousel" "~3.2.1" - "@abp/prismjs" "~3.2.1" - "@abp/tui-editor" "~3.2.1" + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0-rc.1" + "@abp/owl.carousel" "~3.3.0-rc.1" + "@abp/prismjs" "~3.3.0-rc.1" + "@abp/tui-editor" "~3.3.0-rc.1" -"@abp/bootstrap-datepicker@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.2.1.tgz#5cb75bc53fab86f7b28bfc5fbfcbf233432d75ca" - integrity sha512-KzTDZTMd/TBaTDNuPF4+T+0zsmEimD2Uq8TlNw7knEEyo7a/lsfBNkBF9Xc8bjZcbC76BqajytsTzI1yftM4Uw== +"@abp/bootstrap-datepicker@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0-rc.1.tgz#4195fa5cf5cc72420c9d87a6c75ec26c3c70b9df" + integrity sha512-6ijmKV6ySrsBwtyQxoe+/Otmhzp1XJy0uGVnY2YhmOHuKzmQeIwfzrMMuLK5XX+Gsub1dYqsawFQNzJYxY2rLA== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.2.1.tgz#9574414f1e170240dacdf78408af34830264db97" - integrity sha512-gLIr4d5xfw5TSpSHIKr7oKznkdIbGhS+gtBitP1BFVLOU2h7/d6uTZoopC+JQU16DGvn8njo8W4DL7Amh9FOqQ== +"@abp/bootstrap@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0-rc.1.tgz#e5526e2ad9ac3e3d650d8d805708d083ce5ff6f2" + integrity sha512-TvTPt6e8cGgdH4EdWAadm/8ykE0wke0vYGWWbgNfrNuSb+/Mt/lg0U3nDaNdjDBtstkEPLHKA2lvS5Nb1mNr+w== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/clipboard@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-3.2.1.tgz#ffb57db0e73ae7c96df78dc7b739e436c9654ae0" - integrity sha512-iLCMV8JVkvdDzWf83UlkSIuU4Tiz+/wdGjiCt7lQp538fCYO7EAqurfWwMbb1Kaz0CRFzt/+AbDrXw004AND2Q== +"@abp/clipboard@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-3.3.0-rc.1.tgz#60e7e84352064c423831edb91e64abb17e56a878" + integrity sha512-7MoVQ0Vgn5UHfWVElO0NFUv4lJfiFRPgmrOfCQTKCFHwLxFWpOEnCp4aRHP2jWi5EgMP4cuSleDtwNSM4Fuqkw== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" clipboard "^2.0.6" -"@abp/codemirror@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-3.2.1.tgz#093bf88d74a4ec2111afa84d47f643fee2e210dd" - integrity sha512-4Qe2/kDqlwlIlyrUVzirYkX713qZRG0Sn1pMSnXIb6JxJYFIxrxt8IxGy0o3IsL2xU3H2mnRTXSA0rFbQvVxRQ== +"@abp/codemirror@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-3.3.0-rc.1.tgz#b87bf7fd45c80ada335cc3af4bcbb6bac80fe5ed" + integrity sha512-t/9/ogrRN0qqN3pjiYQ4ipbgcuJHZc+5JUOch9jqK7dcW5vTKnDxTdiz0jXLcVIUPCVjbmQetcgtHj1rIDln0Q== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" codemirror "^5.54.0" -"@abp/core@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.2.1.tgz#3c133f67394d716df3e49f1eeb934c586df755e5" - integrity sha512-GbjrFO+oKl4JuZkYdeWtE+N837XRQr0hoX8O3pI1eAnuMku48QhGec2ZpSJuqG+c3wX6PHTZPIyHse4X+y6QgA== +"@abp/core@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0-rc.1.tgz#b84bdd9526c52f5d76a356d2854256477680ef6e" + integrity sha512-6KQ9Lu/Ok0FaIIRYoUUgnV0DFcT7H080Qfr7QHOv/nI6lviFwtAi/L3IJPCwKSoP+08RklyzvD9zOIdWNWEYMQ== dependencies: - "@abp/utils" "^3.2.1" + "@abp/utils" "^3.3.0-rc.1" -"@abp/datatables.net-bs4@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.2.1.tgz#b008b2964472fd8c8286a7c4b1e903d93a52e760" - integrity sha512-C/MmA6URugDD1tdUS6zS413ycHCjefeIG7nnJrtJmCZix7mfbdrp/Km/vKbE1KMSEYWis0w/SxIEy0kbkIW4OQ== +"@abp/datatables.net-bs4@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0-rc.1.tgz#360cd4e71c8015a3b9045636ec09f11c938685a6" + integrity sha512-7DTaQfpi4bEAKBq3QR4WHYVGGuk2v7zca0Q41XuWeSkcgGwctrJnuAdotNmihDQuwNZgYO+2gFDlVa5DXPELKQ== dependencies: - "@abp/datatables.net" "~3.2.1" + "@abp/datatables.net" "~3.3.0-rc.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.2.1.tgz#ba7d4c875ad2bc126687bc5d8e627f3c4d7fb2f4" - integrity sha512-o8/K6RGnPkQUe5ClAxyHNBOevVBnb8qSM4NXRXR2AUtEvjal+4UL9QOf1LZ0zPv4OAjaaAiOAp9Pmbv4FWuZ8Q== +"@abp/datatables.net@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0-rc.1.tgz#b4fdebc7806036d3d468453772fbc1fd3c3b443f" + integrity sha512-GqeKMFYvQ3Zfx35fKkYhYUpIEWtaW1KWo5VrA+EbyTcbhdrAuAUoDH4QgLpdhtCvNO74M8JFpMVEYHhhUkc0nQ== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" datatables.net "^1.10.21" -"@abp/font-awesome@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.2.1.tgz#d54a6d9627fdfeb6c615550f09241d0c805e3d39" - integrity sha512-5BlAuIX4qFdf/mvycUAREmVQ8jg0tRtDnVXt0E8kUtzghhEGG91NfcZIaB4zaWAwuJSyqqjS/VJ/URy1g50NZQ== +"@abp/font-awesome@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0-rc.1.tgz#700ba64f6c8832b812d5d1bca28dd4a487bec833" + integrity sha512-fna7mw5AIuP/FZSx1Ac94ZpGJIwQCZKuiIpmW/vVsFHUSICZ9J+uKa6hg3pt5SLFMAEVvAS6ScJyTkt6Hoc0Mg== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/highlight.js@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-3.2.1.tgz#3ece76e83ab49fdf12ab0bd33c5b2cdaa93a988e" - integrity sha512-bxQnwXJifZgEqY1kOhBbUBRMih99u661FaKhM9VjZgPPjaASDbH9Af6w2n30zuUUJx+8hu0TvIE35yfnvfEPjw== +"@abp/highlight.js@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-3.3.0-rc.1.tgz#08f66a9676e64af00915df686c2817956c45f761" + integrity sha512-kVmRLeKZJ2FSuJyTBB2FkiVqYv1kAXkDn2psHKyUSisc115I+fGDOUKcqkpeQdeLWcMiU4WiWLcH38x+p8GUOg== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" -"@abp/jquery-form@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.2.1.tgz#9280b28e2103fc80b9124e3a53f2f0e03ac4bb46" - integrity sha512-Dy0wTCcmWgygrru59VPnlVw7qLu8aLTZOTpMPbSva502O19O+H7FljF9r0J7eYgoO6pcTO4R1tE/Yib3DwIBFg== +"@abp/jquery-form@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0-rc.1.tgz#9fe258a926013618cd99c03aca401c4fc543a72d" + integrity sha512-qLWucASxcgCKdVeix/NXYADhGOWBAR69U/xJj4p/H5i80PuMetH/bWCb9SQbrbyza/Gp4A8JV5vBKNmZFQqSbg== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.2.1.tgz#8f0b54f0d39b00ab93638fe1537ae7bd77e3e78e" - integrity sha512-mr/jZVm8QuYO1vWcNo3ytuQEeMBvjnMiTrvoUzY1OXX+HUFR6oi8FohXgxFUypElAqQ8jelV9K0qonX1zTQhcg== +"@abp/jquery-validation-unobtrusive@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0-rc.1.tgz#7860d04cfdf152976d780efab88712ae58db8541" + integrity sha512-KAAhLa3MHcwf6CWcAtlW2BQ9WeN8LwzDY6qCz6IVG25zjZfHZ6HEVeMAG3eJ6NRZlAWv2zZK8i8Qma9lKD55gA== dependencies: - "@abp/jquery-validation" "~3.2.1" + "@abp/jquery-validation" "~3.3.0-rc.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.2.1.tgz#b5330eb404f357936d16f3dd81752076bfee963d" - integrity sha512-nmubyFyA8TbLdsJt8MAspSRN4St8Xn8ICB8ancdiyxbS/6u9oeKlvP4++ZZ881NlFkPsyo7GkHjfl29pNzzzJA== +"@abp/jquery-validation@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0-rc.1.tgz#ab64965232b30a6ae9ed8660fc9587792bfd619d" + integrity sha512-84ueP2TWJVTYuqIzofrwu8NpWQA/thmQzDzhSnI6dTLrrYzDHLQ7YjwG3/591ka3b6u71diE6UfeyQ4iBiPQ5Q== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" jquery-validation "^1.19.2" -"@abp/jquery@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.2.1.tgz#c7ee0bbff0b480b8ed01f46d1ce07ebc8c35e4a2" - integrity sha512-AvfQ9rnnb+pQUDuGnuhpCB+FzWz3EqDptoeiCDQjPXxGql3Wk5GWw6QzvuREOXcU4CoUyzigyDgnO5WaSlx8kQ== +"@abp/jquery@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0-rc.1.tgz#d46f75bfbcc65d4675675c8b69d219a3276afe91" + integrity sha512-NdChW0cbsqWVkB6AvXnTfeNZm2Ai3jmYEO2HJZDYBbWHkMlvQRnQ6oVD6TJvqMDtK066ArL1KAofuSJI2l8njQ== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" jquery "~3.5.1" -"@abp/lodash@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.2.1.tgz#7abfe7d572eaa628c033a6d50520b8510ecce79a" - integrity sha512-ZDte0vUfM1fBrs/mRq7yCuugtYZKoP/6pOEebDOMdM1GztAEKicq8s7EXxwbqE4+kjxqeHzReh7ZwCtFAf/Zew== +"@abp/lodash@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0-rc.1.tgz#5cf5462e1df615af5a3f89b8eb6b5d639f134026" + integrity sha512-AXvTAHfKSkQjJ70eStqSq2sXrOHQE+O5/7/k6JuSLbhzfC1paAZeKjLyoGj1hSuyWHQl6tbqDxJQej/NxGucHw== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" lodash "^4.17.15" -"@abp/luxon@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.2.1.tgz#ad3473f24dbacd4d1bc15a07ee75cc1db7f1df6c" - integrity sha512-WZgAMHNx1beQSA48ZJ2x2g408iBXBUvKwBwAFJqbhNhEsO95tutO80j1LNHYvXCbrAatoz6K6IDRXDXV1U3zyg== +"@abp/luxon@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0-rc.1.tgz#e479e7e854ccb9fcd35ce15145d50a9c9581dc50" + integrity sha512-j+1cBVmGtE9Of14i7nwtn9ZSvNa+46beiyOqMVmuH5qjPQTbYUAVFOlL7jVmYswplxUdK1r52n1nOz13oADnwA== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.2.1.tgz#f4a19c6de14c7193eaf6c55c429580dcbcfe3965" - integrity sha512-pu8Tuh67ruG1fLEud1eves/eiBCiuowL+LVLyW+iX1bByfVlOB40nMQ7UCMQ6Jvv31pTEK2dfQ/n8K3W/pFiWQ== +"@abp/malihu-custom-scrollbar-plugin@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0-rc.1.tgz#3455730273e75ad8d81083989b4f0d4486fe6a2c" + integrity sha512-TePsuZmhX34y9OEPdyYnWuQnx8ntkMXO4gkwciT0fqen+Cs8ty1VFr7uBeFTIo/JTCBtrRehcOjCJiv/F3j1Ug== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/markdown-it@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-3.2.1.tgz#b62d52302d300ee00726de8e1a328192923855dd" - integrity sha512-62Q67GNkwS5iYoiBTm47esljrIrowTaThJkx0/nQy5PRh+BZlVggyWMyS2O8BfSwAN3iXO5PEWjj7aH1EV2ujg== +"@abp/markdown-it@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/markdown-it/-/markdown-it-3.3.0-rc.1.tgz#2c98054d88f9835ab13c7fadc4a67799ad00b1dd" + integrity sha512-+CpNxXi3heT+9okHMeTgqbPOBX+E8j23C7zf1SnDXQKudOlA8jJJl1KJ/VoQlXPXIj3ks1RTwKV2ByztGkKU6w== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" markdown-it "^11.0.0" -"@abp/owl.carousel@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-3.2.1.tgz#97c1d353873027771f070c5aae31ec029c7b53e3" - integrity sha512-Tu/BlCGNun1sID0lIhT387vyEC7Pbyv6ZXbKjAZjgO+fRz3Je8XZ5gdyQ2Jfgr2/Nqc4uHNpJGZ38E+b4yUE6Q== +"@abp/owl.carousel@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-3.3.0-rc.1.tgz#83b34a169642ea9c33fea698953306fc8f05c173" + integrity sha512-SzKkiURZzokEqFL8mA/0xw4Erzj2ui5MsAaX5/q175N9NiWjYnjBxG+ax1/HaOXt/uxV+s/dxLCZJ5luzVl1WQ== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" owl.carousel "^2.3.4" -"@abp/prismjs@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-3.2.1.tgz#8f8ef367c9a10c3ec871d721055fbed4a8ec867a" - integrity sha512-+wcKmi/F66qGRmTk+oYgYmJo+b9kQvJ+BG/+vIsN+n3Dzb/sjaDmc18pMFhEKWy7P/Yq28NxZdK+qO1LgzTktg== +"@abp/prismjs@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-3.3.0-rc.1.tgz#08e95a36089a9bbccf2cac9c0667e8632b59f565" + integrity sha512-myLGoT0nrLTCtqKdkqub7gv8DOo+Ccc1FjSAUlZgianoAXYKmbqDdlplS9EVE5CU0T2h5fiN0flf7reTqBn9Vg== dependencies: - "@abp/clipboard" "~3.2.1" - "@abp/core" "~3.2.1" + "@abp/clipboard" "~3.3.0-rc.1" + "@abp/core" "~3.3.0-rc.1" prismjs "^1.20.0" -"@abp/select2@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.2.1.tgz#8a04a6f5f10cc4a48a3da37bbc38ff655e626ddf" - integrity sha512-i/euJ+kTHakwCI3Hf9+NhiQG+MYlU0iwp6GRmS2uHqgkMd2gVjnBq+elA2jsi50PXpxowv4vdBCNHcicI58W2w== +"@abp/select2@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0-rc.1.tgz#f5e159e13d2b7868a2283fb58af5121f1cc439e3" + integrity sha512-+fZoOHSZMeoMhIKQFrL62B1mwH10zNwsmEfgdLEvSiGNss+yGUmCZKxz9jSbQUr81N/kgew1CMxMjPGfyvpudA== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" select2 "^4.0.13" -"@abp/sweetalert@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.2.1.tgz#be99820491499fea06259fbc584e799a51cbabf3" - integrity sha512-If5UJQVJ05aEbxPHrwRpuEzCT5ygOHmPzpBblpzSo5XxNNDGGlumnwYmtbXBSXutXrIR0b5//Bo1EgBVtmJHOg== +"@abp/sweetalert@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0-rc.1.tgz#72e926a4e44dec851cf5abbe088f27294ccea671" + integrity sha512-IxrpZwgSO6t9DGKzWN3CfBL+lA5n/5Z3JBt6plWSYFSMMNDlxIOPyKcJBUUnlHnpUiqslCIiZRlOcCLTsw13tw== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" sweetalert "^2.1.2" -"@abp/timeago@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.2.1.tgz#4e5e6c76d5440de65646a076ce1a9d7225882243" - integrity sha512-4WLWoCYiSg5zYPcogV47TXA+YomDHHY0YfHHWmr6TP2bHd5ghsnMqnnkt58nUN9Psd77teo+Mo9jgR0h2IxRwQ== +"@abp/timeago@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0-rc.1.tgz#dec80881b231757f3d53fd017631517b0fb79e65" + integrity sha512-YQTE/p5SILYkfDSDbgdScqANb1d2F9a+d1Hijy/lUK6WLUqNkU2qlF1I/aBpJJWD6h8KAVqC5ZmOXZ/WDRSZ3w== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" timeago "^1.6.7" -"@abp/toastr@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.2.1.tgz#d35b44234ca6cbd5da6cc5f65d15e827bd7970dc" - integrity sha512-nBmWGL49psSF2tcNnR6PGBcfFAxo2u5HHNRzv2c2z46ZEGFa5DjuY46KZC24jMWY+yprINQewhKTmQUqJvaHqA== +"@abp/toastr@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0-rc.1.tgz#56d1c044c528ca12b4d3e37a19f21ec8cf3c3945" + integrity sha512-kTyzlneLWKbRDkSshch5MFIX46+t9SPoOly544KnX1erHmNJfVkBk69XmADeoltKHezbiglE81Kg2KXxVgrAqQ== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" toastr "^2.1.4" -"@abp/tui-editor@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-3.2.1.tgz#4cda3bb6a6dfd6413cd5a3520d98c923f54b4b4b" - integrity sha512-KvWc5ZkXGNAPb6ek0Y91/89BD9AfDQ/lBPB3aYydRe1A2NSMgpRQ4DXsCYaQmmsyAv5aAKJAmsqN89V7v8NoUQ== +"@abp/tui-editor@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-3.3.0-rc.1.tgz#ea221a6e87f5472c0d3d12e948420c6d4eb66ea2" + integrity sha512-BkD+ce0j3KkKjSzeOrHK+mu3yym/jvhccF4n2TPSx4+HyF4IENwiWR4KNMM4GxRNssSdTUj/2h9yKxPJm2NHcA== dependencies: - "@abp/codemirror" "~3.2.1" - "@abp/highlight.js" "~3.2.1" - "@abp/jquery" "~3.2.1" - "@abp/markdown-it" "~3.2.1" + "@abp/codemirror" "~3.3.0-rc.1" + "@abp/highlight.js" "~3.3.0-rc.1" + "@abp/jquery" "~3.3.0-rc.1" + "@abp/markdown-it" "~3.3.0-rc.1" tui-editor "^1.4.10" -"@abp/utils@^3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.2.1.tgz#960a0bbdfb781bbd6fb05e80bba2b9d95f2ae44c" - integrity sha512-bqYa1VIi1tZXCUbP2Z1WlcgPD4/wjhDVM1jiAN9UzDls1K3u+e2LyR4gLoN39WW1ULjCIhyzEAw/JgTcMmpUBw== +"@abp/utils@^3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0-rc.1.tgz#2ea2806a42d31dff246478497493e6a8735b3aa3" + integrity sha512-B58plJNC9UF9kigsGLd29qa9nyfIkgV7868NmNgsPwulAhcI1dKUgmSlymN1fBK4zPOVWbzReANVLKbQx13Z1Q== dependencies: just-compare "^1.3.0" diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json index ca54119683..3bdc67f5b4 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json @@ -3,6 +3,6 @@ "name": "client-simulation-web", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.2.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.0-rc.1" } } \ No newline at end of file diff --git a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock index 9f74aafa41..ee05b4fef3 100644 --- a/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock +++ b/modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.2.1.tgz#d8f9af85b6114d35bba5942e303b3a4b89c8cd75" - integrity sha512-utHlyw/xbtDqqA0ETrYTxZ8ZO49tI6FP3BAvRdevbhozdG8/el6BWpifZysKJv2VIm6d5P7DXD3uymCd5iX6EA== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.2.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.2.1.tgz#b628602dca8d1809e32f423962cff56379a790b0" - integrity sha512-aWZAaFnN9Ncyzy84wPTfUVtcyh98Sxu4m+fsGY5XtwA/nwDTDVtLMq81ueJWyFgN9GNk8+lT6VXfPDpA/MJo/A== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.2.1" - "@abp/bootstrap" "~3.2.1" - "@abp/bootstrap-datepicker" "~3.2.1" - "@abp/datatables.net-bs4" "~3.2.1" - "@abp/font-awesome" "~3.2.1" - "@abp/jquery-form" "~3.2.1" - "@abp/jquery-validation-unobtrusive" "~3.2.1" - "@abp/lodash" "~3.2.1" - "@abp/luxon" "~3.2.1" - "@abp/malihu-custom-scrollbar-plugin" "~3.2.1" - "@abp/select2" "~3.2.1" - "@abp/sweetalert" "~3.2.1" - "@abp/timeago" "~3.2.1" - "@abp/toastr" "~3.2.1" - -"@abp/aspnetcore.mvc.ui@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.2.1.tgz#dc0d2c331bf09ef0f79cec739e0f64edb1105084" - integrity sha512-Fpn16MeK71Uhw6636nlXCQaSwN9lN6QFUIGIICcWU+2eMA8fK4ZtavaYGG4mWqjkd4wzUHCz2AZbmbxK7bVnng== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0-rc.1.tgz#0c088d2946f93447388f8e63313b47398fe2f792" + integrity sha512-ysmFoSrEOMn33h6Q3swefEPkT8iABLR1RNLaHzaGOp042+3xJpvnPRC0PjdtFGIx9Mic3EHU7va/by9TGaRP0A== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0-rc.1.tgz#0ebb50effe6d1d8e87d30cf0258c92074c77922f" + integrity sha512-sYmKnmy9Fsh0dT+CPhsxk5UwqUTdWIXDbRCp9ZI+9AKGHHBkuFfTPSi3TBK+Y/vQAOn68JdMVdRLdMJHHUXm+g== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.3.0-rc.1" + "@abp/bootstrap" "~3.3.0-rc.1" + "@abp/bootstrap-datepicker" "~3.3.0-rc.1" + "@abp/datatables.net-bs4" "~3.3.0-rc.1" + "@abp/font-awesome" "~3.3.0-rc.1" + "@abp/jquery-form" "~3.3.0-rc.1" + "@abp/jquery-validation-unobtrusive" "~3.3.0-rc.1" + "@abp/lodash" "~3.3.0-rc.1" + "@abp/luxon" "~3.3.0-rc.1" + "@abp/malihu-custom-scrollbar-plugin" "~3.3.0-rc.1" + "@abp/select2" "~3.3.0-rc.1" + "@abp/sweetalert" "~3.3.0-rc.1" + "@abp/timeago" "~3.3.0-rc.1" + "@abp/toastr" "~3.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0-rc.1.tgz#69e0fa91fb1a4f7424e08e076df213fea90c796b" + integrity sha512-c6xNCJlhmz8EasZZeYkC6LoOJLMnfa+JGbtfZF8FXNT4MQVyFpfQtGInGAn6A3TDZR2Y/roJbjXf/D73cxMnGA== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,145 +41,145 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.2.1.tgz#5cb75bc53fab86f7b28bfc5fbfcbf233432d75ca" - integrity sha512-KzTDZTMd/TBaTDNuPF4+T+0zsmEimD2Uq8TlNw7knEEyo7a/lsfBNkBF9Xc8bjZcbC76BqajytsTzI1yftM4Uw== +"@abp/bootstrap-datepicker@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0-rc.1.tgz#4195fa5cf5cc72420c9d87a6c75ec26c3c70b9df" + integrity sha512-6ijmKV6ySrsBwtyQxoe+/Otmhzp1XJy0uGVnY2YhmOHuKzmQeIwfzrMMuLK5XX+Gsub1dYqsawFQNzJYxY2rLA== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.2.1.tgz#9574414f1e170240dacdf78408af34830264db97" - integrity sha512-gLIr4d5xfw5TSpSHIKr7oKznkdIbGhS+gtBitP1BFVLOU2h7/d6uTZoopC+JQU16DGvn8njo8W4DL7Amh9FOqQ== +"@abp/bootstrap@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0-rc.1.tgz#e5526e2ad9ac3e3d650d8d805708d083ce5ff6f2" + integrity sha512-TvTPt6e8cGgdH4EdWAadm/8ykE0wke0vYGWWbgNfrNuSb+/Mt/lg0U3nDaNdjDBtstkEPLHKA2lvS5Nb1mNr+w== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.2.1.tgz#3c133f67394d716df3e49f1eeb934c586df755e5" - integrity sha512-GbjrFO+oKl4JuZkYdeWtE+N837XRQr0hoX8O3pI1eAnuMku48QhGec2ZpSJuqG+c3wX6PHTZPIyHse4X+y6QgA== +"@abp/core@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0-rc.1.tgz#b84bdd9526c52f5d76a356d2854256477680ef6e" + integrity sha512-6KQ9Lu/Ok0FaIIRYoUUgnV0DFcT7H080Qfr7QHOv/nI6lviFwtAi/L3IJPCwKSoP+08RklyzvD9zOIdWNWEYMQ== dependencies: - "@abp/utils" "^3.2.1" + "@abp/utils" "^3.3.0-rc.1" -"@abp/datatables.net-bs4@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.2.1.tgz#b008b2964472fd8c8286a7c4b1e903d93a52e760" - integrity sha512-C/MmA6URugDD1tdUS6zS413ycHCjefeIG7nnJrtJmCZix7mfbdrp/Km/vKbE1KMSEYWis0w/SxIEy0kbkIW4OQ== +"@abp/datatables.net-bs4@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0-rc.1.tgz#360cd4e71c8015a3b9045636ec09f11c938685a6" + integrity sha512-7DTaQfpi4bEAKBq3QR4WHYVGGuk2v7zca0Q41XuWeSkcgGwctrJnuAdotNmihDQuwNZgYO+2gFDlVa5DXPELKQ== dependencies: - "@abp/datatables.net" "~3.2.1" + "@abp/datatables.net" "~3.3.0-rc.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.2.1.tgz#ba7d4c875ad2bc126687bc5d8e627f3c4d7fb2f4" - integrity sha512-o8/K6RGnPkQUe5ClAxyHNBOevVBnb8qSM4NXRXR2AUtEvjal+4UL9QOf1LZ0zPv4OAjaaAiOAp9Pmbv4FWuZ8Q== +"@abp/datatables.net@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0-rc.1.tgz#b4fdebc7806036d3d468453772fbc1fd3c3b443f" + integrity sha512-GqeKMFYvQ3Zfx35fKkYhYUpIEWtaW1KWo5VrA+EbyTcbhdrAuAUoDH4QgLpdhtCvNO74M8JFpMVEYHhhUkc0nQ== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" datatables.net "^1.10.21" -"@abp/font-awesome@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.2.1.tgz#d54a6d9627fdfeb6c615550f09241d0c805e3d39" - integrity sha512-5BlAuIX4qFdf/mvycUAREmVQ8jg0tRtDnVXt0E8kUtzghhEGG91NfcZIaB4zaWAwuJSyqqjS/VJ/URy1g50NZQ== +"@abp/font-awesome@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0-rc.1.tgz#700ba64f6c8832b812d5d1bca28dd4a487bec833" + integrity sha512-fna7mw5AIuP/FZSx1Ac94ZpGJIwQCZKuiIpmW/vVsFHUSICZ9J+uKa6hg3pt5SLFMAEVvAS6ScJyTkt6Hoc0Mg== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.2.1.tgz#9280b28e2103fc80b9124e3a53f2f0e03ac4bb46" - integrity sha512-Dy0wTCcmWgygrru59VPnlVw7qLu8aLTZOTpMPbSva502O19O+H7FljF9r0J7eYgoO6pcTO4R1tE/Yib3DwIBFg== +"@abp/jquery-form@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0-rc.1.tgz#9fe258a926013618cd99c03aca401c4fc543a72d" + integrity sha512-qLWucASxcgCKdVeix/NXYADhGOWBAR69U/xJj4p/H5i80PuMetH/bWCb9SQbrbyza/Gp4A8JV5vBKNmZFQqSbg== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.2.1.tgz#8f0b54f0d39b00ab93638fe1537ae7bd77e3e78e" - integrity sha512-mr/jZVm8QuYO1vWcNo3ytuQEeMBvjnMiTrvoUzY1OXX+HUFR6oi8FohXgxFUypElAqQ8jelV9K0qonX1zTQhcg== +"@abp/jquery-validation-unobtrusive@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0-rc.1.tgz#7860d04cfdf152976d780efab88712ae58db8541" + integrity sha512-KAAhLa3MHcwf6CWcAtlW2BQ9WeN8LwzDY6qCz6IVG25zjZfHZ6HEVeMAG3eJ6NRZlAWv2zZK8i8Qma9lKD55gA== dependencies: - "@abp/jquery-validation" "~3.2.1" + "@abp/jquery-validation" "~3.3.0-rc.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.2.1.tgz#b5330eb404f357936d16f3dd81752076bfee963d" - integrity sha512-nmubyFyA8TbLdsJt8MAspSRN4St8Xn8ICB8ancdiyxbS/6u9oeKlvP4++ZZ881NlFkPsyo7GkHjfl29pNzzzJA== +"@abp/jquery-validation@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0-rc.1.tgz#ab64965232b30a6ae9ed8660fc9587792bfd619d" + integrity sha512-84ueP2TWJVTYuqIzofrwu8NpWQA/thmQzDzhSnI6dTLrrYzDHLQ7YjwG3/591ka3b6u71diE6UfeyQ4iBiPQ5Q== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" jquery-validation "^1.19.2" -"@abp/jquery@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.2.1.tgz#c7ee0bbff0b480b8ed01f46d1ce07ebc8c35e4a2" - integrity sha512-AvfQ9rnnb+pQUDuGnuhpCB+FzWz3EqDptoeiCDQjPXxGql3Wk5GWw6QzvuREOXcU4CoUyzigyDgnO5WaSlx8kQ== +"@abp/jquery@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0-rc.1.tgz#d46f75bfbcc65d4675675c8b69d219a3276afe91" + integrity sha512-NdChW0cbsqWVkB6AvXnTfeNZm2Ai3jmYEO2HJZDYBbWHkMlvQRnQ6oVD6TJvqMDtK066ArL1KAofuSJI2l8njQ== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" jquery "~3.5.1" -"@abp/lodash@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.2.1.tgz#7abfe7d572eaa628c033a6d50520b8510ecce79a" - integrity sha512-ZDte0vUfM1fBrs/mRq7yCuugtYZKoP/6pOEebDOMdM1GztAEKicq8s7EXxwbqE4+kjxqeHzReh7ZwCtFAf/Zew== +"@abp/lodash@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0-rc.1.tgz#5cf5462e1df615af5a3f89b8eb6b5d639f134026" + integrity sha512-AXvTAHfKSkQjJ70eStqSq2sXrOHQE+O5/7/k6JuSLbhzfC1paAZeKjLyoGj1hSuyWHQl6tbqDxJQej/NxGucHw== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" lodash "^4.17.15" -"@abp/luxon@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.2.1.tgz#ad3473f24dbacd4d1bc15a07ee75cc1db7f1df6c" - integrity sha512-WZgAMHNx1beQSA48ZJ2x2g408iBXBUvKwBwAFJqbhNhEsO95tutO80j1LNHYvXCbrAatoz6K6IDRXDXV1U3zyg== +"@abp/luxon@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0-rc.1.tgz#e479e7e854ccb9fcd35ce15145d50a9c9581dc50" + integrity sha512-j+1cBVmGtE9Of14i7nwtn9ZSvNa+46beiyOqMVmuH5qjPQTbYUAVFOlL7jVmYswplxUdK1r52n1nOz13oADnwA== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.2.1.tgz#f4a19c6de14c7193eaf6c55c429580dcbcfe3965" - integrity sha512-pu8Tuh67ruG1fLEud1eves/eiBCiuowL+LVLyW+iX1bByfVlOB40nMQ7UCMQ6Jvv31pTEK2dfQ/n8K3W/pFiWQ== +"@abp/malihu-custom-scrollbar-plugin@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0-rc.1.tgz#3455730273e75ad8d81083989b4f0d4486fe6a2c" + integrity sha512-TePsuZmhX34y9OEPdyYnWuQnx8ntkMXO4gkwciT0fqen+Cs8ty1VFr7uBeFTIo/JTCBtrRehcOjCJiv/F3j1Ug== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.2.1.tgz#8a04a6f5f10cc4a48a3da37bbc38ff655e626ddf" - integrity sha512-i/euJ+kTHakwCI3Hf9+NhiQG+MYlU0iwp6GRmS2uHqgkMd2gVjnBq+elA2jsi50PXpxowv4vdBCNHcicI58W2w== +"@abp/select2@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0-rc.1.tgz#f5e159e13d2b7868a2283fb58af5121f1cc439e3" + integrity sha512-+fZoOHSZMeoMhIKQFrL62B1mwH10zNwsmEfgdLEvSiGNss+yGUmCZKxz9jSbQUr81N/kgew1CMxMjPGfyvpudA== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" select2 "^4.0.13" -"@abp/sweetalert@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.2.1.tgz#be99820491499fea06259fbc584e799a51cbabf3" - integrity sha512-If5UJQVJ05aEbxPHrwRpuEzCT5ygOHmPzpBblpzSo5XxNNDGGlumnwYmtbXBSXutXrIR0b5//Bo1EgBVtmJHOg== +"@abp/sweetalert@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0-rc.1.tgz#72e926a4e44dec851cf5abbe088f27294ccea671" + integrity sha512-IxrpZwgSO6t9DGKzWN3CfBL+lA5n/5Z3JBt6plWSYFSMMNDlxIOPyKcJBUUnlHnpUiqslCIiZRlOcCLTsw13tw== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" sweetalert "^2.1.2" -"@abp/timeago@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.2.1.tgz#4e5e6c76d5440de65646a076ce1a9d7225882243" - integrity sha512-4WLWoCYiSg5zYPcogV47TXA+YomDHHY0YfHHWmr6TP2bHd5ghsnMqnnkt58nUN9Psd77teo+Mo9jgR0h2IxRwQ== +"@abp/timeago@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0-rc.1.tgz#dec80881b231757f3d53fd017631517b0fb79e65" + integrity sha512-YQTE/p5SILYkfDSDbgdScqANb1d2F9a+d1Hijy/lUK6WLUqNkU2qlF1I/aBpJJWD6h8KAVqC5ZmOXZ/WDRSZ3w== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" timeago "^1.6.7" -"@abp/toastr@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.2.1.tgz#d35b44234ca6cbd5da6cc5f65d15e827bd7970dc" - integrity sha512-nBmWGL49psSF2tcNnR6PGBcfFAxo2u5HHNRzv2c2z46ZEGFa5DjuY46KZC24jMWY+yprINQewhKTmQUqJvaHqA== +"@abp/toastr@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0-rc.1.tgz#56d1c044c528ca12b4d3e37a19f21ec8cf3c3945" + integrity sha512-kTyzlneLWKbRDkSshch5MFIX46+t9SPoOly544KnX1erHmNJfVkBk69XmADeoltKHezbiglE81Kg2KXxVgrAqQ== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" toastr "^2.1.4" -"@abp/utils@^3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.2.1.tgz#960a0bbdfb781bbd6fb05e80bba2b9d95f2ae44c" - integrity sha512-bqYa1VIi1tZXCUbP2Z1WlcgPD4/wjhDVM1jiAN9UzDls1K3u+e2LyR4gLoN39WW1ULjCIhyzEAw/JgTcMmpUBw== +"@abp/utils@^3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0-rc.1.tgz#2ea2806a42d31dff246478497493e6a8735b3aa3" + integrity sha512-B58plJNC9UF9kigsGLd29qa9nyfIkgV7868NmNgsPwulAhcI1dKUgmSlymN1fBK4zPOVWbzReANVLKbQx13Z1Q== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/angular/package.json b/modules/cms-kit/angular/package.json index b10b355025..295d02b8ed 100644 --- a/modules/cms-kit/angular/package.json +++ b/modules/cms-kit/angular/package.json @@ -15,11 +15,11 @@ }, "private": true, "dependencies": { - "@abp/ng.account": "~3.2.1", - "@abp/ng.identity": "~3.2.1", - "@abp/ng.setting-management": "~3.2.1", - "@abp/ng.tenant-management": "~3.2.1", - "@abp/ng.theme.basic": "~3.2.1", + "@abp/ng.account": "~3.3.0-rc.1", + "@abp/ng.identity": "~3.3.0-rc.1", + "@abp/ng.setting-management": "~3.3.0-rc.1", + "@abp/ng.tenant-management": "~3.3.0-rc.1", + "@abp/ng.theme.basic": "~3.3.0-rc.1", "@angular/animations": "~10.0.0", "@angular/common": "~10.0.0", "@angular/compiler": "~10.0.0", diff --git a/modules/cms-kit/angular/projects/cms-kit/package.json b/modules/cms-kit/angular/projects/cms-kit/package.json index 28c2183e6f..783b86c93b 100644 --- a/modules/cms-kit/angular/projects/cms-kit/package.json +++ b/modules/cms-kit/angular/projects/cms-kit/package.json @@ -4,8 +4,8 @@ "peerDependencies": { "@angular/common": "^9.1.11", "@angular/core": "^9.1.11", - "@abp/ng.core": ">=3.2.1", - "@abp/ng.theme.shared": ">=3.2.1" + "@abp/ng.core": ">=3.3.0-rc.1", + "@abp/ng.theme.shared": ">=3.3.0-rc.1" }, "dependencies": { "tslib": "^2.0.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json index 3c54abaaa7..1e03efad38 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json @@ -3,6 +3,6 @@ "name": "my-app-identityserver", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.2.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.0-rc.1" } } \ No newline at end of file diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock index b8e6718657..ec897ce443 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.2.1.tgz#d8f9af85b6114d35bba5942e303b3a4b89c8cd75" - integrity sha512-utHlyw/xbtDqqA0ETrYTxZ8ZO49tI6FP3BAvRdevbhozdG8/el6BWpifZysKJv2VIm6d5P7DXD3uymCd5iX6EA== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.2.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.2.1.tgz#b628602dca8d1809e32f423962cff56379a790b0" - integrity sha512-aWZAaFnN9Ncyzy84wPTfUVtcyh98Sxu4m+fsGY5XtwA/nwDTDVtLMq81ueJWyFgN9GNk8+lT6VXfPDpA/MJo/A== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.2.1" - "@abp/bootstrap" "~3.2.1" - "@abp/bootstrap-datepicker" "~3.2.1" - "@abp/datatables.net-bs4" "~3.2.1" - "@abp/font-awesome" "~3.2.1" - "@abp/jquery-form" "~3.2.1" - "@abp/jquery-validation-unobtrusive" "~3.2.1" - "@abp/lodash" "~3.2.1" - "@abp/luxon" "~3.2.1" - "@abp/malihu-custom-scrollbar-plugin" "~3.2.1" - "@abp/select2" "~3.2.1" - "@abp/sweetalert" "~3.2.1" - "@abp/timeago" "~3.2.1" - "@abp/toastr" "~3.2.1" - -"@abp/aspnetcore.mvc.ui@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.2.1.tgz#dc0d2c331bf09ef0f79cec739e0f64edb1105084" - integrity sha512-Fpn16MeK71Uhw6636nlXCQaSwN9lN6QFUIGIICcWU+2eMA8fK4ZtavaYGG4mWqjkd4wzUHCz2AZbmbxK7bVnng== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0-rc.1.tgz#0c088d2946f93447388f8e63313b47398fe2f792" + integrity sha512-ysmFoSrEOMn33h6Q3swefEPkT8iABLR1RNLaHzaGOp042+3xJpvnPRC0PjdtFGIx9Mic3EHU7va/by9TGaRP0A== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0-rc.1.tgz#0ebb50effe6d1d8e87d30cf0258c92074c77922f" + integrity sha512-sYmKnmy9Fsh0dT+CPhsxk5UwqUTdWIXDbRCp9ZI+9AKGHHBkuFfTPSi3TBK+Y/vQAOn68JdMVdRLdMJHHUXm+g== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.3.0-rc.1" + "@abp/bootstrap" "~3.3.0-rc.1" + "@abp/bootstrap-datepicker" "~3.3.0-rc.1" + "@abp/datatables.net-bs4" "~3.3.0-rc.1" + "@abp/font-awesome" "~3.3.0-rc.1" + "@abp/jquery-form" "~3.3.0-rc.1" + "@abp/jquery-validation-unobtrusive" "~3.3.0-rc.1" + "@abp/lodash" "~3.3.0-rc.1" + "@abp/luxon" "~3.3.0-rc.1" + "@abp/malihu-custom-scrollbar-plugin" "~3.3.0-rc.1" + "@abp/select2" "~3.3.0-rc.1" + "@abp/sweetalert" "~3.3.0-rc.1" + "@abp/timeago" "~3.3.0-rc.1" + "@abp/toastr" "~3.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0-rc.1.tgz#69e0fa91fb1a4f7424e08e076df213fea90c796b" + integrity sha512-c6xNCJlhmz8EasZZeYkC6LoOJLMnfa+JGbtfZF8FXNT4MQVyFpfQtGInGAn6A3TDZR2Y/roJbjXf/D73cxMnGA== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,145 +41,145 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.2.1.tgz#5cb75bc53fab86f7b28bfc5fbfcbf233432d75ca" - integrity sha512-KzTDZTMd/TBaTDNuPF4+T+0zsmEimD2Uq8TlNw7knEEyo7a/lsfBNkBF9Xc8bjZcbC76BqajytsTzI1yftM4Uw== +"@abp/bootstrap-datepicker@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0-rc.1.tgz#4195fa5cf5cc72420c9d87a6c75ec26c3c70b9df" + integrity sha512-6ijmKV6ySrsBwtyQxoe+/Otmhzp1XJy0uGVnY2YhmOHuKzmQeIwfzrMMuLK5XX+Gsub1dYqsawFQNzJYxY2rLA== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.2.1.tgz#9574414f1e170240dacdf78408af34830264db97" - integrity sha512-gLIr4d5xfw5TSpSHIKr7oKznkdIbGhS+gtBitP1BFVLOU2h7/d6uTZoopC+JQU16DGvn8njo8W4DL7Amh9FOqQ== +"@abp/bootstrap@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0-rc.1.tgz#e5526e2ad9ac3e3d650d8d805708d083ce5ff6f2" + integrity sha512-TvTPt6e8cGgdH4EdWAadm/8ykE0wke0vYGWWbgNfrNuSb+/Mt/lg0U3nDaNdjDBtstkEPLHKA2lvS5Nb1mNr+w== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.2.1.tgz#3c133f67394d716df3e49f1eeb934c586df755e5" - integrity sha512-GbjrFO+oKl4JuZkYdeWtE+N837XRQr0hoX8O3pI1eAnuMku48QhGec2ZpSJuqG+c3wX6PHTZPIyHse4X+y6QgA== +"@abp/core@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0-rc.1.tgz#b84bdd9526c52f5d76a356d2854256477680ef6e" + integrity sha512-6KQ9Lu/Ok0FaIIRYoUUgnV0DFcT7H080Qfr7QHOv/nI6lviFwtAi/L3IJPCwKSoP+08RklyzvD9zOIdWNWEYMQ== dependencies: - "@abp/utils" "^3.2.1" + "@abp/utils" "^3.3.0-rc.1" -"@abp/datatables.net-bs4@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.2.1.tgz#b008b2964472fd8c8286a7c4b1e903d93a52e760" - integrity sha512-C/MmA6URugDD1tdUS6zS413ycHCjefeIG7nnJrtJmCZix7mfbdrp/Km/vKbE1KMSEYWis0w/SxIEy0kbkIW4OQ== +"@abp/datatables.net-bs4@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0-rc.1.tgz#360cd4e71c8015a3b9045636ec09f11c938685a6" + integrity sha512-7DTaQfpi4bEAKBq3QR4WHYVGGuk2v7zca0Q41XuWeSkcgGwctrJnuAdotNmihDQuwNZgYO+2gFDlVa5DXPELKQ== dependencies: - "@abp/datatables.net" "~3.2.1" + "@abp/datatables.net" "~3.3.0-rc.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.2.1.tgz#ba7d4c875ad2bc126687bc5d8e627f3c4d7fb2f4" - integrity sha512-o8/K6RGnPkQUe5ClAxyHNBOevVBnb8qSM4NXRXR2AUtEvjal+4UL9QOf1LZ0zPv4OAjaaAiOAp9Pmbv4FWuZ8Q== +"@abp/datatables.net@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0-rc.1.tgz#b4fdebc7806036d3d468453772fbc1fd3c3b443f" + integrity sha512-GqeKMFYvQ3Zfx35fKkYhYUpIEWtaW1KWo5VrA+EbyTcbhdrAuAUoDH4QgLpdhtCvNO74M8JFpMVEYHhhUkc0nQ== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" datatables.net "^1.10.21" -"@abp/font-awesome@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.2.1.tgz#d54a6d9627fdfeb6c615550f09241d0c805e3d39" - integrity sha512-5BlAuIX4qFdf/mvycUAREmVQ8jg0tRtDnVXt0E8kUtzghhEGG91NfcZIaB4zaWAwuJSyqqjS/VJ/URy1g50NZQ== +"@abp/font-awesome@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0-rc.1.tgz#700ba64f6c8832b812d5d1bca28dd4a487bec833" + integrity sha512-fna7mw5AIuP/FZSx1Ac94ZpGJIwQCZKuiIpmW/vVsFHUSICZ9J+uKa6hg3pt5SLFMAEVvAS6ScJyTkt6Hoc0Mg== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.2.1.tgz#9280b28e2103fc80b9124e3a53f2f0e03ac4bb46" - integrity sha512-Dy0wTCcmWgygrru59VPnlVw7qLu8aLTZOTpMPbSva502O19O+H7FljF9r0J7eYgoO6pcTO4R1tE/Yib3DwIBFg== +"@abp/jquery-form@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0-rc.1.tgz#9fe258a926013618cd99c03aca401c4fc543a72d" + integrity sha512-qLWucASxcgCKdVeix/NXYADhGOWBAR69U/xJj4p/H5i80PuMetH/bWCb9SQbrbyza/Gp4A8JV5vBKNmZFQqSbg== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.2.1.tgz#8f0b54f0d39b00ab93638fe1537ae7bd77e3e78e" - integrity sha512-mr/jZVm8QuYO1vWcNo3ytuQEeMBvjnMiTrvoUzY1OXX+HUFR6oi8FohXgxFUypElAqQ8jelV9K0qonX1zTQhcg== +"@abp/jquery-validation-unobtrusive@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0-rc.1.tgz#7860d04cfdf152976d780efab88712ae58db8541" + integrity sha512-KAAhLa3MHcwf6CWcAtlW2BQ9WeN8LwzDY6qCz6IVG25zjZfHZ6HEVeMAG3eJ6NRZlAWv2zZK8i8Qma9lKD55gA== dependencies: - "@abp/jquery-validation" "~3.2.1" + "@abp/jquery-validation" "~3.3.0-rc.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.2.1.tgz#b5330eb404f357936d16f3dd81752076bfee963d" - integrity sha512-nmubyFyA8TbLdsJt8MAspSRN4St8Xn8ICB8ancdiyxbS/6u9oeKlvP4++ZZ881NlFkPsyo7GkHjfl29pNzzzJA== +"@abp/jquery-validation@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0-rc.1.tgz#ab64965232b30a6ae9ed8660fc9587792bfd619d" + integrity sha512-84ueP2TWJVTYuqIzofrwu8NpWQA/thmQzDzhSnI6dTLrrYzDHLQ7YjwG3/591ka3b6u71diE6UfeyQ4iBiPQ5Q== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" jquery-validation "^1.19.2" -"@abp/jquery@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.2.1.tgz#c7ee0bbff0b480b8ed01f46d1ce07ebc8c35e4a2" - integrity sha512-AvfQ9rnnb+pQUDuGnuhpCB+FzWz3EqDptoeiCDQjPXxGql3Wk5GWw6QzvuREOXcU4CoUyzigyDgnO5WaSlx8kQ== +"@abp/jquery@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0-rc.1.tgz#d46f75bfbcc65d4675675c8b69d219a3276afe91" + integrity sha512-NdChW0cbsqWVkB6AvXnTfeNZm2Ai3jmYEO2HJZDYBbWHkMlvQRnQ6oVD6TJvqMDtK066ArL1KAofuSJI2l8njQ== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" jquery "~3.5.1" -"@abp/lodash@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.2.1.tgz#7abfe7d572eaa628c033a6d50520b8510ecce79a" - integrity sha512-ZDte0vUfM1fBrs/mRq7yCuugtYZKoP/6pOEebDOMdM1GztAEKicq8s7EXxwbqE4+kjxqeHzReh7ZwCtFAf/Zew== +"@abp/lodash@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0-rc.1.tgz#5cf5462e1df615af5a3f89b8eb6b5d639f134026" + integrity sha512-AXvTAHfKSkQjJ70eStqSq2sXrOHQE+O5/7/k6JuSLbhzfC1paAZeKjLyoGj1hSuyWHQl6tbqDxJQej/NxGucHw== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" lodash "^4.17.15" -"@abp/luxon@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.2.1.tgz#ad3473f24dbacd4d1bc15a07ee75cc1db7f1df6c" - integrity sha512-WZgAMHNx1beQSA48ZJ2x2g408iBXBUvKwBwAFJqbhNhEsO95tutO80j1LNHYvXCbrAatoz6K6IDRXDXV1U3zyg== +"@abp/luxon@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0-rc.1.tgz#e479e7e854ccb9fcd35ce15145d50a9c9581dc50" + integrity sha512-j+1cBVmGtE9Of14i7nwtn9ZSvNa+46beiyOqMVmuH5qjPQTbYUAVFOlL7jVmYswplxUdK1r52n1nOz13oADnwA== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.2.1.tgz#f4a19c6de14c7193eaf6c55c429580dcbcfe3965" - integrity sha512-pu8Tuh67ruG1fLEud1eves/eiBCiuowL+LVLyW+iX1bByfVlOB40nMQ7UCMQ6Jvv31pTEK2dfQ/n8K3W/pFiWQ== +"@abp/malihu-custom-scrollbar-plugin@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0-rc.1.tgz#3455730273e75ad8d81083989b4f0d4486fe6a2c" + integrity sha512-TePsuZmhX34y9OEPdyYnWuQnx8ntkMXO4gkwciT0fqen+Cs8ty1VFr7uBeFTIo/JTCBtrRehcOjCJiv/F3j1Ug== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.2.1.tgz#8a04a6f5f10cc4a48a3da37bbc38ff655e626ddf" - integrity sha512-i/euJ+kTHakwCI3Hf9+NhiQG+MYlU0iwp6GRmS2uHqgkMd2gVjnBq+elA2jsi50PXpxowv4vdBCNHcicI58W2w== +"@abp/select2@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0-rc.1.tgz#f5e159e13d2b7868a2283fb58af5121f1cc439e3" + integrity sha512-+fZoOHSZMeoMhIKQFrL62B1mwH10zNwsmEfgdLEvSiGNss+yGUmCZKxz9jSbQUr81N/kgew1CMxMjPGfyvpudA== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" select2 "^4.0.13" -"@abp/sweetalert@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.2.1.tgz#be99820491499fea06259fbc584e799a51cbabf3" - integrity sha512-If5UJQVJ05aEbxPHrwRpuEzCT5ygOHmPzpBblpzSo5XxNNDGGlumnwYmtbXBSXutXrIR0b5//Bo1EgBVtmJHOg== +"@abp/sweetalert@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0-rc.1.tgz#72e926a4e44dec851cf5abbe088f27294ccea671" + integrity sha512-IxrpZwgSO6t9DGKzWN3CfBL+lA5n/5Z3JBt6plWSYFSMMNDlxIOPyKcJBUUnlHnpUiqslCIiZRlOcCLTsw13tw== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" sweetalert "^2.1.2" -"@abp/timeago@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.2.1.tgz#4e5e6c76d5440de65646a076ce1a9d7225882243" - integrity sha512-4WLWoCYiSg5zYPcogV47TXA+YomDHHY0YfHHWmr6TP2bHd5ghsnMqnnkt58nUN9Psd77teo+Mo9jgR0h2IxRwQ== +"@abp/timeago@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0-rc.1.tgz#dec80881b231757f3d53fd017631517b0fb79e65" + integrity sha512-YQTE/p5SILYkfDSDbgdScqANb1d2F9a+d1Hijy/lUK6WLUqNkU2qlF1I/aBpJJWD6h8KAVqC5ZmOXZ/WDRSZ3w== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" timeago "^1.6.7" -"@abp/toastr@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.2.1.tgz#d35b44234ca6cbd5da6cc5f65d15e827bd7970dc" - integrity sha512-nBmWGL49psSF2tcNnR6PGBcfFAxo2u5HHNRzv2c2z46ZEGFa5DjuY46KZC24jMWY+yprINQewhKTmQUqJvaHqA== +"@abp/toastr@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0-rc.1.tgz#56d1c044c528ca12b4d3e37a19f21ec8cf3c3945" + integrity sha512-kTyzlneLWKbRDkSshch5MFIX46+t9SPoOly544KnX1erHmNJfVkBk69XmADeoltKHezbiglE81Kg2KXxVgrAqQ== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" toastr "^2.1.4" -"@abp/utils@^3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.2.1.tgz#960a0bbdfb781bbd6fb05e80bba2b9d95f2ae44c" - integrity sha512-bqYa1VIi1tZXCUbP2Z1WlcgPD4/wjhDVM1jiAN9UzDls1K3u+e2LyR4gLoN39WW1ULjCIhyzEAw/JgTcMmpUBw== +"@abp/utils@^3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0-rc.1.tgz#2ea2806a42d31dff246478497493e6a8735b3aa3" + integrity sha512-B58plJNC9UF9kigsGLd29qa9nyfIkgV7868NmNgsPwulAhcI1dKUgmSlymN1fBK4zPOVWbzReANVLKbQx13Z1Q== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json index 64a770f40e..c035a75924 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.2.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.0-rc.1" } } \ No newline at end of file diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock index fb3a5a17a8..88b0ed6069 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@^3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.2.1.tgz#d8f9af85b6114d35bba5942e303b3a4b89c8cd75" - integrity sha512-utHlyw/xbtDqqA0ETrYTxZ8ZO49tI6FP3BAvRdevbhozdG8/el6BWpifZysKJv2VIm6d5P7DXD3uymCd5iX6EA== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~3.2.1" - -"@abp/aspnetcore.mvc.ui.theme.shared@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.2.1.tgz#b628602dca8d1809e32f423962cff56379a790b0" - integrity sha512-aWZAaFnN9Ncyzy84wPTfUVtcyh98Sxu4m+fsGY5XtwA/nwDTDVtLMq81ueJWyFgN9GNk8+lT6VXfPDpA/MJo/A== - dependencies: - "@abp/aspnetcore.mvc.ui" "~3.2.1" - "@abp/bootstrap" "~3.2.1" - "@abp/bootstrap-datepicker" "~3.2.1" - "@abp/datatables.net-bs4" "~3.2.1" - "@abp/font-awesome" "~3.2.1" - "@abp/jquery-form" "~3.2.1" - "@abp/jquery-validation-unobtrusive" "~3.2.1" - "@abp/lodash" "~3.2.1" - "@abp/luxon" "~3.2.1" - "@abp/malihu-custom-scrollbar-plugin" "~3.2.1" - "@abp/select2" "~3.2.1" - "@abp/sweetalert" "~3.2.1" - "@abp/timeago" "~3.2.1" - "@abp/toastr" "~3.2.1" - -"@abp/aspnetcore.mvc.ui@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.2.1.tgz#dc0d2c331bf09ef0f79cec739e0f64edb1105084" - integrity sha512-Fpn16MeK71Uhw6636nlXCQaSwN9lN6QFUIGIICcWU+2eMA8fK4ZtavaYGG4mWqjkd4wzUHCz2AZbmbxK7bVnng== +"@abp/aspnetcore.mvc.ui.theme.basic@^3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-3.3.0-rc.1.tgz#0c088d2946f93447388f8e63313b47398fe2f792" + integrity sha512-ysmFoSrEOMn33h6Q3swefEPkT8iABLR1RNLaHzaGOp042+3xJpvnPRC0PjdtFGIx9Mic3EHU7va/by9TGaRP0A== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~3.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-3.3.0-rc.1.tgz#0ebb50effe6d1d8e87d30cf0258c92074c77922f" + integrity sha512-sYmKnmy9Fsh0dT+CPhsxk5UwqUTdWIXDbRCp9ZI+9AKGHHBkuFfTPSi3TBK+Y/vQAOn68JdMVdRLdMJHHUXm+g== + dependencies: + "@abp/aspnetcore.mvc.ui" "~3.3.0-rc.1" + "@abp/bootstrap" "~3.3.0-rc.1" + "@abp/bootstrap-datepicker" "~3.3.0-rc.1" + "@abp/datatables.net-bs4" "~3.3.0-rc.1" + "@abp/font-awesome" "~3.3.0-rc.1" + "@abp/jquery-form" "~3.3.0-rc.1" + "@abp/jquery-validation-unobtrusive" "~3.3.0-rc.1" + "@abp/lodash" "~3.3.0-rc.1" + "@abp/luxon" "~3.3.0-rc.1" + "@abp/malihu-custom-scrollbar-plugin" "~3.3.0-rc.1" + "@abp/select2" "~3.3.0-rc.1" + "@abp/sweetalert" "~3.3.0-rc.1" + "@abp/timeago" "~3.3.0-rc.1" + "@abp/toastr" "~3.3.0-rc.1" + +"@abp/aspnetcore.mvc.ui@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-3.3.0-rc.1.tgz#69e0fa91fb1a4f7424e08e076df213fea90c796b" + integrity sha512-c6xNCJlhmz8EasZZeYkC6LoOJLMnfa+JGbtfZF8FXNT4MQVyFpfQtGInGAn6A3TDZR2Y/roJbjXf/D73cxMnGA== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,145 +41,145 @@ path "^0.12.7" rimraf "^3.0.2" -"@abp/bootstrap-datepicker@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.2.1.tgz#5cb75bc53fab86f7b28bfc5fbfcbf233432d75ca" - integrity sha512-KzTDZTMd/TBaTDNuPF4+T+0zsmEimD2Uq8TlNw7knEEyo7a/lsfBNkBF9Xc8bjZcbC76BqajytsTzI1yftM4Uw== +"@abp/bootstrap-datepicker@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-3.3.0-rc.1.tgz#4195fa5cf5cc72420c9d87a6c75ec26c3c70b9df" + integrity sha512-6ijmKV6ySrsBwtyQxoe+/Otmhzp1XJy0uGVnY2YhmOHuKzmQeIwfzrMMuLK5XX+Gsub1dYqsawFQNzJYxY2rLA== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.2.1.tgz#9574414f1e170240dacdf78408af34830264db97" - integrity sha512-gLIr4d5xfw5TSpSHIKr7oKznkdIbGhS+gtBitP1BFVLOU2h7/d6uTZoopC+JQU16DGvn8njo8W4DL7Amh9FOqQ== +"@abp/bootstrap@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-3.3.0-rc.1.tgz#e5526e2ad9ac3e3d650d8d805708d083ce5ff6f2" + integrity sha512-TvTPt6e8cGgdH4EdWAadm/8ykE0wke0vYGWWbgNfrNuSb+/Mt/lg0U3nDaNdjDBtstkEPLHKA2lvS5Nb1mNr+w== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" bootstrap "^4.5.0" bootstrap-v4-rtl "4.4.1-2" -"@abp/core@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.2.1.tgz#3c133f67394d716df3e49f1eeb934c586df755e5" - integrity sha512-GbjrFO+oKl4JuZkYdeWtE+N837XRQr0hoX8O3pI1eAnuMku48QhGec2ZpSJuqG+c3wX6PHTZPIyHse4X+y6QgA== +"@abp/core@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/core/-/core-3.3.0-rc.1.tgz#b84bdd9526c52f5d76a356d2854256477680ef6e" + integrity sha512-6KQ9Lu/Ok0FaIIRYoUUgnV0DFcT7H080Qfr7QHOv/nI6lviFwtAi/L3IJPCwKSoP+08RklyzvD9zOIdWNWEYMQ== dependencies: - "@abp/utils" "^3.2.1" + "@abp/utils" "^3.3.0-rc.1" -"@abp/datatables.net-bs4@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.2.1.tgz#b008b2964472fd8c8286a7c4b1e903d93a52e760" - integrity sha512-C/MmA6URugDD1tdUS6zS413ycHCjefeIG7nnJrtJmCZix7mfbdrp/Km/vKbE1KMSEYWis0w/SxIEy0kbkIW4OQ== +"@abp/datatables.net-bs4@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs4/-/datatables.net-bs4-3.3.0-rc.1.tgz#360cd4e71c8015a3b9045636ec09f11c938685a6" + integrity sha512-7DTaQfpi4bEAKBq3QR4WHYVGGuk2v7zca0Q41XuWeSkcgGwctrJnuAdotNmihDQuwNZgYO+2gFDlVa5DXPELKQ== dependencies: - "@abp/datatables.net" "~3.2.1" + "@abp/datatables.net" "~3.3.0-rc.1" datatables.net-bs4 "^1.10.21" -"@abp/datatables.net@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.2.1.tgz#ba7d4c875ad2bc126687bc5d8e627f3c4d7fb2f4" - integrity sha512-o8/K6RGnPkQUe5ClAxyHNBOevVBnb8qSM4NXRXR2AUtEvjal+4UL9QOf1LZ0zPv4OAjaaAiOAp9Pmbv4FWuZ8Q== +"@abp/datatables.net@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-3.3.0-rc.1.tgz#b4fdebc7806036d3d468453772fbc1fd3c3b443f" + integrity sha512-GqeKMFYvQ3Zfx35fKkYhYUpIEWtaW1KWo5VrA+EbyTcbhdrAuAUoDH4QgLpdhtCvNO74M8JFpMVEYHhhUkc0nQ== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" datatables.net "^1.10.21" -"@abp/font-awesome@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.2.1.tgz#d54a6d9627fdfeb6c615550f09241d0c805e3d39" - integrity sha512-5BlAuIX4qFdf/mvycUAREmVQ8jg0tRtDnVXt0E8kUtzghhEGG91NfcZIaB4zaWAwuJSyqqjS/VJ/URy1g50NZQ== +"@abp/font-awesome@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-3.3.0-rc.1.tgz#700ba64f6c8832b812d5d1bca28dd4a487bec833" + integrity sha512-fna7mw5AIuP/FZSx1Ac94ZpGJIwQCZKuiIpmW/vVsFHUSICZ9J+uKa6hg3pt5SLFMAEVvAS6ScJyTkt6Hoc0Mg== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" "@fortawesome/fontawesome-free" "^5.13.0" -"@abp/jquery-form@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.2.1.tgz#9280b28e2103fc80b9124e3a53f2f0e03ac4bb46" - integrity sha512-Dy0wTCcmWgygrru59VPnlVw7qLu8aLTZOTpMPbSva502O19O+H7FljF9r0J7eYgoO6pcTO4R1tE/Yib3DwIBFg== +"@abp/jquery-form@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-3.3.0-rc.1.tgz#9fe258a926013618cd99c03aca401c4fc543a72d" + integrity sha512-qLWucASxcgCKdVeix/NXYADhGOWBAR69U/xJj4p/H5i80PuMetH/bWCb9SQbrbyza/Gp4A8JV5vBKNmZFQqSbg== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.2.1.tgz#8f0b54f0d39b00ab93638fe1537ae7bd77e3e78e" - integrity sha512-mr/jZVm8QuYO1vWcNo3ytuQEeMBvjnMiTrvoUzY1OXX+HUFR6oi8FohXgxFUypElAqQ8jelV9K0qonX1zTQhcg== +"@abp/jquery-validation-unobtrusive@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.3.0-rc.1.tgz#7860d04cfdf152976d780efab88712ae58db8541" + integrity sha512-KAAhLa3MHcwf6CWcAtlW2BQ9WeN8LwzDY6qCz6IVG25zjZfHZ6HEVeMAG3eJ6NRZlAWv2zZK8i8Qma9lKD55gA== dependencies: - "@abp/jquery-validation" "~3.2.1" + "@abp/jquery-validation" "~3.3.0-rc.1" jquery-validation-unobtrusive "^3.2.11" -"@abp/jquery-validation@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.2.1.tgz#b5330eb404f357936d16f3dd81752076bfee963d" - integrity sha512-nmubyFyA8TbLdsJt8MAspSRN4St8Xn8ICB8ancdiyxbS/6u9oeKlvP4++ZZ881NlFkPsyo7GkHjfl29pNzzzJA== +"@abp/jquery-validation@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-3.3.0-rc.1.tgz#ab64965232b30a6ae9ed8660fc9587792bfd619d" + integrity sha512-84ueP2TWJVTYuqIzofrwu8NpWQA/thmQzDzhSnI6dTLrrYzDHLQ7YjwG3/591ka3b6u71diE6UfeyQ4iBiPQ5Q== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" jquery-validation "^1.19.2" -"@abp/jquery@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.2.1.tgz#c7ee0bbff0b480b8ed01f46d1ce07ebc8c35e4a2" - integrity sha512-AvfQ9rnnb+pQUDuGnuhpCB+FzWz3EqDptoeiCDQjPXxGql3Wk5GWw6QzvuREOXcU4CoUyzigyDgnO5WaSlx8kQ== +"@abp/jquery@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-3.3.0-rc.1.tgz#d46f75bfbcc65d4675675c8b69d219a3276afe91" + integrity sha512-NdChW0cbsqWVkB6AvXnTfeNZm2Ai3jmYEO2HJZDYBbWHkMlvQRnQ6oVD6TJvqMDtK066ArL1KAofuSJI2l8njQ== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" jquery "~3.5.1" -"@abp/lodash@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.2.1.tgz#7abfe7d572eaa628c033a6d50520b8510ecce79a" - integrity sha512-ZDte0vUfM1fBrs/mRq7yCuugtYZKoP/6pOEebDOMdM1GztAEKicq8s7EXxwbqE4+kjxqeHzReh7ZwCtFAf/Zew== +"@abp/lodash@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-3.3.0-rc.1.tgz#5cf5462e1df615af5a3f89b8eb6b5d639f134026" + integrity sha512-AXvTAHfKSkQjJ70eStqSq2sXrOHQE+O5/7/k6JuSLbhzfC1paAZeKjLyoGj1hSuyWHQl6tbqDxJQej/NxGucHw== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" lodash "^4.17.15" -"@abp/luxon@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.2.1.tgz#ad3473f24dbacd4d1bc15a07ee75cc1db7f1df6c" - integrity sha512-WZgAMHNx1beQSA48ZJ2x2g408iBXBUvKwBwAFJqbhNhEsO95tutO80j1LNHYvXCbrAatoz6K6IDRXDXV1U3zyg== +"@abp/luxon@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-3.3.0-rc.1.tgz#e479e7e854ccb9fcd35ce15145d50a9c9581dc50" + integrity sha512-j+1cBVmGtE9Of14i7nwtn9ZSvNa+46beiyOqMVmuH5qjPQTbYUAVFOlL7jVmYswplxUdK1r52n1nOz13oADnwA== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" luxon "^1.24.1" -"@abp/malihu-custom-scrollbar-plugin@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.2.1.tgz#f4a19c6de14c7193eaf6c55c429580dcbcfe3965" - integrity sha512-pu8Tuh67ruG1fLEud1eves/eiBCiuowL+LVLyW+iX1bByfVlOB40nMQ7UCMQ6Jvv31pTEK2dfQ/n8K3W/pFiWQ== +"@abp/malihu-custom-scrollbar-plugin@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-3.3.0-rc.1.tgz#3455730273e75ad8d81083989b4f0d4486fe6a2c" + integrity sha512-TePsuZmhX34y9OEPdyYnWuQnx8ntkMXO4gkwciT0fqen+Cs8ty1VFr7uBeFTIo/JTCBtrRehcOjCJiv/F3j1Ug== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.2.1.tgz#8a04a6f5f10cc4a48a3da37bbc38ff655e626ddf" - integrity sha512-i/euJ+kTHakwCI3Hf9+NhiQG+MYlU0iwp6GRmS2uHqgkMd2gVjnBq+elA2jsi50PXpxowv4vdBCNHcicI58W2w== +"@abp/select2@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-3.3.0-rc.1.tgz#f5e159e13d2b7868a2283fb58af5121f1cc439e3" + integrity sha512-+fZoOHSZMeoMhIKQFrL62B1mwH10zNwsmEfgdLEvSiGNss+yGUmCZKxz9jSbQUr81N/kgew1CMxMjPGfyvpudA== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" select2 "^4.0.13" -"@abp/sweetalert@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.2.1.tgz#be99820491499fea06259fbc584e799a51cbabf3" - integrity sha512-If5UJQVJ05aEbxPHrwRpuEzCT5ygOHmPzpBblpzSo5XxNNDGGlumnwYmtbXBSXutXrIR0b5//Bo1EgBVtmJHOg== +"@abp/sweetalert@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/sweetalert/-/sweetalert-3.3.0-rc.1.tgz#72e926a4e44dec851cf5abbe088f27294ccea671" + integrity sha512-IxrpZwgSO6t9DGKzWN3CfBL+lA5n/5Z3JBt6plWSYFSMMNDlxIOPyKcJBUUnlHnpUiqslCIiZRlOcCLTsw13tw== dependencies: - "@abp/core" "~3.2.1" + "@abp/core" "~3.3.0-rc.1" sweetalert "^2.1.2" -"@abp/timeago@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.2.1.tgz#4e5e6c76d5440de65646a076ce1a9d7225882243" - integrity sha512-4WLWoCYiSg5zYPcogV47TXA+YomDHHY0YfHHWmr6TP2bHd5ghsnMqnnkt58nUN9Psd77teo+Mo9jgR0h2IxRwQ== +"@abp/timeago@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-3.3.0-rc.1.tgz#dec80881b231757f3d53fd017631517b0fb79e65" + integrity sha512-YQTE/p5SILYkfDSDbgdScqANb1d2F9a+d1Hijy/lUK6WLUqNkU2qlF1I/aBpJJWD6h8KAVqC5ZmOXZ/WDRSZ3w== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" timeago "^1.6.7" -"@abp/toastr@~3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.2.1.tgz#d35b44234ca6cbd5da6cc5f65d15e827bd7970dc" - integrity sha512-nBmWGL49psSF2tcNnR6PGBcfFAxo2u5HHNRzv2c2z46ZEGFa5DjuY46KZC24jMWY+yprINQewhKTmQUqJvaHqA== +"@abp/toastr@~3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-3.3.0-rc.1.tgz#56d1c044c528ca12b4d3e37a19f21ec8cf3c3945" + integrity sha512-kTyzlneLWKbRDkSshch5MFIX46+t9SPoOly544KnX1erHmNJfVkBk69XmADeoltKHezbiglE81Kg2KXxVgrAqQ== dependencies: - "@abp/jquery" "~3.2.1" + "@abp/jquery" "~3.3.0-rc.1" toastr "^2.1.4" -"@abp/utils@^3.2.1": - version "3.2.1" - resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.2.1.tgz#960a0bbdfb781bbd6fb05e80bba2b9d95f2ae44c" - integrity sha512-bqYa1VIi1tZXCUbP2Z1WlcgPD4/wjhDVM1jiAN9UzDls1K3u+e2LyR4gLoN39WW1ULjCIhyzEAw/JgTcMmpUBw== +"@abp/utils@^3.3.0-rc.1": + version "3.3.0-rc.1" + resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-3.3.0-rc.1.tgz#2ea2806a42d31dff246478497493e6a8735b3aa3" + integrity sha512-B58plJNC9UF9kigsGLd29qa9nyfIkgV7868NmNgsPwulAhcI1dKUgmSlymN1fBK4zPOVWbzReANVLKbQx13Z1Q== dependencies: just-compare "^1.3.0" diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json index 64a770f40e..c035a75924 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^3.2.1" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.3.0-rc.1" } } \ No newline at end of file diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/jquery/jquery.js b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/jquery/jquery.js index 50937333b9..9b5206bcc6 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/jquery/jquery.js +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/wwwroot/libs/jquery/jquery.js @@ -1,5 +1,5 @@ /*! - * jQuery JavaScript Library v3.5.1 + * jQuery JavaScript Library v3.3.1 * https://jquery.com/ * * Includes Sizzle.js @@ -9,7 +9,7 @@ * Released under the MIT license * https://jquery.org/license * - * Date: 2020-05-04T22:49Z + * Date: 2018-01-20T17:24Z */ ( function( global, factory ) { @@ -47,16 +47,13 @@ var arr = []; +var document = window.document; + var getProto = Object.getPrototypeOf; var slice = arr.slice; -var flat = arr.flat ? function( array ) { - return arr.flat.call( array ); -} : function( array ) { - return arr.concat.apply( [], array ); -}; - +var concat = arr.concat; var push = arr.push; @@ -89,40 +86,25 @@ var isWindow = function isWindow( obj ) { }; -var document = window.document; - var preservedScriptAttributes = { type: true, src: true, - nonce: true, noModule: true }; - function DOMEval( code, node, doc ) { + function DOMEval( code, doc, node ) { doc = doc || document; - var i, val, + var i, script = doc.createElement( "script" ); script.text = code; if ( node ) { for ( i in preservedScriptAttributes ) { - - // Support: Firefox 64+, Edge 18+ - // Some browsers don't support the "nonce" property on scripts. - // On the other hand, just using `getAttribute` is not enough as - // the `nonce` attribute is reset to an empty string whenever it - // becomes browsing-context connected. - // See https://github.com/whatwg/html/issues/2369 - // See https://html.spec.whatwg.org/#nonce-attributes - // The `node.getAttribute` check was added for the sake of - // `jQuery.globalEval` so that it can fake a nonce-containing node - // via an object. - val = node[ i ] || node.getAttribute && node.getAttribute( i ); - if ( val ) { - script.setAttribute( i, val ); + if ( node[ i ] ) { + script[ i ] = node[ i ]; } } } @@ -147,7 +129,7 @@ function toType( obj ) { var - version = "3.5.1", + version = "3.3.1", // Define a local copy of jQuery jQuery = function( selector, context ) { @@ -155,7 +137,11 @@ var // The jQuery object is actually just the init constructor 'enhanced' // Need init if jQuery is called (just allow error to be thrown if not included) return new jQuery.fn.init( selector, context ); - }; + }, + + // Support: Android <=4.0 only + // Make sure we trim BOM and NBSP + rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g; jQuery.fn = jQuery.prototype = { @@ -221,18 +207,6 @@ jQuery.fn = jQuery.prototype = { return this.eq( -1 ); }, - even: function() { - return this.pushStack( jQuery.grep( this, function( _elem, i ) { - return ( i + 1 ) % 2; - } ) ); - }, - - odd: function() { - return this.pushStack( jQuery.grep( this, function( _elem, i ) { - return i % 2; - } ) ); - }, - eq: function( i ) { var len = this.length, j = +i + ( i < 0 ? len : 0 ); @@ -284,28 +258,25 @@ jQuery.extend = jQuery.fn.extend = function() { // Extend the base object for ( name in options ) { + src = target[ name ]; copy = options[ name ]; - // Prevent Object.prototype pollution // Prevent never-ending loop - if ( name === "__proto__" || target === copy ) { + if ( target === copy ) { continue; } // Recurse if we're merging plain objects or arrays if ( deep && copy && ( jQuery.isPlainObject( copy ) || ( copyIsArray = Array.isArray( copy ) ) ) ) { - src = target[ name ]; - // Ensure proper type for the source value - if ( copyIsArray && !Array.isArray( src ) ) { - clone = []; - } else if ( !copyIsArray && !jQuery.isPlainObject( src ) ) { - clone = {}; + if ( copyIsArray ) { + copyIsArray = false; + clone = src && Array.isArray( src ) ? src : []; + } else { - clone = src; + clone = src && jQuery.isPlainObject( src ) ? src : {}; } - copyIsArray = false; // Never move original objects, clone them target[ name ] = jQuery.extend( deep, clone, copy ); @@ -358,6 +329,9 @@ jQuery.extend( { }, isEmptyObject: function( obj ) { + + /* eslint-disable no-unused-vars */ + // See https://github.com/eslint/eslint/issues/6125 var name; for ( name in obj ) { @@ -366,10 +340,9 @@ jQuery.extend( { return true; }, - // Evaluates a script in a provided context; falls back to the global one - // if not specified. - globalEval: function( code, options, doc ) { - DOMEval( code, { nonce: options && options.nonce }, doc ); + // Evaluates a script in a global context + globalEval: function( code ) { + DOMEval( code ); }, each: function( obj, callback ) { @@ -393,6 +366,13 @@ jQuery.extend( { return obj; }, + // Support: Android <=4.0 only + trim: function( text ) { + return text == null ? + "" : + ( text + "" ).replace( rtrim, "" ); + }, + // results is for internal usage only makeArray: function( arr, results ) { var ret = results || []; @@ -479,7 +459,7 @@ jQuery.extend( { } // Flatten any nested arrays - return flat( ret ); + return concat.apply( [], ret ); }, // A global GUID counter for objects @@ -496,7 +476,7 @@ if ( typeof Symbol === "function" ) { // Populate the class2type map jQuery.each( "Boolean Number String Function Array Date RegExp Object Error Symbol".split( " " ), -function( _i, name ) { +function( i, name ) { class2type[ "[object " + name + "]" ] = name.toLowerCase(); } ); @@ -518,16 +498,17 @@ function isArrayLike( obj ) { } var Sizzle = /*! - * Sizzle CSS Selector Engine v2.3.5 + * Sizzle CSS Selector Engine v2.3.3 * https://sizzlejs.com/ * - * Copyright JS Foundation and other contributors + * Copyright jQuery Foundation and other contributors * Released under the MIT license - * https://js.foundation/ + * http://jquery.org/license * - * Date: 2020-03-14 + * Date: 2016-08-08 */ -( function( window ) { +(function( window ) { + var i, support, Expr, @@ -558,7 +539,6 @@ var i, classCache = createCache(), tokenCache = createCache(), compilerCache = createCache(), - nonnativeSelectorCache = createCache(), sortOrder = function( a, b ) { if ( a === b ) { hasDuplicate = true; @@ -567,71 +547,61 @@ var i, }, // Instance methods - hasOwn = ( {} ).hasOwnProperty, + hasOwn = ({}).hasOwnProperty, arr = [], pop = arr.pop, - pushNative = arr.push, + push_native = arr.push, push = arr.push, slice = arr.slice, - // Use a stripped-down indexOf as it's faster than native // https://jsperf.com/thor-indexof-vs-for/5 indexOf = function( list, elem ) { var i = 0, len = list.length; for ( ; i < len; i++ ) { - if ( list[ i ] === elem ) { + if ( list[i] === elem ) { return i; } } return -1; }, - booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|" + - "ismap|loop|multiple|open|readonly|required|scoped", + booleans = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", // Regular expressions // http://www.w3.org/TR/css3-selectors/#whitespace whitespace = "[\\x20\\t\\r\\n\\f]", - // https://www.w3.org/TR/css-syntax-3/#ident-token-diagram - identifier = "(?:\\\\[\\da-fA-F]{1,6}" + whitespace + - "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+", + // http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier + identifier = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", // Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors attributes = "\\[" + whitespace + "*(" + identifier + ")(?:" + whitespace + - // Operator (capture 2) "*([*^$|!~]?=)" + whitespace + - - // "Attribute values must be CSS identifiers [capture 5] - // or strings [capture 3 or capture 4]" - "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + - whitespace + "*\\]", + // "Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]" + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + identifier + "))|)" + whitespace + + "*\\]", pseudos = ":(" + identifier + ")(?:\\((" + - // To reduce the number of selectors needing tokenize in the preFilter, prefer arguments: // 1. quoted (capture 3; capture 4 or capture 5) "('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|" + - // 2. simple (capture 6) "((?:\\\\.|[^\\\\()[\\]]|" + attributes + ")*)|" + - // 3. anything else (capture 2) ".*" + ")\\)|)", // Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter rwhitespace = new RegExp( whitespace + "+", "g" ), - rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + - whitespace + "+$", "g" ), + rtrim = new RegExp( "^" + whitespace + "+|((?:^|[^\\\\])(?:\\\\.)*)" + whitespace + "+$", "g" ), rcomma = new RegExp( "^" + whitespace + "*," + whitespace + "*" ), - rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + - "*" ), - rdescend = new RegExp( whitespace + "|>" ), + rcombinators = new RegExp( "^" + whitespace + "*([>+~]|" + whitespace + ")" + whitespace + "*" ), + + rattributeQuotes = new RegExp( "=" + whitespace + "*([^\\]'\"]*?)" + whitespace + "*\\]", "g" ), rpseudo = new RegExp( pseudos ), ridentifier = new RegExp( "^" + identifier + "$" ), @@ -642,19 +612,16 @@ var i, "TAG": new RegExp( "^(" + identifier + "|[*])" ), "ATTR": new RegExp( "^" + attributes ), "PSEUDO": new RegExp( "^" + pseudos ), - "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + - whitespace + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + - whitespace + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), + "CHILD": new RegExp( "^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + whitespace + + "*(even|odd|(([+-]|)(\\d*)n|)" + whitespace + "*(?:([+-]|)" + whitespace + + "*(\\d+)|))" + whitespace + "*\\)|)", "i" ), "bool": new RegExp( "^(?:" + booleans + ")$", "i" ), - // For use in libraries implementing .is() // We use this for POS matching in `select` - "needsContext": new RegExp( "^" + whitespace + - "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + whitespace + - "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) + "needsContext": new RegExp( "^" + whitespace + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + + whitespace + "*((?:-\\d)?\\d*)" + whitespace + "*\\)|)(?=[^-]|$)", "i" ) }, - rhtml = /HTML$/i, rinputs = /^(?:input|select|textarea|button)$/i, rheader = /^h\d$/i, @@ -667,21 +634,18 @@ var i, // CSS escapes // http://www.w3.org/TR/CSS21/syndata.html#escaped-characters - runescape = new RegExp( "\\\\[\\da-fA-F]{1,6}" + whitespace + "?|\\\\([^\\r\\n\\f])", "g" ), - funescape = function( escape, nonHex ) { - var high = "0x" + escape.slice( 1 ) - 0x10000; - - return nonHex ? - - // Strip the backslash prefix from a non-hex escape sequence - nonHex : - - // Replace a hexadecimal escape sequence with the encoded Unicode code point - // Support: IE <=11+ - // For values outside the Basic Multilingual Plane (BMP), manually construct a - // surrogate pair + runescape = new RegExp( "\\\\([\\da-f]{1,6}" + whitespace + "?|(" + whitespace + ")|.)", "ig" ), + funescape = function( _, escaped, escapedWhitespace ) { + var high = "0x" + escaped - 0x10000; + // NaN means non-codepoint + // Support: Firefox<24 + // Workaround erroneous numeric interpretation of +"0x" + return high !== high || escapedWhitespace ? + escaped : high < 0 ? + // BMP codepoint String.fromCharCode( high + 0x10000 ) : + // Supplemental Plane codepoint (surrogate pair) String.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 ); }, @@ -697,8 +661,7 @@ var i, } // Control characters and (dependent upon position) numbers get escaped as code points - return ch.slice( 0, -1 ) + "\\" + - ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; + return ch.slice( 0, -1 ) + "\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + " "; } // Other potentially-special ASCII characters get backslash-escaped @@ -713,9 +676,9 @@ var i, setDocument(); }, - inDisabledFieldset = addCombinator( + disabledAncestor = addCombinator( function( elem ) { - return elem.disabled === true && elem.nodeName.toLowerCase() === "fieldset"; + return elem.disabled === true && ("form" in elem || "label" in elem); }, { dir: "parentNode", next: "legend" } ); @@ -723,20 +686,18 @@ var i, // Optimize for push.apply( _, NodeList ) try { push.apply( - ( arr = slice.call( preferredDoc.childNodes ) ), + (arr = slice.call( preferredDoc.childNodes )), preferredDoc.childNodes ); - // Support: Android<4.0 // Detect silently failing push.apply - // eslint-disable-next-line no-unused-expressions arr[ preferredDoc.childNodes.length ].nodeType; } catch ( e ) { push = { apply: arr.length ? // Leverage slice if possible function( target, els ) { - pushNative.apply( target, slice.call( els ) ); + push_native.apply( target, slice.call(els) ); } : // Support: IE<9 @@ -744,9 +705,8 @@ try { function( target, els ) { var j = target.length, i = 0; - // Can't trust NodeList.length - while ( ( target[ j++ ] = els[ i++ ] ) ) {} + while ( (target[j++] = els[i++]) ) {} target.length = j - 1; } }; @@ -770,21 +730,24 @@ function Sizzle( selector, context, results, seed ) { // Try to shortcut find operations (as opposed to filters) in HTML documents if ( !seed ) { - setDocument( context ); + + if ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) { + setDocument( context ); + } context = context || document; if ( documentIsHTML ) { // If the selector is sufficiently simple, try using a "get*By*" DOM method // (excepting DocumentFragment context, where the methods don't exist) - if ( nodeType !== 11 && ( match = rquickExpr.exec( selector ) ) ) { + if ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) { // ID selector - if ( ( m = match[ 1 ] ) ) { + if ( (m = match[1]) ) { // Document context if ( nodeType === 9 ) { - if ( ( elem = context.getElementById( m ) ) ) { + if ( (elem = context.getElementById( m )) ) { // Support: IE, Opera, Webkit // TODO: identify versions @@ -803,7 +766,7 @@ function Sizzle( selector, context, results, seed ) { // Support: IE, Opera, Webkit // TODO: identify versions // getElementById can match elements by name instead of ID - if ( newContext && ( elem = newContext.getElementById( m ) ) && + if ( newContext && (elem = newContext.getElementById( m )) && contains( context, elem ) && elem.id === m ) { @@ -813,12 +776,12 @@ function Sizzle( selector, context, results, seed ) { } // Type selector - } else if ( match[ 2 ] ) { + } else if ( match[2] ) { push.apply( results, context.getElementsByTagName( selector ) ); return results; // Class selector - } else if ( ( m = match[ 3 ] ) && support.getElementsByClassName && + } else if ( (m = match[3]) && support.getElementsByClassName && context.getElementsByClassName ) { push.apply( results, context.getElementsByClassName( m ) ); @@ -828,62 +791,50 @@ function Sizzle( selector, context, results, seed ) { // Take advantage of querySelectorAll if ( support.qsa && - !nonnativeSelectorCache[ selector + " " ] && - ( !rbuggyQSA || !rbuggyQSA.test( selector ) ) && - - // Support: IE 8 only - // Exclude object elements - ( nodeType !== 1 || context.nodeName.toLowerCase() !== "object" ) ) { - - newSelector = selector; - newContext = context; - - // qSA considers elements outside a scoping root when evaluating child or - // descendant combinators, which is not what we want. - // In such cases, we work around the behavior by prefixing every selector in the - // list with an ID selector referencing the scope context. - // The technique has to be used as well when a leading combinator is used - // as such selectors are not recognized by querySelectorAll. - // Thanks to Andrew Dupont for this technique. - if ( nodeType === 1 && - ( rdescend.test( selector ) || rcombinators.test( selector ) ) ) { + !compilerCache[ selector + " " ] && + (!rbuggyQSA || !rbuggyQSA.test( selector )) ) { - // Expand context for sibling selectors - newContext = rsibling.test( selector ) && testContext( context.parentNode ) || - context; + if ( nodeType !== 1 ) { + newContext = context; + newSelector = selector; - // We can use :scope instead of the ID hack if the browser - // supports it & if we're not changing the context. - if ( newContext !== context || !support.scope ) { + // qSA looks outside Element context, which is not what we want + // Thanks to Andrew Dupont for this workaround technique + // Support: IE <=8 + // Exclude object elements + } else if ( context.nodeName.toLowerCase() !== "object" ) { - // Capture the context ID, setting it first if necessary - if ( ( nid = context.getAttribute( "id" ) ) ) { - nid = nid.replace( rcssescape, fcssescape ); - } else { - context.setAttribute( "id", ( nid = expando ) ); - } + // Capture the context ID, setting it first if necessary + if ( (nid = context.getAttribute( "id" )) ) { + nid = nid.replace( rcssescape, fcssescape ); + } else { + context.setAttribute( "id", (nid = expando) ); } // Prefix every selector in the list groups = tokenize( selector ); i = groups.length; while ( i-- ) { - groups[ i ] = ( nid ? "#" + nid : ":scope" ) + " " + - toSelector( groups[ i ] ); + groups[i] = "#" + nid + " " + toSelector( groups[i] ); } newSelector = groups.join( "," ); + + // Expand context for sibling selectors + newContext = rsibling.test( selector ) && testContext( context.parentNode ) || + context; } - try { - push.apply( results, - newContext.querySelectorAll( newSelector ) - ); - return results; - } catch ( qsaError ) { - nonnativeSelectorCache( selector, true ); - } finally { - if ( nid === expando ) { - context.removeAttribute( "id" ); + if ( newSelector ) { + try { + push.apply( results, + newContext.querySelectorAll( newSelector ) + ); + return results; + } catch ( qsaError ) { + } finally { + if ( nid === expando ) { + context.removeAttribute( "id" ); + } } } } @@ -904,14 +855,12 @@ function createCache() { var keys = []; function cache( key, value ) { - // Use (key + " ") to avoid collision with native prototype properties (see Issue #157) if ( keys.push( key + " " ) > Expr.cacheLength ) { - // Only keep the most recent entries delete cache[ keys.shift() ]; } - return ( cache[ key + " " ] = value ); + return (cache[ key + " " ] = value); } return cache; } @@ -930,19 +879,17 @@ function markFunction( fn ) { * @param {Function} fn Passed the created element and returns a boolean result */ function assert( fn ) { - var el = document.createElement( "fieldset" ); + var el = document.createElement("fieldset"); try { return !!fn( el ); - } catch ( e ) { + } catch (e) { return false; } finally { - // Remove from its parent by default if ( el.parentNode ) { el.parentNode.removeChild( el ); } - // release memory in IE el = null; } @@ -954,11 +901,11 @@ function assert( fn ) { * @param {Function} handler The method that will be applied */ function addHandle( attrs, handler ) { - var arr = attrs.split( "|" ), + var arr = attrs.split("|"), i = arr.length; while ( i-- ) { - Expr.attrHandle[ arr[ i ] ] = handler; + Expr.attrHandle[ arr[i] ] = handler; } } @@ -980,7 +927,7 @@ function siblingCheck( a, b ) { // Check if b follows a if ( cur ) { - while ( ( cur = cur.nextSibling ) ) { + while ( (cur = cur.nextSibling) ) { if ( cur === b ) { return -1; } @@ -1008,7 +955,7 @@ function createInputPseudo( type ) { function createButtonPseudo( type ) { return function( elem ) { var name = elem.nodeName.toLowerCase(); - return ( name === "input" || name === "button" ) && elem.type === type; + return (name === "input" || name === "button") && elem.type === type; }; } @@ -1051,7 +998,7 @@ function createDisabledPseudo( disabled ) { // Where there is no isDisabled, check manually /* jshint -W018 */ elem.isDisabled !== !disabled && - inDisabledFieldset( elem ) === disabled; + disabledAncestor( elem ) === disabled; } return elem.disabled === disabled; @@ -1073,21 +1020,21 @@ function createDisabledPseudo( disabled ) { * @param {Function} fn */ function createPositionalPseudo( fn ) { - return markFunction( function( argument ) { + return markFunction(function( argument ) { argument = +argument; - return markFunction( function( seed, matches ) { + return markFunction(function( seed, matches ) { var j, matchIndexes = fn( [], seed.length, argument ), i = matchIndexes.length; // Match elements found at the specified indexes while ( i-- ) { - if ( seed[ ( j = matchIndexes[ i ] ) ] ) { - seed[ j ] = !( matches[ j ] = seed[ j ] ); + if ( seed[ (j = matchIndexes[i]) ] ) { + seed[j] = !(matches[j] = seed[j]); } } - } ); - } ); + }); + }); } /** @@ -1108,13 +1055,10 @@ support = Sizzle.support = {}; * @returns {Boolean} True iff elem is a non-HTML XML node */ isXML = Sizzle.isXML = function( elem ) { - var namespace = elem.namespaceURI, - docElem = ( elem.ownerDocument || elem ).documentElement; - - // Support: IE <=8 - // Assume HTML when documentElement doesn't yet exist, such as inside loading iframes - // https://bugs.jquery.com/ticket/4833 - return !rhtml.test( namespace || docElem && docElem.nodeName || "HTML" ); + // documentElement is verified for cases where it doesn't yet exist + // (such as loading iframes in IE - #4833) + var documentElement = elem && (elem.ownerDocument || elem).documentElement; + return documentElement ? documentElement.nodeName !== "HTML" : false; }; /** @@ -1127,11 +1071,7 @@ setDocument = Sizzle.setDocument = function( node ) { doc = node ? node.ownerDocument || node : preferredDoc; // Return early if doc is invalid or already selected - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( doc == document || doc.nodeType !== 9 || !doc.documentElement ) { + if ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) { return document; } @@ -1140,14 +1080,10 @@ setDocument = Sizzle.setDocument = function( node ) { docElem = document.documentElement; documentIsHTML = !isXML( document ); - // Support: IE 9 - 11+, Edge 12 - 18+ + // Support: IE 9-11, Edge // Accessing iframe documents after unload throws "permission denied" errors (jQuery #13936) - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( preferredDoc != document && - ( subWindow = document.defaultView ) && subWindow.top !== subWindow ) { + if ( preferredDoc !== document && + (subWindow = document.defaultView) && subWindow.top !== subWindow ) { // Support: IE 11, Edge if ( subWindow.addEventListener ) { @@ -1159,36 +1095,25 @@ setDocument = Sizzle.setDocument = function( node ) { } } - // Support: IE 8 - 11+, Edge 12 - 18+, Chrome <=16 - 25 only, Firefox <=3.6 - 31 only, - // Safari 4 - 5 only, Opera <=11.6 - 12.x only - // IE/Edge & older browsers don't support the :scope pseudo-class. - // Support: Safari 6.0 only - // Safari 6.0 supports :scope but it's an alias of :root there. - support.scope = assert( function( el ) { - docElem.appendChild( el ).appendChild( document.createElement( "div" ) ); - return typeof el.querySelectorAll !== "undefined" && - !el.querySelectorAll( ":scope fieldset div" ).length; - } ); - /* Attributes ---------------------------------------------------------------------- */ // Support: IE<8 // Verify that getAttribute really returns attributes and not properties // (excepting IE8 booleans) - support.attributes = assert( function( el ) { + support.attributes = assert(function( el ) { el.className = "i"; - return !el.getAttribute( "className" ); - } ); + return !el.getAttribute("className"); + }); /* getElement(s)By* ---------------------------------------------------------------------- */ // Check if getElementsByTagName("*") returns only elements - support.getElementsByTagName = assert( function( el ) { - el.appendChild( document.createComment( "" ) ); - return !el.getElementsByTagName( "*" ).length; - } ); + support.getElementsByTagName = assert(function( el ) { + el.appendChild( document.createComment("") ); + return !el.getElementsByTagName("*").length; + }); // Support: IE<9 support.getElementsByClassName = rnative.test( document.getElementsByClassName ); @@ -1197,38 +1122,38 @@ setDocument = Sizzle.setDocument = function( node ) { // Check if getElementById returns elements by name // The broken getElementById methods don't pick up programmatically-set names, // so use a roundabout getElementsByName test - support.getById = assert( function( el ) { + support.getById = assert(function( el ) { docElem.appendChild( el ).id = expando; return !document.getElementsByName || !document.getElementsByName( expando ).length; - } ); + }); // ID filter and find if ( support.getById ) { - Expr.filter[ "ID" ] = function( id ) { + Expr.filter["ID"] = function( id ) { var attrId = id.replace( runescape, funescape ); return function( elem ) { - return elem.getAttribute( "id" ) === attrId; + return elem.getAttribute("id") === attrId; }; }; - Expr.find[ "ID" ] = function( id, context ) { + Expr.find["ID"] = function( id, context ) { if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { var elem = context.getElementById( id ); return elem ? [ elem ] : []; } }; } else { - Expr.filter[ "ID" ] = function( id ) { + Expr.filter["ID"] = function( id ) { var attrId = id.replace( runescape, funescape ); return function( elem ) { var node = typeof elem.getAttributeNode !== "undefined" && - elem.getAttributeNode( "id" ); + elem.getAttributeNode("id"); return node && node.value === attrId; }; }; // Support: IE 6 - 7 only // getElementById is not reliable as a find shortcut - Expr.find[ "ID" ] = function( id, context ) { + Expr.find["ID"] = function( id, context ) { if ( typeof context.getElementById !== "undefined" && documentIsHTML ) { var node, i, elems, elem = context.getElementById( id ); @@ -1236,7 +1161,7 @@ setDocument = Sizzle.setDocument = function( node ) { if ( elem ) { // Verify the id attribute - node = elem.getAttributeNode( "id" ); + node = elem.getAttributeNode("id"); if ( node && node.value === id ) { return [ elem ]; } @@ -1244,8 +1169,8 @@ setDocument = Sizzle.setDocument = function( node ) { // Fall back on getElementsByName elems = context.getElementsByName( id ); i = 0; - while ( ( elem = elems[ i++ ] ) ) { - node = elem.getAttributeNode( "id" ); + while ( (elem = elems[i++]) ) { + node = elem.getAttributeNode("id"); if ( node && node.value === id ) { return [ elem ]; } @@ -1258,7 +1183,7 @@ setDocument = Sizzle.setDocument = function( node ) { } // Tag - Expr.find[ "TAG" ] = support.getElementsByTagName ? + Expr.find["TAG"] = support.getElementsByTagName ? function( tag, context ) { if ( typeof context.getElementsByTagName !== "undefined" ) { return context.getElementsByTagName( tag ); @@ -1273,13 +1198,12 @@ setDocument = Sizzle.setDocument = function( node ) { var elem, tmp = [], i = 0, - // By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too results = context.getElementsByTagName( tag ); // Filter out possible comments if ( tag === "*" ) { - while ( ( elem = results[ i++ ] ) ) { + while ( (elem = results[i++]) ) { if ( elem.nodeType === 1 ) { tmp.push( elem ); } @@ -1291,7 +1215,7 @@ setDocument = Sizzle.setDocument = function( node ) { }; // Class - Expr.find[ "CLASS" ] = support.getElementsByClassName && function( className, context ) { + Expr.find["CLASS"] = support.getElementsByClassName && function( className, context ) { if ( typeof context.getElementsByClassName !== "undefined" && documentIsHTML ) { return context.getElementsByClassName( className ); } @@ -1312,14 +1236,10 @@ setDocument = Sizzle.setDocument = function( node ) { // See https://bugs.jquery.com/ticket/13378 rbuggyQSA = []; - if ( ( support.qsa = rnative.test( document.querySelectorAll ) ) ) { - + if ( (support.qsa = rnative.test( document.querySelectorAll )) ) { // Build QSA regex // Regex strategy adopted from Diego Perini - assert( function( el ) { - - var input; - + assert(function( el ) { // Select is set to empty string on purpose // This is to test IE's treatment of not explicitly // setting a boolean content attribute, @@ -1333,98 +1253,78 @@ setDocument = Sizzle.setDocument = function( node ) { // Nothing should be selected when empty strings follow ^= or $= or *= // The test attribute must be unknown in Opera but "safe" for WinRT // https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section - if ( el.querySelectorAll( "[msallowcapture^='']" ).length ) { + if ( el.querySelectorAll("[msallowcapture^='']").length ) { rbuggyQSA.push( "[*^$]=" + whitespace + "*(?:''|\"\")" ); } // Support: IE8 // Boolean attributes and "value" are not treated correctly - if ( !el.querySelectorAll( "[selected]" ).length ) { + if ( !el.querySelectorAll("[selected]").length ) { rbuggyQSA.push( "\\[" + whitespace + "*(?:value|" + booleans + ")" ); } // Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+ if ( !el.querySelectorAll( "[id~=" + expando + "-]" ).length ) { - rbuggyQSA.push( "~=" ); - } - - // Support: IE 11+, Edge 15 - 18+ - // IE 11/Edge don't find elements on a `[name='']` query in some cases. - // Adding a temporary attribute to the document before the selection works - // around the issue. - // Interestingly, IE 10 & older don't seem to have the issue. - input = document.createElement( "input" ); - input.setAttribute( "name", "" ); - el.appendChild( input ); - if ( !el.querySelectorAll( "[name='']" ).length ) { - rbuggyQSA.push( "\\[" + whitespace + "*name" + whitespace + "*=" + - whitespace + "*(?:''|\"\")" ); + rbuggyQSA.push("~="); } // Webkit/Opera - :checked should return selected option elements // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked // IE8 throws error here and will not see later tests - if ( !el.querySelectorAll( ":checked" ).length ) { - rbuggyQSA.push( ":checked" ); + if ( !el.querySelectorAll(":checked").length ) { + rbuggyQSA.push(":checked"); } // Support: Safari 8+, iOS 8+ // https://bugs.webkit.org/show_bug.cgi?id=136851 // In-page `selector#id sibling-combinator selector` fails if ( !el.querySelectorAll( "a#" + expando + "+*" ).length ) { - rbuggyQSA.push( ".#.+[+~]" ); + rbuggyQSA.push(".#.+[+~]"); } + }); - // Support: Firefox <=3.6 - 5 only - // Old Firefox doesn't throw on a badly-escaped identifier. - el.querySelectorAll( "\\\f" ); - rbuggyQSA.push( "[\\r\\n\\f]" ); - } ); - - assert( function( el ) { + assert(function( el ) { el.innerHTML = "" + ""; // Support: Windows 8 Native Apps // The type and name attributes are restricted during .innerHTML assignment - var input = document.createElement( "input" ); + var input = document.createElement("input"); input.setAttribute( "type", "hidden" ); el.appendChild( input ).setAttribute( "name", "D" ); // Support: IE8 // Enforce case-sensitivity of name attribute - if ( el.querySelectorAll( "[name=d]" ).length ) { + if ( el.querySelectorAll("[name=d]").length ) { rbuggyQSA.push( "name" + whitespace + "*[*^$|!~]?=" ); } // FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled) // IE8 throws error here and will not see later tests - if ( el.querySelectorAll( ":enabled" ).length !== 2 ) { + if ( el.querySelectorAll(":enabled").length !== 2 ) { rbuggyQSA.push( ":enabled", ":disabled" ); } // Support: IE9-11+ // IE's :disabled selector does not pick up the children of disabled fieldsets docElem.appendChild( el ).disabled = true; - if ( el.querySelectorAll( ":disabled" ).length !== 2 ) { + if ( el.querySelectorAll(":disabled").length !== 2 ) { rbuggyQSA.push( ":enabled", ":disabled" ); } - // Support: Opera 10 - 11 only // Opera 10-11 does not throw on post-comma invalid pseudos - el.querySelectorAll( "*,:x" ); - rbuggyQSA.push( ",.*:" ); - } ); + el.querySelectorAll("*,:x"); + rbuggyQSA.push(",.*:"); + }); } - if ( ( support.matchesSelector = rnative.test( ( matches = docElem.matches || + if ( (support.matchesSelector = rnative.test( (matches = docElem.matches || docElem.webkitMatchesSelector || docElem.mozMatchesSelector || docElem.oMatchesSelector || - docElem.msMatchesSelector ) ) ) ) { - - assert( function( el ) { + docElem.msMatchesSelector) )) ) { + assert(function( el ) { // Check to see if it's possible to do matchesSelector // on a disconnected node (IE 9) support.disconnectedMatch = matches.call( el, "*" ); @@ -1433,11 +1333,11 @@ setDocument = Sizzle.setDocument = function( node ) { // Gecko does not error, returns false instead matches.call( el, "[s!='']:x" ); rbuggyMatches.push( "!=", pseudos ); - } ); + }); } - rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join( "|" ) ); - rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join( "|" ) ); + rbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join("|") ); + rbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join("|") ); /* Contains ---------------------------------------------------------------------- */ @@ -1454,11 +1354,11 @@ setDocument = Sizzle.setDocument = function( node ) { adown.contains ? adown.contains( bup ) : a.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16 - ) ); + )); } : function( a, b ) { if ( b ) { - while ( ( b = b.parentNode ) ) { + while ( (b = b.parentNode) ) { if ( b === a ) { return true; } @@ -1487,11 +1387,7 @@ setDocument = Sizzle.setDocument = function( node ) { } // Calculate position if both inputs belong to the same document - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - compare = ( a.ownerDocument || a ) == ( b.ownerDocument || b ) ? + compare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ? a.compareDocumentPosition( b ) : // Otherwise we know they are disconnected @@ -1499,24 +1395,13 @@ setDocument = Sizzle.setDocument = function( node ) { // Disconnected nodes if ( compare & 1 || - ( !support.sortDetached && b.compareDocumentPosition( a ) === compare ) ) { + (!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) { // Choose the first element that is related to our preferred document - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( a == document || a.ownerDocument == preferredDoc && - contains( preferredDoc, a ) ) { + if ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) { return -1; } - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( b == document || b.ownerDocument == preferredDoc && - contains( preferredDoc, b ) ) { + if ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) { return 1; } @@ -1529,7 +1414,6 @@ setDocument = Sizzle.setDocument = function( node ) { return compare & 4 ? -1 : 1; } : function( a, b ) { - // Exit early if the nodes are identical if ( a === b ) { hasDuplicate = true; @@ -1545,14 +1429,8 @@ setDocument = Sizzle.setDocument = function( node ) { // Parentless nodes are either documents or disconnected if ( !aup || !bup ) { - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - /* eslint-disable eqeqeq */ - return a == document ? -1 : - b == document ? 1 : - /* eslint-enable eqeqeq */ + return a === document ? -1 : + b === document ? 1 : aup ? -1 : bup ? 1 : sortInput ? @@ -1566,32 +1444,26 @@ setDocument = Sizzle.setDocument = function( node ) { // Otherwise we need full lists of their ancestors for comparison cur = a; - while ( ( cur = cur.parentNode ) ) { + while ( (cur = cur.parentNode) ) { ap.unshift( cur ); } cur = b; - while ( ( cur = cur.parentNode ) ) { + while ( (cur = cur.parentNode) ) { bp.unshift( cur ); } // Walk down the tree looking for a discrepancy - while ( ap[ i ] === bp[ i ] ) { + while ( ap[i] === bp[i] ) { i++; } return i ? - // Do a sibling check if the nodes have a common ancestor - siblingCheck( ap[ i ], bp[ i ] ) : + siblingCheck( ap[i], bp[i] ) : // Otherwise nodes in our document sort first - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - /* eslint-disable eqeqeq */ - ap[ i ] == preferredDoc ? -1 : - bp[ i ] == preferredDoc ? 1 : - /* eslint-enable eqeqeq */ + ap[i] === preferredDoc ? -1 : + bp[i] === preferredDoc ? 1 : 0; }; @@ -1603,10 +1475,16 @@ Sizzle.matches = function( expr, elements ) { }; Sizzle.matchesSelector = function( elem, expr ) { - setDocument( elem ); + // Set document vars if needed + if ( ( elem.ownerDocument || elem ) !== document ) { + setDocument( elem ); + } + + // Make sure that attribute selectors are quoted + expr = expr.replace( rattributeQuotes, "='$1']" ); if ( support.matchesSelector && documentIsHTML && - !nonnativeSelectorCache[ expr + " " ] && + !compilerCache[ expr + " " ] && ( !rbuggyMatches || !rbuggyMatches.test( expr ) ) && ( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) { @@ -1615,46 +1493,32 @@ Sizzle.matchesSelector = function( elem, expr ) { // IE 9's matchesSelector returns false on disconnected nodes if ( ret || support.disconnectedMatch || - - // As well, disconnected nodes are said to be in a document - // fragment in IE 9 - elem.document && elem.document.nodeType !== 11 ) { + // As well, disconnected nodes are said to be in a document + // fragment in IE 9 + elem.document && elem.document.nodeType !== 11 ) { return ret; } - } catch ( e ) { - nonnativeSelectorCache( expr, true ); - } + } catch (e) {} } return Sizzle( expr, document, null, [ elem ] ).length > 0; }; Sizzle.contains = function( context, elem ) { - // Set document vars if needed - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( ( context.ownerDocument || context ) != document ) { + if ( ( context.ownerDocument || context ) !== document ) { setDocument( context ); } return contains( context, elem ); }; Sizzle.attr = function( elem, name ) { - // Set document vars if needed - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( ( elem.ownerDocument || elem ) != document ) { + if ( ( elem.ownerDocument || elem ) !== document ) { setDocument( elem ); } var fn = Expr.attrHandle[ name.toLowerCase() ], - // Don't get fooled by Object.prototype properties (jQuery #13807) val = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ? fn( elem, name, !documentIsHTML ) : @@ -1664,13 +1528,13 @@ Sizzle.attr = function( elem, name ) { val : support.attributes || !documentIsHTML ? elem.getAttribute( name ) : - ( val = elem.getAttributeNode( name ) ) && val.specified ? + (val = elem.getAttributeNode(name)) && val.specified ? val.value : null; }; Sizzle.escape = function( sel ) { - return ( sel + "" ).replace( rcssescape, fcssescape ); + return (sel + "").replace( rcssescape, fcssescape ); }; Sizzle.error = function( msg ) { @@ -1693,7 +1557,7 @@ Sizzle.uniqueSort = function( results ) { results.sort( sortOrder ); if ( hasDuplicate ) { - while ( ( elem = results[ i++ ] ) ) { + while ( (elem = results[i++]) ) { if ( elem === results[ i ] ) { j = duplicates.push( i ); } @@ -1721,21 +1585,17 @@ getText = Sizzle.getText = function( elem ) { nodeType = elem.nodeType; if ( !nodeType ) { - // If no nodeType, this is expected to be an array - while ( ( node = elem[ i++ ] ) ) { - + while ( (node = elem[i++]) ) { // Do not traverse comment nodes ret += getText( node ); } } else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) { - // Use textContent for elements // innerText usage removed for consistency of new lines (jQuery #11153) if ( typeof elem.textContent === "string" ) { return elem.textContent; } else { - // Traverse its children for ( elem = elem.firstChild; elem; elem = elem.nextSibling ) { ret += getText( elem ); @@ -1744,7 +1604,6 @@ getText = Sizzle.getText = function( elem ) { } else if ( nodeType === 3 || nodeType === 4 ) { return elem.nodeValue; } - // Do not include comment or processing instruction nodes return ret; @@ -1772,21 +1631,19 @@ Expr = Sizzle.selectors = { preFilter: { "ATTR": function( match ) { - match[ 1 ] = match[ 1 ].replace( runescape, funescape ); + match[1] = match[1].replace( runescape, funescape ); // Move the given value to match[3] whether quoted or unquoted - match[ 3 ] = ( match[ 3 ] || match[ 4 ] || - match[ 5 ] || "" ).replace( runescape, funescape ); + match[3] = ( match[3] || match[4] || match[5] || "" ).replace( runescape, funescape ); - if ( match[ 2 ] === "~=" ) { - match[ 3 ] = " " + match[ 3 ] + " "; + if ( match[2] === "~=" ) { + match[3] = " " + match[3] + " "; } return match.slice( 0, 4 ); }, "CHILD": function( match ) { - /* matches from matchExpr["CHILD"] 1 type (only|nth|...) 2 what (child|of-type) @@ -1797,25 +1654,22 @@ Expr = Sizzle.selectors = { 7 sign of y-component 8 y of y-component */ - match[ 1 ] = match[ 1 ].toLowerCase(); - - if ( match[ 1 ].slice( 0, 3 ) === "nth" ) { + match[1] = match[1].toLowerCase(); + if ( match[1].slice( 0, 3 ) === "nth" ) { // nth-* requires argument - if ( !match[ 3 ] ) { - Sizzle.error( match[ 0 ] ); + if ( !match[3] ) { + Sizzle.error( match[0] ); } // numeric x and y parameters for Expr.filter.CHILD // remember that false/true cast respectively to 0/1 - match[ 4 ] = +( match[ 4 ] ? - match[ 5 ] + ( match[ 6 ] || 1 ) : - 2 * ( match[ 3 ] === "even" || match[ 3 ] === "odd" ) ); - match[ 5 ] = +( ( match[ 7 ] + match[ 8 ] ) || match[ 3 ] === "odd" ); + match[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === "even" || match[3] === "odd" ) ); + match[5] = +( ( match[7] + match[8] ) || match[3] === "odd" ); - // other types prohibit arguments - } else if ( match[ 3 ] ) { - Sizzle.error( match[ 0 ] ); + // other types prohibit arguments + } else if ( match[3] ) { + Sizzle.error( match[0] ); } return match; @@ -1823,28 +1677,26 @@ Expr = Sizzle.selectors = { "PSEUDO": function( match ) { var excess, - unquoted = !match[ 6 ] && match[ 2 ]; + unquoted = !match[6] && match[2]; - if ( matchExpr[ "CHILD" ].test( match[ 0 ] ) ) { + if ( matchExpr["CHILD"].test( match[0] ) ) { return null; } // Accept quoted arguments as-is - if ( match[ 3 ] ) { - match[ 2 ] = match[ 4 ] || match[ 5 ] || ""; + if ( match[3] ) { + match[2] = match[4] || match[5] || ""; // Strip excess characters from unquoted arguments } else if ( unquoted && rpseudo.test( unquoted ) && - // Get excess from tokenize (recursively) - ( excess = tokenize( unquoted, true ) ) && - + (excess = tokenize( unquoted, true )) && // advance to the next closing parenthesis - ( excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length ) ) { + (excess = unquoted.indexOf( ")", unquoted.length - excess ) - unquoted.length) ) { // excess is a negative index - match[ 0 ] = match[ 0 ].slice( 0, excess ); - match[ 2 ] = unquoted.slice( 0, excess ); + match[0] = match[0].slice( 0, excess ); + match[2] = unquoted.slice( 0, excess ); } // Return only captures needed by the pseudo filter method (type and argument) @@ -1857,9 +1709,7 @@ Expr = Sizzle.selectors = { "TAG": function( nodeNameSelector ) { var nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase(); return nodeNameSelector === "*" ? - function() { - return true; - } : + function() { return true; } : function( elem ) { return elem.nodeName && elem.nodeName.toLowerCase() === nodeName; }; @@ -1869,16 +1719,10 @@ Expr = Sizzle.selectors = { var pattern = classCache[ className + " " ]; return pattern || - ( pattern = new RegExp( "(^|" + whitespace + - ")" + className + "(" + whitespace + "|$)" ) ) && classCache( - className, function( elem ) { - return pattern.test( - typeof elem.className === "string" && elem.className || - typeof elem.getAttribute !== "undefined" && - elem.getAttribute( "class" ) || - "" - ); - } ); + (pattern = new RegExp( "(^|" + whitespace + ")" + className + "(" + whitespace + "|$)" )) && + classCache( className, function( elem ) { + return pattern.test( typeof elem.className === "string" && elem.className || typeof elem.getAttribute !== "undefined" && elem.getAttribute("class") || "" ); + }); }, "ATTR": function( name, operator, check ) { @@ -1894,8 +1738,6 @@ Expr = Sizzle.selectors = { result += ""; - /* eslint-disable max-len */ - return operator === "=" ? result === check : operator === "!=" ? result !== check : operator === "^=" ? check && result.indexOf( check ) === 0 : @@ -1904,12 +1746,10 @@ Expr = Sizzle.selectors = { operator === "~=" ? ( " " + result.replace( rwhitespace, " " ) + " " ).indexOf( check ) > -1 : operator === "|=" ? result === check || result.slice( 0, check.length + 1 ) === check + "-" : false; - /* eslint-enable max-len */ - }; }, - "CHILD": function( type, what, _argument, first, last ) { + "CHILD": function( type, what, argument, first, last ) { var simple = type.slice( 0, 3 ) !== "nth", forward = type.slice( -4 ) !== "last", ofType = what === "of-type"; @@ -1921,7 +1761,7 @@ Expr = Sizzle.selectors = { return !!elem.parentNode; } : - function( elem, _context, xml ) { + function( elem, context, xml ) { var cache, uniqueCache, outerCache, node, nodeIndex, start, dir = simple !== forward ? "nextSibling" : "previousSibling", parent = elem.parentNode, @@ -1935,7 +1775,7 @@ Expr = Sizzle.selectors = { if ( simple ) { while ( dir ) { node = elem; - while ( ( node = node[ dir ] ) ) { + while ( (node = node[ dir ]) ) { if ( ofType ? node.nodeName.toLowerCase() === name : node.nodeType === 1 ) { @@ -1943,7 +1783,6 @@ Expr = Sizzle.selectors = { return false; } } - // Reverse direction for :only-* (if we haven't yet done so) start = dir = type === "only" && !start && "nextSibling"; } @@ -1959,22 +1798,22 @@ Expr = Sizzle.selectors = { // ...in a gzip-friendly way node = parent; - outerCache = node[ expando ] || ( node[ expando ] = {} ); + outerCache = node[ expando ] || (node[ expando ] = {}); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ node.uniqueID ] || - ( outerCache[ node.uniqueID ] = {} ); + (outerCache[ node.uniqueID ] = {}); cache = uniqueCache[ type ] || []; nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; diff = nodeIndex && cache[ 2 ]; node = nodeIndex && parent.childNodes[ nodeIndex ]; - while ( ( node = ++nodeIndex && node && node[ dir ] || + while ( (node = ++nodeIndex && node && node[ dir ] || // Fallback to seeking `elem` from the start - ( diff = nodeIndex = 0 ) || start.pop() ) ) { + (diff = nodeIndex = 0) || start.pop()) ) { // When found, cache indexes on `parent` and break if ( node.nodeType === 1 && ++diff && node === elem ) { @@ -1984,18 +1823,16 @@ Expr = Sizzle.selectors = { } } else { - // Use previously-cached element index if available if ( useCache ) { - // ...in a gzip-friendly way node = elem; - outerCache = node[ expando ] || ( node[ expando ] = {} ); + outerCache = node[ expando ] || (node[ expando ] = {}); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ node.uniqueID ] || - ( outerCache[ node.uniqueID ] = {} ); + (outerCache[ node.uniqueID ] = {}); cache = uniqueCache[ type ] || []; nodeIndex = cache[ 0 ] === dirruns && cache[ 1 ]; @@ -2005,10 +1842,9 @@ Expr = Sizzle.selectors = { // xml :nth-child(...) // or :nth-last-child(...) or :nth(-last)?-of-type(...) if ( diff === false ) { - // Use the same loop as above to seek `elem` from the start - while ( ( node = ++nodeIndex && node && node[ dir ] || - ( diff = nodeIndex = 0 ) || start.pop() ) ) { + while ( (node = ++nodeIndex && node && node[ dir ] || + (diff = nodeIndex = 0) || start.pop()) ) { if ( ( ofType ? node.nodeName.toLowerCase() === name : @@ -2017,13 +1853,12 @@ Expr = Sizzle.selectors = { // Cache the index of each encountered element if ( useCache ) { - outerCache = node[ expando ] || - ( node[ expando ] = {} ); + outerCache = node[ expando ] || (node[ expando ] = {}); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) uniqueCache = outerCache[ node.uniqueID ] || - ( outerCache[ node.uniqueID ] = {} ); + (outerCache[ node.uniqueID ] = {}); uniqueCache[ type ] = [ dirruns, diff ]; } @@ -2044,7 +1879,6 @@ Expr = Sizzle.selectors = { }, "PSEUDO": function( pseudo, argument ) { - // pseudo-class names are case-insensitive // http://www.w3.org/TR/selectors/#pseudo-classes // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters @@ -2064,15 +1898,15 @@ Expr = Sizzle.selectors = { if ( fn.length > 1 ) { args = [ pseudo, pseudo, "", argument ]; return Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ? - markFunction( function( seed, matches ) { + markFunction(function( seed, matches ) { var idx, matched = fn( seed, argument ), i = matched.length; while ( i-- ) { - idx = indexOf( seed, matched[ i ] ); - seed[ idx ] = !( matches[ idx ] = matched[ i ] ); + idx = indexOf( seed, matched[i] ); + seed[ idx ] = !( matches[ idx ] = matched[i] ); } - } ) : + }) : function( elem ) { return fn( elem, 0, args ); }; @@ -2083,10 +1917,8 @@ Expr = Sizzle.selectors = { }, pseudos: { - // Potentially complex pseudos - "not": markFunction( function( selector ) { - + "not": markFunction(function( selector ) { // Trim the selector passed to compile // to avoid treating leading and trailing // spaces as combinators @@ -2095,40 +1927,39 @@ Expr = Sizzle.selectors = { matcher = compile( selector.replace( rtrim, "$1" ) ); return matcher[ expando ] ? - markFunction( function( seed, matches, _context, xml ) { + markFunction(function( seed, matches, context, xml ) { var elem, unmatched = matcher( seed, null, xml, [] ), i = seed.length; // Match elements unmatched by `matcher` while ( i-- ) { - if ( ( elem = unmatched[ i ] ) ) { - seed[ i ] = !( matches[ i ] = elem ); + if ( (elem = unmatched[i]) ) { + seed[i] = !(matches[i] = elem); } } - } ) : - function( elem, _context, xml ) { - input[ 0 ] = elem; + }) : + function( elem, context, xml ) { + input[0] = elem; matcher( input, null, xml, results ); - // Don't keep the element (issue #299) - input[ 0 ] = null; + input[0] = null; return !results.pop(); }; - } ), + }), - "has": markFunction( function( selector ) { + "has": markFunction(function( selector ) { return function( elem ) { return Sizzle( selector, elem ).length > 0; }; - } ), + }), - "contains": markFunction( function( text ) { + "contains": markFunction(function( text ) { text = text.replace( runescape, funescape ); return function( elem ) { - return ( elem.textContent || getText( elem ) ).indexOf( text ) > -1; + return ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1; }; - } ), + }), // "Whether an element is represented by a :lang() selector // is based solely on the element's language value @@ -2138,26 +1969,25 @@ Expr = Sizzle.selectors = { // The identifier C does not have to be a valid language name." // http://www.w3.org/TR/selectors/#lang-pseudo "lang": markFunction( function( lang ) { - // lang value must be a valid identifier - if ( !ridentifier.test( lang || "" ) ) { + if ( !ridentifier.test(lang || "") ) { Sizzle.error( "unsupported lang: " + lang ); } lang = lang.replace( runescape, funescape ).toLowerCase(); return function( elem ) { var elemLang; do { - if ( ( elemLang = documentIsHTML ? + if ( (elemLang = documentIsHTML ? elem.lang : - elem.getAttribute( "xml:lang" ) || elem.getAttribute( "lang" ) ) ) { + elem.getAttribute("xml:lang") || elem.getAttribute("lang")) ) { elemLang = elemLang.toLowerCase(); return elemLang === lang || elemLang.indexOf( lang + "-" ) === 0; } - } while ( ( elem = elem.parentNode ) && elem.nodeType === 1 ); + } while ( (elem = elem.parentNode) && elem.nodeType === 1 ); return false; }; - } ), + }), // Miscellaneous "target": function( elem ) { @@ -2170,9 +2000,7 @@ Expr = Sizzle.selectors = { }, "focus": function( elem ) { - return elem === document.activeElement && - ( !document.hasFocus || document.hasFocus() ) && - !!( elem.type || elem.href || ~elem.tabIndex ); + return elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex); }, // Boolean properties @@ -2180,20 +2008,16 @@ Expr = Sizzle.selectors = { "disabled": createDisabledPseudo( true ), "checked": function( elem ) { - // In CSS3, :checked should return both checked and selected elements // http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked var nodeName = elem.nodeName.toLowerCase(); - return ( nodeName === "input" && !!elem.checked ) || - ( nodeName === "option" && !!elem.selected ); + return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); }, "selected": function( elem ) { - // Accessing this property makes selected-by-default // options in Safari work properly if ( elem.parentNode ) { - // eslint-disable-next-line no-unused-expressions elem.parentNode.selectedIndex; } @@ -2202,7 +2026,6 @@ Expr = Sizzle.selectors = { // Contents "empty": function( elem ) { - // http://www.w3.org/TR/selectors/#empty-pseudo // :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5), // but not by others (comment: 8; processing instruction: 7; etc.) @@ -2216,7 +2039,7 @@ Expr = Sizzle.selectors = { }, "parent": function( elem ) { - return !Expr.pseudos[ "empty" ]( elem ); + return !Expr.pseudos["empty"]( elem ); }, // Element/input types @@ -2240,62 +2063,57 @@ Expr = Sizzle.selectors = { // Support: IE<8 // New HTML5 attribute values (e.g., "search") appear with elem.type === "text" - ( ( attr = elem.getAttribute( "type" ) ) == null || - attr.toLowerCase() === "text" ); + ( (attr = elem.getAttribute("type")) == null || attr.toLowerCase() === "text" ); }, // Position-in-collection - "first": createPositionalPseudo( function() { + "first": createPositionalPseudo(function() { return [ 0 ]; - } ), + }), - "last": createPositionalPseudo( function( _matchIndexes, length ) { + "last": createPositionalPseudo(function( matchIndexes, length ) { return [ length - 1 ]; - } ), + }), - "eq": createPositionalPseudo( function( _matchIndexes, length, argument ) { + "eq": createPositionalPseudo(function( matchIndexes, length, argument ) { return [ argument < 0 ? argument + length : argument ]; - } ), + }), - "even": createPositionalPseudo( function( matchIndexes, length ) { + "even": createPositionalPseudo(function( matchIndexes, length ) { var i = 0; for ( ; i < length; i += 2 ) { matchIndexes.push( i ); } return matchIndexes; - } ), + }), - "odd": createPositionalPseudo( function( matchIndexes, length ) { + "odd": createPositionalPseudo(function( matchIndexes, length ) { var i = 1; for ( ; i < length; i += 2 ) { matchIndexes.push( i ); } return matchIndexes; - } ), + }), - "lt": createPositionalPseudo( function( matchIndexes, length, argument ) { - var i = argument < 0 ? - argument + length : - argument > length ? - length : - argument; + "lt": createPositionalPseudo(function( matchIndexes, length, argument ) { + var i = argument < 0 ? argument + length : argument; for ( ; --i >= 0; ) { matchIndexes.push( i ); } return matchIndexes; - } ), + }), - "gt": createPositionalPseudo( function( matchIndexes, length, argument ) { + "gt": createPositionalPseudo(function( matchIndexes, length, argument ) { var i = argument < 0 ? argument + length : argument; for ( ; ++i < length; ) { matchIndexes.push( i ); } return matchIndexes; - } ) + }) } }; -Expr.pseudos[ "nth" ] = Expr.pseudos[ "eq" ]; +Expr.pseudos["nth"] = Expr.pseudos["eq"]; // Add button/input type pseudos for ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) { @@ -2326,39 +2144,37 @@ tokenize = Sizzle.tokenize = function( selector, parseOnly ) { while ( soFar ) { // Comma and first run - if ( !matched || ( match = rcomma.exec( soFar ) ) ) { + if ( !matched || (match = rcomma.exec( soFar )) ) { if ( match ) { - // Don't consume trailing commas as valid - soFar = soFar.slice( match[ 0 ].length ) || soFar; + soFar = soFar.slice( match[0].length ) || soFar; } - groups.push( ( tokens = [] ) ); + groups.push( (tokens = []) ); } matched = false; // Combinators - if ( ( match = rcombinators.exec( soFar ) ) ) { + if ( (match = rcombinators.exec( soFar )) ) { matched = match.shift(); - tokens.push( { + tokens.push({ value: matched, - // Cast descendant combinators to space - type: match[ 0 ].replace( rtrim, " " ) - } ); + type: match[0].replace( rtrim, " " ) + }); soFar = soFar.slice( matched.length ); } // Filters for ( type in Expr.filter ) { - if ( ( match = matchExpr[ type ].exec( soFar ) ) && ( !preFilters[ type ] || - ( match = preFilters[ type ]( match ) ) ) ) { + if ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] || + (match = preFilters[ type ]( match ))) ) { matched = match.shift(); - tokens.push( { + tokens.push({ value: matched, type: type, matches: match - } ); + }); soFar = soFar.slice( matched.length ); } } @@ -2375,7 +2191,6 @@ tokenize = Sizzle.tokenize = function( selector, parseOnly ) { soFar.length : soFar ? Sizzle.error( selector ) : - // Cache the tokens tokenCache( selector, groups ).slice( 0 ); }; @@ -2385,7 +2200,7 @@ function toSelector( tokens ) { len = tokens.length, selector = ""; for ( ; i < len; i++ ) { - selector += tokens[ i ].value; + selector += tokens[i].value; } return selector; } @@ -2398,10 +2213,9 @@ function addCombinator( matcher, combinator, base ) { doneName = done++; return combinator.first ? - // Check against closest ancestor/preceding element function( elem, context, xml ) { - while ( ( elem = elem[ dir ] ) ) { + while ( (elem = elem[ dir ]) ) { if ( elem.nodeType === 1 || checkNonElements ) { return matcher( elem, context, xml ); } @@ -2416,7 +2230,7 @@ function addCombinator( matcher, combinator, base ) { // We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching if ( xml ) { - while ( ( elem = elem[ dir ] ) ) { + while ( (elem = elem[ dir ]) ) { if ( elem.nodeType === 1 || checkNonElements ) { if ( matcher( elem, context, xml ) ) { return true; @@ -2424,29 +2238,27 @@ function addCombinator( matcher, combinator, base ) { } } } else { - while ( ( elem = elem[ dir ] ) ) { + while ( (elem = elem[ dir ]) ) { if ( elem.nodeType === 1 || checkNonElements ) { - outerCache = elem[ expando ] || ( elem[ expando ] = {} ); + outerCache = elem[ expando ] || (elem[ expando ] = {}); // Support: IE <9 only // Defend against cloned attroperties (jQuery gh-1709) - uniqueCache = outerCache[ elem.uniqueID ] || - ( outerCache[ elem.uniqueID ] = {} ); + uniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {}); if ( skip && skip === elem.nodeName.toLowerCase() ) { elem = elem[ dir ] || elem; - } else if ( ( oldCache = uniqueCache[ key ] ) && + } else if ( (oldCache = uniqueCache[ key ]) && oldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) { // Assign to newCache so results back-propagate to previous elements - return ( newCache[ 2 ] = oldCache[ 2 ] ); + return (newCache[ 2 ] = oldCache[ 2 ]); } else { - // Reuse newcache so results back-propagate to previous elements uniqueCache[ key ] = newCache; // A match means we're done; a fail means we have to keep checking - if ( ( newCache[ 2 ] = matcher( elem, context, xml ) ) ) { + if ( (newCache[ 2 ] = matcher( elem, context, xml )) ) { return true; } } @@ -2462,20 +2274,20 @@ function elementMatcher( matchers ) { function( elem, context, xml ) { var i = matchers.length; while ( i-- ) { - if ( !matchers[ i ]( elem, context, xml ) ) { + if ( !matchers[i]( elem, context, xml ) ) { return false; } } return true; } : - matchers[ 0 ]; + matchers[0]; } function multipleContexts( selector, contexts, results ) { var i = 0, len = contexts.length; for ( ; i < len; i++ ) { - Sizzle( selector, contexts[ i ], results ); + Sizzle( selector, contexts[i], results ); } return results; } @@ -2488,7 +2300,7 @@ function condense( unmatched, map, filter, context, xml ) { mapped = map != null; for ( ; i < len; i++ ) { - if ( ( elem = unmatched[ i ] ) ) { + if ( (elem = unmatched[i]) ) { if ( !filter || filter( elem, context, xml ) ) { newUnmatched.push( elem ); if ( mapped ) { @@ -2508,18 +2320,14 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS if ( postFinder && !postFinder[ expando ] ) { postFinder = setMatcher( postFinder, postSelector ); } - return markFunction( function( seed, results, context, xml ) { + return markFunction(function( seed, results, context, xml ) { var temp, i, elem, preMap = [], postMap = [], preexisting = results.length, // Get initial elements from seed or context - elems = seed || multipleContexts( - selector || "*", - context.nodeType ? [ context ] : context, - [] - ), + elems = seed || multipleContexts( selector || "*", context.nodeType ? [ context ] : context, [] ), // Prefilter to get matcher input, preserving a map for seed-results synchronization matcherIn = preFilter && ( seed || !selector ) ? @@ -2527,7 +2335,6 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS elems, matcherOut = matcher ? - // If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results, postFinder || ( seed ? preFilter : preexisting || postFilter ) ? @@ -2551,8 +2358,8 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS // Un-match failing elements by moving them back to matcherIn i = temp.length; while ( i-- ) { - if ( ( elem = temp[ i ] ) ) { - matcherOut[ postMap[ i ] ] = !( matcherIn[ postMap[ i ] ] = elem ); + if ( (elem = temp[i]) ) { + matcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem); } } } @@ -2560,27 +2367,25 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS if ( seed ) { if ( postFinder || preFilter ) { if ( postFinder ) { - // Get the final matcherOut by condensing this intermediate into postFinder contexts temp = []; i = matcherOut.length; while ( i-- ) { - if ( ( elem = matcherOut[ i ] ) ) { - + if ( (elem = matcherOut[i]) ) { // Restore matcherIn since elem is not yet a final match - temp.push( ( matcherIn[ i ] = elem ) ); + temp.push( (matcherIn[i] = elem) ); } } - postFinder( null, ( matcherOut = [] ), temp, xml ); + postFinder( null, (matcherOut = []), temp, xml ); } // Move matched elements from seed to results to keep them synchronized i = matcherOut.length; while ( i-- ) { - if ( ( elem = matcherOut[ i ] ) && - ( temp = postFinder ? indexOf( seed, elem ) : preMap[ i ] ) > -1 ) { + if ( (elem = matcherOut[i]) && + (temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) { - seed[ temp ] = !( results[ temp ] = elem ); + seed[temp] = !(results[temp] = elem); } } } @@ -2598,14 +2403,14 @@ function setMatcher( preFilter, selector, matcher, postFilter, postFinder, postS push.apply( results, matcherOut ); } } - } ); + }); } function matcherFromTokens( tokens ) { var checkContext, matcher, j, len = tokens.length, - leadingRelative = Expr.relative[ tokens[ 0 ].type ], - implicitRelative = leadingRelative || Expr.relative[ " " ], + leadingRelative = Expr.relative[ tokens[0].type ], + implicitRelative = leadingRelative || Expr.relative[" "], i = leadingRelative ? 1 : 0, // The foundational matcher ensures that elements are reachable from top-level context(s) @@ -2617,43 +2422,38 @@ function matcherFromTokens( tokens ) { }, implicitRelative, true ), matchers = [ function( elem, context, xml ) { var ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || ( - ( checkContext = context ).nodeType ? + (checkContext = context).nodeType ? matchContext( elem, context, xml ) : matchAnyContext( elem, context, xml ) ); - // Avoid hanging onto element (issue #299) checkContext = null; return ret; } ]; for ( ; i < len; i++ ) { - if ( ( matcher = Expr.relative[ tokens[ i ].type ] ) ) { - matchers = [ addCombinator( elementMatcher( matchers ), matcher ) ]; + if ( (matcher = Expr.relative[ tokens[i].type ]) ) { + matchers = [ addCombinator(elementMatcher( matchers ), matcher) ]; } else { - matcher = Expr.filter[ tokens[ i ].type ].apply( null, tokens[ i ].matches ); + matcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches ); // Return special upon seeing a positional matcher if ( matcher[ expando ] ) { - // Find the next relative operator (if any) for proper handling j = ++i; for ( ; j < len; j++ ) { - if ( Expr.relative[ tokens[ j ].type ] ) { + if ( Expr.relative[ tokens[j].type ] ) { break; } } return setMatcher( i > 1 && elementMatcher( matchers ), i > 1 && toSelector( - - // If the preceding token was a descendant combinator, insert an implicit any-element `*` - tokens - .slice( 0, i - 1 ) - .concat( { value: tokens[ i - 2 ].type === " " ? "*" : "" } ) + // If the preceding token was a descendant combinator, insert an implicit any-element `*` + tokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === " " ? "*" : "" }) ).replace( rtrim, "$1" ), matcher, i < j && matcherFromTokens( tokens.slice( i, j ) ), - j < len && matcherFromTokens( ( tokens = tokens.slice( j ) ) ), + j < len && matcherFromTokens( (tokens = tokens.slice( j )) ), j < len && toSelector( tokens ) ); } @@ -2674,40 +2474,28 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { unmatched = seed && [], setMatched = [], contextBackup = outermostContext, - // We must always have either seed elements or outermost context - elems = seed || byElement && Expr.find[ "TAG" ]( "*", outermost ), - + elems = seed || byElement && Expr.find["TAG"]( "*", outermost ), // Use integer dirruns iff this is the outermost matcher - dirrunsUnique = ( dirruns += contextBackup == null ? 1 : Math.random() || 0.1 ), + dirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1), len = elems.length; if ( outermost ) { - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - outermostContext = context == document || context || outermost; + outermostContext = context === document || context || outermost; } // Add elements passing elementMatchers directly to results // Support: IE<9, Safari // Tolerate NodeList properties (IE: "length"; Safari: ) matching elements by id - for ( ; i !== len && ( elem = elems[ i ] ) != null; i++ ) { + for ( ; i !== len && (elem = elems[i]) != null; i++ ) { if ( byElement && elem ) { j = 0; - - // Support: IE 11+, Edge 17 - 18+ - // IE/Edge sometimes throw a "Permission denied" error when strict-comparing - // two documents; shallow comparisons work. - // eslint-disable-next-line eqeqeq - if ( !context && elem.ownerDocument != document ) { + if ( !context && elem.ownerDocument !== document ) { setDocument( elem ); xml = !documentIsHTML; } - while ( ( matcher = elementMatchers[ j++ ] ) ) { - if ( matcher( elem, context || document, xml ) ) { + while ( (matcher = elementMatchers[j++]) ) { + if ( matcher( elem, context || document, xml) ) { results.push( elem ); break; } @@ -2719,9 +2507,8 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { // Track unmatched elements for set filters if ( bySet ) { - // They will have gone through all possible matchers - if ( ( elem = !matcher && elem ) ) { + if ( (elem = !matcher && elem) ) { matchedCount--; } @@ -2745,17 +2532,16 @@ function matcherFromGroupMatchers( elementMatchers, setMatchers ) { // numerically zero. if ( bySet && i !== matchedCount ) { j = 0; - while ( ( matcher = setMatchers[ j++ ] ) ) { + while ( (matcher = setMatchers[j++]) ) { matcher( unmatched, setMatched, context, xml ); } if ( seed ) { - // Reintegrate element matches to eliminate the need for sorting if ( matchedCount > 0 ) { while ( i-- ) { - if ( !( unmatched[ i ] || setMatched[ i ] ) ) { - setMatched[ i ] = pop.call( results ); + if ( !(unmatched[i] || setMatched[i]) ) { + setMatched[i] = pop.call( results ); } } } @@ -2796,14 +2582,13 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { cached = compilerCache[ selector + " " ]; if ( !cached ) { - // Generate a function of recursive functions that can be used to check each element if ( !match ) { match = tokenize( selector ); } i = match.length; while ( i-- ) { - cached = matcherFromTokens( match[ i ] ); + cached = matcherFromTokens( match[i] ); if ( cached[ expando ] ) { setMatchers.push( cached ); } else { @@ -2812,10 +2597,7 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { } // Cache the compiled function - cached = compilerCache( - selector, - matcherFromGroupMatchers( elementMatchers, setMatchers ) - ); + cached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) ); // Save selector and tokenization cached.selector = selector; @@ -2835,7 +2617,7 @@ compile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) { select = Sizzle.select = function( selector, context, results, seed ) { var i, tokens, token, type, find, compiled = typeof selector === "function" && selector, - match = !seed && tokenize( ( selector = compiled.selector || selector ) ); + match = !seed && tokenize( (selector = compiled.selector || selector) ); results = results || []; @@ -2844,12 +2626,11 @@ select = Sizzle.select = function( selector, context, results, seed ) { if ( match.length === 1 ) { // Reduce context if the leading compound selector is an ID - tokens = match[ 0 ] = match[ 0 ].slice( 0 ); - if ( tokens.length > 2 && ( token = tokens[ 0 ] ).type === "ID" && - context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[ 1 ].type ] ) { + tokens = match[0] = match[0].slice( 0 ); + if ( tokens.length > 2 && (token = tokens[0]).type === "ID" && + context.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) { - context = ( Expr.find[ "ID" ]( token.matches[ 0 ] - .replace( runescape, funescape ), context ) || [] )[ 0 ]; + context = ( Expr.find["ID"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0]; if ( !context ) { return results; @@ -2862,22 +2643,20 @@ select = Sizzle.select = function( selector, context, results, seed ) { } // Fetch a seed set for right-to-left matching - i = matchExpr[ "needsContext" ].test( selector ) ? 0 : tokens.length; + i = matchExpr["needsContext"].test( selector ) ? 0 : tokens.length; while ( i-- ) { - token = tokens[ i ]; + token = tokens[i]; // Abort if we hit a combinator - if ( Expr.relative[ ( type = token.type ) ] ) { + if ( Expr.relative[ (type = token.type) ] ) { break; } - if ( ( find = Expr.find[ type ] ) ) { - + if ( (find = Expr.find[ type ]) ) { // Search, expanding context for leading sibling combinators - if ( ( seed = find( - token.matches[ 0 ].replace( runescape, funescape ), - rsibling.test( tokens[ 0 ].type ) && testContext( context.parentNode ) || - context - ) ) ) { + if ( (seed = find( + token.matches[0].replace( runescape, funescape ), + rsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context + )) ) { // If seed is empty or no tokens remain, we can return early tokens.splice( i, 1 ); @@ -2908,7 +2687,7 @@ select = Sizzle.select = function( selector, context, results, seed ) { // One-time assignments // Sort stability -support.sortStable = expando.split( "" ).sort( sortOrder ).join( "" ) === expando; +support.sortStable = expando.split("").sort( sortOrder ).join("") === expando; // Support: Chrome 14-35+ // Always assume duplicates if they aren't passed to the comparison function @@ -2919,59 +2698,58 @@ setDocument(); // Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27) // Detached nodes confoundingly follow *each other* -support.sortDetached = assert( function( el ) { - +support.sortDetached = assert(function( el ) { // Should return 1, but returns 4 (following) - return el.compareDocumentPosition( document.createElement( "fieldset" ) ) & 1; -} ); + return el.compareDocumentPosition( document.createElement("fieldset") ) & 1; +}); // Support: IE<8 // Prevent attribute/property "interpolation" // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx -if ( !assert( function( el ) { +if ( !assert(function( el ) { el.innerHTML = ""; - return el.firstChild.getAttribute( "href" ) === "#"; -} ) ) { + return el.firstChild.getAttribute("href") === "#" ; +}) ) { addHandle( "type|href|height|width", function( elem, name, isXML ) { if ( !isXML ) { return elem.getAttribute( name, name.toLowerCase() === "type" ? 1 : 2 ); } - } ); + }); } // Support: IE<9 // Use defaultValue in place of getAttribute("value") -if ( !support.attributes || !assert( function( el ) { +if ( !support.attributes || !assert(function( el ) { el.innerHTML = ""; el.firstChild.setAttribute( "value", "" ); return el.firstChild.getAttribute( "value" ) === ""; -} ) ) { - addHandle( "value", function( elem, _name, isXML ) { +}) ) { + addHandle( "value", function( elem, name, isXML ) { if ( !isXML && elem.nodeName.toLowerCase() === "input" ) { return elem.defaultValue; } - } ); + }); } // Support: IE<9 // Use getAttributeNode to fetch booleans when getAttribute lies -if ( !assert( function( el ) { - return el.getAttribute( "disabled" ) == null; -} ) ) { +if ( !assert(function( el ) { + return el.getAttribute("disabled") == null; +}) ) { addHandle( booleans, function( elem, name, isXML ) { var val; if ( !isXML ) { return elem[ name ] === true ? name.toLowerCase() : - ( val = elem.getAttributeNode( name ) ) && val.specified ? + (val = elem.getAttributeNode( name )) && val.specified ? val.value : - null; + null; } - } ); + }); } return Sizzle; -} )( window ); +})( window ); @@ -3340,7 +3118,7 @@ jQuery.each( { parents: function( elem ) { return dir( elem, "parentNode" ); }, - parentsUntil: function( elem, _i, until ) { + parentsUntil: function( elem, i, until ) { return dir( elem, "parentNode", until ); }, next: function( elem ) { @@ -3355,10 +3133,10 @@ jQuery.each( { prevAll: function( elem ) { return dir( elem, "previousSibling" ); }, - nextUntil: function( elem, _i, until ) { + nextUntil: function( elem, i, until ) { return dir( elem, "nextSibling", until ); }, - prevUntil: function( elem, _i, until ) { + prevUntil: function( elem, i, until ) { return dir( elem, "previousSibling", until ); }, siblings: function( elem ) { @@ -3368,24 +3146,18 @@ jQuery.each( { return siblings( elem.firstChild ); }, contents: function( elem ) { - if ( elem.contentDocument != null && - - // Support: IE 11+ - // elements with no `data` attribute has an object - // `contentDocument` with a `null` prototype. - getProto( elem.contentDocument ) ) { + if ( nodeName( elem, "iframe" ) ) { + return elem.contentDocument; + } - return elem.contentDocument; - } + // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only + // Treat the template element as a regular one in browsers that + // don't support it. + if ( nodeName( elem, "template" ) ) { + elem = elem.content || elem; + } - // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only - // Treat the template element as a regular one in browsers that - // don't support it. - if ( nodeName( elem, "template" ) ) { - elem = elem.content || elem; - } - - return jQuery.merge( [], elem.childNodes ); + return jQuery.merge( [], elem.childNodes ); } }, function( name, fn ) { jQuery.fn[ name ] = function( until, selector ) { @@ -3717,7 +3489,7 @@ jQuery.extend( { var fns = arguments; return jQuery.Deferred( function( newDefer ) { - jQuery.each( tuples, function( _i, tuple ) { + jQuery.each( tuples, function( i, tuple ) { // Map tuples (progress, done, fail) to arguments (done, fail, progress) var fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ]; @@ -4170,7 +3942,7 @@ var access = function( elems, fn, key, value, chainable, emptyGet, raw ) { // ...except when executing function values } else { bulk = fn; - fn = function( elem, _key, value ) { + fn = function( elem, key, value ) { return bulk.call( jQuery( elem ), value ); }; } @@ -4205,7 +3977,7 @@ var rmsPrefix = /^-ms-/, rdashAlpha = /-([a-z])/g; // Used by camelCase as callback to replace() -function fcamelCase( _all, letter ) { +function fcamelCase( all, letter ) { return letter.toUpperCase(); } @@ -4694,26 +4466,6 @@ var rcssNum = new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); var cssExpand = [ "Top", "Right", "Bottom", "Left" ]; -var documentElement = document.documentElement; - - - - var isAttached = function( elem ) { - return jQuery.contains( elem.ownerDocument, elem ); - }, - composed = { composed: true }; - - // Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only - // Check attachment across shadow DOM boundaries when possible (gh-3504) - // Support: iOS 10.0-10.2 only - // Early iOS 10 versions support `attachShadow` but not `getRootNode`, - // leading to errors. We need to check for `getRootNode`. - if ( documentElement.getRootNode ) { - isAttached = function( elem ) { - return jQuery.contains( elem.ownerDocument, elem ) || - elem.getRootNode( composed ) === elem.ownerDocument; - }; - } var isHiddenWithinTree = function( elem, el ) { // isHiddenWithinTree might be called from jQuery#filter function; @@ -4728,11 +4480,32 @@ var isHiddenWithinTree = function( elem, el ) { // Support: Firefox <=43 - 45 // Disconnected elements can have computed display: none, so first confirm that elem is // in the document. - isAttached( elem ) && + jQuery.contains( elem.ownerDocument, elem ) && jQuery.css( elem, "display" ) === "none"; }; +var swap = function( elem, options, callback, args ) { + var ret, name, + old = {}; + + // Remember the old values, and insert the new ones + for ( name in options ) { + old[ name ] = elem.style[ name ]; + elem.style[ name ] = options[ name ]; + } + + ret = callback.apply( elem, args || [] ); + + // Revert the old values + for ( name in options ) { + elem.style[ name ] = old[ name ]; + } + + return ret; +}; + + function adjustCSS( elem, prop, valueParts, tween ) { @@ -4749,8 +4522,7 @@ function adjustCSS( elem, prop, valueParts, tween ) { unit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? "" : "px" ), // Starting value computation is required for potential unit mismatches - initialInUnit = elem.nodeType && - ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && + initialInUnit = ( jQuery.cssNumber[ prop ] || unit !== "px" && +initial ) && rcssNum.exec( jQuery.css( elem, prop ) ); if ( initialInUnit && initialInUnit[ 3 ] !== unit ) { @@ -4897,47 +4669,18 @@ jQuery.fn.extend( { } ); var rcheckableType = ( /^(?:checkbox|radio)$/i ); -var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]*)/i ); +var rtagName = ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i ); var rscriptType = ( /^$|^module$|\/(?:java|ecma)script/i ); -( function() { - var fragment = document.createDocumentFragment(), - div = fragment.appendChild( document.createElement( "div" ) ), - input = document.createElement( "input" ); - - // Support: Android 4.0 - 4.3 only - // Check state lost if the name is set (#11217) - // Support: Windows Web Apps (WWA) - // `name` and `type` must use .setAttribute for WWA (#14901) - input.setAttribute( "type", "radio" ); - input.setAttribute( "checked", "checked" ); - input.setAttribute( "name", "t" ); - - div.appendChild( input ); - - // Support: Android <=4.1 only - // Older WebKit doesn't clone checked state correctly in fragments - support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; - - // Support: IE <=11 only - // Make sure textarea (and checkbox) defaultValue is properly cloned - div.innerHTML = ""; - support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; - - // Support: IE <=9 only - // IE <=9 replaces "; - support.option = !!div.lastChild; -} )(); - - // We have to close these tags to support XHTML (#13200) var wrapMap = { + // Support: IE <=9 only + option: [ 1, "" ], + // XHTML parsers do not magically insert elements in the // same way that tag soup parsers do. So we cannot shorten // this by omitting or other required elements. @@ -4949,14 +4692,12 @@ var wrapMap = { _default: [ 0, "", "" ] }; +// Support: IE <=9 only +wrapMap.optgroup = wrapMap.option; + wrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead; wrapMap.th = wrapMap.td; -// Support: IE <=9 only -if ( !support.option ) { - wrapMap.optgroup = wrapMap.option = [ 1, "" ]; -} - function getAll( context, tag ) { @@ -5000,7 +4741,7 @@ function setGlobalEval( elems, refElements ) { var rhtml = /<|&#?\w+;/; function buildFragment( elems, context, scripts, selection, ignored ) { - var elem, tmp, tag, wrap, attached, j, + var elem, tmp, tag, wrap, contains, j, fragment = context.createDocumentFragment(), nodes = [], i = 0, @@ -5064,13 +4805,13 @@ function buildFragment( elems, context, scripts, selection, ignored ) { continue; } - attached = isAttached( elem ); + contains = jQuery.contains( elem.ownerDocument, elem ); // Append to fragment tmp = getAll( fragment.appendChild( elem ), "script" ); // Preserve script evaluation history - if ( attached ) { + if ( contains ) { setGlobalEval( tmp ); } @@ -5089,6 +4830,34 @@ function buildFragment( elems, context, scripts, selection, ignored ) { } +( function() { + var fragment = document.createDocumentFragment(), + div = fragment.appendChild( document.createElement( "div" ) ), + input = document.createElement( "input" ); + + // Support: Android 4.0 - 4.3 only + // Check state lost if the name is set (#11217) + // Support: Windows Web Apps (WWA) + // `name` and `type` must use .setAttribute for WWA (#14901) + input.setAttribute( "type", "radio" ); + input.setAttribute( "checked", "checked" ); + input.setAttribute( "name", "t" ); + + div.appendChild( input ); + + // Support: Android <=4.1 only + // Older WebKit doesn't clone checked state correctly in fragments + support.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked; + + // Support: IE <=11 only + // Make sure textarea (and checkbox) defaultValue is properly cloned + div.innerHTML = ""; + support.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue; +} )(); +var documentElement = document.documentElement; + + + var rkeyEvent = /^key/, rmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, @@ -5102,19 +4871,8 @@ function returnFalse() { return false; } -// Support: IE <=9 - 11+ -// focus() and blur() are asynchronous, except when they are no-op. -// So expect focus to be synchronous when the element is already active, -// and blur to be synchronous when the element is not already active. -// (focus and blur are always synchronous in other supported browsers, -// this just defines when we can count on it). -function expectSync( elem, type ) { - return ( elem === safeActiveElement() ) === ( type === "focus" ); -} - // Support: IE <=9 only -// Accessing document.activeElement can throw unexpectedly -// https://bugs.jquery.com/ticket/13393 +// See #13393 for more info function safeActiveElement() { try { return document.activeElement; @@ -5197,8 +4955,8 @@ jQuery.event = { special, handlers, type, namespaces, origType, elemData = dataPriv.get( elem ); - // Only attach events to objects that accept data - if ( !acceptData( elem ) ) { + // Don't attach events to noData or text/comment nodes (but allow plain objects) + if ( !elemData ) { return; } @@ -5222,7 +4980,7 @@ jQuery.event = { // Init the element's event structure and main handler, if this is the first if ( !( events = elemData.events ) ) { - events = elemData.events = Object.create( null ); + events = elemData.events = {}; } if ( !( eventHandle = elemData.handle ) ) { eventHandle = elemData.handle = function( e ) { @@ -5380,15 +5138,12 @@ jQuery.event = { dispatch: function( nativeEvent ) { + // Make a writable jQuery.Event from the native event object + var event = jQuery.event.fix( nativeEvent ); + var i, j, ret, matched, handleObj, handlerQueue, args = new Array( arguments.length ), - - // Make a writable jQuery.Event from the native event object - event = jQuery.event.fix( nativeEvent ), - - handlers = ( - dataPriv.get( this, "events" ) || Object.create( null ) - )[ event.type ] || [], + handlers = ( dataPriv.get( this, "events" ) || {} )[ event.type ] || [], special = jQuery.event.special[ event.type ] || {}; // Use the fix-ed jQuery.Event rather than the (read-only) native event @@ -5417,10 +5172,9 @@ jQuery.event = { while ( ( handleObj = matched.handlers[ j++ ] ) && !event.isImmediatePropagationStopped() ) { - // If the event is namespaced, then each handler is only invoked if it is - // specially universal or its namespaces are a superset of the event's. - if ( !event.rnamespace || handleObj.namespace === false || - event.rnamespace.test( handleObj.namespace ) ) { + // Triggered event must either 1) have no namespace, or 2) have namespace(s) + // a subset or equal to those in the bound event (both can have no namespace). + if ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) { event.handleObj = handleObj; event.data = handleObj.data; @@ -5544,51 +5298,39 @@ jQuery.event = { // Prevent triggered image.load events from bubbling to window.load noBubble: true }, - click: { + focus: { - // Utilize native event to ensure correct state for checkable inputs - setup: function( data ) { - - // For mutual compressibility with _default, replace `this` access with a local var. - // `|| data` is dead code meant only to preserve the variable through minification. - var el = this || data; - - // Claim the first handler - if ( rcheckableType.test( el.type ) && - el.click && nodeName( el, "input" ) ) { - - // dataPriv.set( el, "click", ... ) - leverageNative( el, "click", returnTrue ); + // Fire native event if possible so blur/focus sequence is correct + trigger: function() { + if ( this !== safeActiveElement() && this.focus ) { + this.focus(); + return false; } - - // Return false to allow normal processing in the caller - return false; }, - trigger: function( data ) { - - // For mutual compressibility with _default, replace `this` access with a local var. - // `|| data` is dead code meant only to preserve the variable through minification. - var el = this || data; - - // Force setup before triggering a click - if ( rcheckableType.test( el.type ) && - el.click && nodeName( el, "input" ) ) { - - leverageNative( el, "click" ); + delegateType: "focusin" + }, + blur: { + trigger: function() { + if ( this === safeActiveElement() && this.blur ) { + this.blur(); + return false; } + }, + delegateType: "focusout" + }, + click: { - // Return non-false to allow normal event-path propagation - return true; + // For checkbox, fire native event so checked state will be right + trigger: function() { + if ( this.type === "checkbox" && this.click && nodeName( this, "input" ) ) { + this.click(); + return false; + } }, - // For cross-browser consistency, suppress native .click() on links - // Also prevent it if we're currently inside a leveraged native-event stack + // For cross-browser consistency, don't fire native .click() on links _default: function( event ) { - var target = event.target; - return rcheckableType.test( target.type ) && - target.click && nodeName( target, "input" ) && - dataPriv.get( target, "click" ) || - nodeName( target, "a" ); + return nodeName( event.target, "a" ); } }, @@ -5605,93 +5347,6 @@ jQuery.event = { } }; -// Ensure the presence of an event listener that handles manually-triggered -// synthetic events by interrupting progress until reinvoked in response to -// *native* events that it fires directly, ensuring that state changes have -// already occurred before other listeners are invoked. -function leverageNative( el, type, expectSync ) { - - // Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add - if ( !expectSync ) { - if ( dataPriv.get( el, type ) === undefined ) { - jQuery.event.add( el, type, returnTrue ); - } - return; - } - - // Register the controller as a special universal handler for all event namespaces - dataPriv.set( el, type, false ); - jQuery.event.add( el, type, { - namespace: false, - handler: function( event ) { - var notAsync, result, - saved = dataPriv.get( this, type ); - - if ( ( event.isTrigger & 1 ) && this[ type ] ) { - - // Interrupt processing of the outer synthetic .trigger()ed event - // Saved data should be false in such cases, but might be a leftover capture object - // from an async native handler (gh-4350) - if ( !saved.length ) { - - // Store arguments for use when handling the inner native event - // There will always be at least one argument (an event object), so this array - // will not be confused with a leftover capture object. - saved = slice.call( arguments ); - dataPriv.set( this, type, saved ); - - // Trigger the native event and capture its result - // Support: IE <=9 - 11+ - // focus() and blur() are asynchronous - notAsync = expectSync( this, type ); - this[ type ](); - result = dataPriv.get( this, type ); - if ( saved !== result || notAsync ) { - dataPriv.set( this, type, false ); - } else { - result = {}; - } - if ( saved !== result ) { - - // Cancel the outer synthetic event - event.stopImmediatePropagation(); - event.preventDefault(); - return result.value; - } - - // If this is an inner synthetic event for an event with a bubbling surrogate - // (focus or blur), assume that the surrogate already propagated from triggering the - // native event and prevent that from happening again here. - // This technically gets the ordering wrong w.r.t. to `.trigger()` (in which the - // bubbling surrogate propagates *after* the non-bubbling base), but that seems - // less bad than duplication. - } else if ( ( jQuery.event.special[ type ] || {} ).delegateType ) { - event.stopPropagation(); - } - - // If this is a native event triggered above, everything is now in order - // Fire an inner synthetic event with the original arguments - } else if ( saved.length ) { - - // ...and capture the result - dataPriv.set( this, type, { - value: jQuery.event.trigger( - - // Support: IE <=9 - 11+ - // Extend with the prototype to reset the above stopImmediatePropagation() - jQuery.extend( saved[ 0 ], jQuery.Event.prototype ), - saved.slice( 1 ), - this - ) - } ); - - // Abort handling of the native event - event.stopImmediatePropagation(); - } - } - } ); -} - jQuery.removeEvent = function( elem, type, handle ) { // This "if" is needed for plain objects @@ -5804,7 +5459,6 @@ jQuery.each( { shiftKey: true, view: true, "char": true, - code: true, charCode: true, key: true, keyCode: true, @@ -5851,33 +5505,6 @@ jQuery.each( { } }, jQuery.event.addProp ); -jQuery.each( { focus: "focusin", blur: "focusout" }, function( type, delegateType ) { - jQuery.event.special[ type ] = { - - // Utilize native event if possible so blur/focus sequence is correct - setup: function() { - - // Claim the first handler - // dataPriv.set( this, "focus", ... ) - // dataPriv.set( this, "blur", ... ) - leverageNative( this, type, expectSync ); - - // Return false to allow normal processing in the caller - return false; - }, - trigger: function() { - - // Force setup before trigger - leverageNative( this, type ); - - // Return non-false to allow normal event-path propagation - return true; - }, - - delegateType: delegateType - }; -} ); - // Create mouseenter/leave events using mouseover/out and event-time checks // so that event delegation works in jQuery. // Do the same for pointerenter/pointerleave and pointerover/pointerout @@ -5963,6 +5590,13 @@ jQuery.fn.extend( { var + /* eslint-disable max-len */ + + // See https://github.com/eslint/eslint/issues/3229 + rxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, + + /* eslint-enable */ + // Support: IE <=10 - 11, Edge 12 - 13 only // In IE/Edge using regex groups here causes severe slowdowns. // See https://connect.microsoft.com/IE/feedback/details/1736512/ @@ -5999,7 +5633,7 @@ function restoreScript( elem ) { } function cloneCopyEvent( src, dest ) { - var i, l, type, pdataOld, udataOld, udataCur, events; + var i, l, type, pdataOld, pdataCur, udataOld, udataCur, events; if ( dest.nodeType !== 1 ) { return; @@ -6007,11 +5641,13 @@ function cloneCopyEvent( src, dest ) { // 1. Copy private data: events, handlers, etc. if ( dataPriv.hasData( src ) ) { - pdataOld = dataPriv.get( src ); + pdataOld = dataPriv.access( src ); + pdataCur = dataPriv.set( dest, pdataOld ); events = pdataOld.events; if ( events ) { - dataPriv.remove( dest, "handle events" ); + delete pdataCur.handle; + pdataCur.events = {}; for ( type in events ) { for ( i = 0, l = events[ type ].length; i < l; i++ ) { @@ -6047,7 +5683,7 @@ function fixInput( src, dest ) { function domManip( collection, args, callback, ignored ) { // Flatten any nested arrays - args = flat( args ); + args = concat.apply( [], args ); var fragment, first, scripts, hasScripts, node, doc, i = 0, @@ -6119,13 +5755,11 @@ function domManip( collection, args, callback, ignored ) { if ( node.src && ( node.type || "" ).toLowerCase() !== "module" ) { // Optional AJAX dependency, but won't run scripts if not present - if ( jQuery._evalUrl && !node.noModule ) { - jQuery._evalUrl( node.src, { - nonce: node.nonce || node.getAttribute( "nonce" ) - }, doc ); + if ( jQuery._evalUrl ) { + jQuery._evalUrl( node.src ); } } else { - DOMEval( node.textContent.replace( rcleanScript, "" ), node, doc ); + DOMEval( node.textContent.replace( rcleanScript, "" ), doc, node ); } } } @@ -6147,7 +5781,7 @@ function remove( elem, selector, keepData ) { } if ( node.parentNode ) { - if ( keepData && isAttached( node ) ) { + if ( keepData && jQuery.contains( node.ownerDocument, node ) ) { setGlobalEval( getAll( node, "script" ) ); } node.parentNode.removeChild( node ); @@ -6159,13 +5793,13 @@ function remove( elem, selector, keepData ) { jQuery.extend( { htmlPrefilter: function( html ) { - return html; + return html.replace( rxhtmlTag, "<$1>" ); }, clone: function( elem, dataAndEvents, deepDataAndEvents ) { var i, l, srcElements, destElements, clone = elem.cloneNode( true ), - inPage = isAttached( elem ); + inPage = jQuery.contains( elem.ownerDocument, elem ); // Fix IE cloning issues if ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) && @@ -6421,27 +6055,6 @@ var getStyles = function( elem ) { return view.getComputedStyle( elem ); }; -var swap = function( elem, options, callback ) { - var ret, name, - old = {}; - - // Remember the old values, and insert the new ones - for ( name in options ) { - old[ name ] = elem.style[ name ]; - elem.style[ name ] = options[ name ]; - } - - ret = callback.call( elem ); - - // Revert the old values - for ( name in options ) { - elem.style[ name ] = old[ name ]; - } - - return ret; -}; - - var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); @@ -6482,10 +6095,8 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); // Support: IE 9 only // Detect overflow:scroll screwiness (gh-3699) - // Support: Chrome <=64 - // Don't get tricked when zoom affects offsetWidth (gh-4029) div.style.position = "absolute"; - scrollboxSizeVal = roundPixelMeasures( div.offsetWidth / 3 ) === 12; + scrollboxSizeVal = div.offsetWidth === 36 || "absolute"; documentElement.removeChild( container ); @@ -6499,7 +6110,7 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); } var pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal, - reliableTrDimensionsVal, reliableMarginLeftVal, + reliableMarginLeftVal, container = document.createElement( "div" ), div = document.createElement( "div" ); @@ -6534,35 +6145,6 @@ var rboxStyle = new RegExp( cssExpand.join( "|" ), "i" ); scrollboxSize: function() { computeStyleTests(); return scrollboxSizeVal; - }, - - // Support: IE 9 - 11+, Edge 15 - 18+ - // IE/Edge misreport `getComputedStyle` of table rows with width/height - // set in CSS while `offset*` properties report correct values. - // Behavior in IE 9 is more subtle than in newer versions & it passes - // some versions of this test; make sure not to make it pass there! - reliableTrDimensions: function() { - var table, tr, trChild, trStyle; - if ( reliableTrDimensionsVal == null ) { - table = document.createElement( "table" ); - tr = document.createElement( "tr" ); - trChild = document.createElement( "div" ); - - table.style.cssText = "position:absolute;left:-11111px"; - tr.style.height = "1px"; - trChild.style.height = "9px"; - - documentElement - .appendChild( table ) - .appendChild( tr ) - .appendChild( trChild ); - - trStyle = window.getComputedStyle( tr ); - reliableTrDimensionsVal = parseInt( trStyle.height ) > 3; - - documentElement.removeChild( table ); - } - return reliableTrDimensionsVal; } } ); } )(); @@ -6585,7 +6167,7 @@ function curCSS( elem, name, computed ) { if ( computed ) { ret = computed.getPropertyValue( name ) || computed[ name ]; - if ( ret === "" && !isAttached( elem ) ) { + if ( ret === "" && !jQuery.contains( elem.ownerDocument, elem ) ) { ret = jQuery.style( elem, name ); } @@ -6641,13 +6223,30 @@ function addGetHookIf( conditionFn, hookFn ) { } -var cssPrefixes = [ "Webkit", "Moz", "ms" ], - emptyStyle = document.createElement( "div" ).style, - vendorProps = {}; +var + + // Swappable if display is none or starts with table + // except "table", "table-cell", or "table-caption" + // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display + rdisplayswap = /^(none|table(?!-c[ea]).+)/, + rcustomProp = /^--/, + cssShow = { position: "absolute", visibility: "hidden", display: "block" }, + cssNormalTransform = { + letterSpacing: "0", + fontWeight: "400" + }, + + cssPrefixes = [ "Webkit", "Moz", "ms" ], + emptyStyle = document.createElement( "div" ).style; -// Return a vendor-prefixed property or undefined +// Return a css property mapped to a potentially vendor prefixed property function vendorPropName( name ) { + // Shortcut for names that are not vendor prefixed + if ( name in emptyStyle ) { + return name; + } + // Check for vendor prefixed names var capName = name[ 0 ].toUpperCase() + name.slice( 1 ), i = cssPrefixes.length; @@ -6660,34 +6259,17 @@ function vendorPropName( name ) { } } -// Return a potentially-mapped jQuery.cssProps or vendor prefixed property +// Return a property mapped along what jQuery.cssProps suggests or to +// a vendor prefixed property. function finalPropName( name ) { - var final = jQuery.cssProps[ name ] || vendorProps[ name ]; - - if ( final ) { - return final; + var ret = jQuery.cssProps[ name ]; + if ( !ret ) { + ret = jQuery.cssProps[ name ] = vendorPropName( name ) || name; } - if ( name in emptyStyle ) { - return name; - } - return vendorProps[ name ] = vendorPropName( name ) || name; + return ret; } - -var - - // Swappable if display is none or starts with table - // except "table", "table-cell", or "table-caption" - // See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display - rdisplayswap = /^(none|table(?!-c[ea]).+)/, - rcustomProp = /^--/, - cssShow = { position: "absolute", visibility: "hidden", display: "block" }, - cssNormalTransform = { - letterSpacing: "0", - fontWeight: "400" - }; - -function setPositiveNumber( _elem, value, subtract ) { +function setPositiveNumber( elem, value, subtract ) { // Any relative (+/-) values have already been // normalized at this point @@ -6758,10 +6340,7 @@ function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computed delta - extra - 0.5 - - // If offsetWidth/offsetHeight is unknown, then we can't determine content-box scroll gutter - // Use an explicit zero to avoid NaN (gh-3964) - ) ) || 0; + ) ); } return delta; @@ -6771,16 +6350,9 @@ function getWidthOrHeight( elem, dimension, extra ) { // Start with computed style var styles = getStyles( elem ), - - // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-4322). - // Fake content-box until we know it's needed to know the true value. - boxSizingNeeded = !support.boxSizingReliable() || extra, - isBorderBox = boxSizingNeeded && - jQuery.css( elem, "boxSizing", false, styles ) === "border-box", - valueIsBorderBox = isBorderBox, - val = curCSS( elem, dimension, styles ), - offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ); + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + valueIsBorderBox = isBorderBox; // Support: Firefox <=54 // Return a confounding non-pixel value or feign ignorance, as appropriate. @@ -6791,38 +6363,22 @@ function getWidthOrHeight( elem, dimension, extra ) { val = "auto"; } + // Check for style in case a browser which returns unreliable values + // for getComputedStyle silently falls back to the reliable elem.style + valueIsBorderBox = valueIsBorderBox && + ( support.boxSizingReliable() || val === elem.style[ dimension ] ); - // Support: IE 9 - 11 only - // Use offsetWidth/offsetHeight for when box sizing is unreliable. - // In those cases, the computed value can be trusted to be border-box. - if ( ( !support.boxSizingReliable() && isBorderBox || - - // Support: IE 10 - 11+, Edge 15 - 18+ - // IE/Edge misreport `getComputedStyle` of table rows with width/height - // set in CSS while `offset*` properties report correct values. - // Interestingly, in some cases IE 9 doesn't suffer from this issue. - !support.reliableTrDimensions() && nodeName( elem, "tr" ) || - - // Fall back to offsetWidth/offsetHeight when value is "auto" - // This happens for inline elements with no explicit setting (gh-3571) - val === "auto" || - - // Support: Android <=4.1 - 4.3 only - // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) - !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) && + // Fall back to offsetWidth/offsetHeight when value is "auto" + // This happens for inline elements with no explicit setting (gh-3571) + // Support: Android <=4.1 - 4.3 only + // Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602) + if ( val === "auto" || + !parseFloat( val ) && jQuery.css( elem, "display", false, styles ) === "inline" ) { - // Make sure the element is visible & connected - elem.getClientRects().length ) { + val = elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ]; - isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box"; - - // Where available, offsetWidth/offsetHeight approximate border box dimensions. - // Where not available (e.g., SVG), assume unreliable box-sizing and interpret the - // retrieved value as a content box dimension. - valueIsBorderBox = offsetProp in elem; - if ( valueIsBorderBox ) { - val = elem[ offsetProp ]; - } + // offsetWidth/offsetHeight provide border-box values + valueIsBorderBox = true; } // Normalize "" and auto @@ -6868,13 +6424,6 @@ jQuery.extend( { "flexGrow": true, "flexShrink": true, "fontWeight": true, - "gridArea": true, - "gridColumn": true, - "gridColumnEnd": true, - "gridColumnStart": true, - "gridRow": true, - "gridRowEnd": true, - "gridRowStart": true, "lineHeight": true, "opacity": true, "order": true, @@ -6930,9 +6479,7 @@ jQuery.extend( { } // If a number was passed in, add the unit (except for certain CSS properties) - // The isCustomProp check can be removed in jQuery 4.0 when we only auto-append - // "px" to a few hardcoded values. - if ( type === "number" && !isCustomProp ) { + if ( type === "number" ) { value += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? "" : "px" ); } @@ -7006,7 +6553,7 @@ jQuery.extend( { } } ); -jQuery.each( [ "height", "width" ], function( _i, dimension ) { +jQuery.each( [ "height", "width" ], function( i, dimension ) { jQuery.cssHooks[ dimension ] = { get: function( elem, computed, extra ) { if ( computed ) { @@ -7032,29 +6579,18 @@ jQuery.each( [ "height", "width" ], function( _i, dimension ) { set: function( elem, value, extra ) { var matches, styles = getStyles( elem ), - - // Only read styles.position if the test has a chance to fail - // to avoid forcing a reflow. - scrollboxSizeBuggy = !support.scrollboxSize() && - styles.position === "absolute", - - // To avoid forcing a reflow, only fetch boxSizing if we need it (gh-3991) - boxSizingNeeded = scrollboxSizeBuggy || extra, - isBorderBox = boxSizingNeeded && - jQuery.css( elem, "boxSizing", false, styles ) === "border-box", - subtract = extra ? - boxModelAdjustment( - elem, - dimension, - extra, - isBorderBox, - styles - ) : - 0; + isBorderBox = jQuery.css( elem, "boxSizing", false, styles ) === "border-box", + subtract = extra && boxModelAdjustment( + elem, + dimension, + extra, + isBorderBox, + styles + ); // Account for unreliable border-box dimensions by comparing offset* to computed and // faking a content-box to get border and padding (gh-3699) - if ( isBorderBox && scrollboxSizeBuggy ) { + if ( isBorderBox && support.scrollboxSize() === styles.position ) { subtract -= Math.ceil( elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] - parseFloat( styles[ dimension ] ) - @@ -7222,9 +6758,9 @@ Tween.propHooks = { // Use .style if available and use plain properties where available. if ( jQuery.fx.step[ tween.prop ] ) { jQuery.fx.step[ tween.prop ]( tween ); - } else if ( tween.elem.nodeType === 1 && ( - jQuery.cssHooks[ tween.prop ] || - tween.elem.style[ finalPropName( tween.prop ) ] != null ) ) { + } else if ( tween.elem.nodeType === 1 && + ( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null || + jQuery.cssHooks[ tween.prop ] ) ) { jQuery.style( tween.elem, tween.prop, tween.now + tween.unit ); } else { tween.elem[ tween.prop ] = tween.now; @@ -7779,7 +7315,7 @@ jQuery.fn.extend( { clearQueue = type; type = undefined; } - if ( clearQueue ) { + if ( clearQueue && type !== false ) { this.queue( type || "fx", [] ); } @@ -7862,7 +7398,7 @@ jQuery.fn.extend( { } } ); -jQuery.each( [ "toggle", "show", "hide" ], function( _i, name ) { +jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) { var cssFn = jQuery.fn[ name ]; jQuery.fn[ name ] = function( speed, easing, callback ) { return speed == null || typeof speed === "boolean" ? @@ -8083,7 +7619,7 @@ boolHook = { } }; -jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( _i, name ) { +jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) { var getter = attrHandle[ name ] || jQuery.find.attr; attrHandle[ name ] = function( elem, name, isXML ) { @@ -8707,9 +8243,7 @@ jQuery.extend( jQuery.event, { special.bindType || type; // jQuery handler - handle = ( - dataPriv.get( cur, "events" ) || Object.create( null ) - )[ event.type ] && + handle = ( dataPriv.get( cur, "events" ) || {} )[ event.type ] && dataPriv.get( cur, "handle" ); if ( handle ) { handle.apply( cur, data ); @@ -8820,10 +8354,7 @@ if ( !support.focusin ) { jQuery.event.special[ fix ] = { setup: function() { - - // Handle: regular nodes (via `this.ownerDocument`), window - // (via `this.document`) & document (via `this`). - var doc = this.ownerDocument || this.document || this, + var doc = this.ownerDocument || this, attaches = dataPriv.access( doc, fix ); if ( !attaches ) { @@ -8832,7 +8363,7 @@ if ( !support.focusin ) { dataPriv.access( doc, fix, ( attaches || 0 ) + 1 ); }, teardown: function() { - var doc = this.ownerDocument || this.document || this, + var doc = this.ownerDocument || this, attaches = dataPriv.access( doc, fix ) - 1; if ( !attaches ) { @@ -8848,7 +8379,7 @@ if ( !support.focusin ) { } var location = window.location; -var nonce = { guid: Date.now() }; +var nonce = Date.now(); var rquery = ( /\?/ ); @@ -8936,10 +8467,6 @@ jQuery.param = function( a, traditional ) { encodeURIComponent( value == null ? "" : value ); }; - if ( a == null ) { - return ""; - } - // If an array was passed in, assume that it is an array of form elements. if ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) { @@ -8980,7 +8507,7 @@ jQuery.fn.extend( { rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) && ( this.checked || !rcheckableType.test( type ) ); } ) - .map( function( _i, elem ) { + .map( function( i, elem ) { var val = jQuery( this ).val(); if ( val == null ) { @@ -9442,14 +8969,12 @@ jQuery.extend( { if ( !responseHeaders ) { responseHeaders = {}; while ( ( match = rheaders.exec( responseHeadersString ) ) ) { - responseHeaders[ match[ 1 ].toLowerCase() + " " ] = - ( responseHeaders[ match[ 1 ].toLowerCase() + " " ] || [] ) - .concat( match[ 2 ] ); + responseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ]; } } - match = responseHeaders[ key.toLowerCase() + " " ]; + match = responseHeaders[ key.toLowerCase() ]; } - return match == null ? null : match.join( ", " ); + return match == null ? null : match; }, // Raw string @@ -9593,8 +9118,7 @@ jQuery.extend( { // Add or update anti-cache param if needed if ( s.cache === false ) { cacheURL = cacheURL.replace( rantiCache, "$1" ); - uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce.guid++ ) + - uncached; + uncached = ( rquery.test( cacheURL ) ? "&" : "?" ) + "_=" + ( nonce++ ) + uncached; } // Put hash and anti-cache on the URL that will be requested (gh-1732) @@ -9727,11 +9251,6 @@ jQuery.extend( { response = ajaxHandleResponses( s, jqXHR, responses ); } - // Use a noop converter for missing script - if ( !isSuccess && jQuery.inArray( "script", s.dataTypes ) > -1 ) { - s.converters[ "text script" ] = function() {}; - } - // Convert no matter what (that way responseXXX fields are always set) response = ajaxConvert( s, response, jqXHR, isSuccess ); @@ -9822,7 +9341,7 @@ jQuery.extend( { } } ); -jQuery.each( [ "get", "post" ], function( _i, method ) { +jQuery.each( [ "get", "post" ], function( i, method ) { jQuery[ method ] = function( url, data, callback, type ) { // Shift arguments if data argument was omitted @@ -9843,17 +9362,8 @@ jQuery.each( [ "get", "post" ], function( _i, method ) { }; } ); -jQuery.ajaxPrefilter( function( s ) { - var i; - for ( i in s.headers ) { - if ( i.toLowerCase() === "content-type" ) { - s.contentType = s.headers[ i ] || ""; - } - } -} ); - -jQuery._evalUrl = function( url, options, doc ) { +jQuery._evalUrl = function( url ) { return jQuery.ajax( { url: url, @@ -9863,16 +9373,7 @@ jQuery._evalUrl = function( url, options, doc ) { cache: true, async: false, global: false, - - // Only evaluate the response if it is successful (gh-4126) - // dataFilter is not invoked for failure responses, so using it instead - // of the default converter is kludgy but it works. - converters: { - "text script": function() {} - }, - dataFilter: function( response ) { - jQuery.globalEval( response, options, doc ); - } + "throws": true } ); }; @@ -10155,21 +9656,24 @@ jQuery.ajaxPrefilter( "script", function( s ) { // Bind script tag hack transport jQuery.ajaxTransport( "script", function( s ) { - // This transport only deals with cross domain or forced-by-attrs requests - if ( s.crossDomain || s.scriptAttrs ) { + // This transport only deals with cross domain requests + if ( s.crossDomain ) { var script, callback; return { send: function( _, complete ) { - script = jQuery( "

-
+
+
-
- -
+
{{ toast.title | abpLocalization: toast.options?.titleLocalizationParams }}
-

+

{{ toast.message | abpLocalization: toast.options?.messageLocalizationParams }}

diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/toast/toast.component.scss b/npm/ng-packs/packages/theme-shared/src/lib/components/toast/toast.component.scss index 7b5a2a24d1..64bf8a6068 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/components/toast/toast.component.scss +++ b/npm/ng-packs/packages/theme-shared/src/lib/components/toast/toast.component.scss @@ -10,7 +10,9 @@ } } -.toast { +$toastClass: abp-toast; + +.#{$toastClass} { display: grid; grid-template-columns: 50px 1fr; gap: 10px; @@ -23,19 +25,19 @@ z-index: 9999; @include fillColor(#f0f0f0, #000); opacity: 1; - &.toast-success { + &.#{$toastClass}-success { @include fillColor(#51a351, #fff); } - &.toast-info { + &.#{$toastClass}-info { @include fillColor(#2f96b4, #fff); } - &.toast-warning { + &.#{$toastClass}-warning { @include fillColor(#f89406, #fff); } - &.toast-error { + &.#{$toastClass}-error { @include fillColor(#bd362f, #fff); } - .toast-icon { + .#{$toastClass}-icon { display: flex; align-items: center; justify-content: center; @@ -43,9 +45,9 @@ font-size: 36px; } } - .toast-content { + .#{$toastClass}-content { position: relative; - .toast-close-button { + .#{$toastClass}-close-button { position: absolute; top: 0; right: 0; @@ -64,13 +66,13 @@ outline: none; } } - .toast-title { + .#{$toastClass}-title { margin: 0; padding: 0; font-size: 1rem; font-weight: 600; } - .toast-message { + .#{$toastClass}-message { margin: 0; padding: 0; max-width: 240px; diff --git a/npm/ng-packs/packages/theme-shared/src/lib/components/toast/toast.component.ts b/npm/ng-packs/packages/theme-shared/src/lib/components/toast/toast.component.ts index b4465934b6..48298e74a0 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/components/toast/toast.component.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/components/toast/toast.component.ts @@ -1,7 +1,6 @@ import { Component, Input, OnInit } from '@angular/core'; import { Toaster } from '../../models/toaster'; import { ToasterService } from '../../services/toaster.service'; -import { LocalizationService } from '@abp/ng.core'; import snq from 'snq'; @Component({ @@ -15,7 +14,7 @@ export class ToastComponent implements OnInit { get severityClass(): string { if (!this.toast || !this.toast.severity) return ''; - return `toast-${this.toast.severity}`; + return `abp-toast-${this.toast.severity}`; } get iconClass(): string { @@ -33,10 +32,7 @@ export class ToastComponent implements OnInit { } } - constructor( - private toastService: ToasterService, - private localizationService: LocalizationService, - ) {} + constructor(private toasterService: ToasterService) {} ngOnInit() { if (snq(() => this.toast.options.sticky)) return; @@ -47,10 +43,10 @@ export class ToastComponent implements OnInit { } close() { - this.toastService.remove(this.toast.options.id); + this.toasterService.remove(this.toast.options.id); } tap() { - if (this.toast.options && this.toast.options.tapToDismiss) this.close(); + if (this.toast.options?.tapToDismiss) this.close(); } } diff --git a/npm/ng-packs/packages/theme-shared/src/lib/models/toaster.ts b/npm/ng-packs/packages/theme-shared/src/lib/models/toaster.ts index e7f456fee4..7addf08162 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/models/toaster.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/models/toaster.ts @@ -20,4 +20,36 @@ export namespace Toaster { } export type Severity = 'neutral' | 'success' | 'info' | 'warning' | 'error'; + export type ToasterId = string | number; + + export interface Service { + show: ( + message: Config.LocalizationParam, + title: Config.LocalizationParam, + severity: Toaster.Severity, + options: Partial, + ) => ToasterId; + remove: (id: number) => void; + clear: (key?: string) => void; + info: ( + message: Config.LocalizationParam, + title?: Config.LocalizationParam, + options?: Partial, + ) => ToasterId; + success: ( + message: Config.LocalizationParam, + title?: Config.LocalizationParam, + options?: Partial, + ) => ToasterId; + warn: ( + message: Config.LocalizationParam, + title?: Config.LocalizationParam, + options?: Partial, + ) => ToasterId; + error: ( + message: Config.LocalizationParam, + title?: Config.LocalizationParam, + options?: Partial, + ) => ToasterId; + } } diff --git a/npm/ng-packs/packages/theme-shared/src/lib/services/toaster.service.ts b/npm/ng-packs/packages/theme-shared/src/lib/services/toaster.service.ts index 295647309d..83f6655371 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/services/toaster.service.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/services/toaster.service.ts @@ -1,14 +1,14 @@ -import { Injectable, ComponentRef } from '@angular/core'; +import { ComponentRef, Injectable } from '@angular/core'; import { Toaster } from '../models'; import { ReplaySubject } from 'rxjs'; -import { Config, PROJECTION_STRATEGY, ContentProjectionService } from '@abp/ng.core'; +import { Config, ContentProjectionService, PROJECTION_STRATEGY } from '@abp/ng.core'; import snq from 'snq'; import { ToastContainerComponent } from '../components/toast-container/toast-container.component'; @Injectable({ providedIn: 'root', }) -export class ToasterService { +export class ToasterService implements Toaster.Service { toasts$ = new ReplaySubject(1); private lastId = -1; diff --git a/npm/ng-packs/packages/theme-shared/src/lib/theme-shared.module.ts b/npm/ng-packs/packages/theme-shared/src/lib/theme-shared.module.ts index e45ac8d1e3..2ba44dfa7a 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/theme-shared.module.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/theme-shared.module.ts @@ -22,54 +22,41 @@ import { LoadingDirective } from './directives/loading.directive'; import { NgxDatatableDefaultDirective } from './directives/ngx-datatable-default.directive'; import { NgxDatatableListDirective } from './directives/ngx-datatable-list.directive'; import { TableSortDirective } from './directives/table-sort.directive'; -import { ErrorHandler } from './handlers/error.handler'; import { initLazyStyleHandler } from './handlers/lazy-style.handler'; import { RootParams } from './models/common'; import { THEME_SHARED_ROUTE_PROVIDERS } from './providers/route.provider'; import { THEME_SHARED_APPEND_CONTENT } from './tokens/append-content.token'; -import { httpErrorConfigFactory, HTTP_ERROR_CONFIG } from './tokens/http-error.token'; +import { HTTP_ERROR_CONFIG, httpErrorConfigFactory } from './tokens/http-error.token'; import { DateParserFormatter } from './utils/date-parser-formatter'; +const declarationsWithExports = [ + BreadcrumbComponent, + ButtonComponent, + ChartComponent, + ConfirmationComponent, + LoaderBarComponent, + LoadingComponent, + ModalComponent, + TableComponent, + TableEmptyMessageComponent, + ToastComponent, + ToastContainerComponent, + SortOrderIconComponent, + NgxDatatableDefaultDirective, + NgxDatatableListDirective, + LoadingDirective, + TableSortDirective, +]; @NgModule({ imports: [CoreModule, NgxDatatableModule, NgxValidateCoreModule, NgbPaginationModule], declarations: [ - BreadcrumbComponent, - ButtonComponent, - ChartComponent, - ConfirmationComponent, + ...declarationsWithExports, HttpErrorWrapperComponent, - LoaderBarComponent, - LoadingComponent, - ModalComponent, ModalContainerComponent, - TableComponent, - TableEmptyMessageComponent, - ToastComponent, - ToastContainerComponent, - SortOrderIconComponent, - NgxDatatableDefaultDirective, - NgxDatatableListDirective, - LoadingDirective, - TableSortDirective, ], exports: [ NgxDatatableModule, - BreadcrumbComponent, - ButtonComponent, - ChartComponent, - ConfirmationComponent, - LoaderBarComponent, - LoadingComponent, - ModalComponent, - TableComponent, - TableEmptyMessageComponent, - ToastComponent, - ToastContainerComponent, - SortOrderIconComponent, - NgxDatatableDefaultDirective, - NgxDatatableListDirective, - LoadingDirective, - TableSortDirective, + ...declarationsWithExports, ], providers: [DatePipe], entryComponents: [ @@ -81,8 +68,6 @@ import { DateParserFormatter } from './utils/date-parser-formatter'; ], }) export class ThemeSharedModule { - constructor(private errorHandler: ErrorHandler) {} - static forRoot(options = {} as RootParams): ModuleWithProviders { return { ngModule: ThemeSharedModule, From d2f78fc797b2e415e9ad2d4e76ddfffc089c9e36 Mon Sep 17 00:00:00 2001 From: EngincanV Date: Thu, 1 Oct 2020 14:50:19 +0300 Subject: [PATCH 016/242] Update en.json --- .../AbpIoLocalization/Community/Localization/Resources/en.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json index ea5237bc29..2544e50726 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/Community/Localization/Resources/en.json @@ -83,6 +83,7 @@ "LatestBlogPost": "Latest Blog Post", "Edit": "Edit", "ProfileImageChange": "Change the profile image", - "BlogItemErrorMessage": "Could not get the latest blog post details from ABP." + "BlogItemErrorMessage": "Could not get the latest blog post details from ABP.", + "PlannedReleaseDate": "Planned release date" } } From 215f82932206e896f1b3aa44e5aa08cdbef00002 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Fri, 2 Oct 2020 14:04:55 +0300 Subject: [PATCH 017/242] Fix: "Options" on a document can be a problem for search engines resolves https://github.com/abpframework/abp/issues/4877 --- .../Pages/Documents/Project/Index.cshtml | 5 +- .../Pages/Documents/Project/Index.cshtml.cs | 52 +++++++- .../Pages/Documents/Project/index.js | 115 ------------------ 3 files changed, 53 insertions(+), 119 deletions(-) diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml index afbb5fcf5b..a7897eddfe 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml @@ -305,7 +305,10 @@
diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs index 661c21eb11..9b7daa596a 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.Globalization; using System.Linq; +using System.Text; using System.Text.RegularExpressions; using System.Threading.Tasks; using System.Web; @@ -70,6 +71,8 @@ namespace Volo.Docs.Pages.Documents.Project public DocumentRenderParameters UserPreferences { get; set; } = new DocumentRenderParameters(); + public List AlternativeOptionLinkQueries { get; set; } = new List(); + public bool FullSearchEnabled { get; set; } private const int MaxDescriptionMetaTagLength = 200; @@ -441,6 +444,7 @@ namespace Volo.Docs.Pages.Documents.Project if (_uiOptions.SectionRendering) { await SetDocumentPreferencesAsync(); + SetAlternativeOptionLinksAsync(); SetUserPreferences(); var partialTemplates = await GetDocumentPartialTemplatesAsync(); @@ -617,21 +621,21 @@ namespace Volo.Docs.Pages.Documents.Project return; } - var availableparameters = await _documentSectionRenderer.GetAvailableParametersAsync(Document.Content); + var availableParameters = await _documentSectionRenderer.GetAvailableParametersAsync(Document.Content); DocumentPreferences = new DocumentParametersDto { Parameters = new List() }; - if (availableparameters == null || !availableparameters.Any()) + if (availableParameters == null || !availableParameters.Any()) { return; } foreach (var parameter in projectParameters.Parameters) { - var availableParameter = availableparameters.GetOrDefault(parameter.Name); + var availableParameter = availableParameters.GetOrDefault(parameter.Name); if (availableParameter != null) { var newParameter = new DocumentParameterDto @@ -654,6 +658,48 @@ namespace Volo.Docs.Pages.Documents.Project } } + private void SetAlternativeOptionLinksAsync() + { + if (!DocumentPreferences?.Parameters?.Any() ?? true) + { + return; + } + + AlternativeOptionLinkQueries = CollectAlternativeOptionLinksRecursively(); + } + + private List CollectAlternativeOptionLinksRecursively(int index = 0) + { + if (index >= DocumentPreferences.Parameters.Count) + { + return new List(); + } + + var option = DocumentPreferences.Parameters[index]; + var queries = new List(); + + foreach (var key in option.Values.Keys) + { + var linkQuery = new StringBuilder($"{option.Name}={key}"); + + var restOfQueries = CollectAlternativeOptionLinksRecursively(index + 1); + + if (restOfQueries.Any()) + { + foreach (var restOfQuery in restOfQueries) + { + queries.Add($"{linkQuery}&{restOfQuery}"); + } + } + else + { + queries.Add($"{linkQuery}"); + } + } + + return queries; + } + public string GetDescription() { if (Document == null || Document.Content.IsNullOrWhiteSpace()) diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/index.js b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/index.js index bbb97b041c..a65251a20e 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/index.js +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/index.js @@ -237,119 +237,6 @@ setQueryString(); }; - var initCrawlerLinks = function () { - var isCrawler = function () { - var crawlers = [ - 'Google', - 'Googlebot', - 'YandexBot', - 'msnbot', - 'Rambler', - 'Yahoo', - 'AbachoBOT', - 'accoona', - 'AcoiRobot', - 'ASPSeek', - 'CrocCrawler', - 'Dumbot', - 'FAST-WebCrawler', - 'GeonaBot', - 'Gigabot', - 'Lycos', - 'MSRBOT', - 'Scooter', - 'AltaVista', - 'IDBot', - 'eStyle', - 'Scrubby', - 'Slurp', - 'DuckDuckBot', - 'Baiduspider', - 'VoilaBot', - 'ExaLead', - 'Search Dog', - 'MSN Bot', - 'BingBot', - ]; - - var agent = navigator.userAgent; - - for (var i = 0; i < crawlers.length; i++) { - if (agent.indexOf(crawlers[i]) >= 0) { - return true; - } - } - - return false; - }; - - if (!isCrawler()) { - return; - } - - var comboboxes = $('.doc-section-combobox'); - - if (comboboxes.length <= 0) { - return; - } - - $('#crawler_link').show(); - - var html = ''; - - var currentUrl = window.location.href.toString(); - - if (currentUrl.indexOf('?') > 0) { - currentUrl = currentUrl.substring(0, currentUrl.indexOf('?')); - } - - var getQueryStringsFromComboboxes = function (x) { - if (x >= comboboxes.length) { - return []; - } - - var key = $(comboboxes[x]).data('key'); - - var queryStrings = getQueryStringsFromComboboxes(x + 1); - var returnList = []; - - $(comboboxes[x]) - .find('option') - .each(function () { - if (queryStrings.length <= 0) { - returnList.push(key + '=' + $(this).val()); - } else { - for (var k = 0; k < queryStrings.length; k++) { - returnList.push( - key + - '=' + - $(this).val() + - '&' + - queryStrings[k] - ); - } - } - }); - - return returnList; - }; - - var queryStrings = getQueryStringsFromComboboxes(0); - - for (var i = 0; i < queryStrings.length; i++) { - html += - '' + - queryStrings[i] + - ' '; - } - - $('#crawler_link').html(html); - }; - initNavigationFilter('sidebar-scroll'); initAnchorTags('.docs-page .docs-body'); @@ -357,7 +244,5 @@ initSocialShareLinks(); initSections(); - - initCrawlerLinks(); }); })(jQuery); From 9c21446df9dd6f1e339433c67b6aa285051656f5 Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Sat, 3 Oct 2020 00:57:16 +0300 Subject: [PATCH 018/242] feat: create LOCALE_ERROR_HANDLER --- npm/ng-packs/packages/core/src/lib/tokens/index.ts | 1 + .../src/lib/tokens/locale-error-handler.token.ts | 14 ++++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 npm/ng-packs/packages/core/src/lib/tokens/locale-error-handler.token.ts diff --git a/npm/ng-packs/packages/core/src/lib/tokens/index.ts b/npm/ng-packs/packages/core/src/lib/tokens/index.ts index 8d23d581a5..bd798ae448 100644 --- a/npm/ng-packs/packages/core/src/lib/tokens/index.ts +++ b/npm/ng-packs/packages/core/src/lib/tokens/index.ts @@ -1,2 +1,3 @@ export * from './list.token'; +export * from './locale-error-handler.token'; export * from './options.token'; diff --git a/npm/ng-packs/packages/core/src/lib/tokens/locale-error-handler.token.ts b/npm/ng-packs/packages/core/src/lib/tokens/locale-error-handler.token.ts new file mode 100644 index 0000000000..a1d2c93c20 --- /dev/null +++ b/npm/ng-packs/packages/core/src/lib/tokens/locale-error-handler.token.ts @@ -0,0 +1,14 @@ +import { InjectionToken, Injector } from '@angular/core'; + +export interface LocaleErrorHandlerData { + resolve: any; + reject: any; + error: any; + locale: string; + storedLocales: Record; + injector: Injector; +} + +export const LOCALE_ERROR_HANDLER = new InjectionToken<(data: LocaleErrorHandlerData) => any>( + 'LOCALE_ERROR_HANDLER', +); From a1b7d83cafde3f74a691bb3d587e21e5a203339e Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Sat, 3 Oct 2020 00:57:35 +0300 Subject: [PATCH 019/242] feat: improve different-locales constant --- .../src/lib/constants/different-locales.ts | 345 +++++++++++++++++- .../src/lib/constants/included-locales.ts | 12 + .../packages/core/src/lib/constants/index.ts | 1 + 3 files changed, 338 insertions(+), 20 deletions(-) create mode 100644 npm/ng-packs/packages/core/src/lib/constants/included-locales.ts diff --git a/npm/ng-packs/packages/core/src/lib/constants/different-locales.ts b/npm/ng-packs/packages/core/src/lib/constants/different-locales.ts index 401a766fda..3f86e31a2e 100644 --- a/npm/ng-packs/packages/core/src/lib/constants/different-locales.ts +++ b/npm/ng-packs/packages/core/src/lib/constants/different-locales.ts @@ -2,32 +2,337 @@ // Key is .NET locale, value is Angular locale export default { - 'ar-sa': 'ar-SA', + aa: 'en', + 'aa-DJ': 'en', + 'aa-ER': 'en', + 'aa-ET': 'en', + 'af-ZA': 'af', + 'agq-CM': 'agq', + 'ak-GH': 'ak', + 'am-ET': 'am', + 'ar-001': 'ar', + arn: 'en', + 'arn-CL': 'en', + 'as-IN': 'as', + 'asa-TZ': 'asa', + 'ast-ES': 'ast', + 'az-Cyrl-AZ': 'az-Cyrl', + 'az-Latn-AZ': 'az-Latn', + ba: 'ru', + 'ba-RU': 'ru', + 'bas-CM': 'bas', + 'be-BY': 'be', + 'bem-ZM': 'bem', + 'bez-TZ': 'bez', + 'bg-BG': 'bg', + bin: 'en', + 'bin-NG': 'en', + 'bm-Latn': 'bm', + 'bm-Latn-ML': 'bm', + 'bn-BD': 'bn', + 'bo-CN': 'bo', + 'br-FR': 'br', + 'brx-IN': 'brx', + 'bs-Cyrl-BA': 'bs-Cyrl', + 'bs-Latn-BA': 'bs-Latn', + byn: 'en', + 'byn-ER': 'en', + 'ca-ES': 'ca', 'ca-ES-valencia': 'ca-ES-VALENCIA', - 'de-de': 'de', - 'es-ES': 'es', + 'ce-RU': 'ce', + 'cgg-UG': 'cgg', + 'chr-Cher': 'chr', + 'chr-Cher-US': 'chr', + co: 'en', + 'co-FR': 'fr', + 'cs-CZ': 'cs', + 'cu-RU': 'cu', + 'cy-GB': 'cy', + 'da-DK': 'da', + 'dav-KE': 'dav', + 'de-DE': 'de', + 'dje-NE': 'dje', + 'dsb-DE': 'dsb', + 'dua-CM': 'dua', + dv: 'en', + 'dv-MV': 'en', + 'dyo-SN': 'dyo', + 'dz-BT': 'dz', + 'ebu-KE': 'ebu', + 'ee-GH': 'ee', + 'el-GR': 'el', + 'en-029': 'en', + 'en-ID': 'en', 'en-US': 'en', - 'fil-Latn': 'en', - 'ku-Arab': 'en', - 'ky-Cyrl': 'en', - 'mi-Latn': 'en', - 'prs-Arab': 'en', - 'qut-Latn': 'en', - nso: 'en', - quz: 'en', + 'eo-001': 'en', + 'es-ES': 'es', + 'et-EE': 'et', + 'eu-ES': 'eu', + 'ewo-CM': 'ewo', + 'fa-IR': 'fa', + 'ff-Latn-SN': 'ff-Latn', + 'ff-NG': 'ff', + 'fi-FI': 'fi', + 'fil-PH': 'fil', + 'fo-FO': 'fo', + 'fr-029': 'fr', 'fr-FR': 'fr', - 'gd-Latn': 'gd', + 'fur-IT': 'fur', + 'fy-NL': 'fy', + 'ga-IE': 'ga', + 'gd-GB': 'gd', + 'gl-ES': 'gl', + gn: 'en', + 'gn-PY': 'en', + 'gsw-CH': 'gsw', + 'gu-IN': 'gu', + 'guz-KE': 'guz', + 'gv-IM': 'gv', 'ha-Latn': 'ha', - 'ig-Latn': 'ig', - 'it-it': 'it', + 'ha-Latn-GH': 'ha-GH', + 'ha-Latn-NE': 'ha-NE', + 'ha-Latn-NG': 'ha', + 'haw-US': 'haw', + 'he-IL': 'he', + 'hi-IN': 'hi', + 'hr-HR': 'hr', + 'hsb-DE': 'hsb', + 'hu-HU': 'hu', + 'hy-AM': 'hy', + 'ia-001': 'ia', + 'ia-FR': 'ia', + ibb: 'en', + 'ibb-NG': 'en', + 'id-ID': 'id', + 'ig-NG': 'ig', + 'ii-CN': 'ii', + 'is-IS': 'is', + 'it-IT': 'it', + iu: 'en', + 'iu-Cans': 'en', + 'iu-Cans-CA': 'en', + 'iu-Latn': 'en', + 'iu-Latn-CA': 'en', + 'ja-JP': 'ja', + 'jgo-CM': 'jgo', + 'jmc-TZ': 'jmc', + 'jv-Java': 'jv', + 'jv-Java-ID': 'jv', + 'jv-Latn': 'jv', + 'jv-Latn-ID': 'jv', + 'ka-GE': 'ka', + 'kab-DZ': 'kab', + 'kam-KE': 'kam', + 'kde-TZ': 'kde', + 'kea-CV': 'kea', + 'khq-ML': 'khq', + 'ki-KE': 'ki', + 'kk-KZ': 'kk', + 'kkj-CM': 'kkj', + 'kl-GL': 'kl', + 'kln-KE': 'kln', + 'km-KH': 'km', + 'kn-IN': 'kn', + 'ko-KR': 'ko', + 'kok-IN': 'kok', + kr: 'en', + 'kr-NG': 'en', + 'ks-Arab': 'ks', + 'ks-Arab-IN': 'ks', + 'ks-Deva': 'ks', + 'ks-Deva-IN': 'ks', + 'ksb-TZ': 'ksb', + 'ksf-CM': 'ksf', + 'ksh-DE': 'ksh', + 'ku-Arab': 'ku', + 'ku-Arab-IQ': 'ku', + 'ku-Arab-IR': 'ku', + 'kw-GB': 'kw', + 'ky-KG': 'ky', + la: 'en', + 'la-001': 'en', + 'lag-TZ': 'lag', + 'lb-LU': 'lb', + 'lg-UG': 'lg', + 'lkt-US': 'lkt', + 'ln-CD': 'ln', + 'lo-LA': 'lo', + 'lrc-IR': 'lrc', + 'lt-LT': 'lt', + 'lu-CD': 'lu', + 'luo-KE': 'luo', + 'luy-KE': 'luy', + 'lv-LV': 'lv', + 'mas-KE': 'mas', + 'mer-KE': 'mer', + 'mfe-MU': 'mfe', + 'mg-MG': 'mg', + 'mgh-MZ': 'mgh', + 'mgo-CM': 'mgo', + 'mi-NZ': 'mi', + 'mk-MK': 'mk', + 'ml-IN': 'ml', 'mn-Cyrl': 'mn', + 'mn-MN': 'mn', + 'mn-Mong': 'mn', + 'mn-Mong-CN': 'mn', + 'mn-Mong-MN': 'mn', + mni: 'en', + 'mni-IN': 'en', + moh: 'en', + 'moh-CA': 'en', + 'mr-IN': 'mr', + 'ms-MY': 'ms', + 'mt-MT': 'mt', + 'mua-CM': 'mua', + 'my-MM': 'my', + 'mzn-IR': 'mzn', + 'naq-NA': 'naq', + 'nb-NO': 'nb', + + 'nd-ZW': 'nd', + 'ne-NP': 'ne', + 'nl-NL': 'nl', + 'nmg-CM': 'ngm', + 'nn-NO': 'nn', + 'nnh-CM': 'nnh', + no: 'en', + nqo: 'en', + 'nqo-GN': 'en', + nr: 'en', + 'nr-ZA': 'en', + nso: 'en', + 'nso-ZA': 'en', + 'nus-SS': 'nus', + 'nyn-UG': 'nyn', + oc: 'en', + 'oc-FR': 'fr', + 'om-ET': 'om', + 'or-IN': 'or', + 'os-GE': 'os', + 'pa-Arab-PK': 'pa-Arab', + 'pa-IN': 'pa', + pap: 'en', + 'pap-029': 'en', + 'pl-PL': 'pl', + 'prg-001': 'prg', + prs: 'en', + 'prs-AF': 'en', + 'ps-AF': 'ps', 'pt-BR': 'pt', - 'sd-Arab': 'pa-Arab', - 'sr-Cyrl-RS': 'sr-Cyrl', + quc: 'en', + 'quc-Latn': 'en', + 'quc-Latn-GT': 'en', + quz: 'en', + 'quz-BO': 'en', + 'quz-EC': 'en', + 'quz-PE': 'en', + 'rm-CH': 'rm', + 'rn-BI': 'rn', + 'ro-RO': 'ro', + 'rof-TZ': 'rof', + 'ru-RU': 'ru', + 'rw-RW': 'rw', + 'rwk-TZ': 'rwk', + sa: 'en', + 'sa-IN': 'en', + 'sah-RU': 'sah', + 'saq-KE': 'saq', + 'sbp-TZ': 'en', + 'sd-Arab': 'sd', + 'sd-Arab-PK': 'sd', + 'sd-Deva': 'sd', + 'sd-Deva-IN': 'sd', + 'se-NO': 'se', + 'seh-MZ': 'seh', + 'ses-ML': 'ses', + 'sg-CF': 'sg', + 'shi-Latn-MA': 'shi-Latn', + 'shi-Tfng-MA': 'shi-Tfng', + 'si-LK': 'si', + 'sk-SK': 'sk', + 'sl-SI': 'sl', + sma: 'en', + 'sma-NO': 'en', + 'sma-SE': 'en', + smj: 'en', + 'smj-NO': 'en', + 'smj-SE': 'en', + 'smn-FI': 'en', + sms: 'en', + 'sms-FI': 'en', + 'sn-Latn': 'sn', + 'sn-Latn-ZW': 'sn', + 'so-SO': 'so', + 'sq-AL': 'so', + 'sr-Cyrl-RS': 'sr-Cryl', 'sr-Latn-RS': 'sr-Latn', + ss: 'en', + 'ss-SZ': 'en', + 'ss-ZA': 'en', + ssy: 'en', + 'ssy-ER': 'en', + st: 'en', + 'st-LS': 'en', + 'st-ZA': 'en', + 'sv-SE': 'sv', + 'sw-TZ': 'sw', + syr: 'en', + 'syr-SY': 'en', + 'ta-IN': 'ta', + 'te-IN': 'te', + 'teo-UG': 'teo', 'tg-Cyrl': 'tg', - 'tk-Latn': 'tk', - 'tt-Cyrl': 'tt', - 'ug-Arab': 'ug', - 'yo-Latn': 'yo', + 'tg-Cyrl-TJ': 'tg', + 'th-TH': 'th', + 'ti-ET': 'ti', + tig: 'en', + 'tig-ER': 'en', + 'tk-TM': 'tk', + tn: 'en', + 'tn-BW': 'en', + 'tn-ZA': 'en', + 'to-TO': 'to', + 'tr-TR': 'tr', + ts: 'en', + 'ts-ZA': 'en', + 'tt-RU': 'tt', + 'twq-NE': 'twq', + 'tzm-Arab': 'tzm', + 'tzm-Arab-MA': 'tzm', + 'tzm-Latn': 'tzm', + 'tzm-Latn-DZ': 'tzm', + 'tzm-Latn-MA': 'tzm', + 'tzm-Tfng': 'tzm', + 'tzm-Tfng-MA': 'tzm', + 'ug-CN': 'ug', + 'uk-UA': 'uk', + 'ur-PK': 'ur', + 'uz-Arab-AF': 'uz-Arab', + 'uz-Cyrl-UZ': 'uz-Cyrl', + 'uz-Latn-UZ': 'uz-Latn', + 'vai-Latn-LR': 'vai-Latn', + 'vai-Vaii-LR': 'vai-Vaii', + ve: 'en', + 've-ZA': 'en', + 'vi-VN': 'vi', + 'vo-001': 'vo', + 'vun-TZ': 'vun', + 'wae-CH': 'wae', + wal: 'en', + 'wal-ET': 'en', + 'wo-SN': 'wo', + 'xh-ZA': 'xh', + 'xog-UG': 'xog', + 'yav-CM': 'yav', + 'yi-001': 'yi', + 'yo-NG': 'yo', + 'zgh-Tfng': 'zgh', + 'zgh-Tfng-MA': 'zgh', + 'zh-CN': 'zh', + 'zh-HK': 'zh', + 'zh-MO': 'zh', + 'zh-SG': 'zh', + 'zh-TW': 'zh', + 'zu-ZA': 'zu', }; diff --git a/npm/ng-packs/packages/core/src/lib/constants/included-locales.ts b/npm/ng-packs/packages/core/src/lib/constants/included-locales.ts new file mode 100644 index 0000000000..68ec959235 --- /dev/null +++ b/npm/ng-packs/packages/core/src/lib/constants/included-locales.ts @@ -0,0 +1,12 @@ +export const includedLocales = [ + 'tr', + 'ar', + 'cs', + 'en', + 'fr', + 'pt', + 'ru', + 'sl', + 'zh-Hans', + 'zh-Hant', +]; diff --git a/npm/ng-packs/packages/core/src/lib/constants/index.ts b/npm/ng-packs/packages/core/src/lib/constants/index.ts index 54aaba730c..2113cfed8c 100644 --- a/npm/ng-packs/packages/core/src/lib/constants/index.ts +++ b/npm/ng-packs/packages/core/src/lib/constants/index.ts @@ -1 +1,2 @@ export * from './different-locales'; +export * from './included-locales'; From 1d07d6e173362bea4bf360ca611a02f636da000b Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Sat, 3 Oct 2020 00:59:10 +0300 Subject: [PATCH 020/242] refactor: reduce locale chunk files count & imrove locale registering --- .../src/lib/services/localization.service.ts | 3 +- .../core/src/lib/utils/initial-utils.ts | 72 +++++++++++++++---- 2 files changed, 61 insertions(+), 14 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/services/localization.service.ts b/npm/ng-packs/packages/core/src/lib/services/localization.service.ts index 5cdbe3c291..c6ebb3dd00 100644 --- a/npm/ng-packs/packages/core/src/lib/services/localization.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/localization.service.ts @@ -48,12 +48,11 @@ export class LocalizationService { registerLocale(locale: string) { const router = this.injector.get(Router); - const { cultureNameLocaleFileMap } = this.injector.get(CORE_OPTIONS); const { shouldReuseRoute } = router.routeReuseStrategy; router.routeReuseStrategy.shouldReuseRoute = () => false; router.navigated = false; - return registerLocale(locale, cultureNameLocaleFileMap).then(() => { + return registerLocale(locale, this.injector).then(() => { this.ngZone.run(async () => { await router.navigateByUrl(router.url).catch(noop); router.routeReuseStrategy.shouldReuseRoute = shouldReuseRoute; diff --git a/npm/ng-packs/packages/core/src/lib/utils/initial-utils.ts b/npm/ng-packs/packages/core/src/lib/utils/initial-utils.ts index cf35cc3023..76f01214c8 100644 --- a/npm/ng-packs/packages/core/src/lib/utils/initial-utils.ts +++ b/npm/ng-packs/packages/core/src/lib/utils/initial-utils.ts @@ -1,5 +1,5 @@ import { registerLocaleData } from '@angular/common'; -import { Injector } from '@angular/core'; +import { Injector, isDevMode } from '@angular/core'; import { Store } from '@ngxs/store'; import { OAuthService } from 'angular-oauth2-oidc'; import { tap } from 'rxjs/operators'; @@ -8,6 +8,7 @@ import { ABP } from '../models/common'; import { AuthService } from '../services/auth.service'; import { ConfigState } from '../states/config.state'; import { clearOAuthStorage } from '../strategies/auth-flow.strategy'; +import { LocaleErrorHandlerData, LOCALE_ERROR_HANDLER } from '../tokens/locale-error-handler.token'; import { CORE_OPTIONS } from '../tokens/options.token'; import { getRemoteEnv } from './environment-utils'; import { parseTenantFromUrl } from './multi-tenancy-utils'; @@ -42,26 +43,73 @@ export function checkAccessToken(store: Store, injector: Injector) { export function localeInitializer(injector: Injector) { const fn = () => { const store: Store = injector.get(Store); - const options = injector.get(CORE_OPTIONS); const lang = store.selectSnapshot(state => state.SessionState.language) || 'en'; return new Promise((resolve, reject) => { - registerLocale(lang, options.cultureNameLocaleFileMap).then( - () => resolve('resolved'), - reject, - ); + registerLocale(lang, injector).then(() => resolve('resolved'), reject); }); }; return fn; } -export function registerLocale(locale: string, localeNameMap: ABP.Dictionary) { - return import( - /* webpackChunkName: "_locale-[request]"*/ - `@angular/common/locales/${localeNameMap[locale] || locale}.js` - ).then(module => { - registerLocaleData(module.default); +export function registerLocale(locale: string, injector: Injector): Promise { + const { cultureNameLocaleFileMap } = injector.get(CORE_OPTIONS, {} as ABP.Root); + + const errorHandlerFn = injector.get(LOCALE_ERROR_HANDLER, defaultLocalErrorHandlerFn); + + return new Promise((resolve, reject) => { + return import( + /* webpackChunkName: "_locale-[request]"*/ + /* webpackInclude: /\/(ar|cs|en|fr|pt|ru|sl|zh-Hans|zh-Hant).js/ */ + /* webpackExclude: /\/global|\/extra/ */ + `@angular/common/locales/${cultureNameLocaleFileMap[locale] || locale}.js` + ) + .then(module => { + registerLocaleData(module.default, locale); + resolve(module.default); + }) + .catch(error => { + errorHandlerFn({ + resolve, + reject, + error, + injector, + locale, + storedLocales: { ...extraLocales }, + }); + }); }); } + +const extraLocales = {}; +export function storeLocaleData(data: any, localeId: string) { + extraLocales[localeId] = data; +} + +async function defaultLocalErrorHandlerFn({ + locale, + storedLocales, + resolve, + injector, +}: LocaleErrorHandlerData) { + if (storedLocales[locale]) { + registerLocaleData(storedLocales[locale], locale); + resolve(); + return; + } + + if (isDevMode) { + console.error(`Cannot find the ${locale} locale file. You should add the code below to app.module: + +import { storeLocaleData } from '@abp/ng.core'; +import( +/* webpackChunkName: "_locale-${locale}-js"*/ +/* webpackMode: "eager" */ +'@angular/common/locales/${locale}.js' +).then(m => storeLocaleData(m.default, '${locale}'));`); + } + + resolve(); +} From 5151be6bddcd837a6a84113e970c5b7fadbc8086 Mon Sep 17 00:00:00 2001 From: PMExtra Date: Sun, 4 Oct 2020 17:57:24 +0800 Subject: [PATCH 021/242] Improve EFCoreRepositoryExtensions. --- .../EfCoreRepositoryExtensions.cs | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Domain/Repositories/EfCoreRepositoryExtensions.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Domain/Repositories/EfCoreRepositoryExtensions.cs index a019d29a49..1153f5e873 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Domain/Repositories/EfCoreRepositoryExtensions.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/Domain/Repositories/EfCoreRepositoryExtensions.cs @@ -9,28 +9,27 @@ namespace Volo.Abp.Domain.Repositories public static class EfCoreRepositoryExtensions { - public static DbContext GetDbContext(this IReadOnlyBasicRepository repository) - where TEntity : class, IEntity + public static DbContext GetDbContext(this IReadOnlyBasicRepository repository) + where TEntity : class, IEntity { return repository.ToEfCoreRepository().DbContext; } - public static DbSet GetDbSet(this IReadOnlyBasicRepository repository) - where TEntity : class, IEntity + public static DbSet GetDbSet(this IReadOnlyBasicRepository repository) + where TEntity : class, IEntity { return repository.ToEfCoreRepository().DbSet; } - public static IEfCoreRepository ToEfCoreRepository(this IReadOnlyBasicRepository repository) - where TEntity : class, IEntity + public static IEfCoreRepository ToEfCoreRepository(this IReadOnlyBasicRepository repository) + where TEntity : class, IEntity { - var efCoreRepository = repository as IEfCoreRepository; - if (efCoreRepository == null) + if (repository is IEfCoreRepository efCoreRepository) { - throw new ArgumentException("Given repository does not implement " + typeof(IEfCoreRepository).AssemblyQualifiedName, nameof(repository)); + return efCoreRepository; } - return efCoreRepository; + throw new ArgumentException("Given repository does not implement " + typeof(IEfCoreRepository).AssemblyQualifiedName, nameof(repository)); } } } From fb80dccb4be10157a66718f2d717db43d3153a96 Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Sun, 4 Oct 2020 16:52:29 +0300 Subject: [PATCH 022/242] chore: add tr locale to webpack magic comment --- npm/ng-packs/packages/core/src/lib/utils/initial-utils.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/npm/ng-packs/packages/core/src/lib/utils/initial-utils.ts b/npm/ng-packs/packages/core/src/lib/utils/initial-utils.ts index 76f01214c8..be9e7184e5 100644 --- a/npm/ng-packs/packages/core/src/lib/utils/initial-utils.ts +++ b/npm/ng-packs/packages/core/src/lib/utils/initial-utils.ts @@ -62,7 +62,7 @@ export function registerLocale(locale: string, injector: Injector): Promise return new Promise((resolve, reject) => { return import( /* webpackChunkName: "_locale-[request]"*/ - /* webpackInclude: /\/(ar|cs|en|fr|pt|ru|sl|zh-Hans|zh-Hant).js/ */ + /* webpackInclude: /\/(ar|cs|en|fr|pt|tr|ru|sl|zh-Hans|zh-Hant).js/ */ /* webpackExclude: /\/global|\/extra/ */ `@angular/common/locales/${cultureNameLocaleFileMap[locale] || locale}.js` ) From fbe4975543b7820942da1fc5d73c875bbba6b288 Mon Sep 17 00:00:00 2001 From: maliming <6908465+maliming@users.noreply.github.com> Date: Mon, 5 Oct 2020 09:32:34 +0800 Subject: [PATCH 023/242] Rename ResolverAndGet to GetAsync. --- .../Volo/Abp/AspNetCore/MultiTenancy/MultiTenancyMiddleware.cs | 2 +- .../Volo/Abp/MultiTenancy/ITenantConfigurationProvider.cs | 2 +- .../Volo/Abp/MultiTenancy/TenantConfigurationProvider.cs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/MultiTenancyMiddleware.cs b/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/MultiTenancyMiddleware.cs index e0a5cfb498..24e2b40067 100644 --- a/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/MultiTenancyMiddleware.cs +++ b/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/MultiTenancyMiddleware.cs @@ -20,7 +20,7 @@ namespace Volo.Abp.AspNetCore.MultiTenancy public async Task InvokeAsync(HttpContext context, RequestDelegate next) { - var tenant = await _tenantConfigurationProvider.ResolverAndGet(); + var tenant = await _tenantConfigurationProvider.GetAsync(); using (_currentTenant.Change(tenant?.Id, tenant?.Name)) { await next(context); diff --git a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ITenantConfigurationProvider.cs b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ITenantConfigurationProvider.cs index 6d573bac36..d46b6b2497 100644 --- a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ITenantConfigurationProvider.cs +++ b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/ITenantConfigurationProvider.cs @@ -4,6 +4,6 @@ namespace Volo.Abp.MultiTenancy { public interface ITenantConfigurationProvider { - Task ResolverAndGet(); + Task GetAsync(); } } diff --git a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantConfigurationProvider.cs b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantConfigurationProvider.cs index c07ec3931d..7e32611dfb 100644 --- a/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantConfigurationProvider.cs +++ b/framework/src/Volo.Abp.MultiTenancy/Volo/Abp/MultiTenancy/TenantConfigurationProvider.cs @@ -20,7 +20,7 @@ namespace Volo.Abp.MultiTenancy TenantResolveResultAccessor = tenantResolveResultAccessor; } - public virtual async Task ResolverAndGet() + public virtual async Task GetAsync() { var resolveResult = TenantResolver.ResolveTenantIdOrName(); TenantResolveResultAccessor.Result = resolveResult; From 520e80cb3bf90071f03474e2b6f9d11ebbd3492e Mon Sep 17 00:00:00 2001 From: muhammedaltug Date: Mon, 5 Oct 2020 12:26:04 +0300 Subject: [PATCH 024/242] fix: locale error handler message changed. -code block moved to documentation --- docs/en/UI/Angular/Localization.md | 11 +++++++++++ .../packages/core/src/lib/utils/initial-utils.ts | 9 +-------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/docs/en/UI/Angular/Localization.md b/docs/en/UI/Angular/Localization.md index eec4db0cb4..c8073585e1 100644 --- a/docs/en/UI/Angular/Localization.md +++ b/docs/en/UI/Angular/Localization.md @@ -219,7 +219,18 @@ If you see an error like this, you should pass the `cultureNameLocaleFileMap` pr See [all locale files in Angular](https://github.com/angular/angular/tree/master/packages/common/locales). +## Adding new culture +```js +//app.module.ts + +import { storeLocaleData } from '@abp/ng.core'; +import( +/* webpackChunkName: "_locale-your-locale-js"*/ +/* webpackMode: "eager" */ +'@angular/common/locales/your-locale.js' +).then(m => storeLocaleData(m.default, 'your-locale')); +``` ## See Also * [Localization in ASP.NET Core](../../Localization.md) diff --git a/npm/ng-packs/packages/core/src/lib/utils/initial-utils.ts b/npm/ng-packs/packages/core/src/lib/utils/initial-utils.ts index be9e7184e5..b30b1e742b 100644 --- a/npm/ng-packs/packages/core/src/lib/utils/initial-utils.ts +++ b/npm/ng-packs/packages/core/src/lib/utils/initial-utils.ts @@ -101,14 +101,7 @@ async function defaultLocalErrorHandlerFn({ } if (isDevMode) { - console.error(`Cannot find the ${locale} locale file. You should add the code below to app.module: - -import { storeLocaleData } from '@abp/ng.core'; -import( -/* webpackChunkName: "_locale-${locale}-js"*/ -/* webpackMode: "eager" */ -'@angular/common/locales/${locale}.js' -).then(m => storeLocaleData(m.default, '${locale}'));`); + console.error(`Cannot find the ${locale} locale file. You can check how can add new culture at https://docs.abp.io/en/abp/latest/UI/Angular/Localization#adding-new-culture`); } resolve(); From 6e79efce2c209e7e932add818d90d3820d96e1f2 Mon Sep 17 00:00:00 2001 From: maliming <6908465+maliming@users.noreply.github.com> Date: Mon, 5 Oct 2020 17:44:49 +0800 Subject: [PATCH 025/242] Upgrade TargetFramework/packages to net5.0 RC. --- ...Volo.Abp.ApiVersioning.Abstractions.csproj | 2 +- ...AspNetCore.Authentication.JwtBearer.csproj | 4 +- ...Abp.AspNetCore.Authentication.OAuth.csproj | 2 +- ...etCore.Authentication.OpenIdConnect.csproj | 4 +- ...e.Components.WebAssembly.BasicTheme.csproj | 2 +- ...Core.Components.WebAssembly.Theming.csproj | 2 +- ...p.AspNetCore.Components.WebAssembly.csproj | 6 +- .../Volo.Abp.AspNetCore.MultiTenancy.csproj | 2 +- ...lo.Abp.AspNetCore.Mvc.Client.Common.csproj | 2 +- .../Volo.Abp.AspNetCore.Mvc.Client.csproj | 2 +- .../Volo.Abp.AspNetCore.Mvc.Contracts.csproj | 2 +- ...olo.Abp.AspNetCore.Mvc.UI.Bootstrap.csproj | 4 +- ...Volo.Abp.AspNetCore.Mvc.UI.Bundling.csproj | 2 +- ....Abp.AspNetCore.Mvc.UI.MultiTenancy.csproj | 2 +- ...Volo.Abp.AspNetCore.Mvc.UI.Packages.csproj | 2 +- ...o.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj | 2 +- ...AspNetCore.Mvc.UI.Theme.Shared.Demo.csproj | 4 +- ....Abp.AspNetCore.Mvc.UI.Theme.Shared.csproj | 2 +- .../Volo.Abp.AspNetCore.Mvc.UI.Widgets.csproj | 2 +- .../Volo.Abp.AspNetCore.Mvc.UI.csproj | 2 +- .../Volo.Abp.AspNetCore.Mvc.csproj | 6 +- .../Volo.Abp.AspNetCore.Serilog.csproj | 2 +- .../Volo.Abp.AspNetCore.SignalR.csproj | 2 +- .../Volo.Abp.AspNetCore.TestBase.csproj | 4 +- .../Volo.Abp.AspNetCore.csproj | 2 +- .../AbpAspNetCoreContentOptions.cs | 758 +++++++++--------- .../Volo.Abp.Auditing.csproj | 2 +- .../Volo.Abp.Authorization.csproj | 4 +- .../Volo.Abp.AutoMapper.csproj | 2 +- .../Volo.Abp.Autofac.WebAssembly.csproj | 2 +- .../Volo.Abp.Autofac/Volo.Abp.Autofac.csproj | 4 +- ...olo.Abp.BackgroundJobs.Abstractions.csproj | 2 +- .../Volo.Abp.BackgroundJobs.HangFire.csproj | 2 +- .../Volo.Abp.BackgroundJobs.Quartz.csproj | 2 +- .../Volo.Abp.BackgroundJobs.RabbitMQ.csproj | 2 +- .../Volo.Abp.BackgroundJobs.csproj | 2 +- .../Volo.Abp.BackgroundWorkers.Quartz.csproj | 2 +- .../Volo.Abp.BackgroundWorkers.csproj | 2 +- .../Volo.Abp.BlazoriseUI.csproj | 2 +- .../Volo.Abp.BlobStoring.Aliyun.csproj | 2 +- .../Volo.Abp.BlobStoring.Aws.csproj | 4 +- .../Volo.Abp.BlobStoring.Azure.csproj | 2 +- .../Volo.Abp.BlobStoring.FileSystem.csproj | 2 +- .../Volo.Abp.BlobStoring.Minio.csproj | 4 +- .../Volo.Abp.BlobStoring.csproj | 2 +- ...Volo.Abp.Caching.StackExchangeRedis.csproj | 4 +- .../Volo.Abp.Caching/Volo.Abp.Caching.csproj | 4 +- .../Volo.Abp.Castle.Core.csproj | 2 +- .../Volo.Abp.Cli.Core.csproj | 2 +- .../src/Volo.Abp.Cli/Volo.Abp.Cli.csproj | 6 +- .../System/Linq/PredicateOperator.cs | 14 +- .../src/Volo.Abp.Core/Volo.Abp.Core.csproj | 20 +- .../Volo.Abp.Dapper/Volo.Abp.Dapper.csproj | 2 +- .../src/Volo.Abp.Data/Volo.Abp.Data.csproj | 2 +- .../Volo.Abp.Ddd.Application.Contracts.csproj | 2 +- .../Volo.Abp.Ddd.Application.csproj | 2 +- .../Volo.Abp.Ddd.Domain.csproj | 2 +- .../Volo.Abp.Emailing.csproj | 2 +- .../Volo.Abp.EntityFrameworkCore.MySQL.csproj | 6 +- ...p.EntityFrameworkCore.Oracle.Devart.csproj | 2 +- ...Volo.Abp.EntityFrameworkCore.Oracle.csproj | 2 +- ....Abp.EntityFrameworkCore.PostgreSql.csproj | 4 +- ...o.Abp.EntityFrameworkCore.SqlServer.csproj | 4 +- ...Volo.Abp.EntityFrameworkCore.Sqlite.csproj | 4 +- .../Volo.Abp.EntityFrameworkCore.csproj | 6 +- .../DatabaseFacadeExtensions.cs | 15 - .../Volo.Abp.EventBus.Kafka.csproj | 4 +- .../Volo.Abp.EventBus.RabbitMQ.csproj | 2 +- .../Volo.Abp.EventBus.csproj | 2 +- .../Volo.Abp.Features.csproj | 2 +- .../Volo.Abp.FluentValidation.csproj | 2 +- .../Volo.Abp.GlobalFeatures.csproj | 2 +- .../src/Volo.Abp.Guids/Volo.Abp.Guids.csproj | 2 +- .../Volo.Abp.HangFire.csproj | 2 +- .../Volo.Abp.Http.Abstractions.csproj | 2 +- ...o.Abp.Http.Client.IdentityModel.Web.csproj | 2 +- ...tp.Client.IdentityModel.WebAssembly.csproj | 6 +- .../Volo.Abp.Http.Client.IdentityModel.csproj | 2 +- .../Volo.Abp.Http.Client.csproj | 4 +- .../src/Volo.Abp.Http/Volo.Abp.Http.csproj | 2 +- .../Volo.Abp.IdentityModel.csproj | 4 +- .../src/Volo.Abp.Json/Volo.Abp.Json.csproj | 4 +- .../src/Volo.Abp.Kafka/Volo.Abp.Kafka.csproj | 6 +- .../src/Volo.Abp.Ldap/Volo.Abp.Ldap.csproj | 6 +- .../Volo.Abp.Localization.Abstractions.csproj | 2 +- .../Volo.Abp.Localization.csproj | 6 +- .../Volo.Abp.MailKit/Volo.Abp.MailKit.csproj | 2 +- .../Volo.Abp.MemoryDb.csproj | 2 +- .../Volo.Abp.Minify/Volo.Abp.Minify.csproj | 2 +- .../Volo.Abp.MongoDB/Volo.Abp.MongoDB.csproj | 2 +- .../Volo.Abp.MultiTenancy.csproj | 2 +- .../Volo.Abp.ObjectExtending.csproj | 4 +- .../Volo.Abp.ObjectMapping.csproj | 2 +- .../Volo.Abp.Quartz/Volo.Abp.Quartz.csproj | 2 +- .../Volo.Abp.RabbitMQ.csproj | 2 +- .../Volo.Abp.Security.csproj | 2 +- .../Volo.Abp.Serialization.csproj | 2 +- .../Volo.Abp.Settings.csproj | 2 +- .../src/Volo.Abp.Sms/Volo.Abp.Sms.csproj | 2 +- .../Volo.Abp.Specifications.csproj | 2 +- .../Volo.Abp.TestBase.csproj | 2 +- .../Volo.Abp.TextTemplating.csproj | 2 +- .../Volo.Abp.Threading.csproj | 2 +- .../Volo.Abp.Timing/Volo.Abp.Timing.csproj | 2 +- .../Volo.Abp.UI.Navigation.csproj | 2 +- framework/src/Volo.Abp.UI/Volo.Abp.UI.csproj | 4 +- .../src/Volo.Abp.Uow/Volo.Abp.Uow.csproj | 2 +- .../Volo.Abp.Validation.Abstractions.csproj | 4 +- .../Volo.Abp.Validation.csproj | 2 +- .../Volo.Abp.VirtualFileSystem.csproj | 8 +- framework/src/Volo.Abp/Volo.Abp.csproj | 2 +- framework/test/AbpTestBase/AbpTestBase.csproj | 2 +- .../SimpleConsoleDemo.csproj | 4 +- ...pNetCore.Authentication.OAuth.Tests.csproj | 2 +- ...o.Abp.AspNetCore.MultiTenancy.Tests.csproj | 4 +- .../Volo.Abp.AspNetCore.Mvc.Tests.csproj | 2 +- ...NetCore.Mvc.UI.Bootstrap.Demo.Tests.csproj | 2 +- ...bp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj | 6 +- .../Volo.Abp.AspNetCore.Mvc.UI.Tests.csproj | 2 +- ....AspNetCore.Mvc.UI.Theme.Basic.Demo.csproj | 4 +- ...spNetCore.Mvc.UI.Theme.Shared.Tests.csproj | 2 +- ...Abp.AspNetCore.Mvc.Versioning.Tests.csproj | 4 +- .../Volo.Abp.AspNetCore.Serilog.Tests.csproj | 2 +- .../Volo.Abp.AspNetCore.SignalR.Tests.csproj | 2 +- .../Volo.Abp.AspNetCore.Tests.csproj | 6 +- .../Volo.Abp.Auditing.Tests.csproj | 2 +- .../Volo.Abp.Authorization.Tests.csproj | 2 +- .../Volo.Abp.AutoMapper.Tests.csproj | 4 +- .../Volo.Abp.Autofac.Tests.csproj | 2 +- .../Volo.Abp.BackgroundJobs.Tests.csproj | 4 +- .../Volo.Abp.BlobStoring.Aliyun.Tests.csproj | 4 +- .../Volo.Abp.BlobStoring.Aws.Tests.csproj | 2 +- .../Volo.Abp.BlobStoring.Azure.Tests.csproj | 2 +- ...lo.Abp.BlobStoring.FileSystem.Tests.csproj | 2 +- .../Volo.Abp.BlobStoring.Minio.Tests.csproj | 2 +- .../Volo.Abp.BlobStoring.Tests.csproj | 2 +- ...bp.Caching.StackExchangeRedis.Tests.csproj | 2 +- .../Volo.Abp.Caching.Tests.csproj | 2 +- .../Volo.Abp.Castle.Core.Tests.csproj | 2 +- .../Volo.Abp.Cli.Core.Tests.csproj | 2 +- .../Volo.Abp.Core.Tests.csproj | 2 +- .../Volo.Abp.Dapper.Tests.csproj | 2 +- .../Volo.Abp.Data.Tests.csproj | 4 +- .../Volo.Abp.Ddd.Tests.csproj | 2 +- .../Volo.Abp.Emailing.Tests.csproj | 2 +- ...tyFrameworkCore.Tests.SecondContext.csproj | 4 +- .../Volo.Abp.EntityFrameworkCore.Tests.csproj | 2 +- .../Volo.Abp.EventBus.Tests.csproj | 2 +- .../Volo.Abp.Features.Tests.csproj | 2 +- .../Volo.Abp.FluentValidation.Tests.csproj | 2 +- .../Volo.Abp.GlobalFeatures.Tests.csproj | 2 +- ...Http.Client.IdentityModel.Web.Tests.csproj | 2 +- .../Volo.Abp.Http.Client.Tests.csproj | 2 +- .../Volo.Abp.Ldap.Tests.csproj | 2 +- .../Volo.Abp.Localization.Tests.csproj | 2 +- .../Volo.Abp.MailKit.Tests.csproj | 2 +- .../Volo.Abp.MemoryDb.Tests.csproj | 2 +- .../Volo.Abp.Minify.Tests.csproj | 2 +- .../Volo.Abp.MongoDB.Tests.csproj | 2 +- .../Volo.Abp.MultiTenancy.Tests.csproj | 2 +- .../Volo.Abp.ObjectExtending.Tests.csproj | 4 +- .../Volo.Abp.ObjectMapping.Tests.csproj | 2 +- .../Volo.Abp.Security.Tests.csproj | 2 +- .../Volo.Abp.Serialization.Tests.csproj | 2 +- .../Volo.Abp.Settings.Tests.csproj | 2 +- .../Volo.Abp.Specifications.Tests.csproj | 2 +- .../Volo.Abp.TestApp.Tests.csproj | 2 +- .../Volo.Abp.TestApp/Volo.Abp.TestApp.csproj | 2 +- .../Volo.Abp.TextTemplating.Tests.csproj | 2 +- .../Volo.Abp.UI.Navigation.Tests.csproj | 2 +- .../Volo.Abp.Uow.Tests.csproj | 2 +- .../Volo.Abp.Validation.Tests.csproj | 2 +- .../Volo.Abp.VirtualFileSystem.Tests.csproj | 4 +- global.json | 2 +- 174 files changed, 621 insertions(+), 640 deletions(-) delete mode 100644 framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/DatabaseFacadeExtensions.cs diff --git a/framework/src/Volo.Abp.ApiVersioning.Abstractions/Volo.Abp.ApiVersioning.Abstractions.csproj b/framework/src/Volo.Abp.ApiVersioning.Abstractions/Volo.Abp.ApiVersioning.Abstractions.csproj index 365450cd73..eba57eaecd 100644 --- a/framework/src/Volo.Abp.ApiVersioning.Abstractions/Volo.Abp.ApiVersioning.Abstractions.csproj +++ b/framework/src/Volo.Abp.ApiVersioning.Abstractions/Volo.Abp.ApiVersioning.Abstractions.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.ApiVersioning.Abstractions Volo.Abp.ApiVersioning.Abstractions $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.AspNetCore.Authentication.JwtBearer/Volo.Abp.AspNetCore.Authentication.JwtBearer.csproj b/framework/src/Volo.Abp.AspNetCore.Authentication.JwtBearer/Volo.Abp.AspNetCore.Authentication.JwtBearer.csproj index 1d30366e67..4132cfb6e6 100644 --- a/framework/src/Volo.Abp.AspNetCore.Authentication.JwtBearer/Volo.Abp.AspNetCore.Authentication.JwtBearer.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Authentication.JwtBearer/Volo.Abp.AspNetCore.Authentication.JwtBearer.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.AspNetCore.Authentication.JwtBearer Volo.Abp.AspNetCore.Authentication.JwtBearer $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -19,7 +19,7 @@ - + diff --git a/framework/src/Volo.Abp.AspNetCore.Authentication.OAuth/Volo.Abp.AspNetCore.Authentication.OAuth.csproj b/framework/src/Volo.Abp.AspNetCore.Authentication.OAuth/Volo.Abp.AspNetCore.Authentication.OAuth.csproj index ae032e5b9e..18e9a271dc 100644 --- a/framework/src/Volo.Abp.AspNetCore.Authentication.OAuth/Volo.Abp.AspNetCore.Authentication.OAuth.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Authentication.OAuth/Volo.Abp.AspNetCore.Authentication.OAuth.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.AspNetCore.Authentication.OAuth Volo.Abp.AspNetCore.Authentication.OAuth $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Volo.Abp.AspNetCore.Authentication.OpenIdConnect.csproj b/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Volo.Abp.AspNetCore.Authentication.OpenIdConnect.csproj index 30f56491c5..4e40e1bcf9 100644 --- a/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Volo.Abp.AspNetCore.Authentication.OpenIdConnect.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Authentication.OpenIdConnect/Volo.Abp.AspNetCore.Authentication.OpenIdConnect.csproj @@ -4,12 +4,12 @@ - netcoreapp3.1 + net5.0 - + diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.csproj b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.csproj index 783af0b202..0428c17068 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme/Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.csproj @@ -4,7 +4,7 @@ - netstandard2.1 + net5.0 3.0 Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/Volo.Abp.AspNetCore.Components.WebAssembly.Theming.csproj b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/Volo.Abp.AspNetCore.Components.WebAssembly.Theming.csproj index 86902f7038..55851c2868 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/Volo.Abp.AspNetCore.Components.WebAssembly.Theming.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly.Theming/Volo.Abp.AspNetCore.Components.WebAssembly.Theming.csproj @@ -4,7 +4,7 @@ - netstandard2.1 + net5.0 3.0 diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo.Abp.AspNetCore.Components.WebAssembly.csproj b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo.Abp.AspNetCore.Components.WebAssembly.csproj index 89f2d08b49..263e0fd4b5 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo.Abp.AspNetCore.Components.WebAssembly.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo.Abp.AspNetCore.Components.WebAssembly.csproj @@ -4,7 +4,7 @@ - netstandard2.1 + net5.0 Volo.Abp.AspNetCore.Components.WebAssembly Volo.Abp.AspNetCore.Components.WebAssembly $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -20,8 +20,8 @@ - - + + diff --git a/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo.Abp.AspNetCore.MultiTenancy.csproj b/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo.Abp.AspNetCore.MultiTenancy.csproj index e9fa75d716..5468fb91c3 100644 --- a/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo.Abp.AspNetCore.MultiTenancy.csproj +++ b/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo.Abp.AspNetCore.MultiTenancy.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.AspNetCore.MultiTenancy Volo.Abp.AspNetCore.MultiTenancy $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Client.Common/Volo.Abp.AspNetCore.Mvc.Client.Common.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.Client.Common/Volo.Abp.AspNetCore.Mvc.Client.Common.csproj index dc672d842f..d44ca476df 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.Client.Common/Volo.Abp.AspNetCore.Mvc.Client.Common.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Client.Common/Volo.Abp.AspNetCore.Mvc.Client.Common.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.AspNetCore.Mvc.Client.Common Volo.Abp.AspNetCore.Mvc.Client.Common $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo.Abp.AspNetCore.Mvc.Client.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo.Abp.AspNetCore.Mvc.Client.csproj index aa11e602a1..3657e27fef 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo.Abp.AspNetCore.Mvc.Client.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Client/Volo.Abp.AspNetCore.Mvc.Client.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.AspNetCore.Mvc.Client Volo.Abp.AspNetCore.Mvc.Client $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo.Abp.AspNetCore.Mvc.Contracts.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo.Abp.AspNetCore.Mvc.Contracts.csproj index 04b2e7ec59..68d97ce934 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo.Abp.AspNetCore.Mvc.Contracts.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.Contracts/Volo.Abp.AspNetCore.Mvc.Contracts.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.AspNetCore.Mvc.Contracts Volo.Abp.AspNetCore.Mvc.Contracts $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.csproj index 2fb94ac218..de4be2fb8c 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 true Volo.Abp.AspNetCore.Mvc.UI.Bootstrap Volo.Abp.AspNetCore.Mvc.UI.Bootstrap @@ -12,7 +12,7 @@ true Library - + diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo.Abp.AspNetCore.Mvc.UI.Bundling.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo.Abp.AspNetCore.Mvc.UI.Bundling.csproj index 84ea011233..ed2da41347 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo.Abp.AspNetCore.Mvc.UI.Bundling.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Bundling/Volo.Abp.AspNetCore.Mvc.UI.Bundling.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 true Volo.Abp.AspNetCore.Mvc.UI.Bundling Volo.Abp.AspNetCore.Mvc.UI.Bundling diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.csproj index 437ae8c45d..54f4e62b59 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy/Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 true Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy Volo.Abp.AspNetCore.Mvc.UI.MultiTenancy diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo.Abp.AspNetCore.Mvc.UI.Packages.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo.Abp.AspNetCore.Mvc.UI.Packages.csproj index 6cb0a02153..2c3701953e 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo.Abp.AspNetCore.Mvc.UI.Packages.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Packages/Volo.Abp.AspNetCore.Mvc.UI.Packages.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 true Volo.Abp.AspNetCore.Mvc.UI.Packages Volo.Abp.AspNetCore.Mvc.UI.Packages diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj index 206224f918..b421036ab0 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 true Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.csproj index 111a6a898a..49642dfeb7 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 true Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Demo @@ -26,7 +26,7 @@ - + diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.csproj index 4b0fbc24cf..d26564d92b 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 true Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Widgets/Volo.Abp.AspNetCore.Mvc.UI.Widgets.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Widgets/Volo.Abp.AspNetCore.Mvc.UI.Widgets.csproj index 9d0f384611..6b4d98ec28 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Widgets/Volo.Abp.AspNetCore.Mvc.UI.Widgets.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI.Widgets/Volo.Abp.AspNetCore.Mvc.UI.Widgets.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 true Volo.Abp.AspNetCore.Mvc.UI.Widgets Volo.Abp.AspNetCore.Mvc.UI.Widgets diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo.Abp.AspNetCore.Mvc.UI.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo.Abp.AspNetCore.Mvc.UI.csproj index 99a9357392..208cfa1376 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo.Abp.AspNetCore.Mvc.UI.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc.UI/Volo.Abp.AspNetCore.Mvc.UI.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 true Volo.Abp.AspNetCore.Mvc.UI Volo.Abp.AspNetCore.Mvc.UI diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.csproj b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.csproj index e564dec738..9a5352d3c0 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo.Abp.AspNetCore.Mvc.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 true Volo.Abp.AspNetCore.Mvc Volo.Abp.AspNetCore.Mvc @@ -27,9 +27,9 @@ - + - + diff --git a/framework/src/Volo.Abp.AspNetCore.Serilog/Volo.Abp.AspNetCore.Serilog.csproj b/framework/src/Volo.Abp.AspNetCore.Serilog/Volo.Abp.AspNetCore.Serilog.csproj index 348aeb0342..0015b4e237 100644 --- a/framework/src/Volo.Abp.AspNetCore.Serilog/Volo.Abp.AspNetCore.Serilog.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Serilog/Volo.Abp.AspNetCore.Serilog.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.AspNetCore.Serilog Volo.Abp.AspNetCore.Serilog $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.AspNetCore.SignalR/Volo.Abp.AspNetCore.SignalR.csproj b/framework/src/Volo.Abp.AspNetCore.SignalR/Volo.Abp.AspNetCore.SignalR.csproj index f4c833cb90..9fc69b34cc 100644 --- a/framework/src/Volo.Abp.AspNetCore.SignalR/Volo.Abp.AspNetCore.SignalR.csproj +++ b/framework/src/Volo.Abp.AspNetCore.SignalR/Volo.Abp.AspNetCore.SignalR.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.AspNetCore.SignalR Volo.Abp.AspNetCore.SignalR $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.AspNetCore.TestBase/Volo.Abp.AspNetCore.TestBase.csproj b/framework/src/Volo.Abp.AspNetCore.TestBase/Volo.Abp.AspNetCore.TestBase.csproj index ce02e1f0a0..bb92260079 100644 --- a/framework/src/Volo.Abp.AspNetCore.TestBase/Volo.Abp.AspNetCore.TestBase.csproj +++ b/framework/src/Volo.Abp.AspNetCore.TestBase/Volo.Abp.AspNetCore.TestBase.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.AspNetCore.TestBase Volo.Abp.AspNetCore.TestBase $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -24,7 +24,7 @@ - + diff --git a/framework/src/Volo.Abp.AspNetCore/Volo.Abp.AspNetCore.csproj b/framework/src/Volo.Abp.AspNetCore/Volo.Abp.AspNetCore.csproj index a3089646d2..182d622e04 100644 --- a/framework/src/Volo.Abp.AspNetCore/Volo.Abp.AspNetCore.csproj +++ b/framework/src/Volo.Abp.AspNetCore/Volo.Abp.AspNetCore.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.AspNetCore Volo.Abp.AspNetCore $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/VirtualFileSystem/AbpAspNetCoreContentOptions.cs b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/VirtualFileSystem/AbpAspNetCoreContentOptions.cs index 92961971fb..102ac1b7c8 100644 --- a/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/VirtualFileSystem/AbpAspNetCoreContentOptions.cs +++ b/framework/src/Volo.Abp.AspNetCore/Volo/Abp/AspNetCore/VirtualFileSystem/AbpAspNetCoreContentOptions.cs @@ -16,384 +16,386 @@ namespace Volo.Abp.AspNetCore.VirtualFileSystem { ContentTypeMaps = new Dictionary(StringComparer.OrdinalIgnoreCase) { - {".323", "text/h323"}, - {".3g2", "video/3gpp2"}, - {".3gp2", "video/3gpp2"}, - {".3gp", "video/3gpp"}, - {".3gpp", "video/3gpp"}, - {".aac", "audio/aac"}, - {".aaf", "application/octet-stream"}, - {".aca", "application/octet-stream"}, - {".accdb", "application/msaccess"}, - {".accde", "application/msaccess"}, - {".accdt", "application/msaccess"}, - {".acx", "application/internet-property-stream"}, - {".adt", "audio/vnd.dlna.adts"}, - {".adts", "audio/vnd.dlna.adts"}, - {".afm", "application/octet-stream"}, - {".ai", "application/postscript"}, - {".aif", "audio/x-aiff"}, - {".aifc", "audio/aiff"}, - {".aiff", "audio/aiff"}, - {".appcache", "text/cache-manifest"}, - {".application", "application/x-ms-application"}, - {".art", "image/x-jg"}, - {".asd", "application/octet-stream"}, - {".asf", "video/x-ms-asf"}, - {".asi", "application/octet-stream"}, - {".asm", "text/plain"}, - {".asr", "video/x-ms-asf"}, - {".asx", "video/x-ms-asf"}, - {".atom", "application/atom+xml"}, - {".au", "audio/basic"}, - {".avi", "video/x-msvideo"}, - {".axs", "application/olescript"}, - {".bas", "text/plain"}, - {".bcpio", "application/x-bcpio"}, - {".bin", "application/octet-stream"}, - {".bmp", "image/bmp"}, - {".c", "text/plain"}, - {".cab", "application/vnd.ms-cab-compressed"}, - {".calx", "application/vnd.ms-office.calx"}, - {".cat", "application/vnd.ms-pki.seccat"}, - {".cdf", "application/x-cdf"}, - {".chm", "application/octet-stream"}, - {".class", "application/x-java-applet"}, - {".clp", "application/x-msclip"}, - {".cmx", "image/x-cmx"}, - {".cnf", "text/plain"}, - {".cod", "image/cis-cod"}, - {".cpio", "application/x-cpio"}, - {".cpp", "text/plain"}, - {".crd", "application/x-mscardfile"}, - {".crl", "application/pkix-crl"}, - {".crt", "application/x-x509-ca-cert"}, - {".csh", "application/x-csh"}, - {".css", "text/css"}, - {".csv", "application/octet-stream"}, - {".cur", "application/octet-stream"}, - {".dcr", "application/x-director"}, - {".deploy", "application/octet-stream"}, - {".der", "application/x-x509-ca-cert"}, - {".dib", "image/bmp"}, - {".dir", "application/x-director"}, - {".disco", "text/xml"}, - {".dlm", "text/dlm"}, - {".doc", "application/msword"}, - {".docm", "application/vnd.ms-word.document.macroEnabled.12"}, - {".docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document"}, - {".dot", "application/msword"}, - {".dotm", "application/vnd.ms-word.template.macroEnabled.12"}, - {".dotx", "application/vnd.openxmlformats-officedocument.wordprocessingml.template"}, - {".dsp", "application/octet-stream"}, - {".dtd", "text/xml"}, - {".dvi", "application/x-dvi"}, - {".dvr-ms", "video/x-ms-dvr"}, - {".dwf", "drawing/x-dwf"}, - {".dwp", "application/octet-stream"}, - {".dxr", "application/x-director"}, - {".eml", "message/rfc822"}, - {".emz", "application/octet-stream"}, - {".eot", "application/vnd.ms-fontobject"}, - {".eps", "application/postscript"}, - {".etx", "text/x-setext"}, - {".evy", "application/envoy"}, - {".fdf", "application/vnd.fdf"}, - {".fif", "application/fractals"}, - {".fla", "application/octet-stream"}, - {".flr", "x-world/x-vrml"}, - {".flv", "video/x-flv"}, - {".gif", "image/gif"}, - {".gtar", "application/x-gtar"}, - {".gz", "application/x-gzip"}, - {".h", "text/plain"}, - {".hdf", "application/x-hdf"}, - {".hdml", "text/x-hdml"}, - {".hhc", "application/x-oleobject"}, - {".hhk", "application/octet-stream"}, - {".hhp", "application/octet-stream"}, - {".hlp", "application/winhlp"}, - {".hqx", "application/mac-binhex40"}, - {".hta", "application/hta"}, - {".htc", "text/x-component"}, - {".htm", "text/html"}, - {".html", "text/html"}, - {".htt", "text/webviewhtml"}, - {".hxt", "text/html"}, - {".ical", "text/calendar"}, - {".icalendar", "text/calendar"}, - {".ico", "image/x-icon"}, - {".ics", "text/calendar"}, - {".ief", "image/ief"}, - {".ifb", "text/calendar"}, - {".iii", "application/x-iphone"}, - {".inf", "application/octet-stream"}, - {".ins", "application/x-internet-signup"}, - {".isp", "application/x-internet-signup"}, - {".IVF", "video/x-ivf"}, - {".jar", "application/java-archive"}, - {".java", "application/octet-stream"}, - {".jck", "application/liquidmotion"}, - {".jcz", "application/liquidmotion"}, - {".jfif", "image/pjpeg"}, - {".jpb", "application/octet-stream"}, - {".jpe", "image/jpeg"}, - {".jpeg", "image/jpeg"}, - {".jpg", "image/jpeg"}, - {".js", "application/javascript"}, - {".json", "application/json"}, - {".jsx", "text/jscript"}, - {".latex", "application/x-latex"}, - {".lit", "application/x-ms-reader"}, - {".lpk", "application/octet-stream"}, - {".lsf", "video/x-la-asf"}, - {".lsx", "video/x-la-asf"}, - {".lzh", "application/octet-stream"}, - {".m13", "application/x-msmediaview"}, - {".m14", "application/x-msmediaview"}, - {".m1v", "video/mpeg"}, - {".m2ts", "video/vnd.dlna.mpeg-tts"}, - {".m3u", "audio/x-mpegurl"}, - {".m4a", "audio/mp4"}, - {".m4v", "video/mp4"}, - {".man", "application/x-troff-man"}, - {".manifest", "application/x-ms-manifest"}, - {".map", "text/plain"}, - {".markdown", "text/markdown"}, - {".md", "text/markdown"}, - {".mdb", "application/x-msaccess"}, - {".mdp", "application/octet-stream"}, - {".me", "application/x-troff-me"}, - {".mht", "message/rfc822"}, - {".mhtml", "message/rfc822"}, - {".mid", "audio/mid"}, - {".midi", "audio/mid"}, - {".mix", "application/octet-stream"}, - {".mmf", "application/x-smaf"}, - {".mno", "text/xml"}, - {".mny", "application/x-msmoney"}, - {".mov", "video/quicktime"}, - {".movie", "video/x-sgi-movie"}, - {".mp2", "video/mpeg"}, - {".mp3", "audio/mpeg"}, - {".mp4", "video/mp4"}, - {".mp4v", "video/mp4"}, - {".mpa", "video/mpeg"}, - {".mpe", "video/mpeg"}, - {".mpeg", "video/mpeg"}, - {".mpg", "video/mpeg"}, - {".mpp", "application/vnd.ms-project"}, - {".mpv2", "video/mpeg"}, - {".ms", "application/x-troff-ms"}, - {".msi", "application/octet-stream"}, - {".mso", "application/octet-stream"}, - {".mvb", "application/x-msmediaview"}, - {".mvc", "application/x-miva-compiled"}, - {".nc", "application/x-netcdf"}, - {".nsc", "video/x-ms-asf"}, - {".nws", "message/rfc822"}, - {".ocx", "application/octet-stream"}, - {".oda", "application/oda"}, - {".odc", "text/x-ms-odc"}, - {".ods", "application/oleobject"}, - {".oga", "audio/ogg"}, - {".ogg", "video/ogg"}, - {".ogv", "video/ogg"}, - {".ogx", "application/ogg"}, - {".one", "application/onenote"}, - {".onea", "application/onenote"}, - {".onetoc", "application/onenote"}, - {".onetoc2", "application/onenote"}, - {".onetmp", "application/onenote"}, - {".onepkg", "application/onenote"}, - {".osdx", "application/opensearchdescription+xml"}, - {".otf", "font/otf"}, - {".p10", "application/pkcs10"}, - {".p12", "application/x-pkcs12"}, - {".p7b", "application/x-pkcs7-certificates"}, - {".p7c", "application/pkcs7-mime"}, - {".p7m", "application/pkcs7-mime"}, - {".p7r", "application/x-pkcs7-certreqresp"}, - {".p7s", "application/pkcs7-signature"}, - {".pbm", "image/x-portable-bitmap"}, - {".pcx", "application/octet-stream"}, - {".pcz", "application/octet-stream"}, - {".pdf", "application/pdf"}, - {".pfb", "application/octet-stream"}, - {".pfm", "application/octet-stream"}, - {".pfx", "application/x-pkcs12"}, - {".pgm", "image/x-portable-graymap"}, - {".pko", "application/vnd.ms-pki.pko"}, - {".pma", "application/x-perfmon"}, - {".pmc", "application/x-perfmon"}, - {".pml", "application/x-perfmon"}, - {".pmr", "application/x-perfmon"}, - {".pmw", "application/x-perfmon"}, - {".png", "image/png"}, - {".pnm", "image/x-portable-anymap"}, - {".pnz", "image/png"}, - {".pot", "application/vnd.ms-powerpoint"}, - {".potm", "application/vnd.ms-powerpoint.template.macroEnabled.12"}, - {".potx", "application/vnd.openxmlformats-officedocument.presentationml.template"}, - {".ppam", "application/vnd.ms-powerpoint.addin.macroEnabled.12"}, - {".ppm", "image/x-portable-pixmap"}, - {".pps", "application/vnd.ms-powerpoint"}, - {".ppsm", "application/vnd.ms-powerpoint.slideshow.macroEnabled.12"}, - {".ppsx", "application/vnd.openxmlformats-officedocument.presentationml.slideshow"}, - {".ppt", "application/vnd.ms-powerpoint"}, - {".pptm", "application/vnd.ms-powerpoint.presentation.macroEnabled.12"}, - {".pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation"}, - {".prf", "application/pics-rules"}, - {".prm", "application/octet-stream"}, - {".prx", "application/octet-stream"}, - {".ps", "application/postscript"}, - {".psd", "application/octet-stream"}, - {".psm", "application/octet-stream"}, - {".psp", "application/octet-stream"}, - {".pub", "application/x-mspublisher"}, - {".qt", "video/quicktime"}, - {".qtl", "application/x-quicktimeplayer"}, - {".qxd", "application/octet-stream"}, - {".ra", "audio/x-pn-realaudio"}, - {".ram", "audio/x-pn-realaudio"}, - {".rar", "application/octet-stream"}, - {".ras", "image/x-cmu-raster"}, - {".rf", "image/vnd.rn-realflash"}, - {".rgb", "image/x-rgb"}, - {".rm", "application/vnd.rn-realmedia"}, - {".rmi", "audio/mid"}, - {".roff", "application/x-troff"}, - {".rpm", "audio/x-pn-realaudio-plugin"}, - {".rtf", "application/rtf"}, - {".rtx", "text/richtext"}, - {".scd", "application/x-msschedule"}, - {".sct", "text/scriptlet"}, - {".sea", "application/octet-stream"}, - {".setpay", "application/set-payment-initiation"}, - {".setreg", "application/set-registration-initiation"}, - {".sgml", "text/sgml"}, - {".sh", "application/x-sh"}, - {".shar", "application/x-shar"}, - {".sit", "application/x-stuffit"}, - {".sldm", "application/vnd.ms-powerpoint.slide.macroEnabled.12"}, - {".sldx", "application/vnd.openxmlformats-officedocument.presentationml.slide"}, - {".smd", "audio/x-smd"}, - {".smi", "application/octet-stream"}, - {".smx", "audio/x-smd"}, - {".smz", "audio/x-smd"}, - {".snd", "audio/basic"}, - {".snp", "application/octet-stream"}, - {".spc", "application/x-pkcs7-certificates"}, - {".spl", "application/futuresplash"}, - {".spx", "audio/ogg"}, - {".src", "application/x-wais-source"}, - {".ssm", "application/streamingmedia"}, - {".sst", "application/vnd.ms-pki.certstore"}, - {".stl", "application/vnd.ms-pki.stl"}, - {".sv4cpio", "application/x-sv4cpio"}, - {".sv4crc", "application/x-sv4crc"}, - {".svg", "image/svg+xml"}, - {".svgz", "image/svg+xml"}, - {".swf", "application/x-shockwave-flash"}, - {".t", "application/x-troff"}, - {".tar", "application/x-tar"}, - {".tcl", "application/x-tcl"}, - {".tex", "application/x-tex"}, - {".texi", "application/x-texinfo"}, - {".texinfo", "application/x-texinfo"}, - {".tgz", "application/x-compressed"}, - {".thmx", "application/vnd.ms-officetheme"}, - {".thn", "application/octet-stream"}, - {".tif", "image/tiff"}, - {".tiff", "image/tiff"}, - {".toc", "application/octet-stream"}, - {".tr", "application/x-troff"}, - {".trm", "application/x-msterminal"}, - {".ts", "video/vnd.dlna.mpeg-tts"}, - {".tsv", "text/tab-separated-values"}, - {".ttc", "application/x-font-ttf"}, - {".ttf", "application/x-font-ttf"}, - {".tts", "video/vnd.dlna.mpeg-tts"}, - {".txt", "text/plain"}, - {".u32", "application/octet-stream"}, - {".uls", "text/iuls"}, - {".ustar", "application/x-ustar"}, - {".vbs", "text/vbscript"}, - {".vcf", "text/x-vcard"}, - {".vcs", "text/plain"}, - {".vdx", "application/vnd.ms-visio.viewer"}, - {".vml", "text/xml"}, - {".vsd", "application/vnd.visio"}, - {".vss", "application/vnd.visio"}, - {".vst", "application/vnd.visio"}, - {".vsto", "application/x-ms-vsto"}, - {".vsw", "application/vnd.visio"}, - {".vsx", "application/vnd.visio"}, - {".vtx", "application/vnd.visio"}, - {".wasm", "application/wasm"}, - {".wav", "audio/wav"}, - {".wax", "audio/x-ms-wax"}, - {".wbmp", "image/vnd.wap.wbmp"}, - {".wcm", "application/vnd.ms-works"}, - {".wdb", "application/vnd.ms-works"}, - {".webm", "video/webm"}, - {".webp", "image/webp"}, - {".wks", "application/vnd.ms-works"}, - {".wm", "video/x-ms-wm"}, - {".wma", "audio/x-ms-wma"}, - {".wmd", "application/x-ms-wmd"}, - {".wmf", "application/x-msmetafile"}, - {".wml", "text/vnd.wap.wml"}, - {".wmlc", "application/vnd.wap.wmlc"}, - {".wmls", "text/vnd.wap.wmlscript"}, - {".wmlsc", "application/vnd.wap.wmlscriptc"}, - {".wmp", "video/x-ms-wmp"}, - {".wmv", "video/x-ms-wmv"}, - {".wmx", "video/x-ms-wmx"}, - {".wmz", "application/x-ms-wmz"}, - {".woff", "application/font-woff"}, // https://www.w3.org/TR/WOFF/#appendix-b - {".woff2", "font/woff2"}, // https://www.w3.org/TR/WOFF2/#IMT - {".wps", "application/vnd.ms-works"}, - {".wri", "application/x-mswrite"}, - {".wrl", "x-world/x-vrml"}, - {".wrz", "x-world/x-vrml"}, - {".wsdl", "text/xml"}, - {".wtv", "video/x-ms-wtv"}, - {".wvx", "video/x-ms-wvx"}, - {".x", "application/directx"}, - {".xaf", "x-world/x-vrml"}, - {".xaml", "application/xaml+xml"}, - {".xap", "application/x-silverlight-app"}, - {".xbap", "application/x-ms-xbap"}, - {".xbm", "image/x-xbitmap"}, - {".xdr", "text/plain"}, - {".xht", "application/xhtml+xml"}, - {".xhtml", "application/xhtml+xml"}, - {".xla", "application/vnd.ms-excel"}, - {".xlam", "application/vnd.ms-excel.addin.macroEnabled.12"}, - {".xlc", "application/vnd.ms-excel"}, - {".xlm", "application/vnd.ms-excel"}, - {".xls", "application/vnd.ms-excel"}, - {".xlsb", "application/vnd.ms-excel.sheet.binary.macroEnabled.12"}, - {".xlsm", "application/vnd.ms-excel.sheet.macroEnabled.12"}, - {".xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}, - {".xlt", "application/vnd.ms-excel"}, - {".xltm", "application/vnd.ms-excel.template.macroEnabled.12"}, - {".xltx", "application/vnd.openxmlformats-officedocument.spreadsheetml.template"}, - {".xlw", "application/vnd.ms-excel"}, - {".xml", "text/xml"}, - {".xof", "x-world/x-vrml"}, - {".xpm", "image/x-xpixmap"}, - {".xps", "application/vnd.ms-xpsdocument"}, - {".xsd", "text/xml"}, - {".xsf", "text/xml"}, - {".xsl", "text/xml"}, - {".xslt", "text/xml"}, - {".xsn", "application/octet-stream"}, - {".xtp", "application/octet-stream"}, - {".xwd", "image/x-xwindowdump"}, - {".z", "application/x-compress"}, - {".zip", "application/x-zip-compressed"}, + { ".323", "text/h323" }, + { ".3g2", "video/3gpp2" }, + { ".3gp2", "video/3gpp2" }, + { ".3gp", "video/3gpp" }, + { ".3gpp", "video/3gpp" }, + { ".aac", "audio/aac" }, + { ".aaf", "application/octet-stream" }, + { ".aca", "application/octet-stream" }, + { ".accdb", "application/msaccess" }, + { ".accde", "application/msaccess" }, + { ".accdt", "application/msaccess" }, + { ".acx", "application/internet-property-stream" }, + { ".adt", "audio/vnd.dlna.adts" }, + { ".adts", "audio/vnd.dlna.adts" }, + { ".afm", "application/octet-stream" }, + { ".ai", "application/postscript" }, + { ".aif", "audio/x-aiff" }, + { ".aifc", "audio/aiff" }, + { ".aiff", "audio/aiff" }, + { ".appcache", "text/cache-manifest" }, + { ".application", "application/x-ms-application" }, + { ".art", "image/x-jg" }, + { ".asd", "application/octet-stream" }, + { ".asf", "video/x-ms-asf" }, + { ".asi", "application/octet-stream" }, + { ".asm", "text/plain" }, + { ".asr", "video/x-ms-asf" }, + { ".asx", "video/x-ms-asf" }, + { ".atom", "application/atom+xml" }, + { ".au", "audio/basic" }, + { ".avi", "video/x-msvideo" }, + { ".axs", "application/olescript" }, + { ".bas", "text/plain" }, + { ".bcpio", "application/x-bcpio" }, + { ".bin", "application/octet-stream" }, + { ".bmp", "image/bmp" }, + { ".c", "text/plain" }, + { ".cab", "application/vnd.ms-cab-compressed" }, + { ".calx", "application/vnd.ms-office.calx" }, + { ".cat", "application/vnd.ms-pki.seccat" }, + { ".cdf", "application/x-cdf" }, + { ".chm", "application/octet-stream" }, + { ".class", "application/x-java-applet" }, + { ".clp", "application/x-msclip" }, + { ".cmx", "image/x-cmx" }, + { ".cnf", "text/plain" }, + { ".cod", "image/cis-cod" }, + { ".cpio", "application/x-cpio" }, + { ".cpp", "text/plain" }, + { ".crd", "application/x-mscardfile" }, + { ".crl", "application/pkix-crl" }, + { ".crt", "application/x-x509-ca-cert" }, + { ".csh", "application/x-csh" }, + { ".css", "text/css" }, + { ".csv", "text/csv" }, // https://tools.ietf.org/html/rfc7111#section-5.1 + { ".cur", "application/octet-stream" }, + { ".dcr", "application/x-director" }, + { ".deploy", "application/octet-stream" }, + { ".der", "application/x-x509-ca-cert" }, + { ".dib", "image/bmp" }, + { ".dir", "application/x-director" }, + { ".disco", "text/xml" }, + { ".dlm", "text/dlm" }, + { ".doc", "application/msword" }, + { ".docm", "application/vnd.ms-word.document.macroEnabled.12" }, + { ".docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document" }, + { ".dot", "application/msword" }, + { ".dotm", "application/vnd.ms-word.template.macroEnabled.12" }, + { ".dotx", "application/vnd.openxmlformats-officedocument.wordprocessingml.template" }, + { ".dsp", "application/octet-stream" }, + { ".dtd", "text/xml" }, + { ".dvi", "application/x-dvi" }, + { ".dvr-ms", "video/x-ms-dvr" }, + { ".dwf", "drawing/x-dwf" }, + { ".dwp", "application/octet-stream" }, + { ".dxr", "application/x-director" }, + { ".eml", "message/rfc822" }, + { ".emz", "application/octet-stream" }, + { ".eot", "application/vnd.ms-fontobject" }, + { ".eps", "application/postscript" }, + { ".etx", "text/x-setext" }, + { ".evy", "application/envoy" }, + { ".exe", "application/vnd.microsoft.portable-executable" }, // https://www.iana.org/assignments/media-types/application/vnd.microsoft.portable-executable + { ".fdf", "application/vnd.fdf" }, + { ".fif", "application/fractals" }, + { ".fla", "application/octet-stream" }, + { ".flr", "x-world/x-vrml" }, + { ".flv", "video/x-flv" }, + { ".gif", "image/gif" }, + { ".gtar", "application/x-gtar" }, + { ".gz", "application/x-gzip" }, + { ".h", "text/plain" }, + { ".hdf", "application/x-hdf" }, + { ".hdml", "text/x-hdml" }, + { ".hhc", "application/x-oleobject" }, + { ".hhk", "application/octet-stream" }, + { ".hhp", "application/octet-stream" }, + { ".hlp", "application/winhlp" }, + { ".hqx", "application/mac-binhex40" }, + { ".hta", "application/hta" }, + { ".htc", "text/x-component" }, + { ".htm", "text/html" }, + { ".html", "text/html" }, + { ".htt", "text/webviewhtml" }, + { ".hxt", "text/html" }, + { ".ical", "text/calendar" }, + { ".icalendar", "text/calendar" }, + { ".ico", "image/x-icon" }, + { ".ics", "text/calendar" }, + { ".ief", "image/ief" }, + { ".ifb", "text/calendar" }, + { ".iii", "application/x-iphone" }, + { ".inf", "application/octet-stream" }, + { ".ins", "application/x-internet-signup" }, + { ".isp", "application/x-internet-signup" }, + { ".IVF", "video/x-ivf" }, + { ".jar", "application/java-archive" }, + { ".java", "application/octet-stream" }, + { ".jck", "application/liquidmotion" }, + { ".jcz", "application/liquidmotion" }, + { ".jfif", "image/pjpeg" }, + { ".jpb", "application/octet-stream" }, + { ".jpe", "image/jpeg" }, + { ".jpeg", "image/jpeg" }, + { ".jpg", "image/jpeg" }, + { ".js", "application/javascript" }, + { ".json", "application/json" }, + { ".jsx", "text/jscript" }, + { ".latex", "application/x-latex" }, + { ".lit", "application/x-ms-reader" }, + { ".lpk", "application/octet-stream" }, + { ".lsf", "video/x-la-asf" }, + { ".lsx", "video/x-la-asf" }, + { ".lzh", "application/octet-stream" }, + { ".m13", "application/x-msmediaview" }, + { ".m14", "application/x-msmediaview" }, + { ".m1v", "video/mpeg" }, + { ".m2ts", "video/vnd.dlna.mpeg-tts" }, + { ".m3u", "audio/x-mpegurl" }, + { ".m4a", "audio/mp4" }, + { ".m4v", "video/mp4" }, + { ".man", "application/x-troff-man" }, + { ".manifest", "application/x-ms-manifest" }, + { ".map", "text/plain" }, + { ".markdown", "text/markdown" }, + { ".md", "text/markdown" }, + { ".mdb", "application/x-msaccess" }, + { ".mdp", "application/octet-stream" }, + { ".me", "application/x-troff-me" }, + { ".mht", "message/rfc822" }, + { ".mhtml", "message/rfc822" }, + { ".mid", "audio/mid" }, + { ".midi", "audio/mid" }, + { ".mix", "application/octet-stream" }, + { ".mmf", "application/x-smaf" }, + { ".mno", "text/xml" }, + { ".mny", "application/x-msmoney" }, + { ".mov", "video/quicktime" }, + { ".movie", "video/x-sgi-movie" }, + { ".mp2", "video/mpeg" }, + { ".mp3", "audio/mpeg" }, + { ".mp4", "video/mp4" }, + { ".mp4v", "video/mp4" }, + { ".mpa", "video/mpeg" }, + { ".mpe", "video/mpeg" }, + { ".mpeg", "video/mpeg" }, + { ".mpg", "video/mpeg" }, + { ".mpp", "application/vnd.ms-project" }, + { ".mpv2", "video/mpeg" }, + { ".ms", "application/x-troff-ms" }, + { ".msi", "application/octet-stream" }, + { ".mso", "application/octet-stream" }, + { ".mvb", "application/x-msmediaview" }, + { ".mvc", "application/x-miva-compiled" }, + { ".nc", "application/x-netcdf" }, + { ".nsc", "video/x-ms-asf" }, + { ".nws", "message/rfc822" }, + { ".ocx", "application/octet-stream" }, + { ".oda", "application/oda" }, + { ".odc", "text/x-ms-odc" }, + { ".ods", "application/oleobject" }, + { ".oga", "audio/ogg" }, + { ".ogg", "video/ogg" }, + { ".ogv", "video/ogg" }, + { ".ogx", "application/ogg" }, + { ".one", "application/onenote" }, + { ".onea", "application/onenote" }, + { ".onetoc", "application/onenote" }, + { ".onetoc2", "application/onenote" }, + { ".onetmp", "application/onenote" }, + { ".onepkg", "application/onenote" }, + { ".osdx", "application/opensearchdescription+xml" }, + { ".otf", "font/otf" }, + { ".p10", "application/pkcs10" }, + { ".p12", "application/x-pkcs12" }, + { ".p7b", "application/x-pkcs7-certificates" }, + { ".p7c", "application/pkcs7-mime" }, + { ".p7m", "application/pkcs7-mime" }, + { ".p7r", "application/x-pkcs7-certreqresp" }, + { ".p7s", "application/pkcs7-signature" }, + { ".pbm", "image/x-portable-bitmap" }, + { ".pcx", "application/octet-stream" }, + { ".pcz", "application/octet-stream" }, + { ".pdf", "application/pdf" }, + { ".pfb", "application/octet-stream" }, + { ".pfm", "application/octet-stream" }, + { ".pfx", "application/x-pkcs12" }, + { ".pgm", "image/x-portable-graymap" }, + { ".pko", "application/vnd.ms-pki.pko" }, + { ".pma", "application/x-perfmon" }, + { ".pmc", "application/x-perfmon" }, + { ".pml", "application/x-perfmon" }, + { ".pmr", "application/x-perfmon" }, + { ".pmw", "application/x-perfmon" }, + { ".png", "image/png" }, + { ".pnm", "image/x-portable-anymap" }, + { ".pnz", "image/png" }, + { ".pot", "application/vnd.ms-powerpoint" }, + { ".potm", "application/vnd.ms-powerpoint.template.macroEnabled.12" }, + { ".potx", "application/vnd.openxmlformats-officedocument.presentationml.template" }, + { ".ppam", "application/vnd.ms-powerpoint.addin.macroEnabled.12" }, + { ".ppm", "image/x-portable-pixmap" }, + { ".pps", "application/vnd.ms-powerpoint" }, + { ".ppsm", "application/vnd.ms-powerpoint.slideshow.macroEnabled.12" }, + { ".ppsx", "application/vnd.openxmlformats-officedocument.presentationml.slideshow" }, + { ".ppt", "application/vnd.ms-powerpoint" }, + { ".pptm", "application/vnd.ms-powerpoint.presentation.macroEnabled.12" }, + { ".pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation" }, + { ".prf", "application/pics-rules" }, + { ".prm", "application/octet-stream" }, + { ".prx", "application/octet-stream" }, + { ".ps", "application/postscript" }, + { ".psd", "application/octet-stream" }, + { ".psm", "application/octet-stream" }, + { ".psp", "application/octet-stream" }, + { ".pub", "application/x-mspublisher" }, + { ".qt", "video/quicktime" }, + { ".qtl", "application/x-quicktimeplayer" }, + { ".qxd", "application/octet-stream" }, + { ".ra", "audio/x-pn-realaudio" }, + { ".ram", "audio/x-pn-realaudio" }, + { ".rar", "application/octet-stream" }, + { ".ras", "image/x-cmu-raster" }, + { ".rf", "image/vnd.rn-realflash" }, + { ".rgb", "image/x-rgb" }, + { ".rm", "application/vnd.rn-realmedia" }, + { ".rmi", "audio/mid" }, + { ".roff", "application/x-troff" }, + { ".rpm", "audio/x-pn-realaudio-plugin" }, + { ".rtf", "application/rtf" }, + { ".rtx", "text/richtext" }, + { ".scd", "application/x-msschedule" }, + { ".sct", "text/scriptlet" }, + { ".sea", "application/octet-stream" }, + { ".setpay", "application/set-payment-initiation" }, + { ".setreg", "application/set-registration-initiation" }, + { ".sgml", "text/sgml" }, + { ".sh", "application/x-sh" }, + { ".shar", "application/x-shar" }, + { ".sit", "application/x-stuffit" }, + { ".sldm", "application/vnd.ms-powerpoint.slide.macroEnabled.12" }, + { ".sldx", "application/vnd.openxmlformats-officedocument.presentationml.slide" }, + { ".smd", "audio/x-smd" }, + { ".smi", "application/octet-stream" }, + { ".smx", "audio/x-smd" }, + { ".smz", "audio/x-smd" }, + { ".snd", "audio/basic" }, + { ".snp", "application/octet-stream" }, + { ".spc", "application/x-pkcs7-certificates" }, + { ".spl", "application/futuresplash" }, + { ".spx", "audio/ogg" }, + { ".src", "application/x-wais-source" }, + { ".ssm", "application/streamingmedia" }, + { ".sst", "application/vnd.ms-pki.certstore" }, + { ".stl", "application/vnd.ms-pki.stl" }, + { ".sv4cpio", "application/x-sv4cpio" }, + { ".sv4crc", "application/x-sv4crc" }, + { ".svg", "image/svg+xml" }, + { ".svgz", "image/svg+xml" }, + { ".swf", "application/x-shockwave-flash" }, + { ".t", "application/x-troff" }, + { ".tar", "application/x-tar" }, + { ".tcl", "application/x-tcl" }, + { ".tex", "application/x-tex" }, + { ".texi", "application/x-texinfo" }, + { ".texinfo", "application/x-texinfo" }, + { ".tgz", "application/x-compressed" }, + { ".thmx", "application/vnd.ms-officetheme" }, + { ".thn", "application/octet-stream" }, + { ".tif", "image/tiff" }, + { ".tiff", "image/tiff" }, + { ".toc", "application/octet-stream" }, + { ".tr", "application/x-troff" }, + { ".trm", "application/x-msterminal" }, + { ".ts", "video/vnd.dlna.mpeg-tts" }, + { ".tsv", "text/tab-separated-values" }, + { ".ttc", "application/x-font-ttf" }, + { ".ttf", "application/x-font-ttf" }, + { ".tts", "video/vnd.dlna.mpeg-tts" }, + { ".txt", "text/plain" }, + { ".u32", "application/octet-stream" }, + { ".uls", "text/iuls" }, + { ".ustar", "application/x-ustar" }, + { ".vbs", "text/vbscript" }, + { ".vcf", "text/x-vcard" }, + { ".vcs", "text/plain" }, + { ".vdx", "application/vnd.ms-visio.viewer" }, + { ".vml", "text/xml" }, + { ".vsd", "application/vnd.visio" }, + { ".vss", "application/vnd.visio" }, + { ".vst", "application/vnd.visio" }, + { ".vsto", "application/x-ms-vsto" }, + { ".vsw", "application/vnd.visio" }, + { ".vsx", "application/vnd.visio" }, + { ".vtx", "application/vnd.visio" }, + { ".wasm", "application/wasm" }, + { ".wav", "audio/wav" }, + { ".wax", "audio/x-ms-wax" }, + { ".wbmp", "image/vnd.wap.wbmp" }, + { ".wcm", "application/vnd.ms-works" }, + { ".wdb", "application/vnd.ms-works" }, + { ".webm", "video/webm" }, + { ".webmanifest", "application/manifest+json" }, // https://w3c.github.io/manifest/#media-type-registration + { ".webp", "image/webp" }, + { ".wks", "application/vnd.ms-works" }, + { ".wm", "video/x-ms-wm" }, + { ".wma", "audio/x-ms-wma" }, + { ".wmd", "application/x-ms-wmd" }, + { ".wmf", "application/x-msmetafile" }, + { ".wml", "text/vnd.wap.wml" }, + { ".wmlc", "application/vnd.wap.wmlc" }, + { ".wmls", "text/vnd.wap.wmlscript" }, + { ".wmlsc", "application/vnd.wap.wmlscriptc" }, + { ".wmp", "video/x-ms-wmp" }, + { ".wmv", "video/x-ms-wmv" }, + { ".wmx", "video/x-ms-wmx" }, + { ".wmz", "application/x-ms-wmz" }, + { ".woff", "application/font-woff" }, // https://www.w3.org/TR/WOFF/#appendix-b + { ".woff2", "font/woff2" }, // https://www.w3.org/TR/WOFF2/#IMT + { ".wps", "application/vnd.ms-works" }, + { ".wri", "application/x-mswrite" }, + { ".wrl", "x-world/x-vrml" }, + { ".wrz", "x-world/x-vrml" }, + { ".wsdl", "text/xml" }, + { ".wtv", "video/x-ms-wtv" }, + { ".wvx", "video/x-ms-wvx" }, + { ".x", "application/directx" }, + { ".xaf", "x-world/x-vrml" }, + { ".xaml", "application/xaml+xml" }, + { ".xap", "application/x-silverlight-app" }, + { ".xbap", "application/x-ms-xbap" }, + { ".xbm", "image/x-xbitmap" }, + { ".xdr", "text/plain" }, + { ".xht", "application/xhtml+xml" }, + { ".xhtml", "application/xhtml+xml" }, + { ".xla", "application/vnd.ms-excel" }, + { ".xlam", "application/vnd.ms-excel.addin.macroEnabled.12" }, + { ".xlc", "application/vnd.ms-excel" }, + { ".xlm", "application/vnd.ms-excel" }, + { ".xls", "application/vnd.ms-excel" }, + { ".xlsb", "application/vnd.ms-excel.sheet.binary.macroEnabled.12" }, + { ".xlsm", "application/vnd.ms-excel.sheet.macroEnabled.12" }, + { ".xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" }, + { ".xlt", "application/vnd.ms-excel" }, + { ".xltm", "application/vnd.ms-excel.template.macroEnabled.12" }, + { ".xltx", "application/vnd.openxmlformats-officedocument.spreadsheetml.template" }, + { ".xlw", "application/vnd.ms-excel" }, + { ".xml", "text/xml" }, + { ".xof", "x-world/x-vrml" }, + { ".xpm", "image/x-xpixmap" }, + { ".xps", "application/vnd.ms-xpsdocument" }, + { ".xsd", "text/xml" }, + { ".xsf", "text/xml" }, + { ".xsl", "text/xml" }, + { ".xslt", "text/xml" }, + { ".xsn", "application/octet-stream" }, + { ".xtp", "application/octet-stream" }, + { ".xwd", "image/x-xwindowdump" }, + { ".z", "application/x-compress" }, + { ".zip", "application/x-zip-compressed" } }; AllowedExtraWebContentFolders = new List diff --git a/framework/src/Volo.Abp.Auditing/Volo.Abp.Auditing.csproj b/framework/src/Volo.Abp.Auditing/Volo.Abp.Auditing.csproj index 4ac2420c8f..f7580e4c9e 100644 --- a/framework/src/Volo.Abp.Auditing/Volo.Abp.Auditing.csproj +++ b/framework/src/Volo.Abp.Auditing/Volo.Abp.Auditing.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Auditing Volo.Abp.Auditing $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.Authorization/Volo.Abp.Authorization.csproj b/framework/src/Volo.Abp.Authorization/Volo.Abp.Authorization.csproj index a7e76714c2..5f51da1fdf 100644 --- a/framework/src/Volo.Abp.Authorization/Volo.Abp.Authorization.csproj +++ b/framework/src/Volo.Abp.Authorization/Volo.Abp.Authorization.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Authorization Volo.Abp.Authorization $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.AutoMapper/Volo.Abp.AutoMapper.csproj b/framework/src/Volo.Abp.AutoMapper/Volo.Abp.AutoMapper.csproj index bd5cffe848..4451773347 100644 --- a/framework/src/Volo.Abp.AutoMapper/Volo.Abp.AutoMapper.csproj +++ b/framework/src/Volo.Abp.AutoMapper/Volo.Abp.AutoMapper.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.AutoMapper Volo.Abp.AutoMapper $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.Autofac.WebAssembly/Volo.Abp.Autofac.WebAssembly.csproj b/framework/src/Volo.Abp.Autofac.WebAssembly/Volo.Abp.Autofac.WebAssembly.csproj index 6d03439a85..511aac6dba 100644 --- a/framework/src/Volo.Abp.Autofac.WebAssembly/Volo.Abp.Autofac.WebAssembly.csproj +++ b/framework/src/Volo.Abp.Autofac.WebAssembly/Volo.Abp.Autofac.WebAssembly.csproj @@ -4,7 +4,7 @@ - netstandard2.1 + net5.0 diff --git a/framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.csproj b/framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.csproj index 85a8541e26..0bcf27d6db 100644 --- a/framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.csproj +++ b/framework/src/Volo.Abp.Autofac/Volo.Abp.Autofac.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Autofac Volo.Abp.Autofac $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -17,7 +17,7 @@ - + diff --git a/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo.Abp.BackgroundJobs.Abstractions.csproj b/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo.Abp.BackgroundJobs.Abstractions.csproj index 1788867e39..7d41b6877d 100644 --- a/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo.Abp.BackgroundJobs.Abstractions.csproj +++ b/framework/src/Volo.Abp.BackgroundJobs.Abstractions/Volo.Abp.BackgroundJobs.Abstractions.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.BackgroundJobs.Abstractions Volo.Abp.BackgroundJobs.Abstractions $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.BackgroundJobs.HangFire/Volo.Abp.BackgroundJobs.HangFire.csproj b/framework/src/Volo.Abp.BackgroundJobs.HangFire/Volo.Abp.BackgroundJobs.HangFire.csproj index 9a197ef095..0f74ca2bfe 100644 --- a/framework/src/Volo.Abp.BackgroundJobs.HangFire/Volo.Abp.BackgroundJobs.HangFire.csproj +++ b/framework/src/Volo.Abp.BackgroundJobs.HangFire/Volo.Abp.BackgroundJobs.HangFire.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.BackgroundJobs.HangFire Volo.Abp.BackgroundJobs.HangFire $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo.Abp.BackgroundJobs.Quartz.csproj b/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo.Abp.BackgroundJobs.Quartz.csproj index 67c07f77d6..81b08569a7 100644 --- a/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo.Abp.BackgroundJobs.Quartz.csproj +++ b/framework/src/Volo.Abp.BackgroundJobs.Quartz/Volo.Abp.BackgroundJobs.Quartz.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.BackgroundJobs.Quartz Volo.Abp.BackgroundJobs.Quartz $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo.Abp.BackgroundJobs.RabbitMQ.csproj b/framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo.Abp.BackgroundJobs.RabbitMQ.csproj index a74903bad4..40036ec81e 100644 --- a/framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo.Abp.BackgroundJobs.RabbitMQ.csproj +++ b/framework/src/Volo.Abp.BackgroundJobs.RabbitMQ/Volo.Abp.BackgroundJobs.RabbitMQ.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.BackgroundJobs.RabbitMQ Volo.Abp.BackgroundJobs.RabbitMQ $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.BackgroundJobs/Volo.Abp.BackgroundJobs.csproj b/framework/src/Volo.Abp.BackgroundJobs/Volo.Abp.BackgroundJobs.csproj index 858038e5df..8fb087efe4 100644 --- a/framework/src/Volo.Abp.BackgroundJobs/Volo.Abp.BackgroundJobs.csproj +++ b/framework/src/Volo.Abp.BackgroundJobs/Volo.Abp.BackgroundJobs.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.BackgroundJobs Volo.Abp.BackgroundJobs $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo.Abp.BackgroundWorkers.Quartz.csproj b/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo.Abp.BackgroundWorkers.Quartz.csproj index 1a3ca4e254..e303369322 100644 --- a/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo.Abp.BackgroundWorkers.Quartz.csproj +++ b/framework/src/Volo.Abp.BackgroundWorkers.Quartz/Volo.Abp.BackgroundWorkers.Quartz.csproj @@ -5,7 +5,7 @@ - netstandard2.0 + net5.0 Volo.Abp.BackgroundWorkers.Quartz Volo.Abp.BackgroundWorkers.Quartz $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.BackgroundWorkers/Volo.Abp.BackgroundWorkers.csproj b/framework/src/Volo.Abp.BackgroundWorkers/Volo.Abp.BackgroundWorkers.csproj index c8e518c4d3..7534d8b6f0 100644 --- a/framework/src/Volo.Abp.BackgroundWorkers/Volo.Abp.BackgroundWorkers.csproj +++ b/framework/src/Volo.Abp.BackgroundWorkers/Volo.Abp.BackgroundWorkers.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.BackgroundWorkers Volo.Abp.BackgroundWorkers $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj b/framework/src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj index f7875a0f4a..0ae27bb95e 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj +++ b/framework/src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj @@ -4,7 +4,7 @@ - netstandard2.1 + net5.0 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; false false diff --git a/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo.Abp.BlobStoring.Aliyun.csproj b/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo.Abp.BlobStoring.Aliyun.csproj index c9b29dc83f..caa69b1129 100644 --- a/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo.Abp.BlobStoring.Aliyun.csproj +++ b/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo.Abp.BlobStoring.Aliyun.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.BlobStoring.Aliyun Volo.Abp.BlobStoring.Aliyun $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.BlobStoring.Aws/Volo.Abp.BlobStoring.Aws.csproj b/framework/src/Volo.Abp.BlobStoring.Aws/Volo.Abp.BlobStoring.Aws.csproj index d30601d1e8..5b8afd246e 100644 --- a/framework/src/Volo.Abp.BlobStoring.Aws/Volo.Abp.BlobStoring.Aws.csproj +++ b/framework/src/Volo.Abp.BlobStoring.Aws/Volo.Abp.BlobStoring.Aws.csproj @@ -2,9 +2,9 @@ - + - netstandard2.0 + net5.0 false false false diff --git a/framework/src/Volo.Abp.BlobStoring.Azure/Volo.Abp.BlobStoring.Azure.csproj b/framework/src/Volo.Abp.BlobStoring.Azure/Volo.Abp.BlobStoring.Azure.csproj index 6434e1d43c..bd1d43a80c 100644 --- a/framework/src/Volo.Abp.BlobStoring.Azure/Volo.Abp.BlobStoring.Azure.csproj +++ b/framework/src/Volo.Abp.BlobStoring.Azure/Volo.Abp.BlobStoring.Azure.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.BlobStoring.Azure Volo.Abp.BlobStoring.Azure $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.BlobStoring.FileSystem/Volo.Abp.BlobStoring.FileSystem.csproj b/framework/src/Volo.Abp.BlobStoring.FileSystem/Volo.Abp.BlobStoring.FileSystem.csproj index 65242db157..0ed01fe276 100644 --- a/framework/src/Volo.Abp.BlobStoring.FileSystem/Volo.Abp.BlobStoring.FileSystem.csproj +++ b/framework/src/Volo.Abp.BlobStoring.FileSystem/Volo.Abp.BlobStoring.FileSystem.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.BlobStoring.FileSystem Volo.Abp.BlobStoring.FileSystem $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.BlobStoring.Minio/Volo.Abp.BlobStoring.Minio.csproj b/framework/src/Volo.Abp.BlobStoring.Minio/Volo.Abp.BlobStoring.Minio.csproj index 1c080067ed..a7b7515854 100644 --- a/framework/src/Volo.Abp.BlobStoring.Minio/Volo.Abp.BlobStoring.Minio.csproj +++ b/framework/src/Volo.Abp.BlobStoring.Minio/Volo.Abp.BlobStoring.Minio.csproj @@ -1,9 +1,9 @@  - + - netstandard2.0 + net5.0 Volo.Abp.BlobStoring.Minio Volo.Abp.BlobStoring.Minio $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.BlobStoring/Volo.Abp.BlobStoring.csproj b/framework/src/Volo.Abp.BlobStoring/Volo.Abp.BlobStoring.csproj index 850f98b5f1..22e99d9339 100644 --- a/framework/src/Volo.Abp.BlobStoring/Volo.Abp.BlobStoring.csproj +++ b/framework/src/Volo.Abp.BlobStoring/Volo.Abp.BlobStoring.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.BlobStoring Volo.Abp.BlobStoring $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo.Abp.Caching.StackExchangeRedis.csproj b/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo.Abp.Caching.StackExchangeRedis.csproj index 95a15ddc8e..ba865e7932 100644 --- a/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo.Abp.Caching.StackExchangeRedis.csproj +++ b/framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo.Abp.Caching.StackExchangeRedis.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Caching.StackExchangeRedis Volo.Abp.Caching.StackExchangeRedis $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -19,7 +19,7 @@ - + diff --git a/framework/src/Volo.Abp.Caching/Volo.Abp.Caching.csproj b/framework/src/Volo.Abp.Caching/Volo.Abp.Caching.csproj index 19d5b456ec..db89943e26 100644 --- a/framework/src/Volo.Abp.Caching/Volo.Abp.Caching.csproj +++ b/framework/src/Volo.Abp.Caching/Volo.Abp.Caching.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Caching Volo.Abp.Caching $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.Castle.Core/Volo.Abp.Castle.Core.csproj b/framework/src/Volo.Abp.Castle.Core/Volo.Abp.Castle.Core.csproj index 7e742c0467..9991684bf0 100644 --- a/framework/src/Volo.Abp.Castle.Core/Volo.Abp.Castle.Core.csproj +++ b/framework/src/Volo.Abp.Castle.Core/Volo.Abp.Castle.Core.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Castle.Core Volo.Abp.Castle.Core $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.Cli.Core/Volo.Abp.Cli.Core.csproj b/framework/src/Volo.Abp.Cli.Core/Volo.Abp.Cli.Core.csproj index 2dfd66f4ab..26e16fc36c 100644 --- a/framework/src/Volo.Abp.Cli.Core/Volo.Abp.Cli.Core.csproj +++ b/framework/src/Volo.Abp.Cli.Core/Volo.Abp.Cli.Core.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; false false diff --git a/framework/src/Volo.Abp.Cli/Volo.Abp.Cli.csproj b/framework/src/Volo.Abp.Cli/Volo.Abp.Cli.csproj index 489ea99ac5..e13936c73e 100644 --- a/framework/src/Volo.Abp.Cli/Volo.Abp.Cli.csproj +++ b/framework/src/Volo.Abp.Cli/Volo.Abp.Cli.csproj @@ -5,7 +5,7 @@ Exe - netcoreapp3.1 + net5.0 true abp @@ -18,8 +18,8 @@ - - + + diff --git a/framework/src/Volo.Abp.Core/System/Linq/PredicateOperator.cs b/framework/src/Volo.Abp.Core/System/Linq/PredicateOperator.cs index 0732a63110..75849b24b6 100644 --- a/framework/src/Volo.Abp.Core/System/Linq/PredicateOperator.cs +++ b/framework/src/Volo.Abp.Core/System/Linq/PredicateOperator.cs @@ -1,5 +1,8 @@ -using System.Collections.ObjectModel; +using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Linq.Expressions; +using System.Reflection.Emit; +using System.Runtime.CompilerServices; using JetBrains.Annotations; namespace System.Linq @@ -246,15 +249,6 @@ namespace System.Linq public bool TailCall => Predicate.TailCall; #endif -#if !(NET35 || WINDOWS_APP || NETSTANDARD || PORTABLE || PORTABLE40 || UAP) - /// - public void CompileToMethod(MethodBuilder method) { Predicate.CompileToMethod(method); } - - /// - public void CompileToMethod(MethodBuilder method, DebugInfoGenerator debugInfoGenerator) { Predicate.CompileToMethod(method, debugInfoGenerator); } - -#endif - #endregion #region Implement Expression methods and properties diff --git a/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj b/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj index e1842d0447..65dcba2393 100644 --- a/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj +++ b/framework/src/Volo.Abp.Core/Volo.Abp.Core.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Core Volo.Abp.Core $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -16,15 +16,15 @@ - - - - - - - - - + + + + + + + + + diff --git a/framework/src/Volo.Abp.Dapper/Volo.Abp.Dapper.csproj b/framework/src/Volo.Abp.Dapper/Volo.Abp.Dapper.csproj index 4feb946600..fb6d7749a6 100644 --- a/framework/src/Volo.Abp.Dapper/Volo.Abp.Dapper.csproj +++ b/framework/src/Volo.Abp.Dapper/Volo.Abp.Dapper.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Dapper Volo.Abp.Dapper $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.Data/Volo.Abp.Data.csproj b/framework/src/Volo.Abp.Data/Volo.Abp.Data.csproj index cde2718a56..50023e9281 100644 --- a/framework/src/Volo.Abp.Data/Volo.Abp.Data.csproj +++ b/framework/src/Volo.Abp.Data/Volo.Abp.Data.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Data Volo.Abp.Data $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.Ddd.Application.Contracts/Volo.Abp.Ddd.Application.Contracts.csproj b/framework/src/Volo.Abp.Ddd.Application.Contracts/Volo.Abp.Ddd.Application.Contracts.csproj index 6668f9c649..e66de6002d 100644 --- a/framework/src/Volo.Abp.Ddd.Application.Contracts/Volo.Abp.Ddd.Application.Contracts.csproj +++ b/framework/src/Volo.Abp.Ddd.Application.Contracts/Volo.Abp.Ddd.Application.Contracts.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Ddd.Application.Contracts Volo.Abp.Ddd.Application.Contracts $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.Ddd.Application/Volo.Abp.Ddd.Application.csproj b/framework/src/Volo.Abp.Ddd.Application/Volo.Abp.Ddd.Application.csproj index f88e0f4795..ebdbd64562 100644 --- a/framework/src/Volo.Abp.Ddd.Application/Volo.Abp.Ddd.Application.csproj +++ b/framework/src/Volo.Abp.Ddd.Application/Volo.Abp.Ddd.Application.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Ddd.Application Volo.Abp.Ddd.Application $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.Ddd.Domain/Volo.Abp.Ddd.Domain.csproj b/framework/src/Volo.Abp.Ddd.Domain/Volo.Abp.Ddd.Domain.csproj index ab162e60c7..211f5726f0 100644 --- a/framework/src/Volo.Abp.Ddd.Domain/Volo.Abp.Ddd.Domain.csproj +++ b/framework/src/Volo.Abp.Ddd.Domain/Volo.Abp.Ddd.Domain.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Ddd.Domain Volo.Abp.Ddd.Domain $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.Emailing/Volo.Abp.Emailing.csproj b/framework/src/Volo.Abp.Emailing/Volo.Abp.Emailing.csproj index a2f83399a0..80872da6e1 100644 --- a/framework/src/Volo.Abp.Emailing/Volo.Abp.Emailing.csproj +++ b/framework/src/Volo.Abp.Emailing/Volo.Abp.Emailing.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Emailing Volo.Abp.Emailing $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.MySQL/Volo.Abp.EntityFrameworkCore.MySQL.csproj b/framework/src/Volo.Abp.EntityFrameworkCore.MySQL/Volo.Abp.EntityFrameworkCore.MySQL.csproj index d565f6c114..b18e2e85b6 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.MySQL/Volo.Abp.EntityFrameworkCore.MySQL.csproj +++ b/framework/src/Volo.Abp.EntityFrameworkCore.MySQL/Volo.Abp.EntityFrameworkCore.MySQL.csproj @@ -2,9 +2,9 @@ - + - netstandard2.0 + net5.0 Volo.Abp.EntityFrameworkCore.MySQL Volo.Abp.EntityFrameworkCore.MySQL $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -21,5 +21,5 @@ - + diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo.Abp.EntityFrameworkCore.Oracle.Devart.csproj b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo.Abp.EntityFrameworkCore.Oracle.Devart.csproj index 8043a1ff8e..6ca958024c 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo.Abp.EntityFrameworkCore.Oracle.Devart.csproj +++ b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo.Abp.EntityFrameworkCore.Oracle.Devart.csproj @@ -4,7 +4,7 @@ - netstandard2.1 + net5.0 Volo.Abp.EntityFrameworkCore.Oracle.Devart Volo.Abp.EntityFrameworkCore.Oracle.Devart $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo.Abp.EntityFrameworkCore.Oracle.csproj b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo.Abp.EntityFrameworkCore.Oracle.csproj index be0537ae96..f76a2b2f01 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo.Abp.EntityFrameworkCore.Oracle.csproj +++ b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo.Abp.EntityFrameworkCore.Oracle.csproj @@ -4,7 +4,7 @@ - netstandard2.1 + net5.0 Volo.Abp.EntityFrameworkCore.Oracle Volo.Abp.EntityFrameworkCore.Oracle $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.PostgreSql/Volo.Abp.EntityFrameworkCore.PostgreSql.csproj b/framework/src/Volo.Abp.EntityFrameworkCore.PostgreSql/Volo.Abp.EntityFrameworkCore.PostgreSql.csproj index 96de9fdd1c..748f777c81 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.PostgreSql/Volo.Abp.EntityFrameworkCore.PostgreSql.csproj +++ b/framework/src/Volo.Abp.EntityFrameworkCore.PostgreSql/Volo.Abp.EntityFrameworkCore.PostgreSql.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.EntityFrameworkCore.PostgreSql Volo.Abp.EntityFrameworkCore.PostgreSql $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -19,7 +19,7 @@ - + diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo.Abp.EntityFrameworkCore.SqlServer.csproj b/framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo.Abp.EntityFrameworkCore.SqlServer.csproj index 366958b213..cf21ee079c 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo.Abp.EntityFrameworkCore.SqlServer.csproj +++ b/framework/src/Volo.Abp.EntityFrameworkCore.SqlServer/Volo.Abp.EntityFrameworkCore.SqlServer.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.EntityFrameworkCore.SqlServer Volo.Abp.EntityFrameworkCore.SqlServer $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -19,7 +19,7 @@ - + diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo.Abp.EntityFrameworkCore.Sqlite.csproj b/framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo.Abp.EntityFrameworkCore.Sqlite.csproj index 6a8fd26db2..cd4db44c0b 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo.Abp.EntityFrameworkCore.Sqlite.csproj +++ b/framework/src/Volo.Abp.EntityFrameworkCore.Sqlite/Volo.Abp.EntityFrameworkCore.Sqlite.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.EntityFrameworkCore.Sqlite Volo.Abp.EntityFrameworkCore.Sqlite $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo.Abp.EntityFrameworkCore.csproj b/framework/src/Volo.Abp.EntityFrameworkCore/Volo.Abp.EntityFrameworkCore.csproj index 4c6fb7fbbc..4a9c2543ab 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo.Abp.EntityFrameworkCore.csproj +++ b/framework/src/Volo.Abp.EntityFrameworkCore/Volo.Abp.EntityFrameworkCore.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.EntityFrameworkCore Volo.Abp.EntityFrameworkCore $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -20,8 +20,8 @@ - - + + diff --git a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/DatabaseFacadeExtensions.cs b/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/DatabaseFacadeExtensions.cs deleted file mode 100644 index 55bb9428e8..0000000000 --- a/framework/src/Volo.Abp.EntityFrameworkCore/Volo/Abp/EntityFrameworkCore/DatabaseFacadeExtensions.cs +++ /dev/null @@ -1,15 +0,0 @@ -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Internal; - -namespace Volo.Abp.EntityFrameworkCore -{ - public static class DatabaseFacadeExtensions - { - public static bool IsRelational(this DatabaseFacade database) - { -#pragma warning disable EF1001 // Internal EF Core API usage. - return ((IDatabaseFacadeDependenciesAccessor)database).Dependencies is IRelationalDatabaseFacadeDependencies; -#pragma warning restore EF1001 // Internal EF Core API usage. - } - } -} diff --git a/framework/src/Volo.Abp.EventBus.Kafka/Volo.Abp.EventBus.Kafka.csproj b/framework/src/Volo.Abp.EventBus.Kafka/Volo.Abp.EventBus.Kafka.csproj index 42b0293781..c4d249aa22 100644 --- a/framework/src/Volo.Abp.EventBus.Kafka/Volo.Abp.EventBus.Kafka.csproj +++ b/framework/src/Volo.Abp.EventBus.Kafka/Volo.Abp.EventBus.Kafka.csproj @@ -2,9 +2,9 @@ - + - netstandard2.0 + net5.0 diff --git a/framework/src/Volo.Abp.EventBus.RabbitMQ/Volo.Abp.EventBus.RabbitMQ.csproj b/framework/src/Volo.Abp.EventBus.RabbitMQ/Volo.Abp.EventBus.RabbitMQ.csproj index 40787f3fb2..d9418ee563 100644 --- a/framework/src/Volo.Abp.EventBus.RabbitMQ/Volo.Abp.EventBus.RabbitMQ.csproj +++ b/framework/src/Volo.Abp.EventBus.RabbitMQ/Volo.Abp.EventBus.RabbitMQ.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.EventBus.RabbitMQ Volo.Abp.EventBus.RabbitMQ $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.EventBus/Volo.Abp.EventBus.csproj b/framework/src/Volo.Abp.EventBus/Volo.Abp.EventBus.csproj index a1799c6673..fe25b472d9 100644 --- a/framework/src/Volo.Abp.EventBus/Volo.Abp.EventBus.csproj +++ b/framework/src/Volo.Abp.EventBus/Volo.Abp.EventBus.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.EventBus Volo.Abp.EventBus $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.Features/Volo.Abp.Features.csproj b/framework/src/Volo.Abp.Features/Volo.Abp.Features.csproj index a2d098f970..4d29cac1e4 100644 --- a/framework/src/Volo.Abp.Features/Volo.Abp.Features.csproj +++ b/framework/src/Volo.Abp.Features/Volo.Abp.Features.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Features Volo.Abp.Features $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.FluentValidation/Volo.Abp.FluentValidation.csproj b/framework/src/Volo.Abp.FluentValidation/Volo.Abp.FluentValidation.csproj index 68ce50ec9d..770416f111 100644 --- a/framework/src/Volo.Abp.FluentValidation/Volo.Abp.FluentValidation.csproj +++ b/framework/src/Volo.Abp.FluentValidation/Volo.Abp.FluentValidation.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.FluentValidation Volo.Abp.FluentValidation $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.GlobalFeatures/Volo.Abp.GlobalFeatures.csproj b/framework/src/Volo.Abp.GlobalFeatures/Volo.Abp.GlobalFeatures.csproj index f4afe8f9f7..a6bfc89ba9 100644 --- a/framework/src/Volo.Abp.GlobalFeatures/Volo.Abp.GlobalFeatures.csproj +++ b/framework/src/Volo.Abp.GlobalFeatures/Volo.Abp.GlobalFeatures.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.GlobalFeatures Volo.Abp.GlobalFeatures $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.Guids/Volo.Abp.Guids.csproj b/framework/src/Volo.Abp.Guids/Volo.Abp.Guids.csproj index 6c8c4c4916..b8140d8b9f 100644 --- a/framework/src/Volo.Abp.Guids/Volo.Abp.Guids.csproj +++ b/framework/src/Volo.Abp.Guids/Volo.Abp.Guids.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Guids Volo.Abp.Guids $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.HangFire/Volo.Abp.HangFire.csproj b/framework/src/Volo.Abp.HangFire/Volo.Abp.HangFire.csproj index 3bd6638f67..7d5fcbf387 100644 --- a/framework/src/Volo.Abp.HangFire/Volo.Abp.HangFire.csproj +++ b/framework/src/Volo.Abp.HangFire/Volo.Abp.HangFire.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.HangFire Volo.Abp.HangFire $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.Http.Abstractions/Volo.Abp.Http.Abstractions.csproj b/framework/src/Volo.Abp.Http.Abstractions/Volo.Abp.Http.Abstractions.csproj index 59de087fc4..17699f98c2 100644 --- a/framework/src/Volo.Abp.Http.Abstractions/Volo.Abp.Http.Abstractions.csproj +++ b/framework/src/Volo.Abp.Http.Abstractions/Volo.Abp.Http.Abstractions.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Http.Abstractions Volo.Abp.Http.Abstractions $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.Http.Client.IdentityModel.Web/Volo.Abp.Http.Client.IdentityModel.Web.csproj b/framework/src/Volo.Abp.Http.Client.IdentityModel.Web/Volo.Abp.Http.Client.IdentityModel.Web.csproj index 1518da9045..81a3d0ab9e 100644 --- a/framework/src/Volo.Abp.Http.Client.IdentityModel.Web/Volo.Abp.Http.Client.IdentityModel.Web.csproj +++ b/framework/src/Volo.Abp.Http.Client.IdentityModel.Web/Volo.Abp.Http.Client.IdentityModel.Web.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.Http.Client.IdentityModel.Web Volo.Abp.Http.Client.IdentityModel.Web $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.Http.Client.IdentityModel.WebAssembly/Volo.Abp.Http.Client.IdentityModel.WebAssembly.csproj b/framework/src/Volo.Abp.Http.Client.IdentityModel.WebAssembly/Volo.Abp.Http.Client.IdentityModel.WebAssembly.csproj index 36838f5149..e5c079c8ac 100644 --- a/framework/src/Volo.Abp.Http.Client.IdentityModel.WebAssembly/Volo.Abp.Http.Client.IdentityModel.WebAssembly.csproj +++ b/framework/src/Volo.Abp.Http.Client.IdentityModel.WebAssembly/Volo.Abp.Http.Client.IdentityModel.WebAssembly.csproj @@ -4,7 +4,7 @@ - netstandard2.1 + net5.0 Volo.Abp.Http.Client.IdentityModel.WebAssembly Volo.Abp.Http.Client.IdentityModel.WebAssembly $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -15,9 +15,9 @@ - + - + diff --git a/framework/src/Volo.Abp.Http.Client.IdentityModel/Volo.Abp.Http.Client.IdentityModel.csproj b/framework/src/Volo.Abp.Http.Client.IdentityModel/Volo.Abp.Http.Client.IdentityModel.csproj index d8eef1ba5d..6b11ca9f78 100644 --- a/framework/src/Volo.Abp.Http.Client.IdentityModel/Volo.Abp.Http.Client.IdentityModel.csproj +++ b/framework/src/Volo.Abp.Http.Client.IdentityModel/Volo.Abp.Http.Client.IdentityModel.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Http.Client.IdentityModel Volo.Abp.Http.Client.IdentityModel $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.Http.Client/Volo.Abp.Http.Client.csproj b/framework/src/Volo.Abp.Http.Client/Volo.Abp.Http.Client.csproj index 75dbce3b03..48d5d79198 100644 --- a/framework/src/Volo.Abp.Http.Client/Volo.Abp.Http.Client.csproj +++ b/framework/src/Volo.Abp.Http.Client/Volo.Abp.Http.Client.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Http.Client Volo.Abp.Http.Client $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -15,7 +15,7 @@ - + diff --git a/framework/src/Volo.Abp.Http/Volo.Abp.Http.csproj b/framework/src/Volo.Abp.Http/Volo.Abp.Http.csproj index d707299f21..bee8d5a5b1 100644 --- a/framework/src/Volo.Abp.Http/Volo.Abp.Http.csproj +++ b/framework/src/Volo.Abp.Http/Volo.Abp.Http.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Http Volo.Abp.Http $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.IdentityModel/Volo.Abp.IdentityModel.csproj b/framework/src/Volo.Abp.IdentityModel/Volo.Abp.IdentityModel.csproj index b96da9be3e..0e22e3b343 100644 --- a/framework/src/Volo.Abp.IdentityModel/Volo.Abp.IdentityModel.csproj +++ b/framework/src/Volo.Abp.IdentityModel/Volo.Abp.IdentityModel.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.IdentityModel Volo.Abp.IdentityModel $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -16,7 +16,7 @@ - + diff --git a/framework/src/Volo.Abp.Json/Volo.Abp.Json.csproj b/framework/src/Volo.Abp.Json/Volo.Abp.Json.csproj index 8af6ecc68f..7c62dbe305 100644 --- a/framework/src/Volo.Abp.Json/Volo.Abp.Json.csproj +++ b/framework/src/Volo.Abp.Json/Volo.Abp.Json.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Json Volo.Abp.Json $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -17,7 +17,7 @@ - + diff --git a/framework/src/Volo.Abp.Kafka/Volo.Abp.Kafka.csproj b/framework/src/Volo.Abp.Kafka/Volo.Abp.Kafka.csproj index e91f42d7b2..447bf04915 100644 --- a/framework/src/Volo.Abp.Kafka/Volo.Abp.Kafka.csproj +++ b/framework/src/Volo.Abp.Kafka/Volo.Abp.Kafka.csproj @@ -2,12 +2,12 @@ - + - netstandard2.0 + net5.0 - + diff --git a/framework/src/Volo.Abp.Ldap/Volo.Abp.Ldap.csproj b/framework/src/Volo.Abp.Ldap/Volo.Abp.Ldap.csproj index 849fe3ce3d..9d3152fc81 100644 --- a/framework/src/Volo.Abp.Ldap/Volo.Abp.Ldap.csproj +++ b/framework/src/Volo.Abp.Ldap/Volo.Abp.Ldap.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Ldap Volo.Abp.Ldap $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -17,12 +17,12 @@ - + - + diff --git a/framework/src/Volo.Abp.Localization.Abstractions/Volo.Abp.Localization.Abstractions.csproj b/framework/src/Volo.Abp.Localization.Abstractions/Volo.Abp.Localization.Abstractions.csproj index b883ae7011..f914cfd035 100644 --- a/framework/src/Volo.Abp.Localization.Abstractions/Volo.Abp.Localization.Abstractions.csproj +++ b/framework/src/Volo.Abp.Localization.Abstractions/Volo.Abp.Localization.Abstractions.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Localization.Abstractions Volo.Abp.Localization.Abstractions $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.Localization/Volo.Abp.Localization.csproj b/framework/src/Volo.Abp.Localization/Volo.Abp.Localization.csproj index 88c3bf0e81..871f40de0b 100644 --- a/framework/src/Volo.Abp.Localization/Volo.Abp.Localization.csproj +++ b/framework/src/Volo.Abp.Localization/Volo.Abp.Localization.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Localization Volo.Abp.Localization $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -13,12 +13,12 @@ false - + - + diff --git a/framework/src/Volo.Abp.MailKit/Volo.Abp.MailKit.csproj b/framework/src/Volo.Abp.MailKit/Volo.Abp.MailKit.csproj index ddded71dce..73d4cedb1f 100644 --- a/framework/src/Volo.Abp.MailKit/Volo.Abp.MailKit.csproj +++ b/framework/src/Volo.Abp.MailKit/Volo.Abp.MailKit.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.MailKit Volo.Abp.MailKit $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.MemoryDb/Volo.Abp.MemoryDb.csproj b/framework/src/Volo.Abp.MemoryDb/Volo.Abp.MemoryDb.csproj index 1a896b8891..6c876fefa3 100644 --- a/framework/src/Volo.Abp.MemoryDb/Volo.Abp.MemoryDb.csproj +++ b/framework/src/Volo.Abp.MemoryDb/Volo.Abp.MemoryDb.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.MemoryDb Volo.Abp.MemoryDb $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.Minify/Volo.Abp.Minify.csproj b/framework/src/Volo.Abp.Minify/Volo.Abp.Minify.csproj index 1b2f266637..b6b5be3918 100644 --- a/framework/src/Volo.Abp.Minify/Volo.Abp.Minify.csproj +++ b/framework/src/Volo.Abp.Minify/Volo.Abp.Minify.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Minify Volo.Abp.Minify $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.MongoDB/Volo.Abp.MongoDB.csproj b/framework/src/Volo.Abp.MongoDB/Volo.Abp.MongoDB.csproj index e2f589b399..acb971256e 100644 --- a/framework/src/Volo.Abp.MongoDB/Volo.Abp.MongoDB.csproj +++ b/framework/src/Volo.Abp.MongoDB/Volo.Abp.MongoDB.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.MongoDB Volo.Abp.MongoDB $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.MultiTenancy/Volo.Abp.MultiTenancy.csproj b/framework/src/Volo.Abp.MultiTenancy/Volo.Abp.MultiTenancy.csproj index 951712c7f0..b29488265f 100644 --- a/framework/src/Volo.Abp.MultiTenancy/Volo.Abp.MultiTenancy.csproj +++ b/framework/src/Volo.Abp.MultiTenancy/Volo.Abp.MultiTenancy.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.MultiTenancy Volo.Abp.MultiTenancy $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.ObjectExtending/Volo.Abp.ObjectExtending.csproj b/framework/src/Volo.Abp.ObjectExtending/Volo.Abp.ObjectExtending.csproj index 4b8542101a..1a21f8d85c 100644 --- a/framework/src/Volo.Abp.ObjectExtending/Volo.Abp.ObjectExtending.csproj +++ b/framework/src/Volo.Abp.ObjectExtending/Volo.Abp.ObjectExtending.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.ObjectExtending Volo.Abp.ObjectExtending $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -19,4 +19,4 @@ - \ No newline at end of file + diff --git a/framework/src/Volo.Abp.ObjectMapping/Volo.Abp.ObjectMapping.csproj b/framework/src/Volo.Abp.ObjectMapping/Volo.Abp.ObjectMapping.csproj index 163fd6d534..d8bd4c1295 100644 --- a/framework/src/Volo.Abp.ObjectMapping/Volo.Abp.ObjectMapping.csproj +++ b/framework/src/Volo.Abp.ObjectMapping/Volo.Abp.ObjectMapping.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.ObjectMapping Volo.Abp.ObjectMapping $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.Quartz/Volo.Abp.Quartz.csproj b/framework/src/Volo.Abp.Quartz/Volo.Abp.Quartz.csproj index 00da6b31b6..0a3c4bb0ed 100644 --- a/framework/src/Volo.Abp.Quartz/Volo.Abp.Quartz.csproj +++ b/framework/src/Volo.Abp.Quartz/Volo.Abp.Quartz.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Quartz Volo.Abp.Quartz $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.RabbitMQ/Volo.Abp.RabbitMQ.csproj b/framework/src/Volo.Abp.RabbitMQ/Volo.Abp.RabbitMQ.csproj index a21be8bdfa..baa7c07b8b 100644 --- a/framework/src/Volo.Abp.RabbitMQ/Volo.Abp.RabbitMQ.csproj +++ b/framework/src/Volo.Abp.RabbitMQ/Volo.Abp.RabbitMQ.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.RabbitMQ Volo.Abp.RabbitMQ $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.Security/Volo.Abp.Security.csproj b/framework/src/Volo.Abp.Security/Volo.Abp.Security.csproj index 65aca85c88..37337f3ae9 100644 --- a/framework/src/Volo.Abp.Security/Volo.Abp.Security.csproj +++ b/framework/src/Volo.Abp.Security/Volo.Abp.Security.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Security Volo.Abp.Security $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.Serialization/Volo.Abp.Serialization.csproj b/framework/src/Volo.Abp.Serialization/Volo.Abp.Serialization.csproj index b23178d760..0c62e4ee13 100644 --- a/framework/src/Volo.Abp.Serialization/Volo.Abp.Serialization.csproj +++ b/framework/src/Volo.Abp.Serialization/Volo.Abp.Serialization.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Serialization Volo.Abp.Serialization $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.Settings/Volo.Abp.Settings.csproj b/framework/src/Volo.Abp.Settings/Volo.Abp.Settings.csproj index 65f985a87b..30522c2254 100644 --- a/framework/src/Volo.Abp.Settings/Volo.Abp.Settings.csproj +++ b/framework/src/Volo.Abp.Settings/Volo.Abp.Settings.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Settings Volo.Abp.Settings $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.Sms/Volo.Abp.Sms.csproj b/framework/src/Volo.Abp.Sms/Volo.Abp.Sms.csproj index 35adb7e62c..562c5616fe 100644 --- a/framework/src/Volo.Abp.Sms/Volo.Abp.Sms.csproj +++ b/framework/src/Volo.Abp.Sms/Volo.Abp.Sms.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Sms Volo.Abp.Sms $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.Specifications/Volo.Abp.Specifications.csproj b/framework/src/Volo.Abp.Specifications/Volo.Abp.Specifications.csproj index 6e17993ba1..ab422178c4 100644 --- a/framework/src/Volo.Abp.Specifications/Volo.Abp.Specifications.csproj +++ b/framework/src/Volo.Abp.Specifications/Volo.Abp.Specifications.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Specifications Volo.Abp.Specifications $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.TestBase/Volo.Abp.TestBase.csproj b/framework/src/Volo.Abp.TestBase/Volo.Abp.TestBase.csproj index 004a0fa4d6..aa6ae5b94e 100644 --- a/framework/src/Volo.Abp.TestBase/Volo.Abp.TestBase.csproj +++ b/framework/src/Volo.Abp.TestBase/Volo.Abp.TestBase.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.TestBase Volo.Abp.TestBase $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.TextTemplating/Volo.Abp.TextTemplating.csproj b/framework/src/Volo.Abp.TextTemplating/Volo.Abp.TextTemplating.csproj index 41bba98866..37d635d118 100644 --- a/framework/src/Volo.Abp.TextTemplating/Volo.Abp.TextTemplating.csproj +++ b/framework/src/Volo.Abp.TextTemplating/Volo.Abp.TextTemplating.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.TextTemplating Volo.Abp.TextTemplating $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.Threading/Volo.Abp.Threading.csproj b/framework/src/Volo.Abp.Threading/Volo.Abp.Threading.csproj index 0f5fbf3e9a..c038db86ca 100644 --- a/framework/src/Volo.Abp.Threading/Volo.Abp.Threading.csproj +++ b/framework/src/Volo.Abp.Threading/Volo.Abp.Threading.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Threading Volo.Abp.Threading $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.Timing/Volo.Abp.Timing.csproj b/framework/src/Volo.Abp.Timing/Volo.Abp.Timing.csproj index 53ef23fd62..c3b6666ead 100644 --- a/framework/src/Volo.Abp.Timing/Volo.Abp.Timing.csproj +++ b/framework/src/Volo.Abp.Timing/Volo.Abp.Timing.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Timing Volo.Abp.Timing $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.UI.Navigation/Volo.Abp.UI.Navigation.csproj b/framework/src/Volo.Abp.UI.Navigation/Volo.Abp.UI.Navigation.csproj index 77d95d186d..0994b6e835 100644 --- a/framework/src/Volo.Abp.UI.Navigation/Volo.Abp.UI.Navigation.csproj +++ b/framework/src/Volo.Abp.UI.Navigation/Volo.Abp.UI.Navigation.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.UI.Navigation Volo.Abp.UI.Navigation $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.UI/Volo.Abp.UI.csproj b/framework/src/Volo.Abp.UI/Volo.Abp.UI.csproj index acff7d004b..0f80563fe2 100644 --- a/framework/src/Volo.Abp.UI/Volo.Abp.UI.csproj +++ b/framework/src/Volo.Abp.UI/Volo.Abp.UI.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.UI Volo.Abp.UI $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -18,7 +18,7 @@ - + diff --git a/framework/src/Volo.Abp.Uow/Volo.Abp.Uow.csproj b/framework/src/Volo.Abp.Uow/Volo.Abp.Uow.csproj index 1c5552d1da..99001b05e7 100644 --- a/framework/src/Volo.Abp.Uow/Volo.Abp.Uow.csproj +++ b/framework/src/Volo.Abp.Uow/Volo.Abp.Uow.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Uow Volo.Abp.Uow $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.Validation.Abstractions/Volo.Abp.Validation.Abstractions.csproj b/framework/src/Volo.Abp.Validation.Abstractions/Volo.Abp.Validation.Abstractions.csproj index 2ed6955187..db32439a36 100644 --- a/framework/src/Volo.Abp.Validation.Abstractions/Volo.Abp.Validation.Abstractions.csproj +++ b/framework/src/Volo.Abp.Validation.Abstractions/Volo.Abp.Validation.Abstractions.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Validation.Abstractions Volo.Abp.Validation.Abstractions $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -18,4 +18,4 @@ - \ No newline at end of file + diff --git a/framework/src/Volo.Abp.Validation/Volo.Abp.Validation.csproj b/framework/src/Volo.Abp.Validation/Volo.Abp.Validation.csproj index 10daff842e..2de0892263 100644 --- a/framework/src/Volo.Abp.Validation/Volo.Abp.Validation.csproj +++ b/framework/src/Volo.Abp.Validation/Volo.Abp.Validation.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Validation Volo.Abp.Validation $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj b/framework/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj index 09af40a2c7..d75501b32a 100644 --- a/framework/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj +++ b/framework/src/Volo.Abp.VirtualFileSystem/Volo.Abp.VirtualFileSystem.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.VirtualFileSystem Volo.Abp.VirtualFileSystem $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -15,9 +15,9 @@ - - - + + + diff --git a/framework/src/Volo.Abp/Volo.Abp.csproj b/framework/src/Volo.Abp/Volo.Abp.csproj index 37f9ded71c..865fd5a634 100644 --- a/framework/src/Volo.Abp/Volo.Abp.csproj +++ b/framework/src/Volo.Abp/Volo.Abp.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp Volo.Abp $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/framework/test/AbpTestBase/AbpTestBase.csproj b/framework/test/AbpTestBase/AbpTestBase.csproj index a1b2dcd89b..10e5b5d74a 100644 --- a/framework/test/AbpTestBase/AbpTestBase.csproj +++ b/framework/test/AbpTestBase/AbpTestBase.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 AbpTestBase AbpTestBase diff --git a/framework/test/SimpleConsoleDemo/SimpleConsoleDemo.csproj b/framework/test/SimpleConsoleDemo/SimpleConsoleDemo.csproj index 4edbb748b9..ddad34e68c 100644 --- a/framework/test/SimpleConsoleDemo/SimpleConsoleDemo.csproj +++ b/framework/test/SimpleConsoleDemo/SimpleConsoleDemo.csproj @@ -2,7 +2,7 @@ Exe - netcoreapp3.1 + net5.0 @@ -18,7 +18,7 @@ - + diff --git a/framework/test/Volo.Abp.AspNetCore.Authentication.OAuth.Tests/Volo.Abp.AspNetCore.Authentication.OAuth.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Authentication.OAuth.Tests/Volo.Abp.AspNetCore.Authentication.OAuth.Tests.csproj index 0d170148d4..0a3603d7c0 100644 --- a/framework/test/Volo.Abp.AspNetCore.Authentication.OAuth.Tests/Volo.Abp.AspNetCore.Authentication.OAuth.Tests.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Authentication.OAuth.Tests/Volo.Abp.AspNetCore.Authentication.OAuth.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 latest Volo.Abp.AspNetCore.Authentication.OAuth.Tests Volo.Abp.AspNetCore.Authentication.OAuth.Tests diff --git a/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo.Abp.AspNetCore.MultiTenancy.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo.Abp.AspNetCore.MultiTenancy.Tests.csproj index 9e7bf68457..e5c8f6a398 100644 --- a/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo.Abp.AspNetCore.MultiTenancy.Tests.csproj +++ b/framework/test/Volo.Abp.AspNetCore.MultiTenancy.Tests/Volo.Abp.AspNetCore.MultiTenancy.Tests.csproj @@ -1,9 +1,9 @@ - + - netcoreapp3.1 + net5.0 Volo.Abp.AspNetCore.MultiTenancy.Tests Volo.Abp.AspNetCore.MultiTenancy.Tests diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo.Abp.AspNetCore.Mvc.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo.Abp.AspNetCore.Mvc.Tests.csproj index c6450e6df1..200e8e45a4 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo.Abp.AspNetCore.Mvc.Tests.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo.Abp.AspNetCore.Mvc.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; Volo.Abp.AspNetCore.Mvc.Tests Volo.Abp.AspNetCore.Mvc.Tests diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests.csproj index f1fa33a3b3..f3976e2e1f 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.Tests diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj index ccbffb47f4..1595a5009c 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo.csproj @@ -1,14 +1,14 @@ - + - netcoreapp3.1 + net5.0 true - + diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo.Abp.AspNetCore.Mvc.UI.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo.Abp.AspNetCore.Mvc.UI.Tests.csproj index 92e5e21867..babe8a4650 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo.Abp.AspNetCore.Mvc.UI.Tests.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Tests/Volo.Abp.AspNetCore.Mvc.UI.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; Volo.Abp.AspNetCore.Mvc.UI.Tests Volo.Abp.AspNetCore.Mvc.UI.Tests diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.csproj b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.csproj index 4c328a670f..e615725b54 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 true @@ -15,7 +15,7 @@ - + diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Tests/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Tests/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Tests.csproj index 0e6ffe1e62..bedbb6a4ec 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Tests/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Tests.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Tests/Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Versioning.Tests/Volo.Abp.AspNetCore.Mvc.Versioning.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Mvc.Versioning.Tests/Volo.Abp.AspNetCore.Mvc.Versioning.Tests.csproj index e519e733de..0296733111 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.Versioning.Tests/Volo.Abp.AspNetCore.Mvc.Versioning.Tests.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Versioning.Tests/Volo.Abp.AspNetCore.Mvc.Versioning.Tests.csproj @@ -1,9 +1,9 @@ - + - netcoreapp3.1 + net5.0 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; Volo.Abp.AspNetCore.Mvc.Versioning.Tests Volo.Abp.AspNetCore.Mvc.Versioning.Tests diff --git a/framework/test/Volo.Abp.AspNetCore.Serilog.Tests/Volo.Abp.AspNetCore.Serilog.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Serilog.Tests/Volo.Abp.AspNetCore.Serilog.Tests.csproj index 77c291f0a0..09f3cf445f 100644 --- a/framework/test/Volo.Abp.AspNetCore.Serilog.Tests/Volo.Abp.AspNetCore.Serilog.Tests.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Serilog.Tests/Volo.Abp.AspNetCore.Serilog.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.AspNetCore.Serilog.Tests Volo.Abp.AspNetCore.Serilog.Tests diff --git a/framework/test/Volo.Abp.AspNetCore.SignalR.Tests/Volo.Abp.AspNetCore.SignalR.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.SignalR.Tests/Volo.Abp.AspNetCore.SignalR.Tests.csproj index 3bf5a6badd..71a50ec246 100644 --- a/framework/test/Volo.Abp.AspNetCore.SignalR.Tests/Volo.Abp.AspNetCore.SignalR.Tests.csproj +++ b/framework/test/Volo.Abp.AspNetCore.SignalR.Tests/Volo.Abp.AspNetCore.SignalR.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.AspNetCore.Tests/Volo.Abp.AspNetCore.Tests.csproj b/framework/test/Volo.Abp.AspNetCore.Tests/Volo.Abp.AspNetCore.Tests.csproj index 5becdbc672..d04ae3f37b 100644 --- a/framework/test/Volo.Abp.AspNetCore.Tests/Volo.Abp.AspNetCore.Tests.csproj +++ b/framework/test/Volo.Abp.AspNetCore.Tests/Volo.Abp.AspNetCore.Tests.csproj @@ -1,9 +1,9 @@ - + - netcoreapp3.1 + net5.0 Volo.Abp.AspNetCore.Tests Volo.Abp.AspNetCore.Tests true @@ -15,7 +15,7 @@ true - + diff --git a/framework/test/Volo.Abp.Auditing.Tests/Volo.Abp.Auditing.Tests.csproj b/framework/test/Volo.Abp.Auditing.Tests/Volo.Abp.Auditing.Tests.csproj index 2b74dd0a58..08eb55afb4 100644 --- a/framework/test/Volo.Abp.Auditing.Tests/Volo.Abp.Auditing.Tests.csproj +++ b/framework/test/Volo.Abp.Auditing.Tests/Volo.Abp.Auditing.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.Auditing.Tests Volo.Abp.Auditing.Tests true diff --git a/framework/test/Volo.Abp.Authorization.Tests/Volo.Abp.Authorization.Tests.csproj b/framework/test/Volo.Abp.Authorization.Tests/Volo.Abp.Authorization.Tests.csproj index 1d3e4b5dfd..8361d8b9ad 100644 --- a/framework/test/Volo.Abp.Authorization.Tests/Volo.Abp.Authorization.Tests.csproj +++ b/framework/test/Volo.Abp.Authorization.Tests/Volo.Abp.Authorization.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.Authorization.Tests Volo.Abp.Authorization.Tests true diff --git a/framework/test/Volo.Abp.AutoMapper.Tests/Volo.Abp.AutoMapper.Tests.csproj b/framework/test/Volo.Abp.AutoMapper.Tests/Volo.Abp.AutoMapper.Tests.csproj index 1d3d553047..36d1c41371 100644 --- a/framework/test/Volo.Abp.AutoMapper.Tests/Volo.Abp.AutoMapper.Tests.csproj +++ b/framework/test/Volo.Abp.AutoMapper.Tests/Volo.Abp.AutoMapper.Tests.csproj @@ -1,9 +1,9 @@ - + - netcoreapp3.1 + net5.0 Volo.Abp.AutoMapper.Tests Volo.Abp.AutoMapper.Tests diff --git a/framework/test/Volo.Abp.Autofac.Tests/Volo.Abp.Autofac.Tests.csproj b/framework/test/Volo.Abp.Autofac.Tests/Volo.Abp.Autofac.Tests.csproj index c8d0672d13..98ac012ef4 100644 --- a/framework/test/Volo.Abp.Autofac.Tests/Volo.Abp.Autofac.Tests.csproj +++ b/framework/test/Volo.Abp.Autofac.Tests/Volo.Abp.Autofac.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.Autofac.Tests Volo.Abp.Autofac.Tests true diff --git a/framework/test/Volo.Abp.BackgroundJobs.Tests/Volo.Abp.BackgroundJobs.Tests.csproj b/framework/test/Volo.Abp.BackgroundJobs.Tests/Volo.Abp.BackgroundJobs.Tests.csproj index ca7f94918d..b7263e31f5 100644 --- a/framework/test/Volo.Abp.BackgroundJobs.Tests/Volo.Abp.BackgroundJobs.Tests.csproj +++ b/framework/test/Volo.Abp.BackgroundJobs.Tests/Volo.Abp.BackgroundJobs.Tests.csproj @@ -1,9 +1,9 @@ - + - netcoreapp3.1 + net5.0 Volo.Abp.BackgroundJobs.Tests Volo.Abp.BackgroundJobs.Tests diff --git a/framework/test/Volo.Abp.BlobStoring.Aliyun.Tests/Volo.Abp.BlobStoring.Aliyun.Tests.csproj b/framework/test/Volo.Abp.BlobStoring.Aliyun.Tests/Volo.Abp.BlobStoring.Aliyun.Tests.csproj index 7d61dcecae..2d94b1a324 100644 --- a/framework/test/Volo.Abp.BlobStoring.Aliyun.Tests/Volo.Abp.BlobStoring.Aliyun.Tests.csproj +++ b/framework/test/Volo.Abp.BlobStoring.Aliyun.Tests/Volo.Abp.BlobStoring.Aliyun.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 9f0d2c00-80c1-435b-bfab-2c39c8249091 @@ -12,7 +12,7 @@ - + diff --git a/framework/test/Volo.Abp.BlobStoring.Aws.Tests/Volo.Abp.BlobStoring.Aws.Tests.csproj b/framework/test/Volo.Abp.BlobStoring.Aws.Tests/Volo.Abp.BlobStoring.Aws.Tests.csproj index 2a4910e32c..ef6c0bf0e3 100644 --- a/framework/test/Volo.Abp.BlobStoring.Aws.Tests/Volo.Abp.BlobStoring.Aws.Tests.csproj +++ b/framework/test/Volo.Abp.BlobStoring.Aws.Tests/Volo.Abp.BlobStoring.Aws.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 9f0d2c00-80c1-435b-bfab-2c39c8249091 diff --git a/framework/test/Volo.Abp.BlobStoring.Azure.Tests/Volo.Abp.BlobStoring.Azure.Tests.csproj b/framework/test/Volo.Abp.BlobStoring.Azure.Tests/Volo.Abp.BlobStoring.Azure.Tests.csproj index 09a4861297..de4fa933be 100644 --- a/framework/test/Volo.Abp.BlobStoring.Azure.Tests/Volo.Abp.BlobStoring.Azure.Tests.csproj +++ b/framework/test/Volo.Abp.BlobStoring.Azure.Tests/Volo.Abp.BlobStoring.Azure.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 9f0d2c00-80c1-435b-bfab-2c39c8249091 diff --git a/framework/test/Volo.Abp.BlobStoring.FileSystem.Tests/Volo.Abp.BlobStoring.FileSystem.Tests.csproj b/framework/test/Volo.Abp.BlobStoring.FileSystem.Tests/Volo.Abp.BlobStoring.FileSystem.Tests.csproj index 93165fa05a..d388702a02 100644 --- a/framework/test/Volo.Abp.BlobStoring.FileSystem.Tests/Volo.Abp.BlobStoring.FileSystem.Tests.csproj +++ b/framework/test/Volo.Abp.BlobStoring.FileSystem.Tests/Volo.Abp.BlobStoring.FileSystem.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.BlobStoring.Minio.Tests/Volo.Abp.BlobStoring.Minio.Tests.csproj b/framework/test/Volo.Abp.BlobStoring.Minio.Tests/Volo.Abp.BlobStoring.Minio.Tests.csproj index 388efc88a2..ea66960ec1 100644 --- a/framework/test/Volo.Abp.BlobStoring.Minio.Tests/Volo.Abp.BlobStoring.Minio.Tests.csproj +++ b/framework/test/Volo.Abp.BlobStoring.Minio.Tests/Volo.Abp.BlobStoring.Minio.Tests.csproj @@ -1,7 +1,7 @@  - netcoreapp3.1 + net5.0 9f0d2c00-80c1-435b-bfab-2c39c8249091 diff --git a/framework/test/Volo.Abp.BlobStoring.Tests/Volo.Abp.BlobStoring.Tests.csproj b/framework/test/Volo.Abp.BlobStoring.Tests/Volo.Abp.BlobStoring.Tests.csproj index 130f95bb77..cbcbfd9be8 100644 --- a/framework/test/Volo.Abp.BlobStoring.Tests/Volo.Abp.BlobStoring.Tests.csproj +++ b/framework/test/Volo.Abp.BlobStoring.Tests/Volo.Abp.BlobStoring.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Caching.StackExchangeRedis.Tests/Volo.Abp.Caching.StackExchangeRedis.Tests.csproj b/framework/test/Volo.Abp.Caching.StackExchangeRedis.Tests/Volo.Abp.Caching.StackExchangeRedis.Tests.csproj index 15f4bc8b9d..69b6fef168 100644 --- a/framework/test/Volo.Abp.Caching.StackExchangeRedis.Tests/Volo.Abp.Caching.StackExchangeRedis.Tests.csproj +++ b/framework/test/Volo.Abp.Caching.StackExchangeRedis.Tests/Volo.Abp.Caching.StackExchangeRedis.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Caching.Tests/Volo.Abp.Caching.Tests.csproj b/framework/test/Volo.Abp.Caching.Tests/Volo.Abp.Caching.Tests.csproj index 1213685332..c09ea42c9f 100644 --- a/framework/test/Volo.Abp.Caching.Tests/Volo.Abp.Caching.Tests.csproj +++ b/framework/test/Volo.Abp.Caching.Tests/Volo.Abp.Caching.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.Caching.Tests Volo.Abp.Caching.Tests diff --git a/framework/test/Volo.Abp.Castle.Core.Tests/Volo.Abp.Castle.Core.Tests.csproj b/framework/test/Volo.Abp.Castle.Core.Tests/Volo.Abp.Castle.Core.Tests.csproj index f16f39a6eb..f89cec35e3 100644 --- a/framework/test/Volo.Abp.Castle.Core.Tests/Volo.Abp.Castle.Core.Tests.csproj +++ b/framework/test/Volo.Abp.Castle.Core.Tests/Volo.Abp.Castle.Core.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Cli.Core.Tests/Volo.Abp.Cli.Core.Tests.csproj b/framework/test/Volo.Abp.Cli.Core.Tests/Volo.Abp.Cli.Core.Tests.csproj index d13f50b93b..7ee53a3424 100644 --- a/framework/test/Volo.Abp.Cli.Core.Tests/Volo.Abp.Cli.Core.Tests.csproj +++ b/framework/test/Volo.Abp.Cli.Core.Tests/Volo.Abp.Cli.Core.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Core.Tests/Volo.Abp.Core.Tests.csproj b/framework/test/Volo.Abp.Core.Tests/Volo.Abp.Core.Tests.csproj index 6be0cb02ab..7e302e93d3 100644 --- a/framework/test/Volo.Abp.Core.Tests/Volo.Abp.Core.Tests.csproj +++ b/framework/test/Volo.Abp.Core.Tests/Volo.Abp.Core.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Dapper.Tests/Volo.Abp.Dapper.Tests.csproj b/framework/test/Volo.Abp.Dapper.Tests/Volo.Abp.Dapper.Tests.csproj index 4402f1e9a8..8132a7c368 100644 --- a/framework/test/Volo.Abp.Dapper.Tests/Volo.Abp.Dapper.Tests.csproj +++ b/framework/test/Volo.Abp.Dapper.Tests/Volo.Abp.Dapper.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Data.Tests/Volo.Abp.Data.Tests.csproj b/framework/test/Volo.Abp.Data.Tests/Volo.Abp.Data.Tests.csproj index c35edc1148..4c4f7b0531 100644 --- a/framework/test/Volo.Abp.Data.Tests/Volo.Abp.Data.Tests.csproj +++ b/framework/test/Volo.Abp.Data.Tests/Volo.Abp.Data.Tests.csproj @@ -1,9 +1,9 @@ - + - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Ddd.Tests/Volo.Abp.Ddd.Tests.csproj b/framework/test/Volo.Abp.Ddd.Tests/Volo.Abp.Ddd.Tests.csproj index 3422dcbcf6..21bd17719f 100644 --- a/framework/test/Volo.Abp.Ddd.Tests/Volo.Abp.Ddd.Tests.csproj +++ b/framework/test/Volo.Abp.Ddd.Tests/Volo.Abp.Ddd.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Emailing.Tests/Volo.Abp.Emailing.Tests.csproj b/framework/test/Volo.Abp.Emailing.Tests/Volo.Abp.Emailing.Tests.csproj index 23dd953416..81c6662cdf 100644 --- a/framework/test/Volo.Abp.Emailing.Tests/Volo.Abp.Emailing.Tests.csproj +++ b/framework/test/Volo.Abp.Emailing.Tests/Volo.Abp.Emailing.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.EntityFrameworkCore.Tests.SecondContext/Volo.Abp.EntityFrameworkCore.Tests.SecondContext.csproj b/framework/test/Volo.Abp.EntityFrameworkCore.Tests.SecondContext/Volo.Abp.EntityFrameworkCore.Tests.SecondContext.csproj index e60435ce25..53b43eae64 100644 --- a/framework/test/Volo.Abp.EntityFrameworkCore.Tests.SecondContext/Volo.Abp.EntityFrameworkCore.Tests.SecondContext.csproj +++ b/framework/test/Volo.Abp.EntityFrameworkCore.Tests.SecondContext/Volo.Abp.EntityFrameworkCore.Tests.SecondContext.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; true true @@ -15,5 +15,5 @@ - + diff --git a/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo.Abp.EntityFrameworkCore.Tests.csproj b/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo.Abp.EntityFrameworkCore.Tests.csproj index 84fcc32477..48a2863bcf 100644 --- a/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo.Abp.EntityFrameworkCore.Tests.csproj +++ b/framework/test/Volo.Abp.EntityFrameworkCore.Tests/Volo.Abp.EntityFrameworkCore.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.EventBus.Tests/Volo.Abp.EventBus.Tests.csproj b/framework/test/Volo.Abp.EventBus.Tests/Volo.Abp.EventBus.Tests.csproj index f45812c4a6..31ba019431 100644 --- a/framework/test/Volo.Abp.EventBus.Tests/Volo.Abp.EventBus.Tests.csproj +++ b/framework/test/Volo.Abp.EventBus.Tests/Volo.Abp.EventBus.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Features.Tests/Volo.Abp.Features.Tests.csproj b/framework/test/Volo.Abp.Features.Tests/Volo.Abp.Features.Tests.csproj index d5ea171e35..ed4b35cb0a 100644 --- a/framework/test/Volo.Abp.Features.Tests/Volo.Abp.Features.Tests.csproj +++ b/framework/test/Volo.Abp.Features.Tests/Volo.Abp.Features.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.FluentValidation.Tests/Volo.Abp.FluentValidation.Tests.csproj b/framework/test/Volo.Abp.FluentValidation.Tests/Volo.Abp.FluentValidation.Tests.csproj index 2ee95269ae..1a107db3e1 100644 --- a/framework/test/Volo.Abp.FluentValidation.Tests/Volo.Abp.FluentValidation.Tests.csproj +++ b/framework/test/Volo.Abp.FluentValidation.Tests/Volo.Abp.FluentValidation.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.GlobalFeatures.Tests/Volo.Abp.GlobalFeatures.Tests.csproj b/framework/test/Volo.Abp.GlobalFeatures.Tests/Volo.Abp.GlobalFeatures.Tests.csproj index c0a973f8a5..aa1e5d93dd 100644 --- a/framework/test/Volo.Abp.GlobalFeatures.Tests/Volo.Abp.GlobalFeatures.Tests.csproj +++ b/framework/test/Volo.Abp.GlobalFeatures.Tests/Volo.Abp.GlobalFeatures.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Http.Client.IdentityModel.Web.Tests/Volo.Abp.Http.Client.IdentityModel.Web.Tests.csproj b/framework/test/Volo.Abp.Http.Client.IdentityModel.Web.Tests/Volo.Abp.Http.Client.IdentityModel.Web.Tests.csproj index 78518bdda3..1a000b7b07 100644 --- a/framework/test/Volo.Abp.Http.Client.IdentityModel.Web.Tests/Volo.Abp.Http.Client.IdentityModel.Web.Tests.csproj +++ b/framework/test/Volo.Abp.Http.Client.IdentityModel.Web.Tests/Volo.Abp.Http.Client.IdentityModel.Web.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Http.Client.Tests/Volo.Abp.Http.Client.Tests.csproj b/framework/test/Volo.Abp.Http.Client.Tests/Volo.Abp.Http.Client.Tests.csproj index 6b4e1ce4f0..e1e8308e90 100644 --- a/framework/test/Volo.Abp.Http.Client.Tests/Volo.Abp.Http.Client.Tests.csproj +++ b/framework/test/Volo.Abp.Http.Client.Tests/Volo.Abp.Http.Client.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Ldap.Tests/Volo.Abp.Ldap.Tests.csproj b/framework/test/Volo.Abp.Ldap.Tests/Volo.Abp.Ldap.Tests.csproj index d2db584347..245a776adf 100644 --- a/framework/test/Volo.Abp.Ldap.Tests/Volo.Abp.Ldap.Tests.csproj +++ b/framework/test/Volo.Abp.Ldap.Tests/Volo.Abp.Ldap.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Localization.Tests/Volo.Abp.Localization.Tests.csproj b/framework/test/Volo.Abp.Localization.Tests/Volo.Abp.Localization.Tests.csproj index 56abd36ebb..4cf02e61c9 100644 --- a/framework/test/Volo.Abp.Localization.Tests/Volo.Abp.Localization.Tests.csproj +++ b/framework/test/Volo.Abp.Localization.Tests/Volo.Abp.Localization.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.MailKit.Tests/Volo.Abp.MailKit.Tests.csproj b/framework/test/Volo.Abp.MailKit.Tests/Volo.Abp.MailKit.Tests.csproj index 31c7001db5..0296ddf8ef 100644 --- a/framework/test/Volo.Abp.MailKit.Tests/Volo.Abp.MailKit.Tests.csproj +++ b/framework/test/Volo.Abp.MailKit.Tests/Volo.Abp.MailKit.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.MemoryDb.Tests/Volo.Abp.MemoryDb.Tests.csproj b/framework/test/Volo.Abp.MemoryDb.Tests/Volo.Abp.MemoryDb.Tests.csproj index 372ebd68f4..17d31643e0 100644 --- a/framework/test/Volo.Abp.MemoryDb.Tests/Volo.Abp.MemoryDb.Tests.csproj +++ b/framework/test/Volo.Abp.MemoryDb.Tests/Volo.Abp.MemoryDb.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Minify.Tests/Volo.Abp.Minify.Tests.csproj b/framework/test/Volo.Abp.Minify.Tests/Volo.Abp.Minify.Tests.csproj index 2c14d9fba4..9f91246546 100644 --- a/framework/test/Volo.Abp.Minify.Tests/Volo.Abp.Minify.Tests.csproj +++ b/framework/test/Volo.Abp.Minify.Tests/Volo.Abp.Minify.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.MongoDB.Tests/Volo.Abp.MongoDB.Tests.csproj b/framework/test/Volo.Abp.MongoDB.Tests/Volo.Abp.MongoDB.Tests.csproj index 97758b7880..39cff60ed5 100644 --- a/framework/test/Volo.Abp.MongoDB.Tests/Volo.Abp.MongoDB.Tests.csproj +++ b/framework/test/Volo.Abp.MongoDB.Tests/Volo.Abp.MongoDB.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.MultiTenancy.Tests/Volo.Abp.MultiTenancy.Tests.csproj b/framework/test/Volo.Abp.MultiTenancy.Tests/Volo.Abp.MultiTenancy.Tests.csproj index 3d95f00a8b..9bbf07d879 100644 --- a/framework/test/Volo.Abp.MultiTenancy.Tests/Volo.Abp.MultiTenancy.Tests.csproj +++ b/framework/test/Volo.Abp.MultiTenancy.Tests/Volo.Abp.MultiTenancy.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.ObjectExtending.Tests/Volo.Abp.ObjectExtending.Tests.csproj b/framework/test/Volo.Abp.ObjectExtending.Tests/Volo.Abp.ObjectExtending.Tests.csproj index 212eeb7d5b..733cf26ab8 100644 --- a/framework/test/Volo.Abp.ObjectExtending.Tests/Volo.Abp.ObjectExtending.Tests.csproj +++ b/framework/test/Volo.Abp.ObjectExtending.Tests/Volo.Abp.ObjectExtending.Tests.csproj @@ -1,9 +1,9 @@  - + - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.ObjectMapping.Tests/Volo.Abp.ObjectMapping.Tests.csproj b/framework/test/Volo.Abp.ObjectMapping.Tests/Volo.Abp.ObjectMapping.Tests.csproj index 23c59ef064..9d9dd5eb30 100644 --- a/framework/test/Volo.Abp.ObjectMapping.Tests/Volo.Abp.ObjectMapping.Tests.csproj +++ b/framework/test/Volo.Abp.ObjectMapping.Tests/Volo.Abp.ObjectMapping.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Security.Tests/Volo.Abp.Security.Tests.csproj b/framework/test/Volo.Abp.Security.Tests/Volo.Abp.Security.Tests.csproj index 41d152d1cb..a64c89ac24 100644 --- a/framework/test/Volo.Abp.Security.Tests/Volo.Abp.Security.Tests.csproj +++ b/framework/test/Volo.Abp.Security.Tests/Volo.Abp.Security.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Serialization.Tests/Volo.Abp.Serialization.Tests.csproj b/framework/test/Volo.Abp.Serialization.Tests/Volo.Abp.Serialization.Tests.csproj index 3efd1d9db7..d6f69ebbfa 100644 --- a/framework/test/Volo.Abp.Serialization.Tests/Volo.Abp.Serialization.Tests.csproj +++ b/framework/test/Volo.Abp.Serialization.Tests/Volo.Abp.Serialization.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Settings.Tests/Volo.Abp.Settings.Tests.csproj b/framework/test/Volo.Abp.Settings.Tests/Volo.Abp.Settings.Tests.csproj index fadf2659d0..8791851953 100644 --- a/framework/test/Volo.Abp.Settings.Tests/Volo.Abp.Settings.Tests.csproj +++ b/framework/test/Volo.Abp.Settings.Tests/Volo.Abp.Settings.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Specifications.Tests/Volo.Abp.Specifications.Tests.csproj b/framework/test/Volo.Abp.Specifications.Tests/Volo.Abp.Specifications.Tests.csproj index b44ee82aae..94442135e2 100644 --- a/framework/test/Volo.Abp.Specifications.Tests/Volo.Abp.Specifications.Tests.csproj +++ b/framework/test/Volo.Abp.Specifications.Tests/Volo.Abp.Specifications.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.TestApp.Tests/Volo.Abp.TestApp.Tests.csproj b/framework/test/Volo.Abp.TestApp.Tests/Volo.Abp.TestApp.Tests.csproj index 0ff64ec1d8..6d78929c51 100644 --- a/framework/test/Volo.Abp.TestApp.Tests/Volo.Abp.TestApp.Tests.csproj +++ b/framework/test/Volo.Abp.TestApp.Tests/Volo.Abp.TestApp.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.TestApp/Volo.Abp.TestApp.csproj b/framework/test/Volo.Abp.TestApp/Volo.Abp.TestApp.csproj index 35d5e3b71a..460b52ddc1 100644 --- a/framework/test/Volo.Abp.TestApp/Volo.Abp.TestApp.csproj +++ b/framework/test/Volo.Abp.TestApp/Volo.Abp.TestApp.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.TextTemplating.Tests/Volo.Abp.TextTemplating.Tests.csproj b/framework/test/Volo.Abp.TextTemplating.Tests/Volo.Abp.TextTemplating.Tests.csproj index 0895567843..597854d0a1 100644 --- a/framework/test/Volo.Abp.TextTemplating.Tests/Volo.Abp.TextTemplating.Tests.csproj +++ b/framework/test/Volo.Abp.TextTemplating.Tests/Volo.Abp.TextTemplating.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.UI.Navigation.Tests/Volo.Abp.UI.Navigation.Tests.csproj b/framework/test/Volo.Abp.UI.Navigation.Tests/Volo.Abp.UI.Navigation.Tests.csproj index 2ba5372364..56f9a7bb5c 100644 --- a/framework/test/Volo.Abp.UI.Navigation.Tests/Volo.Abp.UI.Navigation.Tests.csproj +++ b/framework/test/Volo.Abp.UI.Navigation.Tests/Volo.Abp.UI.Navigation.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Uow.Tests/Volo.Abp.Uow.Tests.csproj b/framework/test/Volo.Abp.Uow.Tests/Volo.Abp.Uow.Tests.csproj index c6b401eec1..08221039c8 100644 --- a/framework/test/Volo.Abp.Uow.Tests/Volo.Abp.Uow.Tests.csproj +++ b/framework/test/Volo.Abp.Uow.Tests/Volo.Abp.Uow.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.Validation.Tests/Volo.Abp.Validation.Tests.csproj b/framework/test/Volo.Abp.Validation.Tests/Volo.Abp.Validation.Tests.csproj index 13f57717d5..a663b56646 100644 --- a/framework/test/Volo.Abp.Validation.Tests/Volo.Abp.Validation.Tests.csproj +++ b/framework/test/Volo.Abp.Validation.Tests/Volo.Abp.Validation.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo.Abp.VirtualFileSystem.Tests.csproj b/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo.Abp.VirtualFileSystem.Tests.csproj index 122f54f075..4cfedc5365 100644 --- a/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo.Abp.VirtualFileSystem.Tests.csproj +++ b/framework/test/Volo.Abp.VirtualFileSystem.Tests/Volo.Abp.VirtualFileSystem.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 true @@ -16,7 +16,7 @@ - + diff --git a/global.json b/global.json index 6156170057..7a8cdc0079 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "3.1.102", + "version": "5.0.0-rc.1.20451.14", "rollForward": "latestFeature" } } \ No newline at end of file From 9dcf9a789eacc3fc87738456053077b9fcf50843 Mon Sep 17 00:00:00 2001 From: Mladen Macanovic Date: Mon, 5 Oct 2020 13:05:29 +0200 Subject: [PATCH 026/242] First UiMessageAlert test --- framework/Volo.Abp.sln | 28 ++++----- .../WebAssembly/IUiMessageNotifierService.cs | 25 ++++++++ .../WebAssembly/NullUiMessageService.cs | 33 +++++++++++ .../Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs | 4 +- .../BlazoriseUiMessageService.cs | 49 ++++++++++++++++ .../Components/UiMessageAlert.razor | 17 ++++++ .../Components/UiMessageAlert.razor.cs | 58 +++++++++++++++++++ .../UiMessageNotifierService.cs | 20 +++++++ .../Volo.Abp.BlazoriseUI.csproj | 2 +- .../src/Volo.Abp.BlazoriseUI/_Imports.razor | 2 + .../MyCompanyName.MyProjectName.Blazor.csproj | 1 + .../Pages/Index.razor | 20 ++++++- .../_Imports.razor | 2 + 13 files changed, 242 insertions(+), 19 deletions(-) create mode 100644 framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/IUiMessageNotifierService.cs create mode 100644 framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/NullUiMessageService.cs create mode 100644 framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiMessageService.cs create mode 100644 framework/src/Volo.Abp.BlazoriseUI/Components/UiMessageAlert.razor create mode 100644 framework/src/Volo.Abp.BlazoriseUI/Components/UiMessageAlert.razor.cs create mode 100644 framework/src/Volo.Abp.BlazoriseUI/UiMessageNotifierService.cs create mode 100644 framework/src/Volo.Abp.BlazoriseUI/_Imports.razor diff --git a/framework/Volo.Abp.sln b/framework/Volo.Abp.sln index 503b42c7e1..53666c57c1 100644 --- a/framework/Volo.Abp.sln +++ b/framework/Volo.Abp.sln @@ -319,33 +319,33 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.BlobStoring.Aliyun EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.BlobStoring.Aliyun.Tests", "test\Volo.Abp.BlobStoring.Aliyun.Tests\Volo.Abp.BlobStoring.Aliyun.Tests.csproj", "{8E49687A-E69F-49F2-8DB0-428D0883A937}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.BlobStoring.Aws", "src\Volo.Abp.BlobStoring.Aws\Volo.Abp.BlobStoring.Aws.csproj", "{50968CDE-1029-4051-B2E5-B69D0ECF2A18}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.BlobStoring.Aws", "src\Volo.Abp.BlobStoring.Aws\Volo.Abp.BlobStoring.Aws.csproj", "{50968CDE-1029-4051-B2E5-B69D0ECF2A18}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.BlobStoring.Aws.Tests", "test\Volo.Abp.BlobStoring.Aws.Tests\Volo.Abp.BlobStoring.Aws.Tests.csproj", "{2CD3B26A-CA81-4279-8D5D-6A594517BB3F}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.BlobStoring.Aws.Tests", "test\Volo.Abp.BlobStoring.Aws.Tests\Volo.Abp.BlobStoring.Aws.Tests.csproj", "{2CD3B26A-CA81-4279-8D5D-6A594517BB3F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Kafka", "src\Volo.Abp.Kafka\Volo.Abp.Kafka.csproj", "{2A864049-9CD5-4493-8CDB-C408474D43D4}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Kafka", "src\Volo.Abp.Kafka\Volo.Abp.Kafka.csproj", "{2A864049-9CD5-4493-8CDB-C408474D43D4}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.EventBus.Kafka", "src\Volo.Abp.EventBus.Kafka\Volo.Abp.EventBus.Kafka.csproj", "{C1D891B0-AE83-42CB-987D-425A2787DE78}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.EventBus.Kafka", "src\Volo.Abp.EventBus.Kafka\Volo.Abp.EventBus.Kafka.csproj", "{C1D891B0-AE83-42CB-987D-425A2787DE78}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.GlobalFeatures", "src\Volo.Abp.GlobalFeatures\Volo.Abp.GlobalFeatures.csproj", "{04F44063-C952-403A-815F-EFB778BDA125}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.GlobalFeatures", "src\Volo.Abp.GlobalFeatures\Volo.Abp.GlobalFeatures.csproj", "{04F44063-C952-403A-815F-EFB778BDA125}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.GlobalFeatures.Tests", "test\Volo.Abp.GlobalFeatures.Tests\Volo.Abp.GlobalFeatures.Tests.csproj", "{231F1581-AA21-44C3-BF27-51EB3AD5355C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.GlobalFeatures.Tests", "test\Volo.Abp.GlobalFeatures.Tests\Volo.Abp.GlobalFeatures.Tests.csproj", "{231F1581-AA21-44C3-BF27-51EB3AD5355C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Http.Client.IdentityModel.WebAssembly", "src\Volo.Abp.Http.Client.IdentityModel.WebAssembly\Volo.Abp.Http.Client.IdentityModel.WebAssembly.csproj", "{3D35A1E0-A9A1-404F-9B55-5F1A7EB6D5B8}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Http.Client.IdentityModel.WebAssembly", "src\Volo.Abp.Http.Client.IdentityModel.WebAssembly\Volo.Abp.Http.Client.IdentityModel.WebAssembly.csproj", "{3D35A1E0-A9A1-404F-9B55-5F1A7EB6D5B8}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.AspNetCore.Mvc.Client.Common", "src\Volo.Abp.AspNetCore.Mvc.Client.Common\Volo.Abp.AspNetCore.Mvc.Client.Common.csproj", "{8A22D962-016E-474A-8BB7-F831F0ABF3AC}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.AspNetCore.Mvc.Client.Common", "src\Volo.Abp.AspNetCore.Mvc.Client.Common\Volo.Abp.AspNetCore.Mvc.Client.Common.csproj", "{8A22D962-016E-474A-8BB7-F831F0ABF3AC}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.AspNetCore.Components.WebAssembly", "src\Volo.Abp.AspNetCore.Components.WebAssembly\Volo.Abp.AspNetCore.Components.WebAssembly.csproj", "{E1A62D10-F2FB-4040-BD60-11A3934058DF}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.AspNetCore.Components.WebAssembly", "src\Volo.Abp.AspNetCore.Components.WebAssembly\Volo.Abp.AspNetCore.Components.WebAssembly.csproj", "{E1A62D10-F2FB-4040-BD60-11A3934058DF}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.BlazoriseUI", "src\Volo.Abp.BlazoriseUI\Volo.Abp.BlazoriseUI.csproj", "{4EBDDB1B-D6C5-4FAE-B5A7-2171B18CDFA5}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.BlazoriseUI", "src\Volo.Abp.BlazoriseUI\Volo.Abp.BlazoriseUI.csproj", "{4EBDDB1B-D6C5-4FAE-B5A7-2171B18CDFA5}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme", "src\Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme\Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.csproj", "{ABC27C10-C0FF-44CB-B4FF-A09C0B79F695}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme", "src\Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme\Volo.Abp.AspNetCore.Components.WebAssembly.BasicTheme.csproj", "{ABC27C10-C0FF-44CB-B4FF-A09C0B79F695}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.AspNetCore.Components.WebAssembly.Theming", "src\Volo.Abp.AspNetCore.Components.WebAssembly.Theming\Volo.Abp.AspNetCore.Components.WebAssembly.Theming.csproj", "{29CA7471-4E3E-4E75-8B33-001DDF682F01}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.AspNetCore.Components.WebAssembly.Theming", "src\Volo.Abp.AspNetCore.Components.WebAssembly.Theming\Volo.Abp.AspNetCore.Components.WebAssembly.Theming.csproj", "{29CA7471-4E3E-4E75-8B33-001DDF682F01}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.Autofac.WebAssembly", "src\Volo.Abp.Autofac.WebAssembly\Volo.Abp.Autofac.WebAssembly.csproj", "{37F89B0B-1C6B-426F-A5EE-676D1956D9E9}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.Autofac.WebAssembly", "src\Volo.Abp.Autofac.WebAssembly\Volo.Abp.Autofac.WebAssembly.csproj", "{37F89B0B-1C6B-426F-A5EE-676D1956D9E9}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volo.Abp.AspNetCore.Authentication.OpenIdConnect", "src\Volo.Abp.AspNetCore.Authentication.OpenIdConnect\Volo.Abp.AspNetCore.Authentication.OpenIdConnect.csproj", "{DEFE3DB2-EA4F-4F90-87FC-B25D64427BC5}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Volo.Abp.AspNetCore.Authentication.OpenIdConnect", "src\Volo.Abp.AspNetCore.Authentication.OpenIdConnect\Volo.Abp.AspNetCore.Authentication.OpenIdConnect.csproj", "{DEFE3DB2-EA4F-4F90-87FC-B25D64427BC5}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/IUiMessageNotifierService.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/IUiMessageNotifierService.cs new file mode 100644 index 0000000000..c3f6b917a7 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/IUiMessageNotifierService.cs @@ -0,0 +1,25 @@ +using System; +using System.Threading.Tasks; + +namespace Volo.Abp.AspNetCore.Components.WebAssembly +{ + public interface IUiMessageNotifierService + { + event EventHandler MessageReceived; + + Task NotifyMessageReceived(string message, string title = null); + } + + public class UiMessageEventArgs : EventArgs + { + public UiMessageEventArgs(string message, string title) + { + Message = message; + Title = title; + } + + public string Message { get; } + + public string Title { get; } + } +} diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/NullUiMessageService.cs b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/NullUiMessageService.cs new file mode 100644 index 0000000000..59830b0480 --- /dev/null +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo/Abp/AspNetCore/Components/WebAssembly/NullUiMessageService.cs @@ -0,0 +1,33 @@ +using System.Threading.Tasks; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.AspNetCore.Components.WebAssembly +{ + public class NullUiMessageService : IUiMessageService, ITransientDependency + { + public Task InfoAsync(string message, string title = null) + { + return Task.CompletedTask; + } + + public Task SuccessAsync(string message, string title = null) + { + return Task.CompletedTask; + } + + public Task WarnAsync(string message, string title = null) + { + return Task.CompletedTask; + } + + public Task ErrorAsync(string message, string title = null) + { + return Task.CompletedTask; + } + + public Task ConfirmAsync(string message, string title = null) + { + return Task.FromResult(true); + } + } +} diff --git a/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs b/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs index 7289ebe954..8723209c53 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs +++ b/framework/src/Volo.Abp.BlazoriseUI/AbpCrudPageBase.cs @@ -225,7 +225,7 @@ namespace Volo.Abp.BlazoriseUI { if (reference == null) { - reference = (TRef) ScopedServices.GetRequiredService(serviceType); + reference = (TRef)ScopedServices.GetRequiredService(serviceType); } return reference; @@ -266,7 +266,7 @@ namespace Volo.Abp.BlazoriseUI var input = await CreateGetListInputAsync(); var result = await AppService.GetListAsync(input); Entities = MapToListViewModel(result.Items); - TotalCount = (int?) result.TotalCount; + TotalCount = (int?)result.TotalCount; } private IReadOnlyList MapToListViewModel(IReadOnlyList dtos) diff --git a/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiMessageService.cs b/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiMessageService.cs new file mode 100644 index 0000000000..66bc231ce7 --- /dev/null +++ b/framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiMessageService.cs @@ -0,0 +1,49 @@ +using System.Threading.Tasks; +using Blazorise; +using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Logging.Abstractions; +using Volo.Abp.AspNetCore.Components.WebAssembly; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.BlazoriseUI +{ + [Dependency(ReplaceServices = true)] + public class BlazoriseUiMessageService : IUiMessageService, IScopedDependency + { + private readonly IUiMessageNotifierService uiMessageNotifierService; + + public ILogger Logger { get; set; } + + public BlazoriseUiMessageService(IUiMessageNotifierService uiMessageNotifierService) + { + this.uiMessageNotifierService = uiMessageNotifierService; + + Logger = NullLogger.Instance; + } + + public Task InfoAsync(string message, string title = null) + { + return uiMessageNotifierService.NotifyMessageReceived(message, title); + } + + public Task SuccessAsync(string message, string title = null) + { + return uiMessageNotifierService.NotifyMessageReceived(message, title); + } + + public Task WarnAsync(string message, string title = null) + { + return uiMessageNotifierService.NotifyMessageReceived(message, title); + } + + public Task ErrorAsync(string message, string title = null) + { + return uiMessageNotifierService.NotifyMessageReceived(message, title); + } + + public Task ConfirmAsync(string message, string title = null) + { + return Task.FromResult(true); + } + } +} diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/UiMessageAlert.razor b/framework/src/Volo.Abp.BlazoriseUI/Components/UiMessageAlert.razor new file mode 100644 index 0000000000..e041053883 --- /dev/null +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/UiMessageAlert.razor @@ -0,0 +1,17 @@ + + + + + + @Title + + + + @Message + + + + + + + \ No newline at end of file diff --git a/framework/src/Volo.Abp.BlazoriseUI/Components/UiMessageAlert.razor.cs b/framework/src/Volo.Abp.BlazoriseUI/Components/UiMessageAlert.razor.cs new file mode 100644 index 0000000000..b5ee799bdd --- /dev/null +++ b/framework/src/Volo.Abp.BlazoriseUI/Components/UiMessageAlert.razor.cs @@ -0,0 +1,58 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; +using Blazorise; +using Microsoft.AspNetCore.Components; +using Volo.Abp.AspNetCore.Components.WebAssembly; + +namespace Volo.Abp.BlazoriseUI.Components +{ + public partial class UiMessageAlert : ComponentBase, IDisposable + { + protected override void OnInitialized() + { + UiMessageNotifierService.MessageReceived += UiMessageNotifierService_MessageReceived; + + base.OnInitialized(); + } + + private void UiMessageNotifierService_MessageReceived(object sender, UiMessageEventArgs e) + { + Message = e.Message; + Title = e.Title; + + ModalRef.Show(); + } + + public void Dispose() + { + if (UiMessageNotifierService != null) + { + UiMessageNotifierService.MessageReceived -= UiMessageNotifierService_MessageReceived; + } + } + + protected Task OnCancelClicked() + { + ModalRef.Hide(); + + return Task.CompletedTask; + } + + protected Task OnOKClicked() + { + ModalRef.Hide(); + + return Task.CompletedTask; + } + + protected Modal ModalRef { get; set; } + + [Inject] IUiMessageNotifierService UiMessageNotifierService { get; set; } + + [Parameter] public string Title { get; set; } + + [Parameter] public string Message { get; set; } + } +} diff --git a/framework/src/Volo.Abp.BlazoriseUI/UiMessageNotifierService.cs b/framework/src/Volo.Abp.BlazoriseUI/UiMessageNotifierService.cs new file mode 100644 index 0000000000..cdd86a75f3 --- /dev/null +++ b/framework/src/Volo.Abp.BlazoriseUI/UiMessageNotifierService.cs @@ -0,0 +1,20 @@ +using System; +using System.Threading.Tasks; +using Volo.Abp.AspNetCore.Components.WebAssembly; +using Volo.Abp.DependencyInjection; + +namespace Volo.Abp.BlazoriseUI +{ + [Dependency(ReplaceServices = true)] + public class UiMessageNotifierService : IUiMessageNotifierService, IScopedDependency + { + public event EventHandler MessageReceived; + + public Task NotifyMessageReceived(string message, string title = null) + { + MessageReceived?.Invoke(this, new UiMessageEventArgs(message, title)); + + return Task.CompletedTask; + } + } +} diff --git a/framework/src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj b/framework/src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj index 12628b1440..091ee37717 100644 --- a/framework/src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj +++ b/framework/src/Volo.Abp.BlazoriseUI/Volo.Abp.BlazoriseUI.csproj @@ -1,4 +1,4 @@ - + diff --git a/framework/src/Volo.Abp.BlazoriseUI/_Imports.razor b/framework/src/Volo.Abp.BlazoriseUI/_Imports.razor new file mode 100644 index 0000000000..37be71828c --- /dev/null +++ b/framework/src/Volo.Abp.BlazoriseUI/_Imports.razor @@ -0,0 +1,2 @@ +@using Microsoft.AspNetCore.Components.Web +@using Blazorise \ No newline at end of file diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj index cba18ad1bd..ab574cea1d 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/MyCompanyName.MyProjectName.Blazor.csproj @@ -15,6 +15,7 @@ + diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor index 114be0b5e1..3f5e2f52fc 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/Pages/Index.razor @@ -4,6 +4,7 @@ @using System.Security.Claims @using Microsoft.Extensions.Localization @using MyCompanyName.MyProjectName.Localization +@using Volo.Abp.BlazoriseUI.Components @inject ICurrentUser CurrentUser @inject ICurrentTenant CurrentTenant @inject AuthenticationStateProvider AuthenticationStateProvider @@ -14,8 +15,21 @@
Congratulations, MyProjectName is successfully running!
-

Welcome to the Application

+ + + UI Message Tests + + + + + + + +

Welcome to the Application

+

@L["LongWelcomeMessage"]

@if (!CurrentUser.IsAuthenticated) @@ -23,7 +37,7 @@ @L["Login"] - } + }
@@ -161,6 +175,8 @@ @code { + [Inject] IUiMessageService UiMessageService { get; set; } + private IEnumerable _claims; protected override async Task OnInitializedAsync() diff --git a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/_Imports.razor b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/_Imports.razor index b1ade9c628..3fcce1e0d0 100644 --- a/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/_Imports.razor +++ b/templates/app/aspnet-core/src/MyCompanyName.MyProjectName.Blazor/_Imports.razor @@ -9,3 +9,5 @@ @using MyCompanyName.MyProjectName.Blazor @using Blazorise @using Blazorise.DataGrid +@using Volo.Abp.BlazoriseUI; +@using Volo.Abp.BlazoriseUI.Components; \ No newline at end of file From b2ceacbe4047e975e3fe5ace6d027d63d626f14c Mon Sep 17 00:00:00 2001 From: maliming <6908465+maliming@users.noreply.github.com> Date: Mon, 5 Oct 2020 20:43:21 +0800 Subject: [PATCH 027/242] Upgrade modules. --- .../AbpIoLocalization.csproj | 2 +- .../AbpDateTimeModelBinderProvider.cs | 3 +- .../AbpOracleModelBuilderExtensions.cs | 26 +- ...p.EntityFrameworkCore.Oracle.Devart.csproj | 2 +- ...figurationContextOracleDevartExtensions.cs | 52 +- ...pDbContextOptionsOracleDevartExtensions.cs | 64 +- ...bpEntityFrameworkCoreOracleDevartModule.cs | 44 +- ...Volo.Abp.EntityFrameworkCore.Oracle.csproj | 2 +- ...extConfigurationContextOracleExtensions.cs | 50 +- .../AbpDbContextOptionsOracleExtensions.cs | 60 +- .../AbpEntityFrameworkCoreOracleModule.cs | 44 +- .../ModelBindingController_Tests.cs | 15 +- ...o.Abp.Account.Application.Contracts.csproj | 4 +- .../Volo.Abp.Account.Application.csproj | 6 +- .../Volo.Abp.Account.Blazor.csproj | 2 +- .../Volo.Abp.Account.HttpApi.Client.csproj | 2 +- .../Volo.Abp.Account.HttpApi.csproj | 2 +- ...Volo.Abp.Account.Web.IdentityServer.csproj | 4 +- .../Volo.Abp.Account.Web.csproj | 4 +- .../Volo.Abp.Account.Application.Tests.csproj | 2 +- ...Volo.Abp.AuditLogging.Domain.Shared.csproj | 2 +- .../Volo.Abp.AuditLogging.Domain.csproj | 4 +- ...bp.AuditLogging.EntityFrameworkCore.csproj | 2 +- .../Volo.Abp.AuditLogging.MongoDB.csproj | 2 +- ...itLogging.EntityFrameworkCore.Tests.csproj | 4 +- ...Volo.Abp.AuditLogging.MongoDB.Tests.csproj | 2 +- .../Volo.Abp.AuditLogging.TestBase.csproj | 2 +- .../Volo.Abp.AuditLogging.Tests.csproj | 2 +- ...Abp.BackgroundJobs.DemoApp.HangFire.csproj | 6 +- ...o.Abp.BackgroundJobs.DemoApp.Quartz.csproj | 2 +- ...Abp.BackgroundJobs.DemoApp.RabbitMq.csproj | 2 +- ...o.Abp.BackgroundJobs.DemoApp.Shared.csproj | 4 +- .../Volo.Abp.BackgroundJobs.DemoApp.csproj | 4 +- ...lo.Abp.BackgroundJobs.Domain.Shared.csproj | 2 +- .../Volo.Abp.BackgroundJobs.Domain.csproj | 2 +- ....BackgroundJobs.EntityFrameworkCore.csproj | 2 +- .../Volo.Abp.BackgroundJobs.MongoDB.csproj | 2 +- ...olo.Abp.BackgroundJobs.Domain.Tests.csproj | 2 +- ...roundJobs.EntityFrameworkCore.Tests.csproj | 4 +- ...lo.Abp.BackgroundJobs.MongoDB.Tests.csproj | 2 +- .../Volo.Abp.BackgroundJobs.TestBase.csproj | 2 +- ...o.Abp.BlobStoring.Database.sln.DotSettings | 1 + ...Database.Host.ConsoleApp.ConsoleApp.csproj | 6 +- ....BlobStoring.Database.Domain.Shared.csproj | 2 +- ...olo.Abp.BlobStoring.Database.Domain.csproj | 2 +- ...toring.Database.EntityFrameworkCore.csproj | 2 +- ...lo.Abp.BlobStoring.Database.MongoDB.csproj | 2 +- ...p.BlobStoring.Database.Domain.Tests.csproj | 2 +- ....Database.EntityFrameworkCore.Tests.csproj | 6 +- ....BlobStoring.Database.MongoDB.Tests.csproj | 2 +- ...o.Abp.BlobStoring.Database.TestBase.csproj | 2 +- ...BloggingTestApp.EntityFrameworkCore.csproj | 6 +- .../Volo.BloggingTestApp.MongoDB.csproj | 2 +- .../Volo.BloggingTestApp.csproj | 2 +- ...logging.Admin.Application.Contracts.csproj | 2 +- .../Volo.Blogging.Admin.Application.csproj | 2 +- .../Volo.Blogging.Admin.HttpApi.Client.csproj | 2 +- .../Volo.Blogging.Admin.HttpApi.csproj | 2 +- .../Volo.Blogging.Admin.Web.csproj | 4 +- ...ogging.Application.Contracts.Shared.csproj | 2 +- ...Volo.Blogging.Application.Contracts.csproj | 2 +- .../Volo.Blogging.Application.csproj | 2 +- .../Volo.Blogging.Domain.Shared.csproj | 4 +- .../Volo.Blogging.Domain.csproj | 2 +- .../Volo.Blogging.EntityFrameworkCore.csproj | 2 +- .../Volo.Blogging.HttpApi.Client.csproj | 2 +- .../Volo.Blogging.HttpApi.csproj | 2 +- .../Volo.Blogging.MongoDB.csproj | 2 +- .../Volo.Blogging.Web.csproj | 4 +- .../Volo.Blogging.Application.Tests.csproj | 2 +- .../Volo.Blogging.Domain.Tests.csproj | 2 +- ....Blogging.EntityFrameworkCore.Tests.csproj | 4 +- .../Volo.Blogging.MongoDB.Tests.csproj | 2 +- .../Volo.Blogging.TestBase.csproj | 2 +- .../Volo.CmsKit.Host.Shared.csproj | 2 +- .../Volo.CmsKit.HttpApi.Host.csproj | 25 +- .../Volo.CmsKit.IdentityServer.csproj | 57 +- .../Volo.CmsKit.Web.Host.csproj | 34 +- .../Volo.CmsKit.Web.Unified.csproj | 42 +- ....CmsKit.Admin.Application.Contracts.csproj | 2 +- .../Volo.CmsKit.Admin.Application.csproj | 2 +- .../Volo.CmsKit.Admin.HttpApi.Client.csproj | 2 +- .../Volo.CmsKit.Admin.HttpApi.csproj | 2 +- .../Volo.CmsKit.Admin.Web.csproj | 4 +- .../Volo.CmsKit.Application.Contracts.csproj | 2 +- .../Volo.CmsKit.Application.csproj | 2 +- ...CmsKit.Common.Application.Contracts.csproj | 2 +- .../Volo.CmsKit.Common.Application.csproj | 2 +- .../Volo.CmsKit.Common.HttpApi.Client.csproj | 2 +- .../Volo.CmsKit.Common.HttpApi.csproj | 2 +- .../Volo.CmsKit.Common.Web.csproj | 4 +- .../Volo.CmsKit.Domain.Shared.csproj | 4 +- .../Volo.CmsKit.Domain.csproj | 2 +- .../Volo.CmsKit.EntityFrameworkCore.csproj | 6 +- .../Volo.CmsKit.HttpApi.Client.csproj | 2 +- .../Volo.CmsKit.HttpApi.csproj | 2 +- .../Volo.CmsKit.MongoDB.csproj | 2 +- ...CmsKit.Public.Application.Contracts.csproj | 2 +- .../Volo.CmsKit.Public.Application.csproj | 2 +- .../Volo.CmsKit.Public.HttpApi.Client.csproj | 2 +- .../Volo.CmsKit.Public.HttpApi.csproj | 2 +- .../Volo.CmsKit.Public.Web.csproj | 4 +- .../Volo.CmsKit.Web/Volo.CmsKit.Web.csproj | 4 +- .../Volo.CmsKit.Application.Tests.csproj | 2 +- .../Volo.CmsKit.Domain.Tests.csproj | 2 +- ...lo.CmsKit.EntityFrameworkCore.Tests.csproj | 6 +- ...msKit.HttpApi.Client.ConsoleTestApp.csproj | 4 +- .../Volo.CmsKit.MongoDB.Tests.csproj | 2 +- .../Volo.CmsKit.TestBase.csproj | 8 +- .../VoloDocs.EntityFrameworkCore.csproj | 6 +- .../VoloDocs.Migrator.csproj | 6 +- .../docs/app/VoloDocs.Web/VoloDocs.Web.csproj | 2 +- ...lo.Docs.Admin.Application.Contracts.csproj | 4 +- .../Volo.Docs.Admin.Application.csproj | 2 +- .../Volo.Docs.Admin.HttpApi.Client.csproj | 2 +- .../Volo.Docs.Admin.HttpApi.csproj | 2 +- .../Volo.Docs.Admin.Web.csproj | 4 +- .../Volo.Docs.Application.Contracts.csproj | 2 +- .../Volo.Docs.Application.csproj | 2 +- .../Volo.Docs.Domain.Shared.csproj | 4 +- .../Volo.Docs.Domain/Volo.Docs.Domain.csproj | 6 +- .../Volo.Docs.EntityFrameworkCore.csproj | 2 +- .../Volo.Docs.HttpApi.Client.csproj | 2 +- .../Volo.Docs.HttpApi.csproj | 2 +- .../Volo.Docs.MongoDB.csproj | 2 +- .../src/Volo.Docs.Web/Volo.Docs.Web.csproj | 4 +- .../Volo.Docs.Admin.Application.Tests.csproj | 2 +- .../Volo.Docs.Application.Tests.csproj | 2 +- .../Volo.Docs.Domain.Tests.csproj | 2 +- ...Volo.Docs.EntityFrameworkCore.Tests.csproj | 4 +- .../Volo.Docs.MongoDB.Tests.csproj | 2 +- .../Volo.Docs.TestBase.csproj | 6 +- ...ureManagement.Application.Contracts.csproj | 2 +- ...o.Abp.FeatureManagement.Application.csproj | 2 +- .../Volo.Abp.FeatureManagement.Blazor.csproj | 2 +- ...Abp.FeatureManagement.Domain.Shared.csproj | 4 +- .../Volo.Abp.FeatureManagement.Domain.csproj | 2 +- ...atureManagement.EntityFrameworkCore.csproj | 2 +- ...bp.FeatureManagement.HttpApi.Client.csproj | 2 +- .../Volo.Abp.FeatureManagement.HttpApi.csproj | 2 +- .../Volo.Abp.FeatureManagement.MongoDB.csproj | 2 +- .../Volo.Abp.FeatureManagement.Web.csproj | 4 +- ...FeatureManagement.Application.Tests.csproj | 2 +- ....Abp.FeatureManagement.Domain.Tests.csproj | 2 +- ...anagement.EntityFrameworkCore.Tests.csproj | 4 +- ...Abp.FeatureManagement.MongoDB.Tests.csproj | 2 +- ...Volo.Abp.FeatureManagement.TestBase.csproj | 2 +- ....Abp.Identity.Application.Contracts.csproj | 2 +- .../Volo.Abp.Identity.Application.csproj | 2 +- .../Volo.Abp.Identity.AspNetCore.csproj | 2 +- .../Volo.Abp.Identity.Blazor.csproj | 2 +- .../Volo.Abp.Identity.Domain.Shared.csproj | 4 +- .../Volo.Abp.Identity.Domain.csproj | 4 +- ...lo.Abp.Identity.EntityFrameworkCore.csproj | 4 +- .../Volo.Abp.Identity.HttpApi.Client.csproj | 2 +- .../Volo.Abp.Identity.HttpApi.csproj | 2 +- .../Volo.Abp.Identity.MongoDB.csproj | 2 +- .../Volo.Abp.Identity.Web.csproj | 4 +- ...ermissionManagement.Domain.Identity.csproj | 2 +- ...Volo.Abp.Identity.Application.Tests.csproj | 4 +- .../Volo.Abp.Identity.AspNetCore.Tests.csproj | 2 +- .../Volo.Abp.Identity.Domain.Tests.csproj | 2 +- ....Identity.EntityFrameworkCore.Tests.csproj | 4 +- .../Volo.Abp.Identity.MongoDB.Tests.csproj | 2 +- .../Volo.Abp.Identity.TestBase.csproj | 2 +- ...lo.Abp.IdentityServer.Domain.Shared.csproj | 2 +- .../Volo.Abp.IdentityServer.Domain.csproj | 2 +- ....IdentityServer.EntityFrameworkCore.csproj | 4 +- .../Volo.Abp.IdentityServer.MongoDB.csproj | 2 +- ...ionManagement.Domain.IdentityServer.csproj | 2 +- ...olo.Abp.IdentityServer.Domain.Tests.csproj | 2 +- ...ityServer.EntityFrameworkCore.Tests.csproj | 2 +- ...lo.Abp.IdentityServer.MongoDB.Tests.csproj | 4 +- .../Volo.Abp.IdentityServer.TestBase.csproj | 2 +- ...ionManagement.Application.Contracts.csproj | 2 +- ...bp.PermissionManagement.Application.csproj | 2 +- ...olo.Abp.PermissionManagement.Blazor.csproj | 2 +- ....PermissionManagement.Domain.Shared.csproj | 4 +- ...olo.Abp.PermissionManagement.Domain.csproj | 4 +- ...ssionManagement.EntityFrameworkCore.csproj | 2 +- ...PermissionManagement.HttpApi.Client.csproj | 2 +- ...lo.Abp.PermissionManagement.HttpApi.csproj | 2 +- ...lo.Abp.PermissionManagement.MongoDB.csproj | 2 +- .../Volo.Abp.PermissionManagement.Web.csproj | 4 +- ...missionManagement.Application.Tests.csproj | 2 +- ...p.PermissionManagement.Domain.Tests.csproj | 4 +- ...anagement.EntityFrameworkCore.Tests.csproj | 4 +- ....PermissionManagement.MongoDB.Tests.csproj | 2 +- ...o.Abp.PermissionManagement.TestBase.csproj | 2 +- .../Volo.Abp.SettingManagement.Blazor.csproj | 4 +- ...Abp.SettingManagement.Domain.Shared.csproj | 4 +- .../Volo.Abp.SettingManagement.Domain.csproj | 2 +- ...ttingManagement.EntityFrameworkCore.csproj | 2 +- .../Volo.Abp.SettingManagement.MongoDB.csproj | 2 +- .../Volo.Abp.SettingManagement.Web.csproj | 4 +- ...anagement.EntityFrameworkCore.Tests.csproj | 6 +- ...Abp.SettingManagement.MongoDB.Tests.csproj | 6 +- ...Volo.Abp.SettingManagement.TestBase.csproj | 2 +- .../Volo.Abp.SettingManagement.Tests.csproj | 2 +- ...antManagement.Application.Contracts.csproj | 4 +- ...lo.Abp.TenantManagement.Application.csproj | 2 +- .../Volo.Abp.TenantManagement.Blazor.csproj | 4 +- ....Abp.TenantManagement.Domain.Shared.csproj | 4 +- .../Volo.Abp.TenantManagement.Domain.csproj | 2 +- ...enantManagement.EntityFrameworkCore.csproj | 4 +- ...Abp.TenantManagement.HttpApi.Client.csproj | 4 +- .../Volo.Abp.TenantManagement.HttpApi.csproj | 2 +- .../Volo.Abp.TenantManagement.MongoDB.csproj | 4 +- .../Volo.Abp.TenantManagement.Web.csproj | 4 +- ....TenantManagement.Application.Tests.csproj | 2 +- ...o.Abp.TenantManagement.Domain.Tests.csproj | 2 +- ...anagement.EntityFrameworkCore.Tests.csproj | 4 +- ....Abp.TenantManagement.MongoDB.Tests.csproj | 2 +- .../Volo.Abp.TenantManagement.TestBase.csproj | 2 +- .../Volo.Abp.Users.Abstractions.csproj | 2 +- .../Volo.Abp.Users.Domain.Shared.csproj | 2 +- .../Volo.Abp.Users.Domain.csproj | 2 +- .../Volo.Abp.Users.EntityFrameworkCore.csproj | 2 +- .../Volo.Abp.Users.MongoDB.csproj | 2 +- ...olo.Abp.VirtualFileExplorer.DemoApp.csproj | 2 +- .../package.json | 4 +- .../@fortawesome/fontawesome-free/css/all.css | 145 +- .../fontawesome-free/css/v4-shims.css | 2 +- .../webfonts/fa-brands-400.eot | Bin 133034 -> 136882 bytes .../webfonts/fa-brands-400.svg | 1384 +- .../webfonts/fa-brands-400.ttf | Bin 132728 -> 136576 bytes .../webfonts/fa-brands-400.woff | Bin 89824 -> 92216 bytes .../webfonts/fa-brands-400.woff2 | Bin 76612 -> 78632 bytes .../webfonts/fa-regular-400.eot | Bin 34390 -> 34350 bytes .../webfonts/fa-regular-400.svg | 191 +- .../webfonts/fa-regular-400.ttf | Bin 34092 -> 34052 bytes .../webfonts/fa-regular-400.woff | Bin 16800 -> 16776 bytes .../webfonts/fa-regular-400.woff2 | Bin 13584 -> 13576 bytes .../webfonts/fa-solid-900.eot | Bin 202902 -> 204814 bytes .../webfonts/fa-solid-900.svg | 2241 +-- .../webfonts/fa-solid-900.ttf | Bin 202616 -> 204528 bytes .../webfonts/fa-solid-900.woff | Bin 103300 -> 104284 bytes .../webfonts/fa-solid-900.woff2 | Bin 79444 -> 80240 bytes .../wwwroot/libs/abp/core/abp.css | 112 +- .../wwwroot/libs/abp/core/abp.js | 1420 +- .../wwwroot/libs/abp/jquery/abp.jquery.js | 786 +- .../wwwroot/libs/abp/luxon/abp.luxon.js | 46 + .../wwwroot/libs/abp/utils/abp-utils.umd.js | 284 +- .../libs/abp/utils/abp-utils.umd.js.map | 2 +- .../libs/abp/utils/abp-utils.umd.min.js | 2 +- .../libs/abp/utils/abp-utils.umd.min.js.map | 2 +- .../libs/bootstrap/css/bootstrap-rtl.css | 11392 ++++++++++++++++ .../libs/bootstrap/css/bootstrap-rtl.css.map | 1 + .../libs/bootstrap/css/bootstrap-rtl.min.css | 7 + .../bootstrap/css/bootstrap-rtl.min.css.map | 1 + .../wwwroot/libs/bootstrap/css/bootstrap.css | 81 +- .../libs/bootstrap/css/bootstrap.css.map | 1 + .../libs/bootstrap/css/bootstrap.min.css | 7 + .../libs/bootstrap/css/bootstrap.min.css.map | 1 + .../libs/bootstrap/js/bootstrap.bundle.js | 210 +- .../libs/bootstrap/js/bootstrap.bundle.js.map | 1 + .../libs/bootstrap/js/bootstrap.bundle.min.js | 7 + .../bootstrap/js/bootstrap.bundle.min.js.map | 1 + .../css/dataTables.bootstrap4.css | 73 +- .../js/dataTables.bootstrap4.js | 2 +- .../datatables.net/js/jquery.dataTables.js | 113 +- .../libs/jquery-form/jquery.form.min.js | 4 +- .../libs/jquery-form/jquery.form.min.js.map | 1 + .../wwwroot/libs/luxon/luxon.js | 106 +- .../wwwroot/libs/luxon/luxon.js.map | 2 +- .../wwwroot/libs/luxon/luxon.min.js | 2 +- .../wwwroot/libs/luxon/luxon.min.js.map | 2 +- .../wwwroot/libs/prismjs/CHANGELOG.md | 202 +- .../wwwroot/libs/prismjs/README.md | 7 +- .../wwwroot/libs/prismjs/components.js | 2 +- .../wwwroot/libs/prismjs/components.json | 251 +- .../libs/prismjs/components/prism-agda.js | 24 + .../libs/prismjs/components/prism-agda.min.js | 1 + .../libs/prismjs/components/prism-al.js | 25 + .../libs/prismjs/components/prism-al.min.js | 1 + .../libs/prismjs/components/prism-antlr4.js | 2 +- .../prismjs/components/prism-antlr4.min.js | 2 +- .../libs/prismjs/components/prism-apl.js | 6 +- .../libs/prismjs/components/prism-apl.min.js | 2 +- .../prismjs/components/prism-applescript.js | 4 +- .../components/prism-applescript.min.js | 2 +- .../libs/prismjs/components/prism-asciidoc.js | 2 +- .../prismjs/components/prism-asciidoc.min.js | 2 +- .../libs/prismjs/components/prism-asm6502.js | 8 +- .../prismjs/components/prism-asm6502.min.js | 2 +- .../prismjs/components/prism-autohotkey.js | 33 +- .../components/prism-autohotkey.min.js | 2 +- .../libs/prismjs/components/prism-bash.js | 2 +- .../libs/prismjs/components/prism-bash.min.js | 2 +- .../libs/prismjs/components/prism-batch.js | 6 +- .../prismjs/components/prism-batch.min.js | 2 +- .../libs/prismjs/components/prism-c.js | 25 +- .../libs/prismjs/components/prism-c.min.js | 2 +- .../libs/prismjs/components/prism-core.js | 562 +- .../libs/prismjs/components/prism-core.min.js | 2 +- .../libs/prismjs/components/prism-cpp.js | 75 +- .../libs/prismjs/components/prism-cpp.min.js | 2 +- .../libs/prismjs/components/prism-csharp.js | 13 +- .../prismjs/components/prism-csharp.min.js | 2 +- .../libs/prismjs/components/prism-csp.js | 2 +- .../libs/prismjs/components/prism-csp.min.js | 2 +- .../prismjs/components/prism-css-extras.js | 19 +- .../components/prism-css-extras.min.js | 2 +- .../libs/prismjs/components/prism-css.js | 13 +- .../libs/prismjs/components/prism-css.min.js | 2 +- .../libs/prismjs/components/prism-cypher.js | 37 + .../prismjs/components/prism-cypher.min.js | 1 + .../libs/prismjs/components/prism-d.js | 2 +- .../libs/prismjs/components/prism-d.min.js | 2 +- .../libs/prismjs/components/prism-dart.js | 4 +- .../libs/prismjs/components/prism-dart.min.js | 2 +- .../libs/prismjs/components/prism-dhall.js | 69 + .../prismjs/components/prism-dhall.min.js | 1 + .../libs/prismjs/components/prism-diff.js | 14 +- .../libs/prismjs/components/prism-diff.min.js | 2 +- .../libs/prismjs/components/prism-docker.js | 5 +- .../prismjs/components/prism-docker.min.js | 2 +- .../libs/prismjs/components/prism-ebnf.js | 2 +- .../libs/prismjs/components/prism-ebnf.min.js | 2 +- .../prismjs/components/prism-editorconfig.js | 25 + .../components/prism-editorconfig.min.js | 1 + .../libs/prismjs/components/prism-eiffel.js | 4 +- .../prismjs/components/prism-eiffel.min.js | 2 +- .../libs/prismjs/components/prism-ejs.js | 2 + .../libs/prismjs/components/prism-ejs.min.js | 2 +- .../libs/prismjs/components/prism-elixir.js | 2 +- .../prismjs/components/prism-elixir.min.js | 2 +- .../prismjs/components/prism-excel-formula.js | 6 +- .../components/prism-excel-formula.min.js | 2 +- .../libs/prismjs/components/prism-ftl.js | 4 +- .../libs/prismjs/components/prism-ftl.min.js | 2 +- .../libs/prismjs/components/prism-glsl.js | 15 +- .../libs/prismjs/components/prism-glsl.min.js | 2 +- .../libs/prismjs/components/prism-graphql.js | 20 +- .../prismjs/components/prism-graphql.min.js | 2 +- .../libs/prismjs/components/prism-groovy.js | 3 +- .../prismjs/components/prism-groovy.min.js | 2 +- .../libs/prismjs/components/prism-hcl.js | 8 +- .../libs/prismjs/components/prism-hcl.min.js | 2 +- .../libs/prismjs/components/prism-hlsl.js | 20 + .../libs/prismjs/components/prism-hlsl.min.js | 1 + .../libs/prismjs/components/prism-hpkp.js | 4 +- .../libs/prismjs/components/prism-hpkp.min.js | 2 +- .../libs/prismjs/components/prism-hsts.js | 4 +- .../libs/prismjs/components/prism-hsts.min.js | 2 +- .../libs/prismjs/components/prism-iecst.js | 30 + .../prismjs/components/prism-iecst.min.js | 1 + .../libs/prismjs/components/prism-ignore.js | 23 + .../prismjs/components/prism-ignore.min.js | 1 + .../libs/prismjs/components/prism-io.js | 2 +- .../libs/prismjs/components/prism-io.min.js | 2 +- .../libs/prismjs/components/prism-j.js | 4 +- .../libs/prismjs/components/prism-j.min.js | 2 +- .../libs/prismjs/components/prism-java.js | 4 +- .../libs/prismjs/components/prism-java.min.js | 2 +- .../libs/prismjs/components/prism-javadoc.js | 90 +- .../prismjs/components/prism-javadoc.min.js | 2 +- .../prismjs/components/prism-javascript.js | 8 +- .../components/prism-javascript.min.js | 2 +- .../libs/prismjs/components/prism-jq.js | 4 +- .../libs/prismjs/components/prism-jq.min.js | 2 +- .../libs/prismjs/components/prism-jsdoc.js | 13 +- .../prismjs/components/prism-jsdoc.min.js | 2 +- .../libs/prismjs/components/prism-json.js | 10 +- .../libs/prismjs/components/prism-json.min.js | 2 +- .../libs/prismjs/components/prism-json5.js | 2 +- .../prismjs/components/prism-json5.min.js | 2 +- .../prismjs/components/prism-jsstacktrace.js | 48 + .../components/prism-jsstacktrace.min.js | 1 + .../libs/prismjs/components/prism-jsx.js | 4 +- .../libs/prismjs/components/prism-jsx.min.js | 2 +- .../libs/prismjs/components/prism-julia.js | 36 +- .../prismjs/components/prism-julia.min.js | 2 +- .../libs/prismjs/components/prism-kotlin.js | 2 + .../prismjs/components/prism-kotlin.min.js | 2 +- .../libs/prismjs/components/prism-lilypond.js | 2 +- .../prismjs/components/prism-lilypond.min.js | 2 +- .../prismjs/components/prism-livescript.js | 4 +- .../components/prism-livescript.min.js | 2 +- .../libs/prismjs/components/prism-lolcode.js | 4 +- .../prismjs/components/prism-lolcode.min.js | 2 +- .../libs/prismjs/components/prism-markdown.js | 16 +- .../prismjs/components/prism-markdown.min.js | 2 +- .../libs/prismjs/components/prism-markup.js | 53 +- .../prismjs/components/prism-markup.min.js | 2 +- .../libs/prismjs/components/prism-neon.js | 2 +- .../libs/prismjs/components/prism-neon.min.js | 2 +- .../prismjs/components/prism-objectivec.js | 2 + .../components/prism-objectivec.min.js | 2 +- .../libs/prismjs/components/prism-ocaml.js | 4 +- .../prismjs/components/prism-ocaml.min.js | 2 +- .../libs/prismjs/components/prism-oz.js | 10 +- .../libs/prismjs/components/prism-oz.min.js | 2 +- .../libs/prismjs/components/prism-parigp.js | 4 +- .../prismjs/components/prism-parigp.min.js | 2 +- .../libs/prismjs/components/prism-pascal.js | 4 +- .../prismjs/components/prism-pascal.min.js | 2 +- .../prismjs/components/prism-peoplecode.js | 42 + .../components/prism-peoplecode.min.js | 1 + .../libs/prismjs/components/prism-php.js | 6 +- .../libs/prismjs/components/prism-php.min.js | 2 +- .../prismjs/components/prism-powershell.js | 6 +- .../components/prism-powershell.min.js | 2 +- .../libs/prismjs/components/prism-protobuf.js | 23 +- .../prismjs/components/prism-protobuf.min.js | 2 +- .../libs/prismjs/components/prism-pug.js | 4 +- .../libs/prismjs/components/prism-pug.min.js | 2 +- .../libs/prismjs/components/prism-pure.js | 4 +- .../libs/prismjs/components/prism-pure.min.js | 2 +- .../prismjs/components/prism-purebasic.js | 70 + .../prismjs/components/prism-purebasic.min.js | 1 + .../libs/prismjs/components/prism-python.js | 4 +- .../prismjs/components/prism-python.min.js | 2 +- .../libs/prismjs/components/prism-q.js | 4 +- .../libs/prismjs/components/prism-q.min.js | 2 +- .../libs/prismjs/components/prism-qml.js | 2 +- .../libs/prismjs/components/prism-qml.min.js | 2 +- .../libs/prismjs/components/prism-racket.js | 65 + .../prismjs/components/prism-racket.min.js | 1 + .../libs/prismjs/components/prism-regex.js | 80 +- .../prismjs/components/prism-regex.min.js | 2 +- .../libs/prismjs/components/prism-renpy.js | 2 + .../prismjs/components/prism-renpy.min.js | 2 +- .../libs/prismjs/components/prism-rip.js | 4 +- .../libs/prismjs/components/prism-rip.min.js | 2 +- .../components/prism-robotframework.js | 4 +- .../components/prism-robotframework.min.js | 2 +- .../libs/prismjs/components/prism-ruby.js | 76 +- .../libs/prismjs/components/prism-ruby.min.js | 2 +- .../libs/prismjs/components/prism-rust.js | 183 +- .../libs/prismjs/components/prism-rust.min.js | 2 +- .../libs/prismjs/components/prism-sas.js | 47 +- .../libs/prismjs/components/prism-sas.min.js | 2 +- .../libs/prismjs/components/prism-scheme.js | 50 +- .../prismjs/components/prism-scheme.min.js | 2 +- .../prismjs/components/prism-shell-session.js | 6 +- .../components/prism-shell-session.min.js | 2 +- .../libs/prismjs/components/prism-smali.js | 86 + .../prismjs/components/prism-smali.min.js | 1 + .../libs/prismjs/components/prism-solidity.js | 2 + .../prismjs/components/prism-solidity.min.js | 2 +- .../libs/prismjs/components/prism-sql.js | 2 +- .../libs/prismjs/components/prism-sql.min.js | 2 +- .../libs/prismjs/components/prism-stylus.js | 47 +- .../prismjs/components/prism-stylus.min.js | 2 +- .../libs/prismjs/components/prism-t4-vb.js | 2 +- .../prismjs/components/prism-t4-vb.min.js | 2 +- .../libs/prismjs/components/prism-textile.js | 60 +- .../prismjs/components/prism-textile.min.js | 2 +- .../libs/prismjs/components/prism-toml.js | 20 +- .../libs/prismjs/components/prism-toml.min.js | 2 +- .../libs/prismjs/components/prism-tt2.js | 2 +- .../libs/prismjs/components/prism-tt2.min.js | 2 +- .../libs/prismjs/components/prism-turtle.js | 2 +- .../prismjs/components/prism-turtle.min.js | 2 +- .../prismjs/components/prism-typescript.js | 47 +- .../components/prism-typescript.min.js | 2 +- .../prismjs/components/prism-unrealscript.js | 42 + .../components/prism-unrealscript.min.js | 1 + .../prismjs/components/prism-visual-basic.js | 5 +- .../components/prism-visual-basic.min.js | 2 +- .../prismjs/components/prism-warpscript.js | 21 + .../components/prism-warpscript.min.js | 1 + .../libs/prismjs/components/prism-xml-doc.js | 40 + .../prismjs/components/prism-xml-doc.min.js | 1 + .../libs/prismjs/components/prism-xquery.js | 6 +- .../prismjs/components/prism-xquery.min.js | 2 +- .../libs/prismjs/components/prism-yang.js | 20 + .../libs/prismjs/components/prism-yang.min.js | 1 + .../wwwroot/libs/prismjs/package.json | 11 +- .../plugins/autoloader/prism-autoloader.js | 172 +- .../autoloader/prism-autoloader.min.js | 2 +- .../command-line/prism-command-line.js | 271 +- .../command-line/prism-command-line.min.js | 2 +- .../prism-copy-to-clipboard.js | 4 +- .../prism-copy-to-clipboard.min.js | 2 +- .../file-highlight/prism-file-highlight.js | 170 +- .../prism-file-highlight.min.js | 2 +- .../jsonp-highlight/prism-jsonp-highlight.js | 164 +- .../prism-jsonp-highlight.min.js | 2 +- .../plugins/keep-markup/prism-keep-markup.js | 4 + .../keep-markup/prism-keep-markup.min.js | 2 +- .../line-highlight/prism-line-highlight.css | 10 + .../line-highlight/prism-line-highlight.js | 85 +- .../prism-line-highlight.min.js | 2 +- .../line-numbers/prism-line-numbers.css | 1 - .../line-numbers/prism-line-numbers.js | 204 +- .../line-numbers/prism-line-numbers.min.js | 2 +- .../prism-normalize-whitespace.js | 10 +- .../prism-normalize-whitespace.min.js | 2 +- .../plugins/previewers/prism-previewers.js | 4 +- .../previewers/prism-previewers.min.js | 2 +- .../show-language/prism-show-language.js | 63 +- .../show-language/prism-show-language.min.js | 2 +- .../prism-unescaped-markup.js | 2 +- .../prism-unescaped-markup.min.js | 2 +- .../wwwroot/libs/prismjs/prism.js | 804 +- .../wwwroot/libs/prismjs/themes/prism-coy.css | 10 +- .../libs/prismjs/themes/prism-okaidia.css | 2 +- .../wwwroot/libs/prismjs/themes/prism.css | 1 + .../js/select2-bootstrap-modal-patch.js | 6 +- .../yarn.lock | 388 +- .../Volo.Abp.VirtualFileExplorer.Web.csproj | 2 +- 503 files changed, 20061 insertions(+), 5259 deletions(-) create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/luxon/abp.luxon.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/bootstrap/css/bootstrap-rtl.css create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/bootstrap/css/bootstrap-rtl.css.map create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/bootstrap/css/bootstrap-rtl.min.css create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/bootstrap/css/bootstrap-rtl.min.css.map create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/bootstrap/css/bootstrap.css.map create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/bootstrap/css/bootstrap.min.css create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/bootstrap/css/bootstrap.min.css.map create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/bootstrap/js/bootstrap.bundle.js.map create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/bootstrap/js/bootstrap.bundle.min.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/bootstrap/js/bootstrap.bundle.min.js.map create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/jquery-form/jquery.form.min.js.map create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/prismjs/components/prism-agda.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/prismjs/components/prism-agda.min.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/prismjs/components/prism-al.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/prismjs/components/prism-al.min.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/prismjs/components/prism-cypher.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/prismjs/components/prism-cypher.min.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/prismjs/components/prism-dhall.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/prismjs/components/prism-dhall.min.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/prismjs/components/prism-editorconfig.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/prismjs/components/prism-editorconfig.min.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/prismjs/components/prism-hlsl.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/prismjs/components/prism-hlsl.min.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/prismjs/components/prism-iecst.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/prismjs/components/prism-iecst.min.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/prismjs/components/prism-ignore.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/prismjs/components/prism-ignore.min.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/prismjs/components/prism-jsstacktrace.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/prismjs/components/prism-jsstacktrace.min.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/prismjs/components/prism-peoplecode.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/prismjs/components/prism-peoplecode.min.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/prismjs/components/prism-purebasic.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/prismjs/components/prism-purebasic.min.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/prismjs/components/prism-racket.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/prismjs/components/prism-racket.min.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/prismjs/components/prism-smali.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/prismjs/components/prism-smali.min.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/prismjs/components/prism-unrealscript.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/prismjs/components/prism-unrealscript.min.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/prismjs/components/prism-warpscript.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/prismjs/components/prism-warpscript.min.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/prismjs/components/prism-xml-doc.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/prismjs/components/prism-xml-doc.min.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/prismjs/components/prism-yang.js create mode 100644 modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/prismjs/components/prism-yang.min.js diff --git a/abp_io/AbpIoLocalization/AbpIoLocalization/AbpIoLocalization.csproj b/abp_io/AbpIoLocalization/AbpIoLocalization/AbpIoLocalization.csproj index 7b26f13919..448a735fa5 100644 --- a/abp_io/AbpIoLocalization/AbpIoLocalization/AbpIoLocalization.csproj +++ b/abp_io/AbpIoLocalization/AbpIoLocalization/AbpIoLocalization.csproj @@ -1,7 +1,7 @@ - netstandard2.0 + net5.0 diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ModelBinding/AbpDateTimeModelBinderProvider.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ModelBinding/AbpDateTimeModelBinderProvider.cs index fd55e2b61a..ddda91c8a0 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ModelBinding/AbpDateTimeModelBinderProvider.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/ModelBinding/AbpDateTimeModelBinderProvider.cs @@ -6,6 +6,7 @@ using Volo.Abp.Timing; namespace Volo.Abp.AspNetCore.Mvc.ModelBinding { + public class AbpDateTimeModelBinderProvider : IModelBinderProvider { public IModelBinder GetBinder(ModelBinderProviderContext context) @@ -44,4 +45,4 @@ namespace Volo.Abp.AspNetCore.Mvc.ModelBinding return null; } } -} \ No newline at end of file +} diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Microsoft/EntityFrameworkCore/AbpOracleModelBuilderExtensions.cs b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Microsoft/EntityFrameworkCore/AbpOracleModelBuilderExtensions.cs index 8feec1715b..23943873c3 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Microsoft/EntityFrameworkCore/AbpOracleModelBuilderExtensions.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Microsoft/EntityFrameworkCore/AbpOracleModelBuilderExtensions.cs @@ -1,13 +1,13 @@ -using Volo.Abp.EntityFrameworkCore; - -namespace Microsoft.EntityFrameworkCore -{ - public static class AbpOracleModelBuilderExtensions - { - public static void UseOracle( - this ModelBuilder modelBuilder) - { - modelBuilder.SetDatabaseProvider(EfCoreDatabaseProvider.Oracle); - } - } -} \ No newline at end of file +// using Volo.Abp.EntityFrameworkCore; +// +// namespace Microsoft.EntityFrameworkCore +// { +// public static class AbpOracleModelBuilderExtensions +// { +// public static void UseOracle( +// this ModelBuilder modelBuilder) +// { +// modelBuilder.SetDatabaseProvider(EfCoreDatabaseProvider.Oracle); +// } +// } +// } diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo.Abp.EntityFrameworkCore.Oracle.Devart.csproj b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo.Abp.EntityFrameworkCore.Oracle.Devart.csproj index 6ca958024c..df65d389b5 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo.Abp.EntityFrameworkCore.Oracle.Devart.csproj +++ b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo.Abp.EntityFrameworkCore.Oracle.Devart.csproj @@ -19,7 +19,7 @@ - + diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextOracleDevartExtensions.cs b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextOracleDevartExtensions.cs index 482ee8b9a8..ba70772c9e 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextOracleDevartExtensions.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextOracleDevartExtensions.cs @@ -1,26 +1,26 @@ -using JetBrains.Annotations; -using Microsoft.EntityFrameworkCore; -using System; -using Devart.Data.Oracle.Entity; -using Volo.Abp.EntityFrameworkCore.DependencyInjection; - -namespace Volo.Abp.EntityFrameworkCore -{ - public static class AbpDbContextConfigurationContextOracleDevartExtensions - { - public static DbContextOptionsBuilder UseOracle( - [NotNull] this AbpDbContextConfigurationContext context, - [CanBeNull] Action oracleOptionsAction = null, - bool useExistingConnectionIfAvailable = false) - { - if (useExistingConnectionIfAvailable && context.ExistingConnection != null) - { - return context.DbContextOptions.UseOracle(context.ExistingConnection, oracleOptionsAction); - } - else - { - return context.DbContextOptions.UseOracle(context.ConnectionString, oracleOptionsAction); - } - } - } -} +// using JetBrains.Annotations; +// using Microsoft.EntityFrameworkCore; +// using System; +// using Devart.Data.Oracle.Entity; +// using Volo.Abp.EntityFrameworkCore.DependencyInjection; +// +// namespace Volo.Abp.EntityFrameworkCore +// { +// public static class AbpDbContextConfigurationContextOracleDevartExtensions +// { +// public static DbContextOptionsBuilder UseOracle( +// [NotNull] this AbpDbContextConfigurationContext context, +// [CanBeNull] Action oracleOptionsAction = null, +// bool useExistingConnectionIfAvailable = false) +// { +// if (useExistingConnectionIfAvailable && context.ExistingConnection != null) +// { +// return context.DbContextOptions.UseOracle(context.ExistingConnection, oracleOptionsAction); +// } +// else +// { +// return context.DbContextOptions.UseOracle(context.ConnectionString, oracleOptionsAction); +// } +// } +// } +// } diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo/Abp/EntityFrameworkCore/AbpDbContextOptionsOracleDevartExtensions.cs b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo/Abp/EntityFrameworkCore/AbpDbContextOptionsOracleDevartExtensions.cs index 20887ceb79..99cfc84b8e 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo/Abp/EntityFrameworkCore/AbpDbContextOptionsOracleDevartExtensions.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo/Abp/EntityFrameworkCore/AbpDbContextOptionsOracleDevartExtensions.cs @@ -1,32 +1,32 @@ -using JetBrains.Annotations; -using System; -using Devart.Data.Oracle.Entity; - -namespace Volo.Abp.EntityFrameworkCore -{ - public static class AbpDbContextOptionsOracleDevartExtensions - { - public static void UseOracle( - [NotNull] this AbpDbContextOptions options, - [CanBeNull] Action oracleOptionsAction = null, - bool useExistingConnectionIfAvailable = false) - { - options.Configure(context => - { - context.UseOracle(oracleOptionsAction, useExistingConnectionIfAvailable); - }); - } - - public static void UseOracle( - [NotNull] this AbpDbContextOptions options, - [CanBeNull] Action oracleOptionsAction = null, - bool useExistingConnectionIfAvailable = false) - where TDbContext : AbpDbContext - { - options.Configure(context => - { - context.UseOracle(oracleOptionsAction, useExistingConnectionIfAvailable); - }); - } - } -} +// using JetBrains.Annotations; +// using System; +// using Devart.Data.Oracle.Entity; +// +// namespace Volo.Abp.EntityFrameworkCore +// { +// public static class AbpDbContextOptionsOracleDevartExtensions +// { +// public static void UseOracle( +// [NotNull] this AbpDbContextOptions options, +// [CanBeNull] Action oracleOptionsAction = null, +// bool useExistingConnectionIfAvailable = false) +// { +// options.Configure(context => +// { +// context.UseOracle(oracleOptionsAction, useExistingConnectionIfAvailable); +// }); +// } +// +// public static void UseOracle( +// [NotNull] this AbpDbContextOptions options, +// [CanBeNull] Action oracleOptionsAction = null, +// bool useExistingConnectionIfAvailable = false) +// where TDbContext : AbpDbContext +// { +// options.Configure(context => +// { +// context.UseOracle(oracleOptionsAction, useExistingConnectionIfAvailable); +// }); +// } +// } +// } diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo/Abp/EntityFrameworkCore/Oracle/Devart/AbpEntityFrameworkCoreOracleDevartModule.cs b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo/Abp/EntityFrameworkCore/Oracle/Devart/AbpEntityFrameworkCoreOracleDevartModule.cs index 7b5970bb59..3b1b9cc337 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo/Abp/EntityFrameworkCore/Oracle/Devart/AbpEntityFrameworkCoreOracleDevartModule.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle.Devart/Volo/Abp/EntityFrameworkCore/Oracle/Devart/AbpEntityFrameworkCoreOracleDevartModule.cs @@ -1,22 +1,22 @@ -using Volo.Abp.Guids; -using Volo.Abp.Modularity; - -namespace Volo.Abp.EntityFrameworkCore.Oracle.Devart -{ - [DependsOn( - typeof(AbpEntityFrameworkCoreModule) - )] - public class AbpEntityFrameworkCoreOracleDevartModule : AbpModule - { - public override void ConfigureServices(ServiceConfigurationContext context) - { - Configure(options => - { - if (options.DefaultSequentialGuidType == null) - { - options.DefaultSequentialGuidType = SequentialGuidType.SequentialAsBinary; - } - }); - } - } -} \ No newline at end of file +// using Volo.Abp.Guids; +// using Volo.Abp.Modularity; +// +// namespace Volo.Abp.EntityFrameworkCore.Oracle.Devart +// { +// [DependsOn( +// typeof(AbpEntityFrameworkCoreModule) +// )] +// public class AbpEntityFrameworkCoreOracleDevartModule : AbpModule +// { +// public override void ConfigureServices(ServiceConfigurationContext context) +// { +// Configure(options => +// { +// if (options.DefaultSequentialGuidType == null) +// { +// options.DefaultSequentialGuidType = SequentialGuidType.SequentialAsBinary; +// } +// }); +// } +// } +// } diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo.Abp.EntityFrameworkCore.Oracle.csproj b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo.Abp.EntityFrameworkCore.Oracle.csproj index f76a2b2f01..e47c722b6d 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo.Abp.EntityFrameworkCore.Oracle.csproj +++ b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo.Abp.EntityFrameworkCore.Oracle.csproj @@ -19,7 +19,7 @@ - + diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextOracleExtensions.cs b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextOracleExtensions.cs index a5b898b286..cb3a92d2cf 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextOracleExtensions.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo/Abp/EntityFrameworkCore/AbpDbContextConfigurationContextOracleExtensions.cs @@ -1,25 +1,25 @@ -using JetBrains.Annotations; -using Microsoft.EntityFrameworkCore; -using System; -using Oracle.EntityFrameworkCore.Infrastructure; -using Volo.Abp.EntityFrameworkCore.DependencyInjection; - -namespace Volo.Abp.EntityFrameworkCore -{ - public static class AbpDbContextConfigurationContextOracleExtensions - { - public static DbContextOptionsBuilder UseOracle( - [NotNull] this AbpDbContextConfigurationContext context, - [CanBeNull] Action oracleOptionsAction = null) - { - if (context.ExistingConnection != null) - { - return context.DbContextOptions.UseOracle(context.ExistingConnection, oracleOptionsAction); - } - else - { - return context.DbContextOptions.UseOracle(context.ConnectionString, oracleOptionsAction); - } - } - } -} +// using JetBrains.Annotations; +// using Microsoft.EntityFrameworkCore; +// using System; +// using Oracle.EntityFrameworkCore.Infrastructure; +// using Volo.Abp.EntityFrameworkCore.DependencyInjection; +// +// namespace Volo.Abp.EntityFrameworkCore +// { +// public static class AbpDbContextConfigurationContextOracleExtensions +// { +// public static DbContextOptionsBuilder UseOracle( +// [NotNull] this AbpDbContextConfigurationContext context, +// [CanBeNull] Action oracleOptionsAction = null) +// { +// if (context.ExistingConnection != null) +// { +// return context.DbContextOptions.UseOracle(context.ExistingConnection, oracleOptionsAction); +// } +// else +// { +// return context.DbContextOptions.UseOracle(context.ConnectionString, oracleOptionsAction); +// } +// } +// } +// } diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo/Abp/EntityFrameworkCore/AbpDbContextOptionsOracleExtensions.cs b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo/Abp/EntityFrameworkCore/AbpDbContextOptionsOracleExtensions.cs index f4817d5ab4..f5f9dc7f61 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo/Abp/EntityFrameworkCore/AbpDbContextOptionsOracleExtensions.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo/Abp/EntityFrameworkCore/AbpDbContextOptionsOracleExtensions.cs @@ -1,30 +1,30 @@ -using JetBrains.Annotations; -using System; -using Oracle.EntityFrameworkCore.Infrastructure; - -namespace Volo.Abp.EntityFrameworkCore -{ - public static class AbpDbContextOptionsOracleExtensions - { - public static void UseOracle( - [NotNull] this AbpDbContextOptions options, - [CanBeNull] Action oracleOptionsAction = null) - { - options.Configure(context => - { - context.UseOracle(oracleOptionsAction); - }); - } - - public static void UseOracle( - [NotNull] this AbpDbContextOptions options, - [CanBeNull] Action oracleOptionsAction = null) - where TDbContext : AbpDbContext - { - options.Configure(context => - { - context.UseOracle(oracleOptionsAction); - }); - } - } -} +// using JetBrains.Annotations; +// using System; +// using Oracle.EntityFrameworkCore.Infrastructure; +// +// namespace Volo.Abp.EntityFrameworkCore +// { +// public static class AbpDbContextOptionsOracleExtensions +// { +// public static void UseOracle( +// [NotNull] this AbpDbContextOptions options, +// [CanBeNull] Action oracleOptionsAction = null) +// { +// options.Configure(context => +// { +// context.UseOracle(oracleOptionsAction); +// }); +// } +// +// public static void UseOracle( +// [NotNull] this AbpDbContextOptions options, +// [CanBeNull] Action oracleOptionsAction = null) +// where TDbContext : AbpDbContext +// { +// options.Configure(context => +// { +// context.UseOracle(oracleOptionsAction); +// }); +// } +// } +// } diff --git a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo/Abp/EntityFrameworkCore/Oracle/AbpEntityFrameworkCoreOracleModule.cs b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo/Abp/EntityFrameworkCore/Oracle/AbpEntityFrameworkCoreOracleModule.cs index 3b7c801462..21fad9375a 100644 --- a/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo/Abp/EntityFrameworkCore/Oracle/AbpEntityFrameworkCoreOracleModule.cs +++ b/framework/src/Volo.Abp.EntityFrameworkCore.Oracle/Volo/Abp/EntityFrameworkCore/Oracle/AbpEntityFrameworkCoreOracleModule.cs @@ -1,22 +1,22 @@ -using Volo.Abp.Guids; -using Volo.Abp.Modularity; - -namespace Volo.Abp.EntityFrameworkCore.Oracle -{ - [DependsOn( - typeof(AbpEntityFrameworkCoreModule) - )] - public class AbpEntityFrameworkCoreOracleModule : AbpModule - { - public override void ConfigureServices(ServiceConfigurationContext context) - { - Configure(options => - { - if (options.DefaultSequentialGuidType == null) - { - options.DefaultSequentialGuidType = SequentialGuidType.SequentialAsBinary; - } - }); - } - } -} \ No newline at end of file +// using Volo.Abp.Guids; +// using Volo.Abp.Modularity; +// +// namespace Volo.Abp.EntityFrameworkCore.Oracle +// { +// [DependsOn( +// typeof(AbpEntityFrameworkCoreModule) +// )] +// public class AbpEntityFrameworkCoreOracleModule : AbpModule +// { +// public override void ConfigureServices(ServiceConfigurationContext context) +// { +// Configure(options => +// { +// if (options.DefaultSequentialGuidType == null) +// { +// options.DefaultSequentialGuidType = SequentialGuidType.SequentialAsBinary; +// } +// }); +// } +// } +// } diff --git a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ModelBinding/ModelBindingController_Tests.cs b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ModelBinding/ModelBindingController_Tests.cs index f2ab8fd3d0..698723a34a 100644 --- a/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ModelBinding/ModelBindingController_Tests.cs +++ b/framework/test/Volo.Abp.AspNetCore.Mvc.Tests/Volo/Abp/AspNetCore/Mvc/ModelBinding/ModelBindingController_Tests.cs @@ -43,8 +43,9 @@ namespace Volo.Abp.AspNetCore.Mvc.ModelBinding response.StatusCode.ShouldBe(HttpStatusCode.OK); var resultAsString = await response.Content.ReadAsStringAsync(); - //Time parameter(2010-01-01T00:00:00Z) with time zone information, so the default Kind is Local. - resultAsString.ShouldBe(DateTimeKind.Local.ToString().ToLower()); + //Time parameter(2010-01-01T00:00:00Z) with time zone information, so the default Kind is UTC + //https://docs.microsoft.com/en-us/aspnet/core/migration/31-to-50?view=aspnetcore-3.1&tabs=visual-studio#datetime-values-are-model-bound-as-utc-times + resultAsString.ShouldBe(DateTimeKind.Utc.ToString().ToLower()); } [Fact] @@ -56,8 +57,9 @@ namespace Volo.Abp.AspNetCore.Mvc.ModelBinding response.StatusCode.ShouldBe(HttpStatusCode.OK); var resultAsString = await response.Content.ReadAsStringAsync(); - //Time parameter(2010-01-01T00:00:00Z) with time zone information, so the default Kind is Local. - resultAsString.ShouldBe(DateTimeKind.Local.ToString().ToLower()); + //Time parameter(2010-01-01T00:00:00Z) with time zone information, so the default Kind is UTC + //https://docs.microsoft.com/en-us/aspnet/core/migration/31-to-50?view=aspnetcore-3.1&tabs=visual-studio#datetime-values-are-model-bound-as-utc-times + resultAsString.ShouldBe(DateTimeKind.Utc.ToString().ToLower()); } [Fact] @@ -71,9 +73,10 @@ namespace Volo.Abp.AspNetCore.Mvc.ModelBinding response.StatusCode.ShouldBe(HttpStatusCode.OK); var resultAsString = await response.Content.ReadAsStringAsync(); - //Time parameter(2010-01-01T00:00:00Z) with time zone information, so the default Kind is Local. + //Time parameter(2010-01-01T00:00:00Z) with time zone information, so the default Kind is UTC + //https://docs.microsoft.com/en-us/aspnet/core/migration/31-to-50?view=aspnetcore-3.1&tabs=visual-studio#datetime-values-are-model-bound-as-utc-times resultAsString.ShouldBe( - $"local_{DateTimeKind.ToString().ToLower()}_{DateTimeKind.ToString().ToLower()}_local"); + $"utc_{DateTimeKind.ToString().ToLower()}_{DateTimeKind.ToString().ToLower()}_utc"); } } diff --git a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo.Abp.Account.Application.Contracts.csproj b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo.Abp.Account.Application.Contracts.csproj index 722a75a22c..c480d75b8c 100644 --- a/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo.Abp.Account.Application.Contracts.csproj +++ b/modules/account/src/Volo.Abp.Account.Application.Contracts/Volo.Abp.Account.Application.Contracts.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Account.Application.Contracts Volo.Abp.Account.Application.Contracts true @@ -21,7 +21,7 @@ - + diff --git a/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.csproj b/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.csproj index 5ee4aa8697..4eb4f4096c 100644 --- a/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.csproj +++ b/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Account.Application Volo.Abp.Account.Application true @@ -15,7 +15,7 @@ - + @@ -25,7 +25,7 @@ - + diff --git a/modules/account/src/Volo.Abp.Account.Blazor/Volo.Abp.Account.Blazor.csproj b/modules/account/src/Volo.Abp.Account.Blazor/Volo.Abp.Account.Blazor.csproj index 5707bc86a4..76445af180 100644 --- a/modules/account/src/Volo.Abp.Account.Blazor/Volo.Abp.Account.Blazor.csproj +++ b/modules/account/src/Volo.Abp.Account.Blazor/Volo.Abp.Account.Blazor.csproj @@ -4,7 +4,7 @@ - netstandard2.1 + net5.0 3.0 Volo.Abp.Account.Blazor diff --git a/modules/account/src/Volo.Abp.Account.HttpApi.Client/Volo.Abp.Account.HttpApi.Client.csproj b/modules/account/src/Volo.Abp.Account.HttpApi.Client/Volo.Abp.Account.HttpApi.Client.csproj index aef884dbe2..008b761835 100644 --- a/modules/account/src/Volo.Abp.Account.HttpApi.Client/Volo.Abp.Account.HttpApi.Client.csproj +++ b/modules/account/src/Volo.Abp.Account.HttpApi.Client/Volo.Abp.Account.HttpApi.Client.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Account.HttpApi.Client Volo.Abp.Account.HttpApi.Client diff --git a/modules/account/src/Volo.Abp.Account.HttpApi/Volo.Abp.Account.HttpApi.csproj b/modules/account/src/Volo.Abp.Account.HttpApi/Volo.Abp.Account.HttpApi.csproj index 2e074722b2..51cd8f0e39 100644 --- a/modules/account/src/Volo.Abp.Account.HttpApi/Volo.Abp.Account.HttpApi.csproj +++ b/modules/account/src/Volo.Abp.Account.HttpApi/Volo.Abp.Account.HttpApi.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.Account.HttpApi Volo.Abp.Account.HttpApi diff --git a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Volo.Abp.Account.Web.IdentityServer.csproj b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Volo.Abp.Account.Web.IdentityServer.csproj index aca9729a31..135d5d53f8 100644 --- a/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Volo.Abp.Account.Web.IdentityServer.csproj +++ b/modules/account/src/Volo.Abp.Account.Web.IdentityServer/Volo.Abp.Account.Web.IdentityServer.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.Account.Web.IdentityServer Volo.Abp.Account.Web.IdentityServer true @@ -38,7 +38,7 @@ - + diff --git a/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.csproj b/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.csproj index d3f7979fb1..c8c1365388 100644 --- a/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.csproj +++ b/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.Account.Web Volo.Abp.Account.Web $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -40,7 +40,7 @@ - + diff --git a/modules/account/test/Volo.Abp.Account.Application.Tests/Volo.Abp.Account.Application.Tests.csproj b/modules/account/test/Volo.Abp.Account.Application.Tests/Volo.Abp.Account.Application.Tests.csproj index 84e7de1746..2e1fe525f2 100644 --- a/modules/account/test/Volo.Abp.Account.Application.Tests/Volo.Abp.Account.Application.Tests.csproj +++ b/modules/account/test/Volo.Abp.Account.Application.Tests/Volo.Abp.Account.Application.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo.Abp.AuditLogging.Domain.Shared.csproj b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo.Abp.AuditLogging.Domain.Shared.csproj index ce65a161ce..574d72df0a 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo.Abp.AuditLogging.Domain.Shared.csproj +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain.Shared/Volo.Abp.AuditLogging.Domain.Shared.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo.Abp.AuditLogging.Domain.csproj b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo.Abp.AuditLogging.Domain.csproj index 161e952593..5147cd39a3 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo.Abp.AuditLogging.Domain.csproj +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.Domain/Volo.Abp.AuditLogging.Domain.csproj @@ -4,10 +4,10 @@ - netstandard2.0 + net5.0 - + diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo.Abp.AuditLogging.EntityFrameworkCore.csproj b/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo.Abp.AuditLogging.EntityFrameworkCore.csproj index d94e707ba0..a8ee31b1e4 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo.Abp.AuditLogging.EntityFrameworkCore.csproj +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.EntityFrameworkCore/Volo.Abp.AuditLogging.EntityFrameworkCore.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 diff --git a/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo.Abp.AuditLogging.MongoDB.csproj b/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo.Abp.AuditLogging.MongoDB.csproj index c22202f7f9..ef312cb0e0 100644 --- a/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo.Abp.AuditLogging.MongoDB.csproj +++ b/modules/audit-logging/src/Volo.Abp.AuditLogging.MongoDB/Volo.Abp.AuditLogging.MongoDB.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests.csproj b/modules/audit-logging/test/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests.csproj index 0a85b56d87..718a01f577 100644 --- a/modules/audit-logging/test/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests.csproj +++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests/Volo.Abp.AuditLogging.EntityFrameworkCore.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 @@ -15,7 +15,7 @@ - + diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo.Abp.AuditLogging.MongoDB.Tests.csproj b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo.Abp.AuditLogging.MongoDB.Tests.csproj index 34130bfca5..dda1379793 100644 --- a/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo.Abp.AuditLogging.MongoDB.Tests.csproj +++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.MongoDB.Tests/Volo.Abp.AuditLogging.MongoDB.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.TestBase/Volo.Abp.AuditLogging.TestBase.csproj b/modules/audit-logging/test/Volo.Abp.AuditLogging.TestBase/Volo.Abp.AuditLogging.TestBase.csproj index e62925a488..fc8df70002 100644 --- a/modules/audit-logging/test/Volo.Abp.AuditLogging.TestBase/Volo.Abp.AuditLogging.TestBase.csproj +++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.TestBase/Volo.Abp.AuditLogging.TestBase.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/audit-logging/test/Volo.Abp.AuditLogging.Tests/Volo.Abp.AuditLogging.Tests.csproj b/modules/audit-logging/test/Volo.Abp.AuditLogging.Tests/Volo.Abp.AuditLogging.Tests.csproj index ab703cdca3..d60a87ced6 100644 --- a/modules/audit-logging/test/Volo.Abp.AuditLogging.Tests/Volo.Abp.AuditLogging.Tests.csproj +++ b/modules/audit-logging/test/Volo.Abp.AuditLogging.Tests/Volo.Abp.AuditLogging.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.HangFire/Volo.Abp.BackgroundJobs.DemoApp.HangFire.csproj b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.HangFire/Volo.Abp.BackgroundJobs.DemoApp.HangFire.csproj index 0dede420f3..5f1da99297 100644 --- a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.HangFire/Volo.Abp.BackgroundJobs.DemoApp.HangFire.csproj +++ b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.HangFire/Volo.Abp.BackgroundJobs.DemoApp.HangFire.csproj @@ -2,16 +2,16 @@ Exe - netcoreapp3.1 + net5.0 - + - + Always diff --git a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Quartz/Volo.Abp.BackgroundJobs.DemoApp.Quartz.csproj b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Quartz/Volo.Abp.BackgroundJobs.DemoApp.Quartz.csproj index 7bd70093ee..c47507b462 100644 --- a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Quartz/Volo.Abp.BackgroundJobs.DemoApp.Quartz.csproj +++ b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Quartz/Volo.Abp.BackgroundJobs.DemoApp.Quartz.csproj @@ -2,7 +2,7 @@ Exe - netcoreapp3.1 + net5.0 diff --git a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq.csproj b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq.csproj index adcf9be1aa..17a9e03d28 100644 --- a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq.csproj +++ b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq/Volo.Abp.BackgroundJobs.DemoApp.RabbitMq.csproj @@ -2,7 +2,7 @@ Exe - netcoreapp3.1 + net5.0 diff --git a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Shared/Volo.Abp.BackgroundJobs.DemoApp.Shared.csproj b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Shared/Volo.Abp.BackgroundJobs.DemoApp.Shared.csproj index df4f574663..2456c4de2d 100644 --- a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Shared/Volo.Abp.BackgroundJobs.DemoApp.Shared.csproj +++ b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp.Shared/Volo.Abp.BackgroundJobs.DemoApp.Shared.csproj @@ -3,11 +3,11 @@ - netstandard2.0 + net5.0 - + diff --git a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/Volo.Abp.BackgroundJobs.DemoApp.csproj b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/Volo.Abp.BackgroundJobs.DemoApp.csproj index 0faa1370a8..803d16cabf 100644 --- a/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/Volo.Abp.BackgroundJobs.DemoApp.csproj +++ b/modules/background-jobs/app/Volo.Abp.BackgroundJobs.DemoApp/Volo.Abp.BackgroundJobs.DemoApp.csproj @@ -2,11 +2,11 @@ Exe - netcoreapp3.1 + net5.0 - + all runtime; build; native; contentfiles; analyzers diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain.Shared/Volo.Abp.BackgroundJobs.Domain.Shared.csproj b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain.Shared/Volo.Abp.BackgroundJobs.Domain.Shared.csproj index 4c79e9bcfd..aac12775e4 100644 --- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain.Shared/Volo.Abp.BackgroundJobs.Domain.Shared.csproj +++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain.Shared/Volo.Abp.BackgroundJobs.Domain.Shared.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain/Volo.Abp.BackgroundJobs.Domain.csproj b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain/Volo.Abp.BackgroundJobs.Domain.csproj index 7eb9015b73..edf71b7004 100644 --- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain/Volo.Abp.BackgroundJobs.Domain.csproj +++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.Domain/Volo.Abp.BackgroundJobs.Domain.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo.Abp.BackgroundJobs.EntityFrameworkCore.csproj b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo.Abp.BackgroundJobs.EntityFrameworkCore.csproj index 7103c0570e..13b6663e29 100644 --- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo.Abp.BackgroundJobs.EntityFrameworkCore.csproj +++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.EntityFrameworkCore/Volo.Abp.BackgroundJobs.EntityFrameworkCore.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 diff --git a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo.Abp.BackgroundJobs.MongoDB.csproj b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo.Abp.BackgroundJobs.MongoDB.csproj index 56c1391ab9..dc630f2880 100644 --- a/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo.Abp.BackgroundJobs.MongoDB.csproj +++ b/modules/background-jobs/src/Volo.Abp.BackgroundJobs.MongoDB/Volo.Abp.BackgroundJobs.MongoDB.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 diff --git a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.Domain.Tests/Volo.Abp.BackgroundJobs.Domain.Tests.csproj b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.Domain.Tests/Volo.Abp.BackgroundJobs.Domain.Tests.csproj index 4c835cbd51..f6c16a3449 100644 --- a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.Domain.Tests/Volo.Abp.BackgroundJobs.Domain.Tests.csproj +++ b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.Domain.Tests/Volo.Abp.BackgroundJobs.Domain.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests.csproj b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests.csproj index 50c8e74edb..493a26afb0 100644 --- a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests.csproj +++ b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests/Volo.Abp.BackgroundJobs.EntityFrameworkCore.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 @@ -15,7 +15,7 @@ - + diff --git a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo.Abp.BackgroundJobs.MongoDB.Tests.csproj b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo.Abp.BackgroundJobs.MongoDB.Tests.csproj index 496f95b373..0f9f0bf566 100644 --- a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo.Abp.BackgroundJobs.MongoDB.Tests.csproj +++ b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.MongoDB.Tests/Volo.Abp.BackgroundJobs.MongoDB.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.TestBase/Volo.Abp.BackgroundJobs.TestBase.csproj b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.TestBase/Volo.Abp.BackgroundJobs.TestBase.csproj index 46d6ea7b8e..58c82e4e62 100644 --- a/modules/background-jobs/test/Volo.Abp.BackgroundJobs.TestBase/Volo.Abp.BackgroundJobs.TestBase.csproj +++ b/modules/background-jobs/test/Volo.Abp.BackgroundJobs.TestBase/Volo.Abp.BackgroundJobs.TestBase.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/blob-storing-database/Volo.Abp.BlobStoring.Database.sln.DotSettings b/modules/blob-storing-database/Volo.Abp.BlobStoring.Database.sln.DotSettings index cb0b2c919f..b6b65cd94a 100644 --- a/modules/blob-storing-database/Volo.Abp.BlobStoring.Database.sln.DotSettings +++ b/modules/blob-storing-database/Volo.Abp.BlobStoring.Database.sln.DotSettings @@ -20,4 +20,5 @@ False False SQL + True \ No newline at end of file diff --git a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/BlobStoring.Database.Host.ConsoleApp.ConsoleApp.csproj b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/BlobStoring.Database.Host.ConsoleApp.ConsoleApp.csproj index 7e8d79ec68..54b61c57f6 100644 --- a/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/BlobStoring.Database.Host.ConsoleApp.ConsoleApp.csproj +++ b/modules/blob-storing-database/host/BlobStoring.Database.Host.ConsoleApp/src/BlobStoring.Database.Host.ConsoleApp.ConsoleApp/BlobStoring.Database.Host.ConsoleApp.ConsoleApp.csproj @@ -2,7 +2,7 @@ Exe - netcoreapp3.1 + net5.0 @@ -25,8 +25,8 @@ - - + + diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo.Abp.BlobStoring.Database.Domain.Shared.csproj b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo.Abp.BlobStoring.Database.Domain.Shared.csproj index ad171263fc..30a3621032 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo.Abp.BlobStoring.Database.Domain.Shared.csproj +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain.Shared/Volo.Abp.BlobStoring.Database.Domain.Shared.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo.Abp.BlobStoring.Database.Domain.csproj b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo.Abp.BlobStoring.Database.Domain.csproj index 09f19c0cae..b3f8c12d18 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo.Abp.BlobStoring.Database.Domain.csproj +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.Domain/Volo.Abp.BlobStoring.Database.Domain.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.csproj b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.csproj index ac1c336f15..09c46ddee1 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.csproj +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.EntityFrameworkCore/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 diff --git a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo.Abp.BlobStoring.Database.MongoDB.csproj b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo.Abp.BlobStoring.Database.MongoDB.csproj index 2665bb6736..3b20475b1e 100644 --- a/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo.Abp.BlobStoring.Database.MongoDB.csproj +++ b/modules/blob-storing-database/src/Volo.Abp.BlobStoring.Database.MongoDB/Volo.Abp.BlobStoring.Database.MongoDB.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.Domain.Tests/Volo.Abp.BlobStoring.Database.Domain.Tests.csproj b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.Domain.Tests/Volo.Abp.BlobStoring.Database.Domain.Tests.csproj index a6ff223c3a..3f5faacea1 100644 --- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.Domain.Tests/Volo.Abp.BlobStoring.Database.Domain.Tests.csproj +++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.Domain.Tests/Volo.Abp.BlobStoring.Database.Domain.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.BlobStoring.Database diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests.csproj b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests.csproj index fdaeecf17e..f9496b0160 100644 --- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests.csproj +++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests/Volo.Abp.BlobStoring.Database.EntityFrameworkCore.Tests.csproj @@ -1,15 +1,15 @@ - netcoreapp3.1 + net5.0 Volo.Abp.BlobStoring.Database - - + + diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/Volo.Abp.BlobStoring.Database.MongoDB.Tests.csproj b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/Volo.Abp.BlobStoring.Database.MongoDB.Tests.csproj index 48196ab38f..a56030ccc6 100644 --- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/Volo.Abp.BlobStoring.Database.MongoDB.Tests.csproj +++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.MongoDB.Tests/Volo.Abp.BlobStoring.Database.MongoDB.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.BlobStoring.Database diff --git a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.TestBase/Volo.Abp.BlobStoring.Database.TestBase.csproj b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.TestBase/Volo.Abp.BlobStoring.Database.TestBase.csproj index bbf0bad776..f4ddf02406 100644 --- a/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.TestBase/Volo.Abp.BlobStoring.Database.TestBase.csproj +++ b/modules/blob-storing-database/test/Volo.Abp.BlobStoring.Database.TestBase/Volo.Abp.BlobStoring.Database.TestBase.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.BlobStoring.Database diff --git a/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.csproj b/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.csproj index b6705f41c8..108bad8fc8 100644 --- a/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.csproj +++ b/modules/blogging/app/Volo.BloggingTestApp.EntityFrameworkCore/Volo.BloggingTestApp.EntityFrameworkCore.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 @@ -16,8 +16,8 @@ - - + + diff --git a/modules/blogging/app/Volo.BloggingTestApp.MongoDB/Volo.BloggingTestApp.MongoDB.csproj b/modules/blogging/app/Volo.BloggingTestApp.MongoDB/Volo.BloggingTestApp.MongoDB.csproj index a846bb0ca6..5b746a441e 100644 --- a/modules/blogging/app/Volo.BloggingTestApp.MongoDB/Volo.BloggingTestApp.MongoDB.csproj +++ b/modules/blogging/app/Volo.BloggingTestApp.MongoDB/Volo.BloggingTestApp.MongoDB.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + net5.0 diff --git a/modules/blogging/app/Volo.BloggingTestApp/Volo.BloggingTestApp.csproj b/modules/blogging/app/Volo.BloggingTestApp/Volo.BloggingTestApp.csproj index dc8670d4b7..3e11d85aee 100644 --- a/modules/blogging/app/Volo.BloggingTestApp/Volo.BloggingTestApp.csproj +++ b/modules/blogging/app/Volo.BloggingTestApp/Volo.BloggingTestApp.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 InProcess diff --git a/modules/blogging/src/Volo.Blogging.Admin.Application.Contracts/Volo.Blogging.Admin.Application.Contracts.csproj b/modules/blogging/src/Volo.Blogging.Admin.Application.Contracts/Volo.Blogging.Admin.Application.Contracts.csproj index 2af8db519c..388ca01e4e 100644 --- a/modules/blogging/src/Volo.Blogging.Admin.Application.Contracts/Volo.Blogging.Admin.Application.Contracts.csproj +++ b/modules/blogging/src/Volo.Blogging.Admin.Application.Contracts/Volo.Blogging.Admin.Application.Contracts.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Blogging.Admin.Application.Contracts Volo.Blogging.Admin.Application.Contracts true diff --git a/modules/blogging/src/Volo.Blogging.Admin.Application/Volo.Blogging.Admin.Application.csproj b/modules/blogging/src/Volo.Blogging.Admin.Application/Volo.Blogging.Admin.Application.csproj index cf5354adb9..17c98c4dc1 100644 --- a/modules/blogging/src/Volo.Blogging.Admin.Application/Volo.Blogging.Admin.Application.csproj +++ b/modules/blogging/src/Volo.Blogging.Admin.Application/Volo.Blogging.Admin.Application.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Blogging.Admin.Application Volo.Blogging.Admin.Application diff --git a/modules/blogging/src/Volo.Blogging.Admin.HttpApi.Client/Volo.Blogging.Admin.HttpApi.Client.csproj b/modules/blogging/src/Volo.Blogging.Admin.HttpApi.Client/Volo.Blogging.Admin.HttpApi.Client.csproj index 55b11f728d..ebd1bf9337 100644 --- a/modules/blogging/src/Volo.Blogging.Admin.HttpApi.Client/Volo.Blogging.Admin.HttpApi.Client.csproj +++ b/modules/blogging/src/Volo.Blogging.Admin.HttpApi.Client/Volo.Blogging.Admin.HttpApi.Client.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Blogging.Admin.HttpApi.Client Volo.Blogging.Admin.HttpApi.Client diff --git a/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo.Blogging.Admin.HttpApi.csproj b/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo.Blogging.Admin.HttpApi.csproj index e9435610df..6cef29cffb 100644 --- a/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo.Blogging.Admin.HttpApi.csproj +++ b/modules/blogging/src/Volo.Blogging.Admin.HttpApi/Volo.Blogging.Admin.HttpApi.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Blogging.Admin.HttpApi Volo.Blogging.Admin.HttpApi diff --git a/modules/blogging/src/Volo.Blogging.Admin.Web/Volo.Blogging.Admin.Web.csproj b/modules/blogging/src/Volo.Blogging.Admin.Web/Volo.Blogging.Admin.Web.csproj index 96c7d134ba..6559a1acbc 100644 --- a/modules/blogging/src/Volo.Blogging.Admin.Web/Volo.Blogging.Admin.Web.csproj +++ b/modules/blogging/src/Volo.Blogging.Admin.Web/Volo.Blogging.Admin.Web.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Blogging.Admin.Web Volo.Blogging.Admin.Web 2.8 @@ -24,7 +24,7 @@ - + diff --git a/modules/blogging/src/Volo.Blogging.Application.Contracts.Shared/Volo.Blogging.Application.Contracts.Shared.csproj b/modules/blogging/src/Volo.Blogging.Application.Contracts.Shared/Volo.Blogging.Application.Contracts.Shared.csproj index 70f0218a37..9f3511fbb0 100644 --- a/modules/blogging/src/Volo.Blogging.Application.Contracts.Shared/Volo.Blogging.Application.Contracts.Shared.csproj +++ b/modules/blogging/src/Volo.Blogging.Application.Contracts.Shared/Volo.Blogging.Application.Contracts.Shared.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Blogging.Application.Contracts.Shared Volo.Blogging.Application.Contracts.Shared diff --git a/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo.Blogging.Application.Contracts.csproj b/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo.Blogging.Application.Contracts.csproj index 2483d728b4..58431ae854 100644 --- a/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo.Blogging.Application.Contracts.csproj +++ b/modules/blogging/src/Volo.Blogging.Application.Contracts/Volo.Blogging.Application.Contracts.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Blogging.Application.Contracts Volo.Blogging.Application.Contracts true diff --git a/modules/blogging/src/Volo.Blogging.Application/Volo.Blogging.Application.csproj b/modules/blogging/src/Volo.Blogging.Application/Volo.Blogging.Application.csproj index 8c9f39e023..f84b647941 100644 --- a/modules/blogging/src/Volo.Blogging.Application/Volo.Blogging.Application.csproj +++ b/modules/blogging/src/Volo.Blogging.Application/Volo.Blogging.Application.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Blogging.Application Volo.Blogging.Application diff --git a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.csproj b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.csproj index ca7dcca8a2..5301def11f 100644 --- a/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.csproj +++ b/modules/blogging/src/Volo.Blogging.Domain.Shared/Volo.Blogging.Domain.Shared.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Blogging.Domain.Shared Volo.Blogging.Domain.Shared true @@ -21,7 +21,7 @@ - + diff --git a/modules/blogging/src/Volo.Blogging.Domain/Volo.Blogging.Domain.csproj b/modules/blogging/src/Volo.Blogging.Domain/Volo.Blogging.Domain.csproj index 73cf0498c5..9129bda234 100644 --- a/modules/blogging/src/Volo.Blogging.Domain/Volo.Blogging.Domain.csproj +++ b/modules/blogging/src/Volo.Blogging.Domain/Volo.Blogging.Domain.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Blogging.Domain Volo.Blogging.Domain diff --git a/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo.Blogging.EntityFrameworkCore.csproj b/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo.Blogging.EntityFrameworkCore.csproj index e74e255466..d888c791e8 100644 --- a/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo.Blogging.EntityFrameworkCore.csproj +++ b/modules/blogging/src/Volo.Blogging.EntityFrameworkCore/Volo.Blogging.EntityFrameworkCore.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Blogging.EntityFrameworkCore Volo.Blogging.EntityFrameworkCore diff --git a/modules/blogging/src/Volo.Blogging.HttpApi.Client/Volo.Blogging.HttpApi.Client.csproj b/modules/blogging/src/Volo.Blogging.HttpApi.Client/Volo.Blogging.HttpApi.Client.csproj index 68b3775baa..31728b0550 100644 --- a/modules/blogging/src/Volo.Blogging.HttpApi.Client/Volo.Blogging.HttpApi.Client.csproj +++ b/modules/blogging/src/Volo.Blogging.HttpApi.Client/Volo.Blogging.HttpApi.Client.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Blogging.HttpApi.Client Volo.Blogging.HttpApi.Client diff --git a/modules/blogging/src/Volo.Blogging.HttpApi/Volo.Blogging.HttpApi.csproj b/modules/blogging/src/Volo.Blogging.HttpApi/Volo.Blogging.HttpApi.csproj index 94181bf3fe..636faa7238 100644 --- a/modules/blogging/src/Volo.Blogging.HttpApi/Volo.Blogging.HttpApi.csproj +++ b/modules/blogging/src/Volo.Blogging.HttpApi/Volo.Blogging.HttpApi.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Blogging.HttpApi Volo.Blogging.HttpApi diff --git a/modules/blogging/src/Volo.Blogging.MongoDB/Volo.Blogging.MongoDB.csproj b/modules/blogging/src/Volo.Blogging.MongoDB/Volo.Blogging.MongoDB.csproj index 5019b843f2..78e912e56d 100644 --- a/modules/blogging/src/Volo.Blogging.MongoDB/Volo.Blogging.MongoDB.csproj +++ b/modules/blogging/src/Volo.Blogging.MongoDB/Volo.Blogging.MongoDB.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Blogging.MongoDB Volo.Blogging.MongoDB diff --git a/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.csproj b/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.csproj index 473cfb11c9..96c1d47895 100644 --- a/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.csproj +++ b/modules/blogging/src/Volo.Blogging.Web/Volo.Blogging.Web.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Blogging.Web Volo.Blogging.Web 2.8 @@ -24,7 +24,7 @@ - + diff --git a/modules/blogging/test/Volo.Blogging.Application.Tests/Volo.Blogging.Application.Tests.csproj b/modules/blogging/test/Volo.Blogging.Application.Tests/Volo.Blogging.Application.Tests.csproj index 6776e49a9c..84b74c8765 100644 --- a/modules/blogging/test/Volo.Blogging.Application.Tests/Volo.Blogging.Application.Tests.csproj +++ b/modules/blogging/test/Volo.Blogging.Application.Tests/Volo.Blogging.Application.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/blogging/test/Volo.Blogging.Domain.Tests/Volo.Blogging.Domain.Tests.csproj b/modules/blogging/test/Volo.Blogging.Domain.Tests/Volo.Blogging.Domain.Tests.csproj index 776aaf3657..c7fe644a59 100644 --- a/modules/blogging/test/Volo.Blogging.Domain.Tests/Volo.Blogging.Domain.Tests.csproj +++ b/modules/blogging/test/Volo.Blogging.Domain.Tests/Volo.Blogging.Domain.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/blogging/test/Volo.Blogging.EntityFrameworkCore.Tests/Volo.Blogging.EntityFrameworkCore.Tests.csproj b/modules/blogging/test/Volo.Blogging.EntityFrameworkCore.Tests/Volo.Blogging.EntityFrameworkCore.Tests.csproj index 01d894de88..87c20fdc04 100644 --- a/modules/blogging/test/Volo.Blogging.EntityFrameworkCore.Tests/Volo.Blogging.EntityFrameworkCore.Tests.csproj +++ b/modules/blogging/test/Volo.Blogging.EntityFrameworkCore.Tests/Volo.Blogging.EntityFrameworkCore.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 @@ -10,7 +10,7 @@ - + diff --git a/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo.Blogging.MongoDB.Tests.csproj b/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo.Blogging.MongoDB.Tests.csproj index 8eaa145ee7..1301bbf1bd 100644 --- a/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo.Blogging.MongoDB.Tests.csproj +++ b/modules/blogging/test/Volo.Blogging.MongoDB.Tests/Volo.Blogging.MongoDB.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/blogging/test/Volo.Blogging.TestBase/Volo.Blogging.TestBase.csproj b/modules/blogging/test/Volo.Blogging.TestBase/Volo.Blogging.TestBase.csproj index eae856530d..51f3e258b2 100644 --- a/modules/blogging/test/Volo.Blogging.TestBase/Volo.Blogging.TestBase.csproj +++ b/modules/blogging/test/Volo.Blogging.TestBase/Volo.Blogging.TestBase.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/cms-kit/host/Volo.CmsKit.Host.Shared/Volo.CmsKit.Host.Shared.csproj b/modules/cms-kit/host/Volo.CmsKit.Host.Shared/Volo.CmsKit.Host.Shared.csproj index c6a4484865..417296ddbe 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Host.Shared/Volo.CmsKit.Host.Shared.csproj +++ b/modules/cms-kit/host/Volo.CmsKit.Host.Shared/Volo.CmsKit.Host.Shared.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + net5.0 Volo.CmsKit diff --git a/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Volo.CmsKit.HttpApi.Host.csproj b/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Volo.CmsKit.HttpApi.Host.csproj index 99b2d0f1c0..186bc449a0 100644 --- a/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Volo.CmsKit.HttpApi.Host.csproj +++ b/modules/cms-kit/host/Volo.CmsKit.HttpApi.Host/Volo.CmsKit.HttpApi.Host.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 Volo.CmsKit true Volo.CmsKit-c2d31439-b723-48e2-b061-5ebd7aeb6010 @@ -14,17 +14,18 @@ - - - - - - - - - - - + + + + + + + + + + + + diff --git a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/Volo.CmsKit.IdentityServer.csproj b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/Volo.CmsKit.IdentityServer.csproj index a32a6c2dc3..5da6715422 100644 --- a/modules/cms-kit/host/Volo.CmsKit.IdentityServer/Volo.CmsKit.IdentityServer.csproj +++ b/modules/cms-kit/host/Volo.CmsKit.IdentityServer/Volo.CmsKit.IdentityServer.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 Volo.CmsKit true Volo.CmsKit-c2d31439-b723-48e2-b061-5ebd7aeb6010 @@ -11,33 +11,34 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Host/Volo.CmsKit.Web.Host.csproj b/modules/cms-kit/host/Volo.CmsKit.Web.Host/Volo.CmsKit.Web.Host.csproj index e58aa309c6..4ba2a01e15 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Host/Volo.CmsKit.Web.Host.csproj +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Host/Volo.CmsKit.Web.Host.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 Volo.CmsKit true Volo.CmsKit-c2d31439-b723-48e2-b061-5ebd7aeb6010 @@ -13,22 +13,22 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Volo.CmsKit.Web.Unified.csproj b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Volo.CmsKit.Web.Unified.csproj index 3b5450be78..210ad89850 100644 --- a/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Volo.CmsKit.Web.Unified.csproj +++ b/modules/cms-kit/host/Volo.CmsKit.Web.Unified/Volo.CmsKit.Web.Unified.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 Volo.CmsKit true Volo.CmsKit-c2d31439-b723-48e2-b061-5ebd7aeb6010 @@ -13,25 +13,27 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo.CmsKit.Admin.Application.Contracts.csproj b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo.CmsKit.Admin.Application.Contracts.csproj index f44c745740..8aeb083627 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo.CmsKit.Admin.Application.Contracts.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo.CmsKit.Admin.Application.Contracts.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.csproj b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.csproj index bf1ff4f610..374cc1469d 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/Volo.CmsKit.Admin.HttpApi.Client.csproj b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/Volo.CmsKit.Admin.HttpApi.Client.csproj index 1fb91747a2..340dd8b662 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/Volo.CmsKit.Admin.HttpApi.Client.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/Volo.CmsKit.Admin.HttpApi.Client.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo.CmsKit.Admin.HttpApi.csproj b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo.CmsKit.Admin.HttpApi.csproj index 84a5b7bf3b..1fd2111470 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo.CmsKit.Admin.HttpApi.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo.CmsKit.Admin.HttpApi.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.csproj b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.csproj index 3b548429c1..1e77151d0c 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; true Library @@ -18,7 +18,7 @@ - + diff --git a/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo.CmsKit.Application.Contracts.csproj b/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo.CmsKit.Application.Contracts.csproj index 40743570c5..94bccf6d29 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo.CmsKit.Application.Contracts.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Application.Contracts/Volo.CmsKit.Application.Contracts.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 diff --git a/modules/cms-kit/src/Volo.CmsKit.Application/Volo.CmsKit.Application.csproj b/modules/cms-kit/src/Volo.CmsKit.Application/Volo.CmsKit.Application.csproj index fa1557674e..64a3dcef21 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Application/Volo.CmsKit.Application.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Application/Volo.CmsKit.Application.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo.CmsKit.Common.Application.Contracts.csproj b/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo.CmsKit.Common.Application.Contracts.csproj index f6957cfe17..b446d7e9a7 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo.CmsKit.Common.Application.Contracts.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Application.Contracts/Volo.CmsKit.Common.Application.Contracts.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo.CmsKit.Common.Application.csproj b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo.CmsKit.Common.Application.csproj index f6ab737d8e..530d3973bc 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo.CmsKit.Common.Application.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo.CmsKit.Common.Application.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi.Client/Volo.CmsKit.Common.HttpApi.Client.csproj b/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi.Client/Volo.CmsKit.Common.HttpApi.Client.csproj index dd5b656fb6..c18d7c5553 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi.Client/Volo.CmsKit.Common.HttpApi.Client.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi.Client/Volo.CmsKit.Common.HttpApi.Client.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo.CmsKit.Common.HttpApi.csproj b/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo.CmsKit.Common.HttpApi.csproj index 9d34ff482d..9bb78116d7 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo.CmsKit.Common.HttpApi.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Common.HttpApi/Volo.CmsKit.Common.HttpApi.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.csproj b/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.csproj index 82ccec869f..5a09acba2d 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; true Library @@ -19,7 +19,7 @@ - + diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.csproj b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.csproj index e5e84b7aca..1b0367d771 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo.CmsKit.Domain.Shared.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 true @@ -12,7 +12,7 @@ - + diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.csproj b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.csproj index ee064cbedc..80a6c1b02d 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 diff --git a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo.CmsKit.EntityFrameworkCore.csproj b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo.CmsKit.EntityFrameworkCore.csproj index ace2e010bd..1a0085aba5 100644 --- a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo.CmsKit.EntityFrameworkCore.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo.CmsKit.EntityFrameworkCore.csproj @@ -4,14 +4,14 @@ - netstandard2.0 + net5.0 - + - + diff --git a/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/Volo.CmsKit.HttpApi.Client.csproj b/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/Volo.CmsKit.HttpApi.Client.csproj index 1d2f34b26c..29c9015aec 100644 --- a/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/Volo.CmsKit.HttpApi.Client.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.HttpApi.Client/Volo.CmsKit.HttpApi.Client.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 diff --git a/modules/cms-kit/src/Volo.CmsKit.HttpApi/Volo.CmsKit.HttpApi.csproj b/modules/cms-kit/src/Volo.CmsKit.HttpApi/Volo.CmsKit.HttpApi.csproj index c3775e5084..64a3dcef21 100644 --- a/modules/cms-kit/src/Volo.CmsKit.HttpApi/Volo.CmsKit.HttpApi.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.HttpApi/Volo.CmsKit.HttpApi.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo.CmsKit.MongoDB.csproj b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo.CmsKit.MongoDB.csproj index 7a25b6424b..875a43421a 100644 --- a/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo.CmsKit.MongoDB.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo.CmsKit.MongoDB.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.csproj b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.csproj index 8515d28e83..8298d29be2 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application.Contracts/Volo.CmsKit.Public.Application.Contracts.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.csproj b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.csproj index 702523e3c6..2bf1915ee9 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/Volo.CmsKit.Public.HttpApi.Client.csproj b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/Volo.CmsKit.Public.HttpApi.Client.csproj index 74087990f5..faac56e19d 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/Volo.CmsKit.Public.HttpApi.Client.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/Volo.CmsKit.Public.HttpApi.Client.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo.CmsKit.Public.HttpApi.csproj b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo.CmsKit.Public.HttpApi.csproj index ec87dac00f..ccb0b66d5e 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo.CmsKit.Public.HttpApi.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Public.HttpApi/Volo.CmsKit.Public.HttpApi.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.csproj b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.csproj index 6d2f8ff303..624dc2767e 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Volo.CmsKit.Public.Web.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; true Library @@ -15,7 +15,7 @@ - + diff --git a/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.csproj b/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.csproj index 74d3bbe84f..9e437416dd 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Web/Volo.CmsKit.Web.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; true Library @@ -19,7 +19,7 @@ - + diff --git a/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Volo.CmsKit.Application.Tests.csproj b/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Volo.CmsKit.Application.Tests.csproj index bf180a2e98..e18b41e3c9 100644 --- a/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Volo.CmsKit.Application.Tests.csproj +++ b/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Volo.CmsKit.Application.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 Volo.CmsKit diff --git a/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Volo.CmsKit.Domain.Tests.csproj b/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Volo.CmsKit.Domain.Tests.csproj index 2386818c20..d7544b0ab0 100644 --- a/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Volo.CmsKit.Domain.Tests.csproj +++ b/modules/cms-kit/test/Volo.CmsKit.Domain.Tests/Volo.CmsKit.Domain.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 Volo.CmsKit diff --git a/modules/cms-kit/test/Volo.CmsKit.EntityFrameworkCore.Tests/Volo.CmsKit.EntityFrameworkCore.Tests.csproj b/modules/cms-kit/test/Volo.CmsKit.EntityFrameworkCore.Tests/Volo.CmsKit.EntityFrameworkCore.Tests.csproj index ab7406a97d..072eb55696 100644 --- a/modules/cms-kit/test/Volo.CmsKit.EntityFrameworkCore.Tests/Volo.CmsKit.EntityFrameworkCore.Tests.csproj +++ b/modules/cms-kit/test/Volo.CmsKit.EntityFrameworkCore.Tests/Volo.CmsKit.EntityFrameworkCore.Tests.csproj @@ -3,16 +3,16 @@ - netcoreapp3.1 + net5.0 Volo.CmsKit - + - + diff --git a/modules/cms-kit/test/Volo.CmsKit.HttpApi.Client.ConsoleTestApp/Volo.CmsKit.HttpApi.Client.ConsoleTestApp.csproj b/modules/cms-kit/test/Volo.CmsKit.HttpApi.Client.ConsoleTestApp/Volo.CmsKit.HttpApi.Client.ConsoleTestApp.csproj index 65b381f4f4..540ec29dd8 100644 --- a/modules/cms-kit/test/Volo.CmsKit.HttpApi.Client.ConsoleTestApp/Volo.CmsKit.HttpApi.Client.ConsoleTestApp.csproj +++ b/modules/cms-kit/test/Volo.CmsKit.HttpApi.Client.ConsoleTestApp/Volo.CmsKit.HttpApi.Client.ConsoleTestApp.csproj @@ -2,7 +2,7 @@ Exe - netcoreapp3.1 + net5.0 Volo.CmsKit @@ -20,7 +20,7 @@ - + diff --git a/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/Volo.CmsKit.MongoDB.Tests.csproj b/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/Volo.CmsKit.MongoDB.Tests.csproj index 3006ea9dc4..834bfca873 100644 --- a/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/Volo.CmsKit.MongoDB.Tests.csproj +++ b/modules/cms-kit/test/Volo.CmsKit.MongoDB.Tests/Volo.CmsKit.MongoDB.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 Volo.CmsKit diff --git a/modules/cms-kit/test/Volo.CmsKit.TestBase/Volo.CmsKit.TestBase.csproj b/modules/cms-kit/test/Volo.CmsKit.TestBase/Volo.CmsKit.TestBase.csproj index bac493271c..853d46ffdf 100644 --- a/modules/cms-kit/test/Volo.CmsKit.TestBase/Volo.CmsKit.TestBase.csproj +++ b/modules/cms-kit/test/Volo.CmsKit.TestBase/Volo.CmsKit.TestBase.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 Volo.CmsKit @@ -14,9 +14,9 @@ - - - + + + diff --git a/modules/docs/app/VoloDocs.EntityFrameworkCore/VoloDocs.EntityFrameworkCore.csproj b/modules/docs/app/VoloDocs.EntityFrameworkCore/VoloDocs.EntityFrameworkCore.csproj index b8d9bcd623..411a6825b8 100644 --- a/modules/docs/app/VoloDocs.EntityFrameworkCore/VoloDocs.EntityFrameworkCore.csproj +++ b/modules/docs/app/VoloDocs.EntityFrameworkCore/VoloDocs.EntityFrameworkCore.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 @@ -16,8 +16,8 @@ - - + + diff --git a/modules/docs/app/VoloDocs.Migrator/VoloDocs.Migrator.csproj b/modules/docs/app/VoloDocs.Migrator/VoloDocs.Migrator.csproj index e1fba61428..5acf6029d5 100644 --- a/modules/docs/app/VoloDocs.Migrator/VoloDocs.Migrator.csproj +++ b/modules/docs/app/VoloDocs.Migrator/VoloDocs.Migrator.csproj @@ -3,11 +3,11 @@ - netcoreapp3.1 + net5.0 Exe win-x64;linux-x64;osx-x64 - + @@ -19,7 +19,7 @@ PreserveNewest - + PreserveNewest diff --git a/modules/docs/app/VoloDocs.Web/VoloDocs.Web.csproj b/modules/docs/app/VoloDocs.Web/VoloDocs.Web.csproj index d2f04bb1f5..8244c9b6fd 100644 --- a/modules/docs/app/VoloDocs.Web/VoloDocs.Web.csproj +++ b/modules/docs/app/VoloDocs.Web/VoloDocs.Web.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 true true false diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.csproj b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.csproj index d482c4d954..4fcda914df 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.csproj +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo.Docs.Admin.Application.Contracts.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Docs.Admin.Application.Contracts Volo.Docs.Admin.Application.Contracts true @@ -22,7 +22,7 @@ - + diff --git a/modules/docs/src/Volo.Docs.Admin.Application/Volo.Docs.Admin.Application.csproj b/modules/docs/src/Volo.Docs.Admin.Application/Volo.Docs.Admin.Application.csproj index 666b4dd79d..fe30bf599d 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application/Volo.Docs.Admin.Application.csproj +++ b/modules/docs/src/Volo.Docs.Admin.Application/Volo.Docs.Admin.Application.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Docs.Admin.Application Volo.Docs.Admin.Application diff --git a/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo.Docs.Admin.HttpApi.Client.csproj b/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo.Docs.Admin.HttpApi.Client.csproj index 00b0e26d75..a94892efab 100644 --- a/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo.Docs.Admin.HttpApi.Client.csproj +++ b/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/Volo.Docs.Admin.HttpApi.Client.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Docs.Admin.HttpApi.Client Volo.Docs.Admin.HttpApi.Client diff --git a/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo.Docs.Admin.HttpApi.csproj b/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo.Docs.Admin.HttpApi.csproj index eb0da981f4..7cc012687b 100644 --- a/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo.Docs.Admin.HttpApi.csproj +++ b/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo.Docs.Admin.HttpApi.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Docs.Admin.HttpApi Volo.Docs.Admin.HttpApi diff --git a/modules/docs/src/Volo.Docs.Admin.Web/Volo.Docs.Admin.Web.csproj b/modules/docs/src/Volo.Docs.Admin.Web/Volo.Docs.Admin.Web.csproj index 47e5560f8f..e682942ae9 100644 --- a/modules/docs/src/Volo.Docs.Admin.Web/Volo.Docs.Admin.Web.csproj +++ b/modules/docs/src/Volo.Docs.Admin.Web/Volo.Docs.Admin.Web.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Docs.Admin.Web Volo.Docs.Admin.Web Library @@ -27,7 +27,7 @@ - + diff --git a/modules/docs/src/Volo.Docs.Application.Contracts/Volo.Docs.Application.Contracts.csproj b/modules/docs/src/Volo.Docs.Application.Contracts/Volo.Docs.Application.Contracts.csproj index 15df62ac54..f51ae4a2f0 100644 --- a/modules/docs/src/Volo.Docs.Application.Contracts/Volo.Docs.Application.Contracts.csproj +++ b/modules/docs/src/Volo.Docs.Application.Contracts/Volo.Docs.Application.Contracts.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Docs.Application.Contracts Volo.Docs.Application.Contracts diff --git a/modules/docs/src/Volo.Docs.Application/Volo.Docs.Application.csproj b/modules/docs/src/Volo.Docs.Application/Volo.Docs.Application.csproj index 1009305c17..6fd5d55c07 100644 --- a/modules/docs/src/Volo.Docs.Application/Volo.Docs.Application.csproj +++ b/modules/docs/src/Volo.Docs.Application/Volo.Docs.Application.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Docs.Application Volo.Docs.Application diff --git a/modules/docs/src/Volo.Docs.Domain.Shared/Volo.Docs.Domain.Shared.csproj b/modules/docs/src/Volo.Docs.Domain.Shared/Volo.Docs.Domain.Shared.csproj index 453026ef95..cd2fd6ed9a 100644 --- a/modules/docs/src/Volo.Docs.Domain.Shared/Volo.Docs.Domain.Shared.csproj +++ b/modules/docs/src/Volo.Docs.Domain.Shared/Volo.Docs.Domain.Shared.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Docs.Domain.Shared Volo.Docs.Domain.Shared @@ -13,5 +13,5 @@ - + diff --git a/modules/docs/src/Volo.Docs.Domain/Volo.Docs.Domain.csproj b/modules/docs/src/Volo.Docs.Domain/Volo.Docs.Domain.csproj index 0f0b393787..61d1cdabb4 100644 --- a/modules/docs/src/Volo.Docs.Domain/Volo.Docs.Domain.csproj +++ b/modules/docs/src/Volo.Docs.Domain/Volo.Docs.Domain.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Docs.Domain Volo.Docs.Domain true @@ -17,10 +17,10 @@ - + - + diff --git a/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo.Docs.EntityFrameworkCore.csproj b/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo.Docs.EntityFrameworkCore.csproj index d8bf0d7fc6..bbe48b8740 100644 --- a/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo.Docs.EntityFrameworkCore.csproj +++ b/modules/docs/src/Volo.Docs.EntityFrameworkCore/Volo.Docs.EntityFrameworkCore.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Docs.EntityFrameworkCore Volo.Docs.EntityFrameworkCore diff --git a/modules/docs/src/Volo.Docs.HttpApi.Client/Volo.Docs.HttpApi.Client.csproj b/modules/docs/src/Volo.Docs.HttpApi.Client/Volo.Docs.HttpApi.Client.csproj index ed9acfaf20..1b36e90f1a 100644 --- a/modules/docs/src/Volo.Docs.HttpApi.Client/Volo.Docs.HttpApi.Client.csproj +++ b/modules/docs/src/Volo.Docs.HttpApi.Client/Volo.Docs.HttpApi.Client.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Docs.HttpApi.Client Volo.Docs.HttpApi.Client diff --git a/modules/docs/src/Volo.Docs.HttpApi/Volo.Docs.HttpApi.csproj b/modules/docs/src/Volo.Docs.HttpApi/Volo.Docs.HttpApi.csproj index 671d5dbbac..8afc972cf4 100644 --- a/modules/docs/src/Volo.Docs.HttpApi/Volo.Docs.HttpApi.csproj +++ b/modules/docs/src/Volo.Docs.HttpApi/Volo.Docs.HttpApi.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Docs.HttpApi Volo.Docs.HttpApi diff --git a/modules/docs/src/Volo.Docs.MongoDB/Volo.Docs.MongoDB.csproj b/modules/docs/src/Volo.Docs.MongoDB/Volo.Docs.MongoDB.csproj index 9a5cd19550..418a4b804d 100644 --- a/modules/docs/src/Volo.Docs.MongoDB/Volo.Docs.MongoDB.csproj +++ b/modules/docs/src/Volo.Docs.MongoDB/Volo.Docs.MongoDB.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Docs.MongoDB Volo.Docs.MongoDB diff --git a/modules/docs/src/Volo.Docs.Web/Volo.Docs.Web.csproj b/modules/docs/src/Volo.Docs.Web/Volo.Docs.Web.csproj index 9342831414..d15f1920b9 100644 --- a/modules/docs/src/Volo.Docs.Web/Volo.Docs.Web.csproj +++ b/modules/docs/src/Volo.Docs.Web/Volo.Docs.Web.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Docs.Web Volo.Docs.Web Library @@ -24,7 +24,7 @@ - + diff --git a/modules/docs/test/Volo.Docs.Admin.Application.Tests/Volo.Docs.Admin.Application.Tests.csproj b/modules/docs/test/Volo.Docs.Admin.Application.Tests/Volo.Docs.Admin.Application.Tests.csproj index a53c5606a3..4ba07f323d 100644 --- a/modules/docs/test/Volo.Docs.Admin.Application.Tests/Volo.Docs.Admin.Application.Tests.csproj +++ b/modules/docs/test/Volo.Docs.Admin.Application.Tests/Volo.Docs.Admin.Application.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/docs/test/Volo.Docs.Application.Tests/Volo.Docs.Application.Tests.csproj b/modules/docs/test/Volo.Docs.Application.Tests/Volo.Docs.Application.Tests.csproj index c5a1a2d642..82460f3822 100644 --- a/modules/docs/test/Volo.Docs.Application.Tests/Volo.Docs.Application.Tests.csproj +++ b/modules/docs/test/Volo.Docs.Application.Tests/Volo.Docs.Application.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/docs/test/Volo.Docs.Domain.Tests/Volo.Docs.Domain.Tests.csproj b/modules/docs/test/Volo.Docs.Domain.Tests/Volo.Docs.Domain.Tests.csproj index 6c6af318cb..bb56aefb8d 100644 --- a/modules/docs/test/Volo.Docs.Domain.Tests/Volo.Docs.Domain.Tests.csproj +++ b/modules/docs/test/Volo.Docs.Domain.Tests/Volo.Docs.Domain.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/docs/test/Volo.Docs.EntityFrameworkCore.Tests/Volo.Docs.EntityFrameworkCore.Tests.csproj b/modules/docs/test/Volo.Docs.EntityFrameworkCore.Tests/Volo.Docs.EntityFrameworkCore.Tests.csproj index f24d08ea52..2929bf1af0 100644 --- a/modules/docs/test/Volo.Docs.EntityFrameworkCore.Tests/Volo.Docs.EntityFrameworkCore.Tests.csproj +++ b/modules/docs/test/Volo.Docs.EntityFrameworkCore.Tests/Volo.Docs.EntityFrameworkCore.Tests.csproj @@ -1,13 +1,13 @@ - netcoreapp3.1 + net5.0 - + diff --git a/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo.Docs.MongoDB.Tests.csproj b/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo.Docs.MongoDB.Tests.csproj index 57ef225881..f8c009a8a7 100644 --- a/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo.Docs.MongoDB.Tests.csproj +++ b/modules/docs/test/Volo.Docs.MongoDB.Tests/Volo.Docs.MongoDB.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/docs/test/Volo.Docs.TestBase/Volo.Docs.TestBase.csproj b/modules/docs/test/Volo.Docs.TestBase/Volo.Docs.TestBase.csproj index 4a9523b667..6a4ed83050 100644 --- a/modules/docs/test/Volo.Docs.TestBase/Volo.Docs.TestBase.csproj +++ b/modules/docs/test/Volo.Docs.TestBase/Volo.Docs.TestBase.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 @@ -15,11 +15,11 @@ - + - + diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo.Abp.FeatureManagement.Application.Contracts.csproj b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo.Abp.FeatureManagement.Application.Contracts.csproj index 09376e7f2a..f873cad40f 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo.Abp.FeatureManagement.Application.Contracts.csproj +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application.Contracts/Volo.Abp.FeatureManagement.Application.Contracts.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo.Abp.FeatureManagement.Application.csproj b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo.Abp.FeatureManagement.Application.csproj index eab014478e..200cb84106 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo.Abp.FeatureManagement.Application.csproj +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Application/Volo.Abp.FeatureManagement.Application.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Volo.Abp.FeatureManagement.Blazor.csproj b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Volo.Abp.FeatureManagement.Blazor.csproj index 8769a86e79..3dc4fced6c 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Volo.Abp.FeatureManagement.Blazor.csproj +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Blazor/Volo.Abp.FeatureManagement.Blazor.csproj @@ -4,7 +4,7 @@ - netstandard2.1 + net5.0 3.0 diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo.Abp.FeatureManagement.Domain.Shared.csproj b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo.Abp.FeatureManagement.Domain.Shared.csproj index 865c652680..7a1b43b1c2 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo.Abp.FeatureManagement.Domain.Shared.csproj +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain.Shared/Volo.Abp.FeatureManagement.Domain.Shared.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 true @@ -15,7 +15,7 @@ - + diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo.Abp.FeatureManagement.Domain.csproj b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo.Abp.FeatureManagement.Domain.csproj index 10033847c2..3c0dd13363 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo.Abp.FeatureManagement.Domain.csproj +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Domain/Volo.Abp.FeatureManagement.Domain.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo.Abp.FeatureManagement.EntityFrameworkCore.csproj b/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo.Abp.FeatureManagement.EntityFrameworkCore.csproj index ac13799b80..7aefa37d6f 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo.Abp.FeatureManagement.EntityFrameworkCore.csproj +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.EntityFrameworkCore/Volo.Abp.FeatureManagement.EntityFrameworkCore.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi.Client/Volo.Abp.FeatureManagement.HttpApi.Client.csproj b/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi.Client/Volo.Abp.FeatureManagement.HttpApi.Client.csproj index a6dd5772e8..b4c556098a 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi.Client/Volo.Abp.FeatureManagement.HttpApi.Client.csproj +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi.Client/Volo.Abp.FeatureManagement.HttpApi.Client.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi/Volo.Abp.FeatureManagement.HttpApi.csproj b/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi/Volo.Abp.FeatureManagement.HttpApi.csproj index c809224e43..bb13c20899 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi/Volo.Abp.FeatureManagement.HttpApi.csproj +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.HttpApi/Volo.Abp.FeatureManagement.HttpApi.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo.Abp.FeatureManagement.MongoDB.csproj b/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo.Abp.FeatureManagement.MongoDB.csproj index 44c720110d..f86f931423 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo.Abp.FeatureManagement.MongoDB.csproj +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.MongoDB/Volo.Abp.FeatureManagement.MongoDB.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 diff --git a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Volo.Abp.FeatureManagement.Web.csproj b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Volo.Abp.FeatureManagement.Web.csproj index f45554d32c..58238ef69e 100644 --- a/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Volo.Abp.FeatureManagement.Web.csproj +++ b/modules/feature-management/src/Volo.Abp.FeatureManagement.Web/Volo.Abp.FeatureManagement.Web.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; true Library @@ -24,7 +24,7 @@ - + diff --git a/modules/feature-management/test/Volo.Abp.FeatureManagement.Application.Tests/Volo.Abp.FeatureManagement.Application.Tests.csproj b/modules/feature-management/test/Volo.Abp.FeatureManagement.Application.Tests/Volo.Abp.FeatureManagement.Application.Tests.csproj index f66045d616..e27652cf22 100644 --- a/modules/feature-management/test/Volo.Abp.FeatureManagement.Application.Tests/Volo.Abp.FeatureManagement.Application.Tests.csproj +++ b/modules/feature-management/test/Volo.Abp.FeatureManagement.Application.Tests/Volo.Abp.FeatureManagement.Application.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/feature-management/test/Volo.Abp.FeatureManagement.Domain.Tests/Volo.Abp.FeatureManagement.Domain.Tests.csproj b/modules/feature-management/test/Volo.Abp.FeatureManagement.Domain.Tests/Volo.Abp.FeatureManagement.Domain.Tests.csproj index e0dcbc8504..c38551375d 100644 --- a/modules/feature-management/test/Volo.Abp.FeatureManagement.Domain.Tests/Volo.Abp.FeatureManagement.Domain.Tests.csproj +++ b/modules/feature-management/test/Volo.Abp.FeatureManagement.Domain.Tests/Volo.Abp.FeatureManagement.Domain.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/feature-management/test/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests.csproj b/modules/feature-management/test/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests.csproj index dae0b0db40..a4ecdaaa2a 100644 --- a/modules/feature-management/test/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests.csproj +++ b/modules/feature-management/test/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests/Volo.Abp.FeatureManagement.EntityFrameworkCore.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 @@ -15,7 +15,7 @@ - + diff --git a/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo.Abp.FeatureManagement.MongoDB.Tests.csproj b/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo.Abp.FeatureManagement.MongoDB.Tests.csproj index 13becca10b..1e667cf711 100644 --- a/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo.Abp.FeatureManagement.MongoDB.Tests.csproj +++ b/modules/feature-management/test/Volo.Abp.FeatureManagement.MongoDB.Tests/Volo.Abp.FeatureManagement.MongoDB.Tests.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/feature-management/test/Volo.Abp.FeatureManagement.TestBase/Volo.Abp.FeatureManagement.TestBase.csproj b/modules/feature-management/test/Volo.Abp.FeatureManagement.TestBase/Volo.Abp.FeatureManagement.TestBase.csproj index 8d62c99864..262dbe49f0 100644 --- a/modules/feature-management/test/Volo.Abp.FeatureManagement.TestBase/Volo.Abp.FeatureManagement.TestBase.csproj +++ b/modules/feature-management/test/Volo.Abp.FeatureManagement.TestBase/Volo.Abp.FeatureManagement.TestBase.csproj @@ -3,7 +3,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo.Abp.Identity.Application.Contracts.csproj b/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo.Abp.Identity.Application.Contracts.csproj index 9703b293d8..70ea0a93f8 100644 --- a/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo.Abp.Identity.Application.Contracts.csproj +++ b/modules/identity/src/Volo.Abp.Identity.Application.Contracts/Volo.Abp.Identity.Application.Contracts.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Identity.Application.Contracts Volo.Abp.Identity.Application.Contracts $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/modules/identity/src/Volo.Abp.Identity.Application/Volo.Abp.Identity.Application.csproj b/modules/identity/src/Volo.Abp.Identity.Application/Volo.Abp.Identity.Application.csproj index fc01ba4400..c13d2b40b0 100644 --- a/modules/identity/src/Volo.Abp.Identity.Application/Volo.Abp.Identity.Application.csproj +++ b/modules/identity/src/Volo.Abp.Identity.Application/Volo.Abp.Identity.Application.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Identity.Application Volo.Abp.Identity.Application $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/modules/identity/src/Volo.Abp.Identity.AspNetCore/Volo.Abp.Identity.AspNetCore.csproj b/modules/identity/src/Volo.Abp.Identity.AspNetCore/Volo.Abp.Identity.AspNetCore.csproj index 5125c7a89c..2c51ab9c82 100644 --- a/modules/identity/src/Volo.Abp.Identity.AspNetCore/Volo.Abp.Identity.AspNetCore.csproj +++ b/modules/identity/src/Volo.Abp.Identity.AspNetCore/Volo.Abp.Identity.AspNetCore.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.Identity.AspNetCore Volo.Abp.Identity.AspNetCore $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor/Volo.Abp.Identity.Blazor.csproj b/modules/identity/src/Volo.Abp.Identity.Blazor/Volo.Abp.Identity.Blazor.csproj index 19bfb3831c..a7c594f79c 100644 --- a/modules/identity/src/Volo.Abp.Identity.Blazor/Volo.Abp.Identity.Blazor.csproj +++ b/modules/identity/src/Volo.Abp.Identity.Blazor/Volo.Abp.Identity.Blazor.csproj @@ -4,7 +4,7 @@ - netstandard2.1 + net5.0 3.0 diff --git a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.csproj b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.csproj index e1df61cbce..4746340a44 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.csproj +++ b/modules/identity/src/Volo.Abp.Identity.Domain.Shared/Volo.Abp.Identity.Domain.Shared.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Identity.Domain.Shared Volo.Abp.Identity.Domain.Shared $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -27,7 +27,7 @@ - + diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.csproj b/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.csproj index 9cd721a4b8..b17d67cbc0 100644 --- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.csproj +++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Identity.Domain Volo.Abp.Identity.Domain $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -30,7 +30,7 @@ - + diff --git a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo.Abp.Identity.EntityFrameworkCore.csproj b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo.Abp.Identity.EntityFrameworkCore.csproj index 0f1e0d1c7e..b47e43f60d 100644 --- a/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo.Abp.Identity.EntityFrameworkCore.csproj +++ b/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo.Abp.Identity.EntityFrameworkCore.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Identity.EntityFrameworkCore Volo.Abp.Identity.EntityFrameworkCore $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -18,5 +18,5 @@ - + diff --git a/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo.Abp.Identity.HttpApi.Client.csproj b/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo.Abp.Identity.HttpApi.Client.csproj index 5bff2432a7..314a666c1f 100644 --- a/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo.Abp.Identity.HttpApi.Client.csproj +++ b/modules/identity/src/Volo.Abp.Identity.HttpApi.Client/Volo.Abp.Identity.HttpApi.Client.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Identity.HttpApi.Client Volo.Abp.Identity.HttpApi.Client $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo.Abp.Identity.HttpApi.csproj b/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo.Abp.Identity.HttpApi.csproj index 55629d070e..43ac1f9b5c 100644 --- a/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo.Abp.Identity.HttpApi.csproj +++ b/modules/identity/src/Volo.Abp.Identity.HttpApi/Volo.Abp.Identity.HttpApi.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.Identity.HttpApi Volo.Abp.Identity.HttpApi $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo.Abp.Identity.MongoDB.csproj b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo.Abp.Identity.MongoDB.csproj index 762582ef67..a662aff294 100644 --- a/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo.Abp.Identity.MongoDB.csproj +++ b/modules/identity/src/Volo.Abp.Identity.MongoDB/Volo.Abp.Identity.MongoDB.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Identity.MongoDB Volo.Abp.Identity.MongoDB $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.csproj b/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.csproj index 8a0b8ebd5c..678676779b 100644 --- a/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.csproj +++ b/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.Identity.Web Volo.Abp.Identity.Web $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -43,7 +43,7 @@ - + diff --git a/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo.Abp.PermissionManagement.Domain.Identity.csproj b/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo.Abp.PermissionManagement.Domain.Identity.csproj index 40a310cf2d..c6a8292887 100644 --- a/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo.Abp.PermissionManagement.Domain.Identity.csproj +++ b/modules/identity/src/Volo.Abp.PermissionManagement.Domain.Identity/Volo.Abp.PermissionManagement.Domain.Identity.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.PermissionManagement.Domain.Identity Volo.Abp.PermissionManagement.Domain.Identity $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/modules/identity/test/Volo.Abp.Identity.Application.Tests/Volo.Abp.Identity.Application.Tests.csproj b/modules/identity/test/Volo.Abp.Identity.Application.Tests/Volo.Abp.Identity.Application.Tests.csproj index 51ff7f612c..bf4f32d6b7 100644 --- a/modules/identity/test/Volo.Abp.Identity.Application.Tests/Volo.Abp.Identity.Application.Tests.csproj +++ b/modules/identity/test/Volo.Abp.Identity.Application.Tests/Volo.Abp.Identity.Application.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.Identity.Application.Tests Volo.Abp.Identity.Application.Tests true @@ -19,5 +19,5 @@ - + diff --git a/modules/identity/test/Volo.Abp.Identity.AspNetCore.Tests/Volo.Abp.Identity.AspNetCore.Tests.csproj b/modules/identity/test/Volo.Abp.Identity.AspNetCore.Tests/Volo.Abp.Identity.AspNetCore.Tests.csproj index 594080f283..04f98805b7 100644 --- a/modules/identity/test/Volo.Abp.Identity.AspNetCore.Tests/Volo.Abp.Identity.AspNetCore.Tests.csproj +++ b/modules/identity/test/Volo.Abp.Identity.AspNetCore.Tests/Volo.Abp.Identity.AspNetCore.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.Identity.AspNetCore.Tests Volo.Abp.Identity.AspNetCore.Tests true diff --git a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo.Abp.Identity.Domain.Tests.csproj b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo.Abp.Identity.Domain.Tests.csproj index dbce36b3c9..ce57f7fdae 100644 --- a/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo.Abp.Identity.Domain.Tests.csproj +++ b/modules/identity/test/Volo.Abp.Identity.Domain.Tests/Volo.Abp.Identity.Domain.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.Identity.Domain.Tests Volo.Abp.Identity.Domain.Tests true diff --git a/modules/identity/test/Volo.Abp.Identity.EntityFrameworkCore.Tests/Volo.Abp.Identity.EntityFrameworkCore.Tests.csproj b/modules/identity/test/Volo.Abp.Identity.EntityFrameworkCore.Tests/Volo.Abp.Identity.EntityFrameworkCore.Tests.csproj index d28ec1a50b..c61a4c3309 100644 --- a/modules/identity/test/Volo.Abp.Identity.EntityFrameworkCore.Tests/Volo.Abp.Identity.EntityFrameworkCore.Tests.csproj +++ b/modules/identity/test/Volo.Abp.Identity.EntityFrameworkCore.Tests/Volo.Abp.Identity.EntityFrameworkCore.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.Identity.EntityFrameworkCore.Tests Volo.Abp.Identity.EntityFrameworkCore.Tests true @@ -20,7 +20,7 @@ - + diff --git a/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo.Abp.Identity.MongoDB.Tests.csproj b/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo.Abp.Identity.MongoDB.Tests.csproj index dcd19f08b7..581e113534 100644 --- a/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo.Abp.Identity.MongoDB.Tests.csproj +++ b/modules/identity/test/Volo.Abp.Identity.MongoDB.Tests/Volo.Abp.Identity.MongoDB.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.Identity.MongoDB.Tests Volo.Abp.Identity.MongoDB.Tests true diff --git a/modules/identity/test/Volo.Abp.Identity.TestBase/Volo.Abp.Identity.TestBase.csproj b/modules/identity/test/Volo.Abp.Identity.TestBase/Volo.Abp.Identity.TestBase.csproj index 10ccec2a11..5638abff65 100644 --- a/modules/identity/test/Volo.Abp.Identity.TestBase/Volo.Abp.Identity.TestBase.csproj +++ b/modules/identity/test/Volo.Abp.Identity.TestBase/Volo.Abp.Identity.TestBase.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.Identity.TestBase Volo.Abp.Identity.TestBase true diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo.Abp.IdentityServer.Domain.Shared.csproj b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo.Abp.IdentityServer.Domain.Shared.csproj index e8a623fad6..e59fcd289a 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo.Abp.IdentityServer.Domain.Shared.csproj +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain.Shared/Volo.Abp.IdentityServer.Domain.Shared.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.IdentityServer.Domain.Shared Volo.Abp.IdentityServer.Domain.Shared $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo.Abp.IdentityServer.Domain.csproj b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo.Abp.IdentityServer.Domain.csproj index 0fbb06c694..693a6fede4 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo.Abp.IdentityServer.Domain.csproj +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.Domain/Volo.Abp.IdentityServer.Domain.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.IdentityServer.Domain Volo.Abp.IdentityServer.Domain $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo.Abp.IdentityServer.EntityFrameworkCore.csproj b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo.Abp.IdentityServer.EntityFrameworkCore.csproj index 5396e34103..46f765723e 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo.Abp.IdentityServer.EntityFrameworkCore.csproj +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.EntityFrameworkCore/Volo.Abp.IdentityServer.EntityFrameworkCore.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.IdentityServer.EntityFrameworkCore Volo.Abp.IdentityServer.EntityFrameworkCore $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -18,5 +18,5 @@ - + diff --git a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo.Abp.IdentityServer.MongoDB.csproj b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo.Abp.IdentityServer.MongoDB.csproj index 0fd4cc51cf..7f73a72609 100644 --- a/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo.Abp.IdentityServer.MongoDB.csproj +++ b/modules/identityserver/src/Volo.Abp.IdentityServer.MongoDB/Volo.Abp.IdentityServer.MongoDB.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.IdentityServer.MongoDB Volo.Abp.IdentityServer.MongoDB $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/modules/identityserver/src/Volo.Abp.PermissionManagement.Domain.IdentityServer/Volo.Abp.PermissionManagement.Domain.IdentityServer.csproj b/modules/identityserver/src/Volo.Abp.PermissionManagement.Domain.IdentityServer/Volo.Abp.PermissionManagement.Domain.IdentityServer.csproj index e1c009e432..3de8cab7f2 100644 --- a/modules/identityserver/src/Volo.Abp.PermissionManagement.Domain.IdentityServer/Volo.Abp.PermissionManagement.Domain.IdentityServer.csproj +++ b/modules/identityserver/src/Volo.Abp.PermissionManagement.Domain.IdentityServer/Volo.Abp.PermissionManagement.Domain.IdentityServer.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.PermissionManagement.Domain.IdentityServer Volo.Abp.PermissionManagement.Domain.IdentityServer $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.Domain.Tests/Volo.Abp.IdentityServer.Domain.Tests.csproj b/modules/identityserver/test/Volo.Abp.IdentityServer.Domain.Tests/Volo.Abp.IdentityServer.Domain.Tests.csproj index 6f62f7d56b..2063236ee8 100644 --- a/modules/identityserver/test/Volo.Abp.IdentityServer.Domain.Tests/Volo.Abp.IdentityServer.Domain.Tests.csproj +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.Domain.Tests/Volo.Abp.IdentityServer.Domain.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.IdentityServer.Domain.Tests Volo.Abp.IdentityServer.Domain.Tests true diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests.csproj b/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests.csproj index b91a1ea9f6..17f38e0f68 100644 --- a/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests.csproj +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests/Volo.Abp.IdentityServer.EntityFrameworkCore.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.IdentityServer.EntityFrameworkCore.Tests Volo.Abp.IdentityServer.EntityFrameworkCore.Tests true diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo.Abp.IdentityServer.MongoDB.Tests.csproj b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo.Abp.IdentityServer.MongoDB.Tests.csproj index 789d512c5f..9768c83e98 100644 --- a/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo.Abp.IdentityServer.MongoDB.Tests.csproj +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.MongoDB.Tests/Volo.Abp.IdentityServer.MongoDB.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.IdentityServer.MongoDB.Tests Volo.Abp.IdentityServer.MongoDB.Tests true @@ -13,7 +13,7 @@ - + diff --git a/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo.Abp.IdentityServer.TestBase.csproj b/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo.Abp.IdentityServer.TestBase.csproj index e9a3d38c8c..69eb62fefc 100644 --- a/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo.Abp.IdentityServer.TestBase.csproj +++ b/modules/identityserver/test/Volo.Abp.IdentityServer.TestBase/Volo.Abp.IdentityServer.TestBase.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.IdentityServer.TestBase Volo.Abp.IdentityServer.TestBase true diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo.Abp.PermissionManagement.Application.Contracts.csproj b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo.Abp.PermissionManagement.Application.Contracts.csproj index 8bb01c8fff..ad314a9d45 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo.Abp.PermissionManagement.Application.Contracts.csproj +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application.Contracts/Volo.Abp.PermissionManagement.Application.Contracts.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.PermissionManagement.Application.Contracts Volo.Abp.PermissionManagement.Application.Contracts $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo.Abp.PermissionManagement.Application.csproj b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo.Abp.PermissionManagement.Application.csproj index 41a280d054..0fb4d17f9b 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo.Abp.PermissionManagement.Application.csproj +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Application/Volo.Abp.PermissionManagement.Application.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.PermissionManagement.Application Volo.Abp.PermissionManagement.Application $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Volo.Abp.PermissionManagement.Blazor.csproj b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Volo.Abp.PermissionManagement.Blazor.csproj index 0663ca49a5..40208a11f7 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Volo.Abp.PermissionManagement.Blazor.csproj +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Blazor/Volo.Abp.PermissionManagement.Blazor.csproj @@ -4,7 +4,7 @@ - netstandard2.1 + net5.0 3.0 diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo.Abp.PermissionManagement.Domain.Shared.csproj b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo.Abp.PermissionManagement.Domain.Shared.csproj index 5b510b9e8b..92502692d6 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo.Abp.PermissionManagement.Domain.Shared.csproj +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain.Shared/Volo.Abp.PermissionManagement.Domain.Shared.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.PermissionManagement.Domain.Shared Volo.Abp.PermissionManagement.Domain.Shared $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -25,7 +25,7 @@ - + diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo.Abp.PermissionManagement.Domain.csproj b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo.Abp.PermissionManagement.Domain.csproj index 1a44f1f6a1..f54be2a1cb 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo.Abp.PermissionManagement.Domain.csproj +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Domain/Volo.Abp.PermissionManagement.Domain.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.PermissionManagement.Domain Volo.Abp.PermissionManagement.Domain $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -20,7 +20,7 @@ - + diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.EntityFrameworkCore/Volo.Abp.PermissionManagement.EntityFrameworkCore.csproj b/modules/permission-management/src/Volo.Abp.PermissionManagement.EntityFrameworkCore/Volo.Abp.PermissionManagement.EntityFrameworkCore.csproj index 0b9ac8acd8..ec33bf7e7f 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.EntityFrameworkCore/Volo.Abp.PermissionManagement.EntityFrameworkCore.csproj +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.EntityFrameworkCore/Volo.Abp.PermissionManagement.EntityFrameworkCore.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.PermissionManagement.EntityFrameworkCore Volo.Abp.PermissionManagement.EntityFrameworkCore $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/Volo.Abp.PermissionManagement.HttpApi.Client.csproj b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/Volo.Abp.PermissionManagement.HttpApi.Client.csproj index a198deb9eb..d39087b262 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/Volo.Abp.PermissionManagement.HttpApi.Client.csproj +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi.Client/Volo.Abp.PermissionManagement.HttpApi.Client.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.PermissionManagement.HttpApi.Client Volo.Abp.PermissionManagement.HttpApi.Client $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo.Abp.PermissionManagement.HttpApi.csproj b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo.Abp.PermissionManagement.HttpApi.csproj index a41a82b330..dec48dec0f 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo.Abp.PermissionManagement.HttpApi.csproj +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.HttpApi/Volo.Abp.PermissionManagement.HttpApi.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.PermissionManagement.HttpApi Volo.Abp.PermissionManagement.HttpApi $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo.Abp.PermissionManagement.MongoDB.csproj b/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo.Abp.PermissionManagement.MongoDB.csproj index 4dd5b952f4..7c01fdf3d7 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo.Abp.PermissionManagement.MongoDB.csproj +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.MongoDB/Volo.Abp.PermissionManagement.MongoDB.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.PermissionManagement.MongoDB Volo.Abp.PermissionManagement.MongoDB $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Volo.Abp.PermissionManagement.Web.csproj b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Volo.Abp.PermissionManagement.Web.csproj index e18160a798..4e9c229e2b 100644 --- a/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Volo.Abp.PermissionManagement.Web.csproj +++ b/modules/permission-management/src/Volo.Abp.PermissionManagement.Web/Volo.Abp.PermissionManagement.Web.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.PermissionManagement.Web Volo.Abp.PermissionManagement.Web $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -32,7 +32,7 @@ - + diff --git a/modules/permission-management/test/Volo.Abp.PermissionManagement.Application.Tests/Volo.Abp.PermissionManagement.Application.Tests.csproj b/modules/permission-management/test/Volo.Abp.PermissionManagement.Application.Tests/Volo.Abp.PermissionManagement.Application.Tests.csproj index 647ba0f256..3f93397029 100644 --- a/modules/permission-management/test/Volo.Abp.PermissionManagement.Application.Tests/Volo.Abp.PermissionManagement.Application.Tests.csproj +++ b/modules/permission-management/test/Volo.Abp.PermissionManagement.Application.Tests/Volo.Abp.PermissionManagement.Application.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo.Abp.PermissionManagement.Domain.Tests.csproj b/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo.Abp.PermissionManagement.Domain.Tests.csproj index c08b0f7c6c..1faaaa6b2a 100644 --- a/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo.Abp.PermissionManagement.Domain.Tests.csproj +++ b/modules/permission-management/test/Volo.Abp.PermissionManagement.Domain.Tests/Volo.Abp.PermissionManagement.Domain.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.PermissionManagement.Tests Volo.Abp.PermissionManagement.Tests true @@ -17,7 +17,7 @@ - + diff --git a/modules/permission-management/test/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests.csproj b/modules/permission-management/test/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests.csproj index e0f4bf29d6..490622f3c8 100644 --- a/modules/permission-management/test/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests.csproj +++ b/modules/permission-management/test/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests/Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests Volo.Abp.PermissionManagement.EntityFrameworkCore.Tests true @@ -17,7 +17,7 @@ - + diff --git a/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo.Abp.PermissionManagement.MongoDB.Tests.csproj b/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo.Abp.PermissionManagement.MongoDB.Tests.csproj index 4fe8e904c9..888e06c2b9 100644 --- a/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo.Abp.PermissionManagement.MongoDB.Tests.csproj +++ b/modules/permission-management/test/Volo.Abp.PermissionManagement.MongoDB.Tests/Volo.Abp.PermissionManagement.MongoDB.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.PermissionManagement.MongoDB.Tests Volo.Abp.PermissionManagement.MongoDB.Tests true diff --git a/modules/permission-management/test/Volo.Abp.PermissionManagement.TestBase/Volo.Abp.PermissionManagement.TestBase.csproj b/modules/permission-management/test/Volo.Abp.PermissionManagement.TestBase/Volo.Abp.PermissionManagement.TestBase.csproj index 1e948ab334..08816667cf 100644 --- a/modules/permission-management/test/Volo.Abp.PermissionManagement.TestBase/Volo.Abp.PermissionManagement.TestBase.csproj +++ b/modules/permission-management/test/Volo.Abp.PermissionManagement.TestBase/Volo.Abp.PermissionManagement.TestBase.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.PermissionManagement.TestBase Volo.Abp.PermissionManagement.TestBase true diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Volo.Abp.SettingManagement.Blazor.csproj b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Volo.Abp.SettingManagement.Blazor.csproj index ea32179ddd..9e63050fbf 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Volo.Abp.SettingManagement.Blazor.csproj +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Blazor/Volo.Abp.SettingManagement.Blazor.csproj @@ -2,9 +2,9 @@ - + - netstandard2.1 + net5.0 3.0 Volo.Abp.SettingManagement.Blazor diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo.Abp.SettingManagement.Domain.Shared.csproj b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo.Abp.SettingManagement.Domain.Shared.csproj index 40ec418ff7..f1bd9ed733 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo.Abp.SettingManagement.Domain.Shared.csproj +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain.Shared/Volo.Abp.SettingManagement.Domain.Shared.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.SettingManagement.Domain.Shared Volo.Abp.SettingManagement.Domain.Shared $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -21,7 +21,7 @@ - + diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo.Abp.SettingManagement.Domain.csproj b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo.Abp.SettingManagement.Domain.csproj index 8b0ced6f97..217eacdce1 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo.Abp.SettingManagement.Domain.csproj +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Domain/Volo.Abp.SettingManagement.Domain.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.SettingManagement.Domain Volo.Abp.SettingManagement.Domain $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo.Abp.SettingManagement.EntityFrameworkCore.csproj b/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo.Abp.SettingManagement.EntityFrameworkCore.csproj index 8f389e8391..0914350eaf 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo.Abp.SettingManagement.EntityFrameworkCore.csproj +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.EntityFrameworkCore/Volo.Abp.SettingManagement.EntityFrameworkCore.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.SettingManagement.EntityFrameworkCore Volo.Abp.SettingManagement.EntityFrameworkCore $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo.Abp.SettingManagement.MongoDB.csproj b/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo.Abp.SettingManagement.MongoDB.csproj index 84c98c6981..8b19a90528 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo.Abp.SettingManagement.MongoDB.csproj +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.MongoDB/Volo.Abp.SettingManagement.MongoDB.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.SettingManagement.MongoDB Volo.Abp.SettingManagement.MongoDB $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Volo.Abp.SettingManagement.Web.csproj b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Volo.Abp.SettingManagement.Web.csproj index fa57f448ac..15b51231db 100644 --- a/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Volo.Abp.SettingManagement.Web.csproj +++ b/modules/setting-management/src/Volo.Abp.SettingManagement.Web/Volo.Abp.SettingManagement.Web.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Library true $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -21,7 +21,7 @@ - + diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.EntityFrameworkCore.Tests/Volo.Abp.SettingManagement.EntityFrameworkCore.Tests.csproj b/modules/setting-management/test/Volo.Abp.SettingManagement.EntityFrameworkCore.Tests/Volo.Abp.SettingManagement.EntityFrameworkCore.Tests.csproj index b60b661a57..1c855e63c8 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.EntityFrameworkCore.Tests/Volo.Abp.SettingManagement.EntityFrameworkCore.Tests.csproj +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.EntityFrameworkCore.Tests/Volo.Abp.SettingManagement.EntityFrameworkCore.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.SettingManagement.EntityFrameworkCore.Tests Volo.Abp.SettingManagement.EntityFrameworkCore.Tests true @@ -10,7 +10,7 @@ false - + @@ -20,5 +20,5 @@ - + diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo.Abp.SettingManagement.MongoDB.Tests.csproj b/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo.Abp.SettingManagement.MongoDB.Tests.csproj index 5c68ed3b08..b500136b68 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo.Abp.SettingManagement.MongoDB.Tests.csproj +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.MongoDB.Tests/Volo.Abp.SettingManagement.MongoDB.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.SettingManagement.MongoDB.Tests Volo.Abp.SettingManagement.MongoDB.Tests true @@ -10,7 +10,7 @@ false - + @@ -20,5 +20,5 @@ - + diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo.Abp.SettingManagement.TestBase.csproj b/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo.Abp.SettingManagement.TestBase.csproj index 6b2d84a3f3..f05bd661be 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo.Abp.SettingManagement.TestBase.csproj +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.TestBase/Volo.Abp.SettingManagement.TestBase.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.SettingManagement.TestBase Volo.Abp.SettingManagement.TestBase true diff --git a/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo.Abp.SettingManagement.Tests.csproj b/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo.Abp.SettingManagement.Tests.csproj index 03fc9d8a4a..4fd0be4d20 100644 --- a/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo.Abp.SettingManagement.Tests.csproj +++ b/modules/setting-management/test/Volo.Abp.SettingManagement.Tests/Volo.Abp.SettingManagement.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.SettingManagement.Tests Volo.Abp.SettingManagement.Tests true diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo.Abp.TenantManagement.Application.Contracts.csproj b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo.Abp.TenantManagement.Application.Contracts.csproj index 41620fcc1d..d8fc56ad84 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo.Abp.TenantManagement.Application.Contracts.csproj +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application.Contracts/Volo.Abp.TenantManagement.Application.Contracts.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.TenantManagement.Application.Contracts Volo.Abp.TenantManagement.Application.Contracts $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -13,7 +13,7 @@ false - + diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo.Abp.TenantManagement.Application.csproj b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo.Abp.TenantManagement.Application.csproj index 2e8bff8d48..347394c65d 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo.Abp.TenantManagement.Application.csproj +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Application/Volo.Abp.TenantManagement.Application.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.TenantManagement.Application Volo.Abp.TenantManagement.Application $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Volo.Abp.TenantManagement.Blazor.csproj b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Volo.Abp.TenantManagement.Blazor.csproj index 31e37e02a7..99ab7093de 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Volo.Abp.TenantManagement.Blazor.csproj +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Blazor/Volo.Abp.TenantManagement.Blazor.csproj @@ -4,7 +4,7 @@ - netstandard2.1 + net5.0 3.0 @@ -16,7 +16,7 @@ - + diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo.Abp.TenantManagement.Domain.Shared.csproj b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo.Abp.TenantManagement.Domain.Shared.csproj index 57f073b9ad..234aa1f5a2 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo.Abp.TenantManagement.Domain.Shared.csproj +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain.Shared/Volo.Abp.TenantManagement.Domain.Shared.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.TenantManagement.Domain.Shared Volo.Abp.TenantManagement.Domain.Shared $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -25,7 +25,7 @@ - + diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo.Abp.TenantManagement.Domain.csproj b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo.Abp.TenantManagement.Domain.csproj index dc168af444..b28f967166 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo.Abp.TenantManagement.Domain.csproj +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Domain/Volo.Abp.TenantManagement.Domain.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.TenantManagement.Domain Volo.Abp.TenantManagement.Domain $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo.Abp.TenantManagement.EntityFrameworkCore.csproj b/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo.Abp.TenantManagement.EntityFrameworkCore.csproj index 26ecad10b5..8da17ef327 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo.Abp.TenantManagement.EntityFrameworkCore.csproj +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.EntityFrameworkCore/Volo.Abp.TenantManagement.EntityFrameworkCore.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.TenantManagement.EntityFrameworkCore Volo.Abp.TenantManagement.EntityFrameworkCore $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -18,5 +18,5 @@ - + diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi.Client/Volo.Abp.TenantManagement.HttpApi.Client.csproj b/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi.Client/Volo.Abp.TenantManagement.HttpApi.Client.csproj index 263d7b4048..82478d2729 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi.Client/Volo.Abp.TenantManagement.HttpApi.Client.csproj +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi.Client/Volo.Abp.TenantManagement.HttpApi.Client.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.TenantManagement.HttpApi.Client Volo.Abp.TenantManagement.HttpApi.Client $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -18,5 +18,5 @@ - + diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi/Volo.Abp.TenantManagement.HttpApi.csproj b/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi/Volo.Abp.TenantManagement.HttpApi.csproj index 082be51571..f32151535e 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi/Volo.Abp.TenantManagement.HttpApi.csproj +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.HttpApi/Volo.Abp.TenantManagement.HttpApi.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.TenantManagement.HttpApi Volo.Abp.TenantManagement.HttpApi $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo.Abp.TenantManagement.MongoDB.csproj b/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo.Abp.TenantManagement.MongoDB.csproj index 870d87b6c4..f577c8463e 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo.Abp.TenantManagement.MongoDB.csproj +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.MongoDB/Volo.Abp.TenantManagement.MongoDB.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.TenantManagement.MongoDB Volo.Abp.TenantManagement.MongoDB $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; @@ -18,5 +18,5 @@ - + diff --git a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Volo.Abp.TenantManagement.Web.csproj b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Volo.Abp.TenantManagement.Web.csproj index a88df73911..59ce8c7dc1 100644 --- a/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Volo.Abp.TenantManagement.Web.csproj +++ b/modules/tenant-management/src/Volo.Abp.TenantManagement.Web/Volo.Abp.TenantManagement.Web.csproj @@ -4,7 +4,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.TenantManagement.Web Volo.Abp.TenantManagement.Web true @@ -35,7 +35,7 @@ - + diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.Application.Tests/Volo.Abp.TenantManagement.Application.Tests.csproj b/modules/tenant-management/test/Volo.Abp.TenantManagement.Application.Tests/Volo.Abp.TenantManagement.Application.Tests.csproj index 1183bde9bd..c9cb0a7b7c 100644 --- a/modules/tenant-management/test/Volo.Abp.TenantManagement.Application.Tests/Volo.Abp.TenantManagement.Application.Tests.csproj +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.Application.Tests/Volo.Abp.TenantManagement.Application.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.TenantManagement.Application.Tests Volo.Abp.TenantManagement.Application.Tests true diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo.Abp.TenantManagement.Domain.Tests.csproj b/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo.Abp.TenantManagement.Domain.Tests.csproj index e9d20712ea..cbf366b4ca 100644 --- a/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo.Abp.TenantManagement.Domain.Tests.csproj +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.Domain.Tests/Volo.Abp.TenantManagement.Domain.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests.csproj b/modules/tenant-management/test/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests.csproj index 445ee992fa..d2774e22ce 100644 --- a/modules/tenant-management/test/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests.csproj +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests/Volo.Abp.TenantManagement.EntityFrameworkCore.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.TenantManagement.EntityFrameworkCore.Tests Volo.Abp.TenantManagement.EntityFrameworkCore.Tests true @@ -19,7 +19,7 @@ - + diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo.Abp.TenantManagement.MongoDB.Tests.csproj b/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo.Abp.TenantManagement.MongoDB.Tests.csproj index 5306886296..135500d917 100644 --- a/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo.Abp.TenantManagement.MongoDB.Tests.csproj +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.MongoDB.Tests/Volo.Abp.TenantManagement.MongoDB.Tests.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.TenantManagement.MongoDB.Tests Volo.Abp.TenantManagement.MongoDB.Tests true diff --git a/modules/tenant-management/test/Volo.Abp.TenantManagement.TestBase/Volo.Abp.TenantManagement.TestBase.csproj b/modules/tenant-management/test/Volo.Abp.TenantManagement.TestBase/Volo.Abp.TenantManagement.TestBase.csproj index 6035cd7cce..d956ce2c05 100644 --- a/modules/tenant-management/test/Volo.Abp.TenantManagement.TestBase/Volo.Abp.TenantManagement.TestBase.csproj +++ b/modules/tenant-management/test/Volo.Abp.TenantManagement.TestBase/Volo.Abp.TenantManagement.TestBase.csproj @@ -1,7 +1,7 @@ - netcoreapp3.1 + net5.0 Volo.Abp.TenantManagement.TestBase Volo.Abp.TenantManagement.TestBase true diff --git a/modules/users/src/Volo.Abp.Users.Abstractions/Volo.Abp.Users.Abstractions.csproj b/modules/users/src/Volo.Abp.Users.Abstractions/Volo.Abp.Users.Abstractions.csproj index 43907cd41d..d3c5bb9464 100644 --- a/modules/users/src/Volo.Abp.Users.Abstractions/Volo.Abp.Users.Abstractions.csproj +++ b/modules/users/src/Volo.Abp.Users.Abstractions/Volo.Abp.Users.Abstractions.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Users.Abstractions Volo.Abp.Users.Abstractions $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/modules/users/src/Volo.Abp.Users.Domain.Shared/Volo.Abp.Users.Domain.Shared.csproj b/modules/users/src/Volo.Abp.Users.Domain.Shared/Volo.Abp.Users.Domain.Shared.csproj index 30a5701451..eb71fc98d8 100644 --- a/modules/users/src/Volo.Abp.Users.Domain.Shared/Volo.Abp.Users.Domain.Shared.csproj +++ b/modules/users/src/Volo.Abp.Users.Domain.Shared/Volo.Abp.Users.Domain.Shared.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Users.Domain.Shared Volo.Abp.Users.Domain.Shared $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/modules/users/src/Volo.Abp.Users.Domain/Volo.Abp.Users.Domain.csproj b/modules/users/src/Volo.Abp.Users.Domain/Volo.Abp.Users.Domain.csproj index fadbff5be4..21268aeb9d 100644 --- a/modules/users/src/Volo.Abp.Users.Domain/Volo.Abp.Users.Domain.csproj +++ b/modules/users/src/Volo.Abp.Users.Domain/Volo.Abp.Users.Domain.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Users.Domain Volo.Abp.Users.Domain $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/modules/users/src/Volo.Abp.Users.EntityFrameworkCore/Volo.Abp.Users.EntityFrameworkCore.csproj b/modules/users/src/Volo.Abp.Users.EntityFrameworkCore/Volo.Abp.Users.EntityFrameworkCore.csproj index 666cc83f09..13636723e6 100644 --- a/modules/users/src/Volo.Abp.Users.EntityFrameworkCore/Volo.Abp.Users.EntityFrameworkCore.csproj +++ b/modules/users/src/Volo.Abp.Users.EntityFrameworkCore/Volo.Abp.Users.EntityFrameworkCore.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Users.EntityFrameworkCore Volo.Abp.Users.EntityFrameworkCore $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/modules/users/src/Volo.Abp.Users.MongoDB/Volo.Abp.Users.MongoDB.csproj b/modules/users/src/Volo.Abp.Users.MongoDB/Volo.Abp.Users.MongoDB.csproj index 4efc907924..7d73ae5e31 100644 --- a/modules/users/src/Volo.Abp.Users.MongoDB/Volo.Abp.Users.MongoDB.csproj +++ b/modules/users/src/Volo.Abp.Users.MongoDB/Volo.Abp.Users.MongoDB.csproj @@ -4,7 +4,7 @@ - netstandard2.0 + net5.0 Volo.Abp.Users.MongoDB Volo.Abp.Users.MongoDB $(AssetTargetFallback);portable-net45+win8+wp8+wpa81; diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/Volo.Abp.VirtualFileExplorer.DemoApp.csproj b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/Volo.Abp.VirtualFileExplorer.DemoApp.csproj index fcf92ef6b8..5cc60899ce 100644 --- a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/Volo.Abp.VirtualFileExplorer.DemoApp.csproj +++ b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/Volo.Abp.VirtualFileExplorer.DemoApp.csproj @@ -1,7 +1,7 @@  - netcoreapp3.1 + net5.0 aspnet-Volo.Abp.VirtualFileExplorer.DemoApp-234AF9E1-C3E0-4F8F-BD7D-840627CC8E46 diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json index d92848c918..3eb6786a5c 100644 --- a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json +++ b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/package.json @@ -3,7 +3,7 @@ "version": "1.0.0", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "^2.7.0", - "@abp/virtual-file-explorer": "^2.7.0" + "@abp/aspnetcore.mvc.ui.theme.basic": "^3.2.0", + "@abp/virtual-file-explorer": "^3.2.0" } } diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/css/all.css b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/css/all.css index 8ebd25ff0c..340c7c1169 100644 --- a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/css/all.css +++ b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/css/all.css @@ -1,5 +1,5 @@ /*! - * Font Awesome Free 5.13.0 by @fontawesome - https://fontawesome.com + * Font Awesome Free 5.15.0 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, @@ -216,9 +216,6 @@ readers do not read off random characters that represent icons */ .fa-adn:before { content: "\f170"; } -.fa-adobe:before { - content: "\f778"; } - .fa-adversal:before { content: "\f36a"; } @@ -441,6 +438,12 @@ readers do not read off random characters that represent icons */ .fa-bacon:before { content: "\f7e5"; } +.fa-bacteria:before { + content: "\e059"; } + +.fa-bacterium:before { + content: "\e05a"; } + .fa-bahai:before { content: "\f666"; } @@ -631,7 +634,7 @@ readers do not read off random characters that represent icons */ content: "\f49e"; } .fa-box-tissue:before { - content: "\f95b"; } + content: "\e05b"; } .fa-boxes:before { content: "\f468"; } @@ -1002,6 +1005,9 @@ readers do not read off random characters that represent icons */ .fa-cloud-upload-alt:before { content: "\f382"; } +.fa-cloudflare:before { + content: "\e07d"; } + .fa-cloudscale:before { content: "\f383"; } @@ -1207,7 +1213,7 @@ readers do not read off random characters that represent icons */ content: "\f6ca"; } .fa-dailymotion:before { - content: "\f952"; } + content: "\e052"; } .fa-dashcube:before { content: "\f210"; } @@ -1218,6 +1224,9 @@ readers do not read off random characters that represent icons */ .fa-deaf:before { content: "\f2a4"; } +.fa-deezer:before { + content: "\e077"; } + .fa-delicious:before { content: "\f1a5"; } @@ -1401,6 +1410,9 @@ readers do not read off random characters that represent icons */ .fa-edge:before { content: "\f282"; } +.fa-edge-legacy:before { + content: "\e078"; } + .fa-edit:before { content: "\f044"; } @@ -1531,7 +1543,7 @@ readers do not read off random characters that represent icons */ content: "\f050"; } .fa-faucet:before { - content: "\f905"; } + content: "\e005"; } .fa-fax:before { content: "\f1ac"; } @@ -1654,7 +1666,7 @@ readers do not read off random characters that represent icons */ content: "\f269"; } .fa-firefox-browser:before { - content: "\f907"; } + content: "\e007"; } .fa-first-aid:before { content: "\f479"; } @@ -1893,6 +1905,9 @@ readers do not read off random characters that represent icons */ .fa-google-drive:before { content: "\f3aa"; } +.fa-google-pay:before { + content: "\e079"; } + .fa-google-play:before { content: "\f3ab"; } @@ -1986,6 +2001,9 @@ readers do not read off random characters that represent icons */ .fa-grunt:before { content: "\f3ad"; } +.fa-guilded:before { + content: "\e07e"; } + .fa-guitar:before { content: "\f7a6"; } @@ -2020,7 +2038,7 @@ readers do not read off random characters that represent icons */ content: "\f4be"; } .fa-hand-holding-medical:before { - content: "\f95c"; } + content: "\e05c"; } .fa-hand-holding-usd:before { content: "\f4c0"; } @@ -2062,7 +2080,7 @@ readers do not read off random characters that represent icons */ content: "\f257"; } .fa-hand-sparkles:before { - content: "\f95d"; } + content: "\e05d"; } .fa-hand-spock:before { content: "\f259"; } @@ -2074,16 +2092,16 @@ readers do not read off random characters that represent icons */ content: "\f4c4"; } .fa-hands-wash:before { - content: "\f95e"; } + content: "\e05e"; } .fa-handshake:before { content: "\f2b5"; } .fa-handshake-alt-slash:before { - content: "\f95f"; } + content: "\e05f"; } .fa-handshake-slash:before { - content: "\f960"; } + content: "\e060"; } .fa-hanukiah:before { content: "\f6e6"; } @@ -2107,16 +2125,16 @@ readers do not read off random characters that represent icons */ content: "\f0a0"; } .fa-head-side-cough:before { - content: "\f961"; } + content: "\e061"; } .fa-head-side-cough-slash:before { - content: "\f962"; } + content: "\e062"; } .fa-head-side-mask:before { - content: "\f963"; } + content: "\e063"; } .fa-head-side-virus:before { - content: "\f964"; } + content: "\e064"; } .fa-heading:before { content: "\f1dc"; } @@ -2160,6 +2178,9 @@ readers do not read off random characters that represent icons */ .fa-history:before { content: "\f1da"; } +.fa-hive:before { + content: "\e07f"; } + .fa-hockey-puck:before { content: "\f453"; } @@ -2221,7 +2242,7 @@ readers do not read off random characters that represent icons */ content: "\f6f1"; } .fa-house-user:before { - content: "\f965"; } + content: "\e065"; } .fa-houzz:before { content: "\f27c"; } @@ -2257,7 +2278,7 @@ readers do not read off random characters that represent icons */ content: "\f47f"; } .fa-ideal:before { - content: "\f913"; } + content: "\e013"; } .fa-igloo:before { content: "\f7ae"; } @@ -2289,11 +2310,17 @@ readers do not read off random characters that represent icons */ .fa-info-circle:before { content: "\f05a"; } +.fa-innosoft:before { + content: "\e080"; } + .fa-instagram:before { content: "\f16d"; } .fa-instagram-square:before { - content: "\f955"; } + content: "\e055"; } + +.fa-instalod:before { + content: "\e081"; } .fa-intercom:before { content: "\f7af"; } @@ -2410,7 +2437,7 @@ readers do not read off random characters that represent icons */ content: "\f5fc"; } .fa-laptop-house:before { - content: "\f966"; } + content: "\e066"; } .fa-laptop-medical:before { content: "\f812"; } @@ -2533,7 +2560,7 @@ readers do not read off random characters that represent icons */ content: "\f604"; } .fa-lungs-virus:before { - content: "\f967"; } + content: "\e067"; } .fa-lyft:before { content: "\f3c3"; } @@ -2662,7 +2689,7 @@ readers do not read off random characters that represent icons */ content: "\f753"; } .fa-microblog:before { - content: "\f91a"; } + content: "\e01a"; } .fa-microchip:before { content: "\f2db"; } @@ -2704,7 +2731,7 @@ readers do not read off random characters that represent icons */ content: "\f289"; } .fa-mixer:before { - content: "\f956"; } + content: "\e056"; } .fa-mizuni:before { content: "\f3cc"; } @@ -2814,6 +2841,9 @@ readers do not read off random characters that represent icons */ .fa-object-ungroup:before { content: "\f248"; } +.fa-octopus-deploy:before { + content: "\e082"; } + .fa-odnoklassniki:before { content: "\f263"; } @@ -2944,7 +2974,7 @@ readers do not read off random characters that represent icons */ content: "\f704"; } .fa-people-arrows:before { - content: "\f968"; } + content: "\e068"; } .fa-people-carry:before { content: "\f4ce"; } @@ -2952,6 +2982,9 @@ readers do not read off random characters that represent icons */ .fa-pepper-hot:before { content: "\f816"; } +.fa-perbyte:before { + content: "\e083"; } + .fa-percent:before { content: "\f295"; } @@ -3010,7 +3043,7 @@ readers do not read off random characters that represent icons */ content: "\f1a7"; } .fa-pied-piper-square:before { - content: "\f91e"; } + content: "\e01e"; } .fa-piggy-bank:before { content: "\f4d3"; } @@ -3043,7 +3076,7 @@ readers do not read off random characters that represent icons */ content: "\f5b0"; } .fa-plane-slash:before { - content: "\f969"; } + content: "\e069"; } .fa-play:before { content: "\f04b"; } @@ -3121,10 +3154,10 @@ readers do not read off random characters that represent icons */ content: "\f542"; } .fa-pump-medical:before { - content: "\f96a"; } + content: "\e06a"; } .fa-pump-soap:before { - content: "\f96b"; } + content: "\e06b"; } .fa-pushed:before { content: "\f3e1"; } @@ -3315,6 +3348,9 @@ readers do not read off random characters that represent icons */ .fa-rupee-sign:before { content: "\f156"; } +.fa-rust:before { + content: "\e07a"; } + .fa-sad-cry:before { content: "\f5b3"; } @@ -3412,7 +3448,7 @@ readers do not read off random characters that represent icons */ content: "\f3ed"; } .fa-shield-virus:before { - content: "\f96c"; } + content: "\e06c"; } .fa-ship:before { content: "\f21a"; } @@ -3427,7 +3463,7 @@ readers do not read off random characters that represent icons */ content: "\f54b"; } .fa-shopify:before { - content: "\f957"; } + content: "\e057"; } .fa-shopping-bag:before { content: "\f290"; } @@ -3471,6 +3507,9 @@ readers do not read off random characters that represent icons */ .fa-simplybuilt:before { content: "\f215"; } +.fa-sink:before { + content: "\e06d"; } + .fa-sistrix:before { content: "\f3ee"; } @@ -3565,7 +3604,7 @@ readers do not read off random characters that represent icons */ content: "\f7d2"; } .fa-soap:before { - content: "\f96e"; } + content: "\e06e"; } .fa-socks:before { content: "\f696"; } @@ -3733,7 +3772,7 @@ readers do not read off random characters that represent icons */ content: "\f2f2"; } .fa-stopwatch-20:before { - content: "\f96f"; } + content: "\e06f"; } .fa-store:before { content: "\f54e"; } @@ -3742,10 +3781,10 @@ readers do not read off random characters that represent icons */ content: "\f54f"; } .fa-store-alt-slash:before { - content: "\f970"; } + content: "\e070"; } .fa-store-slash:before { - content: "\f971"; } + content: "\e071"; } .fa-strava:before { content: "\f428"; } @@ -3957,6 +3996,9 @@ readers do not read off random characters that represent icons */ .fa-ticket-alt:before { content: "\f3ff"; } +.fa-tiktok:before { + content: "\e07b"; } + .fa-times:before { content: "\f00d"; } @@ -3985,7 +4027,7 @@ readers do not read off random characters that represent icons */ content: "\f71e"; } .fa-toilet-paper-slash:before { - content: "\f972"; } + content: "\e072"; } .fa-toolbox:before { content: "\f552"; } @@ -4015,7 +4057,7 @@ readers do not read off random characters that represent icons */ content: "\f637"; } .fa-trailer:before { - content: "\f941"; } + content: "\e041"; } .fa-train:before { content: "\f238"; } @@ -4113,6 +4155,9 @@ readers do not read off random characters that represent icons */ .fa-umbrella-beach:before { content: "\f5ca"; } +.fa-uncharted:before { + content: "\e084"; } + .fa-underline:before { content: "\f0cd"; } @@ -4126,7 +4171,7 @@ readers do not read off random characters that represent icons */ content: "\f404"; } .fa-unity:before { - content: "\f949"; } + content: "\e049"; } .fa-universal-access:before { content: "\f29a"; } @@ -4143,6 +4188,9 @@ readers do not read off random characters that represent icons */ .fa-unlock-alt:before { content: "\f13e"; } +.fa-unsplash:before { + content: "\e07c"; } + .fa-untappd:before { content: "\f405"; } @@ -4233,6 +4281,9 @@ readers do not read off random characters that represent icons */ .fa-users-cog:before { content: "\f509"; } +.fa-users-slash:before { + content: "\e073"; } + .fa-usps:before { content: "\f7e1"; } @@ -4260,6 +4311,12 @@ readers do not read off random characters that represent icons */ .fa-venus-mars:before { content: "\f228"; } +.fa-vest:before { + content: "\e085"; } + +.fa-vest-patches:before { + content: "\e086"; } + .fa-viacoin:before { content: "\f237"; } @@ -4300,13 +4357,13 @@ readers do not read off random characters that represent icons */ content: "\f1ca"; } .fa-virus:before { - content: "\f974"; } + content: "\e074"; } .fa-virus-slash:before { - content: "\f975"; } + content: "\e075"; } .fa-viruses:before { - content: "\f976"; } + content: "\e076"; } .fa-vk:before { content: "\f189"; } @@ -4350,6 +4407,9 @@ readers do not read off random characters that represent icons */ .fa-warehouse:before { content: "\f494"; } +.fa-watchman-monitoring:before { + content: "\e087"; } + .fa-water:before { content: "\f773"; } @@ -4425,6 +4485,9 @@ readers do not read off random characters that represent icons */ .fa-wizards-of-the-coast:before { content: "\f730"; } +.fa-wodu:before { + content: "\e088"; } + .fa-wolf-pack-battalion:before { content: "\f514"; } diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/css/v4-shims.css b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/css/v4-shims.css index 1070fbe73e..1afddf9fb1 100644 --- a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/css/v4-shims.css +++ b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/css/v4-shims.css @@ -1,5 +1,5 @@ /*! - * Font Awesome Free 5.13.0 by @fontawesome - https://fontawesome.com + * Font Awesome Free 5.15.0 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.fa-glass:before { diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.eot b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.eot index a1bc094ab14d8c7d84d8c59aa511de9e69440d0a..7244443d5fe2c1f3de665bb176131da0a72f5553 100644 GIT binary patch delta 11465 zcmaKS37izwwSJvjdv#a!TD@=6J>5O~^xiNV+W<4jz6mI@4a|T8g9ze=Jt88gsL)7> zQDaQpHx%O-^yz36F(EvjdyF8_C~i?ilNjQg`Jd{6Nc{bOuV;)cTXoO5=X~e8 z_0Y}2laC7AlMX`ls@u67Gjih{d$y14X0ud^N^E~3583UX%`NQk?D-i*)DDWGeB)ck zj-#sJbu71HIWT2LeJXkD>;{U0Iapq}WaXmO8_O;_PEo?A6vdwGTy*j3!9j|~_DxtX zbar31?7x>AU!^GPr4$@L+_iL3hsU^nCDy%8O2m1Dvi!NPFvh)eQY!7Eq+J#=}na4lXL;7Vv4yQOU37z2Yi?cryEO{@?<1M;6!NDZQ{AbnH(msIUQX;J@CJ?q%|W7idj8NMl28>1U=LrfsI{Ow&x`Osev&^0o51vR`>cd0F|b@`Ccb@|^OF@}%;(@|g07^00D`a+gw6 zZc(mQu2MEA7bz>170PmDigJ$9t~4t(O0`m@R4M_*ulN+ZVp9Z#Q&@$_|ByeE3&-V8 znoZM}BCBH2HX1*{mtYz2*4c|A8ZtQQG*mPIZKyy{|;^yDA)V18!^4^HHksTu+ z8+HAt{i9=}FB#J^=FpfATSKi4tq+VXAN$bQug00j?Hn(SPmSNxCbdmy>u$TN?UVM= z?Ke&EO}OJ6;haqq9TOj#)H-SN-<@}X1#wdckY^VkItDhw_)zGx$n+vIa>lYqd zv}VzVi`y1&Ui|tJX32q$J30<@eAhX$^QEr3uI{eymiv~sEWcxgvSQPU`z}1$9qXRZ z{ZRMOm2EvWJ*!ujub#8|z(rLTwOzFKqGN0CS$Fc1*d>K`*E`m)S^xQ^?#(T!Et|ItY;E28-1SY@Z@j^J!{{6K-59!Y+>PBgezmQ2+XFXoHz#iHy`}4x z9k(31<*V(xb_^>X+Szn#>eh|BY6`pdX;*0{Z(DoYuG=2kJ$3iM?Q?#1^p1`@_uu)| zU7y^2`Q5kO{oF71{c`#*cl>hCuXg=v&%HD6-E{B1`{z9H-GkDD4G(rdxbML?AL@O$ z>EX*C{^60MkB)wH)1#j}HvO^t9((ukn#X$|e{WA>&%q~FJn_<#t|#x?+xryr)T*bx z|MkwN>zH>HXaPEBAl->cRuU zfu;k$I&kq)=uXnup-dm}+o_c%SAHRH0dH<6m!jYyU_Z%H|^j9AQ zJ~;n_qsLDDx#rJ1KNLPpeE7&;4u0(Vc=pGeKWY1<|M=|VFMoRXXXekVKHvQLhhGG~ z*#BkkR}(#7-Tw8|uRlC-{)v0OVZPaOGH~*ilW%{!_FME<+R=}pnY# zHFymA;chg!UMfOWQ;pP2baE+&oeRe@d54|ncrF}|#j%jf=Tc4wm&#>gVa}c#O0}Jz zLsj|jYJ$O<;FBCDI?Q*N9pahHuGU1NHSu$^(P%bkpMMVJ5o{K$Y5R{xdh7kzEYaFw zz?LSh=?jQ!i@t#C#d4~a8cuakE41&vfHFFrO7=Ow1OpT#^cWNw374by;3)%TqHL5C zUm=Ju5yvUXrqy^_ji{Kic%;ud^tv)U;&{MsH|W3r?cdCPS4I5WWS{DTmYH zfrA74q2=831MbO-te2Jlf(h>>!KA0pWZwvETK30)yl&TJ-*4f%L3?aXB{$EkLwBb|!tH%;(d zHK>s+&VGu^=`E`ZpkgVS<|Fxd+L>Olgamz6X1~kE8w_$f2o?T-*$HZhr)fT zgCQC4h-Os=hsW*o6v})-v&$~2lFcm{)kdFtiq#<-tzdTwoGgeI+1+U{iHZSrYq!~@ znrQRHXXn^tMG{B(pBZ`S`MMmX!NI|PLcxn*gW)h1rojc!2|chIehH7F4ms>5;8Z70 z!B11Zz(o>~ILABfsyz}e<@8KFgt6&QQ@k9D=%V>)ij$v@#rbd~oXwPSC5dE4Kn7c8 zf0AM`mqme<(!%LXUQhG6MsVix@k}<8PNDqraXk}+9QM%D)LAJO9qD}O^1oAOK9x?X z36*yY=Pi)0Ercb zdR9Z&Idlgc3jUX7RIm}&1tw~HkO8#rj%@#AO&{&P5>OT!WR{~V4X|Nr4U zyaC9Wv21X4NED_BW}5K4GXb?Uy}KX?As_}KM5`*x1!4rRz;mL=F+B5UJOJ~uI0yKw zha+MQ=0%R*(de_XBYxwcZ2%DgtoGIlFT-+-tEKu?yFCz>1c?Stx?Pk7fdlS2PAuJX z|Jn0%=79?g-~bXq(VrQNFlR)6GcQS2k%@pOLUKeBc|*i%i5SAA*<*P|pGkf0ej`a<_oXJ9 z78##W6pdmXcxQz(j1Adnv*v&Lc{uk#`79YeenCM~7 zU_W}>ekzLQ1s6NIWc0GQ8l9@XTvWSmqH|eG+MY!7iw0Q5)?@Muu3NC6)quZX4T9xB z%^XsYY68)(;!n0Nz&e;m*96qCy(S3r!60RPc0HcLxa{Aq-GIZDd|tX)H{{SiFml^{ z_q})O)P@cFH*6@iMW=E#ETrnG8M@_jI&?c$raOpCF0Y^P8Fg0{05o|?dqL$DTnS+w zA5?Xuqj+8SKDZuro7Ms&AeBdRgg!-w4kh~ox7kFAqk$QiMFZsHq{8R4nx`ZqBdP>N zh^wFJx&+h04Ph4OJv4)t()yw!DZQVFYq=L>MKz#Q_;_I$2%@h-t{ooChB3kb z-T}x$yn_YTHHbr(^jcc)8Pp?Bpcp(o2fY|?VgR4C^JNZnjJi>a#mmr5^5Hrf-x{7} z2ObBnE#uC4=f*i;Z1wrs;H<1kS*xKJ3f0w_Tr@4YYszvnMzjS*XSk_+_7)rfZ$J0} zI+b4_BneU(3PDyhWk>Um)<2O+<}+x4+z>y<( z`hma;n7p9t2vBa+k^A9ZDv5=XpVPfmUgez*-HtZ{TLOPs-IWBnIL#(mU}J8`r-6tg88F!bOkfme;D{13SxnU-LPl zTTYBq9H(Oy$LTVszoG&d>SS;&V=uiCB6BoiEd_#L93vOK1<_kLONOgtgdYJ|OVbQZ z94y;GSQ?Xa))6q$WT!}gSxRU^ma-B}Ca?e;F9?L0K)dZSay3DlqS)jGHd(eQ3vCK7 zagtn#lEo@{giU5RffbcIYzkB0L`IUGScUE7cc67Pjt406i#gIjh!K^idaQ1)Bs0BT z^ssaTKm*}C5~<#-YZpT{R|C}O_qEeFm|`2R-^j)&A`U9s#+8P~igHqk>@LTp^V4(bI;wteWM`Y z+Ec)$+x8Ef_yg*?ofxdavdp|6=xC%OU2S6omWc>LkRfRG2OcNAbKUNcff(^McvN%! z=pwz~qGZZ-TFoa?Q&F2DaXx}UNFL)541#`?z7sKJ$*DRyjEZzcNEcF04EiGRFut7* zIh{jc5WaF+wWm{gFgxQF z%dD!$J#kzhGU{9e0zW!x6E(cpo3IzVY?k5`wk!mSdu<6@#EwwXRgRd{?)E{TVP-A6 z_mu5_c#EP(y6K1|9UoGCwRpr^7ODxE+;HW5BB+)!=lppf)rG>fP7$gru`1+HiXoq4 zZ{D|`o93WA6lE(*>5-#K>+T*+B8_glg+Lw=I=lfyZY9dVK33$Qm1a07bKmKMyJ;E7 zzyg^SSh#}#&9P+Q?P8Il_D+s`1i>m~8&0o9=5&h6qszjCaZtE8JzCB*j2hKY+z<^B zuXpb~(HG@uG^L=i{|;>iUy9@@TbeG#mS-(i8-|<5=5Ml0y&292)pm0k0@ zAU*Ktyno)zhh0Y1EQS-{{D9i~T>4ILgc^JSy=H&OFea!G6q4|Hq%caB1%ZhkI~6xf zaW29cK-Z6Y63=56tA{X)(-F<-!4Vo9J6DRysyi@B?M91_PEO*?Y*OMT82q^Y2&rBv z*iFmL#D@6M$j>8|3r#k$g*S>^*}xk`nCh%FpTrVB9m$X$1lgMvHydUxEF1T+(nl=j z0<1?l&%pWb-`h5ot|%Zmqtoed87h2;s-m(~Gul%MBeJAU<;3|op7nQ#r*(LiW==CR zc^$H0Fpsci=!%Xj%TKTHGbypu&uScASyxv%tZ8Ol{qpHcm(J)KsF*r@_|)OwG}mW_ z4WE>*Z@#4h%MIR|flsOefvNzs3?*{)h^CpbR4O*BaYS```0&97yw_=ww|9kr`dz*!aiZ>N%U1&#;OG0#rewR<+lO_-!@xw{+&B6_6E{cnKFC!6G z@ks9ldxu{=nx{un=NGTq60@Pi^4L+21o5wqMu`=Fvn4`8-r~_Mo`NE^Ul#DOY-N3O zRe8CcCNyuihb)z5cP)l%41|`1B2lD-Dik-rY+QMn0Rspc8fq&;IkVZq2}HEn5|LC* zWLD3ZfgZxJ_yd?cs;Qwm6tUVOEQ=nRNOB-Kew23_jUi0B!EW`pPw}g=(lnEiF}B=$ z_12N5LWrtFIpq*>AiChu)aa~9PFJlncs~av8KIel13bs|m?U3$EbXYQZ||z*rN+x2 zx%~3kx%$xqpPb(jt!VFp2QfySFgrKGZ;AMwUF~C1Cb@a$?8~v8H$QOGs~1?i+NYzs zAfd+$_V1m!yOQws>8c8CLVR78H&5_EEjhl+P?kJ_9wEVi?7~U&a`Gh zDt>*ZYcF?KC*%3CGsX^Qy0ZBQzkBa>_eic_J=H`lrS74gruO5KLj4*7k5v#urA$PM zPwY!_v1A4*sN(T`a~Yh1WO3}XLE?-RyPn;I_G9inBUp~x@eo{faq(Zz`oUlHK6j-s zqJa_UnUL6f_j6j4t)H5X1lRf0MbvtvxHeLosT+zD{y7O8#ohlrwRgvHCuo>OL z7zBw9ob@(rdIfbWbtiQ%^%y=Gn)`eNxrIm=xj4+AIdQ7G6VTBSE}k?#IzsVWJUdjW zGh-#{!jCQ?fECyRWfl$ds;+bTpC3x-0%5Y#Q9wA7MYSybWwLsNk8dc$xG z+o7oA&B)KDkWN9BaKu%I-Yx9J1Mi#CnaD^S3AQee*Nb!mntJd!%N&sLv?d`j*5j^n zAt7|9Cp$6ciF-Y94>&?jZ#)+(z&%!umUzJ^ptAX_wg3lC5S=!T7FmNNsRHM-RLV{e z4tii5=L`E#qZxz1a-NV^&x(dtHq3Elm0XnLqMv%)BRu}S9{jNa#>+IAolY}8h9}wD zn#8Bb#yp-_RzG`VF^|_X-|TRhF}v6(=$;;E-U1%kWHEt}*o@N9HNgxn*&IUJ)_PGZ zs+r%YC`Ry0$XI~eXfheWEpkE?a)OF9-7HCFgKOS(7vKu&+s?oVxd6D=IRgF%aixl? zJPGMw3a!`~kQe(gn@j0nza$-WVxX@#oNnDz;(5s0pM6GImTU=q#!BiTf(aKUMmvsl z0u-NJG)YRqJ`XcyQL%ropfNAySn*Mh$5}ajO?kP)H*t!{3=`97aTp^`p5${xqHCsC zo>;hbYyZ})62SP=>sHNbb?pas1v}e)_A@Cf%DjF>;bpN|H^t@N9H*M%K1Sl0#+vM? zQQ4YCCcsIIFK$w~oOj@hIUDB8X~|X948yr5vcYUO_HDPpePwX2HY|%OMzr-=jI9*A zQF|>5G2*M#zR5zBn|B8+ELZC$Ok)E}Jaz4J&bw5WF!b+B=HN?la^h{>5SaHUp#}m#3a-X>@ zN+p@r#0iiOaTqYooWe3J%`j~B@Mz5IA)un-@*a0(eA*~&@dVh;6JmDBGOztG0Y*5a zGE_v7Vd#L>$YIosZ54lmHsc&P+!vk*Z}6;_@>3PssTruMhy(NL5XOLr7Mcm3>iMG~ zI=#VD=dEn;qPf5M_c!0XEL}$%!=n;``Pa+`c(9?;TkCB=d)v2oCM;F>snlX>8+Ds@ zXfd2)Mx8?|f!01AL*6t1T6_tl4g8ORhPHSKv{+0o1*xO_F`Drk(G9V*wr2^Fol9Aa z5KIQ`{UtCa;s{zy7*@LGOGqvnqZnZm4xJFFk79dzA;u1@HnIae0wOUa-W5aN!Vc66 zdLFe*>*$18xFPgxC!9xuqUP>`g|?~;L*!owjM*oXP?ZO$Im=;C>VD(>~G5K3;QQ2-T!6 z+Shg=Ota9P)JpA+D`8kAEf&>(Tv#ms8xH;bx(pGFh+QS*u_G|z(5vemN73K9!HhZSFJ>nC> z(UzKIFmpkI(6pfM6e06-nhOgfj!J2N-vA-VYL2Vm0*frm=NWBno$c+*qM5c#rmb)D zRp4iA6Hu3LMlJr)X{WWPH$ucp)P!A)#PX=aLs3Oa`*I_cDM*f?^`VnG(85LJzXs|H zrnXvO)|CgFYa)Vpp22D|N*wXT5nJbwzO_gWvrA$ifx#qk@y>v(h&H3>bSdWX)gY{H z1E)z)ByNjtWnB^-YN;*9+Za`o!ZQ_V8<|WKtO`1;<$-`xH5+L9e8poiFqK#b8&qbt z%P-5K8NW?%A*T?}_zA2ZFIgqCLls1_l@5)lD;I}uDA4f~x{f4aOb$*`c-O#5XV9VY zyo1B%k_CJ&mrF6V)d0J)uWl2Z#}s(nYop4CAPu^`NNG0mStp-W5DuX8)C0vBB5K?g z%f({3Ctshju4n4Xl}$6M+Gn*@#mnm24(Qk8&99S7XH2^ULHCFXZeDX$dlmjyj#E92 zC_6%(!6HElzn@`sc%g?CX|c2+5Q$ZT7TOA7ar89k+`heY!FX-bR)|$45!;N!#m`Ke z5XzL5nPs;H=p&L`UyWYP#S4nTY?ZQ8A!YIh}u8W&Mp@hK5|hmu;~ zZuo#mf_B^Ou(8kkGx#G-7`pH8cR{C!s-i7;0HzSTs_l6I=CVm#e&=h-gAlc#>CpX` z6W0fl9Zo){je8K<%~mpP_O|J)GG(}AWlx4|+Aki2Hk*yN)~3qSHeP0Mn@bcA^B!#g z?*dd`_#yZ`Pp3(9--#!1A=z<{Cuv8^8&MJRU`V59`{btpcRf6+y>5;lQHJV>CY%VO zoi?vWi~kzR8ILO%(x&_x7q%p>^M=MlzxQtk`abMKj&-yXdDsZzwt9?i8mUo; z-zFggy#>wbPU?2*Zt6bj5%ehdT@_+b1$4;P3^`V(AMAV_;Z%&(j{O%T(bCzThYY&E zw&&p-+B7hz?Rp+flc`#J<$0)}c>||?{XC2#wVSnJFQAs!+O+N$pq%Cmytd;77`B8^ zb`;=+C_p{fq99@!QtWg|*Yp$48LsT`={O41S*h`v) zLz!`CYjgc@tq`8lB5(^ip=HYY2i6aK#YO5)oyFG zH#)LqPW6bI{?$_#T@Sr(>%iMqcQsUv9BFkA^hdq7p4(D0;=-w`t6}RRe7CAMaq|Jj zYg^tbN#ohKpa~u7Ki-0RVky%q--fZo;m~^ChI;U8cfSo&Dk#(752!`G81vIemb;NE z@1(AyiqsR-d&qd$p$;a%a#*Q3-hq_X{to1g2{b7fjjJ)v58AeOU<64!wL|Z~6&|Dq z5jR9)I&q~_gvn9_%%R3>OWwt?o1=XXzl(Q;r1tAS!eUeu=X-FmjNA(qLbiS(%6zzX z+j~$h~*H+NVVhs3rQ|2?BgwPVp)_u0zqJ_Wb)0hn#l&{gQ(Ek3bz#zS`s?FbRCxomj*fId}xz z7VH++zaYRxpAXQ8#kB8_K(J)+;xWyC6ma((H{_4w!iEfWVppvRBdS{{k+8>D0eKEFT{|Z4_c^q}|PCC^xXroNmRl|Jl)F zKwbei0~iMM3a#%iP&v897YXZ^2rHLff-A+|zoCr!b{d*4j7n(TYq5x}vUd4=pJuaW~A&66bsu4C!a z%a^V(EbZuATHC#}bJ3E^q|Tn6&hDkPs~26ytXX&QT5j#~3)l8sD6Cs`@#^kH7k5cZ zx_j1jEbCshW+~sfZh3dd(hjC;`6Ww*<*QcpT->v4EoLrWyQsUTL+M$vwrBOai)%ZU zuI}!+j9&Dy0MHrM(^YnODbT(qioWzVYRYkSr#U)9O1@99|A zH}3B+$<()-B`W|KH&jFX<`m5Y=8Ska@X$*%{2o)LRKgSf^cK{6pAWpFr)Ph#`~Ltu C%0|ur delta 7761 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 - -Created by FontForge 20190801 at Mon Mar 23 10:45:51 2020 +Created by FontForge 20200314 at Mon Sep 28 13:16:03 2020 By Robert Madole Copyright (c) Font Awesome @@ -23,18 +19,225 @@ Copyright (c) Font Awesome bbox="-0.200195 -66.9505 641.5 448.3" underline-thickness="25" underline-position="-50" - unicode-range="U+0020-F957" + unicode-range="U+0020-F8E8" /> + + + + + + + + + + + + + + + + + + + + + + + + + +d="M400 416c26.4922 0 48 -21.5078 48 -48v-352c0 -26.4922 -21.5078 -48 -48 -48h-137.25v152.31h57.7803l11 71.6904h-68.7803v46.5498c0 19.6104 9.61035 38.7305 40.4199 38.7305h31.2705v61s-28.3809 4.83984 -55.5205 4.83984 +c-56.6699 0 -93.6699 -34.3301 -93.6699 -96.4805v-54.6396h-63v-71.6904h63v-152.31h-137.25c-26.4922 0 -48 21.5078 -48 48v352c0 26.4922 21.5078 48 48 48h352z" /> +d="M22.2002 416l466.8 -0.200195c0.954102 -0.0136719 1.875 -0.0800781 2.7998 -0.200195c7.58789 -1.25 13.3994 -7.83203 13.3994 -15.7715c0 -0.860352 -0.0683594 -1.7041 -0.199219 -2.52832l-67.9004 -416.8c-1.24902 -7.58887 -7.84277 -13.4014 -15.7832 -13.4014 +c-0.0722656 0 -0.144531 0 -0.216797 0.000976562h-325.699c-10.7129 0.0869141 -19.5967 7.94727 -21.3008 18.2002l-67.8994 412.101c-0.116211 0.924805 -0.182617 1.84668 -0.200195 2.7998c0.108398 8.7373 7.23242 15.8008 15.9951 15.8008 +c0.0683594 0 0.136719 0 0.205078 -0.000976562zM308.1 118.2l25.2002 147h-157.3l28.0996 -147h104z" /> +d="M420.55 146.07c-13.2461 0 -24 10.7539 -24 24s10.7539 24 24 24s24 -10.7539 24 -24s-10.7539 -24 -24 -24zM155.45 146.07c-13.2461 0 -24 10.7539 -24 24s10.7539 24 24 24s24 -10.7539 24 -24s-10.7539 -24 -24 -24zM429.15 290.55l47.9395 83 +c1.06738 1.59082 1.69043 3.50391 1.69043 5.5625c0 5.51855 -4.48047 10 -10 10c-3.93359 0 -7.32812 -2.25684 -8.95996 -5.5625v0l-48.54 -84.0693c-37.5742 16.8516 -79.2197 26.2266 -123.037 26.2266c-43.8164 0 -85.9492 -9.375 -123.523 -26.2266l-48.54 84.0693 +c-1.63184 3.30566 -5.03809 5.58203 -8.97168 5.58203c-5.51953 0 -10 -4.48145 -10 -10c0 -2.05859 0.634766 -3.99121 1.70215 -5.58203v0l47.9395 -83c-82.3193 -44.7695 -138.609 -128.1 -146.85 -226.55h576c-8.24023 98.4502 -64.54 181.78 -146.85 226.55z" /> - + @@ -355,7 +558,7 @@ c-22.3994 0 -34.0996 13.0996 -34.0996 35.2998h100.2c0.0996094 2.2998 0.299805 4. d="M496 192c0 -137 -111.2 -248 -248.4 -248c-113.8 0 -209.6 76.2998 -239 180.4l95.2002 -39.3008c6.40039 -32.0996 34.9004 -56.3994 68.9004 -56.3994c39.2002 0 71.8994 32.3994 70.2002 73.5l84.5 60.2002c52.0996 -1.30078 95.7998 40.8994 95.7998 93.5 c0 51.5996 -42 93.5 -93.7002 93.5s-93.7002 -42 -93.7002 -93.5v-1.2002l-59.2002 -85.7002c-15.5 0.900391 -30.6992 -3.40039 -43.5 -12.0996l-133.1 55c10.2002 127.699 117.1 228.1 247.6 228.1c137.2 0 248.4 -111 248.4 -248zM155.7 63.7002 c19.7998 -8.2002 42.5 1.09961 50.7998 21c8.2998 19.7998 -1.09961 42.5 -20.9004 50.7002l-31.5 13c12.2002 4.59961 26 4.7998 38.9004 -0.600586c13 -5.39941 23.0996 -15.5996 28.5 -28.5996s5.2998 -27.2998 -0.0996094 -40.2998 -c-11.2002 -26.8008 -42.1006 -39.6006 -69 -28.4004c-10.2119 4.26953 -22.3975 15.8281 -27.2002 25.7998zM329.5 193.6c-34.4004 0 -62.4004 28 -62.4004 62.3008c0 34.2998 28 62.2998 62.4004 62.2998s62.4004 -28 62.4004 -62.2998 +c-11.2002 -26.8008 -42.1006 -39.6006 -69 -28.4004c-11.9453 4.99414 -21.6055 14.1826 -27.2002 25.7998zM329.5 193.6c-34.4004 0 -62.4004 28 -62.4004 62.3008c0 34.2998 28 62.2998 62.4004 62.2998s62.4004 -28 62.4004 -62.2998 c0 -34.3008 -27.9004 -62.3008 -62.4004 -62.3008zM329.6 209.2c25.9004 0 46.9004 21 46.9004 46.7998c0 25.9004 -21 46.7998 -46.9004 46.7998c-25.8994 0 -46.8994 -21 -46.8994 -46.7998c0.0996094 -25.7998 21.0996 -46.7998 46.8994 -46.7998z" /> +d="M42.9004 207.68l99.6191 -48.6094c19.2002 -9.40039 16.2002 -37.5107 -4.5 -42.71l-107.52 -26.8105c-1.78223 -0.448242 -3.64746 -0.685547 -5.56738 -0.685547c-11.7246 0 -21.3848 8.89453 -22.6426 20.2861c-0.853516 7.44141 -1.29297 15.0078 -1.29297 22.6768 +c0 21.9561 3.65723 42.9111 10.293 62.6426c3.03906 9.02148 11.5723 15.5264 21.6133 15.5264c3.5791 0 6.98145 -0.84375 9.99707 -2.31641zM86.9004 -31.5703c-6.01172 4.1123 -9.9248 11.0195 -9.9248 18.8457c0 5.85742 2.21191 11.2021 5.84473 15.2441l74.21 82.4004 +c14.3096 15.8105 40.5098 5.2002 39.8096 -16.0996l-3.89941 -110.82c-0.414062 -12.21 -10.4365 -22.0088 -22.7461 -22.0088c-1.32129 0 -2.61523 0.112305 -3.87402 0.329102c-28.9365 4.90039 -56.1416 16.1621 -79.4199 32.1094zM232.24 78.3496 +c-11.2998 18.1104 6.2002 40.4102 26.5098 33.9102l105.42 -34.2598c9.14453 -3.04102 15.7305 -11.6855 15.7305 -21.8447c0 -3.46289 -0.767578 -6.74805 -2.14062 -9.69531c-12.5361 -26.3281 -30.4697 -49.2246 -52.71 -67.6104 +c-3.96191 -3.26465 -9.03809 -5.25781 -14.5674 -5.25781c-8.18555 0 -15.375 4.29785 -19.4326 10.7578zM380.57 210.58c1.21289 -2.79883 1.93359 -5.89941 1.93359 -9.1416c0 -10.4385 -6.96875 -19.2627 -16.5039 -22.0684l-106.64 -30.5098 +c-20.5 -5.90039 -37.1006 17.0098 -25.2002 34.71l62 91.9199c4.10742 6.08398 11.0635 10.0615 18.9502 10.0615c5.76172 0 11.0283 -2.1377 15.0498 -5.66211c21.5781 -19.0479 38.7783 -42.5518 50.4102 -69.3096zM62.1104 417.82 +c34.3301 16.3438 72.6104 26.9434 112.33 30.0996c0.610352 0.0498047 1.20703 0.078125 1.83008 0.078125c12.5127 0 22.6709 -10.1582 22.6709 -22.6699c0 -0.0693359 -0.000976562 -0.138672 -0.000976562 -0.208008v-208.34 +c0 -23.2998 -30.9102 -31.6006 -42.6104 -11.4004l-104.12 180.44c-1.92871 3.35059 -3.06738 7.24805 -3.06738 11.3887c0 9.07422 5.29883 16.9199 12.9678 20.6113z" /> +d="M528.91 269.18c28.8652 -26.2666 46.9404 -64.1113 46.9404 -106.176c0 -0.0615234 -0.000976562 -0.12207 -0.000976562 -0.183594h0.0302734c-0.00195312 -79.4414 -64.5479 -143.928 -143.989 -143.928c-37.7363 0 -72.0996 14.5527 -97.7803 38.3477 +l-46.1104 -50.1699l-46.1396 50.1992c-25.6064 -23.4443 -59.8145 -37.7793 -97.2334 -37.7793c-79.4268 0 -143.911 64.4844 -143.911 143.911c0 41.8076 17.8662 79.4756 46.374 105.778l-47.0898 51.2402h104.66c52.2266 35.5498 115.938 56.3369 183.822 56.3369 +s130.95 -20.7871 183.178 -56.3369h104.34zM144.06 65.4297c53.751 0 97.3906 43.6396 97.3906 97.3906s-43.6396 97.3896 -97.3906 97.3896s-97.3896 -43.6387 -97.3896 -97.3896s43.6387 -97.3906 97.3896 -97.3906zM288 165.63c0 64.0801 46.6104 119.07 108.08 142.59 +c-33.2285 13.8467 -70.0527 21.4941 -108.272 21.4941c-38.2207 0 -74.6689 -7.64746 -107.897 -21.4941c61.4697 -23.5098 108.09 -78.5 108.09 -142.59zM431.88 65.4297c53.7568 0.00292969 97.4004 43.6475 97.4004 97.4053c0 53.7598 -43.6455 97.4053 -97.4053 97.4053 +c-53.7588 0 -97.4053 -43.6455 -97.4053 -97.4053c0 -53.7578 43.6436 -97.4023 97.4004 -97.4053h0.00976562zM144.06 213.88c0.0175781 0 0.0332031 -0.000976562 0.0507812 -0.000976562c28.1299 0 50.9717 -22.8242 51 -50.9492v-0.109375 +c0 -28.1807 -22.8799 -51.0605 -51.0605 -51.0605s-51.0596 22.8799 -51.0596 51.0605s22.8789 51.0596 51.0596 51.0596h0.00976562zM431.88 213.88c28.1807 0 51.0605 -22.8789 51.0605 -51.0596s-22.8799 -51.0605 -51.0605 -51.0605s-51.0596 22.8799 -51.0596 51.0605 +s22.8789 51.0596 51.0596 51.0596z" /> +d="M274.69 173.31l-108.69 -71.3096l71.3096 108.69zM256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM411.85 265.21c-2.88672 -1.20801 -4.9082 -4.0625 -4.9082 -7.38574c0 -1.08496 0.21582 -2.12012 0.608398 -3.06445v0 +c1.20215 -2.90039 4.06348 -4.93457 7.39648 -4.93457c1.08105 0 2.1123 0.214844 3.05371 0.604492l14.75 6.11035c2.90234 1.20117 4.93848 4.06348 4.93848 7.39746c0 1.08496 -0.216797 2.11914 -0.608398 3.0625v0c-1.2002 2.90527 -4.06348 4.94336 -7.39941 4.94336 +c-1.08008 0 -2.11035 -0.214844 -3.05078 -0.603516zM314.43 354c-0.396484 -0.949219 -0.625 -1.99219 -0.625 -3.08496c0 -3.33398 2.04395 -6.19336 4.94531 -7.39551v0c0.941406 -0.388672 1.97461 -0.613281 3.05566 -0.613281 +c3.33301 0 6.19238 2.04297 7.39453 4.94336l6.12988 14.7803c0.389648 0.941406 0.613281 1.97461 0.613281 3.05566c0 3.33301 -2.04297 6.19238 -4.94336 7.39453v0c-0.944336 0.392578 -1.98047 0.618164 -3.06641 0.618164 +c-3.32324 0 -6.17578 -2.03125 -7.38379 -4.91797zM256 388c-4.41504 0 -8 -3.58496 -8 -8v-16c0 -4.41504 3.58496 -8 8 -8v0c4.41504 0 8 3.58496 8 8v16c0 4.41504 -3.58496 8 -8 8v0zM181 373.08c-2.89941 -1.20215 -4.93262 -4.0625 -4.93262 -7.39551 +c0 -1.06934 0.210938 -2.09082 0.592773 -3.02441l6.12988 -14.7803c1.16504 -2.97754 4.05762 -5.07812 7.44531 -5.07812c4.41602 0 8 3.58496 8 8c0 1.13672 -0.237305 2.21875 -0.665039 3.19824l-6.11035 14.75c-1.20117 2.90234 -4.06348 4.93848 -7.39746 4.93848 +c-1.08496 0 -2.11914 -0.216797 -3.0625 -0.608398zM117.42 330.59c-1.44727 -1.44824 -2.35254 -3.44922 -2.35254 -5.65625c0 -2.19141 0.883789 -4.17773 2.3125 -5.62402l11.3105 -11.3096c1.44727 -1.44727 3.44922 -2.34277 5.65527 -2.34277 +c2.20703 0 4.20605 0.895508 5.6543 2.34277v0c1.43848 1.44629 2.32715 3.44238 2.32715 5.6416c0 2.19824 -0.888672 4.19141 -2.32715 5.63867l-11.2695 11.3096c-1.44824 1.44727 -3.4502 2.34277 -5.65625 2.34277c-2.20703 0 -4.20605 -0.895508 -5.6543 -2.34277v0z +M60 192c0 -4.41504 3.58496 -8 8 -8h16c4.41504 0 8 3.58496 8 8v0c0 4.41504 -3.58496 8 -8 8h-16c-4.41504 0 -8 -3.58496 -8 -8v0zM100.15 118.79c2.88672 1.20801 4.9082 4.0625 4.9082 7.38574c0 1.08496 -0.21582 2.12012 -0.608398 3.06445v0 +c-1.20215 2.90039 -4.06348 4.93457 -7.39648 4.93457c-1.08105 0 -2.1123 -0.214844 -3.05371 -0.604492l-14.75 -6.11035c-2.90234 -1.20117 -4.93848 -4.06348 -4.93848 -7.39746c0 -1.08496 0.216797 -2.11914 0.608398 -3.0625v0 +c1.2002 -2.90527 4.06348 -4.94336 7.39941 -4.94336c1.08008 0 2.11035 0.214844 3.05078 0.603516zM104.48 254.79c0.386719 0.939453 0.609375 1.93945 0.609375 3.0166c0 3.33203 -2.04102 6.19043 -4.93945 7.39355l-14.7803 6.12988 +c-0.941406 0.389648 -1.97461 0.613281 -3.05566 0.613281c-3.33301 0 -6.19238 -2.04297 -7.39453 -4.94336v0c-0.392578 -0.944336 -0.618164 -1.98047 -0.618164 -3.06641c0 -3.32324 2.03125 -6.17578 4.91797 -7.38379l14.7803 -6.12012 +c0.945312 -0.393555 1.9834 -0.619141 3.07129 -0.619141c3.34668 0 6.21582 2.05957 7.40918 4.97949v0zM197.57 30c0.427734 0.979492 0.672852 2.07129 0.672852 3.20801c0 4.41602 -3.58496 8 -8 8c-3.38867 0 -6.28809 -2.11035 -7.45312 -5.08789l-6.12988 -14.7803 +c-0.389648 -0.941406 -0.611328 -1.9834 -0.611328 -3.06543c0 -4.41699 3.58594 -8.00293 8.00293 -8.00293c3.33496 0 6.19727 2.04492 7.39844 4.94824zM264 4v16c0 4.41504 -3.58496 8 -8 8v0c-4.41504 0 -8 -3.58496 -8 -8v-16c0 -4.41504 3.58496 -8 8 -8v0 +c4.41504 0 8 3.58496 8 8zM331 10.9199c2.89941 1.20215 4.93262 4.0625 4.93262 7.39551c0 1.06934 -0.210938 2.09082 -0.592773 3.02441l-6.12988 14.7803c-1.20215 2.90039 -4.06348 4.93457 -7.39648 4.93457c-1.08105 0 -2.1123 -0.214844 -3.05371 -0.604492v0 +c-2.90039 -1.20215 -4.93457 -4.06348 -4.93457 -7.39648c0 -1.08105 0.214844 -2.1123 0.604492 -3.05371l6.11035 -14.75c1.20117 -2.90234 4.06348 -4.93848 7.39746 -4.93848c1.08496 0 2.11914 0.216797 3.0625 0.608398v0zM394.58 53.4102 +c1.44727 1.44824 2.35254 3.44922 2.35254 5.65625c0 2.19141 -0.883789 4.17773 -2.3125 5.62402l-11.3105 11.3096c-1.44727 1.44727 -3.44922 2.34277 -5.65527 2.34277c-2.20703 0 -4.20605 -0.895508 -5.6543 -2.34277v0 +c-1.43848 -1.44629 -2.32715 -3.44238 -2.32715 -5.6416c0 -2.19824 0.888672 -4.19141 2.32715 -5.63867l11.2695 -11.3096c1.44824 -1.44727 3.4502 -2.34277 5.65625 -2.34277c2.20703 0 4.20605 0.895508 5.6543 2.34277v0zM286.25 161.75l115.41 175.91 +l-175.91 -115.41l-115.41 -175.91zM437.08 117c0.392578 0.944336 0.618164 1.98047 0.618164 3.06641c0 3.32324 -2.03125 6.17578 -4.91797 7.38379l-14.7803 6.12012c-0.949219 0.396484 -1.99219 0.625 -3.08496 0.625c-3.33398 0 -6.19336 -2.04395 -7.39551 -4.94531 +v0c-0.388672 -0.941406 -0.613281 -1.97461 -0.613281 -3.05566c0 -3.33301 2.04297 -6.19238 4.94336 -7.39453l14.7803 -6.12988c0.941406 -0.389648 1.97461 -0.613281 3.05566 -0.613281c3.33301 0 6.19238 2.04297 7.39453 4.94336v0zM444 184c4.41504 0 8 3.58496 8 8 +v0c0 4.41504 -3.58496 8 -8 8h-16c-4.41504 0 -8 -3.58496 -8 -8v0c0 -4.41504 3.58496 -8 8 -8h16z" /> +c0.119141 -0.120117 0.119141 -0.120117 0.119141 -0.240234c3.54297 -13.2549 6.04102 -27.1152 7.32031 -41.1494v-0.120117l0.360352 -4.67969v-0.120117c0 -1.56055 0.120117 -3.12012 0.239258 -4.68066z" /> +c1.84961 -3.23242 3.49902 -6.64551 4.88965 -10.1396c-4.21973 4.65039 -40.0596 44.2002 -99.0596 -1c-26.6719 -19.334 -46.8008 -46.8369 -56.9697 -78.9199c-14.1406 -40.4004 -12.8398 -88.5801 20.0996 -136c12.2471 -18.1914 27.9951 -33.3955 46.6396 -45z +M463.49 70.6602c2.1748 -1.37305 3.60742 -3.80176 3.60742 -6.56152c0 -1.53418 -0.447266 -2.96484 -1.21777 -4.16895c-47.5703 -75.4297 -127.86 -108.87 -163 -108.87c-22.7002 0 -48.1299 6.95996 -71.7002 19.6104c-33 17.6699 -49.4893 38.7598 -56 47.6699 +c-46.3301 63.5303 -28.25 122.29 -13.3301 151.66c9.73145 19.1172 22.8193 35.9404 38.7607 50c-4.04688 -8.04102 -6.40625 -17.168 -6.52051 -26.75c0 -80.9404 79.8506 -144 171.521 -144c0.116211 0 0.310547 0.0693359 0.426758 0.0693359 +c24.3125 0 47.6045 4.40137 69.123 12.4502c6.98145 2.61816 13.8652 5.69824 20.4102 9.12012c1.11328 0.618164 2.41113 0.970703 3.77441 0.970703c1.52344 0 2.94531 -0.44043 4.14551 -1.2002z" /> +d="M455.93 424.8c9.41992 2.40039 15.0703 -10.25 6.99023 -15.6797c-98.2295 -65.9199 -120.439 -127.561 -126.229 -160.18c-33.5205 -188.881 -101.37 -119.32 -184.311 -226.65c25.7607 -14.8125 55.8076 -23.3984 87.6299 -23.4004 +c97.6504 0 177.09 79.4502 177.09 177.11c-0.00488281 45.0508 -16.9824 86.25 -44.8496 117.41c4.72754 9.75293 10.4238 18.9131 17 27.3994c36.3574 -37.3457 58.75 -88.3779 58.75 -144.564v-0.245117c0 -114.87 -93.1299 -208 -208 -208s-208 93.1201 -208 208 +s93.1299 208 208 208c36.7422 -0.000976562 71.4697 -9.77246 101.35 -26.6602c46.4404 38.9697 87.8809 60.6602 114.58 67.46zM125 41.5996c64.7695 140.881 125.64 231.641 191.63 293.75c-23.0674 11.3037 -49.1611 17.75 -76.5615 17.75h-0.0683594 +c-97.6504 0 -177.1 -79.4395 -177.1 -177.1c0.0234375 -53.8203 24.0684 -102.002 62.0996 -134.4z" /> - + +c-3.24219 0.279297 -6.17676 1.69629 -8.36914 3.84961c-1.91016 2.76074 -3.81055 5.63086 -3.81055 8.38086c0.0205078 5.62988 3.86035 12.1992 13.2002 20.5498c44.4795 42.3701 67.3203 97 67.4795 165c0.180664 61.4697 -21.5898 112.45 -64.8193 154.06 +c-10.4004 10.6406 -16 17.1201 -16 21.9004c0 2.75977 1.91992 5.50977 3.83008 7.41992c2.35938 1.7207 5.26562 2.76855 8.38965 2.83984c8.51953 0 21 -8.79004 35.8799 -25.6904z" /> - + +c-0.0341797 0.227539 -0.0527344 0.459961 -0.0527344 0.697266c0 2.30566 1.70117 4.21387 3.91309 4.55273c0.240234 0.0400391 -2.12988 0 22.25 0c8.78027 0.879883 11.6396 -6.03027 12.5498 -10.3701l35.7197 -140.83l33.1602 140.83 +c0.530273 3.21973 2.94043 11.0693 12.7998 10.2393h17.1602c2.16992 0.180664 11.1104 0.5 12.6807 -10.3691l33.4199 -142.631l36.8701 142.631c0.479492 2.17969 2.71973 11.3691 12.6797 10.3691h19.7197c0.850586 0.130859 6.15039 0.810547 5.25 -8.5791 +c-0.429688 -1.85059 3.41016 10.6592 -52.75 -169.9c-1.14941 -5.50977 -4.82031 -11.0898 -12.6797 -10.3701h-18.6904c-10.9395 -1.15039 -12.5098 9.66016 -12.6797 10.75l-33.1602 137.13l-32.7803 -136.99c-0.15918 -1.08984 -1.72949 -11.8994 -12.6797 -10.75 +h-18.2998v-0.00976562zM538.39 183.92c-5.87988 -0.00976562 -33.9199 0.299805 -57.3594 12.29c-4.59375 1.94531 -7.81934 6.49609 -7.81934 11.7949c0 0.0410156 0.00878906 0.0742188 0.00878906 0.115234v10.75c0 8.4502 6.2002 6.89941 8.83008 5.88965 +c10.04 -4.05957 16.4805 -7.13965 28.8105 -9.59961c36.6494 -7.53027 52.7695 2.2998 56.7197 4.47949c13.1504 7.81055 14.1895 25.6807 5.25 34.9502c-10.4805 8.79004 -15.4805 9.12012 -53.1299 21c-4.64062 1.29004 -43.7002 13.6104 -43.79 52.3604 +c-0.610352 28.2402 25.0498 56.1797 69.5195 55.9502c12.6699 0.00976562 46.4307 -4.13086 55.5703 -15.6201c1.34961 -2.08984 2.01953 -4.5498 1.91992 -7.04004v-10.1104c0 -4.43945 -1.62012 -6.66016 -4.87012 -6.66016 +c-7.70996 0.860352 -21.3896 11.1699 -49.1602 10.75c-6.88965 0.360352 -39.8896 -0.910156 -38.4092 -24.9697c-0.430664 -18.96 26.6094 -26.0703 29.6992 -26.8896c36.46 -10.9707 48.6504 -12.79 63.1201 -29.5801c17.1406 -22.25 7.90039 -48.2998 4.35059 -55.4404 +c-19.0801 -37.4902 -68.4199 -34.4395 -69.2607 -34.4199zM578.59 79.0596c-70.0303 -51.7197 -171.689 -79.25 -258.49 -79.25c-1.0498 -0.00683594 -2.10059 -0.00976562 -3.15234 -0.00976562c-120.699 0 -230.949 45.7383 -314.117 120.74 +c-6.53027 5.88965 -0.770508 13.96 7.16992 9.46973c93.1143 -53.2637 200.925 -83.7148 315.791 -83.7148c0.138672 0 0.950195 -0.405273 1.08887 -0.405273c85.4404 0.458984 167.381 18.2432 241.59 49.5508c11.7803 5 21.7705 -7.80078 10.1201 -16.3809z +M607.78 112.35c-8.95996 11.5205 -59.2803 5.38086 -81.8105 2.69043c-6.79004 -0.770508 -7.93945 5.12012 -1.79004 9.46973c40.0703 28.1699 105.88 20.1006 113.44 10.6299c7.5498 -9.46973 -2.0498 -75.4092 -39.5605 -106.909 +c-5.75977 -4.87012 -11.2695 -2.30078 -8.70996 4.09961c8.44043 21.25 27.3906 68.4902 18.4307 80.0195z" /> @@ -1446,10 +1644,11 @@ c0.5 12.4004 0.5 18.1006 0 24.1006c2.5 65.2002 -14.7998 120 -46.1992 162.7z" /> +c-2.50586 -1.87988 -5.64258 -2.99316 -9.0127 -2.99316s-6.48145 1.11328 -8.9873 2.99316l-58.0596 43.46c-6.23047 4.65234 -13.9668 7.46582 -22.333 7.46582c-13.2803 0 -24.9512 -6.94434 -31.5771 -17.3965l-73 -115.569 +c-7.05078 -11.0703 6.64941 -23.6006 17.1094 -15.6699l78.3701 59.4395c2.50586 1.87891 5.64258 2.99316 9.0127 2.99316s6.48242 -1.11426 8.9873 -2.99316l58.0801 -43.4697c6.23047 -4.65039 13.9658 -7.46191 22.3301 -7.46191 +c13.2803 0 24.9512 6.94141 31.5801 17.3916z" /> d="M147.3 333.6v-70.5996l82.7998 118.2c31.2002 44.3994 83.3008 41.7998 113.601 12.7998c27.8994 -26.7002 27.7998 -65.0996 10.3994 -89.7998l-74.8994 -107.4l90.7998 -114.8c19.9004 -24.7998 19.5996 -64.5996 -7.40039 -92.2002 c-31.0996 -30.7002 -80.5 -27.2002 -103.199 0l-112.101 138.3v-76.5c0 -57.7998 -32.5996 -83.3994 -72.3994 -83.3994c-49.6006 0 -74.9004 36.0996 -74.9004 83.3994v283c0 45.2002 26.2002 81.4004 73.9004 81.4004c40.8994 0 73.3994 -26.2002 73.3994 -82.4004z" /> +d="M504.4 332.17c0.15625 -0.650391 0.240234 -1.32324 0.240234 -2.02051c0 -0.0234375 0 -0.046875 -0.000976562 -0.0693359v-109.85c0.000976562 -0.0244141 0.00878906 -0.0429688 0.00878906 -0.0673828c0 -2.96191 -1.61328 -5.5498 -4.00879 -6.93262 +l-92.2393 -53.1104v-105.26c0 -0.0078125 0.0078125 -0.00976562 0.0078125 -0.0166016c0 -2.96289 -1.61328 -5.55078 -4.00781 -6.93359l-192.561 -110.84c-0.442383 -0.231445 -0.916016 -0.428711 -1.39941 -0.580078 +c-0.180664 -0.0605469 -0.350586 -0.169922 -0.550781 -0.220703c-0.654297 -0.174805 -1.33789 -0.268555 -2.04688 -0.268555c-0.709961 0 -1.39844 0.09375 -2.05273 0.268555c-0.219727 0.0605469 -0.419922 0.180664 -0.629883 0.260742 +c-0.458008 0.143555 -0.908203 0.327148 -1.33008 0.540039l-192.5 110.84c-2.39551 1.38281 -4 3.96582 -4 6.92773v0.0224609v329.699c0.00195312 0.727539 0.0996094 1.42969 0.280273 2.10059c0.0839844 0.228516 0.181641 0.454102 0.290039 0.669922 +c0.133789 0.427734 0.307617 0.84668 0.509766 1.24023c0.149414 0.259766 0.370117 0.469727 0.549805 0.719727c0.21582 0.329102 0.450195 0.636719 0.709961 0.929688c0.250977 0.217773 0.512695 0.416016 0.790039 0.600586 +c0.274414 0.254883 0.56543 0.483398 0.879883 0.689453v0l96.2705 55.4199c1.1748 0.678711 2.55469 1.06738 4.00781 1.06738s2.81641 -0.388672 3.99219 -1.06738l96.29 -55.4199v0c0.307617 -0.210938 0.598633 -0.435547 0.879883 -0.679688 +c0.271484 -0.1875 0.529297 -0.385742 0.779297 -0.599609c0.260742 -0.298828 0.499023 -0.610352 0.720703 -0.94043c0.169922 -0.25 0.399414 -0.459961 0.540039 -0.719727c0.203125 -0.393555 0.379883 -0.813477 0.519531 -1.24023 +c0.0800781 -0.230469 0.219727 -0.44043 0.280273 -0.679688c0.181641 -0.661133 0.280273 -1.35352 0.280273 -2.07129v-0.0195312v-205.93l80.2197 46.1904v105.239c0.00292969 0.720703 0.100586 1.41602 0.280273 2.08008 +c0.0693359 0.240234 0.199219 0.450195 0.279297 0.680664c0.144531 0.427734 0.320312 0.850586 0.520508 1.25c0.149414 0.259766 0.370117 0.469727 0.540039 0.709961c0.21875 0.329102 0.457031 0.636719 0.719727 0.929688 +c0.248047 0.216797 0.505859 0.416016 0.780273 0.599609c0.277344 0.250977 0.568359 0.479492 0.879883 0.69043v0l96.2803 55.4502c1.1748 0.677734 2.55469 1.06641 4.00781 1.06641s2.81641 -0.388672 3.99219 -1.06641l96.2598 -55.4199 +c0.316406 -0.208984 0.613281 -0.433594 0.899414 -0.680664c0.25 -0.199219 0.540039 -0.379883 0.770508 -0.599609c0.260742 -0.298828 0.499023 -0.609375 0.719727 -0.94043c0.198242 -0.223633 0.376953 -0.458008 0.540039 -0.709961 +c0.207031 -0.396484 0.386719 -0.819336 0.530273 -1.25c0.106445 -0.217773 0.201172 -0.447266 0.280273 -0.679688zM111.6 430.72l-80.1895 -46.1602l80.1797 -46.1699l80.2002 46.1807l-80.1904 46.1494v0zM199.85 370.72l-33.6895 -19.4297l-46.5303 -26.79v-201.29 +l33.6904 19.4004l46.5293 26.79v201.319zM199.85 -42.0596l-0.109375 92.3594l-92.1904 52.1807v0v0c-0.301758 0.203125 -0.585938 0.421875 -0.859375 0.65918c-0.25 0.200195 -0.540039 0.360352 -0.770508 0.580078v0 +c-0.240234 0.265625 -0.458008 0.542969 -0.660156 0.839844c-0.21582 0.25 -0.414062 0.507812 -0.599609 0.780273v0c-0.166016 0.316406 -0.308594 0.655273 -0.419922 1c-0.149414 0.285156 -0.27832 0.589844 -0.379883 0.900391v0 +c-0.0820312 0.383789 -0.135742 0.77832 -0.160156 1.17969c-0.0595703 0.293945 -0.0996094 0.594727 -0.120117 0.900391v215.18l-46.5205 26.7998l-33.6895 19.3799v-311.18zM207.85 64.1104l117.62 67.1494l58.7998 33.5605l-80.1299 46.1299l-92.2598 -53.1104 +l-84.0898 -48.4102zM392.37 59.54v91.4102l-45.7705 -26.1504l-130.72 -74.5996v-92.3105zM392.37 178.67v91.3301l-46.5303 26.8096l-33.6895 19.4004v-91.4199l46.5293 -26.79zM400.37 283.95l80.1797 46.1797l-80.1797 46.1504l-80.2002 -46.1602zM408.37 178.67 +l80.3096 46.1504v0v91.3896l-33.6797 -19.4004l-46.6299 -26.8096v-91.3301z" /> +d="M104.324 178.828v26.1777h26.0664v-26.1777h-26.0664zM156.79 205.006h-26.3428v26.1777c-0.124023 7.05762 -5.8916 12.748 -12.9785 12.748c-7.08594 0 -12.8535 -5.69043 -12.9775 -12.748v-0.166016h-26.4004v0.166016 +c-0.000976562 0.119141 -0.000976562 0.220703 -0.000976562 0.339844c0 21.7041 17.6211 39.3242 39.3242 39.3242c21.5039 0 38.999 -17.2959 39.3213 -38.7227v-0.941406zM209.146 179.16v26.0117h26.3438v-26.0117 +c0 -0.0371094 -0.000976562 -0.0722656 -0.000976562 -0.109375c0 -64.7373 -52.5439 -117.3 -117.274 -117.331h-0.774414c-0.0380859 0 -0.0732422 0.000976562 -0.110352 0.000976562c-64.7373 0 -117.299 52.543 -117.33 117.273v0.166016h26.3369 +c0 -50.2793 40.8203 -91.1006 91.0996 -91.1006h0.609375c50.2793 0 91.1006 40.8213 91.1006 91.1006zM51.9131 179.16v25.96h-26.291v25.3994c0 50.6445 41.1162 91.7617 91.7607 91.7617s91.7607 -41.1172 91.7607 -91.7617v-25.293h-26.3438v25.293v0.200195 +c0 36.1055 -29.3135 65.4199 -65.4199 65.4199c-35.7656 0 -64.8672 -28.7646 -65.4121 -64.4023v-26.6201h26.2891v-25.957c0.356445 -21.2305 17.7031 -38.3564 39.0176 -38.3564s38.6611 17.126 39.0176 38.3564h26.3438 +c-0.140625 -35.9551 -29.374 -65.1016 -65.3613 -65.1016s-65.2207 29.1465 -65.3613 65.1016zM470.313 250.333c-11.3467 0 -20.8633 -4.75977 -24.2402 -12.1172v-8.41211c2.21875 -4.53809 6.30859 -7.69238 12.6191 -9.62988 +c4.75879 -1.37891 9.76562 -2.3623 14.832 -2.87793c6.36426 -0.827148 13.0068 -1.71484 20.6992 -4.42676c13.7256 -4.59375 24.0742 -13.2275 28.9443 -24.2412l0.166016 -0.664062l-0.166016 -25.8994c-7.69238 -17.0479 -28.668 -28.4473 -52.2998 -28.4473 +c-25.6797 0 -47.374 12.6182 -55.2891 32.0439l-0.552734 1.43848l23.0205 11.5078l0.719727 -1.49414c5.97754 -12.1211 17.5996 -19.0391 31.9336 -19.0391c12.0098 0 22.083 4.81445 25.791 12.3418v9.85059c-2.37988 4.59473 -6.47656 7.75098 -12.8398 9.85156 +c-5.20312 1.71582 -10.3506 2.37988 -15.8291 3.09961c-6.78809 0.675781 -13.4814 2.04199 -19.8135 3.98438c-14.1123 4.87109 -23.9678 13.2275 -28.668 24.2412c-0.158203 0.949219 -0.123047 -2.02637 0 24.8496c7.36133 17.0469 27.8379 28.4473 50.9727 28.4473 +c24.9062 0 45.3818 -12.0098 53.4062 -31.2705l0.609375 -1.43848l-23.2451 -11.5117l-0.71875 1.5498c-5.47949 11.6221 -16.3818 18.2637 -30.0518 18.2637zM287.568 136.656v68.3994h26.0664v-68.3994h-26.0664zM639.834 189.956l0.166016 -0.722656l-0.166016 -28.8906 +c-7.52734 -15.9941 -27.8916 -26.7305 -50.584 -26.7305s-43.0029 10.7363 -50.585 26.7305l-0.166016 0.720703l0.166016 28.8887c2.93262 6.25391 8.24121 12.0137 15.4414 16.7139c-5.57422 3.90332 -10.0391 9.14453 -13.0068 15.3311l-0.166016 0.664062 +l0.166016 25.3467c7.36133 15.9922 26.7334 26.7324 48.1504 26.7324s40.7881 -10.7402 48.1504 -26.7295l0.166016 -0.664062l-0.166016 -25.3467c-2.90137 -6.22852 -7.38379 -11.4873 -13.0078 -15.3301c7.1416 -4.7041 12.5088 -10.46 15.4414 -16.7139z +M566.614 240.762v-13.7246c3.48535 -6.19922 12.5068 -10.3486 22.5801 -10.3486c10.0723 0 19.0938 4.14844 22.6357 10.3486v13.7246c-3.59766 6.31055 -12.6191 10.5166 -22.6357 10.5166c-10.0176 0 -18.9805 -4.20605 -22.5801 -10.5166zM613.933 168.593v16.1572 +c-3.76367 6.36523 -13.3379 10.5146 -24.6826 10.5146c-11.1836 0 -20.9756 -4.20605 -24.6836 -10.5146v-16.1572c3.70801 -6.52734 13.5586 -10.8994 24.6836 -10.8994c11.3447 0 20.9189 4.25879 24.6826 10.8994zM376.4 182.038v89.7129h25.8994v-135.095h-25.6777 +l-62.5391 94.085v0.386719h-26.5098v40.623h29z" /> +d="M284.046 223.2c0.0341797 0 0.0664062 -0.00195312 0.100586 -0.00195312c18.8496 0 34.1592 -15.2754 34.2168 -34.1113c0 -18.8281 -15.2822 -34.1143 -34.1104 -34.1143s-34.1143 15.2861 -34.1143 34.1143c0 18.7588 15.1748 34.002 33.9072 34.1133zM173.596 223.2 +c0.0332031 0 0.0673828 -0.00195312 0.100586 -0.00195312c18.8496 0 34.1592 -15.2754 34.2168 -34.1113c0 -18.8281 -15.2822 -34.1143 -34.1104 -34.1143s-34.1143 15.2861 -34.1143 34.1143c0 18.7588 15.1748 34.002 33.9072 34.1133zM394.519 223.2 +c0.0351562 0 0.0683594 -0.00195312 0.102539 -0.00195312c18.8496 0 34.1592 -15.2754 34.2148 -34.1113c0 -18.8281 -15.2822 -34.1143 -34.1104 -34.1143s-34.1133 15.2861 -34.1133 34.1143c0 18.7588 15.1738 34.002 33.9062 34.1133zM548.326 278.519 +c17.3076 -26.9443 26.0674 -55.9189 26.0898 -86.9395c0 -30.209 -8.76074 -59.2021 -26.0703 -86.125c-15.5342 -24.1934 -37.3076 -45.5703 -64.6787 -63.6191c-52.8672 -34.8164 -122.354 -53.9746 -195.667 -53.9746 +c-0.150391 -0.000976562 0.0664062 -0.00585938 -0.0830078 -0.00585938c-24.5488 0 -48.5908 2.18359 -71.9443 6.36621c-14.8564 -14.2842 -31.3604 -26.5059 -49.5098 -36.5889c-66.7744 -33.3467 -125.6 -20.9092 -155.324 -10.2002 +c-5.54492 1.96289 -9.51758 7.25488 -9.51758 13.4697c0 3.82715 1.50879 7.30469 3.96289 9.87109c20.9619 21.6748 55.6416 64.5342 47.1162 103.49c-33.1426 33.9004 -51.1123 74.7764 -51.1123 118.148c0 42.5605 17.9697 83.4365 51.1123 117.337 +c8.52148 38.9521 -26.1582 81.7939 -47.1201 103.47c-2.45996 2.56738 -3.97656 6.0498 -3.97656 9.88281c0 6.21973 3.98047 11.5156 9.53125 13.4785c29.7246 10.71 88.5488 23.1211 155.302 -10.2109c18.1504 -10.0811 34.6553 -22.3027 49.5107 -36.5879 +c23.3457 4.18066 47.0137 6.35742 71.5547 6.35742c0.15918 0 0.318359 -0.000976562 0.476562 -0.000976562c73.293 0 142.78 -19.1826 195.666 -54c27.3711 -18.0479 49.1465 -39.4453 64.6816 -63.6182zM284.987 38.0996c128.612 0 232.866 67.376 232.866 150.487 +c0 83.0957 -104.274 150.469 -232.866 150.469c-128.593 0 -232.847 -67.3691 -232.847 -150.469c0 -36.2002 19.7861 -69.4375 52.7783 -95.4004c9.28809 -29.5986 3.84668 -62.958 -16.3252 -100.078c-0.960938 -1.79297 -1.8584 -3.58496 -2.8418 -5.35645 +c18.6367 1.63574 36.5557 6.875 52.5225 14.8701c13.5889 7.65625 25.9609 16.8633 37.1377 27.585l20.1289 19.3926c28.2617 -7.47852 57.8037 -11.501 88.4033 -11.501c0.347656 0 0.695312 0 1.04297 0.000976562z" /> @@ -2146,11 +2356,11 @@ c-0.5 -2 -1.7998 -3.7002 -3.59961 -4.7002l-61 -35.1992c-2.2002 -1.30078 -5 -1.40 c2.39941 1.40039 5.2998 1.2002 7.39941 0l61.1006 -35.2002c2.2998 -1.2998 3.89941 -3.7998 3.89941 -6.39941v-70.4004zM230.5 310.4l-0.799805 -0.5h1.09961zM306.7 180.2l-0.400391 0.700195v-0.900391z" /> +c-0.0830078 3.7627 -0.750977 7.4043 -1.89941 10.8008c-10.4102 -9.2002 -16.4004 -18.8008 -19 -24.5c-6.7002 -14.6006 -7 -19.3008 -5 -20.7002z" /> +d="M313.6 -26.5996c4.40039 -4.40039 8.10059 -9 13.3008 -12.5c-21.7051 -6.54492 -44.666 -10.1084 -68.4922 -10.1084c-0.636719 0 -1.27246 0.00292969 -1.9082 0.0078125c-135 0 -244.5 109.5 -244.5 244.601c0 135.1 109.4 244.6 244.5 244.6 +s244.6 -109.5 244.6 -244.6c0 -35.3008 -6.89941 -67.4004 -20.2998 -97.7002c-3 5.7002 -7.2002 10.2002 -11.2002 15.2998c11.2002 93.5 -62.0996 176.6 -157 176.6c-87.2578 0 -158.1 -70.8418 -158.1 -158.1s70.8418 -158.1 158.1 -158.1h1zM313.5 -26.5 +l0.400391 -0.0996094zM391.9 142.4c54.7393 0 99.1992 -44.4414 99.1992 -99.1797v-0.0205078c0 -54.75 -44.4492 -99.2002 -99.1992 -99.2002s-99.2002 44.4502 -99.2002 99.2002s44.4502 99.2002 99.2002 99.2002z" /> +d="M286.17 29c9.93457 0 18 -8.06543 18 -18s-8.06543 -18 -18 -18s-18 8.06543 -18 18s8.06543 18 18 18zM398.09 176.6c22.9102 -33.46 35.9102 -72.3398 35.9102 -110.92c0 -31.6797 -5 -60.6797 -14.5996 -86.2295 +c-3.04004 -8.0498 -10.9502 -12.7197 -18.3701 -11.1504c-6.83984 1.24023 -11.1201 9.28027 -8.60059 15.7402c11.1904 28.71 14.8799 58.3398 14.8799 81.6396c-0.0634766 9.75 -1.02246 19.1807 -2.7998 28.4307c-0.649414 -1.06055 -1.12988 -2.2207 -1.84961 -3.2207 +c-17.29 -24.5293 -50.54 -33.8896 -84.7402 -23.8398c-78.8701 23.1699 -178.02 3.81055 -236.25 -38.5898l24.6602 74.1104l-46.8203 -59.8301c2.4834 -18.6582 7.96191 -36.7539 15.7598 -53.1299c6.25 -13.1904 0.460938 -18.2402 -3.75 -20.1104 +c-4.76953 -2.12012 -13.8594 -2.7998 -19.6396 7.33008c-6.41504 11.584 -11.4131 24.3486 -14.5596 37.5596l-23.3203 -29.7998v33.6406c0 55.7695 0 125.109 62.6504 188.409c13.7461 13.917 29.1787 25.7891 46.29 35.54l-8.93066 0.540039 +c-27.8799 1.64062 -49.2402 24.8506 -47.6299 51.8506l2.36035 36.6797c0 -6.24023 0.139648 45.8799 50.75 45.8799c2.05957 0 -0.470703 0.120117 41.0596 -2.33008c2.82715 -0.19043 5.60742 -0.616211 8.29004 -1.25c7.41992 11.3398 15.6504 22.8301 24.3398 34.8906 +l5.48047 7.55957l22.8994 -13.5195c-11.29 -24 -10 -33 -9.39941 -35c9.08008 0.229492 20 -1.6709 32.4102 -5.77051c31.2002 -10.3584 53.6846 -39.8262 53.6846 -74.4844c0 -10.4883 -2.0625 -20.498 -5.80469 -29.6455 +c6.18652 -2.13965 12.3135 -4.56348 18.3799 -7.27051c47.8896 -21.2598 77.7598 -59.0898 87.2598 -73.71zM142.37 319.42c1.87695 6.54492 4.25684 13.041 7 19.1699l-29.1104 1.73047c0.610352 -0.0507812 -12.2598 0.849609 -13.2598 -11.3203l-2.41016 -36.6602 +c-0.00683594 -0.174805 -0.00292969 -0.34375 -0.00292969 -0.520508c0 -6.60449 5.22461 -11.998 11.7627 -12.2695l22.3809 -1.33984c-0.457031 3.73438 -0.692383 7.34863 -0.692383 11.2061c0 2.81836 0.125977 5.6084 0.37207 8.36426l-13.1299 0.779297l1.38965 21.79 +zM290.79 147.24c2.27441 1.75195 3.72949 4.50586 3.72949 7.59668c0 2.19922 -0.742188 4.22559 -1.98926 5.84277l-81.0898 96.3203c-1.9043 2.21094 -4.72949 3.60156 -7.87305 3.60156c-2.42578 0 -4.65918 -0.833984 -6.42773 -2.23145 +c-2.27344 -1.74805 -3.72754 -4.49902 -3.72754 -7.58594c0 -2.19531 0.741211 -4.21973 1.98828 -5.83398c0.0898438 -0.140625 18.5996 -22.1406 18.5996 -22.1406l-16.9102 -13.29c-1.75879 -1.34863 -2.88477 -3.47461 -2.88477 -5.86133 +c0 -1.68359 0.564453 -3.23633 1.51465 -4.47852c0.0800781 -0.109375 2.37988 -2.91113 3.7998 -4.5293c1.4209 -1.61914 3.50977 -2.63477 5.83105 -2.63477c1.79395 0 3.44531 0.610352 4.75977 1.63477l17.0898 13.4492l14.1396 -16.7393l-34.5703 -27.1807 +c-1.74805 -1.34961 -2.86621 -3.46875 -2.86621 -5.84668c0 -1.69043 0.569336 -3.24805 1.52637 -4.49316l15.7803 -18.6396c1.48438 -1.72363 3.68555 -2.80762 6.13574 -2.80762c1.88379 0 3.61816 0.645508 4.99414 1.72754l34.4199 27l9.68066 -11.4902 +c1.92676 -2.2041 4.76465 -3.58789 7.91992 -3.58789c2.4209 0 4.65234 0.820312 6.42969 2.19824zM187.44 29c9.93359 0 18 -8.06543 18 -18s-8.06641 -18 -18 -18c-9.93457 0 -18 8.06543 -18 18s8.06543 18 18 18z" /> +d="M433 268.89c0 0 0.799805 -71.6992 -9 -121.5c-6.23047 -31.5996 -55.1104 -66.1992 -111.23 -72.8994c-20.0996 -2.40039 -93.1191 -14.2002 -178.75 6.7002c0 -0.116211 -0.00390625 -0.119141 -0.00390625 -0.235352c0 -4.63281 0.307617 -9.19434 0.904297 -13.665 +c6.62988 -49.5996 49.2197 -52.5996 89.6299 -54c40.8105 -1.2998 77.1201 10.0996 77.1201 10.0996l1.7002 -36.8994s-28.5098 -15.2998 -79.3203 -18.1006c-28.0098 -1.59961 -62.8193 0.700195 -103.33 11.4004c-112.229 29.7002 -105.63 173.4 -105.63 289.1 +c0 97.2002 63.7197 125.7 63.7197 125.7c61.9209 28.4004 227.96 28.7002 290.48 0c0 0 63.71 -28.5 63.71 -125.7zM357.88 143.69c0 122 5.29004 147.71 -18.4199 175.01c-25.71 28.7002 -79.7197 31 -103.83 -6.10059l-11.5996 -19.5l-11.6006 19.5 +c-24.0098 36.9004 -77.9297 35 -103.83 6.10059c-23.6094 -27.1006 -18.4092 -52.9004 -18.4092 -175h46.7295v114.2c0 49.6992 64 51.5996 64 -6.90039v-62.5098h46.3301v62.5c0 58.5 64 56.5996 64 6.89941v-114.199h46.6299z" /> +s-211.51 -94.6895 -211.51 -211.51s94.7002 -211.51 211.51 -211.51zM434.23 143.47c-4.46582 -17.1914 -11.3633 -33.7256 -20.1309 -48.6895l-74.1299 35.8799l61.4805 -54.8203c-10.709 -14.1553 -23.0713 -26.5469 -37.2002 -37.29l-54.7998 61.5703l35.8799 -74.2705 +c-14.9385 -8.80469 -31.4502 -15.7354 -48.6299 -20.2295l-27.29 78.4697l4.79004 -82.9297c-8.61035 -1.17969 -17.4004 -1.7998 -26.3301 -1.7998s-17.7197 0.620117 -26.3301 1.7998l4.75977 82.46l-27.1494 -78.0303 +c-17.1836 4.48828 -33.7021 11.4092 -48.6504 20.2002l35.9297 74.3398l-54.8701 -61.6396c-14.1318 10.7412 -26.5 23.1299 -37.2197 37.2793l61.5898 54.9004l-74.2598 -35.9297c-8.77051 14.9639 -15.6709 31.4971 -20.1396 48.6895l77.8398 27.1104l-82.2305 -4.75977 +c-1.15918 8.56934 -1.7793 17.3193 -1.7793 26.21c0 9 0.629883 17.8398 1.81934 26.5098l82.3799 -4.76953l-77.9395 27.1592c4.5 17.1895 11.4307 33.7148 20.2295 48.6699l74.2207 -35.9199l-61.5205 54.8604c10.7412 14.1328 23.1299 26.501 37.2803 37.2197 +l54.7598 -61.5293l-35.8301 74.1699c14.9521 8.76465 31.4717 15.6621 48.6504 20.1299l26.8701 -77.25l-4.70996 81.6094c8.60938 1.18066 17.3896 1.80078 26.3193 1.80078c8.93066 0 17.71 -0.620117 26.3203 -1.80078l-4.74023 -82.1592l27.0498 77.7598 +c17.2705 -4.5 33.6006 -11.3506 48.6309 -20.1699l-35.8203 -74.1201l54.7197 61.4697c14.1426 -10.7178 26.5186 -23.0908 37.2402 -37.2295l-61.4502 -54.7705l74.1201 35.8604c8.78906 -14.9492 15.71 -31.4678 20.2002 -48.6504l-77.8105 -27.0996l82.2402 4.75 +c1.19043 -8.66016 1.82031 -17.5 1.82031 -26.4902c0 -8.87988 -0.610352 -17.6299 -1.78027 -26.1904l-82.1201 4.75z" /> @@ -2550,7 +2759,7 @@ c-1.23047 1.73926 -3.44043 3.79004 -6.68066 3.79004c-3.25 0 -5.4502 -2.04004 -6. c0 -14.9102 -7.38965 -32.6201 -19.1299 -48.2402c0.610352 106.761 10.8906 194.73 24.4707 215.351v26.0693zM223.52 266.75c-1.59961 -22.4004 -2.75 -46.5195 -3.47949 -72.0703c-23.2998 -11.2793 -40.7705 -33.1602 -46.3203 -59.5098 c-7.71973 -2.25977 -22.71 -3.91992 -40.4893 -4.21973c-7.51074 3.66016 -16.5 5.85938 -26.1807 6.04004c1.90039 14.9102 5.87012 29.1699 11.6504 42.4199c15.4395 -8.10059 30.9297 -8.66016 35.4697 -0.959961c4.57031 7.74023 -3.58984 21.04 -18.3203 30.6602 c8.68066 11.7695 18.9805 22.2998 30.5605 31.0898c9.50977 -15.5898 23.3594 -24.4404 31.3594 -19.8203c8.05078 4.65039 7.19043 21.1699 -1.70996 37.29c8.76074 3.88965 17.9404 6.92969 27.46 9.08008zM288.48 266.75 -c7.82227 -1.75977 20.1201 -5.82812 27.4492 -9.08008c-8.89941 -16.1299 -9.75977 -32.6396 -1.70996 -37.29c8 -4.62012 21.8506 4.23047 31.3604 19.8203c11.5801 -8.79004 21.8799 -19.3203 30.5596 -31.0898c-14.7197 -9.61035 -22.8896 -22.9199 -18.3193 -30.6602 +c9.45508 -2.12695 18.7754 -5.23145 27.4492 -9.08008c-8.89941 -16.1299 -9.75977 -32.6396 -1.70996 -37.29c8 -4.62012 21.8506 4.23047 31.3604 19.8203c11.5801 -8.79004 21.8799 -19.3203 30.5596 -31.0898c-14.7197 -9.61035 -22.8896 -22.9199 -18.3193 -30.6602 c4.54004 -7.7002 20.0293 -7.14062 35.4697 0.959961c5.79004 -13.25 9.75 -27.5098 11.6504 -42.4199c-9.68066 -0.19043 -18.6709 -2.37988 -26.1807 -6.04004c-17.7793 0.299805 -32.7695 1.95996 -40.4902 4.21973c-5.5498 26.3496 -23.0293 48.2305 -46.3193 59.5098 c-0.719727 25.5508 -1.87988 49.6699 -3.46973 72.0703zM256 258.15c3.23047 0 5.86035 -8.81055 6.08984 -19.9307h0.0498047v-16.8799c0 -41.4199 49.0107 -95.04 93.4902 -95.04c52 0 122.76 1.4502 156.37 -29.1699v-2.50977 c-9.41992 -17.1104 -20.5801 -33.1699 -33.1797 -47.9697c-12.5303 21.0898 -51.5898 40.96 -108.021 41.3496c-45.6797 -1.01953 -79.0195 -20.3301 -90.7598 -40.8701c-0.00976562 -0.00976562 0.00976562 -0.0400391 0 -0.0498047 @@ -2570,47 +2779,48 @@ l-62.5996 9.10059l62.5996 9.09961l-20.2002 55.5l31.4004 -45.8994c2.2998 87.8994 l24.2002 -47.3994s-30.2002 31.7002 -34.5 36.2002c1.7998 -68.8008 2.19922 -85.7002 2.19922 -85.7002s154.4 71.7002 68.6006 230.1c0 0 107 118 10.0996 190.7c0 0 165.5 -100 60.5 -271.5c0 0 86.7998 84.7002 41.4004 170.5c0 0 78.7002 -111 -17.2002 -233.1z" /> @@ -2619,7 +2829,7 @@ d="M235.76 437.77c7.5 0.310547 15 0.280273 22.5 0.0908203c3.61035 -0.140625 7.20 c7.90039 -1.33008 15.6699 -3.28027 23.3906 -5.39941c12.2393 -3.4707 24.1895 -7.91992 35.7598 -13.21c26.5596 -12.2402 50.9395 -29.21 71.6299 -49.8809c20.0303 -20.0898 36.7197 -43.5498 48.8896 -69.1895c1.12988 -2.58984 2.44043 -5.10059 3.4707 -7.74023 c2.80957 -6.42969 5.38965 -12.9697 7.58008 -19.6299c4.13965 -12.3301 7.33984 -24.9902 9.41992 -37.8301c0.569336 -3.13965 1.04004 -6.2998 1.39941 -9.46973c0.549805 -3.83008 0.94043 -7.69043 1.18066 -11.5605 c0.829102 -8.33984 0.839844 -16.7295 0.769531 -25.0996c-0.0703125 -4.96973 -0.259766 -9.94043 -0.75 -14.8896c-0.240234 -3.38086 -0.509766 -6.76074 -0.979492 -10.1201c-0.390625 -2.7207 -0.630859 -5.45996 -1.11035 -8.16992 -c-0.900391 -5.15039 -1.7002 -10.3105 -2.87012 -15.4102c-4.09961 -18.5 -10.2998 -36.5498 -18.5098 -53.6299c-15.7705 -32.8301 -38.8301 -62.1699 -67.1201 -85.1201c-14.3926 -11.7676 -39.8887 -27.3848 -56.9102 -34.8604 +c-0.900391 -5.15039 -1.7002 -10.3105 -2.87012 -15.4102c-4.09961 -18.5 -10.2998 -36.5498 -18.5098 -53.6299c-15.7705 -32.8301 -38.8301 -62.1699 -67.1201 -85.1201c-17.2012 -14.0635 -36.3066 -25.8115 -56.9102 -34.8604 c-6.20996 -2.67969 -12.46 -5.25 -18.8701 -7.41016c-3.50977 -1.16016 -7.00977 -2.37988 -10.5703 -3.38965c-6.61914 -1.87988 -13.2891 -3.63965 -20.0391 -5c-4.66016 -0.910156 -9.34082 -1.73047 -14.0303 -2.48047c-5.25 -0.65918 -10.5 -1.43945 -15.79 -1.73926 c-6.69043 -0.660156 -13.4102 -0.839844 -20.1201 -0.810547c-6.82031 -0.0292969 -13.6504 0.120117 -20.4502 0.790039c-3.29004 0.230469 -6.57031 0.5 -9.83008 0.950195c-2.71973 0.389648 -5.45996 0.629883 -8.16992 1.11035 c-4.12012 0.719727 -8.25 1.37012 -12.3496 2.21973c-4.25 0.939453 -8.49023 1.88965 -12.6904 3.01953c-8.62988 2.16992 -17.0801 5.01074 -25.4102 8.13086c-10.4893 4.11914 -20.79 8.75 -30.6396 14.25c-2.13965 1.14941 -4.28027 2.28906 -6.34961 3.56934 @@ -2703,21 +2913,21 @@ c-0.730469 7.99023 -1.87012 15.96 -3.70996 23.7803z" /> +l-58.8604 -11.5205l69.8408 91.0303c-1.49512 8.39453 -2.27539 16.7734 -2.27539 25.5947s0.780273 17.4609 2.27539 25.8555l-69.8408 91.0293l58.8604 -11.5195zM224 316.22c-31.7998 0 -63.6104 -12.0898 -87.8496 -36.3398c-48.4902 -48.4902 -48.5 -127.2 0 -175.7 +c48.5 -48.4893 127.21 -48.5195 175.699 -0.0292969c48.4902 48.4893 48.5 127.199 0 175.699c-24.25 24.25 -56.0498 36.3701 -87.8496 36.3701zM224 279.56c22.4199 0 44.8301 -8.51953 61.9199 -25.6094c34.1904 -34.1904 34.1797 -89.6904 0 -123.87 +c-34.1895 -34.1797 -89.6504 -34.1904 -123.84 0c-34.1904 34.1895 -34.1797 89.6895 0 123.87c17.0898 17.0898 39.5 25.6094 61.9199 25.6094z" /> +c-51.5254 -20.7842 -87.8506 -71.208 -87.8896 -130.13c0 -0.910156 0.139648 -1.78027 0.139648 -2.67969l-21.8398 -0.150391c-1.41016 100.43 29.8701 160.09 52.4199 190c-1.02051 -0.0820312 -2.03711 -0.0888672 -3.07812 -0.0888672 +c-20.9453 0 -37.9492 17.0049 -37.9492 37.9502s17.0039 37.9502 37.9492 37.9502c15.0898 0 28.1338 -8.8252 34.248 -21.5918c2.35742 -4.91211 3.70117 -10.4102 3.70117 -16.2188c0 -1.67188 -0.109375 -3.31738 -0.321289 -4.93066zM488.57 271.23 +c-4.87012 -2.31934 -10.2754 -3.63965 -16.0244 -3.63965c-1.09375 0 -2.17578 0.046875 -3.24609 0.139648c84.4502 -113.45 -49 -194.61 -49 -194.61c5.87012 43.0303 8.20996 91.1602 8.20996 91.1602c66.6006 40.96 0.640625 63.54 -38.46 72.54 +c-20.5566 51.9932 -71.2275 88.7393 -130.49 88.7598c-2.75 0 -5.43945 -0.259766 -8.13965 -0.410156l-0.139648 22.5c93.6094 1.33008 151.72 -25.7998 183.45 -47.7402c-0.270508 1.82617 -0.375 3.67676 -0.375 5.57715c0 20.9395 17 37.9395 37.9395 37.9395 +c20.9404 0 37.9404 -17 37.9404 -37.9395c0 -15.1162 -8.85938 -28.1797 -21.665 -34.2764zM374.06 11.7598v-0.0595703c0.112305 0.000976562 0.239258 -0.0332031 0.351562 -0.0332031c20.9336 0 37.9297 -16.9961 37.9297 -37.9297 +c0 -20.9346 -16.9961 -37.9307 -37.9297 -37.9307c-15.0908 0 -28.1348 8.83203 -34.2412 21.6035c-2.0498 4.26074 -3.33984 9.0332 -3.63965 14c-111.98 -80.3398 -191.9 51 -191.9 51c43.0703 -5.87988 91.1904 -8.21973 91.1904 -8.21973 +c41.3301 -67.1709 63.9199 0.540039 72.7695 39.4893c53.3574 19.8584 91.3574 71.2188 91.3906 131.45c0 2.08008 -0.220703 4.08984 -0.300781 6.15039l19.5205 0.139648c1.28027 -89.9697 -23.71 -147.2 -45.1406 -179.66z" /> +c1.04785 -1.25391 1.74121 -2.82812 1.9209 -4.54004c0 -1.94043 -1.25 -3.48047 -2.48047 -4.79004c-19.9805 -20.54 -26.3701 -53.1699 -18.8398 -80.3701c0.927734 -3.33594 2.13574 -6.6377 3.5498 -9.74023c17.7002 -41.2598 72.4902 -60.4795 126 -43 +c7.01562 2.29199 13.8936 5.20215 20.3398 8.58008c11.8203 5.84668 22.2969 13.7168 31.1504 23.3096c14.2002 14.8408 22.6396 30.9707 25.9297 50.8408c2.81055 18.6191 -7.78027 18.7598 -11.4395 18.0996c-1.37598 8.42188 -3.82812 16.6758 -7.12012 24.2803 +c-15.6299 -12.3506 -35.71 -20.9707 -51 -25.3506c-69.4004 -19.9102 -90.1904 6.35059 -96.4004 -13.8096c33.7705 -12.3701 69.5098 -7.07031 69.5098 -7.07031zM171.31 290.5l0.0605469 0.00976562c-0.107422 -0.130859 -0.170898 -0.297852 -0.170898 -0.480469 +c0 -0.419922 0.34082 -0.759766 0.759766 -0.759766c0.151367 0 0.292969 0.0439453 0.411133 0.120117c11.4199 8.30078 64.9502 42.7705 134.5 26.8301c0.860352 -0.189453 1.39941 1.29004 0.639648 1.7207c-11.3398 6.33984 -28.6895 10.6494 -41 10.7393 +c-0.405273 0.00976562 -0.732422 0.342773 -0.732422 0.750977c0 0.164062 0.0527344 0.31543 0.142578 0.439453c2.23535 2.92383 4.79492 5.49414 7.70996 7.74023c0.18457 0.140625 0.303711 0.362305 0.303711 0.611328 +c0 0.424805 -0.345703 0.770508 -0.770508 0.770508c-0.0175781 0 -0.0351562 -0.000976562 -0.0527344 -0.00195312c-17.5205 -1.08008 -37.5107 -9.4707 -49 -17.2998c-0.12207 -0.0859375 -0.271484 -0.136719 -0.431641 -0.136719 +c-0.414062 0 -0.75 0.335938 -0.75 0.75c0 0.0605469 0.0078125 0.120117 0.0214844 0.176758c0.899414 4.30957 3.72949 9.98926 5.18945 12.6494c0.0644531 0.108398 0.101562 0.236328 0.101562 0.371094c0 0.40332 -0.327148 0.730469 -0.730469 0.730469 +c-0.134766 0 -0.261719 -0.0371094 -0.371094 -0.101562c-18.4697 -9.4502 -39.0898 -26.2803 -55.8301 -45.6299z" /> +c-0.0263672 55.3057 -28.5371 103.871 -71.8105 131.84l45.3799 26.2002c44.3125 -36.582 72.8613 -91.4561 74.3203 -153h0.129883z" /> +d="M403.5 -7.41016c-40.9688 -30.4482 -91.7109 -48.4707 -146.63 -48.4707c-0.223633 0 -0.646484 -0.120117 -0.870117 -0.119141c-137.19 0 -248 111 -248 248c0 137.19 111 248 248 248h0.21582c63.5576 0 121.648 -24.0508 165.484 -63.5 +c0.716797 -0.65332 1.16699 -1.59375 1.16699 -2.63965c0 -1.9707 -1.59961 -3.57031 -3.57031 -3.57031c-0.155273 0 -0.306641 0.0107422 -0.457031 0.0302734c-18.2656 2.43848 -36.9023 3.69727 -55.8301 3.69727c-0.445312 0 -0.43457 -0.0166016 -0.879883 -0.0175781 +c-129.36 0 -222.399 -53.4697 -222.399 -155.35c0 -109 92.1299 -145.881 176.829 -178.73c33.6406 -13 65.4004 -25.3604 87 -41.5898c0.868164 -0.65332 1.42969 -1.69238 1.42969 -2.86133c0 -1.16992 -0.561523 -2.20508 -1.42969 -2.8584zM503 214.91 +c0.698242 -7.59375 0.950195 -15.1699 0.950195 -22.9443c0 -31.8691 -5.99902 -62.3467 -16.9307 -90.3662c-0.526367 -1.31445 -1.81543 -2.24023 -3.31738 -2.24023c-0.608398 0 -1.18066 0.152344 -1.68262 0.420898 +c-29.4893 16.3594 -61.6094 28.3398 -92.6797 39.9297c-60.2803 22.4902 -112.34 41.8896 -112.34 84.4902c0 1.45996 -3.87988 53.6299 80.25 53.6299c50.8604 0 92.7197 -17.4805 144.48 -60.4805c0.706055 -0.598633 1.17871 -1.46484 1.26953 -2.43945z" /> +c-0.0117188 -0.470703 -0.0126953 -0.894531 -0.0126953 -1.36816c0 -4.77148 0.594727 -9.40527 1.71289 -13.832l-1.7002 -5.90039c-2.90039 10.6006 -5.90039 20.2002 -9.2998 27.7998c-9.7002 17.7002 -30.2002 -9.19922 -43 -11.2998 +c4.53027 -0.25293 8.71777 -0.380859 13.3115 -0.380859c4.59277 0 9.15723 0.12793 13.6885 0.380859l-22.4004 -5.39941l3.40039 -4.7002c-5.5 0 -16.9004 -0.900391 -22.4004 17.2002zM358.4 346.9l-20.3008 -11.8008 +c11.3008 -7.59961 20.2002 -18.1992 27.8008 -31.1992c6.39941 2.89941 10.0996 5.09961 11.7998 7.59961c2.5 2.7998 2.5 4.7002 3 7.09961c0.599609 1.30078 0.799805 2.7002 -3.40039 11.1006c-7.5 11.7998 -16.2002 15.2998 -18.8994 17.2002zM91 304.9 +c-7.7998 -24.1006 -11.7002 -49.4004 -13.2002 -74.6006l13.2002 -5l1.2002 27c9.5 -16.3994 11.2002 -23.2998 12.2998 -28.7998c2.7998 2.09961 7.7002 7 22.5996 11.2998l1.2002 -1.7002l-7.59961 -10.5996c10.0996 3.5 19.5 3.5 28.2998 0.5l-10.5996 -8.40039 +c22.7998 -8.39941 26.5996 -7.59961 38.3994 -26.0996l-11.7998 1.2002c34.9297 -20.5 66 -47.9004 141.2 -63.2002c15.5996 24.0996 14 21.0996 14 22.9004l0.200195 0.199219l-0.200195 0.200195c-0.700195 1.90039 -14.1006 16.6006 -18.2002 20.7002 +c7.2998 -1.7998 6 -0.900391 10.7998 -3.7002c1.7002 -0.899414 -5.39941 5.40039 -21.8994 20.2002c16.5 -6.7002 27.5996 -15.5 33 -27.7998l1.69922 30.7002l-22.3994 17.6992l6.39941 5.90039c-7.2998 0 -31 3.7002 -49.1992 -16l-2.5 0.5 +c6.9668 14.3867 12.4512 30.0156 16 46c1.9209 9.16797 2.95508 18.5742 3 28.2998c0 19.5 -4.7002 38.4004 -13.5 56.6006c-6.40039 13.5 -16.5 25.2998 -30 35.3994c-6.5957 4.94238 -13.4805 9.43652 -20.7002 13.5c3 0.700195 1 1.2002 -5.40039 1.2002 +c-6.39941 0.200195 -13 0.700195 -19.3994 1.2002v-3c-10.2949 -1.63086 -19.2871 -7.22266 -25.3008 -15.2002h-1.19922l-5.40039 -3.40039c-1.2002 2.90039 0 6.30078 4.2002 9.30078l10.5996 11.2998l-3.39941 -0.5l2 3.39941 +c-2.30078 0.200195 -4.2002 0.5 -6.2002 0.700195l-0.5 1.2002l2.5 1.7002c2.2002 -0.200195 4.59961 -0.5 7.09961 -0.700195c2.9043 1.54785 6.22559 2.4375 9.74414 2.4375c1.45898 0 2.88184 -0.150391 4.25586 -0.4375l2.5 -1.2002l0.200195 -0.5 +c7.93457 0.514648 15.7422 1.49121 23.4004 2.90039c20.6992 2.89941 36.6992 11.2998 48.5 24.7998l-21.1006 0.5c-25.7998 0.5 -49.3994 -5.40039 -71.2998 -18.9004l-2.5 2.5l0.5 4.7002l1.7002 7.10059c1.66211 8.54199 3.83691 17.1143 6.39941 25.2998 +c-1.69922 -0.700195 -4.59961 -4.90039 -9.2998 -11.2998c-4.7002 -6.40039 -8.39941 -13 -10.0996 -19.4004c-1.0957 -5.14258 -3.14062 -10.0195 -5.90039 -14.2998l-13.5 29l8.40039 -35.7998l-0.5 -1.7002c-0.00585938 0 -0.0146484 0.0117188 -0.0195312 0.0117188 +c-5.57227 0 -10.9424 0.87207 -15.9805 2.48828c-3.40039 0.700195 -10.6006 1.2002 -20.9004 1.2002c0.5 0 -0.700195 0 -3.2002 -0.5c5.40039 -1.30078 13.5 -4.2002 24.8008 -8.40039l6.39941 1.2002c-4.2002 -3.40039 -10.8994 -10.1006 -20.2002 -19.4004 +c-9.39941 -8.89941 -20.1992 -26.0996 -32.5 -50.2002l4.2002 1.2002l10.1006 9.2998l-5.40039 -4.69922l13 12.2998l-2.5 -3.40039c-5.09961 -7.59961 -8.09961 -12.2998 -9.2998 -15.2002zM367.5 -25.0996c8.2998 40.2998 3.59961 55.1992 -0.700195 89.5 +c-35.5 -11.8008 -20.2998 -6 -32 -10.8008l10.5 -14.1992l-1.2002 -1.2002c-20.1992 6 -23.1992 10.7998 -27.7998 15c6 -22.2002 13.9004 -26.4004 29.5 -31.7002c-9.5 -9.59961 -25.3994 4 -34.3994 13l2.5 -23.5996l-4.2002 -3c-5 22.0996 -22 39.0996 -25.2998 39.0996 +c-44 -13 -79.1006 -5.7998 -113.9 10.5996c-1.59961 -0.399414 -70.5996 -18 -120.5 37.1006c13.7002 -35 32.2998 -63.7002 71.2998 -82.6006c-4.98047 10.3184 -12.0117 19.3135 -20.7002 26.6006c0 0 0.700195 3.7002 1.2002 10.0996 +c19.4004 -19.3994 50.7002 -39.5 93.2002 -60.2002c-59.5996 24.5 -59.9004 24.8008 -69.0996 29l16 -20.6992c-3 -1.30078 -6.7002 -0.5 -10.1006 1.19922c-12.5371 7.32422 -24.2949 15.5693 -35.3994 24.8008c1.89941 -2.2002 80.0996 -98.5 200.899 -74.3008 +c-43.0996 21.8008 -52.3994 52.4004 -66.5996 73.5l17.7002 -7.59961l-11.8008 23.0996c20.1006 -27.7998 28.6006 -35 38.4004 -44.2998l-30 16.5c12.5996 -27.0996 33.7002 -47 63.5 -58.7998c2.90039 1.5 9.09961 -1.09961 59 23.9004zM482.8 189.3l8.93066 -12.7998 +l-12.3008 32.5c10.9004 0 10 -0.0996094 21.2002 -3.40039c-8.16406 11.4756 -17.0879 22.0469 -27 32l-26.5996 23.1006l1.2002 3l23.5996 2.5c-10.6865 2.35742 -21.708 3.79199 -33 4.2002l-17.7002 -0.5l-0.5 2.89941l14.7998 13l-41.7998 -20.2002l-12.2998 18.9004 +l3.40039 -16l-2.5 -1.2002l-5.90039 4.2002h-10.0996l5.39941 -4.2002v-2l-13.5 -27.7998c-10.0996 -31.2002 -21.8994 -67.9004 -35.3994 -109.7l1.19922 16l-1.19922 -3v-0.5c-6.40039 -16 -13.6006 -29.5 -21.2002 -39.5996l9.2998 21.8994l-46.7002 -20.1992 +c11.7998 13.5 23.6006 19.3994 34.9004 18.8994c-71.2002 11.4004 -106.2 41 -110.4 46c3.60059 -6.2002 13.2002 -17.7998 16 -40.0996l-1.7002 -1.2002c-4.2998 15.5996 -16.3994 46.5996 -55.7998 69.5996l23.6006 -2.5c-10.5 12.6006 -36.3008 17.8008 -40.8008 16 +l-2.5 2.5l8.40039 8.40039l-22.2998 -5.7998l5.39941 13.5c-8.09961 -4.40039 -4.2998 -2.40039 -17 -8.90039l-1.69922 0.5c0.599609 0.600586 0.899414 -0.700195 -3 9.2998c-0.600586 -11 -0.400391 -8.59961 -1 -11.7998 +c-1.29785 -0.430664 -2.54785 -1.00781 -3.7002 -1.7002c-40 20.6006 -57.2002 11 -73 5.2002c36.7998 -6 29.2998 -4 38.3994 -9.2998c-25.7998 -12.2002 -31.8994 -12.5996 -51.3994 -70.0996l22.2695 22.2998l2.5 -16.4004c13.4004 -58 68.7002 -92.5 126.4 -83.3994 +l-26.1006 22.3994l44.8008 -22.3994l-1.2002 -3c4.59961 -1.7002 9.2998 -3 13.5 -4.2002c19.3359 -5.72266 39.5713 -8.83887 60.752 -8.83887c11.0293 0 21.8643 0.832031 32.4482 2.43848l-32.5 21.2002c35.7998 -7 50.6992 -31.4004 56.7998 -39.5996l-7.60059 29 +l1.2002 2.5l19 -27.9004l-9.2998 26.5996l21.9004 -13.5h1.19922l-3.39941 4.2002l7.09961 -4.7002l-14.2998 16l1.2002 3l7.59961 -7.09961c4.2998 1.2002 41.4004 10.5 80.9004 40.2998c47.8994 35.4004 68.0996 73.7998 71.5996 79.7002l-3 9.2998zM476.7 260.6 +l-18.2002 -1.19922l14.2998 -11.8008zM221.9 253.5c2.69922 -5.09961 5.69922 -12.4004 18.3994 -18.7998c-7.5 -10.9004 -8.2998 -10.5 -20.2002 -16c-7.59961 -7.7002 -13.5 -13.1006 -17.6992 -14.7998l7.09961 13c-5.38281 -1.97266 -11.167 -3.06836 -17.2295 -3.06836 +c-2.57324 0 -5.10156 0.194336 -7.57031 0.568359l-0.5 1.19922c19 2.10059 37.2002 9.40039 46.5 16c-4.10059 4.2002 -7.10059 11.3008 -8.7998 21.9004zM225.6 355.8c5.87793 -3.32715 10.7842 -8.04688 14.3008 -13.7998 +c14.6992 -24.0996 19.1992 -40.0996 11.2998 -47.7002c-7.90039 -7.59961 -16.7998 -7.09961 -26.1006 3c-9.2998 10.1006 -13.5 23.7002 -11.7998 39.6006c1.7002 15.8994 5.90039 22.2998 12.2998 18.8994zM220.9 309.5 +c7.09961 -21.2998 33.3994 -23.0996 26.8994 4.90039c-3.89941 16.5 -8.7998 27.0996 -15.2002 32.5c-6.59961 5.39941 -10.0996 6.69922 -11.2998 4.19922c-2.5 -2.89941 -3.5 -11.2998 -3 -24.7998c7.5 12.7998 11.6006 5.90039 12.5 4.7002l-0.5 -0.5 +c-0.799805 -1.7002 -2.59961 -3.09961 1.7002 -6.2002l1.2002 0.5v-4.7002c-1.7998 -12.5 -6.90039 -12.7998 -12.2998 -10.5996zM175.9 315c-2.41016 0.448242 -4.38965 2.04102 -5.40039 4.2002c-3.5 8.5 0 21.2002 8.09961 21.2002 +c2 -0.5 3.7002 -1.7002 5.40039 -4.7002c-1.5 -0.400391 -4.7002 -4.7998 0.700195 -5.90039h0.5c0 -13.7002 -7.7002 -15.0996 -9.2998 -14.7998zM216 365.1l-3.7002 2.40039l-0.5 2.5c18.2998 0 25.7998 -8.7998 28.2998 -14.2998 +c-6.94727 3.78809 -14.9268 5.97363 -23.3916 5.97363c-0.90918 0 -1.81152 -0.0244141 -2.70801 -0.0742188l-0.5 3zM144.2 315.7c1.59961 -1.60059 0.599609 -0.299805 4.89941 -6.60059c-25.3994 -4.69922 -23.1992 -12.2998 -30 -12.2998 +c0.300781 0.600586 7.10059 16 23.6006 16l-7.10059 7.60059c9.40039 0.5 15.2002 2.09961 19.9004 -5.90039c0.0214844 8.14648 1.03027 16.0225 2.90039 23.5996c2 7.60059 3.69922 11.8008 5.39941 13.5c1 1.5 16.2998 15.7002 29 22.4004 +c2.33496 1.68262 5.22168 2.67676 8.31641 2.67676c1.8291 0 3.57715 -0.34668 5.18359 -0.976562c0.321289 -0.390625 0.515625 -0.889648 0.515625 -1.43457c0 -0.0898438 -0.00488281 -0.178711 -0.015625 -0.265625l-13 -7.59961 +c7.60059 -11.8008 10.5 -25.3008 8.7998 -41.3008c-1.11328 -11.292 -6.61426 -21.3291 -14.7998 -28.2998l2.90039 -4.7002c-30 2.2002 -24.7998 6.80078 -46.5 23.6006zM162.9 334.4c-1.80078 -7.2002 -2.30078 -16 -3.10059 -26l5.40039 -6.40039l7.09961 -3.40039 +c2.39648 -0.458008 4.79688 -0.699219 7.3252 -0.699219c1.3418 0 2.66797 0.0673828 3.97461 0.199219c1 1.7002 3.5 4.2002 6.40039 7.60059c5 5.89941 7.90039 13.7998 8.40039 23.0996c0.0849609 1.43848 0.113281 2.82617 0.113281 4.28613 +c0 7.30859 -1.08887 14.3643 -3.11328 21.0137c-3 8.10059 -5.90039 11 -10.1006 9.30078c-5.39941 -1.7002 -10.5996 -5.40039 -16 -11.8008c-3 -4.19922 -5.2002 -9.59961 -6.39941 -17.1992zM204.9 278.3l-3.10059 -6.5c7.10059 4.2002 13.5 7.2002 19.4004 8.40039 +l7.09961 0.5l11.7998 -7.60059h-2.5c-8.7998 3.7002 -19.3994 1.2002 -30.6992 -7.59961c-0.5 -4.7002 1.69922 -14.7002 5.89941 -29.5l9.2002 0.5c-21.9004 -6.59961 -37.5996 -8.40039 -48.9004 -5.40039c-24.8994 6.7002 -27.3994 23.6006 -27.5 24.1006 +c-1.74121 6.70996 -2.67871 13.6348 -2.67871 20.8867c0 4.35645 0.333984 8.63574 0.979492 12.8135c-6.40039 -0.5 -11 -4.2002 -15.2002 -10.6006c-2.90039 5.90039 -5.40039 8.7998 -5.90039 9.2998c1.5 0.700195 12.2998 7.5 32.5 4.90039l0.5 -2.5l-5.89941 -1.2002 +c-0.100586 -0.399414 -1.90039 -29.5 18.8994 -24.7998c1.40039 0.299805 1.2998 -0.0996094 36.1006 14.2998z" /> +d="M357.45 -20.2002c2.2002 -14.2998 4.09961 -28.7002 6.59961 -43.7002c-367.8 0 -153.899 -0.599609 -337.1 0c-4 0 -6.10059 0.700195 -5.2998 5.7002c2.09961 12.9004 3.5 25.9004 5 38.7998c0.5 4.80078 2.2998 6.80078 7.59961 6.80078 +c118.1 -1 114.9 -0.300781 121.4 2.39941c9.39941 4 14.8994 12.9004 14.8994 23.1006c-0.0996094 42.8994 -0.299805 85.8994 -0.200195 128.8c0 3.7998 -1.19922 5.89941 -4.59961 6.7998c-15.7002 3.90039 -31.2998 7.7002 -47.5996 11.7002 +c-5.30078 -12.2998 -10.4004 -24.4004 -15.7002 -36.7002c1.7998 -3.2998 28.3994 -2.90039 35.2998 -2.90039v-27.5996h-114.3c1 8.59961 1.7002 16.7998 3.2002 24.9004c0.299805 1.39941 3.59961 3.09961 5.5 3.19922 +c8.39941 0.400391 16.8994 0.300781 25.3994 0.100586c4 0 5.90039 1.09961 7.60059 5.2002c16.5996 40.6992 13.5 31.1992 67.2998 161c31.5 76.0996 33 76 32.5996 87.3994c-0.700195 18.6006 -25.3994 22.2998 -37.7002 22.1006c-30 -0.400391 -38.3994 0.5 -101.8 0.5 +c-7.2002 44.5 -4.2002 32.0996 -6.39941 45.2998c-0.700195 4.2002 1 5.2998 4.59961 5.2998l339.1 -0.200195c-0.799805 -5.39941 -1.59961 -10.7998 -2.39941 -16.0996c-1.2998 -9.7002 -2.7998 -19.4004 -4 -29.2002c-0.299805 -2.90039 -1.2002 -4.2998 -4.2998 -4.2998 +c-20.6006 -0.100586 -41.2002 -0.100586 -61.8008 -0.5c-18.6992 -0.400391 -37.5996 -0.299805 -56.1992 -2c-13.4004 -1.2002 -23.3008 -12.6006 -18.9004 -26.6006c8.59961 -27.0996 27.7002 -69.0996 36.5 -89.1992c65.7002 -154.2 61.4004 -157 84 -158.601 +c6.59961 -0.5 13.4004 -0.0996094 20.4004 -0.0996094c1.2998 -9.40039 2.59961 -18 4 -27.5h-116v27c10.3994 0 20.3994 0.0996094 30.3994 -0.100586c3.5 0 5 0.700195 3.40039 4.40039c-4.40039 10.2998 -8.7002 20.5996 -13.2002 30.9004 +c-1.59961 3.69922 -4.09961 4.7998 -8.40039 3.5c-12.3994 -3.60059 -24.7998 -6.7002 -37.2998 -9.7002c-4.2998 -1.10059 -6 -2.7998 -5.89941 -7.5c0.799805 -57.5 0.899414 -127.5 1 -129.101c0.399414 -12.5996 8.69922 -21.3994 21 -23.0996 +c0.899414 -0.200195 12.8994 -2.7998 112.699 -2.59961c8.30078 0 8.40039 0.0996094 9.60059 -7.60059zM182.55 185.5c2.87695 -1.01465 5.98633 -1.56641 9.20801 -1.56641s6.31543 0.551758 9.19238 1.56641c13 4.2002 26.2998 7.7998 39.3994 11.7002 +c1.34473 0.620117 2.65234 1.32422 3.90039 2.09961c-6.7002 17.4004 -13.0996 34.2002 -19.7002 50.9004c-8.89941 22.7002 -17.7002 60.2998 -27 82.7998c-1.5 0.799805 -1.89941 -2.40039 -9.39941 0c-17.1006 -44 -34.1006 -87.7998 -51.3008 -132.1 +c1.8457 -1.09766 3.7959 -2.07422 5.80078 -2.90039c13.2998 -4.2998 26.5996 -8.2998 39.8994 -12.5z" /> - +c-13.3994 49.5996 -18.2002 101.8 -0.0996094 133.8c3.7998 6.74023 16.7998 27.7402 47.5996 27.7402c41.6006 0 110.3 -41.6396 182.2 -142.14c28.7607 -2.29492 57.1504 -6.70801 84.5996 -13c20.5 82 6.90039 125.1 -15.5 137.8 +c-1.2998 0.700195 -38.3994 27.2002 -120.899 -52.7998c-3.40039 3.5 -6.80078 6.89941 -10.2002 10.1992c52.2998 50.9404 103.7 74.6006 138.2 55.2402c33.8994 -19.2002 41.8994 -75.8994 22.2998 -153.899c12.0234 -3.14844 24.0938 -6.9873 35.5996 -11.3008z +M135.901 411.16c-23.1006 -40.7998 1 -121.562 1.19922 -122.961c27.2979 6.86914 55.7041 11.835 84.4004 14.5996c15.5215 22.6875 32.2832 43.9033 50.7002 64.2002c3.39941 -3.33301 6.7998 -6.74609 10.2002 -10.2393 +c-15.1953 -16.6592 -29.1309 -33.958 -42.2002 -52.3994c17.9678 1.35645 34.9062 2.04102 53.2197 2.04102c13.6523 0 27.2158 -0.383789 40.6797 -1.1416c-64.5 86.6006 -126.5 126.2 -163.3 126.2c-23 0 -32 -15.2002 -34.8994 -20.2998zM440.701 -27.1406 +c3.2998 6 21.5 38.5996 -1.2002 123c-4.09961 -1.10059 -37.0996 -9.90039 -84.4004 -14.6006c-15.4961 -22.7061 -32.2598 -43.9238 -50.6992 -64.2002c-3.40039 3.2998 -6.80078 6.7002 -10.2002 10.2002c15.1943 16.6602 29.1299 33.958 42.2002 52.4004 +c-17.9014 -1.38379 -34.792 -2.08301 -53.0459 -2.08301c-13.7139 0 -27.3359 0.398438 -40.8545 1.18262c64.5996 -86.7998 126.6 -126.2 163.3 -126.2c23.1006 0 32 15.2002 34.9004 20.3008zM449.801 111.459c25.6006 7.2998 85.9004 27.4004 105.7 62.5 +c1.40039 2.5 33.5 50.5 -72.5996 90.4004c-11.1553 4.18555 -22.8525 7.92188 -34.5 11c-3.60059 -12.9004 -7.90039 -26.1006 -12.8008 -39.5c-3.71387 -0.506836 -6.9248 -2.60645 -8.89941 -5.60059l-0.100586 0.100586c-1.94824 1.84863 -4.25 3.31445 -6.7998 4.2998 +c5.7002 15 10.6006 29.7998 14.6006 44.2002c-7.2002 1.69922 -31.8008 7.59961 -72.2002 11.6992c16.7002 -24.5 27.8994 -44.0996 34.2998 -55.5c-4.18457 -1.36719 -7.79199 -3.96777 -10.4004 -7.39941c-13.5996 16.3994 -11 19.8994 -42.5 64.5 +c-16.6885 1.17285 -32.207 1.77344 -49.1914 1.77344c-21.2998 0 -42.3818 -0.9375 -63.208 -2.77344c-16.9004 -25 -28.2998 -45.2002 -34.7998 -56.9004c-4.16797 -1.77637 -7.68652 -4.69238 -10.2002 -8.39941c-1.07422 3.39844 -3.37402 6.23633 -6.40039 8 +c6.10059 11.3994 16.9004 31 32.7998 55.2998c-39.5996 -4.60059 -65 -11.2002 -72 -13c4.30078 -14.1006 9.40039 -28.6006 15.2002 -43.2998c-0.866211 -0.632812 -1.63086 -1.36328 -2.2998 -2.2002c-1.5 1.89941 -4 5.2998 -14.4004 5.2998 +c-4.69922 12.2998 -8.7998 24.5 -12.3994 36.4004c-138.8 -40.3604 -158.4 -121.36 1.5 -164c3.59961 12.8994 7.7998 26 12.7002 39.3994c0.328125 -0.0185547 0.651367 -0.0214844 0.984375 -0.0214844c2.0752 0 4.06641 0.360352 5.91504 1.02148 +c3 -1.2002 5.2002 -1 8.40039 -1c-5.5 -14.5996 -10.2002 -28.8994 -14.1006 -42.8994c23.4512 -5.42578 47.71 -9.39258 72.2002 -11.7002c-16.2998 23.8994 -27.5 43.3994 -33.7998 54.5996c8.7002 0 10.7002 1.60059 12.5996 3.2002 +c0.950195 -0.574219 1.95996 -1.08008 3 -1.5c15.3008 -26.7002 28.9004 -46.5996 36.8008 -57.7998c16.6875 -1.17285 32.2051 -1.77344 49.1895 -1.77344c21.2998 0 42.3838 0.9375 63.21 2.77344c16.5 24.2998 27.7002 44 33.9004 55.2002 +c7.2998 0 9.7998 3 10.8994 4.19922c1.82324 -1.3252 3.84766 -2.41113 6 -3.19922c-15 -28 -28.6992 -48.9004 -32.1992 -54.2002c24.4219 2.70312 48.6768 7.11816 72 13c-4.10059 13.7998 -9 27.8994 -14.7002 42.2002c2.00391 0.898438 3.81934 2.11523 5.39941 3.59961 +l0.100586 0.0996094c2.2666 -3.44043 6.1543 -5.7002 10.5781 -5.7002c0.0410156 0 0.0810547 0 0.12207 0.000976562c4.69922 -12.3008 8.7998 -24.5 12.3994 -36.4004zM335.401 225.459c0.0664062 0.00683594 0.132812 0.00878906 0.201172 0.00878906 +c1.07422 0 1.95117 -0.84668 1.99805 -1.90918v-51.5c0 -9.5 -5 -14.0996 -15.0996 -14.0996h-0.400391c-10.0996 0 -15.0996 4.5 -15.0996 14.0996v51.5c-0.00195312 0.0341797 -0.00488281 0.0664062 -0.00488281 0.100586c0 0.999023 0.811523 1.81055 1.81055 1.81055 +c0.0654297 0 0.130859 -0.00390625 0.194336 -0.0107422h1.2002c0.0742188 0.00976562 0.148438 0.0166016 0.224609 0.0166016c0.932617 0 1.69043 -0.756836 1.69043 -1.68945c0 -0.0771484 -0.00488281 -0.15332 -0.015625 -0.227539v-49.7998 +c0 -8 2.60059 -11.0996 10.1006 -11.0996s10.0996 3.2002 10.0996 11.0996v49.7998c-0.00488281 0.0566406 -0.00976562 0.111328 -0.00976562 0.168945c0 0.959961 0.779297 1.73926 1.74023 1.73926c0.0576172 0 0.114258 -0.00195312 0.169922 -0.0078125h1.2002z +M321.701 139.999l7.09961 -0.0996094l-5.7002 -4.30078l2.10059 -6.7998l-5.7998 4.10059l-5.80078 -4.10059l2.10059 6.7998l-5.7002 4.30078l7.09961 0.0996094l2.30078 6.7998zM290.601 132.599l7.10059 -0.0996094l-5.7002 -4.2998l2.09961 -6.7998l-5.7998 4.09961 +l-5.7998 -4.09961l2.09961 6.7998l-5.69922 4.2998l7.09961 0.0996094l2.2998 6.80078zM295.701 163.399c0.0615234 0.00585938 0.12207 -0.0292969 0.185547 -0.0292969c1.00977 0 1.83008 -0.819336 1.83008 -1.83008 +c0 -0.0810547 -0.00585938 -0.162109 -0.015625 -0.241211v-0.799805c0.00390625 -0.0488281 0.0078125 -0.0966797 0.0078125 -0.145508c0 -0.977539 -0.792969 -1.77051 -1.77051 -1.77051c-0.0800781 0 -0.160156 0.00585938 -0.237305 0.015625h-22.5 +c-0.0644531 -0.00683594 -0.126953 -0.0117188 -0.193359 -0.0117188c-0.999023 0 -1.80957 0.811523 -1.80957 1.81055c0 0.0341797 0.000976562 0.0683594 0.00292969 0.101562v63c-0.00195312 0.0332031 -0.00488281 0.0664062 -0.00488281 0.100586 +c0 0.999023 0.811523 1.80957 1.80957 1.80957c0.0664062 0 0.130859 -0.00292969 0.195312 -0.00976562h22.2002c0.0771484 0.00976562 0.155273 0.0175781 0.235352 0.0175781c0.977539 0 1.77051 -0.793945 1.77051 -1.77051 +c0 -0.0498047 -0.00195312 -0.0986328 -0.00585938 -0.147461v-0.799805c0.00195312 -0.0380859 0.00488281 -0.0751953 0.00488281 -0.113281c0 -1.04395 -0.847656 -1.89062 -1.89062 -1.89062c-0.0380859 0 -0.0761719 0.000976562 -0.114258 0.00390625h-19.1006 +v-25.7998h16.1006c0.0380859 0.00195312 0.0742188 0.00488281 0.113281 0.00488281c1.04297 0 1.88965 -0.847656 1.88965 -1.89062c0 -0.0380859 -0.000976562 -0.0761719 -0.00292969 -0.114258v-0.800781 +c0.00195312 -0.0380859 0.00488281 -0.0742188 0.00488281 -0.113281c0 -1.04297 -0.847656 -1.88965 -1.89062 -1.88965c-0.0380859 0 -0.0761719 0.000976562 -0.114258 0.00292969h-16.1006v-26.6992h19.4004zM288.301 262.799l2.2998 -6.7998l7.10059 -0.0996094 +l-5.7002 -4.30078l2.09961 -6.7998l-5.7998 4.10059l-5.7998 -4.10059l2.09961 6.7998l-5.69922 4.30078l7.09961 0.0996094z" /> +d="M2 70.5996h315.1l59.2002 -102.6h-285.399c-0.00488281 0 0.0205078 -0.0498047 0.015625 -0.0498047c-20.0742 0 -37.4736 11.5439 -45.916 28.3496zM501.8 98c19 -29.4004 -0.0996094 -55.9004 -2 -59.0996l-40.7002 -70.5l-257.3 447.6h88.4004 +c0.00390625 0 -0.0234375 0.0527344 -0.0195312 0.0527344c19.6797 0 36.79 -11.0879 45.4189 -27.3525zM275 143.5h-231l115.5 200z" /> @@ -3198,26 +3406,26 @@ c13.9004 0 25.7998 -3.7998 35.4004 -14.7998h0.5v75.5h151.199v-48.0996h-56.0996v- c-34 0 -34.6006 -62.7998 0 -62.7998zM460.5 112.1v29.6006h-56.0996v44.7002h56.0996v28.0996h-55.5v33.9004h56.0996v30.1992h-95v-166.5h94.4004zM414.6 151.9h56.1006v-45.6006l50.7002 57l-50.7002 57v-44h-56.1006v-24.3994zM553.2 141.6l26.2998 -29.5h40.5 l-46 51.4004l45.4004 51h-38.5l-25.6006 -29.2998l-26.5996 29.2998h-39.7002l45.5996 -51.2002l-45.5996 -51.2002h38.0996z" /> +d="M225 416c123.7 -0.299805 223.7 -100.9 223.4 -224.6c-0.300781 -123.7 -100.9 -223.7 -224.601 -223.4l-170.2 0.400391c-29.582 0 -53.6006 24.0117 -53.6006 53.5938c0 0.102539 0 0.204102 0.000976562 0.305664l0.400391 170.3 +c0.399414 123.7 100.899 223.7 224.6 223.4zM394.8 258.8c-0.0947266 7.71387 -1.06445 15.1934 -2.7998 22.4004l-55.2002 56.0996v-1.59961c0 -5.10059 -1.5 -9.60059 -3.7998 -14.2998zM331 353.7c1.94141 -2.71777 3.39453 -5.85449 4.2002 -9.2002l54.2998 -54.5996 +c-9.56543 28.6953 -30.9629 51.8848 -58.5 63.7998zM118.1 200.8c-5.54395 -0.450195 -11.0029 -1.44336 -16.1992 -2.89941l8.5 -8.5c2.04004 4.16895 4.62598 7.98535 7.69922 11.3994zM97 196.6c-4.72363 -1.31543 -9.36719 -3.08691 -13.7002 -5.19922l27 -27.2002 +c-1.51855 3.87012 -2.37598 8.09961 -2.39941 12.5l0.899414 8zM78.7998 189.2c-3.89551 -2.1748 -7.62207 -4.57227 -11.2002 -7.2002l35.3008 -35.9004c4.36133 2.17188 9.16016 3.79395 14.0996 4.7002zM63.5996 179.4 +c-3.7207 -2.78223 -7.0625 -5.89355 -10.0996 -9.40039l34.9004 -34.5996c3.2168 3.18945 6.69531 6.00781 10.5 8.5zM50.2998 167.1c-2.89941 -3.2998 -5.7998 -6.69922 -8.59961 -10.5l35.7998 -35.8994c2.11035 4.12598 4.6875 7.93262 7.7002 11.3994zM39.2998 152.8 +c-2.49414 -3.82227 -4.73926 -7.83984 -6.7002 -12l39.5 -39.7998c0.374023 5.3252 1.63574 10.4883 3.60059 15.2002zM30.5 136.5c-1.7998 -4.90039 -3.2998 -9.59961 -4.7002 -14.5l52.7002 -53.5c-3.96484 7.90234 -6.36621 16.8438 -6.7002 26.2002zM22.5996 93.5 +c0.046875 -7.56934 1.05859 -14.8945 2.90039 -21.9004l55.4004 -55.6992v1.09961c0.0429688 5.14551 1.35156 10.0322 3.59961 14.2998zM27.9004 62.7998c9.59375 -28.6787 30.9805 -51.8564 58.5 -63.7998c-1.90527 2.74219 -3.35254 5.87402 -4.2002 9.2002z +M22.5996 99.7998l64.4004 -64.2002c2.76953 3.4707 6.08594 6.38965 9.90039 8.7002l-72.2002 72.5c-1.2793 -5.48047 -2.00293 -11.1543 -2.10059 -17zM275.9 151.6c32.5996 -0.0996094 32.6992 49.2002 0.199219 49.4004l-33.5996 0.0996094 +c-4.91504 0.0224609 -8.90039 4.01855 -8.90039 8.93945v0.0605469l0.100586 47c0.0996094 40.5 38.5996 60.8008 66 54.9004c15.3994 -3.90039 30.2998 8.40039 30.2998 23.9004c0 12.0996 -8.7002 22.1992 -19.9004 24c-6.37305 1.50098 -12.9639 2.30078 -19.793 2.30078 +c-0.135742 0 -0.271484 -0.000976562 -0.40625 -0.000976562c-0.143555 0 -0.277344 -0.00292969 -0.420898 -0.00292969c-57.9893 0 -105.081 -47.0303 -105.18 -104.997l-0.0996094 -56l-42.6006 0.0996094c-32.5996 0.100586 -32.6992 -49.2002 -0.0996094 -49.2998 +l33.5996 -0.0996094c4.40039 0 8.90039 -4.5 8.90039 -9l-0.0996094 -47c-0.00585938 -30.8535 -25.0527 -55.9004 -55.9062 -55.9004h-0.194336c-9.39941 0 -9.39941 1.59961 -15.7002 1.59961c-13.458 -0.209961 -24.3447 -11.1289 -24.5 -24.5996 +c0 -15.5 14.2002 -24.2002 19.9004 -24.2002c61.2998 -12.8994 125.5 33.6006 125.7 102.9l0.0996094 56zM299.4 151.9c5.48145 0.538086 10.9062 1.52637 16.0996 2.89941l-8.5 8.5c-1.78711 -4.29492 -4.37207 -8.14844 -7.59961 -11.3994zM320.4 156.1 +c4.74121 1.31738 9.38574 3.12305 13.6992 5.30078l-27 27.1992c1.51855 -3.86914 2.37598 -8.09961 2.40039 -12.5l-0.900391 -8.09961zM338.4 163.5c4 2.2002 8.09961 4.7002 11.8994 7.2002l-36.2002 35.8994c-4.09961 -2.2998 -8.7998 -3.59961 -13.6992 -4.69922z +M353.9 173.3c3.55273 2.83594 6.87891 5.7998 10.0996 9l-34.9004 35c-3.18457 -3.22266 -6.66797 -6.04492 -10.5 -8.5zM367.1 185.6c3.0625 3.36523 5.89941 6.82812 8.60059 10.5l-35.7998 35.9004c-2.1582 -4.0957 -4.73145 -7.89746 -7.7002 -11.4004zM378.1 199.9 +c2.53027 3.79688 4.77832 7.81738 6.7002 12l-39.5 39.7998c-0.374023 -5.3252 -1.63574 -10.4893 -3.59961 -15.2002zM391.6 230.8l-53.0996 53.4004c4.25977 -7.79688 6.82422 -16.7627 7.09961 -26.2002l41.3008 -41.5c1.7959 4.61523 3.39258 9.46387 4.69922 14.2998z +M392.6 236.4c1.25586 5.3623 2.04199 10.9189 2.30078 16.5996l-64.3008 64.7002c-2.61426 -3.74805 -5.95898 -6.85938 -9.89941 -9.2002z" /> +d="M277 277.3h-85.4004v-256c-0.0273438 -47.082 -38.2617 -85.2998 -85.3506 -85.2998c-47.1055 0 -85.3496 38.2441 -85.3496 85.3496c0 47.1064 38.2441 85.3506 85.3496 85.3506h0.0507812c-47.1055 0 -85.3496 38.2441 -85.3496 85.3496 +c0 47.1064 38.2441 85.3506 85.3496 85.3506c-47.0781 0 -85.2998 38.2217 -85.2998 85.2998s38.2217 85.2998 85.2998 85.2998h170.7c47.1055 0 85.3496 -38.2441 85.3496 -85.3496c0 -47.1064 -38.2441 -85.3506 -85.3496 -85.3506zM277 277.3 +c47.0762 -0.00488281 85.2949 -38.2236 85.2998 -85.2998c0 -47.0781 -38.2217 -85.2998 -85.2998 -85.2998s-85.2998 38.2217 -85.2998 85.2998s38.2217 85.2998 85.2998 85.2998z" /> +d="M427.84 67.3301l-196.5 -97.8203c-2.24707 -0.963867 -4.72266 -1.49805 -7.32129 -1.49805s-5.10156 0.53418 -7.34863 1.49805l-196.51 97.8203c-4 2 -4 5.28027 0 7.29004l47.0596 23.3799c2.25098 0.964844 4.72949 1.49805 7.33203 1.49805 +c2.60156 0 5.10742 -0.533203 7.3584 -1.49805l134.76 -67c2.24609 -0.969727 4.72168 -1.50684 7.32129 -1.50684s5.10254 0.537109 7.34863 1.50684l134.76 67c2.24902 0.964844 4.72656 1.49902 7.32715 1.49902s5.10449 -0.53418 7.35352 -1.49902l47.0596 -23.4297 +c4.0498 -1.95996 4.0498 -5.24023 0 -7.24023zM427.84 203.86c4.0498 -2.01074 4.0498 -5.29004 0 -7.31055l-196.5 -97.7998c-2.24707 -0.964844 -4.74902 -1.49902 -7.34863 -1.49902c-2.59863 0 -5.07422 0.53418 -7.32129 1.49902l-196.51 97.7998 +c-4 2.02051 -4 5.31055 0 7.31055l47.0596 23.4297c2.25098 0.964844 4.75684 1.49805 7.3584 1.49805c2.60254 0 5.08105 -0.533203 7.33203 -1.49805l134.76 -67.0801c2.24902 -0.959961 4.75 -1.49121 7.34863 -1.49121c2.59766 0 5.07227 0.53125 7.32129 1.49121 +l134.76 67.0801c2.24902 0.964844 4.75293 1.49902 7.35352 1.49902s5.07812 -0.53418 7.32715 -1.49902zM20.1602 317.58c-4.0498 1.86035 -4.0498 4.88965 0 6.74023l196.5 90.2793c2.2666 0.900391 4.76074 1.39551 7.3457 1.39551 +c2.58594 0 5.05762 -0.495117 7.32422 -1.39551l196.51 -90.2793c4 -1.85059 4 -4.87988 0 -6.74023l-196.51 -90.29c-2.26953 -0.890625 -4.76172 -1.37988 -7.3457 -1.37988s-5.05469 0.489258 -7.32422 1.37988z" /> +d="M447.8 384c23.6006 0 42.9004 -19.0996 42.9004 -42.7002v-298.6c0 -23.6006 -19.1006 -42.7002 -42.7002 -42.7002h-149.4v42.7002h149.2v298.6h-383.8v-63.8994h-42.7002v63.8994c0 23.6006 19.1006 42.7002 42.7002 42.7002h383.8zM21.2998 64.4004 +c35.2998 0 63.9004 -28.6006 63.9004 -63.9004h-63.9004v63.9004v0zM21.2998 149.4c82.4004 -0.100586 149.4 -67 149.3 -149.4h-42.6992c0 58.9004 -47.7002 107 -106.601 107v42.4004zM213.4 0c-0.100586 106 -86.1006 192.4 -192.101 192.2v42.3994 +c129.5 -0.299805 234.3 -105.1 234.8 -234.6h-42.6992z" /> +c0.00195312 0.0214844 0.00195312 0.0419922 0.00195312 0.0634766c0 0.612305 -0.49707 1.11035 -1.10938 1.11035c-0.0244141 0 -0.0478516 -0.00195312 -0.0722656 -0.00390625h-9.39941c-0.0244141 0.00195312 -0.0488281 0.00292969 -0.0732422 0.00292969 +c-0.612305 0 -1.11035 -0.498047 -1.11035 -1.11035c0 -0.0214844 0.00195312 -0.0410156 0.00292969 -0.0625v-55.2793c-0.000976562 -0.0214844 -0.00195312 -0.0419922 -0.00195312 -0.0634766c0 -0.618164 0.501953 -1.11914 1.12012 -1.11914 +c0.0214844 0 0.0410156 0.000976562 0.0625 0.00195312h9.63965c0.0205078 -0.000976562 0.0410156 -0.00195312 0.0625 -0.00195312c0.618164 0 1.12012 0.501953 1.12012 1.12012c0 0.0214844 -0.00195312 0.0410156 -0.00292969 0.0625v27.7695 +c0 2.91016 0.0498047 11.3701 4.45996 15.0498c4.90039 4.90039 12 3.36035 13.4102 3.06055c0.630859 0.0107422 1.1709 0.393555 1.41016 0.939453c1.15918 2.57324 2.19629 5.28125 3.05957 8c0.0517578 0.130859 0.0800781 0.273438 0.0800781 0.422852 +c0 0.416992 -0.21875 0.783203 -0.549805 0.987305v-0.00976562zM502.69 170.6l-2.12012 7.29004c-0.470703 1.18066 -1.41016 0.709961 -1.41016 0.709961c-4.23047 -1.81934 -10.1504 -1.88965 -11.29 -1.88965c-4.63965 0 -17.1699 1.12988 -17.1699 19.7598 +c0 6.23047 1.84961 19.7607 16.4697 19.7607c0.299805 0.00683594 0.601562 0.0107422 0.90332 0.0107422c3.70605 0 7.26562 -0.587891 10.6172 -1.66113c3.35059 -1.07324 0.939453 -0.469727 1.17969 0.709961c0.939453 2.58984 1.63965 4.46973 2.58984 7.53027 +c0.230469 0.939453 -0.469727 1.16992 -0.709961 1.16992c-11.5898 3.87012 -22.3398 2.5293 -27.7598 0c-1.58984 -0.740234 -16.2305 -6.49023 -16.2305 -27.5205c0 -2.89941 -0.580078 -30.1094 28.9404 -30.1094c5.45117 0.0107422 10.6943 1.02051 15.5195 2.83008 +c0.319336 0.236328 0.527344 0.616211 0.527344 1.04395c0 0.130859 -0.0214844 0.256836 -0.0566406 0.375977v-0.0107422zM556.56 210.12c-0.799805 3 -5.36914 16.2295 -22.3496 16.2295c-16 0 -23.5195 -10.1094 -25.6396 -18.5898 +c-1.07129 -3.53906 -1.64746 -7.29199 -1.64746 -11.1787c0 -0.198242 -0.00585938 -0.383789 -0.00292969 -0.581055c0 -25.8701 18.8398 -29.4004 29.8799 -29.4004c10.8203 0 16.46 2.35059 18.5801 3.76074c0.469727 0.239258 0.709961 0.709961 0.240234 1.87988 +l-2.36035 6.83008c-0.200195 0.430664 -0.636719 0.729492 -1.14258 0.729492c-0.0927734 0 -0.180664 -0.0107422 -0.267578 -0.0302734c-2.58984 -0.939453 -6.34961 -2.81934 -15.29 -2.81934c-17.4199 0 -16.8496 14.7402 -16.9297 16.7002h37.1602 +c0.569336 0.0136719 1.04395 0.40918 1.17969 0.939453c-0.239258 0.00976562 0.94043 7.07031 -1.41016 15.54v-0.00976562zM533.27 216.47c5.11035 0 11.8506 -2.2002 12.7305 -14.1201h-26.3701c0.639648 5.12012 3.31055 14.1201 13.6396 14.1201z" /> +d="M213.86 152h-113.86c-55.1914 0 -100 44.8086 -100 100s44.8086 100 100 100h132.84c22.0771 0 40 -17.9238 40 -40s-17.9229 -40 -40 -40h-134.84c-26.4697 0 -26.4502 -40 0 -40h113.82c55.1914 0 100 -44.8086 100 -100s-44.8086 -100 -100 -100h-171.82 +c-22.0762 0 -40 17.9238 -40 40s17.9238 40 40 40h173.86c26.4795 0 26.46 40 0 40zM298 32c26.7314 18.1455 45.667 46.8174 51.1104 80h64.5498c10.8652 0.0927734 19.6572 8.94238 19.6572 19.8291c0 0.0585938 0.00292969 0.113281 0.00292969 0.170898v120v0.173828 +c0 10.8867 -8.79492 19.7334 -19.6602 19.8262h-117.24c9.34473 10.6875 15.0088 24.6729 15.0088 39.9697c0 15.2979 -5.66406 29.3428 -15.0088 40.0303h136.93c43.4404 0 78.6504 -35.8203 78.6504 -80v-160c0 -44.1797 -35.21 -80 -78.6504 -80h-135.35z" /> +d="M421.78 295.83c-48.1602 -26.3896 -118.561 -58.1504 -130.2 -50s91.4395 80.3701 106.689 88.7695c0.920898 0.5 1.80078 0.970703 2.63086 1.40039c2.07227 0.612305 4.28125 0.954102 6.55176 0.954102c12.7275 0 23.0605 -10.332 23.0605 -23.0596 +c0 -7.31445 -3.41309 -13.8389 -8.73242 -18.0645zM421.78 78.6602c5.27539 -4.22949 8.64258 -10.7148 8.64258 -17.9961c0 -12.7334 -10.3369 -23.0703 -23.0693 -23.0703c-2.24023 0 -4.40527 0.320312 -6.45312 0.916016 +c-0.830078 0.410156 -1.70996 0.900391 -2.63086 1.41016c-15.2695 8.38965 -118.25 80.6396 -106.689 88.7402c11.5596 8.09961 82.04 -23.6201 130.2 -50zM464.21 211c10.4287 -2.18359 18.2344 -11.4395 18.2344 -22.5127 +c0 -11.4219 -8.34375 -20.9102 -19.2646 -22.6973c-54.9102 0.0195312 -131.93 6.00977 -138.21 18.7598c-6.2793 12.75 118.84 26.5098 136.24 26.5098c1.0498 0 2.0498 -0.0595703 3 -0.0595703zM31 351.35c-0.817383 2.46387 -1.26074 5.09766 -1.26074 7.83496 +c0 13.7314 11.1484 24.8799 24.8799 24.8799c9.96582 0 18.5498 -5.8457 22.5205 -14.3145l81 -205.06h1.20996l77 203.529c3.42188 8.7627 11.9502 14.9775 21.9189 14.9775c12.9805 0 23.5195 -10.5391 23.5195 -23.5195 +c0 -2.33398 -0.353516 -4.59863 -0.988281 -6.72754l-109.6 -273.391c-18.5498 -47.2197 -37.1201 -79.5596 -93.29 -79.5596c-0.185547 -0.000976562 -0.371094 -0.000976562 -0.556641 -0.000976562c-7.9707 0 -15.6465 0.666016 -23.2539 1.95117 +c-8.90723 2.55371 -15.4336 10.7646 -15.4336 20.4883c0 11.7607 9.54883 21.3096 21.3105 21.3096c0.349609 0 0.677734 -0.0117188 1.02344 -0.0283203c0.660156 -0.0595703 10.9102 -0.660156 13.8604 -0.660156c30.4697 0 43.7393 18.9404 58.0693 59.4102z" /> +d="M439.55 211.95c5.22266 -5.22363 8.45508 -12.4463 8.45508 -20.4092s-3.23242 -15.1768 -8.45508 -20.4014l-194.689 -194.689c-5.22363 -5.21973 -12.4443 -8.4502 -20.4043 -8.4502c-7.96094 0 -15.1729 3.23047 -20.3965 8.4502l-195.609 195.6 +c-5.22266 5.22363 -8.45508 12.4463 -8.45508 20.4092s3.23242 15.1768 8.45508 20.4014l134.12 134.14l50.79 -50.8496c-5.95996 -14.2607 -2.16016 -36.4902 18.6396 -45v-123c-22.3203 -9.09082 -28.8203 -38.4004 -11.25 -56 +c6.21582 -6.21191 14.8066 -10.0557 24.2803 -10.0557c9.47266 0 18.0547 3.84375 24.2695 10.0557c13.1807 13.1494 16.2197 42.46 -9.08008 55v121.85l46.3506 -46.29c-14.21 -34.4697 29.5098 -63.8301 56 -37.3398c25.71 25.6895 -1.24023 68.4902 -35.4707 56.6895 +l-49.6592 49.6602c9.29004 26.9102 -16.3301 52.8203 -43.3906 43.6807l-51.5195 51.5195l40.6602 40.6299c5.22461 5.2207 12.4463 8.45117 20.4082 8.45117c7.96289 0 15.1768 -3.23047 20.4014 -8.45117z" /> +c14.4902 -7.60059 25.5605 -19.3301 33.5605 -33.8301c7.52734 14.4502 19.1924 26.1982 33.5801 33.8301c-14.4902 8.00977 -26.0508 19.0596 -33.8203 33.5498c-7.60156 -14.3262 -19.2539 -25.9658 -33.5898 -33.5498z" /> +c0 41.7695 34.3408 75.6494 76.6904 75.6494c0.0117188 0 -0.0234375 -0.00292969 -0.0117188 -0.00292969c5.91797 0 11.6826 -0.666016 17.2217 -1.92676c0.623047 2.21875 1.13281 4.53516 1.5 6.84961c6.92969 44.1904 -14.8496 72.8408 -78 72.8408h-133.44 +l-77.25 -290.74zM358 240.89l-9.4502 -36.75l-15 36.75h-31.3398l-26.6299 -90.3096h37.8301l7.83008 35.6299l11.1895 -35.6299h35.4102l22.1602 90.3096h-32zM503.86 58.8096l21.1992 84.0605h-103.869l53.0498 205.36h-92.5l-21.3301 -82.3506 +c29.3799 -10.5996 50.3799 -38.4102 50.3799 -71.0596c0 -41.7803 -34.3496 -75.6504 -76.6904 -75.6504c-0.0205078 0 0.0380859 -0.00292969 0.0166016 -0.00292969c-3.90137 0 -7.73633 0.28418 -11.4863 0.833008l-15.8398 -61.1904h197.07zM211.7 178.61 +c16.1494 0 29.7002 -7.51074 24.1396 -29.8203c-5.83008 -23.4697 -21.7998 -26.6504 -37.9395 -26.6504h-24.7002l13.7998 56.4707h24.7002zM233 278c18.0703 0 32.2305 1.29004 27.5801 -17.5703c-3.83008 -15.5 -21.21 -30.1396 -39.21 -30.1396h-21.3701l11.6602 47.71 +h21.3398z" /> +c33.6494 -45.6201 48.5293 -100.87 35.3096 -149.2c-1.16797 -4.21484 -2.58105 -8.44238 -4.16016 -12.4697c-1.72949 1.14941 -3.84961 2.41992 -6.72949 4c0 0 -76.3906 47.1699 -159.181 130.59c-2.16992 2.2002 44.1504 -66.25 96.7207 -121.74 +c-24.7803 13.9004 -93.7803 64.1201 -137.48 104.12c5.58301 -9.18652 11.8184 -17.7773 18.7803 -25.8994c36.4902 -46.2207 84.0898 -103.37 141.09 -147.221c-40 -24.4902 -96.6396 -26.3994 -153 0c-13.8662 6.50977 -26.9756 14.3477 -39.1699 23.3701 +c25.1133 -39.9365 61.6025 -71.4268 105.29 -90.3701c53.3203 -22.9199 106.35 -21.3799 145.85 -0.379883l0.419922 0.25c1.77051 1 3.53027 2 5.25 3c19.0801 9.7998 56.3105 19.46 76.3105 -19.4697z" /> - - - - - - - - - +c0.360352 5.24023 0.524414 10.1309 0.524414 15.4619c0 5.12988 -0.169922 10.2197 -0.503906 15.2656c-0.43457 14.9102 -1.64258 29.4004 -3.61035 43.8799c-1.87012 13.2197 -3.56934 22.3799 -5.38965 32c-1.02051 4.87988 -1.28027 6.39941 -1.83008 8.44922 +c-0.506836 2.22461 -2.49805 3.89062 -4.875 3.89062h-0.0253906h-0.819336l-32 -5c-2.37793 -0.385742 -4.20117 -2.44922 -4.20117 -4.93457c0 -0.0224609 0.000976562 -0.0439453 0.000976562 -0.0654297 +c-0.00976562 -0.128906 -0.0146484 -0.249023 -0.0146484 -0.380859c0 -0.130859 0.00488281 -0.260742 0.0146484 -0.389648l1.68945 -8.7793c1.60645 -8.86719 3.23633 -20.0938 4.88965 -33.6807c1.62695 -13.9551 2.49707 -27.7852 2.59961 -42.1494 +c0.266602 -26.9072 -2.44336 -46.834 -8.12988 -59.7803c-5.62891 -12.7627 -17.1777 -22.3076 -31.1504 -25.2305c-16.2686 -3.44336 -32.8506 -5.2627 -50.1387 -5.2627c-2.38477 0 -4.76172 0.0341797 -7.13086 0.103516h-10.25 +c-2.40625 -0.0712891 -4.53223 -0.0996094 -6.95605 -0.0996094c-17.2725 0 -34.127 1.80566 -50.3838 5.23926c-14.0283 2.86719 -25.6377 12.4033 -31.3105 25.1797c-5.60645 12.9336 -8.31641 32.877 -8.12988 59.8301 +c0.101562 14.3672 0.986328 28.2021 2.64062 42.1504c1.62012 13.6201 3.2334 24.8467 4.83984 33.6797l1.7002 8.78027c0.00976562 0.128906 0.0146484 0.249023 0.0146484 0.379883c0 0.131836 -0.00488281 0.261719 -0.0146484 0.389648 +c0 0.00488281 -0.00488281 0.00878906 -0.00488281 0.0126953c0 2.48633 -1.79297 4.55664 -4.15527 4.9873l-32 5h-0.69043c-2.37402 -0.0214844 -4.3623 -1.6748 -4.89941 -3.88965c-0.540039 -2.03027 -0.820312 -3.57031 -1.82031 -8.4502 +c-1.83008 -9.41992 -3.52051 -18.6094 -5.40039 -32c-1.95898 -14.4814 -3.16406 -28.9697 -3.59961 -43.8799c-0.351562 -5.13867 -0.530273 -9.93066 -0.530273 -15.1582s0.178711 -10.4131 0.530273 -15.5518c0.766602 -27.0928 5.43359 -48.7598 14 -65 +c8.57324 -16.2061 23.0801 -27.873 43.5195 -35c20.4404 -7.12695 48.9209 -10.6172 85.4414 -10.4697h4.59961c36.5605 -0.15332 65.0439 3.33691 85.4502 10.4707c20.4336 7.12012 34.9365 18.7871 43.5098 35.001s13.2402 37.8809 14 65.001z" /> + + \ No newline at end of file diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.ttf b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.ttf index 948a2a6cc76a4d7cb692d0d08e352f126ec48a9d..9c46cb3f913a068e1dbf0821508c629edcfe1bdc 100644 GIT binary patch delta 11410 zcmaKS378bs)png*)wOk3^;*4e)9dWhd&6vO1I)0FHk^Hltgt?G&OP5sHx+(yZ8Q#BFaL%>K)xOauihw$FSUjW&eaJb*bde>Gc!^ zGq5~&!LoTPHkMs+ilX>WDN1*?W8SJ2{r&hRqBP=tzGLZCi~h9O@G?bN)=_ZkXlMJp zg>J*zWq9u$JaV0#?S*+vj_$)3+VDc8bJ^;3SBzkfWBDnH;u1@{7R>vSyP}t(WPE_W zbJ@IgD@c}}fcFPs{owL>%i6bZ+y6%jzH7w}T)(1g)#{m}ms~Eimdom z@n2$9p}#-yec-FW7lBU$&jy|h><{b=6pcSKZa3ay++v($9A#AGzsrAeIi{h&6O^bW=oe!mq-^&)1_(B6ltccLj~u1uBom~t~cD1-ACNtdt#o+o}=EG-aXzgef7R|zT^HgffYeMI5YTc zS)^=x**`+guq`}2d~ala1Y7D`_Kb{-d}!q9QKnHl zMvJ3UqxZIotz%l3w%*gipncmuULJ>iPiV6IeTU7 z%EIxr_O&b5e!gzhHRPI`uX*R%#%s^6Z(hIhy2y103jV^V!l&J#?(N-=b-%U2wqfXo z;~P6S-u;uCH*MVX-SykA-@BRGykg61TT@#%Z|%FG<%XwkY`k&fO_rO6-*n*S;LW3M zUV8KCTUu_}^HcWL#I4=8b>6o9wj;Nl-gf);LB%6G8h564ZoIv^aQgxEI`!`G z{OcvZe&Gq{6Zh}y-p}k`zW>|b?0B;F$(c{~^?di#-M=d&p4;AA-+SZp(_h&B`{^%! z_fq{!*S+-QLH6La2fuuI?jinA6aW9P@yKi>RF>nFXZ zrk{H8(|bNMeO~$b=Fd-l;s4^`m))nwxliBuw~2o{d1ls`d%t47+I!Z2_O`Qc{C)M` z(LJe;d<08LBHZKt7=Z9Ts+ppqX;zJ#f@ZL*?WdrcxXRR>n5w;};BC81S*U7sN`6pm zY&aClW^(C7QhoeWScKk?rKtWB&~9Luqxcr1>E zTt1g_*x6Jr6AQ7n+(4?%{|qW4uT}>F)qy8iR(f@s`xp?)w<8&#+nFKLk*@DQcKV!SUI!9o=(Mc$yC}L zwKRj)A?@ez171ocdp`ag^iUAdjZkDLT#YV;qx6)KvQiElT>!@y$JxrJm3UeSE12r= zNMCSh_sZ~y;{m^4ul@bIcfD)98;`#KS>N|1Uid>>+heVGYHvIDSIXe2)GXyH^uG+J z;I~+cQB+>1l=(?6ugDOJ*FrXyXSsB)mc+v{;hG_xvODZcNdve|`(T&5&U zY6vNG!!VR%8#SHkpjJ`WVkgpe1?3nHVY^vWfIK#wNT(cJEF4OPP`);t!E_3zG90n{ zAe;?j-FPgU&~zo`$Y$bLk&EZjj$9UVtYRz4L3?R}W2-<3XL0sZY)-3LRR9G`(KHv% z$J37Vk_9B-tu*1?hr3Yb4VauZ zQ4y^!(V#SVT@x&J$zTDSgJ&gPFiWluy-|?$sCIXloQjb)jr-jUt0arUFyB){*Ui%8 zDE9aF_Yw-82P+JQkuV7^gAV9|JK&e_DC&^iW&~Do;1v8g%jC5*pKAa| zE+5ZiGwBq{FCW)30m$JKTAI2b#iBi(FJ1mm>d525QW6ShAIRATa*CE>b#3^z^QnWw z_lHA;SV_^VfJ>)*V5@?GN41v^wC2cYN@T-gGsH8s5HFQdxwxiS>1t)Oson=(FBRBLyqiY1;lnYXttgIiO3;5&HjZjv@d5=G>ef$oaOcupub$6L=F%IL?uP z8k)YN!1F;MdcsF5Dp$k<+e9?ExIAUwbNFB zFb@`6OSy;9v5d31>SdeF9~XI%23EXNka(U2_Gwlqz4PFO^K-t#1qN_}2+prIH|M5^ zyI_K>pfEp@26v$>7?cOj@deYv(*L(KE@%wsf(x*<3+L#^;?VzBbDHSSH%6HAqQ8|B zMT@|M!5tI7XXEZSH<6iXPWGBTWm8*B}T6p}b%gg>|%3pgC3) zOte7L<&gyMVi=bJ5xw8%kqD9U#g2vWdqEm z>ZmE2<#X6IJ65JSh)gc8ov@FZEAs=Iyriw5a5Aoh5QiOA?CB_8*Srs|N6n@+!w^X2 z(Hx;q(NIOn{=hD)AhI+tebZ=we4Lbf9TwAsWOzs=FY|HbGfkIZQm8(p19~sb;H9*- z=txR?PQbO?4U(+rQ7T-#FbH_TTQ1cM4rD_Zb&`I1ns>pL2|NH1veu0oAKxHVzU(u8e%|BZI zL?)TfpaqVj(`^9EBos8AAxFZN9GE-2f9{@xODPvz&7^?=DB$=ubkp#_@&XwS&_zbT zYXyK2q)@;t8lzQF;18^Ue z#6ro>X$D2S`!i8DQl?2e7puf>PoUZ^;4JN_^=KFX-;Me~1_A;8KZ)E!p zb22Ldn15w4{pTWNN*9CAS;aXzX5_7dE=CJ9k>+lC0%d7>&L++g#Fh)M(meJ}19sTC ze<5rgfOwQ6ALa5~Jgsxkh4>w5s9JsHw!^3T{?VnZcFmF8H)Mlp12_>%!082-x)Co`HeYi5!t{dg>&i`UZU0F=W|qng{{ z5O}3J9Xf<`K=N8#I=`XdFc~GD(d$J$&ke|o~{f9(hV~d8nFi$T$@J+ zvjI*r@bUt%nRus<1|ke)z-aX|{$Z@1C34VcHjR@wh82wliLj#0AmYQa#b9ThoMNHr z*x)A4WwMJpw#?tstcW$K`j((CijW_vq|!Qn9uH6yFGThXa2nZ zRP>i6`nGA6&OHF-r3#3vD1HC?upb2%qDE5VscF<~suNLafhycY-HuQdRZO!M;iQI$ z(Bq?WX}AP&M#;sa92{s7*>g}ztD(V|61qV^kp9^E`=gO=$L>Vv& z%HUeYr?g6l%+ZK77YKrJ3~IC*M62N_8LpBMegt4OO*1sH>vRi=j>cr{8UhBI><|br z?Sv+zT_@6Hj1GY1c%Cq0XqQbw0w-XVWvevDDoIv(u2tqlR+K7GvUp1xVwD({*9r1& ztIQNwfe|GK-opCQU!i3>wg)KkRV=9|#DL0EHBvKIqKV!nxOH?rKs{mIBB|P}X%|B_ zR{>OO@3qm`m~0)by~xVQ0yZjHN0pk!8xcv=@hl_RMoJ=sut2spV534o>nEBhQ~yyo z1A8%YvSAc47)j4_lW4^S-URt9hrY<3SMs$ukBD;dD#}RnNGKy~GfpZ>P{Y1Pxa;68 zw;a4>iAT`M9YW2v7Xs50`8obJ5IC-!{l`ZuDu1UddtDSGk-)~w-LQ1 zP?nkbJsk~~r>m?CuVcbIA7BVt{l3RZ_a!b@P)`gv3=Y*?J32`>IFSK%o>TL2)I`*# zaGVQc5R%6@1cRU-r0+mXS#qil7Na6f5z>W}1B1SBJcOguAg5y>48kF&6;rGa(hxTJY`)NtK)|AZ-r%;l^agGHH$@so#>*9JoU>Ye77qrq50@<}H#y?vi!6%UHExtYJnUiw0zWuv zBQ>}fvP6q*mMr*-8!QQH*oH9D89_X1b9upEKea};?~vusoLSbQ+;rHSjt{84QheB5 zMyi9wqizo!w9CcQZu>r+=O8=DPPr+{T9(q{Lxt9yIvPG2opUpRJmPTp3lOP=$bAQN z0t+oP!$O(sE-&0eOF;VONIG5zy9v;&j`Y1zEK<}yZ|FmS%Iy&kji99%j6|6FVZ-W+ zVd0v`CQ!?7_uh9f>rNErBrs-0sc){AUV)S@o_AQsim&_e>V{L?gVw{WPS?hf~t@S_6oMT_| z8ur4d9P!D(6%8Op&MnpRDKXbgYZzQnTU#-xacXVd;>qppQ#$*~Ck`Gwaqw47b(ukf z$EWL>ZY#%fy{EeGlS;q8(hto8iBvVDacV4;icM=6Qk5P&xW8U|uBvXl#csEZ-=USt zJ=LC__{jPHeb=vhLkABPXI)q0M1z3T48lBgpj-lbnn0k#4JO5Vue%A?eX*`^6$v|w z4;L=m$8`_q=%LiC;hQF#5q({R(cvG!MZ+5FtAb&RHLTO2 zKP95%PmUhunM7m2k*>E{d~FkaiX=Bql`s(8H(~2gVe@PMII-dCN3OnldaiDG-zT#cM$6ke;Xw>2$4t)+ z@tMOuM`zoJlu>G$I{j*_=gIf|^ySMeoo$m*C6Jh7`g`|Tb#JtMkDAd zcI=J_cO2Qa?Z~!YXNMPe?v5}mSrCiQ>~`*ZZFk4{+CzU~gFE(3`-SKX)KQI8J9RJh zBy|v%1Zv3umaBvqs#YRgEc`af#*!Iigo?lU?IlqhWD@7!o{Mp84BOSf* z>@(Wsd>Bc9a0p2=%%GugD4Mm_U<@vfG!6k}JEB!KAEtGL6Ts+2M3sJ3ND2DY=%<(4VSX0P*pgP#&id}mw zpo6;!5a2%PiPPfN{ya3u|a68KEka4#pAu-bJs&pcAbC)|iF6WMW+;KP9gAPwT z7c0QM7M2z{-oT@xc`a5y3l0z*R+biYdQnt()@!bi9KauT!zk7p@}e>`dS1u6gB~p_ z=v#ClmMyDbqbwW!)a@GL_U&`ypN_}CmIjllPxVt>_s-_cE_^X*%OPoJ?_~i zyWND@`37Ed$v|^va7#wB5e&p?5C^XDCU8ooAo8o0D_T(Fd7)1TS1?ZPpb8onz_lB(O$3W5JQcOx! z&HFYPAGUdI=Tn^^aoQD`lY}PC)J8lxRx!rCjL0$#)!AXgvegZYpA{Kz+^DcQPu~|a z*3X#HoU5!JgmXUG3j+cx9Ub&`lNdQX1_zBErMLuYRDGq@~pwz9a8vzb~(!!`pP!q3VQgA>7} zvnGw5+L{k)`NcEF4R0Bfgs5zno&JXMu@izDYQrX{(dio$9Xs8Iv#F)endWk#Rq_j*wHtnO5H(4K9eO{}>G~2pXlF%_K8fwYL?C9<(ND^{=gv53(5F zOr4-(bTq^0ss=}69yb96)t7U-D&mudsfjk&#t~w2N)o5O+6F`HVi~HVz%aDmVqh`I z#k#VuUM(8~M|;kUfxmFo9?D0RW1wT#fSiWfOCW-a#gSu2fQL{nuMFS{2&<*gax*{(xeZ`7*~&4&?Td%$eO zV9+^RL`u*Q#kiQT=!`&l6zkJ-5%KF(j0N31A}gfJWqnWW0#p)uCbdXSErMyd!*jzT zxReA0_0%GmYpu*MMEV8Kn7k4RR=N=}Qav*|;Ac>-;D*Nt+yt0_A=ahTJlqPPn1SiB z5p7;@xnSJO#Z>QNNTci~ErtY%)~cHp;|3DvRrhOUFQ=Yb3{|8y+GAe=lgxAnwM<=d z4GgNlwW#TU=BeYESSE{k42L-^qJy*}{KpFDHR3V#$TiRs4q1#0Z85tOWdQ;*K{kek z08dPQR_7`o->^B~7*q#c3nNB5qGbV>sAu&xl{s4An25{bVih)AYn00)b&XbArlu|I zSQ2uS%T0sukH6Be{+t}3L%I}sV`m&LCC5fT??0)B}ux}U~TPaYg-h}v}Q7` zJyX|%kFkzHoxT;d`3G;FRyS>cu!SfIn}XmF6>1>amNum=a7Uoi*}P!REKQ@TfsEC3iuVR;4t#C$Zpk) zu2ZCg%{38x(4ZJ)jww%D$wf55TLHTz;`ciglb)t$$!@crsla=%USXU*NfJ!>oq-dn zfOy77VC`tpBAV<9FOVDP;E>vgFz`N}j;GL(Bne}*v!Y+-oPB2<0mQzXoptyniMJXA zr&BhzR)cO?&-WYQQl`M+9vKxGKsRVL!lm)&vkopRBW^%nss(s41j@Lbm5ar4PaK=F zrfcG|WsOrR+orWv#>;A34{6uqO~=T(DU+^5EIp*0o!L~`R*C-=qZD@oN{dh>OoLy? z1StFhMyKHrO*zv-iO3Jfsz5!x1wz8`Nzk!vTgRNys%I<2DwBwMhN2Z zi|&ApJ)hkHZ_wdMhsKx~S7-2-rmE{O|pmio>E5H+Lm(A*i4iTJ~X zms4$fpv`0!|WP3G0gu8hJ8XEdO z49f6|*;>)pKO`ez|RvwBXQ`z#D95Xy!Eyc`9n z#a0xA%>#;^F6o+f!a2jW96A>^fif*MI+Y5C&m9kAX4EJ=QlRuxSiqZD#PdLA6sj`! zAH!qBP38cG-gP)++zWgYqTMl{-EdLtP1dZYTvAy{TmM3V@5 zqe(IOOg*iy!1X-bqaOJ)Z00r2S7UtDS;wG8SL%}b(_`Sg2+4hXYZ!sCwgH#LH~@Mr zE|+EJ&c5y{m!--R9ojsjYDjhOiiz`Xgl?Cm?+uHq3Mz*VwYd6vqn@1?H&+k2eBz2K zxM3c;nQxEbjslEUr@vMb)eWyfBf8j^UV}PfE>r*c8jK`%yV~?R)PYZ3{yI!3r;PpI zql$HxSX(3ILjJph+CmknUsG=(m0^Qg7z2x8nflS|kWw9QK;Do*dxNx`5@UU!UitQ9cteAJ?kkHabn z2^A`c6#QINh{5WjHz6YC@)*`3k5~)p&Nl&N!w=*2Ize}((Rf2ytrD^CYM9*M2sz3J z5}R$EFKyu0v4YNAYpyH1#~xLB{_!SU1D+OY46;rOv`rEW5H#V%E9tlfWs~a7Z$lh% z>TljIY4jIwLoIT4*Ch27G>O45^<}8Sm*Hk#HkFYBYIwSz6-&r zMuPz81YCM3ca*WZHvEV{7W5}Ly@>R@zLnLLEeD3>bUcQ5I!r7#GYDbiKmNfe3k==& zx5^k{Oo9ZSAoA(`=y#D}?)mAv(8bUZs`mDi;FR+Njshb#T-A0pcoIC98F9)CNO$V= zJCaTIOk@%;)n$68+jQrCwCmfB96x&W6jtF4rPHbAN_TA#KLtcPtoe40#crhVqf4-% znZrpyfT2w-+7E4_W9qh(5Ja1??<7?CHE4p!w3#4s@6~a#NAepv_7JZ#`X!I7{u{eU zF!g^3v3z{^q+y7|kyAIBAfnejb*>ht`|k(cdgL0A>1PN5D5~-iL?yxQa?^}RqiME_ z>NvbK$jIC6vW3&OrM10Ao1#=$6^3OQ#af{#Hc7zCh#fhz(QfCFbgoF)0qhB?=Wk!Y zY=Y=#{ApzKvb71d_YBOE(o`BZ0BX@Fr>KN_;xy!|vsg@M6h}Iptj(qp!SYdE%U1`7 zt!-b`wX8jOW&6rii@TQB2eY-wY|n_l!E^$L)jPj}X7#PFAVsKSJ%+QmnWC~^Yo&lX z=xcb#PY#gZk*CQsBSAF7s&6)i{vG8ki1L|sejgy1qF6td;8VxEA{OQJKAfO zws*{1aFy86)zz`Iy=KL{tC*E*R;^}NFTQ+r*X8`0<*QaKowuq}T(Goj&B8@X=dEn# zI@T;+y0CpA)4BM{c7E~lKWX%-XJnYkF+oz<6U%2Sb*C o4^>aoZ`41)oBJ2%+p`@XsN=HCCl{mwbRbJF#a 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 kih7I-R9J>!$W(UVIeQot7ht?yJ_?E4z}~NhRA& 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

w`Ao`B8FfP>nd2WTiT*&L> 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�d261qc>pomd%U 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

>mgkO>fCqAZ;D<#~dCNu@gDF$Q$tZlnhgu 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 -Created by FontForge 20190801 at Mon Mar 23 10:45:51 2020 +Created by FontForge 20200314 at Mon Sep 28 13:16:03 2020 By Robert Madole Copyright (c) Font Awesome @@ -20,7 +16,7 @@ Copyright (c) Font Awesome panose-1="2 0 5 3 0 0 0 0 0 0" ascent="448" descent="-64" - bbox="-0.0663408 -64.0662 640.01 448.1" + bbox="-0.0663408 -64.0662 640.004 448.1" underline-thickness="25" underline-position="-50" unicode-range="U+0020-F5C8" @@ -50,7 +46,7 @@ s-36 16.1182 -36 36s16.1182 36 36 36s36 -16.1182 36 -36zM164 192c0 -19.8818 -16. @@ -77,17 +73,17 @@ c0 -110.569 89.4678 -200 200 -200zM363.244 247.2c0 -67.0518 -72.4209 -68.084 -72 c17.5615 9.84473 28.3242 16.541 28.3242 29.5791c0 17.2461 -21.999 28.6934 -39.7842 28.6934c-23.1885 0 -33.8936 -10.9775 -48.9424 -29.9697c-4.05664 -5.11914 -11.46 -6.07031 -16.666 -2.12402l-27.8232 21.0986 c-5.10742 3.87207 -6.25098 11.0654 -2.64453 16.3633c23.627 34.6934 53.7217 54.1846 100.575 54.1846c49.0713 0 101.45 -38.3037 101.45 -88.7998zM298 80c0 -23.1592 -18.8408 -42 -42 -42s-42 18.8408 -42 42s18.8408 42 42 42s42 -18.8408 42 -42z" /> +d="M288 304c0.114258 0 0.240234 -0.0175781 0.354492 -0.0175781c61.6543 0 111.71 -50.0557 111.71 -111.71s-50.0557 -111.71 -111.71 -111.71s-111.71 50.0557 -111.71 111.71c0 10.7422 1.51953 21.1328 4.35547 30.9678 +c7.95898 -4.52637 17.2129 -7.17188 27 -7.24023c30.9072 0 56 25.0928 56 56c-0.0683594 9.78711 -2.71387 19.041 -7.24023 27c9.88379 3.07617 20.3896 4.83008 31.2402 5zM572.52 206.6c2.21387 -4.37793 3.46094 -9.38965 3.46094 -14.626 +c0 -5.2373 -1.24707 -10.1855 -3.46094 -14.5635c-54.1992 -105.771 -161.59 -177.41 -284.52 -177.41s-230.29 71.5898 -284.52 177.4c-2.21387 4.37793 -3.46094 9.38965 -3.46094 14.626c0 5.2373 1.24707 10.1855 3.46094 14.5635 +c54.1992 105.771 161.59 177.41 284.52 177.41s230.29 -71.5898 284.52 -177.4zM288 48c98.6602 0 189.1 55 237.93 144c-48.8398 89 -139.27 144 -237.93 144s-189.09 -55 -237.93 -144c48.8398 -89 139.279 -144 237.93 -144z" /> +d="M634 -23c3.66895 -2.93262 6.00391 -7.45117 6.00391 -12.5088c0 -3.7832 -1.31543 -7.26074 -3.51367 -10.001l-10 -12.4902c-2.93359 -3.66309 -7.44824 -5.99414 -12.502 -5.99414c-3.77637 0 -7.25 1.31152 -9.98828 3.50391l-598 467.49 +c-3.66895 2.93262 -6.00391 7.45117 -6.00391 12.5088c0 3.7832 1.31543 7.26074 3.51367 10.001l10 12.4902c2.93359 3.66309 7.44824 5.99414 12.502 5.99414c3.77637 0 7.25 -1.31152 9.98828 -3.50391zM296.79 301.53c7.51172 1.60254 15.2266 2.45508 23.21 2.46973 +c60.4805 0 109.36 -47.9102 111.58 -107.85zM343.21 82.46c-7.51367 -1.59375 -15.2285 -2.44336 -23.21 -2.45996c-60.4697 0 -109.35 47.9102 -111.58 107.84zM320 336c-19.8799 0 -39.2803 -2.7998 -58.2197 -7.09961l-46.4102 36.29 +c32.9199 11.8096 67.9297 18.8096 104.63 18.8096c122.93 0 230.29 -71.5898 284.57 -177.4c2.21289 -4.37793 3.45996 -9.38965 3.45996 -14.626c0 -5.2373 -1.24707 -10.1855 -3.45996 -14.5635c-14.1924 -27.5625 -31.9229 -52.6689 -52.9004 -75.1104l-37.7402 29.5 +c17.2305 18.0527 31.9385 38.1318 44 60.2002c-48.8398 89 -139.279 144 -237.93 144zM320 48c19.8896 0 39.2803 2.7998 58.2197 7.08984l46.4102 -36.2803c-32.9199 -11.7598 -67.9297 -18.8096 -104.63 -18.8096c-122.92 0 -230.28 71.5898 -284.51 177.4 +c-2.21387 4.37793 -3.46094 9.38965 -3.46094 14.626c0 5.2373 1.24707 10.1855 3.46094 14.5635c14.1885 27.5586 31.916 52.6621 52.8896 75.1006l37.7402 -29.5c-17.249 -18.0469 -31.9727 -38.1221 -44.0498 -60.1904c48.8496 -89 139.279 -144 237.93 -144z" /> +d="M567.403 212.358c5.59668 -8.04688 8.59668 -17.6113 8.59668 -27.4121v-136.946c0 -26.5098 -21.4902 -48 -48 -48h-480c-26.5098 0 -48 21.4902 -48 48v136.946c0 10.167 3.19531 19.6465 8.59668 27.4121l105.08 151.053 +c8.67383 12.4678 23.0791 20.5889 39.4043 20.5889h269.838c16.3252 0 30.7305 -8.12109 39.4043 -20.5889zM153.081 336l-77.9131 -112h425.664l-77.9131 112h-269.838zM528 48v128h-480v-128h480zM496 112c0 -17.6729 -14.3271 -32 -32 -32s-32 14.3271 -32 32 +s14.3271 32 32 32s32 -14.3271 32 -32zM400 112c0 -17.6729 -14.3271 -32 -32 -32s-32 14.3271 -32 32s14.3271 32 32 32s32 -14.3271 32 -32z" /> +c0 56.9277 35.2861 92 83.2002 92c0.0283203 0 -0.0361328 0 -0.0078125 0c7.66602 0 15.1582 -0.748047 22.4072 -2.17578v86.1768zM224 364.8c0 18.9756 -16.2246 35.2002 -35.2002 35.2002c-18.7002 0 -35.2002 -16.7754 -35.2002 -35.2002v-158.399 +c-17.3242 0 -35.1992 26.3994 -70.3994 26.3994c-26.4004 0 -35.2002 -20.625 -35.2002 -44c0 -8.79395 32.7119 -20.4443 56.0996 -34.9258c14.5752 -9.07422 27.2256 -19.5244 39.875 -30.7988c18.374 -16.1094 36.6328 -33.8359 39.5967 -59.0752h176.753 +c3.7627 42.79 39.6758 74.5088 39.6758 120v21.2988c0 40.5244 -22.1973 57.124 -61.3252 50.6006c-8.00098 14.6113 -33.9785 24.1514 -53.625 12.9248c-18.2246 19.3652 -46.3809 17.7871 -61.0498 4.9502v91.0254zM352 24c-13.2549 0 -24 -10.7451 -24 -24 +s10.7451 -24 24 -24s24 10.7451 24 24s-10.7451 24 -24 24z" /> +d="M433.941 382.059c8.68848 -8.68848 14.0586 -20.6943 14.0586 -33.9404v-268.118c0 -26.5098 -21.4902 -48 -48 -48h-80v-48c0 -26.5098 -21.4902 -48 -48 -48h-224c-26.5098 0 -48 21.4902 -48 48v320c0 26.5098 21.4902 48 48 48h80v48c0 26.5098 21.4902 48 48 48 +h172.118c13.2461 0 25.252 -5.37012 33.9404 -14.0586zM266 -16c3.31152 0 6 2.68848 6 6v42h-96c-26.5098 0 -48 21.4902 -48 48v224h-74c-3.31152 0 -6 -2.68848 -6 -6v-308c0 -3.31152 2.68848 -6 6 -6h212zM394 80c3.31152 0 6 2.68848 6 6v202h-88 +c-13.2549 0 -24 10.7451 -24 24v88h-106c-3.31152 0 -6 -2.68848 -6 -6v-308c0 -3.31152 2.68848 -6 6 -6h212zM400 336v9.63184c0 1.65527 -0.670898 3.15723 -1.75684 4.24316l-48.3682 48.3682c-1.12598 1.125 -2.65234 1.75684 -4.24316 1.75684h-9.63184v-64h64z" /> +d="M433.941 318.059c8.68848 -8.68848 14.0586 -20.6943 14.0586 -33.9404v-268.118c0 -26.5098 -21.4902 -48 -48 -48h-352c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h268.118c13.2461 0 25.252 -5.37012 33.9404 -14.0586zM272 368h-128v-80h128v80z +M394 16c3.31152 0 6 2.68848 6 6v259.632c0 1.65527 -0.670898 3.15723 -1.75684 4.24316l-78.2432 78.2432v-100.118c0 -13.2549 -10.7451 -24 -24 -24h-176c-13.2549 0 -24 10.7451 -24 24v104h-42c-3.31152 0 -6 -2.68848 -6 -6v-340c0 -3.31152 2.68848 -6 6 -6h340z +M224 216c48.5234 0 88 -39.4766 88 -88s-39.4766 -88 -88 -88s-88 39.4766 -88 88s39.4766 88 88 88zM224 88c22.0557 0 40 17.9443 40 40s-17.9443 40 -40 40s-40 -17.9443 -40 -40s17.9443 -40 40 -40z" /> @@ -241,13 +237,13 @@ c4.70508 4.66699 12.3027 4.63672 16.9697 -0.0683594l22.5361 -22.7178c4.66699 -4. +c-13.7021 -5.33105 -26.3955 -11.5371 -38.0498 -18.585c-1.82715 -1.11523 -3.98633 -1.76953 -6.28027 -1.77734h-86.1006c-3.31152 0 -6 -2.68848 -6 -6v-340c0 -3.31152 2.68848 -6 6 -6h340c3.31152 0 6 2.68848 6 6v25.9658c0 5.37012 3.5791 10.0596 8.74023 11.541z +" /> +M363.351 93.0645c-9.61328 -9.71289 -45.5293 -41.3965 -104.064 -41.3965c-82.4297 0 -140.484 61.4248 -140.484 141.567c0 79.1514 60.2754 139.4 139.763 139.4c55.5303 0 88.7373 -26.6201 97.5928 -34.7783c2.37793 -2.1875 3.86914 -5.3252 3.86914 -8.80762 +c0 -2.39746 -0.717773 -4.64258 -1.93359 -6.51465l-18.1543 -28.1133c-3.8418 -5.9502 -11.9668 -7.28223 -17.499 -2.9209c-8.5957 6.77637 -31.8145 22.5381 -61.708 22.5381c-48.3037 0 -77.916 -35.3301 -77.916 -80.082c0 -41.5889 26.8877 -83.6924 78.2764 -83.6924 +c32.6572 0 56.8428 19.0391 65.7266 27.2256c5.26953 4.85645 13.5957 4.03906 17.8193 -1.73828l19.8652 -27.1699c1.45996 -1.98145 2.32422 -4.42969 2.32422 -7.07715c0 -3.28809 -1.32422 -6.2793 -3.47656 -8.44043z" /> +c0 34.4023 -52 33.7744 -52 0.676758v-116.571c0 -8.83105 -7.17773 -15.9961 -16.0078 -15.9961c-4.0166 0 -7.68848 1.48242 -10.499 3.92969l-7 6.09473c-3.37012 2.93457 -5.49316 7.25293 -5.49316 12.0674v41.2275c0 34.2148 -52 33.8857 -52 0.677734v-56.9531 +c0 -18.8555 8.27441 -36.874 22.7002 -49.4365l97.71 -85.0801c12.4502 -10.8398 19.5898 -26.4463 19.5898 -42.8164v-10.2861h220v7.07617c0 13.21 2.65332 26.0791 7.88281 38.25l42.835 99.6553c3.37891 7.82715 5.28223 16.501 5.28223 25.5625v0.0498047z" /> +c-44.1123 0 -80 35.8877 -80 80v8c0 30.8779 25.1211 56 56 56h293.917c24.5 0 47.084 -12.2725 60.4111 -32.8291zM528 16v76.1709c0 0.0166016 -0.0439453 0.106445 -0.0439453 0.12207c0 14.3945 -4.24219 27.8057 -11.5439 39.0498l-146.358 225.715 +c-4.44336 6.85254 -11.9707 10.9424 -20.1367 10.9424h-293.917c-4.41113 0 -8 -3.58887 -8 -8v-8c0 -17.6445 14.3555 -32 32 -32h213.471c25.2021 0 42.626 -25.293 33.6299 -48.8457l-24.5518 -64.2812c-7.05371 -18.4658 -25.0732 -30.873 -44.8398 -30.873h-113.709 +c-22.0557 0 -40 -17.9443 -40 -40c0 -4.41113 3.58887 -8 8 -8h131.552c0.0175781 0 0.0712891 -0.0273438 0.0888672 -0.0273438c9.16992 0 17.9404 -1.72461 26.0039 -4.86621l99.752 -38.7881c18.5898 -7.22852 30.6035 -24.7881 30.6035 -44.7363v-23.582h128z" /> +d="M501.03 331.824c6.92773 -11.1826 10.9697 -24.4053 10.9697 -38.5146c0 -5.92676 -0.706055 -11.6885 -2.03809 -17.208l-57.623 -241.963c-13.2236 -56.1904 -63.707 -98.1387 -123.908 -98.1387h-0.352539h-107.455 +c-0.0761719 0 -0.193359 0.00195312 -0.270508 0.00195312c-40.9248 0 -78.1475 15.9814 -105.761 42.0391l-91.3652 85.9766c-14.3076 13.4434 -23.2246 32.5547 -23.2246 53.7168c0 19.5254 7.61035 37.2861 20.0254 50.4766 +c5.31836 5.66406 29.875 29.3926 68.1152 21.8477l-24.3594 82.1973c-1.97363 6.64844 -2.97656 13.6836 -2.97656 20.9688c0 38.6953 29.8926 70.4639 67.8262 73.4531c-0.246094 2.45117 -0.34082 4.85547 -0.34082 7.37207c0 34.4199 23.585 63.376 55.4619 71.5752 +c43.248 10.9785 80.5645 -17.7012 89.6602 -53.0723l13.6836 -53.207l4.64648 22.6602c6.99023 33.5186 36.6826 58.8037 72.2373 58.916c8.73438 0 56.625 -3.26953 70.7383 -54.0801c15.0664 0.710938 46.9199 -3.50977 66.3105 -35.0176zM463.271 287.219 +c7.86914 32.9844 -42.1211 45.2695 -50.0859 11.9219l-24.8008 -104.146c-4.38867 -18.4141 -31.7783 -11.8926 -28.0557 6.2168l28.5479 139.166c7.39844 36.0703 -43.3076 45.0703 -50.1182 11.9629l-31.791 -154.971 +c-3.54883 -17.3086 -28.2832 -18.0469 -32.7109 -0.804688l-47.3262 184.035c-8.43359 32.8105 -58.3691 20.2676 -49.8652 -12.8359l42.4414 -165.039c4.81641 -18.7207 -23.3711 -26.9121 -28.9648 -8.00781l-31.3438 105.779 +c-9.6875 32.6465 -59.1191 18.2578 -49.3867 -14.625l36.0137 -121.539c6.59375 -22.2441 10.1777 -45.7803 10.1777 -70.1523c0 -6.54297 -8.05664 -10.9355 -13.4824 -5.82617l-51.123 48.1074c-24.7852 23.4082 -60.0527 -14.1875 -35.2793 -37.4902l91.3691 -85.9805 +c19.0469 -17.9736 44.75 -28.998 72.9795 -28.998h0.157227h107.455c0.0732422 0 0.138672 0.0429688 0.212891 0.0429688c37.5791 0 69.1016 26.1416 77.3564 61.2168z" /> +d="M358.182 268.639c43.1934 16.6348 89.8184 -15.7949 89.8184 -62.6387v-84c-0.000976562 -5.24023 -0.600586 -10.3037 -1.72754 -15.2041l-27.4297 -118.999c-6.98242 -30.2969 -33.7549 -51.7969 -64.5566 -51.7969h-178.286 +c-21.2588 0 -41.3682 10.4102 -53.791 27.8457l-109.699 154.001c-21.2432 29.8193 -14.8047 71.3574 14.5498 93.1523c18.8115 13.9658 42.1748 16.2822 62.083 8.87207v161.129c0 36.9443 29.7363 67 66.2861 67s66.2861 -30.0557 66.2861 -67v-73.6338 +c20.4131 2.85742 41.4678 -3.94238 56.5947 -19.6289c27.1934 12.8467 60.3799 5.66992 79.8721 -19.0986zM80.9854 168.303c-14.4004 20.2119 -43.8008 -2.38281 -29.3945 -22.6055l109.712 -154c3.43457 -4.81934 8.92871 -7.69727 14.6973 -7.69727h178.285 +c8.49219 0 15.8037 5.99414 17.7822 14.5762l27.4297 119.001c0.333008 1.44629 0.501953 2.93457 0.501953 4.42285v84c0 25.1602 -36.5713 25.1211 -36.5713 0c0 -8.83594 -7.16309 -16 -16 -16h-6.85645c-8.83691 0 -16 7.16406 -16 16v21 +c0 25.1602 -36.5713 25.1201 -36.5713 0v-21c0 -8.83594 -7.16309 -16 -16 -16h-6.85938c-8.83691 0 -16 7.16406 -16 16v35c0 25.1602 -36.5703 25.1201 -36.5703 0v-35c0 -8.83594 -7.16309 -16 -16 -16h-6.85742c-8.83691 0 -16 7.16406 -16 16v175 +c0 25.1602 -36.5713 25.1201 -36.5713 0v-241.493c0 -15.5703 -20.0352 -21.9092 -29.0303 -9.2832zM176.143 48v96c0 8.83691 6.26855 16 14 16h6c7.73242 0 14 -7.16309 14 -16v-96c0 -8.83691 -6.26758 -16 -14 -16h-6c-7.73242 0 -14 7.16309 -14 16zM251.571 48v96 +c0 8.83691 6.26758 16 14 16h6c7.73145 0 14 -7.16309 14 -16v-96c0 -8.83691 -6.26855 -16 -14 -16h-6c-7.73242 0 -14 7.16309 -14 16zM327 48v96c0 8.83691 6.26758 16 14 16h6c7.73242 0 14 -7.16309 14 -16v-96c0 -8.83691 -6.26758 -16 -14 -16h-6 +c-7.73242 0 -14 7.16309 -14 16z" /> +M366.442 73.791c4.40332 -7.99219 -1.37012 -17.791 -10.5107 -17.791h-42.8096c-0.00488281 0 -0.000976562 -0.0126953 -0.00585938 -0.0126953c-4.58594 0 -8.57422 2.58301 -10.5869 6.37305l-47.5156 89.3027h-31.958v-83.6631c0 -6.61719 -5.38281 -12 -12 -12 +h-38.5674c-6.61719 0 -12 5.38281 -12 12v248.304c0 6.61719 5.38281 12 12 12h78.667c71.251 0 101.498 -32.749 101.498 -85.252c0 -31.6123 -15.2148 -59.2969 -39.4824 -73.1758c3.02148 -4.61719 0.225586 0.199219 53.2715 -96.085zM256.933 208.094 +c20.9131 0 32.4307 11.5186 32.4316 32.4316c0 19.5752 -6.5127 31.709 -38.9297 31.709h-27.377v-64.1406h33.875z" /> +d="M268 32c-6.62305 0 -12 5.37695 -12 12v216c0 6.62305 5.37695 12 12 12h24c6.62305 0 12 -5.37695 12 -12v-216c0 -6.62305 -5.37695 -12 -12 -12h-24zM432 368c8.83105 0 16 -7.16895 16 -16v-16c0 -8.83105 -7.16895 -16 -16 -16h-16v-336 +c0 -26.4922 -21.5078 -48 -48 -48h-288c-26.4922 0 -48 21.5078 -48 48v336h-16c-8.83105 0 -16 7.16895 -16 16v16c0 8.83105 7.16895 16 16 16h82.4102l34.0195 56.7002c8.39258 13.9844 23.6777 23.2998 41.1602 23.2998h100.82 +c0.0078125 0 -0.015625 0.0517578 -0.0078125 0.0517578c17.4824 0 32.7949 -9.36719 41.1875 -23.3516l34 -56.7002h82.4102zM171.84 397.09l-17.4502 -29.0898h139.221l-17.46 29.0898c-1.0498 1.74707 -2.95898 2.91016 -5.14355 2.91016h-0.00683594h-94 +c-0.00585938 0 -0.00683594 0.00683594 -0.0126953 0.00683594c-2.18457 0 -4.09766 -1.16992 -5.14746 -2.91699zM368 -16v336h-288v-336h288zM156 32c-6.62305 0 -12 5.37695 -12 12v216c0 6.62305 5.37695 12 12 12h24c6.62305 0 12 -5.37695 12 -12v-216 +c0 -6.62305 -5.37695 -12 -12 -12h-24z" /> + + \ No newline at end of file diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.ttf b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.ttf index abe99e20c38a23e95295917d6a5cdb49a8489eb8..ee60bb59dffca6abfb16ae92c5b28213dff8ea05 100644 GIT binary patch delta 1008 zcmZ8gZAe>J7=F+FNN#T8jfuJUnwXp1B$~t|#(doyzdurSpbliTBAsjs#`VLmRhhGM zRfZGhk70Mq*8P)h_@gaWyrmSjj&3c(A2Rj``@ZLW zpXc!K9L}XBVqu900|I~|m`!?hT@Up zYc|z(#U8W|**~yvm2{SDIdYCwM}hC;KM`EQ3E`d?6Hka=l;%o5D&2PuIe&4z>)I@{ zm-UtHxrg1mQcn8Dv*hLGy#3w{?-RLSUX!2rYJ6vW>;A+3yMczlTA)zgSAMJfQ3X}e z6ift{gTIC9LKC6Y(A}^-+#9}H$yJV2ZboV%>rpv+EV>)Z#Fk@Es}`#E<2~{H>Qf0J zv6y6&E6LweM^kswr_-Nj$}?v&-zlszt2|QM)D895Eb7)hroW74hNdkB3Vlm6v>vq8 z8ayQ+LKy@g3Q!?P$YBWh{J}<)X+~<=m(u3Mas%f?oRiZoihhFUwXa170{y<|4-h1+ zGxgt7=wzDZ0RFuBc<)M2>PEbZzFMZ7iE{db+N|)B!mWX*H=%hPpMBR3tG3{gXdIeeHJwK!I9l*RC9iP-;C& zX%CKMXwE(4<}_b#oEODfNs`FI0O~2MCoJ0*yg?uC-3rhOb}gY@pOK7JN<68=6I#=3 zSX-Nk7o{N$Njy~`g%O{g&c^=1LM1>tos27~gdFY|ADfa}r}LBJqj~w2{He*~<70L5 U!9}|7wLeUbJ9~xO|NlFG19+zft^fc4 delta 1036 zcmZ8geP|nH7=PYN?k;z^UhdLMF3rc~JGmz9<$9M~y0%NBi?wcDnPSVB;@Z(=)poVu zKvymLgKhkRmHGti@Z=e|&j(zWDtf ze((G6PEBJMr!g520Mx-G*x*1{*OU8aF0?%kaF(;W!AC2PbU_B*0+`yEm2;srtLZp4 zda_!%{lPK-6#*Dq96mZYd+m>^l>#hQEklk!s{p)Di8D&O{euL$SN@p7@mnn;1@fpV&$Y$=*~s zwUBnCd(%_t%jpd{B|j(MY>YKdHr~nfWUgoP*;CoArtYSNX0CZ&A(WvUk$XkWsBg4L zEuUz#Hm3cq&*(qoTl44h>jkOsx&g*P<3`b5L<2R6`kQo;1kMn4^c_wTwG_XLhLNV0?UgWpZ-AzrOxI ztF4H!IA*uk?Cr~TG;aRf*^da*DDT54(wr(E#7N5grR=rVQ@dAw4PiK0JNqz>Fpt}O zbx&AB=o;v7%-W{cBe)QYvRF*Pa!A1n`Jy4FQ-!=y+;N74!l+on%pdn?iiFxR%_yQx zC)P$imKi~e6!cS16HY=1%08PML{ZU`^4nS5<_&XZp`vPaSssn}6$16RJr3#*xs7zX zsD7eeph6zW@r08OW^FdRFGJvULEaF#0B6otRGi@x4N$vYxrX;ft@p}6&eE!RJ-omo z7b4=Z93m~BD)9Ld>O_XFSt<>j7kO0Fc@pQzIFG3Wjnnu%ZJmqn*=#$N`ORLxn_y_H zV6*M+L==e*J*aA%d*^89A~->XR_K6kbFME#mQXv=BxGLg%R2}kGvwe{yZKk2B2uh% z=Ut&t$hJLz4s3semddf hc2Lj=pzAG)s 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 delta 14827 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 diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2 b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2 index 7e0118e526eb53511cb57e7cfaf515784fee4345..f385ea8d16c3408e9482b5e5d17005c31a6aae09 100644 GIT binary patch delta 13547 zcmV;@hh;DLe1q$n zl#*?C-=hE`yKM);Py)cLFi7!AVA3uJYR^8D=ggBn0Wp8|)7QHvcK2k!LNjItC>`5f zl51mWfN1G1mGuEj1E|6PSlaN!!{EG-M;t@~%xw3+zd%#|!FGQaZF+Mfl9c+CE+*@i zHEn6D)f@Bk+khjl=}Zmg0C-u1(t0gCtwoBNrV|N>v>3E4`5~< z#$m#SoCx+jOfEnFv5fVOYHJx}xm&0f(84l&a2Z32{vqH01R-0Qxi*Z=Pof_Fy+c%uyn zcmWWA;UGbVf*9h-=QC=VPXh~Sqn%FH^CfP!bCwHC@_&Be!_TKY1*(iU(Nr_dw#Z7` zUF&~0Ui7N>edb$#_uHeCGAgXN`WCdRH4Qh?Sl@N3n?36N!5;Z3JloEVOTXXT@0T;j z7Hstfwrz)Ybfs z*Sz2vPx+o(9AX#UEMft**s)>3gdUiRr+mtPd7GEHn>*Q?J=vXI*`7`5$&$=Xa=h;K zyX`vm@(!+SS&Ji0q4#{8r}KF3&JDKss|Z@e2f3BSbt3)4e|k7!=>|-xNzA!%r+R;% z3RE3vxQ|m!AdcrWDd80!i0Yzu4@IKLtxKJbERU^gxZ#8l&S z9bnK3iAx)Na}#r%wjl*rd#{;ky0d@2?FhIB1@~p(y~HGmK~4omh#{ghine|QXQ7I- z0UaO`l>+XjdcPU&C%BzbFVD4CB|xF`wDW~cqPu%#ua^cAd0s$Na2P}p)e+2n1Qq+` z(gKYc<=f-0wOooG7dT?RCQ#7}#zzwGA2hT{>cGSgnt3iYxF{La$>*<4F1mk9dm9J` zu~i&Wr}+WpwRSoMrQJ+aLui43Ii;?55&bbLd|3|FOXl9{HkU<`Z2ksMV27~k{hH{LrAOizf7Q{5h5!Q z(;mJt)3;u8YYZq!Ps9;YitvAc3kA@7WkgiV#J)Mw6l=Oroja}dD#yZQbZudM;jb7g z#J1)HK1G{W#L~I~QCKjTt67~mS=Wm;^b#|0Hg>|o`g{c9!mM31x&CeAjA9{})mF|j>YX&P z#JM~n9_=&Del{(`Fb!gsXaurbsImhclP(4zGo8PuiQ^0HVM|0a;c-DGR|>35+h8Q8 zX%OHmY5*7T2*np*M8TlhKwBHyEw|$Y85o$=lYs^%f5gg-vp4Wym8^#xs=sJEz3wJ_ zv`{yYSil4qgOb+~4C`oB%or4^SbURlJrdhrK17kFucB@_oHK28PzSQL@2BL{r zXA1JJe>+&O!pcMHq!2pC>Op97nA=KNQJVMz;php0eFjZPjJS|78bzOTKv9?}+BYJC zMweLX@WmZ1F__x6l(?CVwJSyMCsA}{`PyJr93Q9o4G$k+3)Mp7tJbuZM-ge%Gk|Q; z#JOPFhh)?Fr|qN?6Pd*dD3u^wOw&v~1xyn=YJju@{L+S4+q!K(STxsqr_6alBQ4O|*iu@F=I{BQvAdMCFp ze<%#MzrxDrvyH6K`b(hQJFs>5NA~}77gFr>ne*qvm*L&JH?Ax7`|}sm^4!@=my$Qh zg9j5`-8a4YO#SZtyCHv3&tEv7s?6nOcY;26G1yBkUAz=mnQ}c`%ve+Cmy%ubTiU3; zd+rfbOY@4LSLEWMYp0ra%9kC=<kiXF80d1`3$UI6ib(^A4hoDzAXX|$r7)5Kjj1V|dPjPiJg0?@aGA|1 z#2cJ5#0#u;byVd=*v3f^f#atMYRC-@&FiI|WkQpsP4?q^Hl0yfRXvYWNgg&=e|Gvs zt%eAUf`yFa_k_+IY81rPZgJuj$PR5_*jVl(b?6MhjwYH^Y7kwvluDcqVhiL> zCwAu=4Yg66>cd_F9ot1y5jT_waZl5I4Shnq%>igix~zgG=yR1o7I!PajttGqk6NEF zMV2wONEd90&VZevp7^ty=`lG=PtCfA!1q()cmQ&`pw#+0?cp^UKPRKCdb_-L1lt4Rwx&<%Za= ztdMTu6@@jmj$2@LQPYpaB;QpH3PX4Q=x_6ZWn-7HM$!Z`?lK_R^ozNKtH{4if8`#w9z*{&Y4=s1 z4ot@oo5uHb3B;4)abf{pe~p?P0S?s8dcDe3>UQ&{)Mr5`ABs}Xe6i_jprb6?`3G+y z9i2!$YRCE7KQw9+!J6L;SC)$5E+L8}&arB8R$3Q<@Q2lwZTZWnCo*M-X@T8EP3zH3 zPDP`gLM7ux_zrG?f83M59_8Xp>P(?B@(|HQjHl65ACY=2f^l758pk6SN%4P)G3L}# zZ&Wf}t1N1wiKb9tBdrz+qtW|pOP>1;1edD7OBDK5<=90{+}1`s-%NraAhULUuG0?EbeRN>YnRjRHVG5lJR<<#EI@7udM7z4T3bWzA z=dr86N>+t2M6#|~1|$8QVj_7nivOSfihoecEfvu@d)A$IhI-F`@pcJr?-e}S5@g4GkUZCv?-ez-q4Z7bXc5& z*BF3YwWa+XAO1+LX9~7$f$IV^=>c`_EFxE18r*Tb=ZJ2YTPUm^Zh5Vh)`&Nq<|i z9EHYp#Mp`xvJ8IoB17uq%QhOu7IJ&!MU9)i2uENlIRE#{+rtG1%Y-%@@s zGhu#BQeqL{U7JFWv%x4$8E-DwgY=y?m`dyef5HO--{)LW*a8wL9`yuXts*pQ`oyH? zor4d)6SuH7_;m85E;(5HBFCpp`CF~+h6=NYF~pr0SQ|KS@Ms;xQA%?QYf$oWEqgF) z1muftg|8u!sK{gb9|DgChmORsWy+`&Fr^kWr75s&QDJ>YL3-7c;^8qj>>Z6@D}n5N ze?oDQ11*r=!GN8?zC@PQ0m8txL`%UH9VZ|nfiK@F3?o{-iDNJ+fLEB6Si036xdg?{ zc%;OS;yHCFI0!meSf-?0E$0cF*{nFgdy9j(iF=0~uAYiA6lyWR@Bro?Oqqn%6OI8+ zSmw|R-`xmgrwq0XAvk^Agd;R-9y(rpe|#=k6VRf6&xB~!TWwl%izJZ)wkEswp%%?{ z!9&tSmi@WRa9z=AR_#(g_&AGOF*}~D@SlN+RHx$l;^GAojM=J*2hVhGr^Q$rx${mB zcUJT2wI^Bg&K`3LWRGMFhI%ZWNa)Zk!D|+>nyE^btL8pKeWm)UcK|8+%Qgske=iVf zw5a7*EbQrMTdg<&(eEu)f|xc=wNvl0!jaZW0VED$R#~nBig7wb5!`5XAO?evEfE{% zFBQB%_b1wYZ>PN;7T2miO zKrdA$CEGx~mg&(sP`Bt$oD5gTe{mHcQYMgf4XCf@RC7OtfoCGyG&-(zhLS%qiixt) zx;po9T+0`**0k^$xj#iwT$xdiWWn8-cL^NV6=)V3T0Z*#tNB3+A(|*`v6k#cSaM5+ zWW#4u+MLA7#$~_6@1J#!WjXSm4QLpG)bFBZ=~zT{<%wj;f<&JDSGVAjf8b_kSUyy4 z=v+A0EQ*5)Jw`6RxBSCG#!S8$9H$W-(>++D5j~UP&h-BkS0>ZX{Vgu>A;m=CdDn9- z#PHr9un<9AO+NCk%lolAq8kjv19bYD8&)zfRZzN*M|0%J>{pkgpv z<^GJKm&z5zx7?^me@(teq%XI4YG{M=cted&ppq6JbUUKy)>#XEHP~AL+{)t0 zQ-#%?o&wtYC?gIEJuTH|D%~LArQp)#p|NcPvzP`ma{<6$)AGOgm6y)hMpY<1EF=ye zcaO8P8G60sOg?bh_Pin)JJY}YAbU(m_o1;*>J>lh`ts79eU_VVf6E=L3EIVrUvjWt zKyvS3iGDA_;GBaPO^K2bxD1RjL0h6qtKl1_c86=XhENdFRa#J6mlssxQz_rtC7dxU zNNAP?HgD|%3|ew|(lp`d$KZ~^e%wM|wmKBnCY$&ZhoVc_mYkMxyQ|bcU8|^TmfA78 z`HE!AG^FUcS~f3_V41CduZR~D}e1a6(HKh6tg9o1IX&rG2F@)1~lwJ1cQ5Xe;X7qEpFy7{;=2;3=Fuf z4v5TAreWJYW3KjJul2xZsKe(5?$Hh&4Aa70H4*ebw{0c_3T>rS6b7g&$I>?fWsyqQ zVCl>ECFDG;<18{d2UhgT8)?~EPp!C3IYV;^#7|)iYdZbUt;42GGT!@ZBXp{dGcqjL zMG9R8eykNFe{{n(B2RFLg3xoK=J|D4rm9quYDLL#;MvN4A(?1!z848|wSfY2g`*D+ z2uD)2I4CK%l|o4wV?g_{7;aJ+7l(y$+{@9UaaG~OkQMc4DC)L1jqzfc+fMgR`Daz4 z+;_Jti{~q;`WZvYNIE|D~`xOF1$(AnF^Lvf6rQ=uo3i&Cb@DtM0`BoFQhs_ z<7^y+?Pc8fxwNEeb;)VdHE@hZb>pQM?4K9T5HWk0AQg4D#C3vP4anzN%h$zU_$# z3!;9ae=X2ugL_&z7bo6DH?B*!&^K+ox=n5?o!udvK0(Ws^&2=N!Jfykz}$I954P1a zadIrd+EYnQBOaa&OMX5I4~K|rz4R2;u@{NOgq{paI%g}b-}vT|XV%`?**?^LuGXu# z@6@+w(?nCr0DBHA2(nL->B1F6dj#|kjB!zw0}Z6erztHHJ)H>>@$se!6Djc zf2;l3De`8LUSd&Yo#FpHQ})8PnQk^?<{v1NebUmy{%8W2%pe*G&-+d;CmhqQOO;PQ z4P$NaCmte!%_b5{7DM`9Jc2kwf?(KQDfA3%BZC9YS|692#D(>=+~MlN8W5q)^L4-7 zCPNy=8Fdo1`q&6qF3_xb71?4(m}=TkT}fN7-bGpBBzCqPJ`@>0K%Go;m(HJY9?ghU2U; z*7f5xj<17m!rhG!#FD15%LK+-Z$wePXNZUaPS)$*8GlIZ=h^W75a(&U+*~8*u}`Vi zK|Ljf+OK~egqf--hx^%Pf2+f7z6?S6#LzJ&F&~0J2z?g_ov-X08G&><=x^e#M*D}p z5BAE94DOzoXmZ+}9n0L2-sIB9I6|r|@|de*_byjcLBS6MykvXUtaiGP7oFb8v3_So zAcCEs(C#l0oiF_2aD9Ed9|7&6k)g4bRqcn`^AmKw&vc^_*Etvnf0as|uK4@GDCjZg zs2sqd&UqeW^QHUx8+vVpQJ)1_G7q_|!|49=ht$RCvbaeXzuvk#Eh)MJ320`U5rVp3 zgFq_F&BGY@HA85yE=G_y&s?x(9slLCICXMuc~6Qr(UCY)gq{~F?6vtDr1`+QK{<+k z=UB=1a;Vi$&Z+~Ne||hj?n4_8)V3mEa`2)I_#v zzAK({Ltsu7+W`df9%Yy5xK5E!jJBj3hl+_Ip!tjdX7t>EJz&!qEq3^>x6ZC1C6Yvzg9$>tUYHPQ!Ma~R?De_^72AE8@n8n&^nteJR%|j+g|nYc$M*J@f!?8OpOXP~)lM{T_sOv!p@z?oUZW znqR)!e~($$!}N?E817p9h|u>}Cu>5Kz%%5N=I~INcL2TTAXBpj3zCRRC%m;i6#^AW z*?tmFMI0Ozn$MR>z)#XsQP@X#w76?{Alj3g<`cUAt6wxjNuRp$K~mOkco06*S=85a zkY>%1i?J(n*s=o~n5S!H1=!dx+tk!bTyz0}e;Iq1nsCH=Ai7^ZKvb-!1U!+ULk*UX z8KVV>AM1H0ZNz@2Pa4-g_G0y)udW*VI{$JU)5@ly(oX^?>lMU-^7|rCPZXLdSX5F- ze%ay&$ZAhBHyoHL`~c(CSASMtEaj8N+#jJe@#;SkUreKOsPP;7lyMF$nqZ-m<$|FsX@@9XH{a}iOWlT9NNe2!@qY!Oc6)0;W zL)>O;Yozr-yg>G`UDRC?j8+H2&1off3Ufc+urqHIsH>M5bUdgT~rs$v+&G!pxo)V zAkZC1kk%&>Gl_}yQp0$P-JTM6;PG>N2+R(0{}Q4}P1UH=Qo=%haR;&C5Q8kL`9NG! zMHLvfbfOdwY8&zOVg&639v@(4Tu?-kWq~I}!jn)u6Z=K6zCp}5_=CqhXvSy-e+DRG zV~g~8DgdUU^OD-kZ{vg3%l&fdYUzmcO-D>q?Y*i+c0#6QwGbbY^5j*BYqhfSJkmpA z3k$6QwfYbp`dX`w`yhy`8&UFj!*xO<23W^MD4LfyVKD|Pu&%R_;RMRL=Hy1u;ec*W zd3jm8x2^8}Uzz;E+|YN-oY(7Lf9EjYh2}!`cw5v3mH%wc;aQA~f4tU*Uw!$@ zxT7{$yKEdB`O|dkQC!vJvbaE~ctSqW)n(ry3d3y?Irru5Zwg8cjtsx9`;?5GDcW8s zj_m^9&nofHN4oRmyx6;y>XzR&ziD66%^lma!88m9rm?c+D2gZ6g?ou{Ihd@0M+Ak@ zhgF5KU8!5UVy)U4g`_?uf0BF-r50HD@f=cOE-Q07m#qN?69#tnq$1t_|M{IhqUWRnH;e9WyP=3^2fAaFi)-4;QBiH!B zQVpkF#%;=B^HMWDAUok#RBA50%Hsl)M2hY7qdF;xQ}#ne+eze6uQ@)xK00FTa8JB> z2)U~_ez?bzFlDlKjz${HzcwP>^=TtK=#fUW4(%Y*ZY45<)9*E-j$ESuZ;K<^Gh6CS z;`I=zui%}?ht{59e`2i8$9Im8*C-kFXmCzZ5}k~c`O_%O3m)M86Mi87C?!$-;e$Sr z(sDBJK+6i#PiQC!M?LuoX}kSF`?30_z~Xdux{6Uyz)($V`bBRbG^-eeZtuwNIakiR z8_N`+8(TYj!-m_s2eY~5`s@z>CmAxW&G3-GO^I@ZMvUh)e>d;3Z$M6nS$^6?TQmUXxFazIyktAmQFW(c{^QP)SDL|33FUT7apTT(mLcTPzjl<0F~Y zaiT{se9B3Ue@oEak>xTRdu`8V4+yF`ebk;El>k+=cp?ge``5f~&d z4=WCXg*c^hB89|d+priMATVuSA64Dj2Ulx?+`$=|YIqv#+;{2mQ2c>R$Wa9T|_s!d(JX)lvjG_UN4h8Y~d@jNkJ?4 zN;16qrN`aXFj;%}zOVR5T_)C*RDyDR$DM(95Cp1(7l=I1&a(HdY#32TsCV@`68L+fdTdn&4g6m;J*w&r^;@Zr=VNHuJVLe`4w2$LgS)M|Z@vthxxEp~BMQVVkhf z&#Fx|k6B{XdkLP!3jKb{h~xp-WZ6Gd%nE1<_z8{|g0 ze{&VrjevBVER!n7vQ_ASbigREpAbAU(BD5|xheiYTC0a2bEzH_v=cCzI{)hI^|hC>qnfUnM^0-o|Tg@TAh+ z@O`k;H2PO%?tX99fM2vIK$oN7EeF;8B!s}$WIiFbnS5&i^vI50ot)#Nsp&$!+6=xP zM>w_Jwbp&LGtyBsoeNZtQFqcQlgAuxp4=zjhR1^<^1}SoYlT<-UN98RjtWxie>$i$ zTo;p3XdbZ?rw^;?)SgVZ-l-F^W2b9kcQzVps zwMPk$5C}LN1_Jf&e?L`@E@#m|(zQDJzyJ+)!SG8BkI^!nFK;cUf0^bF zEmcnln~#U|m3qWK!m~KjyWD0D;gKG}ta$Q^(wyz9$RFMmpUVi?i_HlYDtXg~6j&_?(e%JV|MgEvBHfAM|LXZRYL zQ?*TVa9tIusT;b)YYYKXPSP;=7gm}l+!eJ;Sd3(PTyo|*FLj4+C6|VI_+90ksc7Vt zA_>YwEd73*p3<(8mzRdU>MzhBIMFt3)w->LB1V72Ix-4%!o&3Y_vyoMXI5bXv}Y|U z$WujhZ4U?<2$C(FOfL5cf5k878bxF(S)K5V_=6a6l=k)0HGG!N-rw_NHpTbfO8S`oSn2-M@a{d%(XjZ}WgeMGadQUbO&2LQB;vx7ffuNvfIi&A^fhami^gbyf3U-)6tZgx_;d5*k^Mklo z^8v|ki;o0{h^&~e2D&)~;1Azbb<;toI|M7X0Z7{nRz|P*h@j@d|H&agZ?@7lRAx>i z64%@(>OkYv6nn;@?WIvWDK4suvH_cDuFh$vpStGKfAGv@GcjV!L_nLsmOFwQ_}S3j zd8^Kxuq?SP_^KFZrj6<%8(5AUU1izmZuT0vY|mDy<|>hdfe$JLb71fsXq$V221#Hh(eapRf`M-CHZQ z9`nzfe=nM!G__a%t4;%f&J4fZep&o)b$b)|R>;z^$Z9dUVMlZW5(0}gDBU{u$hg{a zzRP{vh?fv1w^V@drO|rvf>JIMxkLoCy@m}YO^?s{q-|th4D$GYu^_ejuxhl9CNQ4+ z`<|SZI~UIhyVZ!R{zkFBwc*AC?`dyNw9BM=f1Qb(W0`dNWjb7nECr`~j+W}4wfD6kA){@en?Mx zZcyg&_;ua&L90#|GC{aE;7E}v&}Y%2d-f%GjwR$-*03kbnB;HXwR;zbaho$}b{5xu zZxK?3T~I2`Bplo(S_bN|XpB<-9)Ue0jOk z8P`O738DvZ9#^UjdKhrS7p51(t4DjWWIlAOFkMcD`1Ym(#KPmpA$9q>#2ltse~L=8 zCMWT)fDBGo&Qw|B5i6{xRC6ij&=pzU7a*u(DLYzKc@Da;qb~C+ zm@n-^Fl#MuHg}_ZJD(UIr*CbWpC*!YbZK`sajk)~wA){IK%3pY^hh$|{b}Z*V{yan zIs<2Ik~eqv>@m89!LZPc;jT-2P`6|mUrGwC44qoP%aO*uSS)M@axNQse^lyL=aD6w z`J_!x4yoMRReNH)`PC|;DC%S?a(O9LORQC% z#|`2Bq1kFIkAs8A;k+=!@VMM`z9~b+Wh0!}^k9FUslkUcQnq^OvW%3+0O!vqd*;2s zU|tx5YdxJKIQt-3Yqm(Nf7)L;`2L={L+m0FSZ|1i_0N6f_wmYvl|<2ggFg;}vCT90a(hO>acgC#q+!syqKs_HJG15S z>wQrbn+BAt*ot5_ZRL#!J3(16Fg@7>HUu;YX*+#)e{LK?+quX8){sV3$XkDQ$yXcr#99MsC^{rbTjvYq{0?RdiuQfa( zILrF_eXr=P&`>tqL@0`nR8SRp4vPp)a70I!vUpn^lsVQ)bU_Y*U1oHiq$iYn5XZT$ zr2YrTf6t}Mx!LHf%Rd=zuns@lKx3olEFfV2_s_z^dmLRb+SbQda z*bl=q`7FjK@3TrsV%QJEI=*g>FuUW&W@Fb;jm>p_{@x4r3%%EngQ2f2uA{9K%(O6t zL7Hp)uTJ}y37>W=47s@>Oh$*K zgTYK9AK&ZmCWhFunlqm1tnZ*~Oon_kIb`xT5%aNpv;~u+XRZm5s*)FpID#l ze^j|8KGA%j?G`IcNaWe&?`2>R+x-a;ja1O?3&<#W; zY;N?gKQMtCpaC%Q-#rHe!WwEw$h>*KO(;LI0*r4FIe&4$PlqaX3*R^`Jty8`ZULr@ zA<>lS`*IHI-*pm?izO>bKFWFk0Ns$JI(&6_vuK#Qw8W1uQ--a2W6|0F@z1nHe-5ZM z>lzwJ5?%fES!Bw~k~OI?!hbXIX=MV$*aH>vi|)ZEE4CDx!-h@ygxQo(Kquu0c&C(d zag!}2C`iV+~IiXY`_ZqfCGU-Pfbb1zS)pp_7+53Cx3eAdW&tn!ym5}=MNcPNJLN} zPEOUx^@Ti;&daQ%i3Gl=i1DY1@SyHBms*6gz!pI^!6z|?uV?RN+Ior|e_wxtUV(6U zj`cZW0k6iB%s_b~MKuOrQe+vI|4(>Fg!xV!c-W?Q(l=={@LHe@DLdIfvB&v8*b^)9 zv9i%ged_Ttf0WARpui%|G(@r#mxLb%b-I2q$hTN&)c}h{Wj1|G)pCeugb!64gN2QS zWSQD@G1R=mkVUyRu*~x`e^^J*E4J@Gqu`#!wsZ$BiIetf7oxwFrf}VsS6i0pJaKAX znm1u{zN=WX4>a?x!;u}!FZO@%8z(*n{#BAuk`-0c4b!q6*Yg2Hm{7)rRN7eQgD{Gd zG|P*!s++d!hjE&hb=!~gx}W#^0YDHK0)@d5$RG-h!Q$`)qW_lRe}4}Ol@_Qom@GDj z%i{}#BC$j&lPi=eHFXV5Eo~iLJ$(a1BV!X&Gjj_|tMz8P+aHdn^W}QGKc27m=llCB z_3YguXzi?mcFj)h(by0Edk^oWw=o zwP#F{C$Csc&w0@B97A}Ikb^5ixjLSo`gU_c#t=g(~n=xS0zm91800Es-v*n%G*Ne-p-G$J-*HVJI_*PzSd< zYe|%2vlYlXB#Sx=U=?W!n05h2ZS7cNON#{)rz=e2 zraW8AT@uO2VSUX$1*w>xbXXd3pu8dSmavYN{~{VratK~M@|%xWE~pjDd?KbHGYAFs zk25JDKkUKs1dsmJif3zq!|0F3lTr=e~3C%96%o(&k4%Z0wDRq<^s*I zK|l#)DK^4*K8vv93*Dk_)N_Uq6wO>0wm4v$>71IOHf=Now?NqNXu${Te7jH%a&ZZ+ zl<1D`%_wj1T0qgND2|p*SqeW3gOc3inxL^_5o z7gbvHaZ^g*u`?ZcxS;NXtgZziy~)AOE(mpUBW@~~ed6}tDA$irR}s`sclN3x2owH_ ztK_ZWr_Dx7d%uNwXRv_RfNm$V@xtT^3DA?lIV8AeXj?q#=%FzGFeq6VLMA1ASi=DR l{W>)jX3Cqx8`{wzIIp+Cgn4D_5GFO*U`>mXVP8ox004I!U*Z4& delta 13541 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 diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.eot b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.eot index d3b77c223afc9a0a1af914936219da2b001a010f..12216b7610356e584c69eb872f5649072f0e61e0 100644 GIT binary patch delta 18216 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 OMDK5$=MVpPF#iwI>`HI| delta 16276 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%0AXT;^K=(L`HgNdq+l+55Jr*Mtr_V^39jC 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

u=7=dY=TI-!R_~1_UO@2Q2LI4!l`_|?aj+pHW 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 Z;j)IS6&@%K_o3QpVafB%#7{{x*24($K{ diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.svg b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.svg index 7742838b44..2ca9cd2131 100644 --- a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.svg +++ b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.svg @@ -1,12 +1,8 @@ - -Created by FontForge 20190801 at Mon Mar 23 10:45:51 2020 +Created by FontForge 20200314 at Mon Sep 28 13:16:03 2020 By Robert Madole Copyright (c) Font Awesome @@ -20,18 +16,320 @@ Copyright (c) Font Awesome panose-1="2 0 5 3 0 0 0 0 0 0" ascent="448" descent="-64" - bbox="-0.983398 -64.9834 640.104 448.427" + bbox="-1.00195 -64.9795 640.104 448.576" underline-thickness="25" underline-position="-50" - unicode-range="U+0020-F976" + unicode-range="U+0020-F8FF" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +d="M470.38 446.49c3.03613 0.957031 6.26953 1.47949 9.62012 1.47949c17.6514 0 31.9834 -14.3223 32 -31.9697v-352c0 -35.3496 -43 -64 -96 -64s-96 28.6602 -96 64s43 64 96 64c11.0361 -0.0605469 21.7158 -1.4248 32 -3.92969v184.609l-256 -75v-233.68 +c0 -35.3398 -43 -64 -96 -64s-96 28.6602 -96 64s43 64 96 64c11.0352 -0.0625 21.7139 -1.42285 32 -3.91992v261.41c0.00878906 14.3125 9.43359 26.4336 22.4102 30.5098z" /> +d="M280.37 299.74c2.09082 1.68555 4.76562 2.69434 7.6582 2.69434s5.55078 -1.00879 7.6416 -2.69434l184.33 -151.74v-164c0 -8.83105 -7.16895 -16 -16 -16l-112.02 0.30957c-8.83105 0 -16.001 7.16895 -16.001 15.999c0 0.0175781 0 0.0341797 0.000976562 0.0517578 +v95.6396c0 8.83105 -7.16992 16 -16 16h-64c-8.83105 0 -16 -7.16895 -16 -16v-95.71c0 -8.80371 -7.12695 -15.9561 -15.9209 -16l-112.06 -0.290039c-8.83105 0 -16 7.16895 -16 16v163.89zM571.6 196.53c2.70703 -2.20117 4.42578 -5.56152 4.42578 -9.31836 +c0 -2.88867 -1.02246 -5.54004 -2.72559 -7.6123l-25.5 -31c-2.20117 -2.66309 -5.53418 -4.35059 -9.25684 -4.35059c-2.90332 0 -5.56641 1.0332 -7.64258 2.75098l-235.23 193.74c-2.09082 1.68555 -4.7666 2.69434 -7.6582 2.69434 +c-2.89258 0 -5.55078 -1.00879 -7.6416 -2.69434l-235.22 -193.74c-2.0752 -1.71387 -4.73926 -2.75586 -7.63867 -2.75586c-3.73242 0 -7.07031 1.70898 -9.27148 4.38574l-25.5 31c-1.71875 2.07617 -2.7627 4.74414 -2.7627 7.64648 +c0 3.72266 1.69824 7.05176 4.3623 9.25391l253.13 208.47c8.29102 6.82227 18.9668 10.9209 30.5312 10.9209s22.1787 -4.09863 30.4688 -10.9209l89.5303 -73.6602v72.6104c0 6.62305 5.37695 12 12 12h56c6.62305 0 12 -5.37695 12 -12v-138.51z" /> +d="M256 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM348.49 127c2.19531 2.73926 3.52637 6.21973 3.52637 10c0 5.05566 -2.35059 9.56738 -6.0166 12.5l-58 42.5v144c0 8.83105 -7.16895 16 -16 16h-32 +c-8.83105 0 -16 -7.16895 -16 -16v-155.55c0 -12.6338 5.8418 -23.8975 15 -31.2305l67 -49.7197v0c2.7373 -2.19043 6.21387 -3.51758 9.98926 -3.51758c5.05566 0 9.56738 2.35059 12.501 6.01758l20 25v0z" /> +c-0.00195312 0 -0.00390625 -0.0078125 -0.00488281 -0.0078125c-4.12891 0 -7.53125 -3.13477 -7.95508 -7.15234zM315.64 144c9.5 0 16.9102 8.23047 15.9102 17.6797l-5.06934 48c-0.860352 8.14062 -7.7207 14.3203 -15.9102 14.3203h-45.1504 +c-8.18945 0 -15.0498 -6.17969 -15.9102 -14.3203l-5.06934 -48c-1 -9.44922 6.40918 -17.6797 15.9092 -17.6797h55.29z" /> +d="M567.938 204.092c5.07422 -7.61035 8.06152 -16.7998 8.06152 -26.625v-129.467c0 -26.5098 -21.4902 -48 -48 -48h-480c-26.5098 0 -48 21.4902 -48 48v129.467c0 9.8252 2.9873 19.0146 8.06152 26.625l105.689 158.534c8.60742 12.9102 23.2725 21.374 39.9385 21.374 +h268.621c16.667 0 31.332 -8.46387 39.9395 -21.374zM162.252 320l-85.334 -128h123.082l32 -64h112l32 64h123.082l-85.333 128h-251.497z" /> +d="M500.33 448c6.62305 0 12 -5.37695 12 -12v-200.34c0 -6.62305 -5.37695 -12 -12 -12h-200.33c-6.62305 0 -12 5.37695 -12 12v47.4102c0 0.00390625 -0.00878906 0.00878906 -0.00878906 0.0136719c0 6.62305 5.37695 12 12 12 +c0.194336 0 0.386719 -0.00488281 0.579102 -0.0136719l101.529 -4.87012c-31.6084 47.0322 -85.1172 77.8594 -145.992 77.8594c-97.1367 0 -176 -78.8633 -176 -176s78.8633 -176 176 -176c44.502 0 85.168 16.5518 116.173 43.8301 +c2.10938 1.84375 4.87793 2.96582 7.89746 2.96582c3.31055 0 6.31055 -1.34375 8.48242 -3.51562l34 -34c2.17383 -2.17188 3.52246 -5.17285 3.52246 -8.48633c0 -3.55176 -1.54688 -6.74512 -4.00293 -8.94336c-43.8477 -39.6924 -102.079 -63.9102 -165.824 -63.9102 +h-0.355469c-136.9 0 -247.9 110.93 -248 247.81c-0.0996094 136.66 111.34 248.19 248 248.19c0.0927734 0 0.116211 0.140625 0.208984 0.140625c75.5918 0 143.312 -33.9727 188.711 -87.4707l-4 82.7598c-0.00878906 0.192383 -0.0136719 0.375977 -0.0136719 0.570312 +c0 6.62305 5.37695 12 12 12h0.0136719h47.4102z" /> +d="M440.65 435.43c-0.00976562 0.192383 -0.0136719 0.375977 -0.0136719 0.570312c0 6.62109 5.37305 11.9961 11.9932 12h47.3701c6.62305 0 12 -5.37695 12 -12v-200.35c0 -6.62305 -5.37695 -12 -12 -12h-200.22c-6.62305 0 -12 5.37695 -12 12v47.4092 +c0 0.00488281 -0.00878906 0.00976562 -0.00878906 0.0136719c0 6.62305 5.37695 12 12 12c0.194336 0 0.386719 -0.00390625 0.578125 -0.0136719l101.46 -4.85938c-31.5938 46.9941 -85.1406 77.6738 -145.973 77.6738c-82.8662 0 -152.428 -57.4229 -171.027 -134.614 +c-1.24219 -5.29688 -5.99707 -9.25391 -11.6699 -9.25977h-49.0498c-6.62305 0 -12 5.36719 -12 11.9893c0 0.748047 0.0693359 1.48047 0.200195 2.19043c21.6201 114.9 122.44 201.82 243.54 201.82c0.0966797 0 0.123047 0.141602 0.219727 0.141602 +c75.5615 0 143.248 -33.9814 188.601 -87.4814zM255.83 16c0.015625 0 0.0185547 0.0898438 0.0332031 0.0898438c82.8701 0 152.43 57.4434 170.997 134.65c1.24219 5.29688 5.99707 9.25391 11.6699 9.25977h49.0498c6.62305 0 12 -5.36719 12 -11.9893 +c0 -0.748047 -0.0693359 -1.48047 -0.200195 -2.19043c-21.6201 -114.9 -122.439 -201.82 -243.55 -201.82c-0.0800781 0 -0.0908203 -0.140625 -0.170898 -0.140625c-75.4814 0 -143.106 33.9082 -188.459 87.3105l4.14941 -82.5703 +c0.0107422 -0.201172 0.015625 -0.395508 0.015625 -0.599609c0 -6.62305 -5.37695 -12 -12 -12h-0.015625h-47.3496c-6.62305 0 -12 5.37695 -12 12v200.33c0 6.62305 5.37695 12 12 12h200.2c6.62305 0 12 -5.37695 12 -12v-47.4004 +c0 -0.00390625 0.0078125 -0.00878906 0.0078125 -0.0136719c0 -6.62305 -5.37695 -12 -12 -12c-0.193359 0 -0.386719 0.00488281 -0.578125 0.0136719l-101.8 4.87012c31.5254 -47.0088 85.0449 -77.7998 145.847 -77.7998h0.15332z" /> +c-60.5791 0 -109.917 48.0967 -111.928 108.187l-14.3828 7.19141c-10.502 5.25098 -17.6895 16.0908 -17.6895 28.6221v48c0 141.504 114.52 256 256 256z" /> +d="M215 377c15 15 41 4.46973 41 -17v-336c0 -21.4697 -26 -32 -41 -17l-88.9404 89h-102.06c-13.2461 0 -24 10.7539 -24 24v144c0 13.2461 10.7539 24 24 24h102z" /> +d="M0 195.882v204.118c0 26.5098 21.4902 48 48 48h204.118c13.2461 0 25.252 -5.37012 33.9404 -14.0586l211.883 -211.883c18.7441 -18.7441 18.7441 -49.1367 0 -67.8818l-204.118 -204.118c-18.7451 -18.7441 -49.1377 -18.7441 -67.8818 0l-211.883 211.883 +c-8.68848 8.68848 -14.0586 20.6943 -14.0586 33.9404zM112 384c-26.5098 0 -48 -21.4902 -48 -48s21.4902 -48 48 -48s48 21.4902 48 48s-21.4902 48 -48 48z" /> +d="M497.941 222.059c18.7441 -18.7441 18.7441 -49.1367 0 -67.8818l-204.118 -204.118c-18.7461 -18.7451 -49.1387 -18.7441 -67.8818 0l-211.883 211.883c-8.68848 8.68848 -14.0586 20.6943 -14.0586 33.9404v204.118c0 26.5098 21.4902 48 48 48h204.118 +c13.2461 0 25.252 -5.37012 33.9404 -14.0586zM112 288c26.5098 0 48 21.4902 48 48s-21.4902 48 -48 48s-48 -21.4902 -48 -48s21.4902 -48 48 -48zM625.941 154.177l-204.118 -204.118c-18.7451 -18.7441 -49.1377 -18.7441 -67.8818 0l-0.360352 0.360352 +l174.059 174.059c16.999 16.999 26.3604 39.6006 26.3604 63.6406s-9.3623 46.6406 -26.3604 63.6396l-196.242 196.242h48.7207c13.2461 0 25.252 -5.37012 33.9404 -14.0586l211.883 -211.883c18.7441 -18.7441 18.7441 -49.1367 0 -67.8818z" /> d="M512 304v-288c0 -26.5 -21.5 -48 -48 -48h-416c-26.5 0 -48 21.5 -48 48v288c0 26.5 21.5 48 48 48h88l12.2998 32.9004c7 18.6992 24.9004 31.0996 44.9004 31.0996h125.5c20 0 37.8994 -12.4004 44.8994 -31.0996l12.4004 -32.9004h88c26.5 0 48 -21.5 48 -48zM376 160 c0 66.2002 -53.7998 120 -120 120s-120 -53.7998 -120 -120s53.7998 -120 120 -120s120 53.7998 120 120zM344 160c0 -48.5 -39.5 -88 -88 -88s-88 39.5 -88 88s39.5 88 88 88s88 -39.5 88 -88z" /> +d="M333.49 210c34.4395 -27.54 55.5693 -71.1504 50.8301 -119.6c-6.86035 -70.6504 -70.2002 -122.4 -141 -122.4h-209.32c-8.83105 0 -16 7.16895 -16 16v48c0 8.83105 7.16895 16 16 16h31.8701v288h-31.8701c-8.83105 0 -16 7.16895 -16 16v48 +c0 8.83105 7.16895 16 16 16h199.42c74.5801 0 134.45 -64.4902 127.07 -140.79c-2.43945 -24.5273 -12.1992 -47.1309 -27 -65.21zM145.66 336v-96h87.7598c26.4922 0 48 21.5078 48 48s-21.5078 48 -48 48h-87.7598zM233.42 48c30.9072 0 56 25.0928 56 56 +s-25.0928 56 -56 56h-87.7598v-112h87.7598z" /> +d="M320 400v-32c0 -8.83105 -7.16895 -16 -16 -16h-62.7598l-80 -320h46.7598c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-192c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h62.7598l80 320h-46.7598 +c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h192c8.83105 0 16 -7.16895 16 -16z" /> +d="M432 416c8.83105 0 16 -7.16895 16 -16v-80c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v16h-120v-112h24c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-128c-8.83105 0 -16 7.16895 -16 16v32 +c0 8.83105 7.16895 16 16 16h24v112h-120v-16c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v80c0 8.83105 7.16895 16 16 16h416zM363.31 155.31l80 -80c2.89453 -2.89551 4.68555 -6.89844 4.68555 -11.3115 +c0 -4.41406 -1.79102 -8.41211 -4.68555 -11.3076l-80 -80c-10 -10.0205 -27.3096 -3 -27.3096 11.3096v48h-224v-48c0 -15.6396 -18 -20.6396 -27.3096 -11.3096l-80 80c-2.89453 2.89551 -4.68555 6.89844 -4.68555 11.3115c0 4.41406 1.79102 8.41211 4.68555 11.3076 +l80 80c10 10.0107 27.3096 3 27.3096 -11.3096v-48h224v48c0 15.6396 18 20.6396 27.3096 11.3096z" /> +d="M12.8301 96c-7.07617 0 -12.8301 5.74414 -12.8301 12.8193v0.0107422v38.3398v0.00976562c0 7.07617 5.74414 12.8203 12.8193 12.8203h0.0107422h262.34h0.00976562c7.07617 0 12.8203 -5.74414 12.8203 -12.8193v-0.0107422v-38.3398v-0.00976562 +c0 -7.07617 -5.74414 -12.8203 -12.8193 -12.8203h-0.0107422h-262.34zM12.8301 352c-7.07617 0 -12.8301 5.74414 -12.8301 12.8193v0.0107422v38.3398v0.00976562c0 7.07617 5.74414 12.8203 12.8193 12.8203h0.0107422h262.34h0.00976562 +c7.07617 0 12.8203 -5.74414 12.8203 -12.8193v-0.0107422v-38.3398v-0.00976562c0 -7.07617 -5.74414 -12.8203 -12.8193 -12.8203h-0.0107422h-262.34zM432 288c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-416c-8.83105 0 -16 7.16895 -16 16v32 +c0 8.83105 7.16895 16 16 16h416zM432 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-416c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h416z" /> +d="M432 288c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-416c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h416zM432 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-416c-8.83105 0 -16 7.16895 -16 16 +v32c0 8.83105 7.16895 16 16 16h416zM108.1 352c-6.67773 0 -12.0996 5.42188 -12.0996 12.0996v39.8105c0 6.67285 5.41699 12.0898 12.0898 12.0898h0.00976562h231.811c6.67285 0 12.0898 -5.41699 12.0898 -12.0898v-39.8105v-0.00976562 +c0 -6.67285 -5.41699 -12.0898 -12.0898 -12.0898h-231.811zM339.91 96h-231.811c-6.67773 0 -12.0996 5.42188 -12.0996 12.0996v39.8105c0 6.67285 5.41699 12.0898 12.0898 12.0898h0.00976562h231.811c6.67285 0 12.0898 -5.41699 12.0898 -12.0898v-39.8105 +v-0.00976562c0 -6.67285 -5.41699 -12.0898 -12.0898 -12.0898z" /> +d="M16 224c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h416c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-416zM432 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-416c-8.83105 0 -16 7.16895 -16 16 +v32c0 8.83105 7.16895 16 16 16h416zM435.17 416c7.07617 0 12.8301 -5.74414 12.8301 -12.8193v-0.0107422v-38.3398v-0.00976562c0 -7.07617 -5.74414 -12.8203 -12.8193 -12.8203h-0.0107422h-262.34h-0.00976562c-7.07617 0 -12.8203 5.74414 -12.8203 12.8193 +v0.0107422v38.3398v0.00976562c0 7.07617 5.74414 12.8203 12.8193 12.8203h0.0107422h262.34zM435.17 160c7.07617 0 12.8301 -5.74414 12.8301 -12.8193v-0.0107422v-38.3398v-0.00976562c0 -7.07617 -5.74414 -12.8203 -12.8193 -12.8203h-0.0107422h-262.34h-0.00976562 +c-7.07617 0 -12.8203 5.74414 -12.8203 12.8193v0.0107422v38.3398v0.00976562c0 7.07617 5.74414 12.8203 12.8193 12.8203h0.0107422h262.34z" /> +d="M432 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-416c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h416zM432 160c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-416c-8.83105 0 -16 7.16895 -16 16 +v32c0 8.83105 7.16895 16 16 16h416zM432 288c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-416c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h416zM432 416c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16 +h-416c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h416z" /> +d="M80 80c8.83105 0 16 -7.16895 16 -16v-64c0 -8.83105 -7.16895 -16 -16 -16h-64c-8.83105 0 -16 7.16895 -16 16v64c0 8.83105 7.16895 16 16 16h64zM80 400c8.83105 0 16 -7.16895 16 -16v-64c0 -8.83105 -7.16895 -16 -16 -16h-64c-8.83105 0 -16 7.16895 -16 16v64 +c0 8.83105 7.16895 16 16 16h64zM80 240c8.83105 0 16 -7.16895 16 -16v-64c0 -8.83105 -7.16895 -16 -16 -16h-64c-8.83105 0 -16 7.16895 -16 16v64c0 8.83105 7.16895 16 16 16h64zM496 64c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-320 +c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h320zM496 384c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-320c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h320zM496 224c8.83105 0 16 -7.16895 16 -16v-32 +c0 -8.83105 -7.16895 -16 -16 -16h-320c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h320z" /> +d="M100.69 84.71l-96 95.9805c-2.89453 2.89551 -4.68555 6.89844 -4.68555 11.3115c0 4.41406 1.79102 8.41211 4.68555 11.3076l96 96c9.97949 10 27.3096 3.01074 27.3096 -11.3096v-191.98c0 -14.2393 -17.3096 -21.3096 -27.3096 -11.3096zM432 32 +c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-416c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h416zM435.17 160c7.07617 0 12.8301 -5.74414 12.8301 -12.8193v-0.0107422v-38.3398v-0.00976562 +c0 -7.07617 -5.74414 -12.8203 -12.8193 -12.8203h-0.0107422h-230.34h-0.00976562c-7.07617 0 -12.8203 5.74414 -12.8203 12.8193v0.0107422v38.3398v0.00976562c0 7.07617 5.74414 12.8203 12.8193 12.8203h0.0107422h230.34zM435.17 288 +c7.07617 0 12.8301 -5.74414 12.8301 -12.8193v-0.0107422v-38.3398v-0.00976562c0 -7.07617 -5.74414 -12.8203 -12.8193 -12.8203h-0.0107422h-230.34h-0.00976562c-7.07617 0 -12.8203 5.74414 -12.8203 12.8193v0.0107422v38.3398v0.00976562 +c0 7.07617 5.74414 12.8203 12.8193 12.8203h0.0107422h230.34zM432 416c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-416c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h416z" /> +d="M27.3096 84.7002c-9.97949 -10 -27.3096 -3.00977 -27.3096 11.2998v192c0 14.2197 17.2695 21.3398 27.3096 11.3203l96 -96c2.89453 -2.89648 4.68555 -6.89941 4.68555 -11.3125s-1.79102 -8.41211 -4.68555 -11.3076zM432 32c8.83105 0 16 -7.16895 16 -16v-32 +c0 -8.83105 -7.16895 -16 -16 -16h-416c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h416zM435.17 160c7.07617 0 12.8301 -5.74414 12.8301 -12.8193v-0.0107422v-38.3398v-0.00976562c0 -7.07617 -5.74414 -12.8203 -12.8193 -12.8203h-0.0107422 +h-230.34h-0.00976562c-7.07617 0 -12.8203 5.74414 -12.8203 12.8193v0.0107422v38.3398v0.00976562c0 7.07617 5.74414 12.8203 12.8193 12.8203h0.0107422h230.34zM435.17 288c7.07617 0 12.8301 -5.74414 12.8301 -12.8193v-0.0107422v-38.3398v-0.00976562 +c0 -7.07617 -5.74414 -12.8203 -12.8193 -12.8203h-0.0107422h-230.34h-0.00976562c-7.07617 0 -12.8203 5.74414 -12.8203 12.8193v0.0107422v38.3398v0.00976562c0 7.07617 5.74414 12.8203 12.8193 12.8203h0.0107422h230.34zM432 416c8.83105 0 16 -7.16895 16 -16v-32 +c0 -8.83105 -7.16895 -16 -16 -16h-416c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h416z" /> @@ -375,18 +674,18 @@ c63.4004 0 118.9 33.5996 149.9 87.5c6.69922 11.7998 22.6992 11.2998 28.2998 -1.2 d="M216 424.14c0 -103.14 168 -125.85 168 -296.14c0 -105.87 -86.1299 -192 -192 -192s-192 86.1299 -192 192c0 58.6699 27.7998 106.84 54.5703 134.96c14.96 15.7305 41.4297 5.2002 41.4297 -16.5v-85.5098c0 -35.1699 27.9805 -64.4902 63.1504 -64.9404 c35.7393 -0.469727 64.8496 28.3604 64.8496 63.9902c0 88 -176 96.1504 -52.1504 277.18c13.5 19.7305 44.1504 10.7607 44.1504 -13.04z" /> +d="M572.52 206.6c2.21387 -4.37793 3.46094 -9.38965 3.46094 -14.626c0 -5.2373 -1.24707 -10.1855 -3.46094 -14.5635c-54.1992 -105.771 -161.59 -177.41 -284.52 -177.41s-230.29 71.5898 -284.52 177.4c-2.21387 4.37793 -3.46094 9.38965 -3.46094 14.626 +c0 5.2373 1.24707 10.1855 3.46094 14.5635c54.1992 105.771 161.59 177.41 284.52 177.41s230.29 -71.5898 284.52 -177.4zM288 48c0.0234375 0 0.0458984 -0.000976562 0.0703125 -0.000976562c79.4365 0 143.93 64.4922 143.93 143.93v0.0712891 +c0 79.4756 -64.5244 144 -144 144s-144 -64.5244 -144 -144s64.5244 -144 144 -144zM288 288c0.0761719 0 0.160156 -0.0273438 0.237305 -0.0273438c52.8623 0 95.7803 -42.917 95.7803 -95.7793s-42.918 -95.7803 -95.7803 -95.7803s-95.7803 42.918 -95.7803 95.7803 +c0 8.68945 1.16016 17.1104 3.33301 25.1162c7.93164 -5.83594 17.7432 -9.26758 28.3359 -9.26758c26.4092 0 47.8496 21.4404 47.8496 47.8496c0 10.5938 -3.44922 20.3867 -9.28516 28.3184c8.0459 2.34277 16.541 3.66797 25.3096 3.79004z" /> +d="M320 48c8.91309 0.0830078 17.542 0.976562 26 2.61035l51.8896 -40.1504c-25.0195 -6.45996 -50.9795 -10.46 -77.8896 -10.46c-122.93 0 -230.29 71.5898 -284.52 177.4c-2.21387 4.37793 -3.46094 9.38965 -3.46094 14.626c0 5.2373 1.24707 10.1855 3.46094 14.5635 +c10.2393 20 22.9297 38.29 36.7197 55.5898l104.899 -81.0693c5.65039 -74.4004 67.0508 -133.11 142.9 -133.11zM633.82 -10.0996c3.76855 -2.92871 6.17676 -7.50977 6.17676 -12.6475c0 -3.69238 -1.25293 -7.09375 -3.35742 -9.80273l-19.6396 -25.2705 +c-2.92871 -3.76855 -7.50879 -6.17578 -12.6465 -6.17578c-3.69727 0 -7.10254 1.25684 -9.81348 3.36621l-588.36 454.729c-3.76562 2.92871 -6.1709 7.50781 -6.1709 12.6426c0 3.69434 1.25488 7.09863 3.36133 9.80762l19.6299 25.2705 +c2.92871 3.76855 7.50879 6.17578 12.6465 6.17578c3.69727 0 7.10254 -1.25684 9.81348 -3.36621l127.22 -98.3301c43.6846 23.8564 94.0967 37.6357 147.32 37.7002c122.93 0 230.29 -71.5898 284.52 -177.4c2.21387 -4.37793 3.46094 -9.38965 3.46094 -14.626 +c0 -5.2373 -1.24707 -10.1855 -3.46094 -14.5635c-20.2109 -39.3887 -47.6904 -73.7881 -81.25 -102.07zM450.1 131.9c8.61035 18.3203 13.9004 38.4697 13.9004 60.0996c0 0.0273438 0.00195312 0.0527344 0.00195312 0.0800781c0 79.4316 -64.4883 143.92 -143.92 143.92 +h-0.0820312c-34.6328 -0.0253906 -66.4756 -12.4902 -91.1504 -33.1104l73.6104 -56.8896c0.857422 3.20508 1.38867 6.5625 1.54004 10c-0.0185547 10.5391 -3.49023 20.3242 -9.30957 28.21c8.43164 2.46191 17.3359 3.82031 26.5576 3.82031 +c52.2998 0 94.7607 -42.46 94.7607 -94.7598c0 -0.423828 -0.00292969 -0.847656 -0.00878906 -1.27051c-0.138672 -10.377 -1.97559 -20.4014 -5.2002 -29.7197z" /> +l43.2002 -57.5996h102.86l-49.0303 171.61c-2.91992 10.2197 4.75 20.3896 15.3799 20.3896h65.5c5.95117 0 11.1396 -3.23633 13.9004 -8.05957l105.1 -183.94h114.29z" /> +d="M504.971 88.9707c9.37305 -9.37305 9.37305 -24.5684 0 -33.9404l-80 -79.9844c-15.0098 -15.0098 -40.9707 -4.49023 -40.9707 16.9707v39.9834h-58.7852c-3.46094 0 -6.58105 1.46484 -8.77246 3.81152l-70.5566 75.5967l53.333 57.1426l52.7812 -56.5508h32v39.9814 +c0 21.4375 25.9434 31.9971 40.9707 16.9707zM12 272c-6.62695 0 -12 5.37305 -12 12v56c0 6.62695 5.37305 12 12 12h110.785c3.46094 0 6.58203 -1.46484 8.77246 -3.81152l70.5566 -75.5967l-53.333 -57.1426l-52.7812 56.5508h-84zM384 272h-32l-220.442 -236.188 +c-2.26953 -2.43066 -5.44629 -3.81152 -8.77246 -3.81152h-110.785c-6.62695 0 -12 5.37305 -12 12v56c0 6.62695 5.37305 12 12 12h84l220.442 236.188c2.19141 2.34668 5.31152 3.81152 8.77246 3.81152h58.7852v39.9814c0 21.4365 25.9434 31.9971 40.9707 16.9697 +l80 -79.9814c9.37305 -9.37207 9.37305 -24.5674 0 -33.9404l-80 -79.9844c-15.0098 -15.0088 -40.9707 -4.48926 -40.9707 16.9707v39.9844z" /> +d="M164.07 299.9h-152.07c-6.62305 0 -12 5.37695 -12 12v80c0 19.8682 16.1309 36 36 36h104c19.8691 0 36 -16.1318 36 -36v-80c0 -0.0380859 0.000976562 -0.0751953 0.000976562 -0.112305c0 -6.5625 -5.32812 -11.8906 -11.8906 -11.8906 +c-0.0136719 0 -0.0263672 0.00292969 -0.0400391 0.00292969zM512 311.9c0 -0.00390625 0.00195312 -0.0078125 0.00195312 -0.0107422c0 -6.5625 -5.32715 -11.8906 -11.8896 -11.8906c-0.0380859 0 -0.0751953 0.000976562 -0.112305 0.000976562h-152 +c-6.62305 0 -12 5.37695 -12 12v80c0 19.8691 16.1309 36 36 36h104c19.8691 0 36 -16.1309 36 -36v-80.0996zM348 267.9h151.85c6.62305 0 12.001 -5.37598 12.001 -11.998c0 -0.0341797 0 -0.0683594 -0.000976562 -0.102539 +c-0.199219 -20.2002 -0.599609 -40.3994 0 -53.2002c0 -150.699 -134.42 -246.699 -255 -246.699s-256.75 96 -256.75 246.6c0.600586 13 0.100586 31.9004 0 53.2998v0.100586c0 6.62305 5.37695 12 12 12h151.9c6.62305 0 12 -5.37695 12 -12v-52 +c0 -127.9 160 -128.101 160 0v52c0 6.62305 5.37695 12 12 12z" /> @@ -422,10 +722,10 @@ d="M207.029 66.5244l-194.344 194.344c-9.37207 9.37305 -9.37207 24.5684 0 33.9404 c9.37207 -9.37305 9.37207 -24.5684 0 -33.9404l-194.343 -194.344c-9.37305 -9.37207 -24.5684 -9.37207 -33.9414 0z" /> +l-40.416 42.792v-182.119h187.548c6.62305 0 12.627 -2.68457 16.9707 -7.0293z" /> +d="M400 416c26.5098 0 48 -21.4902 48 -48v-352c0 -26.5098 -21.4902 -48 -48 -48h-352c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48h352zM94 32c160.055 0 290 129.708 290 290c0 7.11621 -4.97559 13.0801 -11.6279 14.6143l-65 14.998 +c-1.08691 0.250977 -2.20312 0.394531 -3.36621 0.394531c-6.18457 0 -11.501 -3.75195 -13.7939 -9.10156l-30 -69.998c-0.775391 -1.81055 -1.22266 -3.81055 -1.22266 -5.90332c0 -4.68066 2.14844 -8.86328 5.51172 -11.6152l37.8857 -30.9971 +c-22.4834 -47.9219 -61.8369 -87.8164 -110.78 -110.779l-30.9971 37.8848c-2.75195 3.36328 -6.94043 5.49414 -11.6211 5.49414c-2.09277 0 -4.08691 -0.429688 -5.89746 -1.20508l-69.998 -29.999c-5.34961 -2.29297 -9.08984 -7.59375 -9.08984 -13.7783 +c0 -1.16309 0.131836 -2.29492 0.382812 -3.38184l14.998 -65c1.55957 -6.75391 7.58301 -11.627 14.6162 -11.627z" /> @@ -512,11 +812,11 @@ c-8.41406 0 -15.4707 6.49023 -16.0176 14.8867c-7.29883 112.07 -96.9404 201.488 - M447.99 -15.4971c0.324219 -9.03027 -6.97168 -16.5029 -16.0049 -16.5039h-48.0684c-8.62598 0 -15.6455 6.83496 -15.999 15.4531c-7.83789 191.148 -161.286 344.626 -352.465 352.465c-8.61816 0.354492 -15.4531 7.37402 -15.4531 15.999v48.0684 c0 9.03418 7.47266 16.3301 16.5029 16.0059c234.962 -8.43555 423.093 -197.667 431.487 -431.487z" /> +d="M576 144v-96c0 -26.5098 -21.4902 -48 -48 -48h-480c-26.5098 0 -48 21.4902 -48 48v96c0 26.5098 21.4902 48 48 48h480c26.5098 0 48 -21.4902 48 -48zM528 224h-480c-0.0234375 0 -0.0996094 -0.0361328 -0.124023 -0.0361328 +c-10.8613 0 -21.2168 -2.18066 -30.6533 -6.12891l96.5283 144.791c8.60742 12.9102 23.2725 21.374 39.9385 21.374h268.621c16.667 0 31.332 -8.46387 39.9395 -21.374l96.5273 -144.791c-9.43652 3.94824 -19.8447 6.16504 -30.7061 6.16504h-0.0712891zM480 128 +c-17.6729 0 -32 -14.3271 -32 -32s14.3271 -32 32 -32s32 14.3271 32 32s-14.3271 32 -32 32zM384 128c-17.6729 0 -32 -14.3271 -32 -32s14.3271 -32 32 -32s32 14.3271 32 32s-14.3271 32 -32 32z" /> @@ -572,13 +872,14 @@ d="M507.73 338.9c11.7891 -47.4102 -0.84082 -99.6602 -37.9102 -136.73c-39.9004 -3 c-16.5 50.1006 -5.58984 107.561 34.0498 147.2c37.0303 37.0195 89.2002 49.6699 136.58 37.9297c9.08984 -2.25977 12.2803 -13.54 5.66016 -20.1602l-74.3604 -74.3594l11.3105 -67.8799l67.8799 -11.3105l74.3604 74.3604 c6.58008 6.58008 17.8799 3.51953 20.1201 -5.50977zM64 -24c13.25 0 24 10.75 24 24c0 13.2598 -10.75 24 -24 24s-24 -10.7402 -24 -24c0 -13.25 10.75 -24 24 -24z" /> +d="M139.61 412.5l17 -16.5c2.13281 -2.18066 3.44922 -5.16797 3.44922 -8.45605c0 -3.33496 -1.35352 -6.35547 -3.54004 -8.54395l-72.1992 -72.1904l-15.5898 -15.6191c-2.29297 -2.17969 -5.39941 -3.51758 -8.80859 -3.51758 +c-3.41016 0 -6.50977 1.33789 -8.80176 3.51758l-47.5898 47.3994c-2.18066 2.17383 -3.53125 5.18262 -3.53125 8.50195c0 3.31836 1.35059 6.3252 3.53125 8.49805l15.7002 15.7197c2.17285 2.18164 5.18164 3.53125 8.50098 3.53125s6.3252 -1.34961 8.49902 -3.53125 +l22.6992 -22.1191l63.6807 63.3096c2.17285 2.18066 5.18262 3.53125 8.50098 3.53125c3.31934 0 6.3252 -1.35059 8.49902 -3.53125zM139.61 253.31l16.9795 -17c2.125 -2.16504 3.43652 -5.13574 3.43652 -8.40625c0 -3.31641 -1.34863 -6.32031 -3.52637 -8.49316 +l-72.2002 -72.2197l-15.7002 -15.6904c-2.29004 -2.17871 -5.39551 -3.5166 -8.80273 -3.5166c-3.4082 0 -6.50586 1.33789 -8.79688 3.5166l-47.4697 47.5c-2.18066 2.17285 -3.53125 5.18262 -3.53125 8.50195c0 3.31836 1.35059 6.3252 3.53125 8.49805l15.7002 15.6904 +c2.17285 2.18066 5.18164 3.53125 8.50098 3.53125s6.3252 -1.35059 8.49902 -3.53125l22.6992 -22.1006l63.6807 63.7197c2.17285 2.18164 5.18262 3.53125 8.50098 3.53125c3.31934 0 6.3252 -1.34961 8.49902 -3.53125zM64 80c26.4922 0 48 -21.5078 48 -48 +s-21.5078 -48 -48 -48c-26.4697 0 -48.5898 21.5 -48.5898 48s22.0996 48 48.5898 48zM496 64c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-288c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h288zM496 384 +c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-288c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h288zM496 224c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-288c-8.83105 0 -16 7.16895 -16 16v32 +c0 8.83105 7.16895 16 16 16h288z" /> @@ -598,11 +899,11 @@ c-40.2998 -22.1006 -68.8994 -62 -75.1992 -109.4h-65.9004c-17.7002 0 -32 14.2998 +c-13.2549 0 -24 10.7451 -24 24v368c0 13.2549 10.7451 24 24 24h168v-104zM440.971 375.029c4.34473 -4.34473 7.0293 -10.3477 7.0293 -16.9707v-6.05859h-96v96h6.05859c6.62305 0 12.626 -2.68457 16.9707 -7.0293z" /> @@ -634,30 +935,30 @@ d="M400 416c26.5 0 48 -21.5 48 -48v-352c0 -26.5 -21.5 -48 -48 -48h-352c-26.5 0 - d="M16 316c-8.83691 0 -16 7.16309 -16 16v40c0 8.83691 7.16309 16 16 16h416c8.83691 0 16 -7.16309 16 -16v-40c0 -8.83691 -7.16309 -16 -16 -16h-416zM16 156c-8.83691 0 -16 7.16309 -16 16v40c0 8.83691 7.16309 16 16 16h416c8.83691 0 16 -7.16309 16 -16v-40 c0 -8.83691 -7.16309 -16 -16 -16h-416zM16 -4c-8.83691 0 -16 7.16309 -16 16v40c0 8.83691 7.16309 16 16 16h416c8.83691 0 16 -7.16309 16 -16v-40c0 -8.83691 -7.16309 -16 -16 -16h-416z" /> +d="M48 400c26.4922 0 48 -21.5078 48 -48s-21.5078 -48 -48 -48s-48 21.5078 -48 48s21.5078 48 48 48zM48 240c26.4922 0 48 -21.5078 48 -48s-21.5078 -48 -48 -48s-48 21.5078 -48 48s21.5078 48 48 48zM48 80c26.4922 0 48 -21.5078 48 -48s-21.5078 -48 -48 -48 +s-48 21.5078 -48 48s21.5078 48 48 48zM496 64c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-320c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h320zM496 384c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16 +h-320c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h320zM496 224c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-320c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h320z" /> +c4.76758 -1.95996 10.0107 -3.07617 15.4707 -3.11914c10.1602 0 14.3594 3.5 14.3594 8.21973c0 6.64941 -5.60938 9.08984 -15.9395 9.08984h-4.73047c-5.95996 0 -9.25 2.12012 -12.25 7.87988l-1.0498 1.92969c-2.4502 4.75 -1.2002 9.81055 2.7998 14.8809l5.61035 7 +c3.47461 4.32422 7.0957 8.37695 11 12.3096h-22.8301c-4.41504 0 -8 3.58496 -8 8v16c0 4.41504 3.58496 8 8 8h57c7.5 0 11.3398 -4 11.3398 -11.3496v-3.31055c0.0136719 -0.299805 0.0175781 -0.595703 0.0175781 -0.899414 +c0 -5.10449 -1.9248 -9.76367 -5.08789 -13.29zM496 224c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-320c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h320zM496 384c8.83105 0 16 -7.16895 16 -16v-32 +c0 -8.83105 -7.16895 -16 -16 -16h-320c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h320zM496 64c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-320c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h320zM16 288 +c-4.41504 0 -8 3.58496 -8 8v16c0 4.41504 3.58496 8 8 8h16v64h-8c-4.4082 0.0078125 -7.98145 3.59766 -7.98145 8.00781c0 1.2832 0.303711 2.49707 0.841797 3.57227l8 16c1.31055 2.62012 4.01367 4.41406 7.13965 4.41992h24c4.41504 0 8 -3.58496 8 -8v-88h16 +c4.41504 0 8 -3.58496 8 -8v-16c0 -4.41504 -3.58496 -8 -8 -8h-64zM12.0898 128c-7.00977 0 -12.0898 4 -12.0898 11.4102v4c0 47.2803 51 56.3994 50.9697 69.1201c0 7.18945 -5.9502 8.75 -9.2793 8.75c-0.0185547 0 -0.0380859 0.000976562 -0.0566406 0.000976562 +c-3.65918 0 -6.97949 -1.46582 -9.40332 -3.84082c-5.12012 -4.91016 -10.5107 -7 -16.1201 -2.44043l-8.58008 6.87988c-5.7998 4.53027 -7.16992 9.78027 -2.7998 15.3701c6.65918 8.75 19.0996 18.75 40.46 18.75c19.4697 0 44.4697 -10.5 44.4697 -39.5596 +c0 -37.7607 -45.0498 -46.1504 -48.3398 -56.4404h38.6797c4.41504 0 8 -3.58496 8 -8v-16c0 -4.41504 -3.58496 -8 -8 -8h-67.9102z" /> +d="M496 224c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-480c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h102.29c-11.6797 16.5303 -19.7803 35.4697 -21.7803 56.3604c-0.385742 3.97559 -0.577148 7.88281 -0.577148 11.96 +c0 68.2266 55.3633 123.624 123.577 123.68h68c50.1416 0 93.5244 -28.7686 114.521 -70.7998l0.529297 -1c1.07324 -2.14844 1.70215 -4.57715 1.70215 -7.13965c0 -6.26562 -3.61035 -11.6953 -8.86133 -14.3203l-42.9404 -21.4707 +c-2.14941 -1.07324 -4.5791 -1.70312 -7.14355 -1.70312c-6.2627 0 -11.6895 3.60645 -14.3164 8.85352c-8.18652 16.374 -25.0859 27.5801 -44.623 27.5801h-0.0371094h-66.79c-24.0352 -0.000976562 -43.5479 -19.5059 -43.5479 -43.541 +c0 -19.5742 12.9414 -36.1494 30.7285 -41.6289l87.1699 -26.8301h202.1zM315.76 128h94.3906c2.6084 -7.7373 4.44434 -15.9834 5.33984 -24.3604c0.385742 -3.97559 0.577148 -7.88281 0.577148 -11.96c0 -68.2266 -55.3633 -123.624 -123.577 -123.68h-68 +c-50.1416 0 -93.5244 28.7686 -114.521 70.7998l-0.529297 1c-1.07324 2.14844 -1.70215 4.57715 -1.70215 7.13965c0 6.26562 3.61035 11.6953 8.86133 14.3203l42.9404 21.4707c2.14941 1.07324 4.5791 1.70312 7.14355 1.70312 +c6.2627 0 11.6895 -3.60645 14.3164 -8.85352c8.18652 -16.374 25.0859 -27.5801 44.623 -27.5801h0.0371094h66.79c24.0254 0.0224609 43.5273 19.5244 43.5498 43.5498c-0.0117188 15.3828 -8.07227 28.8594 -20.2402 36.4502z" /> +d="M32 384c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h144c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32v-160c0 -44.1533 35.8467 -80 80 -80s80 35.8467 80 80v160h-32c-8.83105 0 -16 7.16895 -16 16v32 +c0 8.83105 7.16895 16 16 16h144c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32v-160c0 -88.2197 -71.7803 -160 -160 -160s-160 71.7803 -160 160v160h-32zM432 0c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-416 +c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h416z" /> +M448 198.059v-6.05859h-96v96h6.05859c6.62305 0 12.626 -2.68457 16.9707 -7.0293l65.9404 -65.9404c4.34473 -4.34473 7.03027 -10.3477 7.03027 -16.9717z" /> @@ -764,7 +1065,7 @@ d="M544 224c96 -21.333 96 -26.583 96 -32s0 -10.667 -96 -32l-128 -16l-48 -16h-24l l64 8v2.66602h-48v16h-8v69.333l10.667 10.667h34.666l66.667 -80h48v164h-16v12h114.667c11.666 0 21.333 -2.625 21.333 -6s-9.66699 -6 -21.333 -6h-39.5088l116.842 -148h24l48 -16z" /> +c15.4062 13.3047 39.6865 2.50293 39.6865 -18.1641v-15.8174l-108.607 -93.7861c-11.8906 -10.2637 -19.3926 -25.4307 -19.3926 -42.3564v-0.0234375c0 -0.0078125 -0.0292969 -0.00292969 -0.0292969 -0.0117188c0 -16.9268 7.53125 -32.1084 19.4229 -42.373 +l108.606 -93.7852v-15.8184c0 -20.7002 -24.2998 -31.4531 -39.6865 -18.1641z" /> +d="M496 288c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-96c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h16v96h-16c-8.82422 0.0078125 -15.9775 7.18945 -15.9775 16.0156c0 2.57129 0.608398 5.00098 1.6875 7.1543l16 32 +c2.62598 5.23926 8.03613 8.8252 14.29 8.83008h48c8.83105 0 16 -7.16895 16 -16v-144h16zM336 384c8.83105 0 16 -7.16895 16 -16v-48c0 -8.83105 -7.16895 -16 -16 -16h-33.4805l-77.8096 -112l77.8096 -112h33.4805c8.83105 0 16 -7.16895 16 -16v-48 +c0 -8.83105 -7.16895 -16 -16 -16h-67c-5.41113 0.0273438 -10.1836 2.73047 -13.0596 6.87012l-79.9004 115l-79.9004 -115c-2.89062 -4.16016 -7.69531 -6.87012 -13.1396 -6.87012h-67c-8.83105 0 -16 7.16895 -16 16v48c0 8.83105 7.16895 16 16 16h33.4805l77.8096 112 +l-77.8096 112h-33.4805c-8.83105 0 -16 7.16895 -16 16v48c0 8.83105 7.16895 16 16 16h67c5.41113 -0.0273438 10.1836 -2.73047 13.0596 -6.87012l79.9004 -115l79.9004 115c2.89062 4.16016 7.69531 6.87012 13.1396 6.87012h67z" /> +d="M496 0c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-96c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h16v96h-16c-8.82422 0.0078125 -15.9775 7.18945 -15.9775 16.0156c0 2.57129 0.608398 5.00098 1.6875 7.1543l16 32 +c2.62598 5.23926 8.03613 8.8252 14.29 8.83008h48c8.83105 0 16 -7.16895 16 -16v-144h16zM336 384c8.83105 0 16 -7.16895 16 -16v-48c0 -8.83105 -7.16895 -16 -16 -16h-33.4805l-77.8096 -112l77.8096 -112h33.4805c8.83105 0 16 -7.16895 16 -16v-48 +c0 -8.83105 -7.16895 -16 -16 -16h-67c-5.41113 0.0273438 -10.1836 2.73047 -13.0596 6.87012l-79.9004 115l-79.9004 -115c-2.89062 -4.16016 -7.69531 -6.87012 -13.1396 -6.87012h-67c-8.83105 0 -16 7.16895 -16 16v48c0 8.83105 7.16895 16 16 16h33.4805l77.8096 112 +l-77.8096 112h-33.4805c-8.83105 0 -16 7.16895 -16 16v48c0 8.83105 7.16895 16 16 16h67c5.41113 -0.0273438 10.1836 -2.73047 13.0596 -6.87012l79.9004 -115l79.9004 115c2.89062 4.16016 7.69531 6.87012 13.1396 6.87012h67z" /> +c0.136719 3.79004 1.03223 7.43164 2.51562 10.7031l49.4355 98.8125c7.33008 14.6094 26.5391 26.4688 42.8867 26.4844h104.215c46.2168 72.7969 108.122 128 211.354 128c25.0996 0 50.3086 0 82.5059 -6.90625c5.54883 -1.1875 11.0176 -6.65625 12.207 -12.1875z +M384.04 280c22.0752 0.0078125 39.9971 17.9258 40.0098 40c0 22.0762 -17.9229 40 -40 40c-22.0762 0 -40 -17.9238 -40 -40c0 -22.0732 17.918 -39.9951 39.9902 -40z" /> @@ -987,12 +1288,12 @@ c2.2998 -2.30078 6.09961 -2.30078 8.5 0l23.0996 23.0996c9.2998 9.2998 9.2998 24. +c3.36816 -0.485352 6.75977 -0.711914 10.2607 -0.711914c8.3877 0 16.4424 1.44043 23.9287 4.08887c7.81348 2.76367 16.0107 -3.01465 16.0107 -11.3027v-88.8057c0 -26.5098 -21.4902 -48 -48 -48h-352c-26.5098 0 -48 21.4902 -48 48v352c0 26.5098 21.4902 48 48 48 +h121.033c12.5508 0 16.6748 -16.8301 5.54492 -22.6309c-18.7773 -9.78613 -36.0615 -22.1084 -51.0137 -37.6758c-2.18164 -2.27637 -5.25098 -3.69141 -8.64844 -3.69336h-50.916v-320h320v68.8721z" /> +M374.14 291.95c7.61035 16.6494 -9.54004 33.7998 -26.1895 26.2002l-144.34 -65.9707c-6.98438 -3.19238 -12.5781 -8.78516 -15.7705 -15.7695l-65.9795 -144.351c-7.61035 -16.6494 9.5498 -33.8096 26.1992 -26.1992l144.341 65.9697 +c6.9834 3.19238 12.5771 8.78613 15.7695 15.7695z" /> @@ -1006,8 +1307,8 @@ c-7.56055 7.56055 -20.4854 2.20605 -20.4854 -8.48438v-246.06c0 -10.6904 12.9258 d="M310.706 34.2354l8.81836 -44.4902c1.23828 -6.24902 -2.62109 -12.3623 -8.78809 -13.957c-12.5391 -3.24414 -34.8008 -7.78809 -61.1016 -7.78809c-104.371 0 -182.496 65.3076 -207.521 155.64h-30.1143c-6.62695 0 -12 5.37305 -12 12v28.3604 c0 6.62695 5.37305 12 12 12h21.3877c-1 12.958 -0.828125 28.6377 0.181641 42.2451h-21.5693c-6.62695 0 -12 5.37305 -12 12v29.7549c0 6.62695 5.37305 12 12 12h33.0752c28.9551 83.748 107.376 144 204.56 144c21.0752 0 40.582 -2.91211 52.6865 -5.20703 c6.86035 -1.30078 11.1475 -8.17578 9.32617 -14.917l-11.9912 -44.3682c-1.65527 -6.125 -7.78613 -9.89062 -14.002 -8.62305c-9.28711 1.89551 -23.3652 4.14551 -37.8516 4.14551c-54.9287 0 -96.9854 -30.0391 -117.619 -75.0303h138.278 -c7.66211 0 13.3613 -7.08203 11.7227 -14.5664l-6.51172 -29.7549c-1.13965 -5.20703 -6.3916 -9.43359 -11.7227 -9.43359v0h-146.593c-1.55176 -13.958 -1.34766 -27.917 -0.137695 -42.2451h134.237c7.68945 0 13.3936 -7.12891 11.708 -14.6309l-6.37305 -28.3604 -c-1.16211 -5.17188 -6.40723 -9.36914 -11.708 -9.36914h-113.689c19.5322 -50.6582 64.6982 -85.4482 121.462 -85.4482c18.0039 0 34.7334 2.97363 45.4258 5.41211c6.58887 1.50391 13.1094 -2.73828 14.4238 -9.36816z" /> +c7.66211 0 13.3613 -7.08203 11.7227 -14.5664l-6.51172 -29.7549c-1.17969 -5.3877 -5.9834 -9.43359 -11.7227 -9.43359h-146.593c-1.55176 -13.958 -1.34766 -27.917 -0.137695 -42.2451h134.237c7.68945 0 13.3936 -7.12891 11.708 -14.6309l-6.37305 -28.3604 +c-1.20312 -5.35547 -5.99121 -9.36914 -11.708 -9.36914h-113.689c19.5322 -50.6582 64.6982 -85.4482 121.462 -85.4482c18.0039 0 34.7334 2.97363 45.4258 5.41211c6.58887 1.50391 13.1094 -2.73828 14.4238 -9.36816z" /> +d="M176 96c14.2197 0 21.3496 -17.2598 11.3301 -27.3096l-80 -96c-2.89551 -2.89453 -6.89844 -4.68555 -11.3125 -4.68555c-4.41309 0 -8.41211 1.79102 -11.3076 4.68555l-80 96c-10.0703 10.0693 -2.90039 27.3096 11.29 27.3096h48v304c0 8.83105 7.16895 16 16 16h32 +c8.83105 0 16 -7.16895 16 -16v-304h48zM416 160c8.83105 0 16 -7.16895 16 -16v-17.6299c0 -9.51074 -4.14355 -18.0566 -10.7402 -23.9199l-61.2598 -70.4502h56c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-128c-8.83105 0 -16 7.16895 -16 16 +v17.6299c0 9.51074 4.14355 18.0566 10.7402 23.9199l61.2598 70.4502h-56c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h128zM447.06 245.38c0.600586 -1.67969 0.931641 -3.49512 0.931641 -5.37988c0 -8.82812 -7.16406 -15.9951 -15.9912 -16h-24.8398 +c-0.015625 0 -0.0263672 -0.00195312 -0.0419922 -0.00195312c-7.11426 0 -13.1514 4.6543 -15.2285 11.082l-4.40918 12.9199h-71l-4.4209 -12.9199c-2.07617 -6.42773 -8.10938 -11.0801 -15.2246 -11.0801h-0.00488281h-24.8301 +c-8.82715 0.00488281 -15.9863 7.17773 -15.9863 16.0049c0 1.88574 0.326172 3.69531 0.926758 5.375l59.2695 160c2.20996 6.19043 8.125 10.6201 15.0703 10.6201h41.4395c6.94531 0 12.8604 -4.42969 15.0703 -10.6201zM335.61 304h32.7793l-16.3896 48z" /> +d="M304 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-64c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h64zM176 96c14.2197 0 21.3496 -17.2598 11.3301 -27.3096l-80 -96 +c-2.89551 -2.89453 -6.89844 -4.68555 -11.3125 -4.68555c-4.41309 0 -8.41211 1.79102 -11.3076 4.68555l-80 96c-10.0801 10.0693 -2.90039 27.3096 11.29 27.3096h48v304c0 8.83105 7.16895 16 16 16h32c8.83105 0 16 -7.16895 16 -16v-304h48zM432 288 +c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-192c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h192zM368 160c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-128c-8.83105 0 -16 7.16895 -16 16v32 +c0 8.83105 7.16895 16 16 16h128zM496 416c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-256c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h256z" /> +d="M304 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-64c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h64zM16 288c-14.2305 0 -21.3496 17.2598 -11.3096 27.3096l80 96c2.89551 2.89453 6.89844 4.68555 11.3115 4.68555 +c4.41406 0 8.41211 -1.79102 11.3076 -4.68555l80 -96c10.0703 -10.0693 2.90039 -27.3096 -11.3096 -27.3096h-48v-304c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v304h-48zM432 288c8.83105 0 16 -7.16895 16 -16v-32 +c0 -8.83105 -7.16895 -16 -16 -16h-192c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h192zM368 160c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-128c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h128zM496 416 +c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-256c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h256z" /> +d="M304 352c-8.82422 0.0078125 -15.9775 7.18945 -15.9775 16.0156c0 2.57129 0.608398 5.00098 1.6875 7.1543l16 32c2.62598 5.23926 8.03613 8.8252 14.29 8.83008h48c8.83105 0 16 -7.16895 16 -16v-112h16c8.83105 0 16 -7.16895 16 -16v-32 +c0 -8.83105 -7.16895 -16 -16 -16h-96c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h16v64h-16zM330.15 189.09c53.4502 14.25 101.85 -25.8799 101.869 -77.0898v-10.7695c0 -70.3906 -28.25 -107.24 -86.25 -132 +c-8.36914 -3.58008 -18.0293 1.2793 -20.8994 9.90918l-9.90039 20c-2.62012 7.87012 0.610352 16.9404 8.18066 20.3408c7.59961 3.28516 14.6064 7.64258 20.8496 12.9092c-47.6396 4.76074 -83.0996 51.4805 -68.8496 102.53c7.62793 26.2793 28.5596 46.9287 55 54.1699 +zM352 92c11.0381 0 20 8.96191 20 20s-8.96191 20 -20 20s-20 -8.96191 -20 -20s8.96191 -20 20 -20zM176 96c14.2197 0 21.3496 -17.2598 11.3301 -27.3096l-80 -96c-2.89551 -2.89453 -6.89844 -4.68555 -11.3125 -4.68555c-4.41309 0 -8.41211 1.79102 -11.3076 4.68555 +l-80 96c-10.0703 10.0693 -2.90039 27.3096 11.29 27.3096h48v304c0 8.83105 7.16895 16 16 16h32c8.83105 0 16 -7.16895 16 -16v-304h48z" /> +c7.59961 3.28516 14.6064 7.64258 20.8496 12.9092c-47.6396 4.76074 -83.0996 51.4805 -68.8301 102.53c7.62891 26.2793 28.5596 46.9287 55 54.1699zM352 92c11.0381 0 20 8.96191 20 20s-8.96191 20 -20 20s-20 -8.96191 -20 -20s8.96191 -20 20 -20zM304 352 +c-8.82422 0.0078125 -15.9775 7.18945 -15.9775 16.0156c0 2.57129 0.608398 5.00098 1.6875 7.1543l16 32c2.62598 5.23926 8.03613 8.8252 14.29 8.83008h48c8.83105 0 16 -7.16895 16 -16v-112h16c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-96 +c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h16v64h-16zM107.31 411.31l80 -96c10.0703 -10.0693 2.90039 -27.3096 -11.3096 -27.3096h-48v-304c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v304h-48 +c-14.2197 0 -21.3496 17.2598 -11.3096 27.3096l80 96c2.89551 2.89453 6.89844 4.68555 11.3115 4.68555c4.41406 0 8.41211 -1.79102 11.3076 -4.68555z" /> +c-20.1826 0 -29.4854 39.293 -33.9307 57.7949c-5.20605 21.666 -10.5889 44.0703 -25.3936 58.9023c-32.4688 32.5234 -49.5029 73.9668 -89.1172 113.11c-2.19727 2.17285 -3.55762 5.19043 -3.55762 8.52148v213.77c0 6.54102 5.24316 11.8779 11.7832 11.998 +c15.8311 0.290039 36.6934 9.0791 52.6504 16.1787c31.7549 14.127 71.2744 31.708 119.561 31.7246h2.84375c42.7773 0 93.3633 -0.413086 113.774 -29.7373c8.3916 -12.0566 10.4453 -27.0342 6.14746 -44.6318c16.3125 -17.0527 25.0635 -48.8633 16.3818 -74.7568 +c17.5439 -23.4316 19.1436 -56.1318 9.30859 -79.4688l0.109375 -0.110352c11.8936 -11.9492 19.5234 -31.2588 19.4395 -49.1973c-0.15625 -30.3516 -26.1572 -58.0977 -59.5527 -58.0977h-101.725c7.30762 -28.3398 33.2773 -52.1318 33.2773 -94.5479 +c0 -73.4521 -48 -81.4521 -72 -81.4521z" /> +c-15.6172 0 -27.0654 14.6953 -23.2832 29.8213l48 192c2.6084 10.4316 12.0488 18.1787 23.2832 18.1787h11.3604c23.6895 -10.8936 50.5684 -10.4434 73.2793 0h11.3604c11.2344 0 20.6748 -7.74707 23.2832 -18.1787z" /> @@ -1105,7 +1405,7 @@ l-100.399 33.5l-47.2998 -94.7002c-6.40039 -12.7998 -24.6006 -12.7998 -31 0l-47.3 c-4.59961 13.5 8.2998 26.4004 21.9004 21.9004l100.5 -33.5l47.2998 94.7002c6.40039 12.7998 24.5996 12.7998 31 0l47.4004 -94.8008l100.399 33.5c13.5 4.60059 26.4004 -8.2998 21.9004 -21.8994l-33.5 -100.4zM346.5 101.5c49.9004 49.9004 49.9004 131.1 0 181 s-131.1 49.9004 -181 0s-49.9004 -131.1 0 -181s131.1 -49.9004 181 0z" /> +c0 5.72656 4.02734 10.5205 9.39746 11.7139l54.6025 12.1338v30.4395l-49.3975 -10.9775c-7.49316 -1.66602 -14.6025 4.03711 -14.6025 11.7139v40.9766c0 5.72656 4.02734 10.5205 9.39746 11.7139l54.6025 12.1338v68.9971c0 6.62695 5.37305 12 12 12h56 +c6.62695 0 12 -5.37305 12 -12v-51.2188l129.397 28.7539c7.49316 1.66602 14.6025 -4.03711 14.6025 -11.7139v-40.9756c0 -5.72656 -4.02734 -10.5205 -9.39746 -11.7139l-134.603 -29.9121v-30.4385l129.397 28.7539c7.49316 1.66602 14.6025 -4.03711 14.6025 -11.7139 +v-40.9766c0 -5.72656 -4.02734 -10.5205 -9.39746 -11.7139l-134.603 -29.9121v-159.219c86.1787 0 168 48 168 148.754c0 6.33398 5.63965 11.2461 11.9746 11.2461h48.0195z" /> +c-4.41504 0 -8 -3.58496 -8 -8v-64c0 -4.41504 3.58496 -8 8 -8z" /> +d="M496 320v-16c0 -4.41504 -3.58496 -8 -8 -8h-24v-12c0 -6.62695 -5.37305 -12 -12 -12h-392c-6.62695 0 -12 5.37305 -12 12v12h-24c-4.41504 0 -8 3.58496 -8 8v16c0 3.33398 2.03906 6.19141 4.94141 7.3916l232 88 +c0.94043 0.389648 1.97168 0.605469 3.05371 0.605469c1.08105 0 2.12305 -0.21582 3.06348 -0.605469l232 -88c2.90234 -1.2002 4.94141 -4.05762 4.94141 -7.3916zM472 16c13.2549 0 24 -10.7451 24 -24v-16c0 -4.41504 -3.58496 -8 -8 -8h-464 +c-4.41504 0 -8 3.58496 -8 8v16c0 13.2549 10.7451 24 24 24h432zM96 256h64v-192h64v192h64v-192h64v192h64v-192h36c6.62695 0 12 -5.37305 12 -12v-20h-416v20c0 6.62695 5.37305 12 12 12h36v192z" /> +l9.40039 -31.9004c1.4668 -4.96582 6.06152 -8.5957 11.5 -8.59961h22.8994c8.2998 0 14 8.09961 11.4004 15.9004l-57.5 169.1c-1.7002 4.7998 -6.2998 8.09961 -11.4004 8.09961h-32.5c-5.2002 0 -9.7002 -3.19922 -11.3994 -8.09961z" /> +d="M480 288c17.6611 0 32 -14.3389 32 -32v-288c0 -17.6611 -14.3389 -32 -32 -32h-320c-17.6611 0 -32 14.3389 -32 32v448c0 17.6611 14.3389 32 32 32h242.75c8.82715 -0.000976562 16.8291 -3.58008 22.6201 -9.37012l45.25 -45.25 +c5.7959 -5.79199 9.37891 -13.7979 9.37988 -22.6299v-82.75zM288 16v32c0 8.83105 -7.16895 16 -16 16h-32c-8.83105 0 -16 -7.16895 -16 -16v-32c0 -8.83105 7.16895 -16 16 -16h32c8.83105 0 16 7.16895 16 16zM288 144v32c0 8.83105 -7.16895 16 -16 16h-32 +c-8.83105 0 -16 -7.16895 -16 -16v-32c0 -8.83105 7.16895 -16 16 -16h32c8.83105 0 16 7.16895 16 16zM416 16v32c0 8.83105 -7.16895 16 -16 16h-32c-8.83105 0 -16 -7.16895 -16 -16v-32c0 -8.83105 7.16895 -16 16 -16h32c8.83105 0 16 7.16895 16 16zM416 144v32 +c0 8.83105 -7.16895 16 -16 16h-32c-8.83105 0 -16 -7.16895 -16 -16v-32c0 -8.83105 7.16895 -16 16 -16h32c8.83105 0 16 7.16895 16 16zM416 256v64h-48c-8.83105 0 -16 7.16895 -16 16v48h-160v-128h224zM64 320c17.6611 0 32 -14.3389 32 -32v-320 +c0 -17.6611 -14.3389 -32 -32 -32h-32c-17.6611 0 -32 14.3389 -32 32v320c0 17.6611 14.3389 32 32 32h32z" /> +d="M384 326.059v-6.05859h-128v128h6.05859c6.36523 0 12.4707 -2.5293 16.9717 -7.0293l97.9404 -97.9404c4.34375 -4.34473 7.0293 -10.3486 7.0293 -16.9717zM248 288h136v-328c0 -13.2549 -10.7451 -24 -24 -24h-336c-13.2549 0 -24 10.7451 -24 24v464 +c0 13.2549 10.7451 24 24 24h200v-136c0 -13.2002 10.7998 -24 24 -24zM123.206 47.4951l19.5791 20.8838c0.905273 0.96582 1.46289 2.26562 1.46289 3.69238c0 1.61426 -0.709961 3.06445 -1.83496 4.05469l-40.7627 35.874l40.7627 35.874 +c1.125 0.990234 1.83203 2.44043 1.83203 4.05566c0 1.42676 -0.554688 2.72559 -1.45996 3.69141l-19.5791 20.8848c-0.985352 1.05176 -2.3877 1.70703 -3.94141 1.70703c-1.42676 0 -2.72559 -0.555664 -3.69141 -1.46094l-64.8662 -60.8115 +c-1.05078 -0.986328 -1.70801 -2.38672 -1.70801 -3.93945c0 -1.55371 0.657227 -2.9541 1.70801 -3.94043l64.8662 -60.8115c0.96582 -0.905273 2.26562 -1.46289 3.69336 -1.46289c1.55273 0 2.9541 0.657227 3.93945 1.70898zM174.501 -2.98438 +c0.478516 -0.138672 0.982422 -0.212891 1.50488 -0.212891c2.45801 0 4.53418 1.64551 5.18555 3.89453l61.4395 211.626c0.138672 0.478516 0.213867 0.982422 0.213867 1.50488c0 2.45801 -1.64551 4.53418 -3.89355 5.18652l-27.4521 7.9707 +c-0.477539 0.138672 -0.981445 0.212891 -1.50391 0.212891c-2.45801 0 -4.53516 -1.64551 -5.18848 -3.89453l-61.4395 -211.626c-0.138672 -0.477539 -0.212891 -0.981445 -0.212891 -1.50293c0 -2.45898 1.64551 -4.53516 3.89355 -5.18848zM335.293 108.061 +c1.05176 0.986328 1.70898 2.38672 1.70898 3.94043c0 1.55273 -0.657227 2.95312 -1.70801 3.93945l-64.8662 60.8115c-0.96582 0.905273 -2.26562 1.46289 -3.69336 1.46289c-1.55273 0 -2.9541 -0.657227 -3.93945 -1.70898l-19.5801 -20.8848 +c-0.905273 -0.96582 -1.46289 -2.26562 -1.46289 -3.69238c0 -1.61426 0.709961 -3.06445 1.83496 -4.05469l40.7627 -35.874l-40.7637 -35.873c-1.125 -0.990234 -1.83203 -2.44043 -1.83203 -4.05566c0 -1.42676 0.554688 -2.72559 1.45996 -3.69141l19.5801 -20.8848 +c0.985352 -1.05176 2.3877 -1.70703 3.94141 -1.70703c1.42676 0 2.72559 0.555664 3.69141 1.46094z" /> +d="M448 352v-320h32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-160c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32v128h-192v-128h32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-160 +c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32v320h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h160c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32v-128h192v128h-32c-8.83105 0 -16 7.16895 -16 16v32 +c0 8.83105 7.16895 16 16 16h160c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32z" /> +d="M448 400v-32c0 -8.83105 -7.16895 -16 -16 -16h-48v-368c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v368h-32v-368c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v112h-32c-88.3066 0 -160 71.6934 -160 160 +s71.6934 160 160 160h240c8.83105 0 16 -7.16895 16 -16z" /> +d="M352 128c53.0186 0 96 -42.9814 96 -96s-42.9814 -96 -96 -96s-96 42.9814 -96 96c0 0.00976562 0.00292969 -0.0429688 0.00292969 -0.0332031c0 7.16699 0.785156 14.1523 2.27344 20.874l-102.486 64.0537c-16.4033 -13.0752 -37.1816 -20.8945 -59.79 -20.8945 +c-53.0186 0 -96 42.9814 -96 96s42.9814 96 96 96c22.6084 0 43.3867 -7.81934 59.79 -20.8945l102.486 64.0537c-1.48633 6.71094 -2.27637 13.6826 -2.27637 20.8408c0 53.0186 42.9814 96 96 96s96 -42.9814 96 -96s-42.9814 -96 -96 -96 +c-22.6084 0 -43.3867 7.81934 -59.79 20.8965l-102.486 -64.0547c1.48828 -6.73145 2.27344 -13.6025 2.27344 -20.7793s-0.785156 -14.1719 -2.27344 -20.9033l102.486 -64.0537c16.4033 13.0752 37.1816 20.8945 59.79 20.8945z" /> +c-1.13281 -4.44141 -1.73535 -9.09375 -1.73535 -13.8857c0 -0.0117188 -0.00488281 0 -0.00488281 -0.0117188c0 -30.9277 25.0723 -56 56 -56s56 25.0723 56 56c-0.000976562 30.9287 -25.0732 56.001 -56.001 56.001z" /> +d="M320 416v-96h-64v96c0 17.6611 14.3389 32 32 32s32 -14.3389 32 -32zM368 288c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-16v-32c-0.0117188 -77.3096 -55.0684 -141.886 -128 -156.8v-99.2002h-64v99.2002 +c-72.9316 14.9141 -127.988 79.4902 -128 156.8v32h-16c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h352zM128 416v-96h-64v96c0 17.6611 14.3389 32 32 32s32 -14.3389 32 -32z" /> @@ -1358,16 +1658,17 @@ c5.41992 6.97949 15.4805 8.22949 22.46 2.80957l144.96 -112.04c22.9307 31.5 57.26 c0 -102.3 36.1504 -133.529 55.4697 -154.29c6 -6.43945 8.66016 -14.1602 8.61035 -21.71c0 -1.39941 -0.610352 -2.67969 -0.799805 -4.05957zM157.23 196.46l212.789 -164.46h-241.92c-19.1191 0 -31.9893 15.5996 -32.0996 32 c-0.0498047 7.5498 2.61035 15.2598 8.61035 21.71c16.21 17.4199 44.0098 42.79 52.6201 110.75zM320 -64c-35.3203 0 -63.9697 28.6504 -63.9697 64h127.939c0 -35.3496 -28.6494 -64 -63.9697 -64z" /> +d="M432 416c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-416c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h120l9.40039 18.7002c3.85547 7.88574 11.9434 13.2998 21.3066 13.2998h0.0927734h114.3 +c0.00585938 0 -0.00195312 0.0234375 0.00390625 0.0234375c9.41113 0 17.5645 -5.42871 21.4961 -13.3232l9.40039 -18.7002h120zM53.2002 -19l-21.2002 339h384l-21.2002 -339c-1.57031 -25.0762 -22.4316 -44.9971 -47.8994 -45h-245.801 +c-25.4678 0.00292969 -46.3291 19.9238 -47.8994 45z" /> +c5.45996 -5.05566 14.1846 -3.97168 18.2334 2.29492l22.3799 34.6553c1.20996 1.87305 1.91895 4.12109 1.91895 6.51465c0 3.125 -1.19727 5.97168 -3.15625 8.1084c-1.45703 1.58887 -36.4658 38.9043 -103.423 38.9043c-81.7578 0 -143.762 -62.0986 -143.762 -143.401 +c0 -82.3066 59.792 -145.567 144.484 -145.567c70.0752 0 108.259 43.8643 109.851 45.7314z" /> @@ -1402,13 +1703,13 @@ c-70.751 0 -128 -57.2588 -128 -128zM384 64c70.751 0 128 57.2598 128 128c0 70.751 d="M384 384c106 0 192 -86 192 -192s-86 -192 -192 -192h-192c-106 0 -192 86 -192 192s86 192 192 192h192zM384 64c70.7002 0 128 57.2002 128 128c0 70.7002 -57.2002 128 -128 128c-70.7002 0 -128 -57.2002 -128 -128c0 -70.7002 57.2002 -128 128 -128z" /> +s35.8877 -80 80 -80zM290.632 144l74.2861 120h-127.547l-24.7461 -39.9736c22.8271 -20.1328 38.4229 -48.2705 42.3828 -80.0264h35.624zM507.689 48.1143c46.0605 -2.43164 84.3115 34.3447 84.3125 79.8848c0 44.1123 -35.8877 80 -80 80 +c-0.0136719 0 0.00585938 -0.0078125 -0.00683594 -0.0078125c-6.85156 0 -13.5029 -0.864258 -19.8516 -2.48926l44.4688 -71.6426c4.66113 -7.50879 2.35156 -17.3721 -5.15625 -22.0322l-13.5938 -8.4375c-7.50879 -4.65918 -17.3721 -2.35156 -22.0322 5.15625 +l-44.4326 71.5859c-12.7021 -14.7451 -20.1475 -34.1416 -19.3359 -55.2627c1.57812 -41.0635 34.5918 -74.5898 75.6279 -76.7549z" /> +c22.7783 -7.32129 29.7354 -36.1914 12.8359 -53.0918zM192 320v-87.5312l118.208 37.9951c3.08594 0.992188 6.38086 1.52832 9.79492 1.52832c3.41309 0 6.70312 -0.536133 9.78906 -1.52832l118.208 -37.9951v87.5312h-256z" /> +c9.69238 24.6738 37.5537 36.8174 62.2275 27.124l190.342 -74.7646l24.8721 31.0898c12.3066 15.3809 33.9785 19.5146 51.0811 9.74121l112 -64c12.0605 -6.89355 20.1533 -19.8564 20.1533 -34.7305v-240c0 -18.5615 -12.7695 -34.6855 -30.8379 -38.9365l-136 -32 +c-2.94824 -0.694336 -6.00391 -1.06348 -9.16211 -1.06348h-80c-22.0908 0 -40 17.9082 -40 40z" /> +d="M384 -32v61.4609c0 8.5332 -4.4375 16.0166 -11.1543 20.2734l-111.748 70.8105c-7.41895 4.70215 -16.2656 7.45508 -25.6914 7.45508h-147.406c-13.2549 0 -24 10.7451 -24 24v8c0 35.3457 28.6543 64 64 64h123.648c13.3086 0 24.7158 8.12109 29.5371 19.6924 +l21.4102 51.3848c4.94141 11.8555 -3.77051 24.9229 -16.6143 24.9229h-229.981c-30.9277 0 -56 25.0723 -56 56v16c0 13.2549 10.7451 24 24 24h333.544c17.0908 0 32.0781 -8.90137 40.583 -22.3682l163.04 -258.146c9.35645 -14.8145 14.833 -32.4619 14.833 -51.2637 +v-116.222h-192z" /> +d="M510.9 302.729l-68.2969 -286.823c-10.8975 -45.7705 -52.0801 -79.9062 -101.166 -79.9062h-127.363c-36.0293 0 -68.8447 14.0459 -93.1855 36.9531l-108.298 101.92c-7.72754 7.29297 -12.5537 17.6299 -12.5537 29.084c0 22.0723 17.9199 39.9922 39.9922 39.9922 +c10.5742 0 20.2188 -4.11426 27.374 -10.8262l60.5928 -57.0254v0c0 27.958 -4.1084 54.9473 -11.6699 80.4668l-42.6885 144.075c-1.06738 3.60254 -1.63965 7.41699 -1.63965 11.3633c0 22.0801 17.9258 40.0059 40.0049 40.0059 +c18.1338 0 33.4512 -12.0977 38.3525 -28.6504l37.1543 -125.395c1.02148 -3.44629 4.21387 -5.96387 7.99023 -5.96387c4.59766 0 8.33105 3.7334 8.33105 8.33105c0 0.717773 -0.09375 1.41016 -0.264648 2.07422l-50.3047 195.641 +c-0.821289 3.19238 -1.25879 6.53711 -1.25879 9.98438c0 22.0742 17.9219 39.9961 39.9971 39.9961c18.6279 0 34.291 -12.793 38.7305 -30.043l56.0947 -218.158c1.15527 -4.49512 5.23926 -7.82129 10.0928 -7.82129c5.03125 0 9.23438 3.57715 10.207 8.32227 +l37.6826 183.704c3.76074 18.2139 19.9043 31.9248 39.2256 31.9248c4.20703 0 8.26562 -0.629883 12.0771 -1.83496c19.8604 -6.2998 30.8623 -27.6738 26.6758 -48.085l-33.8389 -164.967c-0.101562 -0.492188 -0.154297 -1.00098 -0.154297 -1.52344 +c0 -4.16797 3.38379 -7.55176 7.55176 -7.55176c3.56445 0 6.55566 2.48535 7.34668 5.80859l29.3975 123.459c4.19141 17.6016 20.0312 30.708 38.9082 30.708c22.0732 0 39.9941 -17.9209 39.9941 -39.9941c0 -3.19727 -0.380859 -6.26465 -1.09082 -9.24512v0z" /> +c13.2549 0 24 10.7451 24 24v71.6631h25.5566l44.1289 -82.9375c4.03516 -7.58301 12.0049 -12.7266 21.1875 -12.7266h24.4639c18.2617 0.000976562 29.8291 19.5908 21.0186 35.5869z" /> +d="M592 448c26.4922 0 48 -21.5078 48 -48v-320c0 -26.4922 -21.5078 -48 -48 -48h-240v-32h176c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-416c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h176v32h-240 +c-26.4922 0 -48 21.5078 -48 48v320c0 26.4922 21.5078 48 48 48h544zM576 96v288h-512v-288h512z" /> +d="M0 330.34c0.00292969 13.4697 8.32617 24.9932 20.1201 29.71l139.88 55.9502v-384l-138.06 -62.8398c-10.5107 -4.2002 -21.9404 3.54004 -21.9404 14.8594v346.32zM192 32v384l192 -64v-384zM554.06 414.84c10.5107 4.2002 21.9404 -3.54004 21.9404 -14.8594v-346.32 +c0 -13.4707 -8.32422 -24.9951 -20.1201 -29.71l-139.88 -55.9502v384z" /> +d="M440.667 265.891c-1.00195 -5.61328 -5.91309 -9.89062 -11.8135 -9.89062h-79.0957l-22.8564 -128h74.8096c7.4707 0 13.126 -6.75391 11.8135 -14.1094l-7.14355 -40c-1.00195 -5.61328 -5.91309 -9.89062 -11.8125 -9.89062h-79.0967l-15.377 -86.1094 +c-1.00195 -5.61328 -5.91309 -9.89062 -11.8125 -9.89062h-40.6318c-7.47266 0 -13.127 6.75391 -11.8135 14.1094l14.623 81.8906h-98.6338l-15.3779 -86.1094c-1.00195 -5.61328 -5.91309 -9.89062 -11.8135 -9.89062h-40.6318 +c-7.4707 0 -13.126 6.75391 -11.8125 14.1094l14.623 81.8906h-74.8105c-7.4707 0 -13.126 6.75391 -11.8125 14.1094l7.14258 40c1.00195 5.61328 5.91309 9.89062 11.8135 9.89062h79.0957l22.8564 128h-74.8096c-7.4707 0 -13.126 6.75391 -11.8135 14.1094l7.14355 40 +c1.00195 5.61328 5.91309 9.89062 11.8125 9.89062h79.0967l15.377 86.1094c1.00195 5.61328 5.91309 9.89062 11.8125 9.89062h40.6318c7.47266 0 13.127 -6.75391 11.8135 -14.1094l-14.623 -81.8906h98.6348l15.377 86.1094 +c1.00195 5.61328 5.91309 9.89062 11.8135 9.89062h40.6318c7.4707 0 13.126 -6.75391 11.8125 -14.1094l-14.623 -81.8906h74.8105c7.4707 0 13.126 -6.75391 11.8125 -14.1094zM261.889 128l22.8574 128h-98.6338l-22.8574 -128h98.6338z" /> +c-4.33203 -6.17773 -11.4912 -10.1973 -19.6006 -10.2002l-33.3994 -0.100586c-19.5 0 -30.9004 21.9004 -19.7002 37.8008l368 463.699c4.5 6.40039 11.7998 10.2002 19.5996 10.2002z" /> @@ -1756,14 +2057,14 @@ d="M290.547 258.961c-20.2949 10.1494 -44.1465 11.1992 -64.7393 3.88965c42.6064 0 c-14.7246 -30.8457 -46.123 -50.8535 -80.2979 -50.8535c-0.556641 0 -94.4707 8.61426 -94.4707 8.61426l-66.4062 -33.3467c-9.38379 -4.69336 -19.8145 -0.378906 -23.8945 7.78125l-44.4561 88.9248c-4.16699 8.61523 -1.11133 18.8975 6.94531 23.6211l58.0723 33.0693 l41.1221 74.1953c6.38965 57.2451 34.7314 109.768 79.7432 146.727c11.3906 9.44824 28.3408 7.78125 37.5098 -3.61328c9.44629 -11.3936 7.78027 -28.0674 -3.6123 -37.5156c-12.5029 -10.5596 -23.6172 -22.5098 -32.5088 -35.5703 c21.6719 14.7285 46.6787 24.7324 74.1865 28.0674c14.7246 1.94434 28.0625 -8.33594 29.7295 -23.0654c1.94531 -14.7275 -8.33594 -28.0674 -23.0615 -29.7344c-16.1162 -1.94434 -31.1201 -7.50293 -44.1787 -15.2832c26.1143 5.71289 58.7119 3.1377 88.0791 -11.1152 -c13.3359 -6.66895 18.8936 -22.5088 12.2246 -35.8486c-6.38965 -13.0596 -22.5039 -18.6162 -35.5645 -12.2256zM263.318 189.489c-6.1123 12.5049 -18.3379 20.2861 -32.2314 20.2861h-0.105469c-19.5732 0 -35.46 -15.8867 -35.46 -35.46 -c0 -0.0302734 0 -0.0800781 0.000976562 -0.110352c0 -21.4277 17.8076 -35.5703 35.5645 -35.5703c13.8936 0 26.1191 7.78125 32.2314 20.2861c4.44531 9.44922 13.6133 15.0059 23.3389 15.2842c-9.72559 0.277344 -18.8936 5.83496 -23.3389 15.2842zM638.139 226.726 -c4.16797 -8.61426 1.11133 -18.8965 -6.94531 -23.6201l-58.0713 -33.0693l-41.1221 -74.1963c-6.38965 -57.2451 -34.7314 -109.767 -79.7432 -146.726c-10.9316 -9.1123 -27.7988 -8.14453 -37.5098 3.6123c-9.44629 11.3945 -7.78027 28.0674 3.61328 37.5166 -c12.5029 10.5586 23.6162 22.5088 32.5078 35.5703c-21.6719 -14.7295 -46.6787 -24.7324 -74.1865 -28.0674c-10.0205 -2.50586 -27.5518 5.64258 -29.7295 23.0645c-1.94531 14.7285 8.33594 28.0674 23.0615 29.7344c16.1162 1.94629 31.1201 7.50293 44.1787 15.2842 -c-26.1143 -5.71289 -58.7119 -3.1377 -88.0791 11.1152c-13.3359 6.66895 -18.8936 22.5088 -12.2246 35.8477c6.38965 13.0605 22.5049 18.6191 35.5654 12.2266c20.2949 -10.1484 44.1465 -11.1982 64.7393 -3.88965c-42.6064 0 -71.208 20.4746 -85.5781 50.5762 -c-8.57617 17.8984 5.14746 38.0713 23.6172 38.0713c-18.4297 0 -32.2109 20.1357 -23.6172 38.0703c14.0332 29.3965 44.0391 50.8877 81.9658 50.8545l92.8027 -8.61523l66.4062 33.3467c9.4082 4.7041 19.8281 0.354492 23.8936 -7.78027zM408.912 245.344 -c-13.8936 0 -26.1191 -7.78027 -32.2314 -20.2861c-4.44531 -9.44824 -13.6133 -15.0059 -23.3389 -15.2832c9.72559 -0.27832 18.8936 -5.83594 23.3389 -15.2842c6.1123 -12.5049 18.3379 -20.2861 32.2314 -20.2861h0.105469c19.5732 0 35.46 15.8857 35.46 35.46 -c0 0.0302734 0 0.0791016 -0.000976562 0.110352c0 21.4287 -17.8076 35.5693 -35.5645 35.5693z" /> +c13.3359 -6.66895 18.8936 -22.5088 12.2246 -35.8486c-6.38965 -13.0596 -22.5039 -18.6162 -35.5645 -12.2256zM263.318 189.489c-6.1123 12.5049 -18.3379 20.2861 -32.2314 20.2861h-0.107422c-19.5703 0 -35.46 -15.8896 -35.46 -35.46 +c0 -0.0380859 0.00195312 -0.0732422 0.00292969 -0.110352c0 -21.4277 17.8076 -35.5703 35.5645 -35.5703c13.8936 0 26.1191 7.78125 32.2314 20.2861c4.44531 9.44922 13.6133 15.0059 23.3389 15.2842c-9.72559 0.277344 -18.8936 5.83496 -23.3389 15.2842z +M638.139 226.726c4.16797 -8.61426 1.11133 -18.8965 -6.94531 -23.6201l-58.0713 -33.0693l-41.1221 -74.1963c-6.38965 -57.2451 -34.7314 -109.767 -79.7432 -146.726c-10.9316 -9.1123 -27.7988 -8.14453 -37.5098 3.6123 +c-9.44629 11.3945 -7.78027 28.0674 3.61328 37.5166c12.5029 10.5586 23.6162 22.5088 32.5078 35.5703c-21.6719 -14.7295 -46.6787 -24.7324 -74.1865 -28.0674c-10.0205 -2.50586 -27.5518 5.64258 -29.7295 23.0645c-1.94531 14.7285 8.33594 28.0674 23.0615 29.7344 +c16.1162 1.94629 31.1201 7.50293 44.1787 15.2842c-26.1143 -5.71289 -58.7119 -3.1377 -88.0791 11.1152c-13.3359 6.66895 -18.8936 22.5088 -12.2246 35.8477c6.38965 13.0605 22.5049 18.6191 35.5654 12.2266c20.2949 -10.1484 44.1465 -11.1982 64.7393 -3.88965 +c-42.6064 0 -71.208 20.4746 -85.5781 50.5762c-8.57617 17.8984 5.14746 38.0713 23.6172 38.0713c-18.4297 0 -32.2109 20.1357 -23.6172 38.0703c14.0332 29.3965 44.0391 50.8877 81.9658 50.8545l92.8027 -8.61523l66.4062 33.3467 +c9.4082 4.7041 19.8281 0.354492 23.8936 -7.78027zM408.912 245.344c-13.8936 0 -26.1191 -7.78027 -32.2314 -20.2861c-4.44531 -9.44824 -13.6133 -15.0059 -23.3389 -15.2832c9.72559 -0.27832 18.8936 -5.83594 23.3389 -15.2842 +c6.1123 -12.5049 18.3379 -20.2861 32.2314 -20.2861h0.107422c19.5703 0 35.46 15.8887 35.46 35.46c0 0.0371094 -0.00195312 0.0722656 -0.00292969 0.110352c0 21.4287 -17.8076 35.5693 -35.5645 35.5693z" /> +d="M569.344 216.369c4.20996 -7.13086 6.62598 -15.5469 6.62598 -24.4199c0 -8.87402 -2.41699 -17.1875 -6.62695 -24.3193c-31.9746 -54.2607 -79.6484 -98.3232 -136.81 -126.301l0.00683594 -0.00878906l43.1201 -58.377 +c7.60156 -10.8594 4.95996 -25.8252 -5.90039 -33.4268l-13.1133 -9.17773c-10.8594 -7.59863 -25.8223 -4.95801 -33.4238 5.90039l-251.836 356.544c-13.5234 -6.16211 -26.5166 -13.3994 -38.7764 -21.5635l189.979 -271.399 +c-11.4863 -1.21191 -22.4707 -1.83301 -34.2754 -1.83301c-15.1465 0 -30.0566 1.02344 -44.6641 3.00293l-40.6309 58.04h-0.00976562l-119.399 170.58c-10.457 -11.1943 -19.8271 -23.0791 -28.2939 -35.9121l124.19 -177.417 +c-73.1172 25.4863 -134.358 76.0166 -172.858 141.349c-8.96484 15.2109 -8.76562 33.8643 0 48.7393c0.0107422 0.0166016 0.0234375 0.0332031 0.0332031 0.0498047c33.5459 56.8984 82.7676 99.8506 136.79 126.242l-43.1309 58.3945 +c-7.60156 10.8604 -4.95996 25.8252 5.90039 33.4268l13.1143 9.17773c10.8584 7.59961 25.8213 4.95801 33.4229 -5.90039l52.7705 -72.1689c26.3496 6.79004 53.9834 10.4092 82.4512 10.4092c119.81 0 224.96 -63.9492 281.344 -159.631zM390.026 102.06 +c21.1406 23.9658 33.9736 55.4365 33.9736 89.9404c0 75.1738 -60.8379 136 -136 136c-17.5117 0 -34.2422 -3.30566 -49.6084 -9.32324l19.0684 -27.2363c25.9883 7.96289 54.7598 5.56836 79.5098 -7.68066h-0.0292969c-23.6504 0 -42.8203 -19.1699 -42.8203 -42.8193 +c0 -23.4717 18.9922 -42.8203 42.8203 -42.8203c23.6494 0 42.8193 19.1699 42.8193 42.8203v0.0292969c18.9111 -35.3271 15.8818 -79.1123 -8.7998 -111.68z" /> +c-3.63867 2.68848 -8.77637 1.82129 -11.3389 -1.90625l-9.07227 -13.1963c-0.884766 -1.28711 -1.40332 -2.8457 -1.40332 -4.52539c0 -2.63867 1.26953 -4.98438 3.24219 -6.44141c22.8877 -16.8994 55.4541 -40.6904 105.304 -76.8682 +c20.2734 -14.7812 56.5234 -47.8135 92.2637 -47.5732c35.7236 -0.242188 71.9609 32.7715 92.2627 47.5732c49.8506 36.1787 82.418 59.9697 105.304 76.8682c1.97266 1.45703 3.25391 3.79883 3.25391 6.4375c0 1.67969 -0.530273 3.24219 -1.41504 4.5293z" /> +d="M304 128c8.83105 0 16 -7.16895 16 -16s-7.16895 -16 -16 -16s-16 7.16895 -16 16s7.16895 16 16 16zM336 224c8.83105 0 16 -7.16895 16 -16s-7.16895 -16 -16 -16s-16 7.16895 -16 16s7.16895 16 16 16zM368 160c-8.83105 0 -16 7.16895 -16 16s7.16895 16 16 16 +s16 -7.16895 16 -16s-7.16895 -16 -16 -16zM336 128c-8.83105 0 -16 7.16895 -16 16s7.16895 16 16 16s16 -7.16895 16 -16s-7.16895 -16 -16 -16zM304 192c8.83105 0 16 -7.16895 16 -16s-7.16895 -16 -16 -16s-16 7.16895 -16 16s7.16895 16 16 16zM432 224 +c-8.83105 0 -16 7.16895 -16 16s7.16895 16 16 16s16 -7.16895 16 -16s-7.16895 -16 -16 -16zM384 208c0 8.83105 7.16895 16 16 16s16 -7.16895 16 -16s-7.16895 -16 -16 -16s-16 7.16895 -16 16zM368 256c8.83105 0 16 -7.16895 16 -16s-7.16895 -16 -16 -16 +s-16 7.16895 -16 16s7.16895 16 16 16zM464 224c8.83105 0 16 -7.16895 16 -16s-7.16895 -16 -16 -16s-16 7.16895 -16 16s7.16895 16 16 16zM496 256c8.83105 0 16 -7.16895 16 -16s-7.16895 -16 -16 -16s-16 7.16895 -16 16s7.16895 16 16 16zM432 192 +c8.83105 0 16 -7.16895 16 -16s-7.16895 -16 -16 -16s-16 7.16895 -16 16s7.16895 16 16 16zM400 160c8.83105 0 16 -7.16895 16 -16s-7.16895 -16 -16 -16s-16 7.16895 -16 16s7.16895 16 16 16zM336 96c8.83105 0 16 -7.16895 16 -16s-7.16895 -16 -16 -16 +s-16 7.16895 -16 16s7.16895 16 16 16zM304 64c8.83105 0 16 -7.16895 16 -16s-7.16895 -16 -16 -16s-16 7.16895 -16 16s7.16895 16 16 16zM368 128c8.83105 0 16 -7.16895 16 -16s-7.16895 -16 -16 -16s-16 7.16895 -16 16s7.16895 16 16 16zM389.65 346.35 +c2.89648 -2.89551 4.68945 -6.90039 4.68945 -11.3164s-1.79297 -8.41699 -4.68945 -11.3135l-169.381 -169.37c-2.89551 -2.89648 -6.90039 -4.68945 -11.3164 -4.68945s-8.41699 1.79297 -11.3135 4.68945l-11.2998 11.3105 +c-2.89355 2.89551 -4.68457 6.89844 -4.68457 11.3125c0 4.41309 1.79102 8.41113 4.68457 11.3076l5.66016 5.66992c-19.7871 20.0811 -31.9951 47.6602 -32 78.0498c0 19.2402 5.2998 37.0801 13.9297 52.8604l-10 10c-10.5723 10.6055 -25.1416 17.167 -41.2861 17.167 +c-2.58984 0 -5.1416 -0.169922 -7.64355 -0.49707c-30 -3.73047 -51 -31.7803 -51 -61.9307v-305.6c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v303.15c0 67.9395 55.4902 129.35 123.44 128.85 +c33.4453 -0.166992 63.7471 -13.835 85.6592 -35.8496l10 -10c15.8203 8.5498 33.6602 13.8496 52.9004 13.8496c30.3916 -0.000976562 57.9707 -12.21 78.0498 -32l5.66992 5.66016c2.89648 2.89648 6.90137 4.68945 11.3174 4.68945s8.41699 -1.79297 11.3125 -4.68945z +" /> +d="M32 64v48h448v-48c-0.0576172 -28.2656 -12.3916 -53.6514 -32 -71.0898v-40.9102c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v16h-256v-16c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v40.9102 +c-19.6084 17.4385 -31.9424 42.8242 -32 71.0898zM496 192c8.83105 0 16 -7.16895 16 -16v-16c0 -8.83105 -7.16895 -16 -16 -16h-480c-8.83105 0 -16 7.16895 -16 16v16c0 8.83105 7.16895 16 16 16h16v186.75c0 38.2197 31.0391 69.2656 69.2598 69.2656 +c19.1113 0 36.4248 -7.75879 48.96 -20.2959l19.2607 -19.2695c29.8994 13.1299 59.1094 7.60938 79.7295 -8.62012l0.169922 0.169922c2.89551 2.89355 6.89941 4.68457 11.3125 4.68457s8.41211 -1.79102 11.3076 -4.68457l11.3096 -11.3096 +c2.89746 -2.89648 4.69043 -6.90137 4.69043 -11.3174s-1.79297 -8.41699 -4.69043 -11.3135l-105.369 -105.369c-2.89648 -2.89746 -6.90137 -4.69043 -11.3174 -4.69043s-8.41699 1.79297 -11.3135 4.69043l-11.3096 11.3096 +c-2.88477 2.89453 -4.66992 6.8916 -4.66992 11.2969c0 4.40625 1.78516 8.39844 4.66992 11.293l0.169922 0.169922c-16.2295 20.6201 -21.75 49.8506 -8.62012 79.7305l-19.2695 19.2598c-3.84766 3.84082 -9.16016 6.21289 -15.0205 6.21289 +c-11.7178 0 -21.2344 -9.50098 -21.2598 -21.2129v-186.75h416z" /> +d="M32 -16v336h384v-336c0 -26.4922 -21.5078 -48 -48 -48h-288c-26.4922 0 -48 21.5078 -48 48zM304 240v-224c0 -8.83105 7.16895 -16 16 -16s16 7.16895 16 16v224c0 8.83105 -7.16895 16 -16 16s-16 -7.16895 -16 -16zM208 240v-224c0 -8.83105 7.16895 -16 16 -16 +s16 7.16895 16 16v224c0 8.83105 -7.16895 16 -16 16s-16 -7.16895 -16 -16zM112 240v-224c0 -8.83105 7.16895 -16 16 -16s16 7.16895 16 16v224c0 8.83105 -7.16895 16 -16 16s-16 -7.16895 -16 -16zM432 416c8.83105 0 16 -7.16895 16 -16v-32 +c0 -8.83105 -7.16895 -16 -16 -16h-416c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h120l9.40039 18.7002c3.85547 7.88574 11.9434 13.2998 21.3066 13.2998h0.0927734h114.3c0.00585938 0 -0.00195312 0.0234375 0.00390625 0.0234375 +c9.41113 0 17.5645 -5.42871 21.4961 -13.3232l9.40039 -18.7002h120z" /> d="M88 281.941h-46.0576c-21.3828 0 -32.0908 25.8516 -16.9717 40.9707l86.0596 86.0586c9.37207 9.37305 24.5674 9.37305 33.9404 0l86.0596 -86.0586c15.1191 -15.1201 4.41113 -40.9707 -16.9717 -40.9707h-46.0586v-301.941c0 -6.62695 -5.37305 -12 -12 -12h-56 c-6.62695 0 -12 5.37305 -12 12v301.941z" /> +d="M448 104v-112v-0.0615234c0 -13.2129 -10.7275 -23.9395 -23.9395 -23.9395c-0.0205078 0 -0.0400391 0.000976562 -0.0605469 0.000976562h-112c-21.3896 0 -32.0898 25.9004 -17 41l36.2002 36.2002l-107.2 107.2l-107.23 -107.301l36.2305 -36.0996 +c15.0898 -15.0996 4.38965 -41 -17 -41h-112h-0.0615234c-13.2129 0 -23.9395 10.7275 -23.9395 23.9395c0 0.0205078 0.000976562 0.0400391 0.000976562 0.0605469v112c0 21.4004 25.8896 32.0996 41 17l36.1904 -36.2002l107.27 107.2l-107.28 107.3l-36.1797 -36.2998 +c-15.0996 -15.0996 -41 -4.40039 -41 17v112v0.0615234c0 13.2129 10.7275 23.9395 23.9395 23.9395c0.0205078 0 0.0400391 -0.000976562 0.0605469 -0.000976562h112c21.3896 0 32.0898 -25.9004 17 -41l-36.2002 -36.2002l107.2 -107.2l107.23 107.301l-36.2305 36.0996 +c-15.0898 15.0996 -4.38965 41 17 41h112h0.0615234c13.2129 0 23.9395 -10.7275 23.9395 -23.9395c0 -0.0205078 -0.000976562 -0.0400391 -0.000976562 -0.0605469v-112c0 -21.4004 -25.8896 -32.0996 -41 -17l-36.1904 36.2002l-107.27 -107.2l107.28 -107.3 +l36.1797 36.2002c15.0996 15.1992 41 4.5 41 -16.9004z" /> @@ -1994,9 +2297,9 @@ v-70.9004h-116c-6.59961 0 -12 -5.40039 -12 -12v-64c0 -6.59961 5.40039 -12 12 -12 d="M8 192c0 137 111 248 248 248s248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248zM300 76v116h70.9004c10.6992 0 16.0996 13 8.5 20.5l-114.9 114.3c-4.7002 4.7002 -12.2002 4.7002 -16.9004 0l-115 -114.3c-7.59961 -7.59961 -2.19922 -20.5 8.5 -20.5 h70.9004v-116c0 -6.59961 5.40039 -12 12 -12h64c6.59961 0 12 5.40039 12 12z" /> +d="M432 128c8.83105 0 16 -7.16895 16 -16v-128c0 -26.4922 -21.5078 -48 -48 -48h-352c-26.4922 0 -48 21.5078 -48 48v352c0 26.4922 21.5078 48 48 48h160c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-144v-320h320v112 +c0 8.83105 7.16895 16 16 16h32zM488 448c13.2461 0 24 -10.7539 24 -24v-128c0 -21.5 -26 -32 -41 -17l-35.7197 35.6797l-243.61 -243.68c-4.34668 -4.36133 -10.3652 -7.0625 -17.0029 -7.0625s-12.6504 2.70117 -16.9971 7.0625l-22.6699 22.6299 +c-4.36133 4.34668 -7.0625 10.3652 -7.0625 17.0029c0 6.63867 2.70117 12.6504 7.0625 16.9971l243.73 243.64l-35.7305 35.7305c-15.0498 15.0898 -4.37012 41 17 41h128z" /> @@ -2015,11 +2318,11 @@ c-6.2002 6.2002 -16.3994 6.2002 -22.5996 0l-105.4 -105.4c-10.0996 -10.0996 -3 -2 d="M485.5 448l90.5 -160h-101.1l-69.2002 160h79.7998zM357.5 448l69.2002 -160h-277.4l69.2002 160h139zM90.5 448h79.7998l-69.2002 -160h-101.1zM0 256h100.7l123 -251.7c1.5 -3.09961 -2.7002 -5.89941 -5 -3.2998zM148.2 256h279.6l-137 -318.2 c-1 -2.39941 -4.5 -2.39941 -5.5 0zM352.3 4.2998l123 251.7h100.7l-218.7 -254.9c-2.2998 -2.69922 -6.5 0.100586 -5 3.2002z" /> +d="M313.553 328.331c14.2646 -15.3623 3.29102 -40.3311 -17.5869 -40.3311h-63.9658v-328c0 -13.2549 -10.7451 -24 -24 -24h-195.976c-10.6914 0 -16.0459 12.9258 -8.48535 20.4854l56 56c2.17188 2.17188 5.17383 3.51465 8.48535 3.51465h83.9756v272h-63.9746 +c-20.9639 0 -31.793 25.0312 -17.5869 40.3311l103.975 112.003c9.49805 10.2295 25.6885 10.2139 35.1738 0z" /> @@ -2035,8 +2338,8 @@ c0 -4.41992 4.78027 -8 10.6699 -8h85.3301v-32h-85.3301c-5.88965 0 -10.6699 -3.58 d="M272 448c26.5 0 48 -21.5 48 -48v-416c0 -26.5 -21.5 -48 -48 -48h-224c-26.5 0 -48 21.5 -48 48v416c0 26.5 21.5 48 48 48h224zM160 -32c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32zM272 76v312 c0 6.59961 -5.40039 12 -12 12h-200c-6.59961 0 -12 -5.40039 -12 -12v-312c0 -6.59961 5.40039 -12 12 -12h200c6.59961 0 12 5.40039 12 12z" /> +c5.67578 2.35449 11.96 3.6543 18.4824 3.6543c6.52148 0 12.7432 -1.2998 18.418 -3.6543zM256.1 1.7002c93.7002 46.5996 172.5 156.3 175.801 307.7l-175.9 73.2998z" /> @@ -2096,47 +2399,48 @@ l46.2998 -46.2998l-157.9 -157.9c-35 42.4004 -53.5 93.6006 -56.0996 145.5c63.9004 d="M248 440c137 0 248 -111 248 -248s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM120 256c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32zM184 352c0 -17.7002 14.2998 -32 32 -32s32 14.2998 32 32 s-14.2998 32 -32 32s-32 -14.2998 -32 -32zM232 208c17.7002 0 32 14.2998 32 32s-14.2998 32 -32 32s-32 -14.2998 -32 -32s14.2998 -32 32 -32z" /> +d="M74 240l-33.9102 90.3799c-0.655273 1.74707 -1.01953 3.64551 -1.01953 5.62012c0 8.83105 7.16895 16 16 16h0.0195312h56.9102v32h-24c-4.41504 0 -8 3.58496 -8 8v16c0 4.41504 3.58496 8 8 8h24v24c0 4.41504 3.58496 8 8 8h16c4.41504 0 8 -3.58496 8 -8v-24h24 +c4.41504 0 8 -3.58496 8 -8v-16c0 -4.41504 -3.58496 -8 -8 -8h-24v-32h56.8896c0.00683594 0 0.0078125 -0.00683594 0.0146484 -0.00683594c8.83008 0 16 -7.16992 16 -16c0 -1.97461 -0.359375 -3.86621 -1.01465 -5.61328l-33.8896 -90.3799h10 +c8.83105 0 16 -7.16895 16 -16v-16c0 -8.83105 -7.16895 -16 -16 -16h-15.9404c0.142578 -44.1934 5.69141 -86.9287 15.9404 -128h-128c10.249 41.0713 15.7979 83.8066 15.9404 128h-15.9404c-8.83105 0 -16 7.16895 -16 16v16c0 8.83105 7.16895 16 16 16h10z +M247.16 -11.5801c5.24805 -2.62598 8.83984 -8.0459 8.83984 -14.3096v-22.1104c0 -8.83105 -7.16895 -16 -16 -16h-224c-8.83105 0 -16 7.16895 -16 16v22.1104c0.000976562 6.26562 3.59668 11.6855 8.84961 14.3096l23.1504 11.5801v16c0 8.83105 7.16895 16 16 16h160 +c8.83105 0 16 -7.16895 16 -16v-16zM339.93 146.2l-24.5693 20.7998c-6.94434 5.86133 -11.3438 14.6143 -11.3604 24.4004v58.5996c0 3.31152 2.68848 6 6 6h26.3896c3.31152 0 6 -2.68848 6 -6v-26h24.71v26c0 3.31152 2.68848 6 6 6h53.8105c3.31152 0 6 -2.68848 6 -6 +v-26h24.71v26c0 3.31152 2.68848 6 6 6h26.3799c3.31152 0 6 -2.68848 6 -6v-58.54c0 -0.0107422 0.0185547 -0.0126953 0.0185547 -0.0234375c0 -9.79297 -4.40918 -18.5645 -11.3486 -24.4365l-24.5996 -20.79l3.29004 -82.21h-126.721zM384 144v-32h32v32 +c0 8.83105 -7.16895 16 -16 16s-16 -7.16895 -16 -16zM503.16 -11.5801c5.24805 -2.62598 8.83984 -8.0459 8.83984 -14.3096v-22.1104c0 -8.83105 -7.16895 -16 -16 -16h-192c-8.83105 0 -16 7.16895 -16 16v22.1104c0.000976562 6.26562 3.59668 11.6855 8.84961 14.3096 +l23.1504 11.5801v16c0 8.83105 7.16895 16 16 16h128c8.83105 0 16 -7.16895 16 -16v-16z" /> +d="M8 160.12c0 73.3799 59.8096 181.08 112.6 225.37c-14 3.41992 -24.5996 15.5098 -24.5996 30.5098c0 17.6611 14.3389 32 32 32h64c17.6611 0 32 -14.3389 32 -32c0 -15.0498 -10.5996 -27.0898 -24.5996 -30.5098c24.3994 -20.4902 50.0693 -54.6807 70.8691 -92.5898 +l-107.89 -107.931c-1.44727 -1.44727 -2.3418 -3.44922 -2.3418 -5.65625c0 -2.20605 0.894531 -4.20508 2.3418 -5.65332l11.3105 -11.3105c1.44727 -1.44629 3.44922 -2.3418 5.65527 -2.3418c2.20703 0 4.20605 0.895508 5.6543 2.3418l100.31 100.33 +c15.96 -35.46 26.6904 -71.9492 26.6904 -102.56c0 -51.6006 -22.1396 -73.8301 -56 -84.6006v-43.5195h-192v43.5195c-33.8604 10.7705 -56 32.9609 -56 84.6006zM304 0c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-288 +c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h288z" /> +d="M400 0c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-352c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h352zM416 288c17.6494 -0.0136719 31.9688 -14.3477 31.9688 -32.001c0 -3.32129 -0.507812 -6.52539 -1.44922 -9.53906 +l-73.0791 -214.46h-298.881l-73.0791 214.46c-0.941406 3.01367 -1.45508 6.21875 -1.45508 9.54004c0 17.6533 14.3252 31.9863 31.9746 32h160v48h-40c-4.41504 0 -8 3.58496 -8 8v48c0 4.41504 3.58496 8 8 8h40v40c0 4.41504 3.58496 8 8 8h48 +c4.41504 0 8 -3.58496 8 -8v-40h40c4.41504 0 8 -3.58496 8 -8v-48c0 -4.41504 -3.58496 -8 -8 -8h-40v-48h160z" /> +d="M19 175.53c-11.2041 4.98145 -19 16.1963 -19 29.2393v0.0205078v137.21c0 0.0195312 -0.00292969 0.0419922 -0.00292969 0.0625c0 6.60742 2.67578 12.5957 7.00293 16.9375l9 9l-14.21 28.4199c-1.13867 2.27344 -1.79004 4.85547 -1.79004 7.56934v0.0107422 +c0 6.62305 5.37695 12 12 12h147.94c106 0 191.92 -86 191.92 -192v-192h-319.86v14.5195c0 0.0078125 -0.078125 -0.03125 -0.078125 -0.0244141c0 31.3145 18.0312 58.4512 44.2686 71.585l57.2197 28.6504c15.751 7.87695 26.5303 24.1348 26.5303 42.9297v0.00976562 +v50.3301l-22.1201 -11.0801c-6.19238 -3.09668 -10.8369 -8.78906 -12.5508 -15.6504l-9.21973 -30.6494c-2.81152 -9.35645 -9.77051 -16.9043 -18.7598 -20.5l-12.7803 -5.12012c-3.66895 -1.46777 -7.7168 -2.27246 -11.9082 -2.27246 +c-4.61621 0 -9.00586 0.979492 -12.9717 2.74219zM52 320c-11.0381 0 -20 -8.96191 -20 -20s8.96191 -20 20 -20s20 8.96191 20 20s-8.96191 20 -20 20zM368 0c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-352c-8.83105 0 -16 7.16895 -16 16v32 +c0 8.83105 7.16895 16 16 16h352z" /> +d="M105.1 224c-29.3896 18.3799 -49.0996 50.7803 -49.0996 88c0 57.3994 46.6006 104 104 104s104 -46.6006 104 -104c0 -37.2197 -19.71 -69.6201 -49.0996 -88h25.0996c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-16v-5.49023 +c0 -44 4.11035 -86.5996 24 -122.51h-176c19.8604 35.9102 24 78.5098 24 122.51v5.49023h-16c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h25.0996zM304 0c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-288 +c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h288z" /> +d="M256 336c-30.9072 0 -56 25.0928 -56 56s25.0928 56 56 56s56 -25.0928 56 -56s-25.0928 -56 -56 -56zM432 0c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-352c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h352zM504.87 263.84 +c4.30566 -2.86816 7.11914 -7.77344 7.11914 -13.3311c0 -2.56445 -0.604492 -4.98926 -1.67969 -7.13867l-102.55 -211.37h-303.52l-102.55 211.33c-1.0752 2.14941 -1.70508 4.58008 -1.70508 7.14453c0 5.55762 2.83887 10.457 7.14453 13.3252l28.5703 16 +c7.35938 4.91016 16.8096 2.5498 22.0898 -4.54004c8.6543 -11.709 22.4922 -19.2686 38.1572 -19.2686c1.13672 0 2.26562 0.0400391 3.38281 0.119141c25.6699 1.73926 44.6699 24.7998 44.6699 50.4893c0 7.39648 6.00391 13.4004 13.4004 13.4004h38.7695 +c6.04004 0 11.6104 -3.99023 12.8604 -9.91016c4.57715 -21.7363 23.8789 -38.0752 46.9688 -38.0752s42.3936 16.3389 46.9707 38.0752c1.25 5.91016 6.86035 9.91016 12.8604 9.91016h38.7695c7.39648 0 13.4004 -6.00391 13.4004 -13.4004 +c0 -23.5293 15.7002 -45.46 38.8398 -49.75c2.95898 -0.576172 5.9541 -0.918945 9.08105 -0.918945c15.6064 0 29.4688 7.5293 38.1494 19.1494c5.37988 7.13965 14.8496 9.67969 22.29 4.67969z" /> +d="M368 416c8.83105 0 16 -7.16895 16 -16v-176l-64 -32c0 -47.7197 1.54004 -95 13.21 -160h-282.42c11.6699 65 13.21 111.67 13.21 160l-64 32v176c0 8.83105 7.16895 16 16 16h56.0996c8.83105 0 16 -7.16895 16 -16v-48h47.9004v48c0 8.83105 7.16895 16 16 16h80 +c8.83105 0 16 -7.16895 16 -16v-48h48v48c0 8.83105 7.16895 16 16 16h56zM224 128v64c0 17.6611 -14.3389 32 -32 32s-32 -14.3389 -32 -32v-64h64zM368 0c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-352c-8.83105 0 -16 7.16895 -16 16v32 +c0 8.83105 7.16895 16 16 16h352z" /> +l272 113.3c5.6748 2.35449 11.959 3.6543 18.4814 3.6543s12.7432 -1.2998 18.4189 -3.6543z" /> +d="M271.06 303.7c-24.0596 6.39941 -43.4297 24.7002 -46.5693 47.7002c-4.33984 32 20.6201 59.3994 53.5098 63v17.5996c0 8.7998 7.82031 16 17.3701 16h17.3701c9.5498 0 17.3701 -7.2002 17.3701 -16v-17.7197c12.457 -1.28516 24.2842 -5.35938 34.5195 -11.5 +c3.32227 -2.00098 5.52734 -5.64746 5.52734 -9.80469c0 -2.18945 -0.617188 -4.23633 -1.6875 -5.97559c-0.592773 -0.978516 -1.31836 -1.8457 -2.16992 -2.59961l-19 -17.5c-4.01953 -3.7002 -10.0693 -4.2002 -15.2998 -2 +c-3.46289 1.4043 -7.2666 2.19336 -11.2305 2.19922h-35.5996c-5.03027 0 -9.12012 -3.7998 -9.12012 -8.39941c0.12207 -3.94727 2.91699 -7.23145 6.62988 -8.10059l54.2705 -14.2998c24.0996 -6.39941 43.4102 -24.7002 46.5596 -47.7002 +c4.33984 -32 -20.5693 -59.3994 -53.5 -63v-17.5996c0 -8.7998 -7.83008 -16 -17.3799 -16h-17.3701c-9.54004 0 -17.3701 7.2002 -17.3701 16v17.7002c-12.4541 1.28516 -24.2773 5.35938 -34.5098 11.5c-3.33008 1.99609 -5.54199 5.64551 -5.54199 9.80762 +c0 2.17188 0.607422 4.20312 1.66211 5.93262c0.617188 1.00098 1.36914 1.88867 2.25 2.65918l19 17.5c4.01953 3.7002 10.0596 4.2002 15.2998 2c3.45117 -1.39941 7.24121 -2.18848 11.1904 -2.19922h35.5996c5.03027 0 9.12012 3.7998 9.12012 8.39941 +c-0.121094 3.94727 -2.91602 7.23145 -6.62988 8.10059zM565.27 119.9c6.5918 -5.86328 10.7656 -14.3916 10.7656 -23.8984c0 -10.1123 -4.70117 -19.1357 -12.0352 -25.002l-151.23 -121c-10.9443 -8.74512 -24.8633 -14 -39.9482 -14h-0.0517578h-356.77 +c-8.83105 0 -16 7.16895 -16 16v96c0 8.83105 7.16895 16 16 16h55.4004l46.5 37.71c20.2197 16.4053 46.0596 26.2822 74.0996 26.29h160c17.6406 0 31.9668 -14.3066 32 -31.9404c0 -0.0410156 0.000976562 -0.0507812 0.000976562 -0.0917969 +c0 -1.83008 -0.158203 -3.62402 -0.460938 -5.36816c-2.54004 -15.6992 -17.3496 -26.5996 -33.25 -26.5996h-78.29c-8.83105 0 -16 -7.16895 -16 -16s7.16895 -16 16 -16h118.27c0.0605469 0 0.161133 0.0234375 0.22168 0.0234375 +c15.0459 0 28.8799 5.23242 39.7783 13.9766l92.4004 73.9004c12.4004 10 30.7998 10.6992 42.5996 0z" /> +d="M224 192c-70.6455 0 -128 57.3545 -128 128s57.3545 128 128 128s128 -57.3545 128 -128s-57.3545 -128 -128 -128zM320 128v-160c0.0791016 -11.6504 3.3418 -22.6367 8.90039 -32h-280.9c-26.4922 0 -48 21.5078 -48 48v41.5996 +c0.0166016 74.1699 60.2305 134.384 134.4 134.4h16.6992c22.1426 -10.2109 47.085 -15.9072 73.0498 -15.9072c25.9639 0 50.6084 5.69629 72.751 15.9072h16.6992c5 0 9.7002 -1 14.5 -1.5c-5.06641 -9.00684 -8.02539 -19.4561 -8.09961 -30.5zM608 160 +c17.6611 0 32 -14.3389 32 -32v-160c0 -17.6611 -14.3389 -32 -32 -32h-224c-17.6611 0 -32 14.3389 -32 32v160c0 17.6611 14.3389 32 32 32h32v80c0 44.1533 35.8467 80 80 80s80 -35.8467 80 -80v-80h32zM496 16c17.6611 0 32 14.3389 32 32s-14.3389 32 -32 32 +s-32 -14.3389 -32 -32s14.3389 -32 32 -32zM528 160v80c0 17.6611 -14.3389 32 -32 32s-32 -14.3389 -32 -32v-80h64z" /> @@ -2571,8 +2876,8 @@ c12.9697 -4.20996 26.6006 -6.91016 40.9502 -6.91016s27.9805 2.7002 40.9404 6.910 c26.4697 0 48 -22.25 48 -49.5898v-316.82c0 -27.3398 -21.5303 -49.5898 -48 -49.5898h-244.55c-6.57031 25.2695 -20.5898 47.3096 -39.6904 64h76.2402v64h128v-64h64v288h-352v-49.7998c-18.9004 11.0195 -40.5801 17.7998 -64 17.7998v46.4102 c0 27.3398 21.5303 49.5898 48 49.5898h384z" /> +d="M446.53 350.57c0 0 58.4297 -19.0605 98.9893 -41.2803c18.7607 -10.2803 30.4805 -29.8301 30.4805 -51.2305c0 -21.793 -11.9512 -40.7695 -29.71 -50.7295l-154.44 -86.6504l98.5205 -104.68h53.6299c17.6699 0 32 -14.3301 32 -32c0 -8.83984 -7.16016 -16 -16 -16 +h-90.3799l-118.53 125.94c5.07031 54.1494 -29.9297 85.0596 -40.7998 93.21c-36.8496 27.6191 -88.29 27.6592 -125.13 0l-34.7803 -26.0908c-7.07031 -5.2998 -8.49023 -15.3291 -3.18945 -22.4092c5.31934 -7.10059 15.3496 -8.5 22.4092 -3.19043l32.7607 24.5898 +c20.6895 15.5303 48.3496 20.8105 72.2393 10.8799c44.0605 -18.3193 57.8506 -70.3701 33.71 -106.6l-35.7998 -48.3301h79.4902c17.6699 0 32 -14.3301 32 -32c0 -8.83984 -7.16016 -16 -16 -16h-304c-34.9199 0 -63.8896 28.0996 -64 63.0195 +c-0.5 166.86 126.75 304.021 289.46 319.44c6.82031 37.25 39.3096 65.54 78.54 65.54c39.1904 0 71.6699 -28.2305 78.5303 -65.4297zM368 312c13.25 0 24 10.75 24 24c0 13.2598 -10.75 24 -24 24c-13.2598 0 -24 -10.7402 -24 -24c0 -13.25 10.7402 -24 24 -24z" /> @@ -2675,7 +2979,7 @@ c-5.32031 -0.449219 -10.5605 -1.17969 -16 -1.17969c-16.6006 0 -32.6406 2.2998 -4 c-0.0800781 145.76 129.3 182.88 147.31 186.94c57.1709 12.9199 111.221 0.259766 153.21 -28.7002c43.4902 -29.9902 94.9209 -46.2402 147.74 -46.2402h9.37012c60.6504 0 115.01 -45.4102 118.18 -105.98zM463.97 200c13.25 0 24 10.75 24 24 c0 13.2598 -10.75 24 -24 24s-24 -10.7402 -24 -24c0 -13.25 10.75 -24 24 -24zM543.97 46.75v99.0596c-11.1299 -11.3799 -24.7393 -20.1494 -39.8594 -25.9795z" /> +d="M358.4 444.8c10.5996 7.90039 25.5996 0.400391 25.5996 -12.7998v-480c0 -13.2002 -15.0996 -20.7002 -25.5996 -12.7998l-38.4004 44.7998l-54.4004 -44.7998c-2.66602 -2.01953 -6.01367 -3.21777 -9.6123 -3.21777c-3.59961 0 -6.9209 1.19824 -9.58691 3.21777 +l-54.4004 44.7998l-54.4004 -44.7998c-2.66602 -2.01953 -6.01367 -3.21777 -9.6123 -3.21777c-3.59961 0 -6.9209 1.19824 -9.58691 3.21777l-54.4004 44.7998l-38.4004 -44.7998c-10.5996 -7.90039 -25.5996 -0.400391 -25.5996 12.7998v480 +c0 13.2002 15 20.7002 25.5996 12.7998l38.4004 -44.7998l54.4004 44.7998c2.66602 2.01953 6.01367 3.21777 9.6123 3.21777c3.59961 0 6.9209 -1.19824 9.58691 -3.21777l54.4004 -44.7998l54.4004 44.7998c2.66602 2.01953 6.01367 3.21777 9.6123 3.21777 +c3.59961 0 6.9209 -1.19824 9.58691 -3.21777l54.4004 -44.7998zM320 88v16c0 4.40039 -3.59961 8 -8 8h-240c-4.40039 0 -8 -3.59961 -8 -8v-16c0 -4.40039 3.59961 -8 8 -8h240c4.40039 0 8 3.59961 8 8zM320 184v16c0 4.40039 -3.59961 8 -8 8h-240 +c-4.40039 0 -8 -3.59961 -8 -8v-16c0 -4.40039 3.59961 -8 8 -8h240c4.40039 0 8 3.59961 8 8zM320 280v16c0 4.40039 -3.59961 8 -8 8h-240c-4.40039 0 -8 -3.59961 -8 -8v-16c0 -4.40039 3.59961 -8 8 -8h240c4.40039 0 8 3.59961 8 8z" /> +d="M32 224h32v-192h-32h-0.0390625c-17.6406 0 -31.9619 14.3213 -31.9619 31.9619c0 0.0126953 0.000976562 0.0253906 0.000976562 0.0380859v128v0.0390625c0 17.6406 14.3213 31.9619 31.9619 31.9619c0.0126953 0 0.0253906 -0.000976562 0.0380859 -0.000976562z +M544 272v-272c-0.0351562 -35.3066 -28.6934 -63.9648 -64 -64h-320c-35.3066 0.0351562 -63.9648 28.6934 -64 64v272v0.0263672c0 44.1387 35.835 79.9746 79.9736 79.9746c0.00878906 0 0.0175781 -0.000976562 0.0263672 -0.000976562h112v64 +c0 17.6611 14.3389 32 32 32s32 -14.3389 32 -32v-64h112h0.0263672c44.1387 0 79.9746 -35.835 79.9746 -79.9736c0 -0.00878906 -0.000976562 -0.0175781 -0.000976562 -0.0263672zM264 192c0 22.0762 -17.9238 40 -40 40s-40 -17.9238 -40 -40s17.9238 -40 40 -40 +c22.0752 0 40 17.9248 40 40zM256 64h-64v-32h64v32zM352 64h-64v-32h64v32zM456 192c0 22.0762 -17.9238 40 -40 40s-40 -17.9238 -40 -40s17.9238 -40 40 -40c22.0752 0 40 17.9248 40 40zM448 64h-64v-32h64v32zM640 192v-128v-0.0390625 +c0 -17.6406 -14.3213 -31.9619 -31.9619 -31.9619c-0.0126953 0 -0.0253906 0.000976562 -0.0380859 0.000976562h-32v192h32h0.0390625c17.6406 0 31.9619 -14.3213 31.9619 -31.9619c0 -0.0126953 -0.000976562 -0.0253906 -0.000976562 -0.0380859z" /> +c9.50977 2.5498 17.8701 7.44043 25.4297 13.3203zM263 108c-13.2305 -13.4697 -33.8398 -15.8799 -49.7305 -5.82031c-6.13867 3.89746 -13.5029 6.15527 -21.3066 6.15527s-15.084 -2.25781 -21.2227 -6.15527c-15.9004 -10.0596 -36.5098 -7.64941 -49.7402 5.82031 +c-14.7305 15 -16.4004 14.04 -38.7803 20.1396c-13.8896 3.79004 -24.75 14.8408 -28.4697 28.9805c-7.48047 28.3994 -5.54004 24.9697 -25.9502 45.75c-10.1699 10.3604 -14.1396 25.4502 -10.4199 39.5898c7.48047 28.4199 7.46973 24.46 0 52.8203 +c-3.72949 14.1396 0.25 29.2295 10.4199 39.5801c20.4102 20.7793 18.4805 17.3594 25.9502 45.75c3.71973 14.1396 14.5801 25.1895 28.4697 28.9795c27.8906 7.61035 24.5303 5.62988 44.9404 26.4102c10.1699 10.3604 25 14.4004 38.8896 10.6104 +c27.9199 -7.61035 24.0303 -7.60059 51.9004 0c13.8896 3.79004 28.7197 -0.260742 38.8896 -10.6104c20.4297 -20.79 17.0703 -18.7998 44.9502 -26.4102c13.8896 -3.79004 24.75 -14.8398 28.4697 -28.9795c7.48047 -28.3906 5.54004 -24.9707 25.9502 -45.75 +c10.1699 -10.3506 14.1396 -25.4404 10.4199 -39.5801c-7.47949 -28.4102 -7.46973 -24.4502 0 -52.8301c3.71973 -14.1406 -0.25 -29.2305 -10.4199 -39.5801c-20.4102 -20.7803 -18.4697 -17.3506 -25.9502 -45.75c-3.71973 -14.1396 -14.5801 -25.1904 -28.4697 -28.9805 +c-21.7598 -5.92969 -23.5098 -4.58984 -38.79 -20.1396zM97.6602 272.04c0 -53.0303 42.2402 -96.0205 94.3398 -96.0205s94.3398 42.9902 94.3398 96.0205s-42.2402 96.0195 -94.3398 96.0195s-94.3398 -42.9893 -94.3398 -96.0195z" /> @@ -2884,12 +3187,12 @@ v16c0 4.41992 -3.58008 8 -8 8h-176c-4.41992 0 -8 -3.58008 -8 -8zM112 48c17.6699 h112c17.6699 0 32 14.3301 32 32v96c0 17.6699 -14.3301 32 -32 32h-112v-160zM400 48c17.6699 0 32 14.3301 32 32s-14.3301 32 -32 32s-32 -14.3301 -32 -32s14.3301 -32 32 -32z" /> +d="M431.34 325.95c44.9004 -16.3398 80.6602 -42.7803 80.6602 -86.1006v-160.229c0 -30.2705 -27.5 -57.6797 -72 -77.8604v101.9c0 13.2461 -10.7539 24 -24 24s-24 -10.7539 -24 -24v-118.93c-33.0498 -9.11035 -71.0703 -15.0605 -112 -16.7305v103.61 +c0 13.2461 -10.7539 24 -24 24s-24 -10.7539 -24 -24v-103.61c-40.9297 1.66992 -78.9502 7.62012 -112 16.7305v118.93c0 13.2461 -10.7539 24 -24 24s-24 -10.7539 -24 -24v-101.9c-44.5 20.1807 -72 47.5898 -72 77.8604v160.229c0 107.601 219.55 112.15 256 112.15 +c15.2197 0 62.4297 -0.910156 112.19 -9.69043l110.06 71c2.53711 1.69238 5.59082 2.7041 8.86621 2.7041c5.55664 0 10.4551 -2.83887 13.3242 -7.14355l8.86914 -13.3105c1.69238 -2.53711 2.7041 -5.58984 2.7041 -8.86523 +c0 -5.55664 -2.83887 -10.4561 -7.14355 -13.3242zM256 175.76c114.87 0 208 28.6904 208 64.0898c0 21.3105 -33.9102 40.1504 -85.8604 51.75l-118.64 -76.5195c-2.53711 -1.69141 -5.59082 -2.7041 -8.86621 -2.7041c-5.55664 0 -10.4551 2.83887 -13.3242 7.14355 +l-8.86914 13.3105c-1.69434 2.53809 -2.70703 5.59277 -2.70703 8.87012c0 5.55371 2.83594 10.4502 7.13672 13.3193l72.8096 47c-15.9492 1.2002 -32.5293 1.91016 -49.6797 1.91016c-114.88 0 -208 -28.6797 -208 -64.0801c0 -35.3994 93.1201 -64.0898 208 -64.0898z +" /> +c-8.83984 0 -16 -7.16016 -16 -16s7.16016 -16 16 -16h12.3896c18.6201 0 35.1104 11.8701 41 29.5303l10.6104 31.8799l16.8301 -50.46c2.03027 -6.14062 7.58008 -10.4404 14.0303 -10.8906c0.389648 -0.0292969 0.759766 -0.0498047 1.13965 -0.0498047 +c0.00390625 0 -0.00292969 -0.015625 0.000976562 -0.015625c6.26074 0 11.6865 3.60742 14.3086 8.85547l7.6709 15.3408c2.7998 5.59961 7.93945 6.18945 10.0195 6.18945s7.21973 -0.599609 10.1699 -6.51953c7.37012 -14.7207 22.1904 -23.8604 38.6396 -23.8604 +h47.1904c8.83984 0 16 7.16016 16 16s-7.16016 16 -16 16h-47.1904zM377 343c4.5 -4.5 7 -10.5996 7 -16.9004v-6.09961h-128v128h6.09961c6.40039 0 12.5 -2.5 17 -7z" /> +l0.00488281 0.00195312c4.27637 0 8.15039 -1.73633 10.9551 -4.54199l6.91992 -6.91992c2.91016 -2.91016 6.85059 -4.54004 10.96 -4.54004h10.0908c8.55957 0 15.5 -6.93945 15.5 -15.5c0 -6.66992 -4.27051 -12.5898 -10.6006 -14.7002l-47.3096 -15.7695 +c-3.90039 -1.2998 -8.15039 -1 -11.8301 0.839844l-14.7207 7.36035c-7.5791 3.7998 -15.9492 5.76953 -24.4297 5.76953h-0.889648c-12.2734 -0.00292969 -23.6533 -4.08594 -32.7803 -10.9297l-27.5801 -20.6904c-13.75 -10.3193 -21.8496 -26.5098 -21.8496 -43.6992 +v-14.0605c0.00292969 -15.0742 6.11328 -28.7393 16 -38.6299c10.25 -10.2402 24.1396 -16 38.6299 -16h25.8799c8.55957 0 15.5 -6.94043 15.5 -15.5v-29.8896c0 -12.6504 3.0293 -24.6885 8.33008 -35.29c4.7002 -9.40039 14.3096 -15.3398 24.8203 -15.3398 +c9.63477 0.000976562 18.1133 4.89551 23.0898 12.3594l13.0293 19.5498c7.18359 10.7715 15.4854 20.4473 25 29.1602c2.4707 2.27051 4.14062 5.27051 4.76074 8.56055l4.2998 22.8301c0.439453 2.3291 1.41016 4.5293 2.83008 6.42969l18.7402 24.9795 +c2.00977 2.68066 3.09961 5.9502 3.09961 9.30078v11.3398c0 8.55957 -6.94043 15.5 -15.5 15.5h-8.20996c-5.17969 0 -10.0205 2.58984 -12.8896 6.89941l-13.2402 19.8604c-5.66992 8.50977 -1.70996 20.0703 7.99023 23.2998l2.64941 0.879883 +c1.53906 0.511719 3.20312 0.78418 4.91309 0.78418c3.17383 0 6.12695 -0.955078 8.58691 -2.59375l18.21 -12.1396c2.45801 -1.6416 5.44043 -2.59863 8.61523 -2.59863c2.48438 0 4.83301 0.585938 6.91504 1.62793l15.3896 7.7002 +c5.25 2.62012 8.57031 7.99023 8.57031 13.8604v6.92969z" /> +c1.08008 8.37988 1.82031 16.8701 1.82031 25.54c0 32.1299 -7.7998 62.4102 -21.3203 89.3301l-12.9795 -6.49023c-3.74023 -1.85938 -6.91992 -4.67969 -9.24023 -8.14941l-19.5898 -29.3809c-2.54004 -3.80371 -4.02051 -8.4209 -4.02051 -13.334 +c0 -4.91211 1.48047 -9.48145 4.02051 -13.2852l17.9795 -26.9707c3.31055 -4.96973 8.36035 -8.51953 14.1504 -9.96973z" /> +c-0.490234 -1.7002 -2.06055 -2.87988 -3.83984 -2.87988h-3.80078c-1.66211 0.000976562 -3.08691 1.01465 -3.68945 2.45996l-5.35059 12.8496c-1.23926 2.99023 -4.15918 4.93066 -7.38965 4.93066h-12.0898 +c-0.00390625 0 -0.0146484 -0.00488281 -0.0185547 -0.00488281c-1.72168 0 -3.31738 -0.545898 -4.62109 -1.47559l-23.71 -16.8896c-1.73047 -1.23047 -3.61035 -2.25977 -5.59082 -3.0498l-39.3398 -15.7402c-3.04004 -1.21973 -5.0293 -4.16016 -5.0293 -7.42969 +v-10.2002l-0.00195312 -0.00390625c0 -2.20703 0.895508 -4.20703 2.3418 -5.65625l11.9102 -11.9102c3 -3 7.06934 -4.68945 11.3096 -4.68945h10.3398c1.31055 0 2.61035 0.15918 3.87988 0.479492l21.2705 5.32031c2.08203 0.520508 4.25391 0.802734 6.49707 0.802734 +c7.38574 0 14.0771 -2.99805 18.9229 -7.84277l13.0098 -13.0098c3 -3 7.07031 -4.69043 11.3096 -4.69043h15.1602c4.24023 0 8.31055 1.69043 11.3105 4.69043l9.56934 9.56934c3 3 4.69043 7.07031 4.69043 11.3105z" /> +c-18.4697 11.9805 -28.6396 33.3701 -28.6396 55.3906v62.3096c0 4.41992 3.58008 8 8 8h48c4.41992 0 8 -3.58008 8 -8v-62.3096c0 -6.82031 3.61035 -12.9805 9.28027 -16.7803zM360.89 95.9502c0.0371094 0 0.0556641 0.0351562 0.0927734 0.0351562 +c19.4336 0 36.8535 -8.68652 48.5879 -22.3857l117.949 -137.6h-88.4492c-19.4385 0 -36.8506 8.65137 -48.5898 22.3496l-117.801 137.431c1.40039 0.0195312 53.8105 0.109375 88.21 0.169922zM616 96c13.25 0 24 -10.7402 24 -24v-112c0 -13.25 -10.75 -24 -24 -24 +h-17.4199c-19.4375 0 -36.8506 8.65137 -48.5898 22.3496l-117.99 137.65h184z" /> +c0 -13.4707 -8.32422 -24.9951 -20.1201 -29.71l-139.88 -55.9502v288z" /> +c0.00292969 13.4697 8.32617 24.9932 20.1201 29.71zM288 88.3301c14.0703 0 27.3799 6.17969 36.5098 16.9502c19.6699 23.2002 40.5703 49.6299 59.4902 76.7197v-245.99l-192 64v182c18.9199 -27.0996 39.8301 -53.5195 59.4902 -76.7197 +c9.12988 -10.7803 22.4395 -16.96 36.5098 -16.96zM554.06 286.84c10.5107 4.2002 21.9404 -3.54004 21.9404 -14.8594v-250.32c0 -13.4707 -8.32422 -24.9951 -20.1201 -29.71l-139.88 -55.9502v288z" /> @@ -3263,11 +3567,11 @@ c0 -17.7002 -14.2998 -32 -32 -32s-32 14.2998 -32 32c0 2.7998 0.900391 5.40039 1. c0 24.2998 -13.7002 45.2002 -33.5996 56c0.699219 -2.59961 1.59961 -5.2002 1.59961 -8c0 -17.7002 -14.2998 -32 -32 -32s-32 14.2998 -32 32c0 2.7998 0.900391 5.40039 1.59961 8c-19.8994 -10.7998 -33.5996 -31.7002 -33.5996 -56c0 -35.2998 28.7002 -64 64 -64z " /> +c-26.4404 -7.36035 -54.5205 -5.85059 -81 1.35938l-287.601 78.3506c-9.58496 2.61621 -18.2998 7.45605 -25.4697 13.9297z" /> +c2.41504 1.22461 5.18066 1.91504 8.07227 1.91504c2.875 0 5.59277 -0.682617 7.99805 -1.89551l72.3496 -36.4697l103.21 52.3799l-156.22 98.0996c-8.08008 8.87988 -5.5 23.1201 5.16992 28.5303l65.75 33.3701c2.41504 1.22559 5.18164 1.91699 8.07324 1.91699 +c3.67383 0 7.08984 -1.11621 9.92676 -3.02734l218.7 -82.0596l98.5098 49.9902c26.7402 13.5596 56.4297 21.4199 86.2803 19.4795c33.5098 -2.17969 51.04 -12.8799 58.25 -27.4502c7.22949 -14.5596 5.23926 -35.1699 -13.0703 -63.6494 +c-16.3096 -25.3701 -40.2803 -44.7402 -67.0205 -58.3105l-290.96 -147.649c-8.88574 -4.51562 -19.001 -7.10645 -29.6396 -7.12012l-130.54 -0.180664c-9.22949 -0.00976562 -18.0498 3.87012 -24.3301 10.7109z" /> +d="M434.66 280.29c5.77344 -5.79004 9.34473 -13.7861 9.34473 -22.5996c0 -8.81445 -3.57129 -16.8008 -9.34473 -22.5908l-210.66 -211.1v271.12l75.4297 75.5195l0.0703125 0.0703125v0c5.75781 5.73633 13.707 9.28516 22.4688 9.28516 +c8.79883 0 16.7676 -3.57715 22.5312 -9.35547l90.1602 -90.3496v0zM480 128c17.6611 0 32 -14.3389 32 -32v-128c0 -17.6611 -14.3389 -32 -32 -32h-300c2.17969 1.91016 4.62012 3.41992 6.67969 5.49023l186.41 186.51h106.91zM192 416v-384 +c0 -52.9834 -43.0166 -96 -96 -96s-96 43.0166 -96 96v384c0 17.6611 14.3389 32 32 32h128c17.6611 0 32 -14.3389 32 -32zM96 8c13.2461 0 24 10.7539 24 24s-10.7539 24 -24 24s-24 -10.7539 -24 -24s10.7539 -24 24 -24zM128 192v64h-64v-64h64zM128 320v64h-64v-64h64z +" /> +c38.6895 0 70.0498 -29.4199 70.0498 -65.71v-60.1104l32.8799 21.9199c4.4502 2.9707 7.12012 7.95996 7.12012 13.3105v170.59c0 8.83984 7.16016 16 16 16h16c8.83984 0 16 -7.16016 16 -16v-170.59c0 -5.55273 2.81934 -10.4414 7.12012 -13.3105l32.8799 -21.9199 +v60.1104c0 36.29 31.3604 65.71 70.0498 65.71c43.9805 0 57.9307 -28.5596 80.0498 -63.1299c45.9707 -71.8701 80.3408 -149.72 102.011 -231.021z" /> +d="M128 192c70.6455 0 128 -57.3545 128 -128s-57.3545 -128 -128 -128s-128 57.3545 -128 128s57.3545 128 128 128zM507 246.86c14.2402 -24.3799 -3.58008 -54.8604 -32.0898 -54.8604h-213.82c-28.5098 0 -46.3301 30.4805 -32.0898 54.8604l106.93 182.85 +c6.48828 10.9688 18.3906 18.3311 32.0469 18.3311c13.6553 0 25.6055 -7.3623 32.0938 -18.3311zM480 160c17.6611 0 32 -14.3389 32 -32v-160c0 -17.6611 -14.3389 -32 -32 -32h-160c-17.6611 0 -32 14.3389 -32 32v160c0 17.6611 14.3389 32 32 32h160z" /> +c0 26.5 21.5 48 48 48h416zM250.58 96c11 0 18.7197 10.8496 15.1104 21.25l-53.6904 154.62c-3.25586 9.3877 -12.1758 16.1299 -22.666 16.1299h-0.00390625h-26.6602l0.00292969 0.00585938c-10.4873 0 -19.4131 -6.74219 -22.6729 -16.126l-53.7002 -154.63 +c-3.60938 -10.4004 4.11035 -21.25 15.1201 -21.25h16.9404c0.00195312 0 -0.000976562 -0.00390625 0.000976562 -0.00390625c6.99316 0 12.9453 4.49609 15.1191 10.7539l7.37988 21.25h70.29l7.36914 -21.25c2.24023 -6.42969 8.31055 -10.75 15.1201 -10.75h16.9404z +M424 112v160c0 8.83984 -7.16016 16 -16 16h-16c-8.83984 0 -16 -7.16016 -16 -16v-36.4199c-7.54004 2.68945 -15.54 4.41992 -24 4.41992c-39.7002 0 -72 -32.2998 -72 -72s32.2998 -72 72 -72c9.92969 0 19.4004 2.01953 28.0195 5.67969 +c2.94043 -3.41016 7.13086 -5.67969 11.9805 -5.67969h16c8.83984 0 16 7.16016 16 16z" /> @@ -3611,19 +3916,19 @@ c-6.62988 0 -12 -5.37012 -12 -12v-40c0 -6.62988 5.37012 -12 12 -12h40c6.62988 0 c0 6.62988 -5.37012 12 -12 12h-40c-6.62988 0 -12 -5.37012 -12 -12v-40c0 -6.62988 5.37012 -12 12 -12h40c6.62988 0 12 5.37012 12 12zM576 44v40c0 6.62988 -5.37012 12 -12 12h-40c-6.62988 0 -12 -5.37012 -12 -12v-40c0 -6.62988 5.37012 -12 12 -12h40 c6.62988 0 12 5.37012 12 12zM576 140v40c0 6.62988 -5.37012 12 -12 12h-40c-6.62988 0 -12 -5.37012 -12 -12v-40c0 -6.62988 5.37012 -12 12 -12h40c6.62988 0 12 5.37012 12 12z" /> +d="M256 416c141.38 0 256 -93.1201 256 -208s-114.62 -208 -256 -208c-38.4102 0 -74.71 7.07031 -107.4 19.3799c-24.6094 -19.6299 -74.3398 -51.3799 -140.6 -51.3799l-0.00195312 0.00195312c-4.41309 0 -7.99512 3.58301 -7.99512 7.99512 +c0 2.13184 0.835938 4.06934 2.19727 5.50293c0.5 0.530273 42.2598 45.4502 54.8193 95.7598c-35.6094 35.7305 -57.0195 81.1807 -57.0195 130.74c0 114.88 114.62 208 256 208zM280 113.56c30.29 3.62012 53.3701 30.9805 49.3203 63.04 +c-2.90039 22.96 -20.6602 41.3105 -42.9102 47.6699l-50.0703 14.3008c-3.59961 1.0293 -6.12012 4.35938 -6.12012 8.10938c0 4.64062 3.78027 8.41992 8.44043 8.41992h32.7803c0.0214844 0 0.0634766 -0.0126953 0.0859375 -0.0126953 +c3.62891 0 7.07422 -0.790039 10.1738 -2.20703c4.7998 -2.20996 10.3701 -1.70996 14.1094 2.03027l17.5205 17.5195c5.26953 5.27051 4.66992 14.2705 -1.5498 18.3799c-9.5 6.27051 -20.3604 10.1104 -31.7803 11.46v17.7305c0 8.83984 -7.16016 16 -16 16h-16 +c-8.83984 0 -16 -7.16016 -16 -16v-17.5498c-30.29 -3.62012 -53.3701 -30.9805 -49.3203 -63.0498c2.90039 -22.96 20.6602 -41.3203 42.9102 -47.6699l50.0703 -14.3008c3.59961 -1.0293 6.12012 -4.35938 6.12012 -8.10938 +c0 -4.64062 -3.78027 -8.41992 -8.44043 -8.41992h-32.7803c-3.59961 0 -7.0791 0.759766 -10.2598 2.21973c-4.7998 2.20996 -10.3701 1.70996 -14.1094 -2.03027l-17.5205 -17.5195c-5.26953 -5.27051 -4.66992 -14.2705 1.5498 -18.3799 +c9.5 -6.27051 20.3604 -10.1104 31.7803 -11.46v-17.7305c0 -8.83984 7.16016 -16 16 -16h16c8.83984 0 16 7.16016 16 16v17.5596z" /> +d="M464 320c26.4922 0 48 -21.5078 48 -48v-224c0 -26.4922 -21.5078 -48 -48 -48h-416c-26.4922 0 -48 21.5078 -48 48v288c0 26.4922 21.5078 48 48 48h160l64 -64h192zM359.5 152v16c0 8.83105 -7.16895 16 -16 16h-64v64c0 8.83105 -7.16895 16 -16 16h-16 +c-8.83105 0 -16 -7.16895 -16 -16v-64h-64c-8.83105 0 -16 -7.16895 -16 -16v-16c0 -8.83105 7.16895 -16 16 -16h64v-64c0 -8.83105 7.16895 -16 16 -16h16c8.83105 0 16 7.16895 16 16v64h64c8.83105 0 16 7.16895 16 16z" /> +d="M535.953 96c-42.6406 -94.1719 -137.641 -160 -247.984 -160c-4.26562 0 -8.54688 0.0986328 -12.8447 0.296875c-103.969 4.76562 -193.859 69.4688 -235.109 159.703h39.9219l-58.6094 58.5938c-2.65332 12.8242 -4.38672 25.9951 -5.10938 39.4219 +c-0.133789 3.5166 -0.202148 7.05078 -0.202148 10.5996c0 6.65527 0.234375 12.8477 0.702148 19.3848h47.2188l-41.3906 41.375c14.7842 66.6123 53.959 124.015 107.969 162.078c2.61426 1.87109 5.82812 2.98535 9.28125 3 +c5.62793 -0.03125 10.5791 -2.89355 13.5 -7.25c1.76367 -2.57422 2.7959 -5.68848 2.7959 -9.04199c0 -2.13086 -0.414062 -4.19141 -1.1709 -6.05176c-6.31445 -15.834 -9.84375 -33.1904 -9.84375 -51.2656c0 -45.1094 21.0469 -86.5781 57.7188 -113.734 +c4.07324 -2.96484 6.72266 -7.76855 6.72266 -13.1865c0 -4.86133 -2.13965 -9.2168 -5.51953 -12.2041c-26.5469 -23.9844 -41.1719 -56.5 -41.1719 -91.5781c0 -60.0312 42.9531 -110.281 99.8906 -121.922l2.5 65.2656l-27.1562 -18.4844 +c-1.29688 -0.832031 -2.83887 -1.31445 -4.49219 -1.31445c-2.10352 0 -4.04004 0.777344 -5.50781 2.06445c-1.55078 1.46387 -2.51953 3.53809 -2.51953 5.83691c0 1.49414 0.416992 2.90234 1.12891 4.10059l20.125 33.7656l-42.0625 8.73438 +c-3.64062 0.744141 -6.38379 3.96777 -6.38379 7.82812s2.74316 7.08398 6.38379 7.82812l42.0625 8.71875l-20.1094 33.7344c-0.724609 1.20312 -1.1416 2.61133 -1.1416 4.11719c0 4.41016 3.58105 7.99121 7.99121 7.99121c1.67188 0 3.22656 -0.510742 4.50977 -1.38965 +l30.3906 -20.6562l11.5166 287.969c0.15918 4.25879 3.66797 7.66699 7.96484 7.66699c0.0117188 0 0.0234375 0.00488281 0.0351562 0.00488281h0.046875c4.29004 -0.0332031 7.78418 -3.44629 7.95312 -7.70312l11.5312 -287.922l30.3906 20.6719 +c1.28223 0.855469 2.82227 1.35449 4.47852 1.35449c2.12793 0 4.07715 -0.820312 5.52148 -2.16699c1.54785 -1.45898 2.51465 -3.52832 2.51465 -5.82129c0 -1.48828 -0.415039 -2.89062 -1.12402 -4.08496l-20.1406 -33.7656l42.0781 -8.73438 +c3.63379 -0.750977 6.36914 -3.97266 6.36914 -7.82812s-2.73535 -7.07715 -6.36914 -7.82812l-42.0781 -8.71875l20.1094 -33.7344c0.730469 -1.20508 1.15039 -2.61719 1.15039 -4.12793c0 -2.27637 -0.947266 -4.33984 -2.47852 -5.79395 +c-1.46484 -1.32227 -3.4043 -2.12793 -5.53125 -2.12793c-1.6543 0 -3.20801 0.492188 -4.5 1.33105l-27.1719 18.4688l2.5 -65.3438c48.4844 9.40625 87.5781 48.1562 97.3125 96.5c1.68066 8.11816 2.56445 16.5254 2.56445 25.1387 +c0 36.5547 -15.8574 69.3145 -41.127 91.9395c-3.38867 2.98926 -5.52734 7.3623 -5.52734 12.2314c0 5.42578 2.64844 10.2256 6.73047 13.1904c36.6562 27.1719 57.6875 68.6094 57.6875 113.734v0.0859375c0 18.0664 -3.53613 35.4062 -9.85938 51.2266 +c-0.763672 1.86523 -1.18555 3.90625 -1.18555 6.0459c0 3.34668 1.0332 6.47949 2.79492 9.04785c2.9248 4.35059 7.875 7.20605 13.5 7.23438c3.44043 -0.0136719 6.64355 -1.12305 9.25 -2.98438c53.9287 -38.2227 93.0518 -95.6611 107.906 -162.281l-41.25 -41.2344 +h46.9531c0.359375 -5.76562 1.04688 -11.4531 1.04688 -17.2656c-0.0332031 -17.8086 -1.7959 -35.0137 -5.125 -51.8594l-58.8906 -58.875h39.9688z" /> +c1.67383 -1.4668 2.73047 -3.62012 2.73047 -6.01758c0 -4.41309 -3.58398 -7.99414 -7.99609 -7.99805h-0.015625c-1.97363 0.0996094 -3.79785 0.828125 -5.25 1.98438l-23.5938 20.6406c11.5469 -49.5781 55.7656 -86.625 108.859 -86.625 +s97.3125 37.0469 108.875 86.625l-23.5938 -20.6406c-1.40918 -1.22461 -3.25391 -1.96875 -5.26562 -1.96875h-0.015625c-2.34766 0.129883 -4.46777 1.14551 -6.01562 2.71875c-1.1543 1.45996 -1.88184 3.28809 -1.98438 5.26562 +c0.128906 2.35059 1.15137 4.47266 2.73438 6.01562l37.1094 32.4688c0.015625 0.53125 0.15625 1 0.15625 1.51562c0 11.0469 -2.09375 21.5156 -5.0625 31.5938l-21.2656 -21.25c-1.44922 -1.4502 -3.45117 -2.34863 -5.66211 -2.34863 +c-4.41797 0 -8.00488 3.58691 -8.00488 8.00488c0 2.20605 0.892578 4.20801 2.33887 5.65625l26.4219 26.4062c-10.0342 20.8945 -26.1904 38.0244 -46.3594 49.2656c6.05371 -9.67676 9.55469 -21.1123 9.55469 -33.3584c0 -19.916 -9.17383 -37.7295 -23.6172 -49.2822 +c9.69336 -10.0459 15.6592 -23.7119 15.6592 -38.7598c0 -26.875 -19.0703 -49.3535 -44.3779 -54.6621l-1.42188 34.2812l12.6719 -8.625c0.635742 -0.432617 1.40234 -0.685547 2.22852 -0.685547c0.00585938 0 0.015625 -0.00195312 0.0214844 -0.00195312h0.0263672 +c2.19727 0 3.98047 1.7832 3.98047 3.98047c0 0.748047 -0.209961 1.45215 -0.569336 2.05078l-8.53125 14.3125l17.9062 3.71875c1.81738 0.379883 3.18457 1.99219 3.18457 3.92188s-1.36719 3.54199 -3.18457 3.92188l-17.9062 3.71875l8.53125 14.3125 +c0.359375 0.598633 0.566406 1.29883 0.566406 2.04688c0 2.19629 -1.7832 3.98047 -3.98047 3.98047c-0.00878906 0 -0.0146484 0.00390625 -0.0234375 0.00390625c-0.817383 -0.0322266 -1.58984 -0.275391 -2.25 -0.671875l-14.1875 -9.65625l-4.6875 112.297 +c-0.09375 2.12695 -1.84961 3.8252 -4 3.8252s-3.90625 -1.69824 -4 -3.8252l-4.625 -110.812l-12 8.15625c-0.639648 0.43457 -1.41211 0.688477 -2.24316 0.688477c-2.20996 0 -4.00293 -1.79395 -4.00293 -4.00391c0 -0.745117 0.203125 -1.44629 0.558594 -2.04395 +l8.53125 -14.3125l-17.9062 -3.71875c-1.81738 -0.375977 -3.18457 -1.98633 -3.18457 -3.91406s1.36719 -3.53809 3.18457 -3.91406l17.9062 -3.73438l-8.53125 -14.2969c-0.330078 -0.611328 -0.532227 -1.31152 -0.5625 -2.04688 +c0.0615234 -1.12109 0.525391 -2.14062 1.25 -2.90625c0.717773 -0.677734 1.68652 -1.09277 2.75 -1.09375c0.830078 0.00390625 1.60645 0.257812 2.25 0.6875l10.3594 7.04688l-1.35938 -32.7188c-25.3086 5.31836 -44.335 27.79 -44.335 54.6709 +c0 15.0518 5.92285 28.7324 15.6162 38.7822c-14.4434 11.5508 -23.7012 29.3193 -23.7012 49.2334c0 12.2559 3.59082 23.7412 9.6543 33.4229c-20.1709 -11.2451 -36.3311 -28.374 -46.375 -49.2656l26.4219 -26.4219c1.43945 -1.44727 2.33008 -3.44043 2.33008 -5.64062 +c0 -4.41504 -3.58496 -8 -7.99902 -8c-2.2002 0 -4.19629 0.888672 -5.64355 2.32812l-21.2656 21.2656c-2.98438 -10.0938 -5.07812 -20.5625 -5.0625 -31.625z" /> +c-3.47949 -0.950195 -5.88965 -4.11035 -5.88965 -7.71973v-16.5801c0 -5.28027 5.01953 -9.11035 10.1104 -7.7207l96 26.1807c3.47949 0.950195 5.88965 4.10938 5.88965 7.71973zM448 234.47v-16.5801c0 -0.00195312 0.00195312 -0.00195312 0.00195312 -0.00390625 +c0 -3.68359 2.49609 -6.78906 5.8877 -7.71582l80 -21.8203c5.09082 -1.38965 10.1104 2.44043 10.1104 7.7207v16.5801c0 3.60938 -2.41016 6.76953 -5.88965 7.71973l-80 21.8203c-5.09082 1.38965 -10.1104 -2.44043 -10.1104 -7.7207zM304 273.74v-16.5801 +c0 -0.00195312 0.00195312 -0.00292969 0.00195312 -0.00488281c0 -3.68359 2.49609 -6.78906 5.8877 -7.71484l96 -26.1807c5.09082 -1.38965 10.1104 2.44043 10.1104 7.7207v16.5791c0 3.61035 -2.41016 6.77051 -5.88965 7.7207l-96 26.1797 +c-5.09082 1.38965 -10.1104 -2.44043 -10.1104 -7.71973z" /> +d="M501.62 355.89c6.24023 -2.33984 10.3799 -8.30957 10.3799 -14.9795v-36.9102c0 -8.83984 -7.16016 -16 -16 -16h-480c-8.83984 0 -16 7.16016 -16 16v36.9102c0.000976562 6.85547 4.31445 12.7041 10.3799 14.9795l234.39 90.0703 +c3.49219 1.31152 7.30176 2.02832 11.25 2.02832c3.94727 0 7.72852 -0.716797 11.2207 -2.02832zM64 256h64v-160h96v160h64v-160h96v160h64v-160h16c8.83984 0 16 -7.16016 16 -16v-48h-448v48c0 8.83984 7.16016 16 16 16h16v160zM496 0c8.83984 0 16 -7.16016 16 -16 +v-32c0 -8.83984 -7.16016 -16 -16 -16h-480c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h480z" /> +d="M272 256.09c17.5996 0 32 -14.3994 32 -32v-128c0 -51.8896 -34.8398 -98.0801 -84.75 -112.35l-179.19 -46.6201c-2.64941 -0.69043 -5.36914 -1.03027 -8.05957 -1.03027c-23.4805 0 -32 21.1797 -32 32v96 +c0 0.00390625 -0.00488281 -0.000976562 -0.00488281 0.00292969c0 14.1221 9.1748 26.1182 21.8848 30.3477l90.1201 30.04v80.2295c0 18.9805 5.55957 37.3896 16.1201 53.2305l117.26 175.899c0.169922 0.270508 0.589844 0.25 0.790039 0.480469 +c9.58008 13.5098 27.8496 17.8799 42.2998 9.20996c15.1602 -9.10059 20.0605 -28.75 10.9707 -43.9102l-77.75 -129.59c-8.9707 -14.9199 -13.6904 -32 -13.6904 -49.3906v-76.5498c0 -8.83984 7.16016 -16 16 -16s16 7.16016 16 16v80c0 17.6006 14.4004 32 32 32z +M618.12 94.3604c13.0703 -4.36035 21.8799 -16.5801 21.8799 -30.3506v-96c0 -10.8193 -8.51953 -32 -32 -32c-2.67969 0 -5.40039 0.339844 -8.05957 1.03027l-179.19 46.6201c-49.9102 14.2598 -84.75 60.4502 -84.75 112.34v128c0 17.5996 14.4004 32 32 32 +s32 -14.4004 32 -32v-80c0 -8.83984 7.16016 -16 16 -16s16 7.16016 16 16v76.5498c0 17.3906 -4.71973 34.4697 -13.6904 49.3906l-77.75 129.59c-9.08984 15.1602 -4.18945 34.8193 10.9707 43.9102c14.4502 8.66992 32.7197 4.2998 42.2998 -9.20996 +c0.200195 -0.240234 0.610352 -0.210938 0.790039 -0.480469l117.26 -175.89c10.5605 -15.8408 16.1201 -34.25 16.1201 -53.2305v-80.2295z" /> +c-52.3096 0 -94.8594 42.5596 -94.8594 94.8594c0 52.3105 42.5498 94.8604 94.8594 94.8604c1.04004 0 3.45996 -0.209961 4.13086 -0.209961c0.738281 -0.276367 1.54004 -0.429688 2.375 -0.429688c3.73926 0 6.77441 3.03516 6.77441 6.77441 +c0 3.7373 -3.0332 6.77246 -6.76953 6.77539c-13.1201 4.91992 -26.71 7.41016 -40.3799 7.41016zM380.8 0v64h-284.8c-16 0 -32 -12.7998 -32 -32s12.7998 -32 32 -32h284.8z" /> +v-208c0 -41.8877 -20.0566 -79.043 -51.2002 -102.4l-115.2 -86.3994c-17.2695 -12.9502 -37.4893 -19.2002 -57.5195 -19.2002c-32.8105 0 -65.1699 16.75 -83.4199 48.3301c-24.6504 42.6396 -10.1904 97.5 29.21 127.06z" /> +c0 13.2598 10.75 24 24 24h81.4697c12.0801 -0.00292969 22.584 -6.67871 28.0303 -16.5703l58.4102 -106.1l84.79 322.8c3.68945 14.0703 16.4102 23.8701 30.9502 23.8701h244.35z" /> +l18.46 -30.8203h-36.8496zM382.45 136.5l18.4102 30.7998l18.4492 -30.7998h-36.8594zM128 -16v416h384v-416h-384zM194.77 262.13c-1.7627 -3.04492 -2.77148 -6.62402 -2.77148 -10.3936c0 -3.92969 1.09668 -7.60547 3.00195 -10.7363l29.3604 -49l-29.21 -48.8398 +c-1.91211 -3.17578 -3.02637 -6.91699 -3.02637 -10.8906c0 -11.6504 9.45898 -21.1094 21.1104 -21.1094h0.015625h59.5l29.25 -48.8799c3.61816 -6.12793 10.2754 -10.2207 17.9004 -10.2207h0.0996094c7.7373 0.0166016 14.4912 4.17676 18.1602 10.4004l29.1299 48.7002 +h59.4697c0.0078125 0 0.00195312 -0.0224609 0.00878906 -0.0224609c7.90723 0 14.8115 4.32812 18.4717 10.7422c1.75879 3.04199 2.76562 6.61621 2.76562 10.3799c0 3.93164 -1.09863 7.6084 -3.00586 10.7402l-29.3701 49l29.2402 48.8496 +c1.90723 3.17383 3.01758 6.91113 3.01758 10.8809c0 11.6553 -9.46191 21.1182 -21.1182 21.1191h-59.5195l-29.25 48.8604c-3.6123 6.12207 -10.2617 10.21 -17.8779 10.21h-0.0722656c-0.0117188 0 -0.00976562 0.0224609 -0.0214844 0.0224609 +c-7.74316 0 -14.5186 -4.17383 -18.1982 -10.3926l-29.1299 -48.71h-59.4502c-0.015625 0 -0.0166016 0.0224609 -0.0322266 0.0224609c-7.89844 0 -14.7939 -4.32422 -18.4482 -10.7324zM592 448c26.5098 0 48 -14.3301 48 -32v-448c0 -17.6699 -21.4902 -32 -48 -32 +s-48 14.3301 -48 32v448c0 17.6699 21.4902 32 48 32zM320 302.47l17.6797 -29.6201h-35.46zM257.55 247.47l-18.3701 -30.7998l-18.4395 30.7998h36.8096zM287.13 136.47l-33.2295 55.5303l33.1699 55.5195h65.79l33.2295 -55.5195l-33.1699 -55.5303h-65.79z" /> +d="M298.06 224l149.94 -53.5498v-218.45c0 -8.83105 -7.16895 -16 -16 -16h-64c-8.83105 0 -16 7.16895 -16 16v112h-160v-112c0 -8.83105 -7.16895 -16 -16 -16h-64c-8.83105 0 -16 7.16895 -16 16v213.91c-37.1602 13.25 -64 48.4297 -64 90.0898 +c0 17.6611 14.3389 32 32 32s32 -14.3389 32 -32c0.0332031 -17.6455 14.3545 -31.9668 32 -32h170.06zM544 336v-32c0 -35.3223 -28.6777 -64 -64 -64h-32v-35.5801l-128 45.71v149.87c0 14.25 17.2197 21.3896 27.3096 11.3096l27.2803 -27.3096h53.6299 +c10.9102 0 23.75 -7.91992 28.6201 -17.6904l7.16016 -14.3096h64c8.83105 0 16 -7.16895 16 -16zM432 336c0 8.83105 -7.16895 16 -16 16s-16 -7.16895 -16 -16s7.16895 -16 16 -16s16 7.16895 16 16z" /> +c10.0703 0 19.5498 -4.7002 25.6006 -12.7598l74.5293 -99.3799c4.00781 -5.3457 6.37988 -12.042 6.37988 -19.2305c0 -5.12988 -1.20996 -9.98047 -3.35938 -14.2803l-14.3105 -28.6191c-5.25 -10.502 -16.0889 -17.6895 -28.6191 -17.6904h-30.9707 +c-8.48926 0 -16.6299 3.37012 -22.6299 9.37012l-28.0898 22.6299h-64v-36.6904c0.00195312 -18.791 10.7812 -35.0459 26.5303 -42.9199zM489.18 381.75c-4.33008 -17.1396 8.56055 -28.96 21.5205 -29.6699c11.6602 -0.629883 21.3799 7.34961 24.1299 18.2598z" /> +d="M462.8 398.43c34.3203 -34.2793 50.4307 -79.5996 49.1299 -124.56c-41.9795 22.6602 -94.3594 17.5596 -128.739 -16.7998c-40.8809 -40.8398 -40.6904 -107.181 -1.05078 -151.07c-18.9736 -6.45312 -39.3203 -10.0049 -60.4648 -10.0049 +c-0.475586 0 -0.950195 0.000976562 -1.4248 0.00488281h-85.8896l-40.6104 -40.5596c-9.71973 -9.75 -11.0898 -24.0205 -6 -36.75c2.77051 -6.92383 4.3125 -14.5234 4.3125 -22.4316c0 -33.3086 -27.042 -60.3506 -60.3496 -60.3506 +c-16.7041 0 -31.8311 6.80078 -42.7627 17.7822c-15.2803 15.2695 -19.6006 36.5 -15.1006 56.0996c-19.6094 -4.49023 -40.8496 -0.179688 -56.1191 15.0703c-10.9395 10.9229 -17.668 26.002 -17.668 42.666c0 33.2979 27.0332 60.3301 60.3301 60.3301 +c7.88965 0 15.4277 -1.51758 22.3379 -4.27637c12.7793 -5.07031 27.0791 -3.69043 36.7793 6l40.6201 40.5898v85.8301c0 64 27.6904 107 63.1699 142.43c30.666 30.6338 73.0479 49.5889 119.774 49.5889s89.0605 -18.9551 119.726 -49.5889z" /> @@ -3957,10 +4264,10 @@ c0 -4.41992 3.58008 -8 8 -8h12.2695zM256 184c0 4.41992 -3.58008 8 -8 8h-16c-4.41 c23.4004 25.1992 36.2803 58.6094 36.2803 94.0898v20.7998c0 4.41992 -3.58008 8 -8 8h-16c-4.41992 0 -8 -3.58008 -8 -8v-20.7998c0 -20.2705 -5.7002 -40.1807 -16 -56.8799c-10.2998 16.71 -16 36.6094 -16 56.8799v20.7998zM377 343c4.5 -4.5 7 -10.5996 7 -16.9004 v-6.09961h-128v128h6.09961c6.40039 0 12.5 -2.5 17 -7z" /> @@ -3984,14 +4291,14 @@ M176 320c-13.25 0 -24 11.9502 -24 26.6699s24 53.3301 24 53.3301s24 -38.5996 24 - c0 -14.7295 -10.75 -26.6699 -24 -26.6699zM400 320c-13.25 0 -24 11.9502 -24 26.6699s24 53.3301 24 53.3301s24 -38.5996 24 -53.3301c0 -14.7295 -10.75 -26.6699 -24 -26.6699zM464 320c-13.25 0 -24 11.9502 -24 26.6699s24 53.3301 24 53.3301 s24 -38.5996 24 -53.3301c0 -14.7295 -10.75 -26.6699 -24 -26.6699zM528 320c-13.25 0 -24 11.9502 -24 26.6699s24 53.3301 24 53.3301s24 -38.5996 24 -53.3301c0 -14.7295 -10.75 -26.6699 -24 -26.6699z" /> +d="M496 0c8.83984 0 16 -7.16016 16 -16v-32c0 -8.83984 -7.16016 -16 -16 -16h-480c-8.83984 0 -16 7.16016 -16 16v32c0 8.83984 7.16016 16 16 16h480zM192 64l16 -32h-144l110.96 249.66c11.1211 25.0264 29.8379 45.6514 53.46 59.1494l187.58 107.19l-56.2998 -168.92 +c-2.12207 -6.35938 -3.25781 -13.2188 -3.25781 -20.2881c0 -8.93164 1.83496 -17.4375 5.14746 -25.1621l86.4102 -201.63h-208l16 32l64 32l-64 32l-32 64l-32 -64l-64 -32zM256 288l-32 -16l32 -16l16 -32l16 32l32 16l-32 16l-16 32z" /> +d="M575.92 371.4l0.0605469 -77.71c0 -0.0107422 0.0185547 -0.00683594 0.0185547 -0.0166016c0 -13.4707 -8.34277 -25.0088 -20.1387 -29.7236l-32.5508 -13.0205c-15.4395 -6.17969 -33.04 0.5 -40.4893 15.3701l-18.9004 37.7002l-16 7.11035v-102.471 +c0.00976562 -0.219727 0.0800781 -0.419922 0.0800781 -0.639648c0 -30.4697 -12.2598 -58.0303 -32 -78.2197v-177.78c0 -8.83984 -7.16016 -16 -16 -16h-64c-8.83984 0 -16 7.16016 -16 16v150.4l-133.97 22.3301l-23.8398 -63.5908l26.3096 -105.26 +c2.53027 -10.0996 -5.11035 -19.8799 -15.5195 -19.8799h-65.9609c-7.48633 0 -13.7783 5.16602 -15.5098 12.1201l-24.8496 99.4102c-1.24707 4.98047 -1.8916 10.1924 -1.8916 15.5576c0 7.8916 1.43262 15.4502 4.05176 22.4316l25.7197 68.6006 +c-18.7002 17.5195 -30.54 42.2402 -30.54 69.8799c0 2.62988 0.570312 5.09961 0.780273 7.67969c-9.91016 -7.29004 -16.7803 -18.46 -16.7803 -31.6797v-56c0 -8.83984 -7.16016 -16 -16 -16h-16c-8.83984 0 -16 7.16016 -16 16v56c0 48.5303 39.4697 88 88 88v-1.11035 +c17.5996 20.1299 43.1602 33.1104 72 33.1104h159.92c0 70.6904 57.3105 128 128 128h119.98c5.05957 0 8.94922 -4.67969 7.92969 -9.63965c-2.67969 -13.1699 -11.1201 -23.8203 -22.1797 -30.6602c5.10938 -5.37988 9.90918 -10.4697 13.6895 -14.5 +c5.56055 -5.93066 8.57031 -13.6699 8.58008 -21.7998zM511.92 352c8.83984 0 16 7.16016 16 16s-7.16016 16 -16 16s-16 -7.16016 -16 -16s7.16016 -16 16 -16z" /> +d="M634.92 -14.7002c3.2041 -4.98145 5.06348 -10.9756 5.06348 -17.334c0 -5.53906 -1.41113 -10.751 -3.89355 -15.2959c-5.60938 -10.2803 -16.3799 -16.6699 -28.0898 -16.6699h-576c-12.1191 0 -22.6582 6.7168 -28.0898 16.6602 +c-2.48242 4.5459 -3.89355 9.82715 -3.89355 15.3672c0 6.36035 1.85938 12.2891 5.06348 17.2725l288 448c5.88965 9.16016 16.0303 14.7002 26.9199 14.7002s21.0303 -5.54004 26.9199 -14.7002zM320 356.82l-102.06 -158.761l38.0596 -38.0596l64 64h85.3896z" /> +c-4.91016 28.1201 5 54.2197 23.1904 71.7998c23.5596 22.75 39.5596 52.1396 39.5596 84.8896v1.61035c0 106.04 85.96 192 192 192h56l153.25 87.5703c9.66992 5.51953 20.6104 8.42969 31.75 8.42969h20.4902c0.00390625 0 0.0166016 0.00878906 0.0214844 0.00878906 +c17.6602 0 33.6582 -7.17188 45.2383 -18.7588l13.25 -13.25h32zM512 400c-8.83984 0 -16 -7.16016 -16 -16s7.16016 -16 16 -16s16 7.16016 16 16s-7.16016 16 -16 16zM544 304c20.8301 0 38.4297 13.4199 45.0498 32h-77.0498l-118.57 -59.29l13.7705 -27.5498 +l101.84 54.8398h34.96z" /> +c0 0.00292969 0.0205078 0.0400391 0.0205078 0.0439453c0 6.20898 1.77246 12.0078 4.83984 16.916l60.8301 97.3301h-47.0605l-48 -72c-4.89941 -7.35059 -14.8398 -9.33984 -22.1895 -4.44043l-13.3105 8.87988c-7.36035 4.90039 -9.33984 14.8398 -4.43945 22.1904 +l52.7393 79.1299c5.74121 8.60547 15.5186 14.248 26.6299 14.25h77.9404l-68.9902 24.3496c-6.81738 2.27441 -12.5947 6.74023 -16.5098 12.6104l-53.5996 80.4102c-4.90039 7.36035 -2.91016 17.29 4.43945 22.1895l13.3105 8.88086 +c7.35938 4.89941 17.29 2.90918 22.1895 -4.44043l50.5703 -75.8301l60.4902 -20.1699h36.0996l10.3701 51.8496c2.18945 10.9707 17.3701 60.1504 69.6299 60.1504s67.4404 -49.1797 69.6299 -60.1504l10.3701 -51.8496h36.0996l60.5 20.1699l50.5605 75.8301 +c4.89941 7.34961 14.8398 9.33984 22.1895 4.44043l13.3105 -8.88086c7.34961 -4.89941 9.33984 -14.8398 4.43945 -22.1895l-53.5996 -80.4102c-3.91504 -5.87012 -9.69238 -10.3359 -16.5098 -12.6104l-68.9902 -24.3594h77.9404 +c11.1084 -0.00292969 20.8828 -5.64453 26.6191 -14.25zM406.09 350.49l-23.7998 71.3896c-2.79004 8.37988 1.74023 17.4404 10.1201 20.2402l15.1699 5.05957c8.37988 2.80078 17.4502 -1.73926 20.2402 -10.1201l25.8896 -77.6797 +c1.06152 -3.18164 1.62598 -6.62109 1.62598 -10.1582c0 -5.12695 -1.20801 -9.97461 -3.35547 -14.2715l-27.1504 -54.2998l-25.9297 -8.65039h-4.66992l-5.2207 26.1201c-0.719727 3.58008 -1.7998 7.58008 -3.20996 11.79z" /> +c-8.58984 8.58984 -8.58984 22.5195 0 31.1104l31.1104 31.1094c7.92969 7.93066 20.2598 8.2002 28.8896 1.4707v146.52c0 26.4697 21.5303 48 48 48h133.45c0.015625 0 0.00878906 0.0341797 0.0244141 0.0341797c19.7969 0 36.8047 -12.0312 44.1055 -29.1738 +l56.0898 -130.86h102.33v40.2002c0 29.9902 10.5801 58.8994 29.5 81.7197c6.37988 7.7002 18.04 8.23047 24.7002 0.780273l21.6299 -24.1699c4.87012 -5.43066 5.74023 -13.6904 1.32031 -19.4902c-8.4502 -11.0801 -13.1504 -24.7197 -13.1504 -38.8398v-40.2002h64z +M176 32c44.1797 0 80 35.8203 80 80s-35.8203 80 -80 80s-80 -35.8203 -80 -80s35.8203 -80 80 -80zM198 288h110.04l-41.1504 96h-106.89v-96h38z" /> +d="M511.328 427.197c-11.6074 -38.7021 -34.3076 -111.702 -61.3037 -187.701c6.99902 -2.09375 13.4043 -4 18.6074 -5.59277c6.58301 -2.00684 11.3779 -8.13184 11.3779 -15.3672c0 -2.71875 -0.685547 -5.29395 -1.87988 -7.53906 +c-22.1055 -42.2969 -82.6904 -152.795 -142.479 -214.403c-0.999023 -1.09375 -1.99902 -2.5 -2.99902 -3.5c-35.2676 -35.2773 -83.9824 -57.1094 -137.757 -57.1094c-107.53 0 -194.83 87.2998 -194.83 194.83c0 53.7559 21.7637 102.511 57.0195 137.775 +c1 1 2.40625 2 3.49902 3c61.6006 59.9053 171.975 120.405 214.374 142.498c2.24512 1.19434 4.80664 1.87109 7.52441 1.87109c7.23535 0 13.374 -4.78711 15.3779 -11.3711c1.59375 -5.09375 3.5 -11.5928 5.59277 -18.5928 +c75.8955 26.999 148.978 49.7021 187.675 61.2959c1.4834 0.448242 3.05664 0.689453 4.68652 0.689453c8.93164 0 16.1826 -7.25098 16.1826 -16.1826c0 -1.59961 -0.236328 -3.14062 -0.668945 -4.60059zM319.951 127.998 +c-0.00976562 70.626 -57.3525 127.962 -127.98 127.962c-70.6348 0 -127.98 -57.3457 -127.98 -127.98c0 -70.6338 57.3457 -127.979 127.98 -127.979c70.6318 0 127.976 57.3438 127.976 127.976c0 0.0078125 0.00488281 0.0146484 0.00488281 0.0224609zM191.971 159.997 +c-0.00292969 -17.6562 -14.3379 -31.9902 -31.9951 -31.9902c-17.6582 0 -31.9951 14.3369 -31.9951 31.9951c0 17.6592 14.3369 31.9951 31.9951 31.9951h0.0371094c17.6387 0 31.959 -14.3203 31.959 -31.959 +c0 -0.0136719 -0.000976562 -0.0263672 -0.000976562 -0.0410156v0zM223.966 79.998c-0.000976562 -8.82812 -7.16895 -15.9951 -15.998 -15.9951s-15.9971 7.16895 -15.9971 15.998s7.16797 15.9971 15.9971 15.9971c8.81738 -0.0283203 15.9707 -7.18262 15.998 -16v0z +" /> d="M96 -48c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v480c0 8.7998 7.2002 16 16 16h32c8.7998 0 16 -7.2002 16 -16v-480zM224 -48c0 -8.7998 -7.2002 -16 -16 -16h-32c-8.7998 0 -16 7.2002 -16 16v480c0 8.7998 7.2002 16 16 16h32 c8.7998 0 16 -7.2002 16 -16v-480z" /> +d="M502.63 409c5.77344 -5.79004 9.34473 -13.7852 9.34473 -22.5996c0 -8.8291 -3.58398 -16.8281 -9.375 -22.6201l-46.3301 -46.3203c-3.82617 -3.83691 -8.53223 -6.78125 -13.7891 -8.53027l-36.4805 -12.1602l-76.2402 -76.2393 +c8.79004 -12.2002 15.7705 -25.5605 19.1602 -40.2002c7.74023 -33.3896 0.870117 -66.8701 -22 -89.75c-9.26367 -9.2207 -20.71 -16.2314 -33.4795 -20.25c-18.54 -6.00977 -32.6709 -23.29 -34.4307 -42.1396c-2.29004 -23.8105 -11.4502 -45.8301 -28.4502 -62.71 +c-45.5596 -45.4805 -127.5 -37.3809 -182.979 18.0693c-55.4805 55.4502 -63.6904 137.45 -18.0498 182.96c16.8799 16.9902 38.9102 26.1699 62.6094 28.4404c18.9404 1.76953 36.1504 15.8994 42.1504 34.46c4.01172 12.7686 11.0195 24.2119 20.2402 33.4697 +c22.8799 22.8799 56.4297 29.7803 89.8799 22c14.5996 -3.39941 27.9395 -10.3799 40.0996 -19.1396l76.2598 76.2598l12.1602 36.5098c1.74902 5.25781 4.69336 9.96387 8.53027 13.79l46.2803 46.3301c5.79199 5.79395 13.8018 9.37988 22.6338 9.37988 +s16.833 -3.58594 22.626 -9.37988zM208 96c26.4922 0 48 21.5078 48 48s-21.5078 48 -48 48s-48 -21.5078 -48 -48s21.5078 -48 48 -48z" /> @@ -4387,20 +4696,21 @@ c14.2998 -1.2002 26.5 -10.7002 29.7998 -24.2002zM336 448c8.7998 0 16 -7.2002 16 c0 -13.2998 -10.7002 -24 -24 -24h-8v-136c0 -13.2998 -10.7002 -24 -24 -24h-80c-13.2998 0 -24 10.7002 -24 24v136h-8c-13.2998 0 -24 10.7002 -24 24v136c0 25.0996 19.2998 45.5 43.9004 47.5996c15 -9.7998 32.8994 -15.5996 52.0996 -15.5996 s37.0996 5.7998 52.0996 15.5996z" /> +d="M502.609 137.958l-96.7041 -96.7168c-5.76758 -5.74707 -13.7207 -9.30176 -22.499 -9.30176c-8.77734 0 -16.7402 3.55469 -22.5078 9.30176l-80.3262 80.418l-9.89258 -9.9082c10.8848 -23.9746 16.9482 -50.5957 16.9482 -78.6221 +c0 -32.3584 -8.10156 -63.1982 -22.3555 -89.9004c-4.50098 -8.50098 -16.3936 -9.59473 -23.207 -2.79785l-107.519 107.515l-17.7998 -17.7988c0.703125 -2.60938 1.60938 -5.00098 1.60938 -7.79785c0 -17.6641 -14.3408 -32.0059 -32.0049 -32.0059 +s-32.0059 14.3418 -32.0059 32.0059s14.3418 32.0039 32.0059 32.0039c2.79688 0 5.18848 -0.90625 7.79785 -1.60938l17.7998 17.7998l-107.518 107.515c-6.79883 6.8125 -5.7041 18.6113 2.79688 23.2061c26.7031 14.2539 57.1895 22.3359 89.5479 22.3359 +c28.0273 0 55.0049 -6.04395 78.9805 -16.9297l9.79883 9.79883l-80.3105 80.417c-5.74609 5.78613 -9.29785 13.7539 -9.29785 22.5449s3.55176 16.7686 9.29785 22.5547l96.7197 96.7168c5.72754 5.74512 13.6484 9.30273 22.3945 9.30273 +c0.0351562 0 0.0732422 -0.00488281 0.109375 -0.00488281h0.0458984c8.79199 0 16.7656 -3.5498 22.5518 -9.29785l80.3262 -80.3076l47.8047 47.8965c6.08301 6.07715 14.4805 9.83789 23.749 9.83789c9.26953 0 17.6768 -3.76074 23.7588 -9.83789l47.5088 -47.5059 +c6.07031 -6.08594 9.82617 -14.4824 9.82617 -23.749s-3.75586 -17.6719 -9.82617 -23.7578l-47.8057 -47.8975l80.3105 -80.417c5.73633 -5.75195 9.28516 -13.6865 9.28516 -22.4434c0 -8.81348 -3.59277 -16.8018 -9.39453 -22.5625zM219.562 250.567l73.8252 73.8223 +l-68.918 68.8994l-73.8096 -73.8066zM457.305 160.461l-68.9023 68.916l-73.8242 -73.8232l68.918 -68.8994z" /> +c-0.6875 2.60938 -1.59375 5.00098 -1.59375 7.81348c0 17.6631 14.3398 32.0039 32.0039 32.0039c17.6631 0 32.0039 -14.3408 32.0039 -32.0039c0 -17.6641 -14.3408 -32.0039 -32.0039 -32.0039c-2.79785 0 -5.2041 0.890625 -7.79785 1.59375l-27.4102 -27.4102z +M511.976 144.933c0.0175781 -0.301758 0.0253906 -0.605469 0.0253906 -0.912109c0 -8.86133 -7.1748 -16.0488 -16.0273 -16.0898h-32.1133c-8.46289 0.0244141 -15.3867 6.65918 -15.8926 15.002c-7.50098 129.519 -111.515 234.533 -240.937 241.534 +c-8.34863 0.444336 -14.9902 7.36426 -14.9902 15.8223c0 0.0292969 -0.0126953 0.0566406 -0.0117188 0.0859375v31.5986c0.0361328 8.85156 7.2334 16.0264 16.0938 16.0264c0.308594 0 0.603516 -0.00683594 0.908203 -0.0244141 +c163.224 -8.59473 294.443 -139.816 302.944 -303.043zM415.964 145.229c0.0244141 -0.364258 0.0371094 -0.732422 0.0371094 -1.10254c0 -8.92578 -7.23145 -16.1621 -16.1484 -16.1963h-32.208c-8.34961 0.0605469 -15.1953 6.51953 -15.8926 14.7051 +c-6.90625 77.0107 -68.1172 138.91 -144.924 145.224c-8.25781 0.592773 -14.7959 7.48633 -14.7988 15.8926v32.1143v0.00390625c0 8.9043 7.22949 16.1338 16.1338 16.1338c0.396484 0 0.775391 -0.0136719 1.16504 -0.0419922 +c110.123 -8.50098 198.229 -96.6074 206.636 -206.732z" /> +c0 54.4004 41.5996 96 96 96h326.4c16 0 25.5996 -9.59961 25.5996 -25.5996v-332.801zM144 280v-48c0 -4.41504 3.58496 -8 8 -8h56v-56c0 -4.41504 3.58496 -8 8 -8h48c4.41504 0 8 3.58496 8 8v56h56c4.41504 0 8 3.58496 8 8v48c0 4.41504 -3.58496 8 -8 8h-56v56 +c0 4.41504 -3.58496 8 -8 8h-48c-4.41504 0 -8 -3.58496 -8 -8v-56h-56c-4.41504 0 -8 -3.58496 -8 -8zM380.8 0v64h-284.8c-16 0 -32 -12.7998 -32 -32s12.7998 -32 32 -32h284.8z" /> +d="M0 160h512v-160c0 -17.6611 -14.3389 -32 -32 -32h-448c-17.6611 0 -32 14.3389 -32 32v160zM299.83 416c118.17 -6.2002 212.17 -104.11 212.17 -224h-512l278.7 217c5.47656 4.38477 12.4277 7.02051 19.9814 7.02051 +c0.384766 0 0.767578 -0.00683594 1.14844 -0.0205078z" /> +d="M288 333l218.74 -192.9c1.54004 -1.37988 3.55957 -2.04004 5.25977 -3.19922v-184.9c0 -8.83105 -7.16895 -16 -16 -16h-416c-8.83105 0 -16 7.16895 -16 16v184.94c1.78027 1.20996 3.84961 1.88965 5.46973 3.34961zM384 72v48c0 4.41504 -3.58496 8 -8 8h-56v56 +c0 4.41504 -3.58496 8 -8 8h-48c-4.41504 0 -8 -3.58496 -8 -8v-56h-56c-4.41504 0 -8 -3.58496 -8 -8v-48c0 -4.41504 3.58496 -8 8 -8h56v-56c0 -4.41504 3.58496 -8 8 -8h48c4.41504 0 8 3.58496 8 8v56h56c4.41504 0 8 3.58496 8 8zM570.69 211.72 +c3.2627 -2.92969 5.30762 -7.18555 5.30762 -11.9121c0 -4.10156 -1.54688 -7.84473 -4.08789 -10.6777l-21.4004 -23.8203c-2.92969 -3.2627 -7.18457 -5.30762 -11.9111 -5.30762c-4.10742 0 -7.85449 1.55078 -10.6885 4.09766l-229.32 202.271 +c-2.82031 2.48828 -6.53906 3.99902 -10.5928 3.99902c-4.05273 0 -7.75684 -1.51074 -10.5771 -3.99902l-229.32 -202.28c-2.83398 -2.54688 -6.58594 -4.10645 -10.6924 -4.10645c-4.72656 0 -8.97754 2.05371 -11.9072 5.31641l-21.4102 23.8203 +c-2.54688 2.83398 -4.10645 6.58594 -4.10645 10.6934c0 4.72559 2.05371 8.97656 5.31641 11.9062l256 226c7.06934 6.3916 16.4707 10.2852 26.7412 10.2852c10.2715 0 19.6396 -3.89355 26.709 -10.2852z" /> +d="M256 416c141.39 0 256 -93.1201 256 -208s-114.61 -208 -256 -208c-0.161133 0 -0.446289 0.107422 -0.606445 0.107422c-37.5674 0 -73.5547 6.81445 -106.794 19.2725c-24.5996 -19.6299 -74.3398 -51.3799 -140.6 -51.3799 +c-4.41113 0.00488281 -7.99023 3.58984 -7.99023 8.00195c0 2.12891 0.833008 4.06445 2.19043 5.49805c0.5 0.5 42.2598 45.4502 54.7998 95.7598c-35.5898 35.7402 -57 81.1807 -57 130.74c0 114.88 114.62 208 256 208zM352 184v48c0 4.41504 -3.58496 8 -8 8h-56v56 +c0 4.41504 -3.58496 8 -8 8h-48c-4.41504 0 -8 -3.58496 -8 -8v-56h-56c-4.41504 0 -8 -3.58496 -8 -8v-48c0 -4.41504 3.58496 -8 8 -8h56v-56c0 -4.41504 3.58496 -8 8 -8h48c4.41504 0 8 3.58496 8 8v56h56c4.41504 0 8 3.58496 8 8z" /> +d="M507.31 262.29c2.87109 -2.89258 4.64551 -6.87891 4.64551 -11.2725c0 -4.42285 -1.79883 -8.42969 -4.70508 -11.3271l-22.6201 -22.6309c-2.89648 -2.89648 -6.90137 -4.68945 -11.3174 -4.68945s-8.41602 1.79297 -11.3125 4.68945l-181 181 +c-2.89648 2.89648 -4.68945 6.90137 -4.68945 11.3174s1.79297 8.41699 4.68945 11.3135l22.6904 22.5996c2.89551 2.89355 6.89844 4.68457 11.3115 4.68457c4.41406 0 8.41211 -1.79102 11.3076 -4.68457zM327.77 195.88l55.1006 55.1201l45.25 -45.2695l-109.68 -109.681 +c-12.4922 -12.4961 -28.4805 -21.5479 -46.29 -25.6494l-120.25 -27.75l-102 -102c-2.89648 -2.89746 -6.90137 -4.69043 -11.3174 -4.69043s-8.41699 1.79297 -11.3135 4.69043l-22.6191 22.6191c-2.89746 2.89648 -4.69043 6.90137 -4.69043 11.3174 +s1.79297 8.41699 4.69043 11.3135l102 102l27.7393 120.26c4.11816 17.8066 13.1738 33.7939 25.6699 46.29l109.671 109.67l45.25 -45.25l-55.1006 -55.1006zM273.2 141.31l9.30957 9.31055l-67.8896 67.8896l-9.31055 -9.30957 +c-4.16113 -4.17676 -7.17969 -9.51074 -8.55957 -15.4502l-18.2998 -79.2998l79.2998 18.3193c5.94238 1.36328 11.2783 4.37695 15.4502 8.54004z" /> +c20.6602 -1.62012 40.9404 5.59961 54.2002 19.3096l46.0898 47.7207c33.4297 34.5098 98.4199 21.1494 110 -22.6201l16 -60.4502c4.60059 -17.3906 18.8604 -31.71 38.1406 -38.3105zM160 192c17.6611 0 32 14.3389 32 32s-14.3389 32 -32 32s-32 -14.3389 -32 -32 +s14.3389 -32 32 -32zM288 96c17.6611 0 32 14.3389 32 32s-14.3389 32 -32 32s-32 -14.3389 -32 -32s14.3389 -32 32 -32zM304 224c8.83105 0 16 7.16895 16 16s-7.16895 16 -16 16s-16 -7.16895 -16 -16s7.16895 -16 16 -16z" /> +d="M464 192c26.4922 0 48 -21.5078 48 -48s-21.5078 -48 -48 -48h-416c-26.4922 0 -48 21.5078 -48 48s21.5078 48 48 48h416zM480 64c8.83105 0 16 -7.16895 16 -16v-16c0 -35.3223 -28.6777 -64 -64 -64h-352c-35.3223 0 -64 28.6777 -64 64v16 +c0 8.83105 7.16895 16 16 16h448zM58.6396 224c-34.5693 0 -54.6396 43.9102 -34.8193 75.8896c40.1797 64.9102 128.64 116.011 232.18 116.11c103.55 -0.0996094 192 -51.2002 232.18 -116.12c19.8008 -31.9795 -0.25 -75.8799 -34.8193 -75.8799h-394.721zM384 336 +c-8.83105 0 -16 -7.16895 -16 -16s7.16895 -16 16 -16s16 7.16895 16 16s-7.16895 16 -16 16zM256 368c-8.83105 0 -16 -7.16895 -16 -16s7.16895 -16 16 -16s16 7.16895 16 16s-7.16895 16 -16 16zM128 336c-8.83105 0 -16 -7.16895 -16 -16s7.16895 -16 16 -16 +s16 7.16895 16 16s-7.16895 16 -16 16z" /> +d="M479.93 130.88l0.0703125 -82.8799c0 -61.7979 -50.1592 -111.973 -111.95 -112h-215c-30.9053 0.00292969 -58.9189 12.5361 -79.1895 32.8096l-30.9307 30.9307c-6.75488 6.75391 -10.9297 16.0928 -10.9297 26.3896v73.4697 +c0 14.6221 8.38574 27.2734 20.6396 33.4004l27.3604 15v-76c0 -4.41504 3.58496 -8 8 -8s8 3.58496 8 8v147.04c0 15.2598 12.8701 28.3799 30.8701 31.3799l30.6797 5.12012c17.8203 2.96973 34.4502 -8.38965 34.4502 -23.54v-32c0 -4.41504 3.58496 -8 8 -8 +s8 3.58496 8 8v200c0 0.0078125 -0.0244141 0.015625 -0.0244141 0.0234375c0 26.4912 21.5078 48 48 48c0.50293 0 1.00488 -0.0078125 1.50488 -0.0234375c26.2695 -0.799805 46.5195 -23.7197 46.5195 -50v-198c0 -4.41504 3.58496 -8 8 -8s8 3.58496 8 8v32 +c0 15.1396 16.6299 26.5 34.4502 23.5303l38.3994 -6.40039c13.46 -2.25 23.1504 -12.0996 23.1504 -23.54v-49.5898l35.6504 -8.92969c16.2188 -4.05371 28.2676 -18.7256 28.2793 -36.1904z" /> +d="M480 160v-64h-448v64c0 80.25 49.2803 148.92 119.19 177.62l40.8096 -81.6201v112c0 8.83105 7.16895 16 16 16h96c8.83105 0 16 -7.16895 16 -16v-112l40.8096 81.6201c69.9102 -28.7002 119.19 -97.3701 119.19 -177.62zM496 64c8.83105 0 16 -7.16895 16 -16v-32 +c0 -8.83105 -7.16895 -16 -16 -16h-480c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h480z" /> +d="M480 128c-52.9834 0 -96 43.0166 -96 96s43.0166 96 96 96s96 -43.0166 96 -96s-43.0166 -96 -96 -96zM528 96c61.8145 0 112.002 -50.1738 112.002 -111.988c0 -0.210938 -0.000976562 -0.420898 -0.00195312 -0.631836 +c-0.139648 -26.2598 -21.7305 -47.3799 -48 -47.3799h-224c-26.2695 0 -47.8604 21.1201 -48 47.3799c-0.000976562 0.210938 0 0.40918 0 0.620117c0 61.8145 50.1855 112 112 112c0.0273438 0 0.0556641 -0.00488281 0.0830078 -0.00488281 +c2.42871 0 4.77051 -0.380859 6.9668 -1.08496c12.8193 -4.4541 26.6504 -6.87402 40.9775 -6.87402s28.0938 2.41992 40.9131 6.87402c2.19922 0.704102 4.54395 1.08984 6.97656 1.08984h0.0830078zM329.91 85.5498c-25.9033 -25.8965 -41.915 -61.665 -41.915 -101.15 +c0 -0.396484 0.00195312 -0.792969 0.00488281 -1.18945c0.166016 -17.7246 6.24512 -34.1309 16.3096 -47.21h-288.31c-8.83105 0 -16 7.16895 -16 16v368c0 17.6611 14.3389 32 32 32h32v64c0 17.6611 14.3389 32 32 32h160c17.6611 0 32 -14.3389 32 -32v-64h32 +c17.6611 0 32 -14.3389 32 -32v-216.62c-7.98633 -5.24609 -15.3037 -11.1562 -22.0898 -17.8301zM144 44v40c0 6.62305 -5.37695 12 -12 12h-40c-6.62305 0 -12 -5.37695 -12 -12v-40c0 -6.62305 5.37695 -12 12 -12h40c6.62305 0 12 5.37695 12 12zM144 172v40 +c0 6.62305 -5.37695 12 -12 12h-40c-6.62305 0 -12 -5.37695 -12 -12v-40c0 -6.62305 5.37695 -12 12 -12h40c6.62305 0 12 5.37695 12 12zM192 294v26h26c3.31152 0 6 2.68848 6 6v20c0 3.31152 -2.68848 6 -6 6h-26v26c0 3.31152 -2.68848 6 -6 6h-20 +c-3.31152 0 -6 -2.68848 -6 -6v-26h-26c-3.31152 0 -6 -2.68848 -6 -6v-20c0 -3.31152 2.68848 -6 6 -6h26v-26c0 -3.31152 2.68848 -6 6 -6h20c3.31152 0 6 2.68848 6 6zM272 44v40c0 6.62305 -5.37695 12 -12 12h-40c-6.62305 0 -12 -5.37695 -12 -12v-40 +c0 -6.62305 5.37695 -12 12 -12h40c6.62305 0 12 5.37695 12 12zM272 172v40c0 6.62305 -5.37695 12 -12 12h-40c-6.62305 0 -12 -5.37695 -12 -12v-40c0 -6.62305 5.37695 -12 12 -12h40c6.62305 0 12 5.37695 12 12z" /> +d="M368 288c26.4922 0 48 -21.5078 48 -48s-21.5078 -48 -48 -48h-288c-26.4922 0 -48 21.5078 -48 48s21.5078 48 48 48h0.94043c-0.625 5.43945 -0.93457 10.9707 -0.93457 16.5762c0 79.4756 64.5234 144 144 144c79.4756 0 144 -64.5244 144 -144 +c0 -5.60547 -0.321289 -11.1367 -0.946289 -16.5762h0.94043zM195.38 -45.6904l-99.3799 205.69h256l-99.3799 -205.69c-4.99414 -10.8223 -15.9111 -18.3398 -28.6035 -18.3398s-23.6426 7.51758 -28.6367 18.3398z" /> +d="M232 224c-4.41504 0 -8 3.58496 -8 8v48c0 4.41504 3.58496 8 8 8h56v56c0 4.41504 3.58496 8 8 8h48c4.41504 0 8 -3.58496 8 -8v-56h56c4.41504 0 8 -3.58496 8 -8v-48c0 -4.41504 -3.58496 -8 -8 -8h-56v-56c0 -4.41504 -3.58496 -8 -8 -8h-48 +c-4.41504 0 -8 3.58496 -8 8v56h-56zM576 400v-336h-512v336c0.0771484 26.4561 21.5439 47.9229 48 48h416c26.4561 -0.0771484 47.9229 -21.5439 48 -48zM512 128v256h-384v-256h384zM624 32c8.83105 0 16 -7.16895 16 -16v-16 +c-0.104492 -35.2744 -28.7256 -63.8955 -64 -64h-512c-35.2744 0.104492 -63.8955 28.7256 -64 64v16c0 8.83105 7.16895 16 16 16h239.23c-0.230469 -14.5303 14.0791 -32 32.7695 -32h60.7998c18.0303 0 32 12.1904 32.7402 32h242.46z" /> +d="M448 384c35.3223 0 64 -28.6777 64 -64v-256c0 -35.3223 -28.6777 -64 -64 -64h-384c-35.3223 0 -64 28.6777 -64 64v256c0 35.3223 28.6777 64 64 64h384zM160 80v48h-80c-8.83105 0 -16 -7.16895 -16 -16v-16c0 -8.83105 7.16895 -16 16 -16h80zM288 96v16 +c0 8.83105 -7.16895 16 -16 16h-80v-48h80c8.83105 0 16 7.16895 16 16zM448 224v64c0 17.6611 -14.3389 32 -32 32h-320c-17.6611 0 -32 -14.3389 -32 -32v-64c0 -17.6611 14.3389 -32 32 -32h320c17.6611 0 32 14.3389 32 32z" /> +d="M330.67 184.88h107.46l37.0498 -38.54c-48.5293 -87.4697 -206.54 -210.34 -419.18 -210.34c-30.9072 0 -56 25.0928 -56 56s25.0928 56 56 56c141.58 0 163.44 181.24 221.92 250.82l52.75 -24.2207v-89.7197zM461.76 313.25 +c30.8984 -28.1729 50.2402 -68.7275 50.2402 -113.795v-0.145508c0 -13.6797 -2.2998 -26.6895 -5.55957 -39.3096l-54.6807 56.8799h-89.0898v78.2402l-74.6699 34.29c22.3398 14.0498 48.3398 22.5898 76.3398 22.5898 +c20.2783 -0.0078125 39.6836 -4.32031 57.1602 -11.96c18.4502 37.2197 8.25977 61.96 1.40039 72.3203c-0.896484 1.29883 -1.42676 2.88184 -1.42676 4.57715c0 2.20117 0.884766 4.19727 2.31641 5.65234l22.9004 23c1.45117 1.47559 3.46777 2.39453 5.69922 2.39453 +c2.5166 0 4.76367 -1.16504 6.23047 -2.98438c18.5596 -23.4805 35.2998 -71.9102 3.13965 -131.75z" /> +M100.4 335.85c176.069 -1.95996 294.88 -119.25 299.149 -294.14l-379 -105.1c-1.37793 -0.381836 -2.82324 -0.59375 -4.32227 -0.59375c-8.94629 0 -16.21 7.26367 -16.21 16.21c0 1.42871 0.18457 2.81348 0.532227 4.13379zM128 32c17.6611 0 32 14.3389 32 32 +s-14.3389 32 -32 32s-32 -14.3389 -32 -32s14.3389 -32 32 -32zM176 184c17.6611 0 32 14.3389 32 32s-14.3389 32 -32 32s-32 -14.3389 -32 -32s14.3389 -32 32 -32zM280 80c17.6611 0 32 14.3389 32 32s-14.3389 32 -32 32s-32 -14.3389 -32 -32s14.3389 -32 32 -32z" /> +d="M53.2002 -19l-21.2002 339h384l-21.2002 -339c-1.57031 -25.0762 -22.4316 -44.9971 -47.8994 -45h-245.801c-25.4678 0.00292969 -46.3291 19.9238 -47.8994 45zM123.31 156.8c-10.0791 -10.6201 -2.93945 -28.7998 11.3203 -28.7998h57.3701v-112 +c0 -8.83105 7.16895 -16 16 -16h32c8.83105 0 16 7.16895 16 16v112h57.3701c14.2598 0 21.3994 18.1797 11.3203 28.7998l-89.3809 94.2598c-2.81543 3.04297 -6.83984 4.94922 -11.3086 4.94922s-8.49512 -1.90625 -11.3105 -4.94922zM432 416 +c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-416c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h120l9.40039 18.7002c3.85547 7.88574 11.9434 13.2998 21.3066 13.2998h0.0927734h114.3 +c0.00585938 0 -0.00195312 0.0234375 0.00390625 0.0234375c9.41113 0 17.5645 -5.42871 21.4961 -13.3232l9.40039 -18.7002h120z" /> +d="M32 -16v336h384v-336c0 -26.4922 -21.5078 -48 -48 -48h-288c-26.4922 0 -48 21.5078 -48 48zM123.31 156.8c-10.0791 -10.6201 -2.93945 -28.7998 11.3203 -28.7998h57.3701v-112c0 -8.83105 7.16895 -16 16 -16h32c8.83105 0 16 7.16895 16 16v112h57.3701 +c14.2598 0 21.3994 18.1797 11.3203 28.7998l-89.3809 94.2598c-2.81543 3.04297 -6.83984 4.94922 -11.3086 4.94922s-8.49512 -1.90625 -11.3105 -4.94922zM432 416c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-416 +c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h120l9.40039 18.7002c3.85547 7.88574 11.9434 13.2998 21.3066 13.2998h0.0927734h114.3c0.00585938 0 -0.00195312 0.0234375 0.00390625 0.0234375c9.41113 0 17.5645 -5.42871 21.4961 -13.3232 +l9.40039 -18.7002h120z" /> +d="M319.41 128c71.4902 -3.09961 128.59 -61.5996 128.59 -133.79c0 -32.127 -26.083 -58.21 -58.21 -58.21h-331.58c-32.127 0 -58.21 26.083 -58.21 58.21c0 72.1904 57.0996 130.69 128.59 133.79l95.4102 -95.3896zM224 144c-70.6455 0 -128 57.3545 -128 128v110.18 +c0 13.7119 8.62988 25.4092 20.7598 29.96l84.7705 31.79c6.98438 2.61914 14.6035 4.05176 22.498 4.05176s15.457 -1.43262 22.4414 -4.05176l84.7705 -31.75c12.1309 -4.55078 20.7598 -16.248 20.7598 -29.96v-0.0400391v-110.18c0 -70.6455 -57.3545 -128 -128 -128z +M184 376.33v-16.6602c0 -2.75977 2.24023 -5 5 -5h21.6699v-21.6699c0 -2.75977 2.24023 -5 5 -5h16.6602c2.75977 0 5 2.24023 5 5v21.6699h21.6699c2.75977 0 5 2.24023 5 5v16.6602c0 2.75977 -2.24023 5 -5 5h-21.6699v21.6699c0 2.75977 -2.24023 5 -5 5h-16.6602 +c-2.75977 0 -5 -2.24023 -5 -5v-21.6699h-21.6699c-2.75977 0 -5 -2.24023 -5 -5zM144 288v-16c0 -44.1533 35.8467 -80 80 -80s80 35.8467 80 80v16h-160z" /> +d="M476 -32h-152c-19.8691 0 -36 16.1309 -36 36v348h-96v-156c0 -19.8691 -16.1309 -36 -36 -36h-140c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h112v156c0 19.8691 16.1309 36 36 36h152c19.8691 0 36 -16.1309 36 -36v-348h96v156 +c0 19.8691 16.1309 36 36 36h140c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-112v-156c0 -19.8691 -16.1309 -36 -36 -36z" /> +d="M400 352c-26.4922 0 -48 21.5078 -48 48s21.5078 48 48 48s48 -21.5078 48 -48s-21.5078 -48 -48 -48zM396 231l-41.3604 33.1104l-58.25 -49.9199l41.3604 -27.5703c8.60547 -5.7373 14.248 -15.5117 14.25 -26.6201v-128c0 -17.6611 -14.3389 -32 -32 -32 +s-32 14.3389 -32 32v110.88l-81.7305 54.5205c-8.60742 5.7373 -14.2686 15.5068 -14.2686 26.6191c0 9.71777 4.3418 18.4297 11.1895 24.3008l112 96c5.58887 4.80176 12.8965 7.70117 20.8359 7.70117c7.55566 0 14.502 -2.62891 19.9736 -7.02148l71.2197 -57h52.7803 +c17.6611 0 32 -14.3389 32 -32s-14.3389 -32 -32 -32h-64c-0.0205078 0 -0.0625 0.0117188 -0.0830078 0.0117188c-7.53125 0 -14.457 2.61621 -19.917 6.98828zM512 192c70.6455 0 128 -57.3545 128 -128s-57.3545 -128 -128 -128s-128 57.3545 -128 128 +s57.3545 128 128 128zM512 0c35.3223 0 64 28.6777 64 64s-28.6777 64 -64 64s-64 -28.6777 -64 -64s28.6777 -64 64 -64zM128 192c70.6455 0 128 -57.3545 128 -128s-57.3545 -128 -128 -128s-128 57.3545 -128 128s57.3545 128 128 128zM128 0c35.3223 0 64 28.6777 64 64 +s-28.6777 64 -64 64s-64 -28.6777 -64 -64s28.6777 -64 64 -64z" /> +d="M240 224c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM336 224c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32 +c0 8.83105 7.16895 16 16 16h32zM432 224c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM144 224c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32 +c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM240 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM336 32c8.83105 0 16 -7.16895 16 -16v-32 +c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM432 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM432 128 +c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM432 320c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32 +c0 8.83105 7.16895 16 16 16h32zM240 128c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM240 320c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32 +c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM144 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM240 416c8.83105 0 16 -7.16895 16 -16v-32 +c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM336 416c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM432 416 +c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM48 224c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32 +c0 8.83105 7.16895 16 16 16h32zM48 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM48 128c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32 +c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM48 320c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM48 416c8.83105 0 16 -7.16895 16 -16v-32 +c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM144 416c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32z" /> +d="M240 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM144 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32 +c0 8.83105 7.16895 16 16 16h32zM336 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM432 224c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32 +c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM432 128c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM432 32c8.83105 0 16 -7.16895 16 -16v-32 +c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM432 320c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32zM432 416 +c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-368v-368c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v400c0 17.6611 14.3389 32 32 32h400z" /> +c-8.34082 22.9707 -12.8604 48.9707 -12.8604 77.0605c0 81.79 61.6299 149.3 141.33 159.3c10.4795 1.30957 19.6699 -7.17969 18.5898 -17.6201l-12.4102 -123.11c22.9707 8.34082 48.9707 12.8604 77.0605 12.8604zM256 160c17.6611 0 32 14.3389 32 32 +s-14.3389 32 -32 32s-32 -14.3389 -32 -32s14.3389 -32 32 -32z" /> +l-96.75 -99.8301c-2.85449 -2.98242 -6.875 -4.83984 -11.3252 -4.83984s-8.46973 1.85742 -11.3242 4.83984zM260.57 128.16c15.1406 -0.0107422 27.4297 -12.3066 27.4297 -27.4502v-0.00976562v-137.25c0 -15.1436 -12.2891 -27.4395 -27.4297 -27.4502h-233.141 +c-15.1396 0.00585938 -27.4297 12.2988 -27.4297 27.4395v0.0107422v137.25v0.00976562c0 15.1504 12.2998 27.4502 27.4502 27.4502h0.00976562h48l7 14.2402c3.89258 10.3887 13.9082 17.7793 25.6484 17.7793h0.0117188h71.71 +c0.00390625 0 -0.00195312 0.0126953 0.000976562 0.0126953c11.7412 0 21.7666 -7.40332 25.6592 -17.792l7.08008 -14.2402h48zM144 -20c28.6992 0 52 23.3008 52 52s-23.3008 52 -52 52s-52 -23.3008 -52 -52s23.3008 -52 52 -52zM499.4 95.9004 +c9.70996 0 15.75 -8.79004 10.8691 -15.7002l-92.3994 -138.91c-2.42188 -3.19824 -6.24805 -5.25488 -10.5654 -5.25488c-0.118164 0 -0.236328 0.00195312 -0.354492 0.00488281c-8.03027 0 -14.1201 6.25 -12.2305 12.9004l24.2002 83h-62.3096 +c-7.62012 0 -13.5 5.58984 -12.5 11.8896l16.7998 106.93c0.839844 5.2002 6.2002 9.10059 12.5 9.10059h75.5898c8.25 0 14.2803 -6.56055 12.1797 -13.21l-22.3594 -50.75h60.5801zM478.08 447.67c17.9199 2.75 33.9199 -12.1895 33.9199 -31.6699v-144.26 +c-0.269531 -26.3398 -28.7998 -47.6602 -64 -47.6602c-35.3496 0 -64 21.4795 -64 48c0 26.5195 28.6504 48 64 48c5.49219 -0.0498047 10.8096 -0.633789 16 -1.7002v47.1797l-112 -17.2197v-108.58c-0.269531 -26.3398 -28.7998 -47.6602 -64 -47.6602 +c-35.3496 0 -64 21.4805 -64 48c0 26.5205 28.6504 48 64 48c5.49219 -0.0498047 10.8096 -0.632812 16 -1.69922v106.77c0 15.9102 10.8701 29.4102 25.5098 31.6602z" /> +d="M497.39 86.2002c8.60059 -3.74121 14.6006 -12.2891 14.6006 -22.2588c0 -1.83496 -0.204102 -3.62305 -0.589844 -5.3418l-24 -104c-2.45801 -10.6416 -12 -18.5996 -23.3848 -18.5996h-0.015625c-256.1 0 -464 207.5 -464 464l0.0136719 0.00390625 +c0 11.3848 7.94434 20.9287 18.5859 23.3857l104 24c1.72754 0.392578 3.49805 0.619141 5.34375 0.619141c9.9082 0 18.4307 -5.97656 22.1562 -14.5186l48 -112c1.23828 -2.88965 1.95117 -6.0791 1.95117 -9.41895c0 -7.49512 -3.45215 -14.1904 -8.85059 -18.5811 +l-60.6006 -49.6006c36.7334 -77.9072 99.2822 -140.457 177.19 -177.189l49.5996 60.5996c4.40332 5.39258 11.1113 8.81055 18.6084 8.81055c3.33203 0 6.50684 -0.680664 9.3916 -1.91016z" /> +d="M400 416c26.4922 0 48 -21.5078 48 -48v-352c0 -26.4922 -21.5078 -48 -48 -48h-352c-26.4922 0 -48 21.5078 -48 48v352c0 26.4922 21.5078 48 48 48h352zM383.61 108.63c0.235352 1.09082 0.369141 2.21387 0.389648 3.37012 +c-0.301758 6.06445 -3.91992 11.2607 -9.08984 13.79l-70 30c-1.83594 0.71582 -3.83789 1.14355 -5.91016 1.20996c-4.58496 -0.251953 -8.69922 -2.31836 -11.6104 -5.5l-31 -37.8896c-48.7002 22.9775 -87.8018 62.0791 -110.779 110.779l37.8896 31 +c3.18164 2.91113 5.24805 7.02539 5.5 11.6104c-0.0673828 2.07129 -0.495117 4.07324 -1.20996 5.91016l-30 70c-2.53223 5.16797 -7.72754 8.78418 -13.79 9.08984c-1.15527 -0.0253906 -2.27734 -0.15918 -3.37012 -0.389648l-65 -15 +c-6.52246 -1.74707 -11.3818 -7.59961 -11.6299 -14.6104c0 -160.29 130 -290 290 -290c7.11426 0.00292969 13.0762 4.97852 14.6104 11.6299z" /> +d="M608 448c17.6611 0 32 -14.3389 32 -32v-320c0 -17.6611 -14.3389 -32 -32 -32h-128v320h-192v-64h-160v96c0 17.6611 14.3389 32 32 32h448zM232 345v30c0 4.9668 -4.0332 9 -9 9h-30c-4.9668 0 -9 -4.0332 -9 -9v-30c0 -4.9668 4.0332 -9 9 -9h30 +c4.9668 0 9 4.0332 9 9zM584 137v30c0 4.9668 -4.0332 9 -9 9h-30c-4.9668 0 -9 -4.0332 -9 -9v-30c0 -4.9668 4.0332 -9 9 -9h30c4.9668 0 9 4.0332 9 9zM584 241v30c0 4.9668 -4.0332 9 -9 9h-30c-4.9668 0 -9 -4.0332 -9 -9v-30c0 -4.9668 4.0332 -9 9 -9h30 +c4.9668 0 9 4.0332 9 9zM584 345v30c0 4.9668 -4.0332 9 -9 9h-30c-4.9668 0 -9 -4.0332 -9 -9v-30c0 -4.9668 4.0332 -9 9 -9h30c4.9668 0 9 4.0332 9 9zM416 288c17.6611 0 32 -14.3389 32 -32v-288c0 -17.6611 -14.3389 -32 -32 -32h-384c-17.6611 0 -32 14.3389 -32 32 +v288c0 17.6611 14.3389 32 32 32h384zM96 224c-17.6611 0 -32 -14.3389 -32 -32s14.3389 -32 32 -32s32 14.3389 32 32s-14.3389 32 -32 32zM384 0v96l-96 96l-128 -128l-32 32l-64 -64v-32h320z" /> +d="M336 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-128c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h32.4902l26.5098 79.5996l67.0898 -51.8301l-9.25977 -27.7695h11.1699zM633.82 -10.0996 +c3.76855 -2.92871 6.17676 -7.50977 6.17676 -12.6475c0 -3.69238 -1.25293 -7.09375 -3.35742 -9.80273l-19.6396 -25.2705c-2.92871 -3.76855 -7.50879 -6.17578 -12.6465 -6.17578c-3.69727 0 -7.10254 1.25684 -9.81348 3.36621l-588.36 454.72 +c-3.76562 2.92871 -6.1709 7.50781 -6.1709 12.6426c0 3.69434 1.25488 7.09766 3.36133 9.80762l19.6299 25.2695c2.92871 3.76855 7.50879 6.17676 12.6465 6.17676c3.69727 0 7.10254 -1.25684 9.81348 -3.36621l114.54 -88.5205v43.9004c0 8.83105 7.16895 16 16 16h416 +c8.83105 0 16 -7.16895 16 -16v-96c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v32h-117.83l-49.1699 -147.59zM309.91 240.24l31.9199 95.7598h-117.83v-29.3604z" /> +d="M176 96c14.2197 0 21.3496 -17.2598 11.3301 -27.3096l-80 -96c-2.89551 -2.89453 -6.89844 -4.68555 -11.3125 -4.68555c-4.41309 0 -8.41211 1.79102 -11.3076 4.68555l-80 96c-10.0703 10.0693 -2.90039 27.3096 11.29 27.3096h48v304c0 8.83105 7.16895 16 16 16h32 +c8.83105 0 16 -7.16895 16 -16v-304h48zM288 224c-8.83105 0 -16 7.16895 -16 16v17.6299c0 9.51074 4.14355 18.0566 10.7402 23.9199l61.2598 70.4502h-56c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h128c8.83105 0 16 -7.16895 16 -16v-17.6299 +c0 -9.51074 -4.14355 -18.0566 -10.7402 -23.9199l-61.2598 -70.4502h56c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-128zM447.06 -10.6201c0.600586 -1.67969 0.931641 -3.49512 0.931641 -5.37988c0 -8.82812 -7.16406 -15.9951 -15.9912 -16 +h-24.8398c-0.015625 0 -0.0263672 -0.00195312 -0.0419922 -0.00195312c-7.11426 0 -13.1514 4.6543 -15.2285 11.082l-4.40918 12.9199h-71l-4.4209 -12.9199c-2.07617 -6.42773 -8.10938 -11.0801 -15.2246 -11.0801h-0.00488281h-24.8301 +c-8.82715 0.00488281 -15.9863 7.17773 -15.9863 16.0049c0 1.88574 0.326172 3.69531 0.926758 5.375l59.2695 160c2.20996 6.19043 8.125 10.6201 15.0703 10.6201h41.4395c6.94531 0 12.8604 -4.42969 15.0703 -10.6201zM335.61 48h32.7793l-16.3896 48z" /> +d="M16 288c-14.2197 0 -21.3496 17.2598 -11.3096 27.3096l80 96c2.89551 2.89453 6.89844 4.68555 11.3115 4.68555c4.41406 0 8.41211 -1.79102 11.3076 -4.68555l80 -96c10.0703 -10.0693 2.90039 -27.3096 -11.3096 -27.3096h-48v-304c0 -8.83105 -7.16895 -16 -16 -16 +h-32c-8.83105 0 -16 7.16895 -16 16v304h-48zM288 224c-8.83105 0 -16 7.16895 -16 16v17.6299c0 9.51074 4.14355 18.0566 10.7402 23.9199l61.2598 70.4502h-56c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h128c8.83105 0 16 -7.16895 16 -16v-17.6299 +c0 -9.51074 -4.14355 -18.0566 -10.7402 -23.9199l-61.2598 -70.4502h56c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-128zM447.06 -10.6201c0.600586 -1.67969 0.931641 -3.49512 0.931641 -5.37988c0 -8.82812 -7.16406 -15.9951 -15.9912 -16 +h-24.8398c-0.015625 0 -0.0263672 -0.00195312 -0.0419922 -0.00195312c-7.11426 0 -13.1514 4.6543 -15.2285 11.082l-4.40918 12.9199h-71l-4.4209 -12.9199c-2.07617 -6.42773 -8.10938 -11.0801 -15.2246 -11.0801h-0.00488281h-24.8301 +c-8.82715 0.00488281 -15.9863 7.17773 -15.9863 16.0049c0 1.88574 0.326172 3.69531 0.926758 5.375l59.2695 160c2.20996 6.19043 8.125 10.6201 15.0703 10.6201h41.4395c6.94531 0 12.8604 -4.42969 15.0703 -10.6201zM335.61 48h32.7793l-16.3896 48z" /> +d="M240 352c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h64c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-64zM240 224c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h128c8.83105 0 16 -7.16895 16 -16v-32 +c0 -8.83105 -7.16895 -16 -16 -16h-128zM496 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-256c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h256zM240 96c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h192 +c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-192zM176 96c14.2197 0 21.3496 -17.2598 11.3301 -27.3096l-80 -96c-2.89551 -2.89453 -6.89844 -4.68555 -11.3125 -4.68555c-4.41309 0 -8.41211 1.79102 -11.3076 4.68555l-80 96 +c-10.0801 10.0693 -2.90039 27.3096 11.29 27.3096h48v304c0 8.83105 7.16895 16 16 16h32c8.83105 0 16 -7.16895 16 -16v-304h48z" /> +d="M240 352c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h64c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-64zM240 224c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h128c8.83105 0 16 -7.16895 16 -16v-32 +c0 -8.83105 -7.16895 -16 -16 -16h-128zM496 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-256c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h256zM240 96c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h192 +c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-192zM16 288c-14.2197 0 -21.3496 17.2598 -11.3096 27.3096l80 96c2.89551 2.89453 6.89844 4.68555 11.3115 4.68555c4.41406 0 8.41211 -1.79102 11.3076 -4.68555l80 -96 +c10.0801 -10.0693 2.90039 -27.3096 -11.3096 -27.3096h-48v-304c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v304h-48z" /> +d="M176 96c14.2197 0 21.3496 -17.2598 11.3301 -27.3096l-80 -96c-2.89551 -2.89453 -6.89844 -4.68555 -11.3125 -4.68555c-4.41309 0 -8.41211 1.79102 -11.3076 4.68555l-80 96c-10.0703 10.0693 -2.90039 27.3096 11.29 27.3096h48v304c0 8.83105 7.16895 16 16 16h32 +c8.83105 0 16 -7.16895 16 -16v-304h48zM400 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-96c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h16v64h-16c-8.82422 0.0078125 -15.9775 7.18945 -15.9775 16.0156 +c0 2.57129 0.608398 5.00098 1.6875 7.1543l16 32c2.62598 5.23926 8.03613 8.8252 14.29 8.83008h48c8.83105 0 16 -7.16895 16 -16v-112h16zM330.17 413.09c53.4502 14.25 101.83 -25.8799 101.85 -77.0898v-10.7695c0 -70.3906 -28.25 -107.23 -86.25 -132 +c-8.36914 -3.58008 -18.0293 1.2793 -20.8994 9.90918l-9.90039 20c-2.62012 7.87012 0.610352 16.9404 8.18066 20.3408c7.59961 3.28516 14.6064 7.64258 20.8496 12.9092c-47.6396 4.76074 -83.0996 51.4805 -68.8301 102.53c7.62891 26.2793 28.5596 46.9287 55 54.1699 +zM352 316c11.0381 0 20 8.96191 20 20s-8.96191 20 -20 20s-20 -8.96191 -20 -20s8.96191 -20 20 -20z" /> +d="M107.31 411.31l80 -96c10.0703 -10.0693 2.90039 -27.3096 -11.3096 -27.3096h-48v-304c0 -8.83105 -7.16895 -16 -16 -16h-32c-8.83105 0 -16 7.16895 -16 16v304h-48c-14.2197 0 -21.3496 17.2598 -11.3096 27.3096l80 96 +c2.89551 2.89453 6.89844 4.68555 11.3115 4.68555c4.41406 0 8.41211 -1.79102 11.3076 -4.68555zM400 32c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-96c-8.83105 0 -16 7.16895 -16 16v32c0 8.83105 7.16895 16 16 16h16v64h-16 +c-8.82422 0.0078125 -15.9775 7.18945 -15.9775 16.0156c0 2.57129 0.608398 5.00098 1.6875 7.1543l16 32c2.62598 5.23926 8.03613 8.8252 14.29 8.83008h48c8.83105 0 16 -7.16895 16 -16v-112h16zM330.17 413.09c53.4502 14.25 101.83 -25.8799 101.85 -77.0898 +v-10.7695c0 -70.3906 -28.25 -107.23 -86.25 -132c-8.36914 -3.58008 -18.0293 1.2793 -20.8994 9.90918l-9.90039 20c-2.62012 7.87012 0.610352 16.9404 8.18066 20.3408c7.59961 3.28516 14.6064 7.64258 20.8496 12.9092 +c-47.6396 4.76074 -83.0996 51.4805 -68.8301 102.53c7.62891 26.2793 28.5596 46.9287 55 54.1699zM352 316c11.0381 0 20 8.96191 20 20s-8.96191 20 -20 20s-20 -8.96191 -20 -20s8.96191 -20 20 -20z" /> +d="M272 192c-8.83105 0 -16 7.16895 -16 16v224c0 8.83105 7.16895 16 16 16h75c42.2998 0 80.9004 -30.5703 84.6699 -72.6797c0.225586 -2.44238 0.289062 -4.91895 0.289062 -7.41895c0 -13.5479 -3.38281 -26.3115 -9.34863 -37.4912 +c15.6377 -14.5762 25.3984 -35.2832 25.3984 -58.3262c0 -1.59277 -0.046875 -3.1748 -0.138672 -4.74414c-2.50977 -43.1396 -41.3105 -75.3398 -84.5098 -75.3398h-91.3604zM312 392v-48h40c13.2461 0 24 10.7539 24 24s-10.7539 24 -24 24h-40zM312 296v-48h56 +c13.2461 0 24 10.7539 24 24s-10.7539 24 -24 24h-56zM155.12 425.75l68.2998 -213.48c0.376953 -1.36035 0.580078 -2.79004 0.580078 -4.26953c0 -8.83105 -7.16895 -16 -16 -16h-24.9297c-7.35059 0 -13.5488 4.97168 -15.4199 11.7305l-11.9404 36.2695h-87.4199 +l-11.9404 -36.2695c-1.87109 -6.75879 -8.06934 -11.7305 -15.4199 -11.7305h-24.9297c-8.82617 0.00488281 -15.9883 7.16895 -15.9883 15.9961c0 1.47949 0.201172 2.91309 0.578125 4.27344l68.29 213.48c4.12695 12.9004 16.2168 22.25 30.4805 22.25h25.2793 +c14.2637 0 26.3535 -9.34961 30.4805 -22.25zM89.3701 304h45.2598l-22.6299 68.7002zM571.37 171.52c2.8916 -2.89453 4.65918 -6.89648 4.65918 -11.3066c0 -4.40137 -1.78027 -8.38867 -4.65918 -11.2832l-208 -208.21 +c-2.88086 -2.91406 -6.88379 -4.7207 -11.3018 -4.7207s-8.41699 1.80664 -11.2988 4.7207l-112 112.21c-2.88477 2.89453 -4.66895 6.8916 -4.66895 11.2979c0 4.40527 1.78418 8.39746 4.66895 11.292l45.3008 45.3008c2.87891 2.91309 6.87988 4.71973 11.2969 4.71973 +c4.41602 0 8.41309 -1.80664 11.293 -4.71973l55.4102 -55.5l151.5 151.5c2.87891 2.91309 6.87988 4.71973 11.2969 4.71973c4.41602 0 8.41309 -1.80664 11.293 -4.71973z" /> +d="M496 320c79.4756 0 144 -64.5244 144 -144s-64.5244 -144 -144 -144h-352c-79.4727 0.00390625 -144.079 64.3818 -144.079 143.854c0 79.4766 64.5244 144 144 144c79.4766 0 144 -64.5234 144 -144c0 -29.5293 -8.90723 -56.9961 -24.1807 -79.8545h112.52 +c-15.2734 22.8584 -24.2598 50.4697 -24.2598 80c0 79.4756 64.5244 144 144 144zM64 176c0 -44.1533 35.8467 -80 80 -80s80 35.8467 80 80s-35.8467 80 -80 80s-80 -35.8467 -80 -80zM496 96c44.1533 0 80 35.8467 80 80s-35.8467 80 -80 80s-80 -35.8467 -80 -80 +s35.8467 -80 80 -80z" /> +d="M490 151.1c-38.7695 -12.5898 -93.7305 -23.0996 -170 -23.0996s-131.19 10.5303 -169.99 23.1201c9.50977 57.4102 39.5098 232.88 97.71 232.88c14 0 26.4902 -6 37 -14c9.78516 -7.45996 22.0947 -11.8906 35.3369 -11.8906c13.2432 0 25.458 4.43066 35.2432 11.8906 +c10.5098 8.07031 23 14 37 14c58.21 0 88.21 -175.51 97.7002 -232.9zM632.9 188.28c4.27637 -2.87402 7.08008 -7.75195 7.08008 -13.2871c0 -1.94043 -0.34668 -3.80078 -0.980469 -5.52344c-0.730469 -2.01953 -77.3203 -201.47 -319 -201.47s-318.27 199.45 -319 201.47 +c-0.625977 1.71289 -0.966797 3.56543 -0.966797 5.49316c0 8.83105 7.16992 16 16 16c4.12012 0 7.87891 -1.56055 10.7168 -4.12305c1.01953 -0.899414 102.42 -90.8398 293.24 -90.8398c191.89 0 292.16 89.8799 293.16 90.7803 +c2.84863 2.61816 6.6709 4.20996 10.8428 4.20996c3.2959 0 6.36035 -0.999023 8.90723 -2.70996z" /> +c34.3994 0 67.7695 -12.1201 96.3994 -35.0596zM495.45 175.23c114.95 -7.90039 144.55 -101.841 144.55 -127.23c0 -26.4922 -21.5078 -48 -48 -48c-97.0996 0 -141.24 35.46 -212.31 96.7002l-98 84.4795c-35.29 28.2705 -75.5 42.8203 -117.29 42.8203 +c-7.09082 0 -13.8906 -1.16992 -20.79 -2l6.88965 65.21c2.96094 27.6465 23.6035 50.1143 50.3496 55.79l191.15 40.5898c4.31055 0.916992 8.73828 1.34277 13.3203 1.34277c31.6191 0 57.9131 -22.9785 63.0801 -53.1328z" /> +d="M0 96v128h384v-128c0 -88.3066 -71.6934 -160 -160 -160h-64c-88.3066 0 -160 71.6934 -160 160zM176 448v-192h-176v32c0 88.3066 71.6934 160 160 160h16zM224 448c88.3066 0 160 -71.6934 160 -160v-32h-176v192h16z" /> +d="M256 296c57.3994 0 104 -46.6006 104 -104s-46.6006 -104 -104 -104s-104 46.6006 -104 104s46.6006 104 104 104zM256 168c13.2461 0 24 10.7539 24 24s-10.7539 24 -24 24s-24 -10.7539 -24 -24s10.7539 -24 24 -24zM256 440c137 0 248 -111 248 -248 +s-111 -248 -248 -248s-248 111 -248 248s111 248 248 248zM256 64c70.6455 0 128 57.3545 128 128s-57.3545 128 -128 128s-128 -57.3545 -128 -128s57.3545 -128 128 -128z" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - +d="M416 240c8.83105 0 16 -7.16895 16 -16s-7.16895 -16 -16 -16s-16 7.16895 -16 16s7.16895 16 16 16zM624 128c8.83105 0 16 -7.16895 16 -16v-32c0 -8.83105 -7.16895 -16 -16 -16h-336c0 -52.9834 -43.0166 -96 -96 -96s-96 43.0166 -96 96h-32 +c-35.3223 0 -64 28.6777 -64 64v256c0 35.3223 28.6777 64 64 64h352c88.3066 0 160 -71.6934 160 -160v-160h48zM192 16c26.4795 0.0273438 47.9727 21.5205 48 48c0 26.4922 -21.5078 48 -48 48s-48 -21.5078 -48 -48s21.5078 -48 48 -48zM256 256v64 +c0 17.6611 -14.3389 32 -32 32h-128c-17.6611 0 -32 -14.3389 -32 -32v-64c0 -17.6611 14.3389 -32 32 -32h128c17.6611 0 32 14.3389 32 32zM448 128v192c0 17.6611 -14.3389 32 -32 32h-64c-17.6611 0 -32 -14.3389 -32 -32v-192h128z" /> + + \ No newline at end of file diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.ttf b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.ttf index 5b979039ab28aaae305074541fe39258753ba624..f3fdc10cc1719980984f5351b029553987755453 100644 GIT binary patch delta 17920 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 delta 16052 zcmajG31C#!**E^2bJv->%|6Lwl1wJaB!Q4UnFIm^2z!KpVXG)XS;C@5L_|dslvYHl z$WSh=XyevWMa70TxJOGBEh=q!tyNT1wA5mymbTK`46m}uX>rp>;#p27C7Cst}5dR=bBn|Jp^6Isl@7uMT_$O0{Do#0rW7D~Q>(Xt~ zBCGK)q;WJOdi&ljpy#~#mh$Z^>H65IDSX0OQ%!8Xc$&_xOYLUEdS~#6B|A-ccj{Mc zD)XdbJXo7fJI&Mo1Uwx?(=$o#!$>)E8YR)a4=wkgy-Is}zvtb}&9lrNf1J;kNC#-$eM zWL#*>G%hfv8&i#H zqu3}i5=NoXm2bq2JR@f08aYO`5j8T5kP$QjhTrfSmZ2MN{h#{Z^i%q$`p5cl{eAt{ z`fK{D`b+vj{YAZBe@1^=e@Z`~@7JHu_vw%6kLr8%J^ByzALtM159s&nJ^BtkrQfM< z(QnhgrQf9ApkJr2*VpN*^;P;xeTCl9r7zc)=!^A5`X%~B`T~8nK1-jePt=?BvHBRj zUa!?F^in-f&(*W_h#u5Ex~XfrODAnmJFERk`&|2@_L=snc0&6|drv#2y`#OYy`}v| z`=$1V_L_EB`-S$Z_OkYp_H*r^*01$xKi2kXk7;|gN3a$!-WH)G_uFnXNef6~I?Sp83FG$ecD{8<9^0kni6>)D=L302&5kz%#%} zqR?idunM4Z2AIh}#mr`+2=XEah_X6xTERf{5K%Uevx_JfdAa>Wu^IsNWBZ8mP$v)N zaUDQ;9Q5O-iSk>4&A>70qJl=qF^r%9BPc8d)&p-5CD1sr12{!ggz};@M8(K2L7fsX zR)X}fHsAo!@F;MQsB|@O7}8S&_7jx_fFnfZQ-Hk?aP>r$$gAuosv@FlPZu8Gss;^e z_5oiJ)uM8p4(tHXI0**p!A$)rq6Um&6yA+%0n{H|3Y;Vwvx{hKGq9VesTe@paUP(D zXnX~5kZ8hYqUI*x4AI2BM3dTquA@YgrvPAL3Mx(k15-B;O#{JcZxKyz1->L|0f7tl z5zSBmbUrf*>?Ue$1P%bFiDs=Qnhho{JWSNKpJ>iP0PW_Yqj@^812_bHMKm9M%}0LM zd{kTjq6_MQ4x(>(fUQIqA$`#{qJ_x2xD)`r>k*M<-qN{*46#(j9jZs|PL$nrcuK}%V(BZmn0Pky&w>|*i`?@Ja z*Jl6+h;Bgn4PO#%*o*bQ5d}ByA-YKgIsg#u0>SQLU>k6pXd^n?c#P;~xnjju}!GE=_{gdwgLNyzSRjJed~Ur%}u~tM7PZ++OifnM0ERVqOGk&-$vUzx}rpP zVruR@O|%Ui+y!FW!NhhnN}+M;4AG7$z<#3dtObq`?bLyzL^jg90sx49w;lMB=x)&4 z-AHs#DX@p=UNCbnXnlVxQ4et64x;-pyZ4_VdH`*@9&96e2#p>B;UBCg`XQM4AsX!2 zOZ1~=qK8`nF!o3b@F3A%F!LztJi3JFF%W<3IML%9Aj4JzUlIKn?Rrtxi~Rl15d8%0 zf4Y{aF9vKSI#2r;ZXmjm)RP?K925gTP6m=RCk^qUZM$^|une&_wj2 z4jd->8SrxgQ1((Iu#f2F4B!aSq18mMv=hCG`oD+)=3i>90ZH*C2Kj#E

$on7EdvhVtZz_OIz$v2N60j9^Q7LeM=$#ti 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 literal 103300 zcmZTuV|1oH*S%}owr$(S)OI_yZM#$3wr$&*+P2+(^Spn*thJMzoqe)$t{>OQO5&y< zE)Dy&;$Tv_WDo5_7Cis6l(hx|40Ck`G0F6{0CA{5pZ$~ z8|Qz1=8FG<*Z}|#QkoS(kge^E|LLs$>7eocaao`fDgHKw?)Cs6mw!3{!GHdsl0d&~ z4Q)*SarOWJFgySNMnhIjjBRh{#{{ip)7v8_w{`+$1{{Z~Y0s%St*Mk1f`d9tuYxp_6InX!J*LOOYHqzI( z3t!yJEXmx&$jHc4$IM~?2K2jz3Kot4(>H|)|JBc5DDDnc1X3{#iFDLrxD8d3ijff* z;N$>z>YjDA;-#3Pir;q!5v;T0^ww=!#1=ZBW~H4@mz+|&N$-Gt|(T$ycWvR=}J?M|I}#BpXBrEOamT!Va^S*)d%J#w5wbToJSLmrypCB#maDpY24O+h^ja7Wxt;{ z>E%G-w)C~p8!~RU_oUE+)GvMXe)Y}hn@HiL(j8oXaP`4kug~qy$Tw~EcCjm#<6fpK zhQ?RqHKGPMB8OOmmpli3HXK8=C>)7p*!!;LRgxAXH(Yg}rC!J+N~d1p5@onRG${hx zL76o?YQMn(O+6S<+I| zOpIBRKAB*=cPyD%#P*MeV=8UJhiN)(D%*WhRjORW@VQyB=0!Cv&FH$}RSR@Aa^(QG z<+27vwN~YfWnD&<(+b!{!&CNCw~H2rlqvwm`gql;{|V(F5AN;P*O zwrW&IQID#6k|N%D20QDD3d9*cw?^1`*weu~7oRM`D#;TjUhz*+;gcv{t@)|IMF_W4 z=_$g~sAsWW_3D{yc5(0AhI7w$VU%+O{jzC?Fu^?AdmDfG#Ut5P$wu>B%F27i)-rj^ zM$cr===JZP72i#Kqqv42gSf`ROR8sDo_;+GiVc}7R-QqA3-vYgOL>JnicOY9mQj}4 z#zn@oeqastW7neRTWL7My-N@FnRxDqY1bn9XDKU9;%5 z&E4Qm4+RNJf^Wdh?BFZl8<*f%5^s3))`2%eVSoG+B

Bi7ET==w0ED@om}nElpl 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 D#gX8w diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2 b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2 index 978a681a10ff0478581436eaca5c5695c97445d4..8f1860060657c6587c59319357b00bcc6ea268eb 100644 GIT binary patch literal 80240 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

<+FPt`CJ5M<;BR8)$XaA}zKhelyD<@_ z`D-STM#UPRe=AaE^88fm0JlR!t28V*N2;qpb8o0)9Kjf6F+3olu-jbE4)(@EhPtH& zjq}d?DRo-<5ZHf9UB$cmqgH%mip~SkJyys@4O>RaqH!=5kvQSBcQDu#IUdjm8mRAz zlpHmrh8*u6;WJ9HLBK3n0xLYmf!<2mtgC6ed;(vkM{2o$nCUD-`aE4hi1to|HA|)6 zWqoNH=7%52qwb7w9iua61`F0CYnIUESHM7c^qUYUs3_etIB#M>G|;P7&wwmO?#<^j zNLC+KA^@~3xy|)3J>z-)&E>)1{vQK{CRc~1>y}(yaq3o=OFSyiX|ip(G-`skf7Cjq zwoar*$!TmsHuIi`n)p5A+iZ@o=YOJQYnw;}-pOPjP z9>7@|H)w!V`6nxY_7Z${px;TrQjt@M)v75uTyn0j^Ai=DJb+-ctnr+u>lkOvr)TTM z!_{X7pA=hpUOhbYtlXBgGCi*54$mL5Es=s*#f4(vdcA9+(zik#=T8 zeNP)C-7~F&vwyxryfK{SKd?4!_ld85qV}j1{flJz{=knY10eIW% zO<4j%>T-buBB)}`1F1A9WU)UJ58FFvhH~evi5Dg!SC_gz>f&R`-spp2!dk< zBZ_)GKs{{;7l(01)smnUXOXE`xjU9B;fRT3EFRMnpu!_$0ZGN^b28B*z&Kb3q+{z^ zuEe(~BfN{&-qpSpvFR)EXrGCzNkA-^-pV!C$`Fp%MOR5&uqnH#^Tp5+(O4PLnPPak zWVbvGjM+eQzOzsUyyAh#2@WZ#|#{8AmOF>wZ}ra!3DdYe0A!JaS$h z#at(p^FPXe`s+}78OP+rkMh7qLR>(3Q6A|tOpnwi?SC@syMjuBeHbyq4sCHDoT}ZQ zWloD*6HoZXvaCzwubHBm4*VSlLVy+#sHp{g)gR?8>94(ZQQO-g}w z_p6tKiMw>`JvFp?hV@vzvXQ(}(a8 zx%+O6Ai5R%btH6vfEtYhOiGE8VC#nssv12|dU%wPI;{I-5)v}(%$vMznZSYtOZUG| zj=q{BcAdHgM_S1o!`95C=}bb?`Z9?p$Ph4VeVD2)(W1tuo4<&QrQf+t?c62p{7>I@ zrD_Ox5%9pa*bX#?Vk`3&ni5jiF!bW)Faj4u0p!)hsU)Ua_t{6b42$yOIaNNZ82i>gOvz{e)ZA@9<|E;GfMjf#21mEnTmS=wQvi~2rtllets@CB#(Mx$eE z$&=AZQ;jJUydt#>OT4tU&@|QC${0DI_=cQ z1FWl70P>sgV9tzw<`yuI+Q2cit89 zjlh1TTAK4&{6qH--}JT-OTP{Hm9j?&?GrgKK$qIFiS4%_`=8PXWvBv{if~_4unz9n zTK)>mh2SUYAWuyZ>#C&rsjH^0xr|5AXQe62fmmpl39|N~v*sn07iO}pgFh%RuS=Uf zik(g1`*#{JBe^P-TaaB~XPTPs87IudqO*k1q80CPqC3bAYfV9+Ys#4WPka4iZ#Y{2 zcW*WEaP2HCB?h6DS`na^v!bcv@~InXy*|2bjXv*zBw#ho-`062j4#QS?Zh)*aOi7MrSz z2CAlj4<&IsZkT zM|AVv52TosKF8#$N(0OxuiAc>b|&nhgOuQUDoNwvxkHiNG0S#aa@7OZ-4akyy-`fb zAB$f)XAJPhkbR_L$r-;T>GkF0Vo%JqG*@F$|2<}%S)ZKyJ+-Ftbz}k)%Q1O$(H}or zu6?~Y626K{Gz!JI56 zwU*(gnhw}U$Vwy9O7J-28c#{HzaG#1C? z`B`xX!)Z=QF8vXkiOrogg^|(vU@T0VBKDPO?|Y9x-}(9*yLP;GOdzQ$jN{f`x2A(@ zuAO;oXLil>qp~DYZX5Ko1AkE%>p=wS4b@x{PBYDvKAB`$85scL9^vF*Q6k2LBoBY;{#sgnOOc+MFa^faI1a^ZurN1~O;2t|ocQbbLTh$5flpz6Qwxnb{x8XhHjS z<@^5fSo&_~uF^jD66!IGqAgtW|BxoGijfb%AP>+~0Nh#~ZmYs^psAnZD`~Af5`Pnt zOX36AE6}e0;qrJ^?3=dlK5Lx0Gp8IgvE6Fd5_hDueZP*;t8a=xX0|?Y1%4}i2Jx(_&(1@&nh7d z)IRu^$EZ~F7>DbT5@p04W9@It-v0PzYDZEs$5EzP2t#99)jR}BsFySr#5a5GNE=RU zp${ye>X;vl9$bEs!!#u@J0LKeH*k^_$RLAS{DCr%rt4CE++g?^tj78s1-iK#d` z)q$Wpn_)3Zq@OQ=O!Q*}b1OhpC$UvhXuPjomdXssP+<-CWmN*(ssvq&E4>>J#abUv zbb@?TQ=IoPfRD~lOVyv}z?{?71Z%q79CLZH-ieazb?!;3W-|-3^i}ImV%d3iia}!V zuMXvqw3FAIC!ngy=;9`j+QCZ_;o}_Y^Z+u?nj7=>Na$a(&mogJNEq)58WC5R1E>02 zmEcrFmEAnwvsk)~$NJ6e5`$H@ZO|(1r@));Z7FMy%!PL&TdB@{9u9yaZ$ZHte>lNkAF!HJJg!5YTt68k zp47{*yKzpJ@t}WHJXiP&mtgh!uwIk4i5z45>1EvqQEoxCo$<8+1a~VXZlSULjJn!Y z*G_u)+(f_&b8Ip7hh>v~c##s(8NPz`$Ls^FCuM;dHKhKuOLQfvytnHGk`wYZ*~qk> zeB2HX&fJ1Jt$QgxbHf+i=1v*EwBDpoXI}N?37t=QCZ!#@aBwPqbXWf*%)iA z#GxHB+1{7F5)?EPjPU_`-3TxdmrPBO@(2(-LSKXKJ;In7`Q>&6zU^7}sgg8xt}B?@ zlt#X46II%=VTsDMw$?#(G``pB-BOn(9$>8G`_gj(%VZ=g^U+$8u{J6reEVHVXe8yL zIkuK^JmE`dzsWH|293`br8^GaIaK3_ykX?JcG%4al`^=Dr*C;EZwy!3!AnB*OuPv! zR_f%ZG&Mu7lMmuPiHgNk-Y8)*U;T1X%#O=Yvh;%&r!HE$B@62!Oz~JteQwFW zkKm@2)1RsrzubhUs0i>pk73KBiuhdly@Na&>U?Mzf~zzYD988_=Vx)-frQ5y_zyKB z0zZQW9}CWo61>A4W_n0^1NLyT}y&gWdM3j&FAuD-vK0qzAhD5*B7sSi4&IH_$TU+* zcsJ6i0n7H?$fO4y+o8*yWF$E+G#wMFU*`eIdr?$cXuM@L&y9Nx1P0*xtHx^$8NOyV z^!h-~HBfH$HPvi%*dT*ZQLQlIsHt{zU%w`J<&~&^8vCo5dt!Z3*~^c@h3%T)hz77E zqy(W^5=-NrC9pV2BmS9qVwU4VKu5x--XxDNUv9_GL3(h;KYEHTW!I|Eyspssl@snE`hfoO9kyt=OT@H( zUtR<_kOY4<@DfL?a0X7rX0^a=0EqLKmJRer-3)l>##H%tL4dV_oH|EJ+~-L$#vzu< ze4oKe*@Dk%xiVv=P(hii$t9HWdj1KnP%eR}!qs7!q1DXuXwfTb&ovJn%83(OFr`b& zwU)Rn_f@KOT#rx4AbjlTxHC2?jVdR=!o%u~$6j}nOuy=&%W0J2Il*YNP!UOF;~~vE zCxa|~E~%uC{{kV00@F{btJB>N&kkB> zoCmujR#^`-q1iafD3K{yazLTrL`}zQ^R!{fp=-+Lnv0ftu*hdfklQ~bkJN10PF|rS zS}@=^m1n1)7@OBmKbu@HvR72A6gHEvJ$KR3&lk4^(b4?9~*k2uAIkE%N{4{@Z zhOeHIFUsRJ1M`1Ea_adxwSH18m&U4x|JcguGR<>)nBbg@{GEWXu3TbI2dUvtrS~Nh zdu#Ttr^T|;^~bO^W8vi%lpSmuuV&mt62+u;EJ6FfBp%aE!Rtn1v$o~misS-WQ|vBT zC*`{FBqpD?WNC!Ze{I=AaAX)1z zB;V}+^YL$|PYmGD@gw^I>-QC6rJOjlHa;=9KgFe$4TZV3_JLM$aQ*BsW@N)a`GIUK zSl?(M%35<&!PZ%Q<ycWP9>-Ct@IGdJwczzgw%x%Gvl7!S@7gmgW8X;odDr zkXwFtX`zD(Ee^TP(d@)m2p?{n2)T*tgykX2UK_dx_I+}sce+LQ-mEP=sVTu}`TEQ; znZ#p`1`A=%*o;G1OmJtY<(gelA|Wh6$8O(}qZsEcJfz8NQ?&L0xSLanU%4&Mfq%qB z(&BAq8_O?rr?gpS{4d4bseCZDJH6Z877on0OXSJnhhNLhy!YdG9(@;$rlvXIYyaAl zbX^Z&o`3~k>Ma~lR!*ZZTZM+}*!IEh{rhOJ|2xV-mRv9o9Pl=EK3*KnImzavGqK@^ z3yI#qu(@rYimg;LI()qv)106%P%V#hEe7$V&7zX#MI9tF&XxCspXpB}8?YN6ipI6B zE4tHHGPcBYgtWjBfs9yQvT68NlK{vu?Fu$eVnwqrU7!;RO!95W@xe?|6;K#~O{Ex^ zwK0kib`r8k^#+w)Y6w@M%Wb&12ALB(!GCX`(1c`<4K~PA3RKyAP+F}{FI$ml;oz5A zGzJjz@x8tzrY#zWIsu9$5gdi9%-Q@_*_u(9?&*l22WTO<9*K&0WKGXhhlI{R_J(zR z^khM|GJrRjjI}k{79JGixE6`IeNqTUUPs{jMEvBywAOOz%eY>9Ez3>a=#wSql<_<| zKmKU5?xA@FT<#xT$QnnR>f_V-cl=9ym&pmf&3BdF91~KVewJyqe1EaGN9W&&$B@5^ zE`1-k>~Ng656hps!2TpF?`GtvZkmF9PX^2cBor~7mDZcsX2$Qu76(KJ$+TRAu+2gu zInTF!pYU`_3ya<%-Vz$>d7rn79U(MUe(wmL=ipZI)t zg~x>)n>(mBN&ZVYwtcN?ByEzW7X*CN`$|_dS~vF5(Zs`o7pSWZD+LGLce*!TGo>rs zOneA0#Jq^JBr7eWnB{1W6a=a>fO9q%)-k3l6!n<>n=|_VY%PXaY8>{*oRhCGYyzH_2aS#D8Q{z7m=2GZ_22)?EorU(Jy8WYtRiU`YqwZO1W;kL-KK z>jzQ?;&jObNvyzhVwT~+GC_R&I$p)SwZXIMwl6=wQW8|E?VP$U`4f~nKEbQ& z%F?kTG_Wl7(Mq~~YNeCWXgoR)SgNm%7~N9v@?J{Oxd|kk8(&S8PM_^g zh>AY1)9&+fNW)R=YEAIr-PU(IZP3G$mda$qNFub@r^kB2I4eEMT_}^@orBVnlh&ds z;uiWa!OeuXM0{Z*B*ChtYbSUiu#oEgCQWOZt`gId1h-coaMt#wbtbhqUE53ycg=un zDU2af1R30FSuWnCX~WMaXv$NF)4uyc;8(JIYlZ~tp$oGpmcBvdopWj>{-PF0MP%yt|gfh*5-Z*YpX!7n@l?5tKch*Cl zZRe5(l5*|u8pMu&9S+EK?eF@(=v(!VM_*-l+cuWN>lSgF0_#sPB`p0*DrcxmwN@{h zfWA+{_>{hW4&^AKpHuy6Gk_U)hHEI<@h5cWISX9T5?B!|&?rj2(Z3&nr5o>g8iLh6 zxP2Wm*3FN#cjFuHUaF__A5PcGwb?dD+N7(+in*MGE*CSq=i;WDHI*;DEI;a(&(=Py zhkThzrk+&p@$v>l96L>F(i8lgN*&<#n|dR{P;rv5iL+~-_Ez7pN)yu49@Nlp79gko zU|;bvPkO1c@#-%Lfi>I_8SrpiUdL60P;#(OcAOw&A3J>^>1vHB-i^rBs_vW)RNsy{ z-!ZL24i{UtGqUr8t+3JdC0BPk3Kpx*xo)8{!gVM_!<2(Vu76(yYfIZx(vW^pENX|< z5DKyuPIzK=^`}R4Vr%7LAgx9N@h`eZOSa&-i99pRtuN1OJfO>kVqQRpXas28Lhrr; zG~BF7a@U@jaTu}adUuCJs0u9vUw3Pe_J#Vx%TKgM)poQs-M1xS9fol2IX$-XQMJ|f zLG9u}uzc1hpeAIHZ~b1|osJowe`x7y+%eFhx`3`FM16f;XwGA@%?b*76^d7QcGywg z_h7m2CGXW>RH=l(Le(-`V?`*4{x}FqZYGbA&S4)@&&Kg-8AgSmZKOrWf0xHN3vRU* zgj412wbBO4(GiwwkN#ZGQA5r0vFhRZLyg#bNT!TKib%e*SzS1~Sb2WBd~!KoKD}~W zs~R0>a^II@0r3Ih9C6RdH)_1CH9Ov_HU!ho{oU+4MyvZ>y)Ap#ui$hcYuFRR&*gn2 zL?6Rcv;_TS3%``@rB1b+nw8b@xR<`OmaEU1LE`ajN{iZ}R>#n@h>YFxm*j{HZvc3T z*bivjD4@+s>pcPt6E)rx%g@E7${d{E>!~DH--Ht<$*9O$%nZtX+RUOvBs?Nl8U=NX z7e@j$bYPss_bi_)tV)=*#M$+<`fhGjg>5s~mOx#e(H+GG6=p?n0*y7tX=T z)E(R7A7<>q1zfT%WIpYW5O6h|M(L!nT`R{)0g2{YXrb7Uv>E)p?*t06Ta*2v;&5TR zOZ1bho*I-s6H@Vtv^Rq)`dn7X?eYuAlT^9bhysf86KJ4#%AQ`h?W^XrRkRQkmJwOu zxW2I04Y`}`h$ORLH1B^T;EAC@XPJwYNN3}l@S)SW$lew$i9ddtaEwBI>`M$f)9e$N zJN5Zks;>}oZ1dK-IE(L3B3!(KKEmS=7}dt~u$l5%NmEOp6$JzB+nnID!dJIUH}aHG zF;%N-iS5U+4kI^KbDVjg?Akn(Aep|7c1Y9hDffRzbCu8HxMzKiG45s{69)1rvN8#2 z15uv}Ya^p8p9zQ|Sb0BH=9;PBuw#j9!nL^HKkB}>x5fvWfg~&&a#Ks`rNkDn*1GUa zclBi`=o~~(goVqyNZRZEb+lP4Cm4R~yqe|>0-eF&UE@tP?O>D{8K4fM!;&mrj)}Ml zZrGJ+>q1i78$9}c|6*wY$v6ccs&*HprwKODRRrxd2?RN$&!e_8^-lZjh>;|U?Q;oo z9`t0)Z9yUmdKf&ye-V@_e$qw@uT?4|WF=b;HfTVPM_o87F}`#||LkDho?H~8*U#uR zvhbhs4ixA~QGaiF7`=Rby~dVxHwB3fv%Od}?MU+y|9nX!nHZOR_wg5`jrC-p6xCue z?;z1^3pCL1h#q7OT;1YeLbC~9a9SCE!fxe9g*MUPd6Odd2fZNC*1bAO%o)hB<U_GuK$f4j~l!tUh;nbyu86i}~z9Q|@_5@=~CZFI5k<7MDG@tGrqC(9OxOPBA)N zj#1JIo0?!d>0}--vv*n|HnK>uaeFM(p~3*S*i!J5NDeKY!`&{8_N_)jKsU{-c2)k5 zTB`OIRab{8$S0mRdeZ1=358#3vZs$81`PFA*yJv6nN3YZtM(KR&FLS!a-Gt2S(1Dm zdSUv7+xW4CI`8Xi@t zSYFolp2DiO{Wu;C`sc^9@wVIz^jxjFR6K*6 zZXCLRoX?kT877KX>C;sf#lJ!;m9v_#{YNiqqAo3zuY*yKg*pGZCKB1Gddvs;*#N{@ z)&z?S$am;eUk+sL3PIoAGF?yRLIo?Wo0*Gnn7_@G%$?qEM#rSoL$*w#=!=F&!D)l8JsX>-&jmvW>t02j&`Q$$h& zppOQOsaAm_>Lk0)Cl1$o)nUB;`Cl|uOuLAz#?lD2aGpWpI|?r)tZK))_=P%KVx}1? z`VO*|ZP{H&fk1)m7Z%o)hHop~fqb_RF;buVkWg?NxTW?2Ns)*@4X5W{21m^<_sks* z*Q>cwbn!@ErQY9>e78C*VjdBjv&4$l=hZz||7Eq{eB>1!?%oN8XY$)fdOh}XWIm&r zE+k=V>YBvwJV&*`Z>_WI=}pk8z5W7l;OHGEBs%PDnJlG*xx@D6{| z{4`UZv@9L>ycad$B*`AC=gf$L*xda0|L=7NcYA83_d%?tSmnh0ZTz8%?5;0o2W59@ zbvqyKpm&eHC~Kk{!I@ntmpVOWwY}un7hOSve$MBvVL3@wNKA0^J**oaHV>CZb|zZM zfwG%FXr|hS>i+8c&#>lP9N{`;MnahcQUS&57H~=VSyz^KX+4rjKe`Dc{<&tk4THRs zyt5Q5;F!{2)pS~Y4PoV}e2-{Ii?ZLl5@XsIDmrXObh{FL$k8CPT7n0J$^_+rC0J3< zPp_2T?`hr)mk8JQp-!CleBuEE1{BbcQ#S7R9YdL}xuIkOKlC*){o;fAgubk@?lWEz z2YL^r&H9h3J^gu)#(OkYeA0lE&tiQ^gey5Psy2LE3kVspV`=*`7k07QXssRFrH|c_ zKe~`7mVmPy!jhWttj#rl-C|@UdFkK(EU;BXFQ2U#oCKl~`)D7&j5I)yQ2|YNBUj@_a@Abhvw|s5<6I{zY2B}`%Bl_~k;IRI=~{-< zGY(1W1RLAW+<}9fohc5|c*9~lraKUr|8o}v3sGJ|3SFhKky>0GWy^ZvbV}s7I#d*% zX9-MafXff&=%xgVvBaOx3%or$myEOO)1N$R*rP3a_)xQXhRy-v{3wJI7C&-Sdhy!q@i5=}0PV6;ii zt%ez{WZmY(i3jrn0fO`sbZe{c#RMU6-C#p}?zeU|>C1;kXc&4F)AEx4)K?v=pspy- zz6T^!=uFG-kaw_(iz|b^#;nTJ0q2e?|>4qT;2~^!$>|BraE^C7Qs(e z;=)wlF412*+o)7#oipclbvD0!m$T%p?Sx_Dp*)$){}E(m%Rxy6wN~@~XY&vE1VN<> z9oD2r{vJBW6kwueJ&k+DXWxb3xR+$WxA{@YC~9a?JpW;%E%*=$BXkI0pdbzM?9??h z+(J~tj1MIvBfjCCY2&7uua}*U)$`jh$f|xAta;< zf5#{%xM}btd+bhX;wB~NK!CWo?DLWE6|l&pBcSGh4e@M0<0LEc`7oVZFNx%KkuO<< zF)sW}HJC)v2JefqksDUCcxXp9~2CSaG5c5E18quSLl*_xJ!_o3Enq2M@Hyr z-nPVFPT)CWT*H8;Ho5ek@&3XR)a1ORA8IyI>)5GAQ zfG00!5}08$aRH;Q@kvfx*6K)gh5)AfzJ=Pq$ZGz zqy6Xn1#tNmjbl}&Al1HVie8V!(1zqB!*;szVKnVlZC$y6-9d6sL%;or?2wrDaA>MfV=lV%%0v@Oum8L{gs|maNLLTV zqe!R6fQFq}h8k0YQx=^JEB%T3vky*zJ=<;=}o1udJ zesx>CMzZP#?$Y51VPJZZRpC$&OE1q{)gZ%zikC^l0XC0ds-Q0x#8rVpX4Sd?fj>1| ztEAxKzN``^6`fUvsCZdon?@78xM4R=ZYfB$#RmR2XG0a##~EeMW-cx3vI%|1DukDz zkbTLOxwwu=ACx`~ld-<;=uOfX;y~YNxZq^=zlUVP+jB1^lgKum^P2u?g70)fxHX($ z1N2#Pnx`k&lnBQc`f54*oNv`~rQeKDTu$#X)QA9|>ZKdc!z?=%21A2M&1Gbmb#;_o zsBE1|bQyV$v=sgbU;6o+h*Q_Aw7lZ4#qjR5Eh$2t|6K0+La4%&G%p{nuCd#o(y~k0 zVSb}i;38q(WY?9Jb1GuUk7BFMPw4{Yjvf9@XB>7;pKJ6K#RlEZc5{wwd&=9IBSuya zV2$pCz6?<~DGmQg`;wA1ws`72kCI$iTm91b7o`sIvqF=s9SL;|Ei~2h1Df>E`hEkG z)GmP$d?KBIoa4{QHj3iOmJm~Lo2W;3WZx_7IF#+a+ieQEhux;K#UQteOsQ;qsLLqG z5ubIapB`G7>fX2&Gy095{czUjIJQNPa7y~osOdcN1S3XO$<%A`_s$S#ugGMygycNs z$k2|9?-xb`_WJ?@gBCV)%qwT;zvqYx@{``;{aB!;;dJ>KR-MKw*W^`M7nnybXt4Ma zkpVhIGAOJzi6|^KhJog47YzKx5zVfE3y{DSlgwAEA}@rCc{}^uPk~FZ$~H5-TGHdZ zxwX%6fFwf*kneBI%#N12tGUEUs@&l>Z+KFZ1%Ow{Y*jMB=VOl^SE-)*)rVW%QfQl^8zIw6buxBG^;`qI>w*6 z;hvn}Ljxe;q3XrWr>(L!Ha`dVz*b}S-H&l+cBuN9S~6J0)^_PrZKd*G)q`9qH66njY{ zGFG2lC4pl8Ke{3KClFmPUEQ%Wts}}TL9UTt#h%H;nYIs~P}PN0DcwGi28IU_;MLrK zxvG*h%$J^YI1JXS^`TPb=P2ZN6e{KUGbB zMchzh&cFSuCr11_lS)?(z>?@{kF&<+=f>0-u*#xCE%Sqk_M?mBcts@$Yvq%s6;BLBm$JB4mNua>gw?pgOy zy7F@35|T~sagA^JUYXrI6P z({iBz`MXFcY%9U~><#3sk#uL$nE=~W|F|9MhUdP9>36wN@0aFy`4?p;o44cL)5oK9#I(5?C~D#2>H3kh`OrGngdjhn$>GW5 z&6xUsd!QM^1oEpnqRBf`9+zm$iedC*Abw$9 zvcebU2kd$#_q%}%{>1*Kbt=@*#4qTzf$Zj8B^a5fFrIIFTQ0XR=O}p|#_GO@{`0}v zN|6Gg!8jAyo6$WT4>B_>5!0l0Cxpm`naHnkGhamNr$n|8)K@hUU{zqM~VyrE*Uq0 z;_W8%HW8Jh^f2cl0mc=X<)&Gm)&d39mYSHJCHdTAB#gWBK`d+t#l}`Ik+qn&`nvcn zMmvci>|Ry!v`}Xq3|7db4m$js>+QP}Bt37YOyC~G^hAT9Iz%kDP~ZLN z>jrx`+#wNy@Aiu7`jMS87-%)-%w9HG=%D*(RmlqQ^kBvjwn%6~WCv%cIdl z!C5rJbrvaYep3WK+^_%Z=&d5}3Xf8&t3|S2E9lgIu2-ra7RGa?B&B__bkCA0-HyaJ z+IcIPWY4l=<4N_f;ski4$_n}y`M_-*-iE7rA3l&$b@f%+BW3+-Dgv_L@(-ZR9ivX> zecs+TPrd^FVGpYxLAjL5ChT)x&=>UH@Ju0ayNPnwd7nbh?4a9J?b9P#Y8zFAP^*Mi z&!F-c2%9;Xltywtaf~RnAF1U`TdqP<0<2r|G@q$0X5Kc5n<$%WCQT}IZ#j*G#b)1a zPtb2p=V66gn%Lk)<=3m)mrf|&)luM+qGGz~<7K?XW5JlGGyyVIGl7(lX!8=h=|AT_ zmFFm3^a`@tr2S`o3KkKp$|(F(0gi47RSagreZ}n}&wFqfsF~xno0TLTO8?a5R0YY@ z-5?L@l&s}M+LZg@L{Py$Bn(IT+O_~}tMZO=_zD(X^y>M3d9pH<9=69E25fx3vVGWN zRYh5r%C|D8F|*zTnPkz+4{#P)Ugz&u54l5SI8qVlZUSadC`27k!UvqRCz@r49|i`curUV*{Hvfp;8HeB3myR z$Xps{>-xadlvRHVG`AqHpMrff`*KyTD+#)b)(ZVJ2FQc}clQc{S;>(+*@jQ`_F8SpzXvqF8YNDpO zis*z_@cj4+_oysnOZkWE@<^DGd=`Iip^1b5(a<+3R@J}ufNJOOd+KxRX`5lZRa7B^ zB1yr}K_>+gvCt}<^`B~0)X9zZ#@-|F!R@fpbmdI3vprm`^t2nRj$N{=Kgu%{8XC8T zv9H+k`8VW9{T#}EKjQU`cFu2aZ0z+5UnV7;yK{lYl|rs;oJ3Co+eq35WR7B3>2*5X z12#FayL>GuV|*;?c3DUp6r-*3@O!K+G>ew;T*Srd}97i?%h=CPVW{PSmQKISaEsL_HU&y zM6wHXxlG`bH1uJ*CBh0OB4?YXqb(UbAB|e zn~&7~Q$@MU%7}0^|3m&J1gj(2gPx?G0ONa2CS|vC9m8obtx9^6PE=Q#Q@$|zsZpz= zMwUJ?2XxM|mlEc23_V?GK zKn(@>#f|}bUw>v-LN_b1QVWYpyOKCuiJNt@k*is)dnM!Bel_FGqTbro#H1_n!+xr? z9@k=sh6}bQXE8Ys#L6e)04Y9E^HD4mT{2Gd6*d~Qf;BgMNB-kxx+At&9`sJcG|eZ< zB4;DTN8fp93PZs3wzF&RUBRICnBz7#9w@m;zPf0*#7=RvNhhB8=FvD|rwIg$3;t9=wOFaY-oTE>a4pCI?my_Q15b>S_hp?pDfPC%u zLZjtt0UkeP?=H`CwL|xNQknxYRRCN*MuFhTDi>Mdn0)3=dN`b6TQwGDbgnhvW%-Y` zpl0K*Wtu$<`M-l`ashYAYzQVtSao?B>$&CXM*J?5Qs(j%{x*Q{UvvNto%#HVJ0y9d zJ$<&qdglC>pj>Bz5CKM1%T9d$$qq4E-PMz42ZHm%;{o$gxLl{tcwsO!J1{7HJv0OdRN2yl)*xjZCD@pD`gAQ#N<(Qpb_E{8f7bSt@J&RKBTtf#M5_;zp-p{*V7*(PG z>~BXi>i#u(hwGOHVNvQ)Gz`xSbom{1&}`jlpwq6{8mWCP@25qD(t?0k;)e%Tad8+4 z2n)9wRB8;c)TLV~a4(GaTN(&S*0}YIL-f4%EH5Af!J%|$03wz7*Y@DBa4$r^m;!M` zBHy~_7!^JQ;UwLgFSoXkh-%|e(arfiqEJmFRca$QR%g}3V{rre(-IZdU3LhA9ZxHv zC57Od3C*8*&@LUr;P}Vfc`&pUg7iIqv&?02EIjpq->lkeGU;x4Sw4%#VyBDGb;M7+ zYX};lL$KE=!NOZ1ue|3R1KaNL!>^a2GQB5EqO}4W{Wr@#r+2ac7h>^D{GT|y_@^7K z6!HYy@np)<#-W;Js$5Rzjz~`M4sR{29Ee) zu$U>4Y@CE0a_kh3=a~{mp~=MmfX9;{b?zksQ(G!N^3s>01Dk2&2@)yqK2AH}z z7pB(CJNh&chbQ_Yw#5AM#Uw1&p9x75WE^ga=l}1OIMysL#mMS@b7pcTN&tic1lRD> zAEonVk2+BhVk4!E(WK9)NOXZE(p(~+F(5as6S6~{G&e*y0V+bBL=k#3_E{IUe!HOoM83QJ-P>1k$SYl7%b*W zF$R1a3qYJQ4Wuq+5|Ah7nRw>;CkTP5iW(CLBnpIP2v`C}(uwkW$^4U(9QeqU%g&3# zy;(wrzx_IB=p(O@{43|W%r)`6;3t>sJPD7J&&6P1n8*#^toW(Hys4Oo$A)wo7X|NE z%c-6w0xS|(cqLCyLMA6kMVtR23{E0`3Z}*MI0#R(~2!i@O>aR2ysb?J($XQ zc<{}!cqoCsRH}F#_rAk)Yo6Ibh}m9uIut}=py_BJt9HS8Q605@&W_`YPNE9T)J9WO zwos{xG*qoAs-n$-TrMzJ2GOK6iNqcW4%;rY3Q@`Ak-x0w`g(J)|GSvrJL;ZG0k`a> zK3Z~Y|ZQ>MP-(1IbtaRKHwVNd!m z^&inDd4S9m1MEKS$#>|dYSo3|*N22gq2+>PH~5I%XVVUC>RW}fx^NW`cf%Oq0<235 zQB0~*n^bgsG#X?(3eMN%9~hnPU&mebmK7Y=lTmpeUU%qey)=FMYbTFtzMJ!P`@K3| ze;5?aIH3DmHIWcdpfj7b|J}Yb;KEF9|EERmx&k#3(tEx=<9nvENSzvVxUWEJ>xzr` zNo!NIDNu;3P9Rd(u)CS;&50rqbzBvJsK0ZzN7Pf06`0kHW#6MG5>y49B983df^!;s z`v_J7ndN2$LyEj9Qr1secpd(cily}{yT-b}FrWRx{T);k!Yp3*;8z^HGXCRdzh=dR zGp0)B>1Se&us>BDYTA1N@>%XJI>q3OC|6p+i-$HXwdqK zi^Qg0trH9JoyrK$iuv`kkMT-8XN1EEd*-hK$JvZiBJbrs(1pEChg6@kk6`pOK{`5t z-82{FPsR4!1##Aih?b2umz98t1kvHE*3occ0}k5BG|J=_Kb1dC(Si1$>>UTULPb_h zYErU;5a0?RILOix)--hh{jpd)TmN@*OA1L#?18Wt2D6mot; zz+wy*>LF@LDK)2>e3Ru-To~VY@EcMK>H8?0XE+>_c8fVCG6-=v&NG41YujNFp^czW zsF5fnD)%9Xh^-XSWW(o1<9T`O%0Klqy%n|&=p?R#7j;6Zrwv|_d;ve$mN8+TXzUM{ zE;w`T4>-f~>7!2;ZhAOAf?97Qu0Oe%py6FIFcF9&2Z8me8Voc-Z>v!fC z12@W`ZF4gWv>JC8vUz?V6Ji;mG-I${u}Q%P3KV4)Q2vPMEW~#_iblRiHl3Z!>|_&5%^R%fzDhi2qp?J7-BCGfPo~K2QTrO z=`-pbr>WJ%#_KN#*)3cejne|`!V7fiZ01lreS2&>vf!aL%+1U-R%aiRJ#}4lkh6R> z>gf~xmPV7(0OUdr+&XjkZilmv%A#Eg9E3A4K8his-uVtLtMa zTDO+zVy;c9?(i?VVupf;hl6Ry-1X)=bdsx~dK6 z5~(Q_QjTUmAwsYMNx8Fd!xXjtf@&rf@`h5hcOxPIwzHFFnwb zL@f#X#8>4~YY#4Scw73OMMV!n!jqH307*c$zxiJOrPN9>E9=nE#N=ato+~3tI3t|V zAulM2R|}@q&V42of-gl>hJZok$-RvOuiGe8U~Sd*dcf!{=TY7Y-coq-LG8tz@HQ?b zZ3+`osC*=M=FFnWtACy&l(6ZisPMHqXz;ZG$Y}VD*b(PZLioo+p>ow1beUJrtcu@u zeOhX}Ae1Xwd958#+nYnqzbcQh@UHjng=fP4!8keC|DWI{puvy3WS2N0{HQCp_~fZZ ztgI21bwp+GLEv+&b1>p#Fh}z~`3CC-(EN>=<4g)T@H&YeaC{YNq7r}mCEXDF%VKx> z$+V}^z(8r-q3ayNWL~-bOZJf3l$NKHK)J3iiKNSw3td*5>)+eD-E2{NbWow&A5w?l z-E^HtZN{bb?pZOK`ZsT)2sl{|j^O|Q|NdkLIm&>`>^ZDD0-W_e@fTFP zkLWM}pdjue?ujfR#8ovD`1mh7=73e=pQ4Ysgs4>6H%3v_9vM7L1-9z_4gc(g&9lhwv?G z1bMV3BdQ|OM~!*`OOFSiz3O3XO^rd zM~e3MEX^;(E0*<00wg_lr!CuZ#>~auK}&mbawbA6u(AV%e<0}k!a@l33cl|0&6T4iF*W-L~ zdc3@x-E>%$h_5Cph}HN+BBX#~hVU)11RJq~7|!;w5n@~LAdkg1|AU3J9`}|lR^$&3 zP2=vN6&@r{M7A}Q>~R*L%-!Ih-)peNa$^1rWMqXhD2fIMelef1m@~qeWD8l$m_K9Z zT_II?HzYXEIp5RZnV;UEa+Kg8TnFV5ssJS5KOAlHO>;Ol@ED|NMNxQyiYX-!qYN6m zt|>XWQSVs4-XSw`HrL`T7~tG;?E=~+f=cy8y9(c&85B0PG~=;=9I3x93>RNvmDUf)zOX0%c-{_$(pAIygbH38L9;nbK?@&p-yi?gJ`M}Rb#U*WM> zay%uaS_-z&yPG!EDmjAt-ssdY0eONv{L4oWfx(&@8g|-wCM+fbQ)C!A)%(7HqpSrV z(gvO&X5`60VW9&{b+MP?03T8c8SD}j@c!sOJbA<%7Eaqcac^=q5>F7q%tCto?(R38rF&- z0Rs^;7w|BLGr|eKi92^D6caaYh`1^&y;(06Up`?4Idtg4dOJ(xF6*^E`DAPQ*2|Y7 zeMke?FzSk6b#Mpeiow)p8Y*?;qM5}Z67Q0bqK!<)zaCYDPq|10A-Voj5-7VhS`Qd6 zZg(|6Zbfh_oxv@4FY$H_7K@R!V(!&CC+rXaGn{bZAVP2>;+13S*Rjir&w` z)FFveDyFcXeSkt4Cjk^HViTpg)nroB)!M7pW{PrBspmnKXFBsGA?*!<<8lZZ+7SRK zT#NB0la8*Fr8?FprPyk{99UyQ8$k{s5h)Qo2Bqzq9aie|fPSZZVD_>S4Z%TBK==|V zfFFibK$M)v8XJ#jw{tHe?Zf7E8j^upT@MDJqDI54st-LIatTqSsL?R1>T`mG!8Y4v zz=VUBYm5@B3q4fbk1?McVt=>WwJisG#8i8`wbdKFLu!)r4Db*WvcC}ya8&+0D}5)( zO_(IIPfH00E4AbwT@3{VZEYPLZJsA31)T2OlvL2o*>^#~tT(0lM=ngog?*gvJG*I` zAp~Z_iwG_bP3Fv*Jgj(}h4Dt8AFY0`{SaO* z&kZ(DEh=(29zQN2nfDbFNF}|m;~-;DG8pA>SZ0qJl#DFRB1E+rp2IsIUH~4cFI<|} z=1=$$MM333Dpg6P4qrO{Ycj{hN&fZHu_2QcSf`W*#Gb+JmdrAVLhY=B+m-@)%UA?f z$LeFzXy0_0rcd|T1jm0Yj9F;AIg9Mw@2kiH+P3!K@u`9+LVt-IprwOED<673Vm^ES z5+Yj;FPR~<5)(%%>!QSNGD}IkqlwnX+p4--QdU9MJll zbx7Xts&*`iqf)0$qf*&WDr@sv7)MBQmHB~1HPk>3M!vnl(l?kMP+40-S^e}G6T7? zl5D6X8-^RmSdSCO&%E9iWO4*;dwoWYG-KyBsf6s&n1?tvTL(EB2)WZmtX%-Isw-j; zsj6!vwKa*$BiEp~t;vA{w-=J1*==9`ud-Gv9ZhY2mZmm`672o-Wbz$cEvAy`m<(+> zbB<96!Yu_e&@U3R4k#k>LPLF$1sMVptTZ#uodMPhpFxS^;={ z+mC{gW=7=PW!W`@PngywhV7Yc zue9xQmg{BNRBk^9r^Y=M`~5?h+MXK6At0+R(E{570T8o6H?wO)-jm)#*WUC!hXxEc zZ${PGY}v=8;f!#UV@kGIT4ScYf z;K--65_+gqBfn?9tq%oG&1!B=n7_7XH>VIHXE@BN4r3>=!_))^C`)>9oTSt#%c>K5 z6=r>(xyh9kgjmdggX@@g@*JtvGjJaHlRQEGW}fNy9B^JQ4C<=(1qu4SVjqygtwBj{xU16Xc-?k zv6G3!mU5X{V+$(X;PW4j^>ihX7{Is#P^qaZx0AvpX52?2QO{Ip6+(cEX%0sk^Y?kx z6q$lNK~^YgPPDVhj$OM}dMm@t=5Qrh7{Whi&YBAgV>a-fw5BfHR*F!_kx?WHQo3zX z>YOLM?$kxU|K9K2&3!rt5bjHgiX<;znC8DBb>Z(jd`gyFg6~LbY=CVgp(qUJAKEBc#h?hQYen!6eZd*AC zDV?V#XmVtKnx!ql`*!G8ZC{w$`h*ME4YmUugo1Q{hAx{sJwHitFgyXc`0KtcRB5k{ z+2KFtf2;G4CxjnVB%#&O^O^LD)eR;Jyg0=isREFlUZR8F`wP0N!Apx;&q0?i2EIR6 z+3LK=6J&P{7UN`-*-i|$#yyq={9~ca309yowgF@d2Hu3r92fWWxBK54Qk9}CAvN*m zqYAS`%GAh5(GTwb_B1YzjA|6ye34O1bA?tP^hOc>C=Wrs4_1c;0dG_(_C#MoGB?Zz zig>tXb9cqq7i!*h=E}7TgmuDRxgj~(An)CEb=S3*2QB`ZI9+b34c%{_GGoRa95FyA z!D6Y2+on$ke~$UH#~6$;b`-x_8(1Il{yb%%xa820$M%T&#(*O4cTt$L{m`Ly>QR)A z!II;A3|JhLmn}_Cm;PXYa1w*hQZg1pM?-*?#eD*05jfDoqJ>3;8l=c^V8r*3ug_NB zY9P->hm)_zXn}%Cb)QU|o9d*>V%Y#n@GrQ zZOtVR-QWT}P&0AQp3TkJ2d?|#i*;G8*zLxqM#FZ1wD$CZL>~W4BG2tz)rwe3&!cR4 zIMl>aN(QJZ{kLB7JA|?#PnWE=dTWr7^+POn2B%?J0wR`HoltgI*qAk0ou^wtLEe#j zHJ5~>T_kyo+yqrl{_G{eRfW&M&|0JQ?=?*LPG?eBNA~*ZY+4JHGm= z_dw|J2E3Meh*ddG_FaGcL98cSh@oTrjsC2LbEL!KbHD0Co6dO)&u+C_-I7Gdc!5eK1#@j=suJpY~t3ZpXsHb@{WTPgw&QV<+8@KM8IvMwSwfwIGw(1^1U zFlTaK9lgZQl#|Xaj--{;<+Q`B-LXz0S=S_)D*0FA>(}I(>S~e%E^>vs)0`mtLU3b( z#+;?>)WN4F=Cr$arP2Cm>D_ymndb3}&_ep)7;v5LH!`3b}FCaN5ZD$i_#A5=fW27!2!`bsi!*4P=qWzfF(|H%v=T{_>WV zDYaUqPws;D(Oe#hVPxE=KAWrUwcrn;OwTPE(dkBN-wRqaVs!+P$ejwumwK|^kfhgY z^}4<3brmpXB(KvpW5~X`$Dg#IMe*f3`+TF*)1w;-%5D+SX*&tH{?>(rriJL7K8iL4 z3taNg2}})+3RY)M%egIZw1cw8->0#Z8% zheigg1_twT#}|R~y(T!+M~^3!Gttu+qhIyyqu^Ci75+K3GN|ljqzW1@u?OUa6jf&c zji|5BAc0oeqLZR%sWQrMC{>DcEPZ>M%9<pG2RWu}{QWRxgWAypu2F z+Da2Ck|cMpL#Bk zuxBaDwCzn#-wTocxH4wh`%a;I=1jM+CohlnOt_G5m0I)r$`C;?$_`&8b$9BoJ1P+=S)9kH6&0Zk0F$aY1KYqbp-m__SQ&l&M*G72g11$hMa?r* zRt0T2me%8TxvYp)yKwgaCDvE6kW)HSbOOXhIvX}{Kv)88f`Y!jtG2baIyes52F}xK zrbbg(LJHt4O}(mtbRvG-)8jFYFZYAn3z%gOry0m3&U?}6f24ErzOIC8AMVA>EsR}3 zWm9ElQ&$ic6l3;2tOakSrcR?ndvJ^cXg7kKja}6?qo&8rZ0itdn_`_IX>wP& z!yHP21Jr$Va2)d&w6Yzp$#LYhnax(W$lcT=vJ;BaYBskS2-s?4S1*{)Q2EfNZ)niV zBJhUKcjFF4%%oGl4hg%^2AwJ)ir?f#`gT!o2L~+%1h;PWhuKn0N@W7W!T17In4k-Z z3iJycm!K@aW3H59+9sA+zmxzSgU+;W%Pe0RLzROr!Sm-0K6=3+iCZJ()R>hOQwCel zK%DZmb4y697B~~DVUs+#?G+RGZ%Gw-U$5fEl2Qa`8cVuXNwLA>3rw{D}gg*Qmj@IWpEooWNVeDSE0|tggYSKSg@OA96_aZt> z-QS;tibm&%CA>}dkbpEJgxQaP7QC``=;slwSy)^Mn+#C1aP$26Md z&CcECp?Or54HM_2j60~LKZL?Mf{5~ZPqVJ-=o2Lj$Hl=gP~7(Bj^==NiSqRBq?Fj7 z4bDXD$UR1NNCP5Xw+qI~tpO;D51?e@@N66>!y{C2FrKF`&kj(~XtI}1SEFE%6_W7TCa$Oo9L&&_MTlhd?$AX2-w= zY>h+~ZMiW|B4Rj~7nh_|&loQ6O`Bv)0yGeELx|8S1du{D2Yy3Q)27f7`h|Kkh>xu= zL*oyY2(=D%yPv%SXt35zo>IO{2VIbUo41DWy_SZH^+Uf!&_9+V;Gmg$=>4n&REKXs z6xgR!{qhS$ImFojs**)jq~y?2Z9LehL3z9*Lq}Qcmy+F^Rh0Z?>(xQCgVgJnC1l5fX4z7k4#@^Ra`!-%9p9SgME$x1-N`MOTsn`v)!8_$A40hOv& zx5I^((N#^qCzPM6NI?Fvv_+!$J(PRq=C*0JrYVYisCG}q`V>aqP3OR z=G{!_gVarr5Q3Jfq!9cJ!L6GkuSY)XYxwWp4A$_l*WT^5K#zBasHz6aN}>%Ln(Z&Q z3@fbXbZ202#5!_z;1A$b2_LnQ(r#XScZBm{V@l0wuM$K6>zhq~USIK(NHebJrxjiE zmNzy%t~m_hH@#t5AVqjy0r6Uus`oM7fXcVSJzh5F$K6fTD~{`vdXx0yJHmL>x;Ei~($D<|-q;vY`NDHPG z8(I?DbA9C!p)mN&3>HPtJ;&BKd+m zY;IHZ7nHEdYpVBXEp2`|3QOal_l00T3W}4WaDI(mp$!aHC1>H5=Vr#`WaQ}E#kS9Od8K!7c2+wR2_R~$>2ZT!cmqQsGo#FIyCQw|_FTd`x-{Nt9lL9M#kV?g8 zQFc6aG^Dkg3eZ@T>IqW25Rt2$+4-a9HbM)b&3r(#9#M$C-xc^N^07d4BYf~%_CkdB zB{t@8XN)h&Pz3Ut;(Rhb8vt!vd(TTi*1MQ-U$gG8Jt|dKak7T?ac_MVh_=V9CjVep zhqRO2UR49_D~5;x%JP^eM7XA|LYu03zrJ-RMYxN%OGs&k4y|!jpJDA-QO&9Lw6R+& zt01;=TGy9Q-Lb;a$z-5TLh4r?))^~0@Hhpmq^4Ko4??O{2kOMv8pEY}ovy7dg7u}a z|9y+{-DhWSGQycivBKTZP#q|aJVQ|Ta@&*ovv(Hdeg7?7B#hKG`2)m~^}PMEzM3(t z^;?vU^@J4qn6wW1_H>{EOx%(iWiC|JQt>E(=#twWwjdN8#HRwGX4a<%MTgI;q7Y}E zps+7Rcn1NW)6$ZICphr_6w0x@yu?bc#5`cZ@R5aAScO}^9#=)7T&_>p%tbjR)RLT` z+LH_Ex9AH`2C)IuA4o|Hi`m>{Sr?!Cj#x(qiL@NEjSM)M%89U!jzXNg9JjoqL#3+L zIpB#Db}?0Ihfd{ia6qu_x{iSxNNU(m?~RG45|dWE2+j@)K7Yl)O@kv+ksAZ+;sG~$ zD?wZ?N}wLIY$g`@eUQ1NyUbY;67ACF_#+rYEl}QJqjC zlo(tp`sUAXYYRMHyaMmxQXsceQc=FDucG{UzUQEe>nh>y2jZ-HE6d;;`{dqKDi_D) zsb#(;`q^fiQoZ&nbv*1y@Gc!w@!-NVo@w>ZZVGo{cTfIbRjZ<%8T0=R$M;9p3z$ z_Qhv8yr4fcOsRjF%oMpT8u6U+@7`;P2_FSDH(=u7tyko!np+L z-kvBzbQm3Z;`;PHJKKhYAgh55D|^=AoyggTB|sDimXQGRJIT$(~Pen29pJdbr#zyAcc|z zn|U^E?L!VH*5FxYC55wN(+T;$TJ7US3G{I}Ew&{>L9mD_3U)0z5qKgvkOF{{&)RxR zJ&=OQ6J&R44G*Z4zg4gI%_X{AM6#o-%wcEMG{X-ALW<7ZMCEbuRNMA^7Vek4%(l#C zylh09%x+oqLrI3Xj>(}0+s-@;ZshMp4bDtSN}zagpENj3LSF(Un3ABXlz0FGdi->@ zIh7({jrLGH0U6)H(T$~WI-#!C$m0=MfWmt`q-Xr*ZU7tLe34=Ul5d(9O4>c|Rv^XS zFZrqE3b#A^^6?JU;Y~sP6D0ohM$AOELA$a&5PNGoNA9>^i7*n;hk%vtCU^&x!AKxk zs!N1sgnT~K{gqhI?)5*h%1g@km0}vEjOF&6FFLYg2gV1dOc6&g6V-{|Cq${$ng4$? z_=rQ%ul*im`T$r%qoNju&v`WX&C^pqzm1|lP7VSyB1Npkab4;K^Ntjq@5vpT(twfr z@}*u?#Q(j#zF(^c39M1a`(#qc*VMS02P;<-SFt;0#Aqa&f}#|5B#3a*USG=@;RH=1 zB85WUjQ|`&Q__1YG`FqhY2|O^ZJZu1sR(-0T_K5>9?we)pI#y9{y#xdF+CiAX8fBy z_XwY!R_TeaEC1{fjZp)%M20zfeT%X7<(QcZDjFjye~OtNQ@Xx=8nbbcVd0}R9#AUB z`WIUJCgD3XA#vhS3&Sg6lyaj9_Ef$eHz0sK+b@b#rRewGKJO5NU^LtFP&Kpl9 zNG!Pm&BFv=bDyr7RSxgT8^C%ZO+b*kM4ccH#Vt|m0(=^ zowypgJ^05$F#FxB!@yO{tFJOssTauR6~rL&;+eh*V@S~(RW5IR(h48n^^)}&%Q92( z4g!cbJXb%DHTce0{#9GDbkBw=sS9y&j*C!mrt6fT@hw)i=Q*776y#}*nUP3`n5f6vg%$%oCUYS6g+3vrStwB^D(9e1itzpVW0z2OB zlkaQL-*)bap8)l=Ayg^~0n4DWR?{*==e(Nb6&3qu{EYT=A8smISiE0I`!{iO@xr1_ z*FOJ!H-&1N>5>vi^ErUy<>C1x#oDB`3KE|i~qG*O%TiY}Wx z_=+$}9g#EUzA)V?XO>QA(rIb#;o$9Um4i?@63Z%>u?UYivaJtkhL%?Qb z3cRG#h4P!X3c-v&lJagpu0iJ}o!R02%M~UXGw1u)>+)Q$eDjk2*nTEyE?V<=jbu&? z6TR|Fj7vjCTfx8U1j5a%dl2JW-@`Yn(~CoWyYIIQ=-wn_GzB}Fg#xjCqCV4#zGU#@ zQH|GZUVKI5hY!`Nf>o^h#Peo*)!6;()LbFEd^yx>yy}p&Jby#$T1=G!*rFw4re@^H zO?g|Z31;#3TV@G%2P~U=c-xQB^KOXjFD2EUJEh=(omBsxgqM|D`iV5~@@4K(zB1tVAiu9Y=r@^?e>9hy zSG!9@>CNp$5$&q2yjWJtuAat2wD>Lf`_wS%5%U6q^vJDe8J&V#v1>_o(%RTtf=hfLyDdi#o+1SB7_AdBUb zS*2cNFJcWh;DCTEBPsah6if`~LfzKoWP$7ePM(X;UY_5~llWWoOvoRS1?VvWI+@z7 zE;?~q;&cnAcOY=@%$3bdn%;NMkFoA$({70-X`(5&_wBE8jLX|}>QKM=eim%9l!I+0 zro`}C<1rj+*}LH3c0eM%QtpU2N#YDfU|Ci(@P?xAPD5K;hoib}*{TF-LxcKw?o4I= zxEi8Fh$1M^>ejEqHP=WM5p{~C+k(Iu^*oN5??vWG!1h`8lzg~nw;O(LP{2U~x!uGlIin)IckMke*CDQw_+BPymc^Q*LASIOVCeFybJ^1nxo$ z2*LXV@!fBRDVzFpPJ!Zk-SPiZhU;EgSzguYZWI7_Qhkn^IW^1jb;*s5T3vP5I*>H9 zX1STOJB-R?ar!dK-WW4!#+#;(!vaOOuDX0vhJ+a#7pOFu+y7=--UbA;M*03bBjldX zRZuJcvTJ>Hp)RHs-!@>CRPs@`^GQpVI+`i#Avd(166;{5=qsxI4Fyqi&?t8nc?;F7 zo5L;u45O0nBbO|3jk(N&r`Q%SZD}B`L86k)7~)&VomU_+HRewd#WtHp&D7`Mlv}ZH z0SREzH_MIURi)V|)zmAb8^0kh3XWiCo=t>G4BvIX@c!2+cyyku|MU1S1lB3cG>pQg z8p5>*r;=5j6_bEV;Kvulu*JaWu~n5xp$b;j|HxAmJZ@)pfHcsShk#Vj4l=+&kS6fF zeYDfM#ZCYG8DK&y@l@>}HvNR;vZ`)>lOBXZzPVi`W#s;}Nt@f4M-IsR`p%uNt4bcZ zG4}(`rz9)ZFmnaQ!*sfnO2aI7?}A``3I!+0m+qkfFv=#i&teGxHhc1=5*#HZSRX)u zZC48qqihS*Y)w-KeVjP3l_(6b1FBWNSly07Zd+?_5~*L(->GD>P}~;+&bZ5quBc%f zDWMpgfbu9W7W%yg~I&8nW*? z9v$ot`9RTC3TD@M%@zZQBIDFd&Hh$zh|GhvwkSleeRFPvljag`-6z553CgbdWqjWX}}iM zF8>@Bj^Gd6j_(&lchja?EK`E~leMxSNgD(3tF>$9S8CF7GZ}BIz6lxI#0iay)S9jF z!CVS8jCxDNZx1yMZ}?4|KEs-Q&&(Jz-onb?R-;~iExkJ2g3J-zR56>&0{h$ORavU+RZ5%anVXOgPN!GzwrzTP?%8yJ%T3C}+OQ?9tBWZ1 zgK#y9`LWL;$rI#v5$S@2 zE;YSSwJxclwA!o%1)*tkLZTy`VD54Y{o(x3)J9Tc=qxVT(%M{Y8r#1%rdaCt+K;?G zG({Ggb3Nx`4Kl{k=_5doau+?|{giL0#DccIGQ$9ce%L{qQo1d_WMN9)Z zaS|a${VWC0k=M~n=Nx+W^HrJj&j-2DG?vtD!J?}0i03)@Z7TnS=+pSe_wkQ>p^Nsx zYQ3}I2mSqnqd_e{y<%s4l!xx=W84{MGQ}MP+^GnjQJ8RRD8O)&4K64jE*aE0Un-Ni zIC}^%!rw%Jqyc@6r{sRMd}JqVtikg=!f!@3Z&5Y{)+pNd!kR7=kL~TwkfeH__@s~~ zC@)Z!{`K`x+N_1Ohu-?SIN<~K+CpQR(1#ZchI38$9jl+Lp`rzlRy<>?uik-gI@kJX z;T%~qIa$360a<$?)W0v^>oy?k>s7Hk-~?a4f7u)Z_13PMyp8AY-#@=GuV&XR1C_)6 z*UvW*-VylXCvjVwxN|gURNR(!1eZfOp^my&mE9bMbGJ1uj?&Dfb1T2fv$jT9s#8R5 zA!KBjQM$ydm&1F`L8RB@yf~XDCOwmYO-W&zWyd~B;s*H0E6(s@t42EyGSg>Ti>fJM z^?d$0?~S!L1@o3!x^%WE(orbpYQN23{w9SRmF9rZ+-uRbut-b3L@H)}I{-9uQA&20 zw_;Q5U78i%Lmj2GH}mn~M=AWdlEW6nN4}8rn=@}`JG}FUjMS4e!l6QPs6#oKu@Y4i zzUW2CtP^Lf41@BP`lQ4yisQuHpsH~-P}|A%Q7g;h7pHRL{jClNSEKeTm|Z<`&M`Y5 zKv6X{i>wZ4fe9m@uO?5;Qkg{vXN6}%wA;1MCRC~key#`c>YQMz+Od*?WhOI-7z>}! zI2s8w1nQ;>j*{B4*)OFddqvSJj1}}KFET5p-q|*lU+^=(y`7zb;B?+(bCE$qhBVS) zY>u~{^S%%KLK>XoQFXMP>u^h@paPOMdHMvD=7A3G9c|-n?JAEf?BQ4xZrd8bdte^xIk0Ch3C7J{b%TI|z{{Is0J{=* z$B4Uqf*Iz|gQP%tam_i4M3)5M@NWrw!~K5cz&_GyC zs%H2!P`0Qvt(x5)=`Yz1Bshk6#E}qHz*JgC+v){B**5`=q3vggs60Yp1V2QTe!4Hu zo^=ckK7AS{N8j*E%?PWe?2K|*B=8I~+Pr40ktbHWRvYWB$*u}$P7J*J#i_rI3MMLv z!BO9;C!avz-9IjJEUHTppEh)uA_3}&=JGNKFBKnjH8`Vmjih7GQ@rRzJ^;eWu}M?{ znvsno1kP(%xEnAt*+KK7yZT+O%IY5nXc^;iFj+SAIB*>)2%J|N+aaG`PAI!9SG)2H z+l#25QfsQc1KL&qzP8O8DI4xdM?+*T_>=_kZ(l%|Uw_S0huMA;jRwka3M@w&iTm0G zBqZU~_To6M_l=_#7U!|XT*kfPG%paH2l3%k)jCgrh>%EBzs3p2-Zw6>*#4-d-(E^} z!);_>nFOcSn4blL3G0q5Fri_%lODOI$Bd1ZOq2U>DK%=!TYj$r*Z8G}*Yef#1HgRq zlWy7PNuS4VyuOKqarULG>pI2YarXL0+x1FI+w0tyZohZe7+opr7>v49>u{j0y&0;r zYhCubu8sGSc3U7wX62wZovt=HIiOA*Z8qx+srJndo4YVZ6O;1txp@;kefq#VFNu;w zm(F-Tk=~Mi0+PuKIpv?O+vDioO5CX^kgK6(U7;=KG)6QxvT;!HKIkofaESX~eZ{{a zTFwm)`y5Bv>Xz>=hLuebu*5Ji=LXn`$ieF=oB4WSL&RRBCyDWQpu6#_|M``&KA6mG zV-CR&6)pJPfDL{CA3>@Si~3=>pqjwkA$2feNoOXj1ir;=?HJyoAJHHGLy^>|k)Kar zyXx}QdQBq#EuCA;XaTo5N6|b9fwHiXZE@yy+16FEg(QJjKM@*!V{px8Jmwm z(B&<)+}KBa80O1P2|k5LM9U99NBHf<0CO`U*Lz-=neK@{0Wh7NfD?CU&%ebPbq*aZ z!#M@(byxxJrho;!0G`%+>@b7^+nWeh>8+vJ`%K>Qk7?@bGEcuuKVSYwwx&^kgdPpX zXz^zPV~o>AV?%Cv&ib23#X#;iD_DdODz!O^N{gY8;bk$HT@^lga#9qD=bOjH`0(Ln zWJ*kKO`RV|rX-UBgBSgYS=UleIFOV~A%oUsKHk1@eD0IS5VI-ZY{A)>f~ca}6w)j5 zOY$ocKYbWO7?M**7tkL7bvOEyZzaQb5|X^NZf4jd0Eu3Nn1+@Bs$Dp#N&7wyI8NYQ9RX~+n(FPGCDp`YGafKxDkXtIT??k?UWM}P>QD%i^x|ZHwU-1+^+a8$(~5%rOF;iaAvFY) zgpm-t1a<+(sG!iM^@XaMBc&@I>CcuL>~&IjF`Zh++V9s{I9XGv-7v4)7C+Ba_bc1x z#oM~)T{(5+3FyozWjJScXU;@DNp+5AQvla2yvQb=GlS5MZzGY-bZg~CqXtj2lryX( za?o0&TQa20Q0=7c%n_cmf=OVXMAeN-rk8NGwD^)quIfD!`lI=?Z_c1f>5o>`AFW`B z_Aop=>2S=hb7(zK*pJKsulBEWzWTo^mQ3@^(EVj8NTw}x+5XU4OU9)L7|q$jn|}9- z%tuL9`pB-_ozB~m1EUd_z=GZgmcU-{Ws`B?O-!HY?Zv6R83*UC%VE(!q%@1#g>#^LzPf#z@gkV!ZlnkuLE8@ zw;(ctUVgb027@DC@*i;r_@n?ha4Q;1@YmveNQ#B(g$j}nK2Lr!*LU7k-}v;4ItXVK zAFc!Ax_d$g!Uo>-p8BwijAMz-2~-Sbj<^W3oP)to6U1gLj@o6&(eRenj^%6FjfV z-BzzC);vs63c0$SAO~yzqTer7X`AB ztsUN4o13DflY7XA}X-9W>B2Ot^7Nv6|mk- zTu4PIl(*DF&o{^3ZdyLS=n-oT^}8b`)*r}BsweeT)(rWIj;6U|U$7n>c#i?V?(>^W zo@icCc9u$86WFo2d`4Dz)b#ebfty#9*OboHWtJ^|2HG9V2ox|5QbE_eT4Aj+H$V7L zihs-JEl~ykRK|Iqr!$$noX*yPw-*;2X$VZLdhx1{-pm*f!KFIF^gDaxfFtK=PydjclepF}R80sFGnZ+3| z#bcQdLnCv31AxjB0PL3-r4@Tm+{R}w;woEE=1m9;4kWN%3lTQ_1?f2H3m{THImC1e zy*9^^cbQ=3@hk~};V$L^JJJQGZbG}pBaxEl)%6(mKN_cdtd!uCMuky{lPDjTXhL|J zT5RGLMaI5LnClFMKGY(DB1~PxI{rZ;wf%E&?504q5AWk`htI;>_&EYD>~|WNzLE_j zeB)0gM~=P#bWY2NR{n9L0hY6E$uKhzMS@~kjek2RDI-pM0;Idu$chC*h^senQIkj? zqZi43`>Cm^^QYgyC^A$W+TNkxJihL@f+2oM!uY-RrDDe8c}7Lh<0%M^Oo+FJp5qz$ zkk1ZM)X2~=i{;j$&5B7Z&m@r=p6dZgMuAmw*>@_s>d+yP8i8Y5J>jB9y}-p7pL2;X zoKiDFotjzY-@8K;?y-{B0leLqGUT72_IfB+96|rw96)!&NzfM=@pi|n{4a&{%!ET! zQzI96G*M+`jgUrwrB8l(ehn>;ALNZRHPLc(2{zsJ1y_@DLIeJ;yN@g47F)izoFuS}-)HM1 z-%TB*fO?3Rj8jDEsIzzaSzEKeXBoNsE#I3<2s3c^>;7KwfVH`-m^+oQzs$h;^Uugs zwx2MSTU@r8^ME>lFQ>FToER6myH7 zlDcd8fkfxB-EUO|RQ>4vc7BHx&gTB8o?4({xYMHkAwQ`;0<1#mmAWMt2 z(mg+`vL&4&ZKGh?rU#c{@geO6fyzM7yQRO5RVPEhvgfdlS2yE`1p4mr2| z=&Dv5B$b;{s?zDD8nW#wOYa2x^RCwX|K@u&*y{U;ej2niEF zln^nl%&7URwXMy)<)Ce?_nPaw!2SN+fg;~t-v;Ou1$JNYXBy}^KD6+Forw6uVq$0_ z!%Q@YJ~?z7$)8nRHoY!q8_tLy#v5@hqj94FHUez{BJ}4tq>;Nhe#m410BLmfpq+F! zrJa5F^#SFP6Yloevpd`q6N-tE3B~s!wKjn;mwSXM;?6A*t9qBzz{3bpYE#a1@A)9IFzK=~Y1ma~C*xj8wPFPqJ-+RWxHTdExJiuNCAoipeM zjwgnnEY4~@t(?^w5iQ~2-STW;<&JR1V0Frq)4J&|t`7;(&l4Ed!WRom#>K<&oT_$7 zsm6NU$xlZ11lj5UL~TzE0btAmEoDV)+mrJ_{wO>XH1`_rBq@OB?k3PBAFL<%9> z9LR_4Hj6-R$khSOaHm_kPy`59pc&Gxs6xO0L0HZI@p}|Tz+B@C{LiwF=i)_o$Ln@? zR(sC91-M}UZK!0B+e2AHo_MhaGccU>pgE~|udH!2Q<59dCD(LAGNsuuW5&S1ZfJ9s zLo7nQ`+{$*sIN-jr(_w=>@qI}R7tAl{e#hBjQnmlYzz9sSO2AMRj5w_83gddXAy!s^X<3{>B{>p{ z;PBFg&pWrlsGo8nIt&*wp0VI^dEqg~CQl=n#@Cl|;krDlupfg>Q`+-4u{=$))2;JX z$8S56c?BD+^SYgR3C{p^U#j{3?EXq;9b^*@RXeK9_$XvCD@|~QK;V-cx(Hrtsmi?l zG!H3U92&fya`yv6l|xs+OpfkHT?&H2;VVC%U5Ao7~t3RfWVp6qDSVyQ{zdo zRgoJ6ilkGE1H71PXRl@YlxHm3$*cxA2$rx3S62)OM90u|&5BxKs3txmw#zaANuUQs znevS0&k;mUfJRhwY#V9#a%gjgpEemzx4X^lMvQhI-tdwjVnR7R0X9wk+vkx%_t^_& zW-krit(Z1#jxAmT1HA*}+6f?o??06R%^*2F88U%ox-6Qdiz06UjVxc|h}aX8_{| z;=Z5mH-B-Mk%=Mc6E{!n*fABCQ-;|TG7)RQ*ffIczdVOlno+I%QXpHAT*Vm53}Ov_ zMOYl)B64lSEBSxd|H+7^^W;BE$-KJCc|7vcnRmW_^ZI3n z=!rz4@Qd;iVGO{Tz(o3?WmwCia8rLh=hEG+yS<-%Y?&(yFr(4N&h@)*QSMnS%B|g{ z)R{Ax5OW0Haut<>A-aapvCxLVX%GX^dd^ViMm3_oUnkn5HY(H@$7uAx35%N5Xxy@6 z4%kswgrW}yya^hok@4)nYCehxj8G4Ej@tKgtpql<GAHUD$n7LM+)u<@%xj~mq24@(GBAQU@v9H}Mip-iUNiOiaSIW$>>>SB3RHc} zWFSSF{;4QrJbyey^yzdji(rIco;N(tOhB}X&z?mka#nX5P)cnG%=aKv3FFySx0NiB zjU!dwJhlC{0E?0A;1JpfffTQZeN0OHEuj}BP+u5p8WzP1Zf`#YG!$|}!=8Ln9Oh6QX_~QPEfOX0*!M6<#x1Xw56Si&EeDiHJL_yZ3T5^oHk@Zs0K|NP&* z%MeR)Onqs+f4=gBAnoctGus>Pkba~6M)!>$^PKg@4s`pO7sJAUMDw7vZbiVbO8DZ) z^=*J7usn`$c6b`tzIX1ly*~Q-HQ)7{+sg7ewCske(2>uy>aENwN1=2aHYZQnLkaRW z2EON@>E+&0S%}frs1qmqXHS%tuce!f>-4hlug9zY#x5?J_Ma?LwQ^}*MqmzDl0N*< zz*+D0m=a~2V_C`8CzKfX?EHMq+jLz}X>^_^-T5#KFo}>a0h`q$7Et2p+Nd`}!*B=C zeQ#t9g7anNRJTE=5EQABu9XH2XrdjpOPt0dGGpqVVhsvHB43Eu*I5*2&H6nb&`boT zhOspi{x?C7C1Y=hpu>*r#Yp)xP?m$~MUKI-gcN{1neBi6X^+ropn0~%K8-uQh=a3B zkXbq5m7_cg6BU18@}~+I%ge0Yn^0OiXMn1u2{ZPFH09+5$JuHyow#7&w`D(LTJ7b4 zBxK3i8Ks-To4~~I$#Ahf>_5@iB}*%`wjpajNP{%g5|2)ME<#R=YKBEoMX2H!u(0-M zf8_2s*Ve{5Am@sQs?VxXu3CH~zPb!LJCvH=5~vxysA!uJru_Z0qj!CDsUQH*WGNFPSW9qHWq3<9mV8Fu@HL4=+n`EBM8o$Pey^~Np&9%%2(czlwacfFH6i8H8$}$uf)=?w*RN#73bVF zQgpG`E)Qn49xdS%9m*jZ_*E4_W5@0pEho6C2k^FtbhR9Kb-6qq?ovUIduy%&x}2-w zz^e+K8%#)NwCDyhyGT@h32Fjk+_o@)lysR68l?s{nH|?yQj7*NsO_oU=s+X z$%Y=Fz8y)%@%Y8(>)VdX@8-a{InW&6{EIO;x$vBDqvQ71`BmQn$WhczI$%NDLldig zif)ePI)^agEmee}TAHbYs*;`kES^8VeZ&jU?p9T`te%d;}A29S{fh76V~b4I2#n5PF5 zd3$kYC)SEn;taUX@bZ;kab}WlW%qFALh`N6z4YLQkPL>~@q+l~4~kDqaz_69xAOPF zHghI8jo`4_FU!gp z^vmXE96v4tKTu|bPV!`>o0~(gWE<6GRNBEfd<}tNx1=VTa=@2xdrmRuc<}8`)}%FrZ--RJyu+@ zn<_3F1_!OjEB2kHwwo7;l`cy0oY7Xr>5&BfxtIm@K+CE6ebfl|5yEpu`(xAlH2cXxf1X4%6Xps zU-^?tXn$P5VW?seX__{pu%2bAe|qCn_0?T}*-#AaeGaP30SYN>KC^?$UN%4bUSbGl2&&_7FEN)x6jbk5`F5+*V2?KNXwa4^Q zZSrMJrF<#cM=Q^;1FeynY(dF0!L&>c&aPEsBTo~H%O1p+?ax>UHrC`0jZXD;&urv> z$!{#0uBS=eqqPL*)HhOLK4)d|;q0yf=I>RUehQ~kA=75K6%O~(E*DDQ{F^qf6EUuw zHlQbBS!r9+Eq-}iKhoJE$(W?eO8S#C!a4e(b5^>jVhtNGEM>f#CH$NzSV5jRXo`wk zITdpfHTg!y5khnYev;S$^)90(KXFcQhQz*OMa^fKN#tD`q6k9CXq589=px^}$+6kl z07>b>O{EJ>YNcQz_0BT7!DOeO(5pb8Xj3Smwt#t()5STNQg|#e@z^i-RU2jc3>CQ$ zZ4|&un*;5s(r3v2Z=ff-1h4rQS}9RN!>Rae0EanaJev zjiK#KR@L-zbJnWWYYAmF=h#`cHmJRipxvqNjJWP`1I_;JIW?3_;GJTG`}2>9ZNOk; z*reW*%{W}k$)2Q>pN%ld%bK-EeKQi*WM#II>qrUg`8ZR$I^9O2yYp(p03?{?Ty0B9 z(HZ!Q2L3YPN-U0n8y`_{>*ChbkrZO`!1#He`rxaBt3mI@mh{XRazy7O$E0UkN=v^s z-4@Hr^8-4Cc?d&y!?E^hp}^z$+X;E%IxQ(GH48o<{maay{U=??kC^ zq+s4ax2UINnp@;9E@p~MG#1??VwLEL`)g^n`-s@1ZubiOcM1J>B*EUK&sL1|e#hUZ z0@HBL*UU^#&x$^FQ}pDM9PydBP$bfen72`q4cmk_Vo6zD z6R6!O26tN~Zt|MJ0Oq(FCixD3i}9(`LUtNK8+t2}oxE$J;9lT$xvk7!1yKXKUg(+eWKwwzvl`o$3_`u&&7j;NiO*wOX}7WEchVmoR# z)g&__=okugI08+MV54?u_InS!#HcVzGVWqc5a%2>iF=OoZuz53)P}+HS|i#B#sBW__&Jsl=`Lt85Rsfpy_y4Xm@y709hbstsen|2grC5MhICCq>~} zjl`%o+0~w}A65$!-C`q|hGHtOPNx#C=ydYJyh-?gVa%SZPMSa4af@29GZ5S*T6DX_JXqB}m{W!*C zoNf-_#@*F{>(Yi95lfC8X1SrMg0|t%lra|(imQ^QBgdx%@84f+S?kL))N^>gBU|z2 zlPSURWDZbscp6v+g?G4_u1(lezN>H#f1~*3(@$S1Udf=K!#~-eHEZN2NozFzXaI!b z7xZ5m`wXpO9ad~=l8xqr-gShxZ+jT&29IwsGv$7PhBuEC#L)VVWuOj?{!8E??qG_F ze~=ZOd7{|EwmOd0u!eh{BjKFquBr3Qxc$1iTz0g9bB<$r@!9uFk!PH=~- zC)>wiDnPZtD>_F%aJp|cJ4g^OxT0wU*Vy^vry{q2ktsdpGj?}|k9RqkZ;-S^(fzXyI6xI3 zp@{O@74;c+sudTR-?oq1I!&+ReApPF)hcCuWi`tK<~Gty@y2CW)S<;NencQU2ov$-XfKa;cpn+){0P=8sHjQf-; z<2;V$0hxbj9QHBCGz&28FP|&r2%^@WaA!O%ai4fx^{DEyyX0x6ecgdBgUYw0Q@Q6e z1}}%TIrs?Q5!!ZlFynmYwM#>~v1d)O>jD)*wp*L}G{V`HZ=uABG+Nu50ZmHl8(FY$ zwtv(Jh_KD2`5WhIMq1SX_<)V&)0eT?Xfb4C1BZeEv1#sMYG#I#T$70H;1zibE0_~AnR@zZRiQdaq>KKicX2Mu5TOk- zlf(5%t?AcpGBRPQHI6{8-d_PygsCGUKrw3V*|CByKhMNjVQrVs%(!+LgLvs$<~d4v zSC#7=rAQRJFN?5QGR zN32m=7us`$xaIUxuJRqTn5nA+c~eMhU%&**;mE1)rcBis46EsWwAo=m6;mh${~Z-Z z3b~J2B%SazA`J2No0|~zIO;pz^T^)Y(C>jDfyR>q28h8Wt*U(af4`T)k7#!089s0F(2BxK+=c7dJ=6Cu#@eL3McE>&$Sikae%boNkJUjYlVSl?OHZ3s7ao#EqNqCg^bMg#nz!&A zk}ad+TO!U5i9)j~Bb-&3P9+M62jvEO{8*M7?)D0MnM{$jN)jOC{27*_Ml7lCxE!UX zJ|H61X*X5sV>y}(B;J}MAWxD7bEZwxlC^IU^fhq}Cd}Kj8F8~3K#BLZM2$d@>NLWz z1vX%rbT;_C<}Vg2C8rml64WLZhgGlDH;wkWm|lrsflCeEEZ%zU+f-s&QCxUZFHfwD zskl}VomjQ#vzXim%{)5$yE(etOfh-h?9XB<3}x4B2~~Qzt91aSK|6MGv8Z1r?obut zP=MMr+xEj4*0OU)kb{Oe02gqqg$w|Tve0rQg{agCj>AIKyE-Ts+ z;nJ}-vept2lFPp2%EbVkGEeNv61$5;!&SN}{{R})kAk7RW%~QKJ|-JwGl%k=!+vuF ze2bvPV+n{T9IziKX-v8&WgBV+H~)+~w?ii`4?P|?qv3=D&aP(>SvPJN8uwbBGQp6> zJ_fAItQCf8c?+L4@7%eTxZ05~ot$E*$U`6plj=?q5Vs|2S9^n+mu_0Fi>$uC!sIeB zM=Epu^V-cSn%fPdE_C!J;%bD6;Av7Y59cJw;u>X_wX2$6lKzi$_y0*Rn^)x=HytY} z=c4V0pE7^?0epeGzv07%Pq^y;R%P-fcH!Nla6#$UD`OP^KT zKEJ(Wy2nSET25Ge`xfLs_sHt;9@X6WUuU=nx%p>j_JAD3eZm2bMcg$dXsQ9|QR`iF zH>ACpbcfWtEFJj?nkSZv!2oN&@f<9giC?yliz9G!%11p14ivC$1<%XhvH0BR9DBKc zsow+n;07fYEdr|BFZB%=GK8F$5B|kit@+E_kgZ@y zB-vmEh86mJ>r~uAX)hQ$m~1sv#^e<#SuZJ<==2A!o2#>{6~a}Agnoqs_^vI*jr2N%)4=v5!sr7INT#= z2L?w}t0}n$K8aRsL!SI=kOQyC1t;w%0j>w}ldkj~jDU)k+;R;1!C)@b=PdAFIW)6iczo2@=y(aI1DLA;k666 zo3Kg{ygS%Bd>zyw4vr%*kQ@sasWwQ>{sY)d`S~>vt*@^iIXkYW=^a}(t7-c2vm-Ze zs_DR69M7G~!h;6~&ogH;&kr_f;pk0%Y#oXKm4b7}J7RjXgXz#8$n{jDr(b18hyg`c4TcahlpN72&z-T3wk9`xsxYG^^%nXm&;Yk=? z#lJ}D>awYx4ed;c%5RY%p3xpqXaYFtmMJ$JgzV~b=X9ikIbG@-8ZQU>$DH!RSvz-o z`(hjO53M%D<^~5(lVfZ%pa>G#)V2a0DdO;c-+%8}s2AArGiDj12&9 zYBm9`ObuTz$e$|{vKEvg6dld!(PPo32c?YXEckibT%C-^H^>f|PA7erE8x;sv6B|8 zrv3j3ax~%5e^-Xr;(nan@rgd_ z6RC~N*ToixW%I4f<94f}Q+hYisgIM4c_7*1gHIlsrDkp*>{a44==D=R#RT-PC?c*dm8akrY58JCaqG)dMz#+A0@gaMHk+QVKWs_SA0FR+_R`3R*H-3aR9P}5 zwpuu!RT_3f<~NYtt_E#25Ge*v0&h;LHS%uPG6b6~OWp;46#-;*xrqukt3nR!u*7>} zpTJv}y`j@J2=&U)?4k-sBD{`YBE3X%`sZf@pK^ zzq^t>FflkVz*WrOxPbu~6Yq>^_QWq@-SthE;7Wr6MR5|I_QoM@)`=Yy|Q#Pfl;XxDd?>d!e7 zWK5&)tYj8rufV4UQ%mOA`kw@YzE_6m1Gk_TL z!BnqbSp^qqv_V{|qhq!irZ*J0<1@h2$spDe7n27~^mpC#Du9XRY!~Z~#Ux$-;uhxI z5;no5lfNMa8om10E7w;R$gKsczoSxzpKxvM+yZbj6AW-6Hq2=QVEGl93lgJJ($i)> zEvrxa3mCD|u6W-hYqBgg~*O0XE#qe9C;F61V9!N&Ok<~v8Jc#OQ5sJH5gWWEsU?l+d4`zL4^ z*3WxwB0As0_p+iOA9lkcCS(4kp{FW*G>)b4Cs2NUPGQ)1DLT7Mg5dB`AyNX~@5NH` z-Wt>HPK=apfpn46iOBtZtN!Dgjn`#ATwt6GVvrFv(0K%(XUrOFfcxR zgz`M`y*}UQD>g1)J--M1F&9jJWJ_r7fv-p+ZXO*og{YI3R$TL?M5JBGQHMp-qlGE^ zTnFzTd5~SB#t?@Gpk%p=S zkZy#9qv7#H9Civ8hsR>3aR^i#(!i9|TZm+w--sF_W3g5Vj?y-+Co&+tTmK_)-Ft-s zrb%gSD+v~Fyh1YdGlf#|fmN)Jm65P|yVbS<-jR{LY>J|{apx<0VYDL}T;c1U*Ou-g zg5&$zv5e;cd@baru7~f1)d>ejc>A0d11}#R=x9LK3HcRQz(u0ZJq7#c?kID1J^4|< z_l`%)!*hTlq!?lIH?v^YWO);i_7>)4PXCGp2{}x8~vDvS7;7B z#}v`>O*I7hldO$VzcV4I`kNM0gq2bO3 ztqLRiKzsWEwoy@ILe`f3E?`9WJ+?o#VWk<;EpcQ0NMKBfZw{keQ%V+!mQ zMkID-ZSBcsW=nR`KcW4)C}p4uX-^KWDtU4;atjG)o>P0rq%y@m} zva%n?U%ZPlj2g(xHgraWC>mK-g zG`ifBN$qHQMjc1+f73L&(e-GY3xGB>xFO72G$uL{EhKPC4bKz*utlaM0WQ!%~|~`UQuG^bNidzBzRD;K8eh{@?XK*kO~h zZ_g~^RtTZ{C>xz+LJvj^pu4ABuza#-2$woL$9bw<1eZo`gH(cE!;AU56%*#?<2*_rRyTurMAO>w}s@ zbBL*4sl;STGBH({0$IY$->xJNpa{KgrOS>%KFL_6>q_F)rvu>7leBAa$YLsc@l^s< zVP(K^Aa}ijmlNU;AHf{eC>sBKJwWE=Vt!C(h1tR>yJ3AUrkv8ZC=|?=&<4OeLJzz( zCza2iFp|7B<3i8Dz=Q6p2WiV*(0ctv@QcF1Dv7e#e`C!lRWa=f>CjeUl{qE$`%a8# z;>GNJ_X;+(5!uDo6F(_v5%1l)JB4@`CKG*Zkc53d*|mkDhF&IV+-Y|z7bNoUrEyY< zL}6FFy2z6t5qv`Hq(;1^BwS4dh2H6buu+L1QMM1CL!?D7w?}DLg5RtrEloYOak+tR z&=F5nuUXR?QT6br&Z&`&xiR>^d8CfeNoeEyQO(JXQ1}TBv&;UDE!hdxO&?L=XndRM z*=5YW^mL~)jLdr$_I#5*V_@%Ir?afgKR^HMfMZ~wrh3qCM5iABQqP}$p1rfcMXqP{ zOEyeiNWZ>oe`Ki{y0qqF8&TK5r@Ubk56{Ij4zB?-OH8 z3AM8n7^&hMawZoGIhUBv?p0Ehme*S<%Y_|M+K^)31V9%`TV}@KU|d35#3T9e;0_6@ zmsFH*xzV$NN~(Z#%ynK4CrNA1OE3|)L6gunqA4LyYfnnCQUZ!#zyJ}uD@B{4U(!4c zB_lLV21`Y#yXg3d#vz|-NITE0LcX&zS_h#$9gbu4ao$RT5^PX+{@_Y9{luXEkz7f6 zxgo`m{}ip`V%G^Aonfy^VBbEM-z)#=8xXjGzA zG9f?S0EJhuQ7`{I^vd;yB-zeZeC#25pn@dZmDN#$*l^j<2H7ngVEn_gR!Urw>w9Cg zSkju8q^Wc%4HuIPt-252ruu4?B-?7{zUU#>*Rtvt_mOON#MaSwc%IGXQ|m~!YQ$#n zG_mSyK`@75M&8e}ujiOwS^?K*|D4BwVWjf4&j0NG>gxSxkDtERmC)?a%{^GJ*@mRn zR%4Q2Hmi3z$ZO0XXqn%9Cd%?l@w#8IPxe&-uBT?(!4@#_&yN2Ho{ z)n$M0n&I_~s%TS8BFm}C4f6H0ouloDJz5gpNgB@%wHpMLU?0Ql@;=+OFrq5V zIxN>aMk2WsQOJi@~@37{zqwrCih~%nrj!kLB&cw3(V?LZZce3 znqb5_Qi~4%EXlByhS0ii@z)EBrFXVXU5rVAA2wA52&X}5Q@m%iD_{Pr)N3cuBY-2i z$xXFy>TP0)N4u8s_OZsw{?i$NW=zd>LBHU7O{#wgjgn+T26A#ihB*m7v5J4eEA|bV zE~%}tk7zndPcVOR=W+TIkPw0P5c}5ivcR+~{e1AUtjPkmFK2h(dU0;BI59jI>KqnHxzumXjmtS0E zC!jnKvG9Obcxwa8>p%?;vT+46VQ|ak5wloGgceSMy{eec%G*VGLY^>hijzOdi2RxZ zUaW>zaOF48>8H4ad$KiR{(<*+D84*G>7QW;N=c)b*&|nzMe$PA{dQ~l!7)zCE`w2MOPF1|2a@3+r898NNNe&LO!UHrd|){!48 zntlMnpYtTRhgo+o2UUjsQ&zsDqU^$^xjcd9>=NW?*?PNOj|*$(2&_c;vb=c`3naMx z_h8t}>{A_6aNIf4W9UW1Z3}S z^2XS1EqXCjmI$C$w_K$WD~dG+fAIgz*0X1~4xDY1Gpkh5I(RmZr&JGE{&^63q2W@g zQ2bALpLjVVnVKwO>b`gH|I8CU$7fh%KkjqlP=D%i!SP+G@x6A0o7&!87L8y*wE(YOB zLejHfIO+f;&^rUsK18%Mb-qkd>+i&wq9y^!O^~V`(P($QozsX8G5d{iz+9-z!?SR# zyZ1V2?3(t+-9Xv(E!76EeMrJdIt6h`R+nF-l<|!F0u8G9F!j%Aa|XyL%nl*B{>6D{v*Y{={nK<-@liF;%MmvxAiDeg z+ogB&FgQ$Qp%MV#3ihh_Z`bcf5j-R~`IT&^@5w()yv4_Aa#HLPl$?!5+iJFJ`ck`9 z&~e!Q*8(pIes@%OGly;n+5BV)&ns{uTZR`_{MY~cQ8Atfp8|wa3yw`D?UAEg{Livg zhPY{*yXs-G1eKprir=)7y{p<2<^1`DOy2!?Hj1JOSpXXTek#m6Gd)7N)^EBNoL?r2 zXF}rV>EY6ntWg}8Q=P5^pc>n<2upSM&j4i>`^NbY38gPut z4WfZ@#h{gdH)G6;>^*W-kKHvaJvuopyN+KBlB3i0L!s+^1rOPS=m*3Xun}D+6(Z)0 zP#`i<;JLrXpgvfY1E)0Kg=RGN*{Xqd0?lYN1Slhywhca7X?n1 zi=!;LSA9^od?|MrGZIvyR=C2-Sz&vg#^Rh{_Ee>W##=5zB(f#FN?f7 zT)V;?MYdK(;^WtCZ=j_7F;4}u^ttP>A(IA2-iAhX_N~qLK5eFZL&f{GkAQ45oI%e> zMi%(|`zREblnoMk$q^HT{>CkaJ{}P=Z#xhq919vp5gn8l*m{U4DuVC0qIas7mJ@q0 zeN{kqi#HaB&T`PH_}i5D4`=(y&tDU{lU(BK_D;@C2@kC&7m7wmjdqFU_$Ol*0x&#a zgv{J8aY^hetV;c6bH25q*@AQ>APwm{P$>Ff%P0b<22MZrh{lEwL%djVOA&>J#Z>vlv0unaY#X z6a8wFgh|5Md(lZ{W>9tbg4mZSk>kJrJ|3C!GB%M*B5{ENOH!5>Scp(2Zc)CkUNI1b zBM?cX2sgLNnixfZjs652wnvzWa6#I15i06`c#04_(S z)8}R~wB$6nXrF%>005I89)@wumgQsFW6N8ZI6Mn#_?a*mU>j=i!{LvVb;vWhljYm= zmd9D^&$o1``_I41XB%i+Ck z@@4Iu^c-UOr|xG+2EJ4B`H`^6;fQ>Z{QO_C?@I25)ZMwmv^@Xz<+k6V*Ynm3|3>DF z&z*h(2Vm(vF2wPLJ*?G#LY!FFo|Z+eVsp(Xt8-sF`H^+ z9-xaBMmGJw`TNYd`%FQXCQ)EnLKb2ggm0>fA*}NKI5JL;kG`wm8>DWr3kyO%UNQyk zn;VO!^a%9f&e8qu&KVsM3YmeB8O=H7h-=vSo!IyG+Tys@y?ZZ?fBM?nzT)q8HYoCs zaWbO0GJ_(b!=FG@yYreQdm64>DY@wMlU~fYch9~DR9AFUWOW0ljMDvc(bG=1FV3U= z_WmV-=SbvjDUl%?cDC1AzoB=YRn_&D6`psa?fK)ftICGgV7Vj+)_`^A%PQ+5g2zT+ zC0n6Tdf6o^BYxC~^K26PSZbY3Xa!mXxuGt!>vOB0Zfw$+c7a$ZrNN&0^Z#SfP`?-Y zrp|Mls}U$eM{TEPTcJu96`w@RWkIxz3%ZKo-c=z34>8z4N#cwjmG%z`IAnQwDEQKbH#dM z*OF=tMKZtGytzA9mvXkT`AJ{Q8Gk^Z-yV@~iOnZ0re7<3p><>%GCuN~i z&8a`^rE-5LmGc!Ga;!tyEx8S~wEW0iv|xvtCE+7|=NH_CU27qIpUuAuL-uYL=3Dj& z6hI(*DBwWCfq)^lW&*E(#TZw&9fI#JINyi3*S{Z1fUwj%78J=#TUwyotL0pdb#N%m z_r@7==<*#XdB4k1^I&;Xq0!P*)1}oi$5}3U9GnD{R`uKiEb@S%Ty?FPydW3^rBrML|m1fQ$?0a}Ru7bTnLvNB*SP z`T0dY7M~9-LjX)(w&`S1ZRXJ z%*C}uCpIsifdO-}KKNLQ=?k%;ZQoKX4uizu@EA-<2?m45#UU6RcIiG0K0zCy)7o|Q z@VWA20ucg6Ah0dFEf9kP0@jpHjA>~qy$|LIfog&I-~d{*$+AGIl%N6qT|R@=i4-<8 zK;az6SyfIhV&mrlTT5#V5dr z%!S7MfI)VUn@HI+6kbc-n4>m)^mwR<2FA$> z=Fk6>1r%WIyZ^C=sH&(LI0qgp(fOkQ2^L?4r)E^CLhKo2KfR196aJ#9pSo~&E_Y_^ z^jaEh+3T6y+}-Lzy-zamY4=`T&_JBY5lgEIKNYJ~1`a8ds~4Tcu8UPDL1crPsxC%c z-;t}Es>$EEkYfG!jpyf`Rc9FU>~^24cPs7*rrYN+&N!vYqMmxIt-gp||8@?diSGuL&)t|%-pahJK1rXtLq@=MTDz#`V ziCP>$Aet~>9^dq-_h~&_A+LzA4xz1)7CvRD z<{3JMdW3o8$A(GNWE-MEXsU>Q{;_Ckf$B!iL-vAWQk*E~lqCe*e$;_P@!p$o8qLMyOa#W1(4z;F+7tv~G1$&#ck|-eIyW z@J1r(7Se*vnESVBEt^;7x4DdoM=-%SuHVIc1n2KD{YE?9B-tC z{szTy|BO<6_4vMewq^Mw0nV_^l-TOC(ZszS0kgA~;m($v%kn?(`N(HxepkIC3l1apLP5I?VYxp(h4#DKmLJIQ zFOpx**^>IBuO5A`)>GHZQ-co8zef^9%FE{zCLZ~Zx{9;$Eg=kRApd6olQDlH7!I+q zRv^fe90UtdsMay5I*YAsy*4*CMo-tr#BzW2694s=xcwNxlNX0dxT)LEW9WQSs2EY9 zAmo%jI=cy$u%0|&Nhtfy985k?h{55d513fIf1z;RZ|1MHH2?OKUJb&${|SsSPsN#r z%3}nGM(YVc@(0(M1=HMML86j;@#(EYgM({!&a@_P`Jt_+7gxtpVDrp5#0j3x9^ISI zjuaI=1j-@}-iYf3ZY|kGp|6*{9`9W`J~(g|fL0(hkP~ z-Ai36Z-Z9&F~HM00=_ZO+D(Xf05moxm56e-YFpwXp}|$+Qyd=eIn6?tWs_ zbECklkansCmBCaBUfDQeLdLoK?H;8y5a(64XgyR`%l$F9sf@^)GtqkT*(M;ob`$0n zV#m$Rw|3I-IAN{sBS!%Kxw~LXP~d$)1ZM7e&778Xk%z-bh$lf%ohkBp@{~=`TW$Sx zb6QQLFdmUkV7y1r)lmMr$C)F{0H9e}yjbeq_H@~M2LOR@kM8#BY+lZDde!h(!CGpF zpn?Ze6TEc424QhnD!cWKifg=W!Hk9U=OEY8jyK?M>e$}zn>^Wzy$xQ6vtLr|g58gf~m#e+K9?Xs*2q6#B>LOEp^Mxs|#>JX~O~Zk8 zU1M`5;F67P+qP}nHYT=h+qSIGX^uRJ`N9{ z+NYUoB(!BzC}JDTZl;1pt3tuc;V7j6s|u0GfpxRWt;EL<@eYQX`@I}uh=R>Jl@ljx z@!lCnp;k6VY=&cB(CgM4U_O(Xi5l;BnaaHH4P(H>jaB5Tcj#3V>pQw%Te}=esm^S~ z>eW5K(#q$gI-`FqMOR>L^1Kr9F^^CI!B1yOQ2thiR=3(wY{BbzQjh$4G?tW?qccjb z?bCGLo!5_X@FA}E550Wcd$ZlCrU52?JFQYu_BZ%-Tq6(sCaA~P>^K!J7=rkBlFR1M zHf{?_hj|1F(!6^5t{v=!=Gx%N3aOWsQ19PIuv5qbqt>t{8QMvH(?s(9q$3wRaww8cF5@L;c}hRbJNmK8NPU?FQ5N5@>}HQy?!R z{aaG3wASDA>K#Y@8Ns|Qe@DNBqpst7_x*f4Ru*_`^PNx-_Vsei+uozUY&;ea;G`FF0HqIaafjrSh%ZjL#Bo}XClwbHJkfOlC=i_m607J{zfBB(yp z={Zc-8TztL5@WPJVuN&=iVPlVj5<3N=b$of*Uj@{oI$n?RHCvi?5w2 z3cd2kU24KHE>Z&g>dF|5Up9`;XY!{0l#f1F7I43Xf3PI|1f>P*AYyq~^O^kH_Y~dx zpsRgDqJ`3co$rhoQ|i>yhD(UQu`#wav_#?>_EQ3^L;LCsjOjz4+J@Jbsz?aALk!Us z(~xxb9jnAj+v_~#yP5x@mQ3~VTmT+KsRv#_{|u=(UxMB!dAD4C;IXv`C?^G&kKR1i zCgJmz&L`2JH0Aq{#SkPVaWiSLb46~jd)O;0Llpvg!X(6;?MYc!t<8CzA{Uc6h{pXY>3s7y{qtfFn?ls~$T)Z?=Rx%E8vbmuS6C5PJvD zv;`z*__ZpfiT6k!(oB-|=|-(<1B-da6X%%l`Ht{2CZ|nVI!@3|+M#R+CBIZ2YZfhY z!JFvuuZo~^69kcI7MCCuPR6T#xviejB-A@U(YQz?-s(a{1RY!Y1P>pC{Z2ZIS@KuM zz`#I6n8n+LU5HzNDHW*>cKsGI?G&<(6*hs%VCWBkoQM7uYyp^1)4Pf6_-mn5_=KSo zR@>Kh_RZb=gXOiC2UzjYH$3PQ(x-}xUyyFTnrC(KwlsO(H^hlpm=b=)JBxI6t2Qmv zTpuBb53u9-p;>v)Nj{SUsrMy~iQLKwIbh*u=E^hl?JhvTJoxo_8vWHewGFsd-*C|I z2KJ#yT?n7>0Bb?Iv2X^o0x=L4gnS{0-%G;`UE97|2LfVqI&H4we0V7-VzeWj2~=%X%#GoaMDFajo48vVBw$ z@0-!Uz6$QzVPXa}Y>Eyvvo2F!1mZj1*xPPijWP*)p1#8g^05QgP-ATLAmc4b567j? zH-M|dIA3TY}ye_=Fe|dqGz}F0S%iU4#JTvDdCX9e- ze7Hc_EVyi9C=6;{f38hAkE<`yPt|Ppr9pWW~24d*CXB?P`~Jn4X$4Jr1A->^DuBa4+M|v>Ae%U z(*@W%`RhjPbhcdjWRQvVYO*9`-JI^703J7~f#W)p!jqw_Y!9^RF^jw+n`n*tCql2u-lv~P`iFa)$T{f6FyGhPIW5%t}0%cG-$!%{ghtUeqY02 zslHN*XYt~CP>vsyam>Tvpu-FO683Vp`zLig6Sn^V|2~Z#Ofx>F zjV`HH=G{Tm-F9gSOrUsIs()KG9o%3m-rqlP6#MBfYMrlV6Z!d`%sk&LRfPMli|Yr# z4R<>%lc4VR58XB9kFDX;INJTm5TNy_wT3V_?!-I*rnAzvYX+%Wwy@~LB6pqak-#iU z62&$&r4rX;dBd+=6`MgI?J{_8L6|p_JkYv<73UBC&h>Kcnxz~fbJ$I}$_+}3RhS{n z{vVG6!phXGJ>qgO^D7tKeIs}gf6&=C_UtLY3M>J3&Dpd5?jQF8N>3~YD&tAM(qP%0xVr-=V% ziHKi95wqf>DSV2x@`*Wxw(sbps3)9v7YKHR9?xuJx|>g{>I0v`B7*@us0 zJ>SQAI9N}~20GeFMJDG|Qw&ePf*Gj4s!n-kFrQ#eH2d-aLbKHwjSJb za2v{dIa8gf)4422Njh)mZm>J7Seoo!QTxJRGlLlzYmyy^IvCeZjI1+qb=q(i;k_FU5wau!st<3C;Sa3mO$@#IPQK|XqrbX0SH9W+%CPr6#E-YKb)wS z3b-2VN*{A8J2js@T6qLHGOz2D=*67Xzuzbn3)*5IWYaIs%Q^ZIjqMq~FPk>Ge5~Vp z`vUQ)l0JYyC3m_@*T|iUWG&lBOpYAOR8r7Wzy9cYHYc-8==o5g+dX%9__dyRy?(RW zhacq~adGlw`{+?KgnX=hY{Jgh0Jb|`e7RyYo2Q?dS3r9ou&3C~E0p`?Pgt0+M*n7{ zNIm5)l#_ko+My^3k}C6*8XECZmCjazsJfDA*^)Bul-VKBeVuz1b$er# zc(xYg*~2#eq=B%~H8A*ot5-58ZF|7 z3>n-FxfB+Yd$oH)PW&LDY8w$J*QoQ1!#a!dIbT8`0FUj41UHF2%=%D)nNX4q@j{V_ zpc{zX-XtX_m`O>1SPgI8X@ENkxdbLAI31xGygY-I1jD6M4dh_zryubQ!TafsnC zvxP9XsdqOG$|)aa8^9sI`*6%=-{dNWe`|w|TGGfhq}8`j$`%u@jFFg;d%JORwq@}0 zJ&zqudpydLy7a!26A&RpNj3|I>%0H^jUKj(j_@N9`3D@2hO&U09SYlY9C-atq;i*1 z!OUy*tl0{`{B_k!whqtXrHfU;`8(U=cu$je^*=>&bnz{tO`$kvZvN+ z%)jSxwpphUax~i;pbdv?Yavj4As!zIX zXwPs!;*DiRyBGxWrc0uy?)iuFPw-EqJp`K%KdT zNhTIf{4B+|Nr_!a#~&wg%+O$?;{aYM+7AxS{LENR4V3VbADGvv+YwSW&0Lxp_%y4H zA_Ed;Zh;qF?ZoG{pKnCaDNG1+47@ppM^N;MLju*JM2D&-lSRdLiuCt7s>_zv3G5Tw z-zEs7T0n;nEAWck3U0h6#u(nitGfo6_Rlhc7I>9sEgM@Te1`d4N(_Yn+!^;hX6eVw*T712sa=`$t zL;)#(h41na;U1tGE5m>}jomW~Pt5r^y1IVylDoVs4kWiFgrN>{+tP|C<` zb_dWS8xratGyWqdCWinIdO}x>2lgp$i;gHt421Z+xsBQu>~eXV;Z+{QlyS$HP1UP~ zoh>fnueF}H;V$4$wjd12q?JteY9Gy}jz5>f_BKU2eCme9{ebIkn6zx1VG0Ie_wwA;>czk? zX8wMRTxr?e&j}_L{AGJoma+DVO=P^OUjHI(=v%Z$gk%;ha<=Mg{?T@2fuhqjQ+o6p zcI4kFfUox{b?6tIMt5PqVv#6}O#=nB9(J7_*;9hf*c`;Uk31q0)o3|V51gNRPE)IUyU zAYPl7gyp(kS(J=r(8cJ?uE=0!H?x72)-ti$&{^O{`$D-0! z2D<@7oTL`wa1aS&3v8L-Hl@c)0qy9uHlA4;McDImfq?2vDbmm!23~vYy8*~b`t}qp zUOdqL?pDs|uhDN@HCIzRS|B36VxQMoEe4kn&_ofKAUvCqzcb_hiqSa;-K_7y%0P=? zH)I@n6tZGf@7fDnZh6p`iC+e%v^d?Zw*tOZNNQum@I*cthkDNwaM>_sl&1J0U7wBb3;>04^JD_cmT?3`UK&0RhLueIB~oG4 z9III$}!;kaK&Rd-e30(|UOus_ZLJ zv0c0l-BKNB)#cJ}rY+TE`C;8j1>9R*YQHVJEPkGVZP2t<`!lPo@rl*IF@5NFx|Y(* zk727JGOIaoXT%c$>3)+c;?1mM3k6x{qAl(O`BJ^c^3OLCwZRoD6^*df^jfYd4*dLN6WaK`M31bjw{i~_T`dW9*J z4_y&FVag(Q?DOpJmN3H+{3VzWI{+fXKJ-4GTb(AKxp zi`Xyh)vMlQH+M${T;8*>Z;fFdY^&Ef|7uxO%q^NASWVEkzT~_m1txfDc7KQQ%yKZ$ zNCc6_`uX0y{Ak1cjV2gEM23E9W$|$=Atptm>dgAD&)93N_QIFlV0ASvw$1clo6cEY z!dQCO#7-5qKP9>J?c zIjo>A=%7(5lQW1%kA+?oep6q#pm$aOvR$b@K{&u#(E0AW`+dAT-R zGz_rSG+QMtxC!^s<>VVj)&&nz5TQ?O#K3nXPiZ;F*h7#iPUyh&fVO^8=ygZwUu_vj z^Aobw+fS%*THl#+QJLSjM8SH`h}Kq(YwHpNK3oeNId$xf>hc$*XOcAA+_ubiHE|MI zx%~^Opeh)1XMr^v{WEzv6oo;)%Z|(Fph+k$59@C>DAIFA8gCi9M_RQ&-qiKTHsE(i z+zi4m$Vv8^J1(AVRQ+sgB&nyO-xQ|eIjz+18ijbLEFtYSta1KlquAN4(Q>~h*V+ce z{pK^-eo|7&SqS+Tb+l6Rt}#n)@ud|__8nCsw#7Wpo=usJ1ZjhPWT(8x!<5d14tO@% z{z>7KTV-Z++s&5X!1Pb9KALG=bmKs$ugVUa;INvoEHI?h98bqU8k?G2m-T6FiA3Fa z630}usA0-0n)BX!GP2QB`h&*e0QQ+3u6v@$`DrDXXfWyIm_dKw|CM^~7X`Dn1~U2W zx^wicXxo>kpc}{_L1QtIHa5F#VA>U7fh4O#bFAfSe`GJuk$?a|f59Bv;pX*Q=UZ(q zNX_3Wdbd&dS(p))H+U*j(MQ`)9X3R%+aN{PRAd{Z1>=Lm&3fbyob8vWVP=%ec7}Se z({uJ0>S1EbU0f~1o34CTZ%EH^x86(HOb$Y{YBP{*v*}-j!bor(dmuoh)UNyad=*nG&3twU7%XMQL$oL{hzq1~g6-m@)IbtLC4o zDQDiSZ$x!uTz(sLy49!^Y+jl+X4IV3*v^XvmAPwT^CsKq=&lj+UO%$8 zY{P5-9a>qTOoLd7(evvmTL9$!ia*jY#32hiskG3b6a(H8+8-in%U+YJ~zLaikO>O z-M6e!i!x5F=qfL36w}xQaJ?o|4N&eDSpL<}cZm~F-W_Tz94J#AMBVF`LUP~7;1iZL zU_g9HGd^&NhoJk!vKkkt*$A+=9HrgWW42j<1K zaiiuHW+)ylABG6KDYHjQ^{a^gV5ejLcg#hY7SXPl+R92z;Ymt!^&i`$esMMd^T}-z ztu2kjGwk)vIlOE#f?(F)PZJEgC+?&-G#11GS>rGt;&-xGw0Fa0FenJL1xjbhfa!tj zU~&#R)cYVRe3#<*HE(3s?0f~7*eau*OnLRQNHC-BKXeH!ZSG5fgLE#-3wp_}aQ8TPS+yXYiCZks zlRUxij64QsRt8*9)|kH65+t{lMI|nYSv<_L^}nPEbjI_~yP@CLPF_@i9WO2$s}?J{ zr(QvbzxMa}dO|xMZv*|5uC_F^?)Qu%8{Ace8XDuCG0^(i){^6M2hI>Mz$aj&BH+vQ z{6xcd>8PDoc+Y(xLY5)OTzspw5n9#FD1Rw#c!{dbXhnqXP67+_P<4(_hOUASY| zk`(iSDmRHNx}j~_ZDQoqYX@MvlaY~KW}I^!vXJUL8rwv^rk(Mtr$h~gxwX9oS=a0p zPmPo%O;Ih@ja8l#IAjuv4x(?;;U5`^fBj=&ak;+6RlHBQI}_VR{4OY41#sM?m0j@- z`E{2552fL~wV?QHePs4{FY#x9x`Zkqrrx&!!%tu!1jHR`RO^j^TPXu) z0Fyx(wN5H63ClRcpRbQv7M%Wtko=&FMK0O^yP=^i0H}~ryhv_Dw*QI=(e&UUK|iPS znvD-EqMgtFKuOiFVf!=>p$@L86nq+XXP=K&b23+7`znL5!tG9zT_DpU0ih_P*j|AS zrlM_vqAj+dlEOakI1J0BE!U$)CtuQCAVnXhk$NOZBNCQrS@z+@mEO@i!wv?E(;x`6 z|ASsvsNsBbxK}&+D@W8j)!oVr{!^s{BdNZGL8lnBCyBPHw`A1w$oB0k8Dk6oH!*0j z_vm6Vtwq9iNPfz=GQSj|052LrWfgJ}X?eDk43@N|@-VJ)T(CD_iN#u?jW`7atzW%O zg@#&Rfw0VA`XDRp1ZlAZq$<_$D+$U8M$c12{(zrQ8@bFWDWs4mOrU}7ywriMgPL^m z>{K57U3#F@mqc@NElzziCRv7!3nr4*y4@iuO(t=Ff!jo*Bc{|e#;3`9Jg33qtUicV z>lpY}Y|bEnDyuo~;J#4y6iJd|rfpEWx7q_c4vc1`PVPDn>B?fxIF`KH#Q=&X$r`}m z_>h~3=>Tff(rT3%2E*lgj@5#ZK-(Tvs`la}wzx9ur*MCHnrXbSVj!iXtBkPIo7 zL<1r@#RpnJ6g!<#x+z3ys{{F}$<<`Uc(qqNsU?`g%{+Mxqqq1sDk5_&$vw>T_{zfS z_lZC&IwLu5rI9Jk`aMqKpsS8~^j*`$+>(m%$z%oPEiWqJaw)Q5)RNQsXGqkiEd|ES^uq}?B%oc~zy&Un$+!KEVbm`|<$R1* zHvENTl$NZG$Q8+wUUA%}Lm2@^+IrXW7n(eecz%icbz6 z@?*i?s?f-8c6Ez9^l7wQ7A#rsktri`XKFT&EgY+EQBK zyQK-v^PW(EzxcvliTRtH@Q^2odg;g;2ND($hCG~cHlsN{GK>x|A87Z!38 zGf_hMX_BlZehlr|r~^kBmVfh_Eg)?;o-EBm*hzZMY7_l1tp3fc?rP7$q%9ZDEf<>F zX6^nYcr|3Ezt{d`)5P~`$vZcub>6^bm#Wo08vdybD!@LzG1Z9?v!RD+*Y#}9Zv zEfu)+=%vILr-JBR6&du5i*+UAxe-}-$h*6Q=e?T~QXvW6W>Ebn{NKs5dzsd@cA}<_ zZK^(d>WfW}S8ZZSr00C2fEU#=aVD8mVL4Ij`cP$E2-lc`kJj+ zb}wlk78#St3GVBkP*Q%f-pfJ2ZmBMLxhvhhu=rlHha}#mUyzm-Kb+H^zPrFpJvnOd zT7c6rW~8*oqL*?7TuJ8>L1e_5d|^{!OfY2c#wKwJmrb-=0T)P-;Y|O{x)wl$h)22q zHMkft%XN1NH;Wnt_lR@VJ>i_bW|5#%6Kqybsm-eH?c~A}e(2zCH|cT;_b8G5!}l{e)zREi8{5aea|;jE z{1!sIPY;&r7ldPOE;L*ZvpT>fX=&78IyYRZJEz}Of&X}1i4gSN$>%dBakzK?edn-( zK?JGUzh=-lpS4> zrOak`*&Cea^RG#qA&3{B7Sse> zUsS96)HyCy&e&$eeuDw1&Z6!y{#}9++=nms*2l|%xwzY`h_9+R3hzO*^&}kNxqg*K zj762)dmWfQc(ydyH9*r~MLq^jdCs|OlK5uYBWZm86-Yt`jKt~$3(f))i38~nSlfTU z;Azz)lSysnd7ls^`IwABmN$SICdU@%$DkEj%Hl}Dc?6Svz(Z*fUC3@xd%RYmtDQ~C z6O{v7_2eu~YB0(xjECn4)`5DJQO1*Ubn{~P_p|E&16YkDOs0f2laAvAur{?ZhA9*Z zZKfwx7WeeoAEumJs%?;}zSW{H7`xbAyWyX^^3_cU1s62<&A788D2;{_GO`CPhLR;x zHjgcbku!932QHGNMUpmwE|aEH0yu-0NLe#!{nwa}HcU-#4J}S}Wu1Rvk2nUGT81Ba z3a9=O2e=Nk*p5AY62Nq#Hz8(4U7*{sF?jAqy-=Dwl z-k!c(I<|qtGL=Td)Uxd})34g|2}A#{<9o$km=kgUnbu?zYB2zF4=#QCgqI9`Lcb@V zNT#A#*s7MMe8P67=oGf8nBUboZ5I(v*%@vd2@jnGFQ7rhN?3S7Vnxhac=}+ixb+AOiO{0RRkHM$83fg><1{KbvE)U+%$n9O5i0%@tqn+F=3FA`Y-4T%Byw$K z_W#fCUtIsO$+t%^;{yJ_8FUtIwHANzCX6*AoqZ&(4Upe>8seIs>b#P5C46Ytj#E}3 z!~Wm!`vM_Tq&g9&aV$T8VoEqAn|mp1xGlPWF)2L!w*PQ4czN(AVgiE+Ax)%WgNPYI zjU;3FZ`MXk9l(Z?G>PF*^rq8-Tqu?;Te^9N%>QcBvU87EJUYJKJ3G1xDa2ApM4N8J zV~k9$t^9wz?4LW6adGwS*}GjZQFWHJ*6|iLQg)OEXnl&CuCptP`}&R`40vDripH6d z+EzCj3E1mu_Y5{%7_`zy_*!<%W<6Z!6Vpy5m?u? zBP;O`O29GZ7@=S-0z+TiO>KEmR&xd zO#dCxOm;B9E#jv(K~+t^OFk4QOV9) z&fDn|kOrF~x=-{49mxte9;m9Ih{Lr$O=80_Z4qNDIY^aA@8@nA66l?TQd~ETAr@!j z*s+XDw`BfFw4UjCLu(|&`lUYK@sj41SlAx6pumx*L-f#s{n;IH*h2h85q7c%5YbL_ z*xzjTfJtVzpJppJ_`=X&*~6JPsW4{&KzKy?ANkI>)kg7*);QB1LM-bJ)$2OoJ4zb(&JEzPMmvD&2OrZ_`2F*W*F z{!qWu2@C4bnlJ!GVX7MX(;`{@%6^0K$ptM1fjAZvkUuV)bn@;Tt;t8gE300M7QY%z zOtQJn8$H||Ih~zgKPVJ@Y8(j=Dr?(9NL`9~5uLcK*&;cJzu{3^e7ZMBGK`ZxTfSx! znuO&K5VdQdp~|9$TOXPRp^&Z=I=c!j?es8?>?vVD_(e>ZL*8TV0<0}KV!yB>)=PBm zgf>B>qXG4mxY;9dFOs=BbcCpRZVXC~Knb^@-%%&Kz$f36e+eDi);*zP#@B7dIerFh+r2Vx1RMIlrR* z^DyzDP@rII1KFtX0Iu)=q93clwXkFeC?A;V5X*(P%+4S|<7~1G_xYLQlTPlSqUN9w zA-DtI9GTb-yBf(6joSVQ5cX$x-R%|$viy7cLR)!p3xyS`u7HKQthdq!`A{O)GL!EW zM5Y%}QaLDAb43bZ`rbj%uC&jyBowye8>g8^Hswe8C~U1fwFmlcC1|+;6X!bf{SX1I zf@TGGk<}ygj_sSBTDa9MB@k0rdgZz~-p6Th4f~;s)L>k25@b^zqJe4W z=d3OXtO6o~iRCbMTHHjQF%%ud%Xy{vz~+t}n2}vrWNTYE_nMhXm3jgfiI6&fnc`px zmAv@TZm0KP6M@d_Xjz9|NN4(XK_&5es zr$RuBf~?ow!7k|jR+8`Bc;fG|^0~>r)02{}6*J=lN3-gtnxMG){WOZ7g>zvThpUtA zm=;e{e-vTA+2K|AXH2p+p}~zZlFPnkDA6R%z-C}rDv)a{i{L)oBce;<&5?Ju!G}?< zg2oRE?Sm30fQkKcoNj#XG>Z7fMEa5^OEr6z1%Z9< z6?}6}i6%BUo+!p5X^J*yf~K_KeAO0o%ehmcLKF#tUPT?Ote^a*>Zn9X5|g+%7gv?q zcouPy&P-OEfeX;ld{g!h<%nHDGJq;*_g1A$Dj%r@xjC3s%D;^7%GgJ)R_Y+tRD>C? zzw*#@wPxRUFtkhzq5YA70_sOp0Gi)+(n?;a4%V9QDZ5&UE`@9%A_sgDTgpHI7kxN2 zs4k8f4dl_;hprBn{-U+<#pP>jdQn>PuV~g^9i;%Nhy~HDL(7tKoo;5;kAIf7oSxt| zWbG+<2eCg07Iwmr2QyHzPVM&%4m3c z5AC8eI3LES8c`eIfBb0BFz*r49#DaBS@`ipEv%gA1RP&LsDqB!<|S}Aoag4M7oBkJ ze#vkY*l$E@tLN~^iv}pE26Iu^87*HWmr^$nNxauE#JI!RS#R-E9r0V(nj;D|{Q!Nj zFId%UVsa6Y57j_SnsBPi^Dr(zDCobo>^(G{8&79HX-N1B`D{r1o1wVn*54{kBMRa&X}k1cM4J7&MtZLpuMJS>pKCgEyy$!nnhWJ z6di#aa(092u620J1N}2dp>#ZwnCMGfCb%wwaa!-L4!GLQp#-vsG&H{&2?`3^|(RDwc5JKW)S z+{EzxONUE=stBO0OcAxf5gJ#sXFcUBAjnG5w*f%i;Q|rd%&=8+v0;hVY45IdVAAYwHSm4d7s|Kj!1A5(OS!6G>SV%bCIW1x~ zu{wNlOUJ4}-W1J$`0MJm_$>FW^*BOmT^Rz6YLPVEN5&OZH-8B_7W&3wJF&5yh=Yn9 z=3yMv(7}~dOdDY%MiqNim_O%`%k#P<5;ebZBWkrRn+BK1W{<}C<`6!TjaiU-IMoY@~Xt$c@>mJz&DVMIA z=493DLD`Z{ht;0Ytk7(&_5sHx`zbWNQBJMcw5xj$7*nS3pJqir^lyFKiXMl+G^>$z zo%I)*_okoVHHrnOuVY#*7 zIq<0b2;A43<+O0W1G3uRS!Kof2=`{HwlE^C!+ubPE%bC-3sp8l*6pRKMxR`R{Zt+nS{XhSA8}N<4f_-8^1KCVLeCbfAgP;7 zhTc#Vs_eKHx2*RH&6G=_hF&#HpMMPs=H~u&*5UPYy+q0+KhC4HA`9tzI@1AHBuwha zbRoHD+IA!8t+8ViaEQ?eqlxt3uw$kI{#A6Q%v+>zsPK&luZu>`7CVUp_9pVpks8xT z;?oDmk~&7b$?u6&l{k~hxWxXu&CXe%I=SE1L$TAg@HUKUX zkZk88kW|N7+)x^)KJ6DF{Os?lzaq!+Lc+$#QRpj-vhYnNL7Ab2NQuAgjcH_s12K)F zg_uL}MbI+PbN=+_F6aw&tOm>8?N)ThK!~NBXhHUNPsG)${R;f=DT>^6Xeh#I$Y`kq z%9vb2t#v%1OqjOQ4Fzf1(9mPEjN!VR_YU~*M>A9zq9@{?bU}4I?)sK0hDZbG4INs= z)zoci*m`3TwO~VRYr5UDUm$7ps{M(D)K+~TOKn;*?GGMvItiS;kzJR%Z`uJHJS)Z9 z_>K}i;#YD6mcM!gkocBx8-!x!LG+au`y)4&eiT?A6p6vD@XdCOtT63NSQd3F-^Rq1jqDlmQ-uF8E`|C%A&GV(;5H zx6D%h5WJ%xUVXa`s%C;|Ov)*e4uR7l>cDl*S{Y<1&&0q(wpVnDy3}zovE#x$1${L| z-$Ae&4}k#<+XF6fzRpK! zm^l{i_7Ue6LMg+0M{Tj)cDQspsx3uCIz6LIj>m4k`w63$bIHG{q;N{sxlJ{!fPcj8 z)H`{{4WS5xM45;Y2hh2c+Y;h(W3q_SD37v?z*#fY;-3-=+PP}52TmHyQp+vi+epeR!Meu?zOw?g~Ze756C z^4b<~Udp*f+ieXX#J$Fr5fgv|9wVA^*Dx@;&4e)RVm8bJ*jEC?i+OKLW*lSNe_Js( zj`SZ2o&U%w$;A3zbORY(>8UDInua&aFsnsxPWl`rngE_yUM3XB-ZH7)5D?q*7fNca zq&l)v&}q;@d5)IzZ3AvLx0*6(Is7v;jI&__%JRS>W)m#R(s7rnT>t3^FzfsqP_5Il z$x4;zA`(46ui)eC;A<%t2kpdp z=A^Hdpo}k+X)Cgn3I9wEl3dbp_a|^EdBoD%M;pG1!lDKEnNuUvR9O}CKeUYK3~z>z ze;sySAE<4Hm~z6!qRT#*(7a?Q;y*Z2!Ze3*-bP*VDxo}!zKicD|M>@Xw0m6ytDvuN z*!~187|uE=W*)${7NTu{o~OQzgC*wh64ulmSuXs&(!}_bufmw(rWx@OP7YI~o!s~9 zzYh-MN^o%sJTOOm?so!U9Gy7j$dd-4Y1dwTN?kX+Qd{-wGp+clRMss^p0UdWAyl~A zh>QP(Xhyl8_o2Ls+!rIrSi)DSRMK)eqFqWZd&_h}^CdowRyrt#)xeeD=>X|!2YiP? zK>mD{-xJ=}z;FB#fX z3KT3|ZbhFMaKmG72UxlXttmE{md{+gCk4x|rSXq3v{8H9rtzHPX@cib&r7jB-WLF@5bFci zoNv=NE;jd$O&s_-BZIIyE`2I*o={~LKIFZ z83E7}#^m8GrtP6oqiwP>{iHUi5?hosD&?^o6ued227fUem+q)VNbt%(uYWL)=|Kpx zF;PF+)s>16bQ;*Z#P})%OYw*4D57ng2D8M~wGyzofBeBl`F)cF3Bmcy5YOYWqX<;r znI!isvjO@vS8LS2sXwZ!s|_WKPA@^v2G^PLteCakFH@>)PiHF8*dHqKrUNk$)y1jP zkS%0#8NpS!D&kqVbqLjaB32OnZS}sYC39nL;RCie8(9w(me(Cidux1F^vRjXIZL zMZqjo;?Hv?9D+l3hTgh~iLA3L) zRED{20FY%BfBdgI*|-DH9dNI3D>Pg&wq*@_91!3a&i?=Z|9@Mu2;1D9TxN57ZxBUL zB99SEwYF6hGaE87deYA9QleN?)uhCTY?_*M<+EyvGH)K#)^dAnTYE}s2cGwG04C9Z zDFVt<-M7}ti@eHSwFZx4TIPA45A*OhmBig2Q~^m5P!UiOP)@m)l53FDIk~%vfi8-G z>Z;rWysLBX?iaO!tO%$Gs0b)bYtDK10gEDhWzRWpXG!B*;C1|)fGb0<`ldfkQS znNVo>Ip}dg+#%8o(hQiGAtQ=rfD^R|#qQH@x$B&eNsQo2ICwjF!QThD%7?07o6`vt z{EZ2Fz(0CYlRS!FF4+SnOq>TK*=zgh-CL7%3&(Ij;-J0P8f)E1!5MM{cR7N#_TKxg z*8v%GMCZS7NAyqr4_$&ifbBYfKq6Y$gD&S2{^R#+=g#}KKBy#;X!9oCAd)$FjYwlyc{69vroJ2|n8V6vHCTC8pu>cI<_B|BsAp@l z)UxY~VGF8=@I2rD0RjL=)?ziVek%TA&={U~TMyYo1QkS4+$iWyK2tZKf^Kkun&nKi z1x>MKWkXw9TkTF;R$6IeU3PViZR5JGTUpn*y6f)z)25%)N^OAcpx1W721*=s@__{( z$nnj%x=GRQw$l9)5%i=(C=Z@Tr~Oxqj1NMHix9Gm0Vl?JLVADRPbsxq^s(u-Ohr*` z0GPC9do@xYU@}z=14?K{3}A4hg`=8U)tWu38aW?k2Nw{W zG}zI{@+7C%VIH6EZ`VDirv(9$OaU@407&u?jjY8sS|kNBCDSbWsn|PaL;HL4YF=-P zML6)m`bZ-T*qB&_e+k-}O4`8XL#Gx4@jx(aXu|;^RyRNUZ@yIRtLpWwY9?1;u&v)c zq?lx@gPl8s01(#aMKZcSXEy2J!v(kkyQf8=7!(Jn#Cg_;z|2`UmAEM)cr%pG{NdV6WU~c zAOFi{sdvi$@75Xs;tP!-@yzt@j%l__JJFTy&OxG={+AkvB9~(h5`hsyJgTYv&m^~= zN5h6X3P7_v{F{ortsuGY1xOQSI?Xrz&3Sg<*lss1;HFOhtLIpl8f2h;|Xm4~QAOsMcLrC|Ykbbr_%uiA_nUo!X5NC@!tVL3+ zlA5OUJiA`|W&c(EVAzvh{yxV!>v|BjVmuhxBZ;JW{>QQ6zu}#4 zE5I^AS9B>FBXyf1NsjDn=Q!F<;6UK)7#6R5b8ks6>6C`DtpBq-yIP%6dgYR?$xg5E z0tn3fr>b?8tjLiwQOfk{WJ|wiJiXuc&1v5pPQV915`aJnfIcLMhAfJvB1)D`kb+E# zX3QcvG%fo>#j%Y<$6?;mlPNsQE^JIEIZKjN9{^zLm9ozgl`d%bRX+^e^^o=#ykJ^1_qje|WB%E-A zc%u!%4RW8P3#As*lN0~(#yLTY5bZJM;y~+1LqbDeQIRlQ^Yy2>{r6w32YT5r(%7>c zE+Qhq2_b|c1aX%2YyRG0vvpbR*czpog`Opy3`{_MeD8=k>lPNUB#~s6+7zrr5v6o% z%GXOaYv`%9hZHJD5v?JK?Tt1;xbXxdSX3}^!yQi&P{HHi)AQg10uBw2jD~|x!@z$` zG74&Du3#K|+S1)q5E2#2G&YppQ}`jWu4GauG2J8F@t&O+5o+b312OFW>$|C1sRUb*vpdy!u(BrfqC) zz39!j9i;uVUA{@p@}nd#n||JY<80L=dT#OZN?cU&$wMQe6Oz(0^NY)C>Kax%q`<)pZT6oo(5<-A~S~*Y#~3(Sgx%gy0n2394p!ej$vK z6w3>evRRJH9blmuR@5!~`E)qd$GOGL56@jj8*A(ZEOZG=89Q;xl6AZG+;8akse4RW zxc{%_D_{G~-~MA7WEevhDbv-`3pperH)LdkB%ZhM2xbcP$TA_q`8A% zG!;f&E`3A0k|dZIaw+1Lj+Tc{ze1qpRJ5BH@1(xhGqdt*T(9%FFM7or-|~)kdq1A~ z4CI~p{!oZ-94X|9(<<)So%;m-Y=(h>OB>IQDwCx`SSl}XK!sUvNyA5CrAGO{F)#6 z`2PAbY@~ZxWN93Qf$vzRE(<(IQv{AeAn@V!eC%Zsc&?)e97FxtZ8zuZ)p9ZKyEcZ} zS7ni#TwfOIALHhm+9J1AK@j+OIUU>7cTHVoX%dHlCy6Y9Bk%9mxwlPSl|>o_zGKOf zfT6&Pj}OdxK7+Qp$Nu2AxWQ z0K8EtWfCd|2#_mBsw7xPiEwwlY;5>N@c9L1RyL|p ze8L;9wv;LoZ-B~0&s4uf6!KCUC&G!Z7 z8^YSU5MaU!$AbW7Ju0%hbq@&>r=Gb{`8ymEjY+dXrOe>+tcT&U?JWyb8~0G6g)EXd z$!!-F%|xhJ1X*3vVptAg0OEcJNzyx&^K$ZoJOg$-US@i?a@x7o#9)uwpfP)I+PW+j zb-h|$IVsy*tmGxgn&)}dJdcm|;ub;!gO4)b<~y{;2Pxo!=Xb(Z@M`I)dqR?=X<}PP z2n^}Oy;sjefw!AY*XkWOm)jvTh+yNxDRnnk%ubJu zY(y>%7wuA83B36lT4|kZ9JVzEW7-`pBb$wvZY9$Dra}nAd zVEuht5ChXY}_QW>-5H&Z? z858|ox`{x6uZK>#Ang{VAbaj(bDp?0>nr-A}C76EQO~cLvznqN(V@vQF)e2r( zkE>oL$%p{=vj*V#xF8Oq@Ntyw4jBZw9grA@@tEg>)tM%X#;L3(LmO?M1KG4z_xe=V z9K2C&miFj?1a@CP7yx;p7CFO$`Z9Ixb*fdX8-ug8#?X2y9cWEGFgFIRS0cI{THb|` ziJ~TEF*k+Q`=GoMuM8hqeM1T2-;G&T15&#kFRk=~O|^ORU^eUZX7&WK_tMuX(&d&M z$p!^gj$=}BfP^{osOLfpctJeR!;zW{k1r4S2oe-iQ;mpGJ7a6Y^DtT4V>}CIr^=m) zFeq2Ls&@TZbk=*Ompawh6s$ZTrxIC-W{;5wX5)$JHv%AMI=-K|R-y#C)!Ol3(3d411LHCV{q5hS~LA_nolR0=#?x-qcI~fjN-V{ zmBz_jR!7<|nsq6-k zN3l+|xIZQ1m30Pt1>CAn`GiLWXUH@TW-@?8Ra_eQYxT?33vu{5A%Xc5v0Eo@sCn^E zt#2)N?w=F>`b%3_`xkIQBsx`SI3t_Vi@G@G#kcK$fU#2OY$iyLmZi`$Qk#!7D%A2(bsn^r-8Xy!S2bZ@1w&He0{ooa5Upc7Z18vt`4%k_zR zoX02gzSr`alPs?YBF@dWFmiD^Q52CQWcahXin&JeOmo$Ek1-gq)MfS zL{({1$o=DZywLhtrJUk>=>^lL8GYpY!!@(#G; ztHxtR3#Am@(aqU<(;Vv6a>a}03*fAbY|oF3HycA}G^|ujmZH2kOWuqSv>)}lV0yW-C>64VKy5Q)R~~x&2SMu@R8!hx8P}jV$3H81#U%K z3a_AK0^P?a?EOrcn~&j|mPI@_+j=wc#e~_%Yyfky&(dUTZF)V~@*|wTkbX?RY4I#} zO&TO0K;|I>>_Qi-IP-EfVhI7t@~-+2e59hLgs_;SuF0p-AR(}r)DT~j7zIuP@}?s7 zp>}~)#;?8;6}a-a?8U|XXfzz%kE=~PDTF&uxUju($xFSol6oIuSH6&c|fCQp$~g>o-Wpg~@OrK$M?3q+47@sY=((eUK7VUaCN0rrIs`*8*t zU~2A>0_EsE54!RcXfIN;Ms%r)NT|reV#ZJ7)TXUiBj7E~f%;-m#h9a*ZtynhDt5FY zjzuKVS{E;|ShuF&{AwWYy$bA_ci6DxvyuxjTf9=!+k08_SkX*h)BM9Xh+eH9GadhO zMu5x|Vm0dPmyleU-`CI&&4JZ7szVsk0M>OcF;1NtvH%92M0T^b2>0tF8nQ&0mr0ht zY4DA*K{-OQrA-8+3W57R9HcsN6Qs`DBAonAi?C6QKNM^}X0Zr^9hPGVJN{J92ADu=jrc{vncH-N zTX*Aov92k=gSed<5ji(e#c_ZZDggppTWb>cq>3Oab4SwSdw=J~_+?c%vyyOo^y=|^ z+{vp3q+vRaevyR@!slCaHyM@3d0I_ffHV7`EWO{=DZ{q|GyIIzfTk}XCiVOw6L$pI zg+@07p?D9F8f%eC5mRp@@!=E}WWLsdW%W34CME@XYAQSQz;8w5I)N0iIvfXCwmSwV0kCCx!UD(rWdUEtmqph zadL(97ox`sCse582gh|f_Gy-;i(&xjS`H9ZRV18)>vE+?3kLaR;7ILF#m94Z&mu@! z(M4tpvQqiw1Sy$j#1svAOFD`a-S30P&dY#1%c!1zGWT!)u zK)w0C6~1qN*-6yg-UF^|J_(iO&pu97E8lt8V%5%_d6XpQ_YBYKnE?m({=?d(-+lT! zz=}V8R1vDdc^#=~=zmOwdWF9R5qYG^=TckNMME2GLcRY;NArBAW!}>Ft*5XPh_uyF z7kH+W*sZ$f9X>X%&iVVX#dd6_@X@*1YnmR#Y;4bv)E#*8{e#*1b9^U}Y^>$8J;gfU zFu5`IOw}8mLD`Mm!~!%H>)|jQnc2}9Fh2;Mo@j2klxdOPt4d$DEXCi z+Od;d61s-xiAlaE*;8LJK2Tz3dc(qKOc+UqwLx^`b~(#s;3|_zb%U+fs5 zY-lz`9t@Iwq`#gU6|0T3z&P1VW;^#o-NWs14%Vy{i{PdoMxP7lW=pVgwffPRUWGO5 zvmbLP9#GJI;zJ}2(rg{2b$`iq(&7UB6)}}#;p);0AIYYtDg-k&g-ek>R0Dl03aBu? zi?dtK_?Aa_Ih}=m$Scg#D@in~JwSi7Y?IQL*FRapo8M%S37Rn{e5OQ_B9~Y($9(t<>>A0WsaeHD{1Yf_@3#icrC9OrsnO` zh5x5-zkB1jLE65c1U;qO#V!hWkoscmhs$bjaLCbicHsa6s|!56uaetcIwI^rcD9aY zLcl44i!I?N4V`EA_Y;_#KX)!P>$7J!t`XQ6EO1&}IDbB_>@QzlzsX67(sjvaCY%-Z z{Yvv#d@-)Jfj^T-$zo0s9r@OcjOw&76st|(5nr0NGEm+G~q`D+t9R4 z3`}t>0xK#6H3$nTalQ%z*i6Lpbj%#uYV-WY3NBoA4f&XjFl<4%n|M3*1l&mpEfuMe z+wlK=&#*Phc;O+j95{$e%=M`cAUX2`<@lGGvt|gZ4kD9>LNZ}BOJI%M9zc&hJPR$B zj6;W=zYje=bXPZcDyf_N-k=WXgA3H9i4?Wzxku!a{ySJFqVE1-E@RITyS9eHLNV&m zP5-URRpMp`YdHbLVt*P`<=1)V3Kgulij}mZZuiY4rLchCs==6ENS7Bl^F7F5Mp;#n zDvvDu)#7@xvQ9Vm00Rgc5ai#=RB_Z(hTP2}HC-^36-zEiQx!`ycWTAh7FB5Oh_yf7=U$3*>*Fe)QH zt_C^6#6nRlD=t`KF5jfN#2;B!tcX=?S5caHP!lv;4I{xa>`&f+`O6I5j>~mm+2@>j zfM@r!v*ws}S|!Hz1H`XMd?TF4y@{K)Iv;vonBtx_FiUD7j@RQP3c`h`l=$;m7rS^G zawYcuGQ(qJtNZr2p*}4O79*H}I2mC9(J-puhGRj|DJpC1gTdtyCT~U{WH5*y zfZ;=qIwgc=Adu?u2+i*qzq(R^nj+pS+gw>0uj4S#)MV*$3yZ=qtE;|ayvkqs6~!U5 zlbuB3^Uf8jb_olsYNp{cLVYm?zcAn)shH9{SU+E^S$Xam1*8aWRDx~y%s15jYw`((0Sgmh zRksUB{vEbcKe^^#UJ>NyjU~H>dn-Keo^4bBK@iiceOyJgZ@<>=ncmGBu2ku3sFMH%eU-BK+bF7s-5>?;z!m!9)(q8G_9qLp8 z*m#X7Vi9@C!Y0>*BoMY2g(Zc}qehppDA2>v<59e9)I82^b|oYV0wrDOV72Q&&Cww7 zz6ED}D#hD({z#ppMn3}N3eYj4%>?}WK*t2 z`Ajva9&}7JLD63{uiSs;fy>bx5u}MBw)Wbc4BJPslhVy@dstp0VQ(IHr|m-P$^2%_|5p>3 z8;LF;7dCAUP4{op1UqeEIF|Ma zcPOWg%ig%TAA93wpst;f+{`f$(!{p zUOBg?9zeHR0C#7(E+nTe1~De6gy(qAnR|dlr)yF3k4Y=S1&#J0=@E!*$EOA=U$4&z z?{K1!ff-2QuqUblvvY1KKym(~@*h;-0HLmKAUG|~3l#)9Trw15mP<+?2Gu~%zKD3N zQi*^u7@fXs)wy{w*-R7oG?@;T547m{OuoS+v4KpGK#8lxdJ->)7X`i-)?h^l<4TI| zuZkZVmNJ|TBTJL2k}|v+L-`ZS>R5+V`D(&f>ZH|9b2Mjt=OX>Ro*h%84rjPP;h@Yx zg>0C7cEblz*P@}3A-3;PgOOW7}3Y&UwdZ=mlCM{bjy?Z5` zr%c)=%;MS*HsxD-LwTO0rT*yl(M$&;9(!0HI|n>{WZ;_Urvvz&b1r@HeJ8Shom2*6 z1?747LGX{mwGKOXV2H~OYzy@l60Uv}oK)ADVi zWxXzb#T(V`-?tSxiY*>lHwRX}V=A}UZ%$vy znv`Qr=I z`Fjhar5{x!^0vH|YL!%l0*V)sSY>qSfb4}}ggq(lseQb*N(Ck+8Pn_njWY|o%-W9T#$V!ioWWAK1G7qNnqyd#{K2J>)LdHqf`PS>H5}2Xji7 z>W-6GfU;W~YvJBr$Yw*R`&O}WL^C&B*mW$B5cIg9Y%LY`qT!c8ED1Xaw?DxPI>px; z%iCGxPfElvWv20rj;qE5Gx|*KO8Gz=00YYf4T2vFA^A34i=|%zkqy||)V2l}0#BeuZNI3&n*yEZb~o9@{*j}~VyHARG1i(#puDh_ z$Lh<0Coh`CQ7mi2w)fd<3uXm*u`5UOv;$3kqi3SzEXR1~>ZiO_a{UoW-#Gh^5-*SAoBe#i zsMZFx6(7N4+A+_fU^##NmQ6WYJ9cTvK{7{ia7P%QX#onLQ_8<2md~<#>*piT-Hp)U zG#D&q!v_d<4?`RzSZR=GlZ$&ae19D)M>-ogDE5M`?&c;Le6|~y{a1H*j>Q;el{~-9L@jf7 z6TQmyCpEWY$jR2@a^q^-JF(J}2kf=TF~PhiSFTSWbjZP1FVSyKbN&y}ydU-2;uxQ1=F! zBHyP?jnfR1RGxsQbx>=I+rknh>?yMVTNy(z9@h=r+FSvVwP_nyteT(il&nGTYjBSf z&Q?+;dM)48`f`>F>>s&(7w&1RIrjRx7y21+*$K^wZ(I#I0SqyKa#UTDKeoG)a%Ca9 zH4IV<(~|Il_Nm$n#Ns_5&l+m}WA(V6#@@whx96YxHvsvW9Jrfn zedk|TV0vXG^<2=gCJlPwdYjq_oKM(!9cvQkBMTRSxmJr&s3}uu5E)3x^qhrL77Ka+ z1;+ZFgVDsp5Hw?i-K&0Nc7i)ch}IF z98c83^jR`!?YkS;#0VOm#YVSus9pTYVX%58A1i8!1Q%R9;o=G%v5v*ryF%gy$^Tsg z8X_kG{)DiDrtl%dt?t?SI^-InLuX?128WnIkahQx*_uaAT?~62wuLstNR;nhQt;+r z#!Kq^OBeoI!G03z`|)3cixAJ{AFKF1k52%kBi6Gx#W9aA@nXR^{uN0%vF?QT?)^Z3 z;8!3>9b5egw~8kR@vZy!qa+LTI4iukKzw|ebwkT-A#6#jvdx>$b(-aXEX+(O`R6gq zB|EoA%&-DymT)BJk0mx<<>@2FT??GVg@Evr5J1`Fso9B_jLT920WyUO2F_5Ybg69S zrYl*Y1XO=gaIu}^=~8A+2!7C)%q(n z|NNwW5%RL}Y2QZ4=eC(p1F3udFkzV(YXD?RFP|Nf*ny1g;VJyv_EN>w&FI>L(bWju zhw$L@YJ2(I*2YTO3A#$>`}pDYi~GRyT9thza16#X{D6w`%W$r^p^Q0fOqscRar8?T zW9QUQhNz&c_X!F5uw#0-4UFbu(!EGwi(TWeJWns~@An>xYg6n>B&d=GPqOzInN|B> zx+=5@hp_k14IUG=v9yIus_b?Tt+HOtV?;9|71Y&AKu=cc|Ai)mE0K)-J0P(imO;?P z&i5L7ruvWHf85)8oNP9_; z*DdR!A99lrT4R!M_uw#wh%j3U)~>9y1#aO2GPYvW0QkfQYMGt7_JnYPy^;W}w1r@n2Dw30G9*!ncMy>dF{_pj60ko_Rq|~aa0D&Ya z{#jp4HGWi(`1!Md6S|75A2raMB#95<;^RWT10sSozM)m4XlTFLs*&H3-Z$ItX+gJk zZ{8upH0k*cg)V%arR*n2mQ1aT$ebhkuVnUD?!xIgyU*^-m9qeyBqGpoBnCSXU&X^1 zgmcOtlFC$ZxLRoFufZ4f$rls(k$Q<&3uCpSsFy~)d?weW^anlI0;f4)#>xeD=Ci&Z zL8l8!9XLjxj0-Y0LR6wlCa!f9HiMs|LFzIQQ(q1N6-lV2ktWqz+W6*WJ{;;Kb413Z zn*@tL3wd3_TRFb#LF)Lz05NyeS#Z7m@T3lQlRxp$0v%IZeqz%#4-U@FNe@9NiUpPiE z;04)Y+6CAFV1BQ2=T}!3^~S~JsP%0#3SuG7@P1*PTq`K^b%E`xmpmR$)4*ZX#yo6! z>MTQ4(gVoH-1=*cfnbn=V15~-O9~XCO#(lv!csc?j^(^}asbr#$iJb#|0TbumCI-t z#nXs7`7X1bLrEzD+DYp)Kjr?aPiC=h0~~muXow|}msHmAx}FD~kv?E+rmZhu93QTi zMW;M%rB}NIc-fNlnKi^JpyYjt$nDoV9JEq3pt^ICcK&yVB;1b63S07VKdcHO2zc}m-rmNK z{|$XB6uvFdhMvVni;(iVV-O5?pTsM=-?6s#Ni+g281SJ3GbgVtDR|f3{_i9n2OkcT zUN+RS;o)BzMT$x)ZBuF#R2&l~9*W9LUXVtzNJymm z0omyRScxjzN8K>xc)jmDf`3zG`he9`$XlemMH|99Xoelw-Y?c4;L4&P$MQCP;4jXFCnv(y;=ARHRltBf=?Pr=#r{dO2*JDJ{(bJdl($D*EF3J}r}G!r z4nT*%<=Dj77r>bpsSM(?Be!V0Uc}HY6&73XX}xG$m=;${!)oP zg~CSh-^l92E8fUAa&+Rly6PSM+HJqC0mm7L<; zcVf=MYHt_nyWL&EAeBqS22wpafkcQ~m80t|vQY}4*#E%}^g8UUW&7ZQ|MBH}2m`z8 z6u`Ra~XWr=m{T0h43Vhs!#Ju(hF=fkO_q0ahfgqc&d^qXY$>o>cuLEUiRc&`R zfB!VeW(W93o01+u;m4EN1MGzh(hA${s>2B7*U3T4aPAhMwb~gk*?4U6gPa>wS+bSm zXYUW&e$6TenoVYYV{EKUsNL&Q%|un0z8ah0g&3z$B$%v&XXJyd`uRa9%^+(QJjALX zm7|M-b=qUPW;Y!yP(847Z9N)~1APxHjnQ0PG#cF5%nC(Pfw}75gdj1qM@sM8tRZ&p z@*#?=!HHzr^tsz#+|m9Qy7RXYBIph!sQeX(4i9n z91lI<2^mKRg6k0?n7Il9j~V_meiKlqYsOuddl#BKDvOJo>q#;Ba;q!^X}?{3B5Zlg z#M24Rb8e6|egOatM-#PkRx7Qh?sOIn_Ek*$D6Q+)?OwAT;;ur?tR{3b9Hd+|$naP6 zL^4pS0dzLTPQ!TyoDna)d@v6$#bD{O$S0v6pA%1#&O*YvJe3%^EL|SPAWc?A%|5n9O0=aZX?lglPWIu;SQ1sLL{oe-9Eb3uHQrORePkavK$?s-6r5QJ?;O1*FFKR#D&>b19yWe-hbE*; zigS%s7|Gc~F3P;tDyTq8n5|%9w|(+BmR3NBh?JNX#WuuV@Rui+MRh|qv7m}q`d<4< zh&Yq4Hs!DiZ3554w_3(hI8@e(KumPB+fX5{lb4%pY48j^Qv-bUXA09r8YDL&3#6e0 zyS<>FcW1+04IqT%1Ag%{2jw}E6&oY`<_v|ffw(|`39q-#ee$2cz;WNu#|bcVH41?C z7!s!DDsydTopT{>*LkXyZIB!_BaG_`BP2xG9XeleCv(x38shCKy~-2**t*JX@(B_y zThL8i{y`q_pFtj5YL#FRkf4f_Nt%Nsv=998|9#=U`FiQitH#6(m;wZGV5Jp`GE@4T zuNoOo`cQuDl9onOnsqD}h>DAST+110K;}HJ28_Akz9oQM4OVrM(KLJ`e6I|BG83Y2 z7rPBkyr2SQ_nUr9rZVNj`IoSUR446bb|=xPqUO&OFJS+Ajd+ROW7MYTIHZ)>B;c2z zr8Gs94yp^RG~qY&Kpyi3Gd@q17QpKrMWAtSh)dh&bQe})%?EYkLj`Lho4(d(I3k2eigb|uTGZ;0j zhk5E(S(qR|OeFvw&`t9Xq}2G0DWSh+Qg_PTYt`CvTN%ZdY?bFMe=a_;8(dK`qFZ;ykBC zG_7>lVNQpW0;J21+1=X(yqPCRmJtr)kboGyEey>E4(be6MBmJ_!=Ztu>0f4J14$F4*w%HC?pYt#wv<_!HSpR_HS6 zc;QFRL=#6@ap(A*3Jmupk!m@~6B=J@525s$Vgjcs|GN!X-p0j*2g89vC*$Fhn|tP{ zbN}B2=V5l2%wCxYpq1w{8MAdh>jJxAZqW~E{&P5Nj#wH^0q4=a;RdG zltn6@J?$Us0$TE}Yi`GhUX4pRY7~NsC+5+bF-kOy%BuYrvM_ACX%-d!LpUBIYLhEa zJKeX6aryX(lH6>}ybj0vVeYcSW@f3CxcH;n5DB?!fUUZ6Zv|3|a)uFXPVrH!#!+R6 zyw%jZBj-L+lesQW=jqg3>Nom&YZ+S>781<*(L}Rb(9ft!u3{fNi1IRs&dEz>elP(m z_`Rb(DN;bON-=?9iny>q;%NvuMO9?^m`1{s)M@EnGD(|72A_=5d{_HECTc%dw!IMLidSzX}s>XBOk4 zil9|}wp4loJIArVZ9D^^=Lu8`p9*FsARzPW^av^@I1TH$Tq}76G*vy2xRwZkkTJGQ zvBi@7GWeKkMTC(cjS}2ph}_43N5`Q)Qz}MLH7$f*rWYHvbNLr!x0wW-ihV!-tH=rL z>Qo5<4?{C&X$Y}Ls=7d{Zz#)4Fv?jBj~-DtZmx6(XQP|!ZmCAYd@O%b?Y1t2bDx8+ zc#nTH^{&B+&VuOOgvdrEHsqE?tuPjmI>F5&4Ayy&2hoF%9nypq(qG(3$&DBXQSD#kG1(X`<&6P4e z^99cNg`4Ch0 zj$>Bw>&Dx1oZu7gk1Dse9udMj=@#LoK0vKVzNpX)qeZ9~g)*eSg`rgeT&6LH*70R_ z$_k)s1)n1rbgt7>q#?3eJ0*J?&TFgkYRe{j4BITLz2(_D=2`vfiH`BXrYAd>@`r(( z+~2iQY-&C+(Xm)s*B_v%LsLzWIbd3Y=MH71F<$=GaiqRXj&6F`=Lz%KKAPuYAk2$^XwA5?{B4B0$uRA zz@W)czo@~IkYMKZ$LCs3)-x_H>IQgsT8(VKrAGL5ejoS{5MP>%o&g9+fJKTby#u{! z1jjK-sj6UTMGArnEl(s;P>vW&$C5ESK}x?s9*|ayyd_iJAWVW?KsL6kWwQPtEHvX7 zZM~6BpGi4Rb)TzBVdR!0=&Wz^gh!^=0jG)$V*mDm+@_;I&q

`-`
` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n// stylelint-disable-next-line selector-list-comma-newline-after\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: $headings-margin-bottom;\n}\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Remove the bottom border in Firefox 39-.\n// 5. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-original-title] { // 1\n text-decoration: underline; // 2\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n border-bottom: 0; // 4\n text-decoration-skip-ink: none; // 5\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // Undo browser default\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: $font-weight-bolder; // Add the correct font weight in Chrome, Edge, and Safari\n}\n\nsmall {\n @include font-size(80%); // Add the correct font size in all browsers\n}\n\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n//\n\nsub,\nsup {\n position: relative;\n @include font-size(75%);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n//\n// Links\n//\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n background-color: transparent; // Remove the gray background on active links in IE 10.\n\n @include hover() {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]) {\n color: inherit;\n text-decoration: none;\n\n @include hover() {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n//\n// Code\n//\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-monospace;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n}\n\npre {\n // Remove browser default top margin\n margin-top: 0;\n // Reset browser default of `1em` to use `rem`s\n margin-bottom: 1rem;\n // Don't allow content to break outside\n overflow: auto;\n}\n\n\n//\n// Figures\n//\n\nfigure {\n // Apply a consistent margin strategy (matches our type styles).\n margin: 0 0 1rem;\n}\n\n\n//\n// Images and content\n//\n\nimg {\n vertical-align: middle;\n border-style: none; // Remove the border on images inside links in IE 10-.\n}\n\nsvg {\n // Workaround for the SVG overflow bug in IE10/11 is still required.\n // See https://github.com/twbs/bootstrap/issues/26878\n overflow: hidden;\n vertical-align: middle;\n}\n\n\n//\n// Tables\n//\n\ntable {\n border-collapse: collapse; // Prevent double borders\n}\n\ncaption {\n padding-top: $table-cell-padding;\n padding-bottom: $table-cell-padding;\n color: $table-caption-color;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n // Matches default `` alignment by inheriting from the ``, or the\n // closest parent with a set `text-align`.\n text-align: inherit;\n}\n\n\n//\n// Forms\n//\n\nlabel {\n // Allow labels to use `margin` for spacing.\n display: inline-block;\n margin-bottom: $label-margin-bottom;\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24093\nbutton {\n // stylelint-disable-next-line property-blacklist\n border-radius: 0;\n}\n\n// Work around a Firefox/IE bug where the transparent `button` background\n// results in a loss of the default `button` focus styles.\n//\n// Credit: https://github.com/suitcss/base/\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // Remove the margin in Firefox and Safari\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible; // Show the overflow in Edge\n}\n\nbutton,\nselect {\n text-transform: none; // Remove the inheritance of text transform in Firefox\n}\n\n// Remove the inheritance of word-wrap in Safari.\n//\n// Details at https://github.com/twbs/bootstrap/issues/24990\nselect {\n word-wrap: normal;\n}\n\n\n// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`\n// controls in Android 4.\n// 2. Correct the inability to style clickable types in iOS and Safari.\nbutton,\n[type=\"button\"], // 1\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button; // 2\n}\n\n// Opinionated: add \"hand\" cursor to non-disabled button elements.\n@if $enable-pointer-cursor-for-buttons {\n button,\n [type=\"button\"],\n [type=\"reset\"],\n [type=\"submit\"] {\n &:not(:disabled) {\n cursor: pointer;\n }\n }\n}\n\n// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box; // 1. Add the correct box sizing in IE 10-\n padding: 0; // 2. Remove the padding in IE 10-\n}\n\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n // Remove the default appearance of temporal inputs to avoid a Mobile Safari\n // bug where setting a custom line-height prevents text from being vertically\n // centered within the input.\n // See https://bugs.webkit.org/show_bug.cgi?id=139848\n // and https://github.com/twbs/bootstrap/issues/11266\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto; // Remove the default vertical scrollbar in IE.\n // Textareas should really only resize vertically so they don't break their (horizontal) containers.\n resize: vertical;\n}\n\nfieldset {\n // Browsers set a default `min-width: min-content;` on fieldsets,\n // unlike e.g. `

`s, which have `min-width: 0;` by default.\n // So we reset that to ensure fieldsets behave more like a standard block element.\n // See https://github.com/twbs/bootstrap/issues/12359\n // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements\n min-width: 0;\n // Reset the default outline behavior of fieldsets so they don't affect page layout.\n padding: 0;\n margin: 0;\n border: 0;\n}\n\n// 1. Correct the text wrapping in Edge and IE.\n// 2. Correct the color inheritance from `fieldset` elements in IE.\nlegend {\n display: block;\n width: 100%;\n max-width: 100%; // 1\n padding: 0;\n margin-bottom: .5rem;\n @include font-size(1.5rem);\n line-height: inherit;\n color: inherit; // 2\n white-space: normal; // 1\n}\n\nprogress {\n vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.\n}\n\n// Correct the cursor style of increment and decrement buttons in Chrome.\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n // This overrides the extra rounded corners on search inputs in iOS so that our\n // `.form-control` class can properly style them. Note that this cannot simply\n // be added to `.form-control` as it's not specific enough. For details, see\n // https://github.com/twbs/bootstrap/issues/11586.\n outline-offset: -2px; // 2. Correct the outline style in Safari.\n -webkit-appearance: none;\n}\n\n//\n// Remove the inner padding in Chrome and Safari on macOS.\n//\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n//\n// 1. Correct the inability to style clickable types in iOS and Safari.\n// 2. Change font properties to `inherit` in Safari.\n//\n\n::-webkit-file-upload-button {\n font: inherit; // 2\n -webkit-appearance: button; // 1\n}\n\n//\n// Correct element displays\n//\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item; // Add the correct display in all browsers\n cursor: pointer;\n}\n\ntemplate {\n display: none; // Add the correct display in IE\n}\n\n// Always hide an element with the `hidden` HTML attribute (from PureCSS).\n// Needed for proper display in IE 10-.\n[hidden] {\n display: none !important;\n}\n","// Variables\n//\n// Variables should follow the `$component-state-property-size` formula for\n// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.\n\n// Color system\n\n$white: #fff !default;\n$gray-100: #f8f9fa !default;\n$gray-200: #e9ecef !default;\n$gray-300: #dee2e6 !default;\n$gray-400: #ced4da !default;\n$gray-500: #adb5bd !default;\n$gray-600: #6c757d !default;\n$gray-700: #495057 !default;\n$gray-800: #343a40 !default;\n$gray-900: #212529 !default;\n$black: #000 !default;\n\n$grays: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$grays: map-merge(\n (\n \"100\": $gray-100,\n \"200\": $gray-200,\n \"300\": $gray-300,\n \"400\": $gray-400,\n \"500\": $gray-500,\n \"600\": $gray-600,\n \"700\": $gray-700,\n \"800\": $gray-800,\n \"900\": $gray-900\n ),\n $grays\n);\n\n$blue: #007bff !default;\n$indigo: #6610f2 !default;\n$purple: #6f42c1 !default;\n$pink: #e83e8c !default;\n$red: #dc3545 !default;\n$orange: #fd7e14 !default;\n$yellow: #ffc107 !default;\n$green: #28a745 !default;\n$teal: #20c997 !default;\n$cyan: #17a2b8 !default;\n\n$colors: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$colors: map-merge(\n (\n \"blue\": $blue,\n \"indigo\": $indigo,\n \"purple\": $purple,\n \"pink\": $pink,\n \"red\": $red,\n \"orange\": $orange,\n \"yellow\": $yellow,\n \"green\": $green,\n \"teal\": $teal,\n \"cyan\": $cyan,\n \"white\": $white,\n \"gray\": $gray-600,\n \"gray-dark\": $gray-800\n ),\n $colors\n);\n\n$primary: $blue !default;\n$secondary: $gray-600 !default;\n$success: $green !default;\n$info: $cyan !default;\n$warning: $yellow !default;\n$danger: $red !default;\n$light: $gray-100 !default;\n$dark: $gray-800 !default;\n\n$theme-colors: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$theme-colors: map-merge(\n (\n \"primary\": $primary,\n \"secondary\": $secondary,\n \"success\": $success,\n \"info\": $info,\n \"warning\": $warning,\n \"danger\": $danger,\n \"light\": $light,\n \"dark\": $dark\n ),\n $theme-colors\n);\n\n// Set a specific jump point for requesting color jumps\n$theme-color-interval: 8% !default;\n\n// The yiq lightness value that determines when the lightness of color changes from \"dark\" to \"light\". Acceptable values are between 0 and 255.\n$yiq-contrasted-threshold: 150 !default;\n\n// Customize the light and dark text colors for use in our YIQ color contrast function.\n$yiq-text-dark: $gray-900 !default;\n$yiq-text-light: $white !default;\n\n// Characters which are escaped by the escape-svg function\n$escaped-characters: (\n (\"<\",\"%3c\"),\n (\">\",\"%3e\"),\n (\"#\",\"%23\"),\n) !default;\n\n\n// Options\n//\n// Quickly modify global styling by enabling or disabling optional features.\n\n$enable-caret: true !default;\n$enable-rounded: true !default;\n$enable-shadows: false !default;\n$enable-gradients: false !default;\n$enable-transitions: true !default;\n$enable-prefers-reduced-motion-media-query: true !default;\n$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS\n$enable-grid-classes: true !default;\n$enable-pointer-cursor-for-buttons: true !default;\n$enable-print-styles: true !default;\n$enable-responsive-font-sizes: false !default;\n$enable-validation-icons: true !default;\n$enable-deprecation-messages: true !default;\n\n\n// Spacing\n//\n// Control the default styling of most Bootstrap elements by modifying these\n// variables. Mostly focused on spacing.\n// You can add more entries to the $spacers map, should you need more variation.\n\n$spacer: 1rem !default;\n$spacers: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$spacers: map-merge(\n (\n 0: 0,\n 1: ($spacer * .25),\n 2: ($spacer * .5),\n 3: $spacer,\n 4: ($spacer * 1.5),\n 5: ($spacer * 3)\n ),\n $spacers\n);\n\n// This variable affects the `.h-*` and `.w-*` classes.\n$sizes: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$sizes: map-merge(\n (\n 25: 25%,\n 50: 50%,\n 75: 75%,\n 100: 100%,\n auto: auto\n ),\n $sizes\n);\n\n\n// Body\n//\n// Settings for the `` element.\n\n$body-bg: $white !default;\n$body-color: $gray-900 !default;\n\n\n// Links\n//\n// Style anchor elements.\n\n$link-color: theme-color(\"primary\") !default;\n$link-decoration: none !default;\n$link-hover-color: darken($link-color, 15%) !default;\n$link-hover-decoration: underline !default;\n// Darken percentage for links with `.text-*` class (e.g. `.text-success`)\n$emphasized-link-hover-darken-percentage: 15% !default;\n\n// Paragraphs\n//\n// Style p element.\n\n$paragraph-margin-bottom: 1rem !default;\n\n\n// Grid breakpoints\n//\n// Define the minimum dimensions at which your layout will change,\n// adapting to different screen sizes, for use in media queries.\n\n$grid-breakpoints: (\n xs: 0,\n sm: 576px,\n md: 768px,\n lg: 992px,\n xl: 1200px\n) !default;\n\n@include _assert-ascending($grid-breakpoints, \"$grid-breakpoints\");\n@include _assert-starts-at-zero($grid-breakpoints, \"$grid-breakpoints\");\n\n\n// Grid containers\n//\n// Define the maximum width of `.container` for different screen sizes.\n\n$container-max-widths: (\n sm: 540px,\n md: 720px,\n lg: 960px,\n xl: 1140px\n) !default;\n\n@include _assert-ascending($container-max-widths, \"$container-max-widths\");\n\n\n// Grid columns\n//\n// Set the number of columns and specify the width of the gutters.\n\n$grid-columns: 12 !default;\n$grid-gutter-width: 30px !default;\n$grid-row-columns: 6 !default;\n\n\n// Components\n//\n// Define common padding and border radius sizes and more.\n\n$line-height-lg: 1.5 !default;\n$line-height-sm: 1.5 !default;\n\n$border-width: 1px !default;\n$border-color: $gray-300 !default;\n\n$border-radius: .25rem !default;\n$border-radius-lg: .3rem !default;\n$border-radius-sm: .2rem !default;\n\n$rounded-pill: 50rem !default;\n\n$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;\n$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;\n$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;\n\n$component-active-color: $white !default;\n$component-active-bg: theme-color(\"primary\") !default;\n\n$caret-width: .3em !default;\n$caret-vertical-align: $caret-width * .85 !default;\n$caret-spacing: $caret-width * .85 !default;\n\n$transition-base: all .2s ease-in-out !default;\n$transition-fade: opacity .15s linear !default;\n$transition-collapse: height .35s ease !default;\n\n$embed-responsive-aspect-ratios: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$embed-responsive-aspect-ratios: join(\n (\n (21 9),\n (16 9),\n (4 3),\n (1 1),\n ),\n $embed-responsive-aspect-ratios\n);\n\n// Typography\n//\n// Font, line-height, and color for body text, headings, and more.\n\n// stylelint-disable value-keyword-case\n$font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\" !default;\n$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !default;\n$font-family-base: $font-family-sans-serif !default;\n// stylelint-enable value-keyword-case\n\n$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`\n$font-size-lg: $font-size-base * 1.25 !default;\n$font-size-sm: $font-size-base * .875 !default;\n\n$font-weight-lighter: lighter !default;\n$font-weight-light: 300 !default;\n$font-weight-normal: 400 !default;\n$font-weight-bold: 700 !default;\n$font-weight-bolder: bolder !default;\n\n$font-weight-base: $font-weight-normal !default;\n$line-height-base: 1.5 !default;\n\n$h1-font-size: $font-size-base * 2.5 !default;\n$h2-font-size: $font-size-base * 2 !default;\n$h3-font-size: $font-size-base * 1.75 !default;\n$h4-font-size: $font-size-base * 1.5 !default;\n$h5-font-size: $font-size-base * 1.25 !default;\n$h6-font-size: $font-size-base !default;\n\n$headings-margin-bottom: $spacer / 2 !default;\n$headings-font-family: null !default;\n$headings-font-weight: 500 !default;\n$headings-line-height: 1.2 !default;\n$headings-color: null !default;\n\n$display1-size: 6rem !default;\n$display2-size: 5.5rem !default;\n$display3-size: 4.5rem !default;\n$display4-size: 3.5rem !default;\n\n$display1-weight: 300 !default;\n$display2-weight: 300 !default;\n$display3-weight: 300 !default;\n$display4-weight: 300 !default;\n$display-line-height: $headings-line-height !default;\n\n$lead-font-size: $font-size-base * 1.25 !default;\n$lead-font-weight: 300 !default;\n\n$small-font-size: 80% !default;\n\n$text-muted: $gray-600 !default;\n\n$blockquote-small-color: $gray-600 !default;\n$blockquote-small-font-size: $small-font-size !default;\n$blockquote-font-size: $font-size-base * 1.25 !default;\n\n$hr-border-color: rgba($black, .1) !default;\n$hr-border-width: $border-width !default;\n\n$mark-padding: .2em !default;\n\n$dt-font-weight: $font-weight-bold !default;\n\n$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;\n$nested-kbd-font-weight: $font-weight-bold !default;\n\n$list-inline-padding: .5rem !default;\n\n$mark-bg: #fcf8e3 !default;\n\n$hr-margin-y: $spacer !default;\n\n\n// Tables\n//\n// Customizes the `.table` component with basic values, each used across all table variations.\n\n$table-cell-padding: .75rem !default;\n$table-cell-padding-sm: .3rem !default;\n\n$table-color: $body-color !default;\n$table-bg: null !default;\n$table-accent-bg: rgba($black, .05) !default;\n$table-hover-color: $table-color !default;\n$table-hover-bg: rgba($black, .075) !default;\n$table-active-bg: $table-hover-bg !default;\n\n$table-border-width: $border-width !default;\n$table-border-color: $border-color !default;\n\n$table-head-bg: $gray-200 !default;\n$table-head-color: $gray-700 !default;\n\n$table-dark-color: $white !default;\n$table-dark-bg: $gray-800 !default;\n$table-dark-accent-bg: rgba($white, .05) !default;\n$table-dark-hover-color: $table-dark-color !default;\n$table-dark-hover-bg: rgba($white, .075) !default;\n$table-dark-border-color: lighten($table-dark-bg, 7.5%) !default;\n\n$table-striped-order: odd !default;\n\n$table-caption-color: $text-muted !default;\n\n$table-bg-level: -9 !default;\n$table-border-level: -6 !default;\n\n\n// Buttons + Forms\n//\n// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.\n\n$input-btn-padding-y: .375rem !default;\n$input-btn-padding-x: .75rem !default;\n$input-btn-font-family: null !default;\n$input-btn-font-size: $font-size-base !default;\n$input-btn-line-height: $line-height-base !default;\n\n$input-btn-focus-width: .2rem !default;\n$input-btn-focus-color: rgba($component-active-bg, .25) !default;\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;\n\n$input-btn-padding-y-sm: .25rem !default;\n$input-btn-padding-x-sm: .5rem !default;\n$input-btn-font-size-sm: $font-size-sm !default;\n$input-btn-line-height-sm: $line-height-sm !default;\n\n$input-btn-padding-y-lg: .5rem !default;\n$input-btn-padding-x-lg: 1rem !default;\n$input-btn-font-size-lg: $font-size-lg !default;\n$input-btn-line-height-lg: $line-height-lg !default;\n\n$input-btn-border-width: $border-width !default;\n\n\n// Buttons\n//\n// For each of Bootstrap's buttons, define text, background, and border color.\n\n$btn-padding-y: $input-btn-padding-y !default;\n$btn-padding-x: $input-btn-padding-x !default;\n$btn-font-family: $input-btn-font-family !default;\n$btn-font-size: $input-btn-font-size !default;\n$btn-line-height: $input-btn-line-height !default;\n$btn-white-space: null !default; // Set to `nowrap` to prevent text wrapping\n\n$btn-padding-y-sm: $input-btn-padding-y-sm !default;\n$btn-padding-x-sm: $input-btn-padding-x-sm !default;\n$btn-font-size-sm: $input-btn-font-size-sm !default;\n$btn-line-height-sm: $input-btn-line-height-sm !default;\n\n$btn-padding-y-lg: $input-btn-padding-y-lg !default;\n$btn-padding-x-lg: $input-btn-padding-x-lg !default;\n$btn-font-size-lg: $input-btn-font-size-lg !default;\n$btn-line-height-lg: $input-btn-line-height-lg !default;\n\n$btn-border-width: $input-btn-border-width !default;\n\n$btn-font-weight: $font-weight-normal !default;\n$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;\n$btn-focus-width: $input-btn-focus-width !default;\n$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$btn-disabled-opacity: .65 !default;\n$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;\n\n$btn-link-disabled-color: $gray-600 !default;\n\n$btn-block-spacing-y: .5rem !default;\n\n// Allows for customizing button radius independently from global border radius\n$btn-border-radius: $border-radius !default;\n$btn-border-radius-lg: $border-radius-lg !default;\n$btn-border-radius-sm: $border-radius-sm !default;\n\n$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n\n// Forms\n\n$label-margin-bottom: .5rem !default;\n\n$input-padding-y: $input-btn-padding-y !default;\n$input-padding-x: $input-btn-padding-x !default;\n$input-font-family: $input-btn-font-family !default;\n$input-font-size: $input-btn-font-size !default;\n$input-font-weight: $font-weight-base !default;\n$input-line-height: $input-btn-line-height !default;\n\n$input-padding-y-sm: $input-btn-padding-y-sm !default;\n$input-padding-x-sm: $input-btn-padding-x-sm !default;\n$input-font-size-sm: $input-btn-font-size-sm !default;\n$input-line-height-sm: $input-btn-line-height-sm !default;\n\n$input-padding-y-lg: $input-btn-padding-y-lg !default;\n$input-padding-x-lg: $input-btn-padding-x-lg !default;\n$input-font-size-lg: $input-btn-font-size-lg !default;\n$input-line-height-lg: $input-btn-line-height-lg !default;\n\n$input-bg: $white !default;\n$input-disabled-bg: $gray-200 !default;\n\n$input-color: $gray-700 !default;\n$input-border-color: $gray-400 !default;\n$input-border-width: $input-btn-border-width !default;\n$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;\n\n$input-border-radius: $border-radius !default;\n$input-border-radius-lg: $border-radius-lg !default;\n$input-border-radius-sm: $border-radius-sm !default;\n\n$input-focus-bg: $input-bg !default;\n$input-focus-border-color: lighten($component-active-bg, 25%) !default;\n$input-focus-color: $input-color !default;\n$input-focus-width: $input-btn-focus-width !default;\n$input-focus-box-shadow: $input-btn-focus-box-shadow !default;\n\n$input-placeholder-color: $gray-600 !default;\n$input-plaintext-color: $body-color !default;\n\n$input-height-border: $input-border-width * 2 !default;\n\n$input-height-inner: add($input-line-height * 1em, $input-padding-y * 2) !default;\n$input-height-inner-half: add($input-line-height * .5em, $input-padding-y) !default;\n$input-height-inner-quarter: add($input-line-height * .25em, $input-padding-y / 2) !default;\n\n$input-height: add($input-line-height * 1em, add($input-padding-y * 2, $input-height-border, false)) !default;\n$input-height-sm: add($input-line-height-sm * 1em, add($input-padding-y-sm * 2, $input-height-border, false)) !default;\n$input-height-lg: add($input-line-height-lg * 1em, add($input-padding-y-lg * 2, $input-height-border, false)) !default;\n\n$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$form-text-margin-top: .25rem !default;\n\n$form-check-input-gutter: 1.25rem !default;\n$form-check-input-margin-y: .3rem !default;\n$form-check-input-margin-x: .25rem !default;\n\n$form-check-inline-margin-x: .75rem !default;\n$form-check-inline-input-margin-x: .3125rem !default;\n\n$form-grid-gutter-width: 10px !default;\n$form-group-margin-bottom: 1rem !default;\n\n$input-group-addon-color: $input-color !default;\n$input-group-addon-bg: $gray-200 !default;\n$input-group-addon-border-color: $input-border-color !default;\n\n$custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;\n\n$custom-control-gutter: .5rem !default;\n$custom-control-spacer-x: 1rem !default;\n$custom-control-cursor: null !default;\n\n$custom-control-indicator-size: 1rem !default;\n$custom-control-indicator-bg: $input-bg !default;\n\n$custom-control-indicator-bg-size: 50% 50% !default;\n$custom-control-indicator-box-shadow: $input-box-shadow !default;\n$custom-control-indicator-border-color: $gray-500 !default;\n$custom-control-indicator-border-width: $input-border-width !default;\n\n$custom-control-label-color: null !default;\n\n$custom-control-indicator-disabled-bg: $input-disabled-bg !default;\n$custom-control-label-disabled-color: $gray-600 !default;\n\n$custom-control-indicator-checked-color: $component-active-color !default;\n$custom-control-indicator-checked-bg: $component-active-bg !default;\n$custom-control-indicator-checked-disabled-bg: rgba(theme-color(\"primary\"), .5) !default;\n$custom-control-indicator-checked-box-shadow: none !default;\n$custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default;\n\n$custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-control-indicator-focus-border-color: $input-focus-border-color !default;\n\n$custom-control-indicator-active-color: $component-active-color !default;\n$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-control-indicator-active-box-shadow: none !default;\n$custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default;\n\n$custom-checkbox-indicator-border-radius: $border-radius !default;\n$custom-checkbox-indicator-icon-checked: url(\"data:image/svg+xml,\") !default;\n\n$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;\n$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;\n$custom-checkbox-indicator-icon-indeterminate: url(\"data:image/svg+xml,\") !default;\n$custom-checkbox-indicator-indeterminate-box-shadow: none !default;\n$custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default;\n\n$custom-radio-indicator-border-radius: 50% !default;\n$custom-radio-indicator-icon-checked: url(\"data:image/svg+xml,\") !default;\n\n$custom-switch-width: $custom-control-indicator-size * 1.75 !default;\n$custom-switch-indicator-border-radius: $custom-control-indicator-size / 2 !default;\n$custom-switch-indicator-size: subtract($custom-control-indicator-size, $custom-control-indicator-border-width * 4) !default;\n\n$custom-select-padding-y: $input-padding-y !default;\n$custom-select-padding-x: $input-padding-x !default;\n$custom-select-font-family: $input-font-family !default;\n$custom-select-font-size: $input-font-size !default;\n$custom-select-height: $input-height !default;\n$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator\n$custom-select-font-weight: $input-font-weight !default;\n$custom-select-line-height: $input-line-height !default;\n$custom-select-color: $input-color !default;\n$custom-select-disabled-color: $gray-600 !default;\n$custom-select-bg: $input-bg !default;\n$custom-select-disabled-bg: $gray-200 !default;\n$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions\n$custom-select-indicator-color: $gray-800 !default;\n$custom-select-indicator: url(\"data:image/svg+xml,\") !default;\n$custom-select-background: escape-svg($custom-select-indicator) no-repeat right $custom-select-padding-x center / $custom-select-bg-size !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon)\n\n$custom-select-feedback-icon-padding-right: add(1em * .75, (2 * $custom-select-padding-y * .75) + $custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default;\n$custom-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default;\n\n$custom-select-border-width: $input-border-width !default;\n$custom-select-border-color: $input-border-color !default;\n$custom-select-border-radius: $border-radius !default;\n$custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;\n\n$custom-select-focus-border-color: $input-focus-border-color !default;\n$custom-select-focus-width: $input-focus-width !default;\n$custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width $input-btn-focus-color !default;\n\n$custom-select-padding-y-sm: $input-padding-y-sm !default;\n$custom-select-padding-x-sm: $input-padding-x-sm !default;\n$custom-select-font-size-sm: $input-font-size-sm !default;\n$custom-select-height-sm: $input-height-sm !default;\n\n$custom-select-padding-y-lg: $input-padding-y-lg !default;\n$custom-select-padding-x-lg: $input-padding-x-lg !default;\n$custom-select-font-size-lg: $input-font-size-lg !default;\n$custom-select-height-lg: $input-height-lg !default;\n\n$custom-range-track-width: 100% !default;\n$custom-range-track-height: .5rem !default;\n$custom-range-track-cursor: pointer !default;\n$custom-range-track-bg: $gray-300 !default;\n$custom-range-track-border-radius: 1rem !default;\n$custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;\n\n$custom-range-thumb-width: 1rem !default;\n$custom-range-thumb-height: $custom-range-thumb-width !default;\n$custom-range-thumb-bg: $component-active-bg !default;\n$custom-range-thumb-border: 0 !default;\n$custom-range-thumb-border-radius: 1rem !default;\n$custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;\n$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default;\n$custom-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in IE/Edge\n$custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;\n$custom-range-thumb-disabled-bg: $gray-500 !default;\n\n$custom-file-height: $input-height !default;\n$custom-file-height-inner: $input-height-inner !default;\n$custom-file-focus-border-color: $input-focus-border-color !default;\n$custom-file-focus-box-shadow: $input-focus-box-shadow !default;\n$custom-file-disabled-bg: $input-disabled-bg !default;\n\n$custom-file-padding-y: $input-padding-y !default;\n$custom-file-padding-x: $input-padding-x !default;\n$custom-file-line-height: $input-line-height !default;\n$custom-file-font-family: $input-font-family !default;\n$custom-file-font-weight: $input-font-weight !default;\n$custom-file-color: $input-color !default;\n$custom-file-bg: $input-bg !default;\n$custom-file-border-width: $input-border-width !default;\n$custom-file-border-color: $input-border-color !default;\n$custom-file-border-radius: $input-border-radius !default;\n$custom-file-box-shadow: $input-box-shadow !default;\n$custom-file-button-color: $custom-file-color !default;\n$custom-file-button-bg: $input-group-addon-bg !default;\n$custom-file-text: (\n en: \"Browse\"\n) !default;\n\n\n// Form validation\n\n$form-feedback-margin-top: $form-text-margin-top !default;\n$form-feedback-font-size: $small-font-size !default;\n$form-feedback-valid-color: theme-color(\"success\") !default;\n$form-feedback-invalid-color: theme-color(\"danger\") !default;\n\n$form-feedback-icon-valid-color: $form-feedback-valid-color !default;\n$form-feedback-icon-valid: url(\"data:image/svg+xml,\") !default;\n$form-feedback-icon-invalid-color: $form-feedback-invalid-color !default;\n$form-feedback-icon-invalid: url(\"data:image/svg+xml,\") !default;\n\n$form-validation-states: () !default;\n// stylelint-disable-next-line scss/dollar-variable-default\n$form-validation-states: map-merge(\n (\n \"valid\": (\n \"color\": $form-feedback-valid-color,\n \"icon\": $form-feedback-icon-valid\n ),\n \"invalid\": (\n \"color\": $form-feedback-invalid-color,\n \"icon\": $form-feedback-icon-invalid\n ),\n ),\n $form-validation-states\n);\n\n// Z-index master list\n//\n// Warning: Avoid customizing these values. They're used for a bird's eye view\n// of components dependent on the z-axis and are designed to all work together.\n\n$zindex-dropdown: 1000 !default;\n$zindex-sticky: 1020 !default;\n$zindex-fixed: 1030 !default;\n$zindex-modal-backdrop: 1040 !default;\n$zindex-modal: 1050 !default;\n$zindex-popover: 1060 !default;\n$zindex-tooltip: 1070 !default;\n\n\n// Navs\n\n$nav-link-padding-y: .5rem !default;\n$nav-link-padding-x: 1rem !default;\n$nav-link-disabled-color: $gray-600 !default;\n\n$nav-tabs-border-color: $gray-300 !default;\n$nav-tabs-border-width: $border-width !default;\n$nav-tabs-border-radius: $border-radius !default;\n$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;\n$nav-tabs-link-active-color: $gray-700 !default;\n$nav-tabs-link-active-bg: $body-bg !default;\n$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;\n\n$nav-pills-border-radius: $border-radius !default;\n$nav-pills-link-active-color: $component-active-color !default;\n$nav-pills-link-active-bg: $component-active-bg !default;\n\n$nav-divider-color: $gray-200 !default;\n$nav-divider-margin-y: $spacer / 2 !default;\n\n\n// Navbar\n\n$navbar-padding-y: $spacer / 2 !default;\n$navbar-padding-x: $spacer !default;\n\n$navbar-nav-link-padding-x: .5rem !default;\n\n$navbar-brand-font-size: $font-size-lg !default;\n// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link\n$nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default;\n$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;\n$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;\n\n$navbar-toggler-padding-y: .25rem !default;\n$navbar-toggler-padding-x: .75rem !default;\n$navbar-toggler-font-size: $font-size-lg !default;\n$navbar-toggler-border-radius: $btn-border-radius !default;\n\n$navbar-dark-color: rgba($white, .5) !default;\n$navbar-dark-hover-color: rgba($white, .75) !default;\n$navbar-dark-active-color: $white !default;\n$navbar-dark-disabled-color: rgba($white, .25) !default;\n$navbar-dark-toggler-icon-bg: url(\"data:image/svg+xml,\") !default;\n$navbar-dark-toggler-border-color: rgba($white, .1) !default;\n\n$navbar-light-color: rgba($black, .5) !default;\n$navbar-light-hover-color: rgba($black, .7) !default;\n$navbar-light-active-color: rgba($black, .9) !default;\n$navbar-light-disabled-color: rgba($black, .3) !default;\n$navbar-light-toggler-icon-bg: url(\"data:image/svg+xml,\") !default;\n$navbar-light-toggler-border-color: rgba($black, .1) !default;\n\n$navbar-light-brand-color: $navbar-light-active-color !default;\n$navbar-light-brand-hover-color: $navbar-light-active-color !default;\n$navbar-dark-brand-color: $navbar-dark-active-color !default;\n$navbar-dark-brand-hover-color: $navbar-dark-active-color !default;\n\n\n// Dropdowns\n//\n// Dropdown menu container and contents.\n\n$dropdown-min-width: 10rem !default;\n$dropdown-padding-y: .5rem !default;\n$dropdown-spacer: .125rem !default;\n$dropdown-font-size: $font-size-base !default;\n$dropdown-color: $body-color !default;\n$dropdown-bg: $white !default;\n$dropdown-border-color: rgba($black, .15) !default;\n$dropdown-border-radius: $border-radius !default;\n$dropdown-border-width: $border-width !default;\n$dropdown-inner-border-radius: subtract($dropdown-border-radius, $dropdown-border-width) !default;\n$dropdown-divider-bg: $gray-200 !default;\n$dropdown-divider-margin-y: $nav-divider-margin-y !default;\n$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;\n\n$dropdown-link-color: $gray-900 !default;\n$dropdown-link-hover-color: darken($gray-900, 5%) !default;\n$dropdown-link-hover-bg: $gray-100 !default;\n\n$dropdown-link-active-color: $component-active-color !default;\n$dropdown-link-active-bg: $component-active-bg !default;\n\n$dropdown-link-disabled-color: $gray-600 !default;\n\n$dropdown-item-padding-y: .25rem !default;\n$dropdown-item-padding-x: 1.5rem !default;\n\n$dropdown-header-color: $gray-600 !default;\n\n\n// Pagination\n\n$pagination-padding-y: .5rem !default;\n$pagination-padding-x: .75rem !default;\n$pagination-padding-y-sm: .25rem !default;\n$pagination-padding-x-sm: .5rem !default;\n$pagination-padding-y-lg: .75rem !default;\n$pagination-padding-x-lg: 1.5rem !default;\n$pagination-line-height: 1.25 !default;\n\n$pagination-color: $link-color !default;\n$pagination-bg: $white !default;\n$pagination-border-width: $border-width !default;\n$pagination-border-color: $gray-300 !default;\n\n$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;\n$pagination-focus-outline: 0 !default;\n\n$pagination-hover-color: $link-hover-color !default;\n$pagination-hover-bg: $gray-200 !default;\n$pagination-hover-border-color: $gray-300 !default;\n\n$pagination-active-color: $component-active-color !default;\n$pagination-active-bg: $component-active-bg !default;\n$pagination-active-border-color: $pagination-active-bg !default;\n\n$pagination-disabled-color: $gray-600 !default;\n$pagination-disabled-bg: $white !default;\n$pagination-disabled-border-color: $gray-300 !default;\n\n\n// Jumbotron\n\n$jumbotron-padding: 2rem !default;\n$jumbotron-color: null !default;\n$jumbotron-bg: $gray-200 !default;\n\n\n// Cards\n\n$card-spacer-y: .75rem !default;\n$card-spacer-x: 1.25rem !default;\n$card-border-width: $border-width !default;\n$card-border-radius: $border-radius !default;\n$card-border-color: rgba($black, .125) !default;\n$card-inner-border-radius: subtract($card-border-radius, $card-border-width) !default;\n$card-cap-bg: rgba($black, .03) !default;\n$card-cap-color: null !default;\n$card-height: null !default;\n$card-color: null !default;\n$card-bg: $white !default;\n\n$card-img-overlay-padding: 1.25rem !default;\n\n$card-group-margin: $grid-gutter-width / 2 !default;\n$card-deck-margin: $card-group-margin !default;\n\n$card-columns-count: 3 !default;\n$card-columns-gap: 1.25rem !default;\n$card-columns-margin: $card-spacer-y !default;\n\n\n// Tooltips\n\n$tooltip-font-size: $font-size-sm !default;\n$tooltip-max-width: 200px !default;\n$tooltip-color: $white !default;\n$tooltip-bg: $black !default;\n$tooltip-border-radius: $border-radius !default;\n$tooltip-opacity: .9 !default;\n$tooltip-padding-y: .25rem !default;\n$tooltip-padding-x: .5rem !default;\n$tooltip-margin: 0 !default;\n\n$tooltip-arrow-width: .8rem !default;\n$tooltip-arrow-height: .4rem !default;\n$tooltip-arrow-color: $tooltip-bg !default;\n\n// Form tooltips must come after regular tooltips\n$form-feedback-tooltip-padding-y: $tooltip-padding-y !default;\n$form-feedback-tooltip-padding-x: $tooltip-padding-x !default;\n$form-feedback-tooltip-font-size: $tooltip-font-size !default;\n$form-feedback-tooltip-line-height: $line-height-base !default;\n$form-feedback-tooltip-opacity: $tooltip-opacity !default;\n$form-feedback-tooltip-border-radius: $tooltip-border-radius !default;\n\n\n// Popovers\n\n$popover-font-size: $font-size-sm !default;\n$popover-bg: $white !default;\n$popover-max-width: 276px !default;\n$popover-border-width: $border-width !default;\n$popover-border-color: rgba($black, .2) !default;\n$popover-border-radius: $border-radius-lg !default;\n$popover-inner-border-radius: subtract($popover-border-radius, $popover-border-width) !default;\n$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;\n\n$popover-header-bg: darken($popover-bg, 3%) !default;\n$popover-header-color: $headings-color !default;\n$popover-header-padding-y: .5rem !default;\n$popover-header-padding-x: .75rem !default;\n\n$popover-body-color: $body-color !default;\n$popover-body-padding-y: $popover-header-padding-y !default;\n$popover-body-padding-x: $popover-header-padding-x !default;\n\n$popover-arrow-width: 1rem !default;\n$popover-arrow-height: .5rem !default;\n$popover-arrow-color: $popover-bg !default;\n\n$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;\n\n\n// Toasts\n\n$toast-max-width: 350px !default;\n$toast-padding-x: .75rem !default;\n$toast-padding-y: .25rem !default;\n$toast-font-size: .875rem !default;\n$toast-color: null !default;\n$toast-background-color: rgba($white, .85) !default;\n$toast-border-width: 1px !default;\n$toast-border-color: rgba(0, 0, 0, .1) !default;\n$toast-border-radius: .25rem !default;\n$toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default;\n\n$toast-header-color: $gray-600 !default;\n$toast-header-background-color: rgba($white, .85) !default;\n$toast-header-border-color: rgba(0, 0, 0, .05) !default;\n\n\n// Badges\n\n$badge-font-size: 75% !default;\n$badge-font-weight: $font-weight-bold !default;\n$badge-padding-y: .25em !default;\n$badge-padding-x: .4em !default;\n$badge-border-radius: $border-radius !default;\n\n$badge-transition: $btn-transition !default;\n$badge-focus-width: $input-btn-focus-width !default;\n\n$badge-pill-padding-x: .6em !default;\n// Use a higher than normal value to ensure completely rounded edges when\n// customizing padding or font-size on labels.\n$badge-pill-border-radius: 10rem !default;\n\n\n// Modals\n\n// Padding applied to the modal body\n$modal-inner-padding: 1rem !default;\n\n// Margin between elements in footer, must be lower than or equal to 2 * $modal-inner-padding\n$modal-footer-margin-between: .5rem !default;\n\n$modal-dialog-margin: .5rem !default;\n$modal-dialog-margin-y-sm-up: 1.75rem !default;\n\n$modal-title-line-height: $line-height-base !default;\n\n$modal-content-color: null !default;\n$modal-content-bg: $white !default;\n$modal-content-border-color: rgba($black, .2) !default;\n$modal-content-border-width: $border-width !default;\n$modal-content-border-radius: $border-radius-lg !default;\n$modal-content-inner-border-radius: subtract($modal-content-border-radius, $modal-content-border-width) !default;\n$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;\n$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;\n\n$modal-backdrop-bg: $black !default;\n$modal-backdrop-opacity: .5 !default;\n$modal-header-border-color: $border-color !default;\n$modal-footer-border-color: $modal-header-border-color !default;\n$modal-header-border-width: $modal-content-border-width !default;\n$modal-footer-border-width: $modal-header-border-width !default;\n$modal-header-padding-y: 1rem !default;\n$modal-header-padding-x: 1rem !default;\n$modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility\n\n$modal-xl: 1140px !default;\n$modal-lg: 800px !default;\n$modal-md: 500px !default;\n$modal-sm: 300px !default;\n\n$modal-fade-transform: translate(0, -50px) !default;\n$modal-show-transform: none !default;\n$modal-transition: transform .3s ease-out !default;\n$modal-scale-transform: scale(1.02) !default;\n\n\n// Alerts\n//\n// Define alert colors, border radius, and padding.\n\n$alert-padding-y: .75rem !default;\n$alert-padding-x: 1.25rem !default;\n$alert-margin-bottom: 1rem !default;\n$alert-border-radius: $border-radius !default;\n$alert-link-font-weight: $font-weight-bold !default;\n$alert-border-width: $border-width !default;\n\n$alert-bg-level: -10 !default;\n$alert-border-level: -9 !default;\n$alert-color-level: 6 !default;\n\n\n// Progress bars\n\n$progress-height: 1rem !default;\n$progress-font-size: $font-size-base * .75 !default;\n$progress-bg: $gray-200 !default;\n$progress-border-radius: $border-radius !default;\n$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;\n$progress-bar-color: $white !default;\n$progress-bar-bg: theme-color(\"primary\") !default;\n$progress-bar-animation-timing: 1s linear infinite !default;\n$progress-bar-transition: width .6s ease !default;\n\n\n// List group\n\n$list-group-color: null !default;\n$list-group-bg: $white !default;\n$list-group-border-color: rgba($black, .125) !default;\n$list-group-border-width: $border-width !default;\n$list-group-border-radius: $border-radius !default;\n\n$list-group-item-padding-y: .75rem !default;\n$list-group-item-padding-x: 1.25rem !default;\n\n$list-group-hover-bg: $gray-100 !default;\n$list-group-active-color: $component-active-color !default;\n$list-group-active-bg: $component-active-bg !default;\n$list-group-active-border-color: $list-group-active-bg !default;\n\n$list-group-disabled-color: $gray-600 !default;\n$list-group-disabled-bg: $list-group-bg !default;\n\n$list-group-action-color: $gray-700 !default;\n$list-group-action-hover-color: $list-group-action-color !default;\n\n$list-group-action-active-color: $body-color !default;\n$list-group-action-active-bg: $gray-200 !default;\n\n\n// Image thumbnails\n\n$thumbnail-padding: .25rem !default;\n$thumbnail-bg: $body-bg !default;\n$thumbnail-border-width: $border-width !default;\n$thumbnail-border-color: $gray-300 !default;\n$thumbnail-border-radius: $border-radius !default;\n$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;\n\n\n// Figures\n\n$figure-caption-font-size: 90% !default;\n$figure-caption-color: $gray-600 !default;\n\n\n// Breadcrumbs\n\n$breadcrumb-font-size: null !default;\n\n$breadcrumb-padding-y: .75rem !default;\n$breadcrumb-padding-x: 1rem !default;\n$breadcrumb-item-padding: .5rem !default;\n\n$breadcrumb-margin-bottom: 1rem !default;\n\n$breadcrumb-bg: $gray-200 !default;\n$breadcrumb-divider-color: $gray-600 !default;\n$breadcrumb-active-color: $gray-600 !default;\n$breadcrumb-divider: quote(\"/\") !default;\n\n$breadcrumb-border-radius: $border-radius !default;\n\n\n// Carousel\n\n$carousel-control-color: $white !default;\n$carousel-control-width: 15% !default;\n$carousel-control-opacity: .5 !default;\n$carousel-control-hover-opacity: .9 !default;\n$carousel-control-transition: opacity .15s ease !default;\n\n$carousel-indicator-width: 30px !default;\n$carousel-indicator-height: 3px !default;\n$carousel-indicator-hit-area-height: 10px !default;\n$carousel-indicator-spacer: 3px !default;\n$carousel-indicator-active-bg: $white !default;\n$carousel-indicator-transition: opacity .6s ease !default;\n\n$carousel-caption-width: 70% !default;\n$carousel-caption-color: $white !default;\n\n$carousel-control-icon-width: 20px !default;\n\n$carousel-control-prev-icon-bg: url(\"data:image/svg+xml,\") !default;\n$carousel-control-next-icon-bg: url(\"data:image/svg+xml,\") !default;\n\n$carousel-transition-duration: .6s !default;\n$carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)\n\n\n// Spinners\n\n$spinner-width: 2rem !default;\n$spinner-height: $spinner-width !default;\n$spinner-border-width: .25em !default;\n\n$spinner-width-sm: 1rem !default;\n$spinner-height-sm: $spinner-width-sm !default;\n$spinner-border-width-sm: .2em !default;\n\n\n// Close\n\n$close-font-size: $font-size-base * 1.5 !default;\n$close-font-weight: $font-weight-bold !default;\n$close-color: $black !default;\n$close-text-shadow: 0 1px 0 $white !default;\n\n\n// Code\n\n$code-font-size: 87.5% !default;\n$code-color: $pink !default;\n\n$kbd-padding-y: .2rem !default;\n$kbd-padding-x: .4rem !default;\n$kbd-font-size: $code-font-size !default;\n$kbd-color: $white !default;\n$kbd-bg: $gray-900 !default;\n\n$pre-color: $gray-900 !default;\n$pre-scrollable-max-height: 340px !default;\n\n\n// Utilities\n\n$displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default;\n$overflows: auto, hidden !default;\n$positions: static, relative, absolute, fixed, sticky !default;\n\n\n// Printing\n\n$print-page-size: a3 !default;\n$print-body-min-width: map-get($grid-breakpoints, \"lg\") !default;\n","// stylelint-disable property-blacklist, scss/dollar-variable-default\n\n// SCSS RFS mixin\n//\n// Automated font-resizing\n//\n// See https://github.com/twbs/rfs\n\n// Configuration\n\n// Base font size\n$rfs-base-font-size: 1.25rem !default;\n$rfs-font-size-unit: rem !default;\n\n// Breakpoint at where font-size starts decreasing if screen width is smaller\n$rfs-breakpoint: 1200px !default;\n$rfs-breakpoint-unit: px !default;\n\n// Resize font-size based on screen height and width\n$rfs-two-dimensional: false !default;\n\n// Factor of decrease\n$rfs-factor: 10 !default;\n\n@if type-of($rfs-factor) != \"number\" or $rfs-factor <= 1 {\n @error \"`#{$rfs-factor}` is not a valid $rfs-factor, it must be greater than 1.\";\n}\n\n// Generate enable or disable classes. Possibilities: false, \"enable\" or \"disable\"\n$rfs-class: false !default;\n\n// 1 rem = $rfs-rem-value px\n$rfs-rem-value: 16 !default;\n\n// Safari iframe resize bug: https://github.com/twbs/rfs/issues/14\n$rfs-safari-iframe-resize-bug-fix: false !default;\n\n// Disable RFS by setting $enable-responsive-font-sizes to false\n$enable-responsive-font-sizes: true !default;\n\n// Cache $rfs-base-font-size unit\n$rfs-base-font-size-unit: unit($rfs-base-font-size);\n\n// Remove px-unit from $rfs-base-font-size for calculations\n@if $rfs-base-font-size-unit == \"px\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1);\n}\n@else if $rfs-base-font-size-unit == \"rem\" {\n $rfs-base-font-size: $rfs-base-font-size / ($rfs-base-font-size * 0 + 1 / $rfs-rem-value);\n}\n\n// Cache $rfs-breakpoint unit to prevent multiple calls\n$rfs-breakpoint-unit-cache: unit($rfs-breakpoint);\n\n// Remove unit from $rfs-breakpoint for calculations\n@if $rfs-breakpoint-unit-cache == \"px\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1);\n}\n@else if $rfs-breakpoint-unit-cache == \"rem\" or $rfs-breakpoint-unit-cache == \"em\" {\n $rfs-breakpoint: $rfs-breakpoint / ($rfs-breakpoint * 0 + 1 / $rfs-rem-value);\n}\n\n// Responsive font-size mixin\n@mixin rfs($fs, $important: false) {\n // Cache $fs unit\n $fs-unit: if(type-of($fs) == \"number\", unit($fs), false);\n\n // Add !important suffix if needed\n $rfs-suffix: if($important, \" !important\", \"\");\n\n // If $fs isn't a number (like inherit) or $fs has a unit (not px or rem, like 1.5em) or $ is 0, just print the value\n @if not $fs-unit or $fs-unit != \"\" and $fs-unit != \"px\" and $fs-unit != \"rem\" or $fs == 0 {\n font-size: #{$fs}#{$rfs-suffix};\n }\n @else {\n // Variables for storing static and fluid rescaling\n $rfs-static: null;\n $rfs-fluid: null;\n\n // Remove px-unit from $fs for calculations\n @if $fs-unit == \"px\" {\n $fs: $fs / ($fs * 0 + 1);\n }\n @else if $fs-unit == \"rem\" {\n $fs: $fs / ($fs * 0 + 1 / $rfs-rem-value);\n }\n\n // Set default font-size\n @if $rfs-font-size-unit == rem {\n $rfs-static: #{$fs / $rfs-rem-value}rem#{$rfs-suffix};\n }\n @else if $rfs-font-size-unit == px {\n $rfs-static: #{$fs}px#{$rfs-suffix};\n }\n @else {\n @error \"`#{$rfs-font-size-unit}` is not a valid unit for $rfs-font-size-unit. Use `px` or `rem`.\";\n }\n\n // Only add media query if font-size is bigger as the minimum font-size\n // If $rfs-factor == 1, no rescaling will take place\n @if $fs > $rfs-base-font-size and $enable-responsive-font-sizes {\n $min-width: null;\n $variable-unit: null;\n\n // Calculate minimum font-size for given font-size\n $fs-min: $rfs-base-font-size + ($fs - $rfs-base-font-size) / $rfs-factor;\n\n // Calculate difference between given font-size and minimum font-size for given font-size\n $fs-diff: $fs - $fs-min;\n\n // Base font-size formatting\n // No need to check if the unit is valid, because we did that before\n $min-width: if($rfs-font-size-unit == rem, #{$fs-min / $rfs-rem-value}rem, #{$fs-min}px);\n\n // If two-dimensional, use smallest of screen width and height\n $variable-unit: if($rfs-two-dimensional, vmin, vw);\n\n // Calculate the variable width between 0 and $rfs-breakpoint\n $variable-width: #{$fs-diff * 100 / $rfs-breakpoint}#{$variable-unit};\n\n // Set the calculated font-size.\n $rfs-fluid: calc(#{$min-width} + #{$variable-width}) #{$rfs-suffix};\n }\n\n // Rendering\n @if $rfs-fluid == null {\n // Only render static font-size if no fluid font-size is available\n font-size: $rfs-static;\n }\n @else {\n $mq-value: null;\n\n // RFS breakpoint formatting\n @if $rfs-breakpoint-unit == em or $rfs-breakpoint-unit == rem {\n $mq-value: #{$rfs-breakpoint / $rfs-rem-value}#{$rfs-breakpoint-unit};\n }\n @else if $rfs-breakpoint-unit == px {\n $mq-value: #{$rfs-breakpoint}px;\n }\n @else {\n @error \"`#{$rfs-breakpoint-unit}` is not a valid unit for $rfs-breakpoint-unit. Use `px`, `em` or `rem`.\";\n }\n\n @if $rfs-class == \"disable\" {\n // Adding an extra class increases specificity,\n // which prevents the media query to override the font size\n &,\n .disable-responsive-font-size &,\n &.disable-responsive-font-size {\n font-size: $rfs-static;\n }\n }\n @else {\n font-size: $rfs-static;\n }\n\n @if $rfs-two-dimensional {\n @media (max-width: #{$mq-value}), (max-height: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n @else {\n @media (max-width: #{$mq-value}) {\n @if $rfs-class == \"enable\" {\n .enable-responsive-font-size &,\n &.enable-responsive-font-size {\n font-size: $rfs-fluid;\n }\n }\n @else {\n font-size: $rfs-fluid;\n }\n\n @if $rfs-safari-iframe-resize-bug-fix {\n // stylelint-disable-next-line length-zero-no-unit\n min-width: 0vw;\n }\n }\n }\n }\n }\n}\n\n// The font-size & responsive-font-size mixin uses RFS to rescale font sizes\n@mixin font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n\n@mixin responsive-font-size($fs, $important: false) {\n @include rfs($fs, $important);\n}\n","// Hover mixin and `$enable-hover-media-query` are deprecated.\n//\n// Originally added during our alphas and maintained during betas, this mixin was\n// designed to prevent `:hover` stickiness on iOS-an issue where hover styles\n// would persist after initial touch.\n//\n// For backward compatibility, we've kept these mixins and updated them to\n// always return their regular pseudo-classes instead of a shimmed media query.\n//\n// Issue: https://github.com/twbs/bootstrap/issues/25195\n\n@mixin hover() {\n &:hover { @content; }\n}\n\n@mixin hover-focus() {\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin plain-hover-focus() {\n &,\n &:hover,\n &:focus {\n @content;\n }\n}\n\n@mixin hover-focus-active() {\n &:hover,\n &:focus,\n &:active {\n @content;\n }\n}\n","// stylelint-disable declaration-no-important, selector-list-comma-newline-after\n\n//\n// Headings\n//\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: $headings-color;\n}\n\nh1, .h1 { @include font-size($h1-font-size); }\nh2, .h2 { @include font-size($h2-font-size); }\nh3, .h3 { @include font-size($h3-font-size); }\nh4, .h4 { @include font-size($h4-font-size); }\nh5, .h5 { @include font-size($h5-font-size); }\nh6, .h6 { @include font-size($h6-font-size); }\n\n.lead {\n @include font-size($lead-font-size);\n font-weight: $lead-font-weight;\n}\n\n// Type display classes\n.display-1 {\n @include font-size($display1-size);\n font-weight: $display1-weight;\n line-height: $display-line-height;\n}\n.display-2 {\n @include font-size($display2-size);\n font-weight: $display2-weight;\n line-height: $display-line-height;\n}\n.display-3 {\n @include font-size($display3-size);\n font-weight: $display3-weight;\n line-height: $display-line-height;\n}\n.display-4 {\n @include font-size($display4-size);\n font-weight: $display4-weight;\n line-height: $display-line-height;\n}\n\n\n//\n// Horizontal rules\n//\n\nhr {\n margin-top: $hr-margin-y;\n margin-bottom: $hr-margin-y;\n border: 0;\n border-top: $hr-border-width solid $hr-border-color;\n}\n\n\n//\n// Emphasis\n//\n\nsmall,\n.small {\n @include font-size($small-font-size);\n font-weight: $font-weight-normal;\n}\n\nmark,\n.mark {\n padding: $mark-padding;\n background-color: $mark-bg;\n}\n\n\n//\n// Lists\n//\n\n.list-unstyled {\n @include list-unstyled();\n}\n\n// Inline turns list items into inline-block\n.list-inline {\n @include list-unstyled();\n}\n.list-inline-item {\n display: inline-block;\n\n &:not(:last-child) {\n margin-right: $list-inline-padding;\n }\n}\n\n\n//\n// Misc\n//\n\n// Builds on `abbr`\n.initialism {\n @include font-size(90%);\n text-transform: uppercase;\n}\n\n// Blockquotes\n.blockquote {\n margin-bottom: $spacer;\n @include font-size($blockquote-font-size);\n}\n\n.blockquote-footer {\n display: block;\n @include font-size($blockquote-small-font-size);\n color: $blockquote-small-color;\n\n &::before {\n content: \"\\2014\\00A0\"; // em dash, nbsp\n }\n}\n","// Lists\n\n// Unstyled keeps list items block level, just removes default browser padding and list-style\n@mixin list-unstyled() {\n padding-left: 0;\n list-style: none;\n}\n","// Responsive images (ensure images don't scale beyond their parents)\n//\n// This is purposefully opt-in via an explicit class rather than being the default for all ``s.\n// We previously tried the \"images are responsive by default\" approach in Bootstrap v2,\n// and abandoned it in Bootstrap v3 because it breaks lots of third-party widgets (including Google Maps)\n// which weren't expecting the images within themselves to be involuntarily resized.\n// See also https://github.com/twbs/bootstrap/issues/18178\n.img-fluid {\n @include img-fluid();\n}\n\n\n// Image thumbnails\n.img-thumbnail {\n padding: $thumbnail-padding;\n background-color: $thumbnail-bg;\n border: $thumbnail-border-width solid $thumbnail-border-color;\n @include border-radius($thumbnail-border-radius);\n @include box-shadow($thumbnail-box-shadow);\n\n // Keep them at most 100% wide\n @include img-fluid();\n}\n\n//\n// Figures\n//\n\n.figure {\n // Ensures the caption's text aligns with the image.\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: $spacer / 2;\n line-height: 1;\n}\n\n.figure-caption {\n @include font-size($figure-caption-font-size);\n color: $figure-caption-color;\n}\n","// Image Mixins\n// - Responsive image\n// - Retina image\n\n\n// Responsive image\n//\n// Keep images from scaling beyond the width of their parents.\n\n@mixin img-fluid() {\n // Part 1: Set a maximum relative to the parent\n max-width: 100%;\n // Part 2: Override the height to auto, otherwise images will be stretched\n // when setting a width and height attribute on the img element.\n height: auto;\n}\n\n\n// Retina image\n//\n// Short retina mixin for setting background-image and -size.\n\n@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {\n background-image: url($file-1x);\n\n // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,\n // but doesn't convert dppx=>dpi.\n // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.\n // Compatibility info: https://caniuse.com/#feat=css-media-resolution\n @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx\n only screen and (min-resolution: 2dppx) { // Standardized\n background-image: url($file-2x);\n background-size: $width-1x $height-1x;\n }\n @include deprecate(\"`img-retina()`\", \"v4.3.0\", \"v5\");\n}\n","// stylelint-disable property-blacklist\n// Single side border-radius\n\n@mixin border-radius($radius: $border-radius, $fallback-border-radius: false) {\n @if $enable-rounded {\n border-radius: $radius;\n }\n @else if $fallback-border-radius != false {\n border-radius: $fallback-border-radius;\n }\n}\n\n@mixin border-top-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n border-bottom-left-radius: $radius;\n }\n}\n\n@mixin border-top-left-radius($radius) {\n @if $enable-rounded {\n border-top-left-radius: $radius;\n }\n}\n\n@mixin border-top-right-radius($radius) {\n @if $enable-rounded {\n border-top-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-right-radius($radius) {\n @if $enable-rounded {\n border-bottom-right-radius: $radius;\n }\n}\n\n@mixin border-bottom-left-radius($radius) {\n @if $enable-rounded {\n border-bottom-left-radius: $radius;\n }\n}\n","// Inline code\ncode {\n @include font-size($code-font-size);\n color: $code-color;\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\n// User input typically entered via keyboard\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n @include box-shadow($kbd-box-shadow);\n\n kbd {\n padding: 0;\n @include font-size(100%);\n font-weight: $nested-kbd-font-weight;\n @include box-shadow(none);\n }\n}\n\n// Blocks of code\npre {\n display: block;\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\n// Enable scrollable blocks of code\n.pre-scrollable {\n max-height: $pre-scrollable-max-height;\n overflow-y: scroll;\n}\n","// Container widths\n//\n// Set the container width, and override it for fixed navbars in media queries.\n\n@if $enable-grid-classes {\n // Single container class with breakpoint max-widths\n .container {\n @include make-container();\n @include make-container-max-widths();\n }\n\n // 100% wide container at all breakpoints\n .container-fluid {\n @include make-container();\n }\n\n // Responsive containers that are 100% wide until a breakpoint\n @each $breakpoint, $container-max-width in $container-max-widths {\n .container-#{$breakpoint} {\n @extend .container-fluid;\n }\n\n @include media-breakpoint-up($breakpoint, $grid-breakpoints) {\n %responsive-container-#{$breakpoint} {\n max-width: $container-max-width;\n }\n\n @each $name, $width in $grid-breakpoints {\n @if ($container-max-width > $width or $breakpoint == $name) {\n .container#{breakpoint-infix($name, $grid-breakpoints)} {\n @extend %responsive-container-#{$breakpoint};\n }\n }\n }\n }\n }\n}\n\n\n// Row\n//\n// Rows contain your columns.\n\n@if $enable-grid-classes {\n .row {\n @include make-row();\n }\n\n // Remove the negative margin from default .row, then the horizontal padding\n // from all immediate children columns (to prevent runaway style inheritance).\n .no-gutters {\n margin-right: 0;\n margin-left: 0;\n\n > .col,\n > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n }\n }\n}\n\n// Columns\n//\n// Common styles for small and large grid columns\n\n@if $enable-grid-classes {\n @include make-grid-columns();\n}\n","/// Grid system\n//\n// Generate semantic grid columns with these mixins.\n\n@mixin make-container($gutter: $grid-gutter-width) {\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n margin-right: auto;\n margin-left: auto;\n}\n\n// For each breakpoint, define the maximum width of the container in a media query\n@mixin make-container-max-widths(\n $max-widths: $container-max-widths,\n $breakpoints: $grid-breakpoints\n) {\n @each $breakpoint, $container-max-width in $max-widths {\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n max-width: $container-max-width;\n }\n }\n}\n\n@mixin make-row($gutter: $grid-gutter-width) {\n display: flex;\n flex-wrap: wrap;\n margin-right: -$gutter / 2;\n margin-left: -$gutter / 2;\n}\n\n@mixin make-col-ready($gutter: $grid-gutter-width) {\n position: relative;\n // Prevent columns from becoming too narrow when at smaller grid tiers by\n // always setting `width: 100%;`. This works because we use `flex` values\n // later on to override this initial width.\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n}\n\n@mixin make-col($size, $columns: $grid-columns) {\n flex: 0 0 percentage($size / $columns);\n // Add a `max-width` to ensure content within each column does not blow out\n // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari\n // do not appear to require this.\n max-width: percentage($size / $columns);\n}\n\n@mixin make-col-auto() {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%; // Reset earlier grid tiers\n}\n\n@mixin make-col-offset($size, $columns: $grid-columns) {\n $num: $size / $columns;\n margin-right: if($num == 0, 0, percentage($num));\n}\n\n// Row columns\n//\n// Specify on a parent element(e.g., .row) to force immediate children into NN\n// numberof columns. Supports wrapping to new lines, but does not do a Masonry\n// style grid.\n@mixin row-cols($count) {\n & > * {\n flex: 0 0 100% / $count;\n max-width: 100% / $count;\n }\n}\n","// Breakpoint viewport sizes and media queries.\n//\n// Breakpoints are defined as a map of (name: minimum width), order from small to large:\n//\n// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)\n//\n// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.\n\n// Name of the next breakpoint, or null for the last breakpoint.\n//\n// >> breakpoint-next(sm)\n// md\n// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// md\n// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))\n// md\n@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {\n $n: index($breakpoint-names, $name);\n @return if($n != null and $n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);\n}\n\n// Minimum breakpoint width. Null for the smallest (first) breakpoint.\n//\n// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 576px\n@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {\n $min: map-get($breakpoints, $name);\n @return if($min != 0, $min, null);\n}\n\n// Maximum breakpoint width. Null for the largest (last) breakpoint.\n// The maximum value is calculated as the minimum of the next one less 0.02px\n// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.\n// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max\n// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.\n// See https://bugs.webkit.org/show_bug.cgi?id=178261\n//\n// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// 767.98px\n@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {\n $next: breakpoint-next($name, $breakpoints);\n @return if($next, breakpoint-min($next, $breakpoints) - .02, null);\n}\n\n// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.\n// Useful for making responsive utilities.\n//\n// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"\" (Returns a blank string)\n// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))\n// \"-sm\"\n@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {\n @return if(breakpoint-min($name, $breakpoints) == null, \"\", \"-#{$name}\");\n}\n\n// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.\n// Makes the @content apply to the given breakpoint and wider.\n@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n @if $min {\n @media (min-width: $min) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media of at most the maximum breakpoint width. No query for the largest breakpoint.\n// Makes the @content apply to the given breakpoint and narrower.\n@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {\n $max: breakpoint-max($name, $breakpoints);\n @if $max {\n @media (max-width: $max) {\n @content;\n }\n } @else {\n @content;\n }\n}\n\n// Media that spans multiple breakpoint widths.\n// Makes the @content apply between the min and max breakpoints\n@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($lower, $breakpoints);\n $max: breakpoint-max($upper, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($lower, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($upper, $breakpoints) {\n @content;\n }\n }\n}\n\n// Media between the breakpoint's minimum and maximum widths.\n// No minimum for the smallest breakpoint, and no maximum for the largest one.\n// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.\n@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {\n $min: breakpoint-min($name, $breakpoints);\n $max: breakpoint-max($name, $breakpoints);\n\n @if $min != null and $max != null {\n @media (min-width: $min) and (max-width: $max) {\n @content;\n }\n } @else if $max == null {\n @include media-breakpoint-up($name, $breakpoints) {\n @content;\n }\n } @else if $min == null {\n @include media-breakpoint-down($name, $breakpoints) {\n @content;\n }\n }\n}\n","// Framework grid generation\n//\n// Used only by Bootstrap to generate the correct number of grid classes given\n// any value of `$grid-columns`.\n\n@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {\n // Common properties for all breakpoints\n %grid-column {\n position: relative;\n width: 100%;\n padding-right: $gutter / 2;\n padding-left: $gutter / 2;\n }\n\n @each $breakpoint in map-keys($breakpoints) {\n $infix: breakpoint-infix($breakpoint, $breakpoints);\n\n // Allow columns to stretch full width below their breakpoints\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @extend %grid-column;\n }\n }\n .col#{$infix},\n .col#{$infix}-auto {\n @extend %grid-column;\n }\n\n @include media-breakpoint-up($breakpoint, $breakpoints) {\n // Provide basic `.col-{bp}` classes for equal-width flexbox columns\n .col#{$infix} {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n\n @for $i from 1 through $grid-row-columns {\n .row-cols#{$infix}-#{$i} {\n @include row-cols($i);\n }\n }\n\n .col#{$infix}-auto {\n @include make-col-auto();\n }\n\n @for $i from 1 through $columns {\n .col#{$infix}-#{$i} {\n @include make-col($i, $columns);\n }\n }\n\n .order#{$infix}-first { order: -1; }\n\n .order#{$infix}-last { order: $columns + 1; }\n\n @for $i from 0 through $columns {\n .order#{$infix}-#{$i} { order: $i; }\n }\n\n // `$columns - 1` because offsetting by the width of an entire row isn't possible\n @for $i from 0 through ($columns - 1) {\n @if not ($infix == \"\" and $i == 0) { // Avoid emitting useless .offset-0\n .offset#{$infix}-#{$i} {\n @include make-col-offset($i, $columns);\n }\n }\n }\n }\n }\n}\n","//\n// Basic Bootstrap table\n//\n\n.table {\n width: 100%;\n margin-bottom: $spacer;\n color: $table-color;\n background-color: $table-bg; // Reset for nesting within parents with `background-color`.\n\n th,\n td {\n padding: $table-cell-padding;\n vertical-align: top;\n border-top: $table-border-width solid $table-border-color;\n }\n\n thead th {\n vertical-align: bottom;\n border-bottom: (2 * $table-border-width) solid $table-border-color;\n }\n\n tbody + tbody {\n border-top: (2 * $table-border-width) solid $table-border-color;\n }\n}\n\n\n//\n// Condensed table w/ half padding\n//\n\n.table-sm {\n th,\n td {\n padding: $table-cell-padding-sm;\n }\n}\n\n\n// Border versions\n//\n// Add or remove borders all around the table and between all the columns.\n\n.table-bordered {\n border: $table-border-width solid $table-border-color;\n\n th,\n td {\n border: $table-border-width solid $table-border-color;\n }\n\n thead {\n th,\n td {\n border-bottom-width: 2 * $table-border-width;\n }\n }\n}\n\n.table-borderless {\n th,\n td,\n thead th,\n tbody + tbody {\n border: 0;\n }\n}\n\n// Zebra-striping\n//\n// Default zebra-stripe styles (alternating gray and transparent backgrounds)\n\n.table-striped {\n tbody tr:nth-of-type(#{$table-striped-order}) {\n background-color: $table-accent-bg;\n }\n}\n\n\n// Hover effect\n//\n// Placed here since it has to come after the potential zebra striping\n\n.table-hover {\n tbody tr {\n @include hover() {\n color: $table-hover-color;\n background-color: $table-hover-bg;\n }\n }\n}\n\n\n// Table backgrounds\n//\n// Exact selectors below required to override `.table-striped` and prevent\n// inheritance to nested tables.\n\n@each $color, $value in $theme-colors {\n @include table-row-variant($color, theme-color-level($color, $table-bg-level), theme-color-level($color, $table-border-level));\n}\n\n@include table-row-variant(active, $table-active-bg);\n\n\n// Dark styles\n//\n// Same table markup, but inverted color scheme: dark background and light text.\n\n// stylelint-disable-next-line no-duplicate-selectors\n.table {\n .thead-dark {\n th {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n border-color: $table-dark-border-color;\n }\n }\n\n .thead-light {\n th {\n color: $table-head-color;\n background-color: $table-head-bg;\n border-color: $table-border-color;\n }\n }\n}\n\n.table-dark {\n color: $table-dark-color;\n background-color: $table-dark-bg;\n\n th,\n td,\n thead th {\n border-color: $table-dark-border-color;\n }\n\n &.table-bordered {\n border: 0;\n }\n\n &.table-striped {\n tbody tr:nth-of-type(#{$table-striped-order}) {\n background-color: $table-dark-accent-bg;\n }\n }\n\n &.table-hover {\n tbody tr {\n @include hover() {\n color: $table-dark-hover-color;\n background-color: $table-dark-hover-bg;\n }\n }\n }\n}\n\n\n// Responsive tables\n//\n// Generate series of `.table-responsive-*` classes for configuring the screen\n// size of where your table will overflow.\n\n.table-responsive {\n @each $breakpoint in map-keys($grid-breakpoints) {\n $next: breakpoint-next($breakpoint, $grid-breakpoints);\n $infix: breakpoint-infix($next, $grid-breakpoints);\n\n &#{$infix} {\n @include media-breakpoint-down($breakpoint) {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n\n // Prevent double border on horizontal scroll due to use of `display: block;`\n > .table-bordered {\n border: 0;\n }\n }\n }\n }\n}\n","// Tables\n\n@mixin table-row-variant($state, $background, $border: null) {\n // Exact selectors below required to override `.table-striped` and prevent\n // inheritance to nested tables.\n .table-#{$state} {\n &,\n > th,\n > td {\n background-color: $background;\n }\n\n @if $border != null {\n th,\n td,\n thead th,\n tbody + tbody {\n border-color: $border;\n }\n }\n }\n\n // Hover states for `.table-hover`\n // Note: this is not available for cells or rows within `thead` or `tfoot`.\n .table-hover {\n $hover-background: darken($background, 5%);\n\n .table-#{$state} {\n @include hover() {\n background-color: $hover-background;\n\n > td,\n > th {\n background-color: $hover-background;\n }\n }\n }\n }\n}\n","// Bootstrap functions\n//\n// Utility mixins and functions for evaluating source code across our variables, maps, and mixins.\n\n// Ascending\n// Used to evaluate Sass maps like our grid breakpoints.\n@mixin _assert-ascending($map, $map-name) {\n $prev-key: null;\n $prev-num: null;\n @each $key, $num in $map {\n @if $prev-num == null or unit($num) == \"%\" or unit($prev-num) == \"%\" {\n // Do nothing\n } @else if not comparable($prev-num, $num) {\n @warn \"Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n } @else if $prev-num >= $num {\n @warn \"Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !\";\n }\n $prev-key: $key;\n $prev-num: $num;\n }\n}\n\n// Starts at zero\n// Used to ensure the min-width of the lowest breakpoint starts at 0.\n@mixin _assert-starts-at-zero($map, $map-name: \"$grid-breakpoints\") {\n $values: map-values($map);\n $first-value: nth($values, 1);\n @if $first-value != 0 {\n @warn \"First breakpoint in #{$map-name} must start at 0, but starts at #{$first-value}.\";\n }\n}\n\n// Replace `$search` with `$replace` in `$string`\n// Used on our SVG icon backgrounds for custom forms.\n//\n// @author Hugo Giraudel\n// @param {String} $string - Initial string\n// @param {String} $search - Substring to replace\n// @param {String} $replace ('') - New value\n// @return {String} - Updated string\n@function str-replace($string, $search, $replace: \"\") {\n $index: str-index($string, $search);\n\n @if $index {\n @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);\n }\n\n @return $string;\n}\n\n// See https://codepen.io/kevinweber/pen/dXWoRw\n@function escape-svg($string) {\n @if str-index($string, \"data:image/svg+xml\") {\n @each $char, $encoded in $escaped-characters {\n $string: str-replace($string, $char, $encoded);\n }\n }\n\n @return $string;\n}\n\n// Color contrast\n@function color-yiq($color, $dark: $yiq-text-dark, $light: $yiq-text-light) {\n $r: red($color);\n $g: green($color);\n $b: blue($color);\n\n $yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000;\n\n @if ($yiq >= $yiq-contrasted-threshold) {\n @return $dark;\n } @else {\n @return $light;\n }\n}\n\n// Retrieve color Sass maps\n@function color($key: \"blue\") {\n @return map-get($colors, $key);\n}\n\n@function theme-color($key: \"primary\") {\n @return map-get($theme-colors, $key);\n}\n\n@function gray($key: \"100\") {\n @return map-get($grays, $key);\n}\n\n// Request a theme color level\n@function theme-color-level($color-name: \"primary\", $level: 0) {\n $color: theme-color($color-name);\n $color-base: if($level > 0, $black, $white);\n $level: abs($level);\n\n @return mix($color-base, $color, $level * $theme-color-interval);\n}\n\n// Return valid calc\n@function add($value1, $value2, $return-calc: true) {\n @if $value1 == null {\n @return $value2;\n }\n\n @if $value2 == null {\n @return $value1;\n }\n\n @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {\n @return $value1 + $value2;\n }\n\n @return if($return-calc == true, calc(#{$value1} + #{$value2}), $value1 + unquote(\" + \") + $value2);\n}\n\n@function subtract($value1, $value2, $return-calc: true) {\n @if $value1 == null and $value2 == null {\n @return null;\n }\n\n @if $value1 == null {\n @return -$value2;\n }\n\n @if $value2 == null {\n @return $value1;\n }\n\n @if type-of($value1) == number and type-of($value2) == number and comparable($value1, $value2) {\n @return $value1 - $value2;\n }\n\n @return if($return-calc == true, calc(#{$value1} - #{$value2}), $value1 + unquote(\" - \") + $value2);\n}\n","// stylelint-disable selector-no-qualifying-type\n\n//\n// Textual form controls\n//\n\n.form-control {\n display: block;\n width: 100%;\n height: $input-height;\n padding: $input-padding-y $input-padding-x;\n font-family: $input-font-family;\n @include font-size($input-font-size);\n font-weight: $input-font-weight;\n line-height: $input-line-height;\n color: $input-color;\n background-color: $input-bg;\n background-clip: padding-box;\n border: $input-border-width solid $input-border-color;\n\n // Note: This has no effect on `s in CSS.\n @include border-radius($input-border-radius, 0);\n\n @include box-shadow($input-box-shadow);\n @include transition($input-transition);\n\n // Unstyle the caret on ` receives focus\n // in IE and (under certain conditions) Edge, as it looks bad and cannot be made to\n // match the appearance of the native widget.\n // See https://github.com/twbs/bootstrap/issues/19398.\n color: $input-color;\n background-color: $input-bg;\n }\n}\n\n// Make file inputs better match text inputs by forcing them to new lines.\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n\n//\n// Labels\n//\n\n// For use with horizontal and inline forms, when you need the label (or legend)\n// text to align with the form controls.\n.col-form-label {\n padding-top: add($input-padding-y, $input-border-width);\n padding-bottom: add($input-padding-y, $input-border-width);\n margin-bottom: 0; // Override the `` elements\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n\n//\n// Alternate buttons\n//\n\n@each $color, $value in $theme-colors {\n .btn-#{$color} {\n @include button-variant($value, $value);\n }\n}\n\n@each $color, $value in $theme-colors {\n .btn-outline-#{$color} {\n @include button-outline-variant($value);\n }\n}\n\n\n//\n// Link buttons\n//\n\n// Make a button look and behave like a link\n.btn-link {\n font-weight: $font-weight-normal;\n color: $link-color;\n text-decoration: $link-decoration;\n\n @include hover() {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n\n &:focus,\n &.focus {\n text-decoration: $link-hover-decoration;\n box-shadow: none;\n }\n\n &:disabled,\n &.disabled {\n color: $btn-link-disabled-color;\n pointer-events: none;\n }\n\n // No need for an active state here\n}\n\n\n//\n// Button Sizes\n//\n\n.btn-lg {\n @include button-size($btn-padding-y-lg, $btn-padding-x-lg, $btn-font-size-lg, $btn-line-height-lg, $btn-border-radius-lg);\n}\n\n.btn-sm {\n @include button-size($btn-padding-y-sm, $btn-padding-x-sm, $btn-font-size-sm, $btn-line-height-sm, $btn-border-radius-sm);\n}\n\n\n//\n// Block button\n//\n\n.btn-block {\n display: block;\n width: 100%;\n\n // Vertically space out multiple block buttons\n + .btn-block {\n margin-top: $btn-block-spacing-y;\n }\n}\n\n// Specificity overrides\ninput[type=\"submit\"],\ninput[type=\"reset\"],\ninput[type=\"button\"] {\n &.btn-block {\n width: 100%;\n }\n}\n","// Button variants\n//\n// Easily pump out default styles, as well as :hover, :focus, :active,\n// and disabled options for all buttons\n\n@mixin button-variant($background, $border, $hover-background: darken($background, 7.5%), $hover-border: darken($border, 10%), $active-background: darken($background, 10%), $active-border: darken($border, 12.5%)) {\n color: color-yiq($background);\n @include gradient-bg($background);\n border-color: $border;\n @include box-shadow($btn-box-shadow);\n\n @include hover() {\n color: color-yiq($hover-background);\n @include gradient-bg($hover-background);\n border-color: $hover-border;\n }\n\n &:focus,\n &.focus {\n color: color-yiq($hover-background);\n @include gradient-bg($hover-background);\n border-color: $hover-border;\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows {\n box-shadow: $btn-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n } @else {\n box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n }\n }\n\n // Disabled comes first so active can properly restyle\n &.disabled,\n &:disabled {\n color: color-yiq($background);\n background-color: $background;\n border-color: $border;\n // Remove CSS gradients if they're enabled\n @if $enable-gradients {\n background-image: none;\n }\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active,\n .show > &.dropdown-toggle {\n color: color-yiq($active-background);\n background-color: $active-background;\n @if $enable-gradients {\n background-image: none; // Remove the gradient for the pressed/active state\n }\n border-color: $active-border;\n\n &:focus {\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows and $btn-active-box-shadow != none {\n box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n } @else {\n box-shadow: 0 0 0 $btn-focus-width rgba(mix(color-yiq($background), $border, 15%), .5);\n }\n }\n }\n}\n\n@mixin button-outline-variant($color, $color-hover: color-yiq($color), $active-background: $color, $active-border: $color) {\n color: $color;\n border-color: $color;\n\n @include hover() {\n color: $color-hover;\n background-color: $active-background;\n border-color: $active-border;\n }\n\n &:focus,\n &.focus {\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n }\n\n &.disabled,\n &:disabled {\n color: $color;\n background-color: transparent;\n }\n\n &:not(:disabled):not(.disabled):active,\n &:not(:disabled):not(.disabled).active,\n .show > &.dropdown-toggle {\n color: color-yiq($active-background);\n background-color: $active-background;\n border-color: $active-border;\n\n &:focus {\n // Avoid using mixin so we can pass custom focus shadow properly\n @if $enable-shadows and $btn-active-box-shadow != none {\n box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5);\n } @else {\n box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);\n }\n }\n }\n}\n\n// Button sizes\n@mixin button-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {\n padding: $padding-y $padding-x;\n @include font-size($font-size);\n line-height: $line-height;\n // Manually declare to provide an override to the browser default\n @include border-radius($border-radius, 0);\n}\n",".fade {\n @include transition($transition-fade);\n\n &:not(.show) {\n opacity: 0;\n }\n}\n\n.collapse {\n &:not(.show) {\n display: none;\n }\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n @include transition($transition-collapse);\n}\n","// The dropdown wrapper (`
`)\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n\n // Generate the caret automatically\n @include caret();\n}\n\n// The dropdown menu\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: $zindex-dropdown;\n display: none; // none by default, but block on \"open\" of the menu\n float: left;\n min-width: $dropdown-min-width;\n padding: $dropdown-padding-y 0;\n margin: $dropdown-spacer 0 0; // override default ul\n @include font-size($dropdown-font-size);\n color: $dropdown-color;\n text-align: left; // Ensures proper alignment if parent has it changed (e.g., modal footer)\n list-style: none;\n background-color: $dropdown-bg;\n background-clip: padding-box;\n border: $dropdown-border-width solid $dropdown-border-color;\n @include border-radius($dropdown-border-radius);\n @include box-shadow($dropdown-box-shadow);\n}\n\n@each $breakpoint in map-keys($grid-breakpoints) {\n @include media-breakpoint-up($breakpoint) {\n $infix: breakpoint-infix($breakpoint, $grid-breakpoints);\n\n .dropdown-menu#{$infix}-left {\n right: auto;\n left: 0;\n }\n\n .dropdown-menu#{$infix}-right {\n right: 0;\n left: auto;\n }\n }\n}\n\n// Allow for dropdowns to go bottom up (aka, dropup-menu)\n// Just add .dropup after the standard .dropdown class and you're set.\n.dropup {\n .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(up);\n }\n}\n\n.dropright {\n .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(right);\n &::after {\n vertical-align: 0;\n }\n }\n}\n\n.dropleft {\n .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: $dropdown-spacer;\n }\n\n .dropdown-toggle {\n @include caret(left);\n &::before {\n vertical-align: 0;\n }\n }\n}\n\n// When enabled Popper.js, reset basic dropdown position\n// stylelint-disable-next-line no-duplicate-selectors\n.dropdown-menu {\n &[x-placement^=\"top\"],\n &[x-placement^=\"right\"],\n &[x-placement^=\"bottom\"],\n &[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n }\n}\n\n// Dividers (basically an `
`) within the dropdown\n.dropdown-divider {\n @include nav-divider($dropdown-divider-bg, $dropdown-divider-margin-y, true);\n}\n\n// Links, buttons, and more within the dropdown menu\n//\n// `
',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:Bt,popperConfig:null},$t={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"},Jt=function(){function t(t,e){if("undefined"==typeof kt)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var n=t.prototype;return n.enable=function(){this._isEnabled=!0},n.disable=function(){this._isEnabled=!1},n.toggleEnabled=function(){this._isEnabled=!this._isEnabled},n.toggle=function(t){if(this._isEnabled)if(t){var n=this.constructor.DATA_KEY,i=e(t.currentTarget).data(n);i||(i=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(n,i)),i._activeTrigger.click=!i._activeTrigger.click,i._isWithActiveTrigger()?i._enter(null,i):i._leave(null,i)}else{if(e(this.getTipElement()).hasClass("show"))return void this._leave(null,this);this._enter(null,this)}},n.dispose=function(){clearTimeout(this._timeout),e.removeData(this.element,this.constructor.DATA_KEY),e(this.element).off(this.constructor.EVENT_KEY),e(this.element).closest(".modal").off("hide.bs.modal",this._hideModalHandler),this.tip&&e(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,this._activeTrigger=null,this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},n.show=function(){var t=this;if("none"===e(this.element).css("display"))throw new Error("Please use show on visible elements");var n=e.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){e(this.element).trigger(n);var i=s.findShadowRoot(this.element),o=e.contains(null!==i?i:this.element.ownerDocument.documentElement,this.element);if(n.isDefaultPrevented()||!o)return;var r=this.getTipElement(),a=s.getUID(this.constructor.NAME);r.setAttribute("id",a),this.element.setAttribute("aria-describedby",a),this.setContent(),this.config.animation&&e(r).addClass("fade");var l="function"==typeof this.config.placement?this.config.placement.call(this,r,this.element):this.config.placement,c=this._getAttachment(l);this.addAttachmentClass(c);var h=this._getContainer();e(r).data(this.constructor.DATA_KEY,this),e.contains(this.element.ownerDocument.documentElement,this.tip)||e(r).appendTo(h),e(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new kt(this.element,r,this._getPopperConfig(c)),e(r).addClass("show"),"ontouchstart"in document.documentElement&&e(document.body).children().on("mouseover",null,e.noop);var u=function(){t.config.animation&&t._fixTransition();var n=t._hoverState;t._hoverState=null,e(t.element).trigger(t.constructor.Event.SHOWN),"out"===n&&t._leave(null,t)};if(e(this.tip).hasClass("fade")){var f=s.getTransitionDurationFromElement(this.tip);e(this.tip).one(s.TRANSITION_END,u).emulateTransitionEnd(f)}else u()}},n.hide=function(t){var n=this,i=this.getTipElement(),o=e.Event(this.constructor.Event.HIDE),r=function(){"show"!==n._hoverState&&i.parentNode&&i.parentNode.removeChild(i),n._cleanTipClass(),n.element.removeAttribute("aria-describedby"),e(n.element).trigger(n.constructor.Event.HIDDEN),null!==n._popper&&n._popper.destroy(),t&&t()};if(e(this.element).trigger(o),!o.isDefaultPrevented()){if(e(i).removeClass("show"),"ontouchstart"in document.documentElement&&e(document.body).children().off("mouseover",null,e.noop),this._activeTrigger.click=!1,this._activeTrigger.focus=!1,this._activeTrigger.hover=!1,e(this.tip).hasClass("fade")){var a=s.getTransitionDurationFromElement(i);e(i).one(s.TRANSITION_END,r).emulateTransitionEnd(a)}else r();this._hoverState=""}},n.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},n.isWithContent=function(){return Boolean(this.getTitle())},n.addAttachmentClass=function(t){e(this.getTipElement()).addClass("bs-tooltip-"+t)},n.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},n.setContent=function(){var t=this.getTipElement();this.setElementContent(e(t.querySelectorAll(".tooltip-inner")),this.getTitle()),e(t).removeClass("fade show")},n.setElementContent=function(t,n){"object"!=typeof n||!n.nodeType&&!n.jquery?this.config.html?(this.config.sanitize&&(n=Wt(n,this.config.whiteList,this.config.sanitizeFn)),t.html(n)):t.text(n):this.config.html?e(n).parent().is(t)||t.empty().append(n):t.text(e(n).text())},n.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},n._getPopperConfig=function(t){var e=this;return o({},{placement:t,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:".arrow"},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}},this.config.popperConfig)},n._getOffset=function(){var t=this,e={};return"function"==typeof this.config.offset?e.fn=function(e){return e.offsets=o({},e.offsets,t.config.offset(e.offsets,t.element)||{}),e}:e.offset=this.config.offset,e},n._getContainer=function(){return!1===this.config.container?document.body:s.isElement(this.config.container)?e(this.config.container):e(document).find(this.config.container)},n._getAttachment=function(t){return Kt[t.toUpperCase()]},n._setListeners=function(){var t=this;this.config.trigger.split(" ").forEach((function(n){if("click"===n)e(t.element).on(t.constructor.Event.CLICK,t.config.selector,(function(e){return t.toggle(e)}));else if("manual"!==n){var i="hover"===n?t.constructor.Event.MOUSEENTER:t.constructor.Event.FOCUSIN,o="hover"===n?t.constructor.Event.MOUSELEAVE:t.constructor.Event.FOCUSOUT;e(t.element).on(i,t.config.selector,(function(e){return t._enter(e)})).on(o,t.config.selector,(function(e){return t._leave(e)}))}})),this._hideModalHandler=function(){t.element&&t.hide()},e(this.element).closest(".modal").on("hide.bs.modal",this._hideModalHandler),this.config.selector?this.config=o({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},n._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},n._enter=function(t,n){var i=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(i))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(i,n)),t&&(n._activeTrigger["focusin"===t.type?"focus":"hover"]=!0),e(n.getTipElement()).hasClass("show")||"show"===n._hoverState?n._hoverState="show":(clearTimeout(n._timeout),n._hoverState="show",n.config.delay&&n.config.delay.show?n._timeout=setTimeout((function(){"show"===n._hoverState&&n.show()}),n.config.delay.show):n.show())},n._leave=function(t,n){var i=this.constructor.DATA_KEY;(n=n||e(t.currentTarget).data(i))||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),e(t.currentTarget).data(i,n)),t&&(n._activeTrigger["focusout"===t.type?"focus":"hover"]=!1),n._isWithActiveTrigger()||(clearTimeout(n._timeout),n._hoverState="out",n.config.delay&&n.config.delay.hide?n._timeout=setTimeout((function(){"out"===n._hoverState&&n.hide()}),n.config.delay.hide):n.hide())},n._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},n._getConfig=function(t){var n=e(this.element).data();return Object.keys(n).forEach((function(t){-1!==zt.indexOf(t)&&delete n[t]})),"number"==typeof(t=o({},this.constructor.Default,n,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),s.typeCheckConfig(Ut,t,this.constructor.DefaultType),t.sanitize&&(t.template=Wt(t.template,t.whiteList,t.sanitizeFn)),t},n._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},n._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr("class").match(Yt);null!==n&&n.length&&t.removeClass(n.join(""))},n._handlePopperPlacementChange=function(t){this.tip=t.instance.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},n._fixTransition=function(){var t=this.getTipElement(),n=this.config.animation;null===t.getAttribute("x-placement")&&(e(t).removeClass("fade"),this.config.animation=!1,this.hide(),this.show(),this.config.animation=n)},t._jQueryInterface=function(n){return this.each((function(){var i=e(this).data("bs.tooltip"),o="object"==typeof n&&n;if((i||!/dispose|hide/.test(n))&&(i||(i=new t(this,o),e(this).data("bs.tooltip",i)),"string"==typeof n)){if("undefined"==typeof i[n])throw new TypeError('No method named "'+n+'"');i[n]()}}))},i(t,null,[{key:"VERSION",get:function(){return"4.5.2"}},{key:"Default",get:function(){return Gt}},{key:"NAME",get:function(){return Ut}},{key:"DATA_KEY",get:function(){return"bs.tooltip"}},{key:"Event",get:function(){return $t}},{key:"EVENT_KEY",get:function(){return".bs.tooltip"}},{key:"DefaultType",get:function(){return Xt}}]),t}();e.fn[Ut]=Jt._jQueryInterface,e.fn[Ut].Constructor=Jt,e.fn[Ut].noConflict=function(){return e.fn[Ut]=Vt,Jt._jQueryInterface};var Zt="popover",te=e.fn[Zt],ee=new RegExp("(^|\\s)bs-popover\\S+","g"),ne=o({},Jt.Default,{placement:"right",trigger:"click",content:"",template:''}),ie=o({},Jt.DefaultType,{content:"(string|element|function)"}),oe={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"},re=function(t){var n,o;function r(){return t.apply(this,arguments)||this}o=t,(n=r).prototype=Object.create(o.prototype),n.prototype.constructor=n,n.__proto__=o;var s=r.prototype;return s.isWithContent=function(){return this.getTitle()||this._getContent()},s.addAttachmentClass=function(t){e(this.getTipElement()).addClass("bs-popover-"+t)},s.getTipElement=function(){return this.tip=this.tip||e(this.config.template)[0],this.tip},s.setContent=function(){var t=e(this.getTipElement());this.setElementContent(t.find(".popover-header"),this.getTitle());var n=this._getContent();"function"==typeof n&&(n=n.call(this.element)),this.setElementContent(t.find(".popover-body"),n),t.removeClass("fade show")},s._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},s._cleanTipClass=function(){var t=e(this.getTipElement()),n=t.attr("class").match(ee);null!==n&&n.length>0&&t.removeClass(n.join(""))},r._jQueryInterface=function(t){return this.each((function(){var n=e(this).data("bs.popover"),i="object"==typeof t?t:null;if((n||!/dispose|hide/.test(t))&&(n||(n=new r(this,i),e(this).data("bs.popover",n)),"string"==typeof t)){if("undefined"==typeof n[t])throw new TypeError('No method named "'+t+'"');n[t]()}}))},i(r,null,[{key:"VERSION",get:function(){return"4.5.2"}},{key:"Default",get:function(){return ne}},{key:"NAME",get:function(){return Zt}},{key:"DATA_KEY",get:function(){return"bs.popover"}},{key:"Event",get:function(){return oe}},{key:"EVENT_KEY",get:function(){return".bs.popover"}},{key:"DefaultType",get:function(){return ie}}]),r}(Jt);e.fn[Zt]=re._jQueryInterface,e.fn[Zt].Constructor=re,e.fn[Zt].noConflict=function(){return e.fn[Zt]=te,re._jQueryInterface};var se="scrollspy",ae=e.fn[se],le={offset:10,method:"auto",target:""},ce={offset:"number",method:"string",target:"(string|element)"},he=function(){function t(t,n){var i=this;this._element=t,this._scrollElement="BODY"===t.tagName?window:t,this._config=this._getConfig(n),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,e(this._scrollElement).on("scroll.bs.scrollspy",(function(t){return i._process(t)})),this.refresh(),this._process()}var n=t.prototype;return n.refresh=function(){var t=this,n=this._scrollElement===this._scrollElement.window?"offset":"position",i="auto"===this._config.method?n:this._config.method,o="position"===i?this._getScrollTop():0;this._offsets=[],this._targets=[],this._scrollHeight=this._getScrollHeight(),[].slice.call(document.querySelectorAll(this._selector)).map((function(t){var n,r=s.getSelectorFromElement(t);if(r&&(n=document.querySelector(r)),n){var a=n.getBoundingClientRect();if(a.width||a.height)return[e(n)[i]().top+o,r]}return null})).filter((function(t){return t})).sort((function(t,e){return t[0]-e[0]})).forEach((function(e){t._offsets.push(e[0]),t._targets.push(e[1])}))},n.dispose=function(){e.removeData(this._element,"bs.scrollspy"),e(this._scrollElement).off(".bs.scrollspy"),this._element=null,this._scrollElement=null,this._config=null,this._selector=null,this._offsets=null,this._targets=null,this._activeTarget=null,this._scrollHeight=null},n._getConfig=function(t){if("string"!=typeof(t=o({},le,"object"==typeof t&&t?t:{})).target&&s.isElement(t.target)){var n=e(t.target).attr("id");n||(n=s.getUID(se),e(t.target).attr("id",n)),t.target="#"+n}return s.typeCheckConfig(se,t,ce),t},n._getScrollTop=function(){return this._scrollElement===window?this._scrollElement.pageYOffset:this._scrollElement.scrollTop},n._getScrollHeight=function(){return this._scrollElement.scrollHeight||Math.max(document.body.scrollHeight,document.documentElement.scrollHeight)},n._getOffsetHeight=function(){return this._scrollElement===window?window.innerHeight:this._scrollElement.getBoundingClientRect().height},n._process=function(){var t=this._getScrollTop()+this._config.offset,e=this._getScrollHeight(),n=this._config.offset+e-this._getOffsetHeight();if(this._scrollHeight!==e&&this.refresh(),t>=n){var i=this._targets[this._targets.length-1];this._activeTarget!==i&&this._activate(i)}else{if(this._activeTarget&&t0)return this._activeTarget=null,void this._clear();for(var o=this._offsets.length;o--;){this._activeTarget!==this._targets[o]&&t>=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t li > .active":".active";i=(i=e.makeArray(e(o).find(a)))[i.length-1]}var l=e.Event("hide.bs.tab",{relatedTarget:this._element}),c=e.Event("show.bs.tab",{relatedTarget:i});if(i&&e(i).trigger(l),e(this._element).trigger(c),!c.isDefaultPrevented()&&!l.isDefaultPrevented()){r&&(n=document.querySelector(r)),this._activate(this._element,o);var h=function(){var n=e.Event("hidden.bs.tab",{relatedTarget:t._element}),o=e.Event("shown.bs.tab",{relatedTarget:i});e(i).trigger(n),e(t._element).trigger(o)};n?this._activate(n,n.parentNode,h):h()}}},n.dispose=function(){e.removeData(this._element,"bs.tab"),this._element=null},n._activate=function(t,n,i){var o=this,r=(!n||"UL"!==n.nodeName&&"OL"!==n.nodeName?e(n).children(".active"):e(n).find("> li > .active"))[0],a=i&&r&&e(r).hasClass("fade"),l=function(){return o._transitionComplete(t,r,i)};if(r&&a){var c=s.getTransitionDurationFromElement(r);e(r).removeClass("show").one(s.TRANSITION_END,l).emulateTransitionEnd(c)}else l()},n._transitionComplete=function(t,n,i){if(n){e(n).removeClass("active");var o=e(n.parentNode).find("> .dropdown-menu .active")[0];o&&e(o).removeClass("active"),"tab"===n.getAttribute("role")&&n.setAttribute("aria-selected",!1)}if(e(t).addClass("active"),"tab"===t.getAttribute("role")&&t.setAttribute("aria-selected",!0),s.reflow(t),t.classList.contains("fade")&&t.classList.add("show"),t.parentNode&&e(t.parentNode).hasClass("dropdown-menu")){var r=e(t).closest(".dropdown")[0];if(r){var a=[].slice.call(r.querySelectorAll(".dropdown-toggle"));e(a).addClass("active")}t.setAttribute("aria-expanded",!0)}i&&i()},t._jQueryInterface=function(n){return this.each((function(){var i=e(this),o=i.data("bs.tab");if(o||(o=new t(this),i.data("bs.tab",o)),"string"==typeof n){if("undefined"==typeof o[n])throw new TypeError('No method named "'+n+'"');o[n]()}}))},i(t,null,[{key:"VERSION",get:function(){return"4.5.2"}}]),t}();e(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',(function(t){t.preventDefault(),fe._jQueryInterface.call(e(this),"show")})),e.fn.tab=fe._jQueryInterface,e.fn.tab.Constructor=fe,e.fn.tab.noConflict=function(){return e.fn.tab=ue,fe._jQueryInterface};var de=e.fn.toast,pe={animation:"boolean",autohide:"boolean",delay:"number"},me={animation:!0,autohide:!0,delay:500},ge=function(){function t(t,e){this._element=t,this._config=this._getConfig(e),this._timeout=null,this._setListeners()}var n=t.prototype;return n.show=function(){var t=this,n=e.Event("show.bs.toast");if(e(this._element).trigger(n),!n.isDefaultPrevented()){this._clearTimeout(),this._config.animation&&this._element.classList.add("fade");var i=function(){t._element.classList.remove("showing"),t._element.classList.add("show"),e(t._element).trigger("shown.bs.toast"),t._config.autohide&&(t._timeout=setTimeout((function(){t.hide()}),t._config.delay))};if(this._element.classList.remove("hide"),s.reflow(this._element),this._element.classList.add("showing"),this._config.animation){var o=s.getTransitionDurationFromElement(this._element);e(this._element).one(s.TRANSITION_END,i).emulateTransitionEnd(o)}else i()}},n.hide=function(){if(this._element.classList.contains("show")){var t=e.Event("hide.bs.toast");e(this._element).trigger(t),t.isDefaultPrevented()||this._close()}},n.dispose=function(){this._clearTimeout(),this._element.classList.contains("show")&&this._element.classList.remove("show"),e(this._element).off("click.dismiss.bs.toast"),e.removeData(this._element,"bs.toast"),this._element=null,this._config=null},n._getConfig=function(t){return t=o({},me,e(this._element).data(),"object"==typeof t&&t?t:{}),s.typeCheckConfig("toast",t,this.constructor.DefaultType),t},n._setListeners=function(){var t=this;e(this._element).on("click.dismiss.bs.toast",'[data-dismiss="toast"]',(function(){return t.hide()}))},n._close=function(){var t=this,n=function(){t._element.classList.add("hide"),e(t._element).trigger("hidden.bs.toast")};if(this._element.classList.remove("show"),this._config.animation){var i=s.getTransitionDurationFromElement(this._element);e(this._element).one(s.TRANSITION_END,n).emulateTransitionEnd(i)}else n()},n._clearTimeout=function(){clearTimeout(this._timeout),this._timeout=null},t._jQueryInterface=function(n){return this.each((function(){var i=e(this),o=i.data("bs.toast");if(o||(o=new t(this,"object"==typeof n&&n),i.data("bs.toast",o)),"string"==typeof n){if("undefined"==typeof o[n])throw new TypeError('No method named "'+n+'"');o[n](this)}}))},i(t,null,[{key:"VERSION",get:function(){return"4.5.2"}},{key:"DefaultType",get:function(){return pe}},{key:"Default",get:function(){return me}}]),t}();e.fn.toast=ge._jQueryInterface,e.fn.toast.Constructor=ge,e.fn.toast.noConflict=function(){return e.fn.toast=de,ge._jQueryInterface},t.Alert=c,t.Button=u,t.Carousel=v,t.Collapse=T,t.Dropdown=Lt,t.Modal=Ht,t.Popover=re,t.Scrollspy=he,t.Tab=fe,t.Toast=ge,t.Tooltip=Jt,t.Util=s,Object.defineProperty(t,"__esModule",{value:!0})})); +//# sourceMappingURL=bootstrap.bundle.min.js.map \ No newline at end of file diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/bootstrap/js/bootstrap.bundle.min.js.map b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/bootstrap/js/bootstrap.bundle.min.js.map new file mode 100644 index 0000000000..6fd7db178f --- /dev/null +++ b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/bootstrap/js/bootstrap.bundle.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../node_modules/popper.js/dist/esm/popper.js","../../js/src/dropdown.js","../../js/src/modal.js","../../js/src/tools/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js"],"names":["transitionEndEmulator","duration","_this","this","called","$","one","Util","TRANSITION_END","setTimeout","triggerTransitionEnd","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","err","getTransitionDurationFromElement","transitionDuration","css","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","obj","nodeType","typeCheckConfig","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","call","expectedTypes","value","valueType","toString","match","toLowerCase","RegExp","test","Error","toUpperCase","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","parentNode","jQueryDetection","TypeError","version","fn","jquery","emulateTransitionEnd","event","special","bindType","delegateType","handle","target","is","handleObj","handler","apply","arguments","NAME","JQUERY_NO_CONFLICT","Alert","_element","close","rootElement","_getRootElement","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","parent","closest","closeEvent","Event","removeClass","hasClass","_destroyElement","detach","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","Constructor","noConflict","Button","toggle","triggerChangeEvent","addAriaPressed","input","type","checked","classList","contains","activeElement","focus","hasAttribute","setAttribute","toggleClass","button","initialButton","inputBtn","tagName","window","buttons","slice","querySelectorAll","i","len","length","add","EVENT_KEY","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","direction","off","_extends","_handleSwipe","absDeltax","abs","_this2","_keydown","_addTouchEventListeners","_this3","start","originalEvent","pointerType","clientX","touches","end","clearTimeout","e","move","which","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","indicators","nextIndicator","children","addClass","directionalClassName","orderClassName","_this4","activeElementIndex","nextElement","nextElementIndex","isCycling","slidEvent","nextElementInterval","parseInt","defaultInterval","CLASS_NAME_ACTIVE","action","ride","_dataApiClickHandler","slideIndex","carousels","$carousel","Collapse","_isTransitioning","_triggerArray","id","toggleList","elem","filterElement","filter","foundElem","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","not","startEvent","dimension","_getDimension","style","attr","setTransitioning","scrollSize","CLASS_NAME_COLLAPSE","getBoundingClientRect","triggerArrayLength","isTransitioning","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","selectors","$target","isBrowser","timeoutDuration","longerTimeoutBrowsers","userAgent","debounce","Promise","resolve","then","scheduled","isFunction","functionToCheck","getStyleComputedProperty","ownerDocument","defaultView","getComputedStyle","getParentNode","nodeName","host","getScrollParent","body","_getStyleComputedProp","overflow","overflowX","overflowY","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","getOffsetParent","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","range","createRange","setStart","setEnd","commonAncestorContainer","firstElementChild","element1root","getScroll","side","undefined","upperSide","html","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","top","bottom","left","right","getBordersSize","styles","axis","sideA","sideB","getSize","computedStyle","max","getWindowSizes","height","width","classCallCheck","instance","createClass","defineProperties","props","descriptor","enumerable","configurable","writable","defineProperty","key","protoProps","staticProps","assign","source","getClientRect","offsets","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","offset","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","padding","boundariesElement","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","_ref","computeAutoPlacement","placement","refRect","rects","sortedAreas","keys","map","area","sort","a","b","filteredAreas","_ref2","computedPlacement","variation","getReferenceOffsets","state","commonOffsetParent","getOuterSizes","x","marginBottom","y","marginRight","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","Array","runModifiers","modifiers","ends","prop","findIndex","cur","forEach","console","warn","enabled","update","isDestroyed","arrowStyles","attributes","flipped","options","positionFixed","flip","originalPlacement","position","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","name","getSupportedPropertyName","prefixes","upperProp","charAt","toCheck","destroy","removeAttribute","willChange","disableEventListeners","removeOnDestroy","removeChild","getWindow","setupEventListeners","updateBound","addEventListener","passive","scrollElement","attachToScrollParents","callback","scrollParents","isBody","eventsEnabled","enableEventListeners","scheduleUpdate","cancelAnimationFrame","removeEventListener","isNumeric","n","isNaN","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","concat","reverse","BEHAVIORS","parseOffset","basePlacement","useHeight","fragments","frag","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","Defaults","shift","shiftvariation","_data$offsets","isVertical","shiftOffsets","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","min","keepTogether","floor","opSide","arrow","_data$offsets$arrow","arrowElement","sideCapitalized","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","round","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","inner","subtractLength","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","v","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","x-placement","applyStyle","onLoad","modifierOptions","Popper","requestAnimationFrame","Utils","global","PopperUtils","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","boundary","display","popperConfig","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","isActive","_clearMenus","usePopper","showEvent","_getParentFromElement","referenceElement","_getPopperConfig","noop","hideEvent","stopPropagation","constructor","_getPlacement","$parentDropdown","_getOffset","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","item","EVENT_CLICK_DATA_API","backdrop","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","_triggerBackdropTransition","hideEventPrevented","defaultPrevented","isModalOverflowing","scrollHeight","modalTransitionDuration","modalBody","ELEMENT_NODE","appendChild","_enforceFocus","shownEvent","transitionComplete","_this5","has","_this6","_this7","_this8","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this9","animate","createElement","className","appendTo","backdropTransitionDuration","callbackRemove","paddingLeft","paddingRight","_getScrollbarWidth","_this10","fixedContent","stickyContent","actualPadding","calculatedPadding","actualMargin","calculatedMargin","elements","margin","scrollDiv","scrollbarWidth","_this11","uriAttrs","DefaultWhitelist","*","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","DOMParser","parseFromString","whitelistKeys","_loop","elName","attributeList","whitelistedAttributes","allowedAttributeList","attrName","nodeValue","regExp","attrRegex","allowedAttribute","innerHTML","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","container","fallbackPlacement","sanitize","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","DATA_KEY","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","CLASS_PREFIX","setElementContent","CLASS_NAME_FADE","content","text","empty","append","_handlePopperPlacementChange","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","$tip","tabClass","join","popperData","initConfigAnimation","Popover","_getContent","method","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","pageYOffset","_getOffsetHeight","maxScroll","_activate","_clear","queries","$link","parents","SELECTOR_NAV_LINKS","scrollSpys","$spy","Tab","previous","listElement","itemSelector","makeArray","hiddenEvent","active","_transitionComplete","dropdownChild","dropdownElement","dropdownToggleList","autohide","Toast","_clearTimeout","_close"],"mappings":"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","sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\nconst TRANSITION_END = 'transitionend'\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nfunction toType(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return `${obj}`\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\nfunction getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n return undefined\n }\n }\n}\n\nfunction transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n}\n\nfunction setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst Util = {\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (err) {\n return null\n }\n },\n\n getTransitionDurationFromElement(element) {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let transitionDuration = $(element).css('transition-duration')\n let transitionDelay = $(element).css('transition-delay')\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END)\n },\n\n // TODO: Remove in v5\n supportsTransitionEnd() {\n return Boolean(TRANSITION_END)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value)\n ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n },\n\n findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return Util.findShadowRoot(element.parentNode)\n },\n\n jQueryDetection() {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n }\n}\n\nUtil.jQueryDetection()\nsetTransitionEndSupport()\n\nexport default Util\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SELECTOR_DISMISS = '[data-dismiss=\"alert\"]'\n\nconst EVENT_CLOSE = `close${EVENT_KEY}`\nconst EVENT_CLOSED = `closed${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_ALERT = 'alert'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n if (!parent) {\n parent = $(element).closest(`.${CLASS_NAME_ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(EVENT_CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(CLASS_NAME_SHOW)\n\n if (!$(element).hasClass(CLASS_NAME_FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n $(element)\n .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n .emulateTransitionEnd(transitionDuration)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(EVENT_CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(\n EVENT_CLICK_DATA_API,\n SELECTOR_DISMISS,\n Alert._handleDismiss(new Alert())\n)\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Alert._jQueryInterface\n$.fn[NAME].Constructor = Alert\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_BUTTON = 'btn'\nconst CLASS_NAME_FOCUS = 'focus'\n\nconst SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]'\nconst SELECTOR_DATA_TOGGLES = '[data-toggle=\"buttons\"]'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"button\"]'\nconst SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle=\"buttons\"] .btn'\nconst SELECTOR_INPUT = 'input:not([type=\"hidden\"])'\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_BUTTON = '.btn'\n\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_FOCUS_BLUR_DATA_API = `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(\n SELECTOR_DATA_TOGGLES\n )[0]\n\n if (rootElement) {\n const input = this._element.querySelector(SELECTOR_INPUT)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = rootElement.querySelector(SELECTOR_ACTIVE)\n\n if (activeElement) {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input\n if (input.type === 'checkbox' || input.type === 'radio') {\n input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE)\n }\n $(input).trigger('change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(CLASS_NAME_ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, (event) => {\n let button = event.target\n const initialButton = button\n\n if (!$(button).hasClass(CLASS_NAME_BUTTON)) {\n button = $(button).closest(SELECTOR_BUTTON)[0]\n }\n\n if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {\n event.preventDefault() // work around Firefox bug #1540995\n } else {\n const inputBtn = button.querySelector(SELECTOR_INPUT)\n\n if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {\n event.preventDefault() // work around Firefox bug #1540995\n return\n }\n\n if (initialButton.tagName !== 'LABEL' || inputBtn && inputBtn.type !== 'checkbox') {\n Button._jQueryInterface.call($(button), 'toggle')\n }\n }\n })\n .on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, (event) => {\n const button = $(event.target).closest(SELECTOR_BUTTON)[0]\n $(button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n // ensure correct active class is set to match the controls' actual values/states\n\n // find all checkboxes/readio buttons inside data-toggle groups\n let buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n const input = button.querySelector(SELECTOR_INPUT)\n if (input.checked || input.hasAttribute('checked')) {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n\n // find all button toggles\n buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = buttons.length; i < len; i++) {\n const button = buttons[i]\n if (button.getAttribute('aria-pressed') === 'true') {\n button.classList.add(CLASS_NAME_ACTIVE)\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE)\n }\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Button._jQueryInterface\n$.fn[NAME].Constructor = Button\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true,\n touch : true\n}\n\nconst DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean',\n touch : 'boolean'\n}\n\nconst DIRECTION_NEXT = 'next'\nconst DIRECTION_PREV = 'prev'\nconst DIRECTION_LEFT = 'left'\nconst DIRECTION_RIGHT = 'right'\n\nconst EVENT_SLIDE = `slide${EVENT_KEY}`\nconst EVENT_SLID = `slid${EVENT_KEY}`\nconst EVENT_KEYDOWN = `keydown${EVENT_KEY}`\nconst EVENT_MOUSEENTER = `mouseenter${EVENT_KEY}`\nconst EVENT_MOUSELEAVE = `mouseleave${EVENT_KEY}`\nconst EVENT_TOUCHSTART = `touchstart${EVENT_KEY}`\nconst EVENT_TOUCHMOVE = `touchmove${EVENT_KEY}`\nconst EVENT_TOUCHEND = `touchend${EVENT_KEY}`\nconst EVENT_POINTERDOWN = `pointerdown${EVENT_KEY}`\nconst EVENT_POINTERUP = `pointerup${EVENT_KEY}`\nconst EVENT_DRAG_START = `dragstart${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_CAROUSEL = 'carousel'\nconst CLASS_NAME_ACTIVE = 'active'\nconst CLASS_NAME_SLIDE = 'slide'\nconst CLASS_NAME_RIGHT = 'carousel-item-right'\nconst CLASS_NAME_LEFT = 'carousel-item-left'\nconst CLASS_NAME_NEXT = 'carousel-item-next'\nconst CLASS_NAME_PREV = 'carousel-item-prev'\nconst CLASS_NAME_POINTER_EVENT = 'pointer-event'\n\nconst SELECTOR_ACTIVE = '.active'\nconst SELECTOR_ACTIVE_ITEM = '.active.carousel-item'\nconst SELECTOR_ITEM = '.carousel-item'\nconst SELECTOR_ITEM_IMG = '.carousel-item img'\nconst SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev'\nconst SELECTOR_INDICATORS = '.carousel-indicators'\nconst SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]'\nconst SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]'\n\nconst PointerType = {\n TOUCH : 'touch',\n PEN : 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = this._element.querySelector(SELECTOR_INDICATORS)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(DIRECTION_NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(DIRECTION_PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (this._element.querySelector(SELECTOR_NEXT_PREV)) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(EVENT_SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex\n ? DIRECTION_NEXT\n : DIRECTION_PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n this.touchDeltaX = 0\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element).on(EVENT_KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(EVENT_MOUSEENTER, (event) => this.pause(event))\n .on(EVENT_MOUSELEAVE, (event) => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = (event) => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchStartX = event.originalEvent.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.originalEvent.touches[0].clientX\n }\n }\n\n const move = (event) => {\n // ensure swiping with one touch and not pinching\n if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.originalEvent.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = (event) => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.originalEvent.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n $(this._element.querySelectorAll(SELECTOR_ITEM_IMG))\n .on(EVENT_DRAG_START, (e) => e.preventDefault())\n\n if (this._pointerEvent) {\n $(this._element).on(EVENT_POINTERDOWN, (event) => start(event))\n $(this._element).on(EVENT_POINTERUP, (event) => end(event))\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT)\n } else {\n $(this._element).on(EVENT_TOUCHSTART, (event) => start(event))\n $(this._element).on(EVENT_TOUCHMOVE, (event) => move(event))\n $(this._element).on(EVENT_TOUCHEND, (event) => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode\n ? [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM))\n : []\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === DIRECTION_NEXT\n const isPrevDirection = direction === DIRECTION_PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === DIRECTION_PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1\n ? this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM))\n const slideEvent = $.Event(EVENT_SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE))\n $(indicators).removeClass(CLASS_NAME_ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(CLASS_NAME_ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === DIRECTION_NEXT) {\n directionalClassName = CLASS_NAME_LEFT\n orderClassName = CLASS_NAME_NEXT\n eventDirectionName = DIRECTION_LEFT\n } else {\n directionalClassName = CLASS_NAME_RIGHT\n orderClassName = CLASS_NAME_PREV\n eventDirectionName = DIRECTION_RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(CLASS_NAME_ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n const slidEvent = $.Event(EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if ($(this._element).hasClass(CLASS_NAME_SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(CLASS_NAME_ACTIVE)\n\n $(activeElement).removeClass(`${CLASS_NAME_ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(transitionDuration)\n } else {\n $(activeElement).removeClass(CLASS_NAME_ACTIVE)\n $(nextElement).addClass(CLASS_NAME_ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(CLASS_NAME_CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler)\n\n$(window).on(EVENT_LOAD_DATA_API, () => {\n const carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n const $carousel = $(carousels[i])\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Carousel._jQueryInterface\n$.fn[NAME].Constructor = Carousel\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n toggle : true,\n parent : ''\n}\n\nconst DefaultType = {\n toggle : 'boolean',\n parent : '(string|element)'\n}\n\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_COLLAPSE = 'collapse'\nconst CLASS_NAME_COLLAPSING = 'collapsing'\nconst CLASS_NAME_COLLAPSED = 'collapsed'\n\nconst DIMENSION_WIDTH = 'width'\nconst DIMENSION_HEIGHT = 'height'\n\nconst SELECTOR_ACTIVES = '.show, .collapsing'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"collapse\"]'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = [].slice.call(document.querySelectorAll(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = Util.getSelectorFromElement(elem)\n const filterElement = [].slice.call(document.querySelectorAll(selector))\n .filter((foundElem) => foundElem === element)\n\n if (selector !== null && filterElement.length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(CLASS_NAME_SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES))\n .filter((elem) => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(EVENT_SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSE)\n .addClass(CLASS_NAME_COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n $(this._triggerArray)\n .removeClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(EVENT_SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const startEvent = $.Event(EVENT_HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(CLASS_NAME_COLLAPSING)\n .removeClass(`${CLASS_NAME_COLLAPSE} ${CLASS_NAME_SHOW}`)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const $elem = $([].slice.call(document.querySelectorAll(selector)))\n if (!$elem.hasClass(CLASS_NAME_SHOW)) {\n $(trigger).addClass(CLASS_NAME_COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(CLASS_NAME_COLLAPSING)\n .addClass(CLASS_NAME_COLLAPSE)\n .trigger(EVENT_HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(DIMENSION_WIDTH)\n return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT\n }\n\n _getParent() {\n let parent\n\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = document.querySelector(this._config.parent)\n }\n\n const selector = `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n const children = [].slice.call(parent.querySelectorAll(selector))\n\n $(children).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n const isOpen = $(element).hasClass(CLASS_NAME_SHOW)\n\n if (triggerArray.length) {\n $(triggerArray)\n .toggleClass(CLASS_NAME_COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? document.querySelector(selector) : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$this.data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n const selectors = [].slice.call(document.querySelectorAll(selector))\n\n $(selectors).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Collapse._jQueryInterface\n$.fn[NAME].Constructor = Collapse\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n}\n\nexport default Collapse\n","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_CLICK = `click${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYDOWN_DATA_API = `keydown${EVENT_KEY}${DATA_API_KEY}`\nconst EVENT_KEYUP_DATA_API = `keyup${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DISABLED = 'disabled'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_DROPUP = 'dropup'\nconst CLASS_NAME_DROPRIGHT = 'dropright'\nconst CLASS_NAME_DROPLEFT = 'dropleft'\nconst CLASS_NAME_MENURIGHT = 'dropdown-menu-right'\nconst CLASS_NAME_POSITION_STATIC = 'position-static'\n\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"dropdown\"]'\nconst SELECTOR_FORM_CHILD = '.dropdown form'\nconst SELECTOR_MENU = '.dropdown-menu'\nconst SELECTOR_NAVBAR_NAV = '.navbar-nav'\nconst SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n\nconst PLACEMENT_TOP = 'top-start'\nconst PLACEMENT_TOPEND = 'top-end'\nconst PLACEMENT_BOTTOM = 'bottom-start'\nconst PLACEMENT_BOTTOMEND = 'bottom-end'\nconst PLACEMENT_RIGHT = 'right-start'\nconst PLACEMENT_LEFT = 'left-start'\n\nconst Default = {\n offset : 0,\n flip : true,\n boundary : 'scrollParent',\n reference : 'toggle',\n display : 'dynamic',\n popperConfig : null\n}\n\nconst DefaultType = {\n offset : '(number|string|function)',\n flip : 'boolean',\n boundary : '(string|element)',\n reference : '(string|element)',\n display : 'string',\n popperConfig : '(null|object)'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const isActive = $(this._menu).hasClass(CLASS_NAME_SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n this.show(true)\n }\n\n show(usePopper = false) {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || $(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(EVENT_SHOW, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar && usePopper) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org/)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(CLASS_NAME_POSITION_STATIC)\n }\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_SHOWN, relatedTarget))\n }\n\n hide() {\n if (this._element.disabled || $(this._element).hasClass(CLASS_NAME_DISABLED) || !$(this._menu).hasClass(CLASS_NAME_SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (this._popper) {\n this._popper.destroy()\n }\n\n $(this._menu).toggleClass(CLASS_NAME_SHOW)\n $(parent)\n .toggleClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(EVENT_CLICK, (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = parent.querySelector(SELECTOR_MENU)\n }\n }\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element.parentNode)\n let placement = PLACEMENT_BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {\n placement = $(this._menu).hasClass(CLASS_NAME_MENURIGHT)\n ? PLACEMENT_TOPEND\n : PLACEMENT_TOP\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT\n } else if ($(this._menu).hasClass(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND\n }\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return {\n ...popperConfig,\n ...this._config.popperConfig\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE))\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(CLASS_NAME_SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(EVENT_HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n if (context._popper) {\n context._popper.destroy()\n }\n\n $(dropdownMenu).removeClass(CLASS_NAME_SHOW)\n $(parent)\n .removeClass(CLASS_NAME_SHOW)\n .trigger($.Event(EVENT_HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName)\n ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n if (this.disabled || $(this).hasClass(CLASS_NAME_DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(CLASS_NAME_SHOW)\n\n if (!isActive && event.which === ESCAPE_KEYCODE) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n $(parent.querySelector(SELECTOR_DATA_TOGGLE)).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS))\n .filter((item) => $(item).is(':visible'))\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler)\n .on(`${EVENT_CLICK_DATA_API} ${EVENT_KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(EVENT_CLICK_DATA_API, SELECTOR_FORM_CHILD, (e) => {\n e.stopPropagation()\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Dropdown._jQueryInterface\n$.fn[NAME].Constructor = Dropdown\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n}\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n}\n\nconst DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n}\n\nconst EVENT_HIDE = `hide${EVENT_KEY}`\nconst EVENT_HIDE_PREVENTED = `hidePrevented${EVENT_KEY}`\nconst EVENT_HIDDEN = `hidden${EVENT_KEY}`\nconst EVENT_SHOW = `show${EVENT_KEY}`\nconst EVENT_SHOWN = `shown${EVENT_KEY}`\nconst EVENT_FOCUSIN = `focusin${EVENT_KEY}`\nconst EVENT_RESIZE = `resize${EVENT_KEY}`\nconst EVENT_CLICK_DISMISS = `click.dismiss${EVENT_KEY}`\nconst EVENT_KEYDOWN_DISMISS = `keydown.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEUP_DISMISS = `mouseup.dismiss${EVENT_KEY}`\nconst EVENT_MOUSEDOWN_DISMISS = `mousedown.dismiss${EVENT_KEY}`\nconst EVENT_CLICK_DATA_API = `click${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable'\nconst CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure'\nconst CLASS_NAME_BACKDROP = 'modal-backdrop'\nconst CLASS_NAME_OPEN = 'modal-open'\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\nconst CLASS_NAME_STATIC = 'modal-static'\n\nconst SELECTOR_DIALOG = '.modal-dialog'\nconst SELECTOR_MODAL_BODY = '.modal-body'\nconst SELECTOR_DATA_TOGGLE = '[data-toggle=\"modal\"]'\nconst SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]'\nconst SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top'\nconst SELECTOR_STICKY_CONTENT = '.sticky-top'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = element.querySelector(SELECTOR_DIALOG)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(EVENT_SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n EVENT_CLICK_DISMISS,\n SELECTOR_DATA_DISMISS,\n (event) => this.hide(event)\n )\n\n $(this._dialog).on(EVENT_MOUSEDOWN_DISMISS, () => {\n $(this._element).one(EVENT_MOUSEUP_DISMISS, (event) => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = $.Event(EVENT_HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(EVENT_FOCUSIN)\n\n $(this._element).removeClass(CLASS_NAME_SHOW)\n\n $(this._element).off(EVENT_CLICK_DISMISS)\n $(this._dialog).off(EVENT_MOUSEDOWN_DISMISS)\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach((htmlElement) => $(htmlElement).off(EVENT_KEY))\n\n /**\n * `document` has 2 events `EVENT_FOCUSIN` and `EVENT_CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `EVENT_CLICK_DATA_API` event that should remain\n */\n $(document).off(EVENT_FOCUSIN)\n\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _triggerBackdropTransition() {\n if (this._config.backdrop === 'static') {\n const hideEventPrevented = $.Event(EVENT_HIDE_PREVENTED)\n\n $(this._element).trigger(hideEventPrevented)\n if (hideEventPrevented.defaultPrevented) {\n return\n }\n\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden'\n }\n\n this._element.classList.add(CLASS_NAME_STATIC)\n\n const modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n $(this._element).off(Util.TRANSITION_END)\n\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.classList.remove(CLASS_NAME_STATIC)\n if (!isModalOverflowing) {\n $(this._element).one(Util.TRANSITION_END, () => {\n this._element.style.overflowY = ''\n })\n .emulateTransitionEnd(this._element, modalTransitionDuration)\n }\n })\n .emulateTransitionEnd(modalTransitionDuration)\n this._element.focus()\n } else {\n this.hide()\n }\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(CLASS_NAME_FADE)\n const modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n this._element.setAttribute('role', 'dialog')\n\n if ($(this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {\n modalBody.scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(CLASS_NAME_SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(EVENT_SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(EVENT_FOCUSIN) // Guard against infinite focus loop\n .on(EVENT_FOCUSIN, (event) => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown) {\n $(this._element).on(EVENT_KEYDOWN_DISMISS, (event) => {\n if (this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n } else if (!this._config.keyboard && event.which === ESCAPE_KEYCODE) {\n this._triggerBackdropTransition()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(EVENT_KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(EVENT_RESIZE, (event) => this.handleUpdate(event))\n } else {\n $(window).off(EVENT_RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._element.removeAttribute('role')\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(CLASS_NAME_OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(EVENT_HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(CLASS_NAME_FADE)\n ? CLASS_NAME_FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = CLASS_NAME_BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(EVENT_CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n\n this._triggerBackdropTransition()\n })\n\n if (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(CLASS_NAME_SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(CLASS_NAME_SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if ($(this._element).hasClass(CLASS_NAME_FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n const stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT))\n\n // Adjust fixed content padding\n $(fixedContent).each((index, element) => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(stickyContent).each((index, element) => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element)\n .data('margin-right', actualMargin)\n .css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $(document.body).css('padding-right')\n $(document.body)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n\n $(document.body).addClass(CLASS_NAME_OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n const fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT))\n $(fixedContent).each((index, element) => {\n const padding = $(element).data('padding-right')\n $(element).removeData('padding-right')\n element.style.paddingRight = padding ? padding : ''\n })\n\n // Restore sticky content\n const elements = [].slice.call(document.querySelectorAll(`${SELECTOR_STICKY_CONTENT}`))\n $(elements).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $(document.body).data('padding-right')\n $(document.body).removeData('padding-right')\n document.body.style.paddingRight = padding ? padding : ''\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Default,\n ...$(this).data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n const config = $(target).data(DATA_KEY)\n ? 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(EVENT_SHOW, (showEvent) => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(EVENT_HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Modal._jQueryInterface\n$.fn[NAME].Constructor = Modal\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): tools/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'srcset', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i\n\nfunction allowedAttribute(attr, allowedAttributeList) {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter((attrRegex) => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, len = regExp.length; i < len; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (unsafeHtml.length === 0) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = [].slice.call(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = [].slice.call(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach((attr) => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './tools/sanitizer'\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation : 'boolean',\n template : 'string',\n title : '(string|element|function)',\n trigger : 'string',\n delay : '(number|object)',\n html : 'boolean',\n selector : '(string|boolean)',\n placement : '(string|function)',\n offset : '(number|string|function)',\n container : '(string|element|boolean)',\n fallbackPlacement : '(string|array)',\n boundary : '(string|element)',\n sanitize : 'boolean',\n sanitizeFn : '(null|function)',\n whiteList : 'object',\n popperConfig : '(null|object)'\n}\n\nconst AttachmentMap = {\n AUTO : 'auto',\n TOP : 'top',\n RIGHT : 'right',\n BOTTOM : 'bottom',\n LEFT : 'left'\n}\n\nconst Default = {\n animation : true,\n template : '
' +\n '
' +\n '
',\n trigger : 'hover focus',\n title : '',\n delay : 0,\n html : false,\n selector : false,\n placement : 'top',\n offset : 0,\n container : false,\n fallbackPlacement : 'flip',\n boundary : 'scrollParent',\n sanitize : true,\n sanitizeFn : null,\n whiteList : DefaultWhitelist,\n popperConfig : null\n}\n\nconst HOVER_STATE_SHOW = 'show'\nconst HOVER_STATE_OUT = 'out'\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\nconst SELECTOR_ARROW = '.arrow'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org/)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if ($(this.getTipElement()).hasClass(CLASS_NAME_SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n $(this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler)\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n const showEvent = $.Event(this.constructor.Event.SHOW)\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n const shadowRoot = Util.findShadowRoot(this.element)\n const isInTheDom = $.contains(\n shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = Util.getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n $(tip).addClass(CLASS_NAME_FADE)\n }\n\n const placement = typeof this.config.placement === 'function'\n ? this.config.placement.call(this, tip, this.element)\n : this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n $(tip).data(this.constructor.DATA_KEY, this)\n\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $(tip).appendTo(container)\n }\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, this._getPopperConfig(attachment))\n\n $(tip).addClass(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HOVER_STATE_OUT) {\n this._leave(null, this)\n }\n }\n\n if ($(this.tip).hasClass(CLASS_NAME_FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(this.tip)\n\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const hideEvent = $.Event(this.constructor.Event.HIDE)\n const complete = () => {\n if (this._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(CLASS_NAME_SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false\n this._activeTrigger[TRIGGER_FOCUS] = false\n this._activeTrigger[TRIGGER_HOVER] = false\n\n if ($(this.tip).hasClass(CLASS_NAME_FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(tip)\n\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent($(tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle())\n $(tip).removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`)\n }\n\n setElementContent($element, content) {\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (this.config.html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n $element.html(content)\n } else {\n $element.text(content)\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function'\n ? this.config.title.call(this.element)\n : this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getPopperConfig(attachment) {\n const defaultBsConfig = {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: SELECTOR_ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: (data) => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: (data) => this._handlePopperPlacementChange(data)\n }\n\n return {\n ...defaultBsConfig,\n ...this.config.popperConfig\n }\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (Util.isElement(this.config.container)) {\n return $(this.config.container)\n }\n\n return $(document).find(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach((trigger) => {\n if (trigger === 'click') {\n $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n (event) => this.toggle(event)\n )\n } else if (trigger !== TRIGGER_MANUAL) {\n const eventIn = trigger === TRIGGER_HOVER\n ? this.constructor.Event.MOUSEENTER\n : this.constructor.Event.FOCUSIN\n const eventOut = trigger === TRIGGER_HOVER\n ? this.constructor.Event.MOUSELEAVE\n : this.constructor.Event.FOCUSOUT\n\n $(this.element)\n .on(eventIn, this.config.selector, (event) => this._enter(event))\n .on(eventOut, this.config.selector, (event) => this._leave(event))\n }\n })\n\n this._hideModalHandler = () => {\n if (this.element) {\n this.hide()\n }\n }\n\n $(this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler)\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = true\n }\n\n if ($(context.getTipElement()).hasClass(CLASS_NAME_SHOW) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HOVER_STATE_OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = $(this.element).data()\n\n Object.keys(dataAttributes)\n .forEach((dataAttr) => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n this.tip = popperData.instance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n $(tip).removeClass(CLASS_NAME_FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Tooltip._jQueryInterface\n$.fn[NAME].Constructor = Tooltip\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '
' +\n '
' +\n '

' +\n '
'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content : '(string|element|function)'\n}\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TITLE = '.popover-header'\nconst SELECTOR_CONTENT = '.popover-body'\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n this.setElementContent($tip.find(SELECTOR_CONTENT), content)\n\n $tip.removeClass(`${CLASS_NAME_FADE} ${CLASS_NAME_SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Popover._jQueryInterface\n$.fn[NAME].Constructor = Popover\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.5.2): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.5.2'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n offset : 10,\n method : 'auto',\n target : ''\n}\n\nconst DefaultType = {\n offset : 'number',\n method : 'string',\n target : '(string|element)'\n}\n\nconst EVENT_ACTIVATE = `activate${EVENT_KEY}`\nconst EVENT_SCROLL = `scroll${EVENT_KEY}`\nconst EVENT_LOAD_DATA_API = `load${EVENT_KEY}${DATA_API_KEY}`\n\nconst CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item'\nconst CLASS_NAME_ACTIVE = 'active'\n\nconst SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]'\nconst SELECTOR_NAV_LIST_GROUP = '.nav, .list-group'\nconst SELECTOR_NAV_LINKS = '.nav-link'\nconst SELECTOR_NAV_ITEMS = '.nav-item'\nconst SELECTOR_LIST_ITEMS = '.list-group-item'\nconst SELECTOR_DROPDOWN = '.dropdown'\nconst SELECTOR_DROPDOWN_ITEMS = '.dropdown-item'\nconst SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle'\n\nconst METHOD_OFFSET = 'offset'\nconst METHOD_POSITION = 'position'\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${SELECTOR_NAV_LINKS},` +\n `${this._config.target} ${SELECTOR_LIST_ITEMS},` +\n `${this._config.target} ${SELECTOR_DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(EVENT_SCROLL, (event) => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window\n ? METHOD_OFFSET : METHOD_POSITION\n\n const offsetMethod = this._config.method === 'auto'\n ? autoMethod : this._config.method\n\n const offsetBase = offsetMethod === METHOD_POSITION\n ? this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = [].slice.call(document.querySelectorAll(this._selector))\n\n targets\n .map((element) => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = document.querySelector(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n return null\n })\n .filter((item) => item)\n .sort((a, b) => a[0] - b[0])\n .forEach((item) => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string' && Util.isElement(config.target)) {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window\n ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window\n ? window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n for (let i = this._offsets.length; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector\n .split(',')\n .map((selector) => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const $link = $([].slice.call(document.querySelectorAll(queries.join(','))))\n\n if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {\n $link.closest(SELECTOR_DROPDOWN)\n .find(SELECTOR_DROPDOWN_TOGGLE)\n .addClass(CLASS_NAME_ACTIVE)\n $link.addClass(CLASS_NAME_ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(CLASS_NAME_ACTIVE)\n // Set triggered links parents as active\n // With both

wQH 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 diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/core/abp.css b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/core/abp.css index ee3c5080a5..ddf9cae5b2 100644 --- a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/core/abp.css +++ b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/core/abp.css @@ -1,56 +1,56 @@ -@keyframes spin { - 0% { - transform: translateZ(0) rotate(0deg); - } - - 100% { - transform: translateZ(0) rotate(360deg); - } -} - -.abp-block-area { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - z-index: 102; - background-color: #fff; - opacity: .8; - transition: opacity .25s; -} - - .abp-block-area.abp-block-area-disappearing { - opacity: 0; - } - - .abp-block-area.abp-block-area-busy:after { - content: attr(data-text); - display: block; - max-width: 125px; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - font-size: 20px; - font-family: sans-serif; - color: #343a40; - text-align: center; - text-transform: uppercase; - } - - .abp-block-area.abp-block-area-busy:before { - content: ""; - display: block; - width: 150px; - height: 150px; - border-radius: 50%; - border-width: 2px; - border-style: solid; - border-color: transparent #228ae6 #228ae6 #228ae6; - position: absolute; - top: calc(50% - 75px); - left: calc(50% - 75px); - will-change: transform; - animation: spin .75s infinite ease-in-out; - } +@keyframes spin { + 0% { + transform: translateZ(0) rotate(0deg); + } + + 100% { + transform: translateZ(0) rotate(360deg); + } +} + +.abp-block-area { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 102; + background-color: #fff; + opacity: .8; + transition: opacity .25s; +} + + .abp-block-area.abp-block-area-disappearing { + opacity: 0; + } + + .abp-block-area.abp-block-area-busy:after { + content: attr(data-text); + display: block; + max-width: 125px; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + font-size: 20px; + font-family: sans-serif; + color: #343a40; + text-align: center; + text-transform: uppercase; + } + + .abp-block-area.abp-block-area-busy:before { + content: ""; + display: block; + width: 150px; + height: 150px; + border-radius: 50%; + border-width: 2px; + border-style: solid; + border-color: transparent #228ae6 #228ae6 #228ae6; + position: absolute; + top: calc(50% - 75px); + left: calc(50% - 75px); + will-change: transform; + animation: spin .75s infinite ease-in-out; + } diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/core/abp.js b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/core/abp.js index 01df49a726..20bd92147a 100644 --- a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/core/abp.js +++ b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/core/abp.js @@ -1,666 +1,754 @@ -var abp = abp || {}; -(function () { - - /* Application paths *****************************************/ - - //Current application root path (including virtual directory if exists). - abp.appPath = abp.appPath || '/'; - - abp.pageLoadTime = new Date(); - - //Converts given path to absolute path using abp.appPath variable. - abp.toAbsAppPath = function (path) { - if (path.indexOf('/') == 0) { - path = path.substring(1); - } - - return abp.appPath + path; - }; - - /* LOGGING ***************************************************/ - //Implements Logging API that provides secure & controlled usage of console.log - - abp.log = abp.log || {}; - - abp.log.levels = { - DEBUG: 1, - INFO: 2, - WARN: 3, - ERROR: 4, - FATAL: 5 - }; - - abp.log.level = abp.log.levels.DEBUG; - - abp.log.log = function (logObject, logLevel) { - if (!window.console || !window.console.log) { - return; - } - - if (logLevel != undefined && logLevel < abp.log.level) { - return; - } - - console.log(logObject); - }; - - abp.log.debug = function (logObject) { - abp.log.log("DEBUG: ", abp.log.levels.DEBUG); - abp.log.log(logObject, abp.log.levels.DEBUG); - }; - - abp.log.info = function (logObject) { - abp.log.log("INFO: ", abp.log.levels.INFO); - abp.log.log(logObject, abp.log.levels.INFO); - }; - - abp.log.warn = function (logObject) { - abp.log.log("WARN: ", abp.log.levels.WARN); - abp.log.log(logObject, abp.log.levels.WARN); - }; - - abp.log.error = function (logObject) { - abp.log.log("ERROR: ", abp.log.levels.ERROR); - abp.log.log(logObject, abp.log.levels.ERROR); - }; - - abp.log.fatal = function (logObject) { - abp.log.log("FATAL: ", abp.log.levels.FATAL); - abp.log.log(logObject, abp.log.levels.FATAL); - }; - - /* LOCALIZATION ***********************************************/ - - abp.localization = abp.localization || {}; - - abp.localization.values = {}; - - abp.localization.localize = function (key, sourceName) { - if (sourceName === '_') { //A convention to suppress the localization - return key; - } - - sourceName = sourceName || abp.localization.defaultResourceName; - if (!sourceName) { - abp.log.warn('Localization source name is not specified and the defaultResourceName was not defined!'); - return key; - } - - var source = abp.localization.values[sourceName]; - if (!source) { - abp.log.warn('Could not find localization source: ' + sourceName); - return key; - } - - var value = source[key]; - if (value == undefined) { - return key; - } - - var copiedArguments = Array.prototype.slice.call(arguments, 0); - copiedArguments.splice(1, 1); - copiedArguments[0] = value; - - return abp.utils.formatString.apply(this, copiedArguments); - }; - - abp.localization.isLocalized = function (key, sourceName) { - if (sourceName === '_') { //A convention to suppress the localization - return true; - } - - sourceName = sourceName || abp.localization.defaultResourceName; - if (!sourceName) { - return false; - } - - var source = abp.localization.values[sourceName]; - if (!source) { - return false; - } - - var value = source[key]; - if (value === undefined) { - return false; - } - - return true; - }; - - abp.localization.getResource = function (name) { - return function () { - var copiedArguments = Array.prototype.slice.call(arguments, 0); - copiedArguments.splice(1, 0, name); - return abp.localization.localize.apply(this, copiedArguments); - }; - }; - - abp.localization.defaultResourceName = undefined; - - /* AUTHORIZATION **********************************************/ - - abp.auth = abp.auth || {}; - - abp.auth.policies = abp.auth.policies || {}; - - abp.auth.grantedPolicies = abp.auth.grantedPolicies || {}; - - abp.auth.isGranted = function (policyName) { - return abp.auth.policies[policyName] != undefined && abp.auth.grantedPolicies[policyName] != undefined; - }; - - abp.auth.isAnyGranted = function () { - if (!arguments || arguments.length <= 0) { - return true; - } - - for (var i = 0; i < arguments.length; i++) { - if (abp.auth.isGranted(arguments[i])) { - return true; - } - } - - return false; - }; - - abp.auth.areAllGranted = function () { - if (!arguments || arguments.length <= 0) { - return true; - } - - for (var i = 0; i < arguments.length; i++) { - if (!abp.auth.isGranted(arguments[i])) { - return false; - } - } - - return true; - }; - - abp.auth.tokenCookieName = 'Abp.AuthToken'; - - abp.auth.setToken = function (authToken, expireDate) { - abp.utils.setCookieValue(abp.auth.tokenCookieName, authToken, expireDate, abp.appPath, abp.domain); - }; - - abp.auth.getToken = function () { - return abp.utils.getCookieValue(abp.auth.tokenCookieName); - } - - abp.auth.clearToken = function () { - abp.auth.setToken(); - } - - /* SETTINGS *************************************************/ - - abp.setting = abp.setting || {}; - - abp.setting.values = abp.setting.values || {}; - - abp.setting.get = function (name) { - return abp.setting.values[name]; - }; - - abp.setting.getBoolean = function (name) { - var value = abp.setting.get(name); - return value == 'true' || value == 'True'; - }; - - abp.setting.getInt = function (name) { - return parseInt(abp.setting.values[name]); - }; - - /* NOTIFICATION *********************************************/ - //Defines Notification API, not implements it - - abp.notify = abp.notify || {}; - - abp.notify.success = function (message, title, options) { - abp.log.warn('abp.notify.success is not implemented!'); - }; - - abp.notify.info = function (message, title, options) { - abp.log.warn('abp.notify.info is not implemented!'); - }; - - abp.notify.warn = function (message, title, options) { - abp.log.warn('abp.notify.warn is not implemented!'); - }; - - abp.notify.error = function (message, title, options) { - abp.log.warn('abp.notify.error is not implemented!'); - }; - - /* MESSAGE **************************************************/ - //Defines Message API, not implements it - - abp.message = abp.message || {}; - - abp.message._showMessage = function (message, title) { - alert((title || '') + ' ' + message); - }; - - abp.message.info = function (message, title) { - abp.log.warn('abp.message.info is not implemented!'); - return abp.message._showMessage(message, title); - }; - - abp.message.success = function (message, title) { - abp.log.warn('abp.message.success is not implemented!'); - return abp.message._showMessage(message, title); - }; - - abp.message.warn = function (message, title) { - abp.log.warn('abp.message.warn is not implemented!'); - return abp.message._showMessage(message, title); - }; - - abp.message.error = function (message, title) { - abp.log.warn('abp.message.error is not implemented!'); - return abp.message._showMessage(message, title); - }; - - abp.message.confirm = function (message, titleOrCallback, callback) { - abp.log.warn('abp.message.confirm is not properly implemented!'); - - if (titleOrCallback && !(typeof titleOrCallback == 'string')) { - callback = titleOrCallback; - } - - var result = confirm(message); - callback && callback(result); - }; - - /* UI *******************************************************/ - - abp.ui = abp.ui || {}; - - /* UI BLOCK */ - //Defines UI Block API and implements basically - - var $abpBlockArea = document.createElement('div'); - $abpBlockArea.classList.add('abp-block-area'); - - /* opts: { //Can be an object with options or a string for query a selector - * elm: a query selector (optional - default: document.body) - * busy: boolean (optional - default: false) - * promise: A promise with always or finally handler (optional - auto unblocks the ui if provided) - * } - */ - abp.ui.block = function (opts) { - if (!opts) { - opts = {}; - } else if (typeof opts == 'string') { - opts = { - elm: opts - }; - } - - var $elm = document.querySelector(opts.elm) || document.body; - - if (opts.busy) { - $abpBlockArea.classList.add('abp-block-area-busy'); - } else { - $abpBlockArea.classList.remove('abp-block-area-busy'); - } - - if (document.querySelector(opts.elm)) { - $abpBlockArea.style.position = 'absolute'; - } else { - $abpBlockArea.style.position = 'fixed'; - } - - $elm.appendChild($abpBlockArea); - - if (opts.promise) { - if (opts.promise.always) { //jQuery.Deferred style - opts.promise.always(function () { - abp.ui.unblock({ - $elm: opts.elm - }); - }); - } else if (opts.promise['finally']) { //Q style - opts.promise['finally'](function () { - abp.ui.unblock({ - $elm: opts.elm - }); - }); - } - } - }; - - /* opts: { - * - * } - */ - abp.ui.unblock = function (opts) { - var element = document.querySelector('.abp-block-area'); - if (element) { - element.classList.add('abp-block-area-disappearing'); - setTimeout(function () { - if (element) { - element.classList.remove('abp-block-area-disappearing'); - element.parentElement.removeChild(element); - } - }, 250); - } - }; - - /* UI BUSY */ - //Defines UI Busy API, not implements it - - abp.ui.setBusy = function (opts) { - if (!opts) { - opts = { - busy: true - }; - } else if (typeof opts == 'string') { - opts = { - elm: opts, - busy: true - }; - } - - abp.ui.block(opts); - }; - - abp.ui.clearBusy = function (opts) { - abp.ui.unblock(opts); - }; - - /* SIMPLE EVENT BUS *****************************************/ - - abp.event = (function () { - - var _callbacks = {}; - - var on = function (eventName, callback) { - if (!_callbacks[eventName]) { - _callbacks[eventName] = []; - } - - _callbacks[eventName].push(callback); - }; - - var off = function (eventName, callback) { - var callbacks = _callbacks[eventName]; - if (!callbacks) { - return; - } - - var index = -1; - for (var i = 0; i < callbacks.length; i++) { - if (callbacks[i] === callback) { - index = i; - break; - } - } - - if (index < 0) { - return; - } - - _callbacks[eventName].splice(index, 1); - }; - - var trigger = function (eventName) { - var callbacks = _callbacks[eventName]; - if (!callbacks || !callbacks.length) { - return; - } - - var args = Array.prototype.slice.call(arguments, 1); - for (var i = 0; i < callbacks.length; i++) { - callbacks[i].apply(this, args); - } - }; - - // Public interface /////////////////////////////////////////////////// - - return { - on: on, - off: off, - trigger: trigger - }; - })(); - - - /* UTILS ***************************************************/ - - abp.utils = abp.utils || {}; - - /* Creates a name namespace. - * Example: - * var taskService = abp.utils.createNamespace(abp, 'services.task'); - * taskService will be equal to abp.services.task - * first argument (root) must be defined first - ************************************************************/ - abp.utils.createNamespace = function (root, ns) { - var parts = ns.split('.'); - for (var i = 0; i < parts.length; i++) { - if (typeof root[parts[i]] == 'undefined') { - root[parts[i]] = {}; - } - - root = root[parts[i]]; - } - - return root; - }; - - /* Find and replaces a string (search) to another string (replacement) in - * given string (str). - * Example: - * abp.utils.replaceAll('This is a test string', 'is', 'X') = 'ThX X a test string' - ************************************************************/ - abp.utils.replaceAll = function (str, search, replacement) { - var fix = search.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); - return str.replace(new RegExp(fix, 'g'), replacement); - }; - - /* Formats a string just like string.format in C#. - * Example: - * abp.utils.formatString('Hello {0}','Tuana') = 'Hello Tuana' - ************************************************************/ - abp.utils.formatString = function () { - if (arguments.length < 1) { - return null; - } - - var str = arguments[0]; - - for (var i = 1; i < arguments.length; i++) { - var placeHolder = '{' + (i - 1) + '}'; - str = abp.utils.replaceAll(str, placeHolder, arguments[i]); - } - - return str; - }; - - abp.utils.toPascalCase = function (str) { - if (!str || !str.length) { - return str; - } - - if (str.length === 1) { - return str.charAt(0).toUpperCase(); - } - - return str.charAt(0).toUpperCase() + str.substr(1); - } - - abp.utils.toCamelCase = function (str) { - if (!str || !str.length) { - return str; - } - - if (str.length === 1) { - return str.charAt(0).toLowerCase(); - } - - return str.charAt(0).toLowerCase() + str.substr(1); - } - - abp.utils.truncateString = function (str, maxLength) { - if (!str || !str.length || str.length <= maxLength) { - return str; - } - - return str.substr(0, maxLength); - }; - - abp.utils.truncateStringWithPostfix = function (str, maxLength, postfix) { - postfix = postfix || '...'; - - if (!str || !str.length || str.length <= maxLength) { - return str; - } - - if (maxLength <= postfix.length) { - return postfix.substr(0, maxLength); - } - - return str.substr(0, maxLength - postfix.length) + postfix; - }; - - abp.utils.isFunction = function (obj) { - return !!(obj && obj.constructor && obj.call && obj.apply); - }; - - /** - * parameterInfos should be an array of { name, value } objects - * where name is query string parameter name and value is it's value. - * includeQuestionMark is true by default. - */ - abp.utils.buildQueryString = function (parameterInfos, includeQuestionMark) { - if (includeQuestionMark === undefined) { - includeQuestionMark = true; - } - - var qs = ''; - - function addSeperator() { - if (!qs.length) { - if (includeQuestionMark) { - qs = qs + '?'; - } - } else { - qs = qs + '&'; - } - } - - for (var i = 0; i < parameterInfos.length; ++i) { - var parameterInfo = parameterInfos[i]; - if (parameterInfo.value === undefined) { - continue; - } - - if (parameterInfo.value === null) { - parameterInfo.value = ''; - } - - addSeperator(); - - if (parameterInfo.value.toJSON && typeof parameterInfo.value.toJSON === "function") { - qs = qs + parameterInfo.name + '=' + encodeURIComponent(parameterInfo.value.toJSON()); - } else if (Array.isArray(parameterInfo.value) && parameterInfo.value.length) { - for (var j = 0; j < parameterInfo.value.length; j++) { - if (j > 0) { - addSeperator(); - } - - qs = qs + parameterInfo.name + '[' + j + ']=' + encodeURIComponent(parameterInfo.value[j]); - } - } else { - qs = qs + parameterInfo.name + '=' + encodeURIComponent(parameterInfo.value); - } - } - - return qs; - } - - /** - * Sets a cookie value for given key. - * This is a simple implementation created to be used by ABP. - * Please use a complete cookie library if you need. - * @param {string} key - * @param {string} value - * @param {Date} expireDate (optional). If not specified the cookie will expire at the end of session. - * @param {string} path (optional) - */ - abp.utils.setCookieValue = function (key, value, expireDate, path) { - var cookieValue = encodeURIComponent(key) + '='; - - if (value) { - cookieValue = cookieValue + encodeURIComponent(value); - } - - if (expireDate) { - cookieValue = cookieValue + "; expires=" + expireDate.toUTCString(); - } - - if (path) { - cookieValue = cookieValue + "; path=" + path; - } - - document.cookie = cookieValue; - }; - - /** - * Gets a cookie with given key. - * This is a simple implementation created to be used by ABP. - * Please use a complete cookie library if you need. - * @param {string} key - * @returns {string} Cookie value or null - */ - abp.utils.getCookieValue = function (key) { - var equalities = document.cookie.split('; '); - for (var i = 0; i < equalities.length; i++) { - if (!equalities[i]) { - continue; - } - - var splitted = equalities[i].split('='); - if (splitted.length != 2) { - continue; - } - - if (decodeURIComponent(splitted[0]) === key) { - return decodeURIComponent(splitted[1] || ''); - } - } - - return null; - }; - - /** - * Deletes cookie for given key. - * This is a simple implementation created to be used by ABP. - * Please use a complete cookie library if you need. - * @param {string} key - * @param {string} path (optional) - */ - abp.utils.deleteCookie = function (key, path) { - var cookieValue = encodeURIComponent(key) + '='; - - cookieValue = cookieValue + "; expires=" + (new Date(new Date().getTime() - 86400000)).toUTCString(); - - if (path) { - cookieValue = cookieValue + "; path=" + path; - } - - document.cookie = cookieValue; - } - - /* SECURITY ***************************************/ - abp.security = abp.security || {}; - abp.security.antiForgery = abp.security.antiForgery || {}; - - abp.security.antiForgery.tokenCookieName = 'XSRF-TOKEN'; - abp.security.antiForgery.tokenHeaderName = 'X-XSRF-TOKEN'; - - abp.security.antiForgery.getToken = function () { - return abp.utils.getCookieValue(abp.security.antiForgery.tokenCookieName); - }; - -})(); \ No newline at end of file +var abp = abp || {}; +(function () { + + /* Application paths *****************************************/ + + //Current application root path (including virtual directory if exists). + abp.appPath = abp.appPath || '/'; + + abp.pageLoadTime = new Date(); + + //Converts given path to absolute path using abp.appPath variable. + abp.toAbsAppPath = function (path) { + if (path.indexOf('/') == 0) { + path = path.substring(1); + } + + return abp.appPath + path; + }; + + /* LOGGING ***************************************************/ + //Implements Logging API that provides secure & controlled usage of console.log + + abp.log = abp.log || {}; + + abp.log.levels = { + DEBUG: 1, + INFO: 2, + WARN: 3, + ERROR: 4, + FATAL: 5 + }; + + abp.log.level = abp.log.levels.DEBUG; + + abp.log.log = function (logObject, logLevel) { + if (!window.console || !window.console.log) { + return; + } + + if (logLevel != undefined && logLevel < abp.log.level) { + return; + } + + console.log(logObject); + }; + + abp.log.debug = function (logObject) { + abp.log.log("DEBUG: ", abp.log.levels.DEBUG); + abp.log.log(logObject, abp.log.levels.DEBUG); + }; + + abp.log.info = function (logObject) { + abp.log.log("INFO: ", abp.log.levels.INFO); + abp.log.log(logObject, abp.log.levels.INFO); + }; + + abp.log.warn = function (logObject) { + abp.log.log("WARN: ", abp.log.levels.WARN); + abp.log.log(logObject, abp.log.levels.WARN); + }; + + abp.log.error = function (logObject) { + abp.log.log("ERROR: ", abp.log.levels.ERROR); + abp.log.log(logObject, abp.log.levels.ERROR); + }; + + abp.log.fatal = function (logObject) { + abp.log.log("FATAL: ", abp.log.levels.FATAL); + abp.log.log(logObject, abp.log.levels.FATAL); + }; + + /* LOCALIZATION ***********************************************/ + + abp.localization = abp.localization || {}; + + abp.localization.values = {}; + + abp.localization.localize = function (key, sourceName) { + if (sourceName === '_') { //A convention to suppress the localization + return key; + } + + sourceName = sourceName || abp.localization.defaultResourceName; + if (!sourceName) { + abp.log.warn('Localization source name is not specified and the defaultResourceName was not defined!'); + return key; + } + + var source = abp.localization.values[sourceName]; + if (!source) { + abp.log.warn('Could not find localization source: ' + sourceName); + return key; + } + + var value = source[key]; + if (value == undefined) { + return key; + } + + var copiedArguments = Array.prototype.slice.call(arguments, 0); + copiedArguments.splice(1, 1); + copiedArguments[0] = value; + + return abp.utils.formatString.apply(this, copiedArguments); + }; + + abp.localization.isLocalized = function (key, sourceName) { + if (sourceName === '_') { //A convention to suppress the localization + return true; + } + + sourceName = sourceName || abp.localization.defaultResourceName; + if (!sourceName) { + return false; + } + + var source = abp.localization.values[sourceName]; + if (!source) { + return false; + } + + var value = source[key]; + if (value === undefined) { + return false; + } + + return true; + }; + + abp.localization.getResource = function (name) { + return function () { + var copiedArguments = Array.prototype.slice.call(arguments, 0); + copiedArguments.splice(1, 0, name); + return abp.localization.localize.apply(this, copiedArguments); + }; + }; + + abp.localization.defaultResourceName = undefined; + abp.localization.currentCulture = { + cultureName: undefined + }; + + var getMapValue = function (packageMaps, packageName, language) { + language = language || abp.localization.currentCulture.name; + if (!packageMaps || !packageName || !language) { + return language; + } + + var packageMap = packageMaps[packageName]; + if (!packageMap) { + return language; + } + + for (var i = 0; i < packageMap.length; i++) { + var map = packageMap[i]; + if (map.name === language){ + return map.value; + } + } + + return language; + }; + + abp.localization.getLanguagesMap = function (packageName, language) { + return getMapValue(abp.localization.languagesMap, packageName, language); + }; + + abp.localization.getLanguageFilesMap = function (packageName, language) { + return getMapValue(abp.localization.languageFilesMap, packageName, language); + }; + + /* AUTHORIZATION **********************************************/ + + abp.auth = abp.auth || {}; + + abp.auth.policies = abp.auth.policies || {}; + + abp.auth.grantedPolicies = abp.auth.grantedPolicies || {}; + + abp.auth.isGranted = function (policyName) { + return abp.auth.policies[policyName] != undefined && abp.auth.grantedPolicies[policyName] != undefined; + }; + + abp.auth.isAnyGranted = function () { + if (!arguments || arguments.length <= 0) { + return true; + } + + for (var i = 0; i < arguments.length; i++) { + if (abp.auth.isGranted(arguments[i])) { + return true; + } + } + + return false; + }; + + abp.auth.areAllGranted = function () { + if (!arguments || arguments.length <= 0) { + return true; + } + + for (var i = 0; i < arguments.length; i++) { + if (!abp.auth.isGranted(arguments[i])) { + return false; + } + } + + return true; + }; + + abp.auth.tokenCookieName = 'Abp.AuthToken'; + + abp.auth.setToken = function (authToken, expireDate) { + abp.utils.setCookieValue(abp.auth.tokenCookieName, authToken, expireDate, abp.appPath, abp.domain); + }; + + abp.auth.getToken = function () { + return abp.utils.getCookieValue(abp.auth.tokenCookieName); + } + + abp.auth.clearToken = function () { + abp.auth.setToken(); + } + + /* SETTINGS *************************************************/ + + abp.setting = abp.setting || {}; + + abp.setting.values = abp.setting.values || {}; + + abp.setting.get = function (name) { + return abp.setting.values[name]; + }; + + abp.setting.getBoolean = function (name) { + var value = abp.setting.get(name); + return value == 'true' || value == 'True'; + }; + + abp.setting.getInt = function (name) { + return parseInt(abp.setting.values[name]); + }; + + /* NOTIFICATION *********************************************/ + //Defines Notification API, not implements it + + abp.notify = abp.notify || {}; + + abp.notify.success = function (message, title, options) { + abp.log.warn('abp.notify.success is not implemented!'); + }; + + abp.notify.info = function (message, title, options) { + abp.log.warn('abp.notify.info is not implemented!'); + }; + + abp.notify.warn = function (message, title, options) { + abp.log.warn('abp.notify.warn is not implemented!'); + }; + + abp.notify.error = function (message, title, options) { + abp.log.warn('abp.notify.error is not implemented!'); + }; + + /* MESSAGE **************************************************/ + //Defines Message API, not implements it + + abp.message = abp.message || {}; + + abp.message._showMessage = function (message, title) { + alert((title || '') + ' ' + message); + }; + + abp.message.info = function (message, title) { + abp.log.warn('abp.message.info is not implemented!'); + return abp.message._showMessage(message, title); + }; + + abp.message.success = function (message, title) { + abp.log.warn('abp.message.success is not implemented!'); + return abp.message._showMessage(message, title); + }; + + abp.message.warn = function (message, title) { + abp.log.warn('abp.message.warn is not implemented!'); + return abp.message._showMessage(message, title); + }; + + abp.message.error = function (message, title) { + abp.log.warn('abp.message.error is not implemented!'); + return abp.message._showMessage(message, title); + }; + + abp.message.confirm = function (message, titleOrCallback, callback) { + abp.log.warn('abp.message.confirm is not properly implemented!'); + + if (titleOrCallback && !(typeof titleOrCallback == 'string')) { + callback = titleOrCallback; + } + + var result = confirm(message); + callback && callback(result); + }; + + /* UI *******************************************************/ + + abp.ui = abp.ui || {}; + + /* UI BLOCK */ + //Defines UI Block API and implements basically + + var $abpBlockArea = document.createElement('div'); + $abpBlockArea.classList.add('abp-block-area'); + + /* opts: { //Can be an object with options or a string for query a selector + * elm: a query selector (optional - default: document.body) + * busy: boolean (optional - default: false) + * promise: A promise with always or finally handler (optional - auto unblocks the ui if provided) + * } + */ + abp.ui.block = function (opts) { + if (!opts) { + opts = {}; + } else if (typeof opts == 'string') { + opts = { + elm: opts + }; + } + + var $elm = document.querySelector(opts.elm) || document.body; + + if (opts.busy) { + $abpBlockArea.classList.add('abp-block-area-busy'); + } else { + $abpBlockArea.classList.remove('abp-block-area-busy'); + } + + if (document.querySelector(opts.elm)) { + $abpBlockArea.style.position = 'absolute'; + } else { + $abpBlockArea.style.position = 'fixed'; + } + + $elm.appendChild($abpBlockArea); + + if (opts.promise) { + if (opts.promise.always) { //jQuery.Deferred style + opts.promise.always(function () { + abp.ui.unblock({ + $elm: opts.elm + }); + }); + } else if (opts.promise['finally']) { //Q style + opts.promise['finally'](function () { + abp.ui.unblock({ + $elm: opts.elm + }); + }); + } + } + }; + + /* opts: { + * + * } + */ + abp.ui.unblock = function (opts) { + var element = document.querySelector('.abp-block-area'); + if (element) { + element.classList.add('abp-block-area-disappearing'); + setTimeout(function () { + if (element) { + element.classList.remove('abp-block-area-disappearing'); + element.parentElement.removeChild(element); + } + }, 250); + } + }; + + /* UI BUSY */ + //Defines UI Busy API, not implements it + + abp.ui.setBusy = function (opts) { + if (!opts) { + opts = { + busy: true + }; + } else if (typeof opts == 'string') { + opts = { + elm: opts, + busy: true + }; + } + + abp.ui.block(opts); + }; + + abp.ui.clearBusy = function (opts) { + abp.ui.unblock(opts); + }; + + /* SIMPLE EVENT BUS *****************************************/ + + abp.event = (function () { + + var _callbacks = {}; + + var on = function (eventName, callback) { + if (!_callbacks[eventName]) { + _callbacks[eventName] = []; + } + + _callbacks[eventName].push(callback); + }; + + var off = function (eventName, callback) { + var callbacks = _callbacks[eventName]; + if (!callbacks) { + return; + } + + var index = -1; + for (var i = 0; i < callbacks.length; i++) { + if (callbacks[i] === callback) { + index = i; + break; + } + } + + if (index < 0) { + return; + } + + _callbacks[eventName].splice(index, 1); + }; + + var trigger = function (eventName) { + var callbacks = _callbacks[eventName]; + if (!callbacks || !callbacks.length) { + return; + } + + var args = Array.prototype.slice.call(arguments, 1); + for (var i = 0; i < callbacks.length; i++) { + callbacks[i].apply(this, args); + } + }; + + // Public interface /////////////////////////////////////////////////// + + return { + on: on, + off: off, + trigger: trigger + }; + })(); + + + /* UTILS ***************************************************/ + + abp.utils = abp.utils || {}; + + /* Creates a name namespace. + * Example: + * var taskService = abp.utils.createNamespace(abp, 'services.task'); + * taskService will be equal to abp.services.task + * first argument (root) must be defined first + ************************************************************/ + abp.utils.createNamespace = function (root, ns) { + var parts = ns.split('.'); + for (var i = 0; i < parts.length; i++) { + if (typeof root[parts[i]] == 'undefined') { + root[parts[i]] = {}; + } + + root = root[parts[i]]; + } + + return root; + }; + + /* Find and replaces a string (search) to another string (replacement) in + * given string (str). + * Example: + * abp.utils.replaceAll('This is a test string', 'is', 'X') = 'ThX X a test string' + ************************************************************/ + abp.utils.replaceAll = function (str, search, replacement) { + var fix = search.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); + return str.replace(new RegExp(fix, 'g'), replacement); + }; + + /* Formats a string just like string.format in C#. + * Example: + * abp.utils.formatString('Hello {0}','Tuana') = 'Hello Tuana' + ************************************************************/ + abp.utils.formatString = function () { + if (arguments.length < 1) { + return null; + } + + var str = arguments[0]; + + for (var i = 1; i < arguments.length; i++) { + var placeHolder = '{' + (i - 1) + '}'; + str = abp.utils.replaceAll(str, placeHolder, arguments[i]); + } + + return str; + }; + + abp.utils.toPascalCase = function (str) { + if (!str || !str.length) { + return str; + } + + if (str.length === 1) { + return str.charAt(0).toUpperCase(); + } + + return str.charAt(0).toUpperCase() + str.substr(1); + } + + abp.utils.toCamelCase = function (str) { + if (!str || !str.length) { + return str; + } + + if (str.length === 1) { + return str.charAt(0).toLowerCase(); + } + + return str.charAt(0).toLowerCase() + str.substr(1); + } + + abp.utils.truncateString = function (str, maxLength) { + if (!str || !str.length || str.length <= maxLength) { + return str; + } + + return str.substr(0, maxLength); + }; + + abp.utils.truncateStringWithPostfix = function (str, maxLength, postfix) { + postfix = postfix || '...'; + + if (!str || !str.length || str.length <= maxLength) { + return str; + } + + if (maxLength <= postfix.length) { + return postfix.substr(0, maxLength); + } + + return str.substr(0, maxLength - postfix.length) + postfix; + }; + + abp.utils.isFunction = function (obj) { + return !!(obj && obj.constructor && obj.call && obj.apply); + }; + + /** + * parameterInfos should be an array of { name, value } objects + * where name is query string parameter name and value is it's value. + * includeQuestionMark is true by default. + */ + abp.utils.buildQueryString = function (parameterInfos, includeQuestionMark) { + if (includeQuestionMark === undefined) { + includeQuestionMark = true; + } + + var qs = ''; + + function addSeperator() { + if (!qs.length) { + if (includeQuestionMark) { + qs = qs + '?'; + } + } else { + qs = qs + '&'; + } + } + + for (var i = 0; i < parameterInfos.length; ++i) { + var parameterInfo = parameterInfos[i]; + if (parameterInfo.value === undefined) { + continue; + } + + if (parameterInfo.value === null) { + parameterInfo.value = ''; + } + + addSeperator(); + + if (parameterInfo.value.toJSON && typeof parameterInfo.value.toJSON === "function") { + qs = qs + parameterInfo.name + '=' + encodeURIComponent(parameterInfo.value.toJSON()); + } else if (Array.isArray(parameterInfo.value) && parameterInfo.value.length) { + for (var j = 0; j < parameterInfo.value.length; j++) { + if (j > 0) { + addSeperator(); + } + + qs = qs + parameterInfo.name + '[' + j + ']=' + encodeURIComponent(parameterInfo.value[j]); + } + } else { + qs = qs + parameterInfo.name + '=' + encodeURIComponent(parameterInfo.value); + } + } + + return qs; + } + + /** + * Sets a cookie value for given key. + * This is a simple implementation created to be used by ABP. + * Please use a complete cookie library if you need. + * @param {string} key + * @param {string} value + * @param {Date} expireDate (optional). If not specified the cookie will expire at the end of session. + * @param {string} path (optional) + */ + abp.utils.setCookieValue = function (key, value, expireDate, path) { + var cookieValue = encodeURIComponent(key) + '='; + + if (value) { + cookieValue = cookieValue + encodeURIComponent(value); + } + + if (expireDate) { + cookieValue = cookieValue + "; expires=" + expireDate.toUTCString(); + } + + if (path) { + cookieValue = cookieValue + "; path=" + path; + } + + document.cookie = cookieValue; + }; + + /** + * Gets a cookie with given key. + * This is a simple implementation created to be used by ABP. + * Please use a complete cookie library if you need. + * @param {string} key + * @returns {string} Cookie value or null + */ + abp.utils.getCookieValue = function (key) { + var equalities = document.cookie.split('; '); + for (var i = 0; i < equalities.length; i++) { + if (!equalities[i]) { + continue; + } + + var splitted = equalities[i].split('='); + if (splitted.length != 2) { + continue; + } + + if (decodeURIComponent(splitted[0]) === key) { + return decodeURIComponent(splitted[1] || ''); + } + } + + return null; + }; + + /** + * Deletes cookie for given key. + * This is a simple implementation created to be used by ABP. + * Please use a complete cookie library if you need. + * @param {string} key + * @param {string} path (optional) + */ + abp.utils.deleteCookie = function (key, path) { + var cookieValue = encodeURIComponent(key) + '='; + + cookieValue = cookieValue + "; expires=" + (new Date(new Date().getTime() - 86400000)).toUTCString(); + + if (path) { + cookieValue = cookieValue + "; path=" + path; + } + + document.cookie = cookieValue; + } + + /* SECURITY ***************************************/ + abp.security = abp.security || {}; + abp.security.antiForgery = abp.security.antiForgery || {}; + + abp.security.antiForgery.tokenCookieName = 'XSRF-TOKEN'; + abp.security.antiForgery.tokenHeaderName = 'X-XSRF-TOKEN'; + + abp.security.antiForgery.getToken = function () { + return abp.utils.getCookieValue(abp.security.antiForgery.tokenCookieName); + }; + + /* CLOCK *****************************************/ + abp.clock = abp.clock || {}; + + abp.clock.kind = 'Unspecified'; + + abp.clock.supportsMultipleTimezone = function () { + return abp.clock.kind === 'Utc'; + }; + + var toLocal = function (date) { + return new Date( + date.getFullYear(), + date.getMonth(), + date.getDate(), + date.getHours(), + date.getMinutes(), + date.getSeconds(), + date.getMilliseconds() + ); + }; + + var toUtc = function (date) { + return Date.UTC( + date.getUTCFullYear(), + date.getUTCMonth(), + date.getUTCDate(), + date.getUTCHours(), + date.getUTCMinutes(), + date.getUTCSeconds(), + date.getUTCMilliseconds() + ); + }; + + abp.clock.now = function () { + if (abp.clock.kind === 'Utc') { + return toUtc(new Date()); + } + return new Date(); + }; + + abp.clock.normalize = function (date) { + var kind = abp.clock.kind; + + if (kind === 'Unspecified') { + return date; + } + + if (kind === 'Local') { + return toLocal(date); + } + + if (kind === 'Utc') { + return toUtc(date); + } + }; + +})(); diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/jquery/abp.jquery.js b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/jquery/abp.jquery.js index 6e2ee001b8..3087635e7d 100644 --- a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/jquery/abp.jquery.js +++ b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/jquery/abp.jquery.js @@ -1,393 +1,395 @@ -var abp = abp || {}; -(function($) { - - if (!$) { - throw "abp/jquery library requires the jquery library included to the page!"; - } - - // ABP CORE OVERRIDES ///////////////////////////////////////////////////// - - abp.message._showMessage = function (message, title) { - alert((title || '') + ' ' + message); - - return $.Deferred(function ($dfd) { - $dfd.resolve(); - }); - }; - - abp.message.confirm = function (message, titleOrCallback, callback) { - if (titleOrCallback && !(typeof titleOrCallback == 'string')) { - callback = titleOrCallback; - } - - var result = confirm(message); - callback && callback(result); - - return $.Deferred(function ($dfd) { - $dfd.resolve(result); - }); - }; - - abp.utils.isFunction = function (obj) { - return $.isFunction(obj); - }; - - // JQUERY EXTENSIONS ////////////////////////////////////////////////////// - - $.fn.findWithSelf = function (selector) { - return this.filter(selector).add(this.find(selector)); - }; - - // DOM //////////////////////////////////////////////////////////////////// - - abp.dom = abp.dom || {}; - - abp.dom.onNodeAdded = function (callback) { - abp.event.on('abp.dom.nodeAdded', callback); - }; - - abp.dom.onNodeRemoved = function (callback) { - abp.event.on('abp.dom.nodeRemoved', callback); - }; - - var mutationObserverCallback = function (mutationsList) { - for (var i = 0; i < mutationsList.length; i++) { - var mutation = mutationsList[i]; - if (mutation.type === 'childList') { - if (mutation.addedNodes && mutation.removedNodes.length) { - for (var k = 0; k < mutation.removedNodes.length; k++) { - abp.event.trigger( - 'abp.dom.nodeRemoved', - { - $el: $(mutation.removedNodes[k]) - } - ); - } - } - - if (mutation.addedNodes && mutation.addedNodes.length) { - for (var j = 0; j < mutation.addedNodes.length; j++) { - abp.event.trigger( - 'abp.dom.nodeAdded', - { - $el: $(mutation.addedNodes[j]) - } - ); - } - } - } - } - }; - - new MutationObserver(mutationObserverCallback).observe( - $('body')[0], - { - subtree: true, - childList: true - } - ); - - // AJAX /////////////////////////////////////////////////////////////////// - - abp.ajax = function (userOptions) { - userOptions = userOptions || {}; - - var options = $.extend(true, {}, abp.ajax.defaultOpts, userOptions); - - options.success = undefined; - options.error = undefined; - - return $.Deferred(function ($dfd) { - $.ajax(options) - .done(function (data, textStatus, jqXHR) { - $dfd.resolve(data); - userOptions.success && userOptions.success(data); - }).fail(function (jqXHR) { - if (jqXHR.getResponseHeader('_AbpErrorFormat') === 'true') { - abp.ajax.handleAbpErrorResponse(jqXHR, userOptions, $dfd); - } else { - abp.ajax.handleNonAbpErrorResponse(jqXHR, userOptions, $dfd); - } - }); - }); - }; - - $.extend(abp.ajax, { - defaultOpts: { - dataType: 'json', - type: 'POST', - contentType: 'application/json', - headers: { - 'X-Requested-With': 'XMLHttpRequest' - } - }, - - defaultError: { - message: 'An error has occurred!', - details: 'Error detail not sent by server.' - }, - - defaultError401: { - message: 'You are not authenticated!', - details: 'You should be authenticated (sign in) in order to perform this operation.' - }, - - defaultError403: { - message: 'You are not authorized!', - details: 'You are not allowed to perform this operation.' - }, - - defaultError404: { - message: 'Resource not found!', - details: 'The resource requested could not found on the server.' - }, - - logError: function (error) { - abp.log.error(error); - }, - - showError: function (error) { - if (error.details) { - return abp.message.error(error.details, error.message); - } else { - return abp.message.error(error.message || abp.ajax.defaultError.message); - } - }, - - handleTargetUrl: function (targetUrl) { - if (!targetUrl) { - location.href = abp.appPath; - } else { - location.href = targetUrl; - } - }, - - handleErrorStatusCode: function (status) { - switch (status) { - case 401: - abp.ajax.handleUnAuthorizedRequest( - abp.ajax.showError(abp.ajax.defaultError401), - abp.appPath - ); - break; - case 403: - abp.ajax.showError(abp.ajax.defaultError403); - break; - case 404: - abp.ajax.showError(abp.ajax.defaultError404); - break; - default: - abp.ajax.showError(abp.ajax.defaultError); - break; - } - }, - - handleNonAbpErrorResponse: function (jqXHR, userOptions, $dfd) { - if (userOptions.abpHandleError !== false) { - abp.ajax.handleErrorStatusCode(jqXHR.status); - } - - $dfd.reject.apply(this, arguments); - userOptions.error && userOptions.error.apply(this, arguments); - }, - - handleAbpErrorResponse: function (jqXHR, userOptions, $dfd) { - var messagePromise = null; - - if (userOptions.abpHandleError !== false) { - messagePromise = abp.ajax.showError(jqXHR.responseJSON.error); - } - - abp.ajax.logError(jqXHR.responseJSON.error); - - $dfd && $dfd.reject(jqXHR.responseJSON.error, jqXHR); - userOptions.error && userOptions.error(jqXHR.responseJSON.error, jqXHR); - - if (jqXHR.status === 401 && userOptions.abpHandleError !== false) { - abp.ajax.handleUnAuthorizedRequest(messagePromise); - } - }, - - handleUnAuthorizedRequest: function (messagePromise, targetUrl) { - if (messagePromise) { - messagePromise.done(function () { - abp.ajax.handleTargetUrl(targetUrl); - }); - } else { - abp.ajax.handleTargetUrl(targetUrl); - } - }, - - blockUI: function (options) { - if (options.blockUI) { - if (options.blockUI === true) { //block whole page - abp.ui.setBusy(); - } else { //block an element - abp.ui.setBusy(options.blockUI); - } - } - }, - - unblockUI: function (options) { - if (options.blockUI) { - if (options.blockUI === true) { //unblock whole page - abp.ui.clearBusy(); - } else { //unblock an element - abp.ui.clearBusy(options.blockUI); - } - } - }, - - ajaxSendHandler: function (event, request, settings) { - var token = abp.security.antiForgery.getToken(); - if (!token) { - return; - } - - if (!settings.headers || settings.headers[abp.security.antiForgery.tokenHeaderName] === undefined) { - request.setRequestHeader(abp.security.antiForgery.tokenHeaderName, token); - } - } - }); - - $(document).ajaxSend(function (event, request, settings) { - return abp.ajax.ajaxSendHandler(event, request, settings); - }); - - abp.event.on('abp.configurationInitialized', function () { - var l = abp.localization.getResource('AbpUi'); - - abp.ajax.defaultError.message = l('DefaultErrorMessage'); - abp.ajax.defaultError.details = l('DefaultErrorMessageDetail'); - abp.ajax.defaultError401.message = l('DefaultErrorMessage401'); - abp.ajax.defaultError401.details = l('DefaultErrorMessage401Detail'); - abp.ajax.defaultError403.message = l('DefaultErrorMessage403'); - abp.ajax.defaultError403.details = l('DefaultErrorMessage403Detail'); - abp.ajax.defaultError404.message = l('DefaultErrorMessage404'); - abp.ajax.defaultError404.details = l('DefaultErrorMessage404Detail'); - }); - - // RESOURCE LOADER //////////////////////////////////////////////////////// - - /* UrlStates enum */ - var UrlStates = { - LOADING: 'LOADING', - LOADED: 'LOADED', - FAILED: 'FAILED' - }; - - /* UrlInfo class */ - function UrlInfo(url) { - this.url = url; - this.state = UrlStates.LOADING; - this.loadCallbacks = []; - this.failCallbacks = []; - } - - UrlInfo.prototype.succeed = function () { - this.state = UrlStates.LOADED; - for (var i = 0; i < this.loadCallbacks.length; i++) { - this.loadCallbacks[i](); - } - }; - - UrlInfo.prototype.failed = function () { - this.state = UrlStates.FAILED; - for (var i = 0; i < this.failCallbacks.length; i++) { - this.failCallbacks[i](); - } - }; - - UrlInfo.prototype.handleCallbacks = function (loadCallback, failCallback) { - switch (this.state) { - case UrlStates.LOADED: - loadCallback && loadCallback(); - break; - case UrlStates.FAILED: - failCallback && failCallback(); - break; - case UrlStates.LOADING: - this.addCallbacks(loadCallback, failCallback); - break; - } - }; - - UrlInfo.prototype.addCallbacks = function (loadCallback, failCallback) { - loadCallback && this.loadCallbacks.push(loadCallback); - failCallback && this.failCallbacks.push(failCallback); - }; - - /* ResourceLoader API */ - - abp.ResourceLoader = (function () { - - var _urlInfos = {}; - - function getCacheKey(url) { - return url; - } - - function appendTimeToUrl(url) { - - if (url.indexOf('?') < 0) { - url += '?'; - } else { - url += '&'; - } - - url += '_=' + new Date().getTime(); - - return url; - } - - var _loadFromUrl = function (url, loadCallback, failCallback, serverLoader) { - - var cacheKey = getCacheKey(url); - - var urlInfo = _urlInfos[cacheKey]; - - if (urlInfo) { - urlInfo.handleCallbacks(loadCallback, failCallback); - return; - } - - _urlInfos[cacheKey] = urlInfo = new UrlInfo(url); - urlInfo.addCallbacks(loadCallback, failCallback); - - serverLoader(urlInfo); - }; - - var _loadScript = function (url, loadCallback, failCallback) { - _loadFromUrl(url, loadCallback, failCallback, function (urlInfo) { - $.get({ - url: url, - dataType: 'text' - }) - .done(function (script) { - $.globalEval(script); - urlInfo.succeed(); - }) - .fail(function () { - urlInfo.failed(); - }); - }); - }; - - var _loadStyle = function (url) { - _loadFromUrl(url, undefined, undefined, function (urlInfo) { - - $('', { - rel: 'stylesheet', - type: 'text/css', - href: appendTimeToUrl(url) - }).appendTo('head'); - }); - }; - - return { - loadScript: _loadScript, - loadStyle: _loadStyle - } - })(); - +var abp = abp || {}; +(function($) { + + if (!$) { + throw "abp/jquery library requires the jquery library included to the page!"; + } + + // ABP CORE OVERRIDES ///////////////////////////////////////////////////// + + abp.message._showMessage = function (message, title) { + alert((title || '') + ' ' + message); + + return $.Deferred(function ($dfd) { + $dfd.resolve(); + }); + }; + + abp.message.confirm = function (message, titleOrCallback, callback) { + if (titleOrCallback && !(typeof titleOrCallback == 'string')) { + callback = titleOrCallback; + } + + var result = confirm(message); + callback && callback(result); + + return $.Deferred(function ($dfd) { + $dfd.resolve(result); + }); + }; + + abp.utils.isFunction = function (obj) { + return $.isFunction(obj); + }; + + // JQUERY EXTENSIONS ////////////////////////////////////////////////////// + + $.fn.findWithSelf = function (selector) { + return this.filter(selector).add(this.find(selector)); + }; + + // DOM //////////////////////////////////////////////////////////////////// + + abp.dom = abp.dom || {}; + + abp.dom.onNodeAdded = function (callback) { + abp.event.on('abp.dom.nodeAdded', callback); + }; + + abp.dom.onNodeRemoved = function (callback) { + abp.event.on('abp.dom.nodeRemoved', callback); + }; + + var mutationObserverCallback = function (mutationsList) { + for (var i = 0; i < mutationsList.length; i++) { + var mutation = mutationsList[i]; + if (mutation.type === 'childList') { + if (mutation.addedNodes && mutation.removedNodes.length) { + for (var k = 0; k < mutation.removedNodes.length; k++) { + abp.event.trigger( + 'abp.dom.nodeRemoved', + { + $el: $(mutation.removedNodes[k]) + } + ); + } + } + + if (mutation.addedNodes && mutation.addedNodes.length) { + for (var j = 0; j < mutation.addedNodes.length; j++) { + abp.event.trigger( + 'abp.dom.nodeAdded', + { + $el: $(mutation.addedNodes[j]) + } + ); + } + } + } + } + }; + + $(function(){ + new MutationObserver(mutationObserverCallback).observe( + $('body')[0], + { + subtree: true, + childList: true + } + ); + }); + + // AJAX /////////////////////////////////////////////////////////////////// + + abp.ajax = function (userOptions) { + userOptions = userOptions || {}; + + var options = $.extend(true, {}, abp.ajax.defaultOpts, userOptions); + + options.success = undefined; + options.error = undefined; + + return $.Deferred(function ($dfd) { + $.ajax(options) + .done(function (data, textStatus, jqXHR) { + $dfd.resolve(data); + userOptions.success && userOptions.success(data); + }).fail(function (jqXHR) { + if (jqXHR.getResponseHeader('_AbpErrorFormat') === 'true') { + abp.ajax.handleAbpErrorResponse(jqXHR, userOptions, $dfd); + } else { + abp.ajax.handleNonAbpErrorResponse(jqXHR, userOptions, $dfd); + } + }); + }); + }; + + $.extend(abp.ajax, { + defaultOpts: { + dataType: 'json', + type: 'POST', + contentType: 'application/json', + headers: { + 'X-Requested-With': 'XMLHttpRequest' + } + }, + + defaultError: { + message: 'An error has occurred!', + details: 'Error detail not sent by server.' + }, + + defaultError401: { + message: 'You are not authenticated!', + details: 'You should be authenticated (sign in) in order to perform this operation.' + }, + + defaultError403: { + message: 'You are not authorized!', + details: 'You are not allowed to perform this operation.' + }, + + defaultError404: { + message: 'Resource not found!', + details: 'The resource requested could not found on the server.' + }, + + logError: function (error) { + abp.log.error(error); + }, + + showError: function (error) { + if (error.details) { + return abp.message.error(error.details, error.message); + } else { + return abp.message.error(error.message || abp.ajax.defaultError.message); + } + }, + + handleTargetUrl: function (targetUrl) { + if (!targetUrl) { + location.href = abp.appPath; + } else { + location.href = targetUrl; + } + }, + + handleErrorStatusCode: function (status) { + switch (status) { + case 401: + abp.ajax.handleUnAuthorizedRequest( + abp.ajax.showError(abp.ajax.defaultError401), + abp.appPath + ); + break; + case 403: + abp.ajax.showError(abp.ajax.defaultError403); + break; + case 404: + abp.ajax.showError(abp.ajax.defaultError404); + break; + default: + abp.ajax.showError(abp.ajax.defaultError); + break; + } + }, + + handleNonAbpErrorResponse: function (jqXHR, userOptions, $dfd) { + if (userOptions.abpHandleError !== false) { + abp.ajax.handleErrorStatusCode(jqXHR.status); + } + + $dfd.reject.apply(this, arguments); + userOptions.error && userOptions.error.apply(this, arguments); + }, + + handleAbpErrorResponse: function (jqXHR, userOptions, $dfd) { + var messagePromise = null; + + if (userOptions.abpHandleError !== false) { + messagePromise = abp.ajax.showError(jqXHR.responseJSON.error); + } + + abp.ajax.logError(jqXHR.responseJSON.error); + + $dfd && $dfd.reject(jqXHR.responseJSON.error, jqXHR); + userOptions.error && userOptions.error(jqXHR.responseJSON.error, jqXHR); + + if (jqXHR.status === 401 && userOptions.abpHandleError !== false) { + abp.ajax.handleUnAuthorizedRequest(messagePromise); + } + }, + + handleUnAuthorizedRequest: function (messagePromise, targetUrl) { + if (messagePromise) { + messagePromise.done(function () { + abp.ajax.handleTargetUrl(targetUrl); + }); + } else { + abp.ajax.handleTargetUrl(targetUrl); + } + }, + + blockUI: function (options) { + if (options.blockUI) { + if (options.blockUI === true) { //block whole page + abp.ui.setBusy(); + } else { //block an element + abp.ui.setBusy(options.blockUI); + } + } + }, + + unblockUI: function (options) { + if (options.blockUI) { + if (options.blockUI === true) { //unblock whole page + abp.ui.clearBusy(); + } else { //unblock an element + abp.ui.clearBusy(options.blockUI); + } + } + }, + + ajaxSendHandler: function (event, request, settings) { + var token = abp.security.antiForgery.getToken(); + if (!token) { + return; + } + + if (!settings.headers || settings.headers[abp.security.antiForgery.tokenHeaderName] === undefined) { + request.setRequestHeader(abp.security.antiForgery.tokenHeaderName, token); + } + } + }); + + $(document).ajaxSend(function (event, request, settings) { + return abp.ajax.ajaxSendHandler(event, request, settings); + }); + + abp.event.on('abp.configurationInitialized', function () { + var l = abp.localization.getResource('AbpUi'); + + abp.ajax.defaultError.message = l('DefaultErrorMessage'); + abp.ajax.defaultError.details = l('DefaultErrorMessageDetail'); + abp.ajax.defaultError401.message = l('DefaultErrorMessage401'); + abp.ajax.defaultError401.details = l('DefaultErrorMessage401Detail'); + abp.ajax.defaultError403.message = l('DefaultErrorMessage403'); + abp.ajax.defaultError403.details = l('DefaultErrorMessage403Detail'); + abp.ajax.defaultError404.message = l('DefaultErrorMessage404'); + abp.ajax.defaultError404.details = l('DefaultErrorMessage404Detail'); + }); + + // RESOURCE LOADER //////////////////////////////////////////////////////// + + /* UrlStates enum */ + var UrlStates = { + LOADING: 'LOADING', + LOADED: 'LOADED', + FAILED: 'FAILED' + }; + + /* UrlInfo class */ + function UrlInfo(url) { + this.url = url; + this.state = UrlStates.LOADING; + this.loadCallbacks = []; + this.failCallbacks = []; + } + + UrlInfo.prototype.succeed = function () { + this.state = UrlStates.LOADED; + for (var i = 0; i < this.loadCallbacks.length; i++) { + this.loadCallbacks[i](); + } + }; + + UrlInfo.prototype.failed = function () { + this.state = UrlStates.FAILED; + for (var i = 0; i < this.failCallbacks.length; i++) { + this.failCallbacks[i](); + } + }; + + UrlInfo.prototype.handleCallbacks = function (loadCallback, failCallback) { + switch (this.state) { + case UrlStates.LOADED: + loadCallback && loadCallback(); + break; + case UrlStates.FAILED: + failCallback && failCallback(); + break; + case UrlStates.LOADING: + this.addCallbacks(loadCallback, failCallback); + break; + } + }; + + UrlInfo.prototype.addCallbacks = function (loadCallback, failCallback) { + loadCallback && this.loadCallbacks.push(loadCallback); + failCallback && this.failCallbacks.push(failCallback); + }; + + /* ResourceLoader API */ + + abp.ResourceLoader = (function () { + + var _urlInfos = {}; + + function getCacheKey(url) { + return url; + } + + function appendTimeToUrl(url) { + + if (url.indexOf('?') < 0) { + url += '?'; + } else { + url += '&'; + } + + url += '_=' + new Date().getTime(); + + return url; + } + + var _loadFromUrl = function (url, loadCallback, failCallback, serverLoader) { + + var cacheKey = getCacheKey(url); + + var urlInfo = _urlInfos[cacheKey]; + + if (urlInfo) { + urlInfo.handleCallbacks(loadCallback, failCallback); + return; + } + + _urlInfos[cacheKey] = urlInfo = new UrlInfo(url); + urlInfo.addCallbacks(loadCallback, failCallback); + + serverLoader(urlInfo); + }; + + var _loadScript = function (url, loadCallback, failCallback) { + _loadFromUrl(url, loadCallback, failCallback, function (urlInfo) { + $.get({ + url: url, + dataType: 'text' + }) + .done(function (script) { + $.globalEval(script); + urlInfo.succeed(); + }) + .fail(function () { + urlInfo.failed(); + }); + }); + }; + + var _loadStyle = function (url) { + _loadFromUrl(url, undefined, undefined, function (urlInfo) { + + $('', { + rel: 'stylesheet', + type: 'text/css', + href: appendTimeToUrl(url) + }).appendTo('head'); + }); + }; + + return { + loadScript: _loadScript, + loadStyle: _loadStyle + } + })(); + })(jQuery); \ No newline at end of file diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/luxon/abp.luxon.js b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/luxon/abp.luxon.js new file mode 100644 index 0000000000..b04de7cadf --- /dev/null +++ b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/luxon/abp.luxon.js @@ -0,0 +1,46 @@ +var abp = abp || {}; +(function () { + + if (!luxon) { + throw "abp/luxon library requires the luxon library included to the page!"; + } + + /* TIMING *************************************************/ + + abp.timing = abp.timing || {}; + + var setObjectValue = function (obj, property, value) { + if (typeof property === "string") { + property = property.split('.'); + } + + if (property.length > 1) { + var p = property.shift(); + setObjectValue(obj[p], property, value); + } else { + obj[property[0]] = value; + } + } + + var getObjectValue = function (obj, property) { + return property.split('.').reduce((a, v) => a[v], obj) + } + + abp.timing.convertFieldsToIsoDate = function (form, fields) { + for (var field of fields) { + var dateTime = luxon.DateTime + .fromFormat( + getObjectValue(form, field), + abp.localization.currentCulture.dateTimeFormat.shortDatePattern, + {locale: abp.localization.currentCulture.cultureName} + ); + + if (!dateTime.invalid) { + setObjectValue(form, field, dateTime.toFormat("yyyy-MM-dd HH:mm:ss")) + } + } + + return form; + } + +})(jQuery); diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/utils/abp-utils.umd.js b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/utils/abp-utils.umd.js index 8aa707ec0d..359d2f7247 100644 --- a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/utils/abp-utils.umd.js +++ b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/utils/abp-utils.umd.js @@ -7,49 +7,50 @@ compare = compare && Object.prototype.hasOwnProperty.call(compare, 'default') ? compare['default'] : compare; /*! ***************************************************************************** - Copyright (c) Microsoft Corporation. All rights reserved. - Licensed under the Apache License, Version 2.0 (the "License"); you may not use - this file except in compliance with the License. You may obtain a copy of the - License at http://www.apache.org/licenses/LICENSE-2.0 + Copyright (c) Microsoft Corporation. - THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED - WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, - MERCHANTABLITY OR NON-INFRINGEMENT. + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted. - See the Apache Version 2.0 License for specific language governing permissions - and limitations under the License. + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */ /* global Reflect, Promise */ - - var extendStatics = function(d, b) { + var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || - function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; + function (d, b) { for (var p in b) + if (b.hasOwnProperty(p)) + d[p] = b[p]; }; return extendStatics(d, b); }; - function __extends(d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); } - - var __assign = function() { + var __assign = function () { __assign = Object.assign || function __assign(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; - function __rest(s, e) { var t = {}; - for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) - t[p] = s[p]; + for (var p in s) + if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) + t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) @@ -57,161 +58,247 @@ } return t; } - function __decorate(decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") + r = Reflect.decorate(decorators, target, key, desc); + else + for (var i = decorators.length - 1; i >= 0; i--) + if (d = decorators[i]) + r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; } - function __param(paramIndex, decorator) { - return function (target, key) { decorator(target, key, paramIndex); } + return function (target, key) { decorator(target, key, paramIndex); }; } - function __metadata(metadataKey, metadataValue) { - if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue); + if (typeof Reflect === "object" && typeof Reflect.metadata === "function") + return Reflect.metadata(metadataKey, metadataValue); } - function __awaiter(thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function fulfilled(value) { try { + step(generator.next(value)); + } + catch (e) { + reject(e); + } } + function rejected(value) { try { + step(generator["throw"](value)); + } + catch (e) { + reject(e); + } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); } - function __generator(thisArg, body) { - var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; - return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + var _ = { label: 0, sent: function () { if (t[0] & 1) + throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function () { return this; }), g; function verb(n) { return function (v) { return step([n, v]); }; } function step(op) { - if (f) throw new TypeError("Generator is already executing."); - while (_) try { - if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; - if (y = 0, t) op = [op[0] & 2, t.value]; - switch (op[0]) { - case 0: case 1: t = op; break; - case 4: _.label++; return { value: op[1], done: false }; - case 5: _.label++; y = op[1]; op = [0]; continue; - case 7: op = _.ops.pop(); _.trys.pop(); continue; - default: - if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } - if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } - if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } - if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } - if (t[2]) _.ops.pop(); - _.trys.pop(); continue; + if (f) + throw new TypeError("Generator is already executing."); + while (_) + try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) + return t; + if (y = 0, t) + op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: + case 1: + t = op; + break; + case 4: + _.label++; + return { value: op[1], done: false }; + case 5: + _.label++; + y = op[1]; + op = [0]; + continue; + case 7: + op = _.ops.pop(); + _.trys.pop(); + continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { + _ = 0; + continue; + } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { + _.label = op[1]; + break; + } + if (op[0] === 6 && _.label < t[1]) { + _.label = t[1]; + t = op; + break; + } + if (t && _.label < t[2]) { + _.label = t[2]; + _.ops.push(op); + break; + } + if (t[2]) + _.ops.pop(); + _.trys.pop(); + continue; + } + op = body.call(thisArg, _); + } + catch (e) { + op = [6, e]; + y = 0; + } + finally { + f = t = 0; } - op = body.call(thisArg, _); - } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } - if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + if (op[0] & 5) + throw op[1]; + return { value: op[0] ? op[1] : void 0, done: true }; } } - + var __createBinding = Object.create ? (function (o, m, k, k2) { + if (k2 === undefined) + k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function () { return m[k]; } }); + }) : (function (o, m, k, k2) { + if (k2 === undefined) + k2 = k; + o[k2] = m[k]; + }); function __exportStar(m, exports) { - for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p]; + for (var p in m) + if (p !== "default" && !exports.hasOwnProperty(p)) + __createBinding(exports, m, p); } - function __values(o) { var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0; - if (m) return m.call(o); - if (o && typeof o.length === "number") return { - next: function () { - if (o && i >= o.length) o = void 0; - return { value: o && o[i++], done: !o }; - } - }; + if (m) + return m.call(o); + if (o && typeof o.length === "number") + return { + next: function () { + if (o && i >= o.length) + o = void 0; + return { value: o && o[i++], done: !o }; + } + }; throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined."); } - function __read(o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; - if (!m) return o; + if (!m) + return o; var i = m.call(o), r, ar = [], e; try { - while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); + while ((n === void 0 || n-- > 0) && !(r = i.next()).done) + ar.push(r.value); + } + catch (error) { + e = { error: error }; } - catch (error) { e = { error: error }; } finally { try { - if (r && !r.done && (m = i["return"])) m.call(i); + if (r && !r.done && (m = i["return"])) + m.call(i); + } + finally { + if (e) + throw e.error; } - finally { if (e) throw e.error; } } return ar; } - function __spread() { for (var ar = [], i = 0; i < arguments.length; i++) ar = ar.concat(__read(arguments[i])); return ar; } - function __spreadArrays() { - for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; + for (var s = 0, i = 0, il = arguments.length; i < il; i++) + s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; return r; - }; - + } + ; function __await(v) { return this instanceof __await ? (this.v = v, this) : new __await(v); } - function __asyncGenerator(thisArg, _arguments, generator) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + if (!Symbol.asyncIterator) + throw new TypeError("Symbol.asyncIterator is not defined."); var g = generator.apply(thisArg, _arguments || []), i, q = []; return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i; - function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } - function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } } + function verb(n) { if (g[n]) + i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; } + function resume(n, v) { try { + step(g[n](v)); + } + catch (e) { + settle(q[0][3], e); + } } function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); } function fulfill(value) { resume("next", value); } function reject(value) { resume("throw", value); } - function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); } + function settle(f, v) { if (f(v), q.shift(), q.length) + resume(q[0][0], q[0][1]); } } - function __asyncDelegator(o) { var i, p; return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i; function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; } } - function __asyncValues(o) { - if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined."); + if (!Symbol.asyncIterator) + throw new TypeError("Symbol.asyncIterator is not defined."); var m = o[Symbol.asyncIterator], i; return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i); function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; } - function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); } + function settle(resolve, reject, d, v) { Promise.resolve(v).then(function (v) { resolve({ value: v, done: d }); }, reject); } } - function __makeTemplateObject(cooked, raw) { - if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; } + if (Object.defineProperty) { + Object.defineProperty(cooked, "raw", { value: raw }); + } + else { + cooked.raw = raw; + } return cooked; + } + ; + var __setModuleDefault = Object.create ? (function (o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); + }) : function (o, v) { + o["default"] = v; }; - function __importStar(mod) { - if (mod && mod.__esModule) return mod; + if (mod && mod.__esModule) + return mod; var result = {}; - if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; - result.default = mod; + if (mod != null) + for (var k in mod) + if (Object.hasOwnProperty.call(mod, k)) + __createBinding(result, mod, k); + __setModuleDefault(result, mod); return result; } - function __importDefault(mod) { return (mod && mod.__esModule) ? mod : { default: mod }; } - function __classPrivateFieldGet(receiver, privateMap) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to get private field on non-instance"); } return privateMap.get(receiver); } - function __classPrivateFieldSet(receiver, privateMap, value) { if (!privateMap.has(receiver)) { throw new TypeError("attempted to set private field on non-instance"); @@ -220,7 +307,6 @@ return value; } - /* tslint:disable:no-non-null-assertion */ var ListNode = /** @class */ (function () { function ListNode(value) { this.value = value; @@ -235,21 +321,21 @@ get: function () { return this.first; }, - enumerable: true, + enumerable: false, configurable: true }); Object.defineProperty(LinkedList.prototype, "tail", { get: function () { return this.last; }, - enumerable: true, + enumerable: false, configurable: true }); Object.defineProperty(LinkedList.prototype, "length", { get: function () { return this.size; }, - enumerable: true, + enumerable: false, configurable: true }); LinkedList.prototype.attach = function (value, previousNode, nextNode) { @@ -591,6 +677,14 @@ return LinkedList; }()); + /* + * Public API Surface of utils + */ + + /** + * Generated bundle index. Do not edit. + */ + exports.LinkedList = LinkedList; exports.ListNode = ListNode; diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/utils/abp-utils.umd.js.map b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/utils/abp-utils.umd.js.map index 18a9fb2df7..2c5d45ddcb 100644 --- a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/utils/abp-utils.umd.js.map +++ b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/utils/abp-utils.umd.js.map @@ -1 +1 @@ -{"version":3,"file":"abp-utils.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","ng://@abp/utils/lib/linked-list.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/* tslint:disable:no-non-null-assertion */\r\n\r\nimport compare from 'just-compare';\r\n\r\nexport class ListNode {\r\n next: ListNode | undefined;\r\n previous: ListNode | undefined;\r\n constructor(public readonly value: T) {}\r\n}\r\n\r\nexport class LinkedList {\r\n private first: ListNode | undefined;\r\n private last: ListNode | undefined;\r\n private size = 0;\r\n\r\n get head(): ListNode | undefined {\r\n return this.first;\r\n }\r\n get tail(): ListNode | undefined {\r\n return this.last;\r\n }\r\n get length(): number {\r\n return this.size;\r\n }\r\n\r\n private attach(\r\n value: T,\r\n previousNode: ListNode | undefined,\r\n nextNode: ListNode | undefined,\r\n ): ListNode {\r\n if (!previousNode) return this.addHead(value);\r\n\r\n if (!nextNode) return this.addTail(value);\r\n\r\n const node = new ListNode(value);\r\n node.previous = previousNode;\r\n previousNode.next = node;\r\n node.next = nextNode;\r\n nextNode.previous = node;\r\n\r\n this.size++;\r\n\r\n return node;\r\n }\r\n\r\n private attachMany(\r\n values: T[],\r\n previousNode: ListNode | undefined,\r\n nextNode: ListNode | undefined,\r\n ): ListNode[] {\r\n if (!values.length) return [];\r\n\r\n if (!previousNode) return this.addManyHead(values);\r\n\r\n if (!nextNode) return this.addManyTail(values);\r\n\r\n const list = new LinkedList();\r\n list.addManyTail(values);\r\n list.first!.previous = previousNode;\r\n previousNode.next = list.first;\r\n list.last!.next = nextNode;\r\n nextNode.previous = list.last;\r\n\r\n this.size += values.length;\r\n\r\n return list.toNodeArray();\r\n }\r\n\r\n private detach(node: ListNode) {\r\n if (!node.previous) return this.dropHead();\r\n\r\n if (!node.next) return this.dropTail();\r\n\r\n node.previous.next = node.next;\r\n node.next.previous = node.previous;\r\n\r\n this.size--;\r\n\r\n return node;\r\n }\r\n\r\n add(value: T) {\r\n return {\r\n after: (...params: [T] | [any, ListComparisonFn]) =>\r\n this.addAfter.call(this, value, ...params),\r\n before: (...params: [T] | [any, ListComparisonFn]) =>\r\n this.addBefore.call(this, value, ...params),\r\n byIndex: (position: number) => this.addByIndex(value, position),\r\n head: () => this.addHead(value),\r\n tail: () => this.addTail(value),\r\n };\r\n }\r\n\r\n addMany(values: T[]) {\r\n return {\r\n after: (...params: [T] | [any, ListComparisonFn]) =>\r\n this.addManyAfter.call(this, values, ...params),\r\n before: (...params: [T] | [any, ListComparisonFn]) =>\r\n this.addManyBefore.call(this, values, ...params),\r\n byIndex: (position: number) => this.addManyByIndex(values, position),\r\n head: () => this.addManyHead(values),\r\n tail: () => this.addManyTail(values),\r\n };\r\n }\r\n\r\n addAfter(value: T, previousValue: T): ListNode;\r\n addAfter(value: T, previousValue: any, compareFn: ListComparisonFn): ListNode;\r\n addAfter(value: T, previousValue: any, compareFn: ListComparisonFn = compare): ListNode {\r\n const previous = this.find(node => compareFn(node.value, previousValue));\r\n\r\n return previous ? this.attach(value, previous, previous.next) : this.addTail(value);\r\n }\r\n\r\n addBefore(value: T, nextValue: T): ListNode;\r\n addBefore(value: T, nextValue: any, compareFn: ListComparisonFn): ListNode;\r\n addBefore(value: T, nextValue: any, compareFn: ListComparisonFn = compare): ListNode {\r\n const next = this.find(node => compareFn(node.value, nextValue));\r\n\r\n return next ? this.attach(value, next.previous, next) : this.addHead(value);\r\n }\r\n\r\n addByIndex(value: T, position: number): ListNode {\r\n if (position < 0) position += this.size;\r\n else if (position >= this.size) return this.addTail(value);\r\n\r\n if (position <= 0) return this.addHead(value);\r\n\r\n const next = this.get(position)!;\r\n\r\n return this.attach(value, next.previous, next);\r\n }\r\n\r\n addHead(value: T): ListNode {\r\n const node = new ListNode(value);\r\n\r\n node.next = this.first;\r\n\r\n if (this.first) this.first.previous = node;\r\n else this.last = node;\r\n\r\n this.first = node;\r\n this.size++;\r\n\r\n return node;\r\n }\r\n\r\n addTail(value: T): ListNode {\r\n const node = new ListNode(value);\r\n\r\n if (this.first) {\r\n node.previous = this.last;\r\n this.last!.next = node;\r\n this.last = node;\r\n } else {\r\n this.first = node;\r\n this.last = node;\r\n }\r\n\r\n this.size++;\r\n\r\n return node;\r\n }\r\n\r\n addManyAfter(values: T[], previousValue: T): ListNode[];\r\n addManyAfter(values: T[], previousValue: any, compareFn: ListComparisonFn): ListNode[];\r\n addManyAfter(\r\n values: T[],\r\n previousValue: any,\r\n compareFn: ListComparisonFn = compare,\r\n ): ListNode[] {\r\n const previous = this.find(node => compareFn(node.value, previousValue));\r\n\r\n return previous ? this.attachMany(values, previous, previous.next) : this.addManyTail(values);\r\n }\r\n\r\n addManyBefore(values: T[], nextValue: T): ListNode[];\r\n addManyBefore(values: T[], nextValue: any, compareFn: ListComparisonFn): ListNode[];\r\n addManyBefore(\r\n values: T[],\r\n nextValue: any,\r\n compareFn: ListComparisonFn = compare,\r\n ): ListNode[] {\r\n const next = this.find(node => compareFn(node.value, nextValue));\r\n\r\n return next ? this.attachMany(values, next.previous, next) : this.addManyHead(values);\r\n }\r\n\r\n addManyByIndex(values: T[], position: number): ListNode[] {\r\n if (position < 0) position += this.size;\r\n\r\n if (position <= 0) return this.addManyHead(values);\r\n\r\n if (position >= this.size) return this.addManyTail(values);\r\n\r\n const next = this.get(position)!;\r\n\r\n return this.attachMany(values, next.previous, next);\r\n }\r\n\r\n addManyHead(values: T[]): ListNode[] {\r\n return values.reduceRight[]>((nodes, value) => {\r\n nodes.unshift(this.addHead(value));\r\n return nodes;\r\n }, []);\r\n }\r\n\r\n addManyTail(values: T[]): ListNode[] {\r\n return values.map(value => this.addTail(value));\r\n }\r\n\r\n drop() {\r\n return {\r\n byIndex: (position: number) => this.dropByIndex(position),\r\n byValue: (...params: [T] | [any, ListComparisonFn]) =>\r\n this.dropByValue.apply(this, params),\r\n byValueAll: (...params: [T] | [any, ListComparisonFn]) =>\r\n this.dropByValueAll.apply(this, params),\r\n head: () => this.dropHead(),\r\n tail: () => this.dropTail(),\r\n };\r\n }\r\n\r\n dropMany(count: number) {\r\n return {\r\n byIndex: (position: number) => this.dropManyByIndex(count, position),\r\n head: () => this.dropManyHead(count),\r\n tail: () => this.dropManyTail(count),\r\n };\r\n }\r\n\r\n dropByIndex(position: number): ListNode | undefined {\r\n if (position < 0) position += this.size;\r\n\r\n const current = this.get(position);\r\n\r\n return current ? this.detach(current) : undefined;\r\n }\r\n\r\n dropByValue(value: T): ListNode | undefined;\r\n dropByValue(value: any, compareFn: ListComparisonFn): ListNode | undefined;\r\n dropByValue(value: any, compareFn: ListComparisonFn = compare): ListNode | undefined {\r\n const position = this.findIndex(node => compareFn(node.value, value));\r\n\r\n return position < 0 ? undefined : this.dropByIndex(position);\r\n }\r\n\r\n dropByValueAll(value: T): ListNode[];\r\n dropByValueAll(value: any, compareFn: ListComparisonFn): ListNode[];\r\n dropByValueAll(value: any, compareFn: ListComparisonFn = compare): ListNode[] {\r\n const dropped: ListNode[] = [];\r\n\r\n for (let current = this.first, position = 0; current; position++, current = current.next) {\r\n if (compareFn(current.value, value)) {\r\n dropped.push(this.dropByIndex(position - dropped.length)!);\r\n }\r\n }\r\n\r\n return dropped;\r\n }\r\n\r\n dropHead(): ListNode | undefined {\r\n const head = this.first;\r\n\r\n if (head) {\r\n this.first = head.next;\r\n\r\n if (this.first) this.first.previous = undefined;\r\n else this.last = undefined;\r\n\r\n this.size--;\r\n\r\n return head;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n dropTail(): ListNode | undefined {\r\n const tail = this.last;\r\n\r\n if (tail) {\r\n this.last = tail.previous;\r\n\r\n if (this.last) this.last.next = undefined;\r\n else this.first = undefined;\r\n\r\n this.size--;\r\n\r\n return tail;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n dropManyByIndex(count: number, position: number): ListNode[] {\r\n if (count <= 0) return [];\r\n\r\n if (position < 0) position = Math.max(position + this.size, 0);\r\n else if (position >= this.size) return [];\r\n\r\n count = Math.min(count, this.size - position);\r\n\r\n const dropped: ListNode[] = [];\r\n\r\n while (count--) {\r\n const current = this.get(position);\r\n dropped.push(this.detach(current!)!);\r\n }\r\n\r\n return dropped;\r\n }\r\n\r\n dropManyHead(count: Exclude): ListNode[] {\r\n if (count <= 0) return [];\r\n\r\n count = Math.min(count, this.size);\r\n\r\n const dropped: ListNode[] = [];\r\n\r\n while (count--) dropped.unshift(this.dropHead()!);\r\n\r\n return dropped;\r\n }\r\n\r\n dropManyTail(count: Exclude): ListNode[] {\r\n if (count <= 0) return [];\r\n\r\n count = Math.min(count, this.size);\r\n\r\n const dropped: ListNode[] = [];\r\n\r\n while (count--) dropped.push(this.dropTail()!);\r\n\r\n return dropped;\r\n }\r\n\r\n find(predicate: ListIteratorFn): ListNode | undefined {\r\n for (let current = this.first, position = 0; current; position++, current = current.next) {\r\n if (predicate(current, position, this)) return current;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n findIndex(predicate: ListIteratorFn): number {\r\n for (let current = this.first, position = 0; current; position++, current = current.next) {\r\n if (predicate(current, position, this)) return position;\r\n }\r\n\r\n return -1;\r\n }\r\n\r\n forEach(iteratorFn: ListIteratorFn) {\r\n for (let node = this.first, position = 0; node; position++, node = node.next) {\r\n iteratorFn(node, position, this);\r\n }\r\n }\r\n\r\n get(position: number): ListNode | undefined {\r\n return this.find((_, index) => position === index);\r\n }\r\n\r\n indexOf(value: T): number;\r\n indexOf(value: any, compareFn: ListComparisonFn): number;\r\n indexOf(value: any, compareFn: ListComparisonFn = compare): number {\r\n return this.findIndex(node => compareFn(node.value, value));\r\n }\r\n\r\n toArray(): T[] {\r\n const array = new Array(this.size);\r\n\r\n this.forEach((node, index) => (array[index!] = node.value));\r\n\r\n return array;\r\n }\r\n\r\n toNodeArray(): ListNode[] {\r\n const array = new Array(this.size);\r\n\r\n this.forEach((node, index) => (array[index!] = node));\r\n\r\n return array;\r\n }\r\n\r\n toString(mapperFn: ListMapperFn = JSON.stringify): string {\r\n return this.toArray()\r\n .map(value => mapperFn(value))\r\n .join(' <-> ');\r\n }\r\n\r\n // Cannot use Generator type because of ng-packagr\r\n *[Symbol.iterator](): any {\r\n for (let node = this.first, position = 0; node; position++, node = node.next) {\r\n yield node.value;\r\n }\r\n }\r\n}\r\n\r\nexport type ListMapperFn = (value: T) => any;\r\n\r\nexport type ListComparisonFn = (value1: T, value2: any) => boolean;\r\n\r\nexport type ListIteratorFn = (\r\n node: ListNode,\r\n index?: number,\r\n list?: LinkedList,\r\n) => R;\r\n"],"names":[],"mappings":";;;;;;;;IAAA;IACA;IACA;IACA;IACA;AACA;IACA;IACA;IACA;IACA;AACA;IACA;IACA;IACA;IACA;AACA;IACA,IAAI,aAAa,GAAG,SAAS,CAAC,EAAE,CAAC,EAAE;IACnC,IAAI,aAAa,GAAG,MAAM,CAAC,cAAc;IACzC,SAAS,EAAE,SAAS,EAAE,EAAE,EAAE,YAAY,KAAK,IAAI,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,EAAE,CAAC;IACpF,QAAQ,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACnF,IAAI,OAAO,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC/B,CAAC,CAAC;AACF;IACO,SAAS,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE;IAChC,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxB,IAAI,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE;IAC3C,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,KAAK,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;IACzF,CAAC;AACD;IACO,IAAI,QAAQ,GAAG,WAAW;IACjC,IAAI,QAAQ,GAAG,MAAM,CAAC,MAAM,IAAI,SAAS,QAAQ,CAAC,CAAC,EAAE;IACrD,QAAQ,KAAK,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;IAC7D,YAAY,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;IAC7B,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACzF,SAAS;IACT,QAAQ,OAAO,CAAC,CAAC;IACjB,MAAK;IACL,IAAI,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAC3C,EAAC;AACD;IACO,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;IAC7B,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IACf,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IACvF,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACpB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;IACvE,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;IAChF,YAAY,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1F,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,SAAS;IACT,IAAI,OAAO,CAAC,CAAC;IACb,CAAC;AACD;IACO,SAAS,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE;IAC1D,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;IACjI,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACnI,SAAS,KAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;IACtJ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,CAAC;AACD;IACO,SAAS,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE;IAC/C,IAAI,OAAO,UAAU,MAAM,EAAE,GAAG,EAAE,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE;IACzE,CAAC;AACD;IACO,SAAS,UAAU,CAAC,WAAW,EAAE,aAAa,EAAE;IACvD,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,UAAU,EAAE,OAAO,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IACnI,CAAC;AACD;IACO,SAAS,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE;IAC7D,IAAI,SAAS,KAAK,CAAC,KAAK,EAAE,EAAE,OAAO,KAAK,YAAY,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,UAAU,OAAO,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;IAChH,IAAI,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,OAAO,EAAE,MAAM,EAAE;IAC/D,QAAQ,SAAS,SAAS,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;IACnG,QAAQ,SAAS,QAAQ,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE;IACtG,QAAQ,SAAS,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,EAAE;IACtH,QAAQ,IAAI,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9E,KAAK,CAAC,CAAC;IACP,CAAC;AACD;IACO,SAAS,WAAW,CAAC,OAAO,EAAE,IAAI,EAAE;IAC3C,IAAI,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACrH,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,MAAM,KAAK,UAAU,KAAK,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,WAAW,EAAE,OAAO,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7J,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;IACtE,IAAI,SAAS,IAAI,CAAC,EAAE,EAAE;IACtB,QAAQ,IAAI,CAAC,EAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,CAAC,CAAC;IACtE,QAAQ,OAAO,CAAC,EAAE,IAAI;IACtB,YAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IACzK,YAAY,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;IACpD,YAAY,QAAQ,EAAE,CAAC,CAAC,CAAC;IACzB,gBAAgB,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM;IAC9C,gBAAgB,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACxE,gBAAgB,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;IACjE,gBAAgB,KAAK,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS;IACjE,gBAAgB;IAChB,oBAAoB,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE;IAChI,oBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE;IAC1G,oBAAoB,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE;IACzF,oBAAoB,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE;IACvF,oBAAoB,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;IAC1C,oBAAoB,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,SAAS;IAC3C,aAAa;IACb,YAAY,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACvC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;IAClE,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACzF,KAAK;IACL,CAAC;AACD;IACO,SAAS,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE;IACzC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;AACD;IACO,SAAS,QAAQ,CAAC,CAAC,EAAE;IAC5B,IAAI,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IAClF,IAAI,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5B,IAAI,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,EAAE,OAAO;IAClD,QAAQ,IAAI,EAAE,YAAY;IAC1B,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC;IAC/C,YAAY,OAAO,EAAE,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;IACpD,SAAS;IACT,KAAK,CAAC;IACN,IAAI,MAAM,IAAI,SAAS,CAAC,CAAC,GAAG,yBAAyB,GAAG,iCAAiC,CAAC,CAAC;IAC3F,CAAC;AACD;IACO,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;IAC7B,IAAI,IAAI,CAAC,GAAG,OAAO,MAAM,KAAK,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/D,IAAI,IAAI,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACrB,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,IAAI;IACR,QAAQ,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACnF,KAAK;IACL,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE;IAC3C,YAAY;IACZ,QAAQ,IAAI;IACZ,YAAY,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7D,SAAS;IACT,gBAAgB,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE;IACzC,KAAK;IACL,IAAI,OAAO,EAAE,CAAC;IACd,CAAC;AACD;IACO,SAAS,QAAQ,GAAG;IAC3B,IAAI,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE;IACtD,QAAQ,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,IAAI,OAAO,EAAE,CAAC;IACd,CAAC;AACD;IACO,SAAS,cAAc,GAAG;IACjC,IAAI,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IACxF,IAAI,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;IACpD,QAAQ,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE;IACzE,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,OAAO,CAAC,CAAC;IACb,CAAC,CAAC;AACF;IACO,SAAS,OAAO,CAAC,CAAC,EAAE;IAC3B,IAAI,OAAO,IAAI,YAAY,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;IACzE,CAAC;AACD;IACO,SAAS,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE;IACjE,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;IAC3F,IAAI,IAAI,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;IAClE,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1H,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;IAC9I,IAAI,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE;IACtF,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,YAAY,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;IAC5H,IAAI,SAAS,OAAO,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;IACtD,IAAI,SAAS,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,EAAE;IACtD,IAAI,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;IACtF,CAAC;AACD;IACO,SAAS,gBAAgB,CAAC,CAAC,EAAE;IACpC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;IACb,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IAChJ,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE;IACnJ,CAAC;AACD;IACO,SAAS,aAAa,CAAC,CAAC,EAAE;IACjC,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,IAAI,SAAS,CAAC,sCAAsC,CAAC,CAAC;IAC3F,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACvC,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,QAAQ,KAAK,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,YAAY,EAAE,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACrN,IAAI,SAAS,IAAI,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,EAAE,EAAE,OAAO,IAAI,OAAO,CAAC,UAAU,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE;IACpK,IAAI,SAAS,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE;IAChI,CAAC;AACD;IACO,SAAS,oBAAoB,CAAC,MAAM,EAAE,GAAG,EAAE;IAClD,IAAI,IAAI,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC,EAAE;IACnH,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC,CAAC;AACF;IACO,SAAS,YAAY,CAAC,GAAG,EAAE;IAClC,IAAI,IAAI,GAAG,IAAI,GAAG,CAAC,UAAU,EAAE,OAAO,GAAG,CAAC;IAC1C,IAAI,IAAI,MAAM,GAAG,EAAE,CAAC;IACpB,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,IAAI,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IACnG,IAAI,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC;IACzB,IAAI,OAAO,MAAM,CAAC;IAClB,CAAC;AACD;IACO,SAAS,eAAe,CAAC,GAAG,EAAE;IACrC,IAAI,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;IAC5D,CAAC;AACD;IACO,SAAS,sBAAsB,CAAC,QAAQ,EAAE,UAAU,EAAE;IAC7D,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;IACnC,QAAQ,MAAM,IAAI,SAAS,CAAC,gDAAgD,CAAC,CAAC;IAC9E,KAAK;IACL,IAAI,OAAO,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;AACD;IACO,SAAS,sBAAsB,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,EAAE;IACpE,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;IACnC,QAAQ,MAAM,IAAI,SAAS,CAAC,gDAAgD,CAAC,CAAC;IAC9E,KAAK;IACL,IAAI,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACpC,IAAI,OAAO,KAAK,CAAC;IACjB;;ICpNA;;QAOE,kBAA4B,KAAQ;YAAR,UAAK,GAAL,KAAK,CAAG;SAAI;QAC1C,eAAC;IAAD,CAAC,IAAA;;QAED;YAGU,SAAI,GAAG,CAAC,CAAC;SA+XlB;QA7XC,sBAAI,4BAAI;iBAAR;gBACE,OAAO,IAAI,CAAC,KAAK,CAAC;aACnB;;;WAAA;QACD,sBAAI,4BAAI;iBAAR;gBACE,OAAO,IAAI,CAAC,IAAI,CAAC;aAClB;;;WAAA;QACD,sBAAI,8BAAM;iBAAV;gBACE,OAAO,IAAI,CAAC,IAAI,CAAC;aAClB;;;WAAA;QAEO,2BAAM,GAAd,UACE,KAAQ,EACR,YAAqC,EACrC,QAAiC;YAEjC,IAAI,CAAC,YAAY;gBAAE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAE9C,IAAI,CAAC,QAAQ;gBAAE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAE1C,IAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;YACjC,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC;YAC7B,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC;YACzB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;YACrB,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC;YAEzB,IAAI,CAAC,IAAI,EAAE,CAAC;YAEZ,OAAO,IAAI,CAAC;SACb;QAEO,+BAAU,GAAlB,UACE,MAAW,EACX,YAAqC,EACrC,QAAiC;YAEjC,IAAI,CAAC,MAAM,CAAC,MAAM;gBAAE,OAAO,EAAE,CAAC;YAE9B,IAAI,CAAC,YAAY;gBAAE,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAEnD,IAAI,CAAC,QAAQ;gBAAE,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAE/C,IAAM,IAAI,GAAG,IAAI,UAAU,EAAK,CAAC;YACjC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACzB,IAAI,CAAC,KAAM,CAAC,QAAQ,GAAG,YAAY,CAAC;YACpC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;YAC/B,IAAI,CAAC,IAAK,CAAC,IAAI,GAAG,QAAQ,CAAC;YAC3B,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;YAE9B,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC;YAE3B,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;SAC3B;QAEO,2BAAM,GAAd,UAAe,IAAiB;YAC9B,IAAI,CAAC,IAAI,CAAC,QAAQ;gBAAE,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;YAE3C,IAAI,CAAC,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;YAEvC,IAAI,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;YAEnC,IAAI,CAAC,IAAI,EAAE,CAAC;YAEZ,OAAO,IAAI,CAAC;SACb;QAED,wBAAG,GAAH,UAAI,KAAQ;YAAZ,iBAUC;YATC,OAAO;gBACL,KAAK,EAAE;;oBAAC,gBAA2C;yBAA3C,UAA2C,EAA3C,qBAA2C,EAA3C,IAA2C;wBAA3C,2BAA2C;;oBACjD,OAAA,CAAA,KAAA,KAAI,CAAC,QAAQ,EAAC,IAAI,qBAAC,KAAI,EAAE,KAAK,GAAK,MAAM;iBAAC;gBAC5C,MAAM,EAAE;;oBAAC,gBAA2C;yBAA3C,UAA2C,EAA3C,qBAA2C,EAA3C,IAA2C;wBAA3C,2BAA2C;;oBAClD,OAAA,CAAA,KAAA,KAAI,CAAC,SAAS,EAAC,IAAI,qBAAC,KAAI,EAAE,KAAK,GAAK,MAAM;iBAAC;gBAC7C,OAAO,EAAE,UAAC,QAAgB,IAAK,OAAA,KAAI,CAAC,UAAU,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAA;gBAC/D,IAAI,EAAE,cAAM,OAAA,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAA;gBAC/B,IAAI,EAAE,cAAM,OAAA,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAA;aAChC,CAAC;SACH;QAED,4BAAO,GAAP,UAAQ,MAAW;YAAnB,iBAUC;YATC,OAAO;gBACL,KAAK,EAAE;;oBAAC,gBAA2C;yBAA3C,UAA2C,EAA3C,qBAA2C,EAA3C,IAA2C;wBAA3C,2BAA2C;;oBACjD,OAAA,CAAA,KAAA,KAAI,CAAC,YAAY,EAAC,IAAI,qBAAC,KAAI,EAAE,MAAM,GAAK,MAAM;iBAAC;gBACjD,MAAM,EAAE;;oBAAC,gBAA2C;yBAA3C,UAA2C,EAA3C,qBAA2C,EAA3C,IAA2C;wBAA3C,2BAA2C;;oBAClD,OAAA,CAAA,KAAA,KAAI,CAAC,aAAa,EAAC,IAAI,qBAAC,KAAI,EAAE,MAAM,GAAK,MAAM;iBAAC;gBAClD,OAAO,EAAE,UAAC,QAAgB,IAAK,OAAA,KAAI,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAA;gBACpE,IAAI,EAAE,cAAM,OAAA,KAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAA;gBACpC,IAAI,EAAE,cAAM,OAAA,KAAI,CAAC,WAAW,CAAC,MAAM,CAAC,GAAA;aACrC,CAAC;SACH;QAID,6BAAQ,GAAR,UAAS,KAAQ,EAAE,aAAkB,EAAE,SAAwC;YAAxC,0BAAA,EAAA,mBAAwC;YAC7E,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,GAAA,CAAC,CAAC;YAEzE,OAAO,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACrF;QAID,8BAAS,GAAT,UAAU,KAAQ,EAAE,SAAc,EAAE,SAAwC;YAAxC,0BAAA,EAAA,mBAAwC;YAC1E,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,GAAA,CAAC,CAAC;YAEjE,OAAO,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SAC7E;QAED,+BAAU,GAAV,UAAW,KAAQ,EAAE,QAAgB;YACnC,IAAI,QAAQ,GAAG,CAAC;gBAAE,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC;iBACnC,IAAI,QAAQ,IAAI,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAE3D,IAAI,QAAQ,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAE9C,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;YAEjC,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;SAChD;QAED,4BAAO,GAAP,UAAQ,KAAQ;YACd,IAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;YAEjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;YAEvB,IAAI,IAAI,CAAC,KAAK;gBAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC;;gBACtC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YAEtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YAClB,IAAI,CAAC,IAAI,EAAE,CAAC;YAEZ,OAAO,IAAI,CAAC;SACb;QAED,4BAAO,GAAP,UAAQ,KAAQ;YACd,IAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC;YAEjC,IAAI,IAAI,CAAC,KAAK,EAAE;gBACd,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC;gBAC1B,IAAI,CAAC,IAAK,CAAC,IAAI,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;aAClB;iBAAM;gBACL,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;gBAClB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;aAClB;YAED,IAAI,CAAC,IAAI,EAAE,CAAC;YAEZ,OAAO,IAAI,CAAC;SACb;QAID,iCAAY,GAAZ,UACE,MAAW,EACX,aAAkB,EAClB,SAAwC;YAAxC,0BAAA,EAAA,mBAAwC;YAExC,IAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,CAAC,GAAA,CAAC,CAAC;YAEzE,OAAO,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;SAC/F;QAID,kCAAa,GAAb,UACE,MAAW,EACX,SAAc,EACd,SAAwC;YAAxC,0BAAA,EAAA,mBAAwC;YAExC,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,SAAS,CAAC,GAAA,CAAC,CAAC;YAEjE,OAAO,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;SACvF;QAED,mCAAc,GAAd,UAAe,MAAW,EAAE,QAAgB;YAC1C,IAAI,QAAQ,GAAG,CAAC;gBAAE,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC;YAExC,IAAI,QAAQ,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAEnD,IAAI,QAAQ,IAAI,IAAI,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAE3D,IAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;YAEjC,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;SACrD;QAED,gCAAW,GAAX,UAAY,MAAW;YAAvB,iBAKC;YAJC,OAAO,MAAM,CAAC,WAAW,CAAgB,UAAC,KAAK,EAAE,KAAK;gBACpD,KAAK,CAAC,OAAO,CAAC,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;gBACnC,OAAO,KAAK,CAAC;aACd,EAAE,EAAE,CAAC,CAAC;SACR;QAED,gCAAW,GAAX,UAAY,MAAW;YAAvB,iBAEC;YADC,OAAO,MAAM,CAAC,GAAG,CAAC,UAAA,KAAK,IAAI,OAAA,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAA,CAAC,CAAC;SACjD;QAED,yBAAI,GAAJ;YAAA,iBAUC;YATC,OAAO;gBACL,OAAO,EAAE,UAAC,QAAgB,IAAK,OAAA,KAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAA;gBACzD,OAAO,EAAE;oBAAC,gBAA2C;yBAA3C,UAA2C,EAA3C,qBAA2C,EAA3C,IAA2C;wBAA3C,2BAA2C;;oBACnD,OAAA,KAAI,CAAC,WAAW,CAAC,KAAK,CAAC,KAAI,EAAE,MAAM,CAAC;iBAAA;gBACtC,UAAU,EAAE;oBAAC,gBAA2C;yBAA3C,UAA2C,EAA3C,qBAA2C,EAA3C,IAA2C;wBAA3C,2BAA2C;;oBACtD,OAAA,KAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAI,EAAE,MAAM,CAAC;iBAAA;gBACzC,IAAI,EAAE,cAAM,OAAA,KAAI,CAAC,QAAQ,EAAE,GAAA;gBAC3B,IAAI,EAAE,cAAM,OAAA,KAAI,CAAC,QAAQ,EAAE,GAAA;aAC5B,CAAC;SACH;QAED,6BAAQ,GAAR,UAAS,KAAa;YAAtB,iBAMC;YALC,OAAO;gBACL,OAAO,EAAE,UAAC,QAAgB,IAAK,OAAA,KAAI,CAAC,eAAe,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAA;gBACpE,IAAI,EAAE,cAAM,OAAA,KAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAA;gBACpC,IAAI,EAAE,cAAM,OAAA,KAAI,CAAC,YAAY,CAAC,KAAK,CAAC,GAAA;aACrC,CAAC;SACH;QAED,gCAAW,GAAX,UAAY,QAAgB;YAC1B,IAAI,QAAQ,GAAG,CAAC;gBAAE,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC;YAExC,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAEnC,OAAO,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC;SACnD;QAID,gCAAW,GAAX,UAAY,KAAU,EAAE,SAAwC;YAAxC,0BAAA,EAAA,mBAAwC;YAC9D,IAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,UAAA,IAAI,IAAI,OAAA,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,GAAA,CAAC,CAAC;YAEtE,OAAO,QAAQ,GAAG,CAAC,GAAG,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;SAC9D;QAID,mCAAc,GAAd,UAAe,KAAU,EAAE,SAAwC;YAAxC,0BAAA,EAAA,mBAAwC;YACjE,IAAM,OAAO,GAAkB,EAAE,CAAC;YAElC,KAAK,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE;gBACxF,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE;oBACnC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAE,CAAC,CAAC;iBAC5D;aACF;YAED,OAAO,OAAO,CAAC;SAChB;QAED,6BAAQ,GAAR;YACE,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC;YAExB,IAAI,IAAI,EAAE;gBACR,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;gBAEvB,IAAI,IAAI,CAAC,KAAK;oBAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC;;oBAC3C,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;gBAE3B,IAAI,CAAC,IAAI,EAAE,CAAC;gBAEZ,OAAO,IAAI,CAAC;aACb;YAED,OAAO,SAAS,CAAC;SAClB;QAED,6BAAQ,GAAR;YACE,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAEvB,IAAI,IAAI,EAAE;gBACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAE1B,IAAI,IAAI,CAAC,IAAI;oBAAE,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;;oBACrC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;gBAE5B,IAAI,CAAC,IAAI,EAAE,CAAC;gBAEZ,OAAO,IAAI,CAAC;aACb;YAED,OAAO,SAAS,CAAC;SAClB;QAED,oCAAe,GAAf,UAAgB,KAAa,EAAE,QAAgB;YAC7C,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,EAAE,CAAC;YAE1B,IAAI,QAAQ,GAAG,CAAC;gBAAE,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;iBAC1D,IAAI,QAAQ,IAAI,IAAI,CAAC,IAAI;gBAAE,OAAO,EAAE,CAAC;YAE1C,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC;YAE9C,IAAM,OAAO,GAAkB,EAAE,CAAC;YAElC,OAAO,KAAK,EAAE,EAAE;gBACd,IAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACnC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAQ,CAAE,CAAC,CAAC;aACtC;YAED,OAAO,OAAO,CAAC;SAChB;QAED,iCAAY,GAAZ,UAAa,KAAyB;YACpC,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,EAAE,CAAC;YAE1B,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAEnC,IAAM,OAAO,GAAkB,EAAE,CAAC;YAElC,OAAO,KAAK,EAAE;gBAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAG,CAAC,CAAC;YAElD,OAAO,OAAO,CAAC;SAChB;QAED,iCAAY,GAAZ,UAAa,KAAyB;YACpC,IAAI,KAAK,IAAI,CAAC;gBAAE,OAAO,EAAE,CAAC;YAE1B,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAEnC,IAAM,OAAO,GAAkB,EAAE,CAAC;YAElC,OAAO,KAAK,EAAE;gBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAG,CAAC,CAAC;YAE/C,OAAO,OAAO,CAAC;SAChB;QAED,yBAAI,GAAJ,UAAK,SAA4B;YAC/B,KAAK,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE;gBACxF,IAAI,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC;oBAAE,OAAO,OAAO,CAAC;aACxD;YAED,OAAO,SAAS,CAAC;SAClB;QAED,8BAAS,GAAT,UAAU,SAA4B;YACpC,KAAK,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE;gBACxF,IAAI,SAAS,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC;oBAAE,OAAO,QAAQ,CAAC;aACzD;YAED,OAAO,CAAC,CAAC,CAAC;SACX;QAED,4BAAO,GAAP,UAAqB,UAAgC;YACnD,KAAK,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;gBAC5E,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;aAClC;SACF;QAED,wBAAG,GAAH,UAAI,QAAgB;YAClB,OAAO,IAAI,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,KAAK,IAAK,OAAA,QAAQ,KAAK,KAAK,GAAA,CAAC,CAAC;SACpD;QAID,4BAAO,GAAP,UAAQ,KAAU,EAAE,SAAwC;YAAxC,0BAAA,EAAA,mBAAwC;YAC1D,OAAO,IAAI,CAAC,SAAS,CAAC,UAAA,IAAI,IAAI,OAAA,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,GAAA,CAAC,CAAC;SAC7D;QAED,4BAAO,GAAP;YACE,IAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEnC,IAAI,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,KAAK,IAAK,QAAC,KAAK,CAAC,KAAM,CAAC,GAAG,IAAI,CAAC,KAAK,IAAC,CAAC,CAAC;YAE5D,OAAO,KAAK,CAAC;SACd;QAED,gCAAW,GAAX;YACE,IAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEnC,IAAI,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,KAAK,IAAK,QAAC,KAAK,CAAC,KAAM,CAAC,GAAG,IAAI,IAAC,CAAC,CAAC;YAEtD,OAAO,KAAK,CAAC;SACd;QAED,6BAAQ,GAAR,UAAS,QAA0C;YAA1C,yBAAA,EAAA,WAA4B,IAAI,CAAC,SAAS;YACjD,OAAO,IAAI,CAAC,OAAO,EAAE;iBAClB,GAAG,CAAC,UAAA,KAAK,IAAI,OAAA,QAAQ,CAAC,KAAK,CAAC,GAAA,CAAC;iBAC7B,IAAI,CAAC,OAAO,CAAC,CAAC;SAClB;;QAGA,qBAAC,MAAM,CAAC,QAAQ,CAAC,GAAlB;;;;;wBACW,IAAI,GAAG,IAAI,CAAC,KAAK,EAAE,QAAQ,GAAG,CAAC;;;6BAAE,IAAI;wBAC5C,qBAAM,IAAI,CAAC,KAAK,EAAA;;wBAAhB,SAAgB,CAAC;;;wBAD6B,QAAQ,EAAE,EAAE,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;;;;;SAG7E;QACH,iBAAC;IAAD,CAAC;;;;;;;;;;;;;"} \ No newline at end of file +{"version":3,"file":"abp-utils.umd.js","sources":["../../node_modules/tslib/tslib.es6.js","../../projects/utils/src/lib/linked-list.ts","../../projects/utils/src/public-api.ts","../../projects/utils/src/abp-utils.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/* tslint:disable:no-non-null-assertion */\n\nimport compare from 'just-compare';\n\nexport class ListNode {\n next: ListNode | undefined;\n previous: ListNode | undefined;\n constructor(public readonly value: T) {}\n}\n\nexport class LinkedList {\n private first: ListNode | undefined;\n private last: ListNode | undefined;\n private size = 0;\n\n get head(): ListNode | undefined {\n return this.first;\n }\n get tail(): ListNode | undefined {\n return this.last;\n }\n get length(): number {\n return this.size;\n }\n\n private attach(\n value: T,\n previousNode: ListNode | undefined,\n nextNode: ListNode | undefined,\n ): ListNode {\n if (!previousNode) return this.addHead(value);\n\n if (!nextNode) return this.addTail(value);\n\n const node = new ListNode(value);\n node.previous = previousNode;\n previousNode.next = node;\n node.next = nextNode;\n nextNode.previous = node;\n\n this.size++;\n\n return node;\n }\n\n private attachMany(\n values: T[],\n previousNode: ListNode | undefined,\n nextNode: ListNode | undefined,\n ): ListNode[] {\n if (!values.length) return [];\n\n if (!previousNode) return this.addManyHead(values);\n\n if (!nextNode) return this.addManyTail(values);\n\n const list = new LinkedList();\n list.addManyTail(values);\n list.first!.previous = previousNode;\n previousNode.next = list.first;\n list.last!.next = nextNode;\n nextNode.previous = list.last;\n\n this.size += values.length;\n\n return list.toNodeArray();\n }\n\n private detach(node: ListNode) {\n if (!node.previous) return this.dropHead();\n\n if (!node.next) return this.dropTail();\n\n node.previous.next = node.next;\n node.next.previous = node.previous;\n\n this.size--;\n\n return node;\n }\n\n add(value: T) {\n return {\n after: (...params: [T] | [any, ListComparisonFn]) =>\n this.addAfter.call(this, value, ...params),\n before: (...params: [T] | [any, ListComparisonFn]) =>\n this.addBefore.call(this, value, ...params),\n byIndex: (position: number) => this.addByIndex(value, position),\n head: () => this.addHead(value),\n tail: () => this.addTail(value),\n };\n }\n\n addMany(values: T[]) {\n return {\n after: (...params: [T] | [any, ListComparisonFn]) =>\n this.addManyAfter.call(this, values, ...params),\n before: (...params: [T] | [any, ListComparisonFn]) =>\n this.addManyBefore.call(this, values, ...params),\n byIndex: (position: number) => this.addManyByIndex(values, position),\n head: () => this.addManyHead(values),\n tail: () => this.addManyTail(values),\n };\n }\n\n addAfter(value: T, previousValue: T): ListNode;\n addAfter(value: T, previousValue: any, compareFn: ListComparisonFn): ListNode;\n addAfter(value: T, previousValue: any, compareFn: ListComparisonFn = compare): ListNode {\n const previous = this.find(node => compareFn(node.value, previousValue));\n\n return previous ? this.attach(value, previous, previous.next) : this.addTail(value);\n }\n\n addBefore(value: T, nextValue: T): ListNode;\n addBefore(value: T, nextValue: any, compareFn: ListComparisonFn): ListNode;\n addBefore(value: T, nextValue: any, compareFn: ListComparisonFn = compare): ListNode {\n const next = this.find(node => compareFn(node.value, nextValue));\n\n return next ? this.attach(value, next.previous, next) : this.addHead(value);\n }\n\n addByIndex(value: T, position: number): ListNode {\n if (position < 0) position += this.size;\n else if (position >= this.size) return this.addTail(value);\n\n if (position <= 0) return this.addHead(value);\n\n const next = this.get(position)!;\n\n return this.attach(value, next.previous, next);\n }\n\n addHead(value: T): ListNode {\n const node = new ListNode(value);\n\n node.next = this.first;\n\n if (this.first) this.first.previous = node;\n else this.last = node;\n\n this.first = node;\n this.size++;\n\n return node;\n }\n\n addTail(value: T): ListNode {\n const node = new ListNode(value);\n\n if (this.first) {\n node.previous = this.last;\n this.last!.next = node;\n this.last = node;\n } else {\n this.first = node;\n this.last = node;\n }\n\n this.size++;\n\n return node;\n }\n\n addManyAfter(values: T[], previousValue: T): ListNode[];\n addManyAfter(values: T[], previousValue: any, compareFn: ListComparisonFn): ListNode[];\n addManyAfter(\n values: T[],\n previousValue: any,\n compareFn: ListComparisonFn = compare,\n ): ListNode[] {\n const previous = this.find(node => compareFn(node.value, previousValue));\n\n return previous ? this.attachMany(values, previous, previous.next) : this.addManyTail(values);\n }\n\n addManyBefore(values: T[], nextValue: T): ListNode[];\n addManyBefore(values: T[], nextValue: any, compareFn: ListComparisonFn): ListNode[];\n addManyBefore(\n values: T[],\n nextValue: any,\n compareFn: ListComparisonFn = compare,\n ): ListNode[] {\n const next = this.find(node => compareFn(node.value, nextValue));\n\n return next ? this.attachMany(values, next.previous, next) : this.addManyHead(values);\n }\n\n addManyByIndex(values: T[], position: number): ListNode[] {\n if (position < 0) position += this.size;\n\n if (position <= 0) return this.addManyHead(values);\n\n if (position >= this.size) return this.addManyTail(values);\n\n const next = this.get(position)!;\n\n return this.attachMany(values, next.previous, next);\n }\n\n addManyHead(values: T[]): ListNode[] {\n return values.reduceRight[]>((nodes, value) => {\n nodes.unshift(this.addHead(value));\n return nodes;\n }, []);\n }\n\n addManyTail(values: T[]): ListNode[] {\n return values.map(value => this.addTail(value));\n }\n\n drop() {\n return {\n byIndex: (position: number) => this.dropByIndex(position),\n byValue: (...params: [T] | [any, ListComparisonFn]) =>\n this.dropByValue.apply(this, params),\n byValueAll: (...params: [T] | [any, ListComparisonFn]) =>\n this.dropByValueAll.apply(this, params),\n head: () => this.dropHead(),\n tail: () => this.dropTail(),\n };\n }\n\n dropMany(count: number) {\n return {\n byIndex: (position: number) => this.dropManyByIndex(count, position),\n head: () => this.dropManyHead(count),\n tail: () => this.dropManyTail(count),\n };\n }\n\n dropByIndex(position: number): ListNode | undefined {\n if (position < 0) position += this.size;\n\n const current = this.get(position);\n\n return current ? this.detach(current) : undefined;\n }\n\n dropByValue(value: T): ListNode | undefined;\n dropByValue(value: any, compareFn: ListComparisonFn): ListNode | undefined;\n dropByValue(value: any, compareFn: ListComparisonFn = compare): ListNode | undefined {\n const position = this.findIndex(node => compareFn(node.value, value));\n\n return position < 0 ? undefined : this.dropByIndex(position);\n }\n\n dropByValueAll(value: T): ListNode[];\n dropByValueAll(value: any, compareFn: ListComparisonFn): ListNode[];\n dropByValueAll(value: any, compareFn: ListComparisonFn = compare): ListNode[] {\n const dropped: ListNode[] = [];\n\n for (let current = this.first, position = 0; current; position++, current = current.next) {\n if (compareFn(current.value, value)) {\n dropped.push(this.dropByIndex(position - dropped.length)!);\n }\n }\n\n return dropped;\n }\n\n dropHead(): ListNode | undefined {\n const head = this.first;\n\n if (head) {\n this.first = head.next;\n\n if (this.first) this.first.previous = undefined;\n else this.last = undefined;\n\n this.size--;\n\n return head;\n }\n\n return undefined;\n }\n\n dropTail(): ListNode | undefined {\n const tail = this.last;\n\n if (tail) {\n this.last = tail.previous;\n\n if (this.last) this.last.next = undefined;\n else this.first = undefined;\n\n this.size--;\n\n return tail;\n }\n\n return undefined;\n }\n\n dropManyByIndex(count: number, position: number): ListNode[] {\n if (count <= 0) return [];\n\n if (position < 0) position = Math.max(position + this.size, 0);\n else if (position >= this.size) return [];\n\n count = Math.min(count, this.size - position);\n\n const dropped: ListNode[] = [];\n\n while (count--) {\n const current = this.get(position);\n dropped.push(this.detach(current!)!);\n }\n\n return dropped;\n }\n\n dropManyHead(count: Exclude): ListNode[] {\n if (count <= 0) return [];\n\n count = Math.min(count, this.size);\n\n const dropped: ListNode[] = [];\n\n while (count--) dropped.unshift(this.dropHead()!);\n\n return dropped;\n }\n\n dropManyTail(count: Exclude): ListNode[] {\n if (count <= 0) return [];\n\n count = Math.min(count, this.size);\n\n const dropped: ListNode[] = [];\n\n while (count--) dropped.push(this.dropTail()!);\n\n return dropped;\n }\n\n find(predicate: ListIteratorFn): ListNode | undefined {\n for (let current = this.first, position = 0; current; position++, current = current.next) {\n if (predicate(current, position, this)) return current;\n }\n\n return undefined;\n }\n\n findIndex(predicate: ListIteratorFn): number {\n for (let current = this.first, position = 0; current; position++, current = current.next) {\n if (predicate(current, position, this)) return position;\n }\n\n return -1;\n }\n\n forEach(iteratorFn: ListIteratorFn) {\n for (let node = this.first, position = 0; node; position++, node = node.next) {\n iteratorFn(node, position, this);\n }\n }\n\n get(position: number): ListNode | undefined {\n return this.find((_, index) => position === index);\n }\n\n indexOf(value: T): number;\n indexOf(value: any, compareFn: ListComparisonFn): number;\n indexOf(value: any, compareFn: ListComparisonFn = compare): number {\n return this.findIndex(node => compareFn(node.value, value));\n }\n\n toArray(): T[] {\n const array = new Array(this.size);\n\n this.forEach((node, index) => (array[index!] = node.value));\n\n return array;\n }\n\n toNodeArray(): ListNode[] {\n const array = new Array(this.size);\n\n this.forEach((node, index) => (array[index!] = node));\n\n return array;\n }\n\n toString(mapperFn: ListMapperFn = JSON.stringify): string {\n return this.toArray()\n .map(value => mapperFn(value))\n .join(' <-> ');\n }\n\n // Cannot use Generator type because of ng-packagr\n *[Symbol.iterator](): any {\n for (let node = this.first, position = 0; node; position++, node = node.next) {\n yield node.value;\n }\n }\n}\n\nexport type ListMapperFn = (value: T) => any;\n\nexport type ListComparisonFn = (value1: T, value2: any) => boolean;\n\nexport type ListIteratorFn = (\n node: ListNode,\n index?: number,\n list?: LinkedList,\n) => R;\n","/*\n * Public API Surface of utils\n */\n\nexport * from './lib/linked-list';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/utils/abp-utils.umd.min.js b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/utils/abp-utils.umd.min.js index b65fa8f40f..57b22e5188 100644 --- a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/utils/abp-utils.umd.min.js +++ b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/utils/abp-utils.umd.min.js @@ -1,2 +1,2 @@ -!function(t,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("just-compare")):"function"==typeof define&&define.amd?define("@abp/utils",["exports","just-compare"],r):r(((t=t||self).abp=t.abp||{},t.abp.utils=t.abp.utils||{},t.abp.utils.common={}),t.compare)}(this,(function(t,r){"use strict";r=r&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r;function e(t,r){var e,n,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function u(o){return function(u){return function(o){if(e)throw new TypeError("Generator is already executing.");for(;a;)try{if(e=1,n&&(i=2&o[0]?n.return:o[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;switch(n=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,n=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0)&&!(n=o.next()).done;)a.push(n.value)}catch(t){i={error:t}}finally{try{n&&!n.done&&(e=o.return)&&e.call(o)}finally{if(i)throw i.error}}return a}function i(){for(var t=[],r=0;r=this.size)return this.addTail(t);if(r<=0)return this.addHead(t);var e=this.get(r);return this.attach(t,e.previous,e)},t.prototype.addHead=function(t){var r=new o(t);return r.next=this.first,this.first?this.first.previous=r:this.last=r,this.first=r,this.size++,r},t.prototype.addTail=function(t){var r=new o(t);return this.first?(r.previous=this.last,this.last.next=r,this.last=r):(this.first=r,this.last=r),this.size++,r},t.prototype.addManyAfter=function(t,e,n){void 0===n&&(n=r);var i=this.find((function(t){return n(t.value,e)}));return i?this.attachMany(t,i,i.next):this.addManyTail(t)},t.prototype.addManyBefore=function(t,e,n){void 0===n&&(n=r);var i=this.find((function(t){return n(t.value,e)}));return i?this.attachMany(t,i.previous,i):this.addManyHead(t)},t.prototype.addManyByIndex=function(t,r){if(r<0&&(r+=this.size),r<=0)return this.addManyHead(t);if(r>=this.size)return this.addManyTail(t);var e=this.get(r);return this.attachMany(t,e.previous,e)},t.prototype.addManyHead=function(t){var r=this;return t.reduceRight((function(t,e){return t.unshift(r.addHead(e)),t}),[])},t.prototype.addManyTail=function(t){var r=this;return t.map((function(t){return r.addTail(t)}))},t.prototype.drop=function(){var t=this;return{byIndex:function(r){return t.dropByIndex(r)},byValue:function(){for(var r=[],e=0;e=this.size)return[];t=Math.min(t,this.size-r);for(var e=[];t--;){var n=this.get(r);e.push(this.detach(n))}return e},t.prototype.dropManyHead=function(t){if(t<=0)return[];t=Math.min(t,this.size);for(var r=[];t--;)r.unshift(this.dropHead());return r},t.prototype.dropManyTail=function(t){if(t<=0)return[];t=Math.min(t,this.size);for(var r=[];t--;)r.push(this.dropTail());return r},t.prototype.find=function(t){for(var r=this.first,e=0;r;e++,r=r.next)if(t(r,e,this))return r},t.prototype.findIndex=function(t){for(var r=this.first,e=0;r;e++,r=r.next)if(t(r,e,this))return e;return-1},t.prototype.forEach=function(t){for(var r=this.first,e=0;r;e++,r=r.next)t(r,e,this)},t.prototype.get=function(t){return this.find((function(r,e){return t===e}))},t.prototype.indexOf=function(t,e){return void 0===e&&(e=r),this.findIndex((function(r){return e(r.value,t)}))},t.prototype.toArray=function(){var t=new Array(this.size);return this.forEach((function(r,e){return t[e]=r.value})),t},t.prototype.toNodeArray=function(){var t=new Array(this.size);return this.forEach((function(r,e){return t[e]=r})),t},t.prototype.toString=function(t){return void 0===t&&(t=JSON.stringify),this.toArray().map((function(r){return t(r)})).join(" <-> ")},t.prototype[Symbol.iterator]=function(){var t;return e(this,(function(r){switch(r.label){case 0:t=this.first,0,r.label=1;case 1:return t?[4,t.value]:[3,4];case 2:r.sent(),r.label=3;case 3:return t=t.next,[3,1];case 4:return[2]}}))},t}();t.LinkedList=a,t.ListNode=o,Object.defineProperty(t,"__esModule",{value:!0})})); +!function(t,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("just-compare")):"function"==typeof define&&define.amd?define("@abp/utils",["exports","just-compare"],r):r(((t=t||self).abp=t.abp||{},t.abp.utils=t.abp.utils||{},t.abp.utils.common={}),t.compare)}(this,(function(t,r){"use strict";r=r&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r;function e(t,r){var e,n,i,o,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return o={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function u(o){return function(u){return function(o){if(e)throw new TypeError("Generator is already executing.");for(;a;)try{if(e=1,n&&(i=2&o[0]?n.return:o[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,o[1])).done)return i;switch(n=0,i&&(o=[2&o[0],i.value]),o[0]){case 0:case 1:i=o;break;case 4:return a.label++,{value:o[1],done:!1};case 5:a.label++,n=o[1],o=[0];continue;case 7:o=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]0)&&!(n=o.next()).done;)a.push(n.value)}catch(t){i={error:t}}finally{try{n&&!n.done&&(e=o.return)&&e.call(o)}finally{if(i)throw i.error}}return a}function i(){for(var t=[],r=0;r=this.size)return this.addTail(t);if(r<=0)return this.addHead(t);var e=this.get(r);return this.attach(t,e.previous,e)},t.prototype.addHead=function(t){var r=new o(t);return r.next=this.first,this.first?this.first.previous=r:this.last=r,this.first=r,this.size++,r},t.prototype.addTail=function(t){var r=new o(t);return this.first?(r.previous=this.last,this.last.next=r,this.last=r):(this.first=r,this.last=r),this.size++,r},t.prototype.addManyAfter=function(t,e,n){void 0===n&&(n=r);var i=this.find((function(t){return n(t.value,e)}));return i?this.attachMany(t,i,i.next):this.addManyTail(t)},t.prototype.addManyBefore=function(t,e,n){void 0===n&&(n=r);var i=this.find((function(t){return n(t.value,e)}));return i?this.attachMany(t,i.previous,i):this.addManyHead(t)},t.prototype.addManyByIndex=function(t,r){if(r<0&&(r+=this.size),r<=0)return this.addManyHead(t);if(r>=this.size)return this.addManyTail(t);var e=this.get(r);return this.attachMany(t,e.previous,e)},t.prototype.addManyHead=function(t){var r=this;return t.reduceRight((function(t,e){return t.unshift(r.addHead(e)),t}),[])},t.prototype.addManyTail=function(t){var r=this;return t.map((function(t){return r.addTail(t)}))},t.prototype.drop=function(){var t=this;return{byIndex:function(r){return t.dropByIndex(r)},byValue:function(){for(var r=[],e=0;e=this.size)return[];t=Math.min(t,this.size-r);for(var e=[];t--;){var n=this.get(r);e.push(this.detach(n))}return e},t.prototype.dropManyHead=function(t){if(t<=0)return[];t=Math.min(t,this.size);for(var r=[];t--;)r.unshift(this.dropHead());return r},t.prototype.dropManyTail=function(t){if(t<=0)return[];t=Math.min(t,this.size);for(var r=[];t--;)r.push(this.dropTail());return r},t.prototype.find=function(t){for(var r=this.first,e=0;r;e++,r=r.next)if(t(r,e,this))return r},t.prototype.findIndex=function(t){for(var r=this.first,e=0;r;e++,r=r.next)if(t(r,e,this))return e;return-1},t.prototype.forEach=function(t){for(var r=this.first,e=0;r;e++,r=r.next)t(r,e,this)},t.prototype.get=function(t){return this.find((function(r,e){return t===e}))},t.prototype.indexOf=function(t,e){return void 0===e&&(e=r),this.findIndex((function(r){return e(r.value,t)}))},t.prototype.toArray=function(){var t=new Array(this.size);return this.forEach((function(r,e){return t[e]=r.value})),t},t.prototype.toNodeArray=function(){var t=new Array(this.size);return this.forEach((function(r,e){return t[e]=r})),t},t.prototype.toString=function(t){return void 0===t&&(t=JSON.stringify),this.toArray().map((function(r){return t(r)})).join(" <-> ")},t.prototype[Symbol.iterator]=function(){var t;return e(this,(function(r){switch(r.label){case 0:t=this.first,0,r.label=1;case 1:return t?[4,t.value]:[3,4];case 2:r.sent(),r.label=3;case 3:return t=t.next,[3,1];case 4:return[2]}}))},t}();t.LinkedList=a,t.ListNode=o,Object.defineProperty(t,"__esModule",{value:!0})})); //# sourceMappingURL=abp-utils.umd.min.js.map \ No newline at end of file diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/utils/abp-utils.umd.min.js.map b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/utils/abp-utils.umd.min.js.map index 155d2d7973..b4e4d3e0a1 100644 --- a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/utils/abp-utils.umd.min.js.map +++ b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/abp/utils/abp-utils.umd.min.js.map @@ -1 +1 @@ -{"version":3,"sources":["../../node_modules/tslib/tslib.es6.js","ng://@abp/utils/lib/linked-list.ts"],"names":["__generator","thisArg","body","f","y","t","g","_","label","sent","trys","ops","next","verb","throw","return","Symbol","iterator","this","n","v","op","TypeError","call","done","value","pop","length","push","e","step","__read","o","m","r","i","ar","error","__spread","arguments","concat","LinkedList","size","Object","defineProperty","prototype","first","last","attach","previousNode","nextNode","addHead","addTail","node","ListNode","previous","attachMany","values","addManyHead","addManyTail","list","toNodeArray","detach","dropTail","dropHead","add","_this","after","params","_i","_a","addAfter","apply","before","addBefore","byIndex","position","addByIndex","head","tail","addMany","addManyAfter","addManyBefore","addManyByIndex","previousValue","compareFn","compare","find","nextValue","get","reduceRight","nodes","unshift","map","drop","dropByIndex","byValue","dropByValue","byValueAll","dropByValueAll","dropMany","count","dropManyByIndex","dropManyHead","dropManyTail","current","undefined","findIndex","dropped","Math","max","min","predicate","forEach","iteratorFn","index","indexOf","toArray","array","Array","toString","mapperFn","JSON","stringify","join"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/* tslint:disable:no-non-null-assertion */\r\n\r\nimport compare from 'just-compare';\r\n\r\nexport class ListNode {\r\n next: ListNode | undefined;\r\n previous: ListNode | undefined;\r\n constructor(public readonly value: T) {}\r\n}\r\n\r\nexport class LinkedList {\r\n private first: ListNode | undefined;\r\n private last: ListNode | undefined;\r\n private size = 0;\r\n\r\n get head(): ListNode | undefined {\r\n return this.first;\r\n }\r\n get tail(): ListNode | undefined {\r\n return this.last;\r\n }\r\n get length(): number {\r\n return this.size;\r\n }\r\n\r\n private attach(\r\n value: T,\r\n previousNode: ListNode | undefined,\r\n nextNode: ListNode | undefined,\r\n ): ListNode {\r\n if (!previousNode) return this.addHead(value);\r\n\r\n if (!nextNode) return this.addTail(value);\r\n\r\n const node = new ListNode(value);\r\n node.previous = previousNode;\r\n previousNode.next = node;\r\n node.next = nextNode;\r\n nextNode.previous = node;\r\n\r\n this.size++;\r\n\r\n return node;\r\n }\r\n\r\n private attachMany(\r\n values: T[],\r\n previousNode: ListNode | undefined,\r\n nextNode: ListNode | undefined,\r\n ): ListNode[] {\r\n if (!values.length) return [];\r\n\r\n if (!previousNode) return this.addManyHead(values);\r\n\r\n if (!nextNode) return this.addManyTail(values);\r\n\r\n const list = new LinkedList();\r\n list.addManyTail(values);\r\n list.first!.previous = previousNode;\r\n previousNode.next = list.first;\r\n list.last!.next = nextNode;\r\n nextNode.previous = list.last;\r\n\r\n this.size += values.length;\r\n\r\n return list.toNodeArray();\r\n }\r\n\r\n private detach(node: ListNode) {\r\n if (!node.previous) return this.dropHead();\r\n\r\n if (!node.next) return this.dropTail();\r\n\r\n node.previous.next = node.next;\r\n node.next.previous = node.previous;\r\n\r\n this.size--;\r\n\r\n return node;\r\n }\r\n\r\n add(value: T) {\r\n return {\r\n after: (...params: [T] | [any, ListComparisonFn]) =>\r\n this.addAfter.call(this, value, ...params),\r\n before: (...params: [T] | [any, ListComparisonFn]) =>\r\n this.addBefore.call(this, value, ...params),\r\n byIndex: (position: number) => this.addByIndex(value, position),\r\n head: () => this.addHead(value),\r\n tail: () => this.addTail(value),\r\n };\r\n }\r\n\r\n addMany(values: T[]) {\r\n return {\r\n after: (...params: [T] | [any, ListComparisonFn]) =>\r\n this.addManyAfter.call(this, values, ...params),\r\n before: (...params: [T] | [any, ListComparisonFn]) =>\r\n this.addManyBefore.call(this, values, ...params),\r\n byIndex: (position: number) => this.addManyByIndex(values, position),\r\n head: () => this.addManyHead(values),\r\n tail: () => this.addManyTail(values),\r\n };\r\n }\r\n\r\n addAfter(value: T, previousValue: T): ListNode;\r\n addAfter(value: T, previousValue: any, compareFn: ListComparisonFn): ListNode;\r\n addAfter(value: T, previousValue: any, compareFn: ListComparisonFn = compare): ListNode {\r\n const previous = this.find(node => compareFn(node.value, previousValue));\r\n\r\n return previous ? this.attach(value, previous, previous.next) : this.addTail(value);\r\n }\r\n\r\n addBefore(value: T, nextValue: T): ListNode;\r\n addBefore(value: T, nextValue: any, compareFn: ListComparisonFn): ListNode;\r\n addBefore(value: T, nextValue: any, compareFn: ListComparisonFn = compare): ListNode {\r\n const next = this.find(node => compareFn(node.value, nextValue));\r\n\r\n return next ? this.attach(value, next.previous, next) : this.addHead(value);\r\n }\r\n\r\n addByIndex(value: T, position: number): ListNode {\r\n if (position < 0) position += this.size;\r\n else if (position >= this.size) return this.addTail(value);\r\n\r\n if (position <= 0) return this.addHead(value);\r\n\r\n const next = this.get(position)!;\r\n\r\n return this.attach(value, next.previous, next);\r\n }\r\n\r\n addHead(value: T): ListNode {\r\n const node = new ListNode(value);\r\n\r\n node.next = this.first;\r\n\r\n if (this.first) this.first.previous = node;\r\n else this.last = node;\r\n\r\n this.first = node;\r\n this.size++;\r\n\r\n return node;\r\n }\r\n\r\n addTail(value: T): ListNode {\r\n const node = new ListNode(value);\r\n\r\n if (this.first) {\r\n node.previous = this.last;\r\n this.last!.next = node;\r\n this.last = node;\r\n } else {\r\n this.first = node;\r\n this.last = node;\r\n }\r\n\r\n this.size++;\r\n\r\n return node;\r\n }\r\n\r\n addManyAfter(values: T[], previousValue: T): ListNode[];\r\n addManyAfter(values: T[], previousValue: any, compareFn: ListComparisonFn): ListNode[];\r\n addManyAfter(\r\n values: T[],\r\n previousValue: any,\r\n compareFn: ListComparisonFn = compare,\r\n ): ListNode[] {\r\n const previous = this.find(node => compareFn(node.value, previousValue));\r\n\r\n return previous ? this.attachMany(values, previous, previous.next) : this.addManyTail(values);\r\n }\r\n\r\n addManyBefore(values: T[], nextValue: T): ListNode[];\r\n addManyBefore(values: T[], nextValue: any, compareFn: ListComparisonFn): ListNode[];\r\n addManyBefore(\r\n values: T[],\r\n nextValue: any,\r\n compareFn: ListComparisonFn = compare,\r\n ): ListNode[] {\r\n const next = this.find(node => compareFn(node.value, nextValue));\r\n\r\n return next ? this.attachMany(values, next.previous, next) : this.addManyHead(values);\r\n }\r\n\r\n addManyByIndex(values: T[], position: number): ListNode[] {\r\n if (position < 0) position += this.size;\r\n\r\n if (position <= 0) return this.addManyHead(values);\r\n\r\n if (position >= this.size) return this.addManyTail(values);\r\n\r\n const next = this.get(position)!;\r\n\r\n return this.attachMany(values, next.previous, next);\r\n }\r\n\r\n addManyHead(values: T[]): ListNode[] {\r\n return values.reduceRight[]>((nodes, value) => {\r\n nodes.unshift(this.addHead(value));\r\n return nodes;\r\n }, []);\r\n }\r\n\r\n addManyTail(values: T[]): ListNode[] {\r\n return values.map(value => this.addTail(value));\r\n }\r\n\r\n drop() {\r\n return {\r\n byIndex: (position: number) => this.dropByIndex(position),\r\n byValue: (...params: [T] | [any, ListComparisonFn]) =>\r\n this.dropByValue.apply(this, params),\r\n byValueAll: (...params: [T] | [any, ListComparisonFn]) =>\r\n this.dropByValueAll.apply(this, params),\r\n head: () => this.dropHead(),\r\n tail: () => this.dropTail(),\r\n };\r\n }\r\n\r\n dropMany(count: number) {\r\n return {\r\n byIndex: (position: number) => this.dropManyByIndex(count, position),\r\n head: () => this.dropManyHead(count),\r\n tail: () => this.dropManyTail(count),\r\n };\r\n }\r\n\r\n dropByIndex(position: number): ListNode | undefined {\r\n if (position < 0) position += this.size;\r\n\r\n const current = this.get(position);\r\n\r\n return current ? this.detach(current) : undefined;\r\n }\r\n\r\n dropByValue(value: T): ListNode | undefined;\r\n dropByValue(value: any, compareFn: ListComparisonFn): ListNode | undefined;\r\n dropByValue(value: any, compareFn: ListComparisonFn = compare): ListNode | undefined {\r\n const position = this.findIndex(node => compareFn(node.value, value));\r\n\r\n return position < 0 ? undefined : this.dropByIndex(position);\r\n }\r\n\r\n dropByValueAll(value: T): ListNode[];\r\n dropByValueAll(value: any, compareFn: ListComparisonFn): ListNode[];\r\n dropByValueAll(value: any, compareFn: ListComparisonFn = compare): ListNode[] {\r\n const dropped: ListNode[] = [];\r\n\r\n for (let current = this.first, position = 0; current; position++, current = current.next) {\r\n if (compareFn(current.value, value)) {\r\n dropped.push(this.dropByIndex(position - dropped.length)!);\r\n }\r\n }\r\n\r\n return dropped;\r\n }\r\n\r\n dropHead(): ListNode | undefined {\r\n const head = this.first;\r\n\r\n if (head) {\r\n this.first = head.next;\r\n\r\n if (this.first) this.first.previous = undefined;\r\n else this.last = undefined;\r\n\r\n this.size--;\r\n\r\n return head;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n dropTail(): ListNode | undefined {\r\n const tail = this.last;\r\n\r\n if (tail) {\r\n this.last = tail.previous;\r\n\r\n if (this.last) this.last.next = undefined;\r\n else this.first = undefined;\r\n\r\n this.size--;\r\n\r\n return tail;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n dropManyByIndex(count: number, position: number): ListNode[] {\r\n if (count <= 0) return [];\r\n\r\n if (position < 0) position = Math.max(position + this.size, 0);\r\n else if (position >= this.size) return [];\r\n\r\n count = Math.min(count, this.size - position);\r\n\r\n const dropped: ListNode[] = [];\r\n\r\n while (count--) {\r\n const current = this.get(position);\r\n dropped.push(this.detach(current!)!);\r\n }\r\n\r\n return dropped;\r\n }\r\n\r\n dropManyHead(count: Exclude): ListNode[] {\r\n if (count <= 0) return [];\r\n\r\n count = Math.min(count, this.size);\r\n\r\n const dropped: ListNode[] = [];\r\n\r\n while (count--) dropped.unshift(this.dropHead()!);\r\n\r\n return dropped;\r\n }\r\n\r\n dropManyTail(count: Exclude): ListNode[] {\r\n if (count <= 0) return [];\r\n\r\n count = Math.min(count, this.size);\r\n\r\n const dropped: ListNode[] = [];\r\n\r\n while (count--) dropped.push(this.dropTail()!);\r\n\r\n return dropped;\r\n }\r\n\r\n find(predicate: ListIteratorFn): ListNode | undefined {\r\n for (let current = this.first, position = 0; current; position++, current = current.next) {\r\n if (predicate(current, position, this)) return current;\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n findIndex(predicate: ListIteratorFn): number {\r\n for (let current = this.first, position = 0; current; position++, current = current.next) {\r\n if (predicate(current, position, this)) return position;\r\n }\r\n\r\n return -1;\r\n }\r\n\r\n forEach(iteratorFn: ListIteratorFn) {\r\n for (let node = this.first, position = 0; node; position++, node = node.next) {\r\n iteratorFn(node, position, this);\r\n }\r\n }\r\n\r\n get(position: number): ListNode | undefined {\r\n return this.find((_, index) => position === index);\r\n }\r\n\r\n indexOf(value: T): number;\r\n indexOf(value: any, compareFn: ListComparisonFn): number;\r\n indexOf(value: any, compareFn: ListComparisonFn = compare): number {\r\n return this.findIndex(node => compareFn(node.value, value));\r\n }\r\n\r\n toArray(): T[] {\r\n const array = new Array(this.size);\r\n\r\n this.forEach((node, index) => (array[index!] = node.value));\r\n\r\n return array;\r\n }\r\n\r\n toNodeArray(): ListNode[] {\r\n const array = new Array(this.size);\r\n\r\n this.forEach((node, index) => (array[index!] = node));\r\n\r\n return array;\r\n }\r\n\r\n toString(mapperFn: ListMapperFn = JSON.stringify): string {\r\n return this.toArray()\r\n .map(value => mapperFn(value))\r\n .join(' <-> ');\r\n }\r\n\r\n // Cannot use Generator type because of ng-packagr\r\n *[Symbol.iterator](): any {\r\n for (let node = this.first, position = 0; node; position++, node = node.next) {\r\n yield node.value;\r\n }\r\n }\r\n}\r\n\r\nexport type ListMapperFn = (value: T) => any;\r\n\r\nexport type ListComparisonFn = (value1: T, value2: any) => boolean;\r\n\r\nexport type ListIteratorFn = (\r\n node: ListNode,\r\n index?: number,\r\n list?: LinkedList,\r\n) => R;\r\n"]} \ No newline at end of file +{"version":3,"sources":["../../node_modules/tslib/tslib.es6.js","../../projects/utils/src/lib/linked-list.ts"],"names":["__generator","thisArg","body","f","y","t","g","_","label","sent","trys","ops","next","verb","throw","return","Symbol","iterator","this","n","v","op","TypeError","call","done","value","pop","length","push","e","step","Object","create","__read","o","m","r","i","ar","error","__spread","arguments","concat","LinkedList","size","defineProperty","prototype","first","last","attach","previousNode","nextNode","addHead","addTail","node","ListNode","previous","attachMany","values","addManyHead","addManyTail","list","toNodeArray","detach","dropTail","dropHead","add","_this","after","params","_i","_a","addAfter","apply","before","addBefore","byIndex","position","addByIndex","head","tail","addMany","addManyAfter","addManyBefore","addManyByIndex","previousValue","compareFn","compare","find","nextValue","get","reduceRight","nodes","unshift","map","drop","dropByIndex","byValue","dropByValue","byValueAll","dropByValueAll","dropMany","count","dropManyByIndex","dropManyHead","dropManyTail","current","undefined","findIndex","dropped","Math","max","min","predicate","forEach","iteratorFn","index","indexOf","toArray","array","Array","toString","mapperFn","JSON","stringify","join"],"mappings":"wYA6EgBA,EAAYC,EAASC,GACjC,IAAsGC,EAAGC,EAAGC,EAAGC,EAA3GC,EAAI,CAAEC,MAAO,EAAGC,KAAM,WAAa,GAAW,EAAPJ,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,IAAOK,KAAM,GAAIC,IAAK,IAChG,OAAOL,EAAI,CAAEM,KAAMC,EAAK,GAAIC,MAASD,EAAK,GAAIE,OAAUF,EAAK,IAAwB,mBAAXG,SAA0BV,EAAEU,OAAOC,UAAY,WAAa,OAAOC,OAAUZ,EACvJ,SAASO,EAAKM,GAAK,OAAO,SAAUC,GAAK,OACzC,SAAcC,GACV,GAAIlB,EAAG,MAAM,IAAImB,UAAU,mCAC3B,KAAOf,GAAG,IACN,GAAIJ,EAAI,EAAGC,IAAMC,EAAY,EAARgB,EAAG,GAASjB,EAAU,OAAIiB,EAAG,GAAKjB,EAAS,SAAOC,EAAID,EAAU,SAAMC,EAAEkB,KAAKnB,GAAI,GAAKA,EAAEQ,SAAWP,EAAIA,EAAEkB,KAAKnB,EAAGiB,EAAG,KAAKG,KAAM,OAAOnB,EAE3J,OADID,EAAI,EAAGC,IAAGgB,EAAK,CAAS,EAARA,EAAG,GAAQhB,EAAEoB,QACzBJ,EAAG,IACP,KAAK,EAAG,KAAK,EAAGhB,EAAIgB,EAAI,MACxB,KAAK,EAAc,OAAXd,EAAEC,QAAgB,CAAEiB,MAAOJ,EAAG,GAAIG,MAAM,GAChD,KAAK,EAAGjB,EAAEC,QAASJ,EAAIiB,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKd,EAAEI,IAAIe,MAAOnB,EAAEG,KAAKgB,MAAO,SACxC,QACI,KAAMrB,EAAIE,EAAEG,MAAML,EAAIA,EAAEsB,OAAS,GAAKtB,EAAEA,EAAEsB,OAAS,KAAkB,IAAVN,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEd,EAAI,EAAG,SACjG,GAAc,IAAVc,EAAG,MAAchB,GAAMgB,EAAG,GAAKhB,EAAE,IAAMgB,EAAG,GAAKhB,EAAE,IAAM,CAAEE,EAAEC,MAAQa,EAAG,GAAI,MAC9E,GAAc,IAAVA,EAAG,IAAYd,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIA,EAAIgB,EAAI,MAC7D,GAAIhB,GAAKE,EAAEC,MAAQH,EAAE,GAAI,CAAEE,EAAEC,MAAQH,EAAE,GAAIE,EAAEI,IAAIiB,KAAKP,GAAK,MACvDhB,EAAE,IAAIE,EAAEI,IAAIe,MAChBnB,EAAEG,KAAKgB,MAAO,SAEtBL,EAAKnB,EAAKqB,KAAKtB,EAASM,GAC1B,MAAOsB,GAAKR,EAAK,CAAC,EAAGQ,GAAIzB,EAAI,UAAeD,EAAIE,EAAI,EACtD,GAAY,EAARgB,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAEI,MAAOJ,EAAG,GAAKA,EAAG,QAAK,EAAQG,MAAM,GArB9BM,CAAK,CAACX,EAAGC,MAyBhCW,OAAOC,gBAwBpBC,EAAOC,EAAGf,GACtB,IAAIgB,EAAsB,mBAAXnB,QAAyBkB,EAAElB,OAAOC,UACjD,IAAKkB,EAAG,OAAOD,EACf,IAAmBE,EAAYP,EAA3BQ,EAAIF,EAAEZ,KAAKW,GAAOI,EAAK,GAC3B,IACI,WAAc,IAANnB,GAAgBA,KAAM,MAAQiB,EAAIC,EAAEzB,QAAQY,MAAMc,EAAGV,KAAKQ,EAAEX,OAExE,MAAOc,GAASV,EAAI,CAAEU,MAAOA,WAEzB,IACQH,IAAMA,EAAEZ,OAASW,EAAIE,EAAU,SAAIF,EAAEZ,KAAKc,WAExC,GAAIR,EAAG,MAAMA,EAAEU,OAE7B,OAAOD,WAGKE,IACZ,IAAK,IAAIF,EAAK,GAAID,EAAI,EAAGA,EAAII,UAAUd,OAAQU,IAC3CC,EAAKA,EAAGI,OAAOT,EAAOQ,UAAUJ,KACpC,OAAOC,EA8CcP,OAAOC,aC5L9B,SAA4BP,GAAAP,KAAAO,MAAAA,gBAG9B,SAAAkB,IAGUzB,KAAA0B,KAAO,SAEfb,OAAAc,eAAIF,EAAAG,UAAA,OAAI,KAAR,WACE,OAAO5B,KAAK6B,uCAEdhB,OAAAc,eAAIF,EAAAG,UAAA,OAAI,KAAR,WACE,OAAO5B,KAAK8B,sCAEdjB,OAAAc,eAAIF,EAAAG,UAAA,SAAM,KAAV,WACE,OAAO5B,KAAK0B,sCAGND,EAAAG,UAAAG,OAAA,SACNxB,EACAyB,EACAC,GAEA,IAAKD,EAAc,OAAOhC,KAAKkC,QAAQ3B,GAEvC,IAAK0B,EAAU,OAAOjC,KAAKmC,QAAQ5B,GAEnC,IAAM6B,EAAO,IAAIC,EAAS9B,GAQ1B,OAPA6B,EAAKE,SAAWN,EAChBA,EAAatC,KAAO0C,EACpBA,EAAK1C,KAAOuC,EACZA,EAASK,SAAWF,EAEpBpC,KAAK0B,OAEEU,GAGDX,EAAAG,UAAAW,WAAA,SACNC,EACAR,EACAC,GAEA,IAAKO,EAAO/B,OAAQ,MAAO,GAE3B,IAAKuB,EAAc,OAAOhC,KAAKyC,YAAYD,GAE3C,IAAKP,EAAU,OAAOjC,KAAK0C,YAAYF,GAEvC,IAAMG,EAAO,IAAIlB,EASjB,OARAkB,EAAKD,YAAYF,GACjBG,EAAKd,MAAOS,SAAWN,EACvBA,EAAatC,KAAOiD,EAAKd,MACzBc,EAAKb,KAAMpC,KAAOuC,EAClBA,EAASK,SAAWK,EAAKb,KAEzB9B,KAAK0B,MAAQc,EAAO/B,OAEbkC,EAAKC,eAGNnB,EAAAG,UAAAiB,OAAA,SAAOT,GACb,OAAKA,EAAKE,SAELF,EAAK1C,MAEV0C,EAAKE,SAAS5C,KAAO0C,EAAK1C,KAC1B0C,EAAK1C,KAAK4C,SAAWF,EAAKE,SAE1BtC,KAAK0B,OAEEU,GAPgBpC,KAAK8C,WAFD9C,KAAK+C,YAYlCtB,EAAAG,UAAAoB,IAAA,SAAIzC,GAAJ,IAAA0C,EAAAjD,KACE,MAAO,CACLkD,MAAO,qBAACC,EAAA,GAAAC,EAAA,EAAAA,EAAA7B,UAAAd,OAAA2C,IAAAD,EAAAC,GAAA7B,UAAA6B,GACN,OAAAC,EAAAJ,EAAKK,UAASjD,KAAIkD,MAAAF,EAAA/B,EAAA,CAAC2B,EAAM1C,GAAU4C,KACrCK,OAAQ,qBAACL,EAAA,GAAAC,EAAA,EAAAA,EAAA7B,UAAAd,OAAA2C,IAAAD,EAAAC,GAAA7B,UAAA6B,GACP,OAAAC,EAAAJ,EAAKQ,WAAUpD,KAAIkD,MAAAF,EAAA/B,EAAA,CAAC2B,EAAM1C,GAAU4C,KACtCO,QAAS,SAACC,GAAqB,OAAAV,EAAKW,WAAWrD,EAAOoD,IACtDE,KAAM,WAAM,OAAAZ,EAAKf,QAAQ3B,IACzBuD,KAAM,WAAM,OAAAb,EAAKd,QAAQ5B,MAI7BkB,EAAAG,UAAAmC,QAAA,SAAQvB,GAAR,IAAAS,EAAAjD,KACE,MAAO,CACLkD,MAAO,qBAACC,EAAA,GAAAC,EAAA,EAAAA,EAAA7B,UAAAd,OAAA2C,IAAAD,EAAAC,GAAA7B,UAAA6B,GACN,OAAAC,EAAAJ,EAAKe,cAAa3D,KAAIkD,MAAAF,EAAA/B,EAAA,CAAC2B,EAAMT,GAAWW,KAC1CK,OAAQ,qBAACL,EAAA,GAAAC,EAAA,EAAAA,EAAA7B,UAAAd,OAAA2C,IAAAD,EAAAC,GAAA7B,UAAA6B,GACP,OAAAC,EAAAJ,EAAKgB,eAAc5D,KAAIkD,MAAAF,EAAA/B,EAAA,CAAC2B,EAAMT,GAAWW,KAC3CO,QAAS,SAACC,GAAqB,OAAAV,EAAKiB,eAAe1B,EAAQmB,IAC3DE,KAAM,WAAM,OAAAZ,EAAKR,YAAYD,IAC7BsB,KAAM,WAAM,OAAAb,EAAKP,YAAYF,MAMjCf,EAAAG,UAAA0B,SAAA,SAAS/C,EAAU4D,EAAoBC,QAAA,IAAAA,IAAAA,EAAAC,GACrC,IAAM/B,EAAWtC,KAAKsE,MAAK,SAAAlC,GAAQ,OAAAgC,EAAUhC,EAAK7B,MAAO4D,MAEzD,OAAO7B,EAAWtC,KAAK+B,OAAOxB,EAAO+B,EAAUA,EAAS5C,MAAQM,KAAKmC,QAAQ5B,IAK/EkB,EAAAG,UAAA6B,UAAA,SAAUlD,EAAUgE,EAAgBH,QAAA,IAAAA,IAAAA,EAAAC,GAClC,IAAM3E,EAAOM,KAAKsE,MAAK,SAAAlC,GAAQ,OAAAgC,EAAUhC,EAAK7B,MAAOgE,MAErD,OAAO7E,EAAOM,KAAK+B,OAAOxB,EAAOb,EAAK4C,SAAU5C,GAAQM,KAAKkC,QAAQ3B,IAGvEkB,EAAAG,UAAAgC,WAAA,SAAWrD,EAAUoD,GACnB,GAAIA,EAAW,EAAGA,GAAY3D,KAAK0B,UAC9B,GAAIiC,GAAY3D,KAAK0B,KAAM,OAAO1B,KAAKmC,QAAQ5B,GAEpD,GAAIoD,GAAY,EAAG,OAAO3D,KAAKkC,QAAQ3B,GAEvC,IAAMb,EAAOM,KAAKwE,IAAIb,GAEtB,OAAO3D,KAAK+B,OAAOxB,EAAOb,EAAK4C,SAAU5C,IAG3C+B,EAAAG,UAAAM,QAAA,SAAQ3B,GACN,IAAM6B,EAAO,IAAIC,EAAS9B,GAU1B,OARA6B,EAAK1C,KAAOM,KAAK6B,MAEb7B,KAAK6B,MAAO7B,KAAK6B,MAAMS,SAAWF,EACjCpC,KAAK8B,KAAOM,EAEjBpC,KAAK6B,MAAQO,EACbpC,KAAK0B,OAEEU,GAGTX,EAAAG,UAAAO,QAAA,SAAQ5B,GACN,IAAM6B,EAAO,IAAIC,EAAS9B,GAa1B,OAXIP,KAAK6B,OACPO,EAAKE,SAAWtC,KAAK8B,KACrB9B,KAAK8B,KAAMpC,KAAO0C,EAClBpC,KAAK8B,KAAOM,IAEZpC,KAAK6B,MAAQO,EACbpC,KAAK8B,KAAOM,GAGdpC,KAAK0B,OAEEU,GAKTX,EAAAG,UAAAoC,aAAA,SACExB,EACA2B,EACAC,QAAA,IAAAA,IAAAA,EAAAC,GAEA,IAAM/B,EAAWtC,KAAKsE,MAAK,SAAAlC,GAAQ,OAAAgC,EAAUhC,EAAK7B,MAAO4D,MAEzD,OAAO7B,EAAWtC,KAAKuC,WAAWC,EAAQF,EAAUA,EAAS5C,MAAQM,KAAK0C,YAAYF,IAKxFf,EAAAG,UAAAqC,cAAA,SACEzB,EACA+B,EACAH,QAAA,IAAAA,IAAAA,EAAAC,GAEA,IAAM3E,EAAOM,KAAKsE,MAAK,SAAAlC,GAAQ,OAAAgC,EAAUhC,EAAK7B,MAAOgE,MAErD,OAAO7E,EAAOM,KAAKuC,WAAWC,EAAQ9C,EAAK4C,SAAU5C,GAAQM,KAAKyC,YAAYD,IAGhFf,EAAAG,UAAAsC,eAAA,SAAe1B,EAAamB,GAG1B,GAFIA,EAAW,IAAGA,GAAY3D,KAAK0B,MAE/BiC,GAAY,EAAG,OAAO3D,KAAKyC,YAAYD,GAE3C,GAAImB,GAAY3D,KAAK0B,KAAM,OAAO1B,KAAK0C,YAAYF,GAEnD,IAAM9C,EAAOM,KAAKwE,IAAIb,GAEtB,OAAO3D,KAAKuC,WAAWC,EAAQ9C,EAAK4C,SAAU5C,IAGhD+B,EAAAG,UAAAa,YAAA,SAAYD,GAAZ,IAAAS,EAAAjD,KACE,OAAOwC,EAAOiC,aAA2B,SAACC,EAAOnE,GAE/C,OADAmE,EAAMC,QAAQ1B,EAAKf,QAAQ3B,IACpBmE,IACN,KAGLjD,EAAAG,UAAAc,YAAA,SAAYF,GAAZ,IAAAS,EAAAjD,KACE,OAAOwC,EAAOoC,KAAI,SAAArE,GAAS,OAAA0C,EAAKd,QAAQ5B,OAG1CkB,EAAAG,UAAAiD,KAAA,WAAA,IAAA5B,EAAAjD,KACE,MAAO,CACL0D,QAAS,SAACC,GAAqB,OAAAV,EAAK6B,YAAYnB,IAChDoB,QAAS,eAAC,IAAA5B,EAAA,GAAAC,EAAA,EAAAA,EAAA7B,UAAAd,OAAA2C,IAAAD,EAAAC,GAAA7B,UAAA6B,GACR,OAAAH,EAAK+B,YAAYzB,MAAMN,EAAME,IAC/B8B,WAAY,eAAC,IAAA9B,EAAA,GAAAC,EAAA,EAAAA,EAAA7B,UAAAd,OAAA2C,IAAAD,EAAAC,GAAA7B,UAAA6B,GACX,OAAAH,EAAKiC,eAAe3B,MAAMN,EAAME,IAClCU,KAAM,WAAM,OAAAZ,EAAKF,YACjBe,KAAM,WAAM,OAAAb,EAAKH,cAIrBrB,EAAAG,UAAAuD,SAAA,SAASC,GAAT,IAAAnC,EAAAjD,KACE,MAAO,CACL0D,QAAS,SAACC,GAAqB,OAAAV,EAAKoC,gBAAgBD,EAAOzB,IAC3DE,KAAM,WAAM,OAAAZ,EAAKqC,aAAaF,IAC9BtB,KAAM,WAAM,OAAAb,EAAKsC,aAAaH,MAIlC3D,EAAAG,UAAAkD,YAAA,SAAYnB,GACNA,EAAW,IAAGA,GAAY3D,KAAK0B,MAEnC,IAAM8D,EAAUxF,KAAKwE,IAAIb,GAEzB,OAAO6B,EAAUxF,KAAK6C,OAAO2C,QAAWC,GAK1ChE,EAAAG,UAAAoD,YAAA,SAAYzE,EAAY6D,QAAA,IAAAA,IAAAA,EAAAC,GACtB,IAAMV,EAAW3D,KAAK0F,WAAU,SAAAtD,GAAQ,OAAAgC,EAAUhC,EAAK7B,MAAOA,MAE9D,OAAOoD,EAAW,OAAI8B,EAAYzF,KAAK8E,YAAYnB,IAKrDlC,EAAAG,UAAAsD,eAAA,SAAe3E,EAAY6D,QAAA,IAAAA,IAAAA,EAAAC,GAGzB,IAFA,IAAMsB,EAAyB,GAEtBH,EAAUxF,KAAK6B,MAAO8B,EAAW,EAAG6B,EAAS7B,IAAY6B,EAAUA,EAAQ9F,KAC9E0E,EAAUoB,EAAQjF,MAAOA,IAC3BoF,EAAQjF,KAAKV,KAAK8E,YAAYnB,EAAWgC,EAAQlF,SAIrD,OAAOkF,GAGTlE,EAAAG,UAAAmB,SAAA,WACE,IAAMc,EAAO7D,KAAK6B,MAElB,GAAIgC,EAQF,OAPA7D,KAAK6B,MAAQgC,EAAKnE,KAEdM,KAAK6B,MAAO7B,KAAK6B,MAAMS,cAAWmD,EACjCzF,KAAK8B,UAAO2D,EAEjBzF,KAAK0B,OAEEmC,GAMXpC,EAAAG,UAAAkB,SAAA,WACE,IAAMgB,EAAO9D,KAAK8B,KAElB,GAAIgC,EAQF,OAPA9D,KAAK8B,KAAOgC,EAAKxB,SAEbtC,KAAK8B,KAAM9B,KAAK8B,KAAKpC,UAAO+F,EAC3BzF,KAAK6B,WAAQ4D,EAElBzF,KAAK0B,OAEEoC,GAMXrC,EAAAG,UAAAyD,gBAAA,SAAgBD,EAAezB,GAC7B,GAAIyB,GAAS,EAAG,MAAO,GAEvB,GAAIzB,EAAW,EAAGA,EAAWiC,KAAKC,IAAIlC,EAAW3D,KAAK0B,KAAM,QACvD,GAAIiC,GAAY3D,KAAK0B,KAAM,MAAO,GAEvC0D,EAAQQ,KAAKE,IAAIV,EAAOpF,KAAK0B,KAAOiC,GAIpC,IAFA,IAAMgC,EAAyB,GAExBP,KAAS,CACd,IAAMI,EAAUxF,KAAKwE,IAAIb,GACzBgC,EAAQjF,KAAKV,KAAK6C,OAAO2C,IAG3B,OAAOG,GAGTlE,EAAAG,UAAA0D,aAAA,SAAaF,GACX,GAAIA,GAAS,EAAG,MAAO,GAEvBA,EAAQQ,KAAKE,IAAIV,EAAOpF,KAAK0B,MAI7B,IAFA,IAAMiE,EAAyB,GAExBP,KAASO,EAAQhB,QAAQ3E,KAAK+C,YAErC,OAAO4C,GAGTlE,EAAAG,UAAA2D,aAAA,SAAaH,GACX,GAAIA,GAAS,EAAG,MAAO,GAEvBA,EAAQQ,KAAKE,IAAIV,EAAOpF,KAAK0B,MAI7B,IAFA,IAAMiE,EAAyB,GAExBP,KAASO,EAAQjF,KAAKV,KAAK8C,YAElC,OAAO6C,GAGTlE,EAAAG,UAAA0C,KAAA,SAAKyB,GACH,IAAK,IAAIP,EAAUxF,KAAK6B,MAAO8B,EAAW,EAAG6B,EAAS7B,IAAY6B,EAAUA,EAAQ9F,KAClF,GAAIqG,EAAUP,EAAS7B,EAAU3D,MAAO,OAAOwF,GAMnD/D,EAAAG,UAAA8D,UAAA,SAAUK,GACR,IAAK,IAAIP,EAAUxF,KAAK6B,MAAO8B,EAAW,EAAG6B,EAAS7B,IAAY6B,EAAUA,EAAQ9F,KAClF,GAAIqG,EAAUP,EAAS7B,EAAU3D,MAAO,OAAO2D,EAGjD,OAAQ,GAGVlC,EAAAG,UAAAoE,QAAA,SAAqBC,GACnB,IAAK,IAAI7D,EAAOpC,KAAK6B,MAAO8B,EAAW,EAAGvB,EAAMuB,IAAYvB,EAAOA,EAAK1C,KACtEuG,EAAW7D,EAAMuB,EAAU3D,OAI/ByB,EAAAG,UAAA4C,IAAA,SAAIb,GACF,OAAO3D,KAAKsE,MAAK,SAACjF,EAAG6G,GAAU,OAAAvC,IAAauC,MAK9CzE,EAAAG,UAAAuE,QAAA,SAAQ5F,EAAY6D,GAClB,YADkB,IAAAA,IAAAA,EAAAC,GACXrE,KAAK0F,WAAU,SAAAtD,GAAQ,OAAAgC,EAAUhC,EAAK7B,MAAOA,OAGtDkB,EAAAG,UAAAwE,QAAA,WACE,IAAMC,EAAQ,IAAIC,MAAMtG,KAAK0B,MAI7B,OAFA1B,KAAKgG,SAAQ,SAAC5D,EAAM8D,GAAU,OAACG,EAAMH,GAAU9D,EAAK7B,SAE7C8F,GAGT5E,EAAAG,UAAAgB,YAAA,WACE,IAAMyD,EAAQ,IAAIC,MAAMtG,KAAK0B,MAI7B,OAFA1B,KAAKgG,SAAQ,SAAC5D,EAAM8D,GAAU,OAACG,EAAMH,GAAU9D,KAExCiE,GAGT5E,EAAAG,UAAA2E,SAAA,SAASC,GACP,YADO,IAAAA,IAAAA,EAA4BC,KAAKC,WACjC1G,KAAKoG,UACTxB,KAAI,SAAArE,GAAS,OAAAiG,EAASjG,MACtBoG,KAAK,UAITlF,EAAAG,UAAC9B,OAAOC,UAAT,mEACWqC,EAAOpC,KAAK6B,MAAkB,0BAAGO,EACxC,CAAA,EAAMA,EAAK7B,OADiC,CAAA,EAAA,UAC5C8C,EAAA9D,+BAD0D6C,EAAOA,EAAK1C","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/* tslint:disable:no-non-null-assertion */\n\nimport compare from 'just-compare';\n\nexport class ListNode {\n next: ListNode | undefined;\n previous: ListNode | undefined;\n constructor(public readonly value: T) {}\n}\n\nexport class LinkedList {\n private first: ListNode | undefined;\n private last: ListNode | undefined;\n private size = 0;\n\n get head(): ListNode | undefined {\n return this.first;\n }\n get tail(): ListNode | undefined {\n return this.last;\n }\n get length(): number {\n return this.size;\n }\n\n private attach(\n value: T,\n previousNode: ListNode | undefined,\n nextNode: ListNode | undefined,\n ): ListNode {\n if (!previousNode) return this.addHead(value);\n\n if (!nextNode) return this.addTail(value);\n\n const node = new ListNode(value);\n node.previous = previousNode;\n previousNode.next = node;\n node.next = nextNode;\n nextNode.previous = node;\n\n this.size++;\n\n return node;\n }\n\n private attachMany(\n values: T[],\n previousNode: ListNode | undefined,\n nextNode: ListNode | undefined,\n ): ListNode[] {\n if (!values.length) return [];\n\n if (!previousNode) return this.addManyHead(values);\n\n if (!nextNode) return this.addManyTail(values);\n\n const list = new LinkedList();\n list.addManyTail(values);\n list.first!.previous = previousNode;\n previousNode.next = list.first;\n list.last!.next = nextNode;\n nextNode.previous = list.last;\n\n this.size += values.length;\n\n return list.toNodeArray();\n }\n\n private detach(node: ListNode) {\n if (!node.previous) return this.dropHead();\n\n if (!node.next) return this.dropTail();\n\n node.previous.next = node.next;\n node.next.previous = node.previous;\n\n this.size--;\n\n return node;\n }\n\n add(value: T) {\n return {\n after: (...params: [T] | [any, ListComparisonFn]) =>\n this.addAfter.call(this, value, ...params),\n before: (...params: [T] | [any, ListComparisonFn]) =>\n this.addBefore.call(this, value, ...params),\n byIndex: (position: number) => this.addByIndex(value, position),\n head: () => this.addHead(value),\n tail: () => this.addTail(value),\n };\n }\n\n addMany(values: T[]) {\n return {\n after: (...params: [T] | [any, ListComparisonFn]) =>\n this.addManyAfter.call(this, values, ...params),\n before: (...params: [T] | [any, ListComparisonFn]) =>\n this.addManyBefore.call(this, values, ...params),\n byIndex: (position: number) => this.addManyByIndex(values, position),\n head: () => this.addManyHead(values),\n tail: () => this.addManyTail(values),\n };\n }\n\n addAfter(value: T, previousValue: T): ListNode;\n addAfter(value: T, previousValue: any, compareFn: ListComparisonFn): ListNode;\n addAfter(value: T, previousValue: any, compareFn: ListComparisonFn = compare): ListNode {\n const previous = this.find(node => compareFn(node.value, previousValue));\n\n return previous ? this.attach(value, previous, previous.next) : this.addTail(value);\n }\n\n addBefore(value: T, nextValue: T): ListNode;\n addBefore(value: T, nextValue: any, compareFn: ListComparisonFn): ListNode;\n addBefore(value: T, nextValue: any, compareFn: ListComparisonFn = compare): ListNode {\n const next = this.find(node => compareFn(node.value, nextValue));\n\n return next ? this.attach(value, next.previous, next) : this.addHead(value);\n }\n\n addByIndex(value: T, position: number): ListNode {\n if (position < 0) position += this.size;\n else if (position >= this.size) return this.addTail(value);\n\n if (position <= 0) return this.addHead(value);\n\n const next = this.get(position)!;\n\n return this.attach(value, next.previous, next);\n }\n\n addHead(value: T): ListNode {\n const node = new ListNode(value);\n\n node.next = this.first;\n\n if (this.first) this.first.previous = node;\n else this.last = node;\n\n this.first = node;\n this.size++;\n\n return node;\n }\n\n addTail(value: T): ListNode {\n const node = new ListNode(value);\n\n if (this.first) {\n node.previous = this.last;\n this.last!.next = node;\n this.last = node;\n } else {\n this.first = node;\n this.last = node;\n }\n\n this.size++;\n\n return node;\n }\n\n addManyAfter(values: T[], previousValue: T): ListNode[];\n addManyAfter(values: T[], previousValue: any, compareFn: ListComparisonFn): ListNode[];\n addManyAfter(\n values: T[],\n previousValue: any,\n compareFn: ListComparisonFn = compare,\n ): ListNode[] {\n const previous = this.find(node => compareFn(node.value, previousValue));\n\n return previous ? this.attachMany(values, previous, previous.next) : this.addManyTail(values);\n }\n\n addManyBefore(values: T[], nextValue: T): ListNode[];\n addManyBefore(values: T[], nextValue: any, compareFn: ListComparisonFn): ListNode[];\n addManyBefore(\n values: T[],\n nextValue: any,\n compareFn: ListComparisonFn = compare,\n ): ListNode[] {\n const next = this.find(node => compareFn(node.value, nextValue));\n\n return next ? this.attachMany(values, next.previous, next) : this.addManyHead(values);\n }\n\n addManyByIndex(values: T[], position: number): ListNode[] {\n if (position < 0) position += this.size;\n\n if (position <= 0) return this.addManyHead(values);\n\n if (position >= this.size) return this.addManyTail(values);\n\n const next = this.get(position)!;\n\n return this.attachMany(values, next.previous, next);\n }\n\n addManyHead(values: T[]): ListNode[] {\n return values.reduceRight[]>((nodes, value) => {\n nodes.unshift(this.addHead(value));\n return nodes;\n }, []);\n }\n\n addManyTail(values: T[]): ListNode[] {\n return values.map(value => this.addTail(value));\n }\n\n drop() {\n return {\n byIndex: (position: number) => this.dropByIndex(position),\n byValue: (...params: [T] | [any, ListComparisonFn]) =>\n this.dropByValue.apply(this, params),\n byValueAll: (...params: [T] | [any, ListComparisonFn]) =>\n this.dropByValueAll.apply(this, params),\n head: () => this.dropHead(),\n tail: () => this.dropTail(),\n };\n }\n\n dropMany(count: number) {\n return {\n byIndex: (position: number) => this.dropManyByIndex(count, position),\n head: () => this.dropManyHead(count),\n tail: () => this.dropManyTail(count),\n };\n }\n\n dropByIndex(position: number): ListNode | undefined {\n if (position < 0) position += this.size;\n\n const current = this.get(position);\n\n return current ? this.detach(current) : undefined;\n }\n\n dropByValue(value: T): ListNode | undefined;\n dropByValue(value: any, compareFn: ListComparisonFn): ListNode | undefined;\n dropByValue(value: any, compareFn: ListComparisonFn = compare): ListNode | undefined {\n const position = this.findIndex(node => compareFn(node.value, value));\n\n return position < 0 ? undefined : this.dropByIndex(position);\n }\n\n dropByValueAll(value: T): ListNode[];\n dropByValueAll(value: any, compareFn: ListComparisonFn): ListNode[];\n dropByValueAll(value: any, compareFn: ListComparisonFn = compare): ListNode[] {\n const dropped: ListNode[] = [];\n\n for (let current = this.first, position = 0; current; position++, current = current.next) {\n if (compareFn(current.value, value)) {\n dropped.push(this.dropByIndex(position - dropped.length)!);\n }\n }\n\n return dropped;\n }\n\n dropHead(): ListNode | undefined {\n const head = this.first;\n\n if (head) {\n this.first = head.next;\n\n if (this.first) this.first.previous = undefined;\n else this.last = undefined;\n\n this.size--;\n\n return head;\n }\n\n return undefined;\n }\n\n dropTail(): ListNode | undefined {\n const tail = this.last;\n\n if (tail) {\n this.last = tail.previous;\n\n if (this.last) this.last.next = undefined;\n else this.first = undefined;\n\n this.size--;\n\n return tail;\n }\n\n return undefined;\n }\n\n dropManyByIndex(count: number, position: number): ListNode[] {\n if (count <= 0) return [];\n\n if (position < 0) position = Math.max(position + this.size, 0);\n else if (position >= this.size) return [];\n\n count = Math.min(count, this.size - position);\n\n const dropped: ListNode[] = [];\n\n while (count--) {\n const current = this.get(position);\n dropped.push(this.detach(current!)!);\n }\n\n return dropped;\n }\n\n dropManyHead(count: Exclude): ListNode[] {\n if (count <= 0) return [];\n\n count = Math.min(count, this.size);\n\n const dropped: ListNode[] = [];\n\n while (count--) dropped.unshift(this.dropHead()!);\n\n return dropped;\n }\n\n dropManyTail(count: Exclude): ListNode[] {\n if (count <= 0) return [];\n\n count = Math.min(count, this.size);\n\n const dropped: ListNode[] = [];\n\n while (count--) dropped.push(this.dropTail()!);\n\n return dropped;\n }\n\n find(predicate: ListIteratorFn): ListNode | undefined {\n for (let current = this.first, position = 0; current; position++, current = current.next) {\n if (predicate(current, position, this)) return current;\n }\n\n return undefined;\n }\n\n findIndex(predicate: ListIteratorFn): number {\n for (let current = this.first, position = 0; current; position++, current = current.next) {\n if (predicate(current, position, this)) return position;\n }\n\n return -1;\n }\n\n forEach(iteratorFn: ListIteratorFn) {\n for (let node = this.first, position = 0; node; position++, node = node.next) {\n iteratorFn(node, position, this);\n }\n }\n\n get(position: number): ListNode | undefined {\n return this.find((_, index) => position === index);\n }\n\n indexOf(value: T): number;\n indexOf(value: any, compareFn: ListComparisonFn): number;\n indexOf(value: any, compareFn: ListComparisonFn = compare): number {\n return this.findIndex(node => compareFn(node.value, value));\n }\n\n toArray(): T[] {\n const array = new Array(this.size);\n\n this.forEach((node, index) => (array[index!] = node.value));\n\n return array;\n }\n\n toNodeArray(): ListNode[] {\n const array = new Array(this.size);\n\n this.forEach((node, index) => (array[index!] = node));\n\n return array;\n }\n\n toString(mapperFn: ListMapperFn = JSON.stringify): string {\n return this.toArray()\n .map(value => mapperFn(value))\n .join(' <-> ');\n }\n\n // Cannot use Generator type because of ng-packagr\n *[Symbol.iterator](): any {\n for (let node = this.first, position = 0; node; position++, node = node.next) {\n yield node.value;\n }\n }\n}\n\nexport type ListMapperFn = (value: T) => any;\n\nexport type ListComparisonFn = (value1: T, value2: any) => boolean;\n\nexport type ListIteratorFn = (\n node: ListNode,\n index?: number,\n list?: LinkedList,\n) => R;\n"]} \ No newline at end of file diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/bootstrap/css/bootstrap-rtl.css b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/bootstrap/css/bootstrap-rtl.css new file mode 100644 index 0000000000..35ddb6a220 --- /dev/null +++ b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/bootstrap/css/bootstrap-rtl.css @@ -0,0 +1,11392 @@ +/*! + * Bootstrap v4.4.1 (https://getbootstrap.com/) + * Copyright 2011-2019 The Bootstrap Authors + * Copyright 2011-2019 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +:root { + --blue: #007bff; + --indigo: #6610f2; + --purple: #6f42c1; + --pink: #e83e8c; + --red: #dc3545; + --orange: #fd7e14; + --yellow: #ffc107; + --green: #28a745; + --teal: #20c997; + --cyan: #17a2b8; + --white: #fff; + --gray: #6c757d; + --gray-dark: #343a40; + --primary: #007bff; + --secondary: #6c757d; + --success: #28a745; + --info: #17a2b8; + --warning: #ffc107; + --danger: #dc3545; + --light: #f8f9fa; + --dark: #343a40; + --breakpoint-xs: 0; + --breakpoint-sm: 576px; + --breakpoint-md: 768px; + --breakpoint-lg: 992px; + --breakpoint-xl: 1200px; + --font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; +} + +*, +*::before, +*::after { + box-sizing: border-box; +} + +html { + font-family: sans-serif; + line-height: 1.15; + -webkit-text-size-adjust: 100%; + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); +} + +article, aside, figcaption, figure, footer, header, hgroup, main, nav, section { + display: block; +} + +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #212529; + text-align: left; + background-color: #fff; +} + +[tabindex="-1"]:focus:not(:focus-visible) { + outline: 0 !important; +} + +hr { + box-sizing: content-box; + height: 0; + overflow: visible; +} + +h1, h2, h3, h4, h5, h6 { + margin-top: 0; + margin-bottom: 0.5rem; +} + +p { + margin-top: 0; + margin-bottom: 1rem; +} + +abbr[title], +abbr[data-original-title] { + text-decoration: underline; + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + cursor: help; + border-bottom: 0; + -webkit-text-decoration-skip-ink: none; + text-decoration-skip-ink: none; +} + +address { + margin-bottom: 1rem; + font-style: normal; + line-height: inherit; +} + +ol, +ul, +dl { + margin-top: 0; + margin-bottom: 1rem; +} + +ol ol, +ul ul, +ol ul, +ul ol { + margin-bottom: 0; +} + +dt { + font-weight: 700; +} + +dd { + margin-bottom: .5rem; + margin-left: 0; +} + +blockquote { + margin: 0 0 1rem; +} + +b, +strong { + font-weight: bolder; +} + +small { + font-size: 80%; +} + +sub, +sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; +} + +sub { + bottom: -.25em; +} + +sup { + top: -.5em; +} + +a { + color: #007bff; + text-decoration: none; + background-color: transparent; +} + +a:hover { + color: #0056b3; + text-decoration: underline; +} + +a:not([href]) { + color: inherit; + text-decoration: none; +} + +a:not([href]):hover { + color: inherit; + text-decoration: none; +} + +pre, +code, +kbd, +samp { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; + font-size: 1em; +} + +pre { + margin-top: 0; + margin-bottom: 1rem; + overflow: auto; +} + +figure { + margin: 0 0 1rem; +} + +img { + vertical-align: middle; + border-style: none; +} + +svg { + overflow: hidden; + vertical-align: middle; +} + +table { + border-collapse: collapse; +} + +caption { + padding-top: 0.75rem; + padding-bottom: 0.75rem; + color: #6c757d; + text-align: left; + caption-side: bottom; +} + +th { + text-align: inherit; +} + +label { + display: inline-block; + margin-bottom: 0.5rem; +} + +button { + border-radius: 0; +} + +button:focus { + outline: 1px dotted; + outline: 5px auto -webkit-focus-ring-color; +} + +input, +button, +select, +optgroup, +textarea { + margin: 0; + font-family: inherit; + font-size: inherit; + line-height: inherit; +} + +button, +input { + overflow: visible; +} + +button, +select { + text-transform: none; +} + +select { + word-wrap: normal; +} + +button, +[type="button"], +[type="reset"], +[type="submit"] { + -webkit-appearance: button; +} + +button:not(:disabled), +[type="button"]:not(:disabled), +[type="reset"]:not(:disabled), +[type="submit"]:not(:disabled) { + cursor: pointer; +} + +button::-moz-focus-inner, +[type="button"]::-moz-focus-inner, +[type="reset"]::-moz-focus-inner, +[type="submit"]::-moz-focus-inner { + padding: 0; + border-style: none; +} + +input[type="radio"], +input[type="checkbox"] { + box-sizing: border-box; + padding: 0; +} + +input[type="date"], +input[type="time"], +input[type="datetime-local"], +input[type="month"] { + -webkit-appearance: listbox; +} + +textarea { + overflow: auto; + resize: vertical; +} + +fieldset { + min-width: 0; + padding: 0; + margin: 0; + border: 0; +} + +legend { + display: block; + width: 100%; + max-width: 100%; + padding: 0; + margin-bottom: .5rem; + font-size: 1.5rem; + line-height: inherit; + color: inherit; + white-space: normal; +} + +progress { + vertical-align: baseline; +} + +[type="number"]::-webkit-inner-spin-button, +[type="number"]::-webkit-outer-spin-button { + height: auto; +} + +[type="search"] { + outline-offset: -2px; + -webkit-appearance: none; +} + +[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +::-webkit-file-upload-button { + font: inherit; + -webkit-appearance: button; +} + +output { + display: inline-block; +} + +summary { + display: list-item; + cursor: pointer; +} + +template { + display: none; +} + +[hidden] { + display: none !important; +} + +h1, h2, h3, h4, h5, h6, +.h1, .h2, .h3, .h4, .h5, .h6 { + margin-bottom: 0.5rem; + font-weight: 500; + line-height: 1.2; +} + +h1, .h1 { + font-size: 2.5rem; +} + +h2, .h2 { + font-size: 2rem; +} + +h3, .h3 { + font-size: 1.75rem; +} + +h4, .h4 { + font-size: 1.5rem; +} + +h5, .h5 { + font-size: 1.25rem; +} + +h6, .h6 { + font-size: 1rem; +} + +.lead { + font-size: 1.25rem; + font-weight: 300; +} + +.display-1 { + font-size: 6rem; + font-weight: 300; + line-height: 1.2; +} + +.display-2 { + font-size: 5.5rem; + font-weight: 300; + line-height: 1.2; +} + +.display-3 { + font-size: 4.5rem; + font-weight: 300; + line-height: 1.2; +} + +.display-4 { + font-size: 3.5rem; + font-weight: 300; + line-height: 1.2; +} + +hr { + margin-top: 1rem; + margin-bottom: 1rem; + border: 0; + border-top: 1px solid rgba(0, 0, 0, 0.1); +} + +small, +.small { + font-size: 80%; + font-weight: 400; +} + +mark, +.mark { + padding: 0.2em; + background-color: #fcf8e3; +} + +.list-unstyled { + padding-left: 0; + list-style: none; +} + +.list-inline { + padding-left: 0; + list-style: none; +} + +.list-inline-item { + display: inline-block; +} + +.list-inline-item:not(:last-child) { + margin-right: 0.5rem; +} + +.initialism { + font-size: 90%; + text-transform: uppercase; +} + +.blockquote { + margin-bottom: 1rem; + font-size: 1.25rem; +} + +.blockquote-footer { + display: block; + font-size: 80%; + color: #6c757d; +} + +.blockquote-footer::before { + content: "\2014\00A0"; +} + +.img-fluid { + max-width: 100%; + height: auto; +} + +.img-thumbnail { + padding: 0.25rem; + background-color: #fff; + border: 1px solid #dee2e6; + border-radius: 0.25rem; + max-width: 100%; + height: auto; +} + +.figure { + display: inline-block; +} + +.figure-img { + margin-bottom: 0.5rem; + line-height: 1; +} + +.figure-caption { + font-size: 90%; + color: #6c757d; +} + +code { + font-size: 87.5%; + color: #e83e8c; + word-wrap: break-word; +} + +a > code { + color: inherit; +} + +kbd { + padding: 0.2rem 0.4rem; + font-size: 87.5%; + color: #fff; + background-color: #212529; + border-radius: 0.2rem; +} + +kbd kbd { + padding: 0; + font-size: 100%; + font-weight: 700; +} + +pre { + display: block; + font-size: 87.5%; + color: #212529; +} + +pre code { + font-size: inherit; + color: inherit; + word-break: normal; +} + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; +} + +.container { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 576px) { + .container { + max-width: 540px; + } +} + +@media (min-width: 768px) { + .container { + max-width: 720px; + } +} + +@media (min-width: 992px) { + .container { + max-width: 960px; + } +} + +@media (min-width: 1200px) { + .container { + max-width: 1140px; + } +} + +.container-fluid, .container-sm, .container-md, .container-lg, .container-xl { + width: 100%; + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; +} + +@media (min-width: 576px) { + .container, .container-sm { + max-width: 540px; + } +} + +@media (min-width: 768px) { + .container, .container-sm, .container-md { + max-width: 720px; + } +} + +@media (min-width: 992px) { + .container, .container-sm, .container-md, .container-lg { + max-width: 960px; + } +} + +@media (min-width: 1200px) { + .container, .container-sm, .container-md, .container-lg, .container-xl { + max-width: 1140px; + } +} + +.row { + display: flex; + flex-wrap: wrap; + margin-right: -15px; + margin-left: -15px; +} + +.no-gutters { + margin-right: 0; + margin-left: 0; +} + +.no-gutters > .col, +.no-gutters > [class*="col-"] { + padding-right: 0; + padding-left: 0; +} + +.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col, +.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm, +.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md, +.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg, +.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl, +.col-xl-auto { + position: relative; + width: 100%; + padding-right: 15px; + padding-left: 15px; +} + +.col { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; +} + +.row-cols-1 > * { + flex: 0 0 100%; + max-width: 100%; +} + +.row-cols-2 > * { + flex: 0 0 50%; + max-width: 50%; +} + +.row-cols-3 > * { + flex: 0 0 33.333333%; + max-width: 33.333333%; +} + +.row-cols-4 > * { + flex: 0 0 25%; + max-width: 25%; +} + +.row-cols-5 > * { + flex: 0 0 20%; + max-width: 20%; +} + +.row-cols-6 > * { + flex: 0 0 16.666667%; + max-width: 16.666667%; +} + +.col-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; +} + +.col-1 { + flex: 0 0 8.333333%; + max-width: 8.333333%; +} + +.col-2 { + flex: 0 0 16.666667%; + max-width: 16.666667%; +} + +.col-3 { + flex: 0 0 25%; + max-width: 25%; +} + +.col-4 { + flex: 0 0 33.333333%; + max-width: 33.333333%; +} + +.col-5 { + flex: 0 0 41.666667%; + max-width: 41.666667%; +} + +.col-6 { + flex: 0 0 50%; + max-width: 50%; +} + +.col-7 { + flex: 0 0 58.333333%; + max-width: 58.333333%; +} + +.col-8 { + flex: 0 0 66.666667%; + max-width: 66.666667%; +} + +.col-9 { + flex: 0 0 75%; + max-width: 75%; +} + +.col-10 { + flex: 0 0 83.333333%; + max-width: 83.333333%; +} + +.col-11 { + flex: 0 0 91.666667%; + max-width: 91.666667%; +} + +.col-12 { + flex: 0 0 100%; + max-width: 100%; +} + +.order-first { + order: -1; +} + +.order-last { + order: 13; +} + +.order-0 { + order: 0; +} + +.order-1 { + order: 1; +} + +.order-2 { + order: 2; +} + +.order-3 { + order: 3; +} + +.order-4 { + order: 4; +} + +.order-5 { + order: 5; +} + +.order-6 { + order: 6; +} + +.order-7 { + order: 7; +} + +.order-8 { + order: 8; +} + +.order-9 { + order: 9; +} + +.order-10 { + order: 10; +} + +.order-11 { + order: 11; +} + +.order-12 { + order: 12; +} + +.offset-1 { + margin-right: 8.333333%; +} + +.offset-2 { + margin-right: 16.666667%; +} + +.offset-3 { + margin-right: 25%; +} + +.offset-4 { + margin-right: 33.333333%; +} + +.offset-5 { + margin-right: 41.666667%; +} + +.offset-6 { + margin-right: 50%; +} + +.offset-7 { + margin-right: 58.333333%; +} + +.offset-8 { + margin-right: 66.666667%; +} + +.offset-9 { + margin-right: 75%; +} + +.offset-10 { + margin-right: 83.333333%; +} + +.offset-11 { + margin-right: 91.666667%; +} + +@media (min-width: 576px) { + .col-sm { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .row-cols-sm-1 > * { + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-sm-2 > * { + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-sm-3 > * { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .row-cols-sm-4 > * { + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-sm-5 > * { + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-sm-6 > * { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-sm-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-sm-1 { + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-sm-2 { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-sm-3 { + flex: 0 0 25%; + max-width: 25%; + } + .col-sm-4 { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-sm-5 { + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-sm-6 { + flex: 0 0 50%; + max-width: 50%; + } + .col-sm-7 { + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-sm-8 { + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-sm-9 { + flex: 0 0 75%; + max-width: 75%; + } + .col-sm-10 { + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-sm-11 { + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-sm-12 { + flex: 0 0 100%; + max-width: 100%; + } + .order-sm-first { + order: -1; + } + .order-sm-last { + order: 13; + } + .order-sm-0 { + order: 0; + } + .order-sm-1 { + order: 1; + } + .order-sm-2 { + order: 2; + } + .order-sm-3 { + order: 3; + } + .order-sm-4 { + order: 4; + } + .order-sm-5 { + order: 5; + } + .order-sm-6 { + order: 6; + } + .order-sm-7 { + order: 7; + } + .order-sm-8 { + order: 8; + } + .order-sm-9 { + order: 9; + } + .order-sm-10 { + order: 10; + } + .order-sm-11 { + order: 11; + } + .order-sm-12 { + order: 12; + } + .offset-sm-0 { + margin-right: 0; + } + .offset-sm-1 { + margin-right: 8.333333%; + } + .offset-sm-2 { + margin-right: 16.666667%; + } + .offset-sm-3 { + margin-right: 25%; + } + .offset-sm-4 { + margin-right: 33.333333%; + } + .offset-sm-5 { + margin-right: 41.666667%; + } + .offset-sm-6 { + margin-right: 50%; + } + .offset-sm-7 { + margin-right: 58.333333%; + } + .offset-sm-8 { + margin-right: 66.666667%; + } + .offset-sm-9 { + margin-right: 75%; + } + .offset-sm-10 { + margin-right: 83.333333%; + } + .offset-sm-11 { + margin-right: 91.666667%; + } +} + +@media (min-width: 768px) { + .col-md { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .row-cols-md-1 > * { + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-md-2 > * { + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-md-3 > * { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .row-cols-md-4 > * { + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-md-5 > * { + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-md-6 > * { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-md-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-md-1 { + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-md-2 { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-md-3 { + flex: 0 0 25%; + max-width: 25%; + } + .col-md-4 { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-md-5 { + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-md-6 { + flex: 0 0 50%; + max-width: 50%; + } + .col-md-7 { + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-md-8 { + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-md-9 { + flex: 0 0 75%; + max-width: 75%; + } + .col-md-10 { + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-md-11 { + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-md-12 { + flex: 0 0 100%; + max-width: 100%; + } + .order-md-first { + order: -1; + } + .order-md-last { + order: 13; + } + .order-md-0 { + order: 0; + } + .order-md-1 { + order: 1; + } + .order-md-2 { + order: 2; + } + .order-md-3 { + order: 3; + } + .order-md-4 { + order: 4; + } + .order-md-5 { + order: 5; + } + .order-md-6 { + order: 6; + } + .order-md-7 { + order: 7; + } + .order-md-8 { + order: 8; + } + .order-md-9 { + order: 9; + } + .order-md-10 { + order: 10; + } + .order-md-11 { + order: 11; + } + .order-md-12 { + order: 12; + } + .offset-md-0 { + margin-right: 0; + } + .offset-md-1 { + margin-right: 8.333333%; + } + .offset-md-2 { + margin-right: 16.666667%; + } + .offset-md-3 { + margin-right: 25%; + } + .offset-md-4 { + margin-right: 33.333333%; + } + .offset-md-5 { + margin-right: 41.666667%; + } + .offset-md-6 { + margin-right: 50%; + } + .offset-md-7 { + margin-right: 58.333333%; + } + .offset-md-8 { + margin-right: 66.666667%; + } + .offset-md-9 { + margin-right: 75%; + } + .offset-md-10 { + margin-right: 83.333333%; + } + .offset-md-11 { + margin-right: 91.666667%; + } +} + +@media (min-width: 992px) { + .col-lg { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .row-cols-lg-1 > * { + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-lg-2 > * { + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-lg-3 > * { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .row-cols-lg-4 > * { + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-lg-5 > * { + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-lg-6 > * { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-lg-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-lg-1 { + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-lg-2 { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-lg-3 { + flex: 0 0 25%; + max-width: 25%; + } + .col-lg-4 { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-lg-5 { + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-lg-6 { + flex: 0 0 50%; + max-width: 50%; + } + .col-lg-7 { + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-lg-8 { + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-lg-9 { + flex: 0 0 75%; + max-width: 75%; + } + .col-lg-10 { + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-lg-11 { + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-lg-12 { + flex: 0 0 100%; + max-width: 100%; + } + .order-lg-first { + order: -1; + } + .order-lg-last { + order: 13; + } + .order-lg-0 { + order: 0; + } + .order-lg-1 { + order: 1; + } + .order-lg-2 { + order: 2; + } + .order-lg-3 { + order: 3; + } + .order-lg-4 { + order: 4; + } + .order-lg-5 { + order: 5; + } + .order-lg-6 { + order: 6; + } + .order-lg-7 { + order: 7; + } + .order-lg-8 { + order: 8; + } + .order-lg-9 { + order: 9; + } + .order-lg-10 { + order: 10; + } + .order-lg-11 { + order: 11; + } + .order-lg-12 { + order: 12; + } + .offset-lg-0 { + margin-right: 0; + } + .offset-lg-1 { + margin-right: 8.333333%; + } + .offset-lg-2 { + margin-right: 16.666667%; + } + .offset-lg-3 { + margin-right: 25%; + } + .offset-lg-4 { + margin-right: 33.333333%; + } + .offset-lg-5 { + margin-right: 41.666667%; + } + .offset-lg-6 { + margin-right: 50%; + } + .offset-lg-7 { + margin-right: 58.333333%; + } + .offset-lg-8 { + margin-right: 66.666667%; + } + .offset-lg-9 { + margin-right: 75%; + } + .offset-lg-10 { + margin-right: 83.333333%; + } + .offset-lg-11 { + margin-right: 91.666667%; + } +} + +@media (min-width: 1200px) { + .col-xl { + flex-basis: 0; + flex-grow: 1; + max-width: 100%; + } + .row-cols-xl-1 > * { + flex: 0 0 100%; + max-width: 100%; + } + .row-cols-xl-2 > * { + flex: 0 0 50%; + max-width: 50%; + } + .row-cols-xl-3 > * { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .row-cols-xl-4 > * { + flex: 0 0 25%; + max-width: 25%; + } + .row-cols-xl-5 > * { + flex: 0 0 20%; + max-width: 20%; + } + .row-cols-xl-6 > * { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-xl-auto { + flex: 0 0 auto; + width: auto; + max-width: 100%; + } + .col-xl-1 { + flex: 0 0 8.333333%; + max-width: 8.333333%; + } + .col-xl-2 { + flex: 0 0 16.666667%; + max-width: 16.666667%; + } + .col-xl-3 { + flex: 0 0 25%; + max-width: 25%; + } + .col-xl-4 { + flex: 0 0 33.333333%; + max-width: 33.333333%; + } + .col-xl-5 { + flex: 0 0 41.666667%; + max-width: 41.666667%; + } + .col-xl-6 { + flex: 0 0 50%; + max-width: 50%; + } + .col-xl-7 { + flex: 0 0 58.333333%; + max-width: 58.333333%; + } + .col-xl-8 { + flex: 0 0 66.666667%; + max-width: 66.666667%; + } + .col-xl-9 { + flex: 0 0 75%; + max-width: 75%; + } + .col-xl-10 { + flex: 0 0 83.333333%; + max-width: 83.333333%; + } + .col-xl-11 { + flex: 0 0 91.666667%; + max-width: 91.666667%; + } + .col-xl-12 { + flex: 0 0 100%; + max-width: 100%; + } + .order-xl-first { + order: -1; + } + .order-xl-last { + order: 13; + } + .order-xl-0 { + order: 0; + } + .order-xl-1 { + order: 1; + } + .order-xl-2 { + order: 2; + } + .order-xl-3 { + order: 3; + } + .order-xl-4 { + order: 4; + } + .order-xl-5 { + order: 5; + } + .order-xl-6 { + order: 6; + } + .order-xl-7 { + order: 7; + } + .order-xl-8 { + order: 8; + } + .order-xl-9 { + order: 9; + } + .order-xl-10 { + order: 10; + } + .order-xl-11 { + order: 11; + } + .order-xl-12 { + order: 12; + } + .offset-xl-0 { + margin-right: 0; + } + .offset-xl-1 { + margin-right: 8.333333%; + } + .offset-xl-2 { + margin-right: 16.666667%; + } + .offset-xl-3 { + margin-right: 25%; + } + .offset-xl-4 { + margin-right: 33.333333%; + } + .offset-xl-5 { + margin-right: 41.666667%; + } + .offset-xl-6 { + margin-right: 50%; + } + .offset-xl-7 { + margin-right: 58.333333%; + } + .offset-xl-8 { + margin-right: 66.666667%; + } + .offset-xl-9 { + margin-right: 75%; + } + .offset-xl-10 { + margin-right: 83.333333%; + } + .offset-xl-11 { + margin-right: 91.666667%; + } +} + +.table { + width: 100%; + margin-bottom: 1rem; + color: #212529; +} + +.table th, +.table td { + padding: 0.75rem; + vertical-align: top; + border-top: 1px solid #dee2e6; +} + +.table thead th { + vertical-align: bottom; + border-bottom: 2px solid #dee2e6; +} + +.table tbody + tbody { + border-top: 2px solid #dee2e6; +} + +.table-sm th, +.table-sm td { + padding: 0.3rem; +} + +.table-bordered { + border: 1px solid #dee2e6; +} + +.table-bordered th, +.table-bordered td { + border: 1px solid #dee2e6; +} + +.table-bordered thead th, +.table-bordered thead td { + border-bottom-width: 2px; +} + +.table-borderless th, +.table-borderless td, +.table-borderless thead th, +.table-borderless tbody + tbody { + border: 0; +} + +.table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(0, 0, 0, 0.05); +} + +.table-hover tbody tr:hover { + color: #212529; + background-color: rgba(0, 0, 0, 0.075); +} + +.table-primary, +.table-primary > th, +.table-primary > td { + background-color: #b8daff; +} + +.table-primary th, +.table-primary td, +.table-primary thead th, +.table-primary tbody + tbody { + border-color: #7abaff; +} + +.table-hover .table-primary:hover { + background-color: #9fcdff; +} + +.table-hover .table-primary:hover > td, +.table-hover .table-primary:hover > th { + background-color: #9fcdff; +} + +.table-secondary, +.table-secondary > th, +.table-secondary > td { + background-color: #d6d8db; +} + +.table-secondary th, +.table-secondary td, +.table-secondary thead th, +.table-secondary tbody + tbody { + border-color: #b3b7bb; +} + +.table-hover .table-secondary:hover { + background-color: #c8cbcf; +} + +.table-hover .table-secondary:hover > td, +.table-hover .table-secondary:hover > th { + background-color: #c8cbcf; +} + +.table-success, +.table-success > th, +.table-success > td { + background-color: #c3e6cb; +} + +.table-success th, +.table-success td, +.table-success thead th, +.table-success tbody + tbody { + border-color: #8fd19e; +} + +.table-hover .table-success:hover { + background-color: #b1dfbb; +} + +.table-hover .table-success:hover > td, +.table-hover .table-success:hover > th { + background-color: #b1dfbb; +} + +.table-info, +.table-info > th, +.table-info > td { + background-color: #bee5eb; +} + +.table-info th, +.table-info td, +.table-info thead th, +.table-info tbody + tbody { + border-color: #86cfda; +} + +.table-hover .table-info:hover { + background-color: #abdde5; +} + +.table-hover .table-info:hover > td, +.table-hover .table-info:hover > th { + background-color: #abdde5; +} + +.table-warning, +.table-warning > th, +.table-warning > td { + background-color: #ffeeba; +} + +.table-warning th, +.table-warning td, +.table-warning thead th, +.table-warning tbody + tbody { + border-color: #ffdf7e; +} + +.table-hover .table-warning:hover { + background-color: #ffe8a1; +} + +.table-hover .table-warning:hover > td, +.table-hover .table-warning:hover > th { + background-color: #ffe8a1; +} + +.table-danger, +.table-danger > th, +.table-danger > td { + background-color: #f5c6cb; +} + +.table-danger th, +.table-danger td, +.table-danger thead th, +.table-danger tbody + tbody { + border-color: #ed969e; +} + +.table-hover .table-danger:hover { + background-color: #f1b0b7; +} + +.table-hover .table-danger:hover > td, +.table-hover .table-danger:hover > th { + background-color: #f1b0b7; +} + +.table-light, +.table-light > th, +.table-light > td { + background-color: #fdfdfe; +} + +.table-light th, +.table-light td, +.table-light thead th, +.table-light tbody + tbody { + border-color: #fbfcfc; +} + +.table-hover .table-light:hover { + background-color: #ececf6; +} + +.table-hover .table-light:hover > td, +.table-hover .table-light:hover > th { + background-color: #ececf6; +} + +.table-dark, +.table-dark > th, +.table-dark > td { + background-color: #c6c8ca; +} + +.table-dark th, +.table-dark td, +.table-dark thead th, +.table-dark tbody + tbody { + border-color: #95999c; +} + +.table-hover .table-dark:hover { + background-color: #b9bbbe; +} + +.table-hover .table-dark:hover > td, +.table-hover .table-dark:hover > th { + background-color: #b9bbbe; +} + +.table-active, +.table-active > th, +.table-active > td { + background-color: rgba(0, 0, 0, 0.075); +} + +.table-hover .table-active:hover { + background-color: rgba(0, 0, 0, 0.075); +} + +.table-hover .table-active:hover > td, +.table-hover .table-active:hover > th { + background-color: rgba(0, 0, 0, 0.075); +} + +.table .thead-dark th { + color: #fff; + background-color: #343a40; + border-color: #454d55; +} + +.table .thead-light th { + color: #495057; + background-color: #e9ecef; + border-color: #dee2e6; +} + +.table-dark { + color: #fff; + background-color: #343a40; +} + +.table-dark th, +.table-dark td, +.table-dark thead th { + border-color: #454d55; +} + +.table-dark.table-bordered { + border: 0; +} + +.table-dark.table-striped tbody tr:nth-of-type(odd) { + background-color: rgba(255, 255, 255, 0.05); +} + +.table-dark.table-hover tbody tr:hover { + color: #fff; + background-color: rgba(255, 255, 255, 0.075); +} + +@media (max-width: 575.98px) { + .table-responsive-sm { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } + .table-responsive-sm > .table-bordered { + border: 0; + } +} + +@media (max-width: 767.98px) { + .table-responsive-md { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } + .table-responsive-md > .table-bordered { + border: 0; + } +} + +@media (max-width: 991.98px) { + .table-responsive-lg { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } + .table-responsive-lg > .table-bordered { + border: 0; + } +} + +@media (max-width: 1199.98px) { + .table-responsive-xl { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; + } + .table-responsive-xl > .table-bordered { + border: 0; + } +} + +.table-responsive { + display: block; + width: 100%; + overflow-x: auto; + -webkit-overflow-scrolling: touch; +} + +.table-responsive > .table-bordered { + border: 0; +} + +.form-control { + display: block; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + background-color: #fff; + background-clip: padding-box; + border: 1px solid #ced4da; + border-radius: 0.25rem; + transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .form-control { + transition: none; + } +} + +.form-control::-ms-expand { + background-color: transparent; + border: 0; +} + +.form-control:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #495057; +} + +.form-control:focus { + color: #495057; + background-color: #fff; + border-color: #80bdff; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.form-control::-webkit-input-placeholder { + color: #6c757d; + opacity: 1; +} + +.form-control::-moz-placeholder { + color: #6c757d; + opacity: 1; +} + +.form-control:-ms-input-placeholder { + color: #6c757d; + opacity: 1; +} + +.form-control::-ms-input-placeholder { + color: #6c757d; + opacity: 1; +} + +.form-control::placeholder { + color: #6c757d; + opacity: 1; +} + +.form-control:disabled, .form-control[readonly] { + background-color: #e9ecef; + opacity: 1; +} + +select.form-control:focus::-ms-value { + color: #495057; + background-color: #fff; +} + +.form-control-file, +.form-control-range { + display: block; + width: 100%; +} + +.col-form-label { + padding-top: calc(0.375rem + 1px); + padding-bottom: calc(0.375rem + 1px); + margin-bottom: 0; + font-size: inherit; + line-height: 1.5; +} + +.col-form-label-lg { + padding-top: calc(0.5rem + 1px); + padding-bottom: calc(0.5rem + 1px); + font-size: 1.25rem; + line-height: 1.5; +} + +.col-form-label-sm { + padding-top: calc(0.25rem + 1px); + padding-bottom: calc(0.25rem + 1px); + font-size: 0.875rem; + line-height: 1.5; +} + +.form-control-plaintext { + display: block; + width: 100%; + padding: 0.375rem 0; + margin-bottom: 0; + font-size: 1rem; + line-height: 1.5; + color: #212529; + background-color: transparent; + border: solid transparent; + border-width: 1px 0; +} + +.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg { + padding-right: 0; + padding-left: 0; +} + +.form-control-sm { + height: calc(1.5em + 0.5rem + 2px); + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.2rem; +} + +.form-control-lg { + height: calc(1.5em + 1rem + 2px); + padding: 0.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 0.3rem; +} + +select.form-control[size], select.form-control[multiple] { + height: auto; +} + +textarea.form-control { + height: auto; +} + +.form-group { + margin-bottom: 1rem; +} + +.form-text { + display: block; + margin-top: 0.25rem; +} + +.form-row { + display: flex; + flex-wrap: wrap; + margin-right: -5px; + margin-left: -5px; +} + +.form-row > .col, +.form-row > [class*="col-"] { + padding-right: 5px; + padding-left: 5px; +} + +.form-check { + position: relative; + display: block; + padding-left: 1.25rem; +} + +.form-check-input { + position: absolute; + margin-top: 0.3rem; + margin-left: -1.25rem; +} + +.form-check-input[disabled] ~ .form-check-label, +.form-check-input:disabled ~ .form-check-label { + color: #6c757d; +} + +.form-check-label { + margin-bottom: 0; +} + +.form-check-inline { + display: inline-flex; + align-items: center; + padding-left: 0; + margin-right: 0.75rem; +} + +.form-check-inline .form-check-input { + position: static; + margin-top: 0; + margin-right: 0.3125rem; + margin-left: 0; +} + +.valid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #28a745; +} + +.valid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: .1rem; + font-size: 0.875rem; + line-height: 1.5; + color: #fff; + background-color: rgba(40, 167, 69, 0.9); + border-radius: 0.25rem; +} + +.was-validated :valid ~ .valid-feedback, +.was-validated :valid ~ .valid-tooltip, +.is-valid ~ .valid-feedback, +.is-valid ~ .valid-tooltip { + display: block; +} + +.was-validated .form-control:valid, .form-control.is-valid { + border-color: #28a745; + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' 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(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.was-validated .form-control:valid:focus, .form-control.is-valid:focus { + border-color: #28a745; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} + +.was-validated textarea.form-control:valid, textarea.form-control.is-valid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.was-validated .custom-select:valid, .custom-select.is-valid { + border-color: #28a745; + padding-right: calc(0.75em + 2.3125rem); + background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' 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") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus { + border-color: #28a745; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} + +.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label { + color: #28a745; +} + +.was-validated .form-check-input:valid ~ .valid-feedback, +.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback, +.form-check-input.is-valid ~ .valid-tooltip { + display: block; +} + +.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label { + color: #28a745; +} + +.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before { + border-color: #28a745; +} + +.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before { + border-color: #34ce57; + background-color: #34ce57; +} + +.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before { + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} + +.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before { + border-color: #28a745; +} + +.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label { + border-color: #28a745; +} + +.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label { + border-color: #28a745; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25); +} + +.invalid-feedback { + display: none; + width: 100%; + margin-top: 0.25rem; + font-size: 80%; + color: #dc3545; +} + +.invalid-tooltip { + position: absolute; + top: 100%; + z-index: 5; + display: none; + max-width: 100%; + padding: 0.25rem 0.5rem; + margin-top: .1rem; + font-size: 0.875rem; + line-height: 1.5; + color: #fff; + background-color: rgba(220, 53, 69, 0.9); + border-radius: 0.25rem; +} + +.was-validated :invalid ~ .invalid-feedback, +.was-validated :invalid ~ .invalid-tooltip, +.is-invalid ~ .invalid-feedback, +.is-invalid ~ .invalid-tooltip { + display: block; +} + +.was-validated .form-control:invalid, .form-control.is-invalid { + border-color: #dc3545; + padding-right: calc(1.5em + 0.75rem); + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%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(0.375em + 0.1875rem) center; + background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus { + border-color: #dc3545; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid { + padding-right: calc(1.5em + 0.75rem); + background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem); +} + +.was-validated .custom-select:invalid, .custom-select.is-invalid { + border-color: #dc3545; + padding-right: calc(0.75em + 2.3125rem); + background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px, url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%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") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem); +} + +.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus { + border-color: #dc3545; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label { + color: #dc3545; +} + +.was-validated .form-check-input:invalid ~ .invalid-feedback, +.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback, +.form-check-input.is-invalid ~ .invalid-tooltip { + display: block; +} + +.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label { + color: #dc3545; +} + +.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before { + border-color: #dc3545; +} + +.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before { + border-color: #e4606d; + background-color: #e4606d; +} + +.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before { + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before { + border-color: #dc3545; +} + +.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label { + border-color: #dc3545; +} + +.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label { + border-color: #dc3545; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25); +} + +.form-inline { + display: flex; + flex-flow: row wrap; + align-items: center; +} + +.form-inline .form-check { + width: 100%; +} + +@media (min-width: 576px) { + .form-inline label { + display: flex; + align-items: center; + justify-content: center; + margin-bottom: 0; + } + .form-inline .form-group { + display: flex; + flex: 0 0 auto; + flex-flow: row wrap; + align-items: center; + margin-bottom: 0; + } + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; + } + .form-inline .form-control-plaintext { + display: inline-block; + } + .form-inline .input-group, + .form-inline .custom-select { + width: auto; + } + .form-inline .form-check { + display: flex; + align-items: center; + justify-content: center; + width: auto; + padding-left: 0; + } + .form-inline .form-check-input { + position: relative; + flex-shrink: 0; + margin-top: 0; + margin-right: 0.25rem; + margin-left: 0; + } + .form-inline .custom-control { + align-items: center; + justify-content: center; + } + .form-inline .custom-control-label { + margin-bottom: 0; + } +} + +.btn { + display: inline-block; + font-weight: 400; + color: #212529; + text-align: center; + vertical-align: middle; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-color: transparent; + border: 1px solid transparent; + padding: 0.375rem 0.75rem; + font-size: 1rem; + line-height: 1.5; + border-radius: 0.25rem; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .btn { + transition: none; + } +} + +.btn:hover { + color: #212529; + text-decoration: none; +} + +.btn:focus, .btn.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.btn.disabled, .btn:disabled { + opacity: 0.65; +} + +a.btn.disabled, +fieldset:disabled a.btn { + pointer-events: none; +} + +.btn-primary { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.btn-primary:hover { + color: #fff; + background-color: #0069d9; + border-color: #0062cc; +} + +.btn-primary:focus, .btn-primary.focus { + color: #fff; + background-color: #0069d9; + border-color: #0062cc; + box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5); +} + +.btn-primary.disabled, .btn-primary:disabled { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active, +.show > .btn-primary.dropdown-toggle { + color: #fff; + background-color: #0062cc; + border-color: #005cbf; +} + +.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus, +.show > .btn-primary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5); +} + +.btn-secondary { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} + +.btn-secondary:hover { + color: #fff; + background-color: #5a6268; + border-color: #545b62; +} + +.btn-secondary:focus, .btn-secondary.focus { + color: #fff; + background-color: #5a6268; + border-color: #545b62; + box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5); +} + +.btn-secondary.disabled, .btn-secondary:disabled { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} + +.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active, +.show > .btn-secondary.dropdown-toggle { + color: #fff; + background-color: #545b62; + border-color: #4e555b; +} + +.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus, +.show > .btn-secondary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5); +} + +.btn-success { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} + +.btn-success:hover { + color: #fff; + background-color: #218838; + border-color: #1e7e34; +} + +.btn-success:focus, .btn-success.focus { + color: #fff; + background-color: #218838; + border-color: #1e7e34; + box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5); +} + +.btn-success.disabled, .btn-success:disabled { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} + +.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active, +.show > .btn-success.dropdown-toggle { + color: #fff; + background-color: #1e7e34; + border-color: #1c7430; +} + +.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus, +.show > .btn-success.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5); +} + +.btn-info { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} + +.btn-info:hover { + color: #fff; + background-color: #138496; + border-color: #117a8b; +} + +.btn-info:focus, .btn-info.focus { + color: #fff; + background-color: #138496; + border-color: #117a8b; + box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5); +} + +.btn-info.disabled, .btn-info:disabled { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} + +.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active, +.show > .btn-info.dropdown-toggle { + color: #fff; + background-color: #117a8b; + border-color: #10707f; +} + +.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus, +.show > .btn-info.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5); +} + +.btn-warning { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} + +.btn-warning:hover { + color: #212529; + background-color: #e0a800; + border-color: #d39e00; +} + +.btn-warning:focus, .btn-warning.focus { + color: #212529; + background-color: #e0a800; + border-color: #d39e00; + box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5); +} + +.btn-warning.disabled, .btn-warning:disabled { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} + +.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active, +.show > .btn-warning.dropdown-toggle { + color: #212529; + background-color: #d39e00; + border-color: #c69500; +} + +.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus, +.show > .btn-warning.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5); +} + +.btn-danger { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} + +.btn-danger:hover { + color: #fff; + background-color: #c82333; + border-color: #bd2130; +} + +.btn-danger:focus, .btn-danger.focus { + color: #fff; + background-color: #c82333; + border-color: #bd2130; + box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5); +} + +.btn-danger.disabled, .btn-danger:disabled { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} + +.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active, +.show > .btn-danger.dropdown-toggle { + color: #fff; + background-color: #bd2130; + border-color: #b21f2d; +} + +.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus, +.show > .btn-danger.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5); +} + +.btn-light { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-light:hover { + color: #212529; + background-color: #e2e6ea; + border-color: #dae0e5; +} + +.btn-light:focus, .btn-light.focus { + color: #212529; + background-color: #e2e6ea; + border-color: #dae0e5; + box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5); +} + +.btn-light.disabled, .btn-light:disabled { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active, +.show > .btn-light.dropdown-toggle { + color: #212529; + background-color: #dae0e5; + border-color: #d3d9df; +} + +.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus, +.show > .btn-light.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5); +} + +.btn-dark { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-dark:hover { + color: #fff; + background-color: #23272b; + border-color: #1d2124; +} + +.btn-dark:focus, .btn-dark.focus { + color: #fff; + background-color: #23272b; + border-color: #1d2124; + box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5); +} + +.btn-dark.disabled, .btn-dark:disabled { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active, +.show > .btn-dark.dropdown-toggle { + color: #fff; + background-color: #1d2124; + border-color: #171a1d; +} + +.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus, +.show > .btn-dark.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5); +} + +.btn-outline-primary { + color: #007bff; + border-color: #007bff; +} + +.btn-outline-primary:hover { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.btn-outline-primary:focus, .btn-outline-primary.focus { + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); +} + +.btn-outline-primary.disabled, .btn-outline-primary:disabled { + color: #007bff; + background-color: transparent; +} + +.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active, +.show > .btn-outline-primary.dropdown-toggle { + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-primary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); +} + +.btn-outline-secondary { + color: #6c757d; + border-color: #6c757d; +} + +.btn-outline-secondary:hover { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} + +.btn-outline-secondary:focus, .btn-outline-secondary.focus { + box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); +} + +.btn-outline-secondary.disabled, .btn-outline-secondary:disabled { + color: #6c757d; + background-color: transparent; +} + +.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active, +.show > .btn-outline-secondary.dropdown-toggle { + color: #fff; + background-color: #6c757d; + border-color: #6c757d; +} + +.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-secondary.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); +} + +.btn-outline-success { + color: #28a745; + border-color: #28a745; +} + +.btn-outline-success:hover { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} + +.btn-outline-success:focus, .btn-outline-success.focus { + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); +} + +.btn-outline-success.disabled, .btn-outline-success:disabled { + color: #28a745; + background-color: transparent; +} + +.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active, +.show > .btn-outline-success.dropdown-toggle { + color: #fff; + background-color: #28a745; + border-color: #28a745; +} + +.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-success.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); +} + +.btn-outline-info { + color: #17a2b8; + border-color: #17a2b8; +} + +.btn-outline-info:hover { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} + +.btn-outline-info:focus, .btn-outline-info.focus { + box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); +} + +.btn-outline-info.disabled, .btn-outline-info:disabled { + color: #17a2b8; + background-color: transparent; +} + +.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active, +.show > .btn-outline-info.dropdown-toggle { + color: #fff; + background-color: #17a2b8; + border-color: #17a2b8; +} + +.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-info.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); +} + +.btn-outline-warning { + color: #ffc107; + border-color: #ffc107; +} + +.btn-outline-warning:hover { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} + +.btn-outline-warning:focus, .btn-outline-warning.focus { + box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); +} + +.btn-outline-warning.disabled, .btn-outline-warning:disabled { + color: #ffc107; + background-color: transparent; +} + +.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active, +.show > .btn-outline-warning.dropdown-toggle { + color: #212529; + background-color: #ffc107; + border-color: #ffc107; +} + +.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-warning.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); +} + +.btn-outline-danger { + color: #dc3545; + border-color: #dc3545; +} + +.btn-outline-danger:hover { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} + +.btn-outline-danger:focus, .btn-outline-danger.focus { + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); +} + +.btn-outline-danger.disabled, .btn-outline-danger:disabled { + color: #dc3545; + background-color: transparent; +} + +.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active, +.show > .btn-outline-danger.dropdown-toggle { + color: #fff; + background-color: #dc3545; + border-color: #dc3545; +} + +.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-danger.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); +} + +.btn-outline-light { + color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-outline-light:hover { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-outline-light:focus, .btn-outline-light.focus { + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} + +.btn-outline-light.disabled, .btn-outline-light:disabled { + color: #f8f9fa; + background-color: transparent; +} + +.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active, +.show > .btn-outline-light.dropdown-toggle { + color: #212529; + background-color: #f8f9fa; + border-color: #f8f9fa; +} + +.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-light.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} + +.btn-outline-dark { + color: #343a40; + border-color: #343a40; +} + +.btn-outline-dark:hover { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-outline-dark:focus, .btn-outline-dark.focus { + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} + +.btn-outline-dark.disabled, .btn-outline-dark:disabled { + color: #343a40; + background-color: transparent; +} + +.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active, +.show > .btn-outline-dark.dropdown-toggle { + color: #fff; + background-color: #343a40; + border-color: #343a40; +} + +.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus, +.show > .btn-outline-dark.dropdown-toggle:focus { + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} + +.btn-link { + font-weight: 400; + color: #007bff; + text-decoration: none; +} + +.btn-link:hover { + color: #0056b3; + text-decoration: underline; +} + +.btn-link:focus, .btn-link.focus { + text-decoration: underline; + box-shadow: none; +} + +.btn-link:disabled, .btn-link.disabled { + color: #6c757d; + pointer-events: none; +} + +.btn-lg, .btn-group-lg > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 0.3rem; +} + +.btn-sm, .btn-group-sm > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.2rem; +} + +.btn-block { + display: block; + width: 100%; +} + +.btn-block + .btn-block { + margin-top: 0.5rem; +} + +input[type="submit"].btn-block, +input[type="reset"].btn-block, +input[type="button"].btn-block { + width: 100%; +} + +.fade { + transition: opacity 0.15s linear; +} + +@media (prefers-reduced-motion: reduce) { + .fade { + transition: none; + } +} + +.fade:not(.show) { + opacity: 0; +} + +.collapse:not(.show) { + display: none; +} + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + transition: height 0.35s ease; +} + +@media (prefers-reduced-motion: reduce) { + .collapsing { + transition: none; + } +} + +.dropup, +.dropright, +.dropdown, +.dropleft { + position: relative; +} + +.dropdown-toggle { + white-space: nowrap; +} + +.dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid; + border-right: 0.3em solid transparent; + border-bottom: 0; + border-left: 0.3em solid transparent; +} + +.dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 10rem; + padding: 0.5rem 0; + margin: 0.125rem 0 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, 0.15); + border-radius: 0.25rem; +} + +.dropdown-menu-left { + right: auto; + left: 0; +} + +.dropdown-menu-right { + right: 0; + left: auto; +} + +@media (min-width: 576px) { + .dropdown-menu-sm-left { + right: auto; + left: 0; + } + .dropdown-menu-sm-right { + right: 0; + left: auto; + } +} + +@media (min-width: 768px) { + .dropdown-menu-md-left { + right: auto; + left: 0; + } + .dropdown-menu-md-right { + right: 0; + left: auto; + } +} + +@media (min-width: 992px) { + .dropdown-menu-lg-left { + right: auto; + left: 0; + } + .dropdown-menu-lg-right { + right: 0; + left: auto; + } +} + +@media (min-width: 1200px) { + .dropdown-menu-xl-left { + right: auto; + left: 0; + } + .dropdown-menu-xl-right { + right: 0; + left: auto; + } +} + +.dropup .dropdown-menu { + top: auto; + bottom: 100%; + margin-top: 0; + margin-bottom: 0.125rem; +} + +.dropup .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0; + border-right: 0.3em solid transparent; + border-bottom: 0.3em solid; + border-left: 0.3em solid transparent; +} + +.dropup .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropright .dropdown-menu { + top: 0; + right: auto; + left: 100%; + margin-top: 0; + margin-left: 0.125rem; +} + +.dropright .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0; + border-bottom: 0.3em solid transparent; + border-left: 0.3em solid; +} + +.dropright .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropright .dropdown-toggle::after { + vertical-align: 0; +} + +.dropleft .dropdown-menu { + top: 0; + right: 100%; + left: auto; + margin-top: 0; + margin-right: 0.125rem; +} + +.dropleft .dropdown-toggle::after { + display: inline-block; + margin-left: 0.255em; + vertical-align: 0.255em; + content: ""; +} + +.dropleft .dropdown-toggle::after { + display: none; +} + +.dropleft .dropdown-toggle::before { + display: inline-block; + margin-right: 0.255em; + vertical-align: 0.255em; + content: ""; + border-top: 0.3em solid transparent; + border-right: 0.3em solid; + border-bottom: 0.3em solid transparent; +} + +.dropleft .dropdown-toggle:empty::after { + margin-left: 0; +} + +.dropleft .dropdown-toggle::before { + vertical-align: 0; +} + +.dropdown-menu[x-placement^="top"], .dropdown-menu[x-placement^="right"], .dropdown-menu[x-placement^="bottom"], .dropdown-menu[x-placement^="left"] { + right: auto; + bottom: auto; +} + +.dropdown-divider { + height: 0; + margin: 0.5rem 0; + overflow: hidden; + border-top: 1px solid #e9ecef; +} + +.dropdown-item { + display: block; + width: 100%; + padding: 0.25rem 1.5rem; + clear: both; + font-weight: 400; + color: #212529; + text-align: inherit; + white-space: nowrap; + background-color: transparent; + border: 0; +} + +.dropdown-item:hover, .dropdown-item:focus { + color: #16181b; + text-decoration: none; + background-color: #f8f9fa; +} + +.dropdown-item.active, .dropdown-item:active { + color: #fff; + text-decoration: none; + background-color: #007bff; +} + +.dropdown-item.disabled, .dropdown-item:disabled { + color: #6c757d; + pointer-events: none; + background-color: transparent; +} + +.dropdown-menu.show { + display: block; +} + +.dropdown-header { + display: block; + padding: 0.5rem 1.5rem; + margin-bottom: 0; + font-size: 0.875rem; + color: #6c757d; + white-space: nowrap; +} + +.dropdown-item-text { + display: block; + padding: 0.25rem 1.5rem; + color: #212529; +} + +.btn-group, +.btn-group-vertical { + position: relative; + display: inline-flex; + vertical-align: middle; +} + +.btn-group > .btn, +.btn-group-vertical > .btn { + position: relative; + flex: 1 1 auto; +} + +.btn-group > .btn:hover, +.btn-group-vertical > .btn:hover { + z-index: 1; +} + +.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active, +.btn-group-vertical > .btn:focus, +.btn-group-vertical > .btn:active, +.btn-group-vertical > .btn.active { + z-index: 1; +} + +.btn-toolbar { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} + +.btn-toolbar .input-group { + width: auto; +} + +.btn-group > .btn:not(:first-child), +.btn-group > .btn-group:not(:first-child) { + margin-left: -1px; +} + +.btn-group > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group > .btn-group:not(:last-child) > .btn { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.btn-group > .btn:not(:first-child), +.btn-group > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.dropdown-toggle-split { + padding-right: 0.5625rem; + padding-left: 0.5625rem; +} + +.dropdown-toggle-split::after, +.dropup .dropdown-toggle-split::after, +.dropright .dropdown-toggle-split::after { + margin-left: 0; +} + +.dropleft .dropdown-toggle-split::before { + margin-right: 0; +} + +.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split { + padding-right: 0.375rem; + padding-left: 0.375rem; +} + +.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split { + padding-right: 0.75rem; + padding-left: 0.75rem; +} + +.btn-group-vertical { + flex-direction: column; + align-items: flex-start; + justify-content: center; +} + +.btn-group-vertical > .btn, +.btn-group-vertical > .btn-group { + width: 100%; +} + +.btn-group-vertical > .btn:not(:first-child), +.btn-group-vertical > .btn-group:not(:first-child) { + margin-top: -1px; +} + +.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle), +.btn-group-vertical > .btn-group:not(:last-child) > .btn { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.btn-group-vertical > .btn:not(:first-child), +.btn-group-vertical > .btn-group:not(:first-child) > .btn { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.btn-group-toggle > .btn, +.btn-group-toggle > .btn-group > .btn { + margin-bottom: 0; +} + +.btn-group-toggle > .btn input[type="radio"], +.btn-group-toggle > .btn input[type="checkbox"], +.btn-group-toggle > .btn-group > .btn input[type="radio"], +.btn-group-toggle > .btn-group > .btn input[type="checkbox"] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; +} + +.input-group { + position: relative; + display: flex; + flex-wrap: wrap; + align-items: stretch; + width: 100%; +} + +.input-group > .form-control, +.input-group > .form-control-plaintext, +.input-group > .custom-select, +.input-group > .custom-file { + position: relative; + flex: 1 1 0%; + min-width: 0; + margin-bottom: 0; +} + +.input-group > .form-control + .form-control, +.input-group > .form-control + .custom-select, +.input-group > .form-control + .custom-file, +.input-group > .form-control-plaintext + .form-control, +.input-group > .form-control-plaintext + .custom-select, +.input-group > .form-control-plaintext + .custom-file, +.input-group > .custom-select + .form-control, +.input-group > .custom-select + .custom-select, +.input-group > .custom-select + .custom-file, +.input-group > .custom-file + .form-control, +.input-group > .custom-file + .custom-select, +.input-group > .custom-file + .custom-file { + margin-left: -1px; +} + +.input-group > .form-control:focus, +.input-group > .custom-select:focus, +.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label { + z-index: 3; +} + +.input-group > .custom-file .custom-file-input:focus { + z-index: 4; +} + +.input-group > .form-control:not(:last-child), +.input-group > .custom-select:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group > .form-control:not(:first-child), +.input-group > .custom-select:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.input-group > .custom-file { + display: flex; + align-items: center; +} + +.input-group > .custom-file:not(:last-child) .custom-file-label, +.input-group > .custom-file:not(:last-child) .custom-file-label::after { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group > .custom-file:not(:first-child) .custom-file-label { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.input-group-prepend, +.input-group-append { + display: flex; +} + +.input-group-prepend .btn, +.input-group-append .btn { + position: relative; + z-index: 2; +} + +.input-group-prepend .btn:focus, +.input-group-append .btn:focus { + z-index: 3; +} + +.input-group-prepend .btn + .btn, +.input-group-prepend .btn + .input-group-text, +.input-group-prepend .input-group-text + .input-group-text, +.input-group-prepend .input-group-text + .btn, +.input-group-append .btn + .btn, +.input-group-append .btn + .input-group-text, +.input-group-append .input-group-text + .input-group-text, +.input-group-append .input-group-text + .btn { + margin-left: -1px; +} + +.input-group-prepend { + margin-right: -1px; +} + +.input-group-append { + margin-left: -1px; +} + +.input-group-text { + display: flex; + align-items: center; + padding: 0.375rem 0.75rem; + margin-bottom: 0; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + text-align: center; + white-space: nowrap; + background-color: #e9ecef; + border: 1px solid #ced4da; + border-radius: 0.25rem; +} + +.input-group-text input[type="radio"], +.input-group-text input[type="checkbox"] { + margin-top: 0; +} + +.input-group-lg > .form-control:not(textarea), +.input-group-lg > .custom-select { + height: calc(1.5em + 1rem + 2px); +} + +.input-group-lg > .form-control, +.input-group-lg > .custom-select, +.input-group-lg > .input-group-prepend > .input-group-text, +.input-group-lg > .input-group-append > .input-group-text, +.input-group-lg > .input-group-prepend > .btn, +.input-group-lg > .input-group-append > .btn { + padding: 0.5rem 1rem; + font-size: 1.25rem; + line-height: 1.5; + border-radius: 0.3rem; +} + +.input-group-sm > .form-control:not(textarea), +.input-group-sm > .custom-select { + height: calc(1.5em + 0.5rem + 2px); +} + +.input-group-sm > .form-control, +.input-group-sm > .custom-select, +.input-group-sm > .input-group-prepend > .input-group-text, +.input-group-sm > .input-group-append > .input-group-text, +.input-group-sm > .input-group-prepend > .btn, +.input-group-sm > .input-group-append > .btn { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; + border-radius: 0.2rem; +} + +.input-group-lg > .custom-select, +.input-group-sm > .custom-select { + padding-right: 1.75rem; +} + +.input-group > .input-group-prepend > .btn, +.input-group > .input-group-prepend > .input-group-text, +.input-group > .input-group-append:not(:last-child) > .btn, +.input-group > .input-group-append:not(:last-child) > .input-group-text, +.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle), +.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.input-group > .input-group-append > .btn, +.input-group > .input-group-append > .input-group-text, +.input-group > .input-group-prepend:not(:first-child) > .btn, +.input-group > .input-group-prepend:not(:first-child) > .input-group-text, +.input-group > .input-group-prepend:first-child > .btn:not(:first-child), +.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.custom-control { + position: relative; + display: block; + min-height: 1.5rem; + padding-left: 1.5rem; +} + +.custom-control-inline { + display: inline-flex; + margin-right: 1rem; +} + +.custom-control-input { + position: absolute; + left: 0; + z-index: -1; + width: 1rem; + height: 1.25rem; + opacity: 0; +} + +.custom-control-input:checked ~ .custom-control-label::before { + color: #fff; + border-color: #007bff; + background-color: #007bff; +} + +.custom-control-input:focus ~ .custom-control-label::before { + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-control-input:focus:not(:checked) ~ .custom-control-label::before { + border-color: #80bdff; +} + +.custom-control-input:not(:disabled):active ~ .custom-control-label::before { + color: #fff; + background-color: #b3d7ff; + border-color: #b3d7ff; +} + +.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label { + color: #6c757d; +} + +.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before { + background-color: #e9ecef; +} + +.custom-control-label { + position: relative; + margin-bottom: 0; + vertical-align: top; +} + +.custom-control-label::before { + position: absolute; + top: 0.25rem; + left: -1.5rem; + display: block; + width: 1rem; + height: 1rem; + pointer-events: none; + content: ""; + background-color: #fff; + border: #adb5bd solid 1px; +} + +.custom-control-label::after { + position: absolute; + top: 0.25rem; + left: -1.5rem; + display: block; + width: 1rem; + height: 1rem; + content: ""; + background: no-repeat 50% / 50% 50%; +} + +.custom-checkbox .custom-control-label::before { + border-radius: 0.25rem; +} + +.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e"); +} + +.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before { + border-color: #007bff; + background-color: #007bff; +} + +.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e"); +} + +.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(0, 123, 255, 0.5); +} + +.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before { + background-color: rgba(0, 123, 255, 0.5); +} + +.custom-radio .custom-control-label::before { + border-radius: 50%; +} + +.custom-radio .custom-control-input:checked ~ .custom-control-label::after { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e"); +} + +.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(0, 123, 255, 0.5); +} + +.custom-switch { + padding-left: 2.25rem; +} + +.custom-switch .custom-control-label::before { + left: -2.25rem; + width: 1.75rem; + pointer-events: all; + border-radius: 0.5rem; +} + +.custom-switch .custom-control-label::after { + top: calc(0.25rem + 2px); + left: calc(-2.25rem + 2px); + width: calc(1rem - 4px); + height: calc(1rem - 4px); + background-color: #adb5bd; + border-radius: 0.5rem; + transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .custom-switch .custom-control-label::after { + transition: none; + } +} + +.custom-switch .custom-control-input:checked ~ .custom-control-label::after { + background-color: #fff; + transform: translateX(0.75rem); +} + +.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before { + background-color: rgba(0, 123, 255, 0.5); +} + +.custom-select { + display: inline-block; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem 1.75rem 0.375rem 0.75rem; + font-size: 1rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + vertical-align: middle; + background: #fff url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right 0.75rem center/8px 10px; + border: 1px solid #ced4da; + border-radius: 0.25rem; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +.custom-select:focus { + border-color: #80bdff; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-select:focus::-ms-value { + color: #495057; + background-color: #fff; +} + +.custom-select[multiple], .custom-select[size]:not([size="1"]) { + height: auto; + padding-right: 0.75rem; + background-image: none; +} + +.custom-select:disabled { + color: #6c757d; + background-color: #e9ecef; +} + +.custom-select::-ms-expand { + display: none; +} + +.custom-select:-moz-focusring { + color: transparent; + text-shadow: 0 0 0 #495057; +} + +.custom-select-sm { + height: calc(1.5em + 0.5rem + 2px); + padding-top: 0.25rem; + padding-bottom: 0.25rem; + padding-left: 0.5rem; + font-size: 0.875rem; +} + +.custom-select-lg { + height: calc(1.5em + 1rem + 2px); + padding-top: 0.5rem; + padding-bottom: 0.5rem; + padding-left: 1rem; + font-size: 1.25rem; +} + +.custom-file { + position: relative; + display: inline-block; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + margin-bottom: 0; +} + +.custom-file-input { + position: relative; + z-index: 2; + width: 100%; + height: calc(1.5em + 0.75rem + 2px); + margin: 0; + opacity: 0; +} + +.custom-file-input:focus ~ .custom-file-label { + border-color: #80bdff; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-file-input[disabled] ~ .custom-file-label, +.custom-file-input:disabled ~ .custom-file-label { + background-color: #e9ecef; +} + +.custom-file-input:lang(en) ~ .custom-file-label::after { + content: "Browse"; +} + +.custom-file-input ~ .custom-file-label[data-browse]::after { + content: attr(data-browse); +} + +.custom-file-label { + position: absolute; + top: 0; + right: 0; + left: 0; + z-index: 1; + height: calc(1.5em + 0.75rem + 2px); + padding: 0.375rem 0.75rem; + font-weight: 400; + line-height: 1.5; + color: #495057; + background-color: #fff; + border: 1px solid #ced4da; + border-radius: 0.25rem; +} + +.custom-file-label::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + z-index: 3; + display: block; + height: calc(1.5em + 0.75rem); + padding: 0.375rem 0.75rem; + line-height: 1.5; + color: #495057; + content: "Browse"; + background-color: #e9ecef; + border-left: inherit; + border-radius: 0 0.25rem 0.25rem 0; +} + +.custom-range { + width: 100%; + height: 1.4rem; + padding: 0; + background-color: transparent; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +.custom-range:focus { + outline: none; +} + +.custom-range:focus::-webkit-slider-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-range:focus::-moz-range-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-range:focus::-ms-thumb { + box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.custom-range::-moz-focus-outer { + border: 0; +} + +.custom-range::-webkit-slider-thumb { + width: 1rem; + height: 1rem; + margin-top: -0.25rem; + background-color: #007bff; + border: 0; + border-radius: 1rem; + -webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -webkit-appearance: none; + appearance: none; +} + +@media (prefers-reduced-motion: reduce) { + .custom-range::-webkit-slider-thumb { + -webkit-transition: none; + transition: none; + } +} + +.custom-range::-webkit-slider-thumb:active { + background-color: #b3d7ff; +} + +.custom-range::-webkit-slider-runnable-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} + +.custom-range::-moz-range-thumb { + width: 1rem; + height: 1rem; + background-color: #007bff; + border: 0; + border-radius: 1rem; + -moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + -moz-appearance: none; + appearance: none; +} + +@media (prefers-reduced-motion: reduce) { + .custom-range::-moz-range-thumb { + -moz-transition: none; + transition: none; + } +} + +.custom-range::-moz-range-thumb:active { + background-color: #b3d7ff; +} + +.custom-range::-moz-range-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: #dee2e6; + border-color: transparent; + border-radius: 1rem; +} + +.custom-range::-ms-thumb { + width: 1rem; + height: 1rem; + margin-top: 0; + margin-right: 0.2rem; + margin-left: 0.2rem; + background-color: #007bff; + border: 0; + border-radius: 1rem; + -ms-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; + appearance: none; +} + +@media (prefers-reduced-motion: reduce) { + .custom-range::-ms-thumb { + -ms-transition: none; + transition: none; + } +} + +.custom-range::-ms-thumb:active { + background-color: #b3d7ff; +} + +.custom-range::-ms-track { + width: 100%; + height: 0.5rem; + color: transparent; + cursor: pointer; + background-color: transparent; + border-color: transparent; + border-width: 0.5rem; +} + +.custom-range::-ms-fill-lower { + background-color: #dee2e6; + border-radius: 1rem; +} + +.custom-range::-ms-fill-upper { + margin-right: 15px; + background-color: #dee2e6; + border-radius: 1rem; +} + +.custom-range:disabled::-webkit-slider-thumb { + background-color: #adb5bd; +} + +.custom-range:disabled::-webkit-slider-runnable-track { + cursor: default; +} + +.custom-range:disabled::-moz-range-thumb { + background-color: #adb5bd; +} + +.custom-range:disabled::-moz-range-track { + cursor: default; +} + +.custom-range:disabled::-ms-thumb { + background-color: #adb5bd; +} + +.custom-control-label::before, +.custom-file-label, +.custom-select { + transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .custom-control-label::before, + .custom-file-label, + .custom-select { + transition: none; + } +} + +.nav { + display: flex; + flex-wrap: wrap; + padding-left: 0; + margin-bottom: 0; + list-style: none; +} + +.nav-link { + display: block; + padding: 0.5rem 1rem; +} + +.nav-link:hover, .nav-link:focus { + text-decoration: none; +} + +.nav-link.disabled { + color: #6c757d; + pointer-events: none; + cursor: default; +} + +.nav-tabs { + border-bottom: 1px solid #dee2e6; +} + +.nav-tabs .nav-item { + margin-bottom: -1px; +} + +.nav-tabs .nav-link { + border: 1px solid transparent; + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} + +.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus { + border-color: #e9ecef #e9ecef #dee2e6; +} + +.nav-tabs .nav-link.disabled { + color: #6c757d; + background-color: transparent; + border-color: transparent; +} + +.nav-tabs .nav-link.active, +.nav-tabs .nav-item.show .nav-link { + 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 { + border-radius: 0.25rem; +} + +.nav-pills .nav-link.active, +.nav-pills .show > .nav-link { + color: #fff; + background-color: #007bff; +} + +.nav-fill .nav-item { + flex: 1 1 auto; + text-align: center; +} + +.nav-justified .nav-item { + 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: 0.5rem 1rem; +} + +.navbar .container, +.navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl { + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: space-between; +} + +.navbar-brand { + display: inline-block; + padding-top: 0.3125rem; + padding-bottom: 0.3125rem; + margin-right: 1rem; + font-size: 1.25rem; + line-height: inherit; + white-space: nowrap; +} + +.navbar-brand:hover, .navbar-brand:focus { + text-decoration: none; +} + +.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; + float: none; +} + +.navbar-text { + display: inline-block; + padding-top: 0.5rem; + padding-bottom: 0.5rem; +} + +.navbar-collapse { + flex-basis: 100%; + flex-grow: 1; + align-items: center; +} + +.navbar-toggler { + padding: 0.25rem 0.75rem; + font-size: 1.25rem; + line-height: 1; + background-color: transparent; + border: 1px solid transparent; + border-radius: 0.25rem; +} + +.navbar-toggler:hover, .navbar-toggler:focus { + text-decoration: none; +} + +.navbar-toggler-icon { + display: inline-block; + width: 1.5em; + height: 1.5em; + vertical-align: middle; + content: ""; + background: no-repeat center center; + background-size: 100% 100%; +} + +@media (max-width: 575.98px) { + .navbar-expand-sm > .container, + .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl { + padding-right: 0; + padding-left: 0; + } +} + +@media (min-width: 576px) { + .navbar-expand-sm { + flex-flow: row 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: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-sm > .container, + .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl { + flex-wrap: nowrap; + } + .navbar-expand-sm .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-sm .navbar-toggler { + display: none; + } +} + +@media (max-width: 767.98px) { + .navbar-expand-md > .container, + .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl { + padding-right: 0; + padding-left: 0; + } +} + +@media (min-width: 768px) { + .navbar-expand-md { + flex-flow: row 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: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-md > .container, + .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl { + flex-wrap: nowrap; + } + .navbar-expand-md .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-md .navbar-toggler { + display: none; + } +} + +@media (max-width: 991.98px) { + .navbar-expand-lg > .container, + .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl { + padding-right: 0; + padding-left: 0; + } +} + +@media (min-width: 992px) { + .navbar-expand-lg { + flex-flow: row 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: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-lg > .container, + .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl { + flex-wrap: nowrap; + } + .navbar-expand-lg .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-lg .navbar-toggler { + display: none; + } +} + +@media (max-width: 1199.98px) { + .navbar-expand-xl > .container, + .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl { + padding-right: 0; + padding-left: 0; + } +} + +@media (min-width: 1200px) { + .navbar-expand-xl { + flex-flow: row 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: 0.5rem; + padding-left: 0.5rem; + } + .navbar-expand-xl > .container, + .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl { + flex-wrap: nowrap; + } + .navbar-expand-xl .navbar-collapse { + display: flex !important; + flex-basis: auto; + } + .navbar-expand-xl .navbar-toggler { + display: none; + } +} + +.navbar-expand { + flex-flow: row nowrap; + justify-content: flex-start; +} + +.navbar-expand > .container, +.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl { + padding-right: 0; + padding-left: 0; +} + +.navbar-expand .navbar-nav { + flex-direction: row; +} + +.navbar-expand .navbar-nav .dropdown-menu { + position: absolute; +} + +.navbar-expand .navbar-nav .nav-link { + padding-right: 0.5rem; + padding-left: 0.5rem; +} + +.navbar-expand > .container, +.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl { + flex-wrap: nowrap; +} + +.navbar-expand .navbar-collapse { + display: flex !important; + flex-basis: auto; +} + +.navbar-expand .navbar-toggler { + display: none; +} + +.navbar-light .navbar-brand { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-light .navbar-nav .nav-link { + color: rgba(0, 0, 0, 0.5); +} + +.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus { + color: rgba(0, 0, 0, 0.7); +} + +.navbar-light .navbar-nav .nav-link.disabled { + color: rgba(0, 0, 0, 0.3); +} + +.navbar-light .navbar-nav .show > .nav-link, +.navbar-light .navbar-nav .active > .nav-link, +.navbar-light .navbar-nav .nav-link.show, +.navbar-light .navbar-nav .nav-link.active { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-light .navbar-toggler { + color: rgba(0, 0, 0, 0.5); + border-color: rgba(0, 0, 0, 0.1); +} + +.navbar-light .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' 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, 0.5); +} + +.navbar-light .navbar-text a { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus { + color: rgba(0, 0, 0, 0.9); +} + +.navbar-dark .navbar-brand { + color: #fff; +} + +.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus { + color: #fff; +} + +.navbar-dark .navbar-nav .nav-link { + color: rgba(255, 255, 255, 0.5); +} + +.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus { + color: rgba(255, 255, 255, 0.75); +} + +.navbar-dark .navbar-nav .nav-link.disabled { + color: rgba(255, 255, 255, 0.25); +} + +.navbar-dark .navbar-nav .show > .nav-link, +.navbar-dark .navbar-nav .active > .nav-link, +.navbar-dark .navbar-nav .nav-link.show, +.navbar-dark .navbar-nav .nav-link.active { + color: #fff; +} + +.navbar-dark .navbar-toggler { + color: rgba(255, 255, 255, 0.5); + border-color: rgba(255, 255, 255, 0.1); +} + +.navbar-dark .navbar-toggler-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' 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, 0.5); +} + +.navbar-dark .navbar-text a { + color: #fff; +} + +.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus { + color: #fff; +} + +.card { + position: relative; + display: flex; + flex-direction: column; + min-width: 0; + word-wrap: break-word; + background-color: #fff; + background-clip: border-box; + border: 1px solid rgba(0, 0, 0, 0.125); + border-radius: 0.25rem; +} + +.card > hr { + margin-right: 0; + margin-left: 0; +} + +.card > .list-group:first-child .list-group-item:first-child { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} + +.card > .list-group:last-child .list-group-item:last-child { + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} + +.card-body { + flex: 1 1 auto; + min-height: 1px; + padding: 1.25rem; +} + +.card-title { + margin-bottom: 0.75rem; +} + +.card-subtitle { + margin-top: -0.375rem; + margin-bottom: 0; +} + +.card-text:last-child { + margin-bottom: 0; +} + +.card-link:hover { + text-decoration: none; +} + +.card-link + .card-link { + margin-left: 1.25rem; +} + +.card-header { + padding: 0.75rem 1.25rem; + margin-bottom: 0; + background-color: rgba(0, 0, 0, 0.03); + border-bottom: 1px solid rgba(0, 0, 0, 0.125); +} + +.card-header:first-child { + border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0; +} + +.card-header + .list-group .list-group-item:first-child { + border-top: 0; +} + +.card-footer { + padding: 0.75rem 1.25rem; + background-color: rgba(0, 0, 0, 0.03); + border-top: 1px solid rgba(0, 0, 0, 0.125); +} + +.card-footer:last-child { + border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px); +} + +.card-header-tabs { + margin-right: -0.625rem; + margin-bottom: -0.75rem; + margin-left: -0.625rem; + border-bottom: 0; +} + +.card-header-pills { + margin-right: -0.625rem; + margin-left: -0.625rem; +} + +.card-img-overlay { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + padding: 1.25rem; +} + +.card-img, +.card-img-top, +.card-img-bottom { + flex-shrink: 0; + width: 100%; +} + +.card-img, +.card-img-top { + border-top-left-radius: calc(0.25rem - 1px); + border-top-right-radius: calc(0.25rem - 1px); +} + +.card-img, +.card-img-bottom { + border-bottom-right-radius: calc(0.25rem - 1px); + border-bottom-left-radius: calc(0.25rem - 1px); +} + +.card-deck .card { + margin-bottom: 15px; +} + +@media (min-width: 576px) { + .card-deck { + display: flex; + flex-flow: row wrap; + margin-right: -15px; + margin-left: -15px; + } + .card-deck .card { + flex: 1 0 0%; + margin-right: 15px; + margin-bottom: 0; + margin-left: 15px; + } +} + +.card-group > .card { + margin-bottom: 15px; +} + +@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-img-top, + .card-group > .card:not(:last-child) .card-header { + border-top-right-radius: 0; + } + .card-group > .card:not(:last-child) .card-img-bottom, + .card-group > .card:not(:last-child) .card-footer { + 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-img-top, + .card-group > .card:not(:first-child) .card-header { + border-top-left-radius: 0; + } + .card-group > .card:not(:first-child) .card-img-bottom, + .card-group > .card:not(:first-child) .card-footer { + border-bottom-left-radius: 0; + } +} + +.card-columns .card { + margin-bottom: 0.75rem; +} + +@media (min-width: 576px) { + .card-columns { + -moz-column-count: 3; + column-count: 3; + -moz-column-gap: 1.25rem; + column-gap: 1.25rem; + orphans: 1; + widows: 1; + } + .card-columns .card { + display: inline-block; + width: 100%; + } +} + +.accordion > .card { + overflow: hidden; +} + +.accordion > .card:not(:last-of-type) { + border-bottom: 0; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.accordion > .card:not(:first-of-type) { + border-top-left-radius: 0; + border-top-right-radius: 0; +} + +.accordion > .card > .card-header { + border-radius: 0; + margin-bottom: -1px; +} + +.breadcrumb { + display: flex; + flex-wrap: wrap; + padding: 0.75rem 1rem; + margin-bottom: 1rem; + list-style: none; + background-color: #e9ecef; + border-radius: 0.25rem; +} + +.breadcrumb-item + .breadcrumb-item { + padding-left: 0.5rem; +} + +.breadcrumb-item + .breadcrumb-item::before { + display: inline-block; + padding-right: 0.5rem; + color: #6c757d; + content: "/"; +} + +.breadcrumb-item + .breadcrumb-item:hover::before { + text-decoration: underline; +} + +.breadcrumb-item + .breadcrumb-item:hover::before { + text-decoration: none; +} + +.breadcrumb-item.active { + color: #6c757d; +} + +.pagination { + display: flex; + padding-left: 0; + list-style: none; + border-radius: 0.25rem; +} + +.page-link { + position: relative; + display: block; + padding: 0.5rem 0.75rem; + margin-left: -1px; + line-height: 1.25; + color: #007bff; + background-color: #fff; + border: 1px solid #dee2e6; +} + +.page-link:hover { + z-index: 2; + color: #0056b3; + text-decoration: none; + background-color: #e9ecef; + border-color: #dee2e6; +} + +.page-link:focus { + z-index: 3; + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25); +} + +.page-item:first-child .page-link { + margin-left: 0; + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} + +.page-item:last-child .page-link { + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; +} + +.page-item.active .page-link { + z-index: 3; + color: #fff; + background-color: #007bff; + border-color: #007bff; +} + +.page-item.disabled .page-link { + color: #6c757d; + pointer-events: none; + cursor: auto; + background-color: #fff; + border-color: #dee2e6; +} + +.pagination-lg .page-link { + padding: 0.75rem 1.5rem; + font-size: 1.25rem; + line-height: 1.5; +} + +.pagination-lg .page-item:first-child .page-link { + border-top-left-radius: 0.3rem; + border-bottom-left-radius: 0.3rem; +} + +.pagination-lg .page-item:last-child .page-link { + border-top-right-radius: 0.3rem; + border-bottom-right-radius: 0.3rem; +} + +.pagination-sm .page-link { + padding: 0.25rem 0.5rem; + font-size: 0.875rem; + line-height: 1.5; +} + +.pagination-sm .page-item:first-child .page-link { + border-top-left-radius: 0.2rem; + border-bottom-left-radius: 0.2rem; +} + +.pagination-sm .page-item:last-child .page-link { + border-top-right-radius: 0.2rem; + border-bottom-right-radius: 0.2rem; +} + +.badge { + display: inline-block; + padding: 0.25em 0.4em; + font-size: 75%; + font-weight: 700; + line-height: 1; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: 0.25rem; + transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .badge { + transition: none; + } +} + +a.badge:hover, a.badge:focus { + text-decoration: none; +} + +.badge:empty { + display: none; +} + +.btn .badge { + position: relative; + top: -1px; +} + +.badge-pill { + padding-right: 0.6em; + padding-left: 0.6em; + border-radius: 10rem; +} + +.badge-primary { + color: #fff; + background-color: #007bff; +} + +a.badge-primary:hover, a.badge-primary:focus { + color: #fff; + background-color: #0062cc; +} + +a.badge-primary:focus, a.badge-primary.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5); +} + +.badge-secondary { + color: #fff; + background-color: #6c757d; +} + +a.badge-secondary:hover, a.badge-secondary:focus { + color: #fff; + background-color: #545b62; +} + +a.badge-secondary:focus, a.badge-secondary.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5); +} + +.badge-success { + color: #fff; + background-color: #28a745; +} + +a.badge-success:hover, a.badge-success:focus { + color: #fff; + background-color: #1e7e34; +} + +a.badge-success:focus, a.badge-success.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5); +} + +.badge-info { + color: #fff; + background-color: #17a2b8; +} + +a.badge-info:hover, a.badge-info:focus { + color: #fff; + background-color: #117a8b; +} + +a.badge-info:focus, a.badge-info.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5); +} + +.badge-warning { + color: #212529; + background-color: #ffc107; +} + +a.badge-warning:hover, a.badge-warning:focus { + color: #212529; + background-color: #d39e00; +} + +a.badge-warning:focus, a.badge-warning.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5); +} + +.badge-danger { + color: #fff; + background-color: #dc3545; +} + +a.badge-danger:hover, a.badge-danger:focus { + color: #fff; + background-color: #bd2130; +} + +a.badge-danger:focus, a.badge-danger.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5); +} + +.badge-light { + color: #212529; + background-color: #f8f9fa; +} + +a.badge-light:hover, a.badge-light:focus { + color: #212529; + background-color: #dae0e5; +} + +a.badge-light:focus, a.badge-light.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5); +} + +.badge-dark { + color: #fff; + background-color: #343a40; +} + +a.badge-dark:hover, a.badge-dark:focus { + color: #fff; + background-color: #1d2124; +} + +a.badge-dark:focus, a.badge-dark.focus { + outline: 0; + box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5); +} + +.jumbotron { + padding: 2rem 1rem; + margin-bottom: 2rem; + background-color: #e9ecef; + border-radius: 0.3rem; +} + +@media (min-width: 576px) { + .jumbotron { + padding: 4rem 2rem; + } +} + +.jumbotron-fluid { + padding-right: 0; + padding-left: 0; + border-radius: 0; +} + +.alert { + position: relative; + padding: 0.75rem 1.25rem; + margin-bottom: 1rem; + border: 1px solid transparent; + border-radius: 0.25rem; +} + +.alert-heading { + color: inherit; +} + +.alert-link { + font-weight: 700; +} + +.alert-dismissible { + padding-right: 4rem; +} + +.alert-dismissible .close { + position: absolute; + top: 0; + right: 0; + padding: 0.75rem 1.25rem; + color: inherit; +} + +.alert-primary { + color: #004085; + background-color: #cce5ff; + border-color: #b8daff; +} + +.alert-primary hr { + border-top-color: #9fcdff; +} + +.alert-primary .alert-link { + color: #002752; +} + +.alert-secondary { + color: #383d41; + background-color: #e2e3e5; + border-color: #d6d8db; +} + +.alert-secondary hr { + border-top-color: #c8cbcf; +} + +.alert-secondary .alert-link { + color: #202326; +} + +.alert-success { + color: #155724; + background-color: #d4edda; + border-color: #c3e6cb; +} + +.alert-success hr { + border-top-color: #b1dfbb; +} + +.alert-success .alert-link { + color: #0b2e13; +} + +.alert-info { + color: #0c5460; + background-color: #d1ecf1; + border-color: #bee5eb; +} + +.alert-info hr { + border-top-color: #abdde5; +} + +.alert-info .alert-link { + color: #062c33; +} + +.alert-warning { + color: #856404; + background-color: #fff3cd; + border-color: #ffeeba; +} + +.alert-warning hr { + border-top-color: #ffe8a1; +} + +.alert-warning .alert-link { + color: #533f03; +} + +.alert-danger { + color: #721c24; + background-color: #f8d7da; + border-color: #f5c6cb; +} + +.alert-danger hr { + border-top-color: #f1b0b7; +} + +.alert-danger .alert-link { + color: #491217; +} + +.alert-light { + color: #818182; + background-color: #fefefe; + border-color: #fdfdfe; +} + +.alert-light hr { + border-top-color: #ececf6; +} + +.alert-light .alert-link { + color: #686868; +} + +.alert-dark { + color: #1b1e21; + background-color: #d6d8d9; + border-color: #c6c8ca; +} + +.alert-dark hr { + border-top-color: #b9bbbe; +} + +.alert-dark .alert-link { + color: #040505; +} + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 1rem 0; + } + to { + background-position: 0 0; + } +} + +@keyframes progress-bar-stripes { + from { + background-position: 1rem 0; + } + to { + background-position: 0 0; + } +} + +.progress { + display: flex; + height: 1rem; + overflow: hidden; + font-size: 0.75rem; + background-color: #e9ecef; + border-radius: 0.25rem; +} + +.progress-bar { + display: flex; + flex-direction: column; + justify-content: center; + overflow: hidden; + color: #fff; + text-align: center; + white-space: nowrap; + background-color: #007bff; + transition: width 0.6s ease; +} + +@media (prefers-reduced-motion: reduce) { + .progress-bar { + transition: none; + } +} + +.progress-bar-striped { + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-size: 1rem 1rem; +} + +.progress-bar-animated { + -webkit-animation: progress-bar-stripes 1s linear infinite; + animation: progress-bar-stripes 1s linear infinite; +} + +@media (prefers-reduced-motion: reduce) { + .progress-bar-animated { + -webkit-animation: none; + animation: none; + } +} + +.media { + display: flex; + align-items: flex-start; +} + +.media-body { + flex: 1; +} + +.list-group { + display: flex; + flex-direction: column; + padding-left: 0; + margin-bottom: 0; +} + +.list-group-item-action { + width: 100%; + color: #495057; + text-align: inherit; +} + +.list-group-item-action:hover, .list-group-item-action:focus { + z-index: 1; + color: #495057; + text-decoration: none; + background-color: #f8f9fa; +} + +.list-group-item-action:active { + color: #212529; + background-color: #e9ecef; +} + +.list-group-item { + position: relative; + display: block; + padding: 0.75rem 1.25rem; + background-color: #fff; + border: 1px solid rgba(0, 0, 0, 0.125); +} + +.list-group-item:first-child { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; +} + +.list-group-item:last-child { + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} + +.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: #007bff; + border-color: #007bff; +} + +.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: 0.25rem; + border-top-right-radius: 0; +} + +.list-group-horizontal .list-group-item:last-child { + border-top-right-radius: 0.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: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-sm .list-group-item:last-child { + border-top-right-radius: 0.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: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-md .list-group-item:last-child { + border-top-right-radius: 0.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: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-lg .list-group-item:last-child { + border-top-right-radius: 0.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: 0.25rem; + border-top-right-radius: 0; + } + .list-group-horizontal-xl .list-group-item:last-child { + border-top-right-radius: 0.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; + } +} + +.list-group-flush .list-group-item { + border-right-width: 0; + border-left-width: 0; + border-radius: 0; +} + +.list-group-flush .list-group-item:first-child { + border-top-width: 0; +} + +.list-group-flush:last-child .list-group-item:last-child { + border-bottom-width: 0; +} + +.list-group-item-primary { + color: #004085; + background-color: #b8daff; +} + +.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus { + color: #004085; + background-color: #9fcdff; +} + +.list-group-item-primary.list-group-item-action.active { + color: #fff; + background-color: #004085; + border-color: #004085; +} + +.list-group-item-secondary { + color: #383d41; + background-color: #d6d8db; +} + +.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus { + color: #383d41; + background-color: #c8cbcf; +} + +.list-group-item-secondary.list-group-item-action.active { + color: #fff; + background-color: #383d41; + border-color: #383d41; +} + +.list-group-item-success { + color: #155724; + background-color: #c3e6cb; +} + +.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus { + color: #155724; + background-color: #b1dfbb; +} + +.list-group-item-success.list-group-item-action.active { + color: #fff; + background-color: #155724; + border-color: #155724; +} + +.list-group-item-info { + color: #0c5460; + background-color: #bee5eb; +} + +.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus { + color: #0c5460; + background-color: #abdde5; +} + +.list-group-item-info.list-group-item-action.active { + color: #fff; + background-color: #0c5460; + border-color: #0c5460; +} + +.list-group-item-warning { + color: #856404; + background-color: #ffeeba; +} + +.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus { + color: #856404; + background-color: #ffe8a1; +} + +.list-group-item-warning.list-group-item-action.active { + color: #fff; + background-color: #856404; + border-color: #856404; +} + +.list-group-item-danger { + color: #721c24; + background-color: #f5c6cb; +} + +.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus { + color: #721c24; + background-color: #f1b0b7; +} + +.list-group-item-danger.list-group-item-action.active { + color: #fff; + background-color: #721c24; + border-color: #721c24; +} + +.list-group-item-light { + color: #818182; + background-color: #fdfdfe; +} + +.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus { + color: #818182; + background-color: #ececf6; +} + +.list-group-item-light.list-group-item-action.active { + color: #fff; + background-color: #818182; + border-color: #818182; +} + +.list-group-item-dark { + color: #1b1e21; + background-color: #c6c8ca; +} + +.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus { + color: #1b1e21; + background-color: #b9bbbe; +} + +.list-group-item-dark.list-group-item-action.active { + color: #fff; + background-color: #1b1e21; + border-color: #1b1e21; +} + +.close { + float: right; + font-size: 1.5rem; + font-weight: 700; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + opacity: .5; +} + +.close:hover { + color: #000; + text-decoration: none; +} + +.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus { + opacity: .75; +} + +button.close { + padding: 0; + background-color: transparent; + border: 0; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} + +a.close.disabled { + pointer-events: none; +} + +.toast { + max-width: 350px; + overflow: hidden; + font-size: 0.875rem; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.1); + box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1); + -webkit-backdrop-filter: blur(10px); + backdrop-filter: blur(10px); + opacity: 0; + border-radius: 0.25rem; +} + +.toast:not(:last-child) { + margin-bottom: 0.75rem; +} + +.toast.showing { + opacity: 1; +} + +.toast.show { + display: block; + opacity: 1; +} + +.toast.hide { + display: none; +} + +.toast-header { + display: flex; + align-items: center; + padding: 0.25rem 0.75rem; + color: #6c757d; + background-color: rgba(255, 255, 255, 0.85); + background-clip: padding-box; + border-bottom: 1px solid rgba(0, 0, 0, 0.05); +} + +.toast-body { + padding: 0.75rem; +} + +.modal-open { + overflow: hidden; +} + +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; +} + +.modal { + position: fixed; + top: 0; + left: 0; + z-index: 1050; + display: none; + width: 100%; + height: 100%; + overflow: hidden; + outline: 0; +} + +.modal-dialog { + position: relative; + width: auto; + margin: 0.5rem; + pointer-events: none; +} + +.modal.fade .modal-dialog { + transition: transform 0.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 { + display: flex; + max-height: calc(100% - 1rem); +} + +.modal-dialog-scrollable .modal-content { + max-height: calc(100vh - 1rem); + overflow: hidden; +} + +.modal-dialog-scrollable .modal-header, +.modal-dialog-scrollable .modal-footer { + flex-shrink: 0; +} + +.modal-dialog-scrollable .modal-body { + overflow-y: auto; +} + +.modal-dialog-centered { + display: flex; + align-items: center; + min-height: calc(100% - 1rem); +} + +.modal-dialog-centered::before { + display: block; + height: calc(100vh - 1rem); + content: ""; +} + +.modal-dialog-centered.modal-dialog-scrollable { + flex-direction: column; + justify-content: center; + height: 100%; +} + +.modal-dialog-centered.modal-dialog-scrollable .modal-content { + max-height: none; +} + +.modal-dialog-centered.modal-dialog-scrollable::before { + content: none; +} + +.modal-content { + position: relative; + display: flex; + flex-direction: column; + width: 100%; + pointer-events: auto; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; + outline: 0; +} + +.modal-backdrop { + position: fixed; + top: 0; + left: 0; + z-index: 1040; + width: 100vw; + height: 100vh; + background-color: #000; +} + +.modal-backdrop.fade { + opacity: 0; +} + +.modal-backdrop.show { + opacity: 0.5; +} + +.modal-header { + display: flex; + align-items: flex-start; + justify-content: space-between; + padding: 1rem 1rem; + border-bottom: 1px solid #dee2e6; + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px); +} + +.modal-header .close { + padding: 1rem 1rem; + margin: -1rem -1rem -1rem auto; +} + +.modal-title { + margin-bottom: 0; + line-height: 1.5; +} + +.modal-body { + position: relative; + flex: 1 1 auto; + padding: 1rem; +} + +.modal-footer { + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: flex-end; + padding: 0.75rem; + border-top: 1px solid #dee2e6; + border-bottom-right-radius: calc(0.3rem - 1px); + border-bottom-left-radius: calc(0.3rem - 1px); +} + +.modal-footer > * { + margin: 0.25rem; +} + +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; +} + +@media (min-width: 576px) { + .modal-dialog { + max-width: 500px; + margin: 1.75rem auto; + } + .modal-dialog-scrollable { + max-height: calc(100% - 3.5rem); + } + .modal-dialog-scrollable .modal-content { + max-height: calc(100vh - 3.5rem); + } + .modal-dialog-centered { + min-height: calc(100% - 3.5rem); + } + .modal-dialog-centered::before { + height: calc(100vh - 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; + } +} + +.tooltip { + position: absolute; + z-index: 1070; + display: block; + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.875rem; + word-wrap: break-word; + opacity: 0; +} + +.tooltip.show { + opacity: 0.9; +} + +.tooltip .arrow { + position: absolute; + display: block; + width: 0.8rem; + height: 0.4rem; +} + +.tooltip .arrow::before { + position: absolute; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bs-tooltip-top, .bs-tooltip-auto[x-placement^="top"] { + padding: 0.4rem 0; +} + +.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^="top"] .arrow { + bottom: 0; +} + +.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^="top"] .arrow::before { + top: 0; + border-width: 0.4rem 0.4rem 0; + border-top-color: #000; +} + +.bs-tooltip-right, .bs-tooltip-auto[x-placement^="right"] { + padding: 0 0.4rem; +} + +.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^="right"] .arrow { + left: 0; + width: 0.4rem; + height: 0.8rem; +} + +.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^="right"] .arrow::before { + right: 0; + border-width: 0.4rem 0.4rem 0.4rem 0; + border-right-color: #000; +} + +.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^="bottom"] { + padding: 0.4rem 0; +} + +.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^="bottom"] .arrow { + top: 0; +} + +.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^="bottom"] .arrow::before { + bottom: 0; + border-width: 0 0.4rem 0.4rem; + border-bottom-color: #000; +} + +.bs-tooltip-left, .bs-tooltip-auto[x-placement^="left"] { + padding: 0 0.4rem; +} + +.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^="left"] .arrow { + right: 0; + width: 0.4rem; + height: 0.8rem; +} + +.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^="left"] .arrow::before { + left: 0; + border-width: 0.4rem 0 0.4rem 0.4rem; + border-left-color: #000; +} + +.tooltip-inner { + max-width: 200px; + padding: 0.25rem 0.5rem; + color: #fff; + text-align: center; + background-color: #000; + border-radius: 0.25rem; +} + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: block; + max-width: 276px; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; + font-style: normal; + font-weight: 400; + line-height: 1.5; + text-align: left; + text-align: start; + text-decoration: none; + text-shadow: none; + text-transform: none; + letter-spacing: normal; + word-break: normal; + word-spacing: normal; + white-space: normal; + line-break: auto; + font-size: 0.875rem; + word-wrap: break-word; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 0.3rem; +} + +.popover .arrow { + position: absolute; + display: block; + width: 1rem; + height: 0.5rem; + margin: 0 0.3rem; +} + +.popover .arrow::before, .popover .arrow::after { + position: absolute; + display: block; + content: ""; + border-color: transparent; + border-style: solid; +} + +.bs-popover-top, .bs-popover-auto[x-placement^="top"] { + margin-bottom: 0.5rem; +} + +.bs-popover-top > .arrow, .bs-popover-auto[x-placement^="top"] > .arrow { + bottom: calc(-0.5rem - 1px); +} + +.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^="top"] > .arrow::before { + bottom: 0; + border-width: 0.5rem 0.5rem 0; + border-top-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^="top"] > .arrow::after { + bottom: 1px; + border-width: 0.5rem 0.5rem 0; + border-top-color: #fff; +} + +.bs-popover-right, .bs-popover-auto[x-placement^="right"] { + margin-left: 0.5rem; +} + +.bs-popover-right > .arrow, .bs-popover-auto[x-placement^="right"] > .arrow { + left: calc(-0.5rem - 1px); + width: 0.5rem; + height: 1rem; + margin: 0.3rem 0; +} + +.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^="right"] > .arrow::before { + left: 0; + border-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^="right"] > .arrow::after { + left: 1px; + border-width: 0.5rem 0.5rem 0.5rem 0; + border-right-color: #fff; +} + +.bs-popover-bottom, .bs-popover-auto[x-placement^="bottom"] { + margin-top: 0.5rem; +} + +.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^="bottom"] > .arrow { + top: calc(-0.5rem - 1px); +} + +.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^="bottom"] > .arrow::before { + top: 0; + border-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^="bottom"] > .arrow::after { + top: 1px; + border-width: 0 0.5rem 0.5rem 0.5rem; + border-bottom-color: #fff; +} + +.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^="bottom"] .popover-header::before { + position: absolute; + top: 0; + left: 50%; + display: block; + width: 1rem; + margin-left: -0.5rem; + content: ""; + border-bottom: 1px solid #f7f7f7; +} + +.bs-popover-left, .bs-popover-auto[x-placement^="left"] { + margin-right: 0.5rem; +} + +.bs-popover-left > .arrow, .bs-popover-auto[x-placement^="left"] > .arrow { + right: calc(-0.5rem - 1px); + width: 0.5rem; + height: 1rem; + margin: 0.3rem 0; +} + +.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^="left"] > .arrow::before { + right: 0; + border-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: rgba(0, 0, 0, 0.25); +} + +.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^="left"] > .arrow::after { + right: 1px; + border-width: 0.5rem 0 0.5rem 0.5rem; + border-left-color: #fff; +} + +.popover-header { + padding: 0.5rem 0.75rem; + margin-bottom: 0; + font-size: 1rem; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-top-left-radius: calc(0.3rem - 1px); + border-top-right-radius: calc(0.3rem - 1px); +} + +.popover-header:empty { + display: none; +} + +.popover-body { + padding: 0.5rem 0.75rem; + color: #212529; +} + +.carousel { + position: relative; +} + +.carousel.pointer-event { + touch-action: pan-y; +} + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; +} + +.carousel-inner::after { + display: block; + clear: both; + content: ""; +} + +.carousel-item { + position: relative; + display: none; + float: left; + width: 100%; + margin-right: -100%; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transition: transform 0.6s ease-in-out; +} + +@media (prefers-reduced-motion: reduce) { + .carousel-item { + transition: none; + } +} + +.carousel-item.active, +.carousel-item-next, +.carousel-item-prev { + display: block; +} + +.carousel-item-next:not(.carousel-item-left), +.active.carousel-item-right { + transform: translateX(100%); +} + +.carousel-item-prev:not(.carousel-item-right), +.active.carousel-item-left { + transform: translateX(-100%); +} + +.carousel-fade .carousel-item { + opacity: 0; + transition-property: opacity; + transform: none; +} + +.carousel-fade .carousel-item.active, +.carousel-fade .carousel-item-next.carousel-item-left, +.carousel-fade .carousel-item-prev.carousel-item-right { + z-index: 1; + opacity: 1; +} + +.carousel-fade .active.carousel-item-left, +.carousel-fade .active.carousel-item-right { + z-index: 0; + opacity: 0; + transition: opacity 0s 0.6s; +} + +@media (prefers-reduced-motion: reduce) { + .carousel-fade .active.carousel-item-left, + .carousel-fade .active.carousel-item-right { + transition: none; + } +} + +.carousel-control-prev, +.carousel-control-next { + position: absolute; + top: 0; + bottom: 0; + z-index: 1; + display: flex; + align-items: center; + justify-content: center; + width: 15%; + color: #fff; + text-align: center; + opacity: 0.5; + transition: opacity 0.15s ease; +} + +@media (prefers-reduced-motion: reduce) { + .carousel-control-prev, + .carousel-control-next { + transition: none; + } +} + +.carousel-control-prev:hover, .carousel-control-prev:focus, +.carousel-control-next:hover, +.carousel-control-next:focus { + color: #fff; + text-decoration: none; + outline: 0; + opacity: 0.9; +} + +.carousel-control-prev { + left: 0; +} + +.carousel-control-next { + right: 0; +} + +.carousel-control-prev-icon, +.carousel-control-next-icon { + display: inline-block; + width: 20px; + height: 20px; + background: no-repeat 50% / 100% 100%; +} + +.carousel-control-prev-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e"); +} + +.carousel-control-next-icon { + background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e"); +} + +.carousel-indicators { + position: absolute; + right: 0; + bottom: 0; + left: 0; + z-index: 15; + display: flex; + justify-content: center; + padding-left: 0; + margin-right: 15%; + margin-left: 15%; + list-style: none; +} + +.carousel-indicators li { + box-sizing: content-box; + flex: 0 1 auto; + width: 30px; + height: 3px; + margin-right: 3px; + margin-left: 3px; + text-indent: -999px; + cursor: pointer; + background-color: #fff; + background-clip: padding-box; + border-top: 10px solid transparent; + border-bottom: 10px solid transparent; + opacity: .5; + transition: opacity 0.6s ease; +} + +@media (prefers-reduced-motion: reduce) { + .carousel-indicators li { + transition: none; + } +} + +.carousel-indicators .active { + opacity: 1; +} + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center; +} + +@-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: text-bottom; + border: 0.25em solid currentColor; + border-right-color: transparent; + border-radius: 50%; + -webkit-animation: spinner-border .75s linear infinite; + animation: spinner-border .75s linear infinite; +} + +.spinner-border-sm { + width: 1rem; + height: 1rem; + border-width: 0.2em; +} + +@-webkit-keyframes spinner-grow { + 0% { + transform: scale(0); + } + 50% { + opacity: 1; + } +} + +@keyframes spinner-grow { + 0% { + transform: scale(0); + } + 50% { + opacity: 1; + } +} + +.spinner-grow { + display: inline-block; + width: 2rem; + height: 2rem; + vertical-align: text-bottom; + background-color: currentColor; + border-radius: 50%; + opacity: 0; + -webkit-animation: spinner-grow .75s linear infinite; + animation: spinner-grow .75s linear infinite; +} + +.spinner-grow-sm { + width: 1rem; + height: 1rem; +} + +.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; +} + +.bg-primary { + background-color: #007bff !important; +} + +a.bg-primary:hover, a.bg-primary:focus, +button.bg-primary:hover, +button.bg-primary:focus { + background-color: #0062cc !important; +} + +.bg-secondary { + background-color: #6c757d !important; +} + +a.bg-secondary:hover, a.bg-secondary:focus, +button.bg-secondary:hover, +button.bg-secondary:focus { + background-color: #545b62 !important; +} + +.bg-success { + background-color: #28a745 !important; +} + +a.bg-success:hover, a.bg-success:focus, +button.bg-success:hover, +button.bg-success:focus { + background-color: #1e7e34 !important; +} + +.bg-info { + background-color: #17a2b8 !important; +} + +a.bg-info:hover, a.bg-info:focus, +button.bg-info:hover, +button.bg-info:focus { + background-color: #117a8b !important; +} + +.bg-warning { + background-color: #ffc107 !important; +} + +a.bg-warning:hover, a.bg-warning:focus, +button.bg-warning:hover, +button.bg-warning:focus { + background-color: #d39e00 !important; +} + +.bg-danger { + background-color: #dc3545 !important; +} + +a.bg-danger:hover, a.bg-danger:focus, +button.bg-danger:hover, +button.bg-danger:focus { + background-color: #bd2130 !important; +} + +.bg-light { + background-color: #f8f9fa !important; +} + +a.bg-light:hover, a.bg-light:focus, +button.bg-light:hover, +button.bg-light:focus { + background-color: #dae0e5 !important; +} + +.bg-dark { + background-color: #343a40 !important; +} + +a.bg-dark:hover, a.bg-dark:focus, +button.bg-dark:hover, +button.bg-dark:focus { + background-color: #1d2124 !important; +} + +.bg-white { + background-color: #fff !important; +} + +.bg-transparent { + background-color: transparent !important; +} + +.border { + border: 1px solid #dee2e6 !important; +} + +.border-top { + border-top: 1px solid #dee2e6 !important; +} + +.border-right { + border-right: 1px solid #dee2e6 !important; +} + +.border-bottom { + border-bottom: 1px solid #dee2e6 !important; +} + +.border-left { + border-left: 1px solid #dee2e6 !important; +} + +.border-0 { + border: 0 !important; +} + +.border-top-0 { + border-top: 0 !important; +} + +.border-right-0 { + border-right: 0 !important; +} + +.border-bottom-0 { + border-bottom: 0 !important; +} + +.border-left-0 { + border-left: 0 !important; +} + +.border-primary { + border-color: #007bff !important; +} + +.border-secondary { + border-color: #6c757d !important; +} + +.border-success { + border-color: #28a745 !important; +} + +.border-info { + border-color: #17a2b8 !important; +} + +.border-warning { + border-color: #ffc107 !important; +} + +.border-danger { + border-color: #dc3545 !important; +} + +.border-light { + border-color: #f8f9fa !important; +} + +.border-dark { + border-color: #343a40 !important; +} + +.border-white { + border-color: #fff !important; +} + +.rounded-sm { + border-radius: 0.2rem !important; +} + +.rounded { + border-radius: 0.25rem !important; +} + +.rounded-top { + border-top-left-radius: 0.25rem !important; + border-top-right-radius: 0.25rem !important; +} + +.rounded-right { + border-top-right-radius: 0.25rem !important; + border-bottom-right-radius: 0.25rem !important; +} + +.rounded-bottom { + border-bottom-right-radius: 0.25rem !important; + border-bottom-left-radius: 0.25rem !important; +} + +.rounded-left { + border-top-left-radius: 0.25rem !important; + border-bottom-left-radius: 0.25rem !important; +} + +.rounded-lg { + border-radius: 0.3rem !important; +} + +.rounded-circle { + border-radius: 50% !important; +} + +.rounded-pill { + border-radius: 50rem !important; +} + +.rounded-0 { + border-radius: 0 !important; +} + +.clearfix::after { + display: block; + clear: both; + content: ""; +} + +.d-none { + display: none !important; +} + +.d-inline { + display: inline !important; +} + +.d-inline-block { + display: inline-block !important; +} + +.d-block { + display: block !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; +} + +@media (min-width: 576px) { + .d-sm-none { + display: none !important; + } + .d-sm-inline { + display: inline !important; + } + .d-sm-inline-block { + display: inline-block !important; + } + .d-sm-block { + display: block !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; + } +} + +@media (min-width: 768px) { + .d-md-none { + display: none !important; + } + .d-md-inline { + display: inline !important; + } + .d-md-inline-block { + display: inline-block !important; + } + .d-md-block { + display: block !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; + } +} + +@media (min-width: 992px) { + .d-lg-none { + display: none !important; + } + .d-lg-inline { + display: inline !important; + } + .d-lg-inline-block { + display: inline-block !important; + } + .d-lg-block { + display: block !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; + } +} + +@media (min-width: 1200px) { + .d-xl-none { + display: none !important; + } + .d-xl-inline { + display: inline !important; + } + .d-xl-inline-block { + display: inline-block !important; + } + .d-xl-block { + display: block !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; + } +} + +@media print { + .d-print-none { + display: none !important; + } + .d-print-inline { + display: inline !important; + } + .d-print-inline-block { + display: inline-block !important; + } + .d-print-block { + display: block !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; + } +} + +.embed-responsive { + position: relative; + display: block; + width: 100%; + padding: 0; + overflow: hidden; +} + +.embed-responsive::before { + display: block; + content: ""; +} + +.embed-responsive .embed-responsive-item, +.embed-responsive iframe, +.embed-responsive embed, +.embed-responsive object, +.embed-responsive video { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + border: 0; +} + +.embed-responsive-21by9::before { + padding-top: 42.857143%; +} + +.embed-responsive-16by9::before { + padding-top: 56.25%; +} + +.embed-responsive-4by3::before { + padding-top: 75%; +} + +.embed-responsive-1by1::before { + padding-top: 100%; +} + +.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-wrap { + flex-wrap: wrap !important; +} + +.flex-nowrap { + flex-wrap: nowrap !important; +} + +.flex-wrap-reverse { + flex-wrap: wrap-reverse !important; +} + +.flex-fill { + flex: 1 1 auto !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; +} + +.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; +} + +.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; +} + +@media (min-width: 576px) { + .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-wrap { + flex-wrap: wrap !important; + } + .flex-sm-nowrap { + flex-wrap: nowrap !important; + } + .flex-sm-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .flex-sm-fill { + flex: 1 1 auto !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; + } + .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; + } + .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; + } +} + +@media (min-width: 768px) { + .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-wrap { + flex-wrap: wrap !important; + } + .flex-md-nowrap { + flex-wrap: nowrap !important; + } + .flex-md-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .flex-md-fill { + flex: 1 1 auto !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; + } + .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; + } + .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; + } +} + +@media (min-width: 992px) { + .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-wrap { + flex-wrap: wrap !important; + } + .flex-lg-nowrap { + flex-wrap: nowrap !important; + } + .flex-lg-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .flex-lg-fill { + flex: 1 1 auto !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; + } + .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; + } + .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; + } +} + +@media (min-width: 1200px) { + .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-wrap { + flex-wrap: wrap !important; + } + .flex-xl-nowrap { + flex-wrap: nowrap !important; + } + .flex-xl-wrap-reverse { + flex-wrap: wrap-reverse !important; + } + .flex-xl-fill { + flex: 1 1 auto !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; + } + .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; + } + .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; + } +} + +.float-left { + float: left !important; +} + +.float-right { + float: right !important; +} + +.float-none { + float: none !important; +} + +@media (min-width: 576px) { + .float-sm-left { + float: left !important; + } + .float-sm-right { + float: right !important; + } + .float-sm-none { + float: none !important; + } +} + +@media (min-width: 768px) { + .float-md-left { + float: left !important; + } + .float-md-right { + float: right !important; + } + .float-md-none { + float: none !important; + } +} + +@media (min-width: 992px) { + .float-lg-left { + float: left !important; + } + .float-lg-right { + float: right !important; + } + .float-lg-none { + float: none !important; + } +} + +@media (min-width: 1200px) { + .float-xl-left { + float: left !important; + } + .float-xl-right { + float: right !important; + } + .float-xl-none { + float: none !important; + } +} + +.overflow-auto { + overflow: auto !important; +} + +.overflow-hidden { + overflow: hidden !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; +} + +.fixed-top { + position: fixed; + top: 0; + right: 0; + left: 0; + z-index: 1030; +} + +.fixed-bottom { + position: fixed; + right: 0; + bottom: 0; + left: 0; + z-index: 1030; +} + +@supports ((position: -webkit-sticky) or (position: sticky)) { + .sticky-top { + position: -webkit-sticky; + position: sticky; + top: 0; + z-index: 1020; + } +} + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border: 0; +} + +.sr-only-focusable:active, .sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + overflow: visible; + clip: auto; + white-space: normal; +} + +.shadow-sm { + box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important; +} + +.shadow { + box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important; +} + +.shadow-lg { + box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important; +} + +.shadow-none { + box-shadow: none !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; +} + +.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; +} + +.mw-100 { + max-width: 100% !important; +} + +.mh-100 { + max-height: 100% !important; +} + +.min-vw-100 { + min-width: 100vw !important; +} + +.min-vh-100 { + min-height: 100vh !important; +} + +.vw-100 { + width: 100vw !important; +} + +.vh-100 { + height: 100vh !important; +} + +.stretched-link::after { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1; + pointer-events: auto; + content: ""; + background-color: rgba(0, 0, 0, 0); +} + +.m-0 { + margin: 0 !important; +} + +.mt-0, +.my-0 { + margin-top: 0 !important; +} + +.mr-0, +.mx-0 { + margin-right: 0 !important; +} + +.mb-0, +.my-0 { + margin-bottom: 0 !important; +} + +.ml-0, +.mx-0 { + margin-left: 0 !important; +} + +.m-1 { + margin: 0.25rem !important; +} + +.mt-1, +.my-1 { + margin-top: 0.25rem !important; +} + +.mr-1, +.mx-1 { + margin-right: 0.25rem !important; +} + +.mb-1, +.my-1 { + margin-bottom: 0.25rem !important; +} + +.ml-1, +.mx-1 { + margin-left: 0.25rem !important; +} + +.m-2 { + margin: 0.5rem !important; +} + +.mt-2, +.my-2 { + margin-top: 0.5rem !important; +} + +.mr-2, +.mx-2 { + margin-right: 0.5rem !important; +} + +.mb-2, +.my-2 { + margin-bottom: 0.5rem !important; +} + +.ml-2, +.mx-2 { + margin-left: 0.5rem !important; +} + +.m-3 { + margin: 1rem !important; +} + +.mt-3, +.my-3 { + margin-top: 1rem !important; +} + +.mr-3, +.mx-3 { + margin-right: 1rem !important; +} + +.mb-3, +.my-3 { + margin-bottom: 1rem !important; +} + +.ml-3, +.mx-3 { + margin-left: 1rem !important; +} + +.m-4 { + margin: 1.5rem !important; +} + +.mt-4, +.my-4 { + margin-top: 1.5rem !important; +} + +.mr-4, +.mx-4 { + margin-right: 1.5rem !important; +} + +.mb-4, +.my-4 { + margin-bottom: 1.5rem !important; +} + +.ml-4, +.mx-4 { + margin-left: 1.5rem !important; +} + +.m-5 { + margin: 3rem !important; +} + +.mt-5, +.my-5 { + margin-top: 3rem !important; +} + +.mr-5, +.mx-5 { + margin-right: 3rem !important; +} + +.mb-5, +.my-5 { + margin-bottom: 3rem !important; +} + +.ml-5, +.mx-5 { + margin-left: 3rem !important; +} + +.p-0 { + padding: 0 !important; +} + +.pt-0, +.py-0 { + padding-top: 0 !important; +} + +.pr-0, +.px-0 { + padding-right: 0 !important; +} + +.pb-0, +.py-0 { + padding-bottom: 0 !important; +} + +.pl-0, +.px-0 { + padding-left: 0 !important; +} + +.p-1 { + padding: 0.25rem !important; +} + +.pt-1, +.py-1 { + padding-top: 0.25rem !important; +} + +.pr-1, +.px-1 { + padding-right: 0.25rem !important; +} + +.pb-1, +.py-1 { + padding-bottom: 0.25rem !important; +} + +.pl-1, +.px-1 { + padding-left: 0.25rem !important; +} + +.p-2 { + padding: 0.5rem !important; +} + +.pt-2, +.py-2 { + padding-top: 0.5rem !important; +} + +.pr-2, +.px-2 { + padding-right: 0.5rem !important; +} + +.pb-2, +.py-2 { + padding-bottom: 0.5rem !important; +} + +.pl-2, +.px-2 { + padding-left: 0.5rem !important; +} + +.p-3 { + padding: 1rem !important; +} + +.pt-3, +.py-3 { + padding-top: 1rem !important; +} + +.pr-3, +.px-3 { + padding-right: 1rem !important; +} + +.pb-3, +.py-3 { + padding-bottom: 1rem !important; +} + +.pl-3, +.px-3 { + padding-left: 1rem !important; +} + +.p-4 { + padding: 1.5rem !important; +} + +.pt-4, +.py-4 { + padding-top: 1.5rem !important; +} + +.pr-4, +.px-4 { + padding-right: 1.5rem !important; +} + +.pb-4, +.py-4 { + padding-bottom: 1.5rem !important; +} + +.pl-4, +.px-4 { + padding-left: 1.5rem !important; +} + +.p-5 { + padding: 3rem !important; +} + +.pt-5, +.py-5 { + padding-top: 3rem !important; +} + +.pr-5, +.px-5 { + padding-right: 3rem !important; +} + +.pb-5, +.py-5 { + padding-bottom: 3rem !important; +} + +.pl-5, +.px-5 { + padding-left: 3rem !important; +} + +.m-n1 { + margin: -0.25rem !important; +} + +.mt-n1, +.my-n1 { + margin-top: -0.25rem !important; +} + +.mr-n1, +.mx-n1 { + margin-right: -0.25rem !important; +} + +.mb-n1, +.my-n1 { + margin-bottom: -0.25rem !important; +} + +.ml-n1, +.mx-n1 { + margin-left: -0.25rem !important; +} + +.m-n2 { + margin: -0.5rem !important; +} + +.mt-n2, +.my-n2 { + margin-top: -0.5rem !important; +} + +.mr-n2, +.mx-n2 { + margin-right: -0.5rem !important; +} + +.mb-n2, +.my-n2 { + margin-bottom: -0.5rem !important; +} + +.ml-n2, +.mx-n2 { + margin-left: -0.5rem !important; +} + +.m-n3 { + margin: -1rem !important; +} + +.mt-n3, +.my-n3 { + margin-top: -1rem !important; +} + +.mr-n3, +.mx-n3 { + margin-right: -1rem !important; +} + +.mb-n3, +.my-n3 { + margin-bottom: -1rem !important; +} + +.ml-n3, +.mx-n3 { + margin-left: -1rem !important; +} + +.m-n4 { + margin: -1.5rem !important; +} + +.mt-n4, +.my-n4 { + margin-top: -1.5rem !important; +} + +.mr-n4, +.mx-n4 { + margin-right: -1.5rem !important; +} + +.mb-n4, +.my-n4 { + margin-bottom: -1.5rem !important; +} + +.ml-n4, +.mx-n4 { + margin-left: -1.5rem !important; +} + +.m-n5 { + margin: -3rem !important; +} + +.mt-n5, +.my-n5 { + margin-top: -3rem !important; +} + +.mr-n5, +.mx-n5 { + margin-right: -3rem !important; +} + +.mb-n5, +.my-n5 { + margin-bottom: -3rem !important; +} + +.ml-n5, +.mx-n5 { + margin-left: -3rem !important; +} + +.m-auto { + margin: auto !important; +} + +.mt-auto, +.my-auto { + margin-top: auto !important; +} + +.mr-auto, +.mx-auto { + margin-right: auto !important; +} + +.mb-auto, +.my-auto { + margin-bottom: auto !important; +} + +.ml-auto, +.mx-auto { + margin-left: auto !important; +} + +@media (min-width: 576px) { + .m-sm-0 { + margin: 0 !important; + } + .mt-sm-0, + .my-sm-0 { + margin-top: 0 !important; + } + .mr-sm-0, + .mx-sm-0 { + margin-right: 0 !important; + } + .mb-sm-0, + .my-sm-0 { + margin-bottom: 0 !important; + } + .ml-sm-0, + .mx-sm-0 { + margin-left: 0 !important; + } + .m-sm-1 { + margin: 0.25rem !important; + } + .mt-sm-1, + .my-sm-1 { + margin-top: 0.25rem !important; + } + .mr-sm-1, + .mx-sm-1 { + margin-right: 0.25rem !important; + } + .mb-sm-1, + .my-sm-1 { + margin-bottom: 0.25rem !important; + } + .ml-sm-1, + .mx-sm-1 { + margin-left: 0.25rem !important; + } + .m-sm-2 { + margin: 0.5rem !important; + } + .mt-sm-2, + .my-sm-2 { + margin-top: 0.5rem !important; + } + .mr-sm-2, + .mx-sm-2 { + margin-right: 0.5rem !important; + } + .mb-sm-2, + .my-sm-2 { + margin-bottom: 0.5rem !important; + } + .ml-sm-2, + .mx-sm-2 { + margin-left: 0.5rem !important; + } + .m-sm-3 { + margin: 1rem !important; + } + .mt-sm-3, + .my-sm-3 { + margin-top: 1rem !important; + } + .mr-sm-3, + .mx-sm-3 { + margin-right: 1rem !important; + } + .mb-sm-3, + .my-sm-3 { + margin-bottom: 1rem !important; + } + .ml-sm-3, + .mx-sm-3 { + margin-left: 1rem !important; + } + .m-sm-4 { + margin: 1.5rem !important; + } + .mt-sm-4, + .my-sm-4 { + margin-top: 1.5rem !important; + } + .mr-sm-4, + .mx-sm-4 { + margin-right: 1.5rem !important; + } + .mb-sm-4, + .my-sm-4 { + margin-bottom: 1.5rem !important; + } + .ml-sm-4, + .mx-sm-4 { + margin-left: 1.5rem !important; + } + .m-sm-5 { + margin: 3rem !important; + } + .mt-sm-5, + .my-sm-5 { + margin-top: 3rem !important; + } + .mr-sm-5, + .mx-sm-5 { + margin-right: 3rem !important; + } + .mb-sm-5, + .my-sm-5 { + margin-bottom: 3rem !important; + } + .ml-sm-5, + .mx-sm-5 { + margin-left: 3rem !important; + } + .p-sm-0 { + padding: 0 !important; + } + .pt-sm-0, + .py-sm-0 { + padding-top: 0 !important; + } + .pr-sm-0, + .px-sm-0 { + padding-right: 0 !important; + } + .pb-sm-0, + .py-sm-0 { + padding-bottom: 0 !important; + } + .pl-sm-0, + .px-sm-0 { + padding-left: 0 !important; + } + .p-sm-1 { + padding: 0.25rem !important; + } + .pt-sm-1, + .py-sm-1 { + padding-top: 0.25rem !important; + } + .pr-sm-1, + .px-sm-1 { + padding-right: 0.25rem !important; + } + .pb-sm-1, + .py-sm-1 { + padding-bottom: 0.25rem !important; + } + .pl-sm-1, + .px-sm-1 { + padding-left: 0.25rem !important; + } + .p-sm-2 { + padding: 0.5rem !important; + } + .pt-sm-2, + .py-sm-2 { + padding-top: 0.5rem !important; + } + .pr-sm-2, + .px-sm-2 { + padding-right: 0.5rem !important; + } + .pb-sm-2, + .py-sm-2 { + padding-bottom: 0.5rem !important; + } + .pl-sm-2, + .px-sm-2 { + padding-left: 0.5rem !important; + } + .p-sm-3 { + padding: 1rem !important; + } + .pt-sm-3, + .py-sm-3 { + padding-top: 1rem !important; + } + .pr-sm-3, + .px-sm-3 { + padding-right: 1rem !important; + } + .pb-sm-3, + .py-sm-3 { + padding-bottom: 1rem !important; + } + .pl-sm-3, + .px-sm-3 { + padding-left: 1rem !important; + } + .p-sm-4 { + padding: 1.5rem !important; + } + .pt-sm-4, + .py-sm-4 { + padding-top: 1.5rem !important; + } + .pr-sm-4, + .px-sm-4 { + padding-right: 1.5rem !important; + } + .pb-sm-4, + .py-sm-4 { + padding-bottom: 1.5rem !important; + } + .pl-sm-4, + .px-sm-4 { + padding-left: 1.5rem !important; + } + .p-sm-5 { + padding: 3rem !important; + } + .pt-sm-5, + .py-sm-5 { + padding-top: 3rem !important; + } + .pr-sm-5, + .px-sm-5 { + padding-right: 3rem !important; + } + .pb-sm-5, + .py-sm-5 { + padding-bottom: 3rem !important; + } + .pl-sm-5, + .px-sm-5 { + padding-left: 3rem !important; + } + .m-sm-n1 { + margin: -0.25rem !important; + } + .mt-sm-n1, + .my-sm-n1 { + margin-top: -0.25rem !important; + } + .mr-sm-n1, + .mx-sm-n1 { + margin-right: -0.25rem !important; + } + .mb-sm-n1, + .my-sm-n1 { + margin-bottom: -0.25rem !important; + } + .ml-sm-n1, + .mx-sm-n1 { + margin-left: -0.25rem !important; + } + .m-sm-n2 { + margin: -0.5rem !important; + } + .mt-sm-n2, + .my-sm-n2 { + margin-top: -0.5rem !important; + } + .mr-sm-n2, + .mx-sm-n2 { + margin-right: -0.5rem !important; + } + .mb-sm-n2, + .my-sm-n2 { + margin-bottom: -0.5rem !important; + } + .ml-sm-n2, + .mx-sm-n2 { + margin-left: -0.5rem !important; + } + .m-sm-n3 { + margin: -1rem !important; + } + .mt-sm-n3, + .my-sm-n3 { + margin-top: -1rem !important; + } + .mr-sm-n3, + .mx-sm-n3 { + margin-right: -1rem !important; + } + .mb-sm-n3, + .my-sm-n3 { + margin-bottom: -1rem !important; + } + .ml-sm-n3, + .mx-sm-n3 { + margin-left: -1rem !important; + } + .m-sm-n4 { + margin: -1.5rem !important; + } + .mt-sm-n4, + .my-sm-n4 { + margin-top: -1.5rem !important; + } + .mr-sm-n4, + .mx-sm-n4 { + margin-right: -1.5rem !important; + } + .mb-sm-n4, + .my-sm-n4 { + margin-bottom: -1.5rem !important; + } + .ml-sm-n4, + .mx-sm-n4 { + margin-left: -1.5rem !important; + } + .m-sm-n5 { + margin: -3rem !important; + } + .mt-sm-n5, + .my-sm-n5 { + margin-top: -3rem !important; + } + .mr-sm-n5, + .mx-sm-n5 { + margin-right: -3rem !important; + } + .mb-sm-n5, + .my-sm-n5 { + margin-bottom: -3rem !important; + } + .ml-sm-n5, + .mx-sm-n5 { + margin-left: -3rem !important; + } + .m-sm-auto { + margin: auto !important; + } + .mt-sm-auto, + .my-sm-auto { + margin-top: auto !important; + } + .mr-sm-auto, + .mx-sm-auto { + margin-right: auto !important; + } + .mb-sm-auto, + .my-sm-auto { + margin-bottom: auto !important; + } + .ml-sm-auto, + .mx-sm-auto { + margin-left: auto !important; + } +} + +@media (min-width: 768px) { + .m-md-0 { + margin: 0 !important; + } + .mt-md-0, + .my-md-0 { + margin-top: 0 !important; + } + .mr-md-0, + .mx-md-0 { + margin-right: 0 !important; + } + .mb-md-0, + .my-md-0 { + margin-bottom: 0 !important; + } + .ml-md-0, + .mx-md-0 { + margin-left: 0 !important; + } + .m-md-1 { + margin: 0.25rem !important; + } + .mt-md-1, + .my-md-1 { + margin-top: 0.25rem !important; + } + .mr-md-1, + .mx-md-1 { + margin-right: 0.25rem !important; + } + .mb-md-1, + .my-md-1 { + margin-bottom: 0.25rem !important; + } + .ml-md-1, + .mx-md-1 { + margin-left: 0.25rem !important; + } + .m-md-2 { + margin: 0.5rem !important; + } + .mt-md-2, + .my-md-2 { + margin-top: 0.5rem !important; + } + .mr-md-2, + .mx-md-2 { + margin-right: 0.5rem !important; + } + .mb-md-2, + .my-md-2 { + margin-bottom: 0.5rem !important; + } + .ml-md-2, + .mx-md-2 { + margin-left: 0.5rem !important; + } + .m-md-3 { + margin: 1rem !important; + } + .mt-md-3, + .my-md-3 { + margin-top: 1rem !important; + } + .mr-md-3, + .mx-md-3 { + margin-right: 1rem !important; + } + .mb-md-3, + .my-md-3 { + margin-bottom: 1rem !important; + } + .ml-md-3, + .mx-md-3 { + margin-left: 1rem !important; + } + .m-md-4 { + margin: 1.5rem !important; + } + .mt-md-4, + .my-md-4 { + margin-top: 1.5rem !important; + } + .mr-md-4, + .mx-md-4 { + margin-right: 1.5rem !important; + } + .mb-md-4, + .my-md-4 { + margin-bottom: 1.5rem !important; + } + .ml-md-4, + .mx-md-4 { + margin-left: 1.5rem !important; + } + .m-md-5 { + margin: 3rem !important; + } + .mt-md-5, + .my-md-5 { + margin-top: 3rem !important; + } + .mr-md-5, + .mx-md-5 { + margin-right: 3rem !important; + } + .mb-md-5, + .my-md-5 { + margin-bottom: 3rem !important; + } + .ml-md-5, + .mx-md-5 { + margin-left: 3rem !important; + } + .p-md-0 { + padding: 0 !important; + } + .pt-md-0, + .py-md-0 { + padding-top: 0 !important; + } + .pr-md-0, + .px-md-0 { + padding-right: 0 !important; + } + .pb-md-0, + .py-md-0 { + padding-bottom: 0 !important; + } + .pl-md-0, + .px-md-0 { + padding-left: 0 !important; + } + .p-md-1 { + padding: 0.25rem !important; + } + .pt-md-1, + .py-md-1 { + padding-top: 0.25rem !important; + } + .pr-md-1, + .px-md-1 { + padding-right: 0.25rem !important; + } + .pb-md-1, + .py-md-1 { + padding-bottom: 0.25rem !important; + } + .pl-md-1, + .px-md-1 { + padding-left: 0.25rem !important; + } + .p-md-2 { + padding: 0.5rem !important; + } + .pt-md-2, + .py-md-2 { + padding-top: 0.5rem !important; + } + .pr-md-2, + .px-md-2 { + padding-right: 0.5rem !important; + } + .pb-md-2, + .py-md-2 { + padding-bottom: 0.5rem !important; + } + .pl-md-2, + .px-md-2 { + padding-left: 0.5rem !important; + } + .p-md-3 { + padding: 1rem !important; + } + .pt-md-3, + .py-md-3 { + padding-top: 1rem !important; + } + .pr-md-3, + .px-md-3 { + padding-right: 1rem !important; + } + .pb-md-3, + .py-md-3 { + padding-bottom: 1rem !important; + } + .pl-md-3, + .px-md-3 { + padding-left: 1rem !important; + } + .p-md-4 { + padding: 1.5rem !important; + } + .pt-md-4, + .py-md-4 { + padding-top: 1.5rem !important; + } + .pr-md-4, + .px-md-4 { + padding-right: 1.5rem !important; + } + .pb-md-4, + .py-md-4 { + padding-bottom: 1.5rem !important; + } + .pl-md-4, + .px-md-4 { + padding-left: 1.5rem !important; + } + .p-md-5 { + padding: 3rem !important; + } + .pt-md-5, + .py-md-5 { + padding-top: 3rem !important; + } + .pr-md-5, + .px-md-5 { + padding-right: 3rem !important; + } + .pb-md-5, + .py-md-5 { + padding-bottom: 3rem !important; + } + .pl-md-5, + .px-md-5 { + padding-left: 3rem !important; + } + .m-md-n1 { + margin: -0.25rem !important; + } + .mt-md-n1, + .my-md-n1 { + margin-top: -0.25rem !important; + } + .mr-md-n1, + .mx-md-n1 { + margin-right: -0.25rem !important; + } + .mb-md-n1, + .my-md-n1 { + margin-bottom: -0.25rem !important; + } + .ml-md-n1, + .mx-md-n1 { + margin-left: -0.25rem !important; + } + .m-md-n2 { + margin: -0.5rem !important; + } + .mt-md-n2, + .my-md-n2 { + margin-top: -0.5rem !important; + } + .mr-md-n2, + .mx-md-n2 { + margin-right: -0.5rem !important; + } + .mb-md-n2, + .my-md-n2 { + margin-bottom: -0.5rem !important; + } + .ml-md-n2, + .mx-md-n2 { + margin-left: -0.5rem !important; + } + .m-md-n3 { + margin: -1rem !important; + } + .mt-md-n3, + .my-md-n3 { + margin-top: -1rem !important; + } + .mr-md-n3, + .mx-md-n3 { + margin-right: -1rem !important; + } + .mb-md-n3, + .my-md-n3 { + margin-bottom: -1rem !important; + } + .ml-md-n3, + .mx-md-n3 { + margin-left: -1rem !important; + } + .m-md-n4 { + margin: -1.5rem !important; + } + .mt-md-n4, + .my-md-n4 { + margin-top: -1.5rem !important; + } + .mr-md-n4, + .mx-md-n4 { + margin-right: -1.5rem !important; + } + .mb-md-n4, + .my-md-n4 { + margin-bottom: -1.5rem !important; + } + .ml-md-n4, + .mx-md-n4 { + margin-left: -1.5rem !important; + } + .m-md-n5 { + margin: -3rem !important; + } + .mt-md-n5, + .my-md-n5 { + margin-top: -3rem !important; + } + .mr-md-n5, + .mx-md-n5 { + margin-right: -3rem !important; + } + .mb-md-n5, + .my-md-n5 { + margin-bottom: -3rem !important; + } + .ml-md-n5, + .mx-md-n5 { + margin-left: -3rem !important; + } + .m-md-auto { + margin: auto !important; + } + .mt-md-auto, + .my-md-auto { + margin-top: auto !important; + } + .mr-md-auto, + .mx-md-auto { + margin-right: auto !important; + } + .mb-md-auto, + .my-md-auto { + margin-bottom: auto !important; + } + .ml-md-auto, + .mx-md-auto { + margin-left: auto !important; + } +} + +@media (min-width: 992px) { + .m-lg-0 { + margin: 0 !important; + } + .mt-lg-0, + .my-lg-0 { + margin-top: 0 !important; + } + .mr-lg-0, + .mx-lg-0 { + margin-right: 0 !important; + } + .mb-lg-0, + .my-lg-0 { + margin-bottom: 0 !important; + } + .ml-lg-0, + .mx-lg-0 { + margin-left: 0 !important; + } + .m-lg-1 { + margin: 0.25rem !important; + } + .mt-lg-1, + .my-lg-1 { + margin-top: 0.25rem !important; + } + .mr-lg-1, + .mx-lg-1 { + margin-right: 0.25rem !important; + } + .mb-lg-1, + .my-lg-1 { + margin-bottom: 0.25rem !important; + } + .ml-lg-1, + .mx-lg-1 { + margin-left: 0.25rem !important; + } + .m-lg-2 { + margin: 0.5rem !important; + } + .mt-lg-2, + .my-lg-2 { + margin-top: 0.5rem !important; + } + .mr-lg-2, + .mx-lg-2 { + margin-right: 0.5rem !important; + } + .mb-lg-2, + .my-lg-2 { + margin-bottom: 0.5rem !important; + } + .ml-lg-2, + .mx-lg-2 { + margin-left: 0.5rem !important; + } + .m-lg-3 { + margin: 1rem !important; + } + .mt-lg-3, + .my-lg-3 { + margin-top: 1rem !important; + } + .mr-lg-3, + .mx-lg-3 { + margin-right: 1rem !important; + } + .mb-lg-3, + .my-lg-3 { + margin-bottom: 1rem !important; + } + .ml-lg-3, + .mx-lg-3 { + margin-left: 1rem !important; + } + .m-lg-4 { + margin: 1.5rem !important; + } + .mt-lg-4, + .my-lg-4 { + margin-top: 1.5rem !important; + } + .mr-lg-4, + .mx-lg-4 { + margin-right: 1.5rem !important; + } + .mb-lg-4, + .my-lg-4 { + margin-bottom: 1.5rem !important; + } + .ml-lg-4, + .mx-lg-4 { + margin-left: 1.5rem !important; + } + .m-lg-5 { + margin: 3rem !important; + } + .mt-lg-5, + .my-lg-5 { + margin-top: 3rem !important; + } + .mr-lg-5, + .mx-lg-5 { + margin-right: 3rem !important; + } + .mb-lg-5, + .my-lg-5 { + margin-bottom: 3rem !important; + } + .ml-lg-5, + .mx-lg-5 { + margin-left: 3rem !important; + } + .p-lg-0 { + padding: 0 !important; + } + .pt-lg-0, + .py-lg-0 { + padding-top: 0 !important; + } + .pr-lg-0, + .px-lg-0 { + padding-right: 0 !important; + } + .pb-lg-0, + .py-lg-0 { + padding-bottom: 0 !important; + } + .pl-lg-0, + .px-lg-0 { + padding-left: 0 !important; + } + .p-lg-1 { + padding: 0.25rem !important; + } + .pt-lg-1, + .py-lg-1 { + padding-top: 0.25rem !important; + } + .pr-lg-1, + .px-lg-1 { + padding-right: 0.25rem !important; + } + .pb-lg-1, + .py-lg-1 { + padding-bottom: 0.25rem !important; + } + .pl-lg-1, + .px-lg-1 { + padding-left: 0.25rem !important; + } + .p-lg-2 { + padding: 0.5rem !important; + } + .pt-lg-2, + .py-lg-2 { + padding-top: 0.5rem !important; + } + .pr-lg-2, + .px-lg-2 { + padding-right: 0.5rem !important; + } + .pb-lg-2, + .py-lg-2 { + padding-bottom: 0.5rem !important; + } + .pl-lg-2, + .px-lg-2 { + padding-left: 0.5rem !important; + } + .p-lg-3 { + padding: 1rem !important; + } + .pt-lg-3, + .py-lg-3 { + padding-top: 1rem !important; + } + .pr-lg-3, + .px-lg-3 { + padding-right: 1rem !important; + } + .pb-lg-3, + .py-lg-3 { + padding-bottom: 1rem !important; + } + .pl-lg-3, + .px-lg-3 { + padding-left: 1rem !important; + } + .p-lg-4 { + padding: 1.5rem !important; + } + .pt-lg-4, + .py-lg-4 { + padding-top: 1.5rem !important; + } + .pr-lg-4, + .px-lg-4 { + padding-right: 1.5rem !important; + } + .pb-lg-4, + .py-lg-4 { + padding-bottom: 1.5rem !important; + } + .pl-lg-4, + .px-lg-4 { + padding-left: 1.5rem !important; + } + .p-lg-5 { + padding: 3rem !important; + } + .pt-lg-5, + .py-lg-5 { + padding-top: 3rem !important; + } + .pr-lg-5, + .px-lg-5 { + padding-right: 3rem !important; + } + .pb-lg-5, + .py-lg-5 { + padding-bottom: 3rem !important; + } + .pl-lg-5, + .px-lg-5 { + padding-left: 3rem !important; + } + .m-lg-n1 { + margin: -0.25rem !important; + } + .mt-lg-n1, + .my-lg-n1 { + margin-top: -0.25rem !important; + } + .mr-lg-n1, + .mx-lg-n1 { + margin-right: -0.25rem !important; + } + .mb-lg-n1, + .my-lg-n1 { + margin-bottom: -0.25rem !important; + } + .ml-lg-n1, + .mx-lg-n1 { + margin-left: -0.25rem !important; + } + .m-lg-n2 { + margin: -0.5rem !important; + } + .mt-lg-n2, + .my-lg-n2 { + margin-top: -0.5rem !important; + } + .mr-lg-n2, + .mx-lg-n2 { + margin-right: -0.5rem !important; + } + .mb-lg-n2, + .my-lg-n2 { + margin-bottom: -0.5rem !important; + } + .ml-lg-n2, + .mx-lg-n2 { + margin-left: -0.5rem !important; + } + .m-lg-n3 { + margin: -1rem !important; + } + .mt-lg-n3, + .my-lg-n3 { + margin-top: -1rem !important; + } + .mr-lg-n3, + .mx-lg-n3 { + margin-right: -1rem !important; + } + .mb-lg-n3, + .my-lg-n3 { + margin-bottom: -1rem !important; + } + .ml-lg-n3, + .mx-lg-n3 { + margin-left: -1rem !important; + } + .m-lg-n4 { + margin: -1.5rem !important; + } + .mt-lg-n4, + .my-lg-n4 { + margin-top: -1.5rem !important; + } + .mr-lg-n4, + .mx-lg-n4 { + margin-right: -1.5rem !important; + } + .mb-lg-n4, + .my-lg-n4 { + margin-bottom: -1.5rem !important; + } + .ml-lg-n4, + .mx-lg-n4 { + margin-left: -1.5rem !important; + } + .m-lg-n5 { + margin: -3rem !important; + } + .mt-lg-n5, + .my-lg-n5 { + margin-top: -3rem !important; + } + .mr-lg-n5, + .mx-lg-n5 { + margin-right: -3rem !important; + } + .mb-lg-n5, + .my-lg-n5 { + margin-bottom: -3rem !important; + } + .ml-lg-n5, + .mx-lg-n5 { + margin-left: -3rem !important; + } + .m-lg-auto { + margin: auto !important; + } + .mt-lg-auto, + .my-lg-auto { + margin-top: auto !important; + } + .mr-lg-auto, + .mx-lg-auto { + margin-right: auto !important; + } + .mb-lg-auto, + .my-lg-auto { + margin-bottom: auto !important; + } + .ml-lg-auto, + .mx-lg-auto { + margin-left: auto !important; + } +} + +@media (min-width: 1200px) { + .m-xl-0 { + margin: 0 !important; + } + .mt-xl-0, + .my-xl-0 { + margin-top: 0 !important; + } + .mr-xl-0, + .mx-xl-0 { + margin-right: 0 !important; + } + .mb-xl-0, + .my-xl-0 { + margin-bottom: 0 !important; + } + .ml-xl-0, + .mx-xl-0 { + margin-left: 0 !important; + } + .m-xl-1 { + margin: 0.25rem !important; + } + .mt-xl-1, + .my-xl-1 { + margin-top: 0.25rem !important; + } + .mr-xl-1, + .mx-xl-1 { + margin-right: 0.25rem !important; + } + .mb-xl-1, + .my-xl-1 { + margin-bottom: 0.25rem !important; + } + .ml-xl-1, + .mx-xl-1 { + margin-left: 0.25rem !important; + } + .m-xl-2 { + margin: 0.5rem !important; + } + .mt-xl-2, + .my-xl-2 { + margin-top: 0.5rem !important; + } + .mr-xl-2, + .mx-xl-2 { + margin-right: 0.5rem !important; + } + .mb-xl-2, + .my-xl-2 { + margin-bottom: 0.5rem !important; + } + .ml-xl-2, + .mx-xl-2 { + margin-left: 0.5rem !important; + } + .m-xl-3 { + margin: 1rem !important; + } + .mt-xl-3, + .my-xl-3 { + margin-top: 1rem !important; + } + .mr-xl-3, + .mx-xl-3 { + margin-right: 1rem !important; + } + .mb-xl-3, + .my-xl-3 { + margin-bottom: 1rem !important; + } + .ml-xl-3, + .mx-xl-3 { + margin-left: 1rem !important; + } + .m-xl-4 { + margin: 1.5rem !important; + } + .mt-xl-4, + .my-xl-4 { + margin-top: 1.5rem !important; + } + .mr-xl-4, + .mx-xl-4 { + margin-right: 1.5rem !important; + } + .mb-xl-4, + .my-xl-4 { + margin-bottom: 1.5rem !important; + } + .ml-xl-4, + .mx-xl-4 { + margin-left: 1.5rem !important; + } + .m-xl-5 { + margin: 3rem !important; + } + .mt-xl-5, + .my-xl-5 { + margin-top: 3rem !important; + } + .mr-xl-5, + .mx-xl-5 { + margin-right: 3rem !important; + } + .mb-xl-5, + .my-xl-5 { + margin-bottom: 3rem !important; + } + .ml-xl-5, + .mx-xl-5 { + margin-left: 3rem !important; + } + .p-xl-0 { + padding: 0 !important; + } + .pt-xl-0, + .py-xl-0 { + padding-top: 0 !important; + } + .pr-xl-0, + .px-xl-0 { + padding-right: 0 !important; + } + .pb-xl-0, + .py-xl-0 { + padding-bottom: 0 !important; + } + .pl-xl-0, + .px-xl-0 { + padding-left: 0 !important; + } + .p-xl-1 { + padding: 0.25rem !important; + } + .pt-xl-1, + .py-xl-1 { + padding-top: 0.25rem !important; + } + .pr-xl-1, + .px-xl-1 { + padding-right: 0.25rem !important; + } + .pb-xl-1, + .py-xl-1 { + padding-bottom: 0.25rem !important; + } + .pl-xl-1, + .px-xl-1 { + padding-left: 0.25rem !important; + } + .p-xl-2 { + padding: 0.5rem !important; + } + .pt-xl-2, + .py-xl-2 { + padding-top: 0.5rem !important; + } + .pr-xl-2, + .px-xl-2 { + padding-right: 0.5rem !important; + } + .pb-xl-2, + .py-xl-2 { + padding-bottom: 0.5rem !important; + } + .pl-xl-2, + .px-xl-2 { + padding-left: 0.5rem !important; + } + .p-xl-3 { + padding: 1rem !important; + } + .pt-xl-3, + .py-xl-3 { + padding-top: 1rem !important; + } + .pr-xl-3, + .px-xl-3 { + padding-right: 1rem !important; + } + .pb-xl-3, + .py-xl-3 { + padding-bottom: 1rem !important; + } + .pl-xl-3, + .px-xl-3 { + padding-left: 1rem !important; + } + .p-xl-4 { + padding: 1.5rem !important; + } + .pt-xl-4, + .py-xl-4 { + padding-top: 1.5rem !important; + } + .pr-xl-4, + .px-xl-4 { + padding-right: 1.5rem !important; + } + .pb-xl-4, + .py-xl-4 { + padding-bottom: 1.5rem !important; + } + .pl-xl-4, + .px-xl-4 { + padding-left: 1.5rem !important; + } + .p-xl-5 { + padding: 3rem !important; + } + .pt-xl-5, + .py-xl-5 { + padding-top: 3rem !important; + } + .pr-xl-5, + .px-xl-5 { + padding-right: 3rem !important; + } + .pb-xl-5, + .py-xl-5 { + padding-bottom: 3rem !important; + } + .pl-xl-5, + .px-xl-5 { + padding-left: 3rem !important; + } + .m-xl-n1 { + margin: -0.25rem !important; + } + .mt-xl-n1, + .my-xl-n1 { + margin-top: -0.25rem !important; + } + .mr-xl-n1, + .mx-xl-n1 { + margin-right: -0.25rem !important; + } + .mb-xl-n1, + .my-xl-n1 { + margin-bottom: -0.25rem !important; + } + .ml-xl-n1, + .mx-xl-n1 { + margin-left: -0.25rem !important; + } + .m-xl-n2 { + margin: -0.5rem !important; + } + .mt-xl-n2, + .my-xl-n2 { + margin-top: -0.5rem !important; + } + .mr-xl-n2, + .mx-xl-n2 { + margin-right: -0.5rem !important; + } + .mb-xl-n2, + .my-xl-n2 { + margin-bottom: -0.5rem !important; + } + .ml-xl-n2, + .mx-xl-n2 { + margin-left: -0.5rem !important; + } + .m-xl-n3 { + margin: -1rem !important; + } + .mt-xl-n3, + .my-xl-n3 { + margin-top: -1rem !important; + } + .mr-xl-n3, + .mx-xl-n3 { + margin-right: -1rem !important; + } + .mb-xl-n3, + .my-xl-n3 { + margin-bottom: -1rem !important; + } + .ml-xl-n3, + .mx-xl-n3 { + margin-left: -1rem !important; + } + .m-xl-n4 { + margin: -1.5rem !important; + } + .mt-xl-n4, + .my-xl-n4 { + margin-top: -1.5rem !important; + } + .mr-xl-n4, + .mx-xl-n4 { + margin-right: -1.5rem !important; + } + .mb-xl-n4, + .my-xl-n4 { + margin-bottom: -1.5rem !important; + } + .ml-xl-n4, + .mx-xl-n4 { + margin-left: -1.5rem !important; + } + .m-xl-n5 { + margin: -3rem !important; + } + .mt-xl-n5, + .my-xl-n5 { + margin-top: -3rem !important; + } + .mr-xl-n5, + .mx-xl-n5 { + margin-right: -3rem !important; + } + .mb-xl-n5, + .my-xl-n5 { + margin-bottom: -3rem !important; + } + .ml-xl-n5, + .mx-xl-n5 { + margin-left: -3rem !important; + } + .m-xl-auto { + margin: auto !important; + } + .mt-xl-auto, + .my-xl-auto { + margin-top: auto !important; + } + .mr-xl-auto, + .mx-xl-auto { + margin-right: auto !important; + } + .mb-xl-auto, + .my-xl-auto { + margin-bottom: auto !important; + } + .ml-xl-auto, + .mx-xl-auto { + margin-left: auto !important; + } +} + +.text-monospace { + font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !important; +} + +.text-justify { + text-align: justify !important; +} + +.text-wrap { + white-space: normal !important; +} + +.text-nowrap { + white-space: nowrap !important; +} + +.text-truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +.text-left { + text-align: left !important; +} + +.text-right { + text-align: right !important; +} + +.text-center { + text-align: center !important; +} + +@media (min-width: 576px) { + .text-sm-left { + text-align: left !important; + } + .text-sm-right { + text-align: right !important; + } + .text-sm-center { + text-align: center !important; + } +} + +@media (min-width: 768px) { + .text-md-left { + text-align: left !important; + } + .text-md-right { + text-align: right !important; + } + .text-md-center { + text-align: center !important; + } +} + +@media (min-width: 992px) { + .text-lg-left { + text-align: left !important; + } + .text-lg-right { + text-align: right !important; + } + .text-lg-center { + text-align: center !important; + } +} + +@media (min-width: 1200px) { + .text-xl-left { + text-align: left !important; + } + .text-xl-right { + text-align: right !important; + } + .text-xl-center { + text-align: center !important; + } +} + +.text-lowercase { + text-transform: lowercase !important; +} + +.text-uppercase { + text-transform: uppercase !important; +} + +.text-capitalize { + text-transform: capitalize !important; +} + +.font-weight-light { + font-weight: 300 !important; +} + +.font-weight-lighter { + font-weight: lighter !important; +} + +.font-weight-normal { + font-weight: 400 !important; +} + +.font-weight-bold { + font-weight: 700 !important; +} + +.font-weight-bolder { + font-weight: bolder !important; +} + +.font-italic { + font-style: italic !important; +} + +.text-white { + color: #fff !important; +} + +.text-primary { + color: #007bff !important; +} + +a.text-primary:hover, a.text-primary:focus { + color: #0056b3 !important; +} + +.text-secondary { + color: #6c757d !important; +} + +a.text-secondary:hover, a.text-secondary:focus { + color: #494f54 !important; +} + +.text-success { + color: #28a745 !important; +} + +a.text-success:hover, a.text-success:focus { + color: #19692c !important; +} + +.text-info { + color: #17a2b8 !important; +} + +a.text-info:hover, a.text-info:focus { + color: #0f6674 !important; +} + +.text-warning { + color: #ffc107 !important; +} + +a.text-warning:hover, a.text-warning:focus { + color: #ba8b00 !important; +} + +.text-danger { + color: #dc3545 !important; +} + +a.text-danger:hover, a.text-danger:focus { + color: #a71d2a !important; +} + +.text-light { + color: #f8f9fa !important; +} + +a.text-light:hover, a.text-light:focus { + color: #cbd3da !important; +} + +.text-dark { + color: #343a40 !important; +} + +a.text-dark:hover, a.text-dark:focus { + color: #121416 !important; +} + +.text-body { + color: #212529 !important; +} + +.text-muted { + color: #6c757d !important; +} + +.text-black-50 { + color: rgba(0, 0, 0, 0.5) !important; +} + +.text-white-50 { + color: rgba(255, 255, 255, 0.5) !important; +} + +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; +} + +.text-decoration-none { + text-decoration: none !important; +} + +.text-break { + word-break: break-word !important; + overflow-wrap: break-word !important; +} + +.text-reset { + color: inherit !important; +} + +.visible { + visibility: visible !important; +} + +.invisible { + visibility: hidden !important; +} + +@media print { + *, + *::before, + *::after { + text-shadow: none !important; + box-shadow: none !important; + } + a:not(.btn) { + text-decoration: underline; + } + abbr[title]::after { + content: " (" attr(title) ")"; + } + pre { + white-space: pre-wrap !important; + } + pre, + blockquote { + border: 1px solid #adb5bd; + page-break-inside: avoid; + } + thead { + display: table-header-group; + } + tr, + img { + page-break-inside: avoid; + } + p, + h2, + h3 { + orphans: 3; + widows: 3; + } + h2, + h3 { + page-break-after: avoid; + } + @page { + size: a3; + } + body { + min-width: 992px !important; + } + .container { + min-width: 992px !important; + } + .navbar { + display: none; + } + .badge { + border: 1px solid #000; + } + .table { + border-collapse: collapse !important; + } + .table td, + .table th { + background-color: #fff !important; + } + .table-bordered th, + .table-bordered td { + border: 1px solid #dee2e6 !important; + } + .table-dark { + color: inherit; + } + .table-dark th, + .table-dark td, + .table-dark thead th, + .table-dark tbody + tbody { + border-color: #dee2e6; + } + .table .thead-dark th { + color: inherit; + border-color: #dee2e6; + } +} + +.rtl, +[dir="rtl"] { + text-align: right; + direction: rtl; +} + +.rtl .nav, +[dir="rtl"] .nav { + padding-right: 0; +} + +.rtl .navbar-nav .nav-item, +[dir="rtl"] .navbar-nav .nav-item { + float: right; +} + +.rtl .navbar-nav .nav-item + .nav-item, +[dir="rtl"] .navbar-nav .nav-item + .nav-item { + margin-right: inherit; + margin-left: 1rem; +} + +.rtl th, +[dir="rtl"] th { + text-align: right; +} + +.rtl .alert-dismissible, +[dir="rtl"] .alert-dismissible { + padding-right: 1.25rem; + padding-left: 4rem; +} + +.rtl .dropdown-menu, +[dir="rtl"] .dropdown-menu { + right: 0; + left: inherit; + text-align: right; +} + +.rtl .checkbox label, +[dir="rtl"] .checkbox label { + padding-right: 1.25rem; + padding-left: inherit; +} + +.rtl .btn-group > .btn:not(:first-child), +.rtl .btn-group > .btn-group:not(:first-child), +[dir="rtl"] .btn-group > .btn:not(:first-child), +[dir="rtl"] .btn-group > .btn-group:not(:first-child) { + margin-left: initial; + margin-right: -1px; +} + +.rtl .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle), +[dir="rtl"] .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-radius: 0 0.25rem 0.25rem 0; +} + +.rtl .btn-group > .btn:last-child:not(:first-child), +.rtl .btn-group > .dropdown-toggle:not(:first-child), +[dir="rtl"] .btn-group > .btn:last-child:not(:first-child), +[dir="rtl"] .btn-group > .dropdown-toggle:not(:first-child) { + border-radius: 0.25rem 0 0 0.25rem; +} + +.rtl .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child, +[dir="rtl"] .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-radius: 0.25rem 0 0 0.25rem; +} + +.rtl .custom-control, +[dir="rtl"] .custom-control { + padding-right: 1.5rem; + padding-left: inherit; + margin-right: inherit; + margin-left: 1rem; +} + +.rtl .custom-control-indicator, +[dir="rtl"] .custom-control-indicator { + right: 0; + left: inherit; +} + +.rtl .custom-file-label::after, +[dir="rtl"] .custom-file-label::after { + right: initial; + left: -1px; + border-radius: .25rem 0 0 .25rem; +} + +.rtl .custom-control-label::after, +.rtl .custom-control-label::before, +[dir="rtl"] .custom-control-label::after, +[dir="rtl"] .custom-control-label::before { + right: -1.5rem; + left: inherit; +} + +.rtl .custom-select, +[dir="rtl"] .custom-select { + padding: 0.375rem 0.75rem 0.375rem 1.75rem; + background: #fff url("data:image/svg+xml,") no-repeat left 0.75rem center; + background-size: 8px 10px; +} + +.rtl .custom-switch, +[dir="rtl"] .custom-switch { + padding-right: 2.25rem; + padding-left: inherit; +} + +.rtl .custom-switch .custom-control-label::before, +[dir="rtl"] .custom-switch .custom-control-label::before { + right: -2.25rem; +} + +.rtl .custom-switch .custom-control-label::after, +[dir="rtl"] .custom-switch .custom-control-label::after { + right: calc(-2.25rem + 2px); +} + +.rtl .custom-switch .custom-control-input:checked ~ .custom-control-label::after, +[dir="rtl"] .custom-switch .custom-control-input:checked ~ .custom-control-label::after { + transform: translateX(-0.75rem); +} + +.rtl .input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle), +.rtl .input-group > .input-group-append:last-child > .input-group-text:not(:last-child), +.rtl .input-group > .input-group-append:not(:last-child) > .btn, +.rtl .input-group > .input-group-append:not(:last-child) > .input-group-text, +.rtl .input-group > .input-group-prepend > .btn, +.rtl .input-group > .input-group-prepend > .input-group-text, +[dir="rtl"] .input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle), +[dir="rtl"] .input-group > .input-group-append:last-child > .input-group-text:not(:last-child), +[dir="rtl"] .input-group > .input-group-append:not(:last-child) > .btn, +[dir="rtl"] .input-group > .input-group-append:not(:last-child) > .input-group-text, +[dir="rtl"] .input-group > .input-group-prepend > .btn, +[dir="rtl"] .input-group > .input-group-prepend > .input-group-text { + border-radius: 0 0.25rem 0.25rem 0; +} + +.rtl .input-group > .input-group-append > .btn, +.rtl .input-group > .input-group-append > .input-group-text, +.rtl .input-group > .input-group-prepend:first-child > .btn:not(:first-child), +.rtl .input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child), +.rtl .input-group > .input-group-prepend:not(:first-child) > .btn, +.rtl .input-group > .input-group-prepend:not(:first-child) > .input-group-text, +[dir="rtl"] .input-group > .input-group-append > .btn, +[dir="rtl"] .input-group > .input-group-append > .input-group-text, +[dir="rtl"] .input-group > .input-group-prepend:first-child > .btn:not(:first-child), +[dir="rtl"] .input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child), +[dir="rtl"] .input-group > .input-group-prepend:not(:first-child) > .btn, +[dir="rtl"] .input-group > .input-group-prepend:not(:first-child) > .input-group-text { + border-radius: 0.25rem 0 0 0.25rem; +} + +.rtl .input-group > .custom-select:not(:first-child), +.rtl .input-group > .form-control:not(:first-child), +[dir="rtl"] .input-group > .custom-select:not(:first-child), +[dir="rtl"] .input-group > .form-control:not(:first-child) { + border-radius: 0.25rem 0 0 0.25rem; +} + +.rtl .input-group > .custom-select:not(:last-child), +.rtl .input-group > .form-control:not(:last-child), +[dir="rtl"] .input-group > .custom-select:not(:last-child), +[dir="rtl"] .input-group > .form-control:not(:last-child) { + border-radius: 0 0.25rem 0.25rem 0; +} + +.rtl .input-group > .custom-select:not(:last-child):not(:first-child), +.rtl .input-group > .form-control:not(:last-child):not(:first-child), +[dir="rtl"] .input-group > .custom-select:not(:last-child):not(:first-child), +[dir="rtl"] .input-group > .form-control:not(:last-child):not(:first-child) { + border-radius: 0; +} + +.rtl .radio input, +.rtl .radio-inline, +.rtl .checkbox input, +.rtl .checkbox-inline input, +[dir="rtl"] .radio input, +[dir="rtl"] .radio-inline, +[dir="rtl"] .checkbox input, +[dir="rtl"] .checkbox-inline input { + margin-right: -1.25rem; + margin-left: inherit; +} + +.rtl .breadcrumb-item + .breadcrumb-item, +[dir="rtl"] .breadcrumb-item + .breadcrumb-item { + padding-right: 0.5rem; + padding-left: 0; + color: #6c757d; + content: "/"; +} + +.rtl .breadcrumb-item + .breadcrumb-item::before, +[dir="rtl"] .breadcrumb-item + .breadcrumb-item::before { + padding-right: 0; + padding-left: 0.5rem; +} + +.rtl .list-group, +[dir="rtl"] .list-group { + padding-right: 0; + padding-left: 40px; +} + +.rtl .close, +[dir="rtl"] .close { + float: left; +} + +.rtl .modal-header .close, +[dir="rtl"] .modal-header .close { + margin: -15px auto -15px -15px; +} + +.rtl .modal-footer > :not(:first-child), +[dir="rtl"] .modal-footer > :not(:first-child) { + margin-right: .25rem; +} + +.rtl .modal-footer > :not(:last-child), +[dir="rtl"] .modal-footer > :not(:last-child) { + margin-left: .25rem; +} + +.rtl .modal-footer > :first-child, +[dir="rtl"] .modal-footer > :first-child { + margin-right: 0; +} + +.rtl .modal-footer > :last-child, +[dir="rtl"] .modal-footer > :last-child { + margin-left: 0; +} + +.rtl .alert-dismissible .close, +[dir="rtl"] .alert-dismissible .close { + right: inherit; + left: 0; +} + +.rtl .dropdown-toggle::after, +[dir="rtl"] .dropdown-toggle::after { + margin-right: .255em; + margin-left: 0; +} + +.rtl .form-check-input, +[dir="rtl"] .form-check-input { + margin-right: -1.25rem; + margin-left: inherit; +} + +.rtl .form-check-label, +[dir="rtl"] .form-check-label { + padding-right: 1.25rem; + padding-left: inherit; +} + +.rtl .pagination, +.rtl .list-unstyled, +.rtl .list-inline, +[dir="rtl"] .pagination, +[dir="rtl"] .list-unstyled, +[dir="rtl"] .list-inline { + padding-right: 0; + padding-left: inherit; +} + +.rtl .pagination .page-item:first-child .page-link, +[dir="rtl"] .pagination .page-item:first-child .page-link { + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; + border-top-left-radius: 0; + border-bottom-left-radius: 0; +} + +.rtl .pagination .page-item:last-child .page-link, +[dir="rtl"] .pagination .page-item:last-child .page-link { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; +} + +.rtl .offset-1, +[dir="rtl"] .offset-1 { + margin-right: 8.333333%; + margin-left: 0; +} + +.rtl .offset-2, +[dir="rtl"] .offset-2 { + margin-right: 16.666667%; + margin-left: 0; +} + +.rtl .offset-3, +[dir="rtl"] .offset-3 { + margin-right: 25%; + margin-left: 0; +} + +.rtl .offset-4, +[dir="rtl"] .offset-4 { + margin-right: 33.333333%; + margin-left: 0; +} + +.rtl .offset-5, +[dir="rtl"] .offset-5 { + margin-right: 41.666667%; + margin-left: 0; +} + +.rtl .offset-6, +[dir="rtl"] .offset-6 { + margin-right: 50%; + margin-left: 0; +} + +.rtl .offset-7, +[dir="rtl"] .offset-7 { + margin-right: 58.333333%; + margin-left: 0; +} + +.rtl .offset-8, +[dir="rtl"] .offset-8 { + margin-right: 66.666667%; + margin-left: 0; +} + +.rtl .offset-9, +[dir="rtl"] .offset-9 { + margin-right: 75%; + margin-left: 0; +} + +.rtl .offset-10, +[dir="rtl"] .offset-10 { + margin-right: 83.333333%; + margin-left: 0; +} + +.rtl .offset-11, +[dir="rtl"] .offset-11 { + margin-right: 91.666667%; + margin-left: 0; +} + +@media (min-width: 576px) { + .rtl .offset-sm-0, + [dir="rtl"] .offset-sm-0 { + margin-right: 0; + margin-left: 0; + } + .rtl .offset-sm-1, + [dir="rtl"] .offset-sm-1 { + margin-right: 8.333333%; + margin-left: 0; + } + .rtl .offset-sm-2, + [dir="rtl"] .offset-sm-2 { + margin-right: 16.666667%; + margin-left: 0; + } + .rtl .offset-sm-3, + [dir="rtl"] .offset-sm-3 { + margin-right: 25%; + margin-left: 0; + } + .rtl .offset-sm-4, + [dir="rtl"] .offset-sm-4 { + margin-right: 33.333333%; + margin-left: 0; + } + .rtl .offset-sm-5, + [dir="rtl"] .offset-sm-5 { + margin-right: 41.666667%; + margin-left: 0; + } + .rtl .offset-sm-6, + [dir="rtl"] .offset-sm-6 { + margin-right: 50%; + margin-left: 0; + } + .rtl .offset-sm-7, + [dir="rtl"] .offset-sm-7 { + margin-right: 58.333333%; + margin-left: 0; + } + .rtl .offset-sm-8, + [dir="rtl"] .offset-sm-8 { + margin-right: 66.666667%; + margin-left: 0; + } + .rtl .offset-sm-9, + [dir="rtl"] .offset-sm-9 { + margin-right: 75%; + margin-left: 0; + } + .rtl .offset-sm-10, + [dir="rtl"] .offset-sm-10 { + margin-right: 83.333333%; + margin-left: 0; + } + .rtl .offset-sm-11, + [dir="rtl"] .offset-sm-11 { + margin-right: 91.666667%; + margin-left: 0; + } +} + +@media (min-width: 768px) { + .rtl .offset-md-0, + [dir="rtl"] .offset-md-0 { + margin-right: 0; + margin-left: 0; + } + .rtl .offset-md-1, + [dir="rtl"] .offset-md-1 { + margin-right: 8.333333%; + margin-left: 0; + } + .rtl .offset-md-2, + [dir="rtl"] .offset-md-2 { + margin-right: 16.666667%; + margin-left: 0; + } + .rtl .offset-md-3, + [dir="rtl"] .offset-md-3 { + margin-right: 25%; + margin-left: 0; + } + .rtl .offset-md-4, + [dir="rtl"] .offset-md-4 { + margin-right: 33.333333%; + margin-left: 0; + } + .rtl .offset-md-5, + [dir="rtl"] .offset-md-5 { + margin-right: 41.666667%; + margin-left: 0; + } + .rtl .offset-md-6, + [dir="rtl"] .offset-md-6 { + margin-right: 50%; + margin-left: 0; + } + .rtl .offset-md-7, + [dir="rtl"] .offset-md-7 { + margin-right: 58.333333%; + margin-left: 0; + } + .rtl .offset-md-8, + [dir="rtl"] .offset-md-8 { + margin-right: 66.666667%; + margin-left: 0; + } + .rtl .offset-md-9, + [dir="rtl"] .offset-md-9 { + margin-right: 75%; + margin-left: 0; + } + .rtl .offset-md-10, + [dir="rtl"] .offset-md-10 { + margin-right: 83.333333%; + margin-left: 0; + } + .rtl .offset-md-11, + [dir="rtl"] .offset-md-11 { + margin-right: 91.666667%; + margin-left: 0; + } +} + +@media (min-width: 992px) { + .rtl .offset-lg-0, + [dir="rtl"] .offset-lg-0 { + margin-right: 0; + margin-left: 0; + } + .rtl .offset-lg-1, + [dir="rtl"] .offset-lg-1 { + margin-right: 8.333333%; + margin-left: 0; + } + .rtl .offset-lg-2, + [dir="rtl"] .offset-lg-2 { + margin-right: 16.666667%; + margin-left: 0; + } + .rtl .offset-lg-3, + [dir="rtl"] .offset-lg-3 { + margin-right: 25%; + margin-left: 0; + } + .rtl .offset-lg-4, + [dir="rtl"] .offset-lg-4 { + margin-right: 33.333333%; + margin-left: 0; + } + .rtl .offset-lg-5, + [dir="rtl"] .offset-lg-5 { + margin-right: 41.666667%; + margin-left: 0; + } + .rtl .offset-lg-6, + [dir="rtl"] .offset-lg-6 { + margin-right: 50%; + margin-left: 0; + } + .rtl .offset-lg-7, + [dir="rtl"] .offset-lg-7 { + margin-right: 58.333333%; + margin-left: 0; + } + .rtl .offset-lg-8, + [dir="rtl"] .offset-lg-8 { + margin-right: 66.666667%; + margin-left: 0; + } + .rtl .offset-lg-9, + [dir="rtl"] .offset-lg-9 { + margin-right: 75%; + margin-left: 0; + } + .rtl .offset-lg-10, + [dir="rtl"] .offset-lg-10 { + margin-right: 83.333333%; + margin-left: 0; + } + .rtl .offset-lg-11, + [dir="rtl"] .offset-lg-11 { + margin-right: 91.666667%; + margin-left: 0; + } +} + +@media (min-width: 1200px) { + .rtl .offset-xl-0, + [dir="rtl"] .offset-xl-0 { + margin-right: 0; + margin-left: 0; + } + .rtl .offset-xl-1, + [dir="rtl"] .offset-xl-1 { + margin-right: 8.333333%; + margin-left: 0; + } + .rtl .offset-xl-2, + [dir="rtl"] .offset-xl-2 { + margin-right: 16.666667%; + margin-left: 0; + } + .rtl .offset-xl-3, + [dir="rtl"] .offset-xl-3 { + margin-right: 25%; + margin-left: 0; + } + .rtl .offset-xl-4, + [dir="rtl"] .offset-xl-4 { + margin-right: 33.333333%; + margin-left: 0; + } + .rtl .offset-xl-5, + [dir="rtl"] .offset-xl-5 { + margin-right: 41.666667%; + margin-left: 0; + } + .rtl .offset-xl-6, + [dir="rtl"] .offset-xl-6 { + margin-right: 50%; + margin-left: 0; + } + .rtl .offset-xl-7, + [dir="rtl"] .offset-xl-7 { + margin-right: 58.333333%; + margin-left: 0; + } + .rtl .offset-xl-8, + [dir="rtl"] .offset-xl-8 { + margin-right: 66.666667%; + margin-left: 0; + } + .rtl .offset-xl-9, + [dir="rtl"] .offset-xl-9 { + margin-right: 75%; + margin-left: 0; + } + .rtl .offset-xl-10, + [dir="rtl"] .offset-xl-10 { + margin-right: 83.333333%; + margin-left: 0; + } + .rtl .offset-xl-11, + [dir="rtl"] .offset-xl-11 { + margin-right: 91.666667%; + margin-left: 0; + } +} + +.rtl .mr-0, +[dir="rtl"] .mr-0 { + margin-right: 0 !important; + margin-left: 0 !important; +} + +.rtl .ml-0, +[dir="rtl"] .ml-0 { + margin-left: 0 !important; + margin-right: 0 !important; +} + +.rtl mx-0, +[dir="rtl"] mx-0 { + margin-left: 0 !important; + margin-right: 0 !important; +} + +.rtl .mr-1, +[dir="rtl"] .mr-1 { + margin-right: 0 !important; + margin-left: 0.25rem !important; +} + +.rtl .ml-1, +[dir="rtl"] .ml-1 { + margin-left: 0 !important; + margin-right: 0.25rem !important; +} + +.rtl mx-1, +[dir="rtl"] mx-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; +} + +.rtl .mr-2, +[dir="rtl"] .mr-2 { + margin-right: 0 !important; + margin-left: 0.5rem !important; +} + +.rtl .ml-2, +[dir="rtl"] .ml-2 { + margin-left: 0 !important; + margin-right: 0.5rem !important; +} + +.rtl mx-2, +[dir="rtl"] mx-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; +} + +.rtl .mr-3, +[dir="rtl"] .mr-3 { + margin-right: 0 !important; + margin-left: 1rem !important; +} + +.rtl .ml-3, +[dir="rtl"] .ml-3 { + margin-left: 0 !important; + margin-right: 1rem !important; +} + +.rtl mx-3, +[dir="rtl"] mx-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; +} + +.rtl .mr-4, +[dir="rtl"] .mr-4 { + margin-right: 0 !important; + margin-left: 1.5rem !important; +} + +.rtl .ml-4, +[dir="rtl"] .ml-4 { + margin-left: 0 !important; + margin-right: 1.5rem !important; +} + +.rtl mx-4, +[dir="rtl"] mx-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; +} + +.rtl .mr-5, +[dir="rtl"] .mr-5 { + margin-right: 0 !important; + margin-left: 3rem !important; +} + +.rtl .ml-5, +[dir="rtl"] .ml-5 { + margin-left: 0 !important; + margin-right: 3rem !important; +} + +.rtl mx-5, +[dir="rtl"] mx-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; +} + +.rtl .pr-0, +[dir="rtl"] .pr-0 { + padding-right: 0 !important; + padding-left: 0 !important; +} + +.rtl .pl-0, +[dir="rtl"] .pl-0 { + padding-left: 0 !important; + padding-right: 0 !important; +} + +.rtl px-0, +[dir="rtl"] px-0 { + padding-left: 0 !important; + padding-right: 0 !important; +} + +.rtl .pr-1, +[dir="rtl"] .pr-1 { + padding-right: 0 !important; + padding-left: 0.25rem !important; +} + +.rtl .pl-1, +[dir="rtl"] .pl-1 { + padding-left: 0 !important; + padding-right: 0.25rem !important; +} + +.rtl px-1, +[dir="rtl"] px-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; +} + +.rtl .pr-2, +[dir="rtl"] .pr-2 { + padding-right: 0 !important; + padding-left: 0.5rem !important; +} + +.rtl .pl-2, +[dir="rtl"] .pl-2 { + padding-left: 0 !important; + padding-right: 0.5rem !important; +} + +.rtl px-2, +[dir="rtl"] px-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; +} + +.rtl .pr-3, +[dir="rtl"] .pr-3 { + padding-right: 0 !important; + padding-left: 1rem !important; +} + +.rtl .pl-3, +[dir="rtl"] .pl-3 { + padding-left: 0 !important; + padding-right: 1rem !important; +} + +.rtl px-3, +[dir="rtl"] px-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; +} + +.rtl .pr-4, +[dir="rtl"] .pr-4 { + padding-right: 0 !important; + padding-left: 1.5rem !important; +} + +.rtl .pl-4, +[dir="rtl"] .pl-4 { + padding-left: 0 !important; + padding-right: 1.5rem !important; +} + +.rtl px-4, +[dir="rtl"] px-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; +} + +.rtl .pr-5, +[dir="rtl"] .pr-5 { + padding-right: 0 !important; + padding-left: 3rem !important; +} + +.rtl .pl-5, +[dir="rtl"] .pl-5 { + padding-left: 0 !important; + padding-right: 3rem !important; +} + +.rtl px-5, +[dir="rtl"] px-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; +} + +.rtl .mr-auto, +[dir="rtl"] .mr-auto { + margin-right: 0 !important; + margin-left: auto !important; +} + +.rtl .ml-auto, +[dir="rtl"] .ml-auto { + margin-right: auto !important; + margin-left: 0 !important; +} + +.rtl .mx-auto, +[dir="rtl"] .mx-auto { + margin-right: auto !important; + margin-left: auto !important; +} + +@media (min-width: 576px) { + .rtl .mr-sm-0, + [dir="rtl"] .mr-sm-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .rtl .ml-sm-0, + [dir="rtl"] .ml-sm-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + .rtl mx-sm-0, + [dir="rtl"] mx-sm-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + .rtl .mr-sm-1, + [dir="rtl"] .mr-sm-1 { + margin-right: 0 !important; + margin-left: 0.25rem !important; + } + .rtl .ml-sm-1, + [dir="rtl"] .ml-sm-1 { + margin-left: 0 !important; + margin-right: 0.25rem !important; + } + .rtl mx-sm-1, + [dir="rtl"] mx-sm-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + .rtl .mr-sm-2, + [dir="rtl"] .mr-sm-2 { + margin-right: 0 !important; + margin-left: 0.5rem !important; + } + .rtl .ml-sm-2, + [dir="rtl"] .ml-sm-2 { + margin-left: 0 !important; + margin-right: 0.5rem !important; + } + .rtl mx-sm-2, + [dir="rtl"] mx-sm-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + .rtl .mr-sm-3, + [dir="rtl"] .mr-sm-3 { + margin-right: 0 !important; + margin-left: 1rem !important; + } + .rtl .ml-sm-3, + [dir="rtl"] .ml-sm-3 { + margin-left: 0 !important; + margin-right: 1rem !important; + } + .rtl mx-sm-3, + [dir="rtl"] mx-sm-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + .rtl .mr-sm-4, + [dir="rtl"] .mr-sm-4 { + margin-right: 0 !important; + margin-left: 1.5rem !important; + } + .rtl .ml-sm-4, + [dir="rtl"] .ml-sm-4 { + margin-left: 0 !important; + margin-right: 1.5rem !important; + } + .rtl mx-sm-4, + [dir="rtl"] mx-sm-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + .rtl .mr-sm-5, + [dir="rtl"] .mr-sm-5 { + margin-right: 0 !important; + margin-left: 3rem !important; + } + .rtl .ml-sm-5, + [dir="rtl"] .ml-sm-5 { + margin-left: 0 !important; + margin-right: 3rem !important; + } + .rtl mx-sm-5, + [dir="rtl"] mx-sm-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + .rtl .pr-sm-0, + [dir="rtl"] .pr-sm-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .rtl .pl-sm-0, + [dir="rtl"] .pl-sm-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + .rtl px-sm-0, + [dir="rtl"] px-sm-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + .rtl .pr-sm-1, + [dir="rtl"] .pr-sm-1 { + padding-right: 0 !important; + padding-left: 0.25rem !important; + } + .rtl .pl-sm-1, + [dir="rtl"] .pl-sm-1 { + padding-left: 0 !important; + padding-right: 0.25rem !important; + } + .rtl px-sm-1, + [dir="rtl"] px-sm-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + .rtl .pr-sm-2, + [dir="rtl"] .pr-sm-2 { + padding-right: 0 !important; + padding-left: 0.5rem !important; + } + .rtl .pl-sm-2, + [dir="rtl"] .pl-sm-2 { + padding-left: 0 !important; + padding-right: 0.5rem !important; + } + .rtl px-sm-2, + [dir="rtl"] px-sm-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + .rtl .pr-sm-3, + [dir="rtl"] .pr-sm-3 { + padding-right: 0 !important; + padding-left: 1rem !important; + } + .rtl .pl-sm-3, + [dir="rtl"] .pl-sm-3 { + padding-left: 0 !important; + padding-right: 1rem !important; + } + .rtl px-sm-3, + [dir="rtl"] px-sm-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + .rtl .pr-sm-4, + [dir="rtl"] .pr-sm-4 { + padding-right: 0 !important; + padding-left: 1.5rem !important; + } + .rtl .pl-sm-4, + [dir="rtl"] .pl-sm-4 { + padding-left: 0 !important; + padding-right: 1.5rem !important; + } + .rtl px-sm-4, + [dir="rtl"] px-sm-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + .rtl .pr-sm-5, + [dir="rtl"] .pr-sm-5 { + padding-right: 0 !important; + padding-left: 3rem !important; + } + .rtl .pl-sm-5, + [dir="rtl"] .pl-sm-5 { + padding-left: 0 !important; + padding-right: 3rem !important; + } + .rtl px-sm-5, + [dir="rtl"] px-sm-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + .rtl .mr-sm-auto, + [dir="rtl"] .mr-sm-auto { + margin-right: 0 !important; + margin-left: auto !important; + } + .rtl .ml-sm-auto, + [dir="rtl"] .ml-sm-auto { + margin-right: auto !important; + margin-left: 0 !important; + } + .rtl .mx-sm-auto, + [dir="rtl"] .mx-sm-auto { + margin-right: auto !important; + margin-left: auto !important; + } +} + +@media (min-width: 768px) { + .rtl .mr-md-0, + [dir="rtl"] .mr-md-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .rtl .ml-md-0, + [dir="rtl"] .ml-md-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + .rtl mx-md-0, + [dir="rtl"] mx-md-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + .rtl .mr-md-1, + [dir="rtl"] .mr-md-1 { + margin-right: 0 !important; + margin-left: 0.25rem !important; + } + .rtl .ml-md-1, + [dir="rtl"] .ml-md-1 { + margin-left: 0 !important; + margin-right: 0.25rem !important; + } + .rtl mx-md-1, + [dir="rtl"] mx-md-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + .rtl .mr-md-2, + [dir="rtl"] .mr-md-2 { + margin-right: 0 !important; + margin-left: 0.5rem !important; + } + .rtl .ml-md-2, + [dir="rtl"] .ml-md-2 { + margin-left: 0 !important; + margin-right: 0.5rem !important; + } + .rtl mx-md-2, + [dir="rtl"] mx-md-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + .rtl .mr-md-3, + [dir="rtl"] .mr-md-3 { + margin-right: 0 !important; + margin-left: 1rem !important; + } + .rtl .ml-md-3, + [dir="rtl"] .ml-md-3 { + margin-left: 0 !important; + margin-right: 1rem !important; + } + .rtl mx-md-3, + [dir="rtl"] mx-md-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + .rtl .mr-md-4, + [dir="rtl"] .mr-md-4 { + margin-right: 0 !important; + margin-left: 1.5rem !important; + } + .rtl .ml-md-4, + [dir="rtl"] .ml-md-4 { + margin-left: 0 !important; + margin-right: 1.5rem !important; + } + .rtl mx-md-4, + [dir="rtl"] mx-md-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + .rtl .mr-md-5, + [dir="rtl"] .mr-md-5 { + margin-right: 0 !important; + margin-left: 3rem !important; + } + .rtl .ml-md-5, + [dir="rtl"] .ml-md-5 { + margin-left: 0 !important; + margin-right: 3rem !important; + } + .rtl mx-md-5, + [dir="rtl"] mx-md-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + .rtl .pr-md-0, + [dir="rtl"] .pr-md-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .rtl .pl-md-0, + [dir="rtl"] .pl-md-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + .rtl px-md-0, + [dir="rtl"] px-md-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + .rtl .pr-md-1, + [dir="rtl"] .pr-md-1 { + padding-right: 0 !important; + padding-left: 0.25rem !important; + } + .rtl .pl-md-1, + [dir="rtl"] .pl-md-1 { + padding-left: 0 !important; + padding-right: 0.25rem !important; + } + .rtl px-md-1, + [dir="rtl"] px-md-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + .rtl .pr-md-2, + [dir="rtl"] .pr-md-2 { + padding-right: 0 !important; + padding-left: 0.5rem !important; + } + .rtl .pl-md-2, + [dir="rtl"] .pl-md-2 { + padding-left: 0 !important; + padding-right: 0.5rem !important; + } + .rtl px-md-2, + [dir="rtl"] px-md-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + .rtl .pr-md-3, + [dir="rtl"] .pr-md-3 { + padding-right: 0 !important; + padding-left: 1rem !important; + } + .rtl .pl-md-3, + [dir="rtl"] .pl-md-3 { + padding-left: 0 !important; + padding-right: 1rem !important; + } + .rtl px-md-3, + [dir="rtl"] px-md-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + .rtl .pr-md-4, + [dir="rtl"] .pr-md-4 { + padding-right: 0 !important; + padding-left: 1.5rem !important; + } + .rtl .pl-md-4, + [dir="rtl"] .pl-md-4 { + padding-left: 0 !important; + padding-right: 1.5rem !important; + } + .rtl px-md-4, + [dir="rtl"] px-md-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + .rtl .pr-md-5, + [dir="rtl"] .pr-md-5 { + padding-right: 0 !important; + padding-left: 3rem !important; + } + .rtl .pl-md-5, + [dir="rtl"] .pl-md-5 { + padding-left: 0 !important; + padding-right: 3rem !important; + } + .rtl px-md-5, + [dir="rtl"] px-md-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + .rtl .mr-md-auto, + [dir="rtl"] .mr-md-auto { + margin-right: 0 !important; + margin-left: auto !important; + } + .rtl .ml-md-auto, + [dir="rtl"] .ml-md-auto { + margin-right: auto !important; + margin-left: 0 !important; + } + .rtl .mx-md-auto, + [dir="rtl"] .mx-md-auto { + margin-right: auto !important; + margin-left: auto !important; + } +} + +@media (min-width: 992px) { + .rtl .mr-lg-0, + [dir="rtl"] .mr-lg-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .rtl .ml-lg-0, + [dir="rtl"] .ml-lg-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + .rtl mx-lg-0, + [dir="rtl"] mx-lg-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + .rtl .mr-lg-1, + [dir="rtl"] .mr-lg-1 { + margin-right: 0 !important; + margin-left: 0.25rem !important; + } + .rtl .ml-lg-1, + [dir="rtl"] .ml-lg-1 { + margin-left: 0 !important; + margin-right: 0.25rem !important; + } + .rtl mx-lg-1, + [dir="rtl"] mx-lg-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + .rtl .mr-lg-2, + [dir="rtl"] .mr-lg-2 { + margin-right: 0 !important; + margin-left: 0.5rem !important; + } + .rtl .ml-lg-2, + [dir="rtl"] .ml-lg-2 { + margin-left: 0 !important; + margin-right: 0.5rem !important; + } + .rtl mx-lg-2, + [dir="rtl"] mx-lg-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + .rtl .mr-lg-3, + [dir="rtl"] .mr-lg-3 { + margin-right: 0 !important; + margin-left: 1rem !important; + } + .rtl .ml-lg-3, + [dir="rtl"] .ml-lg-3 { + margin-left: 0 !important; + margin-right: 1rem !important; + } + .rtl mx-lg-3, + [dir="rtl"] mx-lg-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + .rtl .mr-lg-4, + [dir="rtl"] .mr-lg-4 { + margin-right: 0 !important; + margin-left: 1.5rem !important; + } + .rtl .ml-lg-4, + [dir="rtl"] .ml-lg-4 { + margin-left: 0 !important; + margin-right: 1.5rem !important; + } + .rtl mx-lg-4, + [dir="rtl"] mx-lg-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + .rtl .mr-lg-5, + [dir="rtl"] .mr-lg-5 { + margin-right: 0 !important; + margin-left: 3rem !important; + } + .rtl .ml-lg-5, + [dir="rtl"] .ml-lg-5 { + margin-left: 0 !important; + margin-right: 3rem !important; + } + .rtl mx-lg-5, + [dir="rtl"] mx-lg-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + .rtl .pr-lg-0, + [dir="rtl"] .pr-lg-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .rtl .pl-lg-0, + [dir="rtl"] .pl-lg-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + .rtl px-lg-0, + [dir="rtl"] px-lg-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + .rtl .pr-lg-1, + [dir="rtl"] .pr-lg-1 { + padding-right: 0 !important; + padding-left: 0.25rem !important; + } + .rtl .pl-lg-1, + [dir="rtl"] .pl-lg-1 { + padding-left: 0 !important; + padding-right: 0.25rem !important; + } + .rtl px-lg-1, + [dir="rtl"] px-lg-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + .rtl .pr-lg-2, + [dir="rtl"] .pr-lg-2 { + padding-right: 0 !important; + padding-left: 0.5rem !important; + } + .rtl .pl-lg-2, + [dir="rtl"] .pl-lg-2 { + padding-left: 0 !important; + padding-right: 0.5rem !important; + } + .rtl px-lg-2, + [dir="rtl"] px-lg-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + .rtl .pr-lg-3, + [dir="rtl"] .pr-lg-3 { + padding-right: 0 !important; + padding-left: 1rem !important; + } + .rtl .pl-lg-3, + [dir="rtl"] .pl-lg-3 { + padding-left: 0 !important; + padding-right: 1rem !important; + } + .rtl px-lg-3, + [dir="rtl"] px-lg-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + .rtl .pr-lg-4, + [dir="rtl"] .pr-lg-4 { + padding-right: 0 !important; + padding-left: 1.5rem !important; + } + .rtl .pl-lg-4, + [dir="rtl"] .pl-lg-4 { + padding-left: 0 !important; + padding-right: 1.5rem !important; + } + .rtl px-lg-4, + [dir="rtl"] px-lg-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + .rtl .pr-lg-5, + [dir="rtl"] .pr-lg-5 { + padding-right: 0 !important; + padding-left: 3rem !important; + } + .rtl .pl-lg-5, + [dir="rtl"] .pl-lg-5 { + padding-left: 0 !important; + padding-right: 3rem !important; + } + .rtl px-lg-5, + [dir="rtl"] px-lg-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + .rtl .mr-lg-auto, + [dir="rtl"] .mr-lg-auto { + margin-right: 0 !important; + margin-left: auto !important; + } + .rtl .ml-lg-auto, + [dir="rtl"] .ml-lg-auto { + margin-right: auto !important; + margin-left: 0 !important; + } + .rtl .mx-lg-auto, + [dir="rtl"] .mx-lg-auto { + margin-right: auto !important; + margin-left: auto !important; + } +} + +@media (min-width: 1200px) { + .rtl .mr-xl-0, + [dir="rtl"] .mr-xl-0 { + margin-right: 0 !important; + margin-left: 0 !important; + } + .rtl .ml-xl-0, + [dir="rtl"] .ml-xl-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + .rtl mx-xl-0, + [dir="rtl"] mx-xl-0 { + margin-left: 0 !important; + margin-right: 0 !important; + } + .rtl .mr-xl-1, + [dir="rtl"] .mr-xl-1 { + margin-right: 0 !important; + margin-left: 0.25rem !important; + } + .rtl .ml-xl-1, + [dir="rtl"] .ml-xl-1 { + margin-left: 0 !important; + margin-right: 0.25rem !important; + } + .rtl mx-xl-1, + [dir="rtl"] mx-xl-1 { + margin-left: 0.25rem !important; + margin-right: 0.25rem !important; + } + .rtl .mr-xl-2, + [dir="rtl"] .mr-xl-2 { + margin-right: 0 !important; + margin-left: 0.5rem !important; + } + .rtl .ml-xl-2, + [dir="rtl"] .ml-xl-2 { + margin-left: 0 !important; + margin-right: 0.5rem !important; + } + .rtl mx-xl-2, + [dir="rtl"] mx-xl-2 { + margin-left: 0.5rem !important; + margin-right: 0.5rem !important; + } + .rtl .mr-xl-3, + [dir="rtl"] .mr-xl-3 { + margin-right: 0 !important; + margin-left: 1rem !important; + } + .rtl .ml-xl-3, + [dir="rtl"] .ml-xl-3 { + margin-left: 0 !important; + margin-right: 1rem !important; + } + .rtl mx-xl-3, + [dir="rtl"] mx-xl-3 { + margin-left: 1rem !important; + margin-right: 1rem !important; + } + .rtl .mr-xl-4, + [dir="rtl"] .mr-xl-4 { + margin-right: 0 !important; + margin-left: 1.5rem !important; + } + .rtl .ml-xl-4, + [dir="rtl"] .ml-xl-4 { + margin-left: 0 !important; + margin-right: 1.5rem !important; + } + .rtl mx-xl-4, + [dir="rtl"] mx-xl-4 { + margin-left: 1.5rem !important; + margin-right: 1.5rem !important; + } + .rtl .mr-xl-5, + [dir="rtl"] .mr-xl-5 { + margin-right: 0 !important; + margin-left: 3rem !important; + } + .rtl .ml-xl-5, + [dir="rtl"] .ml-xl-5 { + margin-left: 0 !important; + margin-right: 3rem !important; + } + .rtl mx-xl-5, + [dir="rtl"] mx-xl-5 { + margin-left: 3rem !important; + margin-right: 3rem !important; + } + .rtl .pr-xl-0, + [dir="rtl"] .pr-xl-0 { + padding-right: 0 !important; + padding-left: 0 !important; + } + .rtl .pl-xl-0, + [dir="rtl"] .pl-xl-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + .rtl px-xl-0, + [dir="rtl"] px-xl-0 { + padding-left: 0 !important; + padding-right: 0 !important; + } + .rtl .pr-xl-1, + [dir="rtl"] .pr-xl-1 { + padding-right: 0 !important; + padding-left: 0.25rem !important; + } + .rtl .pl-xl-1, + [dir="rtl"] .pl-xl-1 { + padding-left: 0 !important; + padding-right: 0.25rem !important; + } + .rtl px-xl-1, + [dir="rtl"] px-xl-1 { + padding-left: 0.25rem !important; + padding-right: 0.25rem !important; + } + .rtl .pr-xl-2, + [dir="rtl"] .pr-xl-2 { + padding-right: 0 !important; + padding-left: 0.5rem !important; + } + .rtl .pl-xl-2, + [dir="rtl"] .pl-xl-2 { + padding-left: 0 !important; + padding-right: 0.5rem !important; + } + .rtl px-xl-2, + [dir="rtl"] px-xl-2 { + padding-left: 0.5rem !important; + padding-right: 0.5rem !important; + } + .rtl .pr-xl-3, + [dir="rtl"] .pr-xl-3 { + padding-right: 0 !important; + padding-left: 1rem !important; + } + .rtl .pl-xl-3, + [dir="rtl"] .pl-xl-3 { + padding-left: 0 !important; + padding-right: 1rem !important; + } + .rtl px-xl-3, + [dir="rtl"] px-xl-3 { + padding-left: 1rem !important; + padding-right: 1rem !important; + } + .rtl .pr-xl-4, + [dir="rtl"] .pr-xl-4 { + padding-right: 0 !important; + padding-left: 1.5rem !important; + } + .rtl .pl-xl-4, + [dir="rtl"] .pl-xl-4 { + padding-left: 0 !important; + padding-right: 1.5rem !important; + } + .rtl px-xl-4, + [dir="rtl"] px-xl-4 { + padding-left: 1.5rem !important; + padding-right: 1.5rem !important; + } + .rtl .pr-xl-5, + [dir="rtl"] .pr-xl-5 { + padding-right: 0 !important; + padding-left: 3rem !important; + } + .rtl .pl-xl-5, + [dir="rtl"] .pl-xl-5 { + padding-left: 0 !important; + padding-right: 3rem !important; + } + .rtl px-xl-5, + [dir="rtl"] px-xl-5 { + padding-left: 3rem !important; + padding-right: 3rem !important; + } + .rtl .mr-xl-auto, + [dir="rtl"] .mr-xl-auto { + margin-right: 0 !important; + margin-left: auto !important; + } + .rtl .ml-xl-auto, + [dir="rtl"] .ml-xl-auto { + margin-right: auto !important; + margin-left: 0 !important; + } + .rtl .mx-xl-auto, + [dir="rtl"] .mx-xl-auto { + margin-right: auto !important; + margin-left: auto !important; + } +} + +.rtl .text-right, +[dir="rtl"] .text-right { + text-align: left !important; +} + +.rtl .text-left, +[dir="rtl"] .text-left { + text-align: right !important; +} + +@media (min-width: 576px) { + .rtl .text-sm-right, + [dir="rtl"] .text-sm-right { + text-align: left !important; + } + .rtl .text-sm-left, + [dir="rtl"] .text-sm-left { + text-align: right !important; + } +} + +@media (min-width: 768px) { + .rtl .text-md-right, + [dir="rtl"] .text-md-right { + text-align: left !important; + } + .rtl .text-md-left, + [dir="rtl"] .text-md-left { + text-align: right !important; + } +} + +@media (min-width: 992px) { + .rtl .text-lg-right, + [dir="rtl"] .text-lg-right { + text-align: left !important; + } + .rtl .text-lg-left, + [dir="rtl"] .text-lg-left { + text-align: right !important; + } +} + +@media (min-width: 1200px) { + .rtl .text-xl-right, + [dir="rtl"] .text-xl-right { + text-align: left !important; + } + .rtl .text-xl-left, + [dir="rtl"] .text-xl-left { + text-align: right !important; + } +} +/*# sourceMappingURL=bootstrap-rtl.css.map */ \ No newline at end of file diff --git a/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/bootstrap/css/bootstrap-rtl.css.map b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/bootstrap/css/bootstrap-rtl.css.map new file mode 100644 index 0000000000..a1927ae7b4 --- /dev/null +++ b/modules/virtual-file-explorer/app/Volo.Abp.VirtualFileExplorer.DemoApp/wwwroot/libs/bootstrap/css/bootstrap-rtl.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/bootstrap-rtl.scss","bootstrap-rtl.css","../../scss/_root.scss","../../scss/_reboot.scss","../../scss/_variables.scss","../../scss/vendor/_rfs.scss","../../scss/mixins/_hover.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/mixins/_border-radius.scss","../../scss/_code.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/mixins/_breakpoints.scss","../../scss/mixins/_grid-framework.scss","../../scss/_tables.scss","../../scss/mixins/_table-row.scss","../../scss/_functions.scss","../../scss/_forms.scss","../../scss/mixins/_transition.scss","../../scss/mixins/_forms.scss","../../scss/mixins/_gradients.scss","../../scss/_buttons.scss","../../scss/mixins/_buttons.scss","../../scss/_transitions.scss","../../scss/_dropdown.scss","../../scss/mixins/_caret.scss","../../scss/mixins/_nav-divider.scss","../../scss/_button-group.scss","../../scss/_input-group.scss","../../scss/_custom-forms.scss","../../scss/_nav.scss","../../scss/_navbar.scss","../../scss/_card.scss","../../scss/_breadcrumb.scss","../../scss/_pagination.scss","../../scss/mixins/_pagination.scss","../../scss/_badge.scss","../../scss/mixins/_badge.scss","../../scss/_jumbotron.scss","../../scss/_alert.scss","../../scss/mixins/_alert.scss","../../scss/_progress.scss","../../scss/_media.scss","../../scss/_list-group.scss","../../scss/mixins/_list-group.scss","../../scss/_close.scss","../../scss/_toasts.scss","../../scss/_modal.scss","../../scss/_tooltip.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_carousel.scss","../../scss/mixins/_clearfix.scss","../../scss/_spinners.scss","../../scss/utilities/_align.scss","../../scss/mixins/_background-variant.scss","../../scss/utilities/_background.scss","../../scss/utilities/_borders.scss","../../scss/utilities/_display.scss","../../scss/utilities/_embed.scss","../../scss/utilities/_flex.scss","../../scss/utilities/_float.scss","../../scss/utilities/_overflow.scss","../../scss/utilities/_position.scss","../../scss/utilities/_screenreaders.scss","../../scss/mixins/_screen-reader.scss","../../scss/utilities/_shadows.scss","../../scss/utilities/_sizing.scss","../../scss/utilities/_stretched-link.scss","../../scss/utilities/_spacing.scss","../../scss/utilities/_text.scss","../../scss/mixins/_text-truncate.scss","../../scss/mixins/_text-emphasis.scss","../../scss/mixins/_text-hide.scss","../../scss/utilities/_visibility.scss","../../scss/_print.scss","../../scss/_rtl.scss"],"names":[],"mappings":"AAAA;;;;;ECKE;ACJF;EAGI,eAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,eAAc;EAAd,cAAc;EAAd,iBAAc;EAAd,iBAAc;EAAd,gBAAc;EAAd,eAAc;EAAd,eAAc;EAAd,aAAc;EAAd,eAAc;EAAd,oBAAc;EAId,kBAAc;EAAd,oBAAc;EAAd,kBAAc;EAAd,eAAc;EAAd,kBAAc;EAAd,iBAAc;EAAd,gBAAc;EAAd,eAAc;EAId,kBAAiC;EAAjC,sBAAiC;EAAjC,sBAAiC;EAAjC,sBAAiC;EAAjC,uBAAiC;EAKnC,+MAAyB;EACzB,6GAAwB;ADiB1B;;AEjBA;;;EAGE,sBAAsB;AFoBxB;;AEjBA;EACE,uBAAuB;EACvB,iBAAiB;EACjB,8BAA8B;EAC9B,6CCXa;AH+Bf;;AEdA;EACE,cAAc;AFiBhB;;AEPA;EACE,SAAS;EACT,kMCyOiN;ECzJ7M,eAtCY;EFxChB,gBCkP+B;EDjP/B,gBCsP+B;EDrP/B,cCnCgB;EDoChB,gBAAgB;EAChB,sBC9Ca;AHwDf;;AAEA;EECE,qBAAqB;AFCvB;;AEQA;EACE,uBAAuB;EACvB,SAAS;EACT,iBAAiB;AFLnB;;AEkBA;EACE,aAAa;EACb,qBCoNuC;AHnOzC;;AEsBA;EACE,aAAa;EACb,mBCuF8B;AH1GhC;;AE8BA;;EAEE,0BAA0B;EAC1B,yCAAiC;EAAjC,iCAAiC;EACjC,YAAY;EACZ,gBAAgB;EAChB,sCAA8B;EAA9B,8BAA8B;AF3BhC;;AE8BA;EACE,mBAAmB;EACnB,kBAAkB;EAClB,oBAAoB;AF3BtB;;AE8BA;;;EAGE,aAAa;EACb,mBAAmB;AF3BrB;;AE8BA;;;;EAIE,gBAAgB;AF3BlB;;AE8BA;EACE,gBCqJ+B;AHhLjC;;AE8BA;EACE,oBAAoB;EACpB,cAAc;AF3BhB;;AE8BA;EACE,gBAAgB;AF3BlB;;AE8BA;;EAEE,mBCwIkC;AHnKpC;;AE8BA;EExFI,cAAW;AJ8Df;;AEmCA;;EAEE,kBAAkB;EEnGhB,cAAW;EFqGb,cAAc;EACd,wBAAwB;AFhC1B;;AEmCA;EAAM,cAAc;AF/BpB;;AEgCA;EAAM,UAAU;AF5BhB;;AEmCA;EACE,cCtJe;EDuJf,qBCR4C;EDS5C,6BAA6B;AFhC/B;;AKhJE;EHmLE,cCX8D;EDY9D,0BCX+C;AHpBnD;;AEwCA;EACE,cAAc;EACd,qBAAqB;AFrCvB;;AK1JE;EHkME,cAAc;EACd,qBAAqB;AFpCzB;;AE6CA;;;;EAIE,iGC6DgH;ECjN9G,cAAW;AJ2Gf;;AE6CA;EAEE,aAAa;EAEb,mBAAmB;EAEnB,cAAc;AF7ChB;;AEqDA;EAEE,gBAAgB;AFnDlB;;AE2DA;EACE,sBAAsB;EACtB,kBAAkB;AFxDpB;;AE2DA;EAGE,gBAAgB;EAChB,sBAAsB;AF1DxB;;AEkEA;EACE,yBAAyB;AF/D3B;;AEkEA;EACE,oBCoFkC;EDnFlC,uBCmFkC;EDlFlC,cCnQgB;EDoQhB,gBAAgB;EAChB,oBAAoB;AF/DtB;;AEkEA;EAGE,mBAAmB;AFjErB;;AEyEA;EAEE,qBAAqB;EACrB,qBCqK2C;AH5O7C;;AE6EA;EAEE,gBAAgB;AF3ElB;;AEkFA;EACE,mBAAmB;EACnB,0CAA0C;AF/E5C;;AEkFA;;;;;EAKE,SAAS;EACT,oBAAoB;EErPlB,kBAAW;EFuPb,oBAAoB;AF/EtB;;AEkFA;;EAEE,iBAAiB;AF/EnB;;AEkFA;;EAEE,oBAAoB;AF/EtB;;AEqFA;EACE,iBAAiB;AFlFnB;;AEyFA;;;;EAIE,0BAA0B;AFtF5B;;AE2FE;;;;EAKI,eAAe;AFzFrB;;AE+FA;;;;EAIE,UAAU;EACV,kBAAkB;AF5FpB;;AE+FA;;EAEE,sBAAsB;EACtB,UAAU;AF5FZ;;AEgGA;;;;EASE,2BAA2B;AFlG7B;;AEqGA;EACE,cAAc;EAEd,gBAAgB;AFnGlB;;AEsGA;EAME,YAAY;EAEZ,UAAU;EACV,SAAS;EACT,SAAS;AFzGX;;AE8GA;EACE,cAAc;EACd,WAAW;EACX,eAAe;EACf,UAAU;EACV,oBAAoB;EEjShB,iBAtCY;EFyUhB,oBAAoB;EACpB,cAAc;EACd,mBAAmB;AF3GrB;;AE8GA;EACE,wBAAwB;AF3G1B;;AAEA;;EE+GE,YAAY;AF5Gd;;AAEA;EEkHE,oBAAoB;EACpB,wBAAwB;AFhH1B;;AAEA;EEsHE,wBAAwB;AFpH1B;;AE4HA;EACE,aAAa;EACb,0BAA0B;AFzH5B;;AEgIA;EACE,qBAAqB;AF7HvB;;AEgIA;EACE,kBAAkB;EAClB,eAAe;AF7HjB;;AEgIA;EACE,aAAa;AF7Hf;;AAEA;EEiIE,wBAAwB;AF/H1B;;AM3VA;;EAEE,qBHySuC;EGvSvC,gBHyS+B;EGxS/B,gBHyS+B;AHoDjC;;AMzVA;EFgHM,iBAtCY;AJmRlB;;AM5VA;EF+GM,eAtCY;AJuRlB;;AM/VA;EF8GM,kBAtCY;AJ2RlB;;AMlWA;EF6GM,iBAtCY;AJ+RlB;;AMrWA;EF4GM,kBAtCY;AJmSlB;;AMxWA;EF2GM,eAtCY;AJuSlB;;AM1WA;EFyGM,kBAtCY;EEjEhB,gBH2S+B;AHkEjC;;AMzWA;EFmGM,eAtCY;EE3DhB,gBH8R+B;EG7R/B,gBHqR+B;AHuFjC;;AM1WA;EF8FM,iBAtCY;EEtDhB,gBH0R+B;EGzR/B,gBHgR+B;AH6FjC;;AM3WA;EFyFM,iBAtCY;EEjDhB,gBHsR+B;EGrR/B,gBH2Q+B;AHmGjC;;AM5WA;EFoFM,iBAtCY;EE5ChB,gBHkR+B;EGjR/B,gBHsQ+B;AHyGjC;;AElVA;EIpBE,gBHiFW;EGhFX,mBHgFW;EG/EX,SAAS;EACT,wCHzCa;AHmZf;;AMlWA;;EFMI,cAAW;EEHb,gBH8N+B;AHuIjC;;AMlWA;;EAEE,cHsQgC;EGrQhC,yBH8QmC;AHuFrC;;AM7VA;EC/EE,eAAe;EACf,gBAAgB;APgblB;;AM7VA;ECpFE,eAAe;EACf,gBAAgB;APqblB;;AM/VA;EACE,qBAAqB;ANkWvB;;AMnWA;EAII,oBHwP+B;AH2GnC;;AMzVA;EFjCI,cAAW;EEmCb,yBAAyB;AN4V3B;;AMxVA;EACE,mBHwBW;ECTP,kBAtCY;AJmXlB;;AMxVA;EACE,cAAc;EF7CZ,cAAW;EE+Cb,cH1GgB;AHqclB;;AM9VA;EAMI,qBAAqB;AN4VzB;;AQ/cA;ECIE,eAAe;EAGf,YAAY;AT6cd;;AQ9cA;EACE,gBLigCwC;EKhgCxC,sBLRa;EKSb,yBLNgB;EOLd,sBP6OgC;EMvOlC,eAAe;EAGf,YAAY;ATsdd;;AQxcA;EAEE,qBAAqB;AR0cvB;;AQvcA;EACE,qBAA0B;EAC1B,cAAc;AR0chB;;AQvcA;EJkCI,cAAW;EIhCb,cL3BgB;AHqelB;;AWjfA;EPuEI,gBAAW;EOrEb,cRoCe;EQnCf,qBAAqB;AXofvB;;AWjfE;EACE,cAAc;AXoflB;;AW/eA;EACE,sBRqlCuC;EC3hCrC,gBAAW;EOxDb,WRTa;EQUb,yBRDgB;EOXd,qBP+O+B;AHgRnC;;AWvfA;EASI,UAAU;EPkDV,eAAW;EOhDX,gBR4Q6B;AHsOjC;;AE1SA;ESjME,cAAc;EPyCZ,gBAAW;EOvCb,cRjBgB;AHggBlB;;AWlfA;EP0CI,kBAAW;EOlCX,cAAc;EACd,kBAAkB;AX+etB;;AW1eA;EACE,iBR4jCuC;EQ3jCvC,kBAAkB;AX6epB;;AYrhBE;ECDA,WAAW;EACX,mBAA0B;EAC1B,kBAAyB;EACzB,kBAAkB;EAClB,iBAAiB;Ab0hBnB;;AcveI;EFtDF;ICaI,gBVmMK;EHkVT;AACF;;Ac7eI;EFtDF;ICaI,gBVoMK;EHuVT;AACF;;AcnfI;EFtDF;ICaI,gBVqMK;EH4VT;AACF;;AczfI;EFtDF;ICaI,iBVsMM;EHiWV;AACF;;AY/iBE;ECPA,WAAW;EACX,mBAA0B;EAC1B,kBAAyB;EACzB,kBAAkB;EAClB,iBAAiB;Ab0jBnB;;AcvgBI;EFrCE;IACE,gBT8LG;EHkXT;AACF;;Ac7gBI;EFrCE;IACE,gBT+LG;EHuXT;AACF;;AcnhBI;EFrCE;IACE,gBTgMG;EH4XT;AACF;;AczhBI;EFrCE;IACE,iBTiMI;EHiYV;AACF;;AY/iBE;ECnBA,aAAa;EACb,eAAe;EACf,mBAA0B;EAC1B,kBAAyB;AbskB3B;;AYhjBE;EACE,eAAe;EACf,cAAc;AZmjBlB;;AYrjBE;;EAMI,gBAAgB;EAChB,eAAe;AZojBrB;;AetmBE;;;;;;EACE,kBAAkB;EAClB,WAAW;EACX,mBAA0B;EAC1B,kBAAyB;Af8mB7B;;Ae3lBM;EACE,aAAa;EACb,YAAY;EACZ,eAAe;Af8lBvB;;Ae1lBQ;EF8BJ,cAAuB;EACvB,eAAwB;AbgkB5B;;Ae/lBQ;EF8BJ,aAAuB;EACvB,cAAwB;AbqkB5B;;AepmBQ;EF8BJ,oBAAuB;EACvB,qBAAwB;Ab0kB5B;;AezmBQ;EF8BJ,aAAuB;EACvB,cAAwB;Ab+kB5B;;Ae9mBQ;EF8BJ,aAAuB;EACvB,cAAwB;AbolB5B;;AennBQ;EF8BJ,oBAAuB;EACvB,qBAAwB;AbylB5B;;AennBM;EFQJ,cAAc;EACd,WAAW;EACX,eAAe;Ab+mBjB;;AepnBQ;EFLN,mBAAsC;EAItC,oBAAuC;Ab0nBzC;;AeznBQ;EFLN,oBAAsC;EAItC,qBAAuC;Ab+nBzC;;Ae9nBQ;EFLN,aAAsC;EAItC,cAAuC;AbooBzC;;AenoBQ;EFLN,oBAAsC;EAItC,qBAAuC;AbyoBzC;;AexoBQ;EFLN,oBAAsC;EAItC,qBAAuC;Ab8oBzC;;Ae7oBQ;EFLN,aAAsC;EAItC,cAAuC;AbmpBzC;;AelpBQ;EFLN,oBAAsC;EAItC,qBAAuC;AbwpBzC;;AevpBQ;EFLN,oBAAsC;EAItC,qBAAuC;Ab6pBzC;;Ae5pBQ;EFLN,aAAsC;EAItC,cAAuC;AbkqBzC;;AejqBQ;EFLN,oBAAsC;EAItC,qBAAuC;AbuqBzC;;AetqBQ;EFLN,oBAAsC;EAItC,qBAAuC;Ab4qBzC;;Ae3qBQ;EFLN,cAAsC;EAItC,eAAuC;AbirBzC;;Ae3qBM;EAAwB,SAAS;Af+qBvC;;Ae7qBM;EAAuB,SZ6KG;AHogBhC;;Ae9qBQ;EAAwB,QADZ;AfmrBpB;;AelrBQ;EAAwB,QADZ;AfurBpB;;AetrBQ;EAAwB,QADZ;Af2rBpB;;Ae1rBQ;EAAwB,QADZ;Af+rBpB;;Ae9rBQ;EAAwB,QADZ;AfmsBpB;;AelsBQ;EAAwB,QADZ;AfusBpB;;AetsBQ;EAAwB,QADZ;Af2sBpB;;Ae1sBQ;EAAwB,QADZ;Af+sBpB;;Ae9sBQ;EAAwB,QADZ;AfmtBpB;;AeltBQ;EAAwB,QADZ;AfutBpB;;AettBQ;EAAwB,SADZ;Af2tBpB;;Ae1tBQ;EAAwB,SADZ;Af+tBpB;;Ae9tBQ;EAAwB,SADZ;AfmuBpB;;Ae5tBU;EFNR,uBAA+C;AbsuBjD;;AehuBU;EFNR,wBAA+C;Ab0uBjD;;AepuBU;EFNR,iBAA+C;Ab8uBjD;;AexuBU;EFNR,wBAA+C;AbkvBjD;;Ae5uBU;EFNR,wBAA+C;AbsvBjD;;AehvBU;EFNR,iBAA+C;Ab0vBjD;;AepvBU;EFNR,wBAA+C;Ab8vBjD;;AexvBU;EFNR,wBAA+C;AbkwBjD;;Ae5vBU;EFNR,iBAA+C;AbswBjD;;AehwBU;EFNR,wBAA+C;Ab0wBjD;;AepwBU;EFNR,wBAA+C;Ab8wBjD;;Ac3wBI;EC9BE;IACE,aAAa;IACb,YAAY;IACZ,eAAe;Ef6yBrB;EezyBM;IF8BJ,cAAuB;IACvB,eAAwB;Eb8wB1B;Ee7yBM;IF8BJ,aAAuB;IACvB,cAAwB;EbkxB1B;EejzBM;IF8BJ,oBAAuB;IACvB,qBAAwB;EbsxB1B;EerzBM;IF8BJ,aAAuB;IACvB,cAAwB;Eb0xB1B;EezzBM;IF8BJ,aAAuB;IACvB,cAAwB;Eb8xB1B;Ee7zBM;IF8BJ,oBAAuB;IACvB,qBAAwB;EbkyB1B;Ee5zBI;IFQJ,cAAc;IACd,WAAW;IACX,eAAe;EbuzBf;Ee5zBM;IFLN,mBAAsC;IAItC,oBAAuC;Ebi0BvC;Eeh0BM;IFLN,oBAAsC;IAItC,qBAAuC;Ebq0BvC;Eep0BM;IFLN,aAAsC;IAItC,cAAuC;Eby0BvC;Eex0BM;IFLN,oBAAsC;IAItC,qBAAuC;Eb60BvC;Ee50BM;IFLN,oBAAsC;IAItC,qBAAuC;Ebi1BvC;Eeh1BM;IFLN,aAAsC;IAItC,cAAuC;Ebq1BvC;Eep1BM;IFLN,oBAAsC;IAItC,qBAAuC;Eby1BvC;Eex1BM;IFLN,oBAAsC;IAItC,qBAAuC;Eb61BvC;Ee51BM;IFLN,aAAsC;IAItC,cAAuC;Ebi2BvC;Eeh2BM;IFLN,oBAAsC;IAItC,qBAAuC;Ebq2BvC;Eep2BM;IFLN,oBAAsC;IAItC,qBAAuC;Eby2BvC;Eex2BM;IFLN,cAAsC;IAItC,eAAuC;Eb62BvC;Eev2BI;IAAwB,SAAS;Ef02BrC;Eex2BI;IAAuB,SZ6KG;EH8rB9B;Eex2BM;IAAwB,QADZ;Ef42BlB;Ee32BM;IAAwB,QADZ;Ef+2BlB;Ee92BM;IAAwB,QADZ;Efk3BlB;Eej3BM;IAAwB,QADZ;Efq3BlB;Eep3BM;IAAwB,QADZ;Efw3BlB;Eev3BM;IAAwB,QADZ;Ef23BlB;Ee13BM;IAAwB,QADZ;Ef83BlB;Ee73BM;IAAwB,QADZ;Efi4BlB;Eeh4BM;IAAwB,QADZ;Efo4BlB;Een4BM;IAAwB,QADZ;Efu4BlB;Eet4BM;IAAwB,SADZ;Ef04BlB;Eez4BM;IAAwB,SADZ;Ef64BlB;Ee54BM;IAAwB,SADZ;Efg5BlB;Eez4BQ;IFNR,eAA6B;Ebk5B7B;Ee54BQ;IFNR,uBAA+C;Ebq5B/C;Ee/4BQ;IFNR,wBAA+C;Ebw5B/C;Eel5BQ;IFNR,iBAA+C;Eb25B/C;Eer5BQ;IFNR,wBAA+C;Eb85B/C;Eex5BQ;IFNR,wBAA+C;Ebi6B/C;Ee35BQ;IFNR,iBAA+C;Ebo6B/C;Ee95BQ;IFNR,wBAA+C;Ebu6B/C;Eej6BQ;IFNR,wBAA+C;Eb06B/C;Eep6BQ;IFNR,iBAA+C;Eb66B/C;Eev6BQ;IFNR,wBAA+C;Ebg7B/C;Ee16BQ;IFNR,wBAA+C;Ebm7B/C;AACF;;Acj7BI;EC9BE;IACE,aAAa;IACb,YAAY;IACZ,eAAe;Efm9BrB;Ee/8BM;IF8BJ,cAAuB;IACvB,eAAwB;Ebo7B1B;Een9BM;IF8BJ,aAAuB;IACvB,cAAwB;Ebw7B1B;Eev9BM;IF8BJ,oBAAuB;IACvB,qBAAwB;Eb47B1B;Ee39BM;IF8BJ,aAAuB;IACvB,cAAwB;Ebg8B1B;Ee/9BM;IF8BJ,aAAuB;IACvB,cAAwB;Ebo8B1B;Een+BM;IF8BJ,oBAAuB;IACvB,qBAAwB;Ebw8B1B;Eel+BI;IFQJ,cAAc;IACd,WAAW;IACX,eAAe;Eb69Bf;Eel+BM;IFLN,mBAAsC;IAItC,oBAAuC;Ebu+BvC;Eet+BM;IFLN,oBAAsC;IAItC,qBAAuC;Eb2+BvC;Ee1+BM;IFLN,aAAsC;IAItC,cAAuC;Eb++BvC;Ee9+BM;IFLN,oBAAsC;IAItC,qBAAuC;Ebm/BvC;Eel/BM;IFLN,oBAAsC;IAItC,qBAAuC;Ebu/BvC;Eet/BM;IFLN,aAAsC;IAItC,cAAuC;Eb2/BvC;Ee1/BM;IFLN,oBAAsC;IAItC,qBAAuC;Eb+/BvC;Ee9/BM;IFLN,oBAAsC;IAItC,qBAAuC;EbmgCvC;EelgCM;IFLN,aAAsC;IAItC,cAAuC;EbugCvC;EetgCM;IFLN,oBAAsC;IAItC,qBAAuC;Eb2gCvC;Ee1gCM;IFLN,oBAAsC;IAItC,qBAAuC;Eb+gCvC;Ee9gCM;IFLN,cAAsC;IAItC,eAAuC;EbmhCvC;Ee7gCI;IAAwB,SAAS;EfghCrC;Ee9gCI;IAAuB,SZ6KG;EHo2B9B;Ee9gCM;IAAwB,QADZ;EfkhClB;EejhCM;IAAwB,QADZ;EfqhClB;EephCM;IAAwB,QADZ;EfwhClB;EevhCM;IAAwB,QADZ;Ef2hClB;Ee1hCM;IAAwB,QADZ;Ef8hClB;Ee7hCM;IAAwB,QADZ;EfiiClB;EehiCM;IAAwB,QADZ;EfoiClB;EeniCM;IAAwB,QADZ;EfuiClB;EetiCM;IAAwB,QADZ;Ef0iClB;EeziCM;IAAwB,QADZ;Ef6iClB;Ee5iCM;IAAwB,SADZ;EfgjClB;Ee/iCM;IAAwB,SADZ;EfmjClB;EeljCM;IAAwB,SADZ;EfsjClB;Ee/iCQ;IFNR,eAA6B;EbwjC7B;EeljCQ;IFNR,uBAA+C;Eb2jC/C;EerjCQ;IFNR,wBAA+C;Eb8jC/C;EexjCQ;IFNR,iBAA+C;EbikC/C;Ee3jCQ;IFNR,wBAA+C;EbokC/C;Ee9jCQ;IFNR,wBAA+C;EbukC/C;EejkCQ;IFNR,iBAA+C;Eb0kC/C;EepkCQ;IFNR,wBAA+C;Eb6kC/C;EevkCQ;IFNR,wBAA+C;EbglC/C;Ee1kCQ;IFNR,iBAA+C;EbmlC/C;Ee7kCQ;IFNR,wBAA+C;EbslC/C;EehlCQ;IFNR,wBAA+C;EbylC/C;AACF;;AcvlCI;EC9BE;IACE,aAAa;IACb,YAAY;IACZ,eAAe;EfynCrB;EernCM;IF8BJ,cAAuB;IACvB,eAAwB;Eb0lC1B;EeznCM;IF8BJ,aAAuB;IACvB,cAAwB;Eb8lC1B;Ee7nCM;IF8BJ,oBAAuB;IACvB,qBAAwB;EbkmC1B;EejoCM;IF8BJ,aAAuB;IACvB,cAAwB;EbsmC1B;EeroCM;IF8BJ,aAAuB;IACvB,cAAwB;Eb0mC1B;EezoCM;IF8BJ,oBAAuB;IACvB,qBAAwB;Eb8mC1B;EexoCI;IFQJ,cAAc;IACd,WAAW;IACX,eAAe;EbmoCf;EexoCM;IFLN,mBAAsC;IAItC,oBAAuC;Eb6oCvC;Ee5oCM;IFLN,oBAAsC;IAItC,qBAAuC;EbipCvC;EehpCM;IFLN,aAAsC;IAItC,cAAuC;EbqpCvC;EeppCM;IFLN,oBAAsC;IAItC,qBAAuC;EbypCvC;EexpCM;IFLN,oBAAsC;IAItC,qBAAuC;Eb6pCvC;Ee5pCM;IFLN,aAAsC;IAItC,cAAuC;EbiqCvC;EehqCM;IFLN,oBAAsC;IAItC,qBAAuC;EbqqCvC;EepqCM;IFLN,oBAAsC;IAItC,qBAAuC;EbyqCvC;EexqCM;IFLN,aAAsC;IAItC,cAAuC;Eb6qCvC;Ee5qCM;IFLN,oBAAsC;IAItC,qBAAuC;EbirCvC;EehrCM;IFLN,oBAAsC;IAItC,qBAAuC;EbqrCvC;EeprCM;IFLN,cAAsC;IAItC,eAAuC;EbyrCvC;EenrCI;IAAwB,SAAS;EfsrCrC;EeprCI;IAAuB,SZ6KG;EH0gC9B;EeprCM;IAAwB,QADZ;EfwrClB;EevrCM;IAAwB,QADZ;Ef2rClB;Ee1rCM;IAAwB,QADZ;Ef8rClB;Ee7rCM;IAAwB,QADZ;EfisClB;EehsCM;IAAwB,QADZ;EfosClB;EensCM;IAAwB,QADZ;EfusClB;EetsCM;IAAwB,QADZ;Ef0sClB;EezsCM;IAAwB,QADZ;Ef6sClB;Ee5sCM;IAAwB,QADZ;EfgtClB;Ee/sCM;IAAwB,QADZ;EfmtClB;EeltCM;IAAwB,SADZ;EfstClB;EertCM;IAAwB,SADZ;EfytClB;EextCM;IAAwB,SADZ;Ef4tClB;EertCQ;IFNR,eAA6B;Eb8tC7B;EextCQ;IFNR,uBAA+C;EbiuC/C;Ee3tCQ;IFNR,wBAA+C;EbouC/C;Ee9tCQ;IFNR,iBAA+C;EbuuC/C;EejuCQ;IFNR,wBAA+C;Eb0uC/C;EepuCQ;IFNR,wBAA+C;Eb6uC/C;EevuCQ;IFNR,iBAA+C;EbgvC/C;Ee1uCQ;IFNR,wBAA+C;EbmvC/C;Ee7uCQ;IFNR,wBAA+C;EbsvC/C;EehvCQ;IFNR,iBAA+C;EbyvC/C;EenvCQ;IFNR,wBAA+C;Eb4vC/C;EetvCQ;IFNR,wBAA+C;Eb+vC/C;AACF;;Ac7vCI;EC9BE;IACE,aAAa;IACb,YAAY;IACZ,eAAe;Ef+xCrB;Ee3xCM;IF8BJ,cAAuB;IACvB,eAAwB;EbgwC1B;Ee/xCM;IF8BJ,aAAuB;IACvB,cAAwB;EbowC1B;EenyCM;IF8BJ,oBAAuB;IACvB,qBAAwB;EbwwC1B;EevyCM;IF8BJ,aAAuB;IACvB,cAAwB;Eb4wC1B;Ee3yCM;IF8BJ,aAAuB;IACvB,cAAwB;EbgxC1B;Ee/yCM;IF8BJ,oBAAuB;IACvB,qBAAwB;EboxC1B;Ee9yCI;IFQJ,cAAc;IACd,WAAW;IACX,eAAe;EbyyCf;Ee9yCM;IFLN,mBAAsC;IAItC,oBAAuC;EbmzCvC;EelzCM;IFLN,oBAAsC;IAItC,qBAAuC;EbuzCvC;EetzCM;IFLN,aAAsC;IAItC,cAAuC;Eb2zCvC;Ee1zCM;IFLN,oBAAsC;IAItC,qBAAuC;Eb+zCvC;Ee9zCM;IFLN,oBAAsC;IAItC,qBAAuC;Ebm0CvC;Eel0CM;IFLN,aAAsC;IAItC,cAAuC;Ebu0CvC;Eet0CM;IFLN,oBAAsC;IAItC,qBAAuC;Eb20CvC;Ee10CM;IFLN,oBAAsC;IAItC,qBAAuC;Eb+0CvC;Ee90CM;IFLN,aAAsC;IAItC,cAAuC;Ebm1CvC;Eel1CM;IFLN,oBAAsC;IAItC,qBAAuC;Ebu1CvC;Eet1CM;IFLN,oBAAsC;IAItC,qBAAuC;Eb21CvC;Ee11CM;IFLN,cAAsC;IAItC,eAAuC;Eb+1CvC;Eez1CI;IAAwB,SAAS;Ef41CrC;Ee11CI;IAAuB,SZ6KG;EHgrC9B;Ee11CM;IAAwB,QADZ;Ef81ClB;Ee71CM;IAAwB,QADZ;Efi2ClB;Eeh2CM;IAAwB,QADZ;Efo2ClB;Een2CM;IAAwB,QADZ;Efu2ClB;Eet2CM;IAAwB,QADZ;Ef02ClB;Eez2CM;IAAwB,QADZ;Ef62ClB;Ee52CM;IAAwB,QADZ;Efg3ClB;Ee/2CM;IAAwB,QADZ;Efm3ClB;Eel3CM;IAAwB,QADZ;Efs3ClB;Eer3CM;IAAwB,QADZ;Efy3ClB;Eex3CM;IAAwB,SADZ;Ef43ClB;Ee33CM;IAAwB,SADZ;Ef+3ClB;Ee93CM;IAAwB,SADZ;Efk4ClB;Ee33CQ;IFNR,eAA6B;Ebo4C7B;Ee93CQ;IFNR,uBAA+C;Ebu4C/C;Eej4CQ;IFNR,wBAA+C;Eb04C/C;Eep4CQ;IFNR,iBAA+C;Eb64C/C;Eev4CQ;IFNR,wBAA+C;Ebg5C/C;Ee14CQ;IFNR,wBAA+C;Ebm5C/C;Ee74CQ;IFNR,iBAA+C;Ebs5C/C;Eeh5CQ;IFNR,wBAA+C;Eby5C/C;Een5CQ;IFNR,wBAA+C;Eb45C/C;Eet5CQ;IFNR,iBAA+C;Eb+5C/C;Eez5CQ;IFNR,wBAA+C;Ebk6C/C;Ee55CQ;IFNR,wBAA+C;Ebq6C/C;AACF;;AgB39CA;EACE,WAAW;EACX,mBbkIW;EajIX,cbSgB;AHq9ClB;;AgBj+CA;;EAQI,gBbsVgC;EarVhC,mBAAmB;EACnB,6BbJc;AHk+ClB;;AgBx+CA;EAcI,sBAAsB;EACtB,gCbTc;AHu+ClB;;AgB7+CA;EAmBI,6Bbbc;AH2+ClB;;AgBr9CA;;EAGI,ebgU+B;AHupCnC;;AgB98CA;EACE,yBbnCgB;AHo/ClB;;AgBl9CA;;EAKI,yBbvCc;AHy/ClB;;AgBv9CA;;EAWM,wBAA4C;AhBi9ClD;;AgB58CA;;;;EAKI,SAAS;AhB88Cb;;AgBt8CA;EAEI,qCb1DW;AHkgDf;;AKvgDE;EW2EI,cbvEY;EawEZ,sCbvES;AHugDf;;AiBnhDE;;;EAII,yBCsF4D;AlB+7ClE;;AiBzhDE;;;;EAYM,qBC8E0D;AlBs8ClE;;AKzhDE;EYiBM,yBAJsC;AjBghD9C;;AiBjhDE;;EASQ,yBARoC;AjBqhD9C;;AiBziDE;;;EAII,yBCsF4D;AlBq9ClE;;AiB/iDE;;;;EAYM,qBC8E0D;AlB49ClE;;AK/iDE;EYiBM,yBAJsC;AjBsiD9C;;AiBviDE;;EASQ,yBARoC;AjB2iD9C;;AiB/jDE;;;EAII,yBCsF4D;AlB2+ClE;;AiBrkDE;;;;EAYM,qBC8E0D;AlBk/ClE;;AKrkDE;EYiBM,yBAJsC;AjB4jD9C;;AiB7jDE;;EASQ,yBARoC;AjBikD9C;;AiBrlDE;;;EAII,yBCsF4D;AlBigDlE;;AiB3lDE;;;;EAYM,qBC8E0D;AlBwgDlE;;AK3lDE;EYiBM,yBAJsC;AjBklD9C;;AiBnlDE;;EASQ,yBARoC;AjBulD9C;;AiB3mDE;;;EAII,yBCsF4D;AlBuhDlE;;AiBjnDE;;;;EAYM,qBC8E0D;AlB8hDlE;;AKjnDE;EYiBM,yBAJsC;AjBwmD9C;;AiBzmDE;;EASQ,yBARoC;AjB6mD9C;;AiBjoDE;;;EAII,yBCsF4D;AlB6iDlE;;AiBvoDE;;;;EAYM,qBC8E0D;AlBojDlE;;AKvoDE;EYiBM,yBAJsC;AjB8nD9C;;AiB/nDE;;EASQ,yBARoC;AjBmoD9C;;AiBvpDE;;;EAII,yBCsF4D;AlBmkDlE;;AiB7pDE;;;;EAYM,qBC8E0D;AlB0kDlE;;AK7pDE;EYiBM,yBAJsC;AjBopD9C;;AiBrpDE;;EASQ,yBARoC;AjBypD9C;;AiB7qDE;;;EAII,yBCsF4D;AlBylDlE;;AiBnrDE;;;;EAYM,qBC8E0D;AlBgmDlE;;AKnrDE;EYiBM,yBAJsC;AjB0qD9C;;AiB3qDE;;EASQ,yBARoC;AjB+qD9C;;AiBnsDE;;;EAII,sCdQS;AH6rDf;;AKlsDE;EYiBM,sCAJsC;AjByrD9C;;AiB1rDE;;EASQ,sCARoC;AjB8rD9C;;AgBxmDA;EAGM,Wb3GS;Ea4GT,yBbpGY;EaqGZ,qBbmQqD;AHs2C3D;;AgB9mDA;EAWM,cb5GY;Ea6GZ,yBblHY;EamHZ,qBblHY;AHytDlB;;AgBlmDA;EACE,Wb3Ha;Ea4Hb,yBbpHgB;AHytDlB;;AgBvmDA;;;EAOI,qBb+OuD;AHu3C3D;;AgB7mDA;EAWI,SAAS;AhBsmDb;;AgBjnDA;EAgBM,2Cb1IS;AH+uDf;;AK1uDE;EW4IM,WbjJO;EakJP,4CblJO;AHovDf;;AclrDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhBolDvC;EgBzlDG;IASK,SAAS;EhBmlDjB;AACF;;Ac9rDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhBgmDvC;EgBrmDG;IASK,SAAS;EhB+lDjB;AACF;;Ac1sDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhB4mDvC;EgBjnDG;IASK,SAAS;EhB2mDjB;AACF;;ActtDI;EEiGA;IAEI,cAAc;IACd,WAAW;IACX,gBAAgB;IAChB,iCAAiC;EhBwnDvC;EgB7nDG;IASK,SAAS;EhBunDjB;AACF;;AgBtoDA;EAOQ,cAAc;EACd,WAAW;EACX,gBAAgB;EAChB,iCAAiC;AhBmoDzC;;AgB7oDA;EAcU,SAAS;AhBmoDnB;;AmBhzDA;EACE,cAAc;EACd,WAAW;EACX,mCDuG8D;ECtG9D,yBhB4XkC;ECvQ9B,eAtCY;Ee5EhB,gBhBsR+B;EgBrR/B,gBhB0R+B;EgBzR/B,chBDgB;EgBEhB,sBhBTa;EgBUb,4BAA4B;EAC5B,yBhBPgB;EONd,sBP6OgC;EiB5O9B,wEjBof4F;AH40ClG;;AoB3zDI;EDLJ;ICMM,gBAAgB;EpB+zDpB;AACF;;AmBt0DA;EAsBI,6BAA6B;EAC7B,SAAS;AnBozDb;;AmB30DA;EA4BI,kBAAkB;EAClB,0BhBrBc;AHw0DlB;;AqBz0DE;EACE,clBAc;EkBCd,sBlBRW;EkBSX,qBlBwdsE;EkBvdtE,UAAU;EAKR,gDlBcW;AH0zDjB;;AmBx1DA;EAqCI,chB9Bc;EgBgCd,UAAU;AnBszDd;;AmB71DA;EAqCI,chB9Bc;EgBgCd,UAAU;AnBszDd;;AmB71DA;EAqCI,chB9Bc;EgBgCd,UAAU;AnBszDd;;AmB71DA;EAqCI,chB9Bc;EgBgCd,UAAU;AnBszDd;;AmB71DA;EAqCI,chB9Bc;EgBgCd,UAAU;AnBszDd;;AmB71DA;EAiDI,yBhB9Cc;EgBgDd,UAAU;AnB+yDd;;AmB3yDA;EAOI,chBtDc;EgBuDd,sBhB9DW;AHs2Df;;AmBnyDA;;EAEE,cAAc;EACd,WAAW;AnBsyDb;;AmB5xDA;EACE,iCDwB8D;ECvB9D,oCDuB8D;ECtB9D,gBAAgB;EflBd,kBAAW;EeoBb,gBhB4M+B;AHmlDjC;;AmB5xDA;EACE,+BDgB8D;ECf9D,kCDe8D;Ede1D,kBAtCY;EeUhB,gBhByI+B;AHspDjC;;AmB5xDA;EACE,gCDS8D;ECR9D,mCDQ8D;Ede1D,mBAtCY;EeiBhB,gBhBmI+B;AH4pDjC;;AmBtxDA;EACE,cAAc;EACd,WAAW;EACX,mBAA2B;EAC3B,gBAAgB;EfQZ,eAtCY;EegChB,gBhB+K+B;EgB9K/B,chB1GgB;EgB2GhB,6BAA6B;EAC7B,yBAAyB;EACzB,mBAAmC;AnByxDrC;;AmBnyDA;EAcI,gBAAgB;EAChB,eAAe;AnByxDnB;;AmB7wDA;EACE,kCD/B8D;ECgC9D,uBhBgQiC;ECjR7B,mBAtCY;EeyDhB,gBhB2F+B;EOxO7B,qBP+O+B;AH+qDnC;;AmB7wDA;EACE,gCDvC8D;ECwC9D,oBhB6PgC;ECtR5B,kBAtCY;EeiEhB,gBhBkF+B;EOvO7B,qBP8O+B;AHwrDnC;;AmB5wDA;EAGI,YAAY;AnB6wDhB;;AmBzwDA;EACE,YAAY;AnB4wDd;;AmBpwDA;EACE,mBhBsV0C;AHi7C5C;;AmBpwDA;EACE,cAAc;EACd,mBhBuU4C;AHg8C9C;;AmB/vDA;EACE,aAAa;EACb,eAAe;EACf,kBAA0C;EAC1C,iBAAyC;AnBkwD3C;;AmBtwDA;;EAQI,kBAA0C;EAC1C,iBAAyC;AnBmwD7C;;AmB1vDA;EACE,kBAAkB;EAClB,cAAc;EACd,qBhB4S6C;AHi9C/C;;AmB1vDA;EACE,kBAAkB;EAClB,kBhBwS2C;EgBvS3C,qBhBsS6C;AHu9C/C;;AmBhwDA;;EAQI,chBhNc;AH68DlB;;AmBzvDA;EACE,gBAAgB;AnB4vDlB;;AmBzvDA;EACE,oBAAoB;EACpB,mBAAmB;EACnB,eAAe;EACf,qBhByR4C;AHm+C9C;;AmBhwDA;EAQI,gBAAgB;EAChB,aAAa;EACb,uBhBoR4C;EgBnR5C,cAAc;AnB4vDlB;;AqBh8DE;EACE,aAAa;EACb,WAAW;EACX,mBlB6c0C;ECpb1C,cAAW;EiBvBX,clBNa;AHy8DjB;;AqBh8DE;EACE,kBAAkB;EAClB,SAAS;EACT,UAAU;EACV,aAAa;EACb,eAAe;EACf,uBlBmyBqC;EkBlyBrC,iBAAiB;EjBoEf,mBAtCY;EiB5Bd,gBlB2O6B;EkB1O7B,WlBvDW;EkBwDX,wClBpBa;EOtCb,sBP6OgC;AHixDpC;;AqBn+DI;;;;EAsCE,cAAc;ArBo8DpB;;AqB1+DI;EA4CE,qBlBjCW;EkBoCT,oCHiCwD;EGhCxD,iRHpCmI;EGqCnI,4BAA4B;EAC5B,2DAA6D;EAC7D,gEH6BwD;AlBm6DhE;;AqBn/DI;EAuDI,qBlB5CS;EkB6CT,gDlB7CS;AH6+DjB;;AqBx/DI;EAiEI,oCHewD;EGdxD,kFHcwD;AlB66DhE;;AqB7/DI;EAyEE,qBlB9DW;EkBiET,uCHIwD;EGHxD,ujBAA8J;ArBs7DtK;;AqBngEI;EAiFI,qBlBtES;EkBuET,gDlBvES;AH6/DjB;;AqBxgEI;EA0FI,clB/ES;AHigEjB;;AqB5gEI;;;EA+FI,cAAc;ArBm7DtB;;AqBlhEI;EAuGI,clB5FS;AH2gEjB;;AqBthEI;EA0GM,qBlB/FO;AH+gEjB;;AqB1hEI;EAgHM,qBAAkC;EC1IxC,yBD2I+C;ArB86DnD;;AqB/hEI;EAuHM,gDlB5GO;AHwhEjB;;AqBniEI;EA2HM,qBlBhHO;AH4hEjB;;AqBviEI;EAqII,qBlB1HS;AHgiEjB;;AqB3iEI;EA0IM,qBlB/HO;EkBgIP,gDlBhIO;AHqiEjB;;AqBpiEE;EACE,aAAa;EACb,WAAW;EACX,mBlB6c0C;ECpb1C,cAAW;EiBvBX,clBTa;AHgjEjB;;AqBpiEE;EACE,kBAAkB;EAClB,SAAS;EACT,UAAU;EACV,aAAa;EACb,eAAe;EACf,uBlBmyBqC;EkBlyBrC,iBAAiB;EjBoEf,mBAtCY;EiB5Bd,gBlB2O6B;EkB1O7B,WlBvDW;EkBwDX,wClBvBa;EOnCb,sBP6OgC;AHq3DpC;;AqBvkEI;;;;EAsCE,cAAc;ArBwiEpB;;AqB9kEI;EA4CE,qBlBpCW;EkBuCT,oCHiCwD;EGhCxD,4UHpCmI;EGqCnI,4BAA4B;EAC5B,2DAA6D;EAC7D,gEH6BwD;AlBugEhE;;AqBvlEI;EAuDI,qBlB/CS;EkBgDT,gDlBhDS;AHolEjB;;AqB5lEI;EAiEI,oCHewD;EGdxD,kFHcwD;AlBihEhE;;AqBjmEI;EAyEE,qBlBjEW;EkBoET,uCHIwD;EGHxD,knBAA8J;ArB0hEtK;;AqBvmEI;EAiFI,qBlBzES;EkB0ET,gDlB1ES;AHomEjB;;AqB5mEI;EA0FI,clBlFS;AHwmEjB;;AqBhnEI;;;EA+FI,cAAc;ArBuhEtB;;AqBtnEI;EAuGI,clB/FS;AHknEjB;;AqB1nEI;EA0GM,qBlBlGO;AHsnEjB;;AqB9nEI;EAgHM,qBAAkC;EC1IxC,yBD2I+C;ArBkhEnD;;AqBnoEI;EAuHM,gDlB/GO;AH+nEjB;;AqBvoEI;EA2HM,qBlBnHO;AHmoEjB;;AqB3oEI;EAqII,qBlB7HS;AHuoEjB;;AqB/oEI;EA0IM,qBlBlIO;EkBmIP,gDlBnIO;AH4oEjB;;AmB36DA;EACE,aAAa;EACb,mBAAmB;EACnB,mBAAmB;AnB86DrB;;AmBj7DA;EASI,WAAW;AnB46Df;;AcloEI;EK6MJ;IAeM,aAAa;IACb,mBAAmB;IACnB,uBAAuB;IACvB,gBAAgB;EnB26DpB;EmB77DF;IAuBM,aAAa;IACb,cAAc;IACd,mBAAmB;IACnB,mBAAmB;IACnB,gBAAgB;EnBy6DpB;EmBp8DF;IAgCM,qBAAqB;IACrB,WAAW;IACX,sBAAsB;EnBu6D1B;EmBz8DF;IAuCM,qBAAqB;EnBq6DzB;EmB58DF;;IA4CM,WAAW;EnBo6Df;EmBh9DF;IAkDM,aAAa;IACb,mBAAmB;IACnB,uBAAuB;IACvB,WAAW;IACX,eAAe;EnBi6DnB;EmBv9DF;IAyDM,kBAAkB;IAClB,cAAc;IACd,aAAa;IACb,qBhB2LwC;IgB1LxC,cAAc;EnBi6DlB;EmB99DF;IAiEM,mBAAmB;IACnB,uBAAuB;EnBg6D3B;EmBl+DF;IAqEM,gBAAgB;EnBg6DpB;AACF;;AuBzuEA;EACE,qBAAqB;EAErB,gBpB0R+B;EoBzR/B,cpBMgB;EoBLhB,kBAAkB;EAElB,sBAAsB;EACtB,eAAsD;EACtD,yBAAiB;EAAjB,sBAAiB;EAAjB,qBAAiB;EAAjB,iBAAiB;EACjB,6BAA6B;EAC7B,6BAA2C;ECuF3C,yBrB8RkC;ECvQ9B,eAtCY;EoBiBhB,gBrB8L+B;EOnS7B,sBP6OgC;EiB5O9B,qIjB6b6I;AH6zDnJ;;AoBrvEI;EGLJ;IHMM,gBAAgB;EpByvEpB;AACF;;AK1vEE;EkBUE,cpBNc;EoBOd,qBAAqB;AvBovEzB;;AuBrwEA;EAsBI,UAAU;EACV,gDpBOa;AH4uEjB;;AuB1wEA;EA6BI,apBoZ6B;AH61DjC;;AuBluEA;;EAEE,oBAAoB;AvBquEtB;;AuB5tEE;ECvDA,WrBCa;EmBDX,yBnB8Ba;EqB5Bf,qBrB4Be;AH2vEjB;;AKnxEE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBgyE7H;;AwBpxEE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,gDAAiF;AxBkxEvF;;AwB7wEE;EAEE,WrB1BW;EqB2BX,yBrBEa;EqBDb,qBrBCa;AH8wEjB;;AwBxwEE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBozEnN;;AwBrwEI;;EAKI,gDAAiF;AxBqwEzF;;AuBjwEE;ECvDA,WrBCa;EmBDX,yBnBOc;EqBLhB,qBrBKgB;AHuzElB;;AKxzEE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBq0E7H;;AwBzzEE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,iDAAiF;AxBuzEvF;;AwBlzEE;EAEE,WrB1BW;EqB2BX,yBrBrBc;EqBsBd,qBrBtBc;AH00ElB;;AwB7yEE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBy1EnN;;AwB1yEI;;EAKI,iDAAiF;AxB0yEzF;;AuBtyEE;ECvDA,WrBCa;EmBDX,yBnBqCa;EqBnCf,qBrBmCe;AH8zEjB;;AK71EE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxB02E7H;;AwB91EE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,+CAAiF;AxB41EvF;;AwBv1EE;EAEE,WrB1BW;EqB2BX,yBrBSa;EqBRb,qBrBQa;AHi1EjB;;AwBl1EE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxB83EnN;;AwB/0EI;;EAKI,+CAAiF;AxB+0EzF;;AuB30EE;ECvDA,WrBCa;EmBDX,yBnBuCa;EqBrCf,qBrBqCe;AHi2EjB;;AKl4EE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxB+4E7H;;AwBn4EE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,gDAAiF;AxBi4EvF;;AwB53EE;EAEE,WrB1BW;EqB2BX,yBrBWa;EqBVb,qBrBUa;AHo3EjB;;AwBv3EE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBm6EnN;;AwBp3EI;;EAKI,gDAAiF;AxBo3EzF;;AuBh3EE;ECvDA,crBUgB;EmBVd,yBnBoCa;EqBlCf,qBrBkCe;AHy4EjB;;AKv6EE;EmBAE,crBIc;EmBVd,yBEDoF;EASpF,qBATyH;AxBo7E7H;;AwBx6EE;EAEE,crBHc;EmBVd,yBEDoF;EAgBpF,qBAhByH;EAqBvH,gDAAiF;AxBs6EvF;;AwBj6EE;EAEE,crBjBc;EqBkBd,yBrBQa;EqBPb,qBrBOa;AH45EjB;;AwB55EE;;EAGE,crB7Bc;EqB8Bd,yBAzCuK;EA6CvK,qBA7C+M;AxBw8EnN;;AwBz5EI;;EAKI,gDAAiF;AxBy5EzF;;AuBr5EE;ECvDA,WrBCa;EmBDX,yBnBkCa;EqBhCf,qBrBgCe;AHg7EjB;;AK58EE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBy9E7H;;AwB78EE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,+CAAiF;AxB28EvF;;AwBt8EE;EAEE,WrB1BW;EqB2BX,yBrBMa;EqBLb,qBrBKa;AHm8EjB;;AwBj8EE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxB6+EnN;;AwB97EI;;EAKI,+CAAiF;AxB87EzF;;AuB17EE;ECvDA,crBUgB;EmBVd,yBnBEc;EqBAhB,qBrBAgB;AHq/ElB;;AKj/EE;EmBAE,crBIc;EmBVd,yBEDoF;EASpF,qBATyH;AxB8/E7H;;AwBl/EE;EAEE,crBHc;EmBVd,yBEDoF;EAgBpF,qBAhByH;EAqBvH,iDAAiF;AxBg/EvF;;AwB3+EE;EAEE,crBjBc;EqBkBd,yBrB1Bc;EqB2Bd,qBrB3Bc;AHwgFlB;;AwBt+EE;;EAGE,crB7Bc;EqB8Bd,yBAzCuK;EA6CvK,qBA7C+M;AxBkhFnN;;AwBn+EI;;EAKI,iDAAiF;AxBm+EzF;;AuB/9EE;ECvDA,WrBCa;EmBDX,yBnBSc;EqBPhB,qBrBOgB;AHmhFlB;;AKthFE;EmBAE,WrBLW;EmBDX,yBEDoF;EASpF,qBATyH;AxBmiF7H;;AwBvhFE;EAEE,WrBZW;EmBDX,yBEDoF;EAgBpF,qBAhByH;EAqBvH,8CAAiF;AxBqhFvF;;AwBhhFE;EAEE,WrB1BW;EqB2BX,yBrBnBc;EqBoBd,qBrBpBc;AHsiFlB;;AwB3gFE;;EAGE,WrBtCW;EqBuCX,yBAzCuK;EA6CvK,qBA7C+M;AxBujFnN;;AwBxgFI;;EAKI,8CAAiF;AxBwgFzF;;AuB9/EE;ECHA,crB5Be;EqB6Bf,qBrB7Be;AHkiFjB;;AK1jFE;EmBwDE,WrB7DW;EqB8DX,yBrBjCa;EqBkCb,qBrBlCa;AHwiFjB;;AwBngFE;EAEE,+CrBvCa;AH4iFjB;;AwBlgFE;EAEE,crB5Ca;EqB6Cb,6BAA6B;AxBogFjC;;AwBjgFE;;EAGE,WrBhFW;EqBiFX,yBrBpDa;EqBqDb,qBrBrDa;AHwjFjB;;AwBjgFI;;EAKI,+CrB5DS;AH6jFjB;;AuB9hFE;ECHA,crBnDgB;EqBoDhB,qBrBpDgB;AHylFlB;;AK1lFE;EmBwDE,WrB7DW;EqB8DX,yBrBxDc;EqByDd,qBrBzDc;AH+lFlB;;AwBniFE;EAEE,iDrB9Dc;AHmmFlB;;AwBliFE;EAEE,crBnEc;EqBoEd,6BAA6B;AxBoiFjC;;AwBjiFE;;EAGE,WrBhFW;EqBiFX,yBrB3Ec;EqB4Ed,qBrB5Ec;AH+mFlB;;AwBjiFI;;EAKI,iDrBnFU;AHonFlB;;AuB9jFE;ECHA,crBrBe;EqBsBf,qBrBtBe;AH2lFjB;;AK1nFE;EmBwDE,WrB7DW;EqB8DX,yBrB1Ba;EqB2Bb,qBrB3Ba;AHimFjB;;AwBnkFE;EAEE,+CrBhCa;AHqmFjB;;AwBlkFE;EAEE,crBrCa;EqBsCb,6BAA6B;AxBokFjC;;AwBjkFE;;EAGE,WrBhFW;EqBiFX,yBrB7Ca;EqB8Cb,qBrB9Ca;AHinFjB;;AwBjkFI;;EAKI,+CrBrDS;AHsnFjB;;AuB9lFE;ECHA,crBnBe;EqBoBf,qBrBpBe;AHynFjB;;AK1pFE;EmBwDE,WrB7DW;EqB8DX,yBrBxBa;EqByBb,qBrBzBa;AH+nFjB;;AwBnmFE;EAEE,gDrB9Ba;AHmoFjB;;AwBlmFE;EAEE,crBnCa;EqBoCb,6BAA6B;AxBomFjC;;AwBjmFE;;EAGE,WrBhFW;EqBiFX,yBrB3Ca;EqB4Cb,qBrB5Ca;AH+oFjB;;AwBjmFI;;EAKI,gDrBnDS;AHopFjB;;AuB9nFE;ECHA,crBtBe;EqBuBf,qBrBvBe;AH4pFjB;;AK1rFE;EmBwDE,crBpDc;EqBqDd,yBrB3Ba;EqB4Bb,qBrB5Ba;AHkqFjB;;AwBnoFE;EAEE,+CrBjCa;AHsqFjB;;AwBloFE;EAEE,crBtCa;EqBuCb,6BAA6B;AxBooFjC;;AwBjoFE;;EAGE,crBvEc;EqBwEd,yBrB9Ca;EqB+Cb,qBrB/Ca;AHkrFjB;;AwBjoFI;;EAKI,+CrBtDS;AHurFjB;;AuB9pFE;ECHA,crBxBe;EqByBf,qBrBzBe;AH8rFjB;;AK1tFE;EmBwDE,WrB7DW;EqB8DX,yBrB7Ba;EqB8Bb,qBrB9Ba;AHosFjB;;AwBnqFE;EAEE,+CrBnCa;AHwsFjB;;AwBlqFE;EAEE,crBxCa;EqByCb,6BAA6B;AxBoqFjC;;AwBjqFE;;EAGE,WrBhFW;EqBiFX,yBrBhDa;EqBiDb,qBrBjDa;AHotFjB;;AwBjqFI;;EAKI,+CrBxDS;AHytFjB;;AuB9rFE;ECHA,crBxDgB;EqByDhB,qBrBzDgB;AH8vFlB;;AK1vFE;EmBwDE,crBpDc;EqBqDd,yBrB7Dc;EqB8Dd,qBrB9Dc;AHowFlB;;AwBnsFE;EAEE,iDrBnEc;AHwwFlB;;AwBlsFE;EAEE,crBxEc;EqByEd,6BAA6B;AxBosFjC;;AwBjsFE;;EAGE,crBvEc;EqBwEd,yBrBhFc;EqBiFd,qBrBjFc;AHoxFlB;;AwBjsFI;;EAKI,iDrBxFU;AHyxFlB;;AuB9tFE;ECHA,crBjDgB;EqBkDhB,qBrBlDgB;AHuxFlB;;AK1xFE;EmBwDE,WrB7DW;EqB8DX,yBrBtDc;EqBuDd,qBrBvDc;AH6xFlB;;AwBnuFE;EAEE,8CrB5Dc;AHiyFlB;;AwBluFE;EAEE,crBjEc;EqBkEd,6BAA6B;AxBouFjC;;AwBjuFE;;EAGE,WrBhFW;EqBiFX,yBrBzEc;EqB0Ed,qBrB1Ec;AH6yFlB;;AwBjuFI;;EAKI,8CrBjFU;AHkzFlB;;AuBnvFA;EACE,gBpBoN+B;EoBnN/B,cpB5Ce;EoB6Cf,qBpBkG4C;AHopF9C;;AK3zFE;EkBwEE,cpBgG8D;EoB/F9D,0BpBgG+C;AHupFnD;;AuB9vFA;EAYI,0BpB2F+C;EoB1F/C,gBAAgB;AvBsvFpB;;AuBnwFA;EAkBI,cpBnFc;EoBoFd,oBAAoB;AvBqvFxB;;AuB1uFA;ECJE,oBrB6SgC;ECtR5B,kBAtCY;EoBiBhB,gBrBkI+B;EOvO7B,qBP8O+B;AH0mFnC;;AuB7uFA;ECRE,uBrBwSiC;ECjR7B,mBAtCY;EoBiBhB,gBrBmI+B;EOxO7B,qBP+O+B;AHgnFnC;;AuB3uFA;EACE,cAAc;EACd,WAAW;AvB8uFb;;AuBhvFA;EAMI,kBpB6T+B;AHi7EnC;;AuBzuFA;;;EAII,WAAW;AvB2uFf;;AyBn3FA;ELMM,gCjB8P2C;AHmnFjD;;AoB52FI;EKXJ;ILYM,gBAAgB;EpBg3FpB;AACF;;AyB73FA;EAII,UAAU;AzB63Fd;;AyBz3FA;EAEI,aAAa;AzB23FjB;;AyBv3FA;EACE,kBAAkB;EAClB,SAAS;EACT,gBAAgB;ELXZ,6BjB+PwC;AHuoF9C;;AoBj4FI;EKGJ;ILFM,gBAAgB;EpBq4FpB;AACF;;A0Bj5FA;;;;EAIE,kBAAkB;A1Bo5FpB;;A0Bj5FA;EACE,mBAAmB;A1Bo5FrB;;A2Bh4FI;EACE,qBAAqB;EACrB,oBxBkO0C;EwBjO1C,uBxBgO0C;EwB/N1C,WAAW;EAhCf,uBAA8B;EAC9B,qCAA4C;EAC5C,gBAAgB;EAChB,oCAA2C;A3Bo6F7C;;A2B/2FI;EACE,cAAc;A3Bk3FpB;;A0B55FA;EACE,kBAAkB;EAClB,SAAS;EACT,OAAO;EACP,avB4pBsC;EuB3pBtC,aAAa;EACb,WAAW;EACX,gBvBkuBuC;EuBjuBvC,iBAA8B;EAC9B,oBAA4B;EtBsGxB,eAtCY;EsB9DhB,cvBXgB;EuBYhB,gBAAgB;EAChB,gBAAgB;EAChB,sBvBvBa;EuBwBb,4BAA4B;EAC5B,qCvBfa;EOZX,sBP6OgC;AH8sFpC;;A0Bv5FI;EACE,WAAW;EACX,OAAO;A1B05Fb;;A0Bv5FI;EACE,QAAQ;EACR,UAAU;A1B05FhB;;Ac94FI;EYnBA;IACE,WAAW;IACX,OAAO;E1Bq6FX;E0Bl6FE;IACE,QAAQ;IACR,UAAU;E1Bo6Fd;AACF;;Acz5FI;EYnBA;IACE,WAAW;IACX,OAAO;E1Bg7FX;E0B76FE;IACE,QAAQ;IACR,UAAU;E1B+6Fd;AACF;;Acp6FI;EYnBA;IACE,WAAW;IACX,OAAO;E1B27FX;E0Bx7FE;IACE,QAAQ;IACR,UAAU;E1B07Fd;AACF;;Ac/6FI;EYnBA;IACE,WAAW;IACX,OAAO;E1Bs8FX;E0Bn8FE;IACE,QAAQ;IACR,UAAU;E1Bq8Fd;AACF;;A0B/7FA;EAEI,SAAS;EACT,YAAY;EACZ,aAAa;EACb,uBvB+rBuC;AHkwE3C;;A2Bh+FI;EACE,qBAAqB;EACrB,oBxBkO0C;EwBjO1C,uBxBgO0C;EwB/N1C,WAAW;EAzBf,aAAa;EACb,qCAA4C;EAC5C,0BAAiC;EACjC,oCAA2C;A3B6/F7C;;A2B/8FI;EACE,cAAc;A3Bk9FpB;;A0Bx8FA;EAEI,MAAM;EACN,WAAW;EACX,UAAU;EACV,aAAa;EACb,qBvBirBuC;AHyxE3C;;A2Bv/FI;EACE,qBAAqB;EACrB,oBxBkO0C;EwBjO1C,uBxBgO0C;EwB/N1C,WAAW;EAlBf,mCAA0C;EAC1C,eAAe;EACf,sCAA6C;EAC7C,wBAA+B;A3B6gGjC;;A2Bt+FI;EACE,cAAc;A3By+FpB;;A2BtgGI;EDmDE,iBAAiB;A1Bu9FvB;;A0Bl9FA;EAEI,MAAM;EACN,WAAW;EACX,UAAU;EACV,aAAa;EACb,sBvBgqBuC;AHozE3C;;A2BlhGI;EACE,qBAAqB;EACrB,oBxBkO0C;EwBjO1C,uBxBgO0C;EwB/N1C,WAAW;A3BqhGjB;;A2BzhGI;EAgBI,aAAa;A3B6gGrB;;A2B1gGM;EACE,qBAAqB;EACrB,qBxB+MwC;EwB9MxC,uBxB6MwC;EwB5MxC,WAAW;EA9BjB,mCAA0C;EAC1C,yBAAgC;EAChC,sCAA6C;A3B4iG/C;;A2B3gGI;EACE,cAAc;A3B8gGpB;;A2BxhGM;EDiDA,iBAAiB;A1B2+FvB;;A0Bp+FA;EAKI,WAAW;EACX,YAAY;A1Bm+FhB;;A0B99FA;EE9GE,SAAS;EACT,gBAAmB;EACnB,gBAAgB;EAChB,6BzBCgB;AH+kGlB;;A0B99FA;EACE,cAAc;EACd,WAAW;EACX,uBvBopBwC;EuBnpBxC,WAAW;EACX,gBvBoK+B;EuBnK/B,cvBhHgB;EuBiHhB,mBAAmB;EACnB,mBAAmB;EACnB,6BAA6B;EAC7B,SAAS;A1Bi+FX;;AKrlGE;EqBmIE,cvBqnBqD;EuBpnBrD,qBAAqB;EJ9IrB,yBnBEc;AHmmGlB;;A0Bj/FA;EAgCI,WvBnJW;EuBoJX,qBAAqB;EJrJrB,yBnB8Ba;AH6kGjB;;A0Bv/FA;EAuCI,cvBpJc;EuBqJd,oBAAoB;EACpB,6BAA6B;A1Bo9FjC;;A0B58FA;EACE,cAAc;A1B+8FhB;;A0B38FA;EACE,cAAc;EACd,sBvB+lBwC;EuB9lBxC,gBAAgB;EtBpDZ,mBAtCY;EsB4FhB,cvBxKgB;EuByKhB,mBAAmB;A1B88FrB;;A0B18FA;EACE,cAAc;EACd,uBvBqlBwC;EuBplBxC,cvB7KgB;AH0nGlB;;A6BvoGA;;EAEE,kBAAkB;EAClB,oBAAoB;EACpB,sBAAsB;A7B0oGxB;;A6B9oGA;;EAOI,kBAAkB;EAClB,cAAc;A7B4oGlB;;AK3oGE;;EwBII,UAAU;A7B4oGhB;;A6BzpGA;;;;EAkBM,UAAU;A7B8oGhB;;A6BxoGA;EACE,aAAa;EACb,eAAe;EACf,2BAA2B;A7B2oG7B;;A6B9oGA;EAMI,WAAW;A7B4oGf;;A6BxoGA;;EAII,iB1BsM6B;AHm8FjC;;A6B7oGA;;EnBhBI,0BmB0B8B;EnBzB9B,6BmByB8B;A7ByoGlC;;A6BnpGA;;EnBFI,yBmBiB6B;EnBhB7B,4BmBgB6B;A7B0oGjC;;A6B1nGA;EACE,wBAAmC;EACnC,uBAAkC;A7B6nGpC;;A6B/nGA;;;EAOI,cAAc;A7B8nGlB;;A6B3nGE;EACE,eAAe;A7B8nGnB;;A6B1nGA;EACE,uBAAsC;EACtC,sBAAqC;A7B6nGvC;;A6B1nGA;EACE,sBAAsC;EACtC,qBAAqC;A7B6nGvC;;A6BzmGA;EACE,sBAAsB;EACtB,uBAAuB;EACvB,uBAAuB;A7B4mGzB;;A6B/mGA;;EAOI,WAAW;A7B6mGf;;A6BpnGA;;EAYI,gB1BqH6B;AHw/FjC;;A6BznGA;;EnBlFI,6BmBoG+B;EnBnG/B,4BmBmG+B;A7B6mGnC;;A6B/nGA;;EnBhGI,yBmBuH4B;EnBtH5B,0BmBsH4B;A7B8mGhC;;A6B7lGA;;EAGI,gBAAgB;A7B+lGpB;;A6BlmGA;;;;EAOM,kBAAkB;EAClB,sBAAsB;EACtB,oBAAoB;A7BkmG1B;;A8B3vGA;EACE,kBAAkB;EAClB,aAAa;EACb,eAAe;EACf,oBAAoB;EACpB,WAAW;A9B8vGb;;A8BnwGA;;;;EAWI,kBAAkB;EAClB,YAAY;EACZ,YAAY;EACZ,gBAAgB;A9B+vGpB;;A8B7wGA;;;;;;;;;;;;EAmBM,iB3BsN2B;AHmjGjC;;A8B5xGA;;;EA2BI,UAAU;A9BuwGd;;A8BlyGA;EAgCI,UAAU;A9BswGd;;A8BtyGA;;EpBeI,0BoBsBmD;EpBrBnD,6BoBqBmD;A9BuwGvD;;A8B5yGA;;EpB6BI,yBoBSmD;EpBRnD,4BoBQmD;A9B4wGvD;;A8BlzGA;EA4CI,aAAa;EACb,mBAAmB;A9B0wGvB;;A8BvzGA;;EpBeI,0BoBiC6E;EpBhC7E,6BoBgC6E;A9B6wGjF;;A8B7zGA;EpB6BI,yBoBoBsE;EpBnBtE,4BoBmBsE;A9BixG1E;;A8BtwGA;;EAEE,aAAa;A9BywGf;;A8B3wGA;;EAQI,kBAAkB;EAClB,UAAU;A9BwwGd;;A8BjxGA;;EAYM,UAAU;A9B0wGhB;;A8BtxGA;;;;;;;;EAoBI,iB3ByJ6B;AHonGjC;;A8BzwGA;EAAuB,kB3BqJU;AHwnGjC;;A8B5wGA;EAAsB,iB3BoJW;AH4nGjC;;A8BxwGA;EACE,aAAa;EACb,mBAAmB;EACnB,yB3BgSkC;E2B/RlC,gBAAgB;E1BwBZ,eAtCY;E0BgBhB,gB3B0L+B;E2BzL/B,gB3B8L+B;E2B7L/B,c3B7FgB;E2B8FhB,kBAAkB;EAClB,mBAAmB;EACnB,yB3BrGgB;E2BsGhB,yB3BpGgB;EONd,sBP6OgC;AHyoGpC;;A8BxxGA;;EAkBI,aAAa;A9B2wGjB;;A8BjwGA;;EAEE,gCZjB8D;AlBqxGhE;;A8BjwGA;;;;;;EAME,oB3B2QgC;ECtR5B,kBAtCY;E0BmDhB,gB3BgG+B;EOvO7B,qBP8O+B;AH8pGnC;;A8BjwGA;;EAEE,kCZlC8D;AlBsyGhE;;A8BjwGA;;;;;;EAME,uB3BqPiC;ECjR7B,mBAtCY;E0BoEhB,gB3BgF+B;EOxO7B,qBP+O+B;AH8qGnC;;A8BjwGA;;EAEE,sBAA0E;A9BowG5E;;A8BzvGA;;;;;;EpBzJI,0BoB+J4B;EpB9J5B,6BoB8J4B;A9B6vGhC;;A8B1vGA;;;;;;EpBpJI,yBoB0J2B;EpBzJ3B,4BoByJ2B;A9B8vG/B;;A+Bl7GA;EACE,kBAAkB;EAClB,cAAc;EACd,kBAA+C;EAC/C,oBAAqE;A/Bq7GvE;;A+Bl7GA;EACE,oBAAoB;EACpB,kB5B6f0C;AHw7F5C;;A+Bl7GA;EACE,kBAAkB;EAClB,OAAO;EACP,WAAW;EACX,W5Byf0C;E4Bxf1C,eAAkF;EAClF,UAAU;A/Bq7GZ;;A+B37GA;EASI,W5BvBW;E4BwBX,qB5BKa;EmB9Bb,yBnB8Ba;AHk7GjB;;A+Bj8GA;EAoBM,gD5BLW;AHs7GjB;;A+Br8GA;EAyBI,qB5B0bsE;AHs/F1E;;A+Bz8GA;EA6BI,W5B3CW;E4B4CX,yB5Bsf8E;E4Brf9E,qB5Bqf8E;AH27FlF;;A+B/8GA;EAuCM,c5B/CY;AH29GlB;;A+Bn9GA;EA0CQ,yB5BtDU;AHm+GlB;;A+Bn6GA;EACE,kBAAkB;EAClB,gBAAgB;EAEhB,mBAAmB;A/Bq6GrB;;A+Bz6GA;EASI,kBAAkB;EAClB,YAA+E;EAC/E,aAA+D;EAC/D,cAAc;EACd,W5B4bwC;E4B3bxC,Y5B2bwC;E4B1bxC,oBAAoB;EACpB,WAAW;EACX,sB5BnFW;E4BoFX,yB5BoJ6B;AHgxGjC;;A+Bt7GA;EAwBI,kBAAkB;EAClB,YAA+E;EAC/E,aAA+D;EAC/D,cAAc;EACd,W5B6awC;E4B5axC,Y5B4awC;E4B3axC,WAAW;EACX,mCAAgE;A/Bk6GpE;;A+Bz5GA;ErB5GI,sBP6OgC;AH4xGpC;;A+B75GA;EAOM,kOb5EqI;AlBs+G3I;;A+Bj6GA;EAaM,qB5B1FW;EmB9Bb,yBnB8Ba;AHm/GjB;;A+Bt6GA;EAkBM,+KbvFqI;AlB++G3I;;A+B16GA;EAwBM,wC5BrGW;AH2/GjB;;A+B96GA;EA2BM,wC5BxGW;AH+/GjB;;A+B94GA;EAGI,kB5B8Z+C;AHi/FnD;;A+Bl5GA;EAQM,8KbjHqI;AlB+/G3I;;A+Bt5GA;EAcM,wC5B/HW;AH2gHjB;;A+Bl4GA;EACE,qBAA2D;A/Bq4G7D;;A+Bt4GA;EAKM,cAAqD;EACrD,c5BsY+E;E4BrY/E,mBAAmB;EAEnB,qB5BoY4E;AHggGlF;;A+B74GA;EAaM,wBb1E0D;Ea2E1D,0Bb3E0D;Ea4E1D,uBbxD0D;EayD1D,wBbzD0D;Ea0D1D,yB5BlLY;E4BoLZ,qB5B0X4E;EiBpjB5E,yIjBsgB+H;AHwjGrI;;AoBzjHI;EWkKJ;IXjKM,gBAAgB;EpB6jHpB;AACF;;A+B75GA;EA0BM,sB5BhMS;E4BiMT,8BAA4E;A/Bu4GlF;;A+Bl6GA;EAiCM,wC5B1KW;AH+iHjB;;A+Bz3GA;EACE,qBAAqB;EACrB,WAAW;EACX,mCb7G8D;Ea8G9D,0C5BwKkC;ECvQ9B,eAtCY;E2BwIhB,gB5BkE+B;E4BjE/B,gB5BsE+B;E4BrE/B,c5BrNgB;E4BsNhB,sBAAsB;EACtB,uO5BuW+I;E4BtW/I,yB5B3NgB;EONd,sBP6OgC;E4BTlC,wBAAgB;EAAhB,qBAAgB;EAAhB,gBAAgB;A/B03GlB;;A+Bz4GA;EAkBI,qB5B4PsE;E4B3PtE,UAAU;EAIR,gD5B7MW;AHqkHjB;;A+B/4GA;EAgCM,c5B5OY;E4B6OZ,sB5BpPS;AHumHf;;A+Bp5GA;EAuCI,YAAY;EACZ,sB5BoIgC;E4BnIhC,sBAAsB;A/Bi3G1B;;A+B15GA;EA6CI,c5B1Pc;E4B2Pd,yB5B/Pc;AHgnHlB;;A+B/5GA;EAmDI,aAAa;A/Bg3GjB;;A+Bn6GA;EAwDI,kBAAkB;EAClB,0B5BrQc;AHonHlB;;A+B32GA;EACE,kCbxK8D;EayK9D,oB5BsHkC;E4BrHlC,uB5BqHkC;E4BpHlC,oB5BqHiC;ECjR7B,mBAtCY;AJijHlB;;A+B32GA;EACE,gCbhL8D;EaiL9D,mB5BmHiC;E4BlHjC,sB5BkHiC;E4BjHjC,kB5BkHgC;ECtR5B,kBAtCY;AJyjHlB;;A+Bt2GA;EACE,kBAAkB;EAClB,qBAAqB;EACrB,WAAW;EACX,mCbhM8D;EaiM9D,gBAAgB;A/By2GlB;;A+Bt2GA;EACE,kBAAkB;EAClB,UAAU;EACV,WAAW;EACX,mCbxM8D;EayM9D,SAAS;EACT,UAAU;A/By2GZ;;A+B/2GA;EASI,qB5B2KsE;E4B1KtE,gD5B1Ra;AHooHjB;;A+Bp3GA;;EAgBI,yB5B3Tc;AHoqHlB;;A+Bz3GA;EAqBM,iB5BkUQ;AHsiGd;;A+B73GA;EA0BI,0BAA0B;A/Bu2G9B;;A+Bn2GA;EACE,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,OAAO;EACP,UAAU;EACV,mCbxO8D;EayO9D,yB5B6CkC;E4B3ClC,gB5BxD+B;E4ByD/B,gB5BpD+B;E4BqD/B,c5B/UgB;E4BgVhB,sB5BvVa;E4BwVb,yB5BpVgB;EONd,sBP6OgC;AHm9GpC;;A+Bn3GA;EAkBI,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,SAAS;EACT,UAAU;EACV,cAAc;EACd,6Bb1P4D;Ea2P5D,yB5B2BgC;E4B1BhC,gB5BpE6B;E4BqE7B,c5B/Vc;E4BgWd,iBAAiB;ETxWjB,yBnBGc;E4BuWd,oBAAoB;ErB3WpB,kCqB4WgF;A/Bq2GpF;;A+B31GA;EACE,WAAW;EACX,cbhR2B;EaiR3B,UAAU;EACV,6BAA6B;EAC7B,wBAAgB;EAAhB,qBAAgB;EAAhB,gBAAgB;A/B81GlB;;A+Bn2GA;EAQI,aAAa;A/B+1GjB;;A+Bv2GA;EAY8B,gE5BnWb;AHksHjB;;A+B32GA;EAa8B,gE5BpWb;AHssHjB;;A+B/2GA;EAc8B,gE5BrWb;AH0sHjB;;A+Bn3GA;EAkBI,SAAS;A/Bq2Gb;;A+Bv3GA;EAsBI,W5B2N6C;E4B1N7C,Y5B0N6C;E4BzN7C,oBAAyE;ET7YzE,yBnB8Ba;E4BiXb,S5B0N0C;EO1mB1C,mBP2mB6C;EiB1mB3C,oHjBsgB+H;EiBtgB/H,4GjBsgB+H;E4BnHjI,wBAAgB;EAAhB,gBAAgB;A/Bo2GpB;;AoBlvHI;EWgXJ;IX/WM,wBAAgB;IAAhB,gBAAgB;EpBsvHpB;AACF;;A+Bx4GA;ETrXI,yBnB8mB2E;AHmpG/E;;A+B54GA;EAsCI,W5BoMoC;E4BnMpC,c5BoMqC;E4BnMrC,kBAAkB;EAClB,e5BmMuC;E4BlMvC,yB5B3Zc;E4B4Zd,yBAAyB;ErBjazB,mBPomBoC;AHwqGxC;;A+Bt5GA;EAiDI,W5BgM6C;E4B/L7C,Y5B+L6C;EmBtmB7C,yBnB8Ba;E4B2Yb,S5BgM0C;EO1mB1C,mBP2mB6C;EiB1mB3C,iHjBsgB+H;EiBtgB/H,4GjBsgB+H;E4BzFjI,qBAAgB;EAAhB,gBAAgB;A/Bw2GpB;;AoBhxHI;EWgXJ;IX/WM,qBAAgB;IAAhB,gBAAgB;EpBoxHpB;AACF;;A+Bt6GA;ETrXI,yBnB8mB2E;AHirG/E;;A+B16GA;EAgEI,W5B0KoC;E4BzKpC,c5B0KqC;E4BzKrC,kBAAkB;EAClB,e5ByKuC;E4BxKvC,yB5Brbc;E4Bsbd,yBAAyB;ErB3bzB,mBPomBoC;AHssGxC;;A+Bp7GA;EA2EI,W5BsK6C;E4BrK7C,Y5BqK6C;E4BpK7C,aAAa;EACb,oB5B9D+B;E4B+D/B,mB5B/D+B;EmBrY/B,yBnB8Ba;E4Bwab,S5BmK0C;EO1mB1C,mBP2mB6C;EiB1mB3C,gHjBsgB+H;EiBtgB/H,4GjBsgB+H;E4B5DjI,gBAAgB;A/B42GpB;;AoBjzHI;EWgXJ;IX/WM,oBAAgB;IAAhB,gBAAgB;EpBqzHpB;AACF;;A+Bv8GA;ETrXI,yBnB8mB2E;AHktG/E;;A+B38GA;EA6FI,W5B6IoC;E4B5IpC,c5B6IqC;E4B5IrC,kBAAkB;EAClB,e5B4IuC;E4B3IvC,6BAA6B;EAC7B,yBAAyB;EACzB,oBAA4C;A/Bk3GhD;;A+Br9GA;EAwGI,yB5Bzdc;EOLd,mBPomBoC;AH4uGxC;;A+B19GA;EA6GI,kBAAkB;EAClB,yB5B/dc;EOLd,mBPomBoC;AHkvGxC;;A+Bh+GA;EAoHM,yB5BneY;AHm1HlB;;A+Bp+GA;EAwHM,eAAe;A/Bg3GrB;;A+Bx+GA;EA4HM,yB5B3eY;AH21HlB;;A+B5+GA;EAgIM,eAAe;A/Bg3GrB;;A+Bh/GA;EAoIM,yB5BnfY;AHm2HlB;;A+B32GA;;;EX9fM,4GjBsgB+H;AHy2GrI;;AoB12HI;EWyfJ;;;IXxfM,gBAAgB;EpBg3HpB;AACF;;AgCx3HA;EACE,aAAa;EACb,eAAe;EACf,eAAe;EACf,gBAAgB;EAChB,gBAAgB;AhC23HlB;;AgCx3HA;EACE,cAAc;EACd,oB7B6qBsC;AH8sGxC;;AK13HE;E2BEE,qBAAqB;AhC43HzB;;AgCj4HA;EAUI,c7BVc;E6BWd,oBAAoB;EACpB,eAAe;AhC23HnB;;AgCn3HA;EACE,gC7BxBgB;AH84HlB;;AgCv3HA;EAII,mB7B0M6B;AH6qHjC;;AgC33HA;EAQI,6BAAgD;EtB3BhD,+BPoOgC;EOnOhC,gCPmOgC;AHgrHpC;;AKl5HE;E2B6BI,qC7BnCY;AH45HlB;;AgCr4HA;EAgBM,c7BpCY;E6BqCZ,6BAA6B;EAC7B,yBAAyB;AhCy3H/B;;AgC34HA;;EAwBI,c7B3Cc;E6B4Cd,sB7BnDW;E6BoDX,kC7BpDW;AH46Hf;;AgCl5HA;EA+BI,gB7B+K6B;EOjO7B,yBsBoD4B;EtBnD5B,0BsBmD4B;AhCu3HhC;;AgC92HA;EtBtEI,sBP6OgC;AH2sHpC;;AgCl3HA;;EAOI,W7B3EW;E6B4EX,yB7B/Ca;AH+5HjB;;AgCv2HA;EAEI,cAAc;EACd,kBAAkB;AhCy2HtB;;AgCr2HA;EAEI,aAAa;EACb,YAAY;EACZ,kBAAkB;AhCu2HtB;;AgC91HA;EAEI,aAAa;AhCg2HjB;;AgCl2HA;EAKI,cAAc;AhCi2HlB;;AiCr8HA;EACE,kBAAkB;EAClB,aAAa;EACb,eAAe;EACf,mBAAmB;EACnB,8BAA8B;EAC9B,oB9BiHW;AHu1Hb;;AiC98HA;;EAWI,aAAa;EACb,eAAe;EACf,mBAAmB;EACnB,8BAA8B;AjCw8HlC;;AiCp7HA;EACE,qBAAqB;EACrB,sB9BqqB+E;E8BpqB/E,yB9BoqB+E;E8BnqB/E,kB9BiFW;ECTP,kBAtCY;E6BhChB,oBAAoB;EACpB,mBAAmB;AjCu7HrB;;AKj+HE;E4B6CE,qBAAqB;AjCw7HzB;;AiC/6HA;EACE,aAAa;EACb,sBAAsB;EACtB,eAAe;EACf,gBAAgB;EAChB,gBAAgB;AjCk7HlB;;AiCv7HA;EAQI,gBAAgB;EAChB,eAAe;AjCm7HnB;;AiC57HA;EAaI,gBAAgB;EAChB,WAAW;AjCm7Hf;;AiC16HA;EACE,qBAAqB;EACrB,mB9B4lBuC;E8B3lBvC,sB9B2lBuC;AHk1GzC;;AiCj6HA;EACE,gBAAgB;EAChB,YAAY;EAGZ,mBAAmB;AjCk6HrB;;AiC95HA;EACE,wB9BumBwC;EC9lBpC,kBAtCY;E6B+BhB,cAAc;EACd,6BAA6B;EAC7B,6BAAuC;EvBrHrC,sBP6OgC;AH0yHpC;;AK5gIE;E4B8GE,qBAAqB;AjCk6HzB;;AiC55HA;EACE,qBAAqB;EACrB,YAAY;EACZ,aAAa;EACb,sBAAsB;EACtB,WAAW;EACX,mCAAmC;EACnC,0BAA0B;AjC+5H5B;;Acj+HI;EmB4EC;;IAGK,gBAAgB;IAChB,eAAe;EjCw5HvB;AACF;;Act/HI;EmByFA;IAoBI,qBAAqB;IACrB,2BAA2B;EjC84HjC;EiCn6HG;IAwBK,mBAAmB;EjC84H3B;EiCt6HG;IA2BO,kBAAkB;EjC84H5B;EiCz6HG;IA+BO,qB9BgiB6B;I8B/hB7B,oB9B+hB6B;EH82GvC;EiC76HG;;IAsCK,iBAAiB;EjC24HzB;EiCj7HG;IAqDK,wBAAwB;IAGxB,gBAAgB;EjC63HxB;EiCr7HG;IA4DK,aAAa;EjC43HrB;AACF;;AcrgII;EmB4EC;;IAGK,gBAAgB;IAChB,eAAe;EjC47HvB;AACF;;Ac1hII;EmByFA;IAoBI,qBAAqB;IACrB,2BAA2B;EjCk7HjC;EiCv8HG;IAwBK,mBAAmB;EjCk7H3B;EiC18HG;IA2BO,kBAAkB;EjCk7H5B;EiC78HG;IA+BO,qB9BgiB6B;I8B/hB7B,oB9B+hB6B;EHk5GvC;EiCj9HG;;IAsCK,iBAAiB;EjC+6HzB;EiCr9HG;IAqDK,wBAAwB;IAGxB,gBAAgB;EjCi6HxB;EiCz9HG;IA4DK,aAAa;EjCg6HrB;AACF;;AcziII;EmB4EC;;IAGK,gBAAgB;IAChB,eAAe;EjCg+HvB;AACF;;Ac9jII;EmByFA;IAoBI,qBAAqB;IACrB,2BAA2B;EjCs9HjC;EiC3+HG;IAwBK,mBAAmB;EjCs9H3B;EiC9+HG;IA2BO,kBAAkB;EjCs9H5B;EiCj/HG;IA+BO,qB9BgiB6B;I8B/hB7B,oB9B+hB6B;EHs7GvC;EiCr/HG;;IAsCK,iBAAiB;EjCm9HzB;EiCz/HG;IAqDK,wBAAwB;IAGxB,gBAAgB;EjCq8HxB;EiC7/HG;IA4DK,aAAa;EjCo8HrB;AACF;;Ac7kII;EmB4EC;;IAGK,gBAAgB;IAChB,eAAe;EjCogIvB;AACF;;AclmII;EmByFA;IAoBI,qBAAqB;IACrB,2BAA2B;EjC0/HjC;EiC/gIG;IAwBK,mBAAmB;EjC0/H3B;EiClhIG;IA2BO,kBAAkB;EjC0/H5B;EiCrhIG;IA+BO,qB9BgiB6B;I8B/hB7B,oB9B+hB6B;EH09GvC;EiCzhIG;;IAsCK,iBAAiB;EjCu/HzB;EiC7hIG;IAqDK,wBAAwB;IAGxB,gBAAgB;EjCy+HxB;EiCjiIG;IA4DK,aAAa;EjCw+HrB;AACF;;AiC1iIA;EAyBQ,qBAAqB;EACrB,2BAA2B;AjCqhInC;;AiC/iIA;;EAQU,gBAAgB;EAChB,eAAe;AjC4iIzB;;AiCrjIA;EA6BU,mBAAmB;AjC4hI7B;;AiCzjIA;EAgCY,kBAAkB;AjC6hI9B;;AiC7jIA;EAoCY,qB9BgiB6B;E8B/hB7B,oB9B+hB6B;AH8/GzC;;AiClkIA;;EA2CU,iBAAiB;AjC4hI3B;;AiCvkIA;EA0DU,wBAAwB;EAGxB,gBAAgB;AjC+gI1B;;AiC5kIA;EAiEU,aAAa;AjC+gIvB;;AiClgIA;EAEI,yB9B/MW;AHmtIf;;AKptIE;E4BmNI,yB9BlNS;AHutIf;;AiC1gIA;EAWM,yB9BxNS;AH2tIf;;AK5tIE;E4B4NM,yB9B3NO;AH+tIf;;AiClhIA;EAkBQ,yB9B/NO;AHmuIf;;AiCthIA;;;;EA0BM,yB9BvOS;AH0uIf;;AiC7hIA;EA+BI,yB9B5OW;E8B6OX,gC9B7OW;AH+uIf;;AiCliIA;EAoCI,+QftNuI;AlBwtI3I;;AiCtiIA;EAwCI,yB9BrPW;AHuvIf;;AiC1iIA;EA0CM,yB9BvPS;AH2vIf;;AK5vIE;E4B2PM,yB9B1PO;AH+vIf;;AiC9/HA;EAEI,W9B7QW;AH6wIf;;AKpwIE;E4BuQI,W9BhRS;AHixIf;;AiCtgIA;EAWM,+B9BtRS;AHqxIf;;AK5wIE;E4BgRM,gC9BzRO;AHyxIf;;AiC9gIA;EAkBQ,gC9B7RO;AH6xIf;;AiClhIA;;;;EA0BM,W9BrSS;AHoyIf;;AiCzhIA;EA+BI,+B9B1SW;E8B2SX,sC9B3SW;AHyyIf;;AiC9hIA;EAoCI,qRf1QuI;AlBwwI3I;;AiCliIA;EAwCI,+B9BnTW;AHizIf;;AiCtiIA;EA0CM,W9BrTS;AHqzIf;;AK5yIE;E4B+SM,W9BxTO;AHyzIf;;AkC5zIA;EACE,kBAAkB;EAClB,aAAa;EACb,sBAAsB;EACtB,YAAY;EAEZ,qBAAqB;EACrB,sB/BJa;E+BKb,2BAA2B;EAC3B,sC/BIa;EOZX,sBP6OgC;AH0lIpC;;AkCx0IA;EAaI,eAAe;EACf,cAAc;AlC+zIlB;;AkC70IA;ExBUI,+BPoOgC;EOnOhC,gCPmOgC;AHomIpC;;AkCl1IA;ExBwBI,mCPsNgC;EOrNhC,kCPqNgC;AHymIpC;;AkCzzIA;EAGE,cAAc;EAGd,eAAe;EACf,gB/BsxByC;AHkiH3C;;AkCpzIA;EACE,sB/BgxBwC;AHuiH1C;;AkCpzIA;EACE,qBAA+B;EAC/B,gBAAgB;AlCuzIlB;;AkCpzIA;EACE,gBAAgB;AlCuzIlB;;AKl2IE;E6BgDE,qBAAqB;AlCszIzB;;AkCxzIA;EAMI,oB/B+vBuC;AHujH3C;;AkC9yIA;EACE,wB/BsvByC;E+BrvBzC,gBAAgB;EAEhB,qC/B3Da;E+B4Db,6C/B5Da;AH42If;;AkCrzIA;ExBnEI,0DwB2E8E;AlCizIlF;;AkCzzIA;EAaM,aAAa;AlCgzInB;;AkC3yIA;EACE,wB/BouByC;E+BnuBzC,qC/B3Ea;E+B4Eb,0C/B5Ea;AH03If;;AkCjzIA;ExBrFI,0DQ+H4D;AlB2wIhE;;AkCtyIA;EACE,uBAAiC;EACjC,uB/BmtBwC;E+BltBxC,sBAAgC;EAChC,gBAAgB;AlCyyIlB;;AkCtyIA;EACE,uBAAiC;EACjC,sBAAgC;AlCyyIlC;;AkCryIA;EACE,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,SAAS;EACT,OAAO;EACP,gB/B8sByC;AH0lH3C;;AkCryIA;;;EAGE,cAAc;EACd,WAAW;AlCwyIb;;AkCryIA;;ExBxHI,2CQsH4D;ERrH5D,4CQqH4D;AlB6yIhE;;AkCtyIA;;ExB/GI,+CQwG4D;ERvG5D,8CQuG4D;AlBmzIhE;;AkCpyIA;EAEI,mB/BurBsD;AH+mH1D;;Ac/3II;EoBuFJ;IAMI,aAAa;IACb,mBAAmB;IACnB,mB/BirBsD;I+BhrBtD,kB/BgrBsD;EHunHxD;EkChzIF;IAaM,YAAY;IACZ,kB/B2qBoD;I+B1qBpD,gBAAgB;IAChB,iB/ByqBoD;EH6nHxD;AACF;;AkC7xIA;EAII,mB/B2pBsD;AHkoH1D;;Acl5II;EoBiHJ;IAQI,aAAa;IACb,mBAAmB;ElC8xIrB;EkCvyIF;IAcM,YAAY;IACZ,gBAAgB;ElC4xIpB;EkC3yIF;IAkBQ,cAAc;IACd,cAAc;ElC4xIpB;EkC/yIF;IxBxJI,0BwBiLoC;IxBhLpC,6BwBgLoC;ElC0xItC;EkCnzIF;;IA8BY,0BAA0B;ElCyxIpC;EkCvzIF;;IAmCY,6BAA6B;ElCwxIvC;EkC3zIF;IxB1II,yBwBkLmC;IxBjLnC,4BwBiLmC;ElCuxIrC;EkC/zIF;;IA6CY,yBAAyB;ElCsxInC;EkCn0IF;;IAkDY,4BAA4B;ElCqxItC;AACF;;AkCzwIA;EAEI,sB/BglBsC;AH2rH1C;;Ac77II;EoBgLJ;IAMI,oB/B6lBiC;I+B7lBjC,e/B6lBiC;I+B5lBjC,wB/B6lBuC;I+B7lBvC,mB/B6lBuC;I+B5lBvC,UAAU;IACV,SAAS;ElC4wIX;EkCrxIF;IAYM,qBAAqB;IACrB,WAAW;ElC4wIf;AACF;;AkCnwIA;EAEI,gBAAgB;AlCqwIpB;;AkCvwIA;EAKM,gBAAgB;ExB5OlB,6BwB6OiC;ExB5OjC,4BwB4OiC;AlCuwIrC;;AkC7wIA;ExBrPI,yBwB+P8B;ExB9P9B,0BwB8P8B;AlCwwIlC;;AkClxIA;ExB9PI,gBwB4Q0B;EACxB,mB/BnC2B;AH2yIjC;;AmC1hJA;EACE,aAAa;EACb,eAAe;EACf,qBhC+hCsC;EgC9hCtC,mBhCiiCsC;EgC/hCtC,gBAAgB;EAChB,yBhCEgB;EOJd,sBP6OgC;AHkzIpC;;AmCzhJA;EAGI,oBhCqhCqC;AHqgHzC;;AmC7hJA;EAMM,qBAAqB;EACrB,qBhCihCmC;EgChhCnC,chCNY;EgCOZ,YhCshCuC;AHqgH7C;;AmCpiJA;EAoBI,0BAA0B;AnCohJ9B;;AmCxiJA;EAwBI,qBAAqB;AnCohJzB;;AmC5iJA;EA4BI,chC1Bc;AH8iJlB;;AoC3jJA;EACE,aAAa;E7BGb,eAAe;EACf,gBAAgB;EGAd,sBP6OgC;AHg1IpC;;AoC5jJA;EACE,kBAAkB;EAClB,cAAc;EACd,uBjCgxBwC;EiC/wBxC,iBjCqO+B;EiCpO/B,iBjCmxBsC;EiClxBtC,cjCwBe;EiCvBf,sBjCNa;EiCOb,yBjCJgB;AHmkJlB;;AoCvkJA;EAWI,UAAU;EACV,cjCkK8D;EiCjK9D,qBAAqB;EACrB,yBjCXc;EiCYd,qBjCXc;AH2kJlB;;AoC/kJA;EAmBI,UAAU;EACV,UjC4wBiC;EiC3wBjC,gDjCSa;AHujJjB;;AoC5jJA;EAGM,cAAc;E1BChB,+BP+MgC;EO9MhC,kCP8MgC;AH+2IpC;;AoClkJA;E1BVI,gCP6NgC;EO5NhC,mCP4NgC;AHo3IpC;;AoCvkJA;EAcI,UAAU;EACV,WjCvCW;EiCwCX,yBjCXa;EiCYb,qBjCZa;AHykJjB;;AoC9kJA;EAqBI,cjCvCc;EiCwCd,oBAAoB;EAEpB,YAAY;EACZ,sBjCjDW;EiCkDX,qBjC/Cc;AH2mJlB;;AqClnJE;EACE,uBlCyxBsC;EC9pBpC,kBAtCY;EiCnFd,gBlCsO6B;AH+4IjC;;AqChnJM;E3BwBF,8BPgN+B;EO/M/B,iCP+M+B;AH64InC;;AqChnJM;E3BKF,+BP8N+B;EO7N/B,kCP6N+B;AHk5InC;;AqCloJE;EACE,uBlCuxBqC;EC5pBnC,mBAtCY;EiCnFd,gBlCuO6B;AH85IjC;;AqChoJM;E3BwBF,8BPiN+B;EOhN/B,iCPgN+B;AH45InC;;AqChoJM;E3BKF,+BP+N+B;EO9N/B,kCP8N+B;AHi6InC;;AsChpJA;EACE,qBAAqB;EACrB,qBnCw5BsC;ECv1BpC,cAAW;EkC/Db,gBnC2R+B;EmC1R/B,cAAc;EACd,kBAAkB;EAClB,mBAAmB;EACnB,wBAAwB;E5BRtB,sBP6OgC;EiB5O9B,qIjB6b6I;AH+tInJ;;AoBvpJI;EkBNJ;IlBOM,gBAAgB;EpB2pJpB;AACF;;AKxpJE;EiCGI,qBAAqB;AtCypJ3B;;AsCvqJA;EAoBI,aAAa;AtCupJjB;;AsClpJA;EACE,kBAAkB;EAClB,SAAS;AtCqpJX;;AsC9oJA;EACE,oBnC63BsC;EmC53BtC,mBnC43BsC;EOh6BpC,oBPm6BqC;AHmxHzC;;AsCzoJE;ECjDA,WpCMa;EoCLb,yBpCkCe;AH4pJjB;;AKhrJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC8rJxC;;AuCjsJU;EAQJ,UAAU;EACV,+CpCuBW;AHsqJjB;;AsCxpJE;ECjDA,WpCMa;EoCLb,yBpCWgB;AHksJlB;;AK/rJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC6sJxC;;AuChtJU;EAQJ,UAAU;EACV,iDpCAY;AH4sJlB;;AsCvqJE;ECjDA,WpCMa;EoCLb,yBpCyCe;AHmrJjB;;AK9sJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC4tJxC;;AuC/tJU;EAQJ,UAAU;EACV,+CpC8BW;AH6rJjB;;AsCtrJE;ECjDA,WpCMa;EoCLb,yBpC2Ce;AHgsJjB;;AK7tJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvC2uJxC;;AuC9uJU;EAQJ,UAAU;EACV,gDpCgCW;AH0sJjB;;AsCrsJE;ECjDA,cpCegB;EoCdhB,yBpCwCe;AHktJjB;;AK5uJE;EkCVI,cpCUY;EoCTZ,yBAAkC;AvC0vJxC;;AuC7vJU;EAQJ,UAAU;EACV,+CpC6BW;AH4tJjB;;AsCptJE;ECjDA,WpCMa;EoCLb,yBpCsCe;AHmuJjB;;AK3vJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvCywJxC;;AuC5wJU;EAQJ,UAAU;EACV,+CpC2BW;AH6uJjB;;AsCnuJE;ECjDA,cpCegB;EoCdhB,yBpCMgB;AHkxJlB;;AK1wJE;EkCVI,cpCUY;EoCTZ,yBAAkC;AvCwxJxC;;AuC3xJU;EAQJ,UAAU;EACV,iDpCLY;AH4xJlB;;AsClvJE;ECjDA,WpCMa;EoCLb,yBpCagB;AH0xJlB;;AKzxJE;EkCVI,WpCCS;EoCAT,yBAAkC;AvCuyJxC;;AuC1yJU;EAQJ,UAAU;EACV,8CpCEY;AHoyJlB;;AwCnzJA;EACE,kBAAoD;EACpD,mBrCqzBsC;EqCnzBtC,yBrCKgB;EOJd,qBP8O+B;AHukJnC;;Ac9vJI;E0B5DJ;IAQI,kBrC+yBoC;EHwgItC;AACF;;AwCpzJA;EACE,gBAAgB;EAChB,eAAe;E9BTb,gB8BUsB;AxCuzJ1B;;AyCl0JA;EACE,kBAAkB;EAClB,wBtCq9ByC;EsCp9BzC,mBtCq9BsC;EsCp9BtC,6BAA6C;E/BH3C,sBP6OgC;AH4lJpC;;AyCj0JA;EAEE,cAAc;AzCm0JhB;;AyC/zJA;EACE,gBtCgR+B;AHkjJjC;;AyC1zJA;EACE,mBAAsD;AzC6zJxD;;AyC9zJA;EAKI,kBAAkB;EAClB,MAAM;EACN,QAAQ;EACR,wBtCu7BuC;EsCt7BvC,cAAc;AzC6zJlB;;AyCnzJE;EC9CA,cxB8FgE;EIzF9D,yBJyF8D;EwB5FhE,qBxB4FgE;AlBywJlE;;A0Cn2JE;EACE,yBAAqC;A1Cs2JzC;;A0Cn2JE;EACE,cAA0B;A1Cs2J9B;;AyCj0JE;EC9CA,cxB8FgE;EIzF9D,yBJyF8D;EwB5FhE,qBxB4FgE;AlBuxJlE;;A0Cj3JE;EACE,yBAAqC;A1Co3JzC;;A0Cj3JE;EACE,cAA0B;A1Co3J9B;;AyC/0JE;EC9CA,cxB8FgE;EIzF9D,yBJyF8D;EwB5FhE,qBxB4FgE;AlBqyJlE;;A0C/3JE;EACE,yBAAqC;A1Ck4JzC;;A0C/3JE;EACE,cAA0B;A1Ck4J9B;;AyC71JE;EC9CA,cxB8FgE;EIzF9D,yBJyF8D;EwB5FhE,qBxB4FgE;AlBmzJlE;;A0C74JE;EACE,yBAAqC;A1Cg5JzC;;A0C74JE;EACE,cAA0B;A1Cg5J9B;;AyC32JE;EC9CA,cxB8FgE;EIzF9D,yBJyF8D;EwB5FhE,qBxB4FgE;AlBi0JlE;;A0C35JE;EACE,yBAAqC;A1C85JzC;;A0C35JE;EACE,cAA0B;A1C85J9B;;AyCz3JE;EC9CA,cxB8FgE;EIzF9D,yBJyF8D;EwB5FhE,qBxB4FgE;AlB+0JlE;;A0Cz6JE;EACE,yBAAqC;A1C46JzC;;A0Cz6JE;EACE,cAA0B;A1C46J9B;;AyCv4JE;EC9CA,cxB8FgE;EIzF9D,yBJyF8D;EwB5FhE,qBxB4FgE;AlB61JlE;;A0Cv7JE;EACE,yBAAqC;A1C07JzC;;A0Cv7JE;EACE,cAA0B;A1C07J9B;;AyCr5JE;EC9CA,cxB8FgE;EIzF9D,yBJyF8D;EwB5FhE,qBxB4FgE;AlB22JlE;;A0Cr8JE;EACE,yBAAqC;A1Cw8JzC;;A0Cr8JE;EACE,cAA0B;A1Cw8J9B;;A2Ch9JE;EACE;IAAO,2BAAuC;E3Co9JhD;E2Cn9JE;IAAK,wBAAwB;E3Cs9J/B;AACF;;A2Cz9JE;EACE;IAAO,2BAAuC;E3Co9JhD;E2Cn9JE;IAAK,wBAAwB;E3Cs9J/B;AACF;;A2Cn9JA;EACE,aAAa;EACb,YxC89BsC;EwC79BtC,gBAAgB;EvCoHZ,kBAtCY;EuC5EhB,yBxCJgB;EOJd,sBP6OgC;AHkvJpC;;A2Cl9JA;EACE,aAAa;EACb,sBAAsB;EACtB,uBAAuB;EACvB,gBAAgB;EAChB,WxChBa;EwCiBb,kBAAkB;EAClB,mBAAmB;EACnB,yBxCUe;EiB9BX,2BjB0+B4C;AHggIlD;;AoBr+JI;EuBOJ;IvBNM,gBAAgB;EpBy+JpB;AACF;;A2Cx9JA;ErBaE,qMAA6I;EqBX7I,0BxCw8BsC;AHmhIxC;;A2Cv9JE;EACE,0DxC08BkD;EwC18BlD,kDxC08BkD;AHghItD;;A2Cv9JM;EAJJ;IAKM,uBAAe;IAAf,eAAe;E3C29JrB;AACF;;A4CrgKA;EACE,aAAa;EACb,uBAAuB;A5CwgKzB;;A4CrgKA;EACE,OAAO;A5CwgKT;;A6C1gKA;EACE,aAAa;EACb,sBAAsB;EAGtB,eAAe;EACf,gBAAgB;A7C2gKlB;;A6ClgKA;EACE,WAAW;EACX,c1CPgB;E0CQhB,mBAAmB;A7CqgKrB;;AK3gKE;EwCUE,UAAU;EACV,c1Cbc;E0Ccd,qBAAqB;EACrB,yB1CrBc;AH0hKlB;;A6C/gKA;EAcI,c1CjBc;E0CkBd,yB1CzBc;AH8hKlB;;A6C5/JA;EACE,kBAAkB;EAClB,cAAc;EACd,wB1C88ByC;E0C58BzC,sB1CzCa;E0C0Cb,sC1ChCa;AH8hKf;;A6CpgKA;EnC7BI,+BPoOgC;EOnOhC,gCPmOgC;AHk0JpC;;A6CzgKA;EnCfI,mCPsNgC;EOrNhC,kCPqNgC;AHu0JpC;;A6C9gKA;EAkBI,c1ChDc;E0CiDd,oBAAoB;EACpB,sB1CxDW;AHwjKf;;A6CphKA;EAyBI,UAAU;EACV,W1C9DW;E0C+DX,yB1ClCa;E0CmCb,qB1CnCa;AHkiKjB;;A6C3hKA;EAgCI,mBAAmB;A7C+/JvB;;A6C/hKA;EAmCM,gB1CiK2B;E0ChK3B,qB1CgK2B;AHg2JjC;;A6Cl/JI;EACE,mBAAmB;A7Cq/JzB;;A6Ct/JI;EnCjCA,kCPsLgC;EOlMhC,0BmCmDwC;A7Cq/J5C;;A6C3/JI;EnC7CA,gCPkMgC;EOtLhC,4BmC4C0C;A7Cq/J9C;;A6ChgKI;EAeM,aAAa;A7Cq/JvB;;A6CpgKI;EAmBM,qB1C+HuB;E0C9HvB,oBAAoB;A7Cq/J9B;;A6CzgKI;EAuBQ,iB1C2HqB;E0C1HrB,sB1C0HqB;AH43JjC;;Ac/iKI;E+BiCA;IACE,mBAAmB;E7CkhKvB;E6CnhKE;InCjCA,kCPsLgC;IOlMhC,0BmCmDwC;E7CihK1C;E6CvhKE;InC7CA,gCPkMgC;IOtLhC,4BmC4C0C;E7CghK5C;E6C3hKE;IAeM,aAAa;E7C+gKrB;E6C9hKE;IAmBM,qB1C+HuB;I0C9HvB,oBAAoB;E7C8gK5B;E6CliKE;IAuBQ,iB1C2HqB;I0C1HrB,sB1C0HqB;EHo5J/B;AACF;;AcxkKI;E+BiCA;IACE,mBAAmB;E7C2iKvB;E6C5iKE;InCjCA,kCPsLgC;IOlMhC,0BmCmDwC;E7C0iK1C;E6ChjKE;InC7CA,gCPkMgC;IOtLhC,4BmC4C0C;E7CyiK5C;E6CpjKE;IAeM,aAAa;E7CwiKrB;E6CvjKE;IAmBM,qB1C+HuB;I0C9HvB,oBAAoB;E7CuiK5B;E6C3jKE;IAuBQ,iB1C2HqB;I0C1HrB,sB1C0HqB;EH66J/B;AACF;;AcjmKI;E+BiCA;IACE,mBAAmB;E7CokKvB;E6CrkKE;InCjCA,kCPsLgC;IOlMhC,0BmCmDwC;E7CmkK1C;E6CzkKE;InC7CA,gCPkMgC;IOtLhC,4BmC4C0C;E7CkkK5C;E6C7kKE;IAeM,aAAa;E7CikKrB;E6ChlKE;IAmBM,qB1C+HuB;I0C9HvB,oBAAoB;E7CgkK5B;E6CplKE;IAuBQ,iB1C2HqB;I0C1HrB,sB1C0HqB;EHs8J/B;AACF;;Ac1nKI;E+BiCA;IACE,mBAAmB;E7C6lKvB;E6C9lKE;InCjCA,kCPsLgC;IOlMhC,0BmCmDwC;E7C4lK1C;E6ClmKE;InC7CA,gCPkMgC;IOtLhC,4BmC4C0C;E7C2lK5C;E6CtmKE;IAeM,aAAa;E7C0lKrB;E6CzmKE;IAmBM,qB1C+HuB;I0C9HvB,oBAAoB;E7CylK5B;E6C7mKE;IAuBQ,iB1C2HqB;I0C1HrB,sB1C0HqB;EH+9J/B;AACF;;A6C5kKA;EAEI,qBAAqB;EACrB,oBAAoB;EnCjIpB,gBmCkIwB;A7C8kK5B;;A6CllKA;EAOM,mBAAmB;A7C+kKzB;;A6CtlKA;EAaM,sBAAsB;A7C6kK5B;;A8C1tKE;EACE,c5B2F8D;E4B1F9D,yB5B0F8D;AlBmoKlE;;AKltKE;EyCPM,c5BsF0D;E4BrF1D,yBAAyC;A9C6tKjD;;A8CpuKE;EAWM,W3CPO;E2CQP,yB5BgF0D;E4B/E1D,qB5B+E0D;AlB8oKlE;;A8C1uKE;EACE,c5B2F8D;E4B1F9D,yB5B0F8D;AlBmpKlE;;AKluKE;EyCPM,c5BsF0D;E4BrF1D,yBAAyC;A9C6uKjD;;A8CpvKE;EAWM,W3CPO;E2CQP,yB5BgF0D;E4B/E1D,qB5B+E0D;AlB8pKlE;;A8C1vKE;EACE,c5B2F8D;E4B1F9D,yB5B0F8D;AlBmqKlE;;AKlvKE;EyCPM,c5BsF0D;E4BrF1D,yBAAyC;A9C6vKjD;;A8CpwKE;EAWM,W3CPO;E2CQP,yB5BgF0D;E4B/E1D,qB5B+E0D;AlB8qKlE;;A8C1wKE;EACE,c5B2F8D;E4B1F9D,yB5B0F8D;AlBmrKlE;;AKlwKE;EyCPM,c5BsF0D;E4BrF1D,yBAAyC;A9C6wKjD;;A8CpxKE;EAWM,W3CPO;E2CQP,yB5BgF0D;E4B/E1D,qB5B+E0D;AlB8rKlE;;A8C1xKE;EACE,c5B2F8D;E4B1F9D,yB5B0F8D;AlBmsKlE;;AKlxKE;EyCPM,c5BsF0D;E4BrF1D,yBAAyC;A9C6xKjD;;A8CpyKE;EAWM,W3CPO;E2CQP,yB5BgF0D;E4B/E1D,qB5B+E0D;AlB8sKlE;;A8C1yKE;EACE,c5B2F8D;E4B1F9D,yB5B0F8D;AlBmtKlE;;AKlyKE;EyCPM,c5BsF0D;E4BrF1D,yBAAyC;A9C6yKjD;;A8CpzKE;EAWM,W3CPO;E2CQP,yB5BgF0D;E4B/E1D,qB5B+E0D;AlB8tKlE;;A8C1zKE;EACE,c5B2F8D;E4B1F9D,yB5B0F8D;AlBmuKlE;;AKlzKE;EyCPM,c5BsF0D;E4BrF1D,yBAAyC;A9C6zKjD;;A8Cp0KE;EAWM,W3CPO;E2CQP,yB5BgF0D;E4B/E1D,qB5B+E0D;AlB8uKlE;;A8C10KE;EACE,c5B2F8D;E4B1F9D,yB5B0F8D;AlBmvKlE;;AKl0KE;EyCPM,c5BsF0D;E4BrF1D,yBAAyC;A9C60KjD;;A8Cp1KE;EAWM,W3CPO;E2CQP,yB5BgF0D;E4B/E1D,qB5B+E0D;AlB8vKlE;;A+C71KA;EACE,YAAY;E3C8HR,iBAtCY;E2CtFhB,gB5CiS+B;E4ChS/B,cAAc;EACd,W5CYa;E4CXb,yB5CCa;E4CAb,WAAW;A/Cg2Kb;;AK31KE;E0CDE,W5CMW;E4CLX,qBAAqB;A/Cg2KzB;;AK51KE;E0CCI,YAAY;A/C+1KlB;;A+Cp1KA;EACE,UAAU;EACV,6BAA6B;EAC7B,SAAS;EACT,wBAAgB;EAAhB,qBAAgB;EAAhB,gBAAgB;A/Cu1KlB;;A+Cj1KA;EACE,oBAAoB;A/Co1KtB;;AgD33KA;EACE,gB7Cy4BuC;E6Cx4BvC,gBAAgB;E5C6HZ,mBAtCY;E4CpFhB,2C7CEa;E6CDb,4BAA4B;EAC5B,oC7C04BmD;E6Cz4BnD,gD7CSa;E6CRb,mCAA2B;EAA3B,2BAA2B;EAC3B,UAAU;EtCLR,sB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Na;EiDOb,4BAA4B;EAC5B,oCjDEa;EOZX,qBP8O+B;AH+gLnC;;AoDlwLA;EAoBI,kBAAkB;EAClB,cAAc;EACd,WjD22BoC;EiD12BpC,cjD22BqC;EiD12BrC,gBjD2N+B;AHuhLnC;;AoD1wLA;EA4BM,kBAAkB;EAClB,cAAc;EACd,WAAW;EACX,yBAAyB;EACzB,mBAAmB;ApDkvLzB;;AoD7uLA;EACE,qBjD41BuC;AHo5JzC;;AoDjvLA;EAII,2BlC2F4D;AlBspLhE;;AoDrvLA;EAOM,SAAS;EACT,6BAAgE;EAChE,qCjDu1BiE;AH25JvE;;AoD3vLA;EAaM,WjD6L2B;EiD5L3B,6BAAgE;EAChE,sBjD7CS;AH+xLf;;AoD7uLA;EACE,mBjDw0BuC;AHw6JzC;;AoDjvLA;EAII,yBlCuE4D;EkCtE5D,ajDo0BqC;EiDn0BrC,YjDk0BoC;EiDj0BpC,gBAAgC;ApDivLpC;;AoDxvLA;EAUM,OAAO;EACP,oCAA2F;EAC3F,uCjDg0BiE;AHk7JvE;;AoD9vLA;EAgBM,SjDsK2B;EiDrK3B,oCAA2F;EAC3F,wBjDpES;AHszLf;;AoD7uLA;EACE,kBjDizBuC;AH+7JzC;;AoDjvLA;EAII,wBlCgD4D;AlBisLhE;;AoDrvLA;EAOM,MAAM;EACN,oCAA2F;EAC3F,wCjD4yBiE;AHs8JvE;;AoD3vLA;EAaM,QjDkJ2B;EiDjJ3B,oCAA2F;EAC3F,yBjDxFS;AH00Lf;;AoDjwLA;EAqBI,kBAAkB;EAClB,MAAM;EACN,SAAS;EACT,cAAc;EACd,WjDwxBoC;EiDvxBpC,oBAAsC;EACtC,WAAW;EACX,gCjD4wBuD;AHo+J3D;;AoD5uLA;EACE,oBjDixBuC;AH89JzC;;AoDhvLA;EAII,0BlCgB4D;EkCf5D,ajD6wBqC;EiD5wBrC,YjD2wBoC;EiD1wBpC,gBAAgC;ApDgvLpC;;AoDvvLA;EAUM,QAAQ;EACR,oCjDuwBmC;EiDtwBnC,sCjDywBiE;AHw+JvE;;AoD7vLA;EAgBM,UjD+G2B;EiD9G3B,oCjDiwBmC;EiDhwBnC,uBjD3HS;AH42Lf;;AoD3tLA;EACE,uBjDkuBwC;EiDjuBxC,gBAAgB;Eh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ACE,WpD4hC4B;EoD3hC5B,YpD2hC4B;AHkiK9B;;AwDhnMA;EAAqB,mCAAmC;AxDonMxD;;AwDnnMA;EAAqB,8BAA8B;AxDunMnD;;AwDtnMA;EAAqB,iCAAiC;AxD0nMtD;;AwDznMA;EAAqB,iCAAiC;AxD6nMtD;;AwD5nMA;EAAqB,sCAAsC;AxDgoM3D;;AwD/nMA;EAAqB,mCAAmC;AxDmoMxD;;AyDroME;EACE,oCAAmC;AzDwoMvC;;AK9nME;;;EoDLI,oCAAgD;AzDyoMtD;;AyD/oME;EACE,oCAAmC;AzDkpMvC;;AKxoME;;;EoDLI,oCAAgD;AzDmpMtD;;AyDzpME;EACE,oCAAmC;AzD4pMvC;;AKlpME;;;EoDLI,oCAAgD;AzD6pMtD;;AyDnqME;EACE,oCAAmC;AzDsqMvC;;AK5pME;;;EoDLI,oCAAgD;AzDuqMtD;;AyD7qME;EACE,oCAAmC;AzDgrMvC;;AKtqME;;;EoDLI,oCAAgD;AzDirMtD;;AyDvrME;EACE,oCAAmC;AzD0rMvC;;AKhrME;;;EoDLI,oCAAgD;AzD2rMtD;;AyDjsME;EACE,oCAAmC;AzDosMvC;;AK1rME;;;EoDLI,oCAAgD;AzDqsMtD;;AyD3sME;EACE,oCAAmC;AzD8sMvC;;AKpsME;;;EoDLI,oCAAgD;AzD+sMtD;;A0D9sMA;EACE,iCAAmC;A1DitMrC;;A0D9sMA;EACE,wCAAwC;A1DitM1C;;A2D5tMA;EAAkB,oCAAoD;A3DguMtE;;A2D/tMA;EAAkB,wCAAwD;A3DmuM1E;;A2DluMA;EAAkB,0CAA0D;A3DsuM5E;;A2DruMA;EAAkB,2CAA2D;A3DyuM7E;;A2DxuMA;EAAkB,yCAAyD;A3D4uM3E;;A2D1uMA;EAAmB,oBAAoB;A3D8uMvC;;A2D7uMA;EAAmB,wBAAwB;A3DivM3C;;A2DhvMA;EAAmB,0BAA0B;A3DovM7C;;A2DnvMA;EAAmB,2BAA2B;A3DuvM9C;;A2DtvMA;EAAmB,yBAAyB;A3D0vM5C;;A2DvvME;EACE,gCAA+B;A3D0vMnC;;A2D3vME;EACE,gCAA+B;A3D8vMnC;;A2D/vME;EACE,gCAA+B;A3DkwMnC;;A2DnwME;EACE,gCAA+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zpNI;EAAgC,8BAA8B;A9D6pNlE;;AcjpNI;EgDlDA;IAAgC,8BAA8B;E9DwsNhE;E8DvsNE;IAAgC,iCAAiC;E9D0sNnE;E8DzsNE;IAAgC,sCAAsC;E9D4sNxE;E8D3sNE;IAAgC,yCAAyC;E9D8sN3E;E8D5sNE;IAA8B,0BAA0B;E9D+sN1D;E8D9sNE;IAA8B,4BAA4B;E9DitN5D;E8DhtNE;IAA8B,kCAAkC;E9DmtNlE;E8DltNE;IAA8B,yBAAyB;E9DqtNzD;E8DptNE;IAA8B,uBAAuB;E9DutNvD;E8DttNE;IAA8B,uBAAuB;E9DytNvD;E8DxtNE;IAA8B,yBAAyB;E9D2tNzD;E8D1tNE;IAA8B,yBAAyB;E9D6tNzD;E8D3tNE;IAAoC,sCAAsC;E9D8tN5E;E8D7tNE;IAAoC,oCAAoC;E9DguN1E;E8D/tNE;IAAoC,kCAAkC;E9DkuNxE;E8DjuNE;IAAoC,yCAAyC;E9DouN/E;E8DnuNE;IAAoC,wCAAwC;E9DsuN9E;E8DpuNE;IAAiC,kCAAkC;E9DuuNrE;E8DtuNE;IAAiC,gCAAgC;E9DyuNnE;E8DxuNE;IAAiC,8BAA8B;E9D2uNjE;E8D1uNE;IAAiC,gCAAgC;E9D6uNnE;E8D5uNE;IAAiC,+BAA+B;E9D+uNlE;E8D7uNE;IAAkC,oCAAoC;E9DgvNxE;E8D/uNE;IAAkC,kCAAkC;E9DkvNtE;E8DjvNE;IAAkC,gCAAgC;E9DovNpE;E8DnvNE;IAAkC,uCAAuC;E9DsvN3E;E8DrvNE;IAAkC,sCAAsC;E9DwvN1E;E8DvvNE;IAAkC,iCAAiC;E9D0vNrE;E8DxvNE;IAAgC,2BAA2B;E9D2vN7D;E8D1vNE;IAAgC,iCAAiC;E9D6vNnE;E8D5vNE;IAAgC,+BAA+B;E9D+vNjE;E8D9vNE;IAAgC,6BAA6B;E9DiwN/D;E8DhwNE;IAAgC,+BAA+B;E9DmwNjE;E8DlwNE;IAAgC,8BAA8B;E9DqwNhE;AACF;;Ac1vNI;EgDlDA;IAAgC,8BAA8B;E9DizNhE;E8DhzNE;IAAgC,iCAAiC;E9DmzNnE;E8DlzNE;IAAgC,sCAAsC;E9DqzNxE;E8DpzNE;IAAgC,yCAAyC;E9DuzN3E;E8DrzNE;IAA8B,0BAA0B;E9DwzN1D;E8DvzNE;IAA8B,4BAA4B;E9D0zN5D;E8DzzNE;IAA8B,kCAAkC;E9D4zNlE;E8D3zNE;IAA8B,yBAAyB;E9D8zNzD;E8D7zNE;IAA8B,uBAAuB;E9Dg0NvD;E8D/zNE;IAA8B,uBAAuB;E9Dk0NvD;E8Dj0NE;IAA8B,yBAAyB;E9Do0NzD;E8Dn0NE;IAA8B,yBAAyB;E9Ds0NzD;E8Dp0NE;IAAoC,sCAAsC;E9Du0N5E;E8Dt0NE;IAAoC,oCAAoC;E9Dy0N1E;E8Dx0NE;IAAoC,kCAAkC;E9D20NxE;E8D10NE;IAAoC,yCAAyC;E9D60N/E;E8D50NE;IAAoC,wCAAwC;E9D+0N9E;E8D70NE;IAAiC,kCAAkC;E9Dg1NrE;E8D/0NE;IAAiC,gCAAgC;E9Dk1NnE;E8Dj1NE;IAAiC,8BAA8B;E9Do1NjE;E8Dn1NE;IAAiC,gCAAgC;E9Ds1NnE;E8Dr1NE;IAAiC,+BAA+B;E9Dw1NlE;E8Dt1NE;IAAkC,oCAAoC;E9Dy1NxE;E8Dx1NE;IAAkC,kCAAkC;E9D21NtE;E8D11NE;IAAkC,gCAAgC;E9D61NpE;E8D51NE;IAAkC,uCAAuC;E9D+1N3E;E8D91NE;IAAkC,sCAAsC;E9Di2N1E;E8Dh2NE;IAAkC,iCAAiC;E9Dm2NrE;E8Dj2NE;IAAgC,2BAA2B;E9Do2N7D;E8Dn2NE;IAAgC,iCAAiC;E9Ds2NnE;E8Dr2NE;IAAgC,+BAA+B;E9Dw2NjE;E8Dv2NE;IAAgC,6BAA6B;E9D02N/D;E8Dz2NE;IAAgC,+BAA+B;E9D42NjE;E8D32NE;IAAgC,8BAA8B;E9D82NhE;AACF;;Acn2NI;EgDlDA;IAAgC,8BAA8B;E9D05NhE;E8Dz5NE;IAAgC,iCAAiC;E9D45NnE;E8D35NE;IAAgC,sCAAsC;E9D85NxE;E8D75NE;IAAgC,yCAAyC;E9Dg6N3E;E8D95NE;IAA8B,0BAA0B;E9Di6N1D;E8Dh6NE;IAA8B,4BAA4B;E9Dm6N5D;E8Dl6NE;IAA8B,kCAAkC;E9Dq6NlE;E8Dp6NE;IAA8B,yBAAyB;E9Du6NzD;E8Dt6NE;IAA8B,uBAAuB;E9Dy6NvD;E8Dx6NE;IAA8B,uBAAuB;E9D26NvD;E8D16NE;IAA8B,yBAAyB;E9D66NzD;E8D56NE;IAA8B,yBAAyB;E9D+6NzD;E8D76NE;IAAoC,sCAAsC;E9Dg7N5E;E8D/6NE;IAAoC,oCAAoC;E9Dk7N1E;E8Dj7NE;IAAoC,kCAAkC;E9Do7NxE;E8Dn7NE;IAAoC,yCAAyC;E9Ds7N/E;E8Dr7NE;IAAoC,wCAAwC;E9Dw7N9E;E8Dt7NE;IAAiC,kCAAkC;E9Dy7NrE;E8Dx7NE;IAAiC,gCAAgC;E9D27NnE;E8D17NE;IAAiC,8BAA8B;E9D67NjE;E8D57NE;IAAiC,gCAAgC;E9D+7NnE;E8D97NE;IAAiC,+BAA+B;E9Di8NlE;E8D/7NE;IAAkC,oCAAoC;E9Dk8NxE;E8Dj8NE;IAAkC,kCAAkC;E9Do8NtE;E8Dn8NE;IAAkC,gCAAgC;E9Ds8NpE;E8Dr8NE;IAAkC,uCAAuC;E9Dw8N3E;E8Dv8NE;IAAkC,sCAAsC;E9D08N1E;E8Dz8NE;IAAkC,iCAAiC;E9D48NrE;E8D18NE;IAAgC,2BAA2B;E9D68N7D;E8D58NE;IAAgC,iCAAiC;E9D+8NnE;E8D98NE;IAAgC,+BAA+B;E9Di9NjE;E8Dh9NE;IAAgC,6BAA6B;E9Dm9N/D;E8Dl9NE;IAAgC,+BAA+B;E9Dq9NjE;E8Dp9NE;IAAgC,8BAA8B;E9Du9NhE;AACF;;Ac58NI;EgDlDA;IAAgC,8BAA8B;E9DmgOhE;E8DlgOE;IAAgC,iCAAiC;E9DqgOnE;E8DpgOE;IAAgC,sCAAsC;E9DugOxE;E8DtgOE;IAAgC,yCAAyC;E9DygO3E;E8DvgOE;IAA8B,0BAA0B;E9D0gO1D;E8DzgOE;IAA8B,4BAA4B;E9D4gO5D;E8D3gOE;IAA8B,kCAAkC;E9D8gOlE;E8D7gOE;IAA8B,yBAAyB;E9DghOzD;E8D/gOE;IAA8B,uBAAuB;E9DkhOvD;E8DjhOE;IAA8B,uBAAuB;E9DohOvD;E8DnhOE;IAA8B,yBAAyB;E9DshOzD;E8DrhOE;IAA8B,yBAAyB;E9DwhOzD;E8DthOE;IAAoC,sCAAsC;E9DyhO5E;E8DxhOE;IAAoC,oCAAoC;E9D2hO1E;E8D1hOE;IAAoC,kCAAkC;E9D6hOxE;E8D5hOE;IAAoC,yCAAyC;E9D+hO/E;E8D9hOE;IAAoC,wCAAwC;E9DiiO9E;E8D/hOE;IAAiC,kCAAkC;E9DkiOrE;E8DjiOE;IAAiC,gCAAgC;E9DoiOnE;E8DniOE;IAAiC,8BAA8B;E9DsiOjE;E8DriOE;IAAiC,gCAAgC;E9DwiOnE;E8DviOE;IAAiC,+BAA+B;E9D0iOlE;E8DxiOE;IAAkC,oCAAoC;E9D2iOxE;E8D1iOE;IAAkC,kCAAkC;E9D6iOtE;E8D5iOE;IAAkC,gCAAgC;E9D+iOpE;E8D9iOE;IAAkC,uCAAuC;E9DijO3E;E8DhjOE;IAAkC,sCAAsC;E9DmjO1E;E8DljOE;IAAkC,iCAAiC;E9DqjOrE;E8DnjOE;IAAgC,2BAA2B;E9DsjO7D;E8DrjOE;IAAgC,iCAAiC;E9DwjOnE;E8DvjOE;IAAgC,+BAA+B;E9D0jOjE;E8DzjOE;IAAgC,6BAA6B;E9D4jO/D;E8D3jOE;IAAgC,+BAA+B;E9D8jOjE;E8D7jOE;IAAgC,8BAA8B;E9DgkOhE;AACF;;A+D3mOI;EAAwB,sBAAsB;A/D+mOlD;;A+D9mOI;EAAwB,uBAAuB;A/DknOnD;;A+DjnOI;EAAwB,sBAAsB;A/DqnOlD;;AcjkOI;EiDtDA;IAAwB,sBAAsB;E/D4nOhD;E+D3nOE;IAAwB,uBAAuB;E/D8nOjD;E+D7nOE;IAAwB,sBAAsB;E/DgoOhD;AACF;;Ac7kOI;EiDtDA;IAAwB,sBAAsB;E/DwoOhD;E+DvoOE;IAAwB,uBAAuB;E/D0oOjD;E+DzoOE;IAAwB,sBAAsB;E/D4oOhD;AACF;;AczlOI;EiDtDA;IAAwB,sBAAsB;E/DopOhD;E+DnpOE;IAAwB,uBAAuB;E/DspOjD;E+DrpOE;IAAwB,sBAAsB;E/DwpOhD;AACF;;AcrmOI;EiDtDA;IAAwB,sBAAsB;E/DgqOhD;E+D/pOE;IAAwB,uBAAuB;E/DkqOjD;E+DjqOE;IAAwB,sBAAsB;E/DoqOhD;AACF;;AgE1qOE;EAAsB,yBAA2B;AhE8qOnD;;AgE9qOE;EAAsB,2BAA2B;AhEkrOnD;;AiEjrOE;EAAyB,2BAA8B;AjEqrOzD;;AiErrOE;EAAyB,6BAA8B;AjEyrOzD;;AiEzrOE;EAAyB,6BAA8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iCAAwC;AvEu/OlD;;AuEr/OQ;;EAEE,kCAA0C;AvEw/OpD;;AuEt/OQ;;EAEE,gCAAsC;AvEy/OhD;;AuExgPQ;EAAgC,0BAA4B;AvE4gPpE;;AuE3gPQ;;EAEE,8BAAoC;AvE8gP9C;;AuE5gPQ;;EAEE,gCAAwC;AvE+gPlD;;AuE7gPQ;;EAEE,iCAA0C;AvEghPpD;;AuE9gPQ;;EAEE,+BAAsC;AvEihPhD;;AuEhiPQ;EAAgC,wBAA4B;AvEoiPpE;;AuEniPQ;;EAEE,4BAAoC;AvEsiP9C;;AuEpiPQ;;EAEE,8BAAwC;AvEuiPlD;;AuEriPQ;;EAEE,+BAA0C;AvEwiPpD;;AuEtiPQ;;EAEE,6BAAsC;AvEyiPhD;;AuExjPQ;EAAgC,0BAA4B;AvE4jPpE;;AuE3jPQ;;EAEE,8BAAoC;AvE8jP9C;;AuE5jPQ;;EAEE,gCAAwC;AvE+jPlD;;AuE7jPQ;;EAEE,iCAA0C;AvEgkPpD;;AuE9jPQ;;EAEE,+BAAsC;AvEikPhD;;AuEhlPQ;EAAgC,wBAA4B;AvEolPpE;;AuEnlPQ;;EAEE,4BAAoC;AvEslP9C;;AuEplPQ;;EAEE,8BAAwC;AvEulPlD;;AuErlPQ;;EAEE,+BAA0C;AvEwlPpD;;AuEtlPQ;;EAEE,6BAAsC;AvEylPhD;;AuEjlPQ;EAAwB,2BAA2B;AvEqlP3D;;AuEplPQ;;EAEE,+BAA+B;AvEulPzC;;AuErlPQ;;EAEE,iCAAiC;AvEwlP3C;;AuEtlPQ;;EAEE,kCAAkC;AvEylP5C;;AuEvlPQ;;EAEE,gCAAgC;AvE0lP1C;;AuEzmPQ;EAAwB,0BAA2B;AvE6mP3D;;AuE5mPQ;;EAEE,8BAA+B;AvE+mPzC;;AuE7mPQ;;EAEE,gCAAiC;AvEgnP3C;;AuE9mPQ;;EAEE,iCAAkC;AvEinP5C;;AuE/mPQ;;EAEE,+BAAgC;AvEknP1C;;AuEjoPQ;EAAwB,wBAA2B;AvEqoP3D;;AuEpoPQ;;EAEE,4BAA+B;AvEuoPzC;;AuEroPQ;;EAEE,8BAAiC;AvEwoP3C;;AuEtoPQ;;EAEE,+BAAkC;AvEyoP5C;;AuEvoPQ;;EAEE,6BAAgC;AvE0oP1C;;AuEzpPQ;EAAwB,0BAA2B;AvE6pP3D;;AuE5pPQ;;EAEE,8BAA+B;AvE+pPzC;;AuE7pPQ;;EAEE,gCAAiC;AvEgqP3C;;AuE9pPQ;;EAEE,iCAAkC;AvEiqP5C;;AuE/pPQ;;EAEE,+BAAgC;AvEkqP1C;;AuEjrPQ;EAAwB,wBAA2B;AvEqrP3D;;AuEprPQ;;EAEE,4BAA+B;AvEurPzC;;AuErrPQ;;EAEE,8BAAiC;AvEwrP3C;;AuEtrPQ;;EAEE,+BAAkC;AvEyrP5C;;AuEvrPQ;;EAEE,6BAAgC;AvE0rP1C;;AuEprPI;EAAmB,uBAAuB;AvEwrP9C;;AuEvrPI;;EAEE,2BAA2B;AvE0rPjC;;AuExrPI;;EAEE,6BAA6B;AvE2rPnC;;AuEzrPI;;EAEE,8BAA8B;AvE4rPpC;;AuE1rPI;;EAEE,4BAA4B;AvE6rPlC;;ActsPI;EyDlDI;IAAgC,oBAA4B;EvE6vPlE;EuE5vPM;;IAEE,wBAAoC;EvE8vP5C;EuE5vPM;;IAEE,0BAAwC;EvE8vPhD;EuE5vPM;;IAEE,2BAA0C;EvE8vPlD;EuE5vPM;;IAEE,yBAAsC;EvE8vP9C;EuE7wPM;IAAgC,0BAA4B;EvEgxPlE;EuE/wPM;;IAEE,8BAAoC;EvEixP5C;EuE/wPM;;IAEE,gCAAwC;EvEixPhD;EuE/wPM;;IAEE,iCAA0C;EvEixPlD;EuE/wPM;;IAEE,+BAAsC;EvEixP9C;EuEhyPM;IAAgC,yBAA4B;EvEmyPlE;EuElyPM;;IAEE,6BAAoC;EvEoyP5C;EuElyPM;;IAEE,+BAAwC;EvEoyPhD;EuElyPM;;IAEE,gCAA0C;EvEoyPlD;EuElyPM;;IAEE,8BAAsC;EvEoyP9C;EuEnzPM;IAAgC,uBAA4B;EvEszPlE;EuErzPM;;IAEE,2BAAoC;EvEuzP5C;EuErzPM;;IAEE,6BAAwC;EvEuzPhD;EuErzPM;;IAEE,8BAA0C;EvEuzPlD;EuErzPM;;IAEE,4BAAsC;EvEuzP9C;EuEt0PM;IAAgC,yBAA4B;EvEy0PlE;EuEx0PM;;IAEE,6BAAoC;EvE00P5C;EuEx0PM;;IAEE,+BAAwC;EvE00PhD;EuEx0PM;;IAEE,gCAA0C;EvE00PlD;EuEx0PM;;IAEE,8BAAsC;EvE00P9C;EuEz1PM;IAAgC,uBAA4B;EvE41PlE;EuE31PM;;IAEE,2BAAoC;EvE61P5C;EuE31PM;;IAEE,6BAAwC;EvE61PhD;EuE31PM;;IAEE,8BAA0C;EvE61PlD;EuE31PM;;IAEE,4BAAsC;EvE61P9C;EuE52PM;IAAgC,qBAA4B;EvE+2PlE;EuE92PM;;IAEE,yBAAoC;EvEg3P5C;EuE92PM;;IAEE,2BAAwC;EvEg3PhD;EuE92PM;;IAEE,4BAA0C;EvEg3PlD;EuE92PM;;IAEE,0BAAsC;EvEg3P9C;EuE/3PM;IAAgC,2BAA4B;EvEk4PlE;EuEj4PM;;IAEE,+BAAoC;EvEm4P5C;EuEj4PM;;IAEE,iCAAwC;EvEm4PhD;EuEj4PM;;IAEE,kCAA0C;EvEm4PlD;EuEj4PM;;IAEE,gCAAsC;EvEm4P9C;EuEl5PM;IAAgC,0BAA4B;EvEq5PlE;EuEp5PM;;IAEE,8BAAoC;EvEs5P5C;EuEp5PM;;IAEE,gCAAwC;EvEs5PhD;EuEp5PM;;IAEE,iCAA0C;EvEs5PlD;EuEp5PM;;IAEE,+BAAsC;EvEs5P9C;EuEr6PM;IAAgC,wBAA4B;EvEw6PlE;EuEv6PM;;IAEE,4BAAoC;EvEy6P5C;EuEv6PM;;IAEE,8BAAwC;EvEy6PhD;EuEv6PM;;IAEE,+BAA0C;EvEy6PlD;EuEv6PM;;IAEE,6BAAsC;EvEy6P9C;EuEx7PM;IAAgC,0BAA4B;EvE27PlE;EuE17PM;;IAEE,8BAAoC;EvE47P5C;EuE17PM;;IAEE,gCAAwC;EvE47PhD;EuE17PM;;IAEE,iCAA0C;EvE47PlD;EuE17PM;;IAEE,+BAAsC;EvE47P9C;EuE38PM;IAAgC,wBAA4B;EvE88PlE;EuE78PM;;IAEE,4BAAoC;EvE+8P5C;EuE78PM;;IAEE,8BAAwC;EvE+8PhD;EuE78PM;;IAEE,+BAA0C;EvE+8PlD;EuE78PM;;IAEE,6BAAsC;EvE+8P9C;EuEv8PM;IAAwB,2BAA2B;EvE08PzD;EuEz8PM;;IAEE,+BAA+B;EvE28PvC;EuEz8PM;;IAEE,iCAAiC;EvE28PzC;EuEz8PM;;IAEE,kCAAkC;EvE28P1C;EuEz8PM;;IAEE,gCAAgC;EvE28PxC;EuE19PM;IAAwB,0BAA2B;EvE69PzD;EuE59PM;;IAEE,8BAA+B;EvE89PvC;EuE59PM;;IAEE,gCAAiC;EvE89PzC;EuE59PM;;IAEE,iCAAkC;EvE89P1C;EuE59PM;;IAEE,+BAAgC;EvE89PxC;EuE7+PM;IAAwB,wBAA2B;EvEg/PzD;EuE/+PM;;IAEE,4BAA+B;EvEi/PvC;EuE/+PM;;IAEE,8BAAiC;EvEi/PzC;EuE/+PM;;IAEE,+BAAkC;EvEi/P1C;EuE/+PM;;IAEE,6BAAgC;EvEi/PxC;EuEhgQM;IAAwB,0BAA2B;EvEmgQzD;EuElgQM;;IAEE,8BAA+B;EvEogQvC;EuElgQM;;IAEE,gCAAiC;EvEogQzC;EuElgQM;;IAEE,iCAAkC;EvEogQ1C;EuElgQM;;IAEE,+BAAgC;EvEogQxC;EuEnhQM;IAAwB,wBAA2B;EvEshQzD;EuErhQM;;IAEE,4BAA+B;EvEuhQvC;EuErhQM;;IAEE,8BAAiC;EvEuhQzC;EuErhQM;;IAEE,+BAAkC;EvEuhQ1C;EuErhQM;;IAEE,6BAAgC;EvEuhQxC;EuEjhQE;IAAmB,uBAAuB;EvEohQ5C;EuEnhQE;;IAEE,2BAA2B;EvEqhQ/B;EuEnhQE;;IAEE,6BAA6B;EvEqhQjC;EuEnhQE;;IAEE,8BAA8B;EvEqhQlC;EuEnhQE;;IAEE,4BAA4B;EvEqhQhC;AACF;;Ac/hQI;EyDlDI;IAAgC,oBAA4B;EvEslQlE;EuErlQM;;IAEE,wBAAoC;EvEulQ5C;EuErlQM;;IAEE,0BAAwC;EvEulQhD;EuErlQM;;IAEE,2BAA0C;EvEulQlD;EuErlQM;;IAEE,yBAAsC;EvEulQ9C;EuEtmQM;IAAgC,0BAA4B;EvEymQlE;EuExmQM;;IAEE,8BAAoC;EvE0mQ5C;EuExmQM;;IAEE,gCAAwC;EvE0mQhD;EuExmQM;;IAEE,iCAA0C;EvE0mQlD;EuExmQM;;IAEE,+BAAsC;EvE0mQ9C;EuEznQM;IAAgC,yBAA4B;EvE4nQlE;EuE3nQM;;IAEE,6BAAoC;EvE6nQ5C;EuE3nQM;;IAEE,+BAAwC;EvE6nQhD;EuE3nQM;;IAEE,gCAA0C;EvE6nQlD;EuE3nQM;;IAEE,8BAAsC;EvE6nQ9C;EuE5oQM;IAAgC,uBAA4B;EvE+oQlE;EuE9oQM;;IAEE,2BAAoC;EvEgpQ5C;EuE9oQM;;IAEE,6BAAwC;EvEgpQhD;EuE9oQM;;IAEE,8BAA0C;EvEgpQlD;EuE9oQM;;IAEE,4BAAsC;EvEgpQ9C;EuE/pQM;IAAgC,yBAA4B;EvEkqQlE;EuEjqQM;;IAEE,6BAAoC;EvEmqQ5C;EuEjqQM;;IAEE,+BAAwC;EvEmqQhD;EuEjqQM;;IAEE,gCAA0C;EvEmqQlD;EuEjqQM;;IAEE,8BAAsC;EvEmqQ9C;EuElrQM;IAAgC,uBAA4B;EvEqrQlE;EuEprQM;;IAEE,2BAAoC;EvEsrQ5C;EuEprQM;;IAEE,6BAAwC;EvEsrQhD;EuEprQM;;IAEE,8BAA0C;EvEsrQlD;EuEprQM;;IAEE,4BAAsC;EvEsrQ9C;EuErsQM;IAAgC,qBAA4B;EvEwsQlE;EuEvsQM;;IAEE,yBAAoC;EvEysQ5C;EuEvsQM;;IAEE,2BAAwC;EvEysQhD;EuEvsQM;;IAEE,4BAA0C;EvEysQlD;EuEvsQM;;IAEE,0BAAsC;EvEysQ9C;EuExtQM;IAAgC,2BAA4B;EvE2tQlE;EuE1tQM;;IAEE,+BAAoC;EvE4tQ5C;EuE1tQM;;IAEE,iCAAwC;EvE4tQhD;EuE1tQM;;IAEE,kCAA0C;EvE4tQlD;EuE1tQM;;IAEE,gCAAsC;EvE4tQ9C;EuE3uQM;IAAgC,0BAA4B;EvE8uQlE;EuE7uQM;;IAEE,8BAAoC;EvE+uQ5C;EuE7uQM;;IAEE,gCAAwC;EvE+uQhD;EuE7uQM;;IAEE,iCAA0C;EvE+uQlD;EuE7uQM;;IAEE,+BAAsC;EvE+uQ9C;EuE9vQM;IAAgC,wBAA4B;EvEiwQlE;EuEhwQM;;IAEE,4BAAoC;EvEkwQ5C;EuEhwQM;;IAEE,8BAAwC;EvEkwQhD;EuEhwQM;;IAEE,+BAA0C;EvEkwQlD;EuEhwQM;;IAEE,6BAAsC;EvEkwQ9C;EuEjxQM;IAAgC,0BAA4B;EvEoxQlE;EuEnxQM;;IAEE,8BAAoC;EvEqxQ5C;EuEnxQM;;IAEE,gCAAwC;EvEqxQhD;EuEnxQM;;IAEE,iCAA0C;EvEqxQlD;EuEnxQM;;IAEE,+BAAsC;EvEqxQ9C;EuEpyQM;IAAgC,wBAA4B;EvEuyQlE;EuEtyQM;;IAEE,4BAAoC;EvEwyQ5C;EuEtyQM;;IAEE,8BAAwC;EvEwyQhD;EuEtyQM;;IAEE,+BAA0C;EvEwyQlD;EuEtyQM;;IAEE,6BAAsC;EvEwyQ9C;EuEhyQM;IAAwB,2BAA2B;EvEmyQzD;EuElyQM;;IAEE,+BAA+B;EvEoyQvC;EuElyQM;;IAEE,iCAAiC;EvEoyQzC;EuElyQM;;IAEE,kCAAkC;EvEoyQ1C;EuElyQM;;IAEE,gCAAgC;EvEoyQxC;EuEnzQM;IAAwB,0BAA2B;EvEszQzD;EuErzQM;;IAEE,8BAA+B;EvEuzQvC;EuErzQM;;IAEE,gCAAiC;EvEuzQzC;EuErzQM;;IAEE,iCAAkC;EvEuzQ1C;EuErzQM;;IAEE,+BAAgC;EvEuzQxC;EuEt0QM;IAAwB,wBAA2B;EvEy0QzD;EuEx0QM;;IAEE,4BAA+B;EvE00QvC;EuEx0QM;;IAEE,8BAAiC;EvE00QzC;EuEx0QM;;IAEE,+BAAkC;EvE00Q1C;EuEx0QM;;IAEE,6BAAgC;EvE00QxC;EuEz1QM;IAAwB,0BAA2B;EvE41QzD;EuE31QM;;IAEE,8BAA+B;EvE61QvC;EuE31QM;;IAEE,gCAAiC;EvE61QzC;EuE31QM;;IAEE,iCAAkC;EvE61Q1C;EuE31QM;;IAEE,+BAAgC;EvE61QxC;EuE52QM;IAAwB,wBAA2B;EvE+2QzD;EuE92QM;;IAEE,4BAA+B;EvEg3QvC;EuE92QM;;IAEE,8BAAiC;EvEg3QzC;EuE92QM;;IAEE,+BAAkC;EvEg3Q1C;EuE92QM;;IAEE,6BAAgC;EvEg3QxC;EuE12QE;IAAmB,uBAAuB;EvE62Q5C;EuE52QE;;IAEE,2BAA2B;EvE82Q/B;EuE52QE;;IAEE,6BAA6B;EvE82QjC;EuE52QE;;IAEE,8BAA8B;EvE82QlC;EuE52QE;;IAEE,4BAA4B;EvE82QhC;AACF;;Acx3QI;EyDlDI;IAAgC,oBAA4B;EvE+6QlE;EuE96QM;;IAEE,wBAAoC;EvEg7Q5C;EuE96QM;;IAEE,0BAAwC;EvEg7QhD;EuE96QM;;IAEE,2BAA0C;EvEg7QlD;EuE96QM;;IAEE,yBAAsC;EvEg7Q9C;EuE/7QM;IAAgC,0BAA4B;EvEk8QlE;EuEj8QM;;IAEE,8BAAoC;EvEm8Q5C;EuEj8QM;;IAEE,gCAAwC;EvEm8QhD;EuEj8QM;;IAEE,iCAA0C;EvEm8QlD;EuEj8QM;;IAEE,+BAAsC;EvEm8Q9C;EuEl9QM;IAAgC,yBAA4B;EvEq9QlE;EuEp9QM;;IAEE,6BAAoC;EvEs9Q5C;EuEp9QM;;IAEE,+BAAwC;EvEs9QhD;EuEp9QM;;IAEE,gCAA0C;EvEs9QlD;EuEp9QM;;IAEE,8BAAsC;EvEs9Q9C;EuEr+QM;IAAgC,uBAA4B;EvEw+QlE;EuEv+QM;;IAEE,2BAAoC;EvEy+Q5C;EuEv+QM;;IAEE,6BAAwC;EvEy+QhD;EuEv+QM;;IAEE,8BAA0C;EvEy+QlD;EuEv+QM;;IAEE,4BAAsC;EvEy+Q9C;EuEx/QM;IAAgC,yBAA4B;EvE2/QlE;EuE1/QM;;IAEE,6BAAoC;EvE4/Q5C;EuE1/QM;;IAEE,+BAAwC;EvE4/QhD;EuE1/QM;;IAEE,gCAA0C;EvE4/QlD;EuE1/QM;;IAEE,8BAAsC;EvE4/Q9C;EuE3gRM;IAAgC,uBAA4B;EvE8gRlE;EuE7gRM;;IAEE,2BAAoC;EvE+gR5C;EuE7gRM;;IAEE,6BAAwC;EvE+gRhD;EuE7gRM;;IAEE,8BAA0C;EvE+gRlD;EuE7gRM;;IAEE,4BAAsC;EvE+gR9C;EuE9hRM;IAAgC,qBAA4B;EvEiiRlE;EuEhiRM;;IAEE,yBAAoC;EvEkiR5C;EuEhiRM;;IAEE,2BAAwC;EvEkiRhD;EuEhiRM;;IAEE,4BAA0C;EvEkiRlD;EuEhiRM;;IAEE,0BAAsC;EvEkiR9C;EuEjjRM;IAAgC,2BAA4B;EvEojRlE;EuEnjRM;;IAEE,+BAAoC;EvEqjR5C;EuEnjRM;;IAEE,iCAAwC;EvEqjRhD;EuEnjRM;;IAEE,kCAA0C;EvEqjRlD;EuEnjRM;;IAEE,gCAAsC;EvEqjR9C;EuEpkRM;IAAgC,0BAA4B;EvEukRlE;EuEtkRM;;IAEE,8BAAoC;EvEwkR5C;EuEtkRM;;IAEE,gCAAwC;EvEwkRhD;EuEtkRM;;IAEE,iCAA0C;EvEwkRlD;EuEtkRM;;IAEE,+BAAsC;EvEwkR9C;EuEvlRM;IAAgC,wBAA4B;EvE0lRlE;EuEzlRM;;IAEE,4BAAoC;EvE2lR5C;EuEzlRM;;IAEE,8BAAwC;EvE2lRhD;EuEzlRM;;IAEE,+BAA0C;EvE2lRlD;EuEzlRM;;IAEE,6BAAsC;EvE2lR9C;EuE1mRM;IAAgC,0BAA4B;EvE6mRlE;EuE5mRM;;IAEE,8BAAoC;EvE8mR5C;EuE5mRM;;IAEE,gCAAwC;EvE8mRhD;EuE5mRM;;IAEE,iCAA0C;EvE8mRlD;EuE5mRM;;IAEE,+BAAsC;EvE8mR9C;EuE7nRM;IAAgC,wBAA4B;EvEgoRlE;EuE/nRM;;IAEE,4BAAoC;EvEioR5C;EuE/nRM;;IAEE,8BAAwC;EvEioRhD;EuE/nRM;;IAEE,+BAA0C;EvEioRlD;EuE/nRM;;IAEE,6BAAsC;EvEioR9C;EuEznRM;IAAwB,2BAA2B;EvE4nRzD;EuE3nRM;;IAEE,+BAA+B;EvE6nRvC;EuE3nRM;;IAEE,iCAAiC;EvE6nRzC;EuE3nRM;;IAEE,kCAAkC;EvE6nR1C;EuE3nRM;;IAEE,gCAAgC;EvE6nRxC;EuE5oRM;IAAwB,0BAA2B;EvE+oRzD;EuE9oRM;;IAEE,8BAA+B;EvEgpRvC;EuE9oRM;;IAEE,gCAAiC;EvEgpRzC;EuE9oRM;;IAEE,iCAAkC;EvEgpR1C;EuE9oRM;;IAEE,+BAAgC;EvEgpRxC;EuE/pRM;IAAwB,wBAA2B;EvEkqRzD;EuEjqRM;;IAEE,4BAA+B;EvEmqRvC;EuEjqRM;;IAEE,8BAAiC;EvEmqRzC;EuEjqRM;;IAEE,+BAAkC;EvEmqR1C;EuEjqRM;;IAEE,6BAAgC;EvEmqRxC;EuElrRM;IAAwB,0BAA2B;EvEqrRzD;EuEprRM;;IAEE,8BAA+B;EvEsrRvC;EuEprRM;;IAEE,gCAAiC;EvEsrRzC;EuEprRM;;IAEE,iCAAkC;EvEsrR1C;EuEprRM;;IAEE,+BAAgC;EvEsrRxC;EuErsRM;IAAwB,wBAA2B;EvEwsRzD;EuEvsRM;;IAEE,4BAA+B;EvEysRvC;EuEvsRM;;IAEE,8BAAiC;EvEysRzC;EuEvsRM;;IAEE,+BAAkC;EvEysR1C;EuEvsRM;;IAEE,6BAAgC;EvEysRxC;EuEnsRE;IAAmB,uBAAuB;EvEssR5C;EuErsRE;;IAEE,2BAA2B;EvEusR/B;EuErsRE;;IAEE,6BAA6B;EvEusRjC;EuErsRE;;IAEE,8BAA8B;EvEusRlC;EuErsRE;;IAEE,4BAA4B;EvEusRhC;AACF;;AcjtRI;EyDlDI;IAAgC,oBAA4B;EvEwwRlE;EuEvwRM;;IAEE,wBAAoC;EvEywR5C;EuEvwRM;;IAEE,0BAAwC;EvEywRhD;EuEvwRM;;IAEE,2BAA0C;EvEywRlD;EuEvwRM;;IAEE,yBAAsC;EvEywR9C;EuExxRM;IAAgC,0BAA4B;EvE2xRlE;EuE1xRM;;IAEE,8BAAoC;EvE4xR5C;EuE1xRM;;IAEE,gCAAwC;EvE4xRhD;EuE1xRM;;IAEE,iCAA0C;EvE4xRlD;EuE1xRM;;IAEE,+BAAsC;EvE4xR9C;EuE3yRM;IAAgC,yBAA4B;EvE8yRlE;EuE7yRM;;IAEE,6BAAoC;EvE+yR5C;EuE7yRM;;IAEE,+BAAwC;EvE+yRhD;EuE7yRM;;IAEE,gCAA0C;EvE+yRlD;EuE7yRM;;IAEE,8BAAsC;EvE+yR9C;EuE9zRM;IAAgC,uBAA4B;EvEi0RlE;EuEh0RM;;IAEE,2BAAoC;EvEk0R5C;EuEh0RM;;IAEE,6BAAwC;EvEk0RhD;EuEh0RM;;IAEE,8BAA0C;EvEk0RlD;EuEh0RM;;IAEE,4BAAsC;EvEk0R9C;EuEj1RM;IAAgC,yBAA4B;EvEo1RlE;EuEn1RM;;IAEE,6BAAoC;EvEq1R5C;EuEn1RM;;IAEE,+BAAwC;EvEq1RhD;EuEn1RM;;IAEE,gCAA0C;EvEq1RlD;EuEn1RM;;IAEE,8BAAsC;EvEq1R9C;EuEp2RM;IAAgC,uBAA4B;EvEu2RlE;EuEt2RM;;IAEE,2BAAoC;EvEw2R5C;EuEt2RM;;IAEE,6BAAwC;EvEw2RhD;EuEt2RM;;IAEE,8BAA0C;EvEw2RlD;EuEt2RM;;IAEE,4BAAsC;EvEw2R9C;EuEv3RM;IAAgC,qBAA4B;EvE03RlE;EuEz3RM;;IAEE,yBAAoC;EvE23R5C;EuEz3RM;;IAEE,2BAAwC;EvE23RhD;EuEz3RM;;IAEE,4BAA0C;EvE23RlD;EuEz3RM;;IAEE,0BAAsC;EvE23R9C;EuE14RM;IAAgC,2BAA4B;EvE64RlE;EuE54RM;;IAEE,+BAAoC;EvE84R5C;EuE54RM;;IAEE,iCAAwC;EvE84RhD;EuE54RM;;IAEE,kCAA0C;EvE84RlD;EuE54RM;;IAEE,gCAAsC;EvE84R9C;EuE75RM;IAAgC,0BAA4B;EvEg6RlE;EuE/5RM;;IAEE,8BAAoC;EvEi6R5C;EuE/5RM;;IAEE,gCAAwC;EvEi6RhD;EuE/5RM;;IAEE,iCAA0C;EvEi6RlD;EuE/5RM;;IAEE,+BAAsC;EvEi6R9C;EuEh7RM;IAAgC,wBAA4B;EvEm7RlE;EuEl7RM;;IAEE,4BAAoC;EvEo7R5C;EuEl7RM;;IAEE,8BAAwC;EvEo7RhD;EuEl7RM;;IAEE,+BAA0C;EvEo7RlD;EuEl7RM;;IAEE,6BAAsC;EvEo7R9C;EuEn8RM;IAAgC,0BAA4B;EvEs8RlE;EuEr8RM;;IAEE,8BAAoC;EvEu8R5C;EuEr8RM;;IAEE,gCAAwC;EvEu8RhD;EuEr8RM;;IAEE,iCAA0C;EvEu8RlD;EuEr8RM;;IAEE,+BAAsC;EvEu8R9C;EuEt9RM;IAAgC,wBAA4B;EvEy9RlE;EuEx9RM;;IAEE,4BAAoC;EvE09R5C;EuEx9RM;;IAEE,8BAAwC;EvE09RhD;EuEx9RM;;IAEE,+BAA0C;EvE09RlD;EuEx9RM;;IAEE,6BAAsC;EvE09R9C;EuEl9RM;IAAwB,2BAA2B;EvEq9RzD;EuEp9RM;;IAEE,+BAA+B;EvEs9RvC;EuEp9RM;;IAEE,iCAAiC;EvEs9RzC;EuEp9RM;;IAEE,kCAAkC;EvEs9R1C;EuEp9RM;;IAEE,gCAAgC;EvEs9RxC;EuEr+RM;IAAwB,0BAA2B;EvEw+RzD;EuEv+RM;;IAEE,8BAA+B;EvEy+RvC;EuEv+RM;;IAEE,gCAAiC;EvEy+RzC;EuEv+RM;;IAEE,iCAAkC;EvEy+R1C;EuEv+RM;;IAEE,+BAAgC;EvEy+RxC;EuEx/RM;IAAwB,wBAA2B;EvE2/RzD;EuE1/RM;;IAEE,4BAA+B;EvE4/RvC;EuE1/RM;;IAEE,8BAAiC;EvE4/RzC;EuE1/RM;;IAEE,+BAAkC;EvE4/R1C;EuE1/RM;;IAEE,6BAAgC;EvE4/RxC;EuE3gSM;IAAwB,0BAA2B;EvE8gSzD;EuE7gSM;;IAEE,8BAA+B;EvE+gSvC;EuE7gSM;;IAEE,gCAAiC;EvE+gSzC;EuE7gSM;;IAEE,iCAAkC;EvE+gS1C;EuE7gSM;;IAEE,+BAAgC;EvE+gSxC;EuE9hSM;IAAwB,wBAA2B;EvEiiSzD;EuEhiSM;;IAEE,4BAA+B;EvEkiSvC;EuEhiSM;;IAEE,8BAAiC;EvEkiSzC;EuEhiSM;;IAEE,+BAAkC;EvEkiS1C;EuEhiSM;;IAEE,6BAAgC;EvEkiSxC;EuE5hSE;IAAmB,uBAAuB;EvE+hS5C;EuE9hSE;;IAEE,2BAA2B;EvEgiS/B;EuE9hSE;;IAEE,6BAA6B;EvEgiSjC;EuE9hSE;;IAEE,8BAA8B;EvEgiSlC;EuE9hSE;;IAEE,4BAA4B;EvEgiShC;AACF;;AwEhmSA;EAAkB,4GAA8C;AxEomShE;;AwEhmSA;EAAiB,8BAA8B;AxEomS/C;;AwEnmSA;EAAiB,8BAA8B;AxEumS/C;;AwEtmSA;EAAiB,8BAA8B;AxE0mS/C;;AwEzmSA;ECTE,gBAAgB;EAChB,uBAAuB;EACvB,mBAAmB;AzEsnSrB;;AwEvmSI;EAAwB,2BAA2B;AxE2mSvD;;AwE1mSI;EAAwB,4BAA4B;AxE8mSxD;;AwE7mSI;EAAwB,6BAA6B;AxEinSzD;;Ac5kSI;E0DvCA;IAAwB,2BAA2B;ExEwnSrD;EwEvnSE;IAAwB,4BAA4B;ExE0nStD;EwEznSE;IAAwB,6BAA6B;ExE4nSvD;AACF;;AcxlSI;E0DvCA;IAAwB,2BAA2B;ExEooSrD;EwEnoSE;IAAwB,4BAA4B;ExEsoStD;EwEroSE;IAAwB,6BAA6B;ExEwoSvD;AACF;;AcpmSI;E0DvCA;IAAwB,2BAA2B;ExEgpSrD;EwE/oSE;IAAwB,4BAA4B;ExEkpStD;EwEjpSE;IAAwB,6BAA6B;ExEopSvD;AACF;;AchnSI;E0DvCA;IAAwB,2BAA2B;ExE4pSrD;EwE3pSE;IAAwB,4BAA4B;ExE8pStD;EwE7pSE;IAAwB,6BAA6B;ExEgqSvD;AACF;;AwE3pSA;EAAmB,oCAAoC;AxE+pSvD;;AwE9pSA;EAAmB,oCAAoC;AxEkqSvD;;AwEjqSA;EAAmB,qCAAqC;AxEqqSxD;;AwEjqSA;EAAuB,2BAA0C;AxEqqSjE;;AwEpqSA;EAAuB,+BAA4C;AxEwqSnE;;AwEvqSA;EAAuB,2BAA2C;AxE2qSlE;;AwE1qSA;EAAuB,2BAAyC;AxE8qShE;;AwE7qSA;EAAuB,8BAA2C;AxEirSlE;;AwEhrSA;EAAuB,6BAA6B;AxEorSpD;;AwEhrSA;EAAc,sBAAwB;AxEorStC;;A0E3tSE;EACE,yBAAwB;A1E8tS5B;;AKptSE;EqELM,yBAA0E;A1E6tSlF;;A0EnuSE;EACE,yBAAwB;A1EsuS5B;;AK5tSE;EqELM,yBAA0E;A1EquSlF;;A0E3uSE;EACE,yBAAwB;A1E8uS5B;;AKpuSE;EqELM,yBAA0E;A1E6uSlF;;A0EnvSE;EACE,yBAAwB;A1EsvS5B;;AK5uSE;EqELM,yBAA0E;A1EqvSlF;;A0E3vSE;EACE,yBAAwB;A1E8vS5B;;AKpvSE;EqELM,yBAA0E;A1E6vSlF;;A0EnwSE;EACE,yBAAwB;A1EswS5B;;AK5vSE;EqELM,yBAA0E;A1EqwSlF;;A0E3wSE;EACE,yBAAwB;A1E8wS5B;;AKpwSE;EqELM,yBAA0E;A1E6wSlF;;A0EnxSE;EACE,yBAAwB;A1EsxS5B;;AK5wSE;EqELM,yBAA0E;A1EqxSlF;;AwE9uSA;EAAa,yBAA6B;AxEkvS1C;;AwEjvSA;EAAc,yBAA6B;AxEqvS3C;;AwEnvSA;EAAiB,oCAAkC;AxEuvSnD;;AwEtvSA;EAAiB,0CAAkC;AxE0vSnD;;AwEtvSA;EGvDE,WAAW;EACX,kBAAkB;EAClB,iBAAiB;EACjB,6BAA6B;EAC7B,SAAS;A3EizSX;;AwE1vSA;EAAwB,gCAAgC;AxE8vSxD;;AwE5vSA;EACE,iCAAiC;EACjC,oCAAoC;AxE+vStC;;AwE1vSA;EAAc,yBAAyB;AxE8vSvC;;A4E/zSA;EACE,8BAA8B;A5Ek0ShC;;A4E/zSA;EACE,6BAA6B;A5Ek0S/B;;A6El0SE;E3EOF;;;I2EDM,4BAA4B;IAE5B,2BAA2B;E7Ek0S/B;E6E/zSE;IAEI,0BAA0B;E7Eg0ShC;E6EvzSE;IACE,6BAA6B;E7EyzSjC;EE3nSF;I2E/KM,gCAAgC;E7E6ySpC;E6E3ySE;;IAEE,yB1EzCY;I0E0CZ,wBAAwB;E7E6yS5B;E6ErySE;IACE,2BAA2B;E7EuyS/B;E6EpySE;;IAEE,wBAAwB;E7EsyS5B;E6EnySE;;;IAGE,UAAU;IACV,SAAS;E7EqySb;E6ElySE;;IAEE,uBAAuB;E7EoyS3B;E6E5xSE;IACE,Q1E4hCgC;EHkwQpC;EE10SF;I2E+CM,2BAA2C;E7E8xS/C;EYp3SA;IiEyFI,2BAA2C;E7E8xS/C;EiC52SF;I4CmFM,aAAa;E7E4xSjB;EsC33SF;IuCkGM,sB1EtFS;EHk3Sb;EgB/3SF;I6DuGM,oCAAoC;E7E2xSxC;E6E5xSE;;IAKI,iCAAmC;E7E2xSzC;EgB91SF;;I6D0EQ,oCAAsC;E7EwxS5C;EgB7wSF;I6DNM,cAAc;E7EsxSlB;EiB54SA;;;;I4D4HM,qB1EvHU;EH64ShB;EgBxySF;I6DuBM,cAAc;IACd,qB1E7HY;EHi5ShB;AACF;;A8E55SA;;EAEE,iBAAiB;EACjB,cAAc;A9E+5ShB;;A8El6SA;;EAMI,gBAAgB;A9Ei6SpB;;A8Ev6SA;;EAUI,YAAY;A9Ek6ShB;;A8E56SA;;EAcI,qBAAqB;EACrB,iBAAiB;A9Em6SrB;;A8El7SA;;EAmBI,iBAAiB;A9Eo6SrB;;A8Ev7SA;;EAuBI,sBAAsB;EACtB,kBAAkB;A9Eq6StB;;A8E77SA;;EA4BI,QAAQ;EACR,aAAa;EACb,iBAAiB;A9Es6SrB;;A8Ep8SA;;EAkCI,sBAAsB;EACtB,qBAAqB;A9Eu6SzB;;A8E18SA;;;;EAwCI,oBAAoB;EACpB,kB3EsM6B;AHmuSjC;;A8El9SA;;EA6CI,kCAAgD;A9E06SpD;;A8Ev9SA;;;;EAkDI,kC3EgMgC;AH4uSpC;;A8E99SA;;EAsDI,kC3E4LgC;AHivSpC;;A8En+SA;;EA0DI,qBAAqB;EACrB,qBAAqB;EACrB,qBAAqB;EACrB,iBAAiB;A9E86SrB;;A8E3+SA;;EAiEI,QAAQ;EACR,aAAa;A9E+6SjB;;A8Ej/SA;;EAsEI,cAAc;EACd,UAAU;EACV,gCAAgC;A9Eg7SpC;;A8Ex/SA;;;;EA6EI,cAAc;EACd,aAAa;A9Ek7SjB;;A8EhgTA;;EAkFI,0CAAiJ;EACjJ,+MAAqG;EACrG,yB3EqfwC;AH87R5C;;A8EvgTA;;EAwFI,sBAA4D;EAC5D,qBAAqB;A9Eo7SzB;;A8E7gTA;;EA6FQ,eAAsD;A9Eq7S9D;;A8ElhTA;;EAiGQ,2BAAgH;A9Es7SxH;;A8EvhTA;;EAuGQ,+BAA8E;A9Eq7StF;;A8E5hTA;;;;;;;;;;;;EAkHI,kCAAgD;A9Ey7SpD;;A8E3iTA;;;;;;;;;;;;EA2HI,kC3EuHgC;AHw0SpC;;A8E1jTA;;;;EAgII,kC3EkHgC;AH+0SpC;;A8EjkTA;;;;EAqII,kCAAgD;A9Em8SpD;;A8ExkTA;;;;EA0II,gBAAgB;A9Eq8SpB;;A8E/kTA;;;;;;;;EAiJI,sBAAsB;EACtB,oBAAoB;A9Ey8SxB;;A8E3lTA;;EAuJM,qB3E44BmC;E2E34BnC,eAAe;EAOf,c3ElJY;E2EmJZ,Y3E04BuC;AHyjR7C;;A8EnmTA;;EA2JQ,gBAAgB;EAChB,oB3Eu4BiC;AHskRzC;;A8EzmTA;;EAqKI,gBAAgB;EAChB,kBAAkB;A9Ey8StB;;A8E/mTA;;EA0KI,WAAW;A9E08Sf;;A8EpnTA;;EA8KI,8BAA8B;A9E28SlC;;A8EznTA;;EAmLM,oBAAoB;A9E28S1B;;A8E9nTA;;EAuLM,mBAAmB;A9E48SzB;;A8EnoTA;;EA2LM,eAAe;A9E68SrB;;A8ExoTA;;EA+LM,cAAc;A9E88SpB;;A8E7oTA;;EAoMI,cAAc;EACd,OAAO;A9E88SX;;A8EnpTA;;EAyMI,oBAAoB;EACpB,cAAc;A9E+8SlB;;A8EzpTA;;EA8MI,sBAAsB;EACtB,oBAAoB;A9Eg9SxB;;A8E/pTA;;EAmNI,sBAAsB;EACtB,qBAAqB;A9Ei9SzB;;A8ErqTA;;;;;;EA0NI,gBAAgB;EAChB,qBAAqB;A9Eo9SzB;;A8E/qTA;;EpEqBI,gCP6NgC;EO5NhC,mCP4NgC;EO/MhC,yBoEgMmC;EpE/LnC,4BoE+LmC;A9Eo9SvC;;A8EvrTA;;EpEqBI,0BoEoNoC;EpEnNpC,6BoEmNoC;EpEtMpC,+BP+MgC;EO9MhC,kCP8MgC;AH68SpC;;A8E/rTA;;EAkPI,uBAA+C;EAC/C,cAAc;A9Ek9SlB;;A8ErsTA;;EAkPI,wBAA+C;EAC/C,cAAc;A9Ew9SlB;;A8E3sTA;;EAkPI,iBAA+C;EAC/C,cAAc;A9E89SlB;;A8EjtTA;;EAkPI,wBAA+C;EAC/C,cAAc;A9Eo+SlB;;A8EvtTA;;EAkPI,wBAA+C;EAC/C,cAAc;A9E0+SlB;;A8E7tTA;;EAkPI,iBAA+C;EAC/C,cAAc;A9Eg/SlB;;A8EnuTA;;EAkPI,wBAA+C;EAC/C,cAAc;A9Es/SlB;;A8EzuTA;;EAkPI,wBAA+C;EAC/C,cAAc;A9E4/SlB;;A8E/uTA;;EAkPI,iBAA+C;EAC/C,cAAc;A9EkgTlB;;A8ErvTA;;EAkPI,wBAA+C;EAC/C,cAAc;A9EwgTlB;;A8E3vTA;;EAkPI,wBAA+C;EAC/C,cAAc;A9E8gTlB;;AcrsTI;EgE5DJ;;IAkPI,eAA6B;IAC7B,cAAc;E9EqhThB;E8ExwTF;;IAkPI,uBAA+C;IAC/C,cAAc;E9E0hThB;E8E7wTF;;IAkPI,wBAA+C;IAC/C,cAAc;E9E+hThB;E8ElxTF;;IAkPI,iBAA+C;IAC/C,cAAc;E9EoiThB;E8EvxTF;;IAkPI,wBAA+C;IAC/C,cAAc;E9EyiThB;E8E5xTF;;IAkPI,wBAA+C;IAC/C,cAAc;E9E8iThB;E8EjyTF;;IAkPI,iBAA+C;IAC/C,cAAc;E9EmjThB;E8EtyTF;;IAkPI,wBAA+C;IAC/C,cAAc;E9EwjThB;E8E3yTF;;IAkPI,wBAA+C;IAC/C,cAAc;E9E6jThB;E8EhzTF;;IAkPI,iBAA+C;IAC/C,cAAc;E9EkkThB;E8ErzTF;;IAkPI,wBAA+C;IAC/C,cAAc;E9EukThB;E8E1zTF;;IAkPI,wBAA+C;IAC/C,cAAc;E9E4kThB;AACF;;AcpwTI;EgE5DJ;;IAkPI,eAA6B;IAC7B,cAAc;E9EolThB;E8Ev0TF;;IAkPI,uBAA+C;IAC/C,cAAc;E9EylThB;E8E50TF;;IAkPI,wBAA+C;IAC/C,cAAc;E9E8lThB;E8Ej1TF;;IAkPI,iBAA+C;IAC/C,cAAc;E9EmmThB;E8Et1TF;;IAkPI,wBAA+C;IAC/C,cAAc;E9EwmThB;E8E31TF;;IAkPI,wBAA+C;IAC/C,cAAc;E9E6mThB;E8Eh2TF;;IAkPI,iBAA+C;IAC/C,cAAc;E9EknThB;E8Er2TF;;IAkPI,wBAA+C;IAC/C,cAAc;E9EunThB;E8E12TF;;IAkPI,wBAA+C;IAC/C,cAAc;E9E4nThB;E8E/2TF;;IAkPI,iBAA+C;IAC/C,cAAc;E9EioThB;E8Ep3TF;;IAkPI,wBAA+C;IAC/C,cAAc;E9EsoThB;E8Ez3TF;;IAkPI,wBAA+C;IAC/C,cAAc;E9E2oThB;AACF;;Acn0TI;EgE5DJ;;IAkPI,eAA6B;IAC7B,cAAc;E9EmpThB;E8Et4TF;;IAkPI,uBAA+C;IAC/C,cAAc;E9EwpThB;E8E34TF;;IAkPI,wBAA+C;IAC/C,cAAc;E9E6pThB;E8Eh5TF;;IAkPI,iBAA+C;IAC/C,cAAc;E9EkqThB;E8Er5TF;;IAkPI,wBAA+C;IAC/C,cAAc;E9EuqThB;E8E15TF;;IAkPI,wBAA+C;IAC/C,cAAc;E9E4qThB;E8E/5TF;;IAkPI,iBAA+C;IAC/C,cAAc;E9EirThB;E8Ep6TF;;IAkPI,wBAA+C;IAC/C,cAAc;E9EsrThB;E8Ez6TF;;IAkPI,wBAA+C;IAC/C,cAAc;E9E2rThB;E8E96TF;;IAkPI,iBAA+C;IAC/C,cAAc;E9EgsThB;E8En7TF;;IAkPI,wBAA+C;IAC/C,cAAc;E9EqsThB;E8Ex7TF;;IAkPI,wBAA+C;IAC/C,cAAc;E9E0sThB;AACF;;Acl4TI;EgE5DJ;;IAkPI,eAA6B;IAC7B,cAAc;E9EktThB;E8Er8TF;;IAkPI,uBAA+C;IAC/C,cAAc;E9EutThB;E8E18TF;;IAkPI,wBAA+C;IAC/C,cAAc;E9E4tThB;E8E/8TF;;IAkPI,iBAA+C;IAC/C,cAAc;E9EiuThB;E8Ep9TF;;IAkPI,wBAA+C;IAC/C,cAAc;E9EsuThB;E8Ez9TF;;IAkPI,wBAA+C;IAC/C,cAAc;E9E2uThB;E8E99TF;;IAkPI,iBAA+C;IAC/C,cAAc;E9EgvThB;E8En+TF;;IAkPI,wBAA+C;IAC/C,cAAc;E9EqvThB;E8Ex+TF;;IAkPI,wBAA+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","file":"bootstrap-rtl.css","sourcesContent":["/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n\n @import \"functions\";\n @import \"variables\";\n @import \"mixins\";\n @import \"root\";\n @import \"reboot\";\n @import \"type\";\n @import \"images\";\n @import \"code\";\n @import \"grid\";\n @import \"tables\";\n @import \"forms\";\n @import \"buttons\";\n @import \"transitions\";\n @import \"dropdown\";\n @import \"button-group\";\n @import \"input-group\";\n @import \"custom-forms\";\n @import \"nav\";\n @import \"navbar\";\n @import \"card\";\n @import \"breadcrumb\";\n @import \"pagination\";\n @import \"badge\";\n @import \"jumbotron\";\n @import \"alert\";\n @import \"progress\";\n @import \"media\";\n @import \"list-group\";\n @import \"close\";\n @import \"toasts\";\n @import \"modal\";\n @import \"tooltip\";\n @import \"popover\";\n @import \"carousel\";\n @import \"spinners\";\n @import \"utilities\";\n @import \"print\";\n\n@import \"rtl\";\n","/*!\n * Bootstrap v4.4.1 (https://getbootstrap.com/)\n * Copyright 2011-2019 The Bootstrap Authors\n * Copyright 2011-2019 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n */\n:root {\n --blue: #007bff;\n --indigo: #6610f2;\n --purple: #6f42c1;\n --pink: #e83e8c;\n --red: #dc3545;\n --orange: #fd7e14;\n --yellow: #ffc107;\n --green: #28a745;\n --teal: #20c997;\n --cyan: #17a2b8;\n --white: #fff;\n --gray: #6c757d;\n --gray-dark: #343a40;\n --primary: #007bff;\n --secondary: #6c757d;\n --success: #28a745;\n --info: #17a2b8;\n --warning: #ffc107;\n --danger: #dc3545;\n --light: #f8f9fa;\n --dark: #343a40;\n --breakpoint-xs: 0;\n --breakpoint-sm: 576px;\n --breakpoint-md: 768px;\n --breakpoint-lg: 992px;\n --breakpoint-xl: 1200px;\n --font-family-sans-serif: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n}\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\nhtml {\n font-family: sans-serif;\n line-height: 1.15;\n -webkit-text-size-adjust: 100%;\n -webkit-tap-highlight-color: rgba(0, 0, 0, 0);\n}\n\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\nbody {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #212529;\n text-align: left;\n background-color: #fff;\n}\n\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\nhr {\n box-sizing: content-box;\n height: 0;\n overflow: visible;\n}\n\nh1, h2, h3, h4, h5, h6 {\n margin-top: 0;\n margin-bottom: 0.5rem;\n}\n\np {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nabbr[title],\nabbr[data-original-title] {\n text-decoration: underline;\n text-decoration: underline dotted;\n cursor: help;\n border-bottom: 0;\n text-decoration-skip-ink: none;\n}\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: 700;\n}\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0;\n}\n\nblockquote {\n margin: 0 0 1rem;\n}\n\nb,\nstrong {\n font-weight: bolder;\n}\n\nsmall {\n font-size: 80%;\n}\n\nsub,\nsup {\n position: relative;\n font-size: 75%;\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -.25em;\n}\n\nsup {\n top: -.5em;\n}\n\na {\n color: #007bff;\n text-decoration: none;\n background-color: transparent;\n}\n\na:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\na:not([href]) {\n color: inherit;\n text-decoration: none;\n}\n\na:not([href]):hover {\n color: inherit;\n text-decoration: none;\n}\n\npre,\ncode,\nkbd,\nsamp {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 1em;\n}\n\npre {\n margin-top: 0;\n margin-bottom: 1rem;\n overflow: auto;\n}\n\nfigure {\n margin: 0 0 1rem;\n}\n\nimg {\n vertical-align: middle;\n border-style: none;\n}\n\nsvg {\n overflow: hidden;\n vertical-align: middle;\n}\n\ntable {\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n color: #6c757d;\n text-align: left;\n caption-side: bottom;\n}\n\nth {\n text-align: inherit;\n}\n\nlabel {\n display: inline-block;\n margin-bottom: 0.5rem;\n}\n\nbutton {\n border-radius: 0;\n}\n\nbutton:focus {\n outline: 1px dotted;\n outline: 5px auto -webkit-focus-ring-color;\n}\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n\nbutton,\ninput {\n overflow: visible;\n}\n\nbutton,\nselect {\n text-transform: none;\n}\n\nselect {\n word-wrap: normal;\n}\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\nbutton:not(:disabled),\n[type=\"button\"]:not(:disabled),\n[type=\"reset\"]:not(:disabled),\n[type=\"submit\"]:not(:disabled) {\n cursor: pointer;\n}\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n padding: 0;\n border-style: none;\n}\n\ninput[type=\"radio\"],\ninput[type=\"checkbox\"] {\n box-sizing: border-box;\n padding: 0;\n}\n\ninput[type=\"date\"],\ninput[type=\"time\"],\ninput[type=\"datetime-local\"],\ninput[type=\"month\"] {\n -webkit-appearance: listbox;\n}\n\ntextarea {\n overflow: auto;\n resize: vertical;\n}\n\nfieldset {\n min-width: 0;\n padding: 0;\n margin: 0;\n border: 0;\n}\n\nlegend {\n display: block;\n width: 100%;\n max-width: 100%;\n padding: 0;\n margin-bottom: .5rem;\n font-size: 1.5rem;\n line-height: inherit;\n color: inherit;\n white-space: normal;\n}\n\nprogress {\n vertical-align: baseline;\n}\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n[type=\"search\"] {\n outline-offset: -2px;\n -webkit-appearance: none;\n}\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n::-webkit-file-upload-button {\n font: inherit;\n -webkit-appearance: button;\n}\n\noutput {\n display: inline-block;\n}\n\nsummary {\n display: list-item;\n cursor: pointer;\n}\n\ntemplate {\n display: none;\n}\n\n[hidden] {\n display: none !important;\n}\n\nh1, h2, h3, h4, h5, h6,\n.h1, .h2, .h3, .h4, .h5, .h6 {\n margin-bottom: 0.5rem;\n font-weight: 500;\n line-height: 1.2;\n}\n\nh1, .h1 {\n font-size: 2.5rem;\n}\n\nh2, .h2 {\n font-size: 2rem;\n}\n\nh3, .h3 {\n font-size: 1.75rem;\n}\n\nh4, .h4 {\n font-size: 1.5rem;\n}\n\nh5, .h5 {\n font-size: 1.25rem;\n}\n\nh6, .h6 {\n font-size: 1rem;\n}\n\n.lead {\n font-size: 1.25rem;\n font-weight: 300;\n}\n\n.display-1 {\n font-size: 6rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-2 {\n font-size: 5.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-3 {\n font-size: 4.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\n.display-4 {\n font-size: 3.5rem;\n font-weight: 300;\n line-height: 1.2;\n}\n\nhr {\n margin-top: 1rem;\n margin-bottom: 1rem;\n border: 0;\n border-top: 1px solid rgba(0, 0, 0, 0.1);\n}\n\nsmall,\n.small {\n font-size: 80%;\n font-weight: 400;\n}\n\nmark,\n.mark {\n padding: 0.2em;\n background-color: #fcf8e3;\n}\n\n.list-unstyled {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline {\n padding-left: 0;\n list-style: none;\n}\n\n.list-inline-item {\n display: inline-block;\n}\n\n.list-inline-item:not(:last-child) {\n margin-right: 0.5rem;\n}\n\n.initialism {\n font-size: 90%;\n text-transform: uppercase;\n}\n\n.blockquote {\n margin-bottom: 1rem;\n font-size: 1.25rem;\n}\n\n.blockquote-footer {\n display: block;\n font-size: 80%;\n color: #6c757d;\n}\n\n.blockquote-footer::before {\n content: \"\\2014\\00A0\";\n}\n\n.img-fluid {\n max-width: 100%;\n height: auto;\n}\n\n.img-thumbnail {\n padding: 0.25rem;\n background-color: #fff;\n border: 1px solid #dee2e6;\n border-radius: 0.25rem;\n max-width: 100%;\n height: auto;\n}\n\n.figure {\n display: inline-block;\n}\n\n.figure-img {\n margin-bottom: 0.5rem;\n line-height: 1;\n}\n\n.figure-caption {\n font-size: 90%;\n color: #6c757d;\n}\n\ncode {\n font-size: 87.5%;\n color: #e83e8c;\n word-wrap: break-word;\n}\n\na > code {\n color: inherit;\n}\n\nkbd {\n padding: 0.2rem 0.4rem;\n font-size: 87.5%;\n color: #fff;\n background-color: #212529;\n border-radius: 0.2rem;\n}\n\nkbd kbd {\n padding: 0;\n font-size: 100%;\n font-weight: 700;\n}\n\npre {\n display: block;\n font-size: 87.5%;\n color: #212529;\n}\n\npre code {\n font-size: inherit;\n color: inherit;\n word-break: normal;\n}\n\n.pre-scrollable {\n max-height: 340px;\n overflow-y: scroll;\n}\n\n.container {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container {\n max-width: 1140px;\n }\n}\n\n.container-fluid, .container-sm, .container-md, .container-lg, .container-xl {\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n margin-right: auto;\n margin-left: auto;\n}\n\n@media (min-width: 576px) {\n .container, .container-sm {\n max-width: 540px;\n }\n}\n\n@media (min-width: 768px) {\n .container, .container-sm, .container-md {\n max-width: 720px;\n }\n}\n\n@media (min-width: 992px) {\n .container, .container-sm, .container-md, .container-lg {\n max-width: 960px;\n }\n}\n\n@media (min-width: 1200px) {\n .container, .container-sm, .container-md, .container-lg, .container-xl {\n max-width: 1140px;\n }\n}\n\n.row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -15px;\n margin-left: -15px;\n}\n\n.no-gutters {\n margin-right: 0;\n margin-left: 0;\n}\n\n.no-gutters > .col,\n.no-gutters > [class*=\"col-\"] {\n padding-right: 0;\n padding-left: 0;\n}\n\n.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col,\n.col-auto, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm,\n.col-sm-auto, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-md,\n.col-md-auto, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg,\n.col-lg-auto, .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl,\n.col-xl-auto {\n position: relative;\n width: 100%;\n padding-right: 15px;\n padding-left: 15px;\n}\n\n.col {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n}\n\n.row-cols-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.row-cols-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.row-cols-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.row-cols-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.row-cols-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n}\n\n.row-cols-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n}\n\n.col-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n}\n\n.col-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n}\n\n.col-3 {\n flex: 0 0 25%;\n max-width: 25%;\n}\n\n.col-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n}\n\n.col-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n}\n\n.col-6 {\n flex: 0 0 50%;\n max-width: 50%;\n}\n\n.col-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n}\n\n.col-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n}\n\n.col-9 {\n flex: 0 0 75%;\n max-width: 75%;\n}\n\n.col-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n}\n\n.col-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n}\n\n.col-12 {\n flex: 0 0 100%;\n max-width: 100%;\n}\n\n.order-first {\n order: -1;\n}\n\n.order-last {\n order: 13;\n}\n\n.order-0 {\n order: 0;\n}\n\n.order-1 {\n order: 1;\n}\n\n.order-2 {\n order: 2;\n}\n\n.order-3 {\n order: 3;\n}\n\n.order-4 {\n order: 4;\n}\n\n.order-5 {\n order: 5;\n}\n\n.order-6 {\n order: 6;\n}\n\n.order-7 {\n order: 7;\n}\n\n.order-8 {\n order: 8;\n}\n\n.order-9 {\n order: 9;\n}\n\n.order-10 {\n order: 10;\n}\n\n.order-11 {\n order: 11;\n}\n\n.order-12 {\n order: 12;\n}\n\n.offset-1 {\n margin-right: 8.333333%;\n}\n\n.offset-2 {\n margin-right: 16.666667%;\n}\n\n.offset-3 {\n margin-right: 25%;\n}\n\n.offset-4 {\n margin-right: 33.333333%;\n}\n\n.offset-5 {\n margin-right: 41.666667%;\n}\n\n.offset-6 {\n margin-right: 50%;\n}\n\n.offset-7 {\n margin-right: 58.333333%;\n}\n\n.offset-8 {\n margin-right: 66.666667%;\n}\n\n.offset-9 {\n margin-right: 75%;\n}\n\n.offset-10 {\n margin-right: 83.333333%;\n}\n\n.offset-11 {\n margin-right: 91.666667%;\n}\n\n@media (min-width: 576px) {\n .col-sm {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-sm-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-sm-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-sm-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-sm-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-sm-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-sm-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-sm-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-sm-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-sm-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-sm-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-sm-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-sm-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-sm-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-sm-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-sm-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-sm-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-sm-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-sm-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-sm-first {\n order: -1;\n }\n .order-sm-last {\n order: 13;\n }\n .order-sm-0 {\n order: 0;\n }\n .order-sm-1 {\n order: 1;\n }\n .order-sm-2 {\n order: 2;\n }\n .order-sm-3 {\n order: 3;\n }\n .order-sm-4 {\n order: 4;\n }\n .order-sm-5 {\n order: 5;\n }\n .order-sm-6 {\n order: 6;\n }\n .order-sm-7 {\n order: 7;\n }\n .order-sm-8 {\n order: 8;\n }\n .order-sm-9 {\n order: 9;\n }\n .order-sm-10 {\n order: 10;\n }\n .order-sm-11 {\n order: 11;\n }\n .order-sm-12 {\n order: 12;\n }\n .offset-sm-0 {\n margin-right: 0;\n }\n .offset-sm-1 {\n margin-right: 8.333333%;\n }\n .offset-sm-2 {\n margin-right: 16.666667%;\n }\n .offset-sm-3 {\n margin-right: 25%;\n }\n .offset-sm-4 {\n margin-right: 33.333333%;\n }\n .offset-sm-5 {\n margin-right: 41.666667%;\n }\n .offset-sm-6 {\n margin-right: 50%;\n }\n .offset-sm-7 {\n margin-right: 58.333333%;\n }\n .offset-sm-8 {\n margin-right: 66.666667%;\n }\n .offset-sm-9 {\n margin-right: 75%;\n }\n .offset-sm-10 {\n margin-right: 83.333333%;\n }\n .offset-sm-11 {\n margin-right: 91.666667%;\n }\n}\n\n@media (min-width: 768px) {\n .col-md {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-md-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-md-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-md-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-md-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-md-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-md-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-md-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-md-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-md-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-md-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-md-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-md-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-md-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-md-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-md-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-md-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-md-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-md-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-md-first {\n order: -1;\n }\n .order-md-last {\n order: 13;\n }\n .order-md-0 {\n order: 0;\n }\n .order-md-1 {\n order: 1;\n }\n .order-md-2 {\n order: 2;\n }\n .order-md-3 {\n order: 3;\n }\n .order-md-4 {\n order: 4;\n }\n .order-md-5 {\n order: 5;\n }\n .order-md-6 {\n order: 6;\n }\n .order-md-7 {\n order: 7;\n }\n .order-md-8 {\n order: 8;\n }\n .order-md-9 {\n order: 9;\n }\n .order-md-10 {\n order: 10;\n }\n .order-md-11 {\n order: 11;\n }\n .order-md-12 {\n order: 12;\n }\n .offset-md-0 {\n margin-right: 0;\n }\n .offset-md-1 {\n margin-right: 8.333333%;\n }\n .offset-md-2 {\n margin-right: 16.666667%;\n }\n .offset-md-3 {\n margin-right: 25%;\n }\n .offset-md-4 {\n margin-right: 33.333333%;\n }\n .offset-md-5 {\n margin-right: 41.666667%;\n }\n .offset-md-6 {\n margin-right: 50%;\n }\n .offset-md-7 {\n margin-right: 58.333333%;\n }\n .offset-md-8 {\n margin-right: 66.666667%;\n }\n .offset-md-9 {\n margin-right: 75%;\n }\n .offset-md-10 {\n margin-right: 83.333333%;\n }\n .offset-md-11 {\n margin-right: 91.666667%;\n }\n}\n\n@media (min-width: 992px) {\n .col-lg {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-lg-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-lg-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-lg-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-lg-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-lg-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-lg-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-lg-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-lg-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-lg-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-lg-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-lg-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-lg-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-lg-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-lg-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-lg-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-lg-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-lg-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-lg-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-lg-first {\n order: -1;\n }\n .order-lg-last {\n order: 13;\n }\n .order-lg-0 {\n order: 0;\n }\n .order-lg-1 {\n order: 1;\n }\n .order-lg-2 {\n order: 2;\n }\n .order-lg-3 {\n order: 3;\n }\n .order-lg-4 {\n order: 4;\n }\n .order-lg-5 {\n order: 5;\n }\n .order-lg-6 {\n order: 6;\n }\n .order-lg-7 {\n order: 7;\n }\n .order-lg-8 {\n order: 8;\n }\n .order-lg-9 {\n order: 9;\n }\n .order-lg-10 {\n order: 10;\n }\n .order-lg-11 {\n order: 11;\n }\n .order-lg-12 {\n order: 12;\n }\n .offset-lg-0 {\n margin-right: 0;\n }\n .offset-lg-1 {\n margin-right: 8.333333%;\n }\n .offset-lg-2 {\n margin-right: 16.666667%;\n }\n .offset-lg-3 {\n margin-right: 25%;\n }\n .offset-lg-4 {\n margin-right: 33.333333%;\n }\n .offset-lg-5 {\n margin-right: 41.666667%;\n }\n .offset-lg-6 {\n margin-right: 50%;\n }\n .offset-lg-7 {\n margin-right: 58.333333%;\n }\n .offset-lg-8 {\n margin-right: 66.666667%;\n }\n .offset-lg-9 {\n margin-right: 75%;\n }\n .offset-lg-10 {\n margin-right: 83.333333%;\n }\n .offset-lg-11 {\n margin-right: 91.666667%;\n }\n}\n\n@media (min-width: 1200px) {\n .col-xl {\n flex-basis: 0;\n flex-grow: 1;\n max-width: 100%;\n }\n .row-cols-xl-1 > * {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .row-cols-xl-2 > * {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .row-cols-xl-3 > * {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .row-cols-xl-4 > * {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .row-cols-xl-5 > * {\n flex: 0 0 20%;\n max-width: 20%;\n }\n .row-cols-xl-6 > * {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-auto {\n flex: 0 0 auto;\n width: auto;\n max-width: 100%;\n }\n .col-xl-1 {\n flex: 0 0 8.333333%;\n max-width: 8.333333%;\n }\n .col-xl-2 {\n flex: 0 0 16.666667%;\n max-width: 16.666667%;\n }\n .col-xl-3 {\n flex: 0 0 25%;\n max-width: 25%;\n }\n .col-xl-4 {\n flex: 0 0 33.333333%;\n max-width: 33.333333%;\n }\n .col-xl-5 {\n flex: 0 0 41.666667%;\n max-width: 41.666667%;\n }\n .col-xl-6 {\n flex: 0 0 50%;\n max-width: 50%;\n }\n .col-xl-7 {\n flex: 0 0 58.333333%;\n max-width: 58.333333%;\n }\n .col-xl-8 {\n flex: 0 0 66.666667%;\n max-width: 66.666667%;\n }\n .col-xl-9 {\n flex: 0 0 75%;\n max-width: 75%;\n }\n .col-xl-10 {\n flex: 0 0 83.333333%;\n max-width: 83.333333%;\n }\n .col-xl-11 {\n flex: 0 0 91.666667%;\n max-width: 91.666667%;\n }\n .col-xl-12 {\n flex: 0 0 100%;\n max-width: 100%;\n }\n .order-xl-first {\n order: -1;\n }\n .order-xl-last {\n order: 13;\n }\n .order-xl-0 {\n order: 0;\n }\n .order-xl-1 {\n order: 1;\n }\n .order-xl-2 {\n order: 2;\n }\n .order-xl-3 {\n order: 3;\n }\n .order-xl-4 {\n order: 4;\n }\n .order-xl-5 {\n order: 5;\n }\n .order-xl-6 {\n order: 6;\n }\n .order-xl-7 {\n order: 7;\n }\n .order-xl-8 {\n order: 8;\n }\n .order-xl-9 {\n order: 9;\n }\n .order-xl-10 {\n order: 10;\n }\n .order-xl-11 {\n order: 11;\n }\n .order-xl-12 {\n order: 12;\n }\n .offset-xl-0 {\n margin-right: 0;\n }\n .offset-xl-1 {\n margin-right: 8.333333%;\n }\n .offset-xl-2 {\n margin-right: 16.666667%;\n }\n .offset-xl-3 {\n margin-right: 25%;\n }\n .offset-xl-4 {\n margin-right: 33.333333%;\n }\n .offset-xl-5 {\n margin-right: 41.666667%;\n }\n .offset-xl-6 {\n margin-right: 50%;\n }\n .offset-xl-7 {\n margin-right: 58.333333%;\n }\n .offset-xl-8 {\n margin-right: 66.666667%;\n }\n .offset-xl-9 {\n margin-right: 75%;\n }\n .offset-xl-10 {\n margin-right: 83.333333%;\n }\n .offset-xl-11 {\n margin-right: 91.666667%;\n }\n}\n\n.table {\n width: 100%;\n margin-bottom: 1rem;\n color: #212529;\n}\n\n.table th,\n.table td {\n padding: 0.75rem;\n vertical-align: top;\n border-top: 1px solid #dee2e6;\n}\n\n.table thead th {\n vertical-align: bottom;\n border-bottom: 2px solid #dee2e6;\n}\n\n.table tbody + tbody {\n border-top: 2px solid #dee2e6;\n}\n\n.table-sm th,\n.table-sm td {\n padding: 0.3rem;\n}\n\n.table-bordered {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered th,\n.table-bordered td {\n border: 1px solid #dee2e6;\n}\n\n.table-bordered thead th,\n.table-bordered thead td {\n border-bottom-width: 2px;\n}\n\n.table-borderless th,\n.table-borderless td,\n.table-borderless thead th,\n.table-borderless tbody + tbody {\n border: 0;\n}\n\n.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.table-hover tbody tr:hover {\n color: #212529;\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-primary,\n.table-primary > th,\n.table-primary > td {\n background-color: #b8daff;\n}\n\n.table-primary th,\n.table-primary td,\n.table-primary thead th,\n.table-primary tbody + tbody {\n border-color: #7abaff;\n}\n\n.table-hover .table-primary:hover {\n background-color: #9fcdff;\n}\n\n.table-hover .table-primary:hover > td,\n.table-hover .table-primary:hover > th {\n background-color: #9fcdff;\n}\n\n.table-secondary,\n.table-secondary > th,\n.table-secondary > td {\n background-color: #d6d8db;\n}\n\n.table-secondary th,\n.table-secondary td,\n.table-secondary thead th,\n.table-secondary tbody + tbody {\n border-color: #b3b7bb;\n}\n\n.table-hover .table-secondary:hover {\n background-color: #c8cbcf;\n}\n\n.table-hover .table-secondary:hover > td,\n.table-hover .table-secondary:hover > th {\n background-color: #c8cbcf;\n}\n\n.table-success,\n.table-success > th,\n.table-success > td {\n background-color: #c3e6cb;\n}\n\n.table-success th,\n.table-success td,\n.table-success thead th,\n.table-success tbody + tbody {\n border-color: #8fd19e;\n}\n\n.table-hover .table-success:hover {\n background-color: #b1dfbb;\n}\n\n.table-hover .table-success:hover > td,\n.table-hover .table-success:hover > th {\n background-color: #b1dfbb;\n}\n\n.table-info,\n.table-info > th,\n.table-info > td {\n background-color: #bee5eb;\n}\n\n.table-info th,\n.table-info td,\n.table-info thead th,\n.table-info tbody + tbody {\n border-color: #86cfda;\n}\n\n.table-hover .table-info:hover {\n background-color: #abdde5;\n}\n\n.table-hover .table-info:hover > td,\n.table-hover .table-info:hover > th {\n background-color: #abdde5;\n}\n\n.table-warning,\n.table-warning > th,\n.table-warning > td {\n background-color: #ffeeba;\n}\n\n.table-warning th,\n.table-warning td,\n.table-warning thead th,\n.table-warning tbody + tbody {\n border-color: #ffdf7e;\n}\n\n.table-hover .table-warning:hover {\n background-color: #ffe8a1;\n}\n\n.table-hover .table-warning:hover > td,\n.table-hover .table-warning:hover > th {\n background-color: #ffe8a1;\n}\n\n.table-danger,\n.table-danger > th,\n.table-danger > td {\n background-color: #f5c6cb;\n}\n\n.table-danger th,\n.table-danger td,\n.table-danger thead th,\n.table-danger tbody + tbody {\n border-color: #ed969e;\n}\n\n.table-hover .table-danger:hover {\n background-color: #f1b0b7;\n}\n\n.table-hover .table-danger:hover > td,\n.table-hover .table-danger:hover > th {\n background-color: #f1b0b7;\n}\n\n.table-light,\n.table-light > th,\n.table-light > td {\n background-color: #fdfdfe;\n}\n\n.table-light th,\n.table-light td,\n.table-light thead th,\n.table-light tbody + tbody {\n border-color: #fbfcfc;\n}\n\n.table-hover .table-light:hover {\n background-color: #ececf6;\n}\n\n.table-hover .table-light:hover > td,\n.table-hover .table-light:hover > th {\n background-color: #ececf6;\n}\n\n.table-dark,\n.table-dark > th,\n.table-dark > td {\n background-color: #c6c8ca;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th,\n.table-dark tbody + tbody {\n border-color: #95999c;\n}\n\n.table-hover .table-dark:hover {\n background-color: #b9bbbe;\n}\n\n.table-hover .table-dark:hover > td,\n.table-hover .table-dark:hover > th {\n background-color: #b9bbbe;\n}\n\n.table-active,\n.table-active > th,\n.table-active > td {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table-hover .table-active:hover > td,\n.table-hover .table-active:hover > th {\n background-color: rgba(0, 0, 0, 0.075);\n}\n\n.table .thead-dark th {\n color: #fff;\n background-color: #343a40;\n border-color: #454d55;\n}\n\n.table .thead-light th {\n color: #495057;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.table-dark {\n color: #fff;\n background-color: #343a40;\n}\n\n.table-dark th,\n.table-dark td,\n.table-dark thead th {\n border-color: #454d55;\n}\n\n.table-dark.table-bordered {\n border: 0;\n}\n\n.table-dark.table-striped tbody tr:nth-of-type(odd) {\n background-color: rgba(255, 255, 255, 0.05);\n}\n\n.table-dark.table-hover tbody tr:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.075);\n}\n\n@media (max-width: 575.98px) {\n .table-responsive-sm {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-sm > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 767.98px) {\n .table-responsive-md {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-md > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 991.98px) {\n .table-responsive-lg {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-lg > .table-bordered {\n border: 0;\n }\n}\n\n@media (max-width: 1199.98px) {\n .table-responsive-xl {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .table-responsive-xl > .table-bordered {\n border: 0;\n }\n}\n\n.table-responsive {\n display: block;\n width: 100%;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n}\n\n.table-responsive > .table-bordered {\n border: 0;\n}\n\n.form-control {\n display: block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .form-control {\n transition: none;\n }\n}\n\n.form-control::-ms-expand {\n background-color: transparent;\n border: 0;\n}\n\n.form-control:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.form-control:focus {\n color: #495057;\n background-color: #fff;\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.form-control::placeholder {\n color: #6c757d;\n opacity: 1;\n}\n\n.form-control:disabled, .form-control[readonly] {\n background-color: #e9ecef;\n opacity: 1;\n}\n\nselect.form-control:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.form-control-file,\n.form-control-range {\n display: block;\n width: 100%;\n}\n\n.col-form-label {\n padding-top: calc(0.375rem + 1px);\n padding-bottom: calc(0.375rem + 1px);\n margin-bottom: 0;\n font-size: inherit;\n line-height: 1.5;\n}\n\n.col-form-label-lg {\n padding-top: calc(0.5rem + 1px);\n padding-bottom: calc(0.5rem + 1px);\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.col-form-label-sm {\n padding-top: calc(0.25rem + 1px);\n padding-bottom: calc(0.25rem + 1px);\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.form-control-plaintext {\n display: block;\n width: 100%;\n padding: 0.375rem 0;\n margin-bottom: 0;\n font-size: 1rem;\n line-height: 1.5;\n color: #212529;\n background-color: transparent;\n border: solid transparent;\n border-width: 1px 0;\n}\n\n.form-control-plaintext.form-control-sm, .form-control-plaintext.form-control-lg {\n padding-right: 0;\n padding-left: 0;\n}\n\n.form-control-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.form-control-lg {\n height: calc(1.5em + 1rem + 2px);\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\nselect.form-control[size], select.form-control[multiple] {\n height: auto;\n}\n\ntextarea.form-control {\n height: auto;\n}\n\n.form-group {\n margin-bottom: 1rem;\n}\n\n.form-text {\n display: block;\n margin-top: 0.25rem;\n}\n\n.form-row {\n display: flex;\n flex-wrap: wrap;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.form-row > .col,\n.form-row > [class*=\"col-\"] {\n padding-right: 5px;\n padding-left: 5px;\n}\n\n.form-check {\n position: relative;\n display: block;\n padding-left: 1.25rem;\n}\n\n.form-check-input {\n position: absolute;\n margin-top: 0.3rem;\n margin-left: -1.25rem;\n}\n\n.form-check-input[disabled] ~ .form-check-label,\n.form-check-input:disabled ~ .form-check-label {\n color: #6c757d;\n}\n\n.form-check-label {\n margin-bottom: 0;\n}\n\n.form-check-inline {\n display: inline-flex;\n align-items: center;\n padding-left: 0;\n margin-right: 0.75rem;\n}\n\n.form-check-inline .form-check-input {\n position: static;\n margin-top: 0;\n margin-right: 0.3125rem;\n margin-left: 0;\n}\n\n.valid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #28a745;\n}\n\n.valid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(40, 167, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :valid ~ .valid-feedback,\n.was-validated :valid ~ .valid-tooltip,\n.is-valid ~ .valid-feedback,\n.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:valid, .form-control.is-valid {\n border-color: #28a745;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' 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\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:valid:focus, .form-control.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated textarea.form-control:valid, textarea.form-control.is-valid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:valid, .custom-select.is-valid {\n border-color: #28a745;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' 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\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:valid:focus, .custom-select.is-valid:focus {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .form-check-input:valid ~ .form-check-label, .form-check-input.is-valid ~ .form-check-label {\n color: #28a745;\n}\n\n.was-validated .form-check-input:valid ~ .valid-feedback,\n.was-validated .form-check-input:valid ~ .valid-tooltip, .form-check-input.is-valid ~ .valid-feedback,\n.form-check-input.is-valid ~ .valid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label, .custom-control-input.is-valid ~ .custom-control-label {\n color: #28a745;\n}\n\n.was-validated .custom-control-input:valid ~ .custom-control-label::before, .custom-control-input.is-valid ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-control-input:valid:checked ~ .custom-control-label::before, .custom-control-input.is-valid:checked ~ .custom-control-label::before {\n border-color: #34ce57;\n background-color: #34ce57;\n}\n\n.was-validated .custom-control-input:valid:focus ~ .custom-control-label::before, .custom-control-input.is-valid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.was-validated .custom-control-input:valid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-valid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid ~ .custom-file-label, .custom-file-input.is-valid ~ .custom-file-label {\n border-color: #28a745;\n}\n\n.was-validated .custom-file-input:valid:focus ~ .custom-file-label, .custom-file-input.is-valid:focus ~ .custom-file-label {\n border-color: #28a745;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);\n}\n\n.invalid-feedback {\n display: none;\n width: 100%;\n margin-top: 0.25rem;\n font-size: 80%;\n color: #dc3545;\n}\n\n.invalid-tooltip {\n position: absolute;\n top: 100%;\n z-index: 5;\n display: none;\n max-width: 100%;\n padding: 0.25rem 0.5rem;\n margin-top: .1rem;\n font-size: 0.875rem;\n line-height: 1.5;\n color: #fff;\n background-color: rgba(220, 53, 69, 0.9);\n border-radius: 0.25rem;\n}\n\n.was-validated :invalid ~ .invalid-feedback,\n.was-validated :invalid ~ .invalid-tooltip,\n.is-invalid ~ .invalid-feedback,\n.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .form-control:invalid, .form-control.is-invalid {\n border-color: #dc3545;\n padding-right: calc(1.5em + 0.75rem);\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%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\");\n background-repeat: no-repeat;\n background-position: right calc(0.375em + 0.1875rem) center;\n background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .form-control:invalid:focus, .form-control.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated textarea.form-control:invalid, textarea.form-control.is-invalid {\n padding-right: calc(1.5em + 0.75rem);\n background-position: top calc(0.375em + 0.1875rem) right calc(0.375em + 0.1875rem);\n}\n\n.was-validated .custom-select:invalid, .custom-select.is-invalid {\n border-color: #dc3545;\n padding-right: calc(0.75em + 2.3125rem);\n background: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px, url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%23dc3545' viewBox='0 0 12 12'%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\") #fff no-repeat center right 1.75rem/calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);\n}\n\n.was-validated .custom-select:invalid:focus, .custom-select.is-invalid:focus {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .form-check-input:invalid ~ .form-check-label, .form-check-input.is-invalid ~ .form-check-label {\n color: #dc3545;\n}\n\n.was-validated .form-check-input:invalid ~ .invalid-feedback,\n.was-validated .form-check-input:invalid ~ .invalid-tooltip, .form-check-input.is-invalid ~ .invalid-feedback,\n.form-check-input.is-invalid ~ .invalid-tooltip {\n display: block;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label, .custom-control-input.is-invalid ~ .custom-control-label {\n color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid ~ .custom-control-label::before, .custom-control-input.is-invalid ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-control-input:invalid:checked ~ .custom-control-label::before, .custom-control-input.is-invalid:checked ~ .custom-control-label::before {\n border-color: #e4606d;\n background-color: #e4606d;\n}\n\n.was-validated .custom-control-input:invalid:focus ~ .custom-control-label::before, .custom-control-input.is-invalid:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.was-validated .custom-control-input:invalid:focus:not(:checked) ~ .custom-control-label::before, .custom-control-input.is-invalid:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid ~ .custom-file-label, .custom-file-input.is-invalid ~ .custom-file-label {\n border-color: #dc3545;\n}\n\n.was-validated .custom-file-input:invalid:focus ~ .custom-file-label, .custom-file-input.is-invalid:focus ~ .custom-file-label {\n border-color: #dc3545;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.25);\n}\n\n.form-inline {\n display: flex;\n flex-flow: row wrap;\n align-items: center;\n}\n\n.form-inline .form-check {\n width: 100%;\n}\n\n@media (min-width: 576px) {\n .form-inline label {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-bottom: 0;\n }\n .form-inline .form-group {\n display: flex;\n flex: 0 0 auto;\n flex-flow: row wrap;\n align-items: center;\n margin-bottom: 0;\n }\n .form-inline .form-control {\n display: inline-block;\n width: auto;\n vertical-align: middle;\n }\n .form-inline .form-control-plaintext {\n display: inline-block;\n }\n .form-inline .input-group,\n .form-inline .custom-select {\n width: auto;\n }\n .form-inline .form-check {\n display: flex;\n align-items: center;\n justify-content: center;\n width: auto;\n padding-left: 0;\n }\n .form-inline .form-check-input {\n position: relative;\n flex-shrink: 0;\n margin-top: 0;\n margin-right: 0.25rem;\n margin-left: 0;\n }\n .form-inline .custom-control {\n align-items: center;\n justify-content: center;\n }\n .form-inline .custom-control-label {\n margin-bottom: 0;\n }\n}\n\n.btn {\n display: inline-block;\n font-weight: 400;\n color: #212529;\n text-align: center;\n vertical-align: middle;\n cursor: pointer;\n user-select: none;\n background-color: transparent;\n border: 1px solid transparent;\n padding: 0.375rem 0.75rem;\n font-size: 1rem;\n line-height: 1.5;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .btn {\n transition: none;\n }\n}\n\n.btn:hover {\n color: #212529;\n text-decoration: none;\n}\n\n.btn:focus, .btn.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.btn.disabled, .btn:disabled {\n opacity: 0.65;\n}\n\na.btn.disabled,\nfieldset:disabled a.btn {\n pointer-events: none;\n}\n\n.btn-primary {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:hover {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n}\n\n.btn-primary:focus, .btn-primary.focus {\n color: #fff;\n background-color: #0069d9;\n border-color: #0062cc;\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-primary.disabled, .btn-primary:disabled {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active, .btn-primary:not(:disabled):not(.disabled).active,\n.show > .btn-primary.dropdown-toggle {\n color: #fff;\n background-color: #0062cc;\n border-color: #005cbf;\n}\n\n.btn-primary:not(:disabled):not(.disabled):active:focus, .btn-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(38, 143, 255, 0.5);\n}\n\n.btn-secondary {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:hover {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n}\n\n.btn-secondary:focus, .btn-secondary.focus {\n color: #fff;\n background-color: #5a6268;\n border-color: #545b62;\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-secondary.disabled, .btn-secondary:disabled {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active, .btn-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-secondary.dropdown-toggle {\n color: #fff;\n background-color: #545b62;\n border-color: #4e555b;\n}\n\n.btn-secondary:not(:disabled):not(.disabled):active:focus, .btn-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(130, 138, 145, 0.5);\n}\n\n.btn-success {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:hover {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n}\n\n.btn-success:focus, .btn-success.focus {\n color: #fff;\n background-color: #218838;\n border-color: #1e7e34;\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-success.disabled, .btn-success:disabled {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-success:not(:disabled):not(.disabled):active, .btn-success:not(:disabled):not(.disabled).active,\n.show > .btn-success.dropdown-toggle {\n color: #fff;\n background-color: #1e7e34;\n border-color: #1c7430;\n}\n\n.btn-success:not(:disabled):not(.disabled):active:focus, .btn-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(72, 180, 97, 0.5);\n}\n\n.btn-info {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:hover {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n}\n\n.btn-info:focus, .btn-info.focus {\n color: #fff;\n background-color: #138496;\n border-color: #117a8b;\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-info.disabled, .btn-info:disabled {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-info:not(:disabled):not(.disabled):active, .btn-info:not(:disabled):not(.disabled).active,\n.show > .btn-info.dropdown-toggle {\n color: #fff;\n background-color: #117a8b;\n border-color: #10707f;\n}\n\n.btn-info:not(:disabled):not(.disabled):active:focus, .btn-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(58, 176, 195, 0.5);\n}\n\n.btn-warning {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:hover {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n}\n\n.btn-warning:focus, .btn-warning.focus {\n color: #212529;\n background-color: #e0a800;\n border-color: #d39e00;\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-warning.disabled, .btn-warning:disabled {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active, .btn-warning:not(:disabled):not(.disabled).active,\n.show > .btn-warning.dropdown-toggle {\n color: #212529;\n background-color: #d39e00;\n border-color: #c69500;\n}\n\n.btn-warning:not(:disabled):not(.disabled):active:focus, .btn-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(222, 170, 12, 0.5);\n}\n\n.btn-danger {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:hover {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n}\n\n.btn-danger:focus, .btn-danger.focus {\n color: #fff;\n background-color: #c82333;\n border-color: #bd2130;\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-danger.disabled, .btn-danger:disabled {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active, .btn-danger:not(:disabled):not(.disabled).active,\n.show > .btn-danger.dropdown-toggle {\n color: #fff;\n background-color: #bd2130;\n border-color: #b21f2d;\n}\n\n.btn-danger:not(:disabled):not(.disabled):active:focus, .btn-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(225, 83, 97, 0.5);\n}\n\n.btn-light {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:hover {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n}\n\n.btn-light:focus, .btn-light.focus {\n color: #212529;\n background-color: #e2e6ea;\n border-color: #dae0e5;\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-light.disabled, .btn-light:disabled {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-light:not(:disabled):not(.disabled):active, .btn-light:not(:disabled):not(.disabled).active,\n.show > .btn-light.dropdown-toggle {\n color: #212529;\n background-color: #dae0e5;\n border-color: #d3d9df;\n}\n\n.btn-light:not(:disabled):not(.disabled):active:focus, .btn-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(216, 217, 219, 0.5);\n}\n\n.btn-dark {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:hover {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n}\n\n.btn-dark:focus, .btn-dark.focus {\n color: #fff;\n background-color: #23272b;\n border-color: #1d2124;\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-dark.disabled, .btn-dark:disabled {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active, .btn-dark:not(:disabled):not(.disabled).active,\n.show > .btn-dark.dropdown-toggle {\n color: #fff;\n background-color: #1d2124;\n border-color: #171a1d;\n}\n\n.btn-dark:not(:disabled):not(.disabled):active:focus, .btn-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(82, 88, 93, 0.5);\n}\n\n.btn-outline-primary {\n color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:hover {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:focus, .btn-outline-primary.focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-primary.disabled, .btn-outline-primary:disabled {\n color: #007bff;\n background-color: transparent;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active, .btn-outline-primary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-primary.dropdown-toggle {\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.btn-outline-primary:not(:disabled):not(.disabled):active:focus, .btn-outline-primary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-primary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.btn-outline-secondary {\n color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:hover {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:focus, .btn-outline-secondary.focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-secondary.disabled, .btn-outline-secondary:disabled {\n color: #6c757d;\n background-color: transparent;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active, .btn-outline-secondary:not(:disabled):not(.disabled).active,\n.show > .btn-outline-secondary.dropdown-toggle {\n color: #fff;\n background-color: #6c757d;\n border-color: #6c757d;\n}\n\n.btn-outline-secondary:not(:disabled):not(.disabled):active:focus, .btn-outline-secondary:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-secondary.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.btn-outline-success {\n color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:hover {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:focus, .btn-outline-success.focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-success.disabled, .btn-outline-success:disabled {\n color: #28a745;\n background-color: transparent;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active, .btn-outline-success:not(:disabled):not(.disabled).active,\n.show > .btn-outline-success.dropdown-toggle {\n color: #fff;\n background-color: #28a745;\n border-color: #28a745;\n}\n\n.btn-outline-success:not(:disabled):not(.disabled):active:focus, .btn-outline-success:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-success.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.btn-outline-info {\n color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:hover {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:focus, .btn-outline-info.focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-info.disabled, .btn-outline-info:disabled {\n color: #17a2b8;\n background-color: transparent;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active, .btn-outline-info:not(:disabled):not(.disabled).active,\n.show > .btn-outline-info.dropdown-toggle {\n color: #fff;\n background-color: #17a2b8;\n border-color: #17a2b8;\n}\n\n.btn-outline-info:not(:disabled):not(.disabled):active:focus, .btn-outline-info:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-info.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.btn-outline-warning {\n color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:hover {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:focus, .btn-outline-warning.focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-warning.disabled, .btn-outline-warning:disabled {\n color: #ffc107;\n background-color: transparent;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active, .btn-outline-warning:not(:disabled):not(.disabled).active,\n.show > .btn-outline-warning.dropdown-toggle {\n color: #212529;\n background-color: #ffc107;\n border-color: #ffc107;\n}\n\n.btn-outline-warning:not(:disabled):not(.disabled):active:focus, .btn-outline-warning:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-warning.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.btn-outline-danger {\n color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:hover {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:focus, .btn-outline-danger.focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-danger.disabled, .btn-outline-danger:disabled {\n color: #dc3545;\n background-color: transparent;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active, .btn-outline-danger:not(:disabled):not(.disabled).active,\n.show > .btn-outline-danger.dropdown-toggle {\n color: #fff;\n background-color: #dc3545;\n border-color: #dc3545;\n}\n\n.btn-outline-danger:not(:disabled):not(.disabled):active:focus, .btn-outline-danger:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-danger.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.btn-outline-light {\n color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:hover {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:focus, .btn-outline-light.focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-light.disabled, .btn-outline-light:disabled {\n color: #f8f9fa;\n background-color: transparent;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active, .btn-outline-light:not(:disabled):not(.disabled).active,\n.show > .btn-outline-light.dropdown-toggle {\n color: #212529;\n background-color: #f8f9fa;\n border-color: #f8f9fa;\n}\n\n.btn-outline-light:not(:disabled):not(.disabled):active:focus, .btn-outline-light:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-light.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.btn-outline-dark {\n color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:hover {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:focus, .btn-outline-dark.focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-outline-dark.disabled, .btn-outline-dark:disabled {\n color: #343a40;\n background-color: transparent;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active, .btn-outline-dark:not(:disabled):not(.disabled).active,\n.show > .btn-outline-dark.dropdown-toggle {\n color: #fff;\n background-color: #343a40;\n border-color: #343a40;\n}\n\n.btn-outline-dark:not(:disabled):not(.disabled):active:focus, .btn-outline-dark:not(:disabled):not(.disabled).active:focus,\n.show > .btn-outline-dark.dropdown-toggle:focus {\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.btn-link {\n font-weight: 400;\n color: #007bff;\n text-decoration: none;\n}\n\n.btn-link:hover {\n color: #0056b3;\n text-decoration: underline;\n}\n\n.btn-link:focus, .btn-link.focus {\n text-decoration: underline;\n box-shadow: none;\n}\n\n.btn-link:disabled, .btn-link.disabled {\n color: #6c757d;\n pointer-events: none;\n}\n\n.btn-lg, .btn-group-lg > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.btn-sm, .btn-group-sm > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.btn-block {\n display: block;\n width: 100%;\n}\n\n.btn-block + .btn-block {\n margin-top: 0.5rem;\n}\n\ninput[type=\"submit\"].btn-block,\ninput[type=\"reset\"].btn-block,\ninput[type=\"button\"].btn-block {\n width: 100%;\n}\n\n.fade {\n transition: opacity 0.15s linear;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .fade {\n transition: none;\n }\n}\n\n.fade:not(.show) {\n opacity: 0;\n}\n\n.collapse:not(.show) {\n display: none;\n}\n\n.collapsing {\n position: relative;\n height: 0;\n overflow: hidden;\n transition: height 0.35s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .collapsing {\n transition: none;\n }\n}\n\n.dropup,\n.dropright,\n.dropdown,\n.dropleft {\n position: relative;\n}\n\n.dropdown-toggle {\n white-space: nowrap;\n}\n\n.dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid;\n border-right: 0.3em solid transparent;\n border-bottom: 0;\n border-left: 0.3em solid transparent;\n}\n\n.dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropdown-menu {\n position: absolute;\n top: 100%;\n left: 0;\n z-index: 1000;\n display: none;\n float: left;\n min-width: 10rem;\n padding: 0.5rem 0;\n margin: 0.125rem 0 0;\n font-size: 1rem;\n color: #212529;\n text-align: left;\n list-style: none;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.15);\n border-radius: 0.25rem;\n}\n\n.dropdown-menu-left {\n right: auto;\n left: 0;\n}\n\n.dropdown-menu-right {\n right: 0;\n left: auto;\n}\n\n@media (min-width: 576px) {\n .dropdown-menu-sm-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-sm-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 768px) {\n .dropdown-menu-md-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-md-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 992px) {\n .dropdown-menu-lg-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-lg-right {\n right: 0;\n left: auto;\n }\n}\n\n@media (min-width: 1200px) {\n .dropdown-menu-xl-left {\n right: auto;\n left: 0;\n }\n .dropdown-menu-xl-right {\n right: 0;\n left: auto;\n }\n}\n\n.dropup .dropdown-menu {\n top: auto;\n bottom: 100%;\n margin-top: 0;\n margin-bottom: 0.125rem;\n}\n\n.dropup .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0;\n border-right: 0.3em solid transparent;\n border-bottom: 0.3em solid;\n border-left: 0.3em solid transparent;\n}\n\n.dropup .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-menu {\n top: 0;\n right: auto;\n left: 100%;\n margin-top: 0;\n margin-left: 0.125rem;\n}\n\n.dropright .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0;\n border-bottom: 0.3em solid transparent;\n border-left: 0.3em solid;\n}\n\n.dropright .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropright .dropdown-toggle::after {\n vertical-align: 0;\n}\n\n.dropleft .dropdown-menu {\n top: 0;\n right: 100%;\n left: auto;\n margin-top: 0;\n margin-right: 0.125rem;\n}\n\n.dropleft .dropdown-toggle::after {\n display: inline-block;\n margin-left: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n}\n\n.dropleft .dropdown-toggle::after {\n display: none;\n}\n\n.dropleft .dropdown-toggle::before {\n display: inline-block;\n margin-right: 0.255em;\n vertical-align: 0.255em;\n content: \"\";\n border-top: 0.3em solid transparent;\n border-right: 0.3em solid;\n border-bottom: 0.3em solid transparent;\n}\n\n.dropleft .dropdown-toggle:empty::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle::before {\n vertical-align: 0;\n}\n\n.dropdown-menu[x-placement^=\"top\"], .dropdown-menu[x-placement^=\"right\"], .dropdown-menu[x-placement^=\"bottom\"], .dropdown-menu[x-placement^=\"left\"] {\n right: auto;\n bottom: auto;\n}\n\n.dropdown-divider {\n height: 0;\n margin: 0.5rem 0;\n overflow: hidden;\n border-top: 1px solid #e9ecef;\n}\n\n.dropdown-item {\n display: block;\n width: 100%;\n padding: 0.25rem 1.5rem;\n clear: both;\n font-weight: 400;\n color: #212529;\n text-align: inherit;\n white-space: nowrap;\n background-color: transparent;\n border: 0;\n}\n\n.dropdown-item:hover, .dropdown-item:focus {\n color: #16181b;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.dropdown-item.active, .dropdown-item:active {\n color: #fff;\n text-decoration: none;\n background-color: #007bff;\n}\n\n.dropdown-item.disabled, .dropdown-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: transparent;\n}\n\n.dropdown-menu.show {\n display: block;\n}\n\n.dropdown-header {\n display: block;\n padding: 0.5rem 1.5rem;\n margin-bottom: 0;\n font-size: 0.875rem;\n color: #6c757d;\n white-space: nowrap;\n}\n\n.dropdown-item-text {\n display: block;\n padding: 0.25rem 1.5rem;\n color: #212529;\n}\n\n.btn-group,\n.btn-group-vertical {\n position: relative;\n display: inline-flex;\n vertical-align: middle;\n}\n\n.btn-group > .btn,\n.btn-group-vertical > .btn {\n position: relative;\n flex: 1 1 auto;\n}\n\n.btn-group > .btn:hover,\n.btn-group-vertical > .btn:hover {\n z-index: 1;\n}\n\n.btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,\n.btn-group-vertical > .btn:focus,\n.btn-group-vertical > .btn:active,\n.btn-group-vertical > .btn.active {\n z-index: 1;\n}\n\n.btn-toolbar {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-start;\n}\n\n.btn-toolbar .input-group {\n width: auto;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) {\n margin-left: -1px;\n}\n\n.btn-group > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group > .btn-group:not(:last-child) > .btn {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.btn-group > .btn:not(:first-child),\n.btn-group > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.dropdown-toggle-split {\n padding-right: 0.5625rem;\n padding-left: 0.5625rem;\n}\n\n.dropdown-toggle-split::after,\n.dropup .dropdown-toggle-split::after,\n.dropright .dropdown-toggle-split::after {\n margin-left: 0;\n}\n\n.dropleft .dropdown-toggle-split::before {\n margin-right: 0;\n}\n\n.btn-sm + .dropdown-toggle-split, .btn-group-sm > .btn + .dropdown-toggle-split {\n padding-right: 0.375rem;\n padding-left: 0.375rem;\n}\n\n.btn-lg + .dropdown-toggle-split, .btn-group-lg > .btn + .dropdown-toggle-split {\n padding-right: 0.75rem;\n padding-left: 0.75rem;\n}\n\n.btn-group-vertical {\n flex-direction: column;\n align-items: flex-start;\n justify-content: center;\n}\n\n.btn-group-vertical > .btn,\n.btn-group-vertical > .btn-group {\n width: 100%;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) {\n margin-top: -1px;\n}\n\n.btn-group-vertical > .btn:not(:last-child):not(.dropdown-toggle),\n.btn-group-vertical > .btn-group:not(:last-child) > .btn {\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.btn-group-vertical > .btn:not(:first-child),\n.btn-group-vertical > .btn-group:not(:first-child) > .btn {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.btn-group-toggle > .btn,\n.btn-group-toggle > .btn-group > .btn {\n margin-bottom: 0;\n}\n\n.btn-group-toggle > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn input[type=\"checkbox\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"radio\"],\n.btn-group-toggle > .btn-group > .btn input[type=\"checkbox\"] {\n position: absolute;\n clip: rect(0, 0, 0, 0);\n pointer-events: none;\n}\n\n.input-group {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: stretch;\n width: 100%;\n}\n\n.input-group > .form-control,\n.input-group > .form-control-plaintext,\n.input-group > .custom-select,\n.input-group > .custom-file {\n position: relative;\n flex: 1 1 0%;\n min-width: 0;\n margin-bottom: 0;\n}\n\n.input-group > .form-control + .form-control,\n.input-group > .form-control + .custom-select,\n.input-group > .form-control + .custom-file,\n.input-group > .form-control-plaintext + .form-control,\n.input-group > .form-control-plaintext + .custom-select,\n.input-group > .form-control-plaintext + .custom-file,\n.input-group > .custom-select + .form-control,\n.input-group > .custom-select + .custom-select,\n.input-group > .custom-select + .custom-file,\n.input-group > .custom-file + .form-control,\n.input-group > .custom-file + .custom-select,\n.input-group > .custom-file + .custom-file {\n margin-left: -1px;\n}\n\n.input-group > .form-control:focus,\n.input-group > .custom-select:focus,\n.input-group > .custom-file .custom-file-input:focus ~ .custom-file-label {\n z-index: 3;\n}\n\n.input-group > .custom-file .custom-file-input:focus {\n z-index: 4;\n}\n\n.input-group > .form-control:not(:last-child),\n.input-group > .custom-select:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .form-control:not(:first-child),\n.input-group > .custom-select:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group > .custom-file {\n display: flex;\n align-items: center;\n}\n\n.input-group > .custom-file:not(:last-child) .custom-file-label,\n.input-group > .custom-file:not(:last-child) .custom-file-label::after {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .custom-file:not(:first-child) .custom-file-label {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.input-group-prepend,\n.input-group-append {\n display: flex;\n}\n\n.input-group-prepend .btn,\n.input-group-append .btn {\n position: relative;\n z-index: 2;\n}\n\n.input-group-prepend .btn:focus,\n.input-group-append .btn:focus {\n z-index: 3;\n}\n\n.input-group-prepend .btn + .btn,\n.input-group-prepend .btn + .input-group-text,\n.input-group-prepend .input-group-text + .input-group-text,\n.input-group-prepend .input-group-text + .btn,\n.input-group-append .btn + .btn,\n.input-group-append .btn + .input-group-text,\n.input-group-append .input-group-text + .input-group-text,\n.input-group-append .input-group-text + .btn {\n margin-left: -1px;\n}\n\n.input-group-prepend {\n margin-right: -1px;\n}\n\n.input-group-append {\n margin-left: -1px;\n}\n\n.input-group-text {\n display: flex;\n align-items: center;\n padding: 0.375rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n text-align: center;\n white-space: nowrap;\n background-color: #e9ecef;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.input-group-text input[type=\"radio\"],\n.input-group-text input[type=\"checkbox\"] {\n margin-top: 0;\n}\n\n.input-group-lg > .form-control:not(textarea),\n.input-group-lg > .custom-select {\n height: calc(1.5em + 1rem + 2px);\n}\n\n.input-group-lg > .form-control,\n.input-group-lg > .custom-select,\n.input-group-lg > .input-group-prepend > .input-group-text,\n.input-group-lg > .input-group-append > .input-group-text,\n.input-group-lg > .input-group-prepend > .btn,\n.input-group-lg > .input-group-append > .btn {\n padding: 0.5rem 1rem;\n font-size: 1.25rem;\n line-height: 1.5;\n border-radius: 0.3rem;\n}\n\n.input-group-sm > .form-control:not(textarea),\n.input-group-sm > .custom-select {\n height: calc(1.5em + 0.5rem + 2px);\n}\n\n.input-group-sm > .form-control,\n.input-group-sm > .custom-select,\n.input-group-sm > .input-group-prepend > .input-group-text,\n.input-group-sm > .input-group-append > .input-group-text,\n.input-group-sm > .input-group-prepend > .btn,\n.input-group-sm > .input-group-append > .btn {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n border-radius: 0.2rem;\n}\n\n.input-group-lg > .custom-select,\n.input-group-sm > .custom-select {\n padding-right: 1.75rem;\n}\n\n.input-group > .input-group-prepend > .btn,\n.input-group > .input-group-prepend > .input-group-text,\n.input-group > .input-group-append:not(:last-child) > .btn,\n.input-group > .input-group-append:not(:last-child) > .input-group-text,\n.input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.input-group > .input-group-append:last-child > .input-group-text:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.input-group > .input-group-append > .btn,\n.input-group > .input-group-append > .input-group-text,\n.input-group > .input-group-prepend:not(:first-child) > .btn,\n.input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n.input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.custom-control {\n position: relative;\n display: block;\n min-height: 1.5rem;\n padding-left: 1.5rem;\n}\n\n.custom-control-inline {\n display: inline-flex;\n margin-right: 1rem;\n}\n\n.custom-control-input {\n position: absolute;\n left: 0;\n z-index: -1;\n width: 1rem;\n height: 1.25rem;\n opacity: 0;\n}\n\n.custom-control-input:checked ~ .custom-control-label::before {\n color: #fff;\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-control-input:focus ~ .custom-control-label::before {\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-control-input:focus:not(:checked) ~ .custom-control-label::before {\n border-color: #80bdff;\n}\n\n.custom-control-input:not(:disabled):active ~ .custom-control-label::before {\n color: #fff;\n background-color: #b3d7ff;\n border-color: #b3d7ff;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label, .custom-control-input:disabled ~ .custom-control-label {\n color: #6c757d;\n}\n\n.custom-control-input[disabled] ~ .custom-control-label::before, .custom-control-input:disabled ~ .custom-control-label::before {\n background-color: #e9ecef;\n}\n\n.custom-control-label {\n position: relative;\n margin-bottom: 0;\n vertical-align: top;\n}\n\n.custom-control-label::before {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n pointer-events: none;\n content: \"\";\n background-color: #fff;\n border: #adb5bd solid 1px;\n}\n\n.custom-control-label::after {\n position: absolute;\n top: 0.25rem;\n left: -1.5rem;\n display: block;\n width: 1rem;\n height: 1rem;\n content: \"\";\n background: no-repeat 50% / 50% 50%;\n}\n\n.custom-checkbox .custom-control-label::before {\n border-radius: 0.25rem;\n}\n\n.custom-checkbox .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::before {\n border-color: #007bff;\n background-color: #007bff;\n}\n\n.custom-checkbox .custom-control-input:indeterminate ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='4' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e\");\n}\n\n.custom-checkbox .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-checkbox .custom-control-input:disabled:indeterminate ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-radio .custom-control-label::before {\n border-radius: 50%;\n}\n\n.custom-radio .custom-control-input:checked ~ .custom-control-label::after {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e\");\n}\n\n.custom-radio .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-switch {\n padding-left: 2.25rem;\n}\n\n.custom-switch .custom-control-label::before {\n left: -2.25rem;\n width: 1.75rem;\n pointer-events: all;\n border-radius: 0.5rem;\n}\n\n.custom-switch .custom-control-label::after {\n top: calc(0.25rem + 2px);\n left: calc(-2.25rem + 2px);\n width: calc(1rem - 4px);\n height: calc(1rem - 4px);\n background-color: #adb5bd;\n border-radius: 0.5rem;\n transition: transform 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-switch .custom-control-label::after {\n transition: none;\n }\n}\n\n.custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n background-color: #fff;\n transform: translateX(0.75rem);\n}\n\n.custom-switch .custom-control-input:disabled:checked ~ .custom-control-label::before {\n background-color: rgba(0, 123, 255, 0.5);\n}\n\n.custom-select {\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 1.75rem 0.375rem 0.75rem;\n font-size: 1rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n vertical-align: middle;\n background: #fff url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='4' height='5' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e\") no-repeat right 0.75rem center/8px 10px;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n appearance: none;\n}\n\n.custom-select:focus {\n border-color: #80bdff;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-select:focus::-ms-value {\n color: #495057;\n background-color: #fff;\n}\n\n.custom-select[multiple], .custom-select[size]:not([size=\"1\"]) {\n height: auto;\n padding-right: 0.75rem;\n background-image: none;\n}\n\n.custom-select:disabled {\n color: #6c757d;\n background-color: #e9ecef;\n}\n\n.custom-select::-ms-expand {\n display: none;\n}\n\n.custom-select:-moz-focusring {\n color: transparent;\n text-shadow: 0 0 0 #495057;\n}\n\n.custom-select-sm {\n height: calc(1.5em + 0.5rem + 2px);\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n padding-left: 0.5rem;\n font-size: 0.875rem;\n}\n\n.custom-select-lg {\n height: calc(1.5em + 1rem + 2px);\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n padding-left: 1rem;\n font-size: 1.25rem;\n}\n\n.custom-file {\n position: relative;\n display: inline-block;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin-bottom: 0;\n}\n\n.custom-file-input {\n position: relative;\n z-index: 2;\n width: 100%;\n height: calc(1.5em + 0.75rem + 2px);\n margin: 0;\n opacity: 0;\n}\n\n.custom-file-input:focus ~ .custom-file-label {\n border-color: #80bdff;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-file-input[disabled] ~ .custom-file-label,\n.custom-file-input:disabled ~ .custom-file-label {\n background-color: #e9ecef;\n}\n\n.custom-file-input:lang(en) ~ .custom-file-label::after {\n content: \"Browse\";\n}\n\n.custom-file-input ~ .custom-file-label[data-browse]::after {\n content: attr(data-browse);\n}\n\n.custom-file-label {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1;\n height: calc(1.5em + 0.75rem + 2px);\n padding: 0.375rem 0.75rem;\n font-weight: 400;\n line-height: 1.5;\n color: #495057;\n background-color: #fff;\n border: 1px solid #ced4da;\n border-radius: 0.25rem;\n}\n\n.custom-file-label::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n z-index: 3;\n display: block;\n height: calc(1.5em + 0.75rem);\n padding: 0.375rem 0.75rem;\n line-height: 1.5;\n color: #495057;\n content: \"Browse\";\n background-color: #e9ecef;\n border-left: inherit;\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.custom-range {\n width: 100%;\n height: 1.4rem;\n padding: 0;\n background-color: transparent;\n appearance: none;\n}\n\n.custom-range:focus {\n outline: none;\n}\n\n.custom-range:focus::-webkit-slider-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-moz-range-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range:focus::-ms-thumb {\n box-shadow: 0 0 0 1px #fff, 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.custom-range::-moz-focus-outer {\n border: 0;\n}\n\n.custom-range::-webkit-slider-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: -0.25rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-webkit-slider-thumb {\n transition: none;\n }\n}\n\n.custom-range::-webkit-slider-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-webkit-slider-runnable-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-moz-range-thumb {\n width: 1rem;\n height: 1rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-moz-range-thumb {\n transition: none;\n }\n}\n\n.custom-range::-moz-range-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-moz-range-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: #dee2e6;\n border-color: transparent;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-thumb {\n width: 1rem;\n height: 1rem;\n margin-top: 0;\n margin-right: 0.2rem;\n margin-left: 0.2rem;\n background-color: #007bff;\n border: 0;\n border-radius: 1rem;\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n appearance: none;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-range::-ms-thumb {\n transition: none;\n }\n}\n\n.custom-range::-ms-thumb:active {\n background-color: #b3d7ff;\n}\n\n.custom-range::-ms-track {\n width: 100%;\n height: 0.5rem;\n color: transparent;\n cursor: pointer;\n background-color: transparent;\n border-color: transparent;\n border-width: 0.5rem;\n}\n\n.custom-range::-ms-fill-lower {\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range::-ms-fill-upper {\n margin-right: 15px;\n background-color: #dee2e6;\n border-radius: 1rem;\n}\n\n.custom-range:disabled::-webkit-slider-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-webkit-slider-runnable-track {\n cursor: default;\n}\n\n.custom-range:disabled::-moz-range-thumb {\n background-color: #adb5bd;\n}\n\n.custom-range:disabled::-moz-range-track {\n cursor: default;\n}\n\n.custom-range:disabled::-ms-thumb {\n background-color: #adb5bd;\n}\n\n.custom-control-label::before,\n.custom-file-label,\n.custom-select {\n transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .custom-control-label::before,\n .custom-file-label,\n .custom-select {\n transition: none;\n }\n}\n\n.nav {\n display: flex;\n flex-wrap: wrap;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.nav-link {\n display: block;\n padding: 0.5rem 1rem;\n}\n\n.nav-link:hover, .nav-link:focus {\n text-decoration: none;\n}\n\n.nav-link.disabled {\n color: #6c757d;\n pointer-events: none;\n cursor: default;\n}\n\n.nav-tabs {\n border-bottom: 1px solid #dee2e6;\n}\n\n.nav-tabs .nav-item {\n margin-bottom: -1px;\n}\n\n.nav-tabs .nav-link {\n border: 1px solid transparent;\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.nav-tabs .nav-link:hover, .nav-tabs .nav-link:focus {\n border-color: #e9ecef #e9ecef #dee2e6;\n}\n\n.nav-tabs .nav-link.disabled {\n color: #6c757d;\n background-color: transparent;\n border-color: transparent;\n}\n\n.nav-tabs .nav-link.active,\n.nav-tabs .nav-item.show .nav-link {\n color: #495057;\n background-color: #fff;\n border-color: #dee2e6 #dee2e6 #fff;\n}\n\n.nav-tabs .dropdown-menu {\n margin-top: -1px;\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.nav-pills .nav-link {\n border-radius: 0.25rem;\n}\n\n.nav-pills .nav-link.active,\n.nav-pills .show > .nav-link {\n color: #fff;\n background-color: #007bff;\n}\n\n.nav-fill .nav-item {\n flex: 1 1 auto;\n text-align: center;\n}\n\n.nav-justified .nav-item {\n flex-basis: 0;\n flex-grow: 1;\n text-align: center;\n}\n\n.tab-content > .tab-pane {\n display: none;\n}\n\n.tab-content > .active {\n display: block;\n}\n\n.navbar {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 0.5rem 1rem;\n}\n\n.navbar .container,\n.navbar .container-fluid, .navbar .container-sm, .navbar .container-md, .navbar .container-lg, .navbar .container-xl {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n}\n\n.navbar-brand {\n display: inline-block;\n padding-top: 0.3125rem;\n padding-bottom: 0.3125rem;\n margin-right: 1rem;\n font-size: 1.25rem;\n line-height: inherit;\n white-space: nowrap;\n}\n\n.navbar-brand:hover, .navbar-brand:focus {\n text-decoration: none;\n}\n\n.navbar-nav {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n list-style: none;\n}\n\n.navbar-nav .nav-link {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-nav .dropdown-menu {\n position: static;\n float: none;\n}\n\n.navbar-text {\n display: inline-block;\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.navbar-collapse {\n flex-basis: 100%;\n flex-grow: 1;\n align-items: center;\n}\n\n.navbar-toggler {\n padding: 0.25rem 0.75rem;\n font-size: 1.25rem;\n line-height: 1;\n background-color: transparent;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.navbar-toggler:hover, .navbar-toggler:focus {\n text-decoration: none;\n}\n\n.navbar-toggler-icon {\n display: inline-block;\n width: 1.5em;\n height: 1.5em;\n vertical-align: middle;\n content: \"\";\n background: no-repeat center center;\n background-size: 100% 100%;\n}\n\n@media (max-width: 575.98px) {\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 576px) {\n .navbar-expand-sm {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-sm .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-sm .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-sm .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-sm > .container,\n .navbar-expand-sm > .container-fluid, .navbar-expand-sm > .container-sm, .navbar-expand-sm > .container-md, .navbar-expand-sm > .container-lg, .navbar-expand-sm > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-sm .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-sm .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 767.98px) {\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .navbar-expand-md {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-md .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-md .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-md .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-md > .container,\n .navbar-expand-md > .container-fluid, .navbar-expand-md > .container-sm, .navbar-expand-md > .container-md, .navbar-expand-md > .container-lg, .navbar-expand-md > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-md .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-md .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 991.98px) {\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .navbar-expand-lg {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-lg .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-lg .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-lg .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-lg > .container,\n .navbar-expand-lg > .container-fluid, .navbar-expand-lg > .container-sm, .navbar-expand-lg > .container-md, .navbar-expand-lg > .container-lg, .navbar-expand-lg > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-lg .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-lg .navbar-toggler {\n display: none;\n }\n}\n\n@media (max-width: 1199.98px) {\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n padding-right: 0;\n padding-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .navbar-expand-xl {\n flex-flow: row nowrap;\n justify-content: flex-start;\n }\n .navbar-expand-xl .navbar-nav {\n flex-direction: row;\n }\n .navbar-expand-xl .navbar-nav .dropdown-menu {\n position: absolute;\n }\n .navbar-expand-xl .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n }\n .navbar-expand-xl > .container,\n .navbar-expand-xl > .container-fluid, .navbar-expand-xl > .container-sm, .navbar-expand-xl > .container-md, .navbar-expand-xl > .container-lg, .navbar-expand-xl > .container-xl {\n flex-wrap: nowrap;\n }\n .navbar-expand-xl .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n }\n .navbar-expand-xl .navbar-toggler {\n display: none;\n }\n}\n\n.navbar-expand {\n flex-flow: row nowrap;\n justify-content: flex-start;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n padding-right: 0;\n padding-left: 0;\n}\n\n.navbar-expand .navbar-nav {\n flex-direction: row;\n}\n\n.navbar-expand .navbar-nav .dropdown-menu {\n position: absolute;\n}\n\n.navbar-expand .navbar-nav .nav-link {\n padding-right: 0.5rem;\n padding-left: 0.5rem;\n}\n\n.navbar-expand > .container,\n.navbar-expand > .container-fluid, .navbar-expand > .container-sm, .navbar-expand > .container-md, .navbar-expand > .container-lg, .navbar-expand > .container-xl {\n flex-wrap: nowrap;\n}\n\n.navbar-expand .navbar-collapse {\n display: flex !important;\n flex-basis: auto;\n}\n\n.navbar-expand .navbar-toggler {\n display: none;\n}\n\n.navbar-light .navbar-brand {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-brand:hover, .navbar-light .navbar-brand:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-nav .nav-link {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-nav .nav-link:hover, .navbar-light .navbar-nav .nav-link:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.navbar-light .navbar-nav .nav-link.disabled {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.navbar-light .navbar-nav .show > .nav-link,\n.navbar-light .navbar-nav .active > .nav-link,\n.navbar-light .navbar-nav .nav-link.show,\n.navbar-light .navbar-nav .nav-link.active {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-toggler {\n color: rgba(0, 0, 0, 0.5);\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.navbar-light .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-light .navbar-text {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.navbar-light .navbar-text a {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-light .navbar-text a:hover, .navbar-light .navbar-text a:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.navbar-dark .navbar-brand {\n color: #fff;\n}\n\n.navbar-dark .navbar-brand:hover, .navbar-dark .navbar-brand:focus {\n color: #fff;\n}\n\n.navbar-dark .navbar-nav .nav-link {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link:focus {\n color: rgba(255, 255, 255, 0.75);\n}\n\n.navbar-dark .navbar-nav .nav-link.disabled {\n color: rgba(255, 255, 255, 0.25);\n}\n\n.navbar-dark .navbar-nav .show > .nav-link,\n.navbar-dark .navbar-nav .active > .nav-link,\n.navbar-dark .navbar-nav .nav-link.show,\n.navbar-dark .navbar-nav .nav-link.active {\n color: #fff;\n}\n\n.navbar-dark .navbar-toggler {\n color: rgba(255, 255, 255, 0.5);\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.navbar-dark .navbar-toggler-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='30' height='30' viewBox='0 0 30 30'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e\");\n}\n\n.navbar-dark .navbar-text {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.navbar-dark .navbar-text a {\n color: #fff;\n}\n\n.navbar-dark .navbar-text a:hover, .navbar-dark .navbar-text a:focus {\n color: #fff;\n}\n\n.card {\n position: relative;\n display: flex;\n flex-direction: column;\n min-width: 0;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: border-box;\n border: 1px solid rgba(0, 0, 0, 0.125);\n border-radius: 0.25rem;\n}\n\n.card > hr {\n margin-right: 0;\n margin-left: 0;\n}\n\n.card > .list-group:first-child .list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.card > .list-group:last-child .list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.card-body {\n flex: 1 1 auto;\n min-height: 1px;\n padding: 1.25rem;\n}\n\n.card-title {\n margin-bottom: 0.75rem;\n}\n\n.card-subtitle {\n margin-top: -0.375rem;\n margin-bottom: 0;\n}\n\n.card-text:last-child {\n margin-bottom: 0;\n}\n\n.card-link:hover {\n text-decoration: none;\n}\n\n.card-link + .card-link {\n margin-left: 1.25rem;\n}\n\n.card-header {\n padding: 0.75rem 1.25rem;\n margin-bottom: 0;\n background-color: rgba(0, 0, 0, 0.03);\n border-bottom: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-header:first-child {\n border-radius: calc(0.25rem - 1px) calc(0.25rem - 1px) 0 0;\n}\n\n.card-header + .list-group .list-group-item:first-child {\n border-top: 0;\n}\n\n.card-footer {\n padding: 0.75rem 1.25rem;\n background-color: rgba(0, 0, 0, 0.03);\n border-top: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.card-footer:last-child {\n border-radius: 0 0 calc(0.25rem - 1px) calc(0.25rem - 1px);\n}\n\n.card-header-tabs {\n margin-right: -0.625rem;\n margin-bottom: -0.75rem;\n margin-left: -0.625rem;\n border-bottom: 0;\n}\n\n.card-header-pills {\n margin-right: -0.625rem;\n margin-left: -0.625rem;\n}\n\n.card-img-overlay {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n padding: 1.25rem;\n}\n\n.card-img,\n.card-img-top,\n.card-img-bottom {\n flex-shrink: 0;\n width: 100%;\n}\n\n.card-img,\n.card-img-top {\n border-top-left-radius: calc(0.25rem - 1px);\n border-top-right-radius: calc(0.25rem - 1px);\n}\n\n.card-img,\n.card-img-bottom {\n border-bottom-right-radius: calc(0.25rem - 1px);\n border-bottom-left-radius: calc(0.25rem - 1px);\n}\n\n.card-deck .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-deck {\n display: flex;\n flex-flow: row wrap;\n margin-right: -15px;\n margin-left: -15px;\n }\n .card-deck .card {\n flex: 1 0 0%;\n margin-right: 15px;\n margin-bottom: 0;\n margin-left: 15px;\n }\n}\n\n.card-group > .card {\n margin-bottom: 15px;\n}\n\n@media (min-width: 576px) {\n .card-group {\n display: flex;\n flex-flow: row wrap;\n }\n .card-group > .card {\n flex: 1 0 0%;\n margin-bottom: 0;\n }\n .card-group > .card + .card {\n margin-left: 0;\n border-left: 0;\n }\n .card-group > .card:not(:last-child) {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-top,\n .card-group > .card:not(:last-child) .card-header {\n border-top-right-radius: 0;\n }\n .card-group > .card:not(:last-child) .card-img-bottom,\n .card-group > .card:not(:last-child) .card-footer {\n border-bottom-right-radius: 0;\n }\n .card-group > .card:not(:first-child) {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-top,\n .card-group > .card:not(:first-child) .card-header {\n border-top-left-radius: 0;\n }\n .card-group > .card:not(:first-child) .card-img-bottom,\n .card-group > .card:not(:first-child) .card-footer {\n border-bottom-left-radius: 0;\n }\n}\n\n.card-columns .card {\n margin-bottom: 0.75rem;\n}\n\n@media (min-width: 576px) {\n .card-columns {\n column-count: 3;\n column-gap: 1.25rem;\n orphans: 1;\n widows: 1;\n }\n .card-columns .card {\n display: inline-block;\n width: 100%;\n }\n}\n\n.accordion > .card {\n overflow: hidden;\n}\n\n.accordion > .card:not(:last-of-type) {\n border-bottom: 0;\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.accordion > .card:not(:first-of-type) {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.accordion > .card > .card-header {\n border-radius: 0;\n margin-bottom: -1px;\n}\n\n.breadcrumb {\n display: flex;\n flex-wrap: wrap;\n padding: 0.75rem 1rem;\n margin-bottom: 1rem;\n list-style: none;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.breadcrumb-item + .breadcrumb-item {\n padding-left: 0.5rem;\n}\n\n.breadcrumb-item + .breadcrumb-item::before {\n display: inline-block;\n padding-right: 0.5rem;\n color: #6c757d;\n content: \"/\";\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: underline;\n}\n\n.breadcrumb-item + .breadcrumb-item:hover::before {\n text-decoration: none;\n}\n\n.breadcrumb-item.active {\n color: #6c757d;\n}\n\n.pagination {\n display: flex;\n padding-left: 0;\n list-style: none;\n border-radius: 0.25rem;\n}\n\n.page-link {\n position: relative;\n display: block;\n padding: 0.5rem 0.75rem;\n margin-left: -1px;\n line-height: 1.25;\n color: #007bff;\n background-color: #fff;\n border: 1px solid #dee2e6;\n}\n\n.page-link:hover {\n z-index: 2;\n color: #0056b3;\n text-decoration: none;\n background-color: #e9ecef;\n border-color: #dee2e6;\n}\n\n.page-link:focus {\n z-index: 3;\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);\n}\n\n.page-item:first-child .page-link {\n margin-left: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.page-item:last-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n}\n\n.page-item.active .page-link {\n z-index: 3;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.page-item.disabled .page-link {\n color: #6c757d;\n pointer-events: none;\n cursor: auto;\n background-color: #fff;\n border-color: #dee2e6;\n}\n\n.pagination-lg .page-link {\n padding: 0.75rem 1.5rem;\n font-size: 1.25rem;\n line-height: 1.5;\n}\n\n.pagination-lg .page-item:first-child .page-link {\n border-top-left-radius: 0.3rem;\n border-bottom-left-radius: 0.3rem;\n}\n\n.pagination-lg .page-item:last-child .page-link {\n border-top-right-radius: 0.3rem;\n border-bottom-right-radius: 0.3rem;\n}\n\n.pagination-sm .page-link {\n padding: 0.25rem 0.5rem;\n font-size: 0.875rem;\n line-height: 1.5;\n}\n\n.pagination-sm .page-item:first-child .page-link {\n border-top-left-radius: 0.2rem;\n border-bottom-left-radius: 0.2rem;\n}\n\n.pagination-sm .page-item:last-child .page-link {\n border-top-right-radius: 0.2rem;\n border-bottom-right-radius: 0.2rem;\n}\n\n.badge {\n display: inline-block;\n padding: 0.25em 0.4em;\n font-size: 75%;\n font-weight: 700;\n line-height: 1;\n text-align: center;\n white-space: nowrap;\n vertical-align: baseline;\n border-radius: 0.25rem;\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .badge {\n transition: none;\n }\n}\n\na.badge:hover, a.badge:focus {\n text-decoration: none;\n}\n\n.badge:empty {\n display: none;\n}\n\n.btn .badge {\n position: relative;\n top: -1px;\n}\n\n.badge-pill {\n padding-right: 0.6em;\n padding-left: 0.6em;\n border-radius: 10rem;\n}\n\n.badge-primary {\n color: #fff;\n background-color: #007bff;\n}\n\na.badge-primary:hover, a.badge-primary:focus {\n color: #fff;\n background-color: #0062cc;\n}\n\na.badge-primary:focus, a.badge-primary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.5);\n}\n\n.badge-secondary {\n color: #fff;\n background-color: #6c757d;\n}\n\na.badge-secondary:hover, a.badge-secondary:focus {\n color: #fff;\n background-color: #545b62;\n}\n\na.badge-secondary:focus, a.badge-secondary.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(108, 117, 125, 0.5);\n}\n\n.badge-success {\n color: #fff;\n background-color: #28a745;\n}\n\na.badge-success:hover, a.badge-success:focus {\n color: #fff;\n background-color: #1e7e34;\n}\n\na.badge-success:focus, a.badge-success.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.5);\n}\n\n.badge-info {\n color: #fff;\n background-color: #17a2b8;\n}\n\na.badge-info:hover, a.badge-info:focus {\n color: #fff;\n background-color: #117a8b;\n}\n\na.badge-info:focus, a.badge-info.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(23, 162, 184, 0.5);\n}\n\n.badge-warning {\n color: #212529;\n background-color: #ffc107;\n}\n\na.badge-warning:hover, a.badge-warning:focus {\n color: #212529;\n background-color: #d39e00;\n}\n\na.badge-warning:focus, a.badge-warning.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(255, 193, 7, 0.5);\n}\n\n.badge-danger {\n color: #fff;\n background-color: #dc3545;\n}\n\na.badge-danger:hover, a.badge-danger:focus {\n color: #fff;\n background-color: #bd2130;\n}\n\na.badge-danger:focus, a.badge-danger.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(220, 53, 69, 0.5);\n}\n\n.badge-light {\n color: #212529;\n background-color: #f8f9fa;\n}\n\na.badge-light:hover, a.badge-light:focus {\n color: #212529;\n background-color: #dae0e5;\n}\n\na.badge-light:focus, a.badge-light.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(248, 249, 250, 0.5);\n}\n\n.badge-dark {\n color: #fff;\n background-color: #343a40;\n}\n\na.badge-dark:hover, a.badge-dark:focus {\n color: #fff;\n background-color: #1d2124;\n}\n\na.badge-dark:focus, a.badge-dark.focus {\n outline: 0;\n box-shadow: 0 0 0 0.2rem rgba(52, 58, 64, 0.5);\n}\n\n.jumbotron {\n padding: 2rem 1rem;\n margin-bottom: 2rem;\n background-color: #e9ecef;\n border-radius: 0.3rem;\n}\n\n@media (min-width: 576px) {\n .jumbotron {\n padding: 4rem 2rem;\n }\n}\n\n.jumbotron-fluid {\n padding-right: 0;\n padding-left: 0;\n border-radius: 0;\n}\n\n.alert {\n position: relative;\n padding: 0.75rem 1.25rem;\n margin-bottom: 1rem;\n border: 1px solid transparent;\n border-radius: 0.25rem;\n}\n\n.alert-heading {\n color: inherit;\n}\n\n.alert-link {\n font-weight: 700;\n}\n\n.alert-dismissible {\n padding-right: 4rem;\n}\n\n.alert-dismissible .close {\n position: absolute;\n top: 0;\n right: 0;\n padding: 0.75rem 1.25rem;\n color: inherit;\n}\n\n.alert-primary {\n color: #004085;\n background-color: #cce5ff;\n border-color: #b8daff;\n}\n\n.alert-primary hr {\n border-top-color: #9fcdff;\n}\n\n.alert-primary .alert-link {\n color: #002752;\n}\n\n.alert-secondary {\n color: #383d41;\n background-color: #e2e3e5;\n border-color: #d6d8db;\n}\n\n.alert-secondary hr {\n border-top-color: #c8cbcf;\n}\n\n.alert-secondary .alert-link {\n color: #202326;\n}\n\n.alert-success {\n color: #155724;\n background-color: #d4edda;\n border-color: #c3e6cb;\n}\n\n.alert-success hr {\n border-top-color: #b1dfbb;\n}\n\n.alert-success .alert-link {\n color: #0b2e13;\n}\n\n.alert-info {\n color: #0c5460;\n background-color: #d1ecf1;\n border-color: #bee5eb;\n}\n\n.alert-info hr {\n border-top-color: #abdde5;\n}\n\n.alert-info .alert-link {\n color: #062c33;\n}\n\n.alert-warning {\n color: #856404;\n background-color: #fff3cd;\n border-color: #ffeeba;\n}\n\n.alert-warning hr {\n border-top-color: #ffe8a1;\n}\n\n.alert-warning .alert-link {\n color: #533f03;\n}\n\n.alert-danger {\n color: #721c24;\n background-color: #f8d7da;\n border-color: #f5c6cb;\n}\n\n.alert-danger hr {\n border-top-color: #f1b0b7;\n}\n\n.alert-danger .alert-link {\n color: #491217;\n}\n\n.alert-light {\n color: #818182;\n background-color: #fefefe;\n border-color: #fdfdfe;\n}\n\n.alert-light hr {\n border-top-color: #ececf6;\n}\n\n.alert-light .alert-link {\n color: #686868;\n}\n\n.alert-dark {\n color: #1b1e21;\n background-color: #d6d8d9;\n border-color: #c6c8ca;\n}\n\n.alert-dark hr {\n border-top-color: #b9bbbe;\n}\n\n.alert-dark .alert-link {\n color: #040505;\n}\n\n@keyframes progress-bar-stripes {\n from {\n background-position: 1rem 0;\n }\n to {\n background-position: 0 0;\n }\n}\n\n.progress {\n display: flex;\n height: 1rem;\n overflow: hidden;\n font-size: 0.75rem;\n background-color: #e9ecef;\n border-radius: 0.25rem;\n}\n\n.progress-bar {\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n color: #fff;\n text-align: center;\n white-space: nowrap;\n background-color: #007bff;\n transition: width 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar {\n transition: none;\n }\n}\n\n.progress-bar-striped {\n background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);\n background-size: 1rem 1rem;\n}\n\n.progress-bar-animated {\n animation: progress-bar-stripes 1s linear infinite;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .progress-bar-animated {\n animation: none;\n }\n}\n\n.media {\n display: flex;\n align-items: flex-start;\n}\n\n.media-body {\n flex: 1;\n}\n\n.list-group {\n display: flex;\n flex-direction: column;\n padding-left: 0;\n margin-bottom: 0;\n}\n\n.list-group-item-action {\n width: 100%;\n color: #495057;\n text-align: inherit;\n}\n\n.list-group-item-action:hover, .list-group-item-action:focus {\n z-index: 1;\n color: #495057;\n text-decoration: none;\n background-color: #f8f9fa;\n}\n\n.list-group-item-action:active {\n color: #212529;\n background-color: #e9ecef;\n}\n\n.list-group-item {\n position: relative;\n display: block;\n padding: 0.75rem 1.25rem;\n background-color: #fff;\n border: 1px solid rgba(0, 0, 0, 0.125);\n}\n\n.list-group-item:first-child {\n border-top-left-radius: 0.25rem;\n border-top-right-radius: 0.25rem;\n}\n\n.list-group-item:last-child {\n border-bottom-right-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.list-group-item.disabled, .list-group-item:disabled {\n color: #6c757d;\n pointer-events: none;\n background-color: #fff;\n}\n\n.list-group-item.active {\n z-index: 2;\n color: #fff;\n background-color: #007bff;\n border-color: #007bff;\n}\n\n.list-group-item + .list-group-item {\n border-top-width: 0;\n}\n\n.list-group-item + .list-group-item.active {\n margin-top: -1px;\n border-top-width: 1px;\n}\n\n.list-group-horizontal {\n flex-direction: row;\n}\n\n.list-group-horizontal .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n}\n\n.list-group-horizontal .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n}\n\n.list-group-horizontal .list-group-item.active {\n margin-top: 0;\n}\n\n.list-group-horizontal .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n}\n\n.list-group-horizontal .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n}\n\n@media (min-width: 576px) {\n .list-group-horizontal-sm {\n flex-direction: row;\n }\n .list-group-horizontal-sm .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-sm .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-sm .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-sm .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-sm .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 768px) {\n .list-group-horizontal-md {\n flex-direction: row;\n }\n .list-group-horizontal-md .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-md .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-md .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-md .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-md .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 992px) {\n .list-group-horizontal-lg {\n flex-direction: row;\n }\n .list-group-horizontal-lg .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-lg .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-lg .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-lg .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-lg .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n@media (min-width: 1200px) {\n .list-group-horizontal-xl {\n flex-direction: row;\n }\n .list-group-horizontal-xl .list-group-item:first-child {\n border-bottom-left-radius: 0.25rem;\n border-top-right-radius: 0;\n }\n .list-group-horizontal-xl .list-group-item:last-child {\n border-top-right-radius: 0.25rem;\n border-bottom-left-radius: 0;\n }\n .list-group-horizontal-xl .list-group-item.active {\n margin-top: 0;\n }\n .list-group-horizontal-xl .list-group-item + .list-group-item {\n border-top-width: 1px;\n border-left-width: 0;\n }\n .list-group-horizontal-xl .list-group-item + .list-group-item.active {\n margin-left: -1px;\n border-left-width: 1px;\n }\n}\n\n.list-group-flush .list-group-item {\n border-right-width: 0;\n border-left-width: 0;\n border-radius: 0;\n}\n\n.list-group-flush .list-group-item:first-child {\n border-top-width: 0;\n}\n\n.list-group-flush:last-child .list-group-item:last-child {\n border-bottom-width: 0;\n}\n\n.list-group-item-primary {\n color: #004085;\n background-color: #b8daff;\n}\n\n.list-group-item-primary.list-group-item-action:hover, .list-group-item-primary.list-group-item-action:focus {\n color: #004085;\n background-color: #9fcdff;\n}\n\n.list-group-item-primary.list-group-item-action.active {\n color: #fff;\n background-color: #004085;\n border-color: #004085;\n}\n\n.list-group-item-secondary {\n color: #383d41;\n background-color: #d6d8db;\n}\n\n.list-group-item-secondary.list-group-item-action:hover, .list-group-item-secondary.list-group-item-action:focus {\n color: #383d41;\n background-color: #c8cbcf;\n}\n\n.list-group-item-secondary.list-group-item-action.active {\n color: #fff;\n background-color: #383d41;\n border-color: #383d41;\n}\n\n.list-group-item-success {\n color: #155724;\n background-color: #c3e6cb;\n}\n\n.list-group-item-success.list-group-item-action:hover, .list-group-item-success.list-group-item-action:focus {\n color: #155724;\n background-color: #b1dfbb;\n}\n\n.list-group-item-success.list-group-item-action.active {\n color: #fff;\n background-color: #155724;\n border-color: #155724;\n}\n\n.list-group-item-info {\n color: #0c5460;\n background-color: #bee5eb;\n}\n\n.list-group-item-info.list-group-item-action:hover, .list-group-item-info.list-group-item-action:focus {\n color: #0c5460;\n background-color: #abdde5;\n}\n\n.list-group-item-info.list-group-item-action.active {\n color: #fff;\n background-color: #0c5460;\n border-color: #0c5460;\n}\n\n.list-group-item-warning {\n color: #856404;\n background-color: #ffeeba;\n}\n\n.list-group-item-warning.list-group-item-action:hover, .list-group-item-warning.list-group-item-action:focus {\n color: #856404;\n background-color: #ffe8a1;\n}\n\n.list-group-item-warning.list-group-item-action.active {\n color: #fff;\n background-color: #856404;\n border-color: #856404;\n}\n\n.list-group-item-danger {\n color: #721c24;\n background-color: #f5c6cb;\n}\n\n.list-group-item-danger.list-group-item-action:hover, .list-group-item-danger.list-group-item-action:focus {\n color: #721c24;\n background-color: #f1b0b7;\n}\n\n.list-group-item-danger.list-group-item-action.active {\n color: #fff;\n background-color: #721c24;\n border-color: #721c24;\n}\n\n.list-group-item-light {\n color: #818182;\n background-color: #fdfdfe;\n}\n\n.list-group-item-light.list-group-item-action:hover, .list-group-item-light.list-group-item-action:focus {\n color: #818182;\n background-color: #ececf6;\n}\n\n.list-group-item-light.list-group-item-action.active {\n color: #fff;\n background-color: #818182;\n border-color: #818182;\n}\n\n.list-group-item-dark {\n color: #1b1e21;\n background-color: #c6c8ca;\n}\n\n.list-group-item-dark.list-group-item-action:hover, .list-group-item-dark.list-group-item-action:focus {\n color: #1b1e21;\n background-color: #b9bbbe;\n}\n\n.list-group-item-dark.list-group-item-action.active {\n color: #fff;\n background-color: #1b1e21;\n border-color: #1b1e21;\n}\n\n.close {\n float: right;\n font-size: 1.5rem;\n font-weight: 700;\n line-height: 1;\n color: #000;\n text-shadow: 0 1px 0 #fff;\n opacity: .5;\n}\n\n.close:hover {\n color: #000;\n text-decoration: none;\n}\n\n.close:not(:disabled):not(.disabled):hover, .close:not(:disabled):not(.disabled):focus {\n opacity: .75;\n}\n\nbutton.close {\n padding: 0;\n background-color: transparent;\n border: 0;\n appearance: none;\n}\n\na.close.disabled {\n pointer-events: none;\n}\n\n.toast {\n max-width: 350px;\n overflow: hidden;\n font-size: 0.875rem;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.1);\n box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.1);\n backdrop-filter: blur(10px);\n opacity: 0;\n border-radius: 0.25rem;\n}\n\n.toast:not(:last-child) {\n margin-bottom: 0.75rem;\n}\n\n.toast.showing {\n opacity: 1;\n}\n\n.toast.show {\n display: block;\n opacity: 1;\n}\n\n.toast.hide {\n display: none;\n}\n\n.toast-header {\n display: flex;\n align-items: center;\n padding: 0.25rem 0.75rem;\n color: #6c757d;\n background-color: rgba(255, 255, 255, 0.85);\n background-clip: padding-box;\n border-bottom: 1px solid rgba(0, 0, 0, 0.05);\n}\n\n.toast-body {\n padding: 0.75rem;\n}\n\n.modal-open {\n overflow: hidden;\n}\n\n.modal-open .modal {\n overflow-x: hidden;\n overflow-y: auto;\n}\n\n.modal {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1050;\n display: none;\n width: 100%;\n height: 100%;\n overflow: hidden;\n outline: 0;\n}\n\n.modal-dialog {\n position: relative;\n width: auto;\n margin: 0.5rem;\n pointer-events: none;\n}\n\n.modal.fade .modal-dialog {\n transition: transform 0.3s ease-out;\n transform: translate(0, -50px);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .modal.fade .modal-dialog {\n transition: none;\n }\n}\n\n.modal.show .modal-dialog {\n transform: none;\n}\n\n.modal.modal-static .modal-dialog {\n transform: scale(1.02);\n}\n\n.modal-dialog-scrollable {\n display: flex;\n max-height: calc(100% - 1rem);\n}\n\n.modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 1rem);\n overflow: hidden;\n}\n\n.modal-dialog-scrollable .modal-header,\n.modal-dialog-scrollable .modal-footer {\n flex-shrink: 0;\n}\n\n.modal-dialog-scrollable .modal-body {\n overflow-y: auto;\n}\n\n.modal-dialog-centered {\n display: flex;\n align-items: center;\n min-height: calc(100% - 1rem);\n}\n\n.modal-dialog-centered::before {\n display: block;\n height: calc(100vh - 1rem);\n content: \"\";\n}\n\n.modal-dialog-centered.modal-dialog-scrollable {\n flex-direction: column;\n justify-content: center;\n height: 100%;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable .modal-content {\n max-height: none;\n}\n\n.modal-dialog-centered.modal-dialog-scrollable::before {\n content: none;\n}\n\n.modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n pointer-events: auto;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n outline: 0;\n}\n\n.modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n z-index: 1040;\n width: 100vw;\n height: 100vh;\n background-color: #000;\n}\n\n.modal-backdrop.fade {\n opacity: 0;\n}\n\n.modal-backdrop.show {\n opacity: 0.5;\n}\n\n.modal-header {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n padding: 1rem 1rem;\n border-bottom: 1px solid #dee2e6;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.modal-header .close {\n padding: 1rem 1rem;\n margin: -1rem -1rem -1rem auto;\n}\n\n.modal-title {\n margin-bottom: 0;\n line-height: 1.5;\n}\n\n.modal-body {\n position: relative;\n flex: 1 1 auto;\n padding: 1rem;\n}\n\n.modal-footer {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: flex-end;\n padding: 0.75rem;\n border-top: 1px solid #dee2e6;\n border-bottom-right-radius: calc(0.3rem - 1px);\n border-bottom-left-radius: calc(0.3rem - 1px);\n}\n\n.modal-footer > * {\n margin: 0.25rem;\n}\n\n.modal-scrollbar-measure {\n position: absolute;\n top: -9999px;\n width: 50px;\n height: 50px;\n overflow: scroll;\n}\n\n@media (min-width: 576px) {\n .modal-dialog {\n max-width: 500px;\n margin: 1.75rem auto;\n }\n .modal-dialog-scrollable {\n max-height: calc(100% - 3.5rem);\n }\n .modal-dialog-scrollable .modal-content {\n max-height: calc(100vh - 3.5rem);\n }\n .modal-dialog-centered {\n min-height: calc(100% - 3.5rem);\n }\n .modal-dialog-centered::before {\n height: calc(100vh - 3.5rem);\n }\n .modal-sm {\n max-width: 300px;\n }\n}\n\n@media (min-width: 992px) {\n .modal-lg,\n .modal-xl {\n max-width: 800px;\n }\n}\n\n@media (min-width: 1200px) {\n .modal-xl {\n max-width: 1140px;\n }\n}\n\n.tooltip {\n position: absolute;\n z-index: 1070;\n display: block;\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n opacity: 0;\n}\n\n.tooltip.show {\n opacity: 0.9;\n}\n\n.tooltip .arrow {\n position: absolute;\n display: block;\n width: 0.8rem;\n height: 0.4rem;\n}\n\n.tooltip .arrow::before {\n position: absolute;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-tooltip-top, .bs-tooltip-auto[x-placement^=\"top\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-top .arrow, .bs-tooltip-auto[x-placement^=\"top\"] .arrow {\n bottom: 0;\n}\n\n.bs-tooltip-top .arrow::before, .bs-tooltip-auto[x-placement^=\"top\"] .arrow::before {\n top: 0;\n border-width: 0.4rem 0.4rem 0;\n border-top-color: #000;\n}\n\n.bs-tooltip-right, .bs-tooltip-auto[x-placement^=\"right\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-right .arrow, .bs-tooltip-auto[x-placement^=\"right\"] .arrow {\n left: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-right .arrow::before, .bs-tooltip-auto[x-placement^=\"right\"] .arrow::before {\n right: 0;\n border-width: 0.4rem 0.4rem 0.4rem 0;\n border-right-color: #000;\n}\n\n.bs-tooltip-bottom, .bs-tooltip-auto[x-placement^=\"bottom\"] {\n padding: 0.4rem 0;\n}\n\n.bs-tooltip-bottom .arrow, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow {\n top: 0;\n}\n\n.bs-tooltip-bottom .arrow::before, .bs-tooltip-auto[x-placement^=\"bottom\"] .arrow::before {\n bottom: 0;\n border-width: 0 0.4rem 0.4rem;\n border-bottom-color: #000;\n}\n\n.bs-tooltip-left, .bs-tooltip-auto[x-placement^=\"left\"] {\n padding: 0 0.4rem;\n}\n\n.bs-tooltip-left .arrow, .bs-tooltip-auto[x-placement^=\"left\"] .arrow {\n right: 0;\n width: 0.4rem;\n height: 0.8rem;\n}\n\n.bs-tooltip-left .arrow::before, .bs-tooltip-auto[x-placement^=\"left\"] .arrow::before {\n left: 0;\n border-width: 0.4rem 0 0.4rem 0.4rem;\n border-left-color: #000;\n}\n\n.tooltip-inner {\n max-width: 200px;\n padding: 0.25rem 0.5rem;\n color: #fff;\n text-align: center;\n background-color: #000;\n border-radius: 0.25rem;\n}\n\n.popover {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 1060;\n display: block;\n max-width: 276px;\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";\n font-style: normal;\n font-weight: 400;\n line-height: 1.5;\n text-align: left;\n text-align: start;\n text-decoration: none;\n text-shadow: none;\n text-transform: none;\n letter-spacing: normal;\n word-break: normal;\n word-spacing: normal;\n white-space: normal;\n line-break: auto;\n font-size: 0.875rem;\n word-wrap: break-word;\n background-color: #fff;\n background-clip: padding-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n border-radius: 0.3rem;\n}\n\n.popover .arrow {\n position: absolute;\n display: block;\n width: 1rem;\n height: 0.5rem;\n margin: 0 0.3rem;\n}\n\n.popover .arrow::before, .popover .arrow::after {\n position: absolute;\n display: block;\n content: \"\";\n border-color: transparent;\n border-style: solid;\n}\n\n.bs-popover-top, .bs-popover-auto[x-placement^=\"top\"] {\n margin-bottom: 0.5rem;\n}\n\n.bs-popover-top > .arrow, .bs-popover-auto[x-placement^=\"top\"] > .arrow {\n bottom: calc(-0.5rem - 1px);\n}\n\n.bs-popover-top > .arrow::before, .bs-popover-auto[x-placement^=\"top\"] > .arrow::before {\n bottom: 0;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-top > .arrow::after, .bs-popover-auto[x-placement^=\"top\"] > .arrow::after {\n bottom: 1px;\n border-width: 0.5rem 0.5rem 0;\n border-top-color: #fff;\n}\n\n.bs-popover-right, .bs-popover-auto[x-placement^=\"right\"] {\n margin-left: 0.5rem;\n}\n\n.bs-popover-right > .arrow, .bs-popover-auto[x-placement^=\"right\"] > .arrow {\n left: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-right > .arrow::before, .bs-popover-auto[x-placement^=\"right\"] > .arrow::before {\n left: 0;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-right > .arrow::after, .bs-popover-auto[x-placement^=\"right\"] > .arrow::after {\n left: 1px;\n border-width: 0.5rem 0.5rem 0.5rem 0;\n border-right-color: #fff;\n}\n\n.bs-popover-bottom, .bs-popover-auto[x-placement^=\"bottom\"] {\n margin-top: 0.5rem;\n}\n\n.bs-popover-bottom > .arrow, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow {\n top: calc(-0.5rem - 1px);\n}\n\n.bs-popover-bottom > .arrow::before, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::before {\n top: 0;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-bottom > .arrow::after, .bs-popover-auto[x-placement^=\"bottom\"] > .arrow::after {\n top: 1px;\n border-width: 0 0.5rem 0.5rem 0.5rem;\n border-bottom-color: #fff;\n}\n\n.bs-popover-bottom .popover-header::before, .bs-popover-auto[x-placement^=\"bottom\"] .popover-header::before {\n position: absolute;\n top: 0;\n left: 50%;\n display: block;\n width: 1rem;\n margin-left: -0.5rem;\n content: \"\";\n border-bottom: 1px solid #f7f7f7;\n}\n\n.bs-popover-left, .bs-popover-auto[x-placement^=\"left\"] {\n margin-right: 0.5rem;\n}\n\n.bs-popover-left > .arrow, .bs-popover-auto[x-placement^=\"left\"] > .arrow {\n right: calc(-0.5rem - 1px);\n width: 0.5rem;\n height: 1rem;\n margin: 0.3rem 0;\n}\n\n.bs-popover-left > .arrow::before, .bs-popover-auto[x-placement^=\"left\"] > .arrow::before {\n right: 0;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: rgba(0, 0, 0, 0.25);\n}\n\n.bs-popover-left > .arrow::after, .bs-popover-auto[x-placement^=\"left\"] > .arrow::after {\n right: 1px;\n border-width: 0.5rem 0 0.5rem 0.5rem;\n border-left-color: #fff;\n}\n\n.popover-header {\n padding: 0.5rem 0.75rem;\n margin-bottom: 0;\n font-size: 1rem;\n background-color: #f7f7f7;\n border-bottom: 1px solid #ebebeb;\n border-top-left-radius: calc(0.3rem - 1px);\n border-top-right-radius: calc(0.3rem - 1px);\n}\n\n.popover-header:empty {\n display: none;\n}\n\n.popover-body {\n padding: 0.5rem 0.75rem;\n color: #212529;\n}\n\n.carousel {\n position: relative;\n}\n\n.carousel.pointer-event {\n touch-action: pan-y;\n}\n\n.carousel-inner {\n position: relative;\n width: 100%;\n overflow: hidden;\n}\n\n.carousel-inner::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.carousel-item {\n position: relative;\n display: none;\n float: left;\n width: 100%;\n margin-right: -100%;\n backface-visibility: hidden;\n transition: transform 0.6s ease-in-out;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-item {\n transition: none;\n }\n}\n\n.carousel-item.active,\n.carousel-item-next,\n.carousel-item-prev {\n display: block;\n}\n\n.carousel-item-next:not(.carousel-item-left),\n.active.carousel-item-right {\n transform: translateX(100%);\n}\n\n.carousel-item-prev:not(.carousel-item-right),\n.active.carousel-item-left {\n transform: translateX(-100%);\n}\n\n.carousel-fade .carousel-item {\n opacity: 0;\n transition-property: opacity;\n transform: none;\n}\n\n.carousel-fade .carousel-item.active,\n.carousel-fade .carousel-item-next.carousel-item-left,\n.carousel-fade .carousel-item-prev.carousel-item-right {\n z-index: 1;\n opacity: 1;\n}\n\n.carousel-fade .active.carousel-item-left,\n.carousel-fade .active.carousel-item-right {\n z-index: 0;\n opacity: 0;\n transition: opacity 0s 0.6s;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-fade .active.carousel-item-left,\n .carousel-fade .active.carousel-item-right {\n transition: none;\n }\n}\n\n.carousel-control-prev,\n.carousel-control-next {\n position: absolute;\n top: 0;\n bottom: 0;\n z-index: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 15%;\n color: #fff;\n text-align: center;\n opacity: 0.5;\n transition: opacity 0.15s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-control-prev,\n .carousel-control-next {\n transition: none;\n }\n}\n\n.carousel-control-prev:hover, .carousel-control-prev:focus,\n.carousel-control-next:hover,\n.carousel-control-next:focus {\n color: #fff;\n text-decoration: none;\n outline: 0;\n opacity: 0.9;\n}\n\n.carousel-control-prev {\n left: 0;\n}\n\n.carousel-control-next {\n right: 0;\n}\n\n.carousel-control-prev-icon,\n.carousel-control-next-icon {\n display: inline-block;\n width: 20px;\n height: 20px;\n background: no-repeat 50% / 100% 100%;\n}\n\n.carousel-control-prev-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5L4.25 4l2.5-2.5L5.25 0z'/%3e%3c/svg%3e\");\n}\n\n.carousel-control-next-icon {\n background-image: url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' width='8' height='8' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5L3.75 4l-2.5 2.5L2.75 8l4-4-4-4z'/%3e%3c/svg%3e\");\n}\n\n.carousel-indicators {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 15;\n display: flex;\n justify-content: center;\n padding-left: 0;\n margin-right: 15%;\n margin-left: 15%;\n list-style: none;\n}\n\n.carousel-indicators li {\n box-sizing: content-box;\n flex: 0 1 auto;\n width: 30px;\n height: 3px;\n margin-right: 3px;\n margin-left: 3px;\n text-indent: -999px;\n cursor: pointer;\n background-color: #fff;\n background-clip: padding-box;\n border-top: 10px solid transparent;\n border-bottom: 10px solid transparent;\n opacity: .5;\n transition: opacity 0.6s ease;\n}\n\n@media (prefers-reduced-motion: reduce) {\n .carousel-indicators li {\n transition: none;\n }\n}\n\n.carousel-indicators .active {\n opacity: 1;\n}\n\n.carousel-caption {\n position: absolute;\n right: 15%;\n bottom: 20px;\n left: 15%;\n z-index: 10;\n padding-top: 20px;\n padding-bottom: 20px;\n color: #fff;\n text-align: center;\n}\n\n@keyframes spinner-border {\n to {\n transform: rotate(360deg);\n }\n}\n\n.spinner-border {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n border: 0.25em solid currentColor;\n border-right-color: transparent;\n border-radius: 50%;\n animation: spinner-border .75s linear infinite;\n}\n\n.spinner-border-sm {\n width: 1rem;\n height: 1rem;\n border-width: 0.2em;\n}\n\n@keyframes spinner-grow {\n 0% {\n transform: scale(0);\n }\n 50% {\n opacity: 1;\n }\n}\n\n.spinner-grow {\n display: inline-block;\n width: 2rem;\n height: 2rem;\n vertical-align: text-bottom;\n background-color: currentColor;\n border-radius: 50%;\n opacity: 0;\n animation: spinner-grow .75s linear infinite;\n}\n\n.spinner-grow-sm {\n width: 1rem;\n height: 1rem;\n}\n\n.align-baseline {\n vertical-align: baseline !important;\n}\n\n.align-top {\n vertical-align: top !important;\n}\n\n.align-middle {\n vertical-align: middle !important;\n}\n\n.align-bottom {\n vertical-align: bottom !important;\n}\n\n.align-text-bottom {\n vertical-align: text-bottom !important;\n}\n\n.align-text-top {\n vertical-align: text-top !important;\n}\n\n.bg-primary {\n background-color: #007bff !important;\n}\n\na.bg-primary:hover, a.bg-primary:focus,\nbutton.bg-primary:hover,\nbutton.bg-primary:focus {\n background-color: #0062cc !important;\n}\n\n.bg-secondary {\n background-color: #6c757d !important;\n}\n\na.bg-secondary:hover, a.bg-secondary:focus,\nbutton.bg-secondary:hover,\nbutton.bg-secondary:focus {\n background-color: #545b62 !important;\n}\n\n.bg-success {\n background-color: #28a745 !important;\n}\n\na.bg-success:hover, a.bg-success:focus,\nbutton.bg-success:hover,\nbutton.bg-success:focus {\n background-color: #1e7e34 !important;\n}\n\n.bg-info {\n background-color: #17a2b8 !important;\n}\n\na.bg-info:hover, a.bg-info:focus,\nbutton.bg-info:hover,\nbutton.bg-info:focus {\n background-color: #117a8b !important;\n}\n\n.bg-warning {\n background-color: #ffc107 !important;\n}\n\na.bg-warning:hover, a.bg-warning:focus,\nbutton.bg-warning:hover,\nbutton.bg-warning:focus {\n background-color: #d39e00 !important;\n}\n\n.bg-danger {\n background-color: #dc3545 !important;\n}\n\na.bg-danger:hover, a.bg-danger:focus,\nbutton.bg-danger:hover,\nbutton.bg-danger:focus {\n background-color: #bd2130 !important;\n}\n\n.bg-light {\n background-color: #f8f9fa !important;\n}\n\na.bg-light:hover, a.bg-light:focus,\nbutton.bg-light:hover,\nbutton.bg-light:focus {\n background-color: #dae0e5 !important;\n}\n\n.bg-dark {\n background-color: #343a40 !important;\n}\n\na.bg-dark:hover, a.bg-dark:focus,\nbutton.bg-dark:hover,\nbutton.bg-dark:focus {\n background-color: #1d2124 !important;\n}\n\n.bg-white {\n background-color: #fff !important;\n}\n\n.bg-transparent {\n background-color: transparent !important;\n}\n\n.border {\n border: 1px solid #dee2e6 !important;\n}\n\n.border-top {\n border-top: 1px solid #dee2e6 !important;\n}\n\n.border-right {\n border-right: 1px solid #dee2e6 !important;\n}\n\n.border-bottom {\n border-bottom: 1px solid #dee2e6 !important;\n}\n\n.border-left {\n border-left: 1px solid #dee2e6 !important;\n}\n\n.border-0 {\n border: 0 !important;\n}\n\n.border-top-0 {\n border-top: 0 !important;\n}\n\n.border-right-0 {\n border-right: 0 !important;\n}\n\n.border-bottom-0 {\n border-bottom: 0 !important;\n}\n\n.border-left-0 {\n border-left: 0 !important;\n}\n\n.border-primary {\n border-color: #007bff !important;\n}\n\n.border-secondary {\n border-color: #6c757d !important;\n}\n\n.border-success {\n border-color: #28a745 !important;\n}\n\n.border-info {\n border-color: #17a2b8 !important;\n}\n\n.border-warning {\n border-color: #ffc107 !important;\n}\n\n.border-danger {\n border-color: #dc3545 !important;\n}\n\n.border-light {\n border-color: #f8f9fa !important;\n}\n\n.border-dark {\n border-color: #343a40 !important;\n}\n\n.border-white {\n border-color: #fff !important;\n}\n\n.rounded-sm {\n border-radius: 0.2rem !important;\n}\n\n.rounded {\n border-radius: 0.25rem !important;\n}\n\n.rounded-top {\n border-top-left-radius: 0.25rem !important;\n border-top-right-radius: 0.25rem !important;\n}\n\n.rounded-right {\n border-top-right-radius: 0.25rem !important;\n border-bottom-right-radius: 0.25rem !important;\n}\n\n.rounded-bottom {\n border-bottom-right-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-left {\n border-top-left-radius: 0.25rem !important;\n border-bottom-left-radius: 0.25rem !important;\n}\n\n.rounded-lg {\n border-radius: 0.3rem !important;\n}\n\n.rounded-circle {\n border-radius: 50% !important;\n}\n\n.rounded-pill {\n border-radius: 50rem !important;\n}\n\n.rounded-0 {\n border-radius: 0 !important;\n}\n\n.clearfix::after {\n display: block;\n clear: both;\n content: \"\";\n}\n\n.d-none {\n display: none !important;\n}\n\n.d-inline {\n display: inline !important;\n}\n\n.d-inline-block {\n display: inline-block !important;\n}\n\n.d-block {\n display: block !important;\n}\n\n.d-table {\n display: table !important;\n}\n\n.d-table-row {\n display: table-row !important;\n}\n\n.d-table-cell {\n display: table-cell !important;\n}\n\n.d-flex {\n display: flex !important;\n}\n\n.d-inline-flex {\n display: inline-flex !important;\n}\n\n@media (min-width: 576px) {\n .d-sm-none {\n display: none !important;\n }\n .d-sm-inline {\n display: inline !important;\n }\n .d-sm-inline-block {\n display: inline-block !important;\n }\n .d-sm-block {\n display: block !important;\n }\n .d-sm-table {\n display: table !important;\n }\n .d-sm-table-row {\n display: table-row !important;\n }\n .d-sm-table-cell {\n display: table-cell !important;\n }\n .d-sm-flex {\n display: flex !important;\n }\n .d-sm-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 768px) {\n .d-md-none {\n display: none !important;\n }\n .d-md-inline {\n display: inline !important;\n }\n .d-md-inline-block {\n display: inline-block !important;\n }\n .d-md-block {\n display: block !important;\n }\n .d-md-table {\n display: table !important;\n }\n .d-md-table-row {\n display: table-row !important;\n }\n .d-md-table-cell {\n display: table-cell !important;\n }\n .d-md-flex {\n display: flex !important;\n }\n .d-md-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 992px) {\n .d-lg-none {\n display: none !important;\n }\n .d-lg-inline {\n display: inline !important;\n }\n .d-lg-inline-block {\n display: inline-block !important;\n }\n .d-lg-block {\n display: block !important;\n }\n .d-lg-table {\n display: table !important;\n }\n .d-lg-table-row {\n display: table-row !important;\n }\n .d-lg-table-cell {\n display: table-cell !important;\n }\n .d-lg-flex {\n display: flex !important;\n }\n .d-lg-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media (min-width: 1200px) {\n .d-xl-none {\n display: none !important;\n }\n .d-xl-inline {\n display: inline !important;\n }\n .d-xl-inline-block {\n display: inline-block !important;\n }\n .d-xl-block {\n display: block !important;\n }\n .d-xl-table {\n display: table !important;\n }\n .d-xl-table-row {\n display: table-row !important;\n }\n .d-xl-table-cell {\n display: table-cell !important;\n }\n .d-xl-flex {\n display: flex !important;\n }\n .d-xl-inline-flex {\n display: inline-flex !important;\n }\n}\n\n@media print {\n .d-print-none {\n display: none !important;\n }\n .d-print-inline {\n display: inline !important;\n }\n .d-print-inline-block {\n display: inline-block !important;\n }\n .d-print-block {\n display: block !important;\n }\n .d-print-table {\n display: table !important;\n }\n .d-print-table-row {\n display: table-row !important;\n }\n .d-print-table-cell {\n display: table-cell !important;\n }\n .d-print-flex {\n display: flex !important;\n }\n .d-print-inline-flex {\n display: inline-flex !important;\n }\n}\n\n.embed-responsive {\n position: relative;\n display: block;\n width: 100%;\n padding: 0;\n overflow: hidden;\n}\n\n.embed-responsive::before {\n display: block;\n content: \"\";\n}\n\n.embed-responsive .embed-responsive-item,\n.embed-responsive iframe,\n.embed-responsive embed,\n.embed-responsive object,\n.embed-responsive video {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n border: 0;\n}\n\n.embed-responsive-21by9::before {\n padding-top: 42.857143%;\n}\n\n.embed-responsive-16by9::before {\n padding-top: 56.25%;\n}\n\n.embed-responsive-4by3::before {\n padding-top: 75%;\n}\n\n.embed-responsive-1by1::before {\n padding-top: 100%;\n}\n\n.flex-row {\n flex-direction: row !important;\n}\n\n.flex-column {\n flex-direction: column !important;\n}\n\n.flex-row-reverse {\n flex-direction: row-reverse !important;\n}\n\n.flex-column-reverse {\n flex-direction: column-reverse !important;\n}\n\n.flex-wrap {\n flex-wrap: wrap !important;\n}\n\n.flex-nowrap {\n flex-wrap: nowrap !important;\n}\n\n.flex-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n}\n\n.flex-fill {\n flex: 1 1 auto !important;\n}\n\n.flex-grow-0 {\n flex-grow: 0 !important;\n}\n\n.flex-grow-1 {\n flex-grow: 1 !important;\n}\n\n.flex-shrink-0 {\n flex-shrink: 0 !important;\n}\n\n.flex-shrink-1 {\n flex-shrink: 1 !important;\n}\n\n.justify-content-start {\n justify-content: flex-start !important;\n}\n\n.justify-content-end {\n justify-content: flex-end !important;\n}\n\n.justify-content-center {\n justify-content: center !important;\n}\n\n.justify-content-between {\n justify-content: space-between !important;\n}\n\n.justify-content-around {\n justify-content: space-around !important;\n}\n\n.align-items-start {\n align-items: flex-start !important;\n}\n\n.align-items-end {\n align-items: flex-end !important;\n}\n\n.align-items-center {\n align-items: center !important;\n}\n\n.align-items-baseline {\n align-items: baseline !important;\n}\n\n.align-items-stretch {\n align-items: stretch !important;\n}\n\n.align-content-start {\n align-content: flex-start !important;\n}\n\n.align-content-end {\n align-content: flex-end !important;\n}\n\n.align-content-center {\n align-content: center !important;\n}\n\n.align-content-between {\n align-content: space-between !important;\n}\n\n.align-content-around {\n align-content: space-around !important;\n}\n\n.align-content-stretch {\n align-content: stretch !important;\n}\n\n.align-self-auto {\n align-self: auto !important;\n}\n\n.align-self-start {\n align-self: flex-start !important;\n}\n\n.align-self-end {\n align-self: flex-end !important;\n}\n\n.align-self-center {\n align-self: center !important;\n}\n\n.align-self-baseline {\n align-self: baseline !important;\n}\n\n.align-self-stretch {\n align-self: stretch !important;\n}\n\n@media (min-width: 576px) {\n .flex-sm-row {\n flex-direction: row !important;\n }\n .flex-sm-column {\n flex-direction: column !important;\n }\n .flex-sm-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-sm-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-sm-wrap {\n flex-wrap: wrap !important;\n }\n .flex-sm-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-sm-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-sm-fill {\n flex: 1 1 auto !important;\n }\n .flex-sm-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-sm-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-sm-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-sm-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-sm-start {\n justify-content: flex-start !important;\n }\n .justify-content-sm-end {\n justify-content: flex-end !important;\n }\n .justify-content-sm-center {\n justify-content: center !important;\n }\n .justify-content-sm-between {\n justify-content: space-between !important;\n }\n .justify-content-sm-around {\n justify-content: space-around !important;\n }\n .align-items-sm-start {\n align-items: flex-start !important;\n }\n .align-items-sm-end {\n align-items: flex-end !important;\n }\n .align-items-sm-center {\n align-items: center !important;\n }\n .align-items-sm-baseline {\n align-items: baseline !important;\n }\n .align-items-sm-stretch {\n align-items: stretch !important;\n }\n .align-content-sm-start {\n align-content: flex-start !important;\n }\n .align-content-sm-end {\n align-content: flex-end !important;\n }\n .align-content-sm-center {\n align-content: center !important;\n }\n .align-content-sm-between {\n align-content: space-between !important;\n }\n .align-content-sm-around {\n align-content: space-around !important;\n }\n .align-content-sm-stretch {\n align-content: stretch !important;\n }\n .align-self-sm-auto {\n align-self: auto !important;\n }\n .align-self-sm-start {\n align-self: flex-start !important;\n }\n .align-self-sm-end {\n align-self: flex-end !important;\n }\n .align-self-sm-center {\n align-self: center !important;\n }\n .align-self-sm-baseline {\n align-self: baseline !important;\n }\n .align-self-sm-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 768px) {\n .flex-md-row {\n flex-direction: row !important;\n }\n .flex-md-column {\n flex-direction: column !important;\n }\n .flex-md-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-md-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-md-wrap {\n flex-wrap: wrap !important;\n }\n .flex-md-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-md-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-md-fill {\n flex: 1 1 auto !important;\n }\n .flex-md-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-md-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-md-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-md-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-md-start {\n justify-content: flex-start !important;\n }\n .justify-content-md-end {\n justify-content: flex-end !important;\n }\n .justify-content-md-center {\n justify-content: center !important;\n }\n .justify-content-md-between {\n justify-content: space-between !important;\n }\n .justify-content-md-around {\n justify-content: space-around !important;\n }\n .align-items-md-start {\n align-items: flex-start !important;\n }\n .align-items-md-end {\n align-items: flex-end !important;\n }\n .align-items-md-center {\n align-items: center !important;\n }\n .align-items-md-baseline {\n align-items: baseline !important;\n }\n .align-items-md-stretch {\n align-items: stretch !important;\n }\n .align-content-md-start {\n align-content: flex-start !important;\n }\n .align-content-md-end {\n align-content: flex-end !important;\n }\n .align-content-md-center {\n align-content: center !important;\n }\n .align-content-md-between {\n align-content: space-between !important;\n }\n .align-content-md-around {\n align-content: space-around !important;\n }\n .align-content-md-stretch {\n align-content: stretch !important;\n }\n .align-self-md-auto {\n align-self: auto !important;\n }\n .align-self-md-start {\n align-self: flex-start !important;\n }\n .align-self-md-end {\n align-self: flex-end !important;\n }\n .align-self-md-center {\n align-self: center !important;\n }\n .align-self-md-baseline {\n align-self: baseline !important;\n }\n .align-self-md-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 992px) {\n .flex-lg-row {\n flex-direction: row !important;\n }\n .flex-lg-column {\n flex-direction: column !important;\n }\n .flex-lg-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-lg-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-lg-wrap {\n flex-wrap: wrap !important;\n }\n .flex-lg-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-lg-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-lg-fill {\n flex: 1 1 auto !important;\n }\n .flex-lg-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-lg-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-lg-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-lg-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-lg-start {\n justify-content: flex-start !important;\n }\n .justify-content-lg-end {\n justify-content: flex-end !important;\n }\n .justify-content-lg-center {\n justify-content: center !important;\n }\n .justify-content-lg-between {\n justify-content: space-between !important;\n }\n .justify-content-lg-around {\n justify-content: space-around !important;\n }\n .align-items-lg-start {\n align-items: flex-start !important;\n }\n .align-items-lg-end {\n align-items: flex-end !important;\n }\n .align-items-lg-center {\n align-items: center !important;\n }\n .align-items-lg-baseline {\n align-items: baseline !important;\n }\n .align-items-lg-stretch {\n align-items: stretch !important;\n }\n .align-content-lg-start {\n align-content: flex-start !important;\n }\n .align-content-lg-end {\n align-content: flex-end !important;\n }\n .align-content-lg-center {\n align-content: center !important;\n }\n .align-content-lg-between {\n align-content: space-between !important;\n }\n .align-content-lg-around {\n align-content: space-around !important;\n }\n .align-content-lg-stretch {\n align-content: stretch !important;\n }\n .align-self-lg-auto {\n align-self: auto !important;\n }\n .align-self-lg-start {\n align-self: flex-start !important;\n }\n .align-self-lg-end {\n align-self: flex-end !important;\n }\n .align-self-lg-center {\n align-self: center !important;\n }\n .align-self-lg-baseline {\n align-self: baseline !important;\n }\n .align-self-lg-stretch {\n align-self: stretch !important;\n }\n}\n\n@media (min-width: 1200px) {\n .flex-xl-row {\n flex-direction: row !important;\n }\n .flex-xl-column {\n flex-direction: column !important;\n }\n .flex-xl-row-reverse {\n flex-direction: row-reverse !important;\n }\n .flex-xl-column-reverse {\n flex-direction: column-reverse !important;\n }\n .flex-xl-wrap {\n flex-wrap: wrap !important;\n }\n .flex-xl-nowrap {\n flex-wrap: nowrap !important;\n }\n .flex-xl-wrap-reverse {\n flex-wrap: wrap-reverse !important;\n }\n .flex-xl-fill {\n flex: 1 1 auto !important;\n }\n .flex-xl-grow-0 {\n flex-grow: 0 !important;\n }\n .flex-xl-grow-1 {\n flex-grow: 1 !important;\n }\n .flex-xl-shrink-0 {\n flex-shrink: 0 !important;\n }\n .flex-xl-shrink-1 {\n flex-shrink: 1 !important;\n }\n .justify-content-xl-start {\n justify-content: flex-start !important;\n }\n .justify-content-xl-end {\n justify-content: flex-end !important;\n }\n .justify-content-xl-center {\n justify-content: center !important;\n }\n .justify-content-xl-between {\n justify-content: space-between !important;\n }\n .justify-content-xl-around {\n justify-content: space-around !important;\n }\n .align-items-xl-start {\n align-items: flex-start !important;\n }\n .align-items-xl-end {\n align-items: flex-end !important;\n }\n .align-items-xl-center {\n align-items: center !important;\n }\n .align-items-xl-baseline {\n align-items: baseline !important;\n }\n .align-items-xl-stretch {\n align-items: stretch !important;\n }\n .align-content-xl-start {\n align-content: flex-start !important;\n }\n .align-content-xl-end {\n align-content: flex-end !important;\n }\n .align-content-xl-center {\n align-content: center !important;\n }\n .align-content-xl-between {\n align-content: space-between !important;\n }\n .align-content-xl-around {\n align-content: space-around !important;\n }\n .align-content-xl-stretch {\n align-content: stretch !important;\n }\n .align-self-xl-auto {\n align-self: auto !important;\n }\n .align-self-xl-start {\n align-self: flex-start !important;\n }\n .align-self-xl-end {\n align-self: flex-end !important;\n }\n .align-self-xl-center {\n align-self: center !important;\n }\n .align-self-xl-baseline {\n align-self: baseline !important;\n }\n .align-self-xl-stretch {\n align-self: stretch !important;\n }\n}\n\n.float-left {\n float: left !important;\n}\n\n.float-right {\n float: right !important;\n}\n\n.float-none {\n float: none !important;\n}\n\n@media (min-width: 576px) {\n .float-sm-left {\n float: left !important;\n }\n .float-sm-right {\n float: right !important;\n }\n .float-sm-none {\n float: none !important;\n }\n}\n\n@media (min-width: 768px) {\n .float-md-left {\n float: left !important;\n }\n .float-md-right {\n float: right !important;\n }\n .float-md-none {\n float: none !important;\n }\n}\n\n@media (min-width: 992px) {\n .float-lg-left {\n float: left !important;\n }\n .float-lg-right {\n float: right !important;\n }\n .float-lg-none {\n float: none !important;\n }\n}\n\n@media (min-width: 1200px) {\n .float-xl-left {\n float: left !important;\n }\n .float-xl-right {\n float: right !important;\n }\n .float-xl-none {\n float: none !important;\n }\n}\n\n.overflow-auto {\n overflow: auto !important;\n}\n\n.overflow-hidden {\n overflow: hidden !important;\n}\n\n.position-static {\n position: static !important;\n}\n\n.position-relative {\n position: relative !important;\n}\n\n.position-absolute {\n position: absolute !important;\n}\n\n.position-fixed {\n position: fixed !important;\n}\n\n.position-sticky {\n position: sticky !important;\n}\n\n.fixed-top {\n position: fixed;\n top: 0;\n right: 0;\n left: 0;\n z-index: 1030;\n}\n\n.fixed-bottom {\n position: fixed;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1030;\n}\n\n@supports (position: sticky) {\n .sticky-top {\n position: sticky;\n top: 0;\n z-index: 1020;\n }\n}\n\n.sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n position: static;\n width: auto;\n height: auto;\n overflow: visible;\n clip: auto;\n white-space: normal;\n}\n\n.shadow-sm {\n box-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.075) !important;\n}\n\n.shadow {\n box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15) !important;\n}\n\n.shadow-lg {\n box-shadow: 0 1rem 3rem rgba(0, 0, 0, 0.175) !important;\n}\n\n.shadow-none {\n box-shadow: none !important;\n}\n\n.w-25 {\n width: 25% !important;\n}\n\n.w-50 {\n width: 50% !important;\n}\n\n.w-75 {\n width: 75% !important;\n}\n\n.w-100 {\n width: 100% !important;\n}\n\n.w-auto {\n width: auto !important;\n}\n\n.h-25 {\n height: 25% !important;\n}\n\n.h-50 {\n height: 50% !important;\n}\n\n.h-75 {\n height: 75% !important;\n}\n\n.h-100 {\n height: 100% !important;\n}\n\n.h-auto {\n height: auto !important;\n}\n\n.mw-100 {\n max-width: 100% !important;\n}\n\n.mh-100 {\n max-height: 100% !important;\n}\n\n.min-vw-100 {\n min-width: 100vw !important;\n}\n\n.min-vh-100 {\n min-height: 100vh !important;\n}\n\n.vw-100 {\n width: 100vw !important;\n}\n\n.vh-100 {\n height: 100vh !important;\n}\n\n.stretched-link::after {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1;\n pointer-events: auto;\n content: \"\";\n background-color: rgba(0, 0, 0, 0);\n}\n\n.m-0 {\n margin: 0 !important;\n}\n\n.mt-0,\n.my-0 {\n margin-top: 0 !important;\n}\n\n.mr-0,\n.mx-0 {\n margin-right: 0 !important;\n}\n\n.mb-0,\n.my-0 {\n margin-bottom: 0 !important;\n}\n\n.ml-0,\n.mx-0 {\n margin-left: 0 !important;\n}\n\n.m-1 {\n margin: 0.25rem !important;\n}\n\n.mt-1,\n.my-1 {\n margin-top: 0.25rem !important;\n}\n\n.mr-1,\n.mx-1 {\n margin-right: 0.25rem !important;\n}\n\n.mb-1,\n.my-1 {\n margin-bottom: 0.25rem !important;\n}\n\n.ml-1,\n.mx-1 {\n margin-left: 0.25rem !important;\n}\n\n.m-2 {\n margin: 0.5rem !important;\n}\n\n.mt-2,\n.my-2 {\n margin-top: 0.5rem !important;\n}\n\n.mr-2,\n.mx-2 {\n margin-right: 0.5rem !important;\n}\n\n.mb-2,\n.my-2 {\n margin-bottom: 0.5rem !important;\n}\n\n.ml-2,\n.mx-2 {\n margin-left: 0.5rem !important;\n}\n\n.m-3 {\n margin: 1rem !important;\n}\n\n.mt-3,\n.my-3 {\n margin-top: 1rem !important;\n}\n\n.mr-3,\n.mx-3 {\n margin-right: 1rem !important;\n}\n\n.mb-3,\n.my-3 {\n margin-bottom: 1rem !important;\n}\n\n.ml-3,\n.mx-3 {\n margin-left: 1rem !important;\n}\n\n.m-4 {\n margin: 1.5rem !important;\n}\n\n.mt-4,\n.my-4 {\n margin-top: 1.5rem !important;\n}\n\n.mr-4,\n.mx-4 {\n margin-right: 1.5rem !important;\n}\n\n.mb-4,\n.my-4 {\n margin-bottom: 1.5rem !important;\n}\n\n.ml-4,\n.mx-4 {\n margin-left: 1.5rem !important;\n}\n\n.m-5 {\n margin: 3rem !important;\n}\n\n.mt-5,\n.my-5 {\n margin-top: 3rem !important;\n}\n\n.mr-5,\n.mx-5 {\n margin-right: 3rem !important;\n}\n\n.mb-5,\n.my-5 {\n margin-bottom: 3rem !important;\n}\n\n.ml-5,\n.mx-5 {\n margin-left: 3rem !important;\n}\n\n.p-0 {\n padding: 0 !important;\n}\n\n.pt-0,\n.py-0 {\n padding-top: 0 !important;\n}\n\n.pr-0,\n.px-0 {\n padding-right: 0 !important;\n}\n\n.pb-0,\n.py-0 {\n padding-bottom: 0 !important;\n}\n\n.pl-0,\n.px-0 {\n padding-left: 0 !important;\n}\n\n.p-1 {\n padding: 0.25rem !important;\n}\n\n.pt-1,\n.py-1 {\n padding-top: 0.25rem !important;\n}\n\n.pr-1,\n.px-1 {\n padding-right: 0.25rem !important;\n}\n\n.pb-1,\n.py-1 {\n padding-bottom: 0.25rem !important;\n}\n\n.pl-1,\n.px-1 {\n padding-left: 0.25rem !important;\n}\n\n.p-2 {\n padding: 0.5rem !important;\n}\n\n.pt-2,\n.py-2 {\n padding-top: 0.5rem !important;\n}\n\n.pr-2,\n.px-2 {\n padding-right: 0.5rem !important;\n}\n\n.pb-2,\n.py-2 {\n padding-bottom: 0.5rem !important;\n}\n\n.pl-2,\n.px-2 {\n padding-left: 0.5rem !important;\n}\n\n.p-3 {\n padding: 1rem !important;\n}\n\n.pt-3,\n.py-3 {\n padding-top: 1rem !important;\n}\n\n.pr-3,\n.px-3 {\n padding-right: 1rem !important;\n}\n\n.pb-3,\n.py-3 {\n padding-bottom: 1rem !important;\n}\n\n.pl-3,\n.px-3 {\n padding-left: 1rem !important;\n}\n\n.p-4 {\n padding: 1.5rem !important;\n}\n\n.pt-4,\n.py-4 {\n padding-top: 1.5rem !important;\n}\n\n.pr-4,\n.px-4 {\n padding-right: 1.5rem !important;\n}\n\n.pb-4,\n.py-4 {\n padding-bottom: 1.5rem !important;\n}\n\n.pl-4,\n.px-4 {\n padding-left: 1.5rem !important;\n}\n\n.p-5 {\n padding: 3rem !important;\n}\n\n.pt-5,\n.py-5 {\n padding-top: 3rem !important;\n}\n\n.pr-5,\n.px-5 {\n padding-right: 3rem !important;\n}\n\n.pb-5,\n.py-5 {\n padding-bottom: 3rem !important;\n}\n\n.pl-5,\n.px-5 {\n padding-left: 3rem !important;\n}\n\n.m-n1 {\n margin: -0.25rem !important;\n}\n\n.mt-n1,\n.my-n1 {\n margin-top: -0.25rem !important;\n}\n\n.mr-n1,\n.mx-n1 {\n margin-right: -0.25rem !important;\n}\n\n.mb-n1,\n.my-n1 {\n margin-bottom: -0.25rem !important;\n}\n\n.ml-n1,\n.mx-n1 {\n margin-left: -0.25rem !important;\n}\n\n.m-n2 {\n margin: -0.5rem !important;\n}\n\n.mt-n2,\n.my-n2 {\n margin-top: -0.5rem !important;\n}\n\n.mr-n2,\n.mx-n2 {\n margin-right: -0.5rem !important;\n}\n\n.mb-n2,\n.my-n2 {\n margin-bottom: -0.5rem !important;\n}\n\n.ml-n2,\n.mx-n2 {\n margin-left: -0.5rem !important;\n}\n\n.m-n3 {\n margin: -1rem !important;\n}\n\n.mt-n3,\n.my-n3 {\n margin-top: -1rem !important;\n}\n\n.mr-n3,\n.mx-n3 {\n margin-right: -1rem !important;\n}\n\n.mb-n3,\n.my-n3 {\n margin-bottom: -1rem !important;\n}\n\n.ml-n3,\n.mx-n3 {\n margin-left: -1rem !important;\n}\n\n.m-n4 {\n margin: -1.5rem !important;\n}\n\n.mt-n4,\n.my-n4 {\n margin-top: -1.5rem !important;\n}\n\n.mr-n4,\n.mx-n4 {\n margin-right: -1.5rem !important;\n}\n\n.mb-n4,\n.my-n4 {\n margin-bottom: -1.5rem !important;\n}\n\n.ml-n4,\n.mx-n4 {\n margin-left: -1.5rem !important;\n}\n\n.m-n5 {\n margin: -3rem !important;\n}\n\n.mt-n5,\n.my-n5 {\n margin-top: -3rem !important;\n}\n\n.mr-n5,\n.mx-n5 {\n margin-right: -3rem !important;\n}\n\n.mb-n5,\n.my-n5 {\n margin-bottom: -3rem !important;\n}\n\n.ml-n5,\n.mx-n5 {\n margin-left: -3rem !important;\n}\n\n.m-auto {\n margin: auto !important;\n}\n\n.mt-auto,\n.my-auto {\n margin-top: auto !important;\n}\n\n.mr-auto,\n.mx-auto {\n margin-right: auto !important;\n}\n\n.mb-auto,\n.my-auto {\n margin-bottom: auto !important;\n}\n\n.ml-auto,\n.mx-auto {\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .m-sm-0 {\n margin: 0 !important;\n }\n .mt-sm-0,\n .my-sm-0 {\n margin-top: 0 !important;\n }\n .mr-sm-0,\n .mx-sm-0 {\n margin-right: 0 !important;\n }\n .mb-sm-0,\n .my-sm-0 {\n margin-bottom: 0 !important;\n }\n .ml-sm-0,\n .mx-sm-0 {\n margin-left: 0 !important;\n }\n .m-sm-1 {\n margin: 0.25rem !important;\n }\n .mt-sm-1,\n .my-sm-1 {\n margin-top: 0.25rem !important;\n }\n .mr-sm-1,\n .mx-sm-1 {\n margin-right: 0.25rem !important;\n }\n .mb-sm-1,\n .my-sm-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-sm-1,\n .mx-sm-1 {\n margin-left: 0.25rem !important;\n }\n .m-sm-2 {\n margin: 0.5rem !important;\n }\n .mt-sm-2,\n .my-sm-2 {\n margin-top: 0.5rem !important;\n }\n .mr-sm-2,\n .mx-sm-2 {\n margin-right: 0.5rem !important;\n }\n .mb-sm-2,\n .my-sm-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-sm-2,\n .mx-sm-2 {\n margin-left: 0.5rem !important;\n }\n .m-sm-3 {\n margin: 1rem !important;\n }\n .mt-sm-3,\n .my-sm-3 {\n margin-top: 1rem !important;\n }\n .mr-sm-3,\n .mx-sm-3 {\n margin-right: 1rem !important;\n }\n .mb-sm-3,\n .my-sm-3 {\n margin-bottom: 1rem !important;\n }\n .ml-sm-3,\n .mx-sm-3 {\n margin-left: 1rem !important;\n }\n .m-sm-4 {\n margin: 1.5rem !important;\n }\n .mt-sm-4,\n .my-sm-4 {\n margin-top: 1.5rem !important;\n }\n .mr-sm-4,\n .mx-sm-4 {\n margin-right: 1.5rem !important;\n }\n .mb-sm-4,\n .my-sm-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-sm-4,\n .mx-sm-4 {\n margin-left: 1.5rem !important;\n }\n .m-sm-5 {\n margin: 3rem !important;\n }\n .mt-sm-5,\n .my-sm-5 {\n margin-top: 3rem !important;\n }\n .mr-sm-5,\n .mx-sm-5 {\n margin-right: 3rem !important;\n }\n .mb-sm-5,\n .my-sm-5 {\n margin-bottom: 3rem !important;\n }\n .ml-sm-5,\n .mx-sm-5 {\n margin-left: 3rem !important;\n }\n .p-sm-0 {\n padding: 0 !important;\n }\n .pt-sm-0,\n .py-sm-0 {\n padding-top: 0 !important;\n }\n .pr-sm-0,\n .px-sm-0 {\n padding-right: 0 !important;\n }\n .pb-sm-0,\n .py-sm-0 {\n padding-bottom: 0 !important;\n }\n .pl-sm-0,\n .px-sm-0 {\n padding-left: 0 !important;\n }\n .p-sm-1 {\n padding: 0.25rem !important;\n }\n .pt-sm-1,\n .py-sm-1 {\n padding-top: 0.25rem !important;\n }\n .pr-sm-1,\n .px-sm-1 {\n padding-right: 0.25rem !important;\n }\n .pb-sm-1,\n .py-sm-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-sm-1,\n .px-sm-1 {\n padding-left: 0.25rem !important;\n }\n .p-sm-2 {\n padding: 0.5rem !important;\n }\n .pt-sm-2,\n .py-sm-2 {\n padding-top: 0.5rem !important;\n }\n .pr-sm-2,\n .px-sm-2 {\n padding-right: 0.5rem !important;\n }\n .pb-sm-2,\n .py-sm-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-sm-2,\n .px-sm-2 {\n padding-left: 0.5rem !important;\n }\n .p-sm-3 {\n padding: 1rem !important;\n }\n .pt-sm-3,\n .py-sm-3 {\n padding-top: 1rem !important;\n }\n .pr-sm-3,\n .px-sm-3 {\n padding-right: 1rem !important;\n }\n .pb-sm-3,\n .py-sm-3 {\n padding-bottom: 1rem !important;\n }\n .pl-sm-3,\n .px-sm-3 {\n padding-left: 1rem !important;\n }\n .p-sm-4 {\n padding: 1.5rem !important;\n }\n .pt-sm-4,\n .py-sm-4 {\n padding-top: 1.5rem !important;\n }\n .pr-sm-4,\n .px-sm-4 {\n padding-right: 1.5rem !important;\n }\n .pb-sm-4,\n .py-sm-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-sm-4,\n .px-sm-4 {\n padding-left: 1.5rem !important;\n }\n .p-sm-5 {\n padding: 3rem !important;\n }\n .pt-sm-5,\n .py-sm-5 {\n padding-top: 3rem !important;\n }\n .pr-sm-5,\n .px-sm-5 {\n padding-right: 3rem !important;\n }\n .pb-sm-5,\n .py-sm-5 {\n padding-bottom: 3rem !important;\n }\n .pl-sm-5,\n .px-sm-5 {\n padding-left: 3rem !important;\n }\n .m-sm-n1 {\n margin: -0.25rem !important;\n }\n .mt-sm-n1,\n .my-sm-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-sm-n1,\n .mx-sm-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-sm-n1,\n .my-sm-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-sm-n1,\n .mx-sm-n1 {\n margin-left: -0.25rem !important;\n }\n .m-sm-n2 {\n margin: -0.5rem !important;\n }\n .mt-sm-n2,\n .my-sm-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-sm-n2,\n .mx-sm-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-sm-n2,\n .my-sm-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-sm-n2,\n .mx-sm-n2 {\n margin-left: -0.5rem !important;\n }\n .m-sm-n3 {\n margin: -1rem !important;\n }\n .mt-sm-n3,\n .my-sm-n3 {\n margin-top: -1rem !important;\n }\n .mr-sm-n3,\n .mx-sm-n3 {\n margin-right: -1rem !important;\n }\n .mb-sm-n3,\n .my-sm-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-sm-n3,\n .mx-sm-n3 {\n margin-left: -1rem !important;\n }\n .m-sm-n4 {\n margin: -1.5rem !important;\n }\n .mt-sm-n4,\n .my-sm-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-sm-n4,\n .mx-sm-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-sm-n4,\n .my-sm-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-sm-n4,\n .mx-sm-n4 {\n margin-left: -1.5rem !important;\n }\n .m-sm-n5 {\n margin: -3rem !important;\n }\n .mt-sm-n5,\n .my-sm-n5 {\n margin-top: -3rem !important;\n }\n .mr-sm-n5,\n .mx-sm-n5 {\n margin-right: -3rem !important;\n }\n .mb-sm-n5,\n .my-sm-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-sm-n5,\n .mx-sm-n5 {\n margin-left: -3rem !important;\n }\n .m-sm-auto {\n margin: auto !important;\n }\n .mt-sm-auto,\n .my-sm-auto {\n margin-top: auto !important;\n }\n .mr-sm-auto,\n .mx-sm-auto {\n margin-right: auto !important;\n }\n .mb-sm-auto,\n .my-sm-auto {\n margin-bottom: auto !important;\n }\n .ml-sm-auto,\n .mx-sm-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .m-md-0 {\n margin: 0 !important;\n }\n .mt-md-0,\n .my-md-0 {\n margin-top: 0 !important;\n }\n .mr-md-0,\n .mx-md-0 {\n margin-right: 0 !important;\n }\n .mb-md-0,\n .my-md-0 {\n margin-bottom: 0 !important;\n }\n .ml-md-0,\n .mx-md-0 {\n margin-left: 0 !important;\n }\n .m-md-1 {\n margin: 0.25rem !important;\n }\n .mt-md-1,\n .my-md-1 {\n margin-top: 0.25rem !important;\n }\n .mr-md-1,\n .mx-md-1 {\n margin-right: 0.25rem !important;\n }\n .mb-md-1,\n .my-md-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-md-1,\n .mx-md-1 {\n margin-left: 0.25rem !important;\n }\n .m-md-2 {\n margin: 0.5rem !important;\n }\n .mt-md-2,\n .my-md-2 {\n margin-top: 0.5rem !important;\n }\n .mr-md-2,\n .mx-md-2 {\n margin-right: 0.5rem !important;\n }\n .mb-md-2,\n .my-md-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-md-2,\n .mx-md-2 {\n margin-left: 0.5rem !important;\n }\n .m-md-3 {\n margin: 1rem !important;\n }\n .mt-md-3,\n .my-md-3 {\n margin-top: 1rem !important;\n }\n .mr-md-3,\n .mx-md-3 {\n margin-right: 1rem !important;\n }\n .mb-md-3,\n .my-md-3 {\n margin-bottom: 1rem !important;\n }\n .ml-md-3,\n .mx-md-3 {\n margin-left: 1rem !important;\n }\n .m-md-4 {\n margin: 1.5rem !important;\n }\n .mt-md-4,\n .my-md-4 {\n margin-top: 1.5rem !important;\n }\n .mr-md-4,\n .mx-md-4 {\n margin-right: 1.5rem !important;\n }\n .mb-md-4,\n .my-md-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-md-4,\n .mx-md-4 {\n margin-left: 1.5rem !important;\n }\n .m-md-5 {\n margin: 3rem !important;\n }\n .mt-md-5,\n .my-md-5 {\n margin-top: 3rem !important;\n }\n .mr-md-5,\n .mx-md-5 {\n margin-right: 3rem !important;\n }\n .mb-md-5,\n .my-md-5 {\n margin-bottom: 3rem !important;\n }\n .ml-md-5,\n .mx-md-5 {\n margin-left: 3rem !important;\n }\n .p-md-0 {\n padding: 0 !important;\n }\n .pt-md-0,\n .py-md-0 {\n padding-top: 0 !important;\n }\n .pr-md-0,\n .px-md-0 {\n padding-right: 0 !important;\n }\n .pb-md-0,\n .py-md-0 {\n padding-bottom: 0 !important;\n }\n .pl-md-0,\n .px-md-0 {\n padding-left: 0 !important;\n }\n .p-md-1 {\n padding: 0.25rem !important;\n }\n .pt-md-1,\n .py-md-1 {\n padding-top: 0.25rem !important;\n }\n .pr-md-1,\n .px-md-1 {\n padding-right: 0.25rem !important;\n }\n .pb-md-1,\n .py-md-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-md-1,\n .px-md-1 {\n padding-left: 0.25rem !important;\n }\n .p-md-2 {\n padding: 0.5rem !important;\n }\n .pt-md-2,\n .py-md-2 {\n padding-top: 0.5rem !important;\n }\n .pr-md-2,\n .px-md-2 {\n padding-right: 0.5rem !important;\n }\n .pb-md-2,\n .py-md-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-md-2,\n .px-md-2 {\n padding-left: 0.5rem !important;\n }\n .p-md-3 {\n padding: 1rem !important;\n }\n .pt-md-3,\n .py-md-3 {\n padding-top: 1rem !important;\n }\n .pr-md-3,\n .px-md-3 {\n padding-right: 1rem !important;\n }\n .pb-md-3,\n .py-md-3 {\n padding-bottom: 1rem !important;\n }\n .pl-md-3,\n .px-md-3 {\n padding-left: 1rem !important;\n }\n .p-md-4 {\n padding: 1.5rem !important;\n }\n .pt-md-4,\n .py-md-4 {\n padding-top: 1.5rem !important;\n }\n .pr-md-4,\n .px-md-4 {\n padding-right: 1.5rem !important;\n }\n .pb-md-4,\n .py-md-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-md-4,\n .px-md-4 {\n padding-left: 1.5rem !important;\n }\n .p-md-5 {\n padding: 3rem !important;\n }\n .pt-md-5,\n .py-md-5 {\n padding-top: 3rem !important;\n }\n .pr-md-5,\n .px-md-5 {\n padding-right: 3rem !important;\n }\n .pb-md-5,\n .py-md-5 {\n padding-bottom: 3rem !important;\n }\n .pl-md-5,\n .px-md-5 {\n padding-left: 3rem !important;\n }\n .m-md-n1 {\n margin: -0.25rem !important;\n }\n .mt-md-n1,\n .my-md-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-md-n1,\n .mx-md-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-md-n1,\n .my-md-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-md-n1,\n .mx-md-n1 {\n margin-left: -0.25rem !important;\n }\n .m-md-n2 {\n margin: -0.5rem !important;\n }\n .mt-md-n2,\n .my-md-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-md-n2,\n .mx-md-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-md-n2,\n .my-md-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-md-n2,\n .mx-md-n2 {\n margin-left: -0.5rem !important;\n }\n .m-md-n3 {\n margin: -1rem !important;\n }\n .mt-md-n3,\n .my-md-n3 {\n margin-top: -1rem !important;\n }\n .mr-md-n3,\n .mx-md-n3 {\n margin-right: -1rem !important;\n }\n .mb-md-n3,\n .my-md-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-md-n3,\n .mx-md-n3 {\n margin-left: -1rem !important;\n }\n .m-md-n4 {\n margin: -1.5rem !important;\n }\n .mt-md-n4,\n .my-md-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-md-n4,\n .mx-md-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-md-n4,\n .my-md-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-md-n4,\n .mx-md-n4 {\n margin-left: -1.5rem !important;\n }\n .m-md-n5 {\n margin: -3rem !important;\n }\n .mt-md-n5,\n .my-md-n5 {\n margin-top: -3rem !important;\n }\n .mr-md-n5,\n .mx-md-n5 {\n margin-right: -3rem !important;\n }\n .mb-md-n5,\n .my-md-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-md-n5,\n .mx-md-n5 {\n margin-left: -3rem !important;\n }\n .m-md-auto {\n margin: auto !important;\n }\n .mt-md-auto,\n .my-md-auto {\n margin-top: auto !important;\n }\n .mr-md-auto,\n .mx-md-auto {\n margin-right: auto !important;\n }\n .mb-md-auto,\n .my-md-auto {\n margin-bottom: auto !important;\n }\n .ml-md-auto,\n .mx-md-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .m-lg-0 {\n margin: 0 !important;\n }\n .mt-lg-0,\n .my-lg-0 {\n margin-top: 0 !important;\n }\n .mr-lg-0,\n .mx-lg-0 {\n margin-right: 0 !important;\n }\n .mb-lg-0,\n .my-lg-0 {\n margin-bottom: 0 !important;\n }\n .ml-lg-0,\n .mx-lg-0 {\n margin-left: 0 !important;\n }\n .m-lg-1 {\n margin: 0.25rem !important;\n }\n .mt-lg-1,\n .my-lg-1 {\n margin-top: 0.25rem !important;\n }\n .mr-lg-1,\n .mx-lg-1 {\n margin-right: 0.25rem !important;\n }\n .mb-lg-1,\n .my-lg-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-lg-1,\n .mx-lg-1 {\n margin-left: 0.25rem !important;\n }\n .m-lg-2 {\n margin: 0.5rem !important;\n }\n .mt-lg-2,\n .my-lg-2 {\n margin-top: 0.5rem !important;\n }\n .mr-lg-2,\n .mx-lg-2 {\n margin-right: 0.5rem !important;\n }\n .mb-lg-2,\n .my-lg-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-lg-2,\n .mx-lg-2 {\n margin-left: 0.5rem !important;\n }\n .m-lg-3 {\n margin: 1rem !important;\n }\n .mt-lg-3,\n .my-lg-3 {\n margin-top: 1rem !important;\n }\n .mr-lg-3,\n .mx-lg-3 {\n margin-right: 1rem !important;\n }\n .mb-lg-3,\n .my-lg-3 {\n margin-bottom: 1rem !important;\n }\n .ml-lg-3,\n .mx-lg-3 {\n margin-left: 1rem !important;\n }\n .m-lg-4 {\n margin: 1.5rem !important;\n }\n .mt-lg-4,\n .my-lg-4 {\n margin-top: 1.5rem !important;\n }\n .mr-lg-4,\n .mx-lg-4 {\n margin-right: 1.5rem !important;\n }\n .mb-lg-4,\n .my-lg-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-lg-4,\n .mx-lg-4 {\n margin-left: 1.5rem !important;\n }\n .m-lg-5 {\n margin: 3rem !important;\n }\n .mt-lg-5,\n .my-lg-5 {\n margin-top: 3rem !important;\n }\n .mr-lg-5,\n .mx-lg-5 {\n margin-right: 3rem !important;\n }\n .mb-lg-5,\n .my-lg-5 {\n margin-bottom: 3rem !important;\n }\n .ml-lg-5,\n .mx-lg-5 {\n margin-left: 3rem !important;\n }\n .p-lg-0 {\n padding: 0 !important;\n }\n .pt-lg-0,\n .py-lg-0 {\n padding-top: 0 !important;\n }\n .pr-lg-0,\n .px-lg-0 {\n padding-right: 0 !important;\n }\n .pb-lg-0,\n .py-lg-0 {\n padding-bottom: 0 !important;\n }\n .pl-lg-0,\n .px-lg-0 {\n padding-left: 0 !important;\n }\n .p-lg-1 {\n padding: 0.25rem !important;\n }\n .pt-lg-1,\n .py-lg-1 {\n padding-top: 0.25rem !important;\n }\n .pr-lg-1,\n .px-lg-1 {\n padding-right: 0.25rem !important;\n }\n .pb-lg-1,\n .py-lg-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-lg-1,\n .px-lg-1 {\n padding-left: 0.25rem !important;\n }\n .p-lg-2 {\n padding: 0.5rem !important;\n }\n .pt-lg-2,\n .py-lg-2 {\n padding-top: 0.5rem !important;\n }\n .pr-lg-2,\n .px-lg-2 {\n padding-right: 0.5rem !important;\n }\n .pb-lg-2,\n .py-lg-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-lg-2,\n .px-lg-2 {\n padding-left: 0.5rem !important;\n }\n .p-lg-3 {\n padding: 1rem !important;\n }\n .pt-lg-3,\n .py-lg-3 {\n padding-top: 1rem !important;\n }\n .pr-lg-3,\n .px-lg-3 {\n padding-right: 1rem !important;\n }\n .pb-lg-3,\n .py-lg-3 {\n padding-bottom: 1rem !important;\n }\n .pl-lg-3,\n .px-lg-3 {\n padding-left: 1rem !important;\n }\n .p-lg-4 {\n padding: 1.5rem !important;\n }\n .pt-lg-4,\n .py-lg-4 {\n padding-top: 1.5rem !important;\n }\n .pr-lg-4,\n .px-lg-4 {\n padding-right: 1.5rem !important;\n }\n .pb-lg-4,\n .py-lg-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-lg-4,\n .px-lg-4 {\n padding-left: 1.5rem !important;\n }\n .p-lg-5 {\n padding: 3rem !important;\n }\n .pt-lg-5,\n .py-lg-5 {\n padding-top: 3rem !important;\n }\n .pr-lg-5,\n .px-lg-5 {\n padding-right: 3rem !important;\n }\n .pb-lg-5,\n .py-lg-5 {\n padding-bottom: 3rem !important;\n }\n .pl-lg-5,\n .px-lg-5 {\n padding-left: 3rem !important;\n }\n .m-lg-n1 {\n margin: -0.25rem !important;\n }\n .mt-lg-n1,\n .my-lg-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-lg-n1,\n .mx-lg-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-lg-n1,\n .my-lg-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-lg-n1,\n .mx-lg-n1 {\n margin-left: -0.25rem !important;\n }\n .m-lg-n2 {\n margin: -0.5rem !important;\n }\n .mt-lg-n2,\n .my-lg-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-lg-n2,\n .mx-lg-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-lg-n2,\n .my-lg-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-lg-n2,\n .mx-lg-n2 {\n margin-left: -0.5rem !important;\n }\n .m-lg-n3 {\n margin: -1rem !important;\n }\n .mt-lg-n3,\n .my-lg-n3 {\n margin-top: -1rem !important;\n }\n .mr-lg-n3,\n .mx-lg-n3 {\n margin-right: -1rem !important;\n }\n .mb-lg-n3,\n .my-lg-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-lg-n3,\n .mx-lg-n3 {\n margin-left: -1rem !important;\n }\n .m-lg-n4 {\n margin: -1.5rem !important;\n }\n .mt-lg-n4,\n .my-lg-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-lg-n4,\n .mx-lg-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-lg-n4,\n .my-lg-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-lg-n4,\n .mx-lg-n4 {\n margin-left: -1.5rem !important;\n }\n .m-lg-n5 {\n margin: -3rem !important;\n }\n .mt-lg-n5,\n .my-lg-n5 {\n margin-top: -3rem !important;\n }\n .mr-lg-n5,\n .mx-lg-n5 {\n margin-right: -3rem !important;\n }\n .mb-lg-n5,\n .my-lg-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-lg-n5,\n .mx-lg-n5 {\n margin-left: -3rem !important;\n }\n .m-lg-auto {\n margin: auto !important;\n }\n .mt-lg-auto,\n .my-lg-auto {\n margin-top: auto !important;\n }\n .mr-lg-auto,\n .mx-lg-auto {\n margin-right: auto !important;\n }\n .mb-lg-auto,\n .my-lg-auto {\n margin-bottom: auto !important;\n }\n .ml-lg-auto,\n .mx-lg-auto {\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .m-xl-0 {\n margin: 0 !important;\n }\n .mt-xl-0,\n .my-xl-0 {\n margin-top: 0 !important;\n }\n .mr-xl-0,\n .mx-xl-0 {\n margin-right: 0 !important;\n }\n .mb-xl-0,\n .my-xl-0 {\n margin-bottom: 0 !important;\n }\n .ml-xl-0,\n .mx-xl-0 {\n margin-left: 0 !important;\n }\n .m-xl-1 {\n margin: 0.25rem !important;\n }\n .mt-xl-1,\n .my-xl-1 {\n margin-top: 0.25rem !important;\n }\n .mr-xl-1,\n .mx-xl-1 {\n margin-right: 0.25rem !important;\n }\n .mb-xl-1,\n .my-xl-1 {\n margin-bottom: 0.25rem !important;\n }\n .ml-xl-1,\n .mx-xl-1 {\n margin-left: 0.25rem !important;\n }\n .m-xl-2 {\n margin: 0.5rem !important;\n }\n .mt-xl-2,\n .my-xl-2 {\n margin-top: 0.5rem !important;\n }\n .mr-xl-2,\n .mx-xl-2 {\n margin-right: 0.5rem !important;\n }\n .mb-xl-2,\n .my-xl-2 {\n margin-bottom: 0.5rem !important;\n }\n .ml-xl-2,\n .mx-xl-2 {\n margin-left: 0.5rem !important;\n }\n .m-xl-3 {\n margin: 1rem !important;\n }\n .mt-xl-3,\n .my-xl-3 {\n margin-top: 1rem !important;\n }\n .mr-xl-3,\n .mx-xl-3 {\n margin-right: 1rem !important;\n }\n .mb-xl-3,\n .my-xl-3 {\n margin-bottom: 1rem !important;\n }\n .ml-xl-3,\n .mx-xl-3 {\n margin-left: 1rem !important;\n }\n .m-xl-4 {\n margin: 1.5rem !important;\n }\n .mt-xl-4,\n .my-xl-4 {\n margin-top: 1.5rem !important;\n }\n .mr-xl-4,\n .mx-xl-4 {\n margin-right: 1.5rem !important;\n }\n .mb-xl-4,\n .my-xl-4 {\n margin-bottom: 1.5rem !important;\n }\n .ml-xl-4,\n .mx-xl-4 {\n margin-left: 1.5rem !important;\n }\n .m-xl-5 {\n margin: 3rem !important;\n }\n .mt-xl-5,\n .my-xl-5 {\n margin-top: 3rem !important;\n }\n .mr-xl-5,\n .mx-xl-5 {\n margin-right: 3rem !important;\n }\n .mb-xl-5,\n .my-xl-5 {\n margin-bottom: 3rem !important;\n }\n .ml-xl-5,\n .mx-xl-5 {\n margin-left: 3rem !important;\n }\n .p-xl-0 {\n padding: 0 !important;\n }\n .pt-xl-0,\n .py-xl-0 {\n padding-top: 0 !important;\n }\n .pr-xl-0,\n .px-xl-0 {\n padding-right: 0 !important;\n }\n .pb-xl-0,\n .py-xl-0 {\n padding-bottom: 0 !important;\n }\n .pl-xl-0,\n .px-xl-0 {\n padding-left: 0 !important;\n }\n .p-xl-1 {\n padding: 0.25rem !important;\n }\n .pt-xl-1,\n .py-xl-1 {\n padding-top: 0.25rem !important;\n }\n .pr-xl-1,\n .px-xl-1 {\n padding-right: 0.25rem !important;\n }\n .pb-xl-1,\n .py-xl-1 {\n padding-bottom: 0.25rem !important;\n }\n .pl-xl-1,\n .px-xl-1 {\n padding-left: 0.25rem !important;\n }\n .p-xl-2 {\n padding: 0.5rem !important;\n }\n .pt-xl-2,\n .py-xl-2 {\n padding-top: 0.5rem !important;\n }\n .pr-xl-2,\n .px-xl-2 {\n padding-right: 0.5rem !important;\n }\n .pb-xl-2,\n .py-xl-2 {\n padding-bottom: 0.5rem !important;\n }\n .pl-xl-2,\n .px-xl-2 {\n padding-left: 0.5rem !important;\n }\n .p-xl-3 {\n padding: 1rem !important;\n }\n .pt-xl-3,\n .py-xl-3 {\n padding-top: 1rem !important;\n }\n .pr-xl-3,\n .px-xl-3 {\n padding-right: 1rem !important;\n }\n .pb-xl-3,\n .py-xl-3 {\n padding-bottom: 1rem !important;\n }\n .pl-xl-3,\n .px-xl-3 {\n padding-left: 1rem !important;\n }\n .p-xl-4 {\n padding: 1.5rem !important;\n }\n .pt-xl-4,\n .py-xl-4 {\n padding-top: 1.5rem !important;\n }\n .pr-xl-4,\n .px-xl-4 {\n padding-right: 1.5rem !important;\n }\n .pb-xl-4,\n .py-xl-4 {\n padding-bottom: 1.5rem !important;\n }\n .pl-xl-4,\n .px-xl-4 {\n padding-left: 1.5rem !important;\n }\n .p-xl-5 {\n padding: 3rem !important;\n }\n .pt-xl-5,\n .py-xl-5 {\n padding-top: 3rem !important;\n }\n .pr-xl-5,\n .px-xl-5 {\n padding-right: 3rem !important;\n }\n .pb-xl-5,\n .py-xl-5 {\n padding-bottom: 3rem !important;\n }\n .pl-xl-5,\n .px-xl-5 {\n padding-left: 3rem !important;\n }\n .m-xl-n1 {\n margin: -0.25rem !important;\n }\n .mt-xl-n1,\n .my-xl-n1 {\n margin-top: -0.25rem !important;\n }\n .mr-xl-n1,\n .mx-xl-n1 {\n margin-right: -0.25rem !important;\n }\n .mb-xl-n1,\n .my-xl-n1 {\n margin-bottom: -0.25rem !important;\n }\n .ml-xl-n1,\n .mx-xl-n1 {\n margin-left: -0.25rem !important;\n }\n .m-xl-n2 {\n margin: -0.5rem !important;\n }\n .mt-xl-n2,\n .my-xl-n2 {\n margin-top: -0.5rem !important;\n }\n .mr-xl-n2,\n .mx-xl-n2 {\n margin-right: -0.5rem !important;\n }\n .mb-xl-n2,\n .my-xl-n2 {\n margin-bottom: -0.5rem !important;\n }\n .ml-xl-n2,\n .mx-xl-n2 {\n margin-left: -0.5rem !important;\n }\n .m-xl-n3 {\n margin: -1rem !important;\n }\n .mt-xl-n3,\n .my-xl-n3 {\n margin-top: -1rem !important;\n }\n .mr-xl-n3,\n .mx-xl-n3 {\n margin-right: -1rem !important;\n }\n .mb-xl-n3,\n .my-xl-n3 {\n margin-bottom: -1rem !important;\n }\n .ml-xl-n3,\n .mx-xl-n3 {\n margin-left: -1rem !important;\n }\n .m-xl-n4 {\n margin: -1.5rem !important;\n }\n .mt-xl-n4,\n .my-xl-n4 {\n margin-top: -1.5rem !important;\n }\n .mr-xl-n4,\n .mx-xl-n4 {\n margin-right: -1.5rem !important;\n }\n .mb-xl-n4,\n .my-xl-n4 {\n margin-bottom: -1.5rem !important;\n }\n .ml-xl-n4,\n .mx-xl-n4 {\n margin-left: -1.5rem !important;\n }\n .m-xl-n5 {\n margin: -3rem !important;\n }\n .mt-xl-n5,\n .my-xl-n5 {\n margin-top: -3rem !important;\n }\n .mr-xl-n5,\n .mx-xl-n5 {\n margin-right: -3rem !important;\n }\n .mb-xl-n5,\n .my-xl-n5 {\n margin-bottom: -3rem !important;\n }\n .ml-xl-n5,\n .mx-xl-n5 {\n margin-left: -3rem !important;\n }\n .m-xl-auto {\n margin: auto !important;\n }\n .mt-xl-auto,\n .my-xl-auto {\n margin-top: auto !important;\n }\n .mr-xl-auto,\n .mx-xl-auto {\n margin-right: auto !important;\n }\n .mb-xl-auto,\n .my-xl-auto {\n margin-bottom: auto !important;\n }\n .ml-xl-auto,\n .mx-xl-auto {\n margin-left: auto !important;\n }\n}\n\n.text-monospace {\n font-family: SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace !important;\n}\n\n.text-justify {\n text-align: justify !important;\n}\n\n.text-wrap {\n white-space: normal !important;\n}\n\n.text-nowrap {\n white-space: nowrap !important;\n}\n\n.text-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.text-left {\n text-align: left !important;\n}\n\n.text-right {\n text-align: right !important;\n}\n\n.text-center {\n text-align: center !important;\n}\n\n@media (min-width: 576px) {\n .text-sm-left {\n text-align: left !important;\n }\n .text-sm-right {\n text-align: right !important;\n }\n .text-sm-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 768px) {\n .text-md-left {\n text-align: left !important;\n }\n .text-md-right {\n text-align: right !important;\n }\n .text-md-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 992px) {\n .text-lg-left {\n text-align: left !important;\n }\n .text-lg-right {\n text-align: right !important;\n }\n .text-lg-center {\n text-align: center !important;\n }\n}\n\n@media (min-width: 1200px) {\n .text-xl-left {\n text-align: left !important;\n }\n .text-xl-right {\n text-align: right !important;\n }\n .text-xl-center {\n text-align: center !important;\n }\n}\n\n.text-lowercase {\n text-transform: lowercase !important;\n}\n\n.text-uppercase {\n text-transform: uppercase !important;\n}\n\n.text-capitalize {\n text-transform: capitalize !important;\n}\n\n.font-weight-light {\n font-weight: 300 !important;\n}\n\n.font-weight-lighter {\n font-weight: lighter !important;\n}\n\n.font-weight-normal {\n font-weight: 400 !important;\n}\n\n.font-weight-bold {\n font-weight: 700 !important;\n}\n\n.font-weight-bolder {\n font-weight: bolder !important;\n}\n\n.font-italic {\n font-style: italic !important;\n}\n\n.text-white {\n color: #fff !important;\n}\n\n.text-primary {\n color: #007bff !important;\n}\n\na.text-primary:hover, a.text-primary:focus {\n color: #0056b3 !important;\n}\n\n.text-secondary {\n color: #6c757d !important;\n}\n\na.text-secondary:hover, a.text-secondary:focus {\n color: #494f54 !important;\n}\n\n.text-success {\n color: #28a745 !important;\n}\n\na.text-success:hover, a.text-success:focus {\n color: #19692c !important;\n}\n\n.text-info {\n color: #17a2b8 !important;\n}\n\na.text-info:hover, a.text-info:focus {\n color: #0f6674 !important;\n}\n\n.text-warning {\n color: #ffc107 !important;\n}\n\na.text-warning:hover, a.text-warning:focus {\n color: #ba8b00 !important;\n}\n\n.text-danger {\n color: #dc3545 !important;\n}\n\na.text-danger:hover, a.text-danger:focus {\n color: #a71d2a !important;\n}\n\n.text-light {\n color: #f8f9fa !important;\n}\n\na.text-light:hover, a.text-light:focus {\n color: #cbd3da !important;\n}\n\n.text-dark {\n color: #343a40 !important;\n}\n\na.text-dark:hover, a.text-dark:focus {\n color: #121416 !important;\n}\n\n.text-body {\n color: #212529 !important;\n}\n\n.text-muted {\n color: #6c757d !important;\n}\n\n.text-black-50 {\n color: rgba(0, 0, 0, 0.5) !important;\n}\n\n.text-white-50 {\n color: rgba(255, 255, 255, 0.5) !important;\n}\n\n.text-hide {\n font: 0/0 a;\n color: transparent;\n text-shadow: none;\n background-color: transparent;\n border: 0;\n}\n\n.text-decoration-none {\n text-decoration: none !important;\n}\n\n.text-break {\n word-break: break-word !important;\n overflow-wrap: break-word !important;\n}\n\n.text-reset {\n color: inherit !important;\n}\n\n.visible {\n visibility: visible !important;\n}\n\n.invisible {\n visibility: hidden !important;\n}\n\n@media print {\n *,\n *::before,\n *::after {\n text-shadow: none !important;\n box-shadow: none !important;\n }\n a:not(.btn) {\n text-decoration: underline;\n }\n abbr[title]::after {\n content: \" (\" attr(title) \")\";\n }\n pre {\n white-space: pre-wrap !important;\n }\n pre,\n blockquote {\n border: 1px solid #adb5bd;\n page-break-inside: avoid;\n }\n thead {\n display: table-header-group;\n }\n tr,\n img {\n page-break-inside: avoid;\n }\n p,\n h2,\n h3 {\n orphans: 3;\n widows: 3;\n }\n h2,\n h3 {\n page-break-after: avoid;\n }\n @page {\n size: a3;\n }\n body {\n min-width: 992px !important;\n }\n .container {\n min-width: 992px !important;\n }\n .navbar {\n display: none;\n }\n .badge {\n border: 1px solid #000;\n }\n .table {\n border-collapse: collapse !important;\n }\n .table td,\n .table th {\n background-color: #fff !important;\n }\n .table-bordered th,\n .table-bordered td {\n border: 1px solid #dee2e6 !important;\n }\n .table-dark {\n color: inherit;\n }\n .table-dark th,\n .table-dark td,\n .table-dark thead th,\n .table-dark tbody + tbody {\n border-color: #dee2e6;\n }\n .table .thead-dark th {\n color: inherit;\n border-color: #dee2e6;\n }\n}\n\n.rtl,\n[dir=\"rtl\"] {\n text-align: right;\n direction: rtl;\n}\n\n.rtl .nav,\n[dir=\"rtl\"] .nav {\n padding-right: 0;\n}\n\n.rtl .navbar-nav .nav-item,\n[dir=\"rtl\"] .navbar-nav .nav-item {\n float: right;\n}\n\n.rtl .navbar-nav .nav-item + .nav-item,\n[dir=\"rtl\"] .navbar-nav .nav-item + .nav-item {\n margin-right: inherit;\n margin-left: 1rem;\n}\n\n.rtl th,\n[dir=\"rtl\"] th {\n text-align: right;\n}\n\n.rtl .alert-dismissible,\n[dir=\"rtl\"] .alert-dismissible {\n padding-right: 1.25rem;\n padding-left: 4rem;\n}\n\n.rtl .dropdown-menu,\n[dir=\"rtl\"] .dropdown-menu {\n right: 0;\n left: inherit;\n text-align: right;\n}\n\n.rtl .checkbox label,\n[dir=\"rtl\"] .checkbox label {\n padding-right: 1.25rem;\n padding-left: inherit;\n}\n\n.rtl .btn-group > .btn:not(:first-child),\n.rtl .btn-group > .btn-group:not(:first-child),\n[dir=\"rtl\"] .btn-group > .btn:not(:first-child),\n[dir=\"rtl\"] .btn-group > .btn-group:not(:first-child) {\n margin-left: initial;\n margin-right: -1px;\n}\n\n.rtl .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle),\n[dir=\"rtl\"] .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.rtl .btn-group > .btn:last-child:not(:first-child),\n.rtl .btn-group > .dropdown-toggle:not(:first-child),\n[dir=\"rtl\"] .btn-group > .btn:last-child:not(:first-child),\n[dir=\"rtl\"] .btn-group > .dropdown-toggle:not(:first-child) {\n border-radius: 0.25rem 0 0 0.25rem;\n}\n\n.rtl .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child,\n[dir=\"rtl\"] .btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {\n border-radius: 0.25rem 0 0 0.25rem;\n}\n\n.rtl .custom-control,\n[dir=\"rtl\"] .custom-control {\n padding-right: 1.5rem;\n padding-left: inherit;\n margin-right: inherit;\n margin-left: 1rem;\n}\n\n.rtl .custom-control-indicator,\n[dir=\"rtl\"] .custom-control-indicator {\n right: 0;\n left: inherit;\n}\n\n.rtl .custom-file-label::after,\n[dir=\"rtl\"] .custom-file-label::after {\n right: initial;\n left: -1px;\n border-radius: .25rem 0 0 .25rem;\n}\n\n.rtl .custom-control-label::after,\n.rtl .custom-control-label::before,\n[dir=\"rtl\"] .custom-control-label::after,\n[dir=\"rtl\"] .custom-control-label::before {\n right: -1.5rem;\n left: inherit;\n}\n\n.rtl .custom-select,\n[dir=\"rtl\"] .custom-select {\n padding: 0.375rem 0.75rem 0.375rem 1.75rem;\n background: #fff url(\"data:image/svg+xml,\") no-repeat left 0.75rem center;\n background-size: 8px 10px;\n}\n\n.rtl .custom-switch,\n[dir=\"rtl\"] .custom-switch {\n padding-right: 2.25rem;\n padding-left: inherit;\n}\n\n.rtl .custom-switch .custom-control-label::before,\n[dir=\"rtl\"] .custom-switch .custom-control-label::before {\n right: -2.25rem;\n}\n\n.rtl .custom-switch .custom-control-label::after,\n[dir=\"rtl\"] .custom-switch .custom-control-label::after {\n right: calc(-2.25rem + 2px);\n}\n\n.rtl .custom-switch .custom-control-input:checked ~ .custom-control-label::after,\n[dir=\"rtl\"] .custom-switch .custom-control-input:checked ~ .custom-control-label::after {\n transform: translateX(-0.75rem);\n}\n\n.rtl .input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n.rtl .input-group > .input-group-append:last-child > .input-group-text:not(:last-child),\n.rtl .input-group > .input-group-append:not(:last-child) > .btn,\n.rtl .input-group > .input-group-append:not(:last-child) > .input-group-text,\n.rtl .input-group > .input-group-prepend > .btn,\n.rtl .input-group > .input-group-prepend > .input-group-text,\n[dir=\"rtl\"] .input-group > .input-group-append:last-child > .btn:not(:last-child):not(.dropdown-toggle),\n[dir=\"rtl\"] .input-group > .input-group-append:last-child > .input-group-text:not(:last-child),\n[dir=\"rtl\"] .input-group > .input-group-append:not(:last-child) > .btn,\n[dir=\"rtl\"] .input-group > .input-group-append:not(:last-child) > .input-group-text,\n[dir=\"rtl\"] .input-group > .input-group-prepend > .btn,\n[dir=\"rtl\"] .input-group > .input-group-prepend > .input-group-text {\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.rtl .input-group > .input-group-append > .btn,\n.rtl .input-group > .input-group-append > .input-group-text,\n.rtl .input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n.rtl .input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child),\n.rtl .input-group > .input-group-prepend:not(:first-child) > .btn,\n.rtl .input-group > .input-group-prepend:not(:first-child) > .input-group-text,\n[dir=\"rtl\"] .input-group > .input-group-append > .btn,\n[dir=\"rtl\"] .input-group > .input-group-append > .input-group-text,\n[dir=\"rtl\"] .input-group > .input-group-prepend:first-child > .btn:not(:first-child),\n[dir=\"rtl\"] .input-group > .input-group-prepend:first-child > .input-group-text:not(:first-child),\n[dir=\"rtl\"] .input-group > .input-group-prepend:not(:first-child) > .btn,\n[dir=\"rtl\"] .input-group > .input-group-prepend:not(:first-child) > .input-group-text {\n border-radius: 0.25rem 0 0 0.25rem;\n}\n\n.rtl .input-group > .custom-select:not(:first-child),\n.rtl .input-group > .form-control:not(:first-child),\n[dir=\"rtl\"] .input-group > .custom-select:not(:first-child),\n[dir=\"rtl\"] .input-group > .form-control:not(:first-child) {\n border-radius: 0.25rem 0 0 0.25rem;\n}\n\n.rtl .input-group > .custom-select:not(:last-child),\n.rtl .input-group > .form-control:not(:last-child),\n[dir=\"rtl\"] .input-group > .custom-select:not(:last-child),\n[dir=\"rtl\"] .input-group > .form-control:not(:last-child) {\n border-radius: 0 0.25rem 0.25rem 0;\n}\n\n.rtl .input-group > .custom-select:not(:last-child):not(:first-child),\n.rtl .input-group > .form-control:not(:last-child):not(:first-child),\n[dir=\"rtl\"] .input-group > .custom-select:not(:last-child):not(:first-child),\n[dir=\"rtl\"] .input-group > .form-control:not(:last-child):not(:first-child) {\n border-radius: 0;\n}\n\n.rtl .radio input,\n.rtl .radio-inline,\n.rtl .checkbox input,\n.rtl .checkbox-inline input,\n[dir=\"rtl\"] .radio input,\n[dir=\"rtl\"] .radio-inline,\n[dir=\"rtl\"] .checkbox input,\n[dir=\"rtl\"] .checkbox-inline input {\n margin-right: -1.25rem;\n margin-left: inherit;\n}\n\n.rtl .breadcrumb-item + .breadcrumb-item,\n[dir=\"rtl\"] .breadcrumb-item + .breadcrumb-item {\n padding-right: 0.5rem;\n padding-left: 0;\n color: #6c757d;\n content: \"/\";\n}\n\n.rtl .breadcrumb-item + .breadcrumb-item::before,\n[dir=\"rtl\"] .breadcrumb-item + .breadcrumb-item::before {\n padding-right: 0;\n padding-left: 0.5rem;\n}\n\n.rtl .list-group,\n[dir=\"rtl\"] .list-group {\n padding-right: 0;\n padding-left: 40px;\n}\n\n.rtl .close,\n[dir=\"rtl\"] .close {\n float: left;\n}\n\n.rtl .modal-header .close,\n[dir=\"rtl\"] .modal-header .close {\n margin: -15px auto -15px -15px;\n}\n\n.rtl .modal-footer > :not(:first-child),\n[dir=\"rtl\"] .modal-footer > :not(:first-child) {\n margin-right: .25rem;\n}\n\n.rtl .modal-footer > :not(:last-child),\n[dir=\"rtl\"] .modal-footer > :not(:last-child) {\n margin-left: .25rem;\n}\n\n.rtl .modal-footer > :first-child,\n[dir=\"rtl\"] .modal-footer > :first-child {\n margin-right: 0;\n}\n\n.rtl .modal-footer > :last-child,\n[dir=\"rtl\"] .modal-footer > :last-child {\n margin-left: 0;\n}\n\n.rtl .alert-dismissible .close,\n[dir=\"rtl\"] .alert-dismissible .close {\n right: inherit;\n left: 0;\n}\n\n.rtl .dropdown-toggle::after,\n[dir=\"rtl\"] .dropdown-toggle::after {\n margin-right: .255em;\n margin-left: 0;\n}\n\n.rtl .form-check-input,\n[dir=\"rtl\"] .form-check-input {\n margin-right: -1.25rem;\n margin-left: inherit;\n}\n\n.rtl .form-check-label,\n[dir=\"rtl\"] .form-check-label {\n padding-right: 1.25rem;\n padding-left: inherit;\n}\n\n.rtl .pagination,\n.rtl .list-unstyled,\n.rtl .list-inline,\n[dir=\"rtl\"] .pagination,\n[dir=\"rtl\"] .list-unstyled,\n[dir=\"rtl\"] .list-inline {\n padding-right: 0;\n padding-left: inherit;\n}\n\n.rtl .pagination .page-item:first-child .page-link,\n[dir=\"rtl\"] .pagination .page-item:first-child .page-link {\n border-top-right-radius: 0.25rem;\n border-bottom-right-radius: 0.25rem;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.rtl .pagination .page-item:last-child .page-link,\n[dir=\"rtl\"] .pagination .page-item:last-child .page-link {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n border-top-left-radius: 0.25rem;\n border-bottom-left-radius: 0.25rem;\n}\n\n.rtl .offset-1,\n[dir=\"rtl\"] .offset-1 {\n margin-right: 8.333333%;\n margin-left: 0;\n}\n\n.rtl .offset-2,\n[dir=\"rtl\"] .offset-2 {\n margin-right: 16.666667%;\n margin-left: 0;\n}\n\n.rtl .offset-3,\n[dir=\"rtl\"] .offset-3 {\n margin-right: 25%;\n margin-left: 0;\n}\n\n.rtl .offset-4,\n[dir=\"rtl\"] .offset-4 {\n margin-right: 33.333333%;\n margin-left: 0;\n}\n\n.rtl .offset-5,\n[dir=\"rtl\"] .offset-5 {\n margin-right: 41.666667%;\n margin-left: 0;\n}\n\n.rtl .offset-6,\n[dir=\"rtl\"] .offset-6 {\n margin-right: 50%;\n margin-left: 0;\n}\n\n.rtl .offset-7,\n[dir=\"rtl\"] .offset-7 {\n margin-right: 58.333333%;\n margin-left: 0;\n}\n\n.rtl .offset-8,\n[dir=\"rtl\"] .offset-8 {\n margin-right: 66.666667%;\n margin-left: 0;\n}\n\n.rtl .offset-9,\n[dir=\"rtl\"] .offset-9 {\n margin-right: 75%;\n margin-left: 0;\n}\n\n.rtl .offset-10,\n[dir=\"rtl\"] .offset-10 {\n margin-right: 83.333333%;\n margin-left: 0;\n}\n\n.rtl .offset-11,\n[dir=\"rtl\"] .offset-11 {\n margin-right: 91.666667%;\n margin-left: 0;\n}\n\n@media (min-width: 576px) {\n .rtl .offset-sm-0,\n [dir=\"rtl\"] .offset-sm-0 {\n margin-right: 0;\n margin-left: 0;\n }\n .rtl .offset-sm-1,\n [dir=\"rtl\"] .offset-sm-1 {\n margin-right: 8.333333%;\n margin-left: 0;\n }\n .rtl .offset-sm-2,\n [dir=\"rtl\"] .offset-sm-2 {\n margin-right: 16.666667%;\n margin-left: 0;\n }\n .rtl .offset-sm-3,\n [dir=\"rtl\"] .offset-sm-3 {\n margin-right: 25%;\n margin-left: 0;\n }\n .rtl .offset-sm-4,\n [dir=\"rtl\"] .offset-sm-4 {\n margin-right: 33.333333%;\n margin-left: 0;\n }\n .rtl .offset-sm-5,\n [dir=\"rtl\"] .offset-sm-5 {\n margin-right: 41.666667%;\n margin-left: 0;\n }\n .rtl .offset-sm-6,\n [dir=\"rtl\"] .offset-sm-6 {\n margin-right: 50%;\n margin-left: 0;\n }\n .rtl .offset-sm-7,\n [dir=\"rtl\"] .offset-sm-7 {\n margin-right: 58.333333%;\n margin-left: 0;\n }\n .rtl .offset-sm-8,\n [dir=\"rtl\"] .offset-sm-8 {\n margin-right: 66.666667%;\n margin-left: 0;\n }\n .rtl .offset-sm-9,\n [dir=\"rtl\"] .offset-sm-9 {\n margin-right: 75%;\n margin-left: 0;\n }\n .rtl .offset-sm-10,\n [dir=\"rtl\"] .offset-sm-10 {\n margin-right: 83.333333%;\n margin-left: 0;\n }\n .rtl .offset-sm-11,\n [dir=\"rtl\"] .offset-sm-11 {\n margin-right: 91.666667%;\n margin-left: 0;\n }\n}\n\n@media (min-width: 768px) {\n .rtl .offset-md-0,\n [dir=\"rtl\"] .offset-md-0 {\n margin-right: 0;\n margin-left: 0;\n }\n .rtl .offset-md-1,\n [dir=\"rtl\"] .offset-md-1 {\n margin-right: 8.333333%;\n margin-left: 0;\n }\n .rtl .offset-md-2,\n [dir=\"rtl\"] .offset-md-2 {\n margin-right: 16.666667%;\n margin-left: 0;\n }\n .rtl .offset-md-3,\n [dir=\"rtl\"] .offset-md-3 {\n margin-right: 25%;\n margin-left: 0;\n }\n .rtl .offset-md-4,\n [dir=\"rtl\"] .offset-md-4 {\n margin-right: 33.333333%;\n margin-left: 0;\n }\n .rtl .offset-md-5,\n [dir=\"rtl\"] .offset-md-5 {\n margin-right: 41.666667%;\n margin-left: 0;\n }\n .rtl .offset-md-6,\n [dir=\"rtl\"] .offset-md-6 {\n margin-right: 50%;\n margin-left: 0;\n }\n .rtl .offset-md-7,\n [dir=\"rtl\"] .offset-md-7 {\n margin-right: 58.333333%;\n margin-left: 0;\n }\n .rtl .offset-md-8,\n [dir=\"rtl\"] .offset-md-8 {\n margin-right: 66.666667%;\n margin-left: 0;\n }\n .rtl .offset-md-9,\n [dir=\"rtl\"] .offset-md-9 {\n margin-right: 75%;\n margin-left: 0;\n }\n .rtl .offset-md-10,\n [dir=\"rtl\"] .offset-md-10 {\n margin-right: 83.333333%;\n margin-left: 0;\n }\n .rtl .offset-md-11,\n [dir=\"rtl\"] .offset-md-11 {\n margin-right: 91.666667%;\n margin-left: 0;\n }\n}\n\n@media (min-width: 992px) {\n .rtl .offset-lg-0,\n [dir=\"rtl\"] .offset-lg-0 {\n margin-right: 0;\n margin-left: 0;\n }\n .rtl .offset-lg-1,\n [dir=\"rtl\"] .offset-lg-1 {\n margin-right: 8.333333%;\n margin-left: 0;\n }\n .rtl .offset-lg-2,\n [dir=\"rtl\"] .offset-lg-2 {\n margin-right: 16.666667%;\n margin-left: 0;\n }\n .rtl .offset-lg-3,\n [dir=\"rtl\"] .offset-lg-3 {\n margin-right: 25%;\n margin-left: 0;\n }\n .rtl .offset-lg-4,\n [dir=\"rtl\"] .offset-lg-4 {\n margin-right: 33.333333%;\n margin-left: 0;\n }\n .rtl .offset-lg-5,\n [dir=\"rtl\"] .offset-lg-5 {\n margin-right: 41.666667%;\n margin-left: 0;\n }\n .rtl .offset-lg-6,\n [dir=\"rtl\"] .offset-lg-6 {\n margin-right: 50%;\n margin-left: 0;\n }\n .rtl .offset-lg-7,\n [dir=\"rtl\"] .offset-lg-7 {\n margin-right: 58.333333%;\n margin-left: 0;\n }\n .rtl .offset-lg-8,\n [dir=\"rtl\"] .offset-lg-8 {\n margin-right: 66.666667%;\n margin-left: 0;\n }\n .rtl .offset-lg-9,\n [dir=\"rtl\"] .offset-lg-9 {\n margin-right: 75%;\n margin-left: 0;\n }\n .rtl .offset-lg-10,\n [dir=\"rtl\"] .offset-lg-10 {\n margin-right: 83.333333%;\n margin-left: 0;\n }\n .rtl .offset-lg-11,\n [dir=\"rtl\"] .offset-lg-11 {\n margin-right: 91.666667%;\n margin-left: 0;\n }\n}\n\n@media (min-width: 1200px) {\n .rtl .offset-xl-0,\n [dir=\"rtl\"] .offset-xl-0 {\n margin-right: 0;\n margin-left: 0;\n }\n .rtl .offset-xl-1,\n [dir=\"rtl\"] .offset-xl-1 {\n margin-right: 8.333333%;\n margin-left: 0;\n }\n .rtl .offset-xl-2,\n [dir=\"rtl\"] .offset-xl-2 {\n margin-right: 16.666667%;\n margin-left: 0;\n }\n .rtl .offset-xl-3,\n [dir=\"rtl\"] .offset-xl-3 {\n margin-right: 25%;\n margin-left: 0;\n }\n .rtl .offset-xl-4,\n [dir=\"rtl\"] .offset-xl-4 {\n margin-right: 33.333333%;\n margin-left: 0;\n }\n .rtl .offset-xl-5,\n [dir=\"rtl\"] .offset-xl-5 {\n margin-right: 41.666667%;\n margin-left: 0;\n }\n .rtl .offset-xl-6,\n [dir=\"rtl\"] .offset-xl-6 {\n margin-right: 50%;\n margin-left: 0;\n }\n .rtl .offset-xl-7,\n [dir=\"rtl\"] .offset-xl-7 {\n margin-right: 58.333333%;\n margin-left: 0;\n }\n .rtl .offset-xl-8,\n [dir=\"rtl\"] .offset-xl-8 {\n margin-right: 66.666667%;\n margin-left: 0;\n }\n .rtl .offset-xl-9,\n [dir=\"rtl\"] .offset-xl-9 {\n margin-right: 75%;\n margin-left: 0;\n }\n .rtl .offset-xl-10,\n [dir=\"rtl\"] .offset-xl-10 {\n margin-right: 83.333333%;\n margin-left: 0;\n }\n .rtl .offset-xl-11,\n [dir=\"rtl\"] .offset-xl-11 {\n margin-right: 91.666667%;\n margin-left: 0;\n }\n}\n\n.rtl .mr-0,\n[dir=\"rtl\"] .mr-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n}\n\n.rtl .ml-0,\n[dir=\"rtl\"] .ml-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n}\n\n.rtl mx-0,\n[dir=\"rtl\"] mx-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n}\n\n.rtl .mr-1,\n[dir=\"rtl\"] .mr-1 {\n margin-right: 0 !important;\n margin-left: 0.25rem !important;\n}\n\n.rtl .ml-1,\n[dir=\"rtl\"] .ml-1 {\n margin-left: 0 !important;\n margin-right: 0.25rem !important;\n}\n\n.rtl mx-1,\n[dir=\"rtl\"] mx-1 {\n margin-left: 0.25rem !important;\n margin-right: 0.25rem !important;\n}\n\n.rtl .mr-2,\n[dir=\"rtl\"] .mr-2 {\n margin-right: 0 !important;\n margin-left: 0.5rem !important;\n}\n\n.rtl .ml-2,\n[dir=\"rtl\"] .ml-2 {\n margin-left: 0 !important;\n margin-right: 0.5rem !important;\n}\n\n.rtl mx-2,\n[dir=\"rtl\"] mx-2 {\n margin-left: 0.5rem !important;\n margin-right: 0.5rem !important;\n}\n\n.rtl .mr-3,\n[dir=\"rtl\"] .mr-3 {\n margin-right: 0 !important;\n margin-left: 1rem !important;\n}\n\n.rtl .ml-3,\n[dir=\"rtl\"] .ml-3 {\n margin-left: 0 !important;\n margin-right: 1rem !important;\n}\n\n.rtl mx-3,\n[dir=\"rtl\"] mx-3 {\n margin-left: 1rem !important;\n margin-right: 1rem !important;\n}\n\n.rtl .mr-4,\n[dir=\"rtl\"] .mr-4 {\n margin-right: 0 !important;\n margin-left: 1.5rem !important;\n}\n\n.rtl .ml-4,\n[dir=\"rtl\"] .ml-4 {\n margin-left: 0 !important;\n margin-right: 1.5rem !important;\n}\n\n.rtl mx-4,\n[dir=\"rtl\"] mx-4 {\n margin-left: 1.5rem !important;\n margin-right: 1.5rem !important;\n}\n\n.rtl .mr-5,\n[dir=\"rtl\"] .mr-5 {\n margin-right: 0 !important;\n margin-left: 3rem !important;\n}\n\n.rtl .ml-5,\n[dir=\"rtl\"] .ml-5 {\n margin-left: 0 !important;\n margin-right: 3rem !important;\n}\n\n.rtl mx-5,\n[dir=\"rtl\"] mx-5 {\n margin-left: 3rem !important;\n margin-right: 3rem !important;\n}\n\n.rtl .pr-0,\n[dir=\"rtl\"] .pr-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n}\n\n.rtl .pl-0,\n[dir=\"rtl\"] .pl-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n}\n\n.rtl px-0,\n[dir=\"rtl\"] px-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n}\n\n.rtl .pr-1,\n[dir=\"rtl\"] .pr-1 {\n padding-right: 0 !important;\n padding-left: 0.25rem !important;\n}\n\n.rtl .pl-1,\n[dir=\"rtl\"] .pl-1 {\n padding-left: 0 !important;\n padding-right: 0.25rem !important;\n}\n\n.rtl px-1,\n[dir=\"rtl\"] px-1 {\n padding-left: 0.25rem !important;\n padding-right: 0.25rem !important;\n}\n\n.rtl .pr-2,\n[dir=\"rtl\"] .pr-2 {\n padding-right: 0 !important;\n padding-left: 0.5rem !important;\n}\n\n.rtl .pl-2,\n[dir=\"rtl\"] .pl-2 {\n padding-left: 0 !important;\n padding-right: 0.5rem !important;\n}\n\n.rtl px-2,\n[dir=\"rtl\"] px-2 {\n padding-left: 0.5rem !important;\n padding-right: 0.5rem !important;\n}\n\n.rtl .pr-3,\n[dir=\"rtl\"] .pr-3 {\n padding-right: 0 !important;\n padding-left: 1rem !important;\n}\n\n.rtl .pl-3,\n[dir=\"rtl\"] .pl-3 {\n padding-left: 0 !important;\n padding-right: 1rem !important;\n}\n\n.rtl px-3,\n[dir=\"rtl\"] px-3 {\n padding-left: 1rem !important;\n padding-right: 1rem !important;\n}\n\n.rtl .pr-4,\n[dir=\"rtl\"] .pr-4 {\n padding-right: 0 !important;\n padding-left: 1.5rem !important;\n}\n\n.rtl .pl-4,\n[dir=\"rtl\"] .pl-4 {\n padding-left: 0 !important;\n padding-right: 1.5rem !important;\n}\n\n.rtl px-4,\n[dir=\"rtl\"] px-4 {\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n}\n\n.rtl .pr-5,\n[dir=\"rtl\"] .pr-5 {\n padding-right: 0 !important;\n padding-left: 3rem !important;\n}\n\n.rtl .pl-5,\n[dir=\"rtl\"] .pl-5 {\n padding-left: 0 !important;\n padding-right: 3rem !important;\n}\n\n.rtl px-5,\n[dir=\"rtl\"] px-5 {\n padding-left: 3rem !important;\n padding-right: 3rem !important;\n}\n\n.rtl .mr-auto,\n[dir=\"rtl\"] .mr-auto {\n margin-right: 0 !important;\n margin-left: auto !important;\n}\n\n.rtl .ml-auto,\n[dir=\"rtl\"] .ml-auto {\n margin-right: auto !important;\n margin-left: 0 !important;\n}\n\n.rtl .mx-auto,\n[dir=\"rtl\"] .mx-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n}\n\n@media (min-width: 576px) {\n .rtl .mr-sm-0,\n [dir=\"rtl\"] .mr-sm-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .rtl .ml-sm-0,\n [dir=\"rtl\"] .ml-sm-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n }\n .rtl mx-sm-0,\n [dir=\"rtl\"] mx-sm-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n }\n .rtl .mr-sm-1,\n [dir=\"rtl\"] .mr-sm-1 {\n margin-right: 0 !important;\n margin-left: 0.25rem !important;\n }\n .rtl .ml-sm-1,\n [dir=\"rtl\"] .ml-sm-1 {\n margin-left: 0 !important;\n margin-right: 0.25rem !important;\n }\n .rtl mx-sm-1,\n [dir=\"rtl\"] mx-sm-1 {\n margin-left: 0.25rem !important;\n margin-right: 0.25rem !important;\n }\n .rtl .mr-sm-2,\n [dir=\"rtl\"] .mr-sm-2 {\n margin-right: 0 !important;\n margin-left: 0.5rem !important;\n }\n .rtl .ml-sm-2,\n [dir=\"rtl\"] .ml-sm-2 {\n margin-left: 0 !important;\n margin-right: 0.5rem !important;\n }\n .rtl mx-sm-2,\n [dir=\"rtl\"] mx-sm-2 {\n margin-left: 0.5rem !important;\n margin-right: 0.5rem !important;\n }\n .rtl .mr-sm-3,\n [dir=\"rtl\"] .mr-sm-3 {\n margin-right: 0 !important;\n margin-left: 1rem !important;\n }\n .rtl .ml-sm-3,\n [dir=\"rtl\"] .ml-sm-3 {\n margin-left: 0 !important;\n margin-right: 1rem !important;\n }\n .rtl mx-sm-3,\n [dir=\"rtl\"] mx-sm-3 {\n margin-left: 1rem !important;\n margin-right: 1rem !important;\n }\n .rtl .mr-sm-4,\n [dir=\"rtl\"] .mr-sm-4 {\n margin-right: 0 !important;\n margin-left: 1.5rem !important;\n }\n .rtl .ml-sm-4,\n [dir=\"rtl\"] .ml-sm-4 {\n margin-left: 0 !important;\n margin-right: 1.5rem !important;\n }\n .rtl mx-sm-4,\n [dir=\"rtl\"] mx-sm-4 {\n margin-left: 1.5rem !important;\n margin-right: 1.5rem !important;\n }\n .rtl .mr-sm-5,\n [dir=\"rtl\"] .mr-sm-5 {\n margin-right: 0 !important;\n margin-left: 3rem !important;\n }\n .rtl .ml-sm-5,\n [dir=\"rtl\"] .ml-sm-5 {\n margin-left: 0 !important;\n margin-right: 3rem !important;\n }\n .rtl mx-sm-5,\n [dir=\"rtl\"] mx-sm-5 {\n margin-left: 3rem !important;\n margin-right: 3rem !important;\n }\n .rtl .pr-sm-0,\n [dir=\"rtl\"] .pr-sm-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .rtl .pl-sm-0,\n [dir=\"rtl\"] .pl-sm-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n .rtl px-sm-0,\n [dir=\"rtl\"] px-sm-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n .rtl .pr-sm-1,\n [dir=\"rtl\"] .pr-sm-1 {\n padding-right: 0 !important;\n padding-left: 0.25rem !important;\n }\n .rtl .pl-sm-1,\n [dir=\"rtl\"] .pl-sm-1 {\n padding-left: 0 !important;\n padding-right: 0.25rem !important;\n }\n .rtl px-sm-1,\n [dir=\"rtl\"] px-sm-1 {\n padding-left: 0.25rem !important;\n padding-right: 0.25rem !important;\n }\n .rtl .pr-sm-2,\n [dir=\"rtl\"] .pr-sm-2 {\n padding-right: 0 !important;\n padding-left: 0.5rem !important;\n }\n .rtl .pl-sm-2,\n [dir=\"rtl\"] .pl-sm-2 {\n padding-left: 0 !important;\n padding-right: 0.5rem !important;\n }\n .rtl px-sm-2,\n [dir=\"rtl\"] px-sm-2 {\n padding-left: 0.5rem !important;\n padding-right: 0.5rem !important;\n }\n .rtl .pr-sm-3,\n [dir=\"rtl\"] .pr-sm-3 {\n padding-right: 0 !important;\n padding-left: 1rem !important;\n }\n .rtl .pl-sm-3,\n [dir=\"rtl\"] .pl-sm-3 {\n padding-left: 0 !important;\n padding-right: 1rem !important;\n }\n .rtl px-sm-3,\n [dir=\"rtl\"] px-sm-3 {\n padding-left: 1rem !important;\n padding-right: 1rem !important;\n }\n .rtl .pr-sm-4,\n [dir=\"rtl\"] .pr-sm-4 {\n padding-right: 0 !important;\n padding-left: 1.5rem !important;\n }\n .rtl .pl-sm-4,\n [dir=\"rtl\"] .pl-sm-4 {\n padding-left: 0 !important;\n padding-right: 1.5rem !important;\n }\n .rtl px-sm-4,\n [dir=\"rtl\"] px-sm-4 {\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n }\n .rtl .pr-sm-5,\n [dir=\"rtl\"] .pr-sm-5 {\n padding-right: 0 !important;\n padding-left: 3rem !important;\n }\n .rtl .pl-sm-5,\n [dir=\"rtl\"] .pl-sm-5 {\n padding-left: 0 !important;\n padding-right: 3rem !important;\n }\n .rtl px-sm-5,\n [dir=\"rtl\"] px-sm-5 {\n padding-left: 3rem !important;\n padding-right: 3rem !important;\n }\n .rtl .mr-sm-auto,\n [dir=\"rtl\"] .mr-sm-auto {\n margin-right: 0 !important;\n margin-left: auto !important;\n }\n .rtl .ml-sm-auto,\n [dir=\"rtl\"] .ml-sm-auto {\n margin-right: auto !important;\n margin-left: 0 !important;\n }\n .rtl .mx-sm-auto,\n [dir=\"rtl\"] .mx-sm-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 768px) {\n .rtl .mr-md-0,\n [dir=\"rtl\"] .mr-md-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .rtl .ml-md-0,\n [dir=\"rtl\"] .ml-md-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n }\n .rtl mx-md-0,\n [dir=\"rtl\"] mx-md-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n }\n .rtl .mr-md-1,\n [dir=\"rtl\"] .mr-md-1 {\n margin-right: 0 !important;\n margin-left: 0.25rem !important;\n }\n .rtl .ml-md-1,\n [dir=\"rtl\"] .ml-md-1 {\n margin-left: 0 !important;\n margin-right: 0.25rem !important;\n }\n .rtl mx-md-1,\n [dir=\"rtl\"] mx-md-1 {\n margin-left: 0.25rem !important;\n margin-right: 0.25rem !important;\n }\n .rtl .mr-md-2,\n [dir=\"rtl\"] .mr-md-2 {\n margin-right: 0 !important;\n margin-left: 0.5rem !important;\n }\n .rtl .ml-md-2,\n [dir=\"rtl\"] .ml-md-2 {\n margin-left: 0 !important;\n margin-right: 0.5rem !important;\n }\n .rtl mx-md-2,\n [dir=\"rtl\"] mx-md-2 {\n margin-left: 0.5rem !important;\n margin-right: 0.5rem !important;\n }\n .rtl .mr-md-3,\n [dir=\"rtl\"] .mr-md-3 {\n margin-right: 0 !important;\n margin-left: 1rem !important;\n }\n .rtl .ml-md-3,\n [dir=\"rtl\"] .ml-md-3 {\n margin-left: 0 !important;\n margin-right: 1rem !important;\n }\n .rtl mx-md-3,\n [dir=\"rtl\"] mx-md-3 {\n margin-left: 1rem !important;\n margin-right: 1rem !important;\n }\n .rtl .mr-md-4,\n [dir=\"rtl\"] .mr-md-4 {\n margin-right: 0 !important;\n margin-left: 1.5rem !important;\n }\n .rtl .ml-md-4,\n [dir=\"rtl\"] .ml-md-4 {\n margin-left: 0 !important;\n margin-right: 1.5rem !important;\n }\n .rtl mx-md-4,\n [dir=\"rtl\"] mx-md-4 {\n margin-left: 1.5rem !important;\n margin-right: 1.5rem !important;\n }\n .rtl .mr-md-5,\n [dir=\"rtl\"] .mr-md-5 {\n margin-right: 0 !important;\n margin-left: 3rem !important;\n }\n .rtl .ml-md-5,\n [dir=\"rtl\"] .ml-md-5 {\n margin-left: 0 !important;\n margin-right: 3rem !important;\n }\n .rtl mx-md-5,\n [dir=\"rtl\"] mx-md-5 {\n margin-left: 3rem !important;\n margin-right: 3rem !important;\n }\n .rtl .pr-md-0,\n [dir=\"rtl\"] .pr-md-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .rtl .pl-md-0,\n [dir=\"rtl\"] .pl-md-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n .rtl px-md-0,\n [dir=\"rtl\"] px-md-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n .rtl .pr-md-1,\n [dir=\"rtl\"] .pr-md-1 {\n padding-right: 0 !important;\n padding-left: 0.25rem !important;\n }\n .rtl .pl-md-1,\n [dir=\"rtl\"] .pl-md-1 {\n padding-left: 0 !important;\n padding-right: 0.25rem !important;\n }\n .rtl px-md-1,\n [dir=\"rtl\"] px-md-1 {\n padding-left: 0.25rem !important;\n padding-right: 0.25rem !important;\n }\n .rtl .pr-md-2,\n [dir=\"rtl\"] .pr-md-2 {\n padding-right: 0 !important;\n padding-left: 0.5rem !important;\n }\n .rtl .pl-md-2,\n [dir=\"rtl\"] .pl-md-2 {\n padding-left: 0 !important;\n padding-right: 0.5rem !important;\n }\n .rtl px-md-2,\n [dir=\"rtl\"] px-md-2 {\n padding-left: 0.5rem !important;\n padding-right: 0.5rem !important;\n }\n .rtl .pr-md-3,\n [dir=\"rtl\"] .pr-md-3 {\n padding-right: 0 !important;\n padding-left: 1rem !important;\n }\n .rtl .pl-md-3,\n [dir=\"rtl\"] .pl-md-3 {\n padding-left: 0 !important;\n padding-right: 1rem !important;\n }\n .rtl px-md-3,\n [dir=\"rtl\"] px-md-3 {\n padding-left: 1rem !important;\n padding-right: 1rem !important;\n }\n .rtl .pr-md-4,\n [dir=\"rtl\"] .pr-md-4 {\n padding-right: 0 !important;\n padding-left: 1.5rem !important;\n }\n .rtl .pl-md-4,\n [dir=\"rtl\"] .pl-md-4 {\n padding-left: 0 !important;\n padding-right: 1.5rem !important;\n }\n .rtl px-md-4,\n [dir=\"rtl\"] px-md-4 {\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n }\n .rtl .pr-md-5,\n [dir=\"rtl\"] .pr-md-5 {\n padding-right: 0 !important;\n padding-left: 3rem !important;\n }\n .rtl .pl-md-5,\n [dir=\"rtl\"] .pl-md-5 {\n padding-left: 0 !important;\n padding-right: 3rem !important;\n }\n .rtl px-md-5,\n [dir=\"rtl\"] px-md-5 {\n padding-left: 3rem !important;\n padding-right: 3rem !important;\n }\n .rtl .mr-md-auto,\n [dir=\"rtl\"] .mr-md-auto {\n margin-right: 0 !important;\n margin-left: auto !important;\n }\n .rtl .ml-md-auto,\n [dir=\"rtl\"] .ml-md-auto {\n margin-right: auto !important;\n margin-left: 0 !important;\n }\n .rtl .mx-md-auto,\n [dir=\"rtl\"] .mx-md-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 992px) {\n .rtl .mr-lg-0,\n [dir=\"rtl\"] .mr-lg-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .rtl .ml-lg-0,\n [dir=\"rtl\"] .ml-lg-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n }\n .rtl mx-lg-0,\n [dir=\"rtl\"] mx-lg-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n }\n .rtl .mr-lg-1,\n [dir=\"rtl\"] .mr-lg-1 {\n margin-right: 0 !important;\n margin-left: 0.25rem !important;\n }\n .rtl .ml-lg-1,\n [dir=\"rtl\"] .ml-lg-1 {\n margin-left: 0 !important;\n margin-right: 0.25rem !important;\n }\n .rtl mx-lg-1,\n [dir=\"rtl\"] mx-lg-1 {\n margin-left: 0.25rem !important;\n margin-right: 0.25rem !important;\n }\n .rtl .mr-lg-2,\n [dir=\"rtl\"] .mr-lg-2 {\n margin-right: 0 !important;\n margin-left: 0.5rem !important;\n }\n .rtl .ml-lg-2,\n [dir=\"rtl\"] .ml-lg-2 {\n margin-left: 0 !important;\n margin-right: 0.5rem !important;\n }\n .rtl mx-lg-2,\n [dir=\"rtl\"] mx-lg-2 {\n margin-left: 0.5rem !important;\n margin-right: 0.5rem !important;\n }\n .rtl .mr-lg-3,\n [dir=\"rtl\"] .mr-lg-3 {\n margin-right: 0 !important;\n margin-left: 1rem !important;\n }\n .rtl .ml-lg-3,\n [dir=\"rtl\"] .ml-lg-3 {\n margin-left: 0 !important;\n margin-right: 1rem !important;\n }\n .rtl mx-lg-3,\n [dir=\"rtl\"] mx-lg-3 {\n margin-left: 1rem !important;\n margin-right: 1rem !important;\n }\n .rtl .mr-lg-4,\n [dir=\"rtl\"] .mr-lg-4 {\n margin-right: 0 !important;\n margin-left: 1.5rem !important;\n }\n .rtl .ml-lg-4,\n [dir=\"rtl\"] .ml-lg-4 {\n margin-left: 0 !important;\n margin-right: 1.5rem !important;\n }\n .rtl mx-lg-4,\n [dir=\"rtl\"] mx-lg-4 {\n margin-left: 1.5rem !important;\n margin-right: 1.5rem !important;\n }\n .rtl .mr-lg-5,\n [dir=\"rtl\"] .mr-lg-5 {\n margin-right: 0 !important;\n margin-left: 3rem !important;\n }\n .rtl .ml-lg-5,\n [dir=\"rtl\"] .ml-lg-5 {\n margin-left: 0 !important;\n margin-right: 3rem !important;\n }\n .rtl mx-lg-5,\n [dir=\"rtl\"] mx-lg-5 {\n margin-left: 3rem !important;\n margin-right: 3rem !important;\n }\n .rtl .pr-lg-0,\n [dir=\"rtl\"] .pr-lg-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .rtl .pl-lg-0,\n [dir=\"rtl\"] .pl-lg-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n .rtl px-lg-0,\n [dir=\"rtl\"] px-lg-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n .rtl .pr-lg-1,\n [dir=\"rtl\"] .pr-lg-1 {\n padding-right: 0 !important;\n padding-left: 0.25rem !important;\n }\n .rtl .pl-lg-1,\n [dir=\"rtl\"] .pl-lg-1 {\n padding-left: 0 !important;\n padding-right: 0.25rem !important;\n }\n .rtl px-lg-1,\n [dir=\"rtl\"] px-lg-1 {\n padding-left: 0.25rem !important;\n padding-right: 0.25rem !important;\n }\n .rtl .pr-lg-2,\n [dir=\"rtl\"] .pr-lg-2 {\n padding-right: 0 !important;\n padding-left: 0.5rem !important;\n }\n .rtl .pl-lg-2,\n [dir=\"rtl\"] .pl-lg-2 {\n padding-left: 0 !important;\n padding-right: 0.5rem !important;\n }\n .rtl px-lg-2,\n [dir=\"rtl\"] px-lg-2 {\n padding-left: 0.5rem !important;\n padding-right: 0.5rem !important;\n }\n .rtl .pr-lg-3,\n [dir=\"rtl\"] .pr-lg-3 {\n padding-right: 0 !important;\n padding-left: 1rem !important;\n }\n .rtl .pl-lg-3,\n [dir=\"rtl\"] .pl-lg-3 {\n padding-left: 0 !important;\n padding-right: 1rem !important;\n }\n .rtl px-lg-3,\n [dir=\"rtl\"] px-lg-3 {\n padding-left: 1rem !important;\n padding-right: 1rem !important;\n }\n .rtl .pr-lg-4,\n [dir=\"rtl\"] .pr-lg-4 {\n padding-right: 0 !important;\n padding-left: 1.5rem !important;\n }\n .rtl .pl-lg-4,\n [dir=\"rtl\"] .pl-lg-4 {\n padding-left: 0 !important;\n padding-right: 1.5rem !important;\n }\n .rtl px-lg-4,\n [dir=\"rtl\"] px-lg-4 {\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n }\n .rtl .pr-lg-5,\n [dir=\"rtl\"] .pr-lg-5 {\n padding-right: 0 !important;\n padding-left: 3rem !important;\n }\n .rtl .pl-lg-5,\n [dir=\"rtl\"] .pl-lg-5 {\n padding-left: 0 !important;\n padding-right: 3rem !important;\n }\n .rtl px-lg-5,\n [dir=\"rtl\"] px-lg-5 {\n padding-left: 3rem !important;\n padding-right: 3rem !important;\n }\n .rtl .mr-lg-auto,\n [dir=\"rtl\"] .mr-lg-auto {\n margin-right: 0 !important;\n margin-left: auto !important;\n }\n .rtl .ml-lg-auto,\n [dir=\"rtl\"] .ml-lg-auto {\n margin-right: auto !important;\n margin-left: 0 !important;\n }\n .rtl .mx-lg-auto,\n [dir=\"rtl\"] .mx-lg-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n}\n\n@media (min-width: 1200px) {\n .rtl .mr-xl-0,\n [dir=\"rtl\"] .mr-xl-0 {\n margin-right: 0 !important;\n margin-left: 0 !important;\n }\n .rtl .ml-xl-0,\n [dir=\"rtl\"] .ml-xl-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n }\n .rtl mx-xl-0,\n [dir=\"rtl\"] mx-xl-0 {\n margin-left: 0 !important;\n margin-right: 0 !important;\n }\n .rtl .mr-xl-1,\n [dir=\"rtl\"] .mr-xl-1 {\n margin-right: 0 !important;\n margin-left: 0.25rem !important;\n }\n .rtl .ml-xl-1,\n [dir=\"rtl\"] .ml-xl-1 {\n margin-left: 0 !important;\n margin-right: 0.25rem !important;\n }\n .rtl mx-xl-1,\n [dir=\"rtl\"] mx-xl-1 {\n margin-left: 0.25rem !important;\n margin-right: 0.25rem !important;\n }\n .rtl .mr-xl-2,\n [dir=\"rtl\"] .mr-xl-2 {\n margin-right: 0 !important;\n margin-left: 0.5rem !important;\n }\n .rtl .ml-xl-2,\n [dir=\"rtl\"] .ml-xl-2 {\n margin-left: 0 !important;\n margin-right: 0.5rem !important;\n }\n .rtl mx-xl-2,\n [dir=\"rtl\"] mx-xl-2 {\n margin-left: 0.5rem !important;\n margin-right: 0.5rem !important;\n }\n .rtl .mr-xl-3,\n [dir=\"rtl\"] .mr-xl-3 {\n margin-right: 0 !important;\n margin-left: 1rem !important;\n }\n .rtl .ml-xl-3,\n [dir=\"rtl\"] .ml-xl-3 {\n margin-left: 0 !important;\n margin-right: 1rem !important;\n }\n .rtl mx-xl-3,\n [dir=\"rtl\"] mx-xl-3 {\n margin-left: 1rem !important;\n margin-right: 1rem !important;\n }\n .rtl .mr-xl-4,\n [dir=\"rtl\"] .mr-xl-4 {\n margin-right: 0 !important;\n margin-left: 1.5rem !important;\n }\n .rtl .ml-xl-4,\n [dir=\"rtl\"] .ml-xl-4 {\n margin-left: 0 !important;\n margin-right: 1.5rem !important;\n }\n .rtl mx-xl-4,\n [dir=\"rtl\"] mx-xl-4 {\n margin-left: 1.5rem !important;\n margin-right: 1.5rem !important;\n }\n .rtl .mr-xl-5,\n [dir=\"rtl\"] .mr-xl-5 {\n margin-right: 0 !important;\n margin-left: 3rem !important;\n }\n .rtl .ml-xl-5,\n [dir=\"rtl\"] .ml-xl-5 {\n margin-left: 0 !important;\n margin-right: 3rem !important;\n }\n .rtl mx-xl-5,\n [dir=\"rtl\"] mx-xl-5 {\n margin-left: 3rem !important;\n margin-right: 3rem !important;\n }\n .rtl .pr-xl-0,\n [dir=\"rtl\"] .pr-xl-0 {\n padding-right: 0 !important;\n padding-left: 0 !important;\n }\n .rtl .pl-xl-0,\n [dir=\"rtl\"] .pl-xl-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n .rtl px-xl-0,\n [dir=\"rtl\"] px-xl-0 {\n padding-left: 0 !important;\n padding-right: 0 !important;\n }\n .rtl .pr-xl-1,\n [dir=\"rtl\"] .pr-xl-1 {\n padding-right: 0 !important;\n padding-left: 0.25rem !important;\n }\n .rtl .pl-xl-1,\n [dir=\"rtl\"] .pl-xl-1 {\n padding-left: 0 !important;\n padding-right: 0.25rem !important;\n }\n .rtl px-xl-1,\n [dir=\"rtl\"] px-xl-1 {\n padding-left: 0.25rem !important;\n padding-right: 0.25rem !important;\n }\n .rtl .pr-xl-2,\n [dir=\"rtl\"] .pr-xl-2 {\n padding-right: 0 !important;\n padding-left: 0.5rem !important;\n }\n .rtl .pl-xl-2,\n [dir=\"rtl\"] .pl-xl-2 {\n padding-left: 0 !important;\n padding-right: 0.5rem !important;\n }\n .rtl px-xl-2,\n [dir=\"rtl\"] px-xl-2 {\n padding-left: 0.5rem !important;\n padding-right: 0.5rem !important;\n }\n .rtl .pr-xl-3,\n [dir=\"rtl\"] .pr-xl-3 {\n padding-right: 0 !important;\n padding-left: 1rem !important;\n }\n .rtl .pl-xl-3,\n [dir=\"rtl\"] .pl-xl-3 {\n padding-left: 0 !important;\n padding-right: 1rem !important;\n }\n .rtl px-xl-3,\n [dir=\"rtl\"] px-xl-3 {\n padding-left: 1rem !important;\n padding-right: 1rem !important;\n }\n .rtl .pr-xl-4,\n [dir=\"rtl\"] .pr-xl-4 {\n padding-right: 0 !important;\n padding-left: 1.5rem !important;\n }\n .rtl .pl-xl-4,\n [dir=\"rtl\"] .pl-xl-4 {\n padding-left: 0 !important;\n padding-right: 1.5rem !important;\n }\n .rtl px-xl-4,\n [dir=\"rtl\"] px-xl-4 {\n padding-left: 1.5rem !important;\n padding-right: 1.5rem !important;\n }\n .rtl .pr-xl-5,\n [dir=\"rtl\"] .pr-xl-5 {\n padding-right: 0 !important;\n padding-left: 3rem !important;\n }\n .rtl .pl-xl-5,\n [dir=\"rtl\"] .pl-xl-5 {\n padding-left: 0 !important;\n padding-right: 3rem !important;\n }\n .rtl px-xl-5,\n [dir=\"rtl\"] px-xl-5 {\n padding-left: 3rem !important;\n padding-right: 3rem !important;\n }\n .rtl .mr-xl-auto,\n [dir=\"rtl\"] .mr-xl-auto {\n margin-right: 0 !important;\n margin-left: auto !important;\n }\n .rtl .ml-xl-auto,\n [dir=\"rtl\"] .ml-xl-auto {\n margin-right: auto !important;\n margin-left: 0 !important;\n }\n .rtl .mx-xl-auto,\n [dir=\"rtl\"] .mx-xl-auto {\n margin-right: auto !important;\n margin-left: auto !important;\n }\n}\n\n.rtl .text-right,\n[dir=\"rtl\"] .text-right {\n text-align: left !important;\n}\n\n.rtl .text-left,\n[dir=\"rtl\"] .text-left {\n text-align: right !important;\n}\n\n@media (min-width: 576px) {\n .rtl .text-sm-right,\n [dir=\"rtl\"] .text-sm-right {\n text-align: left !important;\n }\n .rtl .text-sm-left,\n [dir=\"rtl\"] .text-sm-left {\n text-align: right !important;\n }\n}\n\n@media (min-width: 768px) {\n .rtl .text-md-right,\n [dir=\"rtl\"] .text-md-right {\n text-align: left !important;\n }\n .rtl .text-md-left,\n [dir=\"rtl\"] .text-md-left {\n text-align: right !important;\n }\n}\n\n@media (min-width: 992px) {\n .rtl .text-lg-right,\n [dir=\"rtl\"] .text-lg-right {\n text-align: left !important;\n }\n .rtl .text-lg-left,\n [dir=\"rtl\"] .text-lg-left {\n text-align: right !important;\n }\n}\n\n@media (min-width: 1200px) {\n .rtl .text-xl-right,\n [dir=\"rtl\"] .text-xl-right {\n text-align: left !important;\n }\n .rtl .text-xl-left,\n [dir=\"rtl\"] .text-xl-left {\n text-align: right !important;\n }\n}\n\n/*# sourceMappingURL=bootstrap-rtl.css.map */","// Do not forget to update getting-started/theming.md!\n:root {\n // Custom variable values only support SassScript inside `#{}`.\n @each $color, $value in $colors {\n --#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$color}: #{$value};\n }\n\n @each $bp, $value in $grid-breakpoints {\n --breakpoint-#{$bp}: #{$value};\n }\n\n // Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --font-family-sans-serif: #{inspect($font-family-sans-serif)};\n --font-family-monospace: #{inspect($font-family-monospace)};\n}\n","// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n// 2. Change the default font family in all browsers.\n// 3. Correct the line height in all browsers.\n// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.\n// 5. Change the default tap highlight to be completely transparent in iOS.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box; // 1\n}\n\nhtml {\n font-family: sans-serif; // 2\n line-height: 1.15; // 3\n -webkit-text-size-adjust: 100%; // 4\n -webkit-tap-highlight-color: rgba($black, 0); // 5\n}\n\n// Shim for \"new\" HTML5 structural elements to display correctly (IE10, older browsers)\n// TODO: remove in v5\n// stylelint-disable-next-line selector-list-comma-newline-after\narticle, aside, figcaption, figure, footer, header, hgroup, main, nav, section {\n display: block;\n}\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Set an explicit initial text-align value so that we can later use\n// the `inherit` value on things like `` elements.\n\nbody {\n margin: 0; // 1\n font-family: $font-family-base;\n @include font-size($font-size-base);\n font-weight: $font-weight-base;\n line-height: $line-height-base;\n color: $body-color;\n text-align: left; // 3\n background-color: $body-bg; // 2\n}\n\n// Future-proof rule: in browsers that support :focus-visible, suppress the focus outline\n// on elements that programmatically receive focus but wouldn't normally show a visible\n// focus outline. In general, this would mean that the outline is only applied if the\n// interaction that led to the element receiving programmatic focus was a keyboard interaction,\n// or the browser has somehow determined that the user is primarily a keyboard user and/or\n// wants focus outlines to always be presented.\n//\n// See https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible\n// and https://developer.paciellogroup.com/blog/2018/03/focus-visible-and-backwards-compatibility/\n[tabindex=\"-1\"]:focus:not(:focus-visible) {\n outline: 0 !important;\n}\n\n\n// Content grouping\n//\n// 1. Add the correct box sizing in Firefox.\n// 2. Show the overflow in Edge and IE.\n\nhr {\n box-sizing: content-box; // 1\n height: 0; // 1\n overflow: visible; // 2\n}\n\n\n//\n// Typography\n//\n\n// Remove top margins from headings\n//\n// By default, `

From 03abf3bcaeb6d8c09777e9e97612c1895bfe7fc5 Mon Sep 17 00:00:00 2001 From: maliming <6908465+maliming@users.noreply.github.com> Date: Tue, 13 Oct 2020 16:43:59 +0800 Subject: [PATCH 172/242] Update FodyWeavers.xml(ContinueOnCapturedContext = false) --- .../FodyWeavers.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/blogging/src/Volo.Blogging.Application.Contracts.Shared/FodyWeavers.xml b/modules/blogging/src/Volo.Blogging.Application.Contracts.Shared/FodyWeavers.xml index 00e1d9a1c1..bc5a74a236 100644 --- a/modules/blogging/src/Volo.Blogging.Application.Contracts.Shared/FodyWeavers.xml +++ b/modules/blogging/src/Volo.Blogging.Application.Contracts.Shared/FodyWeavers.xml @@ -1,3 +1,3 @@  - - \ No newline at end of file + + From 1be9cd8ce1b43a8711399ab4c1b317e01d200ef1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E7=A3=8A?= Date: Tue, 13 Oct 2020 18:01:41 +0800 Subject: [PATCH 173/242] fix localization error fix localization error --- .../Volo/Abp/Validation/Localization/zh-Hans.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/zh-Hans.json b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/zh-Hans.json index 1f40a603e8..0a41ce1ed5 100644 --- a/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/zh-Hans.json +++ b/framework/src/Volo.Abp.Validation/Volo/Abp/Validation/Localization/zh-Hans.json @@ -27,7 +27,7 @@ "ThisFieldMustMatchTheRegularExpression{0}": "字段必须匹配正则表达式'{0}'.", "ThisFieldIsRequired.": "字段不可为空.", "ThisFieldMustBeAStringWithAMaximumLengthOf{0}": "字段必须是长度为{0}的字符串.", - "ThisFieldMustBeAStringWithAMinimumLengthOf{1}AndAMaximumLengthOf{0}": "字段必须是最小长度为{1}并且最大长度{*}的字符串.", + "ThisFieldMustBeAStringWithAMinimumLengthOf{1}AndAMaximumLengthOf{0}": "字段必须是最小长度为{1}并且最大长度{0}的字符串.", "ThisFieldIsNotAValidFullyQualifiedHttpHttpsOrFtpUrl": "字段{0}不是有效的完全限定的http,https或ftp URL.", "ThisFieldIsInvalid.": "该字段无效." } From 14af54d2e71b94492f3003331b13044ee8fda278 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Halil=20=C4=B0brahim=20Kalkan?= Date: Tue, 13 Oct 2020 15:28:59 +0300 Subject: [PATCH 174/242] Fix the Microsoft.AspNetCore.Components.WebAssembly version That was accidently downgraded. /cc: @maliming --- .../Volo.Abp.AspNetCore.Components.WebAssembly.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo.Abp.AspNetCore.Components.WebAssembly.csproj b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo.Abp.AspNetCore.Components.WebAssembly.csproj index 3cae39a1e9..9f1c48e3c3 100644 --- a/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo.Abp.AspNetCore.Components.WebAssembly.csproj +++ b/framework/src/Volo.Abp.AspNetCore.Components.WebAssembly/Volo.Abp.AspNetCore.Components.WebAssembly.csproj @@ -20,7 +20,7 @@ - + From 91b34466dd239dfcb10293dec87dcb118cd70434 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Tue, 13 Oct 2020 15:54:58 +0300 Subject: [PATCH 175/242] docs module minor refactors --- .../DocsAdminPermissionDefinitionProvider.cs | 1 - .../Volo/Docs/Admin/DocsAdminPermissions.cs | 1 - .../Docs/Admin/Documents/PullDocumentInput.cs | 12 +----- .../Admin/Projects/ProjectAdminAppService.cs | 7 +-- .../DocsAdminWebAutoMapperProfile.cs | 6 ++- .../Volo.Docs.Admin.Web/DocsAdminWebModule.cs | 1 - .../Pages/Docs/Admin/Documents/Index.cshtml | 20 ++++----- .../Pages/Docs/Admin/Documents/index.js | 43 +++++++------------ .../Pages/Docs/Admin/Projects/index.js | 3 +- .../Docs/DocsApplicationAutoMapperProfile.cs | 5 +-- .../Volo/Docs/Documents/DocumentAppService.cs | 34 +++++++-------- .../Volo/Docs/Projects/ProjectAppService.cs | 7 +-- 12 files changed, 59 insertions(+), 81 deletions(-) diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/DocsAdminPermissionDefinitionProvider.cs b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/DocsAdminPermissionDefinitionProvider.cs index c7bb12e3bb..6f9bb6407e 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/DocsAdminPermissionDefinitionProvider.cs +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/DocsAdminPermissionDefinitionProvider.cs @@ -16,7 +16,6 @@ namespace Volo.Docs.Admin projects.AddChild(DocsAdminPermissions.Projects.Create, L("Permission:Create")); group.AddPermission(DocsAdminPermissions.Documents.Default, L("Permission:Documents")); - } private static LocalizableString L(string name) diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/DocsAdminPermissions.cs b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/DocsAdminPermissions.cs index 26c1c46254..e6043241ea 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/DocsAdminPermissions.cs +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/DocsAdminPermissions.cs @@ -19,7 +19,6 @@ namespace Volo.Docs.Admin public const string Default = GroupName + ".Documents"; } - public static string[] GetAll() { return ReflectionHelper.GetPublicConstantsRecursively(typeof(DocsAdminPermissions)); diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Documents/PullDocumentInput.cs b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Documents/PullDocumentInput.cs index dce5de0420..2d48cb6678 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Documents/PullDocumentInput.cs +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Documents/PullDocumentInput.cs @@ -5,17 +5,9 @@ using Volo.Docs.Documents; namespace Volo.Docs.Admin.Documents { - public class PullDocumentInput + public class PullDocumentInput : PullAllDocumentInput { - public Guid ProjectId { get; set; } - [DynamicStringLength(typeof(DocumentConsts), nameof(DocumentConsts.MaxNameLength))] public string Name { get; set; } - - [DynamicStringLength(typeof(DocumentConsts), nameof(DocumentConsts.MaxLanguageCodeNameLength))] - public string LanguageCode { get; set; } - - [DynamicStringLength(typeof(DocumentConsts), nameof(DocumentConsts.MaxVersionNameLength))] - public string Version { get; set; } } -} \ No newline at end of file +} diff --git a/modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/Projects/ProjectAdminAppService.cs b/modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/Projects/ProjectAdminAppService.cs index 882a8b8087..bc663a0252 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/Projects/ProjectAdminAppService.cs +++ b/modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/Projects/ProjectAdminAppService.cs @@ -42,9 +42,10 @@ namespace Volo.Docs.Admin.Projects var totalCount = await _projectRepository.GetCountAsync(); - var dtos = ObjectMapper.Map, List>(projects); - - return new PagedResultDto(totalCount, dtos); + return new PagedResultDto( + totalCount, + ObjectMapper.Map, List>(projects) + ); } public async Task GetAsync(Guid id) diff --git a/modules/docs/src/Volo.Docs.Admin.Web/DocsAdminWebAutoMapperProfile.cs b/modules/docs/src/Volo.Docs.Admin.Web/DocsAdminWebAutoMapperProfile.cs index 83f993d1e8..d6a1d2230a 100644 --- a/modules/docs/src/Volo.Docs.Admin.Web/DocsAdminWebAutoMapperProfile.cs +++ b/modules/docs/src/Volo.Docs.Admin.Web/DocsAdminWebAutoMapperProfile.cs @@ -10,9 +10,11 @@ namespace Volo.Docs.Admin { public DocsAdminWebAutoMapperProfile() { - CreateMap().Ignore(x => x.ExtraProperties); + CreateMap() + .Ignore(x => x.ExtraProperties); - CreateMap().Ignore(x => x.ExtraProperties); + CreateMap() + .Ignore(x => x.ExtraProperties); CreateMap () .Ignore(x => x.GitHubAccessToken) diff --git a/modules/docs/src/Volo.Docs.Admin.Web/DocsAdminWebModule.cs b/modules/docs/src/Volo.Docs.Admin.Web/DocsAdminWebModule.cs index bcd9616089..ad4e7b58be 100644 --- a/modules/docs/src/Volo.Docs.Admin.Web/DocsAdminWebModule.cs +++ b/modules/docs/src/Volo.Docs.Admin.Web/DocsAdminWebModule.cs @@ -31,7 +31,6 @@ namespace Volo.Docs.Admin public override void ConfigureServices(ServiceConfigurationContext context) { - Configure(options => { options.MenuContributors.Add(new DocsMenuContributor()); diff --git a/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Documents/Index.cshtml b/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Documents/Index.cshtml index 1afd658afe..d1816f4017 100644 --- a/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Documents/Index.cshtml +++ b/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Documents/Index.cshtml @@ -98,7 +98,7 @@