From fe614921486482af4f16e231d844d4d0e0797af7 Mon Sep 17 00:00:00 2001 From: gdlcf88 Date: Fri, 1 Jul 2022 02:28:47 +0800 Subject: [PATCH 1/2] Upgrade to ABP 5.3.1 --- Directory.Build.props | 8 +- .../EasyAbp.EShop.Application.csproj | 2 +- .../EasyAbp.EShop.Domain.csproj | 2 +- .../EasyAbp.EShop.Application.Tests.csproj | 2 +- .../EasyAbp.EShop.Domain.Tests.csproj | 2 +- ...Abp.EShop.EntityFrameworkCore.Tests.csproj | 2 +- .../EasyAbp.EShop.MongoDB.Tests.csproj | 2 +- .../EasyAbp.EShop.TestBase.csproj | 6 +- .../EasyAbp.EShop.Orders.Application.csproj | 2 +- .../EasyAbp.EShop.Orders.Domain.csproj | 2 +- ...yAbp.EShop.Orders.Application.Tests.csproj | 2 +- .../EasyAbp.EShop.Orders.Domain.Tests.csproj | 2 +- ...op.Orders.EntityFrameworkCore.Tests.csproj | 2 +- .../EasyAbp.EShop.Orders.MongoDB.Tests.csproj | 2 +- .../EasyAbp.EShop.Orders.TestBase.csproj | 6 +- .../EasyAbp.EShop.Payments.Application.csproj | 2 +- .../EasyAbp.EShop.Payments.Domain.csproj | 2 +- ...bp.EShop.Payments.Application.Tests.csproj | 2 +- ...EasyAbp.EShop.Payments.Domain.Tests.csproj | 2 +- ....Payments.EntityFrameworkCore.Tests.csproj | 2 +- ...asyAbp.EShop.Payments.MongoDB.Tests.csproj | 2 +- .../EasyAbp.EShop.Payments.TestBase.csproj | 6 +- .../EasyAbp.EShop.Plugins.Application.csproj | 2 +- ...Abp.EShop.Plugins.Application.Tests.csproj | 2 +- .../EasyAbp.EShop.Plugins.Domain.Tests.csproj | 2 +- ...p.Plugins.EntityFrameworkCore.Tests.csproj | 2 +- ...EasyAbp.EShop.Plugins.MongoDB.Tests.csproj | 2 +- .../EasyAbp.EShop.Plugins.TestBase.csproj | 6 +- .../EasyAbp.EShop.Products.Application.csproj | 2 +- .../EasyAbp.EShop.Products.Domain.csproj | 2 +- ...bp.EShop.Products.Application.Tests.csproj | 2 +- ...EasyAbp.EShop.Products.Domain.Tests.csproj | 2 +- ....Products.EntityFrameworkCore.Tests.csproj | 2 +- ...asyAbp.EShop.Products.MongoDB.Tests.csproj | 2 +- .../EasyAbp.EShop.Products.TestBase.csproj | 6 +- ...Abp.EShop.Stores.Application.Shared.csproj | 2 +- .../EasyAbp.EShop.Stores.Application.csproj | 2 +- ...yAbp.EShop.Stores.Application.Tests.csproj | 2 +- .../EasyAbp.EShop.Stores.Domain.Tests.csproj | 2 +- ...op.Stores.EntityFrameworkCore.Tests.csproj | 2 +- .../EasyAbp.EShop.Stores.MongoDB.Tests.csproj | 2 +- .../EasyAbp.EShop.Stores.TestBase.csproj | 6 +- ...p.EShop.Plugins.Baskets.Application.csproj | 2 +- ...p.Plugins.Baskets.Application.Tests.csproj | 2 +- ....EShop.Plugins.Baskets.Domain.Tests.csproj | 2 +- ...s.Baskets.EntityFrameworkCore.Tests.csproj | 2 +- ...EShop.Plugins.Baskets.MongoDB.Tests.csproj | 2 +- ...yAbp.EShop.Plugins.Baskets.TestBase.csproj | 6 +- ...p.EShop.Plugins.Coupons.Application.csproj | 2 +- ...asyAbp.EShop.Plugins.Coupons.Domain.csproj | 2 +- ...Shop.Plugins.Coupons.HttpApi.Client.csproj | 2 +- ...syAbp.EShop.Plugins.Coupons.MongoDB.csproj | 2 +- ...p.Plugins.Coupons.Application.Tests.csproj | 2 +- ....EShop.Plugins.Coupons.Domain.Tests.csproj | 2 +- ...s.Coupons.EntityFrameworkCore.Tests.csproj | 2 +- ...EShop.Plugins.Coupons.MongoDB.Tests.csproj | 2 +- ...yAbp.EShop.Plugins.Coupons.TestBase.csproj | 6 +- .../EShopSample.HttpApi.Client.csproj | 2 +- .../EShopSample.Web/EShopSample.Web.csproj | 2 +- .../EShopSample.Web/EShopSampleWebModule.cs | 25 +- .../src/EShopSample.Web/package.json | 2 +- .../EShopSample.Web/wwwroot/global-styles.css | 0 .../@fortawesome/fontawesome-free/css/all.css | 138 +- .../fontawesome-free/css/v4-shims.css | 2 +- .../webfonts/fa-brands-400.eot | Bin 134878 -> 134294 bytes .../webfonts/fa-brands-400.svg | 1508 ++++++----- .../webfonts/fa-brands-400.ttf | Bin 134572 -> 133988 bytes .../webfonts/fa-brands-400.woff | Bin 90872 -> 89988 bytes .../webfonts/fa-brands-400.woff2 | Bin 77444 -> 76736 bytes .../webfonts/fa-regular-400.eot | Bin 34390 -> 34034 bytes .../webfonts/fa-regular-400.svg | 188 +- .../webfonts/fa-regular-400.ttf | Bin 34092 -> 33736 bytes .../webfonts/fa-regular-400.woff | Bin 16800 -> 16276 bytes .../webfonts/fa-regular-400.woff2 | Bin 13596 -> 13224 bytes .../webfonts/fa-solid-900.eot | Bin 204866 -> 203030 bytes .../webfonts/fa-solid-900.svg | 2316 +++++++++-------- .../webfonts/fa-solid-900.ttf | Bin 204580 -> 202744 bytes .../webfonts/fa-solid-900.woff | Bin 104252 -> 101648 bytes .../webfonts/fa-solid-900.woff2 | Bin 80328 -> 78268 bytes .../wwwroot/libs/abp/core/abp.js | 12 +- .../wwwroot/libs/abp/jquery/abp.jquery.js | 10 +- .../bootstrap.enable.popovers.everywhere.js | 5 + .../css/dataTables.bootstrap5.css | 272 +- .../datatables.net/js/jquery.dataTables.js | 454 +++- .../libs/jquery-form/jquery.form.min.js | 3 +- .../libs/jquery-form/jquery.form.min.js.map | 1 - .../jquery.validate.unobtrusive.js | 2 +- .../libs/jquery-validation/jquery.validate.js | 35 +- .../localization/messages_ar.min.js | 4 +- .../localization/messages_az.min.js | 4 +- .../localization/messages_bg.min.js | 4 +- .../localization/messages_bn_BD.min.js | 4 +- .../localization/messages_ca.min.js | 4 +- .../localization/messages_cs.min.js | 4 +- .../localization/messages_da.min.js | 4 +- .../localization/messages_de.min.js | 4 +- .../localization/messages_el.min.js | 4 +- .../localization/messages_es.min.js | 4 +- .../localization/messages_es_AR.min.js | 4 +- .../localization/messages_es_PE.min.js | 4 +- .../localization/messages_et.min.js | 4 +- .../localization/messages_eu.min.js | 4 +- .../localization/messages_fa.min.js | 4 +- .../localization/messages_fi.min.js | 4 +- .../localization/messages_fr.js | 3 +- .../localization/messages_fr.min.js | 6 +- .../localization/messages_ge.min.js | 4 +- .../localization/messages_gl.min.js | 4 +- .../localization/messages_he.min.js | 4 +- .../localization/messages_hr.min.js | 4 +- .../localization/messages_hu.min.js | 4 +- .../localization/messages_hy_AM.min.js | 4 +- .../localization/messages_id.min.js | 4 +- .../localization/messages_is.min.js | 4 +- .../localization/messages_it.min.js | 4 +- .../localization/messages_ja.min.js | 4 +- .../localization/messages_ka.min.js | 4 +- .../localization/messages_kk.min.js | 4 +- .../localization/messages_ko.min.js | 4 +- .../localization/messages_lt.min.js | 4 +- .../localization/messages_lv.min.js | 4 +- .../localization/messages_mk.min.js | 4 +- .../localization/messages_my.min.js | 4 +- .../localization/messages_nl.min.js | 4 +- .../localization/messages_no.min.js | 4 +- .../localization/messages_pl.min.js | 4 +- .../localization/messages_pt_BR.min.js | 4 +- .../localization/messages_pt_PT.min.js | 4 +- .../localization/messages_ro.min.js | 4 +- .../localization/messages_ru.min.js | 4 +- .../localization/messages_sd.min.js | 4 +- .../localization/messages_si.min.js | 4 +- .../localization/messages_sk.min.js | 4 +- .../localization/messages_sl.min.js | 4 +- .../localization/messages_sr.min.js | 4 +- .../localization/messages_sr_lat.min.js | 4 +- .../localization/messages_sv.min.js | 4 +- .../localization/messages_th.min.js | 4 +- .../localization/messages_tj.min.js | 4 +- .../localization/messages_tr.js | 1 + .../localization/messages_tr.min.js | 6 +- .../localization/messages_uk.min.js | 4 +- .../localization/messages_ur.min.js | 4 +- .../localization/messages_vi.min.js | 4 +- .../localization/messages_zh.min.js | 4 +- .../localization/messages_zh_TW.min.js | 4 +- .../localization/methods_de.min.js | 4 +- .../localization/methods_es_CL.min.js | 4 +- .../localization/methods_fi.min.js | 4 +- .../localization/methods_it.min.js | 4 +- .../localization/methods_nl.min.js | 4 +- .../localization/methods_pt.min.js | 4 +- .../wwwroot/libs/lodash/lodash.min.js | 271 +- .../wwwroot/libs/luxon/luxon.js | 2143 ++++++++------- .../wwwroot/libs/luxon/luxon.js.map | 2 +- .../wwwroot/libs/luxon/luxon.min.js | 2 +- .../wwwroot/libs/luxon/luxon.min.js.map | 2 +- .../libs/sweetalert2/sweetalert2.all.js | 2151 +++++++++------ .../libs/sweetalert2/sweetalert2.all.min.js | 4 +- .../wwwroot/libs/sweetalert2/sweetalert2.css | 33 +- .../wwwroot/libs/sweetalert2/sweetalert2.js | 2149 +++++++++------ .../libs/sweetalert2/sweetalert2.min.css | 2 +- .../libs/sweetalert2/sweetalert2.min.js | 2 +- .../aspnet-core/src/EShopSample.Web/yarn.lock | 345 ++- 164 files changed, 7333 insertions(+), 5158 deletions(-) create mode 100644 samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/global-styles.css create mode 100644 samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/bootstrap/js/bootstrap.enable.popovers.everywhere.js delete mode 100644 samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-form/jquery.form.min.js.map diff --git a/Directory.Build.props b/Directory.Build.props index 83a0f05a..05fcb7cf 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,10 +1,10 @@  - 5.1.3 - 2.5.3 - 2.0.11 - 0.8.2 + 5.3.1 + 2.7.1 + 2.0.14 + 1.0.1 \ No newline at end of file diff --git a/integration/EasyAbp.EShop/src/EasyAbp.EShop.Application/EasyAbp.EShop.Application.csproj b/integration/EasyAbp.EShop/src/EasyAbp.EShop.Application/EasyAbp.EShop.Application.csproj index 4392fc2e..3a1b6021 100644 --- a/integration/EasyAbp.EShop/src/EasyAbp.EShop.Application/EasyAbp.EShop.Application.csproj +++ b/integration/EasyAbp.EShop/src/EasyAbp.EShop.Application/EasyAbp.EShop.Application.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + net6.0 diff --git a/integration/EasyAbp.EShop/src/EasyAbp.EShop.Domain/EasyAbp.EShop.Domain.csproj b/integration/EasyAbp.EShop/src/EasyAbp.EShop.Domain/EasyAbp.EShop.Domain.csproj index c3894a96..431bcb42 100644 --- a/integration/EasyAbp.EShop/src/EasyAbp.EShop.Domain/EasyAbp.EShop.Domain.csproj +++ b/integration/EasyAbp.EShop/src/EasyAbp.EShop.Domain/EasyAbp.EShop.Domain.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + net6.0 diff --git a/integration/EasyAbp.EShop/test/EasyAbp.EShop.Application.Tests/EasyAbp.EShop.Application.Tests.csproj b/integration/EasyAbp.EShop/test/EasyAbp.EShop.Application.Tests/EasyAbp.EShop.Application.Tests.csproj index 91017aa4..80abe3ad 100644 --- a/integration/EasyAbp.EShop/test/EasyAbp.EShop.Application.Tests/EasyAbp.EShop.Application.Tests.csproj +++ b/integration/EasyAbp.EShop/test/EasyAbp.EShop.Application.Tests/EasyAbp.EShop.Application.Tests.csproj @@ -8,7 +8,7 @@ - + diff --git a/integration/EasyAbp.EShop/test/EasyAbp.EShop.Domain.Tests/EasyAbp.EShop.Domain.Tests.csproj b/integration/EasyAbp.EShop/test/EasyAbp.EShop.Domain.Tests/EasyAbp.EShop.Domain.Tests.csproj index f8a722de..0b4e3759 100644 --- a/integration/EasyAbp.EShop/test/EasyAbp.EShop.Domain.Tests/EasyAbp.EShop.Domain.Tests.csproj +++ b/integration/EasyAbp.EShop/test/EasyAbp.EShop.Domain.Tests/EasyAbp.EShop.Domain.Tests.csproj @@ -6,7 +6,7 @@ - + diff --git a/integration/EasyAbp.EShop/test/EasyAbp.EShop.EntityFrameworkCore.Tests/EasyAbp.EShop.EntityFrameworkCore.Tests.csproj b/integration/EasyAbp.EShop/test/EasyAbp.EShop.EntityFrameworkCore.Tests/EasyAbp.EShop.EntityFrameworkCore.Tests.csproj index aae46156..b885e38e 100644 --- a/integration/EasyAbp.EShop/test/EasyAbp.EShop.EntityFrameworkCore.Tests/EasyAbp.EShop.EntityFrameworkCore.Tests.csproj +++ b/integration/EasyAbp.EShop/test/EasyAbp.EShop.EntityFrameworkCore.Tests/EasyAbp.EShop.EntityFrameworkCore.Tests.csproj @@ -6,7 +6,7 @@ - + diff --git a/integration/EasyAbp.EShop/test/EasyAbp.EShop.MongoDB.Tests/EasyAbp.EShop.MongoDB.Tests.csproj b/integration/EasyAbp.EShop/test/EasyAbp.EShop.MongoDB.Tests/EasyAbp.EShop.MongoDB.Tests.csproj index f3e2cc04..8fbf9b39 100644 --- a/integration/EasyAbp.EShop/test/EasyAbp.EShop.MongoDB.Tests/EasyAbp.EShop.MongoDB.Tests.csproj +++ b/integration/EasyAbp.EShop/test/EasyAbp.EShop.MongoDB.Tests/EasyAbp.EShop.MongoDB.Tests.csproj @@ -6,7 +6,7 @@ - + diff --git a/integration/EasyAbp.EShop/test/EasyAbp.EShop.TestBase/EasyAbp.EShop.TestBase.csproj b/integration/EasyAbp.EShop/test/EasyAbp.EShop.TestBase/EasyAbp.EShop.TestBase.csproj index 2e031b84..143859b2 100644 --- a/integration/EasyAbp.EShop/test/EasyAbp.EShop.TestBase/EasyAbp.EShop.TestBase.csproj +++ b/integration/EasyAbp.EShop/test/EasyAbp.EShop.TestBase/EasyAbp.EShop.TestBase.csproj @@ -6,12 +6,12 @@ - - + + - + diff --git a/modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application/EasyAbp.EShop.Orders.Application.csproj b/modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application/EasyAbp.EShop.Orders.Application.csproj index fecac499..b42f7849 100644 --- a/modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application/EasyAbp.EShop.Orders.Application.csproj +++ b/modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Application/EasyAbp.EShop.Orders.Application.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + net6.0 diff --git a/modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain/EasyAbp.EShop.Orders.Domain.csproj b/modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain/EasyAbp.EShop.Orders.Domain.csproj index 3bfe3085..e73a07a5 100644 --- a/modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain/EasyAbp.EShop.Orders.Domain.csproj +++ b/modules/EasyAbp.EShop.Orders/src/EasyAbp.EShop.Orders.Domain/EasyAbp.EShop.Orders.Domain.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + net6.0 diff --git a/modules/EasyAbp.EShop.Orders/test/EasyAbp.EShop.Orders.Application.Tests/EasyAbp.EShop.Orders.Application.Tests.csproj b/modules/EasyAbp.EShop.Orders/test/EasyAbp.EShop.Orders.Application.Tests/EasyAbp.EShop.Orders.Application.Tests.csproj index 76959263..eeeaa358 100644 --- a/modules/EasyAbp.EShop.Orders/test/EasyAbp.EShop.Orders.Application.Tests/EasyAbp.EShop.Orders.Application.Tests.csproj +++ b/modules/EasyAbp.EShop.Orders/test/EasyAbp.EShop.Orders.Application.Tests/EasyAbp.EShop.Orders.Application.Tests.csproj @@ -8,7 +8,7 @@ - + diff --git a/modules/EasyAbp.EShop.Orders/test/EasyAbp.EShop.Orders.Domain.Tests/EasyAbp.EShop.Orders.Domain.Tests.csproj b/modules/EasyAbp.EShop.Orders/test/EasyAbp.EShop.Orders.Domain.Tests/EasyAbp.EShop.Orders.Domain.Tests.csproj index d35e9448..41a78d4a 100644 --- a/modules/EasyAbp.EShop.Orders/test/EasyAbp.EShop.Orders.Domain.Tests/EasyAbp.EShop.Orders.Domain.Tests.csproj +++ b/modules/EasyAbp.EShop.Orders/test/EasyAbp.EShop.Orders.Domain.Tests/EasyAbp.EShop.Orders.Domain.Tests.csproj @@ -6,7 +6,7 @@ - + diff --git a/modules/EasyAbp.EShop.Orders/test/EasyAbp.EShop.Orders.EntityFrameworkCore.Tests/EasyAbp.EShop.Orders.EntityFrameworkCore.Tests.csproj b/modules/EasyAbp.EShop.Orders/test/EasyAbp.EShop.Orders.EntityFrameworkCore.Tests/EasyAbp.EShop.Orders.EntityFrameworkCore.Tests.csproj index 3048a259..bdb95159 100644 --- a/modules/EasyAbp.EShop.Orders/test/EasyAbp.EShop.Orders.EntityFrameworkCore.Tests/EasyAbp.EShop.Orders.EntityFrameworkCore.Tests.csproj +++ b/modules/EasyAbp.EShop.Orders/test/EasyAbp.EShop.Orders.EntityFrameworkCore.Tests/EasyAbp.EShop.Orders.EntityFrameworkCore.Tests.csproj @@ -6,7 +6,7 @@ - + diff --git a/modules/EasyAbp.EShop.Orders/test/EasyAbp.EShop.Orders.MongoDB.Tests/EasyAbp.EShop.Orders.MongoDB.Tests.csproj b/modules/EasyAbp.EShop.Orders/test/EasyAbp.EShop.Orders.MongoDB.Tests/EasyAbp.EShop.Orders.MongoDB.Tests.csproj index c0fd900b..98d4886b 100644 --- a/modules/EasyAbp.EShop.Orders/test/EasyAbp.EShop.Orders.MongoDB.Tests/EasyAbp.EShop.Orders.MongoDB.Tests.csproj +++ b/modules/EasyAbp.EShop.Orders/test/EasyAbp.EShop.Orders.MongoDB.Tests/EasyAbp.EShop.Orders.MongoDB.Tests.csproj @@ -6,7 +6,7 @@ - + diff --git a/modules/EasyAbp.EShop.Orders/test/EasyAbp.EShop.Orders.TestBase/EasyAbp.EShop.Orders.TestBase.csproj b/modules/EasyAbp.EShop.Orders/test/EasyAbp.EShop.Orders.TestBase/EasyAbp.EShop.Orders.TestBase.csproj index 18f15e51..7b21a48b 100644 --- a/modules/EasyAbp.EShop.Orders/test/EasyAbp.EShop.Orders.TestBase/EasyAbp.EShop.Orders.TestBase.csproj +++ b/modules/EasyAbp.EShop.Orders/test/EasyAbp.EShop.Orders.TestBase/EasyAbp.EShop.Orders.TestBase.csproj @@ -6,12 +6,12 @@ - - + + - + diff --git a/modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application/EasyAbp.EShop.Payments.Application.csproj b/modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application/EasyAbp.EShop.Payments.Application.csproj index 0bf76397..46297ea5 100644 --- a/modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application/EasyAbp.EShop.Payments.Application.csproj +++ b/modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Application/EasyAbp.EShop.Payments.Application.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + net6.0 diff --git a/modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Domain/EasyAbp.EShop.Payments.Domain.csproj b/modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Domain/EasyAbp.EShop.Payments.Domain.csproj index 511b93b2..4e534f61 100644 --- a/modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Domain/EasyAbp.EShop.Payments.Domain.csproj +++ b/modules/EasyAbp.EShop.Payments/src/EasyAbp.EShop.Payments.Domain/EasyAbp.EShop.Payments.Domain.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + net6.0 diff --git a/modules/EasyAbp.EShop.Payments/test/EasyAbp.EShop.Payments.Application.Tests/EasyAbp.EShop.Payments.Application.Tests.csproj b/modules/EasyAbp.EShop.Payments/test/EasyAbp.EShop.Payments.Application.Tests/EasyAbp.EShop.Payments.Application.Tests.csproj index 9ab756c9..a3726b9c 100644 --- a/modules/EasyAbp.EShop.Payments/test/EasyAbp.EShop.Payments.Application.Tests/EasyAbp.EShop.Payments.Application.Tests.csproj +++ b/modules/EasyAbp.EShop.Payments/test/EasyAbp.EShop.Payments.Application.Tests/EasyAbp.EShop.Payments.Application.Tests.csproj @@ -8,7 +8,7 @@ - + diff --git a/modules/EasyAbp.EShop.Payments/test/EasyAbp.EShop.Payments.Domain.Tests/EasyAbp.EShop.Payments.Domain.Tests.csproj b/modules/EasyAbp.EShop.Payments/test/EasyAbp.EShop.Payments.Domain.Tests/EasyAbp.EShop.Payments.Domain.Tests.csproj index 47e96b99..a9fba288 100644 --- a/modules/EasyAbp.EShop.Payments/test/EasyAbp.EShop.Payments.Domain.Tests/EasyAbp.EShop.Payments.Domain.Tests.csproj +++ b/modules/EasyAbp.EShop.Payments/test/EasyAbp.EShop.Payments.Domain.Tests/EasyAbp.EShop.Payments.Domain.Tests.csproj @@ -6,7 +6,7 @@ - + diff --git a/modules/EasyAbp.EShop.Payments/test/EasyAbp.EShop.Payments.EntityFrameworkCore.Tests/EasyAbp.EShop.Payments.EntityFrameworkCore.Tests.csproj b/modules/EasyAbp.EShop.Payments/test/EasyAbp.EShop.Payments.EntityFrameworkCore.Tests/EasyAbp.EShop.Payments.EntityFrameworkCore.Tests.csproj index 0ec7a8df..ef290172 100644 --- a/modules/EasyAbp.EShop.Payments/test/EasyAbp.EShop.Payments.EntityFrameworkCore.Tests/EasyAbp.EShop.Payments.EntityFrameworkCore.Tests.csproj +++ b/modules/EasyAbp.EShop.Payments/test/EasyAbp.EShop.Payments.EntityFrameworkCore.Tests/EasyAbp.EShop.Payments.EntityFrameworkCore.Tests.csproj @@ -6,7 +6,7 @@ - + diff --git a/modules/EasyAbp.EShop.Payments/test/EasyAbp.EShop.Payments.MongoDB.Tests/EasyAbp.EShop.Payments.MongoDB.Tests.csproj b/modules/EasyAbp.EShop.Payments/test/EasyAbp.EShop.Payments.MongoDB.Tests/EasyAbp.EShop.Payments.MongoDB.Tests.csproj index 0dfb729d..a23ba137 100644 --- a/modules/EasyAbp.EShop.Payments/test/EasyAbp.EShop.Payments.MongoDB.Tests/EasyAbp.EShop.Payments.MongoDB.Tests.csproj +++ b/modules/EasyAbp.EShop.Payments/test/EasyAbp.EShop.Payments.MongoDB.Tests/EasyAbp.EShop.Payments.MongoDB.Tests.csproj @@ -6,7 +6,7 @@ - + diff --git a/modules/EasyAbp.EShop.Payments/test/EasyAbp.EShop.Payments.TestBase/EasyAbp.EShop.Payments.TestBase.csproj b/modules/EasyAbp.EShop.Payments/test/EasyAbp.EShop.Payments.TestBase/EasyAbp.EShop.Payments.TestBase.csproj index 12bba3fd..ab0f378c 100644 --- a/modules/EasyAbp.EShop.Payments/test/EasyAbp.EShop.Payments.TestBase/EasyAbp.EShop.Payments.TestBase.csproj +++ b/modules/EasyAbp.EShop.Payments/test/EasyAbp.EShop.Payments.TestBase/EasyAbp.EShop.Payments.TestBase.csproj @@ -6,12 +6,12 @@ - - + + - + diff --git a/modules/EasyAbp.EShop.Plugins/src/EasyAbp.EShop.Plugins.Application/EasyAbp.EShop.Plugins.Application.csproj b/modules/EasyAbp.EShop.Plugins/src/EasyAbp.EShop.Plugins.Application/EasyAbp.EShop.Plugins.Application.csproj index 399a7d0b..46d2dfa6 100644 --- a/modules/EasyAbp.EShop.Plugins/src/EasyAbp.EShop.Plugins.Application/EasyAbp.EShop.Plugins.Application.csproj +++ b/modules/EasyAbp.EShop.Plugins/src/EasyAbp.EShop.Plugins.Application/EasyAbp.EShop.Plugins.Application.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + net6.0 diff --git a/modules/EasyAbp.EShop.Plugins/test/EasyAbp.EShop.Plugins.Application.Tests/EasyAbp.EShop.Plugins.Application.Tests.csproj b/modules/EasyAbp.EShop.Plugins/test/EasyAbp.EShop.Plugins.Application.Tests/EasyAbp.EShop.Plugins.Application.Tests.csproj index c2d98e78..6e845bde 100644 --- a/modules/EasyAbp.EShop.Plugins/test/EasyAbp.EShop.Plugins.Application.Tests/EasyAbp.EShop.Plugins.Application.Tests.csproj +++ b/modules/EasyAbp.EShop.Plugins/test/EasyAbp.EShop.Plugins.Application.Tests/EasyAbp.EShop.Plugins.Application.Tests.csproj @@ -8,7 +8,7 @@ - + diff --git a/modules/EasyAbp.EShop.Plugins/test/EasyAbp.EShop.Plugins.Domain.Tests/EasyAbp.EShop.Plugins.Domain.Tests.csproj b/modules/EasyAbp.EShop.Plugins/test/EasyAbp.EShop.Plugins.Domain.Tests/EasyAbp.EShop.Plugins.Domain.Tests.csproj index fbfe6f31..c9e435d7 100644 --- a/modules/EasyAbp.EShop.Plugins/test/EasyAbp.EShop.Plugins.Domain.Tests/EasyAbp.EShop.Plugins.Domain.Tests.csproj +++ b/modules/EasyAbp.EShop.Plugins/test/EasyAbp.EShop.Plugins.Domain.Tests/EasyAbp.EShop.Plugins.Domain.Tests.csproj @@ -6,7 +6,7 @@ - + diff --git a/modules/EasyAbp.EShop.Plugins/test/EasyAbp.EShop.Plugins.EntityFrameworkCore.Tests/EasyAbp.EShop.Plugins.EntityFrameworkCore.Tests.csproj b/modules/EasyAbp.EShop.Plugins/test/EasyAbp.EShop.Plugins.EntityFrameworkCore.Tests/EasyAbp.EShop.Plugins.EntityFrameworkCore.Tests.csproj index 7c0c36fc..bb2606b8 100644 --- a/modules/EasyAbp.EShop.Plugins/test/EasyAbp.EShop.Plugins.EntityFrameworkCore.Tests/EasyAbp.EShop.Plugins.EntityFrameworkCore.Tests.csproj +++ b/modules/EasyAbp.EShop.Plugins/test/EasyAbp.EShop.Plugins.EntityFrameworkCore.Tests/EasyAbp.EShop.Plugins.EntityFrameworkCore.Tests.csproj @@ -6,7 +6,7 @@ - + diff --git a/modules/EasyAbp.EShop.Plugins/test/EasyAbp.EShop.Plugins.MongoDB.Tests/EasyAbp.EShop.Plugins.MongoDB.Tests.csproj b/modules/EasyAbp.EShop.Plugins/test/EasyAbp.EShop.Plugins.MongoDB.Tests/EasyAbp.EShop.Plugins.MongoDB.Tests.csproj index 0bd21137..e3027d0c 100644 --- a/modules/EasyAbp.EShop.Plugins/test/EasyAbp.EShop.Plugins.MongoDB.Tests/EasyAbp.EShop.Plugins.MongoDB.Tests.csproj +++ b/modules/EasyAbp.EShop.Plugins/test/EasyAbp.EShop.Plugins.MongoDB.Tests/EasyAbp.EShop.Plugins.MongoDB.Tests.csproj @@ -6,7 +6,7 @@ - + diff --git a/modules/EasyAbp.EShop.Plugins/test/EasyAbp.EShop.Plugins.TestBase/EasyAbp.EShop.Plugins.TestBase.csproj b/modules/EasyAbp.EShop.Plugins/test/EasyAbp.EShop.Plugins.TestBase/EasyAbp.EShop.Plugins.TestBase.csproj index 17502565..bebbf4f8 100644 --- a/modules/EasyAbp.EShop.Plugins/test/EasyAbp.EShop.Plugins.TestBase/EasyAbp.EShop.Plugins.TestBase.csproj +++ b/modules/EasyAbp.EShop.Plugins/test/EasyAbp.EShop.Plugins.TestBase/EasyAbp.EShop.Plugins.TestBase.csproj @@ -6,12 +6,12 @@ - - + + - + diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp.EShop.Products.Application.csproj b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp.EShop.Products.Application.csproj index f5f96e3e..6d10ee3b 100644 --- a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp.EShop.Products.Application.csproj +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Application/EasyAbp.EShop.Products.Application.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + net6.0 diff --git a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp.EShop.Products.Domain.csproj b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp.EShop.Products.Domain.csproj index 627d3721..c0c9fc29 100644 --- a/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp.EShop.Products.Domain.csproj +++ b/modules/EasyAbp.EShop.Products/src/EasyAbp.EShop.Products.Domain/EasyAbp.EShop.Products.Domain.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + net6.0 diff --git a/modules/EasyAbp.EShop.Products/test/EasyAbp.EShop.Products.Application.Tests/EasyAbp.EShop.Products.Application.Tests.csproj b/modules/EasyAbp.EShop.Products/test/EasyAbp.EShop.Products.Application.Tests/EasyAbp.EShop.Products.Application.Tests.csproj index 4e8862bd..8a8843ca 100644 --- a/modules/EasyAbp.EShop.Products/test/EasyAbp.EShop.Products.Application.Tests/EasyAbp.EShop.Products.Application.Tests.csproj +++ b/modules/EasyAbp.EShop.Products/test/EasyAbp.EShop.Products.Application.Tests/EasyAbp.EShop.Products.Application.Tests.csproj @@ -8,7 +8,7 @@ - + diff --git a/modules/EasyAbp.EShop.Products/test/EasyAbp.EShop.Products.Domain.Tests/EasyAbp.EShop.Products.Domain.Tests.csproj b/modules/EasyAbp.EShop.Products/test/EasyAbp.EShop.Products.Domain.Tests/EasyAbp.EShop.Products.Domain.Tests.csproj index ad2d9eb9..7d854619 100644 --- a/modules/EasyAbp.EShop.Products/test/EasyAbp.EShop.Products.Domain.Tests/EasyAbp.EShop.Products.Domain.Tests.csproj +++ b/modules/EasyAbp.EShop.Products/test/EasyAbp.EShop.Products.Domain.Tests/EasyAbp.EShop.Products.Domain.Tests.csproj @@ -6,7 +6,7 @@ - + diff --git a/modules/EasyAbp.EShop.Products/test/EasyAbp.EShop.Products.EntityFrameworkCore.Tests/EasyAbp.EShop.Products.EntityFrameworkCore.Tests.csproj b/modules/EasyAbp.EShop.Products/test/EasyAbp.EShop.Products.EntityFrameworkCore.Tests/EasyAbp.EShop.Products.EntityFrameworkCore.Tests.csproj index b76d0275..11a90f21 100644 --- a/modules/EasyAbp.EShop.Products/test/EasyAbp.EShop.Products.EntityFrameworkCore.Tests/EasyAbp.EShop.Products.EntityFrameworkCore.Tests.csproj +++ b/modules/EasyAbp.EShop.Products/test/EasyAbp.EShop.Products.EntityFrameworkCore.Tests/EasyAbp.EShop.Products.EntityFrameworkCore.Tests.csproj @@ -6,7 +6,7 @@ - + diff --git a/modules/EasyAbp.EShop.Products/test/EasyAbp.EShop.Products.MongoDB.Tests/EasyAbp.EShop.Products.MongoDB.Tests.csproj b/modules/EasyAbp.EShop.Products/test/EasyAbp.EShop.Products.MongoDB.Tests/EasyAbp.EShop.Products.MongoDB.Tests.csproj index ceaeb52f..42b07837 100644 --- a/modules/EasyAbp.EShop.Products/test/EasyAbp.EShop.Products.MongoDB.Tests/EasyAbp.EShop.Products.MongoDB.Tests.csproj +++ b/modules/EasyAbp.EShop.Products/test/EasyAbp.EShop.Products.MongoDB.Tests/EasyAbp.EShop.Products.MongoDB.Tests.csproj @@ -6,7 +6,7 @@ - + diff --git a/modules/EasyAbp.EShop.Products/test/EasyAbp.EShop.Products.TestBase/EasyAbp.EShop.Products.TestBase.csproj b/modules/EasyAbp.EShop.Products/test/EasyAbp.EShop.Products.TestBase/EasyAbp.EShop.Products.TestBase.csproj index b6f12f04..07882148 100644 --- a/modules/EasyAbp.EShop.Products/test/EasyAbp.EShop.Products.TestBase/EasyAbp.EShop.Products.TestBase.csproj +++ b/modules/EasyAbp.EShop.Products/test/EasyAbp.EShop.Products.TestBase/EasyAbp.EShop.Products.TestBase.csproj @@ -6,12 +6,12 @@ - - + + - + diff --git a/modules/EasyAbp.EShop.Stores/src/EasyAbp.EShop.Stores.Application.Shared/EasyAbp.EShop.Stores.Application.Shared.csproj b/modules/EasyAbp.EShop.Stores/src/EasyAbp.EShop.Stores.Application.Shared/EasyAbp.EShop.Stores.Application.Shared.csproj index ef605913..d337acb5 100644 --- a/modules/EasyAbp.EShop.Stores/src/EasyAbp.EShop.Stores.Application.Shared/EasyAbp.EShop.Stores.Application.Shared.csproj +++ b/modules/EasyAbp.EShop.Stores/src/EasyAbp.EShop.Stores.Application.Shared/EasyAbp.EShop.Stores.Application.Shared.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + net6.0 diff --git a/modules/EasyAbp.EShop.Stores/src/EasyAbp.EShop.Stores.Application/EasyAbp.EShop.Stores.Application.csproj b/modules/EasyAbp.EShop.Stores/src/EasyAbp.EShop.Stores.Application/EasyAbp.EShop.Stores.Application.csproj index bea50343..5451d32a 100644 --- a/modules/EasyAbp.EShop.Stores/src/EasyAbp.EShop.Stores.Application/EasyAbp.EShop.Stores.Application.csproj +++ b/modules/EasyAbp.EShop.Stores/src/EasyAbp.EShop.Stores.Application/EasyAbp.EShop.Stores.Application.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + net6.0 diff --git a/modules/EasyAbp.EShop.Stores/test/EasyAbp.EShop.Stores.Application.Tests/EasyAbp.EShop.Stores.Application.Tests.csproj b/modules/EasyAbp.EShop.Stores/test/EasyAbp.EShop.Stores.Application.Tests/EasyAbp.EShop.Stores.Application.Tests.csproj index e0ddf206..140052de 100644 --- a/modules/EasyAbp.EShop.Stores/test/EasyAbp.EShop.Stores.Application.Tests/EasyAbp.EShop.Stores.Application.Tests.csproj +++ b/modules/EasyAbp.EShop.Stores/test/EasyAbp.EShop.Stores.Application.Tests/EasyAbp.EShop.Stores.Application.Tests.csproj @@ -8,7 +8,7 @@ - + diff --git a/modules/EasyAbp.EShop.Stores/test/EasyAbp.EShop.Stores.Domain.Tests/EasyAbp.EShop.Stores.Domain.Tests.csproj b/modules/EasyAbp.EShop.Stores/test/EasyAbp.EShop.Stores.Domain.Tests/EasyAbp.EShop.Stores.Domain.Tests.csproj index 17785934..41f781d6 100644 --- a/modules/EasyAbp.EShop.Stores/test/EasyAbp.EShop.Stores.Domain.Tests/EasyAbp.EShop.Stores.Domain.Tests.csproj +++ b/modules/EasyAbp.EShop.Stores/test/EasyAbp.EShop.Stores.Domain.Tests/EasyAbp.EShop.Stores.Domain.Tests.csproj @@ -6,7 +6,7 @@ - + diff --git a/modules/EasyAbp.EShop.Stores/test/EasyAbp.EShop.Stores.EntityFrameworkCore.Tests/EasyAbp.EShop.Stores.EntityFrameworkCore.Tests.csproj b/modules/EasyAbp.EShop.Stores/test/EasyAbp.EShop.Stores.EntityFrameworkCore.Tests/EasyAbp.EShop.Stores.EntityFrameworkCore.Tests.csproj index 4e4cab49..7c877abe 100644 --- a/modules/EasyAbp.EShop.Stores/test/EasyAbp.EShop.Stores.EntityFrameworkCore.Tests/EasyAbp.EShop.Stores.EntityFrameworkCore.Tests.csproj +++ b/modules/EasyAbp.EShop.Stores/test/EasyAbp.EShop.Stores.EntityFrameworkCore.Tests/EasyAbp.EShop.Stores.EntityFrameworkCore.Tests.csproj @@ -6,7 +6,7 @@ - + diff --git a/modules/EasyAbp.EShop.Stores/test/EasyAbp.EShop.Stores.MongoDB.Tests/EasyAbp.EShop.Stores.MongoDB.Tests.csproj b/modules/EasyAbp.EShop.Stores/test/EasyAbp.EShop.Stores.MongoDB.Tests/EasyAbp.EShop.Stores.MongoDB.Tests.csproj index f0a68282..8d6fb9d9 100644 --- a/modules/EasyAbp.EShop.Stores/test/EasyAbp.EShop.Stores.MongoDB.Tests/EasyAbp.EShop.Stores.MongoDB.Tests.csproj +++ b/modules/EasyAbp.EShop.Stores/test/EasyAbp.EShop.Stores.MongoDB.Tests/EasyAbp.EShop.Stores.MongoDB.Tests.csproj @@ -6,7 +6,7 @@ - + diff --git a/modules/EasyAbp.EShop.Stores/test/EasyAbp.EShop.Stores.TestBase/EasyAbp.EShop.Stores.TestBase.csproj b/modules/EasyAbp.EShop.Stores/test/EasyAbp.EShop.Stores.TestBase/EasyAbp.EShop.Stores.TestBase.csproj index 50b46ad0..5e436eb8 100644 --- a/modules/EasyAbp.EShop.Stores/test/EasyAbp.EShop.Stores.TestBase/EasyAbp.EShop.Stores.TestBase.csproj +++ b/modules/EasyAbp.EShop.Stores/test/EasyAbp.EShop.Stores.TestBase/EasyAbp.EShop.Stores.TestBase.csproj @@ -6,12 +6,12 @@ - - + + - + diff --git a/plugins/Baskets/src/EasyAbp.EShop.Plugins.Baskets.Application/EasyAbp.EShop.Plugins.Baskets.Application.csproj b/plugins/Baskets/src/EasyAbp.EShop.Plugins.Baskets.Application/EasyAbp.EShop.Plugins.Baskets.Application.csproj index 13a430d3..c7b8b126 100644 --- a/plugins/Baskets/src/EasyAbp.EShop.Plugins.Baskets.Application/EasyAbp.EShop.Plugins.Baskets.Application.csproj +++ b/plugins/Baskets/src/EasyAbp.EShop.Plugins.Baskets.Application/EasyAbp.EShop.Plugins.Baskets.Application.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + net6.0 diff --git a/plugins/Baskets/test/EasyAbp.EShop.Plugins.Baskets.Application.Tests/EasyAbp.EShop.Plugins.Baskets.Application.Tests.csproj b/plugins/Baskets/test/EasyAbp.EShop.Plugins.Baskets.Application.Tests/EasyAbp.EShop.Plugins.Baskets.Application.Tests.csproj index 49867a69..5e909fb1 100644 --- a/plugins/Baskets/test/EasyAbp.EShop.Plugins.Baskets.Application.Tests/EasyAbp.EShop.Plugins.Baskets.Application.Tests.csproj +++ b/plugins/Baskets/test/EasyAbp.EShop.Plugins.Baskets.Application.Tests/EasyAbp.EShop.Plugins.Baskets.Application.Tests.csproj @@ -8,7 +8,7 @@ - + diff --git a/plugins/Baskets/test/EasyAbp.EShop.Plugins.Baskets.Domain.Tests/EasyAbp.EShop.Plugins.Baskets.Domain.Tests.csproj b/plugins/Baskets/test/EasyAbp.EShop.Plugins.Baskets.Domain.Tests/EasyAbp.EShop.Plugins.Baskets.Domain.Tests.csproj index 5507ab9f..62abcc59 100644 --- a/plugins/Baskets/test/EasyAbp.EShop.Plugins.Baskets.Domain.Tests/EasyAbp.EShop.Plugins.Baskets.Domain.Tests.csproj +++ b/plugins/Baskets/test/EasyAbp.EShop.Plugins.Baskets.Domain.Tests/EasyAbp.EShop.Plugins.Baskets.Domain.Tests.csproj @@ -6,7 +6,7 @@ - + diff --git a/plugins/Baskets/test/EasyAbp.EShop.Plugins.Baskets.EntityFrameworkCore.Tests/EasyAbp.EShop.Plugins.Baskets.EntityFrameworkCore.Tests.csproj b/plugins/Baskets/test/EasyAbp.EShop.Plugins.Baskets.EntityFrameworkCore.Tests/EasyAbp.EShop.Plugins.Baskets.EntityFrameworkCore.Tests.csproj index a264936c..6e73670d 100644 --- a/plugins/Baskets/test/EasyAbp.EShop.Plugins.Baskets.EntityFrameworkCore.Tests/EasyAbp.EShop.Plugins.Baskets.EntityFrameworkCore.Tests.csproj +++ b/plugins/Baskets/test/EasyAbp.EShop.Plugins.Baskets.EntityFrameworkCore.Tests/EasyAbp.EShop.Plugins.Baskets.EntityFrameworkCore.Tests.csproj @@ -6,7 +6,7 @@ - + diff --git a/plugins/Baskets/test/EasyAbp.EShop.Plugins.Baskets.MongoDB.Tests/EasyAbp.EShop.Plugins.Baskets.MongoDB.Tests.csproj b/plugins/Baskets/test/EasyAbp.EShop.Plugins.Baskets.MongoDB.Tests/EasyAbp.EShop.Plugins.Baskets.MongoDB.Tests.csproj index 412686e2..54ac0128 100644 --- a/plugins/Baskets/test/EasyAbp.EShop.Plugins.Baskets.MongoDB.Tests/EasyAbp.EShop.Plugins.Baskets.MongoDB.Tests.csproj +++ b/plugins/Baskets/test/EasyAbp.EShop.Plugins.Baskets.MongoDB.Tests/EasyAbp.EShop.Plugins.Baskets.MongoDB.Tests.csproj @@ -6,7 +6,7 @@ - + diff --git a/plugins/Baskets/test/EasyAbp.EShop.Plugins.Baskets.TestBase/EasyAbp.EShop.Plugins.Baskets.TestBase.csproj b/plugins/Baskets/test/EasyAbp.EShop.Plugins.Baskets.TestBase/EasyAbp.EShop.Plugins.Baskets.TestBase.csproj index 9e739e0e..7fa7f3f7 100644 --- a/plugins/Baskets/test/EasyAbp.EShop.Plugins.Baskets.TestBase/EasyAbp.EShop.Plugins.Baskets.TestBase.csproj +++ b/plugins/Baskets/test/EasyAbp.EShop.Plugins.Baskets.TestBase/EasyAbp.EShop.Plugins.Baskets.TestBase.csproj @@ -6,12 +6,12 @@ - - + + - + diff --git a/plugins/Coupons/src/EasyAbp.EShop.Plugins.Coupons.Application/EasyAbp.EShop.Plugins.Coupons.Application.csproj b/plugins/Coupons/src/EasyAbp.EShop.Plugins.Coupons.Application/EasyAbp.EShop.Plugins.Coupons.Application.csproj index 6eaaa0ba..9e8092a5 100644 --- a/plugins/Coupons/src/EasyAbp.EShop.Plugins.Coupons.Application/EasyAbp.EShop.Plugins.Coupons.Application.csproj +++ b/plugins/Coupons/src/EasyAbp.EShop.Plugins.Coupons.Application/EasyAbp.EShop.Plugins.Coupons.Application.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + net6.0 diff --git a/plugins/Coupons/src/EasyAbp.EShop.Plugins.Coupons.Domain/EasyAbp.EShop.Plugins.Coupons.Domain.csproj b/plugins/Coupons/src/EasyAbp.EShop.Plugins.Coupons.Domain/EasyAbp.EShop.Plugins.Coupons.Domain.csproj index 54886dcc..e69fab41 100644 --- a/plugins/Coupons/src/EasyAbp.EShop.Plugins.Coupons.Domain/EasyAbp.EShop.Plugins.Coupons.Domain.csproj +++ b/plugins/Coupons/src/EasyAbp.EShop.Plugins.Coupons.Domain/EasyAbp.EShop.Plugins.Coupons.Domain.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + net6.0 diff --git a/plugins/Coupons/src/EasyAbp.EShop.Plugins.Coupons.HttpApi.Client/EasyAbp.EShop.Plugins.Coupons.HttpApi.Client.csproj b/plugins/Coupons/src/EasyAbp.EShop.Plugins.Coupons.HttpApi.Client/EasyAbp.EShop.Plugins.Coupons.HttpApi.Client.csproj index 48feb5aa..c6e9dd02 100644 --- a/plugins/Coupons/src/EasyAbp.EShop.Plugins.Coupons.HttpApi.Client/EasyAbp.EShop.Plugins.Coupons.HttpApi.Client.csproj +++ b/plugins/Coupons/src/EasyAbp.EShop.Plugins.Coupons.HttpApi.Client/EasyAbp.EShop.Plugins.Coupons.HttpApi.Client.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netstandard2.1 diff --git a/plugins/Coupons/src/EasyAbp.EShop.Plugins.Coupons.MongoDB/EasyAbp.EShop.Plugins.Coupons.MongoDB.csproj b/plugins/Coupons/src/EasyAbp.EShop.Plugins.Coupons.MongoDB/EasyAbp.EShop.Plugins.Coupons.MongoDB.csproj index 2a490d09..5073fe2c 100644 --- a/plugins/Coupons/src/EasyAbp.EShop.Plugins.Coupons.MongoDB/EasyAbp.EShop.Plugins.Coupons.MongoDB.csproj +++ b/plugins/Coupons/src/EasyAbp.EShop.Plugins.Coupons.MongoDB/EasyAbp.EShop.Plugins.Coupons.MongoDB.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + net6.0 diff --git a/plugins/Coupons/test/EasyAbp.EShop.Plugins.Coupons.Application.Tests/EasyAbp.EShop.Plugins.Coupons.Application.Tests.csproj b/plugins/Coupons/test/EasyAbp.EShop.Plugins.Coupons.Application.Tests/EasyAbp.EShop.Plugins.Coupons.Application.Tests.csproj index 4bc201c3..30b640f0 100644 --- a/plugins/Coupons/test/EasyAbp.EShop.Plugins.Coupons.Application.Tests/EasyAbp.EShop.Plugins.Coupons.Application.Tests.csproj +++ b/plugins/Coupons/test/EasyAbp.EShop.Plugins.Coupons.Application.Tests/EasyAbp.EShop.Plugins.Coupons.Application.Tests.csproj @@ -8,7 +8,7 @@ - + diff --git a/plugins/Coupons/test/EasyAbp.EShop.Plugins.Coupons.Domain.Tests/EasyAbp.EShop.Plugins.Coupons.Domain.Tests.csproj b/plugins/Coupons/test/EasyAbp.EShop.Plugins.Coupons.Domain.Tests/EasyAbp.EShop.Plugins.Coupons.Domain.Tests.csproj index 5a8911d6..74d19121 100644 --- a/plugins/Coupons/test/EasyAbp.EShop.Plugins.Coupons.Domain.Tests/EasyAbp.EShop.Plugins.Coupons.Domain.Tests.csproj +++ b/plugins/Coupons/test/EasyAbp.EShop.Plugins.Coupons.Domain.Tests/EasyAbp.EShop.Plugins.Coupons.Domain.Tests.csproj @@ -6,7 +6,7 @@ - + diff --git a/plugins/Coupons/test/EasyAbp.EShop.Plugins.Coupons.EntityFrameworkCore.Tests/EasyAbp.EShop.Plugins.Coupons.EntityFrameworkCore.Tests.csproj b/plugins/Coupons/test/EasyAbp.EShop.Plugins.Coupons.EntityFrameworkCore.Tests/EasyAbp.EShop.Plugins.Coupons.EntityFrameworkCore.Tests.csproj index 064fe1d5..72c0786d 100644 --- a/plugins/Coupons/test/EasyAbp.EShop.Plugins.Coupons.EntityFrameworkCore.Tests/EasyAbp.EShop.Plugins.Coupons.EntityFrameworkCore.Tests.csproj +++ b/plugins/Coupons/test/EasyAbp.EShop.Plugins.Coupons.EntityFrameworkCore.Tests/EasyAbp.EShop.Plugins.Coupons.EntityFrameworkCore.Tests.csproj @@ -6,7 +6,7 @@ - + diff --git a/plugins/Coupons/test/EasyAbp.EShop.Plugins.Coupons.MongoDB.Tests/EasyAbp.EShop.Plugins.Coupons.MongoDB.Tests.csproj b/plugins/Coupons/test/EasyAbp.EShop.Plugins.Coupons.MongoDB.Tests/EasyAbp.EShop.Plugins.Coupons.MongoDB.Tests.csproj index 36d08b94..45e76d2e 100644 --- a/plugins/Coupons/test/EasyAbp.EShop.Plugins.Coupons.MongoDB.Tests/EasyAbp.EShop.Plugins.Coupons.MongoDB.Tests.csproj +++ b/plugins/Coupons/test/EasyAbp.EShop.Plugins.Coupons.MongoDB.Tests/EasyAbp.EShop.Plugins.Coupons.MongoDB.Tests.csproj @@ -6,7 +6,7 @@ - + diff --git a/plugins/Coupons/test/EasyAbp.EShop.Plugins.Coupons.TestBase/EasyAbp.EShop.Plugins.Coupons.TestBase.csproj b/plugins/Coupons/test/EasyAbp.EShop.Plugins.Coupons.TestBase/EasyAbp.EShop.Plugins.Coupons.TestBase.csproj index d8570f09..d6d35187 100644 --- a/plugins/Coupons/test/EasyAbp.EShop.Plugins.Coupons.TestBase/EasyAbp.EShop.Plugins.Coupons.TestBase.csproj +++ b/plugins/Coupons/test/EasyAbp.EShop.Plugins.Coupons.TestBase/EasyAbp.EShop.Plugins.Coupons.TestBase.csproj @@ -6,12 +6,12 @@ - - + + - + diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.HttpApi.Client/EShopSample.HttpApi.Client.csproj b/samples/EShopSample/aspnet-core/src/EShopSample.HttpApi.Client/EShopSample.HttpApi.Client.csproj index 0f335bdc..4e331ebb 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.HttpApi.Client/EShopSample.HttpApi.Client.csproj +++ b/samples/EShopSample/aspnet-core/src/EShopSample.HttpApi.Client/EShopSample.HttpApi.Client.csproj @@ -3,7 +3,7 @@ - netstandard2.0 + netstandard2.1 EShopSample diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/EShopSample.Web.csproj b/samples/EShopSample/aspnet-core/src/EShopSample.Web/EShopSample.Web.csproj index 2d95a425..b6c90c54 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/EShopSample.Web.csproj +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/EShopSample.Web.csproj @@ -47,7 +47,7 @@ - + diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/EShopSampleWebModule.cs b/samples/EShopSample/aspnet-core/src/EShopSample.Web/EShopSampleWebModule.cs index 2ae5e25a..4cc583d0 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/EShopSampleWebModule.cs +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/EShopSampleWebModule.cs @@ -30,13 +30,14 @@ using EShopSample.Localization; using EShopSample.MultiTenancy; using EShopSample.Web.Menus; using Microsoft.OpenApi.Models; -using NUglify.JavaScript.Syntax; using Volo.Abp; using Volo.Abp.Account.Web; using Volo.Abp.AspNetCore.Authentication.JwtBearer; using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc.Localization; -using Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic; +using Volo.Abp.AspNetCore.Mvc.UI.Bundling; +using Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite; +using Volo.Abp.AspNetCore.Mvc.UI.Theme.LeptonXLite.Bundling; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared; using Volo.Abp.AspNetCore.Serilog; using Volo.Abp.Autofac; @@ -61,7 +62,7 @@ namespace EShopSample.Web typeof(AbpAutofacModule), typeof(AbpIdentityWebModule), typeof(AbpAccountWebIdentityServerModule), - typeof(AbpAspNetCoreMvcUiBasicThemeModule), + typeof(AbpAspNetCoreMvcUiLeptonXLiteThemeModule), typeof(AbpAspNetCoreAuthenticationJwtBearerModule), typeof(AbpTenantManagementWebModule), typeof(AbpFeatureManagementWebModule), @@ -98,6 +99,7 @@ namespace EShopSample.Web var configuration = context.Services.GetConfiguration(); ConfigureUrls(configuration); + ConfigureBundles(); ConfigureAuthentication(context, configuration); ConfigureAutoMapper(); ConfigureVirtualFileSystem(hostingEnvironment); @@ -116,11 +118,14 @@ namespace EShopSample.Web }); } - private void ConfigureUrls(IConfiguration configuration) + private void ConfigureBundles() { - Configure(options => + Configure(options => { - options.Applications["MVC"].RootUrl = configuration["App:SelfUrl"]; + options.StyleBundles.Configure( + LeptonXLiteThemeBundles.Styles.Global, + bundle => { bundle.AddFiles("/global-styles.css"); } + ); }); } @@ -135,6 +140,14 @@ namespace EShopSample.Web }); } + private void ConfigureUrls(IConfiguration configuration) + { + Configure(options => + { + options.Applications["MVC"].RootUrl = configuration["App:SelfUrl"]; + }); + } + private void ConfigureAutoMapper() { Configure(options => diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/package.json b/samples/EShopSample/aspnet-core/src/EShopSample.Web/package.json index 01a44f95..3c068444 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/package.json +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/package.json @@ -3,6 +3,6 @@ "name": "my-app", "private": true, "dependencies": { - "@abp/aspnetcore.mvc.ui.theme.basic": "~5.1.3" + "@abp/aspnetcore.mvc.ui.theme.basic": "~5.3.1" } } \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/global-styles.css b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/global-styles.css new file mode 100644 index 00000000..e69de29b diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/@fortawesome/fontawesome-free/css/all.css b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/@fortawesome/fontawesome-free/css/all.css index c9816fac..d9ade752 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/@fortawesome/fontawesome-free/css/all.css +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/@fortawesome/fontawesome-free/css/all.css @@ -1,5 +1,5 @@ /*! - * Font Awesome Free 5.13.1 by @fontawesome - https://fontawesome.com + * Font Awesome Free 5.15.4 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"; } @@ -442,10 +439,10 @@ readers do not read off random characters that represent icons */ content: "\f7e5"; } .fa-bacteria:before { - content: "\f959"; } + content: "\e059"; } .fa-bacterium:before { - content: "\f95a"; } + content: "\e05a"; } .fa-bahai:before { content: "\f666"; } @@ -637,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"; } @@ -1008,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"; } @@ -1213,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"; } @@ -1225,7 +1225,7 @@ readers do not read off random characters that represent icons */ content: "\f2a4"; } .fa-deezer:before { - content: "\f977"; } + content: "\e077"; } .fa-delicious:before { content: "\f1a5"; } @@ -1411,7 +1411,7 @@ readers do not read off random characters that represent icons */ content: "\f282"; } .fa-edge-legacy:before { - content: "\f978"; } + content: "\e078"; } .fa-edit:before { content: "\f044"; } @@ -1543,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"; } @@ -1666,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"; } @@ -1906,7 +1906,7 @@ readers do not read off random characters that represent icons */ content: "\f3aa"; } .fa-google-pay:before { - content: "\f979"; } + content: "\e079"; } .fa-google-play:before { content: "\f3ab"; } @@ -2001,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"; } @@ -2035,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"; } @@ -2077,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"; } @@ -2089,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"; } @@ -2122,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"; } @@ -2175,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"; } @@ -2236,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"; } @@ -2272,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"; } @@ -2304,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"; } @@ -2425,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"; } @@ -2548,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"; } @@ -2677,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"; } @@ -2719,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"; } @@ -2829,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"; } @@ -2959,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"; } @@ -2967,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"; } @@ -3025,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"; } @@ -3058,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"; } @@ -3136,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"; } @@ -3331,7 +3349,7 @@ readers do not read off random characters that represent icons */ content: "\f156"; } .fa-rust:before { - content: "\f97a"; } + content: "\e07a"; } .fa-sad-cry:before { content: "\f5b3"; } @@ -3430,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"; } @@ -3445,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"; } @@ -3490,7 +3508,7 @@ readers do not read off random characters that represent icons */ content: "\f215"; } .fa-sink:before { - content: "\f96d"; } + content: "\e06d"; } .fa-sistrix:before { content: "\f3ee"; } @@ -3586,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"; } @@ -3754,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"; } @@ -3763,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"; } @@ -3979,7 +3997,7 @@ readers do not read off random characters that represent icons */ content: "\f3ff"; } .fa-tiktok:before { - content: "\f97b"; } + content: "\e07b"; } .fa-times:before { content: "\f00d"; } @@ -4009,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"; } @@ -4039,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"; } @@ -4071,9 +4089,6 @@ readers do not read off random characters that represent icons */ .fa-trello:before { content: "\f181"; } -.fa-tripadvisor:before { - content: "\f262"; } - .fa-trophy:before { content: "\f091"; } @@ -4137,6 +4152,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"; } @@ -4150,7 +4168,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"; } @@ -4168,7 +4186,7 @@ readers do not read off random characters that represent icons */ content: "\f13e"; } .fa-unsplash:before { - content: "\f97c"; } + content: "\e07c"; } .fa-untappd:before { content: "\f405"; } @@ -4261,7 +4279,7 @@ readers do not read off random characters that represent icons */ content: "\f509"; } .fa-users-slash:before { - content: "\f973"; } + content: "\e073"; } .fa-usps:before { content: "\f7e1"; } @@ -4290,6 +4308,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"; } @@ -4330,13 +4354,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"; } @@ -4380,6 +4404,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"; } @@ -4455,6 +4482,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/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/@fortawesome/fontawesome-free/css/v4-shims.css b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/@fortawesome/fontawesome-free/css/v4-shims.css index e4d93da3..1ef4893b 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/@fortawesome/fontawesome-free/css/v4-shims.css +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/@fortawesome/fontawesome-free/css/v4-shims.css @@ -1,5 +1,5 @@ /*! - * Font Awesome Free 5.13.1 by @fontawesome - https://fontawesome.com + * Font Awesome Free 5.15.4 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/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.eot b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.eot index 8745c3eb06a1307b20b7c39bbe7f8dd517911e47..cba6c6cce88182cb9374acea956769f87a8b8004 100644 GIT binary patch delta 40376 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 BO(*~W delta 41220 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 tu~*dHf0mooM!%8od - -Created by FontForge 20190801 at Thu Jun 18 14:52:21 2020 +Created by FontForge 20201107 at Wed Aug 4 12:25:29 2021 By Robert Madole Copyright (c) Font Awesome - + + + + + + + + + + + + + + + + + + + + + + + + + + +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" /> d="M271.5 16l-68 -32c-115 10.2998 -203.5 71.5 -203.5 145.8c0 71.5 82.5 131 191.7 144.3v-43c-71.5 -12.5 -124 -53 -124 -101.3c0 -51 58.5 -93.2998 135.7 -103v340l68 33.2002v-384h0.0996094zM448 157l-131.3 28.5l36.7998 20.7002c-19.5 11.5 -43.5 20 -70 24.7998 v43c46.2002 -5.5 87.7002 -19.5 120.3 -39.2998l35 19.7998z" /> +d="M223.69 306.94h93.5791l-140.909 -338.94h-94.1699l38.5693 89.8096l-105.83 249.131h96.0703l56 -143.171zM329.09 171.15c32.1328 0 58.2197 -26.0879 58.2197 -58.2207c0 -32.1318 -26.0869 -58.2197 -58.2197 -58.2197s-58.2197 26.0879 -58.2197 58.2197 +c0 32.1328 26.0869 58.2207 58.2197 58.2207zM394.65 416h104.42l-92.6299 -223.47h-104.79z" /> @@ -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="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-22.8994 21.2998 -51.7002 32.2998 -83 32.2998c-68.4375 0 -124 -55.5625 -124 -124s55.5625 -124 124 -124zM415.5 174.2h35.2002v35.5h-35.2002v35.5h-35.5v-35.5h-35.5v-35.5h35.5v-35.5h35.5v35.5z" /> +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 48h352zM336 136v160c-31.5996 -11.2002 -41.2002 -16 -59.7998 -16c-31.4004 0 -43.4004 16 -74.6006 16 +c-25.3994 0 -37.3994 -10.4004 -57.5996 -14.4004v6.40039c0 8.83105 -7.16895 16 -16 16s-16 -7.16895 -16 -16v-192c0 -8.83105 7.16895 -16 16 -16s16 7.16895 16 16v153.6c20.2002 4 32.2002 14.4004 57.5996 14.4004c31.4004 0 43.2002 -16 74.6006 -16 +c10.2002 0 17.7998 1.40039 27.7998 4.59961v-96c-10 -3.19922 -17.5996 -4.59961 -27.7998 -4.59961c-31.4004 0 -43.4004 16 -74.6006 16c-8.91309 -0.0322266 -17.5195 -1.44336 -25.5996 -4v-32c7.86035 2.58398 16.2559 4.00195 24.9756 4.00195 +c0.208008 0 0.416016 0 0.624023 -0.00195312c31.4004 0 43.2002 -16 74.6006 -16c18.5996 0 28.2002 4.7998 59.7998 16z" /> +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" /> @@ -1094,15 +1288,17 @@ c-4.2998 22.5 -31.4004 20.9004 -49 20.9004h-24.6006v-127.8zM382.5 157.4v36c0 17. c5.69922 -6.7998 11.8994 -9.7998 20.8994 -9.7998c19.7998 0 22.2002 15.2002 22.2002 30.9004zM265 218.1v-49.2998c0 -9.7002 1.90039 -18.7002 -10.2998 -18.3994v83.6992c11.8994 0 10.2998 -6.2998 10.2998 -16zM350.5 192v-32.7002 c0 -5.39941 1.59961 -14.3994 -6.2002 -14.3994c-1.59961 0 -3 0.799805 -3.7998 2.39941c-2.2002 5.10059 -1.09961 44.1006 -1.09961 44.7002c0 3.7998 -1.10059 12.7002 4.89941 12.7002c7.2998 0 6.2002 -7.2998 6.2002 -12.7002z" /> +d="M498.252 213.777c0.129883 -0.613281 0.322266 -1.21777 0.561523 -1.78223v-37.0557c-0.194336 -0.300781 -0.516602 -0.583008 -0.552734 -0.900391c-0.619141 -5.36426 -0.837891 -10.8076 -1.87012 -16.0869c-2.06934 -10.6074 -4.15723 -21.2393 -7.0166 -31.6523 +c-4.94531 -18.0205 -12.7578 -34.8809 -22.2998 -50.9258c-8.94336 -15.126 -19.4043 -28.9668 -31.4268 -41.6387c-3.74609 -3.92188 -7.54688 -7.80078 -11.5107 -11.5c-5.31152 -4.95703 -10.5146 -10.1094 -16.2998 -14.457 +c-9.3418 -7.02344 -18.9883 -13.6533 -28.7373 -20.1006c-15.083 -9.81543 -31.6211 -17.9053 -48.9512 -23.8174c-15.3828 -5.38281 -31.1533 -9.38574 -47.4893 -10.7178c-2.52734 -0.206055 -5.02051 -0.753906 -7.52734 -1.14258h-32.2891 +c-0.358398 0.245117 -0.762695 0.436523 -1.18945 0.55957c-6.1377 0.620117 -12.3418 0.863281 -18.4121 1.87305c-13.8301 2.22949 -27.5977 5.58398 -40.6416 9.83496c-19.5498 6.43359 -38.4463 15.0176 -55.8994 25.2773 +c-15.0488 8.79004 -28.9365 18.9688 -41.7871 30.5859c-9.6875 8.70605 -18.3936 18.0898 -26.3584 28.416c-9.38184 12.1963 -17.4385 25.4316 -24 39.5283c-7.5918 16.6592 -13.3467 34.7812 -16.7295 53.2998c-2.35547 13.1611 -3.85059 26.5459 -4.4248 40.2402 +c-0.136719 3.0332 -0.209961 5.74121 -0.209961 8.80859c0 9.05566 0.599609 17.9717 1.76172 26.7119c1.52637 11.874 4.15625 23.6367 7.69043 34.7588c5.05762 15.7021 12.0283 30.7871 20.4941 44.6006c9.58203 15.9961 20.7793 30.6025 33.6484 43.9502 +c9.55469 9.83496 19.7539 19.0605 29.9268 28.2676c5.70605 5.1582 11.8066 9.9082 17.9736 14.5186c12.0029 9.04004 24.6963 17.1025 38.0801 24.1572c12.5137 6.63281 25.9795 12.1963 39.7686 16.3555c10.9453 3.41016 22.5254 5.84375 34.2559 7.09961 +c2.42773 0.225586 4.82617 0.761719 7.23633 1.15039c10.7627 -0.00195312 21.5254 0 32.2881 0.00585938c0.299805 -0.195312 0.583984 -0.516602 0.899414 -0.552734c6.87793 -0.81543 13.8467 -1.16797 20.627 -2.48242 +c11.2432 -2.18359 22.4971 -4.51465 33.5156 -7.61523c19.999 -5.78125 39.2266 -14.2031 56.7227 -24.668c17.2832 -10.0947 32.9639 -22.1357 47.1133 -36.1152c6.71973 -6.90527 12.9209 -14.0508 18.8174 -21.6895c13.4639 -16.959 24.0283 -36.4561 30.874 -57.5 +c3.88867 -11.8086 7.16211 -24.2148 9.62207 -36.5996c2.0459 -10.1748 2.53809 -20.6602 3.74609 -31zM337.135 214.927l0.00488281 67.2695c-35.2686 0 -53.1152 -9.36719 -62.04 -36.1895v31.9316h-73.5176v-190.738h73.5127v93.667 +c0 22.1396 6.37012 37.04 33.5703 37.04c11.8984 0 28.4697 -2.98047 28.4697 -2.98047z" /> +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 48h352zM416 16v352c0 8.83105 -7.16895 16 -16 16h-352c-8.83105 0 -16 -7.16895 -16 -16v-352 +c0 -8.83105 7.16895 -16 16 -16h352c8.83105 0 16 7.16895 16 16zM201.6 296c31.2002 0 43.2002 -16 74.6006 -16c18.5996 0 28.2002 4.7998 59.7998 16v-160c-31.5996 -11.2002 -41.2002 -16 -59.7998 -16c-31.4004 0 -43.2002 16 -74.6006 16 +c-0.208008 0.00195312 -0.415039 -0.0175781 -0.623047 -0.0175781c-8.7207 0 -17.1162 -1.39844 -24.9766 -3.98242v32c8.08008 2.55664 16.6865 3.96777 25.5996 4c31.2002 0 43.2002 -16 74.6006 -16c10.2002 0 17.7998 1.40039 27.7998 4.59961v96 +c-10 -3.19922 -17.5996 -4.59961 -27.7998 -4.59961c-31.4004 0 -43.2002 16 -74.6006 16c-25.3994 0 -37.3994 -10.4004 -57.5996 -14.4004v-153.6c0 -8.83105 -7.16895 -16 -16 -16s-16 7.16895 -16 16v192c0 8.83105 7.16895 16 16 16s16 -7.16895 16 -16v-6.40039 +c20.2002 4 32.2002 14.4004 57.5996 14.4004z" /> +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" /> @@ -1385,14 +1580,18 @@ c13.2998 45.5 -42.2002 71.7002 -64 29.2998z" /> d="M87 -33.7998v73.5996h73.7002v-73.5996h-73.7002zM25.4004 101.4h61.5996v-61.6006h-61.5996v61.6006zM491.6 271.1c53.2002 -170.3 -73 -327.1 -235.6 -327.1v95.7998h0.299805v0.299805c101.7 0.200195 180.5 101 141.4 208 c-14.2998 39.6006 -46.1006 71.4004 -85.7998 85.7002c-107.101 38.7998 -208.101 -39.8994 -208.101 -141.7h-95.7998c0 162.2 156.9 288.7 327 235.601c74.2002 -23.2998 133.6 -82.4004 156.6 -156.601zM256.3 40.0996h-0.299805v-0.299805h-95.2998v95.6006h95.5996 v-95.3008z" /> - + @@ -1441,10 +1640,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" /> @@ -2141,11 +2352,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="M448 400v-336c-63 -23 -82 -32 -119 -32c-63 0 -87 32 -150 32c-20 0 -36 -4 -51 -8v64c15 4 31 8 51 8c63 0 87 -32 150 -32c20 0 35 3 55 9v208c-20 -6 -35 -9 -55 -9c-63 0 -87 32 -150 32c-51 0 -75 -21 -115 -29v-307 +c0.00195312 -0.136719 0.00292969 -0.273438 0.00292969 -0.410156c0 -17.4404 -14.1602 -31.5996 -31.6006 -31.5996c-0.136719 0 -0.265625 0.0078125 -0.402344 0.00976562c-0.136719 -0.00195312 -0.273438 -0.00292969 -0.410156 -0.00292969 +c-17.4404 0 -31.5996 14.1602 -31.5996 31.6006c0 0.136719 0.0078125 0.265625 0.00976562 0.402344v384c-0.00195312 0.136719 -0.00292969 0.273438 -0.00292969 0.410156c0 17.4404 14.1602 31.5996 31.6006 31.5996 +c0.136719 0 0.265625 -0.0078125 0.402344 -0.00976562c0.136719 0.00195312 0.273438 0.00292969 0.410156 0.00292969c17.4404 0 31.5996 -14.1602 31.5996 -31.6006c0 -0.136719 -0.0078125 -0.265625 -0.00976562 -0.402344v-13c40 8 64 29 115 29c63 0 87 -32 150 -32 +c37 0 56 9 119 32z" /> +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" /> @@ -2545,7 +2756,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 @@ -2565,47 +2776,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" /> @@ -2614,7 +2826,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 @@ -2698,21 +2910,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" /> @@ -3193,26 +3403,30 @@ 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="M14 352.208c0 52.9043 42.8877 95.792 95.793 95.792h164.368c52.9053 0 95.793 -42.8877 95.793 -95.792c0 -33.5 -17.1963 -62.9844 -43.2432 -80.1055c26.0469 -17.1211 43.2432 -46.6045 43.2432 -80.1045c0 -52.9053 -42.8877 -95.793 -95.793 -95.793h-2.08008 +c-24.8018 0 -47.4033 9.42578 -64.415 24.8906v-88.2627c0 -53.6104 -44.0088 -96.833 -97.3574 -96.833c-52.7725 0 -96.3086 42.7568 -96.3086 95.793c0 33.498 17.1943 62.9805 43.2393 80.1016c-26.0449 17.1221 -43.2393 46.6055 -43.2393 80.1035 +c0 33.5 17.1963 62.9834 43.2422 80.1045c-26.0459 17.1211 -43.2422 46.6055 -43.2422 80.1055zM176.288 256.413h-66.4951c-35.5762 0 -64.415 -28.8398 -64.415 -64.415c0 -35.4385 28.6172 -64.1924 64.0029 -64.4141 +c0.136719 0.000976562 0.274414 0.000976562 0.412109 0.000976562h66.4951v128.828zM207.666 191.998c0 -35.5752 28.8389 -64.415 64.415 -64.415h2.08008c35.5762 0 64.415 28.8398 64.415 64.415s-28.8389 64.415 -64.415 64.415h-2.08008 +c-35.5762 0 -64.415 -28.8398 -64.415 -64.415zM109.793 96.2051c-0.137695 0 -0.275391 0.000976562 -0.412109 0.000976562c-35.3857 -0.220703 -64.0029 -28.9746 -64.0029 -64.4131c0 -35.4453 29.2246 -64.415 64.9307 -64.415 +c36.2822 0 65.9795 29.4365 65.9795 65.4551v63.3721h-66.4951zM109.793 416.622c-35.5762 0 -64.415 -28.8398 -64.415 -64.4141c0 -35.5762 28.8389 -64.415 64.415 -64.415h66.4951v128.829h-66.4951zM207.666 287.793h66.4951c35.5762 0 64.415 28.8389 64.415 64.415 +c0 35.5742 -28.8389 64.4141 -64.415 64.4141h-66.4951v-128.829z" /> - + +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" /> diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.ttf b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.ttf index ef792f4244b8ca1d096741f5b43a74c1bd36df8c..8d75deddae520da95d3cf111f4ccbf3361074292 100644 GIT binary patch delta 40371 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 Kgzq+XZ~eapP%Kga delta 41394 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%0A$kL#rG1&M^ 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 diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff index 4d5c55f98f3c28394001ee1910dddd972430b8bb..3375bef0911555af28fea3c02c3e7671c50a5e7b 100644 GIT binary patch literal 89988 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 diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff2 b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff2 index 1c640823badc78bb0a2f1b31f9eb6d3d8b29352d..402f81c0bc082532fca61319959cb4b8e597de9d 100644 GIT binary patch literal 76736 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 OvGs=*>()Ih1OWi|n4ByC literal 77444 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 YJa&H6=2|tp#46fOZwi&E5xPRu)e-9ZK<~m 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 diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.eot b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.eot index 1de96d4b92a43a0cfe0598d50446038e6e81a751..a4e598936b3eb6ceb0080dccccdcd49bfe95ca98 100644 GIT binary patch delta 5000 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 delta 5505 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 UKX1Jt*>CL6{2p@p4~{Ya4=#ZO5C8xG diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.svg b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.svg index a26d2f86..463af27c 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.svg +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-regular-400.svg @@ -1,16 +1,12 @@ - -Created by FontForge 20190801 at Thu Jun 18 14:52:21 2020 +Created by FontForge 20201107 at Wed Aug 4 12:25:29 2021 By Robert Madole Copyright (c) Font Awesome - + @@ -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" /> - -Created by FontForge 20190801 at Thu Jun 18 14:52:21 2020 +Created by FontForge 20201107 at Wed Aug 4 12:25:29 2021 By Robert Madole Copyright (c) Font Awesome - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +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 +3922,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 +4270,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 +4297,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 +4702,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" /> diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.ttf b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.ttf index 8adeea24eedc0d87282d26536cfd74df4694d970..25abf389e22db851b03dd14d87ca10acb8b6b44b 100644 GIT binary patch delta 36522 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 delta 38438 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 diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff index 65f1d331a0c308a5517c4f2632ad4b9a6e8ac4e4..23ee663443a7c6d2393dbcb713b07c566f40c925 100644 GIT binary patch literal 101648 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

      j< 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%0D?I3ov(fVN| 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 M_kYo)8A$*D0I2Z0cmMzZ literal 104252 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'd1Mlv9Dcqdu7tF zHrt(U)fw4UmAqLq1AL5jTw>|`6DLMSOd|suHmFns#+65Gwn59qn)PWzxhn!!RD5s{ z3Foo=U&tW-6sgD7b3^3ThZ~qd>IC+e=z)*eu(;qloeOkfZmZB9&_L5HO-n$7Q(r9& z-cFp8Az@TOLzxO0CTlD}?i{ip%rNNOu~So<12yj0y;G;8M6Z^mxRIC$72HoYn_H3T zfXg1q8oM~2*LXsVOS*g;N!|7A638=A(_L?M2WKZ+|N5W}rk`N639a?^e@MICDg^8A z{vswT_YrDGIw3yB(y)`O*AwY9S_Wu9(p!U$!PAMq?U#z2fY^OYz9^#$dgC+CcO1Ud)NI zs1s-{eK-kyzF^XtMh!Chci zY9^18h2uiOSQpS{@JeCeQ>~S3)oLGXbOZ^|w1TwM6pr8t2V!io#%8=#{WUmGeiK1k zY2_Equ?}gq?oef{Z{7hum#SE<9?kQb{~BhX0v5_x}hQh~w0n zKSmf+Nu%0BDpPVbb<-x|BjxHg^k;Fv3ef;!QD@U>&~9DI0yeJ`dvg&iI~Bt`bxApw zY6fjZg`iXJim%UELFmrTX+gjX7d#q3tDg6D1cBw7TqGL1iw);kO-IV~(2k43u+FlW z)of3C`hw>lnE1`gVUA?VF}$MGl-)+VAH^U;@@}qHUB!d}CZsy8se}*9Y^W$ba-7oZ zktBg7l=I;Bm0lJAg&~h><&qgUrDz@XNmI(A%|&<=m6D3!GxIkuPMQ0J+Lf~S!*Ba- zx+qWQ!tw3M)D+~JMXBNIQWkyKA6l^F0{^OG{RWR%&=GnVjFibw4$Z zBR+k+X#oPDL7>H$O@E#Zy1DET7x9wUWU4)l(A{cyhP?Xc<^>35{(LdiT+aJs6ShU{ z4$n{6vM8nL2?dTPYykjbK{f^yCr+{BZ=mvwpj#$hBnY(iRZ;ME`dba-8B^ZjeWclzJdM z7dMtg{#}Mz5@#U8RR*Cm4uoT2E|cl$ANL=Sy1P?^tPCdlrY}XSXR(AS5s#uC-2dZg zY-|kd(tG+eqo3ytvF-Dc;%Q@4ywq!-EhG?xL)6zp{TC+V2qjP(aoa8&`s-8m%1Oe? z_Jz!9W-nhQld1T<+b?gw@@AjTkA#yY`l^sUmKl|mcRZWR+<0`(-oirge1{)t948u; zM$&BZfST|>-{ha1Q?UQ=V@r5VoqqxM>nPOGynlZ)`V5POc$6trcH+w5wL$__vSdIWqbBEH& z(H_3W7R&k<(*Z%q3T@N^a7L6W${1ycx;qEfhZ}GXLo2$PvY{9U59h->u)~MD8w~HX z<)d#q^0dS6bT*s^X33IBP%!A9=lEBaPQ)Qm(yK^waShiK#hL+pH~o(R>Q4r>zEU9* z8@(j>;I%_Ul7?KnEFRD1wvx~mEN|Q>6B`sOP|TlHulWKKQIS8(GD}}P;2-+5cmDZz z-ZMmZzW+aTxb4P`w&BqKKf5EE;r;IX{NAS)f9AXIdiRD@3fM=&eqz}KGHmOy2U(>8 zh!Bb>^dlZxRlTG+{kt-x{aEL*ySAg0haY7k-ohme-!?0Cu!T#$y3gkw=zUp01axHc<|k{^MY+mh7}vubMx zhtpBdN#gu#_VKNECOPXl0gGMXu2ehNvItzC;A{C(Qp(^{En()}yWA*c6!-4Eiv-=o zKq@J=I7FG6hO}6a)2AuVU#P3M)1AK#7ePi8tKUT;Q?Yc~0}(Q!@&5=UdA5a=j;br8eyM8As`dGc0~^Jk88~^;Q?&1bHfAIG(*bS)bO02E z5|whfQtxR>MJXH_u52?`4w*Oi1d|oCxOp;86&9727FC-w z4hWA*-3En;q00$L4OTe31$F@u9Er{fNC}DzQeRf%>5cHK4voPhBX*ywI1rwZgB)c0 zku|`d?%wTcZBA}(sCQY2lr5mIfY|`2bC$IeEw0-j(B0~)P{n;M#3ay?m6^eGX-%=7 z+nHmgx(L0Oi{m{hRwU+dcv4QVc^{a1=GJ{e5d^Y>W2a2-t5w*l&Fe-6$_EEJ*124E z+wiG(K~p~nroO+oN#mc=HaIjoSUxaVPjO-~IM{xYjLvj|(X#QLx@hIc;64;Q3yFWhwD*f5KhbQS4p6iRA5qNEfu%(I~3~hC~r64MoX5`DPPyu=B4Z| zfeQ(eL5LzKy2hk3(nxCGgR=O11n_vl;Ff^mZ_DPN@N8w+WQcrA5L87FwT$+tEPgZ} zk#E`tB}go-x4fy_cAH5!O2%8)xW$-e0*XvBRhBc(3yP%`rHGZh%hSLPq1L>}(T8W| z*K9elmx#qauVzxrMF}YDP8tA6$%cMWJLuaznc26WV+5Kny=br`k#!LccrE6LaaO{7A*d=PwkpD%f;+57{_%@(n)glotkrw3s_H63wA4v%5_&zlVh-fUmsOxy#$%Gm%BoAEEkV&%AT0)si#u)RWJ!;UU~gr~ zajf3pRKBw$qS=sI;L}qp*}7n16UpkjWUIlh(-~bXSA9LTOo|~!ozAYZlC6uAWLvlZ zXcIb>wY5r31mWOW?ns8hXJP5j;zQ5bQ4^HrA^dBypS~6s*a9$Wyc#~vS5zt##^ao# zk63{Qd7-Fhzh!aRh6i=R)zn%q$!yA#3E&RcrLN8CB`c%R(I8d7VE*8v*JOmID}s;C z*ibrSu;~;`wxE4p0YcKiW|nkfk_Xw}67c`6ZUZ08*kVsV;hLq1k45?bcE0DLv+$N_ z(%5=kQOwamWKFv4?)#Nflbm&U$Eo;h5Ce!ilHeVJ{p^3Wo@TsF$Krf_>f_~C2Qy>t$Coj2A5SlWbB5PQ zuN}NU+Emt(RJFATVrfpvjoXZPsqMG5f78PmLoKfs2wDXJ^8)6-T06v$(EslLrS1S? zZ&pgqEV?u)8IXF(vm=@S_p+!g@?Nd;e{C@P{vsr9l zIa%GcZD@f+=oLx?bRY0}36tiB#H)?-DJR1!Up8im4fnD(CsIuutf{Ws~ zIR`s)NWHmWiUS1F*2{SJVo}D-o_au|$>U@+EjwL8ZE@B|*G?bPB|~r2AbwI`Gt1U= zc=lMy8qjHWgA@<{kB=sQS2ODZ60XKPsd{?Ho(SQD$pj~W>fVPjnHyL*!h?GSA;97);S&>3& zH6hCcsEDoMYZPJ1Wb^7$xmXRWDn*86Oa5s9$;eHutqGB2mV_^;HBT}{N0WCkkPkS2 zeFMEmc~AKpnJ1mV{S6j@#=ySR8s<|14PYy$1{NWGQy95mweji0hsjPXP~*jcQKQS= zG;_u|Km;%jXVgX}KnZVe{E%-HOc64|%dI+KyiVVP#1B|F^g?*YGj=?p-}C%6CA+NL zxuEZJ(i|ScQlb#w_$>>Z5?3+eI>(LokK;hM_1-fB`oueb`;AK{CV3sWQ^vXzkylxU zZ3g`^(?H!b^9XVLhh;~%$>QdWofBvyY1NljI}Em6wj*D1Q8~KfSfb+qp7W|akf9xp z<7mn#7dNVSH}johU7RyWN7F_lZq0dRzHcUCGEFIB9H{P8s|47*6BSb)YrE_nSz6(I zmuC09eca0jZ=e?DMD|=3=?iMjrZZO)*FqbZ0|dZx zM-p1^1s|D&CM;}dZtYmn)06(K&EL3M^R;osRu?Nw*8GjB1JvWap*s{?0Fk4}xA?b~xLjdAD@W7n1{ zU_+51(a=y_CwSYs2Fsgm6MFrlx-&31Y8)LI_y`<2<|8{|+ST))56iynD5^Ngs4NU* z{j%cfieFgkT%Gfm*VR9+H~`!Imlg}c@&;JZB{n_I=m&I>t*(g*I6vXSIIlgSOzcfm zPV5Zs>u!Ddiy|x8dh#T-SjAbu-&8(3Ps-^`Q>;f}89fkcq!gEb4GubJz$u0qENWg3 zcW(b&Zcb9ZsxiJft{HzS(ED|g;lqTX-fg)qYxY4deQ$2?Ljv{jw3{+pGV)t$KCUAW zQQuJcGl2p~jUW^m2VRvSl7ILC&m_Bx#dNpSgkW^~ zJGa&zFFFZ@5yE06vWQ912$@AH@*`z{&#lN*@>eBuwih#mNtO_4bsM)u#{g9xu__P| z2Cg8TUC^H^A{sBTMP*37sYD9bnP6-^Xb?u3bW(V=ODT{?#-+(J+}Bm4#}--SwXT;o z#cn?NSru^AailHOHwCtI`(CEd@ij2SMQI#9Rsl2ZKDpF#i%R)J2iya@&@_@Exjg8R zc$_sI>97gKf3eXE$-HYd2e<3&&`z}5wwJXQFJQf1>if0Wb3Hr>U-p{i5r(yuQz|Ex zXaoV&`dDwx*#XeDwb%T3{8}gBde{B*k|Q!jQ94|Kd3xkU6}(ilxT^PcwsPB$J&ncH zgJY3~lGHx5tEE()BKmV{@3v$&28pU&X>46#Bip9CNlj(tAvTeltXAGHvQB zt$$VO703u&#oY0Lol#>Xs(c!rJcOp@uv}r*h1C{rpQBA-?2_hs499I(5CjiCti)XC zyddOu33UZG-&_^4{jM}Dh+2LaBq22I8W=hvyQ zIV(L2MCm_e&~*89NcO)&yQ*HFehLlV20~BwFC;kzcq$64-i$jDLTPe@o4H7itS;7- z+Ad9)I@60Zs;}XpXDotOpt>VHk6nq*t~s$z%f$ShJ7Hyk6i>W2@JqtKHy zF2^9&dAP7RO2rswlZ%xulVPAdcB^Mv#!``<}f$F6Mj+{ zKXW~suSZ;tt~%H zviIDU3o8D|;@8lQia?G7~^Kuu33upv`BnTF8}9uJH*8VA_S0$_ZfCp9tM+HNob z<$YA$Ox~z^7IA3VtpHTo{v-NJl&;K+$67@PHe^ru7GNUN*$j)u&V%AJuBOBKvQf3W z@qr=3RwQ7O5rfDEap)67UX3};jQ_FnATG^^3vo{w&+a*scX;boNGNP5VuuqBsQ3Q{ znralM|NrgaBQnam`6b{2fMa9BpdLgido=jN|KfCUWc*X(M8(N!w$MEk+Q0vB-kF~4 z@fo!cT^NnaDEIs~i1D&r2`XvBjB+?J_bjsbwdpyGH3(AhtZ(@0xSU0)c+DGhwrRmur3jH9N86_#?k{*ULB7KRz$ zB<|hLTZR>;HcrR2m7GnJ2?l_cuxi5w29~PnrFG$DzeE>C7p-lcNvK<_O0-1)t#+Ie z(BXd$kBdox(~S5STWiq`4>5_|N_NArE$Stw+<@%$?S>2hYxG0LC!7+)s#Q5a)AKA#@ z-k_gz!C1zq!+`6T)s*Yd^kvGn-ZPe3wa72JJaH7Dd zyb`~PQTbFZ|IRMs?p#;Sb>f}mV=O6$E}(Ppf>X*mMrM49aLd>2lyU9fEwA)ZiED5d zF5n1)B?=<*wY-7|I`1Oyc4DAuMhBxxU1gAm2DcT9!Pj+9U*cbWor?lR$+~uv5THOj zoKVqDbEu^v2nNmjAqO}B*=01b4Ur(m7{Khwd?+3N5dG2g&EFEybR-xNM&VMZ2Al0d zLMZhwG5!&w-g6^iA~s@O`3O(^N_zZjs)2aiACGYd*ZB9dorQ5v`4C`L^KSm`TIFp= zM8Z_;bT=MNvk1p5yV7f4t7@BHvAnc&Pv!T8UhKmSd5iM*Ffq?^y7L$1ZMbsn!wx=O zy2vF>SC8YEywX!i>Nh903lK_dp*(h9076T~02$D#QoMw0g5Mc)GK?(XVA_-QDyQRV zHoa-LRM=-2bUGvf8@I3l90q6_^^LB?4?A;3)79=aCC$I?q&xh@m5V&cvWv}q3&7mB z+5_b#MTIC%z@X%2Y9$AM{&P1|yU}E2`90v8oL(TGQN(8!av2&riI`4ja0{9I3mLug zWA3Rf7`WBzw@UxVs;7q|Pjd*yve>|?C-I$d=-P}aQME08{$x<@~ozQcdnyaSsFaMtc` zVHav08JXxiNcg_N%5L(8O7K>6o0+FZkC2sn3+aDkoKQ&%v{J1Zzp8}ZS!9I12I|6c z$&qzjCwKW6B0?Mi5;{4tauL%(Hvu+SR>JcTF(CvKGqGarlNpagq88};Jq6(W`RpS! zq5p^2V6Q#)*C-+FNH)b#wVj2cvR3ee4_1|(uY~0n&!pnz9=nknbRzw#cG*B}{-zOJ zpXydjJHkP3&b&o$!@a&oo5#jo+K`#=jeBn1rrC{3tW};(GYfH{Uz#gV;WU6w2=iGI zG(zM9@p7ATFScZ1Wb&NZCk;4CsZ@d+rmuRGdD!ntrZN8aZ62Km(S^3>3WpqrPF=op zRvMa?!!X`2XWuZ6&BF#wx#N}^LSEbRf97K=^4HZWEhcS$&aaqhnnK7MynI;obVMkn zs!C}{$$SPf2y@B(_tKG3q+VHqf-+=V#~V$lqV{h7^h?&|B}?S|kvx%VP-<1jyEI#1g8jfi)Iw|-3y}7&kdNd;OCg&DYtirS3Se&ufiDOyTDh^mRhg5 z)+|Uy*ZmoHs2SjVpVV8!k5B~*aWTV!(SYlMzB{#cd#lxEmwJStrq_mKhf`SL)NoXF zJlLYurCmj-gRQfMlVhJV&QlSMqCR)_F>)UtHVXIYA;4U@?5WSlo*Y)lY zYUf~)D3X1zEAD^(p_aFLw)-uLVgRg0hn~@qE0&pTot@S^cn7HNRk2)0-VurxOUQki zVzw=_WV~eh$V71C%w?yKdWfl6zfdGe-|{y>|31>cDbnZPg~9i{FM}u1H#*naauv}{ z9^EI6oHCl!?eV0_xYh>LR-D7P@-v+TwX)Rar^<<(D~)uef$t>Ombs)HK#`O~-?3}0 zcigERy@N{vDi!ck+**mkJc#dc*PQ@m&|>5Flia4+Zl!%T&KOHR1|)zm;Zy)Bs8O<> zD{B{U*S}!~%7`2>RFecX5}_TxQUA9Hs91#@|0`&%^4iqSGFENU3^VHHPMAc5gfoC9 zmfwLG+5#4XHi^1hs z8jE6B2m-}>7X~TSC|Fy~-H8GGTss#Z#{$3$4p(zI?);)Sr9YIgzh5}m&h{AD#aY_x zJVg`JuoDNk0Fi{u&Alwn*_%i{q(M$U<%d=RUs_lpaQa~Nu8vU&1|SR!cv1TWNqWlB z8W@!J14t~=F7t%&)fdPhZCpxjRjIU;8p6W4Y;dc`2}M#48iVU04X82RG(jU{O7ZZg z%-7#xRT0)FjCZZm$+YX%@3!bsN}6C|hyrUB4-CvM4I)t?1SQr|t$P_8_byQe>CN0wwJcKFb3IlC4ut&oke&VUKaN9%sB-_^arwkxme9 z-yuKlDK^2chT}V*>%UR7-7kyijz*+mETKty{fs1CmV{%+0d~A<&4MyX zYIZvAQR5H6;~U5!u@Q2eF)oOLq7&({U|MsC_RzXN*lCr<%y=?q^h6`kw7EjO{7RZ_ zdu8duDJg6cg+Pntki;Ny%%VjON0#KWLLJjjLRovwcHL-t`os}Uy8v(BF22Af($h!5 zj(It$z=>xnki<(RISPW;FMoNUvVs(qanyelq{oJBT1y!6%pXf+2!UsLbVNz!>&Lf7 zeh}T7Ttg2h&4Ch_47xG;Jbb5g1SvekTjQ2c(g^`8hF^@i67X~j|5hL?qsjGOo#3tc z9x_~I&o86#nP>+&Z`4^~>hvEM8|r}I$M<0T@(=e9Y}-01h4tZ+lQ17%i+Vha-p!kp z*oxQF0J67hj+>n~w`+AC%5fYXcgMD+;kK}W?z$vLPMgg=%$}6gNi?)gp_CB;8Hyx; zajRuC4pST}5%c&{fX?SCB0RTY_8wxTgae#dVY&x0eVSC5mL`r}{@S>*3S&H>j0#zP zaI{#HCZ@$ai@*ok$N4q)w$%Pwgb&hU1mP@!` zPPIGj67#=y0-NhQ<%`^!pyq{SUClb*qLO2ZHf58|-`iposEz)B9ZJaVo+uC<=U3o}w(Hy1!w3B)@$otu}Ta;4UPKtX>2B zk;;IZbSI!Agqh%zhpkJd37AIVjQDh^IJMF#5AkQy0bw^I8#W5@b}jnmxVW0J57gD{ z2u?)cq~^xsjTGS3^zW~R*v(hly#KwA)93w(=3GsdgfGvjRHy4b_HU{pBR#&3(N~tW zH|_Umf1~MO?p&S>nWs&20iJ&@#E-V_<-$MX`&BVp;n`un|4PX!^w_})!}>G#@1I$3 zsMvl>g_cSG4fjca?~i%?3)^mIw~YmkvF)jc-OKssjFIL^%w!*>Q_ z)1FEv@1fn$88dV+Tf*gw!(K9X@&Q$Ot%t)lK^RW%>`W>=vX+VVA7_dkx_a9lXt;^AE|s(oD;X(3?11HsQqp z5XVbVC5c{w4Ka6V6?hFzDXOP~#{U*io5wkTC>s7-KCL1Bb{fMwe#$a~Wus&?9*xs= zQ&}j9WC(@-7R)|=%7`ma$s%uc?BZB*>~*vecH!OUtz#Az$F-zT;{1$O80<3o=FG8; zp0>_00U)GJ%|IF>n@-}aHW-mpXNlNVg=b9k*|m?wXu6cRV+BS-R#02kLWw~U0g1BjmVUG`Vh>o1c|||_6d8lXgbQUmt%SS(&0RD7W8vh z>OmWqW+Q-W8%miIxhp(DwmRq@dc+&mLpb2{{p8M_nui_LL7k|RE{UtCsDV*$iYbUVjMmP-;$B%srTQc+M~8{XkT(HVv}k397@n46f7JdShh7Iym_BY4%$8 z`WuQ9ET7@pY@$a&$JvnI>NtkRD<0=!jZJozGcSoic;{I0i^w2P0~VM1LOdN30K&V( zMvO=9@$iGS#7qJ-eNi2%%)!g5I6*W2 zpwr449lhA7Dh3cUJu%~FlX~=PVXeUfk4XB>xI+a;l&Dw2 zs54Be>gJ4@&+NY?RA>or`A&g==$jT+#ZNoFfG2i+-Nn0>cr9lA)eQ*9<5zcdp1@hO ze<13ARl|uYOFcs|=4KpHU;mcOj?T4mb&oj!m}uU|W3g1pWQi2=N!axKL?bzg1{1ex zf-4d6yz?Po?+q@Tn*N4+i~9{Q;TKAe|E6Pm+x1q0mwCXLNIFekPOb}Ys3W=KL-la^ zKdq(z#>>gq$pIb0CYN{%Hr&t|4%cetlzj|*5O2eG)0E8G@Ll*G7UWx{J3Kc1{kva3 zf}Jn~|8jhb2k=+h55a4i8O%PNlK|IJ8aX)du};iR*e&d#9JSimP5MJ=Q>WC{9^ck2#TqC|afhuhtdM(`s^;j?5R z&k>zvEr7-pc-a;r&5D=95jtAmKJr*mw z{cE`IE(mbJF?q=RP#rcn915t_0);ibvkhaiF~`vEvE+z5uEO>3<^s5ir^CnX(++qD zHTI(sy>1c$BfrA}&BJl?{SM@8UGm!hW z3RWPVraMy6f($-Itj&NNtoJtX5vimi%s_#JD&cD>e#WhswlW6E&m&{v7Jq^|I@|jl zfXL%hp!KUzFP~T%<;i2j*8<$_ahZ^s)VwM+;y!hcx=$)&fdcB_tZJ-EcoUS8uV;L( zJ#@=p?R(=coLvhd-NS(5&*qOd8%816ShUfWoBNtzHI~8Haz;$pi?3tpEtK{LT&<(c zuIaj2^JwdE#aIUO9MsxJn_DX@f3UZXx?1(wt@idcE^xioi8WZ}RMem5iSKU6VZ1+9 zAWnA+;S3IDVazIHy%&Hh?TT=Za_(-yIOyb;s)?()v@PHykX%0qpE-cKx46Ag= zW9y2f*Tel)SqiGPda7dWQrMkiU%>V@68^DY;*dDr!a+yy@m5FXhP8zz^>F@4hqhz2 z4iR+TcMq|exW~6E@C0m~=5_PC%yILz)xWdt{5W&h{Hk>dJolDtva2w;w@kZ*D(=27ac#Q}`%9 z*3qZyW`*o2R^!w0$u8a#Ql-~i2#2%f8>xkNFY&yENJA*^(%nMp#w<9Sd;u))fOkWs zD{j;$FS-fYw|n$-jD?u76Vga;lCmmN!3;5v~W zwSM(S9ir!N#h#m4f!5M4u%&4Ya}9;T*vp{0=n>)A1@9K2Re;_B`MYT^4G~Gin40o^ zp>KX(yvP@tcitE(4~si6E^yR;cZV&`=jdMO9 z-cg>qQ^zb{1$x>$&l0p+0tm7TxX);>{wl;iZP_!(EQIH4OYic6a~Hqq6r>_%7sNK{ zZ&8|r=c$d`y^-p%?ZxTWcC9Zj+hZ1`K012XDzHy8Pu$iI39h;1C|7=#yh)vl3$|O@VwU-n7~GTS(pPR?OSxL65v< zJt)27ZrE~)4wJiMSFW13qet<1vJqir@dg61d3sYH^md%P1?aG*Xa`e; zb}YyPN3K@EKbyJl7&vaB!<#OXMU@66M;ZihwV=|dH3T;V&Rub^kOe)Ok4moq>fI4e?*=oKLR3uw=-zG>|V3e zqKQO2oakrSKb3x>cwI@EZnA`&qn^Yezaz1V$3l*~p-_-4bk`al=U*zgff{CZGaz#a zCn)zsI)aztAspV(8PAED{|TM4Gtl-2c2l>&Unlk|v*;9f)-&O96_C;OPr@!PW&%Ea znkGv4@#98Q&AjpQ*u^tgmCvj2YX-OSgFBf7OM@zS`E({s`;a5mvXs%vPc~*hHV=*d z_$wHLn%yTJ=)|wnL7uVzrOh?}nuLRyVJ}yl$nQdMKScnst3oXEOoGTr z97PNRH+^-QsRC1}3~`3g>iOGwP?`N`PK@et(hQT~T#H@@huFUhV&*)`R!#^4_qE8B zWTpr2_0>xX<*HfpeY4%O;iCAAuvD8hCDpoA5gM2g(Zwn0hbzL-^lh3pK6@)2(~=e5aGne_hDq3q#TkM; zrLE~y3g7WTGiJDbQM>9;!SU*>5dXhh?z_*H=j&hUhoO?fmzm0AA7D%szr})~f8;x}cn@@{JioY`_+X)* zoI#vI=ip!@Z*G}BRg5*h?!#0D$U)CXvgcFsz%QlcN@*aIc_i0+Q4ZQVa=)3@%EgNA zk15eLX*f;_tPQyNI)3s$^xO9)T`cv0?B)EO%;)0fhlQ})Awr0P3*#V~PZ5T#>zg<4 z`IzOA5qGTmtMyKv%3pgn=J5bZId&<%=?`z_o3yjG?=V#|9KcFMCFc&f)fudBc z6b(GtSofI$L9;N~UOOG&v_x9c-;`0-n1<5f7ucS$FGSaTbf6+Q%LI_r7x#EHp?b6l z@y)&9)hoyLCg&`!d}s%9oTGNc`4B5PW`0bQ5; zh#gxV%3uyTbBI5+cort&Y}kV6orMjM{D}EE(Cc#8-3yT+q!8{Li5>Gdw|o`=o~auk zgTISYhqM|9u|!eLxq`whv~b!!6!1D_($zd?POEEjQZP9>DR{|}>qF6{^1}ocWnKYW z)GNVd#eO!S|Jd|D{vfE_;h<3J&_e+fy6v`LDW}WfaA`BZuS;ZkMgk1kSy>k^>U54g zHr>XJg{@bk(HT#E3F)>pdbbF| zMorXmfX#`jBw93*8>{Yka$-;LmKoqNSQ0@9nQmycQ5|{oxTsWIq%I|UVrRR`2((o| zt$+AheM(ZU0`BF9wAH61P)P!nShuuM-DP&5zTR%n4{j)e7j>d(mS&dJmaYqa!<_=q zZ6kn+ihnJjf=RNLjhwR{!#LbaCPr>^qn|}@Xf@^m^&Ttp!|zPX`p4gnVHN5!J;(1L zA2NOZxvO=m*;VrNp*MhvLa*MyQ+A550y+M}8tOeK<2mypD_vP(Z9wI@YePQT?mSe7 zv$Aqvz@6EhVKb1G-VX&2X@t zL*yV`Z>zDB?V7&nG+v4~KqI=>Cw&)zSHR*=gY-f@h}f6k zHt-AWaKNST631;mm41n2YxJsxaKVFn=;N``{7C&}jw;6@_Lnncyn}*GYz8fShKlYj z3z^UQR$56{AVHt$6mW6a-7mNvD3{V`lUHv8xq)yh&A((jWYOu=u0rU|!?nBESA2$#LyB$xB_I7T2LL=ar1C|)G1y@WAK{J zxy}O`U%4!@E|=Zq(wThftT_|pm6u=>-QMSak9%~`HFB<4@8RITnKNfj1Iyzc80Z~9 zHjnav*qx6p`l|VXJmmk38(=s^agftS-hapYuSj*(dw0~0_alcyD+VCITazAzzfk04 z`R6TP&*BkTMp1y~qmY@qGBPw3*Cu0Cpsbtw|DN-m|6-_2hmh8s?#ZoNlibVeAUoqH zV^k267&!UVb7jfctm2;u)0`*Xi96jL6f3@YZZOW_Sz7wt;-Ok;+Bo(Y%nP55tag;- z{qOx(hF6T9|9dH=sFVyTs5Ogj_URpKm+i;qV3=Bwf+){`fRyJ5Ppow-TN$S9%_c46 zx^{TK=jbl)CcxRBp4_%}$1T)t+KxYVs0h7i5dkJ1#+R?YY%o|+8!{eJ8!!{bb#p(X zQrE^L6c2esr{$s~jSEbohISOGo+@#wjN4Gg93cq@1D7F*L(8UJD3VQ~z>s{YW6a#< z*v!BGbMIBIkjEW6&VrU6n+?q7C<+fdP~@q?3Cx48(EmD6Os0jZ1Nm zYDwJc13r=Y>x0%Ly*j4%#LEu1wNwibZDu|&SS~!s3Z5`c1hWnnG7O>_)VA!xcg zs!mKCOB`Tm=vOn>1{Qi8Zy*q9<82{pBDs?dS5IuYO?QK|`^nI5G=?9Pyqmi_oPmmQ zl_#0!#v-a~TTTFxz&Ly;U_wt*L#&=20@{RTg9Ek2CbiaR9)BPsd)2WEGfW8CJ+;lH zIyRijWj}=3Gr?eucaJr_K!tSNyHARv$qVkzxZtsGpDy&l^e z-B@vb)TkO!sjgd38w>+R2)>7R6)E)Td+FeFHEvwB6_Ym3_gs8jWDPGc7RVd;xkg{!Zcm+4s4r4kG3*^ zJ)+efNguqt_V2E>c)cvTrl`ixBs@+}y}VmT@_OB>_(A>y*6_4u%c<9gnEna6L1Xm_ z|3f0?>%&(!0|tR~3g4}ot|j^0xnrL?GBrhW{^6=3dhcI$U6gAz5sXSBq1>9woq*f& zX6$6lc*O#b8l`C^UXdC2WOJQ@E%VEqEGlWo+6p_Ays+;l%KzrI%%1sQRD@{dQiCQS z3s`CoJyem`G9IH+3+L)rl9cfU$vd}QTa&^lSggCd$@XR<1UOowmw=^)KKRuXipJ%w z;2ypo-v~j+V4_-7FXl82dO=?d8oC&O2@@?+i^@r+DLXD7$d*V!R{rZD`+yQD9#aHeMt~VHhV$Bt?nAji?wQLV= zUh_r&MEsJG%AyTnxGXX3c^K^t{V#a@f}sPp*`1vqpq3k=kCV=P#loLtRU8_gDM4w* zNG-Kj%Oh9oX?s)Yi0rHGw;fZH*wk`3)mDslos8>U0v|@sDc)O%EdJ(M@QzubIkB73 zP{B5`(-M`Gln>wEJ3aeKLItyG{RZ!ng69SGn4LSKeaAM96x$5Ii`@Zm$-_IO#nSW!oTZ*qTf3`ZRwPufOAKM z9(FFzgU7rtF%`kY(2R|DGrJ{fS(m0c;Bvbp0YIC!T*nK!DiTs^sw>Dx_88@^7!ve_ zlg69w`6u`)w$%wn`3*Jl1a^dvOUI`#ZZZ$fT5R(`!zIvgE^0N6m}(VRY0wa$&3@6A(NYlb}w^xJA`BC*m=@PQmvn zun7aRs9WIs{FXlJM|J0=tM)xyzAFrz7&_|Q5b*#(#WsxlIzhFvU3xr1DG6bGjjUQC z?Uy>S6J(P(!vJyL*7)L7{O0}rZEM+&bKw=`uq9!p^U+z^@Fhvf*4y8k%3lBtW2F|F zejD2pnPfda+;meY- z3mP;iK?Uo{Pj7Rpf(>v1+?P}$@N?3&z?8z8vrjy{93++M_Ekat2?sa#aGS8w;P972(6aGA-VYS02nGY} zet|MGv#Sdf78BVq!KQkIyXM{-nn}{WqUNM(967*8J7C?y#8%nqBXy#?e7WHXC#TL9 z`BcCat`zD7Pp94*?Gv2)f!zTp?oeMcGM!LjZV?SwDV>;sX{M5J(bd0=0 zpCYzYZTSA!&Ne{g^@%wB#gao8h|)f@*5UtQDdVFXXS{exTKZe$pa_P9bOz`N$a89a zbEd=cr^7_)pQy%Ke3ho>%;l@KpN2O%&6OEVKHYSQi&5QjRF5DWc@&+ zFo*WWJ_(Xw2&zR`7<=(P&}cGn)4{tY9s^;$P?J_W%{N|0o*|9dh;D`xi|(usx5Lj2 zdKfEabjMQSyp;=cGCXp_rx@n^YMx~CDa^%P&EC}Vb4@-hiwhSW%9<@n$l+Z|%)Du> zbl~%Qb)C(vXlLm~)!?AUEmi2G~KCP0#eE8xsS@>6rCoF-) zTH{igXCz7Bj`^1R{BYlXtmx9Vc8}2sVBTD-km{NOLb7U9c$FR{Apyr0hclq@T5S5- z;M6O}S~@{;tEz{b)Rj$j9iWzAr~ca?T!e&ud$sL=mMDS!T;(~j6+ ze|3--4X97#-nYSviEljqlGtpEfTKQW%F_Nf9HpoEBO7gJ49=O5%cmjxiv&> z&C}}##h17LWkKmw>-g*7`~C-?Jgs3KT|;ClHS^o{X@E{nRop3;z4Z5wVc<6?2C5P3_I4U}20HWc(ZP_2cOOjCRmWDW!f zcI~3}Xa0P8S%=&adXoc#=;7K03oN?0B@mkktp~u*8T>3Z(gj&+CxEE1Q{0HKVftmD zou{Cw!C`V0#!R;0kbQHcPjpVuXIhb7|*A&gH<`B+T^%@>tBvAXpf2iu& z$3H!XFR{3J>1M(5du}52=Be$oBcB5bi{!G4lFIi{Clm@#QD*7WN%Vqe^qJ{o%Wi7K zNzXZT58{gVXcmFR6}E#*le}EB>S#A;b$NwKjE);C5qO7R;xbKwL!yMIZg#lxh~)JZ zI2;0v(IKS(?xQ1`$$j^4QoLFCgmC77(v#QWw5`_lE$HguwnmO-lr1CilWdfHgmItY~QyP?&Y?DL% zJtA2zhH5X%J{^FyP#qMGB zIw)_WI9Ve$g0jua%EvB?4jd3gTzP(<7yi-^x%lK6t2qSM2Szkdi6M;i9oyAAcPh2@ znM7)R$bO5+pM}}8;>^6q_BW>1#pgPRs zvt(%*QM=n4H60=gKg(|YV)>%~;h=2jWo@b&;!V9zb?qd=q_RTorWku5fNPwI6c1ON zgBY65A*tDcEAGt-d3b&V4>mx?ie~=VfDiYd1@$!luUCe>BDLhO9GtCLki90nZDrav zUO}-V2*x{4Ccjv* ze=Fsl?DI;SxQzHXtdV0)RTSK)T{IPtp_yl=4&oMofutjEmkJ)9Bvig=do<{#v ze~c%b+f9yl%(iNHSN1_r!n&|hq%Vw!XTS3gpu;Wr-Md4CeI0<3HkiG_ZXbT0&ob0($EllCb*?V>T}Mq1dEIpFr{}EM7dLpuN8)Ob#f#gPY*5 zKA!Cn8Bd(uc*y5iD<3rHSya+)H1EW)qETgl2pU;toGmZC?3|z`erL|n_+WeMy%ZB= zlj#*VC;mK6z+LR{r|h%m1$3l7Mnf_cMVIYkbEVSb&K8Y3iKXt9%xuW4qM$u{^7ZXL zRL#6(s*k=szk6666o-@n14EC&MO0X;i{RYgcENWI%7GsQKO8*xR`6Cv2_N{y1g}{m z{(_h`(~BKoLKQH4Vd^QfiFiP@zFsuxkJ{}tZ{PMX-F4HxB~2HH1sY#JQ4o{s+m(^p zH2E)q-w;74&i_eNbr|{^kK1rq$o&H444FedLs?Vpo5}jR`n?uuE%`KA`}*w5rTAxD zs^p7NpKV+IJNfz!FcTnB@T#7X4KDW5QY*qqtd1|STh|Fo_9y!&VcV-@vKl1Lo%fCR zYCUq;;MLGp4*6!dh@&HdbA!5;Kl9_>>NOTuL}PRUa;S5<7ST|=bw`qq1)dUI{Tf*G zpHvnUt~EKBL2Y0z+A};4Iqz)zu`KyTV+<`~Vb*UdxvXcLU)>JP@b)U^@@{Q|64O7S z;otC_<*+Cz4yK-^BpFGD`MtZ@o3pgvNrM+A%jH5|Pf=Zbe|~UP6vh+E<>AS2Wx}xy za{t6nWd)SXD?rgZl%Kx}`Ms+G6Drdx69QKaukh<#%AKnao!Mnj*{58&{{|J-l;Fop z{o)nP z8O`9uP`j0er&&YncL#s=E&a-cA;tK!hSbf04&t{M>-!}AkE`F3wj5;GQdAWfoxnf5 zaM3n}V(>pDwn7k5IM*r^G@b;PQF2M)GIk~FRhcnCFU$7yS@^qm;Xb>?yVIAn&$udJ ze)uQ)D33>FPIDbX&zvDdx^hSq6e(kFswL6m!=HXplq(KoDWd)vSd~pwh08;A$RulG zQyLaYxu+Bi=7#s(Yt_j11L6RwPj>&Nq4tY6(OkJmgm~df`i9APS0OtNIdHqXbRYWN zQfDbdei^I6?{`X_;|sBG%+k=GAuP{6VILOk9gn2HhWNx%+qEO42ZzSb;!mRCa|5U| zu;BuM=b8y^Go`iMr zJVxVQJ>7ict6N!Cx!L3vB02q3fPYVEahr1ui!)h9mX7a${JiIF-<|o>k4^*9*OGi#pswFdL%8~iY1nQPpJO}&e zU?yCj2Y}o)wL~W~=x|7}jB3e2%40 z0j1MsM^aW+)$~zaCTVQgm^6@NY-}9x8Bn4HC@8k3IL>Fx)wANTg2z(JBf|J1#g>G<<)`C;V|sj<`XZw9=aeG|TZjiSFtOA5sid1FW&k%w)-OODso zN?;o>B2R}LNy!rzEuo$}x=v%arm-os7OBlVCdrO%% z9_s11!^_*)&^9BkC$@Vsq}Q?J(pk8@_f}h+2m##SE&B*0uwM!uG_Bj;fAon-QW9av z;CLvtjQy>O^9k3sD(GuNjx|-*?rqt~TB4`qj_myh#;LR|OMLRw6I9j(1VMs^Jad-=kjmFZrfp zRn{@x3ngZqH~;iY`Y%6$|Dnr&`9lvKcb#ZGUNy@l#VgMZNGQ1>mp4?05K@x{6J!;2 zzim32Haow0L32Ujbf_?;1iI?lEm*|T!>cEHMDrGWuW=3XxZj-60~#Ua2^sj^psdLs zOSOQJ;$uP%&%c^rS5&EtR#Qy&ym)d50v>USe7%-dygMVt-6%&8Z6v?s(T=-xW*!bK4&ebgriXIy{fZi+K31s-rzKVkOn5VdqW$uO+j3y_kZJ)gZS7c zCugyWOh6=q-Olx-7(2Hbn|eAnvqx9_S(cRTj{LdK|Fsh#An1S4bUm?|Ly_3(x!B^W z;?Gjt-`pS;KIP*#i^QVblbbHmR;({$26|3rj|OjbjgAZqj*5f@xdy(85^csm`B%jU zVfhP(EyDm+W%x;N{0*PdiQ!yXtaQV0C0t7{Yg{NC6jLQJ`6--RdWpLGX7<-c-qJ5h z?slBTA%PDy%Sg-4rXt95tiURU@w7AMXC)U+Pj3AWuYaJo;bpEYjb<>e`&miz)WHyhhjPmZE)$KlQT2xe~ z$*%5MTKOIomhQ0LNWI^9kW+_T$JngZ)(o}pHF0;x9*!T$cm+I0r;*Z(%AbR$~)tLWW9u?4H{Ywn1?oH;=s0!Y^&A%?p1&qR1B+RZ9>mPnz zXDIJXgWX_VbriqfN4z8C5hg`UerP7mNI2FvlUrR?aTl+zG8%yKR_%N8P{-9#0^pA` zcoV|bDF-33gAm|mTFJvkU0{V9g^LwbcGdik%*b#0JSDL%27Ip5QC()U5^H@)@4?<# zd}`#v=;)I~_2sdiCqrd6F&FTyhPV#oqZH@OvIcd*N>p zprLKA%cXbIBi43Yngeq_zc4bp+h!GVF)jM#uch<8L|B*89hyRzX7>^r!o9`1As4)_x!*|9iF=YLIb zWpRVH<1s$WV*Yi4$2uNf+2#Aybm z02H~LDrWpn%sGz{oPvvOov?1W&|Tw-(}3YaL9rX0Q3)F#?7Ydyfn&B3C-LJd(lXf6 zNSIg9k?!-6`j(6-Wc2$Xqii{%zf)5l%@hiA!09=ls|GPn0iODll7p%Obz15yaA#Bk zC_qAs;Lmnu{hy^NOsYx9%aN^!XV7PdA0xioB+I*ar>;6ddP{ywnk0kHANeMw;BUmZ zSS#pTMt0^4o`ZKHZn0_NwVghdYJ3~)J9_g?|?+4|RPbfhYz7v&M%)z@OsqtJW68^(d4x=6mzR?#X`>>Oj zuU^mtp1Y_fzmhl@?&NofV7UPcO~EX>qS7lqsN`vvvc#cL*mSjeo6G%s5gNjHQWPeL z5^Bwh5eQw>FYN5b#%!E+D$J_m){?4Ykr>Y5ByP1Djrju$BTqNdVU}T{y8uBjm^Xz7 zBRpuH3`)a{o4~2jds1-tuoy=1cvV_=e)lIzPZ4hAlrNDTe+mR}flkmZNQ7p`8Ip;g z350?#ylPF1h?zEPhj|^`B^x!nDEc0BhKQP%xHoa&j{D<(QeLt}7v0Cc;SlCqk* z3oe&?xk2IX{w(E#un2G1naIxL{7X*%^PZt^3tn5vr`$fB8&EJxqIDDDl3g^?KjaRx z$mZAiZD|kdu;KSLFz>B+7kq>&XHXHHKP!1YnNL2d2z4})Dhc`Pwc12l@trLd9*+N1 z1>1gql9{pjPBAU9_WKXWB&mv47r^$6kSuI@X?WugHW=RYZQ}>=%G8D%w93J4{i+IXkT3(buFn= ztU#p9dzXDd)F0lf{?mM7CeSUV$@rLARaL_cgvQLof5Q5Aq6o+8xjk9#jd{_66UVtHJ>zfsbXf?@dYt1E zJb1>Z7GqjMu=u{#@WSzO(3_%Nm7wg*5znf7ut{{^8_OXJ*G3&eTwm^H7mJxx-k$+# zyNdsdGpp|30JI+hq~?D%6RcuNnJU(E$ni$At^{uXU$>jfU0~wwjy^A2M|9SD41 zeSm8=bH62fGXBAL%y;`Q@7s5I|Nq(Eoj1h!C@oalc( zHJF0_Pr2hnBLz@T+>XmaRx{_GCLKn(sgH7K-jC36!lG41$gn0}jmlP@{Ar8SjUb7p zdd90~Co@UtsR1U0eiw9Ft47d`L#>)HafIA?U}Q31Ja%-A*yLmeWl z6_5pd|H=rc8$W&A_f*4o7jZpUE^bU>z8!unqc-DwG32ZuiTtbGGF;k*$(G1CH|6Oy$4+qO9*D zUh7-;5Hj%d9{_Z^HQf@kn2(KK8DmLT8kTxqEPwMR>!jzJTS2@qD$R_Xj zMcm=#>Ey~ShIp;#UVIYYi@>2o=spE^mDMmT>D_3tAlAm&37== zhVItIjVN%XvN?`B;@T#hzZ0qzc(xt&Z72ABE0N`MgD%^$IVB~W?987I#Vcpd)E@zI zPE4mj8Gk5K=pH@Ko01)KdAPV3%t`JJayWvzoqyA2PHot*9!1||MNPvVr)JWI+EO_j zg}3}$TIyoC^71H0n0$X?CBVu$`d{+3wOuIHO&sikcWtdeP(|E6%_LU6MA_^uEnBgC z)OKd0YVs_6vkv+7BTOTCrLC$ifF&UwH!O%zW1(`-M%C}O=lg_TDk3b zGP%4g_Nw5x_&8qTQb&mqIBkredXxI{X=wsSb{Q<-+JPKDt@=_jo`a78^x4vn&IM!%!NZidkuBPAKWedNvPHUEfkqqzI(;sL|Y+AcZ?(G*`u}Ynu zxO_zqM*7dJ;?IkhJ?PFp&topUT6SoC7Iz}hmX@3vCFRJ41XxZlo|>~>$-fqMwHj5z zYy0YJA3z7H?n|p92MtW=OR}NHh9w%bPR`X`(Q-F|PB>Ml6TlgHEFbhWIxJs^uy11M z+tbLJW@1fC-|%zb&8>Y0=Js7DI^OD<%27?X6Kkq~o)K_SG(IwQ-BE0|zlwfsi;pm>JXcMG1^SJRU=_L**)##`{_ zcy*-Ml1{p2Ap#RkU4ND}E|pB{&tdcEd96^OKm!j*U$=x3qKLb4abTwQw^VeBToAgtxwFV~O{j`CJ(ubY^V520PgFo~NIG z3V)m@THldl)MBu2cm87loIH8lT;w(9UmSB_SX{W_{)r|ZnTU$p1MBI(lgvCAcMQOtwVRu{-F3SdkI#`z!Ev}l6Dm3qx;RCO5t_0#``z7;YmsKq;T4HV36t`wg z+@_zNmVc5y_a=zA;sC6))C4ZEGkHF@-;GWS|GO7Vh={6%Br54Us)f&%&XTGK`}SuA zZ}1aA43K6~b=Lmw=YK7(CLmKo1|H0q_PiuI?71(1U+adtgJ^{j;eR_Rp`Q;XI9%F0(y1fP*AL&_-#E!qduHV_1oQfi==kZ)DMrq@s7uT~B$x_3rP3{mW% zU}pw(W_a4-71E&PRxfdtJ{`N2#Acyqj6u>|>$%XH_a<}yez{BWddqjh>mvCbs`#e( z^@YnJYre=Ahg6?`t=h$}oS)0cGU=H`*OzwE{w_3*{#;uB69Auei)skb?F*mJFVG=bm(P-qBo2e41pt$jnIj)W5Vg z`+5`4&-P(ZCQ}^oNRZ77W4OF_9M#qP3)4Bv;Fb`MW2z7jwu`G^*=IbOFe{%BH6vYU zjv~wD#UsIo8y|$>dG@S_*(0NrW&ZC*qalOa19P@omP1)bG<3TTV8l7v%f8L# zvGkk&aqSO-5-|M%AI&c2ELJo`L;SGvmKg%x6!x*juZN1;<>4+)Y%*(9HD*mX_;G2^ z$jGLFk#}cSktllxM+{V{dBE_pfDYgf<)nd%Kj(G)O{EN-CvqIPYuEpTG*S;S6X%fGFp0c_x5!yhULO$*06w!d@{wN4{3m_OhXJm3mjFO?JtMsiA4uU0m z5~!~B=&B(jrIfp3s;5)aRmCh|JP;Z@B(UWAy*7-rnk_3p9sCY$H}@IV_R(X7ydM`} zh{N4bNu-i5Q$Ni^&hZa@L+ciQL>y`%0*(Y{uZ04jKq@F{K{oH-s}33{_bG<$Rm0nZ zwrepc0OKM*xH39B#Q#g=g{;=ht@~`=Ke((5-mZ}B){GdrnFIjsFaV81Nm3(yBRfN2 z*9(ZO<+s%CalMT(4PDJkea5ZoKI4&_r0Z$+lZpUE+C&1|5Xba1j%|yle@N|nJo!|Q zr%k$VdBoWpSR!sSYvTeqk~&!QFs@cj43JO7UN&Fhz=eP2|1E|6RS_7YipW3TXK|0H z^-EP4*+;}whBbDse^l3>@0VUTKwzk$RtSN-ap6Iq&oCai>il=SZ9WW&n0>S&OKssu zktJ-Dxnh}qH{_e>tp_YQ4{gj@)Hk!R1@YZamQWc1lbPBwKb_HdV8jK0nMQbuFXhM{ zu2RL$LwOTf znL312vwXT;#z;(dJ$wESrstn+M3Rl#NDIOyVaMcDm~?1Nq8z-u z4fEk)*bOFj__ou2TJ+IO-j{oUb04Fw?>=_kKcK{>UFoBw`M{Y0j0_yzg~gH|ulC=~ zg%(`zzxrc!hT&tetclwyf;WR8Z^)o z+NjTQ`Y@KI@Gme7b`4++<|FiZ0SztQ>8%R=K8N7%(u99xTZXSqdCDg#o)3E3xEWnM zLu=V|1fcxj1etA+O#z z(Uv*fgR3U^wkZlG;2LKyII=*+T^Ky7og%%3w{z_H6-Y`(_LcSOgR9r?_m-4`_86u| z#*#gxE6c|v=yH{J<7vl>#c5e>56;h`xx0yz1W|3t4bB9&tg!oX32r=k$I`T{V)5~` z@!7c8rgY(OVS;Z}A~R7$e?1x&rU%->7RJ0$M@)S9FcG1C6O%wekaD0#9QE=Xy(c~s zURmv<6bwYVqZmmhbChypLL`(ZjDW&CpIW`C431Z>jR}oa?1Qie@otD%?7@Q!J`2|2 z6GC_d!DFtYGz0;dnbO?0BIVyYnS&6vP}#`BWUe*9h=x6C)_WUPxMbayg&vbhnZ**@KUEWOQq0Ezh&O#+zqb2bBCaR_0@+xe?+aN zt`+!-#5wPHeDNNY1}#PBDTboHBSh>-F*8)e5~d%*<2}ntDR;?sF=hk(JNyWqWp>7x zz@j1yfJ|8wQUCw0|E15{tqr{JTncDU739an#;~uCR2lR%Y!&=t(r9@>)}0I5z}@p= zr0O2JGR!fy$JJKZ8ZO|epfl6SN3F57+kRyG+-}d0ZQ8Z#W~q0* zK*+EZ&sfcOP`JR%v5d#k`Itr^K^TYkvz@oBLE6%!HtPxvlZzn&lNS6Z!PNI&=a8jIvlSg*4cIWfwhUGwJcYQ)~DU?(<5QH*SP z*%V5{@Co@}FUnJ-Y9r=q(H=9WQSUJ(;W#;7(|>`A=|(PGS7o)XP7D{0dCCU@%lvop zSk>Hho>(+?C?Y5vRYEq1tYN*bi9o84Zzmpe21$J+K<#uS9TIW)6BeUw#Ov?tjG4}C zM^pUBq`Q6nEXqqKRpRA_NM};KmQhwTn zmftSo(@N_2oZGO@&XGHB;Z`w`L&Nu-S$G%jkU-alLfV_Px&*1JZr#mGtveJa|bSL z2Ro)vqkRG^3X(nA#N0L+?4B$#CKI5755JJM<`=^3zaVC}v?TDzRrK9Lu5|Wnu9SI; z>lo7Y%{>2+l#CY^;IkVR&E9s(tyueQj=B=SF3@uF!egfLj)Vz4m_PUyr76!_@BO87 z2=L8oHw@=hrMKK?W@L&tVG}IfY@%6Ee=r_~GhumC0nQ7S*-ZWdo29;=-cpr!ynA^i z1dOZy;;qk-UuvCw_fj_)VodG`1kIhB*MYz$1_JZeya++E^TQQ#i=sV!3SS1ra9|I` zbZ6QFATZ$EFd>%FSzk<_%eTX60xtRZSp&+uG@PUlpRZ^Gu8*^hh_bR_A>t`ht3NTB zw@s{9yE$oq?Jv*d!gcERXMbv+^JFj2Swtz!m9FD39$v=d)%Q%&L;d~FInC7Lyt3!V zaJBB!HKL)>TT))VDdO&{tAXs_SeGgkrrYgy9-F;W*JSv}uvs}fLo`pROxhV&X^=C$ zP@uavjKlbcPlr7f*7{*%$3j>bP-<7Re8E9pM~<80&_9-7Q8{`B>_m84i(gy^#|>#j z=oyWoV2cJBZsnn))DEnm;@lnClvy!_uUi6m%(E!jJH)x_Lu4Q#{!e30EdjYi45l&Z zM2t`vFeDJJUVQAdBSs(u`Cp7^;~c#6M`TmG4f(wnpYQ%Rg+;O`#O3&Eh?823o=WP1R+dim>IK4HaI1V=EVf-}Ouj&CA;!WM@4 za5wfl`x7btsL0WAe^25KGIul&P0t=pM9+zYVmb^=o7-RUep3@Gz5Gvwddud(@O&Hx zW|A`Ph`GgbBcYZGKLV0yj1uuSjzBTY&RV2>5_%M!YlYI{ zrR1ee5z--JcwL(--QpF@hJl4sI!>9hh~{ad3fx77UT0F}w0`RmWcPXpHS z+&04CF1>=o%sOGnL5H_hc>g?0t;31iBAj{Nwqc1)l@9r|AftKN9@}vGHqD`n%+wgY zcu139!%?WmamSK=5TNh!4|fuG~NB@RmIAQd5R|NgO^(ZEhfyV&aSX=F+NYb3v~`FSfE@fzs~>4z} z8v<4Lyj>oT4$?&u%Ijz*LWCa!eYkeYZqiN>Rs+koJu}lWp@KSm085PH-O0wc7SH7Q z+a5uWC?#)Z@oVW2`vo~5`DA-Bs)}9;*6dwwckRiF%nnuE*_d^a|LKbq`I$5SYTn@m zg?bL)v4>Ql*&iQ4dtCPAdo_M}{EJx|Q-1a}$bWw=dTVq%;4?paHHRf#Gmkpq@PDnC zI6KW35l95;|L$7qnxBgx;_bv0c>I$ryc^D^jg!(Uo4tEARGt~F#9A|AC~u?(Y5w|) z-F&oVQ3(S=c>8ugKYgBuxq?xV6lCpDMrGE+wUQ@Kh#b_5m-fl_=0adZcaz|TMAUAa z^I{$pL^OXK1%6S5>Mm-nzEp6+H%CW-f0POgZ_O`z zhQeN-o!5lr&l0V_mssMM$#&sVRb z9_7~*>QXBrhL|ZJL`9*GE-jeqaijoM05~Rt8iPL4lg9hg3HZcEXFNS8yVg-1j0)N+ zcs?DkDy72d>>$POfo=#yOL1njsmrw+G8*5XVq8nJM**CwwwYYXn9DHG>G3!S=Pym< zLtQpWmn%UP{Zlr$i(P_Jpg)U72GxTjKV93uKifw(=Zv`Dv`_&=YZ-gRz8%*mA6XIP zFj+}fU2O8T#n?!5PhH_@y%-O^sR=S4Gn*$6WZ?&?)e$K^CZ_uB1Y44`;ZVS#)?w4WJc7M9=o( zchWb#W4%@?Gmw6=?n`HIOW3EGm6LPB+`el_f!Lm$*90;|t()klyIfJVXw|HYruZl2 z(O@ZlyiT7~lCUA`E{i0TBxwo#HDSJ(mx==)TEPRD@S?mG+g9{!0m0o-MBey1dSFB2 z1SexF4oipwIy1t)js1Yk=jy{VnLg#^bZFk06Co^^<~pu`n}S-m%VG5pKZ0X11)=pnLjDlI_6NG%X`ARARoyKPJY4a zO3YfLL_&kmb?e^eaig-+n%N%3%{!tQ2jMG;13_KgaaqffBn@|KM{i|VWd|!YyZJB_ z37SPYuJ5X>N}4)`0-c6#d}+C9SJMtX*^U!PV6fnhXA2l$xK<`k(!|hSKGKAwsjdKg$}i zwxUZ(%Oq^AAEc=}K+`KbPGMxYV|et7Jw?0Z0MqZ^SM>o#?Yy>f8UwyBMsO*i!i$7_ z$re)s5eKmDzXJW5{9nTT0p6@=Z1!dYwD z=8aPYog`EXFTXWMV4h_GeuwiESug()unM#`S;VraiAMazx`#XqaZeX@-S|*E>C}b? z&G9-UUy{%pj=+G`yh(`M0qR{Ku*CI^~f|Ct{CJ^!Hell#C#{KSFUPttxZZg^PB zfXn>FLj&t6uU%9SCk^(~=&76FS~{zd#*JNNGfusBl1u2R!QOnFvM~;=CH5$+@{rcu z_WU(*$)VF3itNj?-@e+f4!R$(1+JqqZ+b;BsB!l-@c*u#&J&)l`5?>~-nx~$C(?P8 z*o%*5V3TL04-A$M4!R#)IxjCT1<>lI!lNv)crt!gcMEFEx*+brImo(aokbv>J;lhFSnC)C~iup`<*ZM)5@@76kf1{=*c@$?k*Qk zXSiF!5R291@Pv%Lv?jKTo5tH&0eeV z^`NtP<~eMO7v3H3!{CuRBAr%oUzH2=Et)>odH~fODw6UVs@38!+0sd+eswiI7NZL$ zVobLH!#CeNbpGU@S-42`~MeepOr(>`N8yyy`~qt{fIpeMM>R z6)6iBMr6BBKTI;@Uu(I>f+MutmrhP_b*J7T*+z8|Go)=6UXT(H4XH8GLTt8AlX-QK zZG=lt^WMob$BN1sGG?}+$%)MiBIBKefB;LB(R z5IO!u;A_sfOUEf(IMww#p}PSDa~g?E^GwtM5ZYMk04?k z?N>XkX~N&|Sgl-6GzLs+7q7k;nGi2NYEt9p+DH4eC$jo`1xItf6u3+t$GYYPwZy4u z`kB5q`L|Si6~q41xVxxKtXzf{{0Za)7p$D={z7TCw3|NpJsklnQ&;v4F+mCyq2qF@xK(t5H=`+B+a{bgsXm?Fm^rZYJ`WO>zNF0mI^Il9Y3BU>>LN^kWQBGUzIm$i@dd$#EzR{QU5sb(!4QK4}? z5aIgOdbh)@hLeOwse|;?9UvN>9SK~8p00OI+Mn^$D4+uMN3rd?KNDM9?&En1uJ_kq zati^|S+4!Pjg+Kku(g9iU`v4JI&AXV8b_FUJEHLy>u{_&MN~V=YYkZ2fm|&2(scXk zRPUdr0DLug7dyzRJ{=TAfTE!bY8L>aZyM*y91Hui0X?Z1sNCY8N9Ns;(xmTZw_`Rl z-ra^=V;{wHX;@rFX5(g;R-+^<$fu;2w;L6s8XRnoK-r^A;b!EeswTKNB~#4F$k{g1@7$2)`FyO_Df-cIi$+2f<>_ET9FWciO_w5c!ie(e*p&rF6u=g#5t&qR$Fj_uGgNYT)C6ax5g-2)CGrz(?<>G5SZ=H>`c`fgtlX6)RI) zdjC|3KVT=_9q{O&G-C~|XR^gOPe23)_k9|YA)bXHWF z5BQYuzj35mPblQ&&u^*fynGQ}2*Hr`jJ82(>c!futT)*&&yM*?SEHF*u#CP{R)qga zqntUei}5ezojq-X;i%ecy0UbR7|wMTmNAnQ7jG}(wf)=b6IBLkW6BRxK-t&5kjQ)X zau$+mv>02|KR)TPoXS*ZDmZq<^$i@g)A?u-??u^*)oN!oxO%JJuV!+lHQKe(FhSF` z!=!pQpA&DrnKl&FIzsU8wq9(SYW25Y+A$2(=a%AYKM*=;#Kw~?>E`RE7(lgMzV`F# z1T3O|0zvv6I}bTA)!r!)MDra7zu1ZK`u#q|!9icjsD3*t@QhoIFs+Tk^(Jr(qmSmL z$bElbVf(py&iSt+<)fdTTB0<`# zKo52kGh#=r9WLj>RfgM5)Bsm6`bIKN#mDfHZHnpC44q#Wc6XU_JF2p1z@9HLnU!IZ zWVIWY^2Wf*h9;rvaVsb)q(J%KxVdnT2JJEhl6inWx)?apMaTMH>EExs>eIj1(0GSz}-LLt$ZqQP6D~aR4^Yp zVh4G0sYb$y1FRdXvcuD7t}8%u=XQo5zdi00d308lioGO}? znI`TBrics%Ufrw8Kx#rUVPqD^!URsT3DEqLqcIM@d_VwS#09i|A0Qc0_|B2f1|@S7 zqO)lt7-(%?-FkNmPPzS4mFo1YiO?szMReK&OtY;l!jggV>Gkqmh?x0LphXW4a|JNJ zP>r_JD1BTo(ad6Pma^uT)1{ieQK?1Qn5x|=>IVvEua5Nv&I|bHJ+{-_@~qqE`Wup~ z`e5&UWjzC|(9n3b0{lSI$O_>-1Jo?(!-ZDJB!gXzFI+>)s`J; zkK~j=AU}=joBRC6oqVdE2>R0BmVig}Sx zkv`)va}!I75Z~MMq8;!1I}(UH z-K@G(fLA0p^{tmT@?JqPr?ODkGdiVBZ<9rI?&|(!CqyjoQD?M>$L8uOFCQ6lw-bIO;IwEHmp;?t;v z;+;ZW<$Wa-d{?HmM5N8w#9W5&pr1!zjyegE#~^0mcyxfX>t=W{;LadyzR#Jv&zKfA-#RE{g9F_I z#?pRTmmj3*v{&W&lx4;F(B|TjW2KQz&{72A#y=3Yy?Ug~`mY7e)405+pfdy5H%mbL zUa;^sqVp|gIEMu2_LlwY$7E@x%|))yh2Jke!4e8ykICw~W(tmzzjFzIGtb~jA~L7l z^eyw?R_)l>!B`>~eSt3>&dtj>H@@o)F0k7gP6mFZK~$?D;IY)(Zc6hb1dcE<c5A`1CZRpAzBBy%u*FM$UI<`CIkoHS*NGg@A$7L;VrQh9c4b4 z%Dd0x?ZP;1k?=`)?yQ7Q97K#w3c0c!qwc7cIa#Am0Z6ilrC+VTJsJn#H1bjrWnaNa z<9p^oV00^@PUp_yGK5vJ*L0ugYRXDyA~w3f;6+g*t3ND;rv{O?Hun2r=YpCdPdHm4 zCQ4!YGO%`_0&5@!Oy<2#Uu5GT!l%Di8q4Ql-Mg2!B2Vh*qhmf^1ZZ~s`te7tuY3o8 z4~u{A+Ou=(Vms3a$2L@48%>SXm>*oA4a&A2741i-=ZL~mP&gKeqPz10b-?;jW`K}q&f z^irEV%+A`kA@11FXi$#0Oj>A4=ITN$!ko?yb((7WJiaEh`)LX$i{%^kZ^Ez!Uu00z z2>H7sbXR(XxQ8XnCa8nIpAOH84R$d<4q8hn_}wbVI6K2shQ*coc=c~cK*VV&?@c?7 z*0?XUZ#5HHTkdGn-#(EWn>7tG;?4nsP$0*t*Q7+LMS##tvF_wzE74NMrsI#(8K&tBv9WvV zXN|&7-@YM20?u)H2sIt4!D4u()rSeu-02adF=HxC7k6&X=_dJ|v^T%?L`_EC(-;HS z+!%2u<@G(zam#>1YkQhw-HUgUDv3P89hsS%qZ!;qTCGCzu&WgTVtR;BzfUSKx)@$6 z&OWGyc_D7geOumEo#K8M0X*hX+>TkuX#WyNSAM=&<)UsphW~SqB(XR-q?N^HAL%zd z6KpWCoJzXRNvj})ZGk0>upy6;b>3YBy)!XodS=Q4`;i4^d}8mnFBl3wM3+Kjp!d=# zj*r0pqk~r7$3XV}7v9&aVW$_jZZcePzGP_CdCn3|9);toih0Z^YCx%dsmoot0jw$J zUJ>OpF>Cdfzo#%5g0JS$Z_IH4gt^DtVGK zY^49$VQ~n*WKP0FnG6)L?DK6txpQI#2FXUA4KC8!KMM(g+ER>uaq9$Cq&l4=Z5kW5 z6qojO+4fD*7ltZ7Bl&X$9~KmTbx&e6_1Ft~n^qhUciz!1t}vE~0*x23s}*4Eh@g-W zEe;arfIs%obsV7ki1W||n$P3TbobSw4VhFN<3PYId=oH`D(gWJ)eXe)-d>;TWaouh z+)vIe#P7fy9jqgWmLa&LelkFppZNHq z#qNbL8h0{fkSy`oudetS0LQas`t~_oEc#k+&{0yB#&pb>oYys;b8hPIMN4AJpV+T1 z>)WZlbW7^qxZ@WQTZh?QMp6;_(4vz$P#uQGw7nQ$9wi#<@A=eGvgX_tL1_-?-8IMb zR>m=@pNjCu!N?>CGtE7kU`$?4*}izyav2p20+zfRt9c{R4QqVFhZi-4)Ds^_=u1j~ zjr5>rw&lFR{C&r7vHGj%9C>*m;IpjP4f&@D2yU{eiB0rpr4>15OnF!0?!{QIlow-z2EnV#D&JvSXHwt^q} z7brPXAMPcw8ol3phtBcBX~^TK`_j{&m`3=x&Ex%5=G6@} z6X8^_M=wF5>4DtWs9cpQ#w1C}>X>E;5>$x|VqMntg|h3^TPyT!?KvoCMC1uUQhE&4 zksbjezrZY*!=(jNs>cf>FvCdPIoM|A90C^%WjG+sZe+1H2wZkUD zTnPn2PXSdl0ysOI%#%iqCP(gN1{qbDas!?29RM!jOyf&UwU%M9ZbMZfRMm(_8D~jo z-gwZS$te?eE<7*MpgryReL*{uE*ImflJ60m69-@c$Fuct6IxD!kq+eH6{eC#uA$+m z&i-Ifn&@db?GF0&znX)&H~2DSY(A*5O8-fzi{hE?!BE@_uI6ez5*(*ZCJDgmiZSiB?RWC(dD=XBE zQDkky4xLoLU?c&R=+1NbiAcCO&4dBtvronrb_PXYtE+RplCw0=GlI@l>0}Pkk>2pI zRCn@~KctMnBLA1xGayLpdwvY~bGh4QZ}*0|=ivUe`=0+#z!H1<8<_M@7T!AI&eya# z97y`m_1%^&GiEN;0^mcR#9r^dGEgvAcj0*?VbPX@WW=2nkKv!XCTq}7-l9$UtWkAp zn7Xqxo0@`>2O0`m-Pt-y5fBg?;v5W*2op|{Q$A&0eD#R&vV`%UnTSPhFxB)#ywk%) z9sk99VIH}%Gm974_#|2TvY3tb?gGr-*wu(u@D~Q7Z(_Se!c|SpJwaNrs#8ilEYd`- zGk<78kk)vUc_WdidkSPT&e>;9=WG*CJUCl5Bb z;;;28_PF#%8_%I#`E^9#9Zq@zv1Qp`E#{`OL0c&JinVF7r1w>Fc@HQXUj9ri)lv5j3fW^rw=H58{lOaI={1>(s664rnT&TfWu^A>q0 zt|mM^P4)~xYr&-PN{iuN(RGvj*^NgPId3HN$WFoP*G&B|f@EdL{1nRzrKK?GH09}EC%MW-86)w)Ed>}OLnVm($8Bh#4xh29+|()!^#%U=<=sb zP-N2_v-EU?W0an)IG^TxBQI0}H@mzCJ?G7Q@#2ouf;%BAHkzGCuqa>AVFHDu5Q^)_bBo~B4i}@{#S}mN+ws&m(@p$YW);DXnE8k(ffrRV zwmv}DPiehz%MQuRwDWy6e7*QS{5Pl|mErwRx+L^)_<{%)w!h#t+-*L3b3e~`@+iMR zD~gJro8c!5|J#ani1AcYx&`sb>3P{oVSScyOnopTCEK{z)0h=EB^5+-xwnywKD0eL z*Vi{T9ZQk&LINarbwB-p9km|PvoKy}>HK0gD8VD5$s}|G{F0;5CZCUR)1YBQ*vo^+E6YG;WDT zq4Olg^p{P9>%s^`usdxOvV#iKPF3S)Q%SFUW@n*FGghSJl`WEv>rzREdNr1Ze%x7bXx>Z7=i6zv6^lPG%!B8?2Zjp}@8@G% z)Nq2;{Id$p5K1*LJP93X{`aK8JNzEVfs|%HI~2GHt(dti;yQnc=1A6%(5}?XJqsU| z^v1@{>P!65*Y?jt`l7@Z8xV!;bDh!YuNfZscm9n zo&vMc(@D5z%>Y~UoP#3jK5aWhJsh9JJ`5~*f;%a=+}Y(_@_%PT97Np7d7&o-kpE1I zV~w)_E9Zf2ObI3ZuvL22N4v!!LhzE;@usu)vWyHwjB1*zbOur$m#~Ij_>_x7`G*@@zQNQgsNGEvxNV$+TJyTzh~B zI1F)*!G@>Sz>I9`pLmaa)gki%K|~@%=WAftWY4xlRb_RBkq1B^PqfENVPC!nLKksJ zHg!`}by{}$VU&4lwtaEb0X+E;Fn~k8W>b0{6De4JM-3u}lQ4xy6)~sNu!T(?LI)Ey zh)^X_CsVbERV`vilQj)nHE|zFygNC$Il4N(zBw;rGe_=&O3uSf-v6N(kE}cowOo(A zd>6zRmdrdB)m)a{d>-VOjyksLS-*J+J3RO4_>J>Se8- z`JsD23-`93KLbt-`Qo}ygH8?m=JvM(PY(U+=GXrH`TOzn_17UYQp_;&xC&R&^fC0X zQioE_GPauby3PN!6X)~Csb$B;9WZ$B^0&Ra^KVB_m%oRPm!GGvw?7zyp%5mzk|OIi z1MQ|GFF(Y8NR1k6ee^aZ0?;5F^`HQFDMU>^Yv}#$~{qy7N!^_j#gUEu6 z*#wlChMal`q?-R#X#a0MPz8b^O?4#xPk^5U|0&bPQ!TTs{s|>wA{HR#PsFkr}$eKkho4Gr< z{BO|Ri73F3|1U7aqKinX{a5IrQNNsaYvad}Kb?Gb`~TI$v9~akIniBJBfZ&Ngq)Ux zp%9z=a7+A!K6y&+BTE>mofCB&L57rw9v@~zWINsF3KSb>?ZdaU?LbW6Jm4w!P|%gr zNT>?wTkwFn&YwM+WArN$XfxHp?p!l_wG7dqcm^bF6~ybSbUu+*cRH~e99hBAcQZMn z@jJ%(#m@)P&7+MUBMwtBd~wJRmPGqs6XE`h!Bc;0d`=~1P=FXoA0v)DJc56Hr0?H_xHXIgq+KBf{8hE_3Dxeu-ceLB$1{=p}Gs9A@ z^Ml4VY9H}SsL7CN>DM*l2j4=lVXj?8dMsCZF|H9}vwQ4VjGTXhQvVY=nQh&g7s;wP zYSGgsWXCXv<+lAX3gx~;Yl3>OR-a^Kj0UewQud-XMk+U~4{knQ6=&aAbaXj}mk9P- zpHKe@Ju*qIESKU*xT0HU%A>{8Qx`U_`^HjUCEhQ_-oP7dt|9cYPsVuf7u8@f?X|Rz zk*s95rT0Bp)IW~lbxbB&kf->09yeQtN63)n(v{r!OtrAhciR!}1W|B|FhG9Z9P(rS zLo}I`;K60#K|4T#cu@wcm;=&+9AV&Uv~0Xvg%dxg_P!E*GgfKYX1LJJc+BD-HQdun zRNcwnvNq$7my}^duV6{*HeB*j)T{9LRn<1pVeI9G;^Omz8G?R{6`a#k~xYpx|2w2A7@rTBxMj=a-Y^@TO;H-8xu}^1Z!P1;-ot(e@To(NV7!>l;$h zAnz0dAU1wdpxM)t`PDUfC~``vVM!V3HqVXe*Pf%&OwSssB!!-CDUq_c!7GW*aOhjV zPmpVvmnc$eG6MT|XMn-_{Mttyo}TWpX%uUkz~)PB?(;jae8LbbicQnXkQ|o-s+TAW z7JU>91uw^r12aih5XlTm^lj^QaStN?>Rv3i2%R{{r$U!zBvz=_DOrEYb=_GKbZTmh z&$8Evs|Im`6CzXyxiZ8NlJGKS8zYSiP?RSMg|BCaKkMpM5iTY;O6%E>&y5jmH6Kr* z_Dau{$@JeC`~xqACb7zb!Dk+9Hg9mwYmcW(4=P4uiS$JVwYPDP+|R2ONvH;SjU($8 z4fu=sVPY&+o5c>)UOf@tzUCs12LbWI8H$7rgN;b})YkzKta5^``lQ)kN`SE1Tk<2kFw_J%Xu{26}zzM9$0?p#kcbd&O2(T zF!yxP;ASu?LQPLNx5`F?-oIEm83wHX%StDvoZd~?#DMNaIUYbREId^0}` zO(oMQDT=gyFTi%+;ZeBmSG;x~erVYPMI2SM!%(VTY(bNW1`S`#IVZG}@Yb+KIdV(Y zf7MHuQ}trz_y8IwH|xao^S%L|BNiMubCB-FJ|_>kchz9WtQ&JdworbfZPi44h8iW; zaxQi9hYi|lD0O71*e1F!A~XtW-Z8%Cuo2kS1cii_>)sU*JE1qKL_ZyPaLx$V;(rsZAhd&5gE_ zJ;?~mvIhibOwU(E1JnI_oKG09&azg$c+AN9fN|^aP(-NVDyCYxB6)zi52 z#J^Ki>*+COb;^Ofr!Vszzv2%R=^r+5<>koUt^T?&g?yU912-H$T0^?RnJzF(f8PYP zDlYyXmMf(*)!D;brj@sO+W{)auD#YQp-crY2~K?AwfOV>_+_cZdXZIL=&A!PKlqk} zP(o~$<}H`45l$ni{#?4vNKMr&rlipC{8C(&srFjUHfG6Jo=A-Ix=xx6MjNH)TtT6o zmp^t*w1PfAzdx*t7j^3B90a67E%B0v?a1<6^p;rT&xNK!X9p|8xU5&KG2at5w%8tK z46BU45sWs8Kx`AHfXx%0C~1uHRr>CgMD<6+4rE<)G}6y|U9=eK`As%1NW@ni*p<7! z@EvV1O@o1n68dGOaHQbkHYn~}P;^~z{037~s6fOD=nB#IkjG@am6$->wv{XcOT`gZ zdu08u`y?{BKkG z!cXFeC7)pfcN^3AlYM)NPxaU=^-_K_EK=4UV=!C*hFyCnv`Ex27_3wH7N}{Vc<=2v#Y8B}?I_z&!YiqVRrbdc~1~?I=!W=k1cxg1Z0y&X9 zV=p0uI7vAiy&wg?StN7~GN0fWCV&`pA45s^DoVdR{kfki6G7+)0QitzkKcZR_Bq)q z@rDwu{5;<+WWPe~lKI-SbrhWBvw)0brH+jwefHFzuze2S;{3f9mBBuf$0-9$TnL>-O4 zf^tpxUcP;h9*t`AvavhgpC3EP+_%pDT(!gI(NUtZ z^KDOOvp#N7v;m1G7{%F|b;bhMN3)%?(Q{mxG>W^A zd~UhU?tI3-=MT^xO@>2?O>^HmOQ!d$t%3AqxPS{io$X*buMgqR8 zc^vtc^o-kbt{~c$$?L<-%n*Sm9E;L5nP zQ{xxM?q}K}C4fz%Iboo$JLCt$V_z3QJ`VoSBdhlsGRBc3*~whD7T2r2l@ahAZd8Kh zU_HZ6hkI>TG@$Fj69QyzX zx4K=tS0k0mm*Eu;MZ&I2j}@=%r+0M>2trdP1{;2=c+Q9n@B?QVaQ@}8jJ84OLpt6e zcdU*7PA#)WXV&oHbF9+6VCSiKX!EC(p1<(7EAl&1)mgw zJ@4pq%NlSbhWdiq!O|Fl8sedvwtI>a=f|;ESJ&EqjK|jVJ`YoY1=zaUno*Y;AGhN>T3ryy9KHrJQDtrO#jcQ%*ICy`Qu{w-7_gld&4GpRMWqDUSzI1vX zo*e+Q)D@DQUN9x&IRMi!TBRP3Bf>OAyv3Z-aD)`psOQp z&AanPbYn9)G5fK((t-AT69AvA)ssCA5>t&X6YZMW}f=m!a>`Kk@mGvuCoVn5psDfS< zZB2sFJ_j|9wfy_DgRlASm=!HN_m9}+R@yyTfannT#E^$XH?-PUdArdR!dI~Dc(EII z<;Ux)?r84&{D?el!e4Qwe8DT{9wD@P0JW2B$(ITjVknOi2p9YzjYY~JKWWAj9`Ko& zwYleplqCtKB7EhKOBLZ42;yc_0A905cUe8H;l|s_3(eXy6}Om`i|z;GMV|%R%+MDj z)o&e0-w7g1f=ws>TzM9Nd145W6`X~vE_8CxWL_7|dvRS!z5ezn70OFHk^>y_YyXGM zc;aqtm%AMXMUOPT-BA*CoeZ1&?H1hfY(6}4SX$P?>xwPLA+@Np2boUq0fWPdYj%Fk zLw6rK)lt7L$e8O)x@zVmu9fWhUx6=ZQuchp^!TtnsBDVO(YZ{s^4G$RoND;Vj-)pv zHSv&Q&PAEcJ|%XE4f3hjND~@36N!Z+1Z&` zW^RJOrDgddQ53xJcI+@%%r%wxk$TERln~bf4{O6gxa#I}B44t$l#Eew0g+}QqBmAf87QV; zkcmPxm)Z6F)K?<^WF0LaM6WWMs)VCAb6V>yltsT|;^-nSJjq}W7`4I+um3VG!t2Q5 zec%RhkZqy(a-QgpAS=r?>l7$d4<+*Gl0#64uvLX(!WOu7T`8naJz@?Y6ye!*&`9nB zSjmw)uGhle!p7QwHv`R%nn*CLMVUCb239SWsff?dVRAu1Q(-U-r<{8Pm3^50vj8-* zmyeq=p?0WD#q-26swKP!Jnm_r^X5=xE6A7~CK^@x(TM6bO&;0VoE)ktg#9k!np*+s zMfl5dSFw#y0i)gX@{bbgDx1xZ|APLkqkQ@ybW1+UCddWK`xxk2dQRN(iW7_Fi5m`> z|6;{?B7s6TCW+=-b0N(e**A3{Jqf)-JP`X(zJk)48_JdVikDO;Bv1VF zgN0pOa1~4xh89a}^Y>@gZ0ip|JV%>$O7%wTG?swq*juBFHlq^Z+I{?;`RgftP=ryc zK%CVc7a+I6eY6EtTQs<@5FlUaYAfpGfGZAb$C@c@(5iHmUh&xJS8TB8s(E{G7Au;X z^1Tm~j7(KRLuS6|2L+tg8WnZliSFmbJ>$4t4uB zR|71UYEF{X%K_T*Dxoe=)y2;B{JG}t;gKU>2SlJHht)U54KqnPKA4WDZ?y})-|ME_ z9qDiEntVf^I@9RrdN?p<*y>Ir@9cSp6`WLt;`Y>~Dd7#Vz~Y`lq3b}c=X&i%R5E8q z@~=`ZkqyiC)txxn2_|nR1Eq^iEy)lbm!2)NSROLL;sl`*@<>~kbEe^%7Ce@TFJ~CY z_1A$?aP(KYSgy%i;eaYT5@e#ORgBE+@~AJDKxAciTT&*?cD#-iwj;R(QF8|XLxR+- zYFbCYJ0a|QA>bDWBYGLYfT`T(S^&M+%OdZXi>JU{=DNbdJ2fk0GgHbYLFK_~(2!Zo z*PTn`*DrA=@$)ilT%FwliVUrjugU_Qbu8oCo@QMNUIwF-cSCf9$Y*l80njm|3en`T z&Rc^7BxuN8vh^J_`h%x-H!5P5&X!Rgj+fJljHSIi9H|J%=7k+RaBJW&`r>hA9dgUd z7nMf`TTrE7fbIZf-aIV{(|I}%To&1Z@=oQXhNNeK5g1e3H#0K0ly}eBKU~l-5kiDC z5J<+^xB>z?4~Nfe|It>4I@g*!l7p?QjDnukUlHeoEc)}+?RRgNnL1YSftzm5cImWe z#;CWN9i|`cYqj3)+4S3^Uw3s|?}jfoZK3taWYdRitQz|}C9XBnvy==oOD`J)?t;K> V=VGRl8m#`%cC;f?eCPlA^&g!Ko?QR{ literal 80328 zcmV)2K+L~)Pew8T0RR910XfJ34FCWD10Ns&0Xb{|O9D**00000000000000000000 z0000#Mn+Uk92y=5U;vp$5eN#3^+bry0s%GxBm9D+l5jTg-ZrK(zC( z)&k7b8<@wMW~G-x)ri{dAn{Kk;T7zdA>cfK5b^e8+5i9l|C^G<81w(2dqF|SSy`1< zZRNI2(V7r+Y*i;IOD`n|o1$uv?Ep+Z24Ky0?9x!<4(+o#fJv(LrSFfF2uu-lihzoM z(py)%a#GQq@fBX@E9;X zw6fR3V_0Iz(zgES?l?%=HxrzkMOz%Ipxd8d%G1K<%d@Z`vTD z-!GfII8?+kLWULk_ZM8kGQ#!>A3}9k9!R*;S$|aN-F{LbDiF+3>FmD;Zr$*sf-!a` zC;*PTOOU`Z5ISIU0por8nHLTh%~f;l>e6Tk4jM(UH-G_SU~^FTF&zKIT8*JaQXo?@ zm5=DE*g0my^KR=Qdx)TdD2f{e-N|R_22{`uE>N?aiMF6AwybPuOKYp$Y0FA0ZLG_# zuCZ-g*LB@p)-|qf3R>O`*arxOHu($y5Q%_+bMk@pD66h_*wQdRN!eslb^t=0E$*-u zN%7D+OiJgMG_kJs^&Li1ZGJPfW{>>k!`l@zp5V$d(z9_=Qw9w z55iWA2P1nVku-03(#?N&JIN)vWHWOlkVFs(BrI1B5+Hy=2w^DJM1c^ImM91~6DNmI z#SJcSxUTDVQq+-y=gbB&k$QCu&8vqGwGBRKAio+M zYMvexZfMxQ(4^G-=}${)r8dBJ(BF2#HYah=$pQ;@IgW3})lG`_|5m!~5J^uug!16u zx$ylQB{ku~Dpsh8k~b&j&5W9q2a^*Gf+3pQ-8LeBqXyQE%0b&lv@xtaLdBj9SZDRD zJ{udXJS)&)V!u6mRv#64{_S`YKrb+~7#?B(o=0`Xe=))wUkmvn%R(4qk{9w!-Z;B2 zh0wmDk4=~2|MzeE)mOd#TGjnXR?V2X0(3&t!*sNVGlw9#l~(=m3HTZhTN49TCH(e( zsoH;4r*~C<@~tWchu1x%m~86>N4e9B86d33jbyxjoUDZx8(<5}>`(xMf@jQtpkTKp zTY(}w|8|H1hz^sw-KRa1{m1?GOYt;(f>?tup%BuO*|R&tLV$6=j5btK)0Dnv8B5=G zM1oDk)Zt7Wzs!H>^nVK`N^o9CdA%m@m%dN@TAqLFyH*yfnL8RucZL}>BksT;4@Sr$ z2!gGV5SEY?tAHcR*k>3EOl0SM$9csm{~g=OqMtJ(SwsTkNMH!ELp~V$l~V0j{YtHW zRr)H6tI=e$$O-QTdU(RAZtJ!b)&EA1hC<#L0jhfQ)cDhW1bFUjssre76RVlg^J#@Kc&!; z=>hTIa}>l2(fZD>e|`2O>9&~QZ02I7jw@VMsNx`makl?{zC-5v{$ktRx9#qKeON$1 zq*y@E1QIeSljsoF`v1hXd%yQoC~`#Tq(T_X+~)5P*ZO~o+Pi%#p~ziq>7=-49Am~& z|M)+qtCyy3>AGB2ImLt!QW_BYFw_4u^AG^kf#p&{xhHxHg#%FKC}CJX)H|{;PwY1q|bhY+W>7dmnoIsrNYbqMHH#_WkwhXi)(7bNju&&k-sK@m8+L5jn{l z1r!jXzqNOG_kD9;TGbC@v&q-Rv5DYsa+Ml`%_;4paYT;L8;qC8QYH^Jce~Dw;Pc!| z>FOqD)iieIN)k^`5|?iGrswR(^#`vxa&!6AhyUSK-4#tG6I?`8LXPo=x35r`&Q+Z4 zGo`}3_=CK7fdbD=sp!asUZA>$r!2(`XVmJ3 zgWalbMLrywyRfaFKYR5lC?bh)^CNR>XLsB@R!Ma*u%*uSo)Cj87kQU^9aMN1uCf)x zE?Q`!Q7d`7Ud-eFe>dmjZoOJeC*x7IQpo4h@u$cAcG&N>oAqijpN&VuK|dV&_T~BM zVZB;ThrMd0T*}9ykx;&)0Pg_&sSraV7@29Umdg-ah?oWsPZats%qOjAdzdT(} z`(8Ev^>RLog7~i)20AL#PA)lQ(x{YTjAU0TWKyw6DByEgOgfo>$DvUOI1~f~_~7$; zYzi@-%VCr8SQG|@0zQw!W-%Fb8kLC0VJHk*gvjBmeVcVk1&2n)W6?;clf!1x>ojVW zOezrz1w0ZFi-1GCcX4vGYc*<>QXv%y_#76QM1Vm7?2L4jq*xee$Z#M4m(A#z@WkwF z&039IDiI3>EC!8AArtU8ED~VQX;ex%kIA4@DG-1s3;5Nl=2nPhwOZ6NH~p3z*Sa@n z0naV4`#Pw+p67XBtm?pO`0|3(o!%MNe?Q-(iD&#ehyG6LE;a6F4M1Z&nT(3r7NH=X ziUpEB&=4H!0lu6G77m4uHTbeb!cwJ)6hq~J?+_-18b%prZvy>#6~S8+7KX$cb~K{b zx|qX|xPDI2PN~jF5jkSDihY3CCJoQW7^hqQ&}`>=50T^YnPjMYfc!iEV5ydL5f>d% zC2~1cDj;*SKmg34>xo`e+Vn&=5Wm!-KI3Vzw|4G zN8y^yk-O2#p_gR+9k*eDD1;dqn8+IdGlY`EtRv7ImC-jU$W32?YNiGDX6>Oe>K|yD4Zb5 zWnR9l`VFkYSymdl=O9Db@#rSD6zmBj85Wc=W(}>%8c@yVsM&1f!}EBss9ORgOlS!H ziLj6UA%23BfmN}4SLpAaGZ&po$B*RLN9l3d2))PbZGRo?j7E1~!J&+E2$g)nWS&XON>nm`>;i{1R+Kcz=iN&47 zO5=9Hw)MDN*7bUQ<8{2vP+ICONzy%cOZ=2j&?X`_{J;AW1diByI zF^V$RE<~pXoV9xkYGGFFvc6WUI*a=H6_Ao1S%5Ad<3MrnMSHhhx$X@YsHHWZU}pgz z#d}I)jyx`#Dn4T<$2<)Yj$$49tl zDpo(5X#v;q-D9pXB^UZ4lP8&^;&aW4f;6tH!aZ!rOlN?@tmp0gwUpy~a&A>*nBm*p z_*3pTIk}%PA4P7XS$TCX&wXR9(=erD1G0Xy^zZjtyBrIsU(K1_t@Usyw|F$I7O8 zw{fv;d4$l$Wwp92hEuw}P=XHxQCTsg^nqA^&6fS(<(vR0C&C0vVjcr_Zoobv?TRv&@t5A9_Mt|mUiWaCch zDqfu{{YaGF__42Q-(4l|LST9=x!`h;{}DZp(TQj_7fyzcwgx1tdd2fjLi zfbp~0)H%`R{J{LlXVYzYDCaQu)6LjA7EGW{Uo3p9Nu%D2c%CdG{IIT4Y;;TC)=#HP z@e!+~A?2@moY_LeuD!LV+{ZjGTgg{u@ubuUe&>(muk(RKG^VoP+HM(Uelwks$5)c! z7kszm?up?LqXBy!pv1Wn4bFNECEit(BWG&8Bq;tti<>a;r5zfOj0=Pm9AxHn(tYrHmag-%m%Cp~B~<+X*MR)4g5pZf1+5Lh@> zxAW@znh(DgxpzGHKTi1V9lO%G-++&*$(vH(v|?Hxq&$tv@3;R3hQ=VpOeHN=$HQbc zrzzfX3|ou~(RMkXcURdJw1|YRTWsUZNpH_y8}l(_^es5rslvp`x4OC(NXz+hu^nZ( zpMRK3ks14Q7m@Kpb~DzACC`1kp62$ARb4W3w2^kL{e6uC<$;iVy4k6nM{- z=zG8(DMoUp9*)w>Mb}BV^{mY&fvVT@Ev;V8XUZ~hf&xLGVHIl8Zqv9K8nk9~BXQcC zwU!@a9dl#yV`i$nDfRL7aJUqCYm7JiP&-BRc|aff;dskzI52};a$;NU)2+Ed+lWL=?ybf`q`{aaP2Vv-u$iqzY%HrOZ-wu zlpj6=Zz7aK_8=ViHQQ8r1!E>K|LPg{I5YO{t8h!pXrA9)y`6+|!tATaXSRU79Ev>K zIhWr~c2Ke@${)jv_xV?e7cO4tZa85J5JHM2qKv_8(ZV*GNKHyq(nIwj_(+XejyUDC zN>|K-0TFF+X)u0BbQ(Af$lILE4ebJ}j9=MJhB^0`?4^bMWF#8jPb;3C6~bQuE?j>` z@_d+A(yW!#e`>6m|wXkmRe%h}oNTozJ2P$Se=rlgx6qL#)1gRmI^y}P^J;kDEf zh)O%AY>d@xsi|s&Jz2p!u}jlV+TK(dP#ZhNUXjKrTKBg?C?}9cs$#0SQFwxlvn0}7oWC-Ob4Shu#ZaWaT#|W-?Mpt!&ooqL8mK<=8UN& zhWz{0--BT!VA6HegDifWgr$HNRd8|IinH(*R z-5ecg3TiIjRzQlvXeotx=ddHRUZ*YTPAKwWG>>;MhZt5R_*w6qD9L6^Y{+LbJ`%kl zWeeD0UBz?XZ_oLk)R*9^E>D>&@;US@=9gvSyX~_Fl7;#5tz%CHj+NQ9mV_7Ugd3v| zY1x*!NeG%emKe#+lcH1ZwY{k&wkjic=f0UEOWIk!Y-p9#n#+5JcSmEgZ^a-U3{yB9 z{r0er!YD)Sa27Vf2K}KA!on)FoQ4-x9-e!&$m3h~*@V0w&6@Q+zP+b1%)_GYx)odc zyi%{;-B3NkB8b?1jtr;jBbtxV%+uP$NmsbXUU`>Gt60cya?d!lC#KSl!2q8mv&4(( zg(rIsbe83SupX-MDQS6w!_FO-1ZkS{aSPOnuC#G(-s(x$P@+nNo55W;6#fH;MG&*%Lo zMZ+yDQz*bMrT&Tr)w*7kC<7cIsEN=*Y!aY1w{3;$o7-^`G&gSn=bJ~NwA|A3RKC)a zPn%fb?BcT|Ikji_R%k{ou=5|*E`9gY-vL(q=A&|_8ltTuEe-sScxX4;*MKgMboo$f zDuU@~u`*Qoj|?=$_qfwNJt|MZ5Qy|uD-S$YA`YAUd5bsAt8@Nw=<(NmCjZg7neP;9 zg>1}ZNb0um=iA zL1T)h)4;SUP(Cu!c{a~u5m4+jEF5)5+*Qkg3QqNEV(I<&C4(jNdxII{{?wQ#K6oh- zHrgfoo+mvlQ=*?%2`mmbr1!+XC>GpxlIv!E#4|s)fbUAsJn`60`)awX1D=R2p;R54}$iv!U$F@h@ z*K&pJWo5|EWM9`au~LB~2iDIU7vrEB$@3SvTxleiA1>s*SuA!}OO|+I^PD65-)NMT zN^g;^W!=J{t5nxE_qWTX<&C|&i?xw2X?XwE?xK2f4@;`oEmgoFI`@^qEq#1uBmOlY z%@(_2lk#+bZ==P?(yCjFDK(j{Bp>D#h13pB&!_(8%}?IDNZ9tih)h2E9Z<%eJI;ME z`oqHF63;olQd~YkA?X$^94nS~#tt77WNmUZ76Psa^QF+HagCSv_k&(uxqdzFS)V<- zaSimH@v6YJ)f+d`dG?ntuiq4?py#^qnF*)m{I|*+YGNg=_{cXzb23*_$R@sZLz5=2 zydn&fqiytjGD8%&M%Yk|4Vcg;gqp5ZL8CS?X2p>p4&?}HA}pxva!t~PW+EM?Bj&_b z%jdSOXoYibK|EI20=OIdQJaEwXHXcWNKJ#9|L=PwwFKkC8-zN@X;?Q?b01(4RL9!! ze`ai<YUkmt9mNVCsAlT5#nI`25x}-Q%MPJ>Vy9=un)yW;$YQ)O5x5vnFCUPvVdz z$FR?i-^Kt=UxhY6-QBy(1$P3_SBk5BNm8lN<)`NFE88e)kSwN;hq@;HV+SAQp4++mxCh=Ig)2=do5mz#DK zupAVDSrW~c#WUwUQ?&{+_ph{$O)@vBV%q4u-k!;B^R|Bs4I35)%$d{t3aKwiW}XPE zMl^ZIig<>>1lS^skToF%UYL=TGonGr8I_R$*Ml6PGT~ILEKXQ%uHK|L#~)c)yb!yv z-K5IIt(u^b%^De6)9s1RVg4gVpGZqC^6j#0p5W=@bjdu)7F0H}{R85kO7>_x&$hXCr0oet34q48B967MzP+F$YyZy|9>pyDUeHb(386jfD6UrSVd)~*&> z&4A;sdoF?m^8%n`Rb|9Q7Ot2I8ynSR3n!SHiK?ny0r+>jo%%d5|G@)6d0yK}hqO$~ zwKruG4=99eZ0HeJLG9abG<$04lUU_OO(Dy$$Tb7%1V$b$8P9aurEjbzaOIK0*xy_3 zMT3<+>Y*?H4l5k?TTP6%kf<;RTT&kc1P1jrZ#^KS zJ`yk?SU2rROx$FDoC_H&Vg#u%&?GfIdUqQ11lZ0}n9k7H`Dk#`Zd4w%2qIBcaP#tz zp5D%m?k;}z*6nj=Zr+#!{j_5!-x&7W(^F_Ot|s}yWl%q2D=+pWV__adq2GgFHEC9$ zFntw=+PBAKOwcBnw)E5BiF)LhEFIP7qI9UW+frBPZHpC+7EVGk(D;Ub1M{uaD#*&n zPJzlj{cTP23Zqp`^yFOIW7{eOvfrmR^v+aIG+AcghUEDGhXd%>*pOv>r>B|fl~+=_ z1;!=X#$5J2Mb~l~ci$;X$0M3d5gz5iup0dt398XR26sQ&0U^pk96Qsxt|h9j>uJJf zn99g!ib^&T`r&&fAGCl&uSe)hgcZ?AQ{eE*C)e5~i`(wMg#ppgr2fU@XP$Ninj@kj zF=CEsw<2jobU$ah!+yWKz{90`+}*S*jVH;?RQ|7I;BF+Ygw(j0BfwGsIyO24T z!07cBSvQC<@*YbL_E3(~EC`|(m3ziBr2r{AWH%FESd8L{>nNj-I?yHZta60$1S5E2 zmDyF0NbLGk?#4Z8DaPkddK0i@sdmbmF~aCuKJ@I%`YT>Jb4xwIoHRi56I>UIz*C4) zELJ7#;vJuQ1W0na8nn!F-ir2u+Vqr^6qs+v=l|&J>xBijgdzMM`jM zKUP2STrInhrd&+~$~9?MrxA_x78mJnw{uKQI2_{wq=PaC6~1BemmA)Tx)2PF53#hz z^K8kUi5Nz^ZYjmdC*oM{(-K77QthVRX&YBMf1Q?WoPGX_aG5erhclCphNy#lBr}vI zTk{q>x+Bsy!3bxE6i~KE%(S#0iGD@Ex68Tm#navsb?Uq_m})4$;1LQP*x$7HxdRhi zwriTGKap_t8E{f*p#FW@!Q|iz^)2Bh5GP@OXs(;6Xu7TgZ>%@XU!7yHk9Dpa!qDTN zs4?B{i~SrXWSrrcgw&ur-9|oZh)!d4?e8x(aMTZVUNY<-dA5Ro!z<6GwtKV|^1d(n z?{Wj~Rg>QRnim`@&~G!CU5lDxJ$aTqqg&73|J^=$-s=5|Jbl)B;1}eD5_#qv>HgAs z>H>M@vbA>BTGfX`a1qjh;F)@SixD%(Zo&zHtoz|A3Rw~cRt?N)K59w=_#mvD(Y@@q zKytuq4I`pyg;8cIAJbi@g$7caiNqPH;$dbw+Z#9xhBwzr?n>>(T*n~r_^>ta2;51L zcbgXCIBAy5oQq|>+beulrNQ5@mwI<2VGTC1aR(8%g{=O(n2*4GA?zeDUxNeYGr7rp z8FlFZ33CoKQmD^UcDJIjOyKwn#fQWwJLevBk{-TXHP!dGFoaa8pPxLl#cQ^KmAnxXY#KJ_p z(s9*5^g)E!9ixE!{lfGZV(AV6q=M5>p;iwfM)|wcMwdN5huU*UI_2rf)FPgEFw9`6Hg@+n6vhi^}~mCR9WdqC;Ctv3Mm|B&v0e=v(!4|6_MucbmrV|4Q5i?L^jc(&ntJ3qO$?A638MjGswwy@mwRAY? zvsq-=*>v{vbe^`~Y+qmS=BS`ue$WUMuRaKQ5geim<*Me5f9PO2^`nJ^i(xReFf9(x zXqRUCCNMih%5-))gTKmW^!D~gvi|CRecq~REuMT%t>0gHg%3c!(GT3twcg3Rw#?1u zX6`+27n(Hg!*}}3&A>{=t|L6cr&o1OWfo6 zo5BkAQK;<4KaEzvc%A-PA+B4T0+7~Nk9x#X+_^`mwvCHlk-P)!$@t#APYDv}CdOwS zTYkT6QP|7w-M^nCX_vK|;;gMceSBN%8t?R_w0m0RoxCM(&@>0-xy6#A{~Wela&!;ALpiIj^2!yX-yHF1WWZ=73?bR%G;`t^Gcun61Zb$B;`H@uZx_tce6c8$ zfYqNK#fEm69(mLi%s5w`jg3#3DI0FU%bEex%Z4C`VhPZdTN?iIB(r~Kd$edhBF=7& zHz@* z^*65X-r3B1(NHP8n?AgL>zMZaUgK5?sDtqWzoVk?(O)P|e6&WC<>viBto@SjuuIBF zBNMaAd6pv~+Tk$WL}K7#&OA*)j}LRb!KN42$Jj$LOk-C>$y9G}fbTJ+U)rauRlW~g zr@e#eh!No$>$?P}%CsG9iw_tvf-D76!Kqpq*prppKR$<1YNTO*9UkQ~F^Yzi?NNRI zqtor@n2?bAisMl)gJs;4SO0+ZF5g0=nzn6y_>QP>|7^+IhO$*s-UJgo#&(#6^1AK8 zltYdaLSjr3&aNEBxu-B&2!2@^&z5KlR}*Sij0OUq_<#wo$@d7~HN3Tz+q+BCF{v5f zaf|vFo`N;~C#2D9`Fn;W)yj#LoEh{W`|5k;{D=XyAAcL!rnbh7hDm+A2m1UbI5eJt z8oI4fZmlY3LDM;lvWaFbo3)=og|16t&&lz)_aL`53S>`+Pixms*Vz`p>A2A%geMiw z)5?t6<5|$DmA2UgtD$bUnMSx$0GxTnRxRq`=;$D6vj6=5z1}X7o;ASYX~!x9BfCZ6 zD}6C{_QS|%{0I>6Io!-uLvxdaL=`Sv4&INUh(L_5>9rUb+A32v%08)m^YT3xFyCdb zKY;Nj=@&W-L;OBXi6a(1I<_=oEJu`=%>JW&<8<5a-X6P@Mi`ZdAk~q$>||mYk3t;Y zQT`(-SE}RXN=<(azNk;WD3vFwHD0bvRjQ&|n=F-6_K-C{NO77Kb}C$87e4Fyk?C|! zv49&4V49M#7GsGn%vN=zHUn!oj6*Eq;2$O!6-lbai6*tZwDHZ;ycpV$YT+@NkAuY@ zhuo9VD;r-AP{(Zpp}E6slIZQ%Pinz8`9lvaL}O~Z-*cQd3(lOIl_kPLQK%?`Uq9de zC!$pj28b%jWp)N6np^>eCe$E|8`8h2QWHXB1qjoQ7r-mDzAc%ZLs4u;t8lCq-Pav9<8Ie@5^!S66l6( zuwX}&fx-Mn%Qv>R)^zvQM$+u9CuEcID(M&Y$$Er$+L(v!9=ztT zsHDc2jJfew8Y4jj3WCL^n-CO;P@4pu7GWtizGIs7PVRvE9{4wO|3CGMTDgQ~qj&^C zC*NJxD^)1=1#X{93w>-(fo~CTi#`djp(%RW_HnWC1Y3qET*~Jd&@Pvytb5pe zGKT}W9Y8)%%Y*k?zX5(}i|}`XwZ?vBqM{IG_#uw({nH%(>Q%O zErj=NsUR_lRM*o6EElR)Db-+r1lwvxAk{X=`w67(LVHB970b}m8UMZEuTP+A8{A^q zt`$*gPa765YWV&D?VptIkr$q5#^CW4EVH3V<1-SEMKtvq>2REA9Cy2JB)F66;uKC- zi$|lwq3Q9Hmd#R{o~zI1J`oGgpWLYI z(PP?)7dm%5nyvilxNTpImE@)&bte*RkyQvlqyjJQrFf`?UKNa=t)uN;#ifPn1&c^q zC#H~1KtG$mXW^+he*93!n8QubPQ+a(zv(|-I8r{2ogDO7WV{!0+!B`V4?djr?Cje2-ftsy&Z;yzoBJO{ zuNwgowk`_~K={$@=@WFrDQQJ&chy;d^0(!X6wiJQXs>2Tm%Msz@mx+yR9Uph@#V*4 z+uvN}VM^K5JHun8W9_~cOA}3M`btuUXI&gYk>Iin92!p5wbJkSW6uurUIfM$w8VYkzlI%NZ~jmZpf(>SSkh7KJH;P_;Y zS7fvf1bZ=>pt%YK5;GXauN3NZ&$#Q(zW`kkm$|jOJ6WOpicLpKXue-PzH(L#ps zoIOit*T8^=qlxNqHlJ6jJD(auQz1DC7DGW@IE*V=A1 z3_5F*7T9^ZT%<2NdpHX(!eH@|$T8NBcO*s$vXH#EVk|jwS-dQa7)n+}Mg+1cyT}X2 zM2H#ji6{1XB@rp*EFZ3POc+$v#xiNj;Rw$=;wCmWZSifk8hMY@bMO&oIKm#DP%Tco zIJWwh5@qpCaU9^SjdQrpj0lA|NGKU=LOHV>-a2|^UbF_;O_m)Zc-Z*S9Ri+8iW7}h zY|5o`E;!xl6;vQc&6bZi?AIQL1p$PJ7?caN*oHg_zIkw6G*hyfQL1>k?=_1o#L;Xu zm9tf73M@!u)$FBkR#_`yVxptnng+8rJWjKrBU1QM4e-^UF-&J_EV&Uc4>cuTHka)4 z&UC!1PD|+tf?s^`v^B%yxy}@?E+PnPPzXS<@OtmrC;y2VI35_zIB0#QA&Rhm;@H$& zWgXO7XI+f-b(ZR&hoS&Y3S&=s1H3(VuYAORv95QUybF-a2697< zUw0V()8LM$+5iJI2UQ%+MSU2h_OU;<^?m#1o5i=+j8ht51&G2KE3KH8nWE=>#mIQj z`|{O1aj7|>r5(#LJZ0`?g=4&)1)5d5Obrc1Tc+UtONg_7}1Mw1oh zp7^5^UL!fG;z+6y_BaaS0>ovhJVt{uw3z2UVRz*z)28JFAo@q53r(OIq#91vD=ete z_<;aAt!$wngL;dwRd>Wh!#73L^m%LpXgsxe)f7f)d|;;9+z>Xf2<{)JKUI}0%SaEox8H9i}P<7YGK*O#9q)Ti?42~M* z1rpjd$v@)L)EiTS@3qW5CJLEc*${nL2g8Hnf|P%urc1s&u62!j_>&oF9h%CdWy3F= z(IyV_-2UY|4Km!90#wUclF;Z{XM(xc6sI^a+zx}0mKrvA*(y^R{F=JQ?5EkFItIo7*DDw(Ot?BLV)#plQ10!h)( z-G|L4mVBr}lsvF5owO#UcCR{E!S1fl!f3N|Rsm@p2#cECySFKni#U$)K8x;LlKr9` z$$c>!>kZh|j0A&gV6l-{0O**+_pqeX^unS}I|}Vm9?SE@WL5fN#n90RXM61mFTayw zd3U^jA73&v3+N#W4*v#;MBATv1-s6X>m*D_yp&X56n^=VGii-ru{<)*Ocjk4K+)wz zbFaP1V4B;rsVTM&6evS{xC4rtyGMql=vc8EqE5=~;*@n8?*~*|(K)DT4%G-JWr2zN z_qxYPA>)bO;jsIV4aGh0wN^?d?pnJ_#xSxdD63Ark@<0QXG|)B=WyQ$G8+b2?exGg zM&+HmigU9zwHuGUiF3Cd(wU}Sq=g^dhB}qI#;`T15N=}8vYbM?w!ri#UdKVziM7%E z-qg8|RA#O#W*js%=lYHAZY-OY)rOPU`r%}=lhV&Ns7MknN@Qa{Lm72?HF z$7l*@uTsqRFhzn|An`N=oT4bQOiV~P=;^3*FPx+)5rVfyP`)bzA49i@rgW)KTGc^H zbR-a?CC~3AFgij3?)4k(@1$!3z<3lZN~QM4a4g|jn9Yjj*XQ4Lo_zX z%cN9UBq-|*Ho=m^$-^jBDXJX$MyYL1c9?rlzqQmyzDOFRu54*%<^MRPz*dMX#mHzN zHRT~G(XuXBRr{FhP^cz#{iY#sZqZTE>sBNDBCbf4#<-k{>#-+uA^4j(5q4}PEvOh+ z)nRj`CnysfJKNGTko7!4>cXd#nF)+6^F2z+R7|uKuJdxWS}Gf?Fh!`$+I;IoI>$C>2$kgwTuiVxxA>|AP276PQ!6>*qfO&LBmn zLI`*snmkLxqI;yG3-s{~b@(M1;w%QwG@@|XT<8vRV?N&9Vv9xjSbjid(-5P$uduIp zFMl{!S7JqLL9{PJWUYc7zGcxWj0MC_INb{jwn>nCG=c`|+ahI0fhm*Y?IU_xDK-!2 zB}-6~$1u_tv$dPF+pd_xP0Ojx)pXNIDdz;ozdv^h>z+u3tW)2> zqGudOui|e{blL)O&;3m0*4D8@crDWdo*yBM_2sGx^e|dL#K^Zp{;M5Y9>7H!b*P8d z=_$*=wiSF1pxa4EQ;`>u)#@oZP;p+^KD``hzJ^AeqyfWBt0f+!E}Uok88p957h{N+wUX4AcXJhjGjUW9RrGd)a!xO z>lLBnI6hJpXK2}34CPqviKId~Vj>=k#^i)j;Th6^xMK7*dDkO_QLqh2#o1gpn_b@ImvYOvKeU=|L7y63jWVQxL10HBYYKuQFdI096>Ac=RqjHm*Y+G8(JaEx+#8!^P}SPhVdj73lMnZpl>qj=25~sLukldYs5* zXs?K9np)i^z6ZC0s9S82c9xgdp%fRdu_`hy+<;h1&+7|Dg~xS#HH)GtM3TKZf_~Uzz@fliTVS zxo6YS&7b}Ztj;$tJULaf%e{$GmyihGiLRB#b^?fjz7Zii_CI}^ie=@dGJ1<*K-zld z(()<|x=F&mQ9!n@=N9Q0PiZ0j1UrR(5K1U2E$y*1yu;u0268m|F_)4!#4a2#q=NK7?cqg6aNYu@Bt%mih4 zS$g_?a`f38u>}AzK+eC_w$`NO%wuuQQj*p3lA)!W>lZj7dVn|6#tWDN4Bm(KH46vh z$ts^^* z!QgzssUgzv*mm+_cp9sahk{qQnPH8mRu)0Cek)#T?uThmU6&|%z1{QII6bdUomj5L zCz|-gKEcAqGu{;T!l9IM4=>~!HHp)U_54xBy2@GVNq$h^)jUHZ)`fZap2xx!Gw1-}TqPC# zduoL33+r6m(isZ8&y_h(ApLD+kYTji49iMMcZ6c^fr?^3j2@`vm2fo-RV|ka*&p?h zIHGrMS7?LhD3Nb4q1pMl^(CJmJ`Mfy?V#Hbpn!FMQ1+ORDI@0@Lam*=CIHSy4Pe+p z8Hk1rMs!Fj1fn~#QM?IDp;nZXU&N}2RT0zN%q`Q@oF>BP^1_T|b}Y0@3|alqCAE|C z3$v-l>aGXo^jUpev9k!s|1R6YctRDb4JAmN6U%FwY9jCY^uL{hJA8HL#argSlzr85Ox*1>H>GYz>Osb zgcD((c36jtg|qZqH)P}8*?I`N&%RJ!2uAgheg4~pm{YYI+P)O&-(8QQy`npg!J5lE-Nv2KD$ z8b%9Q5J}RhoUWlEKN&>gRXNR=qEi1FxG&UKfj)1$(4F~*b&e^w%(*T@lo*4_d*ZUh z)VRqV4YbGa6>HCn|G49TZr}L+l(MmxlwCPn1A536Y!|VeihJZhCAglsr}6w; zBhMe2RkP~}wR`T^6=0%#y_}H0*1onb%I1xe{E-@~9q>nzUtf?^^Eo(?sAO6moY>Ycq z^Qoh6+jb@ObA{&Kc#2e*#>$LjqLZA7bX#esOMgUXY-evHOU~%?V61GfBIy~`bc$KJ zgRdTW`<;_BkAK-ogGFFo zSCh17S7O4nuJhMm;UF_-LunmoUsS&9FEi42H+Piw<=5CwV-($`fRHbzrKDwiG%O*R z@{ybCqum0V9B}K$_-5KJv*B;S(#c2E5C(c5{709lnDsc<%P}nG#G3P`E^!t)+`Hj8j(-^%j4DEPggV<4k61M0v&B;b(!Hg zQ_?D)HO@f;3EAsO4_U+g!2CgEap`^IyE|WY#mn@_iGzqb#bK_InWcqiPBPRz;306d ztBs3Xe`2<7#$bseebJwg!UCQ#yv8jK&$N&>p7kgj?WIo?$PnuSN5kBzv$rI6>Isbo zw#`zNAp>VQP+?ZoV2G9Q=MqXD$3wJ!z_@gUB5H~SKZ5wtR-CE&vkc6dD<{;_xABP6 zYwMjnNltH@do@#9p2M%f35P~v370H0O;VK-Bo%=z&rM0b7U@E>rx z$}SJVl(#=#APF*LN0(`$N*-k)QfuZ8nLPa--W`f2uT!=p6R4(}3e{RGm@AAPnDeNB zQMzK@V7kp!*eXqxSjP82ooSuQHUT4T>_=wEi)?d%j*x)=OpN0YkfK0afiE=eydn!9 zi;EdlE$RA_ycKnUOv`&z9ise|?keY31+-x^V;j^`YX64VsXSA>y5gV9jmeG~jW3Z0 z{EV+zgBf>YW%bSS2Ijuq-}Z&7(C~`ZRZ_;PT%*uhnQWg*Uv3KNXp$NY`P+t(i8{;F zOm`kN2M@8gV1SPhXGU?oZRzFqYmb8ljBL8^>(6=YmyzhqN1aK=_NYYo?Y+9tNNPrNVoBv-%(u6Fmt%y1z-w6=>+oGd zHI~ckM(=2g-+NREWz2Z;zK!zkc)2a~Box-fN#_!Ik*k1Z?QmhpJWMT;B=dPi2YY$8 z;M#p(K|UpmvY;6Xs=}H{My;ogLPVlMKP^fV{kM>2Jw6Q={nV(a5A(wM`C7*RH=W6KX z;km?Oyjsl1<%<=NfLtBE)2y7yl@{Exc5L_1v7B1G1tq(bUh9s_>VTzMrPbt=Ai_Jw zC!L9L(NsAFCLY#oKz6!|B=%iDT~6~9?g^&r1z8bCG@W`P`C8@Zb4fFO{C9|v=cD-; zzq5+!nHN~nye+cqN@dJEo19?my}eLk4LP-1-#XR)@LZ2YU~1SMv5JkmByZaor zBU8N8qWFW&qg9R@izDOIj>K32r$i&VEk!FybXIrVI}u+Yql;s8Y(?&9t8s67Gk!x` zu8WURug_4;y~x~(%F#Qv%7`~-rEQrOcAf2$`jB;llnica)=`o&bV$BA_1_v$pAvH#uLqp|b;hh=I$80F=Y^(2q(1Yvc2DD4oO&9O!NX|w_9VlyH6=+=# zshbb(`p!&?ec7zrtTE1JGMs(N@*k1AP-c7Oq@~|j^Fg3?<#hSZ%<$YDIFhq6#52mo zn>iGnXMj1_kYD9W1)3!f%{(bDHOdE{vc=MxR!`KHm>yu1j-w3OEEt!Mo=-A|6h!+k z=C-AE0ikhZNPR_uXb%(qDr-VmixahV{H>ffK1J|jftz)C|9z%+S0gMP7kQfRtU}*I z?l3r8ff&MvdnrQh;sw%hbkLp~`e*hNa?s0e(SI--D_0aHIIU?PKO*CJ$x)Rd%$k{T z466xlKebdbYl=#Qb?L~1`*Iu(y@>}j%-5-HpMu+Y75nB*y&d&gmS{&bg{^HolMU!H z+_>Kg`!gATX7>hn+btj2?Ym+1_|xyC7vA{!YtMd+S{-;A`Og3CX|dG@FHykcFRIuJ zA+sDoS*8vxYqK-M{X2Ka_R60)Ls?3}ytQrFb(Jjv*D15 z{S+`CfftN53^ao&41UXFh>L+iX^SWidO-z`%kau=dT8oPjTvmm7o$<7?eg~I<&y1D zK0;dH$b`JIykxWBQ-eg{ytW>jgGgQ_OqcxOEL21%3Vbxpp&MsSlSn1Ta$*6TBmNTwC zC87-$g(d-tC7C#eH<>lX{i-#cW#-Z$$@(!PxE+b2d1OhiR0jfAAUk4RA3d4Ty$sMD zCU4r7Y>Uo{actkj+{qN8A+PQ1`vg35AguLax&kw8FJ#zh2whmW&Kt*JOS7-GoISRb z1zUJ0mvhEaLS1~m{FZ;IdzrKpot~ZT$T1=H@Dog@BwAshV+m6ua z_8IxxEOIza%exy{uG>mtznzd99|9rM+i0zhU2fb#WFZ9Y$J25V0z3;(=kr|Cb%7@n zTABb4an?}R%($XiYc!$0^jAkht!lV)LbbVBs++DMyu23{)(Z_c^*o!&26djwv<|;^ z!VDB>LtyP>KlQ8k>)rL59<0V0-D1A|;25e7iyqR|?G%q6iKENkKKVW2z@hM{kn>9i z)h@|@Ta9gAsT+^gSv?98KWcw@FdVLGZcJ!!5a^1nh8O&^?i=omw@e8PmopFJ3lUG_ z5=q&H71eSSM<@b09KeX1i>p-oD-`uu-Rldw|6(hKdVvg)Q03B8ck%lfbVr2c{* zChOmIukMn+2#NpHW_%+uIb|^OHN(3c4xh~s_dS)%@uNi@dG{S>Fxz+NnO(T8!J((i zrbJ^iP3*{o+}nW_fqE2>hBNwNl6*=)w#aWG*a&^_tm6dK_KBIXE1jKrySc19qJL!j z72s0g4ofXp_g@+IAuO#iZh%cWy= z2=oQ{DXSG#`~2oWV+Z4~Zr><$X(PCz6vcxS!*dyUcy3&qEFhuKVqUNrl6!r=mLZD& zyhwK_iUA9Tv9Hw8FGsn4%TtCtJnb$`cZ}SL7XR{KM`$I}Bl3lU>g`!HEjnpC$|_#O zo+h-h@Yae?ZA{c(S9A*nZv++-ebQ`cOVd_tTASeh>LG3I?pkYHOX9iBngFjUcP)mL z#2_Jpx7rkzcPUyj^kIr}v&41W_QojPL^tlwl7J7rF^@8Jfc>5(04^UEO|^zF){=mKT%x66TBnB z!&-CaBDmElZjD+3F?LH2+Df!=7^+-(4yOot%3q=1)unj0oQ278;nlveq?wS$iwp;? zR)dfAln~Usw1&Ff2$#<;yY4jf%4ov z0fI(BUS9R z`lj*O$GsY#n%K`A9R&k)%CC0=$a6_)I6`vb0%w6Mx`ZtY7HFJHzSI9PAj{X^^J+>| zJ~(m!3$>k(A-em$58tY$FK^COs+GB>L{{fp<&wUUWNzd$#}?z*y-IASp|gTbV$|r`#CIW z(m%|)nbl#dY`g_bf^S84NJHV)%Zu1qA(ZSnC|iyf@*uW-KJjY}XWkA=)~X+zjznKn zogbKnqC;uRv_^J)unpGdeNU)|Ed`5J?p*#*Y0f_6V~;Bnx483D;cqPO&PW4YB45@P zuMkq+TFmgo+}3XoWyQAIV^3BNdeUFylNN2oV-p!}xIti^*O1$EX^wab9nb{HFor&K z1*rF06?kON&RLsSa2vcuqD+&PQta5R$js&D)3;ZZTKEu1o9^n8UEKj&IhkB^|>d<(_TiBQl1iWc{TD2#A-)91AwN z=GDZ?ZF8jz7PKQ{E@Ao)dY%F|8>h?1myXqjKO#C~EXWi6(O!M|Gy7744AD4t575%6XxIW5XlY;NM-RP{J_{ zeS!RF@lY1@i;SM>;ZPHjJByS@gTVT1p35KgN+{xly4bmPsmO%S{H&Wj-T}9L)nr>) zOUd9n;*|w%E}qzgglFWiwtzlSKXD7dkrRWxYcAC!tu1iE#a8Q_18T+6sKbWNg&`-R&H2rH*zA4(cG|4O7Yw(XUQGi_ zP_;1lNX}DDnl3QFIW}K`K6+9sA(C-sN zE#rR3!=xG{oYrSjJDgglU4GVhT@~9EqUPMI%2=DC#J*%_zybb;Un6M-jq|~4*UAX6 z%$B8DG@wSK)EpHpU%at@da!LzK8oq|3p%wl{6pT6LW3$e1~`{K+w0W!ti2G#x|Kuu zvgt;Onh*xqzV zc~Pm!H2Si`Pm!=|b5u{a9#eZjIIa7I#S5&r_<7Zh^B(m?BX*>n3`o&}F?OrKgQ>~uY3k-od>mTg zqDbwj$E}mO*yfTGKFS^k*+nzR={q%LRF4W=EbX=Wp80ae1xx>LP#3qazkVyjc7Td=UDUVtcpcc^HYOu6d3PG z*PSiS?0n{2kI)wGj~~qu#S@;q9+YltvUuptPdW-z>d-G-0~!hMz1Ee#Mvi~}R>;SV zk>LK%4`$Wq^yedC_krHX?yK?`u*;SDdif#>x_0a;3cggiZ@5Tkr7o1o72iXfwM!b< z=E-Xs)b-`+9ne~{Fz1ffSfV3p@Vu9w_fZ_?5Ku}e4rrhs*M;p$$&PP{u6J~y0=w4E z!Ufo06HShn+#mI}(^^QiPD1TL@C(@S_uADh@fUUL)Uzi^WYf1j32I#b zUf(={_9((@OwV&N&`H`N|4FUZ4Q6>l+HC=GUN00X0{}yQk-6l*#=qzWL^4Fy-7Xf3Ik{9 z5!-YO_KHk4imv@KK*$Ph(XkcLqVXryC0 z<&YV4u;k5rLTDeN8`QH+E+%JUP?)vkgf^nhII=l#3}wxzR#O9MFb!y-W=SKeBpKu< zCRaQ4alHBUa8|`ByOY&O60sH3qeR_?@g)S4?N}GRQDb^k*cgF*3t7oE+!AB}Fe1BU zg>{7yorQO?+%AQTpy)0T@NXeE3mpIn617;vrTT6NRP5@3#pA(hJzWW}oH$r&qCoVp zT8wP&lk1B|`LmCkeYyJkI>PxV%4FQW;zxqdYst<)!Ez)*gRH0YMVHz(uxQQ6aPVVZ zN6^92UM!i_ZSs(I*8c@UdHNX<9RnEzD^bNQk&4y!ShbfT+DbGl&m?*$?BD||0iTw` zE_MS%N`%%esoD>&yxjoIZSQ?-4^NVGut{}$O5Luc_kZf6|2Hh1VkY9ost26x-gYL* zfo9OD5d*oi^Y{NBuS4z*3MGVusEzZ|*`-^$i^{scxtg1nvdinc`EU!neezXRgKqg( zdAVBX4Y=Cop1`5(OXd&rp4b@HljOPBL~E`~ZR^AMKw)gPq8a*&cJY)6%^Vf_%I}}2 zmN%S)+msohX7Vd#$h!TKR?_=oaLWg|9v-GwIu*n}qF8QMBkvR*uEz#Btroz^7aPZS zjY`D&O47=af{$QI3$hBl94+jtb2{vZ(z_gW%r#18lo)qCmC@BfA7NR&ys%k84Qkv8 zmVxU#Kq=093EF|g)zS=0^2(B2r+ zJ*X?=u;>9zjh@);%=hzyaU4J4pt0(vftyQ+g@|Rq`!pMOshMQZt!>k<@5sNqSf&Ps zn2vy2S518fHCb`iV*uZz zYa3SLkPTsbepmS0HU18=Iq(Ga5)Q0A8JDqpNTml|+Qg#hTRsq^>Us$t(#5Pq=~UmY z(OE(QFqwtcs8H zKeWCn&|J-VG55I7z5{-?7c>-|aug~{YC~h?xep^YV?<=Jq+22yN~p0H=MiVYV-yTG z{+SFd`0wMB>f|VGyXJfDqk2sEj5$}Ks55S#l=G0|dyLVywdvn64TZ5Lq*fL~GsF7{ zZanHqa`?lB~;@{-Vo;*=Pm+34t(s;FUa=ltrZ(+xz|G^cZ%NSs(mOF`g*eSDdDi<;uu}nDO#5N+vSAJd;>$|EL3wkwcr7+no>mpMMcuo2_u-sKB}L1&(8n z9+Y(RaZF!&(TvzZBW?-B#&{iq9(w!M+0!>vS9eEeZ_h!YCb;eq<)*Tx9e$1f?Fi*P zNrD6c)?LSAT;t0J43zp1$6{$9;#87HsAcO_@Vjd9Gje5Xr|9%mYCAy| zhr^mzTssZ{rshr^2oXU}t+XPXc9-euB2)znJ}_Ta>W(NpLb$9fjh-Kkxz2qAuHgl5V7J~<}!w6Nc zyO{BA_`BX>66mF4ay4HeDFPwuP&^~xoP}c0TA)KLX&Kqb*KzYKh^Sn4F_oT zu!c)&?!X8xn2uq|^Veh>MfKAbk#aE2sE7At*PHBE^twa4-DQYDK)KHf?9wP9OS%Cq>^$(eJx0aO)C-OBtv=VDkzl+) z^mR(Lp@@v{H-;nj`vxP$*dn@QT$EW1@iEAv{3Q4ITr5y%99@1wO{K9+TX|mAMHWy9 z8Z3E>XsGKV8I<-nNuVw^g^^~|x1xiPpOp*?WOXfYF(&h?O_8SMV#%OCcZi@w&Fi{J zN_X00C%SnkFeIAk4-kxy>F4+BH=A^^lZ3M)G9I49WCn0pGF6+5@uk?411nb3r22HF z$4c_1zl7DgZxmdtWhQIo{_axA7tB&_QuOR>@h~leC-!)SY*^)!)X<$&rawqOUjZB& z8++HW&HiTmG}5{{seDA#wS?{RGs|<&zaX!Izf6rAdml4^3rfeIip%J|Fq%3y+u4!$ z0-g-YbS6ehhSs)v;((JvWUbt^`>hM z*cR4u|FL9f`7*!5r<#=(&zD@v70UeFijzDfG$G9$q^#Eo!_BHd*mjc4T?WA{iOv!) zBw#ka>;?~{rRePj4gKXl=vRDw)7ZY(`Z!YYcGrO*N(+^woQi zYTWTelk3(27K}*bvyW*Y1;!bh2|Zb2zX=uwRb$e$xhU}%xtjA8mN<@Q*e-rS`5gu; z$%R1lKnX|dEl zncpthV$;6=U^#h;*rD2zf9JQ(PSuxK+TxXdSY~tWaLJhB@`SnwMx}I1tKw9wd3qNN zmI{P$P#rd%2*7jWZTs>FHbk4G1>6zObs_zssG~?BY3`=rxn?aY{ep{P&Yf?O|KaIc zf!)j$3b`HoQubB2@_O1*t}FFrS?$OBe^qQT&Q!Fo2f*Qmzm5%Lp$Gj=Ij}Lq1&Ui~(9rmbAS%E|a42YlO#qJ97%?*ew()`ItfsP< zL|5a{&|aD^C*>T(HQfG+LgA3Y?p=wk&-lTIDe_@G0{!1())|s=S;*O|_dtzc=K^RK z9=mJIP-1jA5Wg|cT;Ut@J@!H_`)o}He`Dm+8gXwl@dx@5MYeOU5{k@I9M5#aEtlJu zau_}j!FAU|{`jC&sZ5axD9(jWq;x~a!NLuXMKo0Ig%A%|k|s_q>{<=lYsK#As#?8~ zGd$6#SzY(@*GvEJgg^68`!#BQQ|$Dd7SiC0TnyBtg%MSDAC>IPIZL%FZkP5+Bh0c} zS8kYKUzR4MZ$@dLx_lFAvpM~gTewGtAfQ15iYWVO<@&+-uMzt#F^X$JlCfvXaCw!KLd_lKd5#QZ`&t~-i%lD1v(bW=m z{STk)(RY@hRLA1ItIPhTh~8W?j~$-jUhV}J({zu0Jq;4F8CJUzRsz)_%T!^ zR{+aY658ksNWDkVSv*6P7AektT|znEFaGQO!)4wUo}~_2MZDU`N$38MTPYtG+G{3I zrG2qfZ0S*ALV4#un?aukFyP9$F{VA4L-?F-|s(){Z zP#LhrCy)z|sgW61G*>K>E1^EDvHDTdmon*ued&h!d_E&SZfENNxW{JTDzBIQ*^ey0jBs7oxxFp2OpZk2h)!NWk@ z9If1_#feh-=Npcfh|WCnE1^coN?s%-!|zP^HT+x52xM<{`sgqg_p)bh>bQ&EI^HFR zOEbw~f6S4m$j3|D#Xa0rlw}n7UIrEH)?L6fi*B)-vxoybzED1v9d)aRhRlNm$+5q) z4rA`lP7q|>!+Z2L3*hnqCXcln=YD!>2WO#_0e;&KodX(Lt7n5P&OI-WuCC$v`bmDb zoZ%V-2tOnm^F;ZhS0`NfF0r=^H-Jkl&fo{gxSx#<^06H+3o+;fZNrXY++fdf1( z4Fq<9IWki(0RUz5TLz1e#;m*1T@-2c--O}jzNkQDZBPbw+cq1Ai4#$>|E#do=fQir zk<&bk#HQGX7&ISm0(>XQ#U!!pl+itmG;3X%B$~Zqn2D_D4JO|j>&^5_lu**&$S{Wo z)e)tFF4ee>)MEW9-%wa_TxIHGTd0!}TI$!e+K3V zfPD7WO#uk@kpY?tv5Jz-GE;aZ&o8gAFUoutn_sER5aq@b^Y~YbAOa&1@HYuoG{5(| zYU`iJtMfZ)ui?B=Q|byulDww z)NZZYjmd2NB76MGuyLVlFV`cI;KhCoVfbdvX?am_-g@}FwTG*?;#%c&vqOa?1MsVqoxkGk;% zhH2UEbk7=SmWpZ3(pk$@wIzM!3)w$7Y7N|Ii=jYehP&cMoH`-W+2yNoOdIHHe(><( z?X4|wQST9rBI?R}vsc#Yub$3C~c^V?LEvkS~+h9M?#W@tQ_Is2%ZEU%_3k9OoXN;2BnC@M^K1y@OZ7_MI8Fp@N9 z2F608dcf%T5HM&_L5%RCse3Lir@jvBj$*u|z=6Hu7?M{#tDO!{rjv6v43u;_aXcNj z=vpH)S#Ene~YOGpfqQYw+ZEZg*miRHrk z9VPHh(wgfP2fKfl{v&PBIQMt>z>d~E7F-2!=QM4^^uy^H43Mw8*1magqlMuaMxgFE z(QBgLVxHI*MSMPuzn?6c3aPpE>7q$y55@uQEknXIx%b!Q#iQeOPM%yjaG*U7W?&idE~G5YtT`ZSV(6$ITs zB!TewE^$E@vgEoW^e`TTcOU7m40Cea8r(CrjiQ+sEGz@-UDfJ$$WG12Xf-^vw&_iQVL>iWHCZ^cJ}|q`9!&V@uD~rzX4$(z4VU>8SWqljoUI8e52YRWTTO$;`(I(AQPGfv;9<|siwROmspy%kLgT}dbC z7J5ARX=cthG12m-ShL%j`BC4UF>4x+K zmr}cN+6uV1wg36s=gbBJzz46;%G5a{!3G0-)T{SKWE&`!%}v!Fzi z()@KWSa%25qI1qlaKqZJ`u}~~x_UsN$M&{z$PiU%(MY8=R-#~*4#ttv*yy#H9syt+B+hZfyE_5b|z zVX;={umpFdo(IOC)cy>z%k5C+-_8+!UW*U+xQU-TONpHr8N$1FOs4$9IO^n z9=#Ep6-|$edv>QwP3T?^^qZ{nJnfr_UPdQbFuS+hPaEkr#Y1KnlXeW#wlpm2E0mO1kG@QWO@)MvMKG3}3Hc4tsSszKb08KLABdH~ zwS;PNY3x_uHPeBdH&1Pkr5)h^b!$&r9C;@!*SL%O2lN9Pa-kLt42R21pTTBqEMkuL zx!A4J#rhSo;P|(t&XN-RN(i+ymCj*Sq;=bh@k)lLF=TnJoVlryj{{U^+t9F8QtKE^ zzY&}Xmb$T^hO}kBk%(X0Ssem*Z%AvnfIHXiR7I%PAEqlo>E=YO6NsXEOO?6l54sd) z?D0QLBL!+}!GNe*5!KASgDRvIMqNick+L0O=`=dvxaHRZr;l>Fsi9~u67-(kbV-*5 z(Xi6e`n*MvxbQcD-}&>qm8SCh*`n+MiCc_w+{XwZ6WgO>lu30nXk9F z?Z67La%2u%<`?ezkLKdmS|Ns#r2g<-wY5{=-h?!c2H~4id8on-XH-b)kf|5Y8}tR8FYK8CGm^Wt<4X zF5sNLYc&@G(SbwrbF#b5qxpH+-Miz_R0|bDJ||B9`qATe?@nV?r(Ch%)-gGfcYih3 z8_}d|ifj^5KAxOT`PHR|#9dnqexeq+Wt3zqE3@F}c}d3B)`M~`W72U7&i4nZx*$c; z1XsqrMlL@wez}{|Eld9j_-b)Arrazs_9B5|$7<0cXvsQe*s;kf3wxd5Pt0OlG-7`f zTqjUvnLHM@jtM+?K6=9HsEmxL0LCc8OsD{t9yK&A6j&&36z7C+Qcj?Z1WFFkfndVy zc8SO$jDa+Khlt-a6R7J13KGx5P#Zf_27zEUjvK}G6Oty;xJTktXcZtegDbZQESy?% zrgjH#+5gyI=;|XVp9g@7riZ&X9D~fLXhbT?|FnGpSxt3ZJn0&)T20>@O0i~S$}k;R zXsMUlhQ9aZtvFV5e(3aw#QiQdqE=DdlE4o8qem<(i_*%p)z-dyXJcBG?n(Fxtt{|) zsI1J%X*YCnoMmM{59~6u#|(Kl0=?i9sElX=Wu|ytG>~!R$Jl?pPOIG*bD;-TTW}!N zOU5+)kErSy*0pP`%6hq?UghtWI{D`^Rnk9EVdejXc556iA($umF0~G z_Hn~-s}~lm!zFX~buBUGB8*GB_&)rusI!)CK4<2l&t{zF)g`6PC4Kf+F3$Yq!U}SN5Ai?0a=c1&t$W-KiIF^YC`Uj#lR&`19VP zy4S9hHPB0a5q2aRZb$W{^oE0yI7A(8MAe~FP=pbkHi&3WM|$vfe3IPDgQYhiKn)*l z8UvNY9&Yny1H~W>XBV+@05=+Dt1}Kaf&k6F4SWcj0t*~R=T%WgF-pZ-Iw0xtJo0M! zDC4v^=2 z-IZ=(;Rwu36(I4HCvD>o8OjE^yk2Elx6Z;#VnL!vcnJj3*beTdS4bjIS<$tsJhm+3 zG8>o7c84I^=xoSO=66aLQU`D<3ElHi3R)GbpvXU(O zmmU0Bk}wA1c0^#3GhxOv1k{6_B+JcR$c2z4>5@FVVw`lLcB6@L*HwbZ-$b%+JK<)d|2Nc4y7F~35X{Dn;s&Jvbtnuj z4%F?yC0Z9KDWue3D8c<+<64ZV8r&}Je@xL)9{1d^J9ByCmRK`9oT&Q|wG_ zif|~FriP?0RX8FNdStB}RxVh>Z!yDjq=S;B$nV^e{oXBKLVi0RxGa3FbdJ*;k+1df2|w3vhj_cpu9OKfnLi&-#&?+cd^0p|=0grX;53l| z;Ba$bF)&~(f)O^&^%)Tz{!vH6G!{%;3?AT26=RfWF^jPVqhQy_P%A85xG$( z(b`}J`QllquW7tjn8=vKE+CTlV;9irtsmk)mnF`0V!~@7XzZ0Gqfjt5z18BQs26cqO1`vpe{3G0|et2h%S)Fina%Q%mjME0B2a^G9{pX; za4_V*pFc9_vjgYe*9KzG$!&r3QUgL!_JOTSfZF^P2Anos@jN-!qYjewFdt7){%S$w z0@ICIxX4~lQ93ZyGZ&A4sBlBsT{3`)tyBGSKl34rruwBs7i=HT@yyJGW@wyhbcFMq zn!&MW0nb!Wa%Ap05d?$zYL4P0{89Ka1)lfZ@jZ-n;D?a&fusM!CTw5IGRAs znM0uDXd!#!8cY~rM1Qu_@0UYiZLv9Qqm+DDC2#SK06+A?1(wV`etcxaIMTmyqgvf> zU3J829pFycq)!>lUGBfU^58@aQF4wX_zoL}pGHR%pB>_DdA5-gkQm4N;@gj->*B;{ z1x{!oK4KHxtA?Ujin4JND4mrQ`0}t*)`^}Ko}M0l&(rl|)VP`&TuwDEXRsO<>T}`f z$*HaWKG%e;Qzz|spZ2BU0vuhVQTrGsQyVT7fUJRB*$JScwnt1ltmq@DwSjkaayx2l z4Hh^!Hk$vd{Z<)&g25`bG}!(k4K|AytbFqG7%fNd2h^-=9^8EL6uAkQT+# z)#(u#xof=sC|Zdgu_()bEFNCo7`k0RnFs=+9rs}@<^#HMs6W23+BtD+ccJF@XY2{&bx*L6PQhfMMyu|X1izBd53HVP-f$u&KdB&1WCz>!z zW(V&{4NhIrdLVV_|NrSi=X)j2x$fi5SstjFd>T4kXhuj&A|2F}yL;gwZCdEL`|--C z9C%DMaMc`cHkTUOea$N`ZNm;X(DqILQar<|ZLMj4cqM*!9n--vD(7Hl^AYZK*rSW~IR<28Ay8Nd7{DQ2cT308rZ!%=>FV&@bbH!`_cDV z$xZ7a3s1RkIE(abs63vC%_h5);sI-)8e_zC5}KL8p*w#LDd)IVJm5m)xDeUAJpXZ^ zR*zF=ai#43&8EaIXIO(xfxU{Yj8TSoTx^(b88nz2b`bbkX<=Bj+G`yhQ5@2&PDxJU zi!OR>+br`M)9C#X{KvmZkd2i4hnm6{wAy6EC7QMMAj_+c7C_-?E-5g%1u z;ax}{<`mn-ej;-sahbVzPje4Nz4C{aa{~mVV`gJx>^yd4G$taG-*J-D5=@V$2TPGY z@Nw$F<212BTwzV^YHIL9h8LHY5qc^87N%wH@F{G|c>n8^Pq<0kgSoyxu;0QUD>h+C zF=ZglPoWDlRqGcs~G`@y!DBsn6)s zAbv&Cyc!pAx9HwXD|8@=`p?oesyQq!5Ni^H=BHcChEpv-6DOZ~0bp_oqX)nDu>!hy>%yctk6E2b3qO3A5AI|>nFBZv<)wt-mM%yRUZ1q!!*-8?#plUu zljR!^R#_h(^hXU-WkkN>! zDf2^UA2mM1-TAz=6iXM+l_IT~!cRJ5YnZ(i`U%?>BsD)~0(qltfI~E70xV@|YmqTt zbRc9O@bFf?$dxGWj@rSG^Ij;uV~~>$h~gn@#5^jgx~oo$Cs*g`!XyCk6N{CYU%lCD zZ;h81zK#JcSp-5~uQb)T;YM+s-vtWFa56g#_H%Et*njl+CGi$x8gGC);z2N7WzUFy z^2fcG>Lf8YokQ6F3sK?eTyav^!-)I${&*4{%}0J?nol#vLPwDGfICES9b-`-_XE}- ze-Mmsls(gRw2UKFK$}OlZqMB;`&6wtL|w6FKBtD$?W>l{)xO<3FYUbi%YlHuAx@O) ztAqBLXH-?)hU2kHz6(rE*;-Tt-fi-xkCVm2^l(?J!ml>;&(ru5vkUqTJu-*Z*880K zejNqdTl)H12xnOm1oJaI)Gi3&E)t}q2!2wd5k~E?1P4PRHUXIU*e7TXwgt+~TacG4 zqnvr{pZ4tY^w{EQ1?oy@Xaf6;<%kFr*O(5D3JOfx;p*<7#>pl~9HSgS8%C%j3=!E8 zcV?qI2osvavC@|2EF{jsWqODv{LrCIjiHa+eDk}GoMrId+=hDfHh@j$1%sqL{&`M$ zWnO!$vCF*nRk-O~4mHrMvH|{@@<%uB7YcrZTPc?s++~!&b%Qi|Dx+>`EQKeyivrE0 zxN(DAnyp-pr$6Jmt>-z|((IY$nfl@Zm-v(Jx#!+_%#hsv;s4;__UqT%hlBtB;kIOk z$GdZLyPt4=&-dSV?+-fOK>SASqm@tKqSqb0A2l7qfr%iU#+z1m3VTX(>UUL8!zp*p z$mY~l8)|v?)kg8ZM<@{b>ITm{DM^9UlVVkW3~st1tWzEQr%wkR&4pTw$QhoecMgZ zE9n%h>k(*{b$oBLTw3JeMOd;_$07Q(yx*cx*TI*7ds(S~EfR#KOLPEHr-c2600SDr z*^;tiDLZ%`3LOb0dF4Gdq^cNgW(qSuj9Ar>Ic8YBy@Sv1Xy7OC|CM=qH8>I+4Sc_a ziBM;99AsVqFG%pmwS=BD@I*^3ymLnop^6aPxqE@Co9IubN0$Vtl2dRt8?GQs%7s}-ue?f^@p%8nVVNf0}9jrK4e3$UBRiO}uOe#Hy12S!2TQ#awj^2td zYT>BC;)msT7%kUTID1aKN}*8cy-lSo!$4Qv?WU^1=-RG)G6J6m7jEzMj7Uj|s5@bv zU1&t|4kVKOLXjdUIZ$c$5ZOdDus1x@FDW2A;ONS1I<*-y?3fW+Ho5CU<-ySO99%!! zi>m;heD7XoTZ^WpvB7DkiEKLTFG4#3(Al{fX=dlkc%-Y%S*c$9>S*&In|xdY2dJeE zBUhedEB$29tHeNCk_Cr*y(qp9tlbXA9=&;wS`33cVELw=^f?Z7}8HA&cFF`)pRUfIsy?gMeSs+0? zCfpUOcpC3cji1yA%@M|XXn+o>ug@ca+NRSdRqhgNnBU>=Egs>c8@CA3RyOnN^4z?n zy`>lt$)gcu9;DAPstvAxgEQ|%nRo#Tpj}S?wwz*@W$SyGnxi2ZoWA%V)flpp_8+mW zk03xLUjzR^V0gH>t)h98^%e)O|B=M+zWHFUiy?*pthag%W5xO6-I2H!6Vj^q3ej7j zQ1RCu;j4)Bf*xYFw3|j$oi}orrs6m}ZpxgPBvmnQLF)xNgx$x_qt|WN3jp1~G<1th zuh&z~^j^LEFnlP(rLXF}wf8(#%=w3`SriMNpIjE*$z0I%Y;h6Aht`9+*IG>)S(lS)YvU@O(z*kaeI2DS^O%r6@bh;I!!mDv zGu`643`@36r!zRY&V~k^owVErozAA_V26Wloj(sjBXOwe>Qtr(g3*=Un1i7+N!0s+ z!DnsgOI0Y%yEBsB-P8vG{)+%5&$}W?uDoKgIF{@a--JXyCPYOe^j#P?S$r{%xmuz& zO)@9Dm;i4=UuoHzR=OgRpa+Rb^X3jbe9gdWn!|hvX)DTR3^boa%S+d^7GR~%rC<>+1Ap-)ba2&Q+_EhIEJOqTLRk7$rxhrd<37cw#r?K&BI6=nia zd*eKUNbkR_Ls`*_v|Rqzub%GS^=K<9@atJ(yhq$oaNIzEfsYSo7`8=HKfNV)tYw<;>(v`g?@P;{)qq z7|%l2k~r)F6s;Y2!E49tdR8$o+@qV#CYVhD zilE@Vlj8lv;UEj*t~Pj+b!*2Si!o$IG=@}E_dI)|xsaJJ&flHHeDkyUxfC&4j7TL>>rYeORjEfYmT7lPpc|0NVx$%=mf_y?;zLP1@cb6KE@9T zUxHn$1(ke$p$bFA*_;!mkPgXW>>AyCxWF8hR8s`#g8F*iI|M4xVRj76A^u3>k1aPo zU5RMM?ZuapV|+ZQ;0+UhoDYl$%@H)mzySuNZ1(>QZy`=2(WGm&I*?aduS4by#sTz$ zu z#y}cktXFE}+!}0F^x#$r<~mR|>&nn!+UzsQu1ykr`MPyd|JnZ1bxVzS^Tk!MJ=!l> z>Dt8iv|luuU3{O3j(Pe~N5?@5AGwYt+GU?fKqg?Fhr5F7UFa>w-R+w*z$Q=@DQPbD z3cVv^heF0AO9JZ012584?#4eix3tHxEsIOzFVR#zUB**6_zW$ge^eRGPtW{GgY^eg zdbuS;c->s^Gm$FL7J?&w`C}4op(ZG;J<%*o66UH7-B#uMB=XBOH;-rDkuu zjk7IZ8#}i-xgn0)Z$j;0DkKS(SgK2BJm9NCgF>@K`_tpNdC~eTtos#vqpg``bH^QO z&^1NP`|-f3yk$U&I!$o&$mrDQnV!1;?pD!;hTQgSs|FTwLIms@%q|eIeto0)m#vdV z|0BBHKQL+-9qIoF?0U{a8#e#WxzC3fUp6FGo^TsSgwURD{B&jc8?Iwa?wjRn=Ps*n zcvN{1jqZ3x^Fg8zfB`9+t(spWy8(S@n{#5I&QCZo*XN&5#dpW6CU%7UnayARqS(T) zoH(&yE!G&|B3I1HgZOJxlpFAP=Z|aU@|9Ie$X7ST zw#2j;KNTc-tYu)XlBUW4`;nuz$K+D?9}WDKKt(irsLZOtJ;2R1E+7>1KgVT{1Xjed z1Wb`OQ4X8a7ZcYgZU>eXv2 zj82Vw(qx(xO-@fQs(X4~`{Tv)=4-VLN(Hc8E!}mB%00(nz$H|+OG;264*8$t#jC%1BXNyXdtbHwqlhbbT;)t=^b&>4BZ{l3$Dlg0c)0Gz}Dib6Xo zCxRMEAc4bJhfOT~Ko*BdfVR`ywNYn7He;>M{oHjF5%=Xzzi%mD`$aE+-@KN-<|3j| zi(JgAiN&cRKUPDuN9vh=P_K^r+*ryw2es_${yb$4Pg0f*R}z2U1Kk3T?LGIGA6VNa zXvekHR-%v0M&q&K(#Xds(%(>~NRs@yu5CwC90hyTt}?VOw=%5LHhOb;MTpIe=JhVD zZObimCw+|)1!;8|s+P9}<1v`>*wk_WAqu_P*C>I`gq&+vDs8q5R~2J)_w?e=X9{j2 z30QUX~I>patBq6mLI9Z0eBKifYdHn55U?La|s*SQEEhPs-Y zG7*>$)!_x_+}UxR+8FSN6@!Ns+-xnfWedDkAh=y0vY87r3kX%N!Rp}!q!H4}i-*_< z%^;*^LOpHnc?s3eLq`px14J{9VH5pPCUY#ftt}U>FNLpfZ<9!@N(*MRaa~A>)S{GF zEDVt3y1Bjo8YLb)T1BYoMt;OP@TFKq=q~mR%8DW{hdJHpy*| zSjlp^8oyIX72W@^0_Df%gyFVHS}6d_K`xmGxWkZ?Z#Njc4wu9TVpW|V=B^RkC5i7c_(W(3TL9TNPT1-C(-5n zmlfiR0Uu}~e`i|Mfr?x^r3YDQgnW}qtk;$snCc-`m*LRqwm#aF?$hEeuz77f3eOc9=&jrP<~XZ z6UT73?>OeW7ruSG1O^X>U2j^3gXgJ|k&G(P>p0yB2X1A3@$={jX20urePXpm_R5cc4*n|^qmm;8zTBC|8&!qGO# z!Hx3&c?G1*RJNi|WV;~eXri-8(L>>WIjq{9*z_3jVI)v2qY@dXiK4!s{>sd0ar+-t z5hif;6u<)0#R?(=SAkmv>i=$TFW0C*4^G`P`%(`G7IQ*;|z!Pp68e+GqL0}V?HLH zF=*Q80AQ!T9}U%EslNtOgpCR+3g zCTxC!d(uRN@-23^;rBGd?5-H6Lkj+^|N4^h^6MNt$d1>o2?+pJOu>+9f!2Y^6kQj)l_333Jml)V`VZo9cdwuuTsczZNBuEWS+b9Hz zHNcF9R(gxqsoUpPE-NeBSM|R=PxZmZyaoCDIK;o>HsvqK+j#lvhh2E8c;TLqy`0N2 zM463HVU26z*NCtx)B;8H0Y5B*H2@j0#X{Do9HxH~1WGeBpHH?=*6tokuqE`oR!H1s z>UG#<8Jmu9DcFMu6x5u#(opQkbzUbYu)^H4X{MU`fS1i45Fth-oqERHciPHwZgCNw zBhrQxpzCbAVD1YQs?lJyu=p-;S57NX%qaHd6bal?*>qYO+f7i!@qKueU{`&N&%X7j z5^9Y(3E$uW`*{O7$Znn!cG%=^3cn#MoE`zKDU)92G{aJkvwW{v-0Ccac2<|48?5D) z7P2S`#4hwMA(3##JCC3&W6KD+Lwz%94c5!slzx-lPJVT_HjhWXvN0pygZ#prEwh>g zdQ^$F+P4%Ik)wX!`HGWd4d5d}JQoKP&9Kmi81~Y6R?7(Y=4sW4!!@&AUj$$uXR)X* zxY6)1-sHWcuBCV= zjd7#i)AcyDa6eq1g(zCz-z*UKN5o9D4jt#Cg2gI@cDIJqxWc$1AGf<7@K4Yx7LF+D zxtqmkCo72~+~>rI8MpSHuX>sz-AvLTuX$d2mn<#A1yc+)#vNwD)@kCe4_s6yRnI=MZ z-ts+xZ4ZAHO*OjVlze6TG;?A<+_%$-d90SWcVhaH67?(e?v6Ppq;Zn|{|_#og`P31 zdw%S`Uvp4`u$JfHBWmi(LUo?mizLy=-`ECfmqrc}A%DdYc z^FMy5;jN$T`x@5^1fZpasKYu&7CB1_x$H&y@M$EP{m^WUn#yB?Ro5B>GE>#VuT$YwV%{ay#-u}n9 zBH*UsfFi)yBoRY=k9L9zWB_u~mO8ET44bwm!WkpUZz>WXlu64AA66mTAaFE_1RK5~ zH+&GGQml|TNQ}Ua-&p@EMJ$q1_WxO~B7zNCI|r=|sYM61g5$*!y2TN|J5oA>7`zB< z`)rY<;VJds+P_wlR6lB=wt-UE>ZX7a*aoJ;0Za%gNX+PY){X^Ht#w{xS0{19Lj{*iypz2^#4vT>y zfA{jh^bU9Qm;KK!Z@hTrA>3OI3Fw7ow9(JmGDo8y*%|7e^NcMmN%H`K7tq%Ol33yJSqTMJE4g}CM> z8e+BmOm~K0Fn;Qt-5(f8WDid3_x;3SELlM%j&OoUH5l4$Yih`g#SLp*&dM_#+^fqK z*`M^2Pu91GnycOjRJzD}$Qz_zxNpGgYWZGs1wNZ4JH0b$a7+jM%J;D&I*HTu`WgP- za)r>JZzBV7sebjma#?a#8u@v})4=hKjG*W+h0YKYz{FFDgb}W5OOSSG{U5xPDnrII zGi&5T6V14_Qo8JNiuJff=|Y)FJUWx=8qKFmLF|wP3+(nRDBuR$r@sVq_nU0G(X_OQ z+6|ow+PTwu@lB+qje<=xa*~0qB10{Ug=9HO>WM24_QD03Zpx|{);}!zqwF18a|rJ2 z&x;vYVQ_h5SZT)VM_`i&CNw71vcutO#|v$WK{YZr(}6!C)l{iZTru zZnfwy7S63_G_0G!7i)zwmbe#{Mfyy#i;*|#s5Gwi8JA|)1Bns4ae?bbU;mEnlMuRt z7<-QHAu6$8(5-vxRu!rA)f7PNgr>Q8;Hs8Yd3f&trWuds>ft(g3T)}1L#IuqE>2fc z@+2bLrc^nw0NhOypp>JU88;R7707+`X_}tsYQj)k@n{!YA>#nhOH4zc1^JLTB}E#& z?6qM-cF;beEB6W>=7KR(e@h4Ih6%A#@h!P02QgO=kMnMCA#*ro3=lCMF7lGOuKw>tUKGlISY1VBn$$c~tO# zfcLbG$PAMq^pg?VO@c+ir|1%h=aYeJDYOs(;-rbljbCYinF^?v&**#h>m{M!)BUUn zqEz72yRhbv&{vs=J!bFNh!coU?*%{cwKBrPMenm7aZ=|U5CMLunk#mY)E=sb*|;l1 ztBpROaF>#F+UUXk8Fc_RR<{QX(ME!wK@l^Vx7Re1r1cYI^Xs4~grM}jWp7SwyC0$V z2)Pm7xLHgFtTSTwVtOu@l$|a1z<9`ya%vz6$`5=j_~A-W+?*X1T*=KnDhG(vv*HtBeZj6@HPtuRbC>FwI$K345W3{*zfYz9 zA;2s$>3o8+E0f;G}mkTp{;Wk9&Vlp&uf6D};ARGnK!N^!%< zYFfLA&=5@3SbC8`Ok|Y zOlH2K+uCv#eZNA*?3E7)I0<~bISSA`bheE;TPCUJ{7De+=PQ@{`UME7Z*48tTAY)x zoLuqkE3od8|iwRdjS5~_E`O)BZ2Y8(LGv1&yA`Zx(-w++083ww-oyBEkH)&h)3K+;W>B% zluop^dCr^gW?-~pe+I~^Lktg{Fj1q0`TEF+WnkdRleAdo#@Ag#teCMks^*2jlbvYu zx^Xg3vS`eWedPJt0cc(Vf?GsOUxWvsOsM$q7t$@j4+OW24jT`jQs}pJ^irgWx*{fi z=|_^PF9tuZs$Irzv8P2}4BP;K(DU)<5I-n#JB}!ru7)LPf$8T|npfV@>xflR`*eUR z$WMpo6@yO)$Kis=5!F#`zD1?Td2jhj9md?2Ji;rKzs}vqwj78~tTi&#RY_M}SQe-y zVX9kaDbyc+U^!##K0#&cIJnV8E(n9atp+mYGe&y~xnsR)D8ObvLd>PPC1-tYQf`P3 z@33t70!%q5-11KmKEB>GKVbV~vfgkh$%(;|0b>N|@cW+!k|@g+7Emb??qo!+8Chc! z`LmI|H^nY3@lCHOAR4_=LaKSsya2S{`B|s%YW&rx4Occ|phUDIO6c$jN7XuP;Dg6 ze4DslULV?6Plpq;kD#CH2PPE%)t3Dms9;=U&`&YM%}(q7JdCM16vKFqn*17AigEGl z@HcM0`n{YhIm~S_0SbVs)Wbc-(Yxn$)jIGz4pL>y&bM_ zpBq#{jBsEi;AS%t(X<8YNF$6f`{1S0j4QBT!5Gc^i7;xOjnNvX&6p4>JPQ#_vG_B( zgWbq6E3qQd+n!ld1A2v(C z2X#JrxO+ysG9N!em`wuiiO+ylq~uj6V!y{d#eI)eJt0O356r9~sY&;Mft5b(d;U;O zLd^T%7P5x{k?I~qXK3>wghkLLR_ArvrpAB8S#8K{Y*WTU=*wRlGFc$iH|}g7ZE;T5 zecMLcB3&CYn|n~{8Et8+s(NZ`8+Eqnv)XKHRy)DH+Q(OucxajK4pDq-MNYt}*nx3^ zOSH>Ar<7pPaUb?%f;!NYnxHrME^|fN!0-BzkpU-ZbuF$NK;8OxlelM>>L55W`id3m zTrJ{G#-3|01MxwwZDFr`Wt5{mq2VEBD9JGk``S zbw(qZq}Ri}V_(u#Yea2DN3F_=~rfJitUq83g6f;*_^E=z;#+W+i-no^yQS_C3r5U-qGh?zA>$u3X zNq~b6VYp(YJr&u8w(|H+QP~Jb$Bzn2=99~K{0VDOR8qLy0(DW^ubg4o%Qyn8lDWK5 zK@pgzHDNuSJ{eWQw?C4I88_G|;~Ob1coBMwIH%tQPB++LUt_~-my>8bjw zp-eFb=9jmtC?|56&s5&d@0!l z(<$IlSmOfe0ueR};nojldCtA$8PkNp0b^E~Axe=|Z~jezB)a=M1RXxTN`oOPk`ftpIF!A`20oIxwsxu8Y-vqtwl;N_ zaaZoH)-FS{HAWF*Z8mfPdT*SL{Kh^IVzH;@))rOTD*vaF7AFCsWvU^d<_KY&Jxv&@ z5jJ?#c=28l)llxQ$;uzGiBrKrp~^{?Tlp@7Tli!>bhuZ_cP-5V)znzF>F+=PO$kE~ zNXwi3dH03@M$3{RxsFq@60}qL&QrBoD)3W`&$P5APVmiCb{ zlQ5q2HoeMsd0Rv4_;<92`~S?(MbKQlL1l60=4GTy6qSB$n@X$FOT&v=TKzUHFRd(Y zRi>4!e*ju6OOXPQj|iZCO*N-loMjB?OZ0BK+7zDiPkFTaX_AD>%4~1$e}8WNp*p{~ zir25hGf5L$1M)T)+eTOt6rwJtC2(67%}FC1oI+R~rH5&3u$vM&-#Kacx;dLiwyKD> z;w0D&>Xxlu-@)e1Y9qcOGlQWhGlA0HZ54t1$8N*s<8+9(Yr=|^t-HFEpI5#-$wTCr z^7XXm7AMhNl9I)ZknSpb1cbP5>Y>#h9rNv;$8sLtI*;g^f8YT z{o@yUiOw!@M;ZeBkkTm*g^sz2JBac;EJs3sd%Q}HWf z_entx$4nmgql9Gc>s!E4Wg^2wFrE9b8+fZw*PE{4{knol(xkL-CS$65JC|_(8>b=C z`aqb*#Wc}1f80Hzw!0==6Wv&c`ew$=LiDJ+)17e3=6ya;MYNwVkiXI@@@$;MKpVwg z1&$%c6k{dPtqO7kxz_7r^S7$3hqI&9j}m4Wv(GNl>o5@empW?p!z|T=$p641xr)I- zz^|@ZT%=IXoa>bZpA64SNDuK~;7^yhCtEB@!T#w{UT`=AUK+DPHB(V^!Tlb^nP`IQ zpuem1rvqj}$Y};*^Z1|jLI|X>ck-bH!OBnq^@u=O{>6Jo@!x_P*q%I^K2a|IM6FI$mj2xd+=F`eEm!PFjA^{nV~9tFH5)x-GkpX&KT~3 zBMttn%Q9ZlG|YYam%0Mv0_1MZ-}CR&HkITv6Oc#escD}+Www%i$mz`dl1;Sx^V94t z^HYmoit7#VIhQR>qj_K;d@^#GFFqyFSspof1O2#PqEP|CQE$BE0$C=Ek1td5pd6`K4-nDE149}TvM1+j z?z3^3C_nm(41Q&aDoOw2gSDRS7qu*JbvGefujGGS8fOKlFwwAdH>Q_2rQo#$3%YIA z87XKv(m!wR`=woiXZl8LwCvmJIP+9$cfjs3N=nk%M&5qYz|*^!yTy?5}2<&AIuc zOr(6>b!)+?mYsfF&u-5;!_D>Uyy&eqkz7&S@j$+a_|qcP(L}Nn-x57CNgf>Nb^win2$+dTR;?!bljjQm03Bc^#BvelmnujlqRuRzWAYlPsx+cmf5r0 zoRgEH$w71w2XjAFwFd+bZ@MoBqcK_!ZjiOlCb{a2!u9dL&BZ zaN6z8)d=uui9>h9FFPwU^TGvcedJHEJd4umshc-fIG9X2c(i%WfEOt58IoI^!H}<< z!SEp3LPD7I9ANU25Y-fP#^bXZSgxuH3{>eUbnr>V#)~QQ@L*0-{Rc|kja#Qb9@=Bd zP8XmCb7KfhN;io1;piBn$0Tzsd=kqTDEz#%53HvFWuE7)_9?`j2Hed!QMFGYN;IpL z*7_w)iI}D4HWe z>}aNnZtG^@AzX#^l?oLV`tVW2n*aEr2;bSXPIw6;Z*jnEMY*0pCkWUaL^Yzp3TiULuxkvdy` zQg1>0yjaR9&>+hXUU%?@kc0d?VPP2-fj-tR(?SgU7dtl0& zEVPIuE5#3Ga(TR-)0QE!OV)tla1ZXb+nM&J0O)^1XT98QxKQ>bQp$b;tLYxEUqx1MBEa_8UXf@}Tm zd?Cv`8iF(970wY?*R^R1S+Vb;L{xmTb-8{_+sJ67o=ov6-3eQGI(f1a>PC@OIVv1^ zHnXV%2W%O>iZ!%Tv^CY5VdGW)VjZ48qwv;u!lW<|_V>QHGpm4<905y;;H6iDt!Ink zk1z6Zqpq2~hU!t8x^M?|JmA7g5+`HbJfH{~hdLTX!^3EoGBt{U8JHtLBL+d`$xZc$ zp zL@N7XK;xYj-fx%+hT?O_dKM2Ea;6g8*aw@jGd(@E^6F%?8WgmK|F_6%|MXCm2IJYM zY?|D@Jpt~T2iuV_8Ks7WtN@4JB#s_EqiWw$mFwYP7?Ks z?xU$^TfzRKzeMs^hw7A~ZsC8Nf>uB?0@ zP+1o=9#rR7h@M!qQ4F!pjmZ|qUw)#don{-3YqV?|L}4MnI$2zHJOVowi?EH^fQ2Bl zd+F&tSlOY7%n0XT`&f8HY&9^KsLwZQ>RUU8=6@VO9)VHR*-Ro?TuF>8DDH{&YUssw z@O|9l{|jSo+l%XJb>k3O_*&YrReQb?!}B);tWJ1!RF5J`4)KGk`ALp65$G)!eaj7; zFir$=zb$eL2&a+GWkYjyNZPIX@L7H$F9RKcT1j1IfdfPhiOMQ&iCG>U&a1g|d|OUF z4u+WR3}h>2z=wq%;~xuk!y8;hN()^~NdD}KZO4I;p*do3+(^g|hgd#6q`(ZrVsd<0 z=d|q=8mK`@%ighH#E4>olg4fHtBZ$IS8gt5wQpqFjdqQZZh%V~2pzCvcyfX#6VD^| z?$rg~zqZHP5A`Bt_U5$~(!B>-(Y2-5Mh)r_wfdUnRCad1!7yr^P-PEf8@5*%YSlab z!m5diQG)^h-cf?WJa2ABLfwqA{mPzj?`(}IdU8!#7?mw?A6Z1wk{<4)eIjyBV#v9l zw0%|Q=eUw|vNR>Ww1c0{I&K8lLae*)5y(2b+S{uM5KoLXh)I`UUj28^Qi@(4SzBD| zZ4@74CtupDqq}3;wNDjKl~28>rwrG&L)%Wi9^&}K=>`ln%YB9XkgXcgAFK=^BzVw?ici`C+2sZ)D^m&40o$$%-Y}seYMYT-neAHDjIIqaWU6 z80Y9$(61DF`Ff-<*6g^t`hAMhzc?c4bKut#0kpB}7lZi*j(|9*RF+&L_Dk9p_`{RX zJ%JW|c~x~eu}9105Z-kM-ypJFPv4KQ?od>YENK8c6LCt zsWPS#9RR`>>?6;qzu*&3Sv*ozyfLIqObmG*GVcifk2`)|(~jO0h~f`WCkWEVK!vZk zloQ;_p;oKnWOYncv-WC!=xjS>D|qdbdDTAaNi_>Kiw-HRCD7V|_-7LMK6Fvho?IC7 zH_w81oXXVWd)*o#Irj^EonGoP z6b4Iq&FWfVC3z~K?16ZGXL=-cQyKB%%uI5xro5E68Lq8 zrl+M_!i-zDmm1NRb0x-bNu;uziK?TP7(l*@*VHdXnV*llA_-9Qx@-fv0yP~ci>@!o zhXQbRk^EXFvz3Zl^fX}Iu4Cb`)?wRPMb~h01<;VqjBL>U8vq* zD&twLyrk0Cq?(HO0+vp&NM*Bb3qP=k-`TkF$6ov5{XW_&y}5j}EFF+&S&PqF^SD{v zGsR+e_mh~t%5sRXc-A(|-afOVGIPJ~zEl&v&X-Ts>l6$*c-rHGWbT3mI3nOtR6z2W z!Jrtbv*@pwR4#*hAqP7IQdqD-`DD-bAmg9LZyrC~vXuWg2UF@oFNrpui_FZzESaRS z-1@;-@d6+LL1u&khi!9BSlc*xXDm8bPKs9UYEcXk56upox9mbtXiIXq)?II<%zK}Y zJMF<=?e{V!iwY}^W<(ELyli4wl`NS$eRbNv)@nFnCON`|KVQ)wD+8D90`X8gB_w>4 zChmUGn2m|XFp$oO_Vt#(JSR+;j7-Njic;DtRN}XTsTLZ7&{i8k!Z_d!6hNbcq*J;^yt~5}2*t5;NCI`}x;Gs>9oth&1tUiC9 z3=Dlah%6cX<9)wcP0h|mf3H?$WOR0dtfZqH;T-k*;_vu-u}=x@Nq%-!VaWwQJd_M@ zosE)1LlNtpLYSLZ3*NI90#A{Y?E~3Rh4Wj zn_k-F6n?5bF;pw1(%FvWlQ9|0)T2j*;1!OHk{6XiuREJu-^(+!*4JbP`Q$PMLvl=| zk5m3!Ad@+alhF)Z24eU+T8fII1!=!tCkAZc=n~HNFn(nHgNTd}$+ zWYuxAd+%x^i|Q{%9my}){1cv_sW>-sr0f4myWfC;ag+iR>lxxIYZj5?pp-9TnX{2#8)g zK=0m&TkpUP_hM6GH_a5Q@y6#ObOQ<@g*mT zmv^>!uqrNh*7R3@1@w~j9^3>%QD9Yki;6fWzl{yt&eqghUGjF6T~H4U7><_hy)3N{ z&lLkHB5~`iu6jln-|y2R8oGyIC+qc9i9)0>3E!|pj*7*Sgm>=Y8Rt0q&kiE53Bl~c zvjcr3@s*u5eRqb67ORfHGp#JHYxWDutW{IgdaeZd9bM>Bud2JzY3l+bu`KJTguu$m z<=d!_@(cyH&zc!Qvfu8Sn>p9t)VX@=dWKJ_+bWk=1_lz=MSejE>!QGUTv`0=SRqQZui{w=s=%!A9q)vJ(zp< z`YxpXg7|}GH9a;EG^&^2al4oPaPv7y9?8&)_sV?B+YIT%s|uAZT+ac>;%ny1N8 zm#LdoOpnYuhZr{R-s)cS-0!EHEUArV&@QD zcQFuh?IRIerTe~@qAAY|;%D`Gdluilw0xgq@Aux=D&bFO;Si&{NvgV5slO;Y$_cMg0(b)yh*oA2f zxHntsl6(R+d*1z+l6|QQz}&3d!J!0q=gfN7>#p^AMJl4!IhIXu_rEUS7-_rI6%*ez zVN`oWx0lFn7cD3q_zGwD(W~bO-u)XmuNOKYF6>vKU@Y6VGKVjpD~H;f_^G2z>G7W! zqm08}+GnM7YOLb|2ess1W^t}kCw5RH^|zvGB(G>roXn^ppTSbg5M!uzVy@1W8ROa(fCjJ1s6#M~osaYz1muiPM1rAlzAXmeM+l+)3kW>u>2|2k5rOAw)dj!k?q zx*rxFuPnQ*ZPhB9Q>Slpj;=5Ys$SPJC1#I+D0QOH$dx%v>Xtt}&?aUt~wcrm&VC zWcGe(d+2pn^f%hK_oN^kraVq|_a`6KB>+KjE>pXQ8{tUv#jg0_Gow`8x+cXzpG4g1 z^fVi;fj61Xj4@+vyHlfawqL62N2{NcvvwpVD%H%D1MhkJODuxfjStQ7y0|(#6hcgF zh?)DX2cjg-IobTL zoj3xbvk@9IOmFV)24`!fua;_3rCLBTQF+DKCCR~qlCaCQbI%6Q55PZ2Aw6;0V%i5C zFrbn}^WmL|V77}Fpwc#E&{z#Y^8|6qtdOK{iqT45{%Z0;+s z_4T2`gaOC1MMZho0fJeKCL0Upgr0 z>&20}F(Bo8)c(j30?CUOQ*zq}1E6UVPBL0~7DiW`#qnp2`@VCPicq=E1*2h>EI+y%3)oR~$+GWVk3cd?WD>?%a5q@alvS21Q_2Sh@bD)e9PlEBh@-|fs}`Z>PV zkX=mdLImSW3WPi0HH*ZnL$gYA_Q&cOLWjfl%X_0<;J#Sc=p?MOiJRuB-*?CL4XcHn zk2hg{5q$Ol40BanoNka=u?^KnY>BIK0`>bf{QcHx8vGWBfjy}MNxs(KB)<~WfKXaZSj0 zTEyKD@?)0Mnt@>uehGCmkW(kzL6NgY#?jJMZt3(753HP6-$dL!u~aW_k4W|_IsyA| zO@MlRZ*7R;0OOO~f;sc+EJSP|ZB_{+pJU0VKz_zm(rz{#NkrmlPKb$`xF)hQE3N#j zs5W+Y&XL$a8w`dagU~9|D`|=Ud7MhV+~mXbyes`WlKUi)OkGRNc1xBAZHKdY;|?MS zo+r(O%S;T|w=ZA6#*?LJWUxF}uKZ2Ii2*SUtM_};A>O*R#ZcEz+mm%1Bl-exo#ie~3 zPZfGwnOqKU;^1%#g-3SyP_}zxdj;(C(PF-i299^{T=vYHBz&jaP*NG$dGjF?vs)Ip z;^Fm&HAnqVimrV1FaD1%4+z!j%*e#a=7ezzrKyQ=IX)i?kH#L&RCpcJJ~J$z@$+l} z_Zk0JmxF~K?g?Q&z?4N%y>urgR^r1)lJYx{a)y~;sGZDj-P;H|Lz8k>Om31wAr^L` z)#B^p8(1ZU2*nCTs0O17I=WHe6aPtHz|4pv^4@0t{8jARz0yCfDy1sUf8}zEzy8d; z9WRxh!7R{!idXn-RFg7-yoK>X<`brn@hE~t$-IN2T|Q+fW&;MicV!B&{qw`u9CM~V zDR3TpRPnIlg0tXB8oua2Vw=*a8Gmv^Z?eh6S<@mEA+4X@Q zQ??lzdSvamtKWo>7%4WtH4UPc*mrgQg4y2TqafY2RH)N1TDij76W}({lol;zi$<@` zh>i4;5}!N^efKVu0h(wyd(#MI5zoqS;d?!m(*pR#pM)bY%ui2t4iRP)igEra^&b3^ zZ@Q@GM2;q3a9NTo_2()h{^?$nMN@|=f_1n_s`%!Vi#HJtTU!>5+p ze9hUhgT&Wo;=Ewng>zFcU%)~v?WrM;t+pOU<^amk5!=@_y4PMM?Z4%_o&yyITK zzCH)!7-z+vG4l;@n{ZJbq7FR5F^=1PMci6h!_*PforSph#1gvtGqsfd)BRX8u$#WZ zU?r!*5Bk& z&k@9yZRG+08duqC(Abl(0_SZ(3iOrWxL^fCnaCQowEi?0+gOU6DwMIe2~XYh-I}tp-FbLs#*`t)I^}?(K&3~7*0K>uuy@^ zp2u0Qi!L;wpP$UQtCaxBc)2A)5(TmjYDhD6l}#*xi+8Pq#o<$|-$YXeKvQP8pbYRf zQ?BMvDp{%vl%rh8x{2)v#e>KC6dO;WI_s@OR>$-)?vy>G&M8l(y%BPbIn;+e)lH11 z@V~2&%4#V@Es=iB<75Hn(`|*8w+;m20^mO1a{qByQ2`}$*)(_s| zA^{89cmb!yWWh>lDZJ>MO_YJ&h?7}b+)#3!v}oC>d?0!y6ix*Y6NKgnrODKc=29ce zZG)!$XV7u{+zWxLJYA5y=I=jxsC0-<9n7|`rf#CH_IW{p63G&fusfK3Ud^gqTb}21 z3pny_!ny6r`O=`HimJLJ4jEZTLrJe)Q8CeoZ+-&LfbTE;;GtvA z<88;PXF4H@>TJJ^nHzLzV@(h>Ibk49URnR!mLn;%@>}M$6ckN+h?7c@t3SAj*0mm5 zHPIz$o%chkbAZ%;ZfX~(!pz4E;BlY1Ivow`C?kY@wTL6K?}Xk_xi4FrF;Me`6)*@m zhYkE-!L+U=dzo-dt`tA)+P^=CZpwL8`kCg+jL0;XdM9a0cIxw4@Uno|3N~N>Lbpv0 z-@ZZAQv^;#`Nlfji9?C8eWcAGUmB`FcvPBL>n@yP*ZQ$fT`+h^*EJv}5x=IMV*Awv zZMsnB$4(UyzqY8A@asnMcD0n-jim|S<8voi{2_LC4TsY&gaEx6OCdfn#+^z6`E9d3 zX;`z}&!sFU47<+|Tzm37U$;og&-L4mO;#IR3=%t5>X{8R@rzt&zRQ~@lU;hx4liRb z8$R4Ekc5X*O8ATT24i;8JJ7Bj&Rq^ZWE%{|Wj4wd&@Ka)QwFS)R7OJre5JMdi_FvIiGpr)c%07-C!1O{uFb-(s2sUkO=d{a5!14HRa{nF+P|0ytX8alhr?Hx~}Mq!EjP}70FRn z@|jM4%MK#(6JN?!iByt%VvFysM|DKsIG>f?l1i~SM@RYxMkU;&oc-TKNVZZQ|Eu-| zK^gOh&BK7?hWIf@_zs3lMe)5H4gE4$2v^gxDVGbzNTn<))rF>N{jRI0u(!_jY_}i< z7LyGQ34E_uN?&>=8OyuCiY!tz%%skZYzncgjXFY>u+=Le<)8V zP~|z|nYjs`pC1vCDf-sE#p%$|=IBRrZw4q!OctWw3<#;mL-JPfIGp4dhUAoACDwk~ z-0>9^43sKINM0#!b0|72oN)7uYZhct-KkSbY{inb(rYq53-obL>A_f@yR~h01>H~0 zI>c&0z=h&SQx*DNsWGy6NWb7fYJ34NOiI(tHS#f~IfwC z|4f3dNM9Z=q}TJ`yL!SkdQ8m) zGh7YSqupC2Cgyb#9joz%r_phX4m^IK6X=+J7%CQ<3MFcs_AP8eFAO-=UnnHS9p{E> zH8_-Y{^Hp$rsg-JRha=jIBM2!+h<3f?!N+2;@Jt;gJuIb2gAv*+<$w@wh`4R!*(A`won`%e)?Yt<*qa@5o5MauJ z^`pjRv~vlSv`B7Ng#< z{-}=Y?_Xfz?UCi6_(g2EzVQ;=VsKZRA5RDwPx+0KWM7!6^YIm&KIWxiz~I0breAmM zR4RAwQnSBWnU(=lY}dkUcBufFe8gan$)_~*{OLh-zdvzuos*NJy3wYlxwE*~V2HG_ z;`DmWDd)4u2M_l5JGoS@vtOrwqGACNlofhMiO*Nc^cU2^OSX=+1CTeQ|KH>8D53mM} zTkksYy7C-fLyqL{@T8%~Oj8Rp2OOCOT6v?2>huA0d=IApJu?$il4oX}wG00O8X`7} z{%qhh{8^gfgxa{g9QpECH}!(mX;{WToSe@7dyB7O3a)w5=er9qw-%EuqBhNef?-)+OFq^% z&W;2Ch_Dpt!(9CVCYr;;FuBWpbhi%^P!0KP++L92cCT#{*0wyQL_5JhnW zp5}s}Ff>Pwq!7A}%CFU<_(;sC6wQa>G6pVay{$rt2|K6y2<`Y&B*F-_#8yrsH5;yw zO!`bD7JV73)Py$)?+rLg_F%Oc1!MlYtD_Zc!Qgr>YCDb<{^FW>qe0u1Nc0b znY0+Z2O~{6AauJ=Xg&xE@j#!AU3<*;qQmDLD(bF?{<$Z?k^_%_X1i{Wd&`;mzHlDNStVBcZrYmipq>=-HWh8_@`UH{wb)dgJ^N(I^UQesQBAFPrK=Ng zKi;Z~cP+WStrFpmPpok3PmeRAAJZ0cOwCSl8P3W*? zi^4xp(L~*YCT*yeS`PWpCR}Dfx>0`K_+-F!|4A@1R0jS3eo}(54rq%}L*L)hvY)OI zRca|~N@hhY_haQFJLcuF*3s8WmDuFMciG*Im4`?xgJz$|$0jPkFN$I^YZP>4!fUghKM$J&cl8KFkk30hPWDcX-_Hj9dG!Pz>(%m#D}bJSpX*zz z`C=S0(K0p>w+I%Lv;qzIxmf9>>?@#_;7g9;lWFH!?3}KJCfUpwRe9mronfOXC6`d` zoM=srId$TQgSaEBHg`cHX9*)@OP2b(wsdz0V@V<>cY)Tr#pt`g4R`5U ziS=NKi&)?>fGew4py}Y+#%NPi zlqq`M3-$wUt+T_yRdK~Ez8yEXZJtO}v3)c-ap_T^N;urNMy&fYEL10Tj|-s`Q>GNs zPQ4OzX=;T+z$ULbb@)-B1~Y}e*Rea}bR z_#JNl-%IO#QAEc5Wth{Rw{SJJ!^%mLwn&JtwY?A>Mw)|=FWvp$vVwzII5-N@1!bZf zVM(YgK^E=^Pehj_>RznCoq!qo-AoZ4K}UsU)sBm)TTeK^LBm$pAoL=FZ2EZuUlU7! zM{DLf5i2v$!aD>zYZcXhn(D_XvtW;;@nNnI{6W%Q3Y#zJTjdIRvui^z`zG#xuZu5b zE}o2Amwc`3fZqXU#r*(gAB4R+F6OHg!ZJ~^sDGn$i51@MW<|tqyw;f*^}Z8174=3O zzh@Dhu!!DCUnf2xdZu)5-W*cwixHDPEtHf!zuB}EZ$Uo|*SHhTpe`)JyPGIa%;UOU z_0qzv1ew+{v_F^e7LZTZB_ZyeZNQktI27~{NoOd9eEFxvW-)lnE0dF@3H8g=q#PZ7 zf^_xj=Fo}W>a!vde_{{)vnuF0di$?qvf&NrNyo6!p7v*Q{&uLQs8@!=^diXy zk8Z0{QtbAOAn-H4Ym}pFeo8FkXVii7POjS%A?7T-^ zok&zo+d0jlRlmfW>?kW=zHHQVdV_lMT70vP{Np=fE$@1Lb-f=~QNaz}jk(zXQ5K8J z#!5K-r>>9B%^%>U-|pLH(b@X6Otn{IV;Ckm(c3E7R$>fmg!o|yJmrzTG;Hs#TXoCJ zjtM&NQ5KUy1W8ZN`or{Zq6h%1X1kppA3;FF?hDoB^I4jerCT3+sC71mm{9CgKy~J$ zC%yCSTjjSdinrpt7phZOk7=3)$fB=^j!BQP=`MDZs^cL_A97L3mrpV)D7;f+5?2rA zcxw|cYAAe46d3mIAhp&5MK)bD0rfpjC~tnV#_T9nTiC_jxGk&s?cLw9p|{s-O$snj zpnC`gkyefvanNm@3J>qV%9V*}@ynKX5oQ0SmwcYJ^!}!-b3)GiE9FBQG6fU<))Y;0 z1jJW}spuG1KVF%$LFIeZ_3E|i;Mpk?eeFVvfc~80;;Qfg%~(;=MwO)?^MXigLYVjt z{*^tE3K!nXPqEWUS|XArM|a-Ed_ag+h_Rk7=6_=v*H}-hUDSj1cqyi~o`d^rb{_A* zdg>@9^>hQRwi+Y}3@LVhGy6)W?iUnsW%jSxWRj%IrfV|Bj@+uR5|*kiJQ7y z!e*=Eo0~Q9?Af&LWuWFyDl%L0^b9xME79#<&f-7Sq)OfYC$73?r8!Fzkx~6n(TRT&PQ{n8(s6bB)37f*prs)1vEH zJA92x6e$V785&C#GlP^dmoM}eYJW@i!707KUzyj%w*$`Z2#Fw()zgkLj3_l^+WPjQ zV12*(K+m+N#a^q|)sxpA4Y$lFsEDA|M*{<@XSpd#c`QTGPKA80=Emy5XF9PCeK`fO z4m5-m@3I)e;`RfZaJSaUb>6x~E+~X?;m)=XVPV)rkO~eRKFUMHHEN)$Jy{$fs*iL_ z5#ZP~%Ti^@;NRNl`PgcOw|-7ymCu~zUZ>qz-X-o@?m_Wb{#Dq|I|yg2$<*{y7kgZ{ zOz8ENN};~>N*PPS?@iarIH;WsyREOC$L@Oa`KSFiTQoLm+S;&LW8WTsdeX%q=C&G+@Y;Zl2j532YqeZk1F?MF!)+nC+Rn@AgnSwTAAQDhFoZ}rzN$d4`?8Ti?2 zb>(_|vVoMv>^vKu^Phw6O)ZOy7go>3=UV&Z6#vWo%l;I3pKPD%vg(D!i!F^?Vpgw? z+49qqicj?C9#n}y=uVPpjX;)(fPsB(|Iu_OG9^6koHt^1hWWgfUS=a>-8xp2pCy|K zsi_D0G6OeyOJF9LW@b%h-=<}J#(yANeR4jJK&}Vp-X|F79H6Nn^d48uOrF(+GJ78Y z?Jt#5O8v8#nCMYY_RMCOQ(joM0WC!?a%m(nh$*m^g>228Fp4aHE0<6vG#ShuR@W+1 z;T}o?WNJP0qden%7Uoy<@P2Qb{d5Hg^cOJ?fqga=N_!X07 z69IEu3c)R&-JY)b6=oz~0F753a|>y%qq*&`WTACDfdaIxwJdZOb5X?1jr7*$yN=~8 z+-weull_4kf0&_EmHXXjb31&pmk0k-Qo6XT)7F#y5m~yyeo!P8{ zC$=!y29$nj_FTRm&8x5Ydmwmb#__fpaK#+K5$GJnbSr8aK#>%IDJn7{0*?2f0p(70 zXln^lc8~a<)|$2@sgF@@x6SE7)9!s~ro1ERlh{?Oo5WU%n2YnKt;NfOc5arZTLo(p zV<16gawnS3t{caf(s zbK0Lh>*93DBxacVyTOp1F6cz20b*L5B*}1H)*Ff3rUjG`+jjGA@q}Fdet+Eh!zjl! zJpl}Y7V;M=6sEy^weY412EP1Zo{@#G2TMW%)WQihR-URxrU(ZAuWT6^+0s8!QfHM& zvTa}_niZIB`0Kw7<=#8^FQ^N$59%~+($i*_4OtlWgp#{ z6w|FoSgG&csWB!P)gXa9DLwM{vDbCHTtiIP7uHoUHOB0(4Tl#Jh6=Wi4@?_ka(Q*H z$9_+b3?WbFx2kGjXJp?>`Wp6}MMo`jk4M&!CqY%yJxSJJQ{9(&ps(#|=#zX)KLoQk z07gN2CggsGmQxh7#8~fbuTurbD3bUftbV1S3Vk~#qkI}X9b~ff8Yy(hum}@i!kl%XfbZgPgCL;@?EwJl6^_|REV41H~5V!&FSML;0xe&1a;Or zBuf}Y|rqI2IP(#OxgeejHC`O zdmpRR8+%CyQ&*F(p5W@Gxqs8iqx%YjqSRse=X%U=U9NYs(!e_`Ww}|R=lDc){`r2% zoopBa)l`ZBgrRu1vj28|I7~qh>f!H&J3NO!6}a<`RAwfc`4Fy%jWAVi*X_Du3%l*0 z{)+;^1bjZsxsgfAN!avwG0V+wGDC<6FZ-|e!(ko*Cocgi2o>j^$M5!qn22wLE7j43 zTzBOIIUn*pDdx@13H-}Ij8ESQeLJ6Z@t3qr5P%UMpoZl3%xR9V!mCIToL3sJq@ug8 zrv?*Ea8ZaWW?ECk5Y}p18mbTF`5s`R1B=g-^uugik`23&8%fx~9m;c(WBX%;T^Mwq z*&_k{j63(xweizM|WL?kr3jWG))17*Tn&cJ@yEJ zbVL*RZM9qi!JM2g^7aTdJzmemln8lpMh!n5$RkozgF)*&*$?Og&=-m);GODNs)Wwz z=Ro`>gsZ-bggh!=_Pts9wOGfZo~<0VCy?Dqm}A()ckq`#v$6w(-hKV#K{3$`h6GeW z|B8s)jn%>(C^Rfnixq1`y|z@_33ZpKuPT?_sjjj zZn{QA$CH&mJE$U=uW~bCF0f{#`bHhu`Gv9{uk_x@Mdp0ed*#QP^z4rzt5Q?5({Wvs z6wB37SaV)V8Pj3hgwOklNe3z{k?f$;#WI}t MY+}w2chO^vV8tzjbY@8?OBy>_T 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 tr > th.sorting, table.dataTable thead > tr > th.sorting_asc, table.dataTable thead > tr > th.sorting_desc, table.dataTable thead > tr > th.sorting_asc_disabled, table.dataTable thead > tr > th.sorting_desc_disabled, +table.dataTable thead > tr > td.sorting, +table.dataTable thead > tr > td.sorting_asc, +table.dataTable thead > tr > td.sorting_desc, +table.dataTable thead > tr > td.sorting_asc_disabled, +table.dataTable thead > tr > td.sorting_desc_disabled { cursor: pointer; + position: relative; + padding-right: 26px; +} +table.dataTable thead > tr > th.sorting:before, table.dataTable thead > tr > th.sorting:after, table.dataTable thead > tr > th.sorting_asc:before, table.dataTable thead > tr > th.sorting_asc:after, table.dataTable thead > tr > th.sorting_desc:before, table.dataTable thead > tr > th.sorting_desc:after, table.dataTable thead > tr > th.sorting_asc_disabled:before, table.dataTable thead > tr > th.sorting_asc_disabled:after, table.dataTable thead > tr > th.sorting_desc_disabled:before, table.dataTable thead > tr > th.sorting_desc_disabled:after, +table.dataTable thead > tr > td.sorting:before, +table.dataTable thead > tr > td.sorting:after, +table.dataTable thead > tr > td.sorting_asc:before, +table.dataTable thead > tr > td.sorting_asc:after, +table.dataTable thead > tr > td.sorting_desc:before, +table.dataTable thead > tr > td.sorting_desc:after, +table.dataTable thead > tr > td.sorting_asc_disabled:before, +table.dataTable thead > tr > td.sorting_asc_disabled:after, +table.dataTable thead > tr > td.sorting_desc_disabled:before, +table.dataTable thead > tr > td.sorting_desc_disabled:after { + position: absolute; + display: block; + opacity: 0.125; + right: 10px; + line-height: 9px; + font-size: 0.9em; +} +table.dataTable thead > tr > th.sorting:before, table.dataTable thead > tr > th.sorting_asc:before, table.dataTable thead > tr > th.sorting_desc:before, table.dataTable thead > tr > th.sorting_asc_disabled:before, table.dataTable thead > tr > th.sorting_desc_disabled:before, +table.dataTable thead > tr > td.sorting:before, +table.dataTable thead > tr > td.sorting_asc:before, +table.dataTable thead > tr > td.sorting_desc:before, +table.dataTable thead > tr > td.sorting_asc_disabled:before, +table.dataTable thead > tr > td.sorting_desc_disabled:before { + bottom: 50%; + content: "▴"; +} +table.dataTable thead > tr > th.sorting:after, table.dataTable thead > tr > th.sorting_asc:after, table.dataTable thead > tr > th.sorting_desc:after, table.dataTable thead > tr > th.sorting_asc_disabled:after, table.dataTable thead > tr > th.sorting_desc_disabled:after, +table.dataTable thead > tr > td.sorting:after, +table.dataTable thead > tr > td.sorting_asc:after, +table.dataTable thead > tr > td.sorting_desc:after, +table.dataTable thead > tr > td.sorting_asc_disabled:after, +table.dataTable thead > tr > td.sorting_desc_disabled:after { + top: 50%; + content: "▾"; +} +table.dataTable thead > tr > th.sorting_asc:before, table.dataTable thead > tr > th.sorting_desc:after, +table.dataTable thead > tr > td.sorting_asc:before, +table.dataTable thead > tr > td.sorting_desc:after { + opacity: 0.6; +} +table.dataTable thead > tr > th.sorting_desc_disabled:after, table.dataTable thead > tr > th.sorting_asc_disabled:before, +table.dataTable thead > tr > td.sorting_desc_disabled:after, +table.dataTable thead > tr > td.sorting_asc_disabled:before { + display: none; +} +table.dataTable thead > tr > th:active, +table.dataTable thead > tr > td:active { + outline: none; +} + +div.dataTables_scrollBody table.dataTable thead > tr > th:before, div.dataTables_scrollBody table.dataTable thead > tr > th:after, +div.dataTables_scrollBody table.dataTable thead > tr > td:before, +div.dataTables_scrollBody table.dataTable thead > tr > td:after { + display: none; } -tr.dt-hasChild td.dt-control { - background: url("https://www.datatables.net/examples/resources/details_close.png") no-repeat center center; +div.dataTables_processing { + position: absolute; + top: 50%; + left: 50%; + width: 200px; + margin-left: -100px; + margin-top: -26px; + text-align: center; + padding: 2px; +} +div.dataTables_processing > div:last-child { + position: relative; + width: 80px; + height: 15px; + margin: 1em auto; +} +div.dataTables_processing > div:last-child > div { + position: absolute; + top: 0; + width: 13px; + height: 13px; + border-radius: 50%; + background: rgba(13, 110, 253, 0.9); + animation-timing-function: cubic-bezier(0, 1, 1, 0); +} +div.dataTables_processing > div:last-child > div:nth-child(1) { + left: 8px; + animation: datatables-loader-1 0.6s infinite; +} +div.dataTables_processing > div:last-child > div:nth-child(2) { + left: 8px; + animation: datatables-loader-2 0.6s infinite; +} +div.dataTables_processing > div:last-child > div:nth-child(3) { + left: 32px; + animation: datatables-loader-2 0.6s infinite; +} +div.dataTables_processing > div:last-child > div:nth-child(4) { + left: 56px; + animation: datatables-loader-3 0.6s infinite; } +@keyframes datatables-loader-1 { + 0% { + transform: scale(0); + } + 100% { + transform: scale(1); + } +} +@keyframes datatables-loader-3 { + 0% { + transform: scale(1); + } + 100% { + transform: scale(0); + } +} +@keyframes datatables-loader-2 { + 0% { + transform: translate(0, 0); + } + 100% { + transform: translate(24px, 0); + } +} +table.dataTable.nowrap th, table.dataTable.nowrap td { + white-space: nowrap; +} table.dataTable th.dt-left, table.dataTable td.dt-left { text-align: left; @@ -29,6 +182,12 @@ table.dataTable th.dt-nowrap, table.dataTable td.dt-nowrap { white-space: nowrap; } +table.dataTable thead th, +table.dataTable thead td, +table.dataTable tfoot th, +table.dataTable tfoot td { + text-align: left; +} table.dataTable thead th.dt-head-left, table.dataTable thead td.dt-head-left, table.dataTable tfoot th.dt-head-left, @@ -106,6 +265,28 @@ table.dataTable.nowrap th, table.dataTable.nowrap td { white-space: nowrap; } +table.dataTable.table-striped > tbody > tr:nth-of-type(2n+1) > * { + box-shadow: none; +} +table.dataTable > tbody > tr { + background-color: transparent; +} +table.dataTable > tbody > tr.selected > * { + box-shadow: inset 0 0 0 9999px rgba(13, 110, 253, 0.9); + color: white; +} +table.dataTable.table-striped > tbody > tr.odd > * { + box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.05); +} +table.dataTable.table-striped > tbody > tr.odd.selected > * { + box-shadow: inset 0 0 0 9999px rgba(13, 110, 253, 0.95); +} +table.dataTable.table-hover > tbody > tr:hover > * { + box-shadow: inset 0 0 0 9999px rgba(0, 0, 0, 0.075); +} +table.dataTable.table-hover > tbody > tr.selected:hover > * { + box-shadow: inset 0 0 0 9999px rgba(13, 110, 253, 0.975); +} div.dataTables_wrapper div.dataTables_length label { font-weight: normal; @@ -142,71 +323,6 @@ div.dataTables_wrapper div.dataTables_paginate ul.pagination { white-space: nowrap; justify-content: flex-end; } -div.dataTables_wrapper div.dataTables_processing { - position: absolute; - top: 50%; - left: 50%; - width: 200px; - margin-left: -100px; - margin-top: -26px; - text-align: center; - padding: 1em 0; -} - -table.dataTable > thead > tr > th:active, -table.dataTable > thead > tr > td:active { - outline: none; -} -table.dataTable > thead > tr > th:not(.sorting_disabled), -table.dataTable > thead > tr > td:not(.sorting_disabled) { - padding-right: 30px; -} -table.dataTable > thead .sorting, -table.dataTable > thead .sorting_asc, -table.dataTable > thead .sorting_desc, -table.dataTable > thead .sorting_asc_disabled, -table.dataTable > thead .sorting_desc_disabled { - cursor: pointer; - position: relative; -} -table.dataTable > thead .sorting:before, table.dataTable > thead .sorting:after, -table.dataTable > thead .sorting_asc:before, -table.dataTable > thead .sorting_asc:after, -table.dataTable > thead .sorting_desc:before, -table.dataTable > thead .sorting_desc:after, -table.dataTable > thead .sorting_asc_disabled:before, -table.dataTable > thead .sorting_asc_disabled:after, -table.dataTable > thead .sorting_desc_disabled:before, -table.dataTable > thead .sorting_desc_disabled:after { - position: absolute; - bottom: 0.5em; - display: block; - opacity: 0.3; -} -table.dataTable > thead .sorting:before, -table.dataTable > thead .sorting_asc:before, -table.dataTable > thead .sorting_desc:before, -table.dataTable > thead .sorting_asc_disabled:before, -table.dataTable > thead .sorting_desc_disabled:before { - right: 1em; - content: "↑"; -} -table.dataTable > thead .sorting:after, -table.dataTable > thead .sorting_asc:after, -table.dataTable > thead .sorting_desc:after, -table.dataTable > thead .sorting_asc_disabled:after, -table.dataTable > thead .sorting_desc_disabled:after { - right: 0.5em; - content: "↓"; -} -table.dataTable > thead .sorting_asc:before, -table.dataTable > thead .sorting_desc:after { - opacity: 1; -} -table.dataTable > thead .sorting_asc_disabled:before, -table.dataTable > thead .sorting_desc_disabled:after { - opacity: 0; -} div.dataTables_scrollHead table.dataTable { margin-bottom: 0 !important; @@ -252,17 +368,6 @@ div.dataTables_wrapper div.dataTables_paginate { table.dataTable.table-sm > thead > tr > th:not(.sorting_disabled) { padding-right: 20px; } -table.dataTable.table-sm .sorting:before, -table.dataTable.table-sm .sorting_asc:before, -table.dataTable.table-sm .sorting_desc:before { - top: 5px; - right: 0.85em; -} -table.dataTable.table-sm .sorting:after, -table.dataTable.table-sm .sorting_asc:after, -table.dataTable.table-sm .sorting_desc:after { - top: 5px; -} table.table-bordered.dataTable { border-right-width: 0; @@ -303,10 +408,3 @@ div.table-responsive > div.dataTables_wrapper > div.row > div[class^=col-]:first div.table-responsive > div.dataTables_wrapper > div.row > div[class^=col-]:last-child { padding-right: 0; } - -table.dataTable.table-striped > tbody > tr:nth-of-type(2n+1) { - --bs-table-accent-bg: transparent; -} -table.dataTable.table-striped > tbody > tr.odd { - --bs-table-accent-bg: var(--bs-table-striped-bg); -} diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/datatables.net/js/jquery.dataTables.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/datatables.net/js/jquery.dataTables.js index dad445e7..c7db83a6 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/datatables.net/js/jquery.dataTables.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/datatables.net/js/jquery.dataTables.js @@ -1,15 +1,14 @@ -/*! DataTables 1.11.3 - * ©2008-2021 SpryMedia Ltd - datatables.net/license +/*! DataTables 1.12.1 + * ©2008-2022 SpryMedia Ltd - datatables.net/license */ /** * @summary DataTables * @description Paginate, search and order HTML tables - * @version 1.11.3 - * @file jquery.dataTables.js + * @version 1.12.1 * @author SpryMedia Ltd * @contact www.datatables.net - * @copyright Copyright 2008-2021 SpryMedia Ltd. + * @copyright SpryMedia Ltd. * * This source file is free software, available under the following license: * MIT license - http://datatables.net/license @@ -59,38 +58,7 @@ (function( $, window, document, undefined ) { "use strict"; - /** - * DataTables is a plug-in for the jQuery Javascript library. It is a highly - * flexible tool, based upon the foundations of progressive enhancement, - * which will add advanced interaction controls to any HTML table. For a - * full list of features please refer to - * [DataTables.net](href="http://datatables.net). - * - * Note that the `DataTable` object is not a global variable but is aliased - * to `jQuery.fn.DataTable` and `jQuery.fn.dataTable` through which it may - * be accessed. - * - * @class - * @param {object} [init={}] Configuration object for DataTables. Options - * are defined by {@link DataTable.defaults} - * @requires jQuery 1.7+ - * - * @example - * // Basic initialisation - * $(document).ready( function { - * $('#example').dataTable(); - * } ); - * - * @example - * // Initialisation with configuration options - in this case, disable - * // pagination and sorting. - * $(document).ready( function { - * $('#example').dataTable( { - * "paginate": false, - * "sort": false - * } ); - * } ); - */ + var DataTable = function ( selector, options ) { // When creating with `new`, create a new DataTable, returning the API instance @@ -101,7 +69,7 @@ // Argument switching options = selector; } - + /** * Perform a jQuery selector action on the table's TR elements (from the tbody) and * return the resulting jQuery object. @@ -857,24 +825,24 @@ */ this.fnVersionCheck = _ext.fnVersionCheck; - + var _that = this; var emptyInit = options === undefined; var len = this.length; - + if ( emptyInit ) { options = {}; } - + this.oApi = this.internal = _ext.internal; - + // Extend with old style plug-in API methods for ( var fn in DataTable.ext.internal ) { if ( fn ) { this[fn] = _fnExternApiFunc(fn); } } - + this.each(function() { // For each initialisation we want to give it a clean initialisation // object that can be bashed around @@ -882,7 +850,7 @@ var oInit = len > 1 ? // optimisation for single table case _fnExtend( o, options, true ) : options; - + /*global oInit,_that,emptyInit*/ var i=0, iLen, j, jLen, k, kLen; var sId = this.getAttribute( 'id' ); @@ -1096,7 +1064,7 @@ success: function ( json ) { _fnCamelToHungarian( defaults.oLanguage, json ); _fnLanguageCompat( json ); - $.extend( true, oLanguage, json ); + $.extend( true, oLanguage, json, oSettings.oInit.oLanguage ); _fnCallbackFire( oSettings, null, 'i18n', [oSettings]); _fnInitialise( oSettings ); @@ -1325,7 +1293,7 @@ _that = null; return this; }; - + /* * It is useful to have variables which are scoped locally so only the @@ -2329,9 +2297,17 @@ th.addClass( oOptions.sClass ); } + var origClass = oCol.sClass; + $.extend( oCol, oOptions ); _fnMap( oCol, oOptions, "sWidth", "sWidthOrig" ); + // Merge class from previously defined classes with this one, rather than just + // overwriting it in the extend above + if (origClass !== oCol.sClass) { + oCol.sClass = origClass + ' ' + oCol.sClass; + } + /* iDataSort to be applied (backwards compatibility), but aDataSort will take * priority if defined */ @@ -2604,9 +2580,11 @@ def = aoColDefs[i]; /* Each definition can target multiple columns, as it is an array */ - var aTargets = def.targets !== undefined ? - def.targets : - def.aTargets; + var aTargets = def.target !== undefined + ? def.target + : def.targets !== undefined + ? def.targets + : def.aTargets; if ( ! Array.isArray( aTargets ) ) { @@ -3450,6 +3428,9 @@ */ function _fnDraw( oSettings, ajaxComplete ) { + // Allow for state saving and a custom start position + _fnStart( oSettings ); + /* Provide a pre-callback function which can be used to cancel the draw is false is returned */ var aPreDraw = _fnCallbackFire( oSettings, 'aoPreDrawCallback', 'preDraw', [oSettings] ); if ( $.inArray( false, aPreDraw ) !== -1 ) @@ -3458,34 +3439,18 @@ return; } - var i, iLen, n; var anRows = []; var iRowCount = 0; var asStripeClasses = oSettings.asStripeClasses; var iStripes = asStripeClasses.length; - var iOpenRows = oSettings.aoOpenRows.length; var oLang = oSettings.oLanguage; - var iInitDisplayStart = oSettings.iInitDisplayStart; var bServerSide = _fnDataSource( oSettings ) == 'ssp'; var aiDisplay = oSettings.aiDisplay; - - oSettings.bDrawing = true; - - /* Check and see if we have an initial draw position from state saving */ - if ( iInitDisplayStart !== undefined && iInitDisplayStart !== -1 ) - { - oSettings._iDisplayStart = bServerSide ? - iInitDisplayStart : - iInitDisplayStart >= oSettings.fnRecordsDisplay() ? - 0 : - iInitDisplayStart; - - oSettings.iInitDisplayStart = -1; - } - var iDisplayStart = oSettings._iDisplayStart; var iDisplayEnd = oSettings.fnDisplayEnd(); + oSettings.bDrawing = true; + /* Server-side processing draw intercept */ if ( oSettings.bDeferLoading ) { @@ -3887,6 +3852,28 @@ return aReturn; } + /** + * Set the start position for draw + * @param {object} oSettings dataTables settings object + */ + function _fnStart( oSettings ) + { + var bServerSide = _fnDataSource( oSettings ) == 'ssp'; + var iInitDisplayStart = oSettings.iInitDisplayStart; + + // Check and see if we have an initial draw position from state saving + if ( iInitDisplayStart !== undefined && iInitDisplayStart !== -1 ) + { + oSettings._iDisplayStart = bServerSide ? + iInitDisplayStart : + iInitDisplayStart >= oSettings.fnRecordsDisplay() ? + 0 : + iInitDisplayStart; + + oSettings.iInitDisplayStart = -1; + } + } + /** * Create an Ajax call based on the table's settings, taking into account that * parameters can have multiple forms, and backwards compatibility. @@ -3930,8 +3917,8 @@ var ajax = oSettings.ajax; var instance = oSettings.oInstance; var callback = function ( json ) { - var status = oSettings.jqXhr - ? oSettings.jqXhr.status + var status = oSettings.jqXHR + ? oSettings.jqXHR.status : null; if ( json === null || (typeof status === 'number' && status == 204 ) ) { @@ -5099,6 +5086,7 @@ 'class': settings.oClasses.sProcessing } ) .html( settings.oLanguage.sProcessing ) + .append('
      ') .insertBefore( settings.nTable )[0]; } @@ -5348,6 +5336,7 @@ footerCopy = footer.clone().prependTo( table ); footerTrgEls = footer.find('tr'); // the original tfoot is in its own table and must be sized footerSrcEls = footerCopy.find('tr'); + footerCopy.find('[id]').removeAttr('id'); } // Clone the current header and footer elements and then place it into the inner table @@ -5355,6 +5344,7 @@ headerTrgEls = header.find('tr'); // original header is in its own table headerSrcEls = headerCopy.find('tr'); headerCopy.find('th, td').removeAttr('tabindex'); + headerCopy.find('[id]').removeAttr('id'); /* @@ -5428,7 +5418,7 @@ nToSize.style.width = headerWidths[i]; }, headerTrgEls ); - $(headerSrcEls).height(0); + $(headerSrcEls).css('height', 0); /* Same again with the footer if we have one */ if ( footer ) @@ -5475,7 +5465,7 @@ // Sanity check that the table is of a sensible width. If not then we are going to get // misalignment - try to prevent this by not allowing the table to shrink below its min width - if ( table.outerWidth() < sanityWidth ) + if ( Math.round(table.outerWidth()) < Math.round(sanityWidth) ) { // The min width depends upon if we have a vertical scrollbar visible or not */ correction = ((divBodyEl.scrollHeight > divBodyEl.offsetHeight || @@ -6481,16 +6471,27 @@ // Store the saved state so it might be accessed at any time settings.oLoadedState = $.extend( true, {}, s ); + // Page Length + if ( s.length !== undefined ) { + // If already initialised just set the value directly so that the select element is also updated + if (api) { + api.page.len(s.length) + } + else { + settings._iDisplayLength = s.length; + } + } + // Restore key features - todo - for 1.11 this needs to be done by // subscribed events if ( s.start !== undefined ) { - settings._iDisplayStart = s.start; if(api === null) { + settings._iDisplayStart = s.start; settings.iInitDisplayStart = s.start; } - } - if ( s.length !== undefined ) { - settings._iDisplayLength = s.length; + else { + _fnPageChange(settings, s.start/settings._iDisplayLength); + } } // Order @@ -6832,7 +6833,7 @@ return 'dom'; } - + /** @@ -7224,8 +7225,10 @@ pluck: function ( prop ) { + let fn = DataTable.util.get(prop); + return this.map( function ( el ) { - return el[ prop ]; + return fn(el); } ); }, @@ -8319,22 +8322,35 @@ $(document).on('plugin-init.dt', function (e, context) { var api = new _Api( context ); - api.on( 'stateSaveParams', function ( e, settings, data ) { - var indexes = api.rows().iterator( 'row', function ( settings, idx ) { - return settings.aoData[idx]._detailsShow ? idx : undefined; - }); - data.childRows = api.rows( indexes ).ids( true ).toArray(); + api.on( 'stateSaveParams', function ( e, settings, d ) { + // This could be more compact with the API, but it is a lot faster as a simple + // internal loop + var idFn = settings.rowIdFn; + var data = settings.aoData; + var ids = []; + + for (var i=0 ; i y + ? -1 + : 1; + } + } + + return function ( d, type ) { + // Allow for a default value + if (d === null || d === undefined) { + if (def === '--now') { + // We treat everything as UTC further down, so no changes are + // made, as such need to get the local date / time as if it were + // UTC + var local = new Date(); + d = new Date( Date.UTC( + local.getFullYear(), local.getMonth(), local.getDate(), + local.getHours(), local.getMinutes(), local.getSeconds() + ) ); + } + else { + d = ''; + } + } + + if (type === 'type') { + // Typing uses the type name for fast matching + return typeName; + } + + if (d === '') { + return type !== 'sort' + ? '' + : __mldObj('0000-01-01 00:00:00', null, locale); + } + + // Shortcut. If `from` and `to` are the same, we are using the renderer to + // format for ordering, not display - its already in the display format. + if ( to !== null && from === to && type !== 'sort' && type !== 'type' && ! (d instanceof Date) ) { + return d; + } + + var dt = __mldObj(d, from, locale); + + if (dt === null) { + return d; + } + + if (type === 'sort') { + return dt; + } + + var formatted = to === null + ? __mld(dt, 'toDate', 'toJSDate', '')[localeString]() + : __mld(dt, 'format', 'toFormat', 'toISOString', to); + + // XSS protection + return type === 'display' ? + __htmlEscapeEntities( formatted ) : + formatted; + }; + } + } + + // Based on locale, determine standard number formatting + // Fallback for legacy browsers is US English + var __thousands = ','; + var __decimal = '.'; + + if (Intl) { + try { + var num = new Intl.NumberFormat().formatToParts(100000.1); + + for (var i=0 ; i').get(0).files,S.formdata=void 0!==window.FormData;var _=!!q.fn.prop;function o(e){var t=e.data;e.isDefaultPrevented()||(e.preventDefault(),q(e.target).closest("form").ajaxSubmit(t))}function i(e){var t=e.target,r=q(t);if(!r.is("[type=submit],[type=image]")){var a=r.closest("[type=submit]");if(0===a.length)return;t=a[0]}var n,o=t.form;"image"===(o.clk=t).type&&(void 0!==e.offsetX?(o.clk_x=e.offsetX,o.clk_y=e.offsetY):"function"==typeof q.fn.offset?(n=r.offset(),o.clk_x=e.pageX-n.left,o.clk_y=e.pageY-n.top):(o.clk_x=e.pageX-t.offsetLeft,o.clk_y=e.pageY-t.offsetTop)),setTimeout(function(){o.clk=o.clk_x=o.clk_y=null},100)}function N(){var e;q.fn.ajaxSubmit.debug&&(e="[jquery.form] "+Array.prototype.join.call(arguments,""),window.console&&window.console.log?window.console.log(e):window.opera&&window.opera.postError&&window.opera.postError(e))}q.fn.attr2=function(){if(!_)return this.attr.apply(this,arguments);var e=this.prop.apply(this,arguments);return e&&e.jquery||"string"==typeof e?e:this.attr.apply(this,arguments)},q.fn.ajaxSubmit=function(M,e,t,r){if(!this.length)return N("ajaxSubmit: skipping submit process - no element selected"),this;var O,a,n,o,X=this;"function"==typeof M?M={success:M}:"string"==typeof M||!1===M&&0',s)).css({position:"absolute",top:"-1000px",left:"-1000px"}),m=d[0],p={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(e){var t="timeout"===e?"timeout":"aborted";N("aborting upload... "+t),this.aborted=1;try{m.contentWindow.document.execCommand&&m.contentWindow.document.execCommand("Stop")}catch(e){}d.attr("src",l.iframeSrc),p.error=t,l.error&&l.error.call(l.context,p,t,e),f&&q.event.trigger("ajaxError",[p,l,t]),l.complete&&l.complete.call(l.context,p,t)}},(f=l.global)&&0==q.active++&&q.event.trigger("ajaxStart"),f&&q.event.trigger("ajaxSend",[p,l]),l.beforeSend&&!1===l.beforeSend.call(l.context,p,l))return l.global&&q.active--,g.reject(),g;if(p.aborted)return g.reject(),g;(a=i.clk)&&(n=a.name)&&!a.disabled&&(l.extraData=l.extraData||{},l.extraData[n]=a.value,"image"===a.type&&(l.extraData[n+".x"]=i.clk_x,l.extraData[n+".y"]=i.clk_y));var x=1,y=2;function b(t){var r=null;try{t.contentWindow&&(r=t.contentWindow.document)}catch(e){N("cannot get iframe.contentWindow document: "+e)}if(r)return r;try{r=t.contentDocument?t.contentDocument:t.document}catch(e){N("cannot get iframe.contentDocument: "+e),r=t.document}return r}var c=q("meta[name=csrf-token]").attr("content"),T=q("meta[name=csrf-param]").attr("content");function j(){var e=X.attr2("target"),t=X.attr2("action"),r=X.attr("enctype")||X.attr("encoding")||"multipart/form-data";i.setAttribute("target",o),O&&!/post/i.test(O)||i.setAttribute("method","POST"),t!==l.url&&i.setAttribute("action",l.url),l.skipEncodingOverride||O&&!/post/i.test(O)||X.attr({encoding:"multipart/form-data",enctype:"multipart/form-data"}),l.timeout&&(v=setTimeout(function(){h=!0,A(x)},l.timeout));var a=[];try{if(l.extraData)for(var n in l.extraData)l.extraData.hasOwnProperty(n)&&(q.isPlainObject(l.extraData[n])&&l.extraData[n].hasOwnProperty("name")&&l.extraData[n].hasOwnProperty("value")?a.push(q('',s).val(l.extraData[n].value).appendTo(i)[0]):a.push(q('',s).val(l.extraData[n]).appendTo(i)[0]));l.iframeTarget||d.appendTo(u),m.attachEvent?m.attachEvent("onload",A):m.addEventListener("load",A,!1),setTimeout(function e(){try{var t=b(m).readyState;N("state = "+t),t&&"uninitialized"===t.toLowerCase()&&setTimeout(e,50)}catch(e){N("Server abort: ",e," (",e.name,")"),A(y),v&&clearTimeout(v),v=void 0}},15);try{i.submit()}catch(e){document.createElement("form").submit.apply(i)}}finally{i.setAttribute("action",t),i.setAttribute("enctype",r),e?i.setAttribute("target",e):X.removeAttr("target"),q(a).remove()}}T&&c&&(l.extraData=l.extraData||{},l.extraData[T]=c),l.forceSync?j():setTimeout(j,10);var w,S,k,D=50;function A(e){if(!p.aborted&&!k){if((S=b(m))||(N("cannot access response document"),e=y),e===x&&p)return p.abort("timeout"),void g.reject(p,"timeout");if(e===y&&p)return p.abort("server abort"),void g.reject(p,"error","server abort");if(S&&S.location.href!==l.iframeSrc||h){m.detachEvent?m.detachEvent("onload",A):m.removeEventListener("load",A,!1);var t,r="success";try{if(h)throw"timeout";var a="xml"===l.dataType||S.XMLDocument||q.isXMLDoc(S);if(N("isXml="+a),!a&&window.opera&&(null===S.body||!S.body.innerHTML)&&--D)return N("requeing onLoad callback, DOM not available"),void setTimeout(A,250);var n=S.body?S.body:S.documentElement;p.responseText=n?n.innerHTML:null,p.responseXML=S.XMLDocument?S.XMLDocument:S,a&&(l.dataType="xml"),p.getResponseHeader=function(e){return{"content-type":l.dataType}[e.toLowerCase()]},n&&(p.status=Number(n.getAttribute("status"))||p.status,p.statusText=n.getAttribute("statusText")||p.statusText);var o,i,s,u=(l.dataType||"").toLowerCase(),c=/(json|script|text)/.test(u);c||l.textarea?(o=S.getElementsByTagName("textarea")[0])?(p.responseText=o.value,p.status=Number(o.getAttribute("status"))||p.status,p.statusText=o.getAttribute("statusText")||p.statusText):c&&(i=S.getElementsByTagName("pre")[0],s=S.getElementsByTagName("body")[0],i?p.responseText=i.textContent?i.textContent:i.innerText:s&&(p.responseText=s.textContent?s.textContent:s.innerText)):"xml"===u&&!p.responseXML&&p.responseText&&(p.responseXML=F(p.responseText));try{w=E(p,u,l)}catch(e){r="parsererror",p.error=t=e||r}}catch(e){N("error caught: ",e),r="error",p.error=t=e||r}p.aborted&&(N("upload aborted"),r=null),p.status&&(r=200<=p.status&&p.status<300||304===p.status?"success":"error"),"success"===r?(l.success&&l.success.call(l.context,w,"success",p),g.resolve(p.responseText,"success",p),f&&q.event.trigger("ajaxSuccess",[p,l])):r&&(void 0===t&&(t=p.statusText),l.error&&l.error.call(l.context,p,r,t),g.reject(p,"error",t),f&&q.event.trigger("ajaxError",[p,l,t])),f&&q.event.trigger("ajaxComplete",[p,l]),f&&!--q.active&&q.event.trigger("ajaxStop"),l.complete&&l.complete.call(l.context,p,r),k=!0,l.timeout&&clearTimeout(v),setTimeout(function(){l.iframeTarget?d.attr("src",l.iframeSrc):d.remove(),p.responseXML=null},100)}}}var F=q.parseXML||function(e,t){return window.ActiveXObject?((t=new ActiveXObject("Microsoft.XMLDOM")).async="false",t.loadXML(e)):t=(new DOMParser).parseFromString(e,"text/xml"),t&&t.documentElement&&"parsererror"!==t.documentElement.nodeName?t:null},L=q.parseJSON||function(e){return window.eval("("+e+")")},E=function(e,t,r){var a=e.getResponseHeader("content-type")||"",n=("xml"===t||!t)&&0<=a.indexOf("xml"),o=n?e.responseXML:e.responseText;return n&&"parsererror"===o.documentElement.nodeName&&q.error&&q.error("parsererror"),r&&r.dataFilter&&(o=r.dataFilter(o,t)),"string"==typeof o&&(("json"===t||!t)&&0<=a.indexOf("json")?o=L(o):("script"===t||!t)&&0<=a.indexOf("javascript")&&q.globalEval(o)),o};return g}},q.fn.ajaxForm=function(e,t,r,a){if(("string"==typeof e||!1===e&&0').get(0).files,r.formdata=void 0!==window.FormData;var a=!!e.fn.prop;function n(t){var r=t.data;t.isDefaultPrevented()||(t.preventDefault(),e(t.target).closest("form").ajaxSubmit(r))}function i(t){var r=t.target,a=e(r);if(!a.is("[type=submit],[type=image]")){var n=a.closest("[type=submit]");if(0===n.length)return;r=n[0]}var i=r.form;if(i.clk=r,"image"===r.type)if(void 0!==t.offsetX)i.clk_x=t.offsetX,i.clk_y=t.offsetY;else if("function"==typeof e.fn.offset){var o=a.offset();i.clk_x=t.pageX-o.left,i.clk_y=t.pageY-o.top}else i.clk_x=t.pageX-r.offsetLeft,i.clk_y=t.pageY-r.offsetTop;setTimeout(function(){i.clk=i.clk_x=i.clk_y=null},100)}function o(){if(e.fn.ajaxSubmit.debug){var t="[jquery.form] "+Array.prototype.join.call(arguments,"");window.console&&window.console.log?window.console.log(t):window.opera&&window.opera.postError&&window.opera.postError(t)}}e.fn.attr2=function(){if(!a)return this.attr.apply(this,arguments);var e=this.prop.apply(this,arguments);return e&&e.jquery||"string"==typeof e?e:this.attr.apply(this,arguments)},e.fn.ajaxSubmit=function(t,n,i,s){if(!this.length)return o("ajaxSubmit: skipping submit process - no element selected"),this;var u,c,l,f,d=this;"function"==typeof t?t={success:t}:"string"==typeof t||!1===t&&arguments.length>0?(t={url:t,data:n,dataType:i},"function"==typeof s&&(t.success=s)):void 0===t&&(t={}),u=t.method||t.type||this.attr2("method"),(l=(l="string"==typeof(c=t.url||this.attr2("action"))?e.trim(c):"")||window.location.href||"")&&(l=(l.match(/^([^#]+)/)||[])[1]),f=/(MSIE|Trident)/.test(navigator.userAgent||"")&&/^https/i.test(window.location.href||"")?"javascript:false":"about:blank",t=e.extend(!0,{url:l,success:e.ajaxSettings.success,type:u||e.ajaxSettings.type,iframeSrc:f},t);var m={};if(this.trigger("form-pre-serialize",[this,t,m]),m.veto)return o("ajaxSubmit: submit vetoed via form-pre-serialize trigger"),this;if(t.beforeSerialize&&!1===t.beforeSerialize(this,t))return o("ajaxSubmit: submit aborted via beforeSerialize callback"),this;var p=t.traditional;void 0===p&&(p=e.ajaxSettings.traditional);var h,v=[],g=this.formToArray(t.semantic,v,t.filtering);if(t.data){var x=e.isFunction(t.data)?t.data(g):t.data;t.extraData=x,h=e.param(x,p)}if(t.beforeSubmit&&!1===t.beforeSubmit(g,this,t))return o("ajaxSubmit: submit aborted via beforeSubmit callback"),this;if(this.trigger("form-submit-validate",[g,this,t,m]),m.veto)return o("ajaxSubmit: submit vetoed via form-submit-validate trigger"),this;var y=e.param(g,p);h&&(y=y?y+"&"+h:h),"GET"===t.type.toUpperCase()?(t.url+=(t.url.indexOf("?")>=0?"&":"?")+y,t.data=null):t.data=y;var b=[];if(t.resetForm&&b.push(function(){d.resetForm()}),t.clearForm&&b.push(function(){d.clearForm(t.includeHidden)}),!t.dataType&&t.target){var T=t.success||function(){};b.push(function(r,a,n){var i=arguments,o=t.replaceTarget?"replaceWith":"html";"html"==o&&(r=e.parseHTML(e("
      \n \n
      \n
      \n',Xe='\n \n \n \n \n',$e=(e,t)=>{let n=e.innerHTML,o;var i;t.iconHtml?o=Ge(t.iconHtml):"success"===t.icon?(o=Je,n=n.replace(/ style=".*?"/g,"")):o="error"===t.icon?Xe:(i={question:"?",warning:"!",info:"i"},Ge(i[t.icon])),n.trim()!==o.trim()&&y(e,o)},Qe=(e,t)=>{if(t.iconColor){e.style.color=t.iconColor,e.style.borderColor=t.iconColor;for(const n of[".swal2-success-line-tip",".swal2-success-line-long",".swal2-x-mark-line-left",".swal2-x-mark-line-right"])ge(e,n,"backgroundColor",t.iconColor);ge(e,".swal2-success-ring","borderColor",t.iconColor)}},Ge=e=>'
      ').concat(e,"
      "),et=(e,t)=>{const n=G();if(!t.imageUrl)return B(n);P(n,""),n.setAttribute("src",t.imageUrl),n.setAttribute("alt",t.imageAlt),A(n,"width",t.imageWidth),A(n,"height",t.imageHeight),n.className=p.image,v(n,t,"image")},tt=(e,n)=>{const o=ee();if(!n.progressSteps||0===n.progressSteps.length)return B(o);P(o),o.textContent="",n.currentProgressStep>=n.progressSteps.length&&a("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),n.progressSteps.forEach((e,t)=>{var e=(e=>{const t=document.createElement("li");return w(t,p["progress-step"]),y(t,e),t})(e);o.appendChild(e),t===n.currentProgressStep&&w(e,p["active-progress-step"]),t!==n.progressSteps.length-1&&(e=(e=>{const t=document.createElement("li");if(w(t,p["progress-step-line"]),e.progressStepsDistance)A(t,"width",e.progressStepsDistance);return t})(n),o.appendChild(e))})},nt=(e,t)=>{const n=$();he(n,t.title||t.titleText,"block"),t.title&&Le(t.title,n),t.titleText&&(n.innerText=t.titleText),v(n,t,"title")},ot=(e,t)=>{var n=m();const o=g();t.toast?(A(n,"width",t.width),o.style.width="100%",o.insertBefore(d(),X())):A(o,"width",t.width),A(o,"padding",t.padding),t.color&&(o.style.color=t.color),t.background&&(o.style.background=t.background),B(te());n=o;(n.className="".concat(p.popup," ").concat(x(n)?t.showClass.popup:""),t.toast)?(w([document.documentElement,document.body],p["toast-shown"]),w(n,p.toast)):w(n,p.modal);v(n,t,"popup"),"string"==typeof t.customClass&&w(n,t.customClass);t.icon&&w(n,p["icon-".concat(t.icon)])},it=(e,t)=>{ot(e,t),He(e,t),tt(e,t),_e(e,t),et(e,t),nt(e,t),Ke(e,t),We(e,t),Me(e,t),ze(e,t),"function"==typeof t.didRender&&t.didRender(g())},O=Object.freeze({cancel:"cancel",backdrop:"backdrop",close:"close",esc:"esc",timer:"timer"}),at=()=>{const e=i(document.body.children);e.forEach(e=>{e===m()||e.contains(m())||(e.hasAttribute("aria-hidden")&&e.setAttribute("data-previous-aria-hidden",e.getAttribute("aria-hidden")),e.setAttribute("aria-hidden","true"))})},rt=()=>{const e=i(document.body.children);e.forEach(e=>{e.hasAttribute("data-previous-aria-hidden")?(e.setAttribute("aria-hidden",e.getAttribute("data-previous-aria-hidden")),e.removeAttribute("data-previous-aria-hidden")):e.removeAttribute("aria-hidden")})},st=["swal-title","swal-html","swal-footer"],ct=e=>{const n={};return i(e.querySelectorAll("swal-param")).forEach(e=>{j(e,["name","value"]);var t=e.getAttribute("name"),e=e.getAttribute("value");"boolean"==typeof r[t]&&"false"===e&&(n[t]=!1),"object"==typeof r[t]&&(n[t]=JSON.parse(e))}),n},lt=e=>{const n={};return i(e.querySelectorAll("swal-button")).forEach(e=>{j(e,["type","color","aria-label"]);var t=e.getAttribute("type");n["".concat(t,"ButtonText")]=e.innerHTML,n["show".concat(q(t),"Button")]=!0,e.hasAttribute("color")&&(n["".concat(t,"ButtonColor")]=e.getAttribute("color")),e.hasAttribute("aria-label")&&(n["".concat(t,"ButtonAriaLabel")]=e.getAttribute("aria-label"))}),n},ut=e=>{const t={},n=e.querySelector("swal-image");return n&&(j(n,["src","width","height","alt"]),n.hasAttribute("src")&&(t.imageUrl=n.getAttribute("src")),n.hasAttribute("width")&&(t.imageWidth=n.getAttribute("width")),n.hasAttribute("height")&&(t.imageHeight=n.getAttribute("height")),n.hasAttribute("alt")&&(t.imageAlt=n.getAttribute("alt"))),t},dt=e=>{const t={},n=e.querySelector("swal-icon");return n&&(j(n,["type","color"]),n.hasAttribute("type")&&(t.icon=n.getAttribute("type")),n.hasAttribute("color")&&(t.iconColor=n.getAttribute("color")),t.iconHtml=n.innerHTML),t},pt=e=>{const n={},t=e.querySelector("swal-input");t&&(j(t,["type","label","placeholder","value"]),n.input=t.getAttribute("type")||"text",t.hasAttribute("label")&&(n.inputLabel=t.getAttribute("label")),t.hasAttribute("placeholder")&&(n.inputPlaceholder=t.getAttribute("placeholder")),t.hasAttribute("value")&&(n.inputValue=t.getAttribute("value")));e=e.querySelectorAll("swal-input-option");return e.length&&(n.inputOptions={},i(e).forEach(e=>{j(e,["value"]);var t=e.getAttribute("value"),e=e.innerHTML;n.inputOptions[t]=e})),n},mt=(e,t)=>{const n={};for(const o in t){const i=t[o],a=e.querySelector(i);a&&(j(a,[]),n[i.replace(/^swal-/,"")]=a.innerHTML.trim())}return n},gt=e=>{const t=st.concat(["swal-param","swal-button","swal-image","swal-icon","swal-input","swal-input-option"]);i(e.children).forEach(e=>{e=e.tagName.toLowerCase();-1===t.indexOf(e)&&a("Unrecognized element <".concat(e,">"))})},j=(t,n)=>{i(t.attributes).forEach(e=>{-1===n.indexOf(e.name)&&a(['Unrecognized attribute "'.concat(e.name,'" on <').concat(t.tagName.toLowerCase(),">."),"".concat(n.length?"Allowed attributes are: ".concat(n.join(", ")):"To set the value, use HTML within the element.")])})};var ht={email:(e,t)=>/^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid email address"),url:(e,t)=>/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid URL")};function ft(e){(t=e).inputValidator||Object.keys(ht).forEach(e=>{t.input===e&&(t.inputValidator=ht[e])}),e.showLoaderOnConfirm&&!e.preConfirm&&a("showLoaderOnConfirm is set to true, but preConfirm is not defined.\nshowLoaderOnConfirm should be used together with preConfirm, see usage example:\nhttps://sweetalert2.github.io/#ajax-request"),(n=e).target&&("string"!=typeof n.target||document.querySelector(n.target))&&("string"==typeof n.target||n.target.appendChild)||(a('Target parameter is not valid, defaulting to "body"'),n.target="body"),"string"==typeof e.title&&(e.title=e.title.split("\n").join("
      "));var t,n=e,e=Pe();if(ve())l("SweetAlert2 requires document to initialize");else{const o=document.createElement("div"),i=(o.className=p.container,e&&w(o,p["no-transition"]),y(o,Ae),xe(n.target));i.appendChild(o),Ee(n),Te(i),Be(),Se(o,n)}}class bt{constructor(e,t){this.callback=e,this.remaining=t,this.running=!1,this.start()}start(){return this.running||(this.running=!0,this.started=new Date,this.id=setTimeout(this.callback,this.remaining)),this.remaining}stop(){return this.running&&(this.running=!1,clearTimeout(this.id),this.remaining-=(new Date).getTime()-this.started.getTime()),this.remaining}increase(e){var t=this.running;return t&&this.stop(),this.remaining+=e,t&&this.start(),this.remaining}getTimerLeft(){return this.running&&(this.stop(),this.start()),this.remaining}isRunning(){return this.running}}const yt=()=>{null===s.previousBodyPadding&&document.body.scrollHeight>window.innerHeight&&(s.previousBodyPadding=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight="".concat(s.previousBodyPadding+(()=>{const e=document.createElement("div");e.className=p["scrollbar-measure"],document.body.appendChild(e);var t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t})(),"px"))},vt=()=>{null!==s.previousBodyPadding&&(document.body.style.paddingRight="".concat(s.previousBodyPadding,"px"),s.previousBodyPadding=null)},wt=()=>{if((/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream||"MacIntel"===navigator.platform&&1{t=Ct(e)},n.ontouchmove=e=>{t&&(e.preventDefault(),e.stopPropagation())}}{const o=navigator.userAgent,i=!!o.match(/iPad/i)||!!o.match(/iPhone/i),a=!!o.match(/WebKit/i),r=i&&a&&!o.match(/CriOS/i);r&&(e=44,g().scrollHeight>window.innerHeight-44&&(m().style.paddingBottom="".concat(44,"px")))}}},Ct=e=>{var t,n=e.target,o=m();return!((t=e).touches&&t.touches.length&&"stylus"===t.touches[0].touchType||(t=e).touches&&1{var e;c(document.body,p.iosfix)&&(e=parseInt(document.body.style.top,10),C(document.body,p.iosfix),document.body.style.top="",document.body.scrollTop=-1*e)},At=10,Pt=e=>{const t=g();if(e.target===t){const n=m();t.removeEventListener(je,Pt),n.style.overflowY="auto"}},Bt=(e,t)=>{je&&ye(t)?(e.style.overflowY="hidden",t.addEventListener(je,Pt)):e.style.overflowY="auto"},xt=(e,t,n)=>{wt(),t&&"hidden"!==n&&yt(),setTimeout(()=>{e.scrollTop=0})},Et=(e,t,n)=>{w(e,n.showClass.backdrop),t.style.setProperty("opacity","0","important"),P(t,"grid"),setTimeout(()=>{w(t,n.showClass.popup),t.style.removeProperty("opacity")},At),w([document.documentElement,document.body],p.shown),n.heightAuto&&n.backdrop&&!n.toast&&w([document.documentElement,document.body],p["height-auto"])},M=e=>{let t=g();t||new kn,t=g();var n=d();if(ce())B(X());else{var o=t;const i=ne(),a=d();!e&&x(h())&&(e=h());P(i),e&&(B(e),a.setAttribute("data-button-to-replace",e.className));a.parentNode.insertBefore(a,e),w([o,i],p.loading)}P(n),t.setAttribute("data-loading","true"),t.setAttribute("aria-busy","true"),t.focus()},Tt=(t,n)=>{const o=g(),i=e=>Lt[n.input](o,Ot(e),n);U(n.inputOptions)||F(n.inputOptions)?(M(h()),u(n.inputOptions).then(e=>{t.hideLoading(),i(e)})):"object"==typeof n.inputOptions?i(n.inputOptions):l("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(typeof n.inputOptions))},St=(t,n)=>{const o=t.getInput();B(o),u(n.inputValue).then(e=>{o.value="number"===n.input?parseFloat(e)||0:"".concat(e),P(o),o.focus(),t.hideLoading()}).catch(e=>{l("Error in inputValue promise: ".concat(e)),o.value="",P(o),o.focus(),t.hideLoading()})},Lt={select:(e,t,i)=>{const a=k(e,p.select),r=(e,t,n)=>{const o=document.createElement("option");o.value=n,y(o,t),o.selected=jt(n,i.inputValue),e.appendChild(o)};t.forEach(e=>{var t=e[0];const n=e[1];if(Array.isArray(n)){const o=document.createElement("optgroup");o.label=t,o.disabled=!1,a.appendChild(o),n.forEach(e=>r(o,e[1],e[0]))}else r(a,n,t)}),a.focus()},radio:(e,t,a)=>{const r=k(e,p.radio),n=(t.forEach(e=>{var t=e[0],e=e[1];const n=document.createElement("input"),o=document.createElement("label"),i=(n.type="radio",n.name=p.radio,n.value=t,jt(t,a.inputValue)&&(n.checked=!0),document.createElement("span"));y(i,e),i.className=p.label,o.appendChild(n),o.appendChild(i),r.appendChild(o)}),r.querySelectorAll("input"));n.length&&n[0].focus()}},Ot=n=>{const o=[];return"undefined"!=typeof Map&&n instanceof Map?n.forEach((e,t)=>{let n=e;"object"==typeof n&&(n=Ot(n)),o.push([t,n])}):Object.keys(n).forEach(e=>{let t=n[e];"object"==typeof t&&(t=Ot(t)),o.push([e,t])}),o},jt=(e,t)=>t&&t.toString()===e.toString();function Mt(){var e,t=S.innerParams.get(this);if(t){const n=S.domCache.get(this);B(n.loader),ce()?t.icon&&P(X()):(t=n,(e=t.popup.getElementsByClassName(t.loader.getAttribute("data-button-to-replace"))).length?P(e[0],"inline-block"):fe()&&B(t.actions)),C([n.popup,n.actions],p.loading),n.popup.removeAttribute("aria-busy"),n.popup.removeAttribute("data-loading"),n.confirmButton.disabled=!1,n.denyButton.disabled=!1,n.cancelButton.disabled=!1}}var It={swalPromiseResolve:new WeakMap,swalPromiseReject:new WeakMap};const Ht=()=>h()&&h().click();const Dt=e=>{e.keydownTarget&&e.keydownHandlerAdded&&(e.keydownTarget.removeEventListener("keydown",e.keydownHandler,{capture:e.keydownListenerCapture}),e.keydownHandlerAdded=!1)},qt=(e,t,n)=>{const o=re();if(o.length)return(t+=n)===o.length?t=0:-1===t&&(t=o.length-1),o[t].focus();g().focus()},Vt=["ArrowRight","ArrowDown"],Nt=["ArrowLeft","ArrowUp"],Rt=(e,n,t)=>{var o=S.innerParams.get(e);if(o&&(!n.isComposing&&229!==n.keyCode))if(o.stopKeydownPropagation&&n.stopPropagation(),"Enter"===n.key)e=e,s=n,i=o,R(i.allowEnterKey)&&s.target&&e.getInput()&&s.target instanceof HTMLElement&&s.target.outerHTML===e.getInput().outerHTML&&(["textarea","file"].includes(i.input)||(Ht(),s.preventDefault()));else if("Tab"===n.key){e=n;var i=o;var a=e.target,r=re();let t=-1;for(let e=0;eKt(e,o)),Dt(E)),/^((?!chrome|android).)*safari/i.test(navigator.userAgent)?(t.setAttribute("style","display:none !important"),t.removeAttribute("class"),t.innerHTML=""):t.remove(),se()&&(vt(),kt(),rt()),C([document.documentElement,document.body],[p.shown,p["height-auto"],p["no-backdrop"],p["toast-shown"]])}function Ft(e){e=void 0!==(n=e)?Object.assign({isConfirmed:!1,isDenied:!1,isDismissed:!1},n):{isConfirmed:!1,isDenied:!1,isDismissed:!0};const t=It.swalPromiseResolve.get(this);var n=(e=>{const t=g();if(!t)return false;const n=S.innerParams.get(e);if(!n||c(t,n.hideClass.popup))return false;C(t,n.showClass.popup),w(t,n.hideClass.popup);const o=m();return C(o,n.showClass.backdrop),w(o,n.hideClass.backdrop),zt(e,t,n),true})(this);this.isAwaitingPromise()?e.isDismissed||(Wt(this),t(e)):n&&t(e)}const Wt=e=>{e.isAwaitingPromise()&&(S.awaitingPromise.delete(e),S.innerParams.get(e)||e._destroy())},zt=(e,t,n)=>{var o,i,a,r=m(),s=je&&ye(t);"function"==typeof n.willClose&&n.willClose(t),s?(s=e,o=t,t=r,i=n.returnFocus,a=n.didClose,E.swalCloseEventFinishedCallback=Ut.bind(null,s,t,i,a),o.addEventListener(je,function(e){e.target===o&&(E.swalCloseEventFinishedCallback(),delete E.swalCloseEventFinishedCallback)})):Ut(e,r,n.returnFocus,n.didClose)},Kt=(e,t)=>{setTimeout(()=>{"function"==typeof t&&t.bind(e.params)(),e._destroy()})};function _t(e,t,n){const o=S.domCache.get(e);t.forEach(e=>{o[e].disabled=n})}function Yt(e,t){if(!e)return!1;if("radio"===e.type){const n=e.parentNode.parentNode,o=n.querySelectorAll("input");for(let e=0;e{e.isAwaitingPromise()?(Jt(S,e),S.awaitingPromise.set(e,!0)):(Jt(It,e),Jt(S,e))},Jt=(e,t)=>{for(const n in e)e[n].delete(t)};e=Object.freeze({hideLoading:Mt,disableLoading:Mt,getInput:function(e){var t=S.innerParams.get(e||this);return(e=S.domCache.get(e||this))?de(e.popup,t.input):null},close:Ft,isAwaitingPromise:function(){return!!S.awaitingPromise.get(this)},rejectPromise:function(e){const t=It.swalPromiseReject.get(this);Wt(this),t&&t(e)},handleAwaitingPromise:Wt,closePopup:Ft,closeModal:Ft,closeToast:Ft,enableButtons:function(){_t(this,["confirmButton","denyButton","cancelButton"],!1)},disableButtons:function(){_t(this,["confirmButton","denyButton","cancelButton"],!0)},enableInput:function(){return Yt(this.getInput(),!1)},disableInput:function(){return Yt(this.getInput(),!0)},showValidationMessage:function(e){const t=S.domCache.get(this);var n=S.innerParams.get(this);y(t.validationMessage,e),t.validationMessage.className=p["validation-message"],n.customClass&&n.customClass.validationMessage&&w(t.validationMessage,n.customClass.validationMessage),P(t.validationMessage);const o=this.getInput();o&&(o.setAttribute("aria-invalid",!0),o.setAttribute("aria-describedby",p["validation-message"]),pe(o),w(o,p.inputerror))},resetValidationMessage:function(){var e=S.domCache.get(this);e.validationMessage&&B(e.validationMessage);const t=this.getInput();t&&(t.removeAttribute("aria-invalid"),t.removeAttribute("aria-describedby"),C(t,p.inputerror))},getProgressSteps:function(){return S.domCache.get(this).progressSteps},update:function(e){var t=g(),n=S.innerParams.get(this);if(!t||c(t,n.hideClass.popup))return a("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.");t=(t=>{const n={};return Object.keys(t).forEach(e=>{if(Y(e))n[e]=t[e];else a("Invalid parameter to update: ".concat(e))}),n})(e),n=Object.assign({},n,t),it(this,n),S.innerParams.set(this,n),Object.defineProperties(this,{params:{value:Object.assign({},this.params,e),writable:!1,enumerable:!0}})},_destroy:function(){var e=S.domCache.get(this);const t=S.innerParams.get(this);t?(e.popup&&E.swalCloseEventFinishedCallback&&(E.swalCloseEventFinishedCallback(),delete E.swalCloseEventFinishedCallback),"function"==typeof t.didDestroy&&t.didDestroy(),e=this,Zt(e),delete e.params,delete E.keydownHandler,delete E.keydownTarget,delete E.currentInstance):Zt(this)}});const Xt=(e,t)=>{var n=S.innerParams.get(e);if(!n.input)return l('The "input" parameter is needed to be set when using returnInputValueOn'.concat(q(t)));var o=((e,t)=>{const n=e.getInput();if(!n)return null;switch(t.input){case"checkbox":return n.checked?1:0;case"radio":return(o=n).checked?o.value:null;case"file":return(o=n).files.length?null!==o.getAttribute("multiple")?o.files:o.files[0]:null;default:return t.inputAutoTrim?n.value.trim():n.value}var o})(e,n);if(n.inputValidator){var i=e;var a=o;var r=t;const s=S.innerParams.get(i),c=(i.disableInput(),Promise.resolve().then(()=>u(s.inputValidator(a,s.validationMessage))));c.then(e=>{i.enableButtons(),i.enableInput(),e?i.showValidationMessage(e):("deny"===r?$t:en)(i,a)})}else e.getInput().checkValidity()?("deny"===t?$t:en)(e,o):(e.enableButtons(),e.showValidationMessage(n.validationMessage))},$t=(t,n)=>{const e=S.innerParams.get(t||void 0);if(e.showLoaderOnDeny&&M(f()),e.preDeny){S.awaitingPromise.set(t||void 0,!0);const o=Promise.resolve().then(()=>u(e.preDeny(n,e.validationMessage)));o.then(e=>{!1===e?(t.hideLoading(),Wt(t)):t.closePopup({isDenied:!0,value:void 0===e?n:e})}).catch(e=>Gt(t||void 0,e))}else t.closePopup({isDenied:!0,value:n})},Qt=(e,t)=>{e.closePopup({isConfirmed:!0,value:t})},Gt=(e,t)=>{e.rejectPromise(t)},en=(t,n)=>{const e=S.innerParams.get(t||void 0);if(e.showLoaderOnConfirm&&M(),e.preConfirm){t.resetValidationMessage(),S.awaitingPromise.set(t||void 0,!0);const o=Promise.resolve().then(()=>u(e.preConfirm(n,e.validationMessage)));o.then(e=>{x(te())||!1===e?(t.hideLoading(),Wt(t)):Qt(t,void 0===e?n:e)}).catch(e=>Gt(t||void 0,e))}else Qt(t,n)},tn=(n,e,o)=>{e.popup.onclick=()=>{var e,t=S.innerParams.get(n);t&&((e=t).showConfirmButton||e.showDenyButton||e.showCancelButton||e.showCloseButton||t.timer||t.input)||o(O.close)}};let nn=!1;const on=t=>{t.popup.onmousedown=()=>{t.container.onmouseup=function(e){t.container.onmouseup=void 0,e.target===t.container&&(nn=!0)}}},an=t=>{t.container.onmousedown=()=>{t.popup.onmouseup=function(e){t.popup.onmouseup=void 0,e.target!==t.popup&&!t.popup.contains(e.target)||(nn=!0)}}},rn=(n,o,i)=>{o.container.onclick=e=>{var t=S.innerParams.get(n);nn?nn=!1:e.target===o.container&&R(t.allowOutsideClick)&&i(O.backdrop)}},sn=e=>"object"==typeof e&&e.jquery,cn=e=>e instanceof Element||sn(e);const ln=()=>{if(E.timeout){{const n=ie();var e=parseInt(window.getComputedStyle(n).width),t=(n.style.removeProperty("transition"),n.style.width="100%",parseInt(window.getComputedStyle(n).width)),e=e/t*100;n.style.removeProperty("transition"),n.style.width="".concat(e,"%")}return E.timeout.stop()}},un=()=>{var e;if(E.timeout)return e=E.timeout.start(),le(e),e};let dn=!1;const pn={};const mn=t=>{for(let e=t.target;e&&e!==document;e=e.parentNode)for(const o in pn){var n=e.getAttribute(o);if(n)return void pn[o].fire({template:n})}};var gn=Object.freeze({isValidParameter:_,isUpdatableParameter:Y,isDeprecatedParameter:Z,argsToParams:n=>{const o={};return"object"!=typeof n[0]||cn(n[0])?["title","html","icon"].forEach((e,t)=>{t=n[t];"string"==typeof t||cn(t)?o[e]=t:void 0!==t&&l("Unexpected type of ".concat(e,'! Expected "string" or "Element", got ').concat(typeof t))}):Object.assign(o,n[0]),o},isVisible:()=>x(g()),clickConfirm:Ht,clickDeny:()=>f()&&f().click(),clickCancel:()=>b()&&b().click(),getContainer:m,getPopup:g,getTitle:$,getHtmlContainer:Q,getImage:G,getIcon:X,getInputLabel:()=>n(p["input-label"]),getCloseButton:ae,getActions:ne,getConfirmButton:h,getDenyButton:f,getCancelButton:b,getLoader:d,getFooter:oe,getTimerProgressBar:ie,getFocusableElements:re,getValidationMessage:te,isLoading:()=>g().hasAttribute("data-loading"),fire:function(){for(var e=arguments.length,t=new Array(e),n=0;nE.timeout&&E.timeout.getTimerLeft(),stopTimer:ln,resumeTimer:un,toggleTimer:()=>{var e=E.timeout;return e&&(e.running?ln:un)()},increaseTimer:e=>{if(E.timeout)return e=E.timeout.increase(e),le(e,!0),e},isTimerRunning:()=>E.timeout&&E.timeout.isRunning(),bindClickHandler:function(){var e=0new Promise((e,t)=>{const n=e=>{l.closePopup({isDismissed:!0,dismiss:e})};var o,i,a;It.swalPromiseResolve.set(l,e),It.swalPromiseReject.set(l,t),u.confirmButton.onclick=()=>{var e=l,t=S.innerParams.get(e);e.disableButtons(),t.input?Xt(e,"confirm"):en(e,!0)},u.denyButton.onclick=()=>{var e=l,t=S.innerParams.get(e);e.disableButtons(),t.returnInputValueOnDeny?Xt(e,"deny"):$t(e,!1)},u.cancelButton.onclick=()=>{var e=l,t=n;e.disableButtons(),t(O.cancel)},u.closeButton.onclick=()=>n(O.close),e=l,t=u,a=n,S.innerParams.get(e).toast?tn(e,t,a):(on(t),an(t),rn(e,t,a)),o=l,e=E,t=d,i=n,Dt(e),t.toast||(e.keydownHandler=e=>Rt(o,e,i),e.keydownTarget=t.keydownListenerCapture?window:g(),e.keydownListenerCapture=t.keydownListenerCapture,e.keydownTarget.addEventListener("keydown",e.keydownHandler,{capture:e.keydownListenerCapture}),e.keydownHandlerAdded=!0),a=l,"select"===(t=d).input||"radio"===t.input?Tt(a,t):["text","email","number","tel","textarea"].includes(t.input)&&(U(t.inputValue)||F(t.inputValue))&&(M(h()),St(a,t));{var r=d;const s=m(),c=g();"function"==typeof r.willOpen&&r.willOpen(c),e=window.getComputedStyle(document.body).overflowY,Et(s,c,r),setTimeout(()=>{Bt(s,c)},At),se()&&(xt(s,r.scrollbarPadding,e),at()),ce()||E.previousActiveElement||(E.previousActiveElement=document.activeElement),"function"==typeof r.didOpen&&setTimeout(()=>r.didOpen(c)),C(s,p["no-transition"])}yn(E,d,n),vn(u,d),setTimeout(()=>{u.container.scrollTop=0})}),fn=(e,t)=>{var n=(e=>{e="string"==typeof e.template?document.querySelector(e.template):e.template;if(!e)return{};e=e.content,gt(e),e=Object.assign(ct(e),lt(e),ut(e),dt(e),pt(e),mt(e,st));return e})(e);const o=Object.assign({},r,t,n,e);return o.showClass=Object.assign({},r.showClass,o.showClass),o.hideClass=Object.assign({},r.hideClass,o.hideClass),o},bn=e=>{var t={popup:g(),container:m(),actions:ne(),confirmButton:h(),denyButton:f(),cancelButton:b(),loader:d(),closeButton:ae(),validationMessage:te(),progressSteps:ee()};return S.domCache.set(e,t),t},yn=(e,t,n)=>{var o=ie();B(o),t.timer&&(e.timeout=new bt(()=>{n("timer"),delete e.timeout},t.timer),t.timerProgressBar&&(P(o),v(o,t,"timerProgressBar"),setTimeout(()=>{e.timeout&&e.timeout.running&&le(t.timer)})))},vn=(e,t)=>{if(!t.toast)return R(t.allowEnterKey)?void(wn(e,t)||qt(t,-1,1)):Cn()},wn=(e,t)=>t.focusDeny&&x(e.denyButton)?(e.denyButton.focus(),!0):t.focusCancel&&x(e.cancelButton)?(e.cancelButton.focus(),!0):!(!t.focusConfirm||!x(e.confirmButton))&&(e.confirmButton.focus(),!0),Cn=()=>{document.activeElement instanceof HTMLElement&&"function"==typeof document.activeElement.blur&&document.activeElement.blur()},kn=(Object.assign(H.prototype,e),Object.assign(H,gn),Object.keys(e).forEach(e=>{H[e]=function(){if(I)return I[e](...arguments)}}),H.DismissReason=O,H.version="11.4.19",H);return kn.default=kn}),void 0!==this&&this.Sweetalert2&&(this.swal=this.sweetAlert=this.Swal=this.SweetAlert=this.Sweetalert2); +"undefined"!=typeof document&&function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,".swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4!important;grid-row:1/4!important;grid-template-columns:1fr 99fr 1fr;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px hsla(0deg,0%,0%,.075),0 1px 2px hsla(0deg,0%,0%,.075),1px 2px 4px hsla(0deg,0%,0%,.075),1px 3px 8px hsla(0deg,0%,0%,.075),2px 4px 16px hsla(0deg,0%,0%,.075);pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:grid;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;box-sizing:border-box;grid-template-areas:\"top-start top top-end\" \"center-start center center-end\" \"bottom-start bottom-center bottom-end\";grid-template-rows:minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto);grid-template-rows:minmax(min-content,auto) minmax(min-content,auto) minmax(min-content,auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-bottom-start,.swal2-container.swal2-center-start,.swal2-container.swal2-top-start{grid-template-columns:minmax(0,1fr) auto auto}.swal2-container.swal2-bottom,.swal2-container.swal2-center,.swal2-container.swal2-top{grid-template-columns:auto minmax(0,1fr) auto}.swal2-container.swal2-bottom-end,.swal2-container.swal2-center-end,.swal2-container.swal2-top-end{grid-template-columns:auto auto minmax(0,1fr)}.swal2-container.swal2-top-start>.swal2-popup{align-self:start}.swal2-container.swal2-top>.swal2-popup{grid-column:2;align-self:start;justify-self:center}.swal2-container.swal2-top-end>.swal2-popup,.swal2-container.swal2-top-right>.swal2-popup{grid-column:3;align-self:start;justify-self:end}.swal2-container.swal2-center-left>.swal2-popup,.swal2-container.swal2-center-start>.swal2-popup{grid-row:2;align-self:center}.swal2-container.swal2-center>.swal2-popup{grid-column:2;grid-row:2;align-self:center;justify-self:center}.swal2-container.swal2-center-end>.swal2-popup,.swal2-container.swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;align-self:center;justify-self:end}.swal2-container.swal2-bottom-left>.swal2-popup,.swal2-container.swal2-bottom-start>.swal2-popup{grid-column:1;grid-row:3;align-self:end}.swal2-container.swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;justify-self:center;align-self:end}.swal2-container.swal2-bottom-end>.swal2-popup,.swal2-container.swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;align-self:end;justify-self:end}.swal2-container.swal2-grow-fullscreen>.swal2-popup,.swal2-container.swal2-grow-row>.swal2-popup{grid-column:1/4;width:100%}.swal2-container.swal2-grow-column>.swal2-popup,.swal2-container.swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}.swal2-container.swal2-no-transition{transition:none!important}.swal2-popup{display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0,100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:#545454;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-title{position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 transparent #2778c4 transparent}.swal2-styled{margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px transparent;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#7066e0;color:#fff;font-size:1em}.swal2-styled.swal2-confirm:focus{box-shadow:0 0 0 3px rgba(112,102,224,.5)}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#dc3741;color:#fff;font-size:1em}.swal2-styled.swal2-deny:focus{box-shadow:0 0 0 3px rgba(220,55,65,.5)}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#6e7881;color:#fff;font-size:1em}.swal2-styled.swal2-cancel:focus{box-shadow:0 0 0 3px rgba(110,120,129,.5)}.swal2-styled.swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-styled:focus{outline:0}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:inherit;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto!important;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:2em auto 1em}.swal2-close{z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:0 0;color:#ccc;font-family:serif;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close:focus{outline:0;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-html-container{z-index:1;justify-content:center;margin:1em 1.6em .3em;padding:0;overflow:auto;color:inherit;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em 2em 3px}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:0 0;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px transparent;color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em 2em 3px;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-file{width:75%;margin-right:auto;margin-left:auto;background:0 0;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:0 0;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{flex-shrink:0;margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto 0}.swal2-validation-message{align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:\"!\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:.25em solid transparent;border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-warning.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-warning.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-i-mark .5s;animation:swal2-animate-i-mark .5s}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-info.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-info.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-i-mark .8s;animation:swal2-animate-i-mark .8s}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-question.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-question.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-question-mark .8s;animation:swal2-animate-question-mark .8s}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:0 0;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}.swal2-no-war{display:flex;position:fixed;z-index:1061;top:0;left:0;align-items:center;justify-content:center;width:100%;height:3.375em;background:#20232a;color:#fff;text-align:center}.swal2-no-war a{color:#61dafb;text-decoration:none}.swal2-no-war a:hover{text-decoration:underline}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@-webkit-keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@-webkit-keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{background-color:transparent!important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:transparent;pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}"); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/sweetalert2/sweetalert2.css b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/sweetalert2/sweetalert2.css index 028e03b7..32bbaa1a 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/sweetalert2/sweetalert2.css +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/sweetalert2/sweetalert2.css @@ -6,7 +6,7 @@ padding: 1em; overflow-y: hidden; background: #fff; - box-shadow: 0 0 1px rgba(0, 0, 0, 0.075), 0 1px 2px rgba(0, 0, 0, 0.075), 1px 2px 4px rgba(0, 0, 0, 0.075), 1px 3px 8px rgba(0, 0, 0, 0.075), 2px 4px 16px rgba(0, 0, 0, 0.075); + box-shadow: 0 0 1px hsla(0deg, 0%, 0%, 0.075), 0 1px 2px hsla(0deg, 0%, 0%, 0.075), 1px 2px 4px hsla(0deg, 0%, 0%, 0.075), 1px 3px 8px hsla(0deg, 0%, 0%, 0.075), 2px 4px 16px hsla(0deg, 0%, 0%, 0.075); pointer-events: all; } .swal2-popup.swal2-toast > * { @@ -394,7 +394,6 @@ bottom: 0; left: 0; grid-column: auto !important; - height: 0.25em; overflow: hidden; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; @@ -478,7 +477,7 @@ transition: border-color 0.1s, box-shadow 0.1s; border: 1px solid #d9d9d9; border-radius: 0.1875em; - background: inherit; + background: transparent; box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06), 0 0 0 3px transparent; color: inherit; font-size: 1.125em; @@ -538,7 +537,7 @@ width: 75%; margin-right: auto; margin-left: auto; - background: inherit; + background: transparent; font-size: 1.125em; } @@ -551,7 +550,7 @@ min-width: 50%; max-width: 100%; padding: 0.375em 0.625em; - background: inherit; + background: transparent; color: inherit; font-size: 1.125em; } @@ -782,7 +781,7 @@ max-width: 100%; margin: 1.25em auto; padding: 0; - background: inherit; + background: transparent; font-weight: 600; } .swal2-progress-steps li { @@ -854,6 +853,28 @@ left: auto; } +.swal2-no-war { + display: flex; + position: fixed; + z-index: 1061; + top: 0; + left: 0; + align-items: center; + justify-content: center; + width: 100%; + height: 3.375em; + background: #20232a; + color: #fff; + text-align: center; +} +.swal2-no-war a { + color: #61dafb; + text-decoration: none; +} +.swal2-no-war a:hover { + text-decoration: underline; +} + @-webkit-keyframes swal2-toast-show { 0% { transform: translateY(-0.625em) rotateZ(2deg); diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/sweetalert2/sweetalert2.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/sweetalert2/sweetalert2.js index 100bee40..e3f0ade6 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/sweetalert2/sweetalert2.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/sweetalert2/sweetalert2.js @@ -1,5 +1,5 @@ /*! -* sweetalert2 v11.3.3 +* sweetalert2 v11.4.19 * Released under the MIT License. */ (function (global, factory) { @@ -27,27 +27,28 @@ }; /** * Capitalize the first letter of a string - * @param str + * @param {string} str + * @returns {string} */ const capitalizeFirstLetter = str => str.charAt(0).toUpperCase() + str.slice(1); /** - * Convert NodeList to Array - * @param nodeList + * @param {NodeList | HTMLCollection | NamedNodeMap | DOMTokenList} nodeList + * @returns {array} */ const toArray = nodeList => Array.prototype.slice.call(nodeList); /** - * Standardise console warnings - * @param message + * Standardize console warnings + * @param {string | array} message */ const warn = message => { console.warn("".concat(consolePrefix, " ").concat(typeof message === 'object' ? message.join(' ') : message)); }; /** - * Standardise console errors - * @param message + * Standardize console errors + * @param {string} message */ const error = message => { @@ -62,7 +63,7 @@ const previousWarnOnceMessages = []; /** * Show a console warning, but only if it hasn't already been shown - * @param message + * @param {string} message */ const warnOnce = message => { @@ -88,6 +89,7 @@ const hasToPromiseFn = arg => arg && typeof arg.toPromise === 'function'; const asPromise = arg => hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg); const isPromise = arg => arg && Promise.resolve(arg) === arg; + const getRandomElement = arr => arr[Math.floor(Math.random() * arr.length)]; const defaultParams = { title: '', @@ -247,6 +249,11 @@ }; const swalPrefix = 'swal2-'; + /** + * @param {string[]} items + * @returns {object} + */ + const prefix = items => { const result = {}; @@ -256,7 +263,7 @@ return result; }; - const swalClasses = prefix(['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'show', 'hide', 'close', 'title', 'html-container', 'actions', 'confirm', 'deny', 'cancel', 'default-outline', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'input-label', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loader', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error']); + const swalClasses = prefix(['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'show', 'hide', 'close', 'title', 'html-container', 'actions', 'confirm', 'deny', 'cancel', 'default-outline', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'input-label', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loader', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error', 'no-war']); const iconTypes = prefix(['success', 'warning', 'info', 'question', 'error']); /** @@ -266,42 +273,119 @@ */ const getContainer = () => document.body.querySelector(".".concat(swalClasses.container)); + /** + * @param {string} selectorString + * @returns {HTMLElement | null} + */ + const elementBySelector = selectorString => { const container = getContainer(); return container ? container.querySelector(selectorString) : null; }; + /** + * @param {string} className + * @returns {HTMLElement | null} + */ const elementByClass = className => { return elementBySelector(".".concat(className)); }; + /** + * @returns {HTMLElement | null} + */ + const getPopup = () => elementByClass(swalClasses.popup); + /** + * @returns {HTMLElement | null} + */ + const getIcon = () => elementByClass(swalClasses.icon); + /** + * @returns {HTMLElement | null} + */ + const getTitle = () => elementByClass(swalClasses.title); + /** + * @returns {HTMLElement | null} + */ + const getHtmlContainer = () => elementByClass(swalClasses['html-container']); + /** + * @returns {HTMLElement | null} + */ + const getImage = () => elementByClass(swalClasses.image); + /** + * @returns {HTMLElement | null} + */ + const getProgressSteps = () => elementByClass(swalClasses['progress-steps']); + /** + * @returns {HTMLElement | null} + */ + const getValidationMessage = () => elementByClass(swalClasses['validation-message']); + /** + * @returns {HTMLElement | null} + */ + const getConfirmButton = () => elementBySelector(".".concat(swalClasses.actions, " .").concat(swalClasses.confirm)); + /** + * @returns {HTMLElement | null} + */ + const getDenyButton = () => elementBySelector(".".concat(swalClasses.actions, " .").concat(swalClasses.deny)); + /** + * @returns {HTMLElement | null} + */ + const getInputLabel = () => elementByClass(swalClasses['input-label']); + /** + * @returns {HTMLElement | null} + */ + const getLoader = () => elementBySelector(".".concat(swalClasses.loader)); + /** + * @returns {HTMLElement | null} + */ + const getCancelButton = () => elementBySelector(".".concat(swalClasses.actions, " .").concat(swalClasses.cancel)); + /** + * @returns {HTMLElement | null} + */ + const getActions = () => elementByClass(swalClasses.actions); + /** + * @returns {HTMLElement | null} + */ + const getFooter = () => elementByClass(swalClasses.footer); + /** + * @returns {HTMLElement | null} + */ + const getTimerProgressBar = () => elementByClass(swalClasses['timer-progress-bar']); + /** + * @returns {HTMLElement | null} + */ + const getCloseButton = () => elementByClass(swalClasses.close); // https://github.com/jkup/focusable/blob/master/index.js const focusable = "\n a[href],\n area[href],\n input:not([disabled]),\n select:not([disabled]),\n textarea:not([disabled]),\n button:not([disabled]),\n iframe,\n object,\n embed,\n [tabindex=\"0\"],\n [contenteditable],\n audio[controls],\n video[controls],\n summary\n"; + /** + * @returns {HTMLElement[]} + */ + const getFocusableElements = () => { const focusableElementsWithTabindex = toArray(getPopup().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')) // sort according to tabindex .sort((a, b) => { - a = parseInt(a.getAttribute('tabindex')); - b = parseInt(b.getAttribute('tabindex')); + const tabindexA = parseInt(a.getAttribute('tabindex')); + const tabindexB = parseInt(b.getAttribute('tabindex')); - if (a > b) { + if (tabindexA > tabindexB) { return 1; - } else if (a < b) { + } else if (tabindexA < tabindexB) { return -1; } @@ -310,12 +394,24 @@ const otherFocusableElements = toArray(getPopup().querySelectorAll(focusable)).filter(el => el.getAttribute('tabindex') !== '-1'); return uniqueArray(focusableElementsWithTabindex.concat(otherFocusableElements)).filter(el => isVisible(el)); }; + /** + * @returns {boolean} + */ + const isModal = () => { - return !hasClass(document.body, swalClasses['toast-shown']) && !hasClass(document.body, swalClasses['no-backdrop']); + return hasClass(document.body, swalClasses.shown) && !hasClass(document.body, swalClasses['toast-shown']) && !hasClass(document.body, swalClasses['no-backdrop']); }; + /** + * @returns {boolean} + */ + const isToast = () => { return getPopup() && hasClass(getPopup(), swalClasses.toast); }; + /** + * @returns {boolean} + */ + const isLoading = () => { return getPopup().hasAttribute('data-loading'); }; @@ -366,6 +462,10 @@ return true; }; + /** + * @param {HTMLElement} elem + * @param {SweetAlertOptions} params + */ const removeCustomClasses = (elem, params) => { toArray(elem.classList).forEach(className => { @@ -374,6 +474,12 @@ } }); }; + /** + * @param {HTMLElement} elem + * @param {SweetAlertOptions} params + * @param {string} className + */ + const applyCustomClass = (elem, params, className) => { removeCustomClasses(elem, params); @@ -388,20 +494,20 @@ }; /** * @param {HTMLElement} popup - * @param {string} inputType + * @param {import('./renderers/renderInput').InputClass} inputClass * @returns {HTMLInputElement | null} */ - const getInput = (popup, inputType) => { - if (!inputType) { + const getInput = (popup, inputClass) => { + if (!inputClass) { return null; } - switch (inputType) { + switch (inputClass) { case 'select': case 'textarea': case 'file': - return popup.querySelector(".".concat(swalClasses.popup, " > .").concat(swalClasses[inputType])); + return popup.querySelector(".".concat(swalClasses.popup, " > .").concat(swalClasses[inputClass])); case 'checkbox': return popup.querySelector(".".concat(swalClasses.popup, " > .").concat(swalClasses.checkbox, " input")); @@ -417,7 +523,7 @@ } }; /** - * @param {HTMLInputElement} input + * @param {HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement} input */ const focusInput = input => { @@ -432,7 +538,7 @@ }; /** * @param {HTMLElement | HTMLElement[] | null} target - * @param {string | string[]} classList + * @param {string | string[] | readonly string[]} classList * @param {boolean} condition */ @@ -457,7 +563,7 @@ }; /** * @param {HTMLElement | HTMLElement[] | null} target - * @param {string | string[]} classList + * @param {string | string[] | readonly string[]} classList */ const addClass = (target, classList) => { @@ -465,7 +571,7 @@ }; /** * @param {HTMLElement | HTMLElement[] | null} target - * @param {string | string[]} classList + * @param {string | string[] | readonly string[]} classList */ const removeClass = (target, classList) => { @@ -521,20 +627,55 @@ const hide = elem => { elem.style.display = 'none'; }; + /** + * @param {HTMLElement} parent + * @param {string} selector + * @param {string} property + * @param {string} value + */ + const setStyle = (parent, selector, property, value) => { + /** @type {HTMLElement} */ const el = parent.querySelector(selector); if (el) { el.style[property] = value; } }; - const toggle = (elem, condition, display) => { + /** + * @param {HTMLElement} elem + * @param {any} condition + * @param {string} display + */ + + const toggle = function (elem, condition) { + let display = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'flex'; condition ? show(elem, display) : hide(elem); - }; // borrowed from jquery $(elem).is(':visible') implementation + }; + /** + * borrowed from jquery $(elem).is(':visible') implementation + * + * @param {HTMLElement} elem + * @returns {boolean} + */ const isVisible = elem => !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length)); + /** + * @returns {boolean} + */ + const allButtonsAreHidden = () => !isVisible(getConfirmButton()) && !isVisible(getDenyButton()) && !isVisible(getCancelButton()); - const isScrollable = elem => !!(elem.scrollHeight > elem.clientHeight); // borrowed from https://stackoverflow.com/a/46352119 + /** + * @returns {boolean} + */ + + const isScrollable = elem => !!(elem.scrollHeight > elem.clientHeight); + /** + * borrowed from https://stackoverflow.com/a/46352119 + * + * @param {HTMLElement} elem + * @returns {boolean} + */ const hasCssAnimation = elem => { const style = window.getComputedStyle(elem); @@ -542,6 +683,11 @@ const transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0'); return animDuration > 0 || transDuration > 0; }; + /** + * @param {number} timer + * @param {boolean} reset + */ + const animateTimerProgressBar = function (timer) { let reset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; const timerProgressBar = getTimerProgressBar(); @@ -569,21 +715,33 @@ timerProgressBar.style.width = "".concat(timerProgressBarPercent, "%"); }; - // Detect Node env + /** + * Detect Node env + * + * @returns {boolean} + */ const isNodeEnv = () => typeof window === 'undefined' || typeof document === 'undefined'; const RESTORE_FOCUS_TIMEOUT = 100; + /** @type {GlobalState} */ + const globalState = {}; const focusPreviousActiveElement = () => { - if (globalState.previousActiveElement && globalState.previousActiveElement.focus) { + if (globalState.previousActiveElement instanceof HTMLElement) { globalState.previousActiveElement.focus(); globalState.previousActiveElement = null; } else if (document.body) { document.body.focus(); } - }; // Restore previous active (focused) element + }; + /** + * Restore previous active (focused) element + * + * @param {boolean} returnFocus + * @returns {Promise} + */ const restoreActiveElement = returnFocus => { @@ -604,6 +762,9 @@ }; const sweetHTML = "\n
      \n \n
        \n
        \n \n

        \n
        \n \n \n
        \n \n \n
        \n \n
        \n \n \n
        \n
        \n
        \n \n \n \n
        \n
        \n
        \n
        \n
        \n
        \n").replace(/(^|\n)\s*/g, ''); + /** + * @returns {boolean} + */ const resetOldContainer = () => { const oldContainer = getContainer(); @@ -625,9 +786,15 @@ const popup = getPopup(); const input = getDirectChildByClass(popup, swalClasses.input); const file = getDirectChildByClass(popup, swalClasses.file); + /** @type {HTMLInputElement} */ + const range = popup.querySelector(".".concat(swalClasses.range, " input")); + /** @type {HTMLOutputElement} */ + const rangeOutput = popup.querySelector(".".concat(swalClasses.range, " output")); const select = getDirectChildByClass(popup, swalClasses.select); + /** @type {HTMLInputElement} */ + const checkbox = popup.querySelector(".".concat(swalClasses.checkbox, " input")); const textarea = getDirectChildByClass(popup, swalClasses.textarea); input.oninput = resetValidationMessage; @@ -643,11 +810,20 @@ range.onchange = () => { resetValidationMessage(); - range.nextSibling.value = range.value; + rangeOutput.value = range.value; }; }; + /** + * @param {string | HTMLElement} target + * @returns {HTMLElement} + */ + const getTarget = target => typeof target === 'string' ? document.querySelector(target) : target; + /** + * @param {SweetAlertOptions} params + */ + const setupAccessibility = params => { const popup = getPopup(); @@ -658,14 +834,20 @@ popup.setAttribute('aria-modal', 'true'); } }; + /** + * @param {HTMLElement} targetElement + */ + const setupRTL = targetElement => { if (window.getComputedStyle(targetElement).direction === 'rtl') { addClass(getContainer(), swalClasses.rtl); } }; - /* - * Add modal + backdrop to DOM + /** + * Add modal + backdrop + no-war message for Russians to DOM + * + * @param {SweetAlertOptions} params */ @@ -692,27 +874,95 @@ setupAccessibility(params); setupRTL(targetElement); addInputChangeListeners(); + noWarMessageForRussians(container, params); }; + /** + * @param {HTMLElement} container + * @param {SweetAlertOptions} params + */ + + const noWarMessageForRussians = (container, params) => { + if (params.toast) { + return; + } // This message is targeted at people who are corrupted by propaganda, everybody else + // is already against war either silently or actively. + // + // The point is to wrap the truth-bomb into a patriotic title so they will actually click it + // and listen to the uncomfortable truth about the war from the people they love or respect. + + + const message = getRandomElement([{ + text: 'ШВАРЦЕНЕГГЕР обратился
        к РУССКОМУ НАРОДУ о войне', + // Arnold is loved in Russia by all people including those who are for this war + // His speech might change the mind of those who are brainwashed by propaganda + youtubeId: 'fWClXZd9c78' + }, { + text: 'РУССКИЙ ПАТРИОТ
        открыл главную тайну спецоперации', + // In this video one of the most famous Russian nationalist leaders, Dmitry Demushkin, + // explains that this war has no sense and produces the exact opposite result of what + // it was intended to do. + youtubeId: '_RjBNkn88yA' + }, { + text: 'ГЕРОЙ НОВОРОССИИ СТРЕЛКОВ
        дал оценку ходу спецоперации', + // In this video Igor Girkin, who played a key role in the annexation of Crimea, + // explains that this war has failed already and all possible outcomes are bad for Russia. + youtubeId: 'yUmzQT4C8JY' + }, { + text: 'ФИНСКИЙ ДРУГ РОССИИ
        говорит ПО-РУССКИ о спецоперации', + youtubeId: 'hkCYb6edUrQ' + }, { + text: 'ЮРИЙ ПОДОЛЯКА честно
        о генералах РУССКОЙ АРМИИ', + youtubeId: 'w4-_8BJKfpk' + }, { + text: 'Полковник ФСБ СТРЕЛКОВ
        об успехах РОССИИ в спецоперации', + youtubeId: 'saK5UTKroDA' + }]); // The message will only be shown to Russian users visiting Russian sites + + if (/^ru\b/.test(navigator.language) && location.host.match(/\.(ru|su|xn--p1ai)$/)) { + const noWar = document.createElement('div'); + noWar.className = swalClasses['no-war']; + setInnerHtml(noWar, "").concat(message.text, "")); + container.appendChild(noWar); + container.style.paddingTop = '4em'; + } + }; + + /** + * @param {HTMLElement | object | string} param + * @param {HTMLElement} target + */ const parseHtmlToContainer = (param, target) => { // DOM element if (param instanceof HTMLElement) { - target.appendChild(param); // Object - } else if (typeof param === 'object') { - handleObject(param, target); // Plain string - } else if (param) { + target.appendChild(param); + } // Object + else if (typeof param === 'object') { + handleObject(param, target); + } // Plain string + else if (param) { setInnerHtml(target, param); } }; + /** + * @param {object} param + * @param {HTMLElement} target + */ const handleObject = (param, target) => { // JQuery element(s) if (param.jquery) { - handleJqueryElem(target, param); // For other objects use their string representation - } else { + handleJqueryElem(target, param); + } // For other objects use their string representation + else { setInnerHtml(target, param.toString()); } }; + /** + * @param {HTMLElement} target + * @param {HTMLElement} elem + */ + const handleJqueryElem = (target, elem) => { target.textContent = ''; @@ -726,6 +976,10 @@ } }; + /** + * @returns {'webkitAnimationEnd' | 'animationend' | false} + */ + const animationEndEvent = (() => { // Prevent run in Node env @@ -737,8 +991,9 @@ const testEl = document.createElement('div'); const transEndEventNames = { WebkitAnimation: 'webkitAnimationEnd', - OAnimation: 'oAnimationEnd oanimationend', - animation: 'animationend' + // Chrome, Safari and Opera + animation: 'animationend' // Standard syntax + }; for (const i in transEndEventNames) { @@ -750,7 +1005,12 @@ return false; })(); - // https://github.com/twbs/bootstrap/blob/master/js/src/modal.js + /** + * Measure scrollbar width for padding body during modal show/hide + * https://github.com/twbs/bootstrap/blob/master/js/src/modal.js + * + * @returns {number} + */ const measureScrollbar = () => { const scrollDiv = document.createElement('div'); @@ -761,6 +1021,11 @@ return scrollbarWidth; }; + /** + * @param {SweetAlert2} instance + * @param {SweetAlertOptions} params + */ + const renderActions = (instance, params) => { const actions = getActions(); const loader = getLoader(); // Actions (buttons) wrapper @@ -779,6 +1044,11 @@ setInnerHtml(loader, params.loaderHtml); applyCustomClass(loader, params, 'loader'); }; + /** + * @param {HTMLElement} actions + * @param {HTMLElement} loader + * @param {SweetAlertOptions} params + */ function renderButtons(actions, loader, params) { const confirmButton = getConfirmButton(); @@ -801,6 +1071,13 @@ } } } + /** + * @param {HTMLElement} confirmButton + * @param {HTMLElement} denyButton + * @param {HTMLElement} cancelButton + * @param {SweetAlertOptions} params + */ + function handleButtonsStyling(confirmButton, denyButton, cancelButton, params) { if (!params.buttonsStyling) { @@ -824,6 +1101,12 @@ addClass(cancelButton, swalClasses['default-outline']); } } + /** + * @param {HTMLElement} button + * @param {'confirm' | 'deny' | 'cancel'} buttonType + * @param {SweetAlertOptions} params + */ + function renderButton(button, buttonType, params) { toggle(button, params["show".concat(capitalizeFirstLetter(buttonType), "Button")], 'inline-block'); @@ -837,6 +1120,29 @@ addClass(button, params["".concat(buttonType, "ButtonClass")]); } + /** + * @param {SweetAlert2} instance + * @param {SweetAlertOptions} params + */ + + const renderContainer = (instance, params) => { + const container = getContainer(); + + if (!container) { + return; + } + + handleBackdropParam(container, params.backdrop); + handlePositionParam(container, params.position); + handleGrowParam(container, params.grow); // Custom class + + applyCustomClass(container, params, 'container'); + }; + /** + * @param {HTMLElement} container + * @param {SweetAlertOptions['backdrop']} backdrop + */ + function handleBackdropParam(container, backdrop) { if (typeof backdrop === 'string') { container.style.background = backdrop; @@ -844,6 +1150,11 @@ addClass([document.documentElement, document.body], swalClasses['no-backdrop']); } } + /** + * @param {HTMLElement} container + * @param {SweetAlertOptions['position']} position + */ + function handlePositionParam(container, position) { if (position in swalClasses) { @@ -853,6 +1164,11 @@ addClass(container, swalClasses.center); } } + /** + * @param {HTMLElement} container + * @param {SweetAlertOptions['grow']} grow + */ + function handleGrowParam(container, grow) { if (grow && typeof grow === 'string') { @@ -864,20 +1180,6 @@ } } - const renderContainer = (instance, params) => { - const container = getContainer(); - - if (!container) { - return; - } - - handleBackdropParam(container, params.backdrop); - handlePositionParam(container, params.position); - handleGrowParam(container, params.grow); // Custom class - - applyCustomClass(container, params, 'container'); - }; - /** * This module contains `WeakMap`s for each effectively-"private property" that a `Swal` has. * For example, to set the private property "foo" of `this` to "bar", you can `privateProps.foo.set(this, 'bar')` @@ -894,18 +1196,25 @@ domCache: new WeakMap() }; - const inputTypes = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea']; + /// + /** @type {InputClass[]} */ + + const inputClasses = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea']; + /** + * @param {SweetAlert2} instance + * @param {SweetAlertOptions} params + */ + const renderInput = (instance, params) => { const popup = getPopup(); const innerParams = privateProps.innerParams.get(instance); const rerender = !innerParams || params.input !== innerParams.input; - inputTypes.forEach(inputType => { - const inputClass = swalClasses[inputType]; - const inputContainer = getDirectChildByClass(popup, inputClass); // set attributes + inputClasses.forEach(inputClass => { + const inputContainer = getDirectChildByClass(popup, swalClasses[inputClass]); // set attributes - setAttributes(inputType, params.inputAttributes); // set class + setAttributes(inputClass, params.inputAttributes); // set class - inputContainer.className = inputClass; + inputContainer.className = swalClasses[inputClass]; if (rerender) { hide(inputContainer); @@ -921,6 +1230,9 @@ setCustomClass(params); } }; + /** + * @param {SweetAlertOptions} params + */ const showInput = params => { if (!renderInputType[params.input]) { @@ -929,12 +1241,16 @@ const inputContainer = getInputContainer(params.input); const input = renderInputType[params.input](inputContainer, params); - show(input); // input autofocus + show(inputContainer); // input autofocus setTimeout(() => { focusInput(input); }); }; + /** + * @param {HTMLInputElement} input + */ + const removeAttributes = input => { for (let i = 0; i < input.attributes.length; i++) { @@ -945,9 +1261,14 @@ } } }; + /** + * @param {InputClass} inputClass + * @param {SweetAlertOptions['inputAttributes']} inputAttributes + */ - const setAttributes = (inputType, inputAttributes) => { - const input = getInput(getPopup(), inputType); + + const setAttributes = (inputClass, inputAttributes) => { + const input = getInput(getPopup(), inputClass); if (!input) { return; @@ -959,20 +1280,35 @@ input.setAttribute(attr, inputAttributes[attr]); } }; + /** + * @param {SweetAlertOptions} params + */ + const setCustomClass = params => { const inputContainer = getInputContainer(params.input); - if (params.customClass) { + if (typeof params.customClass === 'object') { addClass(inputContainer, params.customClass.input); } }; + /** + * @param {HTMLInputElement | HTMLTextAreaElement} input + * @param {SweetAlertOptions} params + */ + const setInputPlaceholder = (input, params) => { if (!input.placeholder || params.inputPlaceholder) { input.placeholder = params.inputPlaceholder; } }; + /** + * @param {Input} input + * @param {Input} prependTo + * @param {SweetAlertOptions} params + */ + const setInputLabel = (input, prependTo, params) => { if (params.inputLabel) { @@ -981,47 +1317,88 @@ const labelClass = swalClasses['input-label']; label.setAttribute('for', input.id); label.className = labelClass; - addClass(label, params.customClass.inputLabel); + + if (typeof params.customClass === 'object') { + addClass(label, params.customClass.inputLabel); + } + label.innerText = params.inputLabel; prependTo.insertAdjacentElement('beforebegin', label); } }; + /** + * @param {SweetAlertOptions['input']} inputType + * @returns {HTMLElement} + */ + const getInputContainer = inputType => { - const inputClass = swalClasses[inputType] ? swalClasses[inputType] : swalClasses.input; - return getDirectChildByClass(getPopup(), inputClass); + return getDirectChildByClass(getPopup(), swalClasses[inputType] || swalClasses.input); }; + /** + * @param {HTMLInputElement | HTMLOutputElement | HTMLTextAreaElement} input + * @param {SweetAlertOptions['inputValue']} inputValue + */ - const renderInputType = {}; - renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = (input, params) => { - if (typeof params.inputValue === 'string' || typeof params.inputValue === 'number') { - input.value = params.inputValue; - } else if (!isPromise(params.inputValue)) { - warn("Unexpected type of inputValue! Expected \"string\", \"number\" or \"Promise\", got \"".concat(typeof params.inputValue, "\"")); + const checkAndSetInputValue = (input, inputValue) => { + if (['string', 'number'].includes(typeof inputValue)) { + input.value = "".concat(inputValue); + } else if (!isPromise(inputValue)) { + warn("Unexpected type of inputValue! Expected \"string\", \"number\" or \"Promise\", got \"".concat(typeof inputValue, "\"")); } + }; + /** @type Record Input> */ + + + const renderInputType = {}; + /** + * @param {HTMLInputElement} input + * @param {SweetAlertOptions} params + * @returns {HTMLInputElement} + */ + renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = (input, params) => { + checkAndSetInputValue(input, params.inputValue); setInputLabel(input, input, params); setInputPlaceholder(input, params); input.type = params.input; return input; }; + /** + * @param {HTMLInputElement} input + * @param {SweetAlertOptions} params + * @returns {HTMLInputElement} + */ + renderInputType.file = (input, params) => { setInputLabel(input, input, params); setInputPlaceholder(input, params); return input; }; + /** + * @param {HTMLInputElement} range + * @param {SweetAlertOptions} params + * @returns {HTMLInputElement} + */ + renderInputType.range = (range, params) => { const rangeInput = range.querySelector('input'); const rangeOutput = range.querySelector('output'); - rangeInput.value = params.inputValue; + checkAndSetInputValue(rangeInput, params.inputValue); rangeInput.type = params.input; - rangeOutput.value = params.inputValue; + checkAndSetInputValue(rangeOutput, params.inputValue); setInputLabel(rangeInput, range, params); return range; }; + /** + * @param {HTMLSelectElement} select + * @param {SweetAlertOptions} params + * @returns {HTMLSelectElement} + */ + renderInputType.select = (select, params) => { select.textContent = ''; @@ -1038,34 +1415,54 @@ setInputLabel(select, select, params); return select; }; + /** + * @param {HTMLInputElement} radio + * @returns {HTMLInputElement} + */ + renderInputType.radio = radio => { radio.textContent = ''; return radio; }; + /** + * @param {HTMLLabelElement} checkboxContainer + * @param {SweetAlertOptions} params + * @returns {HTMLInputElement} + */ + renderInputType.checkbox = (checkboxContainer, params) => { - /** @type {HTMLInputElement} */ const checkbox = getInput(getPopup(), 'checkbox'); checkbox.value = '1'; checkbox.id = swalClasses.checkbox; checkbox.checked = Boolean(params.inputValue); const label = checkboxContainer.querySelector('span'); setInnerHtml(label, params.inputPlaceholder); - return checkboxContainer; + return checkbox; }; + /** + * @param {HTMLTextAreaElement} textarea + * @param {SweetAlertOptions} params + * @returns {HTMLTextAreaElement} + */ + renderInputType.textarea = (textarea, params) => { - textarea.value = params.inputValue; + checkAndSetInputValue(textarea, params.inputValue); setInputPlaceholder(textarea, params); setInputLabel(textarea, textarea, params); + /** + * @param {HTMLElement} el + * @returns {number} + */ + + const getMargin = el => parseInt(window.getComputedStyle(el).marginLeft) + parseInt(window.getComputedStyle(el).marginRight); // https://github.com/sweetalert2/sweetalert2/issues/2291 - const getMargin = el => parseInt(window.getComputedStyle(el).marginLeft) + parseInt(window.getComputedStyle(el).marginRight); setTimeout(() => { - // #2291 + // https://github.com/sweetalert2/sweetalert2/issues/1699 if ('MutationObserver' in window) { - // #1699 const initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width); const textareaResizeHandler = () => { @@ -1087,23 +1484,35 @@ return textarea; }; + /** + * @param {SweetAlert2} instance + * @param {SweetAlertOptions} params + */ + const renderContent = (instance, params) => { const htmlContainer = getHtmlContainer(); applyCustomClass(htmlContainer, params, 'htmlContainer'); // Content as HTML if (params.html) { parseHtmlToContainer(params.html, htmlContainer); - show(htmlContainer, 'block'); // Content as plain text - } else if (params.text) { + show(htmlContainer, 'block'); + } // Content as plain text + else if (params.text) { htmlContainer.textContent = params.text; - show(htmlContainer, 'block'); // No content - } else { + show(htmlContainer, 'block'); + } // No content + else { hide(htmlContainer); } renderInput(instance, params); }; + /** + * @param {SweetAlert2} instance + * @param {SweetAlertOptions} params + */ + const renderFooter = (instance, params) => { const footer = getFooter(); toggle(footer, params.footer); @@ -1116,6 +1525,11 @@ applyCustomClass(footer, params, 'footer'); }; + /** + * @param {SweetAlert2} instance + * @param {SweetAlertOptions} params + */ + const renderCloseButton = (instance, params) => { const closeButton = getCloseButton(); setInnerHtml(closeButton, params.closeButtonHtml); // Custom class @@ -1125,6 +1539,11 @@ closeButton.setAttribute('aria-label', params.closeButtonAriaLabel); }; + /** + * @param {SweetAlert2} instance + * @param {SweetAlertOptions} params + */ + const renderIcon = (instance, params) => { const innerParams = privateProps.innerParams.get(instance); const icon = getIcon(); // if the given icon already rendered, apply the styling without re-rendering the icon @@ -1137,12 +1556,14 @@ } if (!params.icon && !params.iconHtml) { - return hide(icon); + hide(icon); + return; } if (params.icon && Object.keys(iconTypes).indexOf(params.icon) === -1) { error("Unknown icon! Expected \"success\", \"error\", \"warning\", \"info\" or \"question\", got \"".concat(params.icon, "\"")); - return hide(icon); + hide(icon); + return; } show(icon); // Custom or default content @@ -1152,6 +1573,10 @@ addClass(icon, params.showClass.icon); }; + /** + * @param {HTMLElement} icon + * @param {SweetAlertOptions} params + */ const applyStyles = (icon, params) => { for (const iconType in iconTypes) { @@ -1164,15 +1589,17 @@ setColor(icon, params); // Success icon background color - adjustSuccessIconBackgoundColor(); // Custom class + adjustSuccessIconBackgroundColor(); // Custom class applyCustomClass(icon, params, 'icon'); }; // Adjust success icon background color to match the popup background color - const adjustSuccessIconBackgoundColor = () => { + const adjustSuccessIconBackgroundColor = () => { const popup = getPopup(); const popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color'); + /** @type {NodeListOf} */ + const successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix'); for (let i = 0; i < successIconParts.length; i++) { @@ -1180,24 +1607,42 @@ } }; + const successIconHtml = "\n
        \n \n
        \n
        \n"; + const errorIconHtml = "\n \n \n \n \n"; + /** + * @param {HTMLElement} icon + * @param {SweetAlertOptions} params + */ + const setContent = (icon, params) => { - icon.textContent = ''; + let oldContent = icon.innerHTML; + let newContent; if (params.iconHtml) { - setInnerHtml(icon, iconContent(params.iconHtml)); + newContent = iconContent(params.iconHtml); } else if (params.icon === 'success') { - setInnerHtml(icon, "\n
        \n \n
        \n
        \n "); + newContent = successIconHtml; + oldContent = oldContent.replace(/ style=".*?"/g, ''); // undo adjustSuccessIconBackgroundColor() } else if (params.icon === 'error') { - setInnerHtml(icon, "\n \n \n \n \n "); + newContent = errorIconHtml; } else { const defaultIconHtml = { question: '?', warning: '!', info: 'i' }; - setInnerHtml(icon, iconContent(defaultIconHtml[params.icon])); + newContent = iconContent(defaultIconHtml[params.icon]); + } + + if (oldContent.trim() !== newContent.trim()) { + setInnerHtml(icon, newContent); } }; + /** + * @param {HTMLElement} icon + * @param {SweetAlertOptions} params + */ + const setColor = (icon, params) => { if (!params.iconColor) { @@ -1213,9 +1658,19 @@ setStyle(icon, '.swal2-success-ring', 'borderColor', params.iconColor); }; + /** + * @param {string} content + * @returns {string} + */ + const iconContent = content => "
        ").concat(content, "
        "); + /** + * @param {SweetAlert2} instance + * @param {SweetAlertOptions} params + */ + const renderImage = (instance, params) => { const image = getImage(); @@ -1235,23 +1690,10 @@ applyCustomClass(image, params, 'image'); }; - const createStepElement = step => { - const stepEl = document.createElement('li'); - addClass(stepEl, swalClasses['progress-step']); - setInnerHtml(stepEl, step); - return stepEl; - }; - - const createLineElement = params => { - const lineEl = document.createElement('li'); - addClass(lineEl, swalClasses['progress-step-line']); - - if (params.progressStepsDistance) { - lineEl.style.width = params.progressStepsDistance; - } - - return lineEl; - }; + /** + * @param {SweetAlert2} instance + * @param {SweetAlertOptions} params + */ const renderProgressSteps = (instance, params) => { const progressStepsContainer = getProgressSteps(); @@ -1281,6 +1723,38 @@ } }); }; + /** + * @param {string} step + * @returns {HTMLLIElement} + */ + + const createStepElement = step => { + const stepEl = document.createElement('li'); + addClass(stepEl, swalClasses['progress-step']); + setInnerHtml(stepEl, step); + return stepEl; + }; + /** + * @param {SweetAlertOptions} params + * @returns {HTMLLIElement} + */ + + + const createLineElement = params => { + const lineEl = document.createElement('li'); + addClass(lineEl, swalClasses['progress-step-line']); + + if (params.progressStepsDistance) { + applyNumericalStyle(lineEl, 'width', params.progressStepsDistance); + } + + return lineEl; + }; + + /** + * @param {SweetAlert2} instance + * @param {SweetAlertOptions} params + */ const renderTitle = (instance, params) => { const title = getTitle(); @@ -1298,12 +1772,17 @@ applyCustomClass(title, params, 'title'); }; + /** + * @param {SweetAlert2} instance + * @param {SweetAlertOptions} params + */ + const renderPopup = (instance, params) => { const container = getContainer(); const popup = getPopup(); // Width + // https://github.com/sweetalert2/sweetalert2/issues/2170 if (params.toast) { - // #2170 applyNumericalStyle(container, 'width', params.width); popup.style.width = '100%'; popup.insertBefore(getLoader(), getIcon()); @@ -1327,6 +1806,10 @@ addClasses(popup, params); }; + /** + * @param {HTMLElement} popup + * @param {SweetAlertOptions} params + */ const addClasses = (popup, params) => { // Default Class + showClass when updating Swal.update({}) @@ -1352,6 +1835,11 @@ } }; + /** + * @param {SweetAlert2} instance + * @param {SweetAlertOptions} params + */ + const render = (instance, params) => { renderPopup(instance, params); renderContainer(instance, params); @@ -1414,32 +1902,39 @@ if (!template) { return {}; } + /** @type {DocumentFragment} */ + const templateContent = template.content; showWarningsForElements(templateContent); const result = Object.assign(getSwalParams(templateContent), getSwalButtons(templateContent), getSwalImage(templateContent), getSwalIcon(templateContent), getSwalInput(templateContent), getSwalStringParams(templateContent, swalStringParams)); return result; }; + /** + * @param {DocumentFragment} templateContent + */ const getSwalParams = templateContent => { const result = {}; toArray(templateContent.querySelectorAll('swal-param')).forEach(param => { showWarningsForAttributes(param, ['name', 'value']); const paramName = param.getAttribute('name'); - let value = param.getAttribute('value'); + const value = param.getAttribute('value'); if (typeof defaultParams[paramName] === 'boolean' && value === 'false') { - value = false; + result[paramName] = false; } if (typeof defaultParams[paramName] === 'object') { - value = JSON.parse(value); + result[paramName] = JSON.parse(value); } - - result[paramName] = value; }); return result; }; + /** + * @param {DocumentFragment} templateContent + */ + const getSwalButtons = templateContent => { const result = {}; @@ -1459,9 +1954,15 @@ }); return result; }; + /** + * @param {DocumentFragment} templateContent + */ + const getSwalImage = templateContent => { const result = {}; + /** @type {HTMLElement} */ + const image = templateContent.querySelector('swal-image'); if (image) { @@ -1486,9 +1987,15 @@ return result; }; + /** + * @param {DocumentFragment} templateContent + */ + const getSwalIcon = templateContent => { const result = {}; + /** @type {HTMLElement} */ + const icon = templateContent.querySelector('swal-icon'); if (icon) { @@ -1507,9 +2014,15 @@ return result; }; + /** + * @param {DocumentFragment} templateContent + */ + const getSwalInput = templateContent => { const result = {}; + /** @type {HTMLElement} */ + const input = templateContent.querySelector('swal-input'); if (input) { @@ -1543,12 +2056,19 @@ return result; }; + /** + * @param {DocumentFragment} templateContent + * @param {string[]} paramNames + */ + const getSwalStringParams = (templateContent, paramNames) => { const result = {}; for (const i in paramNames) { const paramName = paramNames[i]; + /** @type {HTMLElement} */ + const tag = templateContent.querySelector(paramName); if (tag) { @@ -1559,10 +2079,14 @@ return result; }; + /** + * @param {DocumentFragment} templateContent + */ - const showWarningsForElements = template => { + + const showWarningsForElements = templateContent => { const allowedElements = swalStringParams.concat(['swal-param', 'swal-button', 'swal-image', 'swal-icon', 'swal-input', 'swal-input-option']); - toArray(template.children).forEach(el => { + toArray(templateContent.children).forEach(el => { const tagName = el.tagName.toLowerCase(); if (allowedElements.indexOf(tagName) === -1) { @@ -1570,6 +2094,11 @@ } }); }; + /** + * @param {HTMLElement} el + * @param {string[]} allowedAttributes + */ + const showWarningsForAttributes = (el, allowedAttributes) => { toArray(el.attributes).forEach(attribute => { @@ -1580,15 +2109,30 @@ }; var defaultInputValidators = { + /** + * @param {string} string + * @param {string} validationMessage + * @returns {Promise} + */ email: (string, validationMessage) => { return /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid email address'); }, + + /** + * @param {string} string + * @param {string} validationMessage + * @returns {Promise} + */ url: (string, validationMessage) => { // taken from https://stackoverflow.com/a/3809435 with a small change from #1306 and #2013 return /^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid URL'); } }; + /** + * @param {SweetAlertOptions} params + */ + function setDefaultInputValidators(params) { // Use default `inputValidator` for supported input types if not provided if (!params.inputValidator) { @@ -1599,6 +2143,10 @@ }); } } + /** + * @param {SweetAlertOptions} params + */ + function validateCustomTargetElement(params) { // Determine if the custom target element is valid @@ -1610,7 +2158,7 @@ /** * Set type, text and actions on popup * - * @param params + * @param {SweetAlertOptions} params */ @@ -1712,22 +2260,28 @@ /* istanbul ignore file */ const iOSfix = () => { - // @ts-ignore - const iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1; + const iOS = // @ts-ignore + /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1; if (iOS && !hasClass(document.body, swalClasses.iosfix)) { const offset = document.body.scrollTop; document.body.style.top = "".concat(offset * -1, "px"); addClass(document.body, swalClasses.iosfix); lockBodyScroll(); - addBottomPaddingForTallPopups(); // #1948 + addBottomPaddingForTallPopups(); } }; + /** + * https://github.com/sweetalert2/sweetalert2/issues/1948 + */ const addBottomPaddingForTallPopups = () => { - const safari = !navigator.userAgent.match(/(CriOS|FxiOS|EdgiOS|YaBrowser|UCBrowser)/i); + const ua = navigator.userAgent; + const iOS = !!ua.match(/iPad/i) || !!ua.match(/iPhone/i); + const webkit = !!ua.match(/WebKit/i); + const iOSSafari = iOS && webkit && !ua.match(/CriOS/i); - if (safari) { + if (iOSSafari) { const bottomPanelHeight = 44; if (getPopup().scrollHeight > window.innerHeight - bottomPanelHeight) { @@ -1735,9 +2289,12 @@ } } }; + /** + * https://github.com/sweetalert2/sweetalert2/issues/1246 + */ + const lockBodyScroll = () => { - // #1246 const container = getContainer(); let preventTouchMove; @@ -1757,7 +2314,7 @@ const target = event.target; const container = getContainer(); - if (isStylys(event) || isZoom(event)) { + if (isStylus(event) || isZoom(event)) { return false; } @@ -1774,14 +2331,26 @@ return false; }; + /** + * https://github.com/sweetalert2/sweetalert2/issues/1786 + * + * @param {*} event + * @returns {boolean} + */ - const isStylys = event => { - // #1786 + + const isStylus = event => { return event.touches && event.touches.length && event.touches[0].touchType === 'stylus'; }; + /** + * https://github.com/sweetalert2/sweetalert2/issues/1891 + * + * @param {TouchEvent} event + * @returns {boolean} + */ + const isZoom = event => { - // #1891 return event.touches && event.touches.length > 1; }; @@ -1868,7 +2437,7 @@ }; const addClasses$1 = (container, popup, params) => { - addClass(container, params.showClass.backdrop); // the workaround with setting/unsetting opacity is needed for #2019 and 2059 + addClass(container, params.showClass.backdrop); // this workaround with opacity is needed for https://github.com/sweetalert2/sweetalert2/issues/2059 popup.style.setProperty('opacity', '0', 'important'); show(popup, 'grid'); @@ -1908,8 +2477,8 @@ } show(loader); - popup.setAttribute('data-loading', true); - popup.setAttribute('aria-busy', true); + popup.setAttribute('data-loading', 'true'); + popup.setAttribute('aria-busy', 'true'); popup.focus(); }; @@ -2105,210 +2674,75 @@ return inputValue && inputValue.toString() === optionValue.toString(); }; - const handleConfirmButtonClick = instance => { - const innerParams = privateProps.innerParams.get(instance); - instance.disableButtons(); + /** + * Hides loader and shows back the button which was hidden by .showLoading() + */ - if (innerParams.input) { - handleConfirmOrDenyWithInput(instance, 'confirm'); - } else { - confirm(instance, true); + function hideLoading() { + // do nothing if popup is closed + const innerParams = privateProps.innerParams.get(this); + + if (!innerParams) { + return; } - }; - const handleDenyButtonClick = instance => { - const innerParams = privateProps.innerParams.get(instance); - instance.disableButtons(); - if (innerParams.returnInputValueOnDeny) { - handleConfirmOrDenyWithInput(instance, 'deny'); + const domCache = privateProps.domCache.get(this); + hide(domCache.loader); + + if (isToast()) { + if (innerParams.icon) { + show(getIcon()); + } } else { - deny(instance, false); + showRelatedButton(domCache); } - }; - const handleCancelButtonClick = (instance, dismissWith) => { - instance.disableButtons(); - dismissWith(DismissReason.cancel); - }; - const handleConfirmOrDenyWithInput = (instance, type - /* 'confirm' | 'deny' */ - ) => { - const innerParams = privateProps.innerParams.get(instance); - const inputValue = getInputValue(instance, innerParams); + removeClass([domCache.popup, domCache.actions], swalClasses.loading); + domCache.popup.removeAttribute('aria-busy'); + domCache.popup.removeAttribute('data-loading'); + domCache.confirmButton.disabled = false; + domCache.denyButton.disabled = false; + domCache.cancelButton.disabled = false; + } - if (innerParams.inputValidator) { - handleInputValidator(instance, inputValue, type); - } else if (!instance.getInput().checkValidity()) { - instance.enableButtons(); - instance.showValidationMessage(innerParams.validationMessage); - } else if (type === 'deny') { - deny(instance, inputValue); - } else { - confirm(instance, inputValue); + const showRelatedButton = domCache => { + const buttonToReplace = domCache.popup.getElementsByClassName(domCache.loader.getAttribute('data-button-to-replace')); + + if (buttonToReplace.length) { + show(buttonToReplace[0], 'inline-block'); + } else if (allButtonsAreHidden()) { + hide(domCache.actions); } }; - const handleInputValidator = (instance, inputValue, type - /* 'confirm' | 'deny' */ - ) => { - const innerParams = privateProps.innerParams.get(instance); - instance.disableInput(); - const validationPromise = Promise.resolve().then(() => asPromise(innerParams.inputValidator(inputValue, innerParams.validationMessage))); - validationPromise.then(validationMessage => { - instance.enableButtons(); - instance.enableInput(); + /** + * Gets the input DOM node, this method works with input parameter. + * @returns {HTMLElement | null} + */ - if (validationMessage) { - instance.showValidationMessage(validationMessage); - } else if (type === 'deny') { - deny(instance, inputValue); - } else { - confirm(instance, inputValue); - } - }); - }; - - const deny = (instance, value) => { - const innerParams = privateProps.innerParams.get(instance || undefined); - - if (innerParams.showLoaderOnDeny) { - showLoading(getDenyButton()); - } - - if (innerParams.preDeny) { - privateProps.awaitingPromise.set(instance || undefined, true); // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesnt get destroyed until the result from this preDeny's promise is received - - const preDenyPromise = Promise.resolve().then(() => asPromise(innerParams.preDeny(value, innerParams.validationMessage))); - preDenyPromise.then(preDenyValue => { - if (preDenyValue === false) { - instance.hideLoading(); - } else { - instance.closePopup({ - isDenied: true, - value: typeof preDenyValue === 'undefined' ? value : preDenyValue - }); - } - }).catch(error$$1 => rejectWith(instance || undefined, error$$1)); - } else { - instance.closePopup({ - isDenied: true, - value - }); - } - }; - - const succeedWith = (instance, value) => { - instance.closePopup({ - isConfirmed: true, - value - }); - }; - - const rejectWith = (instance, error$$1) => { - instance.rejectPromise(error$$1); - }; - - const confirm = (instance, value) => { - const innerParams = privateProps.innerParams.get(instance || undefined); - - if (innerParams.showLoaderOnConfirm) { - showLoading(); - } - - if (innerParams.preConfirm) { - instance.resetValidationMessage(); - privateProps.awaitingPromise.set(instance || undefined, true); // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesnt get destroyed until the result from this preConfirm's promise is received - - const preConfirmPromise = Promise.resolve().then(() => asPromise(innerParams.preConfirm(value, innerParams.validationMessage))); - preConfirmPromise.then(preConfirmValue => { - if (isVisible(getValidationMessage()) || preConfirmValue === false) { - instance.hideLoading(); - } else { - succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue); - } - }).catch(error$$1 => rejectWith(instance || undefined, error$$1)); - } else { - succeedWith(instance, value); - } - }; - - const handlePopupClick = (instance, domCache, dismissWith) => { - const innerParams = privateProps.innerParams.get(instance); - - if (innerParams.toast) { - handleToastClick(instance, domCache, dismissWith); - } else { - // Ignore click events that had mousedown on the popup but mouseup on the container - // This can happen when the user drags a slider - handleModalMousedown(domCache); // Ignore click events that had mousedown on the container but mouseup on the popup + function getInput$1(instance) { + const innerParams = privateProps.innerParams.get(instance || this); + const domCache = privateProps.domCache.get(instance || this); - handleContainerMousedown(domCache); - handleModalClick(instance, domCache, dismissWith); + if (!domCache) { + return null; } - }; - - const handleToastClick = (instance, domCache, dismissWith) => { - // Closing toast by internal click - domCache.popup.onclick = () => { - const innerParams = privateProps.innerParams.get(instance); - if (innerParams && (isAnyButtonShown(innerParams) || innerParams.timer || innerParams.input)) { - return; - } + return getInput(domCache.popup, innerParams.input); + } - dismissWith(DismissReason.close); - }; - }; /** - * @param {*} innerParams - * @returns {boolean} + * This module contains `WeakMap`s for each effectively-"private property" that a `Swal` has. + * For example, to set the private property "foo" of `this` to "bar", you can `privateProps.foo.set(this, 'bar')` + * This is the approach that Babel will probably take to implement private methods/fields + * https://github.com/tc39/proposal-private-methods + * https://github.com/babel/babel/pull/7555 + * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module* + * then we can use that language feature. */ - - - const isAnyButtonShown = innerParams => { - return innerParams.showConfirmButton || innerParams.showDenyButton || innerParams.showCancelButton || innerParams.showCloseButton; - }; - - let ignoreOutsideClick = false; - - const handleModalMousedown = domCache => { - domCache.popup.onmousedown = () => { - domCache.container.onmouseup = function (e) { - domCache.container.onmouseup = undefined; // We only check if the mouseup target is the container because usually it doesn't - // have any other direct children aside of the popup - - if (e.target === domCache.container) { - ignoreOutsideClick = true; - } - }; - }; - }; - - const handleContainerMousedown = domCache => { - domCache.container.onmousedown = () => { - domCache.popup.onmouseup = function (e) { - domCache.popup.onmouseup = undefined; // We also need to check if the mouseup target is a child of the popup - - if (e.target === domCache.popup || domCache.popup.contains(e.target)) { - ignoreOutsideClick = true; - } - }; - }; - }; - - const handleModalClick = (instance, domCache, dismissWith) => { - domCache.container.onclick = e => { - const innerParams = privateProps.innerParams.get(instance); - - if (ignoreOutsideClick) { - ignoreOutsideClick = false; - return; - } - - if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) { - dismissWith(DismissReason.backdrop); - } - }; + var privateMethods = { + swalPromiseResolve: new WeakMap(), + swalPromiseReject: new WeakMap() }; /* @@ -2334,13 +2768,27 @@ const clickCancel = () => getCancelButton() && getCancelButton().click(); - const addKeydownHandler = (instance, globalState, innerParams, dismissWith) => { + /** + * @param {GlobalState} globalState + */ + + const removeKeydownHandler = globalState => { if (globalState.keydownTarget && globalState.keydownHandlerAdded) { globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, { capture: globalState.keydownListenerCapture }); globalState.keydownHandlerAdded = false; } + }; + /** + * @param {SweetAlert2} instance + * @param {GlobalState} globalState + * @param {SweetAlertOptions} innerParams + * @param {*} dismissWith + */ + + const addKeydownHandler = (instance, globalState, innerParams, dismissWith) => { + removeKeydownHandler(globalState); if (!innerParams.toast) { globalState.keydownHandler = e => keydownHandler(instance, e, dismissWith); @@ -2352,7 +2800,12 @@ }); globalState.keydownHandlerAdded = true; } - }; // Focus handling + }; + /** + * @param {SweetAlertOptions} innerParams + * @param {number} index + * @param {number} increment + */ const setFocus = (innerParams, index, increment) => { const focusableElements = getFocusableElements(); // search for visible elements and select the next possible match @@ -2374,12 +2827,25 @@ }; const arrowKeysNextButton = ['ArrowRight', 'ArrowDown']; const arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp']; + /** + * @param {SweetAlert2} instance + * @param {KeyboardEvent} e + * @param {function} dismissWith + */ const keydownHandler = (instance, e, dismissWith) => { const innerParams = privateProps.innerParams.get(instance); if (!innerParams) { return; // This instance has already been destroyed + } // Ignore keydown during IME composition + // https://developer.mozilla.org/en-US/docs/Web/API/Document/keydown_event#ignoring_keydown_during_ime_composition + // https://github.com/sweetalert2/sweetalert2/issues/720 + // https://github.com/sweetalert2/sweetalert2/issues/2406 + + + if (e.isComposing || e.keyCode === 229) { + return; } if (innerParams.stopKeydownPropagation) { @@ -2388,23 +2854,32 @@ if (e.key === 'Enter') { - handleEnter(instance, e, innerParams); // TAB - } else if (e.key === 'Tab') { - handleTab(e, innerParams); // ARROWS - switch focus between buttons - } else if ([...arrowKeysNextButton, ...arrowKeysPreviousButton].includes(e.key)) { - handleArrows(e.key); // ESC - } else if (e.key === 'Escape') { + handleEnter(instance, e, innerParams); + } // TAB + else if (e.key === 'Tab') { + handleTab(e, innerParams); + } // ARROWS - switch focus between buttons + else if ([...arrowKeysNextButton, ...arrowKeysPreviousButton].includes(e.key)) { + handleArrows(e.key); + } // ESC + else if (e.key === 'Escape') { handleEsc(e, innerParams, dismissWith); } }; + /** + * @param {SweetAlert2} instance + * @param {KeyboardEvent} e + * @param {SweetAlertOptions} innerParams + */ + const handleEnter = (instance, e, innerParams) => { - // #720 #721 - if (e.isComposing) { + // https://github.com/sweetalert2/sweetalert2/issues/2386 + if (!callIfFunction(innerParams.allowEnterKey)) { return; } - if (e.target && instance.getInput() && e.target.outerHTML === instance.getInput().outerHTML) { + if (e.target && instance.getInput() && e.target instanceof HTMLElement && e.target.outerHTML === instance.getInput().outerHTML) { if (['textarea', 'file'].includes(innerParams.input)) { return; // do not submit } @@ -2413,6 +2888,11 @@ e.preventDefault(); } }; + /** + * @param {KeyboardEvent} e + * @param {SweetAlertOptions} innerParams + */ + const handleTab = (e, innerParams) => { const targetElement = e.target; @@ -2424,36 +2904,58 @@ btnIndex = i; break; } - } + } // Cycle to the next button + if (!e.shiftKey) { - // Cycle to the next button setFocus(innerParams, btnIndex, 1); - } else { - // Cycle to the prev button + } // Cycle to the prev button + else { setFocus(innerParams, btnIndex, -1); } e.stopPropagation(); e.preventDefault(); }; + /** + * @param {string} key + */ + const handleArrows = key => { const confirmButton = getConfirmButton(); const denyButton = getDenyButton(); const cancelButton = getCancelButton(); - if (![confirmButton, denyButton, cancelButton].includes(document.activeElement)) { + if (document.activeElement instanceof HTMLElement && ![confirmButton, denyButton, cancelButton].includes(document.activeElement)) { return; } const sibling = arrowKeysNextButton.includes(key) ? 'nextElementSibling' : 'previousElementSibling'; - const buttonToFocus = document.activeElement[sibling]; + let buttonToFocus = document.activeElement; + + for (let i = 0; i < getActions().children.length; i++) { + buttonToFocus = buttonToFocus[sibling]; + + if (!buttonToFocus) { + return; + } + + if (buttonToFocus instanceof HTMLButtonElement && isVisible(buttonToFocus)) { + break; + } + } - if (buttonToFocus instanceof HTMLElement) { + if (buttonToFocus instanceof HTMLButtonElement) { buttonToFocus.focus(); } }; + /** + * @param {KeyboardEvent} e + * @param {SweetAlertOptions} innerParams + * @param {function} dismissWith + */ + const handleEsc = (e, innerParams, dismissWith) => { if (callIfFunction(innerParams.allowEscapeKey)) { @@ -2462,304 +2964,36 @@ } }; - const isJqueryElement = elem => typeof elem === 'object' && elem.jquery; - - const isElement = elem => elem instanceof Element || isJqueryElement(elem); - - const argsToParams = args => { - const params = {}; + /* + * Instance method to close sweetAlert + */ - if (typeof args[0] === 'object' && !isElement(args[0])) { - Object.assign(params, args[0]); + function removePopupAndResetState(instance, container, returnFocus, didClose) { + if (isToast()) { + triggerDidCloseAndDispose(instance, didClose); } else { - ['title', 'html', 'icon'].forEach((name, index) => { - const arg = args[index]; - - if (typeof arg === 'string' || isElement(arg)) { - params[name] = arg; - } else if (arg !== undefined) { - error("Unexpected type of ".concat(name, "! Expected \"string\" or \"Element\", got ").concat(typeof arg)); - } - }); + restoreActiveElement(returnFocus).then(() => triggerDidCloseAndDispose(instance, didClose)); + removeKeydownHandler(globalState); } - return params; - }; + const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); // workaround for #2088 + // for some reason removing the container in Safari will scroll the document to bottom - function fire() { - const Swal = this; + if (isSafari) { + container.setAttribute('style', 'display:none !important'); + container.removeAttribute('class'); + container.innerHTML = ''; + } else { + container.remove(); + } - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; + if (isModal()) { + undoScrollbar(); + undoIOSfix(); + unsetAriaHidden(); } - return new Swal(...args); - } - - /** - * Returns an extended version of `Swal` containing `params` as defaults. - * Useful for reusing Swal configuration. - * - * For example: - * - * Before: - * const textPromptOptions = { input: 'text', showCancelButton: true } - * const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' }) - * const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' }) - * - * After: - * const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true }) - * const {value: firstName} = await TextPrompt('What is your first name?') - * const {value: lastName} = await TextPrompt('What is your last name?') - * - * @param mixinParams - */ - function mixin(mixinParams) { - class MixinSwal extends this { - _main(params, priorityMixinParams) { - return super._main(params, Object.assign({}, mixinParams, priorityMixinParams)); - } - - } - - return MixinSwal; - } - - /** - * If `timer` parameter is set, returns number of milliseconds of timer remained. - * Otherwise, returns undefined. - */ - - const getTimerLeft = () => { - return globalState.timeout && globalState.timeout.getTimerLeft(); - }; - /** - * Stop timer. Returns number of milliseconds of timer remained. - * If `timer` parameter isn't set, returns undefined. - */ - - const stopTimer = () => { - if (globalState.timeout) { - stopTimerProgressBar(); - return globalState.timeout.stop(); - } - }; - /** - * Resume timer. Returns number of milliseconds of timer remained. - * If `timer` parameter isn't set, returns undefined. - */ - - const resumeTimer = () => { - if (globalState.timeout) { - const remaining = globalState.timeout.start(); - animateTimerProgressBar(remaining); - return remaining; - } - }; - /** - * Resume timer. Returns number of milliseconds of timer remained. - * If `timer` parameter isn't set, returns undefined. - */ - - const toggleTimer = () => { - const timer = globalState.timeout; - return timer && (timer.running ? stopTimer() : resumeTimer()); - }; - /** - * Increase timer. Returns number of milliseconds of an updated timer. - * If `timer` parameter isn't set, returns undefined. - */ - - const increaseTimer = n => { - if (globalState.timeout) { - const remaining = globalState.timeout.increase(n); - animateTimerProgressBar(remaining, true); - return remaining; - } - }; - /** - * Check if timer is running. Returns true if timer is running - * or false if timer is paused or stopped. - * If `timer` parameter isn't set, returns undefined - */ - - const isTimerRunning = () => { - return globalState.timeout && globalState.timeout.isRunning(); - }; - - let bodyClickListenerAdded = false; - const clickHandlers = {}; - function bindClickHandler() { - let attr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'data-swal-template'; - clickHandlers[attr] = this; - - if (!bodyClickListenerAdded) { - document.body.addEventListener('click', bodyClickListener); - bodyClickListenerAdded = true; - } - } - - const bodyClickListener = event => { - for (let el = event.target; el && el !== document; el = el.parentNode) { - for (const attr in clickHandlers) { - const template = el.getAttribute(attr); - - if (template) { - clickHandlers[attr].fire({ - template - }); - return; - } - } - } - }; - - - - var staticMethods = /*#__PURE__*/Object.freeze({ - isValidParameter: isValidParameter, - isUpdatableParameter: isUpdatableParameter, - isDeprecatedParameter: isDeprecatedParameter, - argsToParams: argsToParams, - isVisible: isVisible$1, - clickConfirm: clickConfirm, - clickDeny: clickDeny, - clickCancel: clickCancel, - getContainer: getContainer, - getPopup: getPopup, - getTitle: getTitle, - getHtmlContainer: getHtmlContainer, - getImage: getImage, - getIcon: getIcon, - getInputLabel: getInputLabel, - getCloseButton: getCloseButton, - getActions: getActions, - getConfirmButton: getConfirmButton, - getDenyButton: getDenyButton, - getCancelButton: getCancelButton, - getLoader: getLoader, - getFooter: getFooter, - getTimerProgressBar: getTimerProgressBar, - getFocusableElements: getFocusableElements, - getValidationMessage: getValidationMessage, - isLoading: isLoading, - fire: fire, - mixin: mixin, - showLoading: showLoading, - enableLoading: showLoading, - getTimerLeft: getTimerLeft, - stopTimer: stopTimer, - resumeTimer: resumeTimer, - toggleTimer: toggleTimer, - increaseTimer: increaseTimer, - isTimerRunning: isTimerRunning, - bindClickHandler: bindClickHandler - }); - - /** - * Hides loader and shows back the button which was hidden by .showLoading() - */ - - function hideLoading() { - // do nothing if popup is closed - const innerParams = privateProps.innerParams.get(this); - - if (!innerParams) { - return; - } - - const domCache = privateProps.domCache.get(this); - hide(domCache.loader); - - if (isToast()) { - if (innerParams.icon) { - show(getIcon()); - } - } else { - showRelatedButton(domCache); - } - - removeClass([domCache.popup, domCache.actions], swalClasses.loading); - domCache.popup.removeAttribute('aria-busy'); - domCache.popup.removeAttribute('data-loading'); - domCache.confirmButton.disabled = false; - domCache.denyButton.disabled = false; - domCache.cancelButton.disabled = false; - } - - const showRelatedButton = domCache => { - const buttonToReplace = domCache.popup.getElementsByClassName(domCache.loader.getAttribute('data-button-to-replace')); - - if (buttonToReplace.length) { - show(buttonToReplace[0], 'inline-block'); - } else if (allButtonsAreHidden()) { - hide(domCache.actions); - } - }; - - /** - * Gets the input DOM node, this method works with input parameter. - * @returns {HTMLElement | null} - */ - - function getInput$1(instance) { - const innerParams = privateProps.innerParams.get(instance || this); - const domCache = privateProps.domCache.get(instance || this); - - if (!domCache) { - return null; - } - - return getInput(domCache.popup, innerParams.input); - } - - /** - * This module contains `WeakMap`s for each effectively-"private property" that a `Swal` has. - * For example, to set the private property "foo" of `this` to "bar", you can `privateProps.foo.set(this, 'bar')` - * This is the approach that Babel will probably take to implement private methods/fields - * https://github.com/tc39/proposal-private-methods - * https://github.com/babel/babel/pull/7555 - * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module* - * then we can use that language feature. - */ - var privateMethods = { - swalPromiseResolve: new WeakMap(), - swalPromiseReject: new WeakMap() - }; - - /* - * Instance method to close sweetAlert - */ - - function removePopupAndResetState(instance, container, returnFocus, didClose) { - if (isToast()) { - triggerDidCloseAndDispose(instance, didClose); - } else { - restoreActiveElement(returnFocus).then(() => triggerDidCloseAndDispose(instance, didClose)); - globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, { - capture: globalState.keydownListenerCapture - }); - globalState.keydownHandlerAdded = false; - } - - const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); // workaround for #2088 - // for some reason removing the container in Safari will scroll the document to bottom - - if (isSafari) { - container.setAttribute('style', 'display:none !important'); - container.removeAttribute('class'); - container.innerHTML = ''; - } else { - container.remove(); - } - - if (isModal()) { - undoScrollbar(); - undoIOSfix(); - unsetAriaHidden(); - } - - removeBodyClasses(); + removeBodyClasses(); } function removeBodyClasses() { @@ -2817,7 +3051,6 @@ rejectPromise(error); } } - const handleAwaitingPromise = instance => { if (instance.isAwaitingPromise()) { privateProps.awaitingPromise.delete(instance); // The instance might have been previously partly destroyed, we must resume the destroy process in this case #2335 @@ -2943,135 +3176,555 @@ function resetValidationMessage$1() { const domCache = privateProps.domCache.get(this); - if (domCache.validationMessage) { - hide(domCache.validationMessage); + if (domCache.validationMessage) { + hide(domCache.validationMessage); + } + + const input = this.getInput(); + + if (input) { + input.removeAttribute('aria-invalid'); + input.removeAttribute('aria-describedby'); + removeClass(input, swalClasses.inputerror); + } + } + + function getProgressSteps$1() { + const domCache = privateProps.domCache.get(this); + return domCache.progressSteps; + } + + /** + * Updates popup parameters. + */ + + function update(params) { + const popup = getPopup(); + const innerParams = privateProps.innerParams.get(this); + + if (!popup || hasClass(popup, innerParams.hideClass.popup)) { + return warn("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup."); + } + + const validUpdatableParams = filterValidParams(params); + const updatedParams = Object.assign({}, innerParams, validUpdatableParams); + render(this, updatedParams); + privateProps.innerParams.set(this, updatedParams); + Object.defineProperties(this, { + params: { + value: Object.assign({}, this.params, params), + writable: false, + enumerable: true + } + }); + } + + const filterValidParams = params => { + const validUpdatableParams = {}; + Object.keys(params).forEach(param => { + if (isUpdatableParameter(param)) { + validUpdatableParams[param] = params[param]; + } else { + warn("Invalid parameter to update: ".concat(param)); + } + }); + return validUpdatableParams; + }; + + function _destroy() { + const domCache = privateProps.domCache.get(this); + const innerParams = privateProps.innerParams.get(this); + + if (!innerParams) { + disposeWeakMaps(this); // The WeakMaps might have been partly destroyed, we must recall it to dispose any remaining WeakMaps #2335 + + return; // This instance has already been destroyed + } // Check if there is another Swal closing + + + if (domCache.popup && globalState.swalCloseEventFinishedCallback) { + globalState.swalCloseEventFinishedCallback(); + delete globalState.swalCloseEventFinishedCallback; + } + + if (typeof innerParams.didDestroy === 'function') { + innerParams.didDestroy(); + } + + disposeSwal(this); + } + /** + * @param {SweetAlert2} instance + */ + + const disposeSwal = instance => { + disposeWeakMaps(instance); // Unset this.params so GC will dispose it (#1569) + // @ts-ignore + + delete instance.params; // Unset globalState props so GC will dispose globalState (#1569) + + delete globalState.keydownHandler; + delete globalState.keydownTarget; // Unset currentInstance + + delete globalState.currentInstance; + }; + /** + * @param {SweetAlert2} instance + */ + + + const disposeWeakMaps = instance => { + // If the current instance is awaiting a promise result, we keep the privateMethods to call them once the promise result is retrieved #2335 + // @ts-ignore + if (instance.isAwaitingPromise()) { + unsetWeakMaps(privateProps, instance); + privateProps.awaitingPromise.set(instance, true); + } else { + unsetWeakMaps(privateMethods, instance); + unsetWeakMaps(privateProps, instance); + } + }; + /** + * @param {object} obj + * @param {SweetAlert2} instance + */ + + + const unsetWeakMaps = (obj, instance) => { + for (const i in obj) { + obj[i].delete(instance); + } + }; + + + + var instanceMethods = /*#__PURE__*/Object.freeze({ + hideLoading: hideLoading, + disableLoading: hideLoading, + getInput: getInput$1, + close: close, + isAwaitingPromise: isAwaitingPromise, + rejectPromise: rejectPromise, + handleAwaitingPromise: handleAwaitingPromise, + closePopup: close, + closeModal: close, + closeToast: close, + enableButtons: enableButtons, + disableButtons: disableButtons, + enableInput: enableInput, + disableInput: disableInput, + showValidationMessage: showValidationMessage, + resetValidationMessage: resetValidationMessage$1, + getProgressSteps: getProgressSteps$1, + update: update, + _destroy: _destroy + }); + + const handleConfirmButtonClick = instance => { + const innerParams = privateProps.innerParams.get(instance); + instance.disableButtons(); + + if (innerParams.input) { + handleConfirmOrDenyWithInput(instance, 'confirm'); + } else { + confirm(instance, true); + } + }; + const handleDenyButtonClick = instance => { + const innerParams = privateProps.innerParams.get(instance); + instance.disableButtons(); + + if (innerParams.returnInputValueOnDeny) { + handleConfirmOrDenyWithInput(instance, 'deny'); + } else { + deny(instance, false); + } + }; + const handleCancelButtonClick = (instance, dismissWith) => { + instance.disableButtons(); + dismissWith(DismissReason.cancel); + }; + + const handleConfirmOrDenyWithInput = (instance, type + /* 'confirm' | 'deny' */ + ) => { + const innerParams = privateProps.innerParams.get(instance); + + if (!innerParams.input) { + return error("The \"input\" parameter is needed to be set when using returnInputValueOn".concat(capitalizeFirstLetter(type))); + } + + const inputValue = getInputValue(instance, innerParams); + + if (innerParams.inputValidator) { + handleInputValidator(instance, inputValue, type); + } else if (!instance.getInput().checkValidity()) { + instance.enableButtons(); + instance.showValidationMessage(innerParams.validationMessage); + } else if (type === 'deny') { + deny(instance, inputValue); + } else { + confirm(instance, inputValue); + } + }; + + const handleInputValidator = (instance, inputValue, type + /* 'confirm' | 'deny' */ + ) => { + const innerParams = privateProps.innerParams.get(instance); + instance.disableInput(); + const validationPromise = Promise.resolve().then(() => asPromise(innerParams.inputValidator(inputValue, innerParams.validationMessage))); + validationPromise.then(validationMessage => { + instance.enableButtons(); + instance.enableInput(); + + if (validationMessage) { + instance.showValidationMessage(validationMessage); + } else if (type === 'deny') { + deny(instance, inputValue); + } else { + confirm(instance, inputValue); + } + }); + }; + + const deny = (instance, value) => { + const innerParams = privateProps.innerParams.get(instance || undefined); + + if (innerParams.showLoaderOnDeny) { + showLoading(getDenyButton()); + } + + if (innerParams.preDeny) { + privateProps.awaitingPromise.set(instance || undefined, true); // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preDeny's promise is received + + const preDenyPromise = Promise.resolve().then(() => asPromise(innerParams.preDeny(value, innerParams.validationMessage))); + preDenyPromise.then(preDenyValue => { + if (preDenyValue === false) { + instance.hideLoading(); + handleAwaitingPromise(instance); + } else { + instance.closePopup({ + isDenied: true, + value: typeof preDenyValue === 'undefined' ? value : preDenyValue + }); + } + }).catch(error$$1 => rejectWith(instance || undefined, error$$1)); + } else { + instance.closePopup({ + isDenied: true, + value + }); + } + }; + + const succeedWith = (instance, value) => { + instance.closePopup({ + isConfirmed: true, + value + }); + }; + + const rejectWith = (instance, error$$1) => { + instance.rejectPromise(error$$1); + }; + + const confirm = (instance, value) => { + const innerParams = privateProps.innerParams.get(instance || undefined); + + if (innerParams.showLoaderOnConfirm) { + showLoading(); + } + + if (innerParams.preConfirm) { + instance.resetValidationMessage(); + privateProps.awaitingPromise.set(instance || undefined, true); // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preConfirm's promise is received + + const preConfirmPromise = Promise.resolve().then(() => asPromise(innerParams.preConfirm(value, innerParams.validationMessage))); + preConfirmPromise.then(preConfirmValue => { + if (isVisible(getValidationMessage()) || preConfirmValue === false) { + instance.hideLoading(); + handleAwaitingPromise(instance); + } else { + succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue); + } + }).catch(error$$1 => rejectWith(instance || undefined, error$$1)); + } else { + succeedWith(instance, value); + } + }; + + const handlePopupClick = (instance, domCache, dismissWith) => { + const innerParams = privateProps.innerParams.get(instance); + + if (innerParams.toast) { + handleToastClick(instance, domCache, dismissWith); + } else { + // Ignore click events that had mousedown on the popup but mouseup on the container + // This can happen when the user drags a slider + handleModalMousedown(domCache); // Ignore click events that had mousedown on the container but mouseup on the popup + + handleContainerMousedown(domCache); + handleModalClick(instance, domCache, dismissWith); + } + }; + + const handleToastClick = (instance, domCache, dismissWith) => { + // Closing toast by internal click + domCache.popup.onclick = () => { + const innerParams = privateProps.innerParams.get(instance); + + if (innerParams && (isAnyButtonShown(innerParams) || innerParams.timer || innerParams.input)) { + return; + } + + dismissWith(DismissReason.close); + }; + }; + /** + * @param {*} innerParams + * @returns {boolean} + */ + + + const isAnyButtonShown = innerParams => { + return innerParams.showConfirmButton || innerParams.showDenyButton || innerParams.showCancelButton || innerParams.showCloseButton; + }; + + let ignoreOutsideClick = false; + + const handleModalMousedown = domCache => { + domCache.popup.onmousedown = () => { + domCache.container.onmouseup = function (e) { + domCache.container.onmouseup = undefined; // We only check if the mouseup target is the container because usually it doesn't + // have any other direct children aside of the popup + + if (e.target === domCache.container) { + ignoreOutsideClick = true; + } + }; + }; + }; + + const handleContainerMousedown = domCache => { + domCache.container.onmousedown = () => { + domCache.popup.onmouseup = function (e) { + domCache.popup.onmouseup = undefined; // We also need to check if the mouseup target is a child of the popup + + if (e.target === domCache.popup || domCache.popup.contains(e.target)) { + ignoreOutsideClick = true; + } + }; + }; + }; + + const handleModalClick = (instance, domCache, dismissWith) => { + domCache.container.onclick = e => { + const innerParams = privateProps.innerParams.get(instance); + + if (ignoreOutsideClick) { + ignoreOutsideClick = false; + return; + } + + if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) { + dismissWith(DismissReason.backdrop); + } + }; + }; + + const isJqueryElement = elem => typeof elem === 'object' && elem.jquery; + + const isElement = elem => elem instanceof Element || isJqueryElement(elem); + + const argsToParams = args => { + const params = {}; + + if (typeof args[0] === 'object' && !isElement(args[0])) { + Object.assign(params, args[0]); + } else { + ['title', 'html', 'icon'].forEach((name, index) => { + const arg = args[index]; + + if (typeof arg === 'string' || isElement(arg)) { + params[name] = arg; + } else if (arg !== undefined) { + error("Unexpected type of ".concat(name, "! Expected \"string\" or \"Element\", got ").concat(typeof arg)); + } + }); } - const input = this.getInput(); + return params; + }; - if (input) { - input.removeAttribute('aria-invalid'); - input.removeAttribute('aria-describedby'); - removeClass(input, swalClasses.inputerror); + function fire() { + const Swal = this; // eslint-disable-line @typescript-eslint/no-this-alias + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; } - } - function getProgressSteps$1() { - const domCache = privateProps.domCache.get(this); - return domCache.progressSteps; + return new Swal(...args); } /** - * Updates popup parameters. + * Returns an extended version of `Swal` containing `params` as defaults. + * Useful for reusing Swal configuration. + * + * For example: + * + * Before: + * const textPromptOptions = { input: 'text', showCancelButton: true } + * const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' }) + * const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' }) + * + * After: + * const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true }) + * const {value: firstName} = await TextPrompt('What is your first name?') + * const {value: lastName} = await TextPrompt('What is your last name?') + * + * @param mixinParams */ + function mixin(mixinParams) { + class MixinSwal extends this { + _main(params, priorityMixinParams) { + return super._main(params, Object.assign({}, mixinParams, priorityMixinParams)); + } - function update(params) { - const popup = getPopup(); - const innerParams = privateProps.innerParams.get(this); - - if (!popup || hasClass(popup, innerParams.hideClass.popup)) { - return warn("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup."); } - const validUpdatableParams = {}; // assign valid params from `params` to `defaults` - - Object.keys(params).forEach(param => { - if (isUpdatableParameter(param)) { - validUpdatableParams[param] = params[param]; - } else { - warn("Invalid parameter to update: \"".concat(param, "\". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js\n\nIf you think this parameter should be updatable, request it here: https://github.com/sweetalert2/sweetalert2/issues/new?template=02_feature_request.md")); - } - }); - const updatedParams = Object.assign({}, innerParams, validUpdatableParams); - render(this, updatedParams); - privateProps.innerParams.set(this, updatedParams); - Object.defineProperties(this, { - params: { - value: Object.assign({}, this.params, params), - writable: false, - enumerable: true - } - }); + return MixinSwal; } - function _destroy() { - const domCache = privateProps.domCache.get(this); - const innerParams = privateProps.innerParams.get(this); - - if (!innerParams) { - disposeWeakMaps(this); // The WeakMaps might have been partly destroyed, we must recall it to dispose any remaining weakmaps #2335 - - return; // This instance has already been destroyed - } // Check if there is another Swal closing - - - if (domCache.popup && globalState.swalCloseEventFinishedCallback) { - globalState.swalCloseEventFinishedCallback(); - delete globalState.swalCloseEventFinishedCallback; - } // Check if there is a swal disposal defer timer + /** + * If `timer` parameter is set, returns number of milliseconds of timer remained. + * Otherwise, returns undefined. + */ + const getTimerLeft = () => { + return globalState.timeout && globalState.timeout.getTimerLeft(); + }; + /** + * Stop timer. Returns number of milliseconds of timer remained. + * If `timer` parameter isn't set, returns undefined. + */ - if (globalState.deferDisposalTimer) { - clearTimeout(globalState.deferDisposalTimer); - delete globalState.deferDisposalTimer; + const stopTimer = () => { + if (globalState.timeout) { + stopTimerProgressBar(); + return globalState.timeout.stop(); } + }; + /** + * Resume timer. Returns number of milliseconds of timer remained. + * If `timer` parameter isn't set, returns undefined. + */ - if (typeof innerParams.didDestroy === 'function') { - innerParams.didDestroy(); + const resumeTimer = () => { + if (globalState.timeout) { + const remaining = globalState.timeout.start(); + animateTimerProgressBar(remaining); + return remaining; } + }; + /** + * Resume timer. Returns number of milliseconds of timer remained. + * If `timer` parameter isn't set, returns undefined. + */ - disposeSwal(this); - } - - const disposeSwal = instance => { - disposeWeakMaps(instance); // Unset this.params so GC will dispose it (#1569) - - delete instance.params; // Unset globalState props so GC will dispose globalState (#1569) + const toggleTimer = () => { + const timer = globalState.timeout; + return timer && (timer.running ? stopTimer() : resumeTimer()); + }; + /** + * Increase timer. Returns number of milliseconds of an updated timer. + * If `timer` parameter isn't set, returns undefined. + */ - delete globalState.keydownHandler; - delete globalState.keydownTarget; // Unset currentInstance + const increaseTimer = n => { + if (globalState.timeout) { + const remaining = globalState.timeout.increase(n); + animateTimerProgressBar(remaining, true); + return remaining; + } + }; + /** + * Check if timer is running. Returns true if timer is running + * or false if timer is paused or stopped. + * If `timer` parameter isn't set, returns undefined + */ - delete globalState.currentInstance; + const isTimerRunning = () => { + return globalState.timeout && globalState.timeout.isRunning(); }; - const disposeWeakMaps = instance => { - // If the current instance is awaiting a promise result, we keep the privateMethods to call them once the promise result is retrieved #2335 - if (instance.isAwaitingPromise()) { - unsetWeakMaps(privateProps, instance); - privateProps.awaitingPromise.set(instance, true); - } else { - unsetWeakMaps(privateMethods, instance); - unsetWeakMaps(privateProps, instance); + let bodyClickListenerAdded = false; + const clickHandlers = {}; + function bindClickHandler() { + let attr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'data-swal-template'; + clickHandlers[attr] = this; + + if (!bodyClickListenerAdded) { + document.body.addEventListener('click', bodyClickListener); + bodyClickListenerAdded = true; } - }; + } - const unsetWeakMaps = (obj, instance) => { - for (const i in obj) { - obj[i].delete(instance); + const bodyClickListener = event => { + for (let el = event.target; el && el !== document; el = el.parentNode) { + for (const attr in clickHandlers) { + const template = el.getAttribute(attr); + + if (template) { + clickHandlers[attr].fire({ + template + }); + return; + } + } } }; - var instanceMethods = /*#__PURE__*/Object.freeze({ - hideLoading: hideLoading, - disableLoading: hideLoading, - getInput: getInput$1, - close: close, - isAwaitingPromise: isAwaitingPromise, - rejectPromise: rejectPromise, - closePopup: close, - closeModal: close, - closeToast: close, - enableButtons: enableButtons, - disableButtons: disableButtons, - enableInput: enableInput, - disableInput: disableInput, - showValidationMessage: showValidationMessage, - resetValidationMessage: resetValidationMessage$1, - getProgressSteps: getProgressSteps$1, - update: update, - _destroy: _destroy + var staticMethods = /*#__PURE__*/Object.freeze({ + isValidParameter: isValidParameter, + isUpdatableParameter: isUpdatableParameter, + isDeprecatedParameter: isDeprecatedParameter, + argsToParams: argsToParams, + isVisible: isVisible$1, + clickConfirm: clickConfirm, + clickDeny: clickDeny, + clickCancel: clickCancel, + getContainer: getContainer, + getPopup: getPopup, + getTitle: getTitle, + getHtmlContainer: getHtmlContainer, + getImage: getImage, + getIcon: getIcon, + getInputLabel: getInputLabel, + getCloseButton: getCloseButton, + getActions: getActions, + getConfirmButton: getConfirmButton, + getDenyButton: getDenyButton, + getCancelButton: getCancelButton, + getLoader: getLoader, + getFooter: getFooter, + getTimerProgressBar: getTimerProgressBar, + getFocusableElements: getFocusableElements, + getValidationMessage: getValidationMessage, + isLoading: isLoading, + fire: fire, + mixin: mixin, + showLoading: showLoading, + enableLoading: showLoading, + getTimerLeft: getTimerLeft, + stopTimer: stopTimer, + resumeTimer: resumeTimer, + toggleTimer: toggleTimer, + increaseTimer: increaseTimer, + isTimerRunning: isTimerRunning, + bindClickHandler: bindClickHandler }); let currentInstance; @@ -3099,7 +3752,7 @@ } }); // @ts-ignore - const promise = this._main(this.params); + const promise = currentInstance._main(currentInstance.params); privateProps.promise.set(this, promise); } @@ -3109,6 +3762,7 @@ showWarningsForParams(Object.assign({}, mixinParams, userParams)); if (globalState.currentInstance) { + // @ts-ignore globalState.currentInstance._destroy(); if (isModal()) { @@ -3116,7 +3770,7 @@ } } - globalState.currentInstance = this; + globalState.currentInstance = currentInstance; const innerParams = prepareParams(userParams, mixinParams); setParameters(innerParams); Object.freeze(innerParams); // clear the previous timer @@ -3128,10 +3782,10 @@ clearTimeout(globalState.restoreFocusTimeout); - const domCache = populateDomCache(this); - render(this, innerParams); - privateProps.innerParams.set(this, innerParams); - return swalPromise(this, domCache, innerParams); + const domCache = populateDomCache(currentInstance); + render(currentInstance, innerParams); + privateProps.innerParams.set(currentInstance, innerParams); + return swalPromise(currentInstance, domCache, innerParams); } // `catch` cannot be the name of a module export, so we define our thenable methods here instead @@ -3189,6 +3843,11 @@ params.hideClass = Object.assign({}, defaultParams.hideClass, params.hideClass); return params; }; + /** + * @param {SweetAlert2} instance + * @returns {DomCache} + */ + const populateDomCache = instance => { const domCache = { @@ -3206,6 +3865,12 @@ privateProps.domCache.set(instance, domCache); return domCache; }; + /** + * @param {GlobalState} globalState + * @param {SweetAlertOptions} innerParams + * @param {function} dismissWith + */ + const setupTimer = (globalState$$1, innerParams, dismissWith) => { const timerProgressBar = getTimerProgressBar(); @@ -3219,6 +3884,7 @@ if (innerParams.timerProgressBar) { show(timerProgressBar); + applyCustomClass(timerProgressBar, innerParams, 'timerProgressBar'); setTimeout(() => { if (globalState$$1.timeout && globalState$$1.timeout.running) { // timer can be already stopped or unset at this point @@ -3228,6 +3894,11 @@ } } }; + /** + * @param {DomCache} domCache + * @param {SweetAlertOptions} innerParams + */ + const initFocus = (domCache, innerParams) => { if (innerParams.toast) { @@ -3242,6 +3913,12 @@ setFocus(innerParams, -1, 1); } }; + /** + * @param {DomCache} domCache + * @param {SweetAlertOptions} innerParams + * @returns {boolean} + */ + const focusButton = (domCache, innerParams) => { if (innerParams.focusDeny && isVisible(domCache.denyButton)) { @@ -3281,7 +3958,7 @@ }; }); SweetAlert.DismissReason = DismissReason; - SweetAlert.version = '11.3.3'; + SweetAlert.version = '11.4.19'; const Swal = SweetAlert; // @ts-ignore diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/sweetalert2/sweetalert2.min.css b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/sweetalert2/sweetalert2.min.css index 2f1aa618..06388434 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/sweetalert2/sweetalert2.min.css +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/sweetalert2/sweetalert2.min.css @@ -1 +1 @@ -.swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4!important;grid-row:1/4!important;grid-template-columns:1fr 99fr 1fr;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px rgba(0,0,0,.075),0 1px 2px rgba(0,0,0,.075),1px 2px 4px rgba(0,0,0,.075),1px 3px 8px rgba(0,0,0,.075),2px 4px 16px rgba(0,0,0,.075);pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:grid;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;box-sizing:border-box;grid-template-areas:"top-start top top-end" "center-start center center-end" "bottom-start bottom-center bottom-end";grid-template-rows:minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto);grid-template-rows:minmax(min-content,auto) minmax(min-content,auto) minmax(min-content,auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-bottom-start,.swal2-container.swal2-center-start,.swal2-container.swal2-top-start{grid-template-columns:minmax(0,1fr) auto auto}.swal2-container.swal2-bottom,.swal2-container.swal2-center,.swal2-container.swal2-top{grid-template-columns:auto minmax(0,1fr) auto}.swal2-container.swal2-bottom-end,.swal2-container.swal2-center-end,.swal2-container.swal2-top-end{grid-template-columns:auto auto minmax(0,1fr)}.swal2-container.swal2-top-start>.swal2-popup{align-self:start}.swal2-container.swal2-top>.swal2-popup{grid-column:2;align-self:start;justify-self:center}.swal2-container.swal2-top-end>.swal2-popup,.swal2-container.swal2-top-right>.swal2-popup{grid-column:3;align-self:start;justify-self:end}.swal2-container.swal2-center-left>.swal2-popup,.swal2-container.swal2-center-start>.swal2-popup{grid-row:2;align-self:center}.swal2-container.swal2-center>.swal2-popup{grid-column:2;grid-row:2;align-self:center;justify-self:center}.swal2-container.swal2-center-end>.swal2-popup,.swal2-container.swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;align-self:center;justify-self:end}.swal2-container.swal2-bottom-left>.swal2-popup,.swal2-container.swal2-bottom-start>.swal2-popup{grid-column:1;grid-row:3;align-self:end}.swal2-container.swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;justify-self:center;align-self:end}.swal2-container.swal2-bottom-end>.swal2-popup,.swal2-container.swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;align-self:end;justify-self:end}.swal2-container.swal2-grow-fullscreen>.swal2-popup,.swal2-container.swal2-grow-row>.swal2-popup{grid-column:1/4;width:100%}.swal2-container.swal2-grow-column>.swal2-popup,.swal2-container.swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}.swal2-container.swal2-no-transition{transition:none!important}.swal2-popup{display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0,100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:#545454;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-title{position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 transparent #2778c4 transparent}.swal2-styled{margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px transparent;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#7066e0;color:#fff;font-size:1em}.swal2-styled.swal2-confirm:focus{box-shadow:0 0 0 3px rgba(112,102,224,.5)}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#dc3741;color:#fff;font-size:1em}.swal2-styled.swal2-deny:focus{box-shadow:0 0 0 3px rgba(220,55,65,.5)}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#6e7881;color:#fff;font-size:1em}.swal2-styled.swal2-cancel:focus{box-shadow:0 0 0 3px rgba(110,120,129,.5)}.swal2-styled.swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-styled:focus{outline:0}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:inherit;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto!important;height:.25em;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:2em auto 1em}.swal2-close{z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:0 0;color:#ccc;font-family:serif;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close:focus{outline:0;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-html-container{z-index:1;justify-content:center;margin:1em 1.6em .3em;padding:0;overflow:auto;color:inherit;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em 2em 3px}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:inherit;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px transparent;color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em 2em 3px;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-file{width:75%;margin-right:auto;margin-left:auto;background:inherit;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:inherit;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{flex-shrink:0;margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto 0}.swal2-validation-message{align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:"!";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:.25em solid transparent;border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-warning.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-warning.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-i-mark .5s;animation:swal2-animate-i-mark .5s}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-info.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-info.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-i-mark .8s;animation:swal2-animate-i-mark .8s}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-question.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-question.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-question-mark .8s;animation:swal2-animate-question-mark .8s}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:inherit;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@-webkit-keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@-webkit-keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{background-color:transparent!important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:transparent;pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto} \ No newline at end of file +.swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4!important;grid-row:1/4!important;grid-template-columns:1fr 99fr 1fr;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px hsla(0deg,0%,0%,.075),0 1px 2px hsla(0deg,0%,0%,.075),1px 2px 4px hsla(0deg,0%,0%,.075),1px 3px 8px hsla(0deg,0%,0%,.075),2px 4px 16px hsla(0deg,0%,0%,.075);pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:grid;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;box-sizing:border-box;grid-template-areas:"top-start top top-end" "center-start center center-end" "bottom-start bottom-center bottom-end";grid-template-rows:minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto);grid-template-rows:minmax(min-content,auto) minmax(min-content,auto) minmax(min-content,auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-bottom-start,.swal2-container.swal2-center-start,.swal2-container.swal2-top-start{grid-template-columns:minmax(0,1fr) auto auto}.swal2-container.swal2-bottom,.swal2-container.swal2-center,.swal2-container.swal2-top{grid-template-columns:auto minmax(0,1fr) auto}.swal2-container.swal2-bottom-end,.swal2-container.swal2-center-end,.swal2-container.swal2-top-end{grid-template-columns:auto auto minmax(0,1fr)}.swal2-container.swal2-top-start>.swal2-popup{align-self:start}.swal2-container.swal2-top>.swal2-popup{grid-column:2;align-self:start;justify-self:center}.swal2-container.swal2-top-end>.swal2-popup,.swal2-container.swal2-top-right>.swal2-popup{grid-column:3;align-self:start;justify-self:end}.swal2-container.swal2-center-left>.swal2-popup,.swal2-container.swal2-center-start>.swal2-popup{grid-row:2;align-self:center}.swal2-container.swal2-center>.swal2-popup{grid-column:2;grid-row:2;align-self:center;justify-self:center}.swal2-container.swal2-center-end>.swal2-popup,.swal2-container.swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;align-self:center;justify-self:end}.swal2-container.swal2-bottom-left>.swal2-popup,.swal2-container.swal2-bottom-start>.swal2-popup{grid-column:1;grid-row:3;align-self:end}.swal2-container.swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;justify-self:center;align-self:end}.swal2-container.swal2-bottom-end>.swal2-popup,.swal2-container.swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;align-self:end;justify-self:end}.swal2-container.swal2-grow-fullscreen>.swal2-popup,.swal2-container.swal2-grow-row>.swal2-popup{grid-column:1/4;width:100%}.swal2-container.swal2-grow-column>.swal2-popup,.swal2-container.swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}.swal2-container.swal2-no-transition{transition:none!important}.swal2-popup{display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0,100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:#545454;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-title{position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 transparent #2778c4 transparent}.swal2-styled{margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px transparent;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#7066e0;color:#fff;font-size:1em}.swal2-styled.swal2-confirm:focus{box-shadow:0 0 0 3px rgba(112,102,224,.5)}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#dc3741;color:#fff;font-size:1em}.swal2-styled.swal2-deny:focus{box-shadow:0 0 0 3px rgba(220,55,65,.5)}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#6e7881;color:#fff;font-size:1em}.swal2-styled.swal2-cancel:focus{box-shadow:0 0 0 3px rgba(110,120,129,.5)}.swal2-styled.swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-styled:focus{outline:0}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:inherit;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto!important;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:2em auto 1em}.swal2-close{z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:0 0;color:#ccc;font-family:serif;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close:focus{outline:0;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-html-container{z-index:1;justify-content:center;margin:1em 1.6em .3em;padding:0;overflow:auto;color:inherit;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em 2em 3px}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:0 0;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px transparent;color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em 2em 3px;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-file{width:75%;margin-right:auto;margin-left:auto;background:0 0;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:0 0;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{flex-shrink:0;margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto 0}.swal2-validation-message{align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:"!";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:.25em solid transparent;border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-warning.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-warning.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-i-mark .5s;animation:swal2-animate-i-mark .5s}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-info.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-info.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-i-mark .8s;animation:swal2-animate-i-mark .8s}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-question.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-question.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-question-mark .8s;animation:swal2-animate-question-mark .8s}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:0 0;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}.swal2-no-war{display:flex;position:fixed;z-index:1061;top:0;left:0;align-items:center;justify-content:center;width:100%;height:3.375em;background:#20232a;color:#fff;text-align:center}.swal2-no-war a{color:#61dafb;text-decoration:none}.swal2-no-war a:hover{text-decoration:underline}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@-webkit-keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@-webkit-keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{background-color:transparent!important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:transparent;pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto} \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/sweetalert2/sweetalert2.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/sweetalert2/sweetalert2.min.js index 2f4b49b9..11e1e20c 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/sweetalert2/sweetalert2.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/sweetalert2/sweetalert2.min.js @@ -1 +1 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).Sweetalert2=t()}(this,function(){"use strict";const t="SweetAlert2:",o=e=>e.charAt(0).toUpperCase()+e.slice(1),a=e=>Array.prototype.slice.call(e),r=e=>{console.warn("".concat(t," ").concat("object"==typeof e?e.join(" "):e))},s=e=>{console.error("".concat(t," ").concat(e))},n=[],i=(e,t)=>{t='"'.concat(e,'" is deprecated and will be removed in the next major release. Please use "').concat(t,'" instead.'),n.includes(t)||(n.push(t),r(t))},c=e=>"function"==typeof e?e():e,l=e=>e&&"function"==typeof e.toPromise,u=e=>l(e)?e.toPromise():Promise.resolve(e),d=e=>e&&Promise.resolve(e)===e,p={title:"",titleText:"",text:"",html:"",footer:"",icon:void 0,iconColor:void 0,iconHtml:void 0,template:void 0,toast:!1,showClass:{popup:"swal2-show",backdrop:"swal2-backdrop-show",icon:"swal2-icon-show"},hideClass:{popup:"swal2-hide",backdrop:"swal2-backdrop-hide",icon:"swal2-icon-hide"},customClass:{},target:"body",color:void 0,backdrop:!0,heightAuto:!0,allowOutsideClick:!0,allowEscapeKey:!0,allowEnterKey:!0,stopKeydownPropagation:!0,keydownListenerCapture:!1,showConfirmButton:!0,showDenyButton:!1,showCancelButton:!1,preConfirm:void 0,preDeny:void 0,confirmButtonText:"OK",confirmButtonAriaLabel:"",confirmButtonColor:void 0,denyButtonText:"No",denyButtonAriaLabel:"",denyButtonColor:void 0,cancelButtonText:"Cancel",cancelButtonAriaLabel:"",cancelButtonColor:void 0,buttonsStyling:!0,reverseButtons:!1,focusConfirm:!0,focusDeny:!1,focusCancel:!1,returnFocus:!0,showCloseButton:!1,closeButtonHtml:"×",closeButtonAriaLabel:"Close this dialog",loaderHtml:"",showLoaderOnConfirm:!1,showLoaderOnDeny:!1,imageUrl:void 0,imageWidth:void 0,imageHeight:void 0,imageAlt:"",timer:void 0,timerProgressBar:!1,width:void 0,padding:void 0,background:void 0,input:void 0,inputPlaceholder:"",inputLabel:"",inputValue:"",inputOptions:{},inputAutoTrim:!0,inputAttributes:{},inputValidator:void 0,returnInputValueOnDeny:!1,validationMessage:void 0,grow:!1,position:"center",progressSteps:[],currentProgressStep:void 0,progressStepsDistance:void 0,willOpen:void 0,didOpen:void 0,didRender:void 0,willClose:void 0,didClose:void 0,didDestroy:void 0,scrollbarPadding:!0},m=["allowEscapeKey","allowOutsideClick","background","buttonsStyling","cancelButtonAriaLabel","cancelButtonColor","cancelButtonText","closeButtonAriaLabel","closeButtonHtml","color","confirmButtonAriaLabel","confirmButtonColor","confirmButtonText","currentProgressStep","customClass","denyButtonAriaLabel","denyButtonColor","denyButtonText","didClose","didDestroy","footer","hideClass","html","icon","iconColor","iconHtml","imageAlt","imageHeight","imageUrl","imageWidth","preConfirm","preDeny","progressSteps","returnFocus","reverseButtons","showCancelButton","showCloseButton","showConfirmButton","showDenyButton","text","title","titleText","willClose"],g={},h=["allowOutsideClick","allowEnterKey","backdrop","focusConfirm","focusDeny","focusCancel","returnFocus","heightAuto","keydownListenerCapture"],f=e=>Object.prototype.hasOwnProperty.call(p,e),b=e=>-1!==m.indexOf(e),y=e=>g[e],v=e=>{!e.backdrop&&e.allowOutsideClick&&r('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`');for(const o in e)n=o,f(n)||r('Unknown parameter "'.concat(n,'"')),e.toast&&(t=o,h.includes(t)&&r('The parameter "'.concat(t,'" is incompatible with toasts'))),t=o,y(t)&&i(t,y(t));var t,n};var e=e=>{const t={};for(const n in e)t[e[n]]="swal2-"+e[n];return t};const w=e(["container","shown","height-auto","iosfix","popup","modal","no-backdrop","no-transition","toast","toast-shown","show","hide","close","title","html-container","actions","confirm","deny","cancel","default-outline","footer","icon","icon-content","image","input","file","range","select","radio","checkbox","label","textarea","inputerror","input-label","validation-message","progress-steps","active-progress-step","progress-step","progress-step-line","loader","loading","styled","top","top-start","top-end","top-left","top-right","center","center-start","center-end","center-left","center-right","bottom","bottom-start","bottom-end","bottom-left","bottom-right","grow-row","grow-column","grow-fullscreen","rtl","timer-progress-bar","timer-progress-bar-container","scrollbar-measure","icon-success","icon-warning","icon-info","icon-question","icon-error"]),C=e(["success","warning","info","question","error"]),A=()=>document.body.querySelector(".".concat(w.container)),k=e=>{const t=A();return t?t.querySelector(e):null},B=e=>k(".".concat(e)),P=()=>B(w.popup),x=()=>B(w.icon),E=()=>B(w.title),S=()=>B(w["html-container"]),T=()=>B(w.image),L=()=>B(w["progress-steps"]),O=()=>B(w["validation-message"]),j=()=>k(".".concat(w.actions," .").concat(w.confirm)),M=()=>k(".".concat(w.actions," .").concat(w.deny));const D=()=>k(".".concat(w.loader)),H=()=>k(".".concat(w.actions," .").concat(w.cancel)),I=()=>B(w.actions),q=()=>B(w.footer),V=()=>B(w["timer-progress-bar"]),N=()=>B(w.close),F=()=>{const e=a(P().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')).sort((e,t)=>(e=parseInt(e.getAttribute("tabindex")),(t=parseInt(t.getAttribute("tabindex")))"-1"!==e.getAttribute("tabindex"));return(t=>{const n=[];for(let e=0;eae(e))},R=()=>!K(document.body,w["toast-shown"])&&!K(document.body,w["no-backdrop"]),U=()=>P()&&K(P(),w.toast);function z(e){var t=1{n.style.transition="width ".concat(e/1e3,"s linear"),n.style.width="0%"},10))}const W={previousBodyPadding:null},_=(t,e)=>{if(t.textContent="",e){const n=new DOMParser,o=n.parseFromString(e,"text/html");a(o.querySelector("head").childNodes).forEach(e=>{t.appendChild(e)}),a(o.querySelector("body").childNodes).forEach(e=>{t.appendChild(e)})}},K=(t,e)=>{if(!e)return!1;var n=e.split(/\s+/);for(let e=0;e{var o,i;if(o=e,i=t,a(o.classList).forEach(e=>{Object.values(w).includes(e)||Object.values(C).includes(e)||Object.values(i.showClass).includes(e)||o.classList.remove(e)}),t.customClass&&t.customClass[n]){if("string"!=typeof t.customClass[n]&&!t.customClass[n].forEach)return r("Invalid type of customClass.".concat(n,'! Expected string or iterable object, got "').concat(typeof t.customClass[n],'"'));$(e,t.customClass[n])}},Z=(e,t)=>{if(!t)return null;switch(t){case"select":case"textarea":case"file":return e.querySelector(".".concat(w.popup," > .").concat(w[t]));case"checkbox":return e.querySelector(".".concat(w.popup," > .").concat(w.checkbox," input"));case"radio":return e.querySelector(".".concat(w.popup," > .").concat(w.radio," input:checked"))||e.querySelector(".".concat(w.popup," > .").concat(w.radio," input:first-child"));case"range":return e.querySelector(".".concat(w.popup," > .").concat(w.range," input"));default:return e.querySelector(".".concat(w.popup," > .").concat(w.input))}},J=e=>{var t;e.focus(),"file"!==e.type&&(t=e.value,e.value="",e.value=t)},X=(e,t,n)=>{e&&t&&(t="string"==typeof t?t.split(/\s+/).filter(Boolean):t).forEach(t=>{Array.isArray(e)?e.forEach(e=>{n?e.classList.add(t):e.classList.remove(t)}):n?e.classList.add(t):e.classList.remove(t)})},$=(e,t)=>{X(e,t,!0)},G=(e,t)=>{X(e,t,!1)},Q=(e,t)=>{var n=a(e.childNodes);for(let e=0;e{(n=n==="".concat(parseInt(n))?parseInt(n):n)||0===parseInt(n)?e.style[t]="number"==typeof n?"".concat(n,"px"):n:e.style.removeProperty(t)},te=function(e){e.style.display=1{e.style.display="none"},oe=(e,t,n,o)=>{const i=e.querySelector(t);i&&(i.style[n]=o)},ie=(e,t,n)=>{t?te(e,n):ne(e)},ae=e=>!(!e||!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)),re=()=>!ae(j())&&!ae(M())&&!ae(H()),se=e=>!!(e.scrollHeight>e.clientHeight),ce=e=>{const t=window.getComputedStyle(e);var n=parseFloat(t.getPropertyValue("animation-duration")||"0"),e=parseFloat(t.getPropertyValue("transition-duration")||"0");return 0"undefined"==typeof window||"undefined"==typeof document,ue=100,de={},pe=()=>{de.previousActiveElement&&de.previousActiveElement.focus?(de.previousActiveElement.focus(),de.previousActiveElement=null):document.body&&document.body.focus()},me=o=>new Promise(e=>{if(!o)return e();var t=window.scrollX,n=window.scrollY;de.restoreFocusTimeout=setTimeout(()=>{pe(),e()},ue),window.scrollTo(t,n)}),ge='\n
        \n \n
          \n
          \n \n

          \n
          \n \n \n
          \n \n \n
          \n \n
          \n \n \n
          \n
          \n
          \n \n \n \n
          \n
          \n
          \n
          \n
          \n
          \n').replace(/(^|\n)\s*/g,""),he=()=>{const e=A();return!!e&&(e.remove(),G([document.documentElement,document.body],[w["no-backdrop"],w["toast-shown"],w["has-column"]]),!0)},fe=()=>{de.currentInstance.resetValidationMessage()},be=()=>{const e=P(),t=Q(e,w.input),n=Q(e,w.file),o=e.querySelector(".".concat(w.range," input")),i=e.querySelector(".".concat(w.range," output")),a=Q(e,w.select),r=e.querySelector(".".concat(w.checkbox," input")),s=Q(e,w.textarea);t.oninput=fe,n.onchange=fe,a.onchange=fe,r.onchange=fe,s.oninput=fe,o.oninput=()=>{fe(),i.value=o.value},o.onchange=()=>{fe(),o.nextSibling.value=o.value}},ye=e=>"string"==typeof e?document.querySelector(e):e,ve=e=>{const t=P();t.setAttribute("role",e.toast?"alert":"dialog"),t.setAttribute("aria-live",e.toast?"polite":"assertive"),e.toast||t.setAttribute("aria-modal","true")},we=e=>{"rtl"===window.getComputedStyle(e).direction&&$(A(),w.rtl)},Ce=(e,t)=>{e instanceof HTMLElement?t.appendChild(e):"object"==typeof e?((e,t)=>{if(e.jquery)Ae(t,e);else _(t,e.toString())})(e,t):e&&_(t,e)},Ae=(t,n)=>{if(t.textContent="",0 in n)for(let e=0;e in n;e++)t.appendChild(n[e].cloneNode(!0));else t.appendChild(n.cloneNode(!0))},ke=(()=>{if(le())return!1;var e=document.createElement("div"),t={WebkitAnimation:"webkitAnimationEnd",OAnimation:"oAnimationEnd oanimationend",animation:"animationend"};for(const n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&void 0!==e.style[n])return t[n];return!1})(),Be=(e,t)=>{var n,o,i,a,r,s=I(),c=D();(t.showConfirmButton||t.showDenyButton||t.showCancelButton?te:ne)(s),Y(s,t,"actions"),n=s,o=c,i=t,a=j(),r=M(),s=H(),Pe(a,"confirm",i),Pe(r,"deny",i),Pe(s,"cancel",i),function(e,t,n,o){if(!o.buttonsStyling)return G([e,t,n],w.styled);$([e,t,n],w.styled),o.confirmButtonColor&&(e.style.backgroundColor=o.confirmButtonColor,$(e,w["default-outline"]));o.denyButtonColor&&(t.style.backgroundColor=o.denyButtonColor,$(t,w["default-outline"]));o.cancelButtonColor&&(n.style.backgroundColor=o.cancelButtonColor,$(n,w["default-outline"]))}(a,r,s,i),i.reverseButtons&&(i.toast?(n.insertBefore(s,a),n.insertBefore(r,a)):(n.insertBefore(s,o),n.insertBefore(r,o),n.insertBefore(a,o))),_(c,t.loaderHtml),Y(c,t,"loader")};function Pe(e,t,n){ie(e,n["show".concat(o(t),"Button")],"inline-block"),_(e,n["".concat(t,"ButtonText")]),e.setAttribute("aria-label",n["".concat(t,"ButtonAriaLabel")]),e.className=w[t],Y(e,n,"".concat(t,"Button")),$(e,n["".concat(t,"ButtonClass")])}const xe=(e,t)=>{var n,o,i=A();i&&(o=i,"string"==typeof(n=t.backdrop)?o.style.background=n:n||$([document.documentElement,document.body],w["no-backdrop"]),o=i,(n=t.position)in w?$(o,w[n]):(r('The "position" parameter is not valid, defaulting to "center"'),$(o,w.center)),n=i,!(o=t.grow)||"string"!=typeof o||(o="grow-".concat(o))in w&&$(n,w[o]),Y(i,t,"container"))};var Ee={awaitingPromise:new WeakMap,promise:new WeakMap,innerParams:new WeakMap,domCache:new WeakMap};const Se=["input","file","range","select","radio","checkbox","textarea"],Te=(e,o)=>{const i=P();e=Ee.innerParams.get(e);const a=!e||o.input!==e.input;Se.forEach(e=>{var t=w[e];const n=Q(i,t);((e,t)=>{const n=Z(P(),e);if(n){Le(n);for(const o in t)n.setAttribute(o,t[o])}})(e,o.inputAttributes),n.className=t,a&&ne(n)}),o.input&&(a&&(e=>{if(!De[e.input])return s('Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "'.concat(e.input,'"'));const t=Me(e.input),n=De[e.input](t,e);te(n),setTimeout(()=>{J(n)})})(o),(e=>{const t=Me(e.input);if(e.customClass)$(t,e.customClass.input)})(o))},Le=t=>{for(let e=0;e{e.placeholder&&!t.inputPlaceholder||(e.placeholder=t.inputPlaceholder)},je=(e,t,n)=>{if(n.inputLabel){e.id=w.input;const i=document.createElement("label");var o=w["input-label"];i.setAttribute("for",e.id),i.className=o,$(i,n.customClass.inputLabel),i.innerText=n.inputLabel,t.insertAdjacentElement("beforebegin",i)}},Me=e=>{e=w[e]||w.input;return Q(P(),e)},De={};De.text=De.email=De.password=De.number=De.tel=De.url=(e,t)=>("string"==typeof t.inputValue||"number"==typeof t.inputValue?e.value=t.inputValue:d(t.inputValue)||r('Unexpected type of inputValue! Expected "string", "number" or "Promise", got "'.concat(typeof t.inputValue,'"')),je(e,e,t),Oe(e,t),e.type=t.input,e),De.file=(e,t)=>(je(e,e,t),Oe(e,t),e),De.range=(e,t)=>{const n=e.querySelector("input"),o=e.querySelector("output");return n.value=t.inputValue,n.type=t.input,o.value=t.inputValue,je(n,e,t),e},De.select=(e,t)=>{if(e.textContent="",t.inputPlaceholder){const n=document.createElement("option");_(n,t.inputPlaceholder),n.value="",n.disabled=!0,n.selected=!0,e.appendChild(n)}return je(e,e,t),e},De.radio=e=>(e.textContent="",e),De.checkbox=(e,t)=>{const n=Z(P(),"checkbox");n.value="1",n.id=w.checkbox,n.checked=Boolean(t.inputValue);var o=e.querySelector("span");return _(o,t.inputPlaceholder),e},De.textarea=(n,e)=>{n.value=e.inputValue,Oe(n,e),je(n,n,e);return setTimeout(()=>{if("MutationObserver"in window){const t=parseInt(window.getComputedStyle(P()).width);new MutationObserver(()=>{var e,e=n.offsetWidth+(e=n,parseInt(window.getComputedStyle(e).marginLeft)+parseInt(window.getComputedStyle(e).marginRight));e>t?P().style.width="".concat(e,"px"):P().style.width=null}).observe(n,{attributes:!0,attributeFilter:["style"]})}}),n};const He=(e,t)=>{const n=S();Y(n,t,"htmlContainer"),t.html?(Ce(t.html,n),te(n,"block")):t.text?(n.textContent=t.text,te(n,"block")):ne(n),Te(e,t)},Ie=(e,t)=>{var n=q();ie(n,t.footer),t.footer&&Ce(t.footer,n),Y(n,t,"footer")},qe=(e,t)=>{const n=N();_(n,t.closeButtonHtml),Y(n,t,"closeButton"),ie(n,t.showCloseButton),n.setAttribute("aria-label",t.closeButtonAriaLabel)},Ve=(e,t)=>{var n=Ee.innerParams.get(e),e=x();return n&&t.icon===n.icon?(Re(e,t),void Ne(e,t)):t.icon||t.iconHtml?t.icon&&-1===Object.keys(C).indexOf(t.icon)?(s('Unknown icon! Expected "success", "error", "warning", "info" or "question", got "'.concat(t.icon,'"')),ne(e)):(te(e),Re(e,t),Ne(e,t),void $(e,t.showClass.icon)):ne(e)},Ne=(e,t)=>{for(const n in C)t.icon!==n&&G(e,C[n]);$(e,C[t.icon]),Ue(e,t),Fe(),Y(e,t,"icon")},Fe=()=>{const e=P();var t=window.getComputedStyle(e).getPropertyValue("background-color");const n=e.querySelectorAll("[class^=swal2-success-circular-line], .swal2-success-fix");for(let e=0;e{var n;e.textContent="",t.iconHtml?_(e,ze(t.iconHtml)):"success"===t.icon?_(e,'\n
          \n \n
          \n
          \n '):"error"===t.icon?_(e,'\n \n \n \n \n '):(n={question:"?",warning:"!",info:"i"},_(e,ze(n[t.icon])))},Ue=(e,t)=>{if(t.iconColor){e.style.color=t.iconColor,e.style.borderColor=t.iconColor;for(const n of[".swal2-success-line-tip",".swal2-success-line-long",".swal2-x-mark-line-left",".swal2-x-mark-line-right"])oe(e,n,"backgroundColor",t.iconColor);oe(e,".swal2-success-ring","borderColor",t.iconColor)}},ze=e=>'
          ').concat(e,"
          "),We=(e,t)=>{const n=T();if(!t.imageUrl)return ne(n);te(n,""),n.setAttribute("src",t.imageUrl),n.setAttribute("alt",t.imageAlt),ee(n,"width",t.imageWidth),ee(n,"height",t.imageHeight),n.className=w.image,Y(n,t,"image")},_e=(e,o)=>{const i=L();if(!o.progressSteps||0===o.progressSteps.length)return ne(i);te(i),i.textContent="",o.currentProgressStep>=o.progressSteps.length&&r("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),o.progressSteps.forEach((e,t)=>{var n,e=(n=e,e=document.createElement("li"),$(e,w["progress-step"]),_(e,n),e);i.appendChild(e),t===o.currentProgressStep&&$(e,w["active-progress-step"]),t!==o.progressSteps.length-1&&(t=(e=>{const t=document.createElement("li");return $(t,w["progress-step-line"]),e.progressStepsDistance&&(t.style.width=e.progressStepsDistance),t})(o),i.appendChild(t))})},Ke=(e,t)=>{const n=E();ie(n,t.title||t.titleText,"block"),t.title&&Ce(t.title,n),t.titleText&&(n.innerText=t.titleText),Y(n,t,"title")},Ye=(e,t)=>{var n=A();const o=P();t.toast?(ee(n,"width",t.width),o.style.width="100%",o.insertBefore(D(),x())):ee(o,"width",t.width),ee(o,"padding",t.padding),t.color&&(o.style.color=t.color),t.background&&(o.style.background=t.background),ne(O()),((e,t)=>{if(e.className="".concat(w.popup," ").concat(ae(e)?t.showClass.popup:""),t.toast){$([document.documentElement,document.body],w["toast-shown"]);$(e,w.toast)}else $(e,w.modal);if(Y(e,t,"popup"),typeof t.customClass==="string")$(e,t.customClass);if(t.icon)$(e,w["icon-".concat(t.icon)])})(o,t)},Ze=(e,t)=>{Ye(e,t),xe(e,t),_e(e,t),Ve(e,t),We(e,t),Ke(e,t),qe(e,t),He(e,t),Be(e,t),Ie(e,t),"function"==typeof t.didRender&&t.didRender(P())},Je=Object.freeze({cancel:"cancel",backdrop:"backdrop",close:"close",esc:"esc",timer:"timer"}),Xe=()=>{const e=a(document.body.children);e.forEach(e=>{e===A()||e.contains(A())||(e.hasAttribute("aria-hidden")&&e.setAttribute("data-previous-aria-hidden",e.getAttribute("aria-hidden")),e.setAttribute("aria-hidden","true"))})},$e=()=>{const e=a(document.body.children);e.forEach(e=>{e.hasAttribute("data-previous-aria-hidden")?(e.setAttribute("aria-hidden",e.getAttribute("data-previous-aria-hidden")),e.removeAttribute("data-previous-aria-hidden")):e.removeAttribute("aria-hidden")})},Ge=["swal-title","swal-html","swal-footer"],Qe=e=>{const o={};return a(e.querySelectorAll("swal-param")).forEach(e=>{rt(e,["name","value"]);var t=e.getAttribute("name");let n=e.getAttribute("value");"boolean"==typeof p[t]&&"false"===n&&(n=!1),"object"==typeof p[t]&&(n=JSON.parse(n)),o[t]=n}),o},et=e=>{const n={};return a(e.querySelectorAll("swal-button")).forEach(e=>{rt(e,["type","color","aria-label"]);var t=e.getAttribute("type");n["".concat(t,"ButtonText")]=e.innerHTML,n["show".concat(o(t),"Button")]=!0,e.hasAttribute("color")&&(n["".concat(t,"ButtonColor")]=e.getAttribute("color")),e.hasAttribute("aria-label")&&(n["".concat(t,"ButtonAriaLabel")]=e.getAttribute("aria-label"))}),n},tt=e=>{const t={},n=e.querySelector("swal-image");return n&&(rt(n,["src","width","height","alt"]),n.hasAttribute("src")&&(t.imageUrl=n.getAttribute("src")),n.hasAttribute("width")&&(t.imageWidth=n.getAttribute("width")),n.hasAttribute("height")&&(t.imageHeight=n.getAttribute("height")),n.hasAttribute("alt")&&(t.imageAlt=n.getAttribute("alt"))),t},nt=e=>{const t={},n=e.querySelector("swal-icon");return n&&(rt(n,["type","color"]),n.hasAttribute("type")&&(t.icon=n.getAttribute("type")),n.hasAttribute("color")&&(t.iconColor=n.getAttribute("color")),t.iconHtml=n.innerHTML),t},ot=e=>{const n={},t=e.querySelector("swal-input");t&&(rt(t,["type","label","placeholder","value"]),n.input=t.getAttribute("type")||"text",t.hasAttribute("label")&&(n.inputLabel=t.getAttribute("label")),t.hasAttribute("placeholder")&&(n.inputPlaceholder=t.getAttribute("placeholder")),t.hasAttribute("value")&&(n.inputValue=t.getAttribute("value")));e=e.querySelectorAll("swal-input-option");return e.length&&(n.inputOptions={},a(e).forEach(e=>{rt(e,["value"]);var t=e.getAttribute("value"),e=e.innerHTML;n.inputOptions[t]=e})),n},it=(e,t)=>{const n={};for(const o in t){const i=t[o],a=e.querySelector(i);a&&(rt(a,[]),n[i.replace(/^swal-/,"")]=a.innerHTML.trim())}return n},at=e=>{const t=Ge.concat(["swal-param","swal-button","swal-image","swal-icon","swal-input","swal-input-option"]);a(e.children).forEach(e=>{e=e.tagName.toLowerCase();-1===t.indexOf(e)&&r("Unrecognized element <".concat(e,">"))})},rt=(t,n)=>{a(t.attributes).forEach(e=>{-1===n.indexOf(e.name)&&r(['Unrecognized attribute "'.concat(e.name,'" on <').concat(t.tagName.toLowerCase(),">."),"".concat(n.length?"Allowed attributes are: ".concat(n.join(", ")):"To set the value, use HTML within the element.")])})};var st={email:(e,t)=>/^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid email address"),url:(e,t)=>/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid URL")};function ct(e){var t,n;(t=e).inputValidator||Object.keys(st).forEach(e=>{t.input===e&&(t.inputValidator=st[e])}),e.showLoaderOnConfirm&&!e.preConfirm&&r("showLoaderOnConfirm is set to true, but preConfirm is not defined.\nshowLoaderOnConfirm should be used together with preConfirm, see usage example:\nhttps://sweetalert2.github.io/#ajax-request"),(n=e).target&&("string"!=typeof n.target||document.querySelector(n.target))&&("string"==typeof n.target||n.target.appendChild)||(r('Target parameter is not valid, defaulting to "body"'),n.target="body"),"string"==typeof e.title&&(e.title=e.title.split("\n").join("
          ")),(e=>{var t=he();if(le())s("SweetAlert2 requires document to initialize");else{const n=document.createElement("div");n.className=w.container,t&&$(n,w["no-transition"]),_(n,ge);const o=ye(e.target);o.appendChild(n),ve(e),we(o),be()}})(e)}class lt{constructor(e,t){this.callback=e,this.remaining=t,this.running=!1,this.start()}start(){return this.running||(this.running=!0,this.started=new Date,this.id=setTimeout(this.callback,this.remaining)),this.remaining}stop(){return this.running&&(this.running=!1,clearTimeout(this.id),this.remaining-=(new Date).getTime()-this.started.getTime()),this.remaining}increase(e){var t=this.running;return t&&this.stop(),this.remaining+=e,t&&this.start(),this.remaining}getTimerLeft(){return this.running&&(this.stop(),this.start()),this.remaining}isRunning(){return this.running}}const ut=()=>{null===W.previousBodyPadding&&document.body.scrollHeight>window.innerHeight&&(W.previousBodyPadding=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight="".concat(W.previousBodyPadding+(()=>{const e=document.createElement("div");e.className=w["scrollbar-measure"],document.body.appendChild(e);var t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t})(),"px"))},dt=()=>{null!==W.previousBodyPadding&&(document.body.style.paddingRight="".concat(W.previousBodyPadding,"px"),W.previousBodyPadding=null)},pt=()=>{var e;(/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream||"MacIntel"===navigator.platform&&1{const e=A();let t;e.ontouchstart=e=>{t=mt(e)},e.ontouchmove=e=>{if(t){e.preventDefault();e.stopPropagation()}}})(),(()=>{const e=!navigator.userAgent.match(/(CriOS|FxiOS|EdgiOS|YaBrowser|UCBrowser)/i);if(e){const t=44;if(P().scrollHeight>window.innerHeight-t)A().style.paddingBottom="".concat(t,"px")}})())},mt=e=>{var t,n=e.target,o=A();return!((t=e).touches&&t.touches.length&&"stylus"===t.touches[0].touchType||(e=e).touches&&1{var e;K(document.body,w.iosfix)&&(e=parseInt(document.body.style.top,10),G(document.body,w.iosfix),document.body.style.top="",document.body.scrollTop=-1*e)},ht=10,ft=e=>{const t=P();if(e.target===t){const n=A();t.removeEventListener(ke,ft),n.style.overflowY="auto"}},bt=(e,t)=>{ke&&ce(t)?(e.style.overflowY="hidden",t.addEventListener(ke,ft)):e.style.overflowY="auto"},yt=(e,t,n)=>{pt(),t&&"hidden"!==n&&ut(),setTimeout(()=>{e.scrollTop=0})},vt=(e,t,n)=>{$(e,n.showClass.backdrop),t.style.setProperty("opacity","0","important"),te(t,"grid"),setTimeout(()=>{$(t,n.showClass.popup),t.style.removeProperty("opacity")},ht),$([document.documentElement,document.body],w.shown),n.heightAuto&&n.backdrop&&!n.toast&&$([document.documentElement,document.body],w["height-auto"])},wt=e=>{let t=P();t||new fn,t=P();var n=D();U()?ne(x()):((e,t)=>{const n=I(),o=D();if(!t&&ae(j()))t=j();if(te(n),t){ne(t);o.setAttribute("data-button-to-replace",t.className)}o.parentNode.insertBefore(o,t),$([e,n],w.loading)})(t,e),te(n),t.setAttribute("data-loading",!0),t.setAttribute("aria-busy",!0),t.focus()},Ct=(t,n)=>{const o=P(),i=e=>kt[n.input](o,Bt(e),n);l(n.inputOptions)||d(n.inputOptions)?(wt(j()),u(n.inputOptions).then(e=>{t.hideLoading(),i(e)})):"object"==typeof n.inputOptions?i(n.inputOptions):s("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(typeof n.inputOptions))},At=(t,n)=>{const o=t.getInput();ne(o),u(n.inputValue).then(e=>{o.value="number"===n.input?parseFloat(e)||0:"".concat(e),te(o),o.focus(),t.hideLoading()}).catch(e=>{s("Error in inputValue promise: ".concat(e)),o.value="",te(o),o.focus(),t.hideLoading()})},kt={select:(e,t,i)=>{const a=Q(e,w.select),r=(e,t,n)=>{const o=document.createElement("option");o.value=n,_(o,t),o.selected=Pt(n,i.inputValue),e.appendChild(o)};t.forEach(e=>{var t=e[0];const n=e[1];if(Array.isArray(n)){const o=document.createElement("optgroup");o.label=t,o.disabled=!1,a.appendChild(o),n.forEach(e=>r(o,e[1],e[0]))}else r(a,n,t)}),a.focus()},radio:(e,t,a)=>{const r=Q(e,w.radio);t.forEach(e=>{var t=e[0],e=e[1];const n=document.createElement("input"),o=document.createElement("label");n.type="radio",n.name=w.radio,n.value=t,Pt(t,a.inputValue)&&(n.checked=!0);const i=document.createElement("span");_(i,e),i.className=w.label,o.appendChild(n),o.appendChild(i),r.appendChild(o)});const n=r.querySelectorAll("input");n.length&&n[0].focus()}},Bt=n=>{const o=[];return"undefined"!=typeof Map&&n instanceof Map?n.forEach((e,t)=>{let n=e;"object"==typeof n&&(n=Bt(n)),o.push([t,n])}):Object.keys(n).forEach(e=>{let t=n[e];"object"==typeof t&&(t=Bt(t)),o.push([e,t])}),o},Pt=(e,t)=>t&&t.toString()===e.toString(),xt=(e,t)=>{var n=Ee.innerParams.get(e),o=((e,t)=>{const n=e.getInput();if(!n)return null;switch(t.input){case"checkbox":return n.checked?1:0;case"radio":return(o=n).checked?o.value:null;case"file":return(o=n).files.length?null!==o.getAttribute("multiple")?o.files:o.files[0]:null;default:return t.inputAutoTrim?n.value.trim():n.value}var o})(e,n);n.inputValidator?((t,n,o)=>{const e=Ee.innerParams.get(t);t.disableInput();const i=Promise.resolve().then(()=>u(e.inputValidator(n,e.validationMessage)));i.then(e=>{t.enableButtons();t.enableInput();if(e)t.showValidationMessage(e);else if(o==="deny")Et(t,n);else Lt(t,n)})})(e,o,t):e.getInput().checkValidity()?("deny"===t?Et:Lt)(e,o):(e.enableButtons(),e.showValidationMessage(n.validationMessage))},Et=(t,n)=>{const e=Ee.innerParams.get(t||void 0);if(e.showLoaderOnDeny&&wt(M()),e.preDeny){Ee.awaitingPromise.set(t||void 0,!0);const o=Promise.resolve().then(()=>u(e.preDeny(n,e.validationMessage)));o.then(e=>{!1===e?t.hideLoading():t.closePopup({isDenied:!0,value:void 0===e?n:e})}).catch(e=>Tt(t||void 0,e))}else t.closePopup({isDenied:!0,value:n})},St=(e,t)=>{e.closePopup({isConfirmed:!0,value:t})},Tt=(e,t)=>{e.rejectPromise(t)},Lt=(t,n)=>{const e=Ee.innerParams.get(t||void 0);if(e.showLoaderOnConfirm&&wt(),e.preConfirm){t.resetValidationMessage(),Ee.awaitingPromise.set(t||void 0,!0);const o=Promise.resolve().then(()=>u(e.preConfirm(n,e.validationMessage)));o.then(e=>{ae(O())||!1===e?t.hideLoading():St(t,void 0===e?n:e)}).catch(e=>Tt(t||void 0,e))}else St(t,n)},Ot=(n,e,o)=>{e.popup.onclick=()=>{var e,t=Ee.innerParams.get(n);t&&((e=t).showConfirmButton||e.showDenyButton||e.showCancelButton||e.showCloseButton||t.timer||t.input)||o(Je.close)}};let jt=!1;const Mt=t=>{t.popup.onmousedown=()=>{t.container.onmouseup=function(e){t.container.onmouseup=void 0,e.target===t.container&&(jt=!0)}}},Dt=t=>{t.container.onmousedown=()=>{t.popup.onmouseup=function(e){t.popup.onmouseup=void 0,e.target!==t.popup&&!t.popup.contains(e.target)||(jt=!0)}}},Ht=(n,o,i)=>{o.container.onclick=e=>{var t=Ee.innerParams.get(n);jt?jt=!1:e.target===o.container&&c(t.allowOutsideClick)&&i(Je.backdrop)}};const It=()=>j()&&j().click();const qt=(e,t,n)=>{const o=F();if(o.length)return(t+=n)===o.length?t=0:-1===t&&(t=o.length-1),o[t].focus();P().focus()},Vt=["ArrowRight","ArrowDown"],Nt=["ArrowLeft","ArrowUp"],Ft=(e,t,n)=>{var o,i,a=Ee.innerParams.get(e);a&&(a.stopKeydownPropagation&&t.stopPropagation(),"Enter"===t.key?(o=e,i=a,(e=t).isComposing||e.target&&o.getInput()&&e.target.outerHTML===o.getInput().outerHTML&&(["textarea","file"].includes(i.input)||(It(),e.preventDefault()))):"Tab"===t.key?((e,t)=>{const n=e.target,o=F();let i=-1;for(let e=0;e{const t=j(),n=M(),o=H();if([t,n,o].includes(document.activeElement)){var i=Vt.includes(e)?"nextElementSibling":"previousElementSibling";const a=document.activeElement[i];a instanceof HTMLElement&&a.focus()}})(t.key):"Escape"===t.key&&((e,t,n)=>{if(c(t.allowEscapeKey)){e.preventDefault();n(Je.esc)}})(t,a,n))},Rt=e=>"object"==typeof e&&e.jquery,Ut=e=>e instanceof Element||Rt(e);const zt=()=>{if(de.timeout)return(()=>{const e=V();var t=parseInt(window.getComputedStyle(e).width);e.style.removeProperty("transition"),e.style.width="100%";t=t/parseInt(window.getComputedStyle(e).width)*100;e.style.removeProperty("transition"),e.style.width="".concat(t,"%")})(),de.timeout.stop()},Wt=()=>{if(de.timeout){var e=de.timeout.start();return z(e),e}};let _t=!1;const Kt={};const Yt=t=>{for(let e=t.target;e&&e!==document;e=e.parentNode)for(const o in Kt){var n=e.getAttribute(o);if(n)return void Kt[o].fire({template:n})}};var Zt=Object.freeze({isValidParameter:f,isUpdatableParameter:b,isDeprecatedParameter:y,argsToParams:n=>{const o={};return"object"!=typeof n[0]||Ut(n[0])?["title","html","icon"].forEach((e,t)=>{t=n[t];"string"==typeof t||Ut(t)?o[e]=t:void 0!==t&&s("Unexpected type of ".concat(e,'! Expected "string" or "Element", got ').concat(typeof t))}):Object.assign(o,n[0]),o},isVisible:()=>ae(P()),clickConfirm:It,clickDeny:()=>M()&&M().click(),clickCancel:()=>H()&&H().click(),getContainer:A,getPopup:P,getTitle:E,getHtmlContainer:S,getImage:T,getIcon:x,getInputLabel:()=>B(w["input-label"]),getCloseButton:N,getActions:I,getConfirmButton:j,getDenyButton:M,getCancelButton:H,getLoader:D,getFooter:q,getTimerProgressBar:V,getFocusableElements:F,getValidationMessage:O,isLoading:()=>P().hasAttribute("data-loading"),fire:function(){for(var e=arguments.length,t=new Array(e),n=0;nde.timeout&&de.timeout.getTimerLeft(),stopTimer:zt,resumeTimer:Wt,toggleTimer:()=>{var e=de.timeout;return e&&(e.running?zt:Wt)()},increaseTimer:e=>{if(de.timeout){e=de.timeout.increase(e);return z(e,!0),e}},isTimerRunning:()=>de.timeout&&de.timeout.isRunning(),bindClickHandler:function(){var e=0{const t=e.popup.getElementsByClassName(e.loader.getAttribute("data-button-to-replace"));if(t.length)te(t[0],"inline-block");else if(re())ne(e.actions)})(t),G([t.popup,t.actions],w.loading),t.popup.removeAttribute("aria-busy"),t.popup.removeAttribute("data-loading"),t.confirmButton.disabled=!1,t.denyButton.disabled=!1,t.cancelButton.disabled=!1}}var Xt={swalPromiseResolve:new WeakMap,swalPromiseReject:new WeakMap};function $t(e,t,n,o){U()?tn(e,o):(me(n).then(()=>tn(e,o)),de.keydownTarget.removeEventListener("keydown",de.keydownHandler,{capture:de.keydownListenerCapture}),de.keydownHandlerAdded=!1),/^((?!chrome|android).)*safari/i.test(navigator.userAgent)?(t.setAttribute("style","display:none !important"),t.removeAttribute("class"),t.innerHTML=""):t.remove(),R()&&(dt(),gt(),$e()),G([document.documentElement,document.body],[w.shown,w["height-auto"],w["no-backdrop"],w["toast-shown"]])}function Gt(e){e=void 0!==(n=e)?Object.assign({isConfirmed:!1,isDenied:!1,isDismissed:!1},n):{isConfirmed:!1,isDenied:!1,isDismissed:!0};const t=Xt.swalPromiseResolve.get(this);var n=(e=>{const t=P();if(!t)return false;const n=Ee.innerParams.get(e);if(!n||K(t,n.hideClass.popup))return false;G(t,n.showClass.popup),$(t,n.hideClass.popup);const o=A();return G(o,n.showClass.backdrop),$(o,n.hideClass.backdrop),en(e,t,n),true})(this);this.isAwaitingPromise()?e.isDismissed||(Qt(this),t(e)):n&&t(e)}const Qt=e=>{e.isAwaitingPromise()&&(Ee.awaitingPromise.delete(e),Ee.innerParams.get(e)||e._destroy())},en=(e,t,n)=>{var o,i,a,r=A(),s=ke&&ce(t);"function"==typeof n.willClose&&n.willClose(t),s?(o=e,i=t,a=r,s=n.returnFocus,t=n.didClose,de.swalCloseEventFinishedCallback=$t.bind(null,o,a,s,t),i.addEventListener(ke,function(e){e.target===i&&(de.swalCloseEventFinishedCallback(),delete de.swalCloseEventFinishedCallback)})):$t(e,r,n.returnFocus,n.didClose)},tn=(e,t)=>{setTimeout(()=>{"function"==typeof t&&t.bind(e.params)(),e._destroy()})};function nn(e,t,n){const o=Ee.domCache.get(e);t.forEach(e=>{o[e].disabled=n})}function on(e,t){if(!e)return!1;if("radio"===e.type){const n=e.parentNode.parentNode,o=n.querySelectorAll("input");for(let e=0;e{e.isAwaitingPromise()?(rn(Ee,e),Ee.awaitingPromise.set(e,!0)):(rn(Xt,e),rn(Ee,e))},rn=(e,t)=>{for(const n in e)e[n].delete(t)};e=Object.freeze({hideLoading:Jt,disableLoading:Jt,getInput:function(e){var t=Ee.innerParams.get(e||this);return(e=Ee.domCache.get(e||this))?Z(e.popup,t.input):null},close:Gt,isAwaitingPromise:function(){return!!Ee.awaitingPromise.get(this)},rejectPromise:function(e){const t=Xt.swalPromiseReject.get(this);Qt(this),t&&t(e)},closePopup:Gt,closeModal:Gt,closeToast:Gt,enableButtons:function(){nn(this,["confirmButton","denyButton","cancelButton"],!1)},disableButtons:function(){nn(this,["confirmButton","denyButton","cancelButton"],!0)},enableInput:function(){return on(this.getInput(),!1)},disableInput:function(){return on(this.getInput(),!0)},showValidationMessage:function(e){const t=Ee.domCache.get(this);var n=Ee.innerParams.get(this);_(t.validationMessage,e),t.validationMessage.className=w["validation-message"],n.customClass&&n.customClass.validationMessage&&$(t.validationMessage,n.customClass.validationMessage),te(t.validationMessage);const o=this.getInput();o&&(o.setAttribute("aria-invalid",!0),o.setAttribute("aria-describedby",w["validation-message"]),J(o),$(o,w.inputerror))},resetValidationMessage:function(){var e=Ee.domCache.get(this);e.validationMessage&&ne(e.validationMessage);const t=this.getInput();t&&(t.removeAttribute("aria-invalid"),t.removeAttribute("aria-describedby"),G(t,w.inputerror))},getProgressSteps:function(){return Ee.domCache.get(this).progressSteps},update:function(t){var e=P(),n=Ee.innerParams.get(this);if(!e||K(e,n.hideClass.popup))return r("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.");const o={};Object.keys(t).forEach(e=>{b(e)?o[e]=t[e]:r('Invalid parameter to update: "'.concat(e,'". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js\n\nIf you think this parameter should be updatable, request it here: https://github.com/sweetalert2/sweetalert2/issues/new?template=02_feature_request.md'))}),n=Object.assign({},n,o),Ze(this,n),Ee.innerParams.set(this,n),Object.defineProperties(this,{params:{value:Object.assign({},this.params,t),writable:!1,enumerable:!0}})},_destroy:function(){var e=Ee.domCache.get(this);const t=Ee.innerParams.get(this);t?(e.popup&&de.swalCloseEventFinishedCallback&&(de.swalCloseEventFinishedCallback(),delete de.swalCloseEventFinishedCallback),de.deferDisposalTimer&&(clearTimeout(de.deferDisposalTimer),delete de.deferDisposalTimer),"function"==typeof t.didDestroy&&t.didDestroy(),e=this,an(e),delete e.params,delete de.keydownHandler,delete de.keydownTarget,delete de.currentInstance):an(this)}});let sn;class cn{constructor(){if("undefined"!=typeof window){sn=this;for(var e=arguments.length,t=new Array(e),n=0;nnew Promise((e,t)=>{const n=e=>{r.closePopup({isDismissed:!0,dismiss:e})};var o,i,a;Xt.swalPromiseResolve.set(r,e),Xt.swalPromiseReject.set(r,t),s.confirmButton.onclick=()=>(e=>{var t=Ee.innerParams.get(e);e.disableButtons(),t.input?xt(e,"confirm"):Lt(e,!0)})(r),s.denyButton.onclick=()=>(e=>{var t=Ee.innerParams.get(e);e.disableButtons(),t.returnInputValueOnDeny?xt(e,"deny"):Et(e,!1)})(r),s.cancelButton.onclick=()=>((e,t)=>{e.disableButtons(),t(Je.cancel)})(r,n),s.closeButton.onclick=()=>n(Je.close),o=r,e=s,t=n,Ee.innerParams.get(o).toast?Ot(o,e,t):(Mt(e),Dt(e),Ht(o,e,t)),i=r,e=de,t=c,a=n,e.keydownTarget&&e.keydownHandlerAdded&&(e.keydownTarget.removeEventListener("keydown",e.keydownHandler,{capture:e.keydownListenerCapture}),e.keydownHandlerAdded=!1),t.toast||(e.keydownHandler=e=>Ft(i,e,a),e.keydownTarget=t.keydownListenerCapture?window:P(),e.keydownListenerCapture=t.keydownListenerCapture,e.keydownTarget.addEventListener("keydown",e.keydownHandler,{capture:e.keydownListenerCapture}),e.keydownHandlerAdded=!0),t=r,"select"===(e=c).input||"radio"===e.input?Ct(t,e):["text","email","number","tel","textarea"].includes(e.input)&&(l(e.inputValue)||d(e.inputValue))&&(wt(j()),At(t,e)),(e=>{const t=A(),n=P();"function"==typeof e.willOpen&&e.willOpen(n);var o=window.getComputedStyle(document.body).overflowY;vt(t,n,e),setTimeout(()=>{bt(t,n)},ht),R()&&(yt(t,e.scrollbarPadding,o),Xe()),U()||de.previousActiveElement||(de.previousActiveElement=document.activeElement),"function"==typeof e.didOpen&&setTimeout(()=>e.didOpen(n)),G(t,w["no-transition"])})(c),pn(de,c,n),mn(s,c),setTimeout(()=>{s.container.scrollTop=0})}),un=(e,t)=>{var n=(e=>{e="string"==typeof e.template?document.querySelector(e.template):e.template;if(!e)return{};e=e.content;return at(e),Object.assign(Qe(e),et(e),tt(e),nt(e),ot(e),it(e,Ge))})(e);const o=Object.assign({},p,t,n,e);return o.showClass=Object.assign({},p.showClass,o.showClass),o.hideClass=Object.assign({},p.hideClass,o.hideClass),o},dn=e=>{var t={popup:P(),container:A(),actions:I(),confirmButton:j(),denyButton:M(),cancelButton:H(),loader:D(),closeButton:N(),validationMessage:O(),progressSteps:L()};return Ee.domCache.set(e,t),t},pn=(e,t,n)=>{var o=V();ne(o),t.timer&&(e.timeout=new lt(()=>{n("timer"),delete e.timeout},t.timer),t.timerProgressBar&&(te(o),setTimeout(()=>{e.timeout&&e.timeout.running&&z(t.timer)})))},mn=(e,t)=>{if(!t.toast)return c(t.allowEnterKey)?void(gn(e,t)||qt(t,-1,1)):hn()},gn=(e,t)=>t.focusDeny&&ae(e.denyButton)?(e.denyButton.focus(),!0):t.focusCancel&&ae(e.cancelButton)?(e.cancelButton.focus(),!0):!(!t.focusConfirm||!ae(e.confirmButton))&&(e.confirmButton.focus(),!0),hn=()=>{document.activeElement instanceof HTMLElement&&"function"==typeof document.activeElement.blur&&document.activeElement.blur()};Object.assign(cn.prototype,e),Object.assign(cn,Zt),Object.keys(e).forEach(e=>{cn[e]=function(){if(sn)return sn[e](...arguments)}}),cn.DismissReason=Je,cn.version="11.3.3";const fn=cn;return fn.default=fn,fn}),void 0!==this&&this.Sweetalert2&&(this.swal=this.sweetAlert=this.Swal=this.SweetAlert=this.Sweetalert2); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).Sweetalert2=t()}(this,function(){"use strict";const D="SweetAlert2:",q=e=>e.charAt(0).toUpperCase()+e.slice(1),i=e=>Array.prototype.slice.call(e),a=e=>{console.warn("".concat(D," ").concat("object"==typeof e?e.join(" "):e))},l=e=>{console.error("".concat(D," ").concat(e))},V=[],N=(e,t)=>{e='"'.concat(e,'" is deprecated and will be removed in the next major release. Please use "').concat(t,'" instead.'),V.includes(e)||(V.push(e),a(e))},R=e=>"function"==typeof e?e():e,U=e=>e&&"function"==typeof e.toPromise,u=e=>U(e)?e.toPromise():Promise.resolve(e),F=e=>e&&Promise.resolve(e)===e,r={title:"",titleText:"",text:"",html:"",footer:"",icon:void 0,iconColor:void 0,iconHtml:void 0,template:void 0,toast:!1,showClass:{popup:"swal2-show",backdrop:"swal2-backdrop-show",icon:"swal2-icon-show"},hideClass:{popup:"swal2-hide",backdrop:"swal2-backdrop-hide",icon:"swal2-icon-hide"},customClass:{},target:"body",color:void 0,backdrop:!0,heightAuto:!0,allowOutsideClick:!0,allowEscapeKey:!0,allowEnterKey:!0,stopKeydownPropagation:!0,keydownListenerCapture:!1,showConfirmButton:!0,showDenyButton:!1,showCancelButton:!1,preConfirm:void 0,preDeny:void 0,confirmButtonText:"OK",confirmButtonAriaLabel:"",confirmButtonColor:void 0,denyButtonText:"No",denyButtonAriaLabel:"",denyButtonColor:void 0,cancelButtonText:"Cancel",cancelButtonAriaLabel:"",cancelButtonColor:void 0,buttonsStyling:!0,reverseButtons:!1,focusConfirm:!0,focusDeny:!1,focusCancel:!1,returnFocus:!0,showCloseButton:!1,closeButtonHtml:"×",closeButtonAriaLabel:"Close this dialog",loaderHtml:"",showLoaderOnConfirm:!1,showLoaderOnDeny:!1,imageUrl:void 0,imageWidth:void 0,imageHeight:void 0,imageAlt:"",timer:void 0,timerProgressBar:!1,width:void 0,padding:void 0,background:void 0,input:void 0,inputPlaceholder:"",inputLabel:"",inputValue:"",inputOptions:{},inputAutoTrim:!0,inputAttributes:{},inputValidator:void 0,returnInputValueOnDeny:!1,validationMessage:void 0,grow:!1,position:"center",progressSteps:[],currentProgressStep:void 0,progressStepsDistance:void 0,willOpen:void 0,didOpen:void 0,didRender:void 0,willClose:void 0,didClose:void 0,didDestroy:void 0,scrollbarPadding:!0},W=["allowEscapeKey","allowOutsideClick","background","buttonsStyling","cancelButtonAriaLabel","cancelButtonColor","cancelButtonText","closeButtonAriaLabel","closeButtonHtml","color","confirmButtonAriaLabel","confirmButtonColor","confirmButtonText","currentProgressStep","customClass","denyButtonAriaLabel","denyButtonColor","denyButtonText","didClose","didDestroy","footer","hideClass","html","icon","iconColor","iconHtml","imageAlt","imageHeight","imageUrl","imageWidth","preConfirm","preDeny","progressSteps","returnFocus","reverseButtons","showCancelButton","showCloseButton","showConfirmButton","showDenyButton","text","title","titleText","willClose"],z={},K=["allowOutsideClick","allowEnterKey","backdrop","focusConfirm","focusDeny","focusCancel","returnFocus","heightAuto","keydownListenerCapture"],_=e=>Object.prototype.hasOwnProperty.call(r,e),Y=e=>-1!==W.indexOf(e),Z=e=>z[e],J=e=>{!e.backdrop&&e.allowOutsideClick&&a('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`');for(const n in e)t=n,_(t)||a('Unknown parameter "'.concat(t,'"')),e.toast&&(t=n,K.includes(t)&&a('The parameter "'.concat(t,'" is incompatible with toasts'))),t=n,Z(t)&&N(t,Z(t));var t};var e=e=>{const t={};for(const n in e)t[e[n]]="swal2-"+e[n];return t};const p=e(["container","shown","height-auto","iosfix","popup","modal","no-backdrop","no-transition","toast","toast-shown","show","hide","close","title","html-container","actions","confirm","deny","cancel","default-outline","footer","icon","icon-content","image","input","file","range","select","radio","checkbox","label","textarea","inputerror","input-label","validation-message","progress-steps","active-progress-step","progress-step","progress-step-line","loader","loading","styled","top","top-start","top-end","top-left","top-right","center","center-start","center-end","center-left","center-right","bottom","bottom-start","bottom-end","bottom-left","bottom-right","grow-row","grow-column","grow-fullscreen","rtl","timer-progress-bar","timer-progress-bar-container","scrollbar-measure","icon-success","icon-warning","icon-info","icon-question","icon-error","no-war"]),o=e(["success","warning","info","question","error"]),m=()=>document.body.querySelector(".".concat(p.container)),t=e=>{const t=m();return t?t.querySelector(e):null},n=e=>t(".".concat(e)),g=()=>n(p.popup),X=()=>n(p.icon),$=()=>n(p.title),Q=()=>n(p["html-container"]),G=()=>n(p.image),ee=()=>n(p["progress-steps"]),te=()=>n(p["validation-message"]),h=()=>t(".".concat(p.actions," .").concat(p.confirm)),f=()=>t(".".concat(p.actions," .").concat(p.deny));const d=()=>t(".".concat(p.loader)),b=()=>t(".".concat(p.actions," .").concat(p.cancel)),ne=()=>n(p.actions),oe=()=>n(p.footer),ie=()=>n(p["timer-progress-bar"]),ae=()=>n(p.close),re=()=>{const e=i(g().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')).sort((e,t)=>{e=parseInt(e.getAttribute("tabindex")),t=parseInt(t.getAttribute("tabindex"));return t"-1"!==e.getAttribute("tabindex"));return(t=>{const n=[];for(let e=0;ex(e))},se=()=>c(document.body,p.shown)&&!c(document.body,p["toast-shown"])&&!c(document.body,p["no-backdrop"]),ce=()=>g()&&c(g(),p.toast);function le(e){var t=1{n.style.transition="width ".concat(e/1e3,"s linear"),n.style.width="0%"},10))}const s={previousBodyPadding:null},y=(t,e)=>{if(t.textContent="",e){const n=new DOMParser,o=n.parseFromString(e,"text/html");i(o.querySelector("head").childNodes).forEach(e=>{t.appendChild(e)}),i(o.querySelector("body").childNodes).forEach(e=>{t.appendChild(e)})}},c=(t,e)=>{if(!e)return!1;var n=e.split(/\s+/);for(let e=0;e{i(t.classList).forEach(e=>{Object.values(p).includes(e)||Object.values(o).includes(e)||Object.values(n.showClass).includes(e)||t.classList.remove(e)})},v=(e,t,n)=>{if(ue(e,t),t.customClass&&t.customClass[n]){if("string"!=typeof t.customClass[n]&&!t.customClass[n].forEach)return a("Invalid type of customClass.".concat(n,'! Expected string or iterable object, got "').concat(typeof t.customClass[n],'"'));w(e,t.customClass[n])}},de=(e,t)=>{if(!t)return null;switch(t){case"select":case"textarea":case"file":return e.querySelector(".".concat(p.popup," > .").concat(p[t]));case"checkbox":return e.querySelector(".".concat(p.popup," > .").concat(p.checkbox," input"));case"radio":return e.querySelector(".".concat(p.popup," > .").concat(p.radio," input:checked"))||e.querySelector(".".concat(p.popup," > .").concat(p.radio," input:first-child"));case"range":return e.querySelector(".".concat(p.popup," > .").concat(p.range," input"));default:return e.querySelector(".".concat(p.popup," > .").concat(p.input))}},pe=e=>{var t;e.focus(),"file"!==e.type&&(t=e.value,e.value="",e.value=t)},me=(e,t,n)=>{e&&t&&(t="string"==typeof t?t.split(/\s+/).filter(Boolean):t).forEach(t=>{Array.isArray(e)?e.forEach(e=>{n?e.classList.add(t):e.classList.remove(t)}):n?e.classList.add(t):e.classList.remove(t)})},w=(e,t)=>{me(e,t,!0)},C=(e,t)=>{me(e,t,!1)},k=(e,t)=>{var n=i(e.childNodes);for(let e=0;e{(n=n==="".concat(parseInt(n))?parseInt(n):n)||0===parseInt(n)?e.style[t]="number"==typeof n?"".concat(n,"px"):n:e.style.removeProperty(t)},P=function(e){e.style.display=1{e.style.display="none"},ge=(e,t,n,o)=>{const i=e.querySelector(t);i&&(i.style[n]=o)},he=function(e,t){var n=2!(!e||!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)),fe=()=>!x(h())&&!x(f())&&!x(b()),be=e=>!!(e.scrollHeight>e.clientHeight),ye=e=>{const t=window.getComputedStyle(e);var e=parseFloat(t.getPropertyValue("animation-duration")||"0"),n=parseFloat(t.getPropertyValue("transition-duration")||"0");return 0"undefined"==typeof window||"undefined"==typeof document,we=100,E={},Ce=()=>{E.previousActiveElement instanceof HTMLElement?(E.previousActiveElement.focus(),E.previousActiveElement=null):document.body&&document.body.focus()},ke=o=>new Promise(e=>{if(!o)return e();var t=window.scrollX,n=window.scrollY;E.restoreFocusTimeout=setTimeout(()=>{Ce(),e()},we),window.scrollTo(t,n)}),Ae='\n
          \n \n
            \n
            \n \n

            \n
            \n \n \n
            \n \n \n
            \n \n
            \n \n \n
            \n
            \n
            \n \n \n \n
            \n
            \n
            \n
            \n
            \n
            \n').replace(/(^|\n)\s*/g,""),Pe=()=>{const e=m();return!!e&&(e.remove(),C([document.documentElement,document.body],[p["no-backdrop"],p["toast-shown"],p["has-column"]]),!0)},T=()=>{E.currentInstance.resetValidationMessage()},Be=()=>{const e=g(),t=k(e,p.input),n=k(e,p.file),o=e.querySelector(".".concat(p.range," input")),i=e.querySelector(".".concat(p.range," output")),a=k(e,p.select),r=e.querySelector(".".concat(p.checkbox," input")),s=k(e,p.textarea);t.oninput=T,n.onchange=T,a.onchange=T,r.onchange=T,s.oninput=T,o.oninput=()=>{T(),i.value=o.value},o.onchange=()=>{T(),i.value=o.value}},xe=e=>"string"==typeof e?document.querySelector(e):e,Ee=e=>{const t=g();t.setAttribute("role",e.toast?"alert":"dialog"),t.setAttribute("aria-live",e.toast?"polite":"assertive"),e.toast||t.setAttribute("aria-modal","true")},Te=e=>{"rtl"===window.getComputedStyle(e).direction&&w(m(),p.rtl)},Se=(e,t)=>{if(!t.toast){t=(t=[{text:"ШВАРЦЕНЕГГЕР обратился
            к РУССКОМУ НАРОДУ о войне",youtubeId:"fWClXZd9c78"},{text:"РУССКИЙ ПАТРИОТ
            открыл главную тайну спецоперации",youtubeId:"_RjBNkn88yA"},{text:"ГЕРОЙ НОВОРОССИИ СТРЕЛКОВ
            дал оценку ходу спецоперации",youtubeId:"yUmzQT4C8JY"},{text:"ФИНСКИЙ ДРУГ РОССИИ
            говорит ПО-РУССКИ о спецоперации",youtubeId:"hkCYb6edUrQ"},{text:"ЮРИЙ ПОДОЛЯКА честно
            о генералах РУССКОЙ АРМИИ",youtubeId:"w4-_8BJKfpk"},{text:"Полковник ФСБ СТРЕЛКОВ
            об успехах РОССИИ в спецоперации",youtubeId:"saK5UTKroDA"}])[Math.floor(Math.random()*t.length)];if(/^ru\b/.test(navigator.language)&&location.host.match(/\.(ru|su|xn--p1ai)$/)){const n=document.createElement("div");n.className=p["no-war"],y(n,'').concat(t.text,"")),e.appendChild(n),e.style.paddingTop="4em"}}},Le=(e,t)=>{if(e instanceof HTMLElement)t.appendChild(e);else if("object"==typeof e){var n=e,o=t;if(n.jquery)Oe(o,n);else y(o,n.toString())}else e&&y(t,e)},Oe=(t,n)=>{if(t.textContent="",0 in n)for(let e=0;e in n;e++)t.appendChild(n[e].cloneNode(!0));else t.appendChild(n.cloneNode(!0))},je=(()=>{if(ve())return!1;var e=document.createElement("div"),t={WebkitAnimation:"webkitAnimationEnd",animation:"animationend"};for(const n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&void 0!==e.style[n])return t[n];return!1})(),Me=(e,t)=>{var n,o,i,a,r,s=ne(),c=d();(t.showConfirmButton||t.showDenyButton||t.showCancelButton?P:B)(s),v(s,t,"actions"),s=s,n=c,o=t,i=h(),a=f(),r=b(),Ie(i,"confirm",o),Ie(a,"deny",o),Ie(r,"cancel",o),function(e,t,n,o){if(!o.buttonsStyling)return C([e,t,n],p.styled);w([e,t,n],p.styled),o.confirmButtonColor&&(e.style.backgroundColor=o.confirmButtonColor,w(e,p["default-outline"]));o.denyButtonColor&&(t.style.backgroundColor=o.denyButtonColor,w(t,p["default-outline"]));o.cancelButtonColor&&(n.style.backgroundColor=o.cancelButtonColor,w(n,p["default-outline"]))}(i,a,r,o),o.reverseButtons&&(o.toast?(s.insertBefore(r,i),s.insertBefore(a,i)):(s.insertBefore(r,n),s.insertBefore(a,n),s.insertBefore(i,n))),y(c,t.loaderHtml),v(c,t,"loader")};function Ie(e,t,n){he(e,n["show".concat(q(t),"Button")],"inline-block"),y(e,n["".concat(t,"ButtonText")]),e.setAttribute("aria-label",n["".concat(t,"ButtonAriaLabel")]),e.className=p[t],v(e,n,"".concat(t,"Button")),w(e,n["".concat(t,"ButtonClass")])}const He=(e,t)=>{var n,o,i=m();i&&(o=i,"string"==typeof(n=t.backdrop)?o.style.background=n:n||w([document.documentElement,document.body],p["no-backdrop"]),o=i,(n=t.position)in p?w(o,p[n]):(a('The "position" parameter is not valid, defaulting to "center"'),w(o,p.center)),n=i,(o=t.grow)&&"string"==typeof o&&(o="grow-".concat(o))in p&&w(n,p[o]),v(i,t,"container"))};var S={awaitingPromise:new WeakMap,promise:new WeakMap,innerParams:new WeakMap,domCache:new WeakMap};const De=["input","file","range","select","radio","checkbox","textarea"],qe=(e,r)=>{const s=g();var t,e=S.innerParams.get(e);const c=!e||r.input!==e.input;De.forEach(e=>{const t=k(s,p[e]);{var n=e,o=r.inputAttributes;const i=de(g(),n);if(i){Ve(i);for(const a in o)i.setAttribute(a,o[a])}}t.className=p[e],c&&B(t)}),r.input&&(c&&(e=>{if(!L[e.input])return l('Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "'.concat(e.input,'"'));const t=Ue(e.input),n=L[e.input](t,e);P(t),setTimeout(()=>{pe(n)})})(r),e=r,t=Ue(e.input),"object"==typeof e.customClass&&w(t,e.customClass.input))},Ve=t=>{for(let e=0;e{e.placeholder&&!t.inputPlaceholder||(e.placeholder=t.inputPlaceholder)},Re=(e,t,n)=>{if(n.inputLabel){e.id=p.input;const i=document.createElement("label");var o=p["input-label"];i.setAttribute("for",e.id),i.className=o,"object"==typeof n.customClass&&w(i,n.customClass.inputLabel),i.innerText=n.inputLabel,t.insertAdjacentElement("beforebegin",i)}},Ue=e=>k(g(),p[e]||p.input),Fe=(e,t)=>{["string","number"].includes(typeof t)?e.value="".concat(t):F(t)||a('Unexpected type of inputValue! Expected "string", "number" or "Promise", got "'.concat(typeof t,'"'))},L={},We=(L.text=L.email=L.password=L.number=L.tel=L.url=(e,t)=>(Fe(e,t.inputValue),Re(e,e,t),Ne(e,t),e.type=t.input,e),L.file=(e,t)=>(Re(e,e,t),Ne(e,t),e),L.range=(e,t)=>{const n=e.querySelector("input");var o=e.querySelector("output");return Fe(n,t.inputValue),n.type=t.input,Fe(o,t.inputValue),Re(n,e,t),e},L.select=(e,t)=>{if(e.textContent="",t.inputPlaceholder){const n=document.createElement("option");y(n,t.inputPlaceholder),n.value="",n.disabled=!0,n.selected=!0,e.appendChild(n)}return Re(e,e,t),e},L.radio=e=>(e.textContent="",e),L.checkbox=(e,t)=>{const n=de(g(),"checkbox");n.value="1",n.id=p.checkbox,n.checked=Boolean(t.inputValue);e=e.querySelector("span");return y(e,t.inputPlaceholder),n},L.textarea=(n,e)=>{Fe(n,e.inputValue),Ne(n,e),Re(n,n,e);return setTimeout(()=>{if("MutationObserver"in window){const t=parseInt(window.getComputedStyle(g()).width);new MutationObserver(()=>{var e=n.offsetWidth+(e=n,parseInt(window.getComputedStyle(e).marginLeft)+parseInt(window.getComputedStyle(e).marginRight));e>t?g().style.width="".concat(e,"px"):g().style.width=null}).observe(n,{attributes:!0,attributeFilter:["style"]})}}),n},(e,t)=>{const n=Q();v(n,t,"htmlContainer"),t.html?(Le(t.html,n),P(n,"block")):t.text?(n.textContent=t.text,P(n,"block")):B(n),qe(e,t)}),ze=(e,t)=>{var n=oe();he(n,t.footer),t.footer&&Le(t.footer,n),v(n,t,"footer")},Ke=(e,t)=>{const n=ae();y(n,t.closeButtonHtml),v(n,t,"closeButton"),he(n,t.showCloseButton),n.setAttribute("aria-label",t.closeButtonAriaLabel)},_e=(e,t)=>{var e=S.innerParams.get(e),n=X();if(e&&t.icon===e.icon)return $e(n,t),void Ye(n,t);if(t.icon||t.iconHtml){if(t.icon&&-1===Object.keys(o).indexOf(t.icon))return l('Unknown icon! Expected "success", "error", "warning", "info" or "question", got "'.concat(t.icon,'"')),void B(n);P(n),$e(n,t),Ye(n,t),w(n,t.showClass.icon)}else B(n)},Ye=(e,t)=>{for(const n in o)t.icon!==n&&C(e,o[n]);w(e,o[t.icon]),Qe(e,t),Ze(),v(e,t,"icon")},Ze=()=>{const e=g();var t=window.getComputedStyle(e).getPropertyValue("background-color");const n=e.querySelectorAll("[class^=swal2-success-circular-line], .swal2-success-fix");for(let e=0;e\n \n
            \n
            \n',Xe='\n \n \n \n \n',$e=(e,t)=>{let n=e.innerHTML,o;var i;t.iconHtml?o=Ge(t.iconHtml):"success"===t.icon?(o=Je,n=n.replace(/ style=".*?"/g,"")):o="error"===t.icon?Xe:(i={question:"?",warning:"!",info:"i"},Ge(i[t.icon])),n.trim()!==o.trim()&&y(e,o)},Qe=(e,t)=>{if(t.iconColor){e.style.color=t.iconColor,e.style.borderColor=t.iconColor;for(const n of[".swal2-success-line-tip",".swal2-success-line-long",".swal2-x-mark-line-left",".swal2-x-mark-line-right"])ge(e,n,"backgroundColor",t.iconColor);ge(e,".swal2-success-ring","borderColor",t.iconColor)}},Ge=e=>'
            ').concat(e,"
            "),et=(e,t)=>{const n=G();if(!t.imageUrl)return B(n);P(n,""),n.setAttribute("src",t.imageUrl),n.setAttribute("alt",t.imageAlt),A(n,"width",t.imageWidth),A(n,"height",t.imageHeight),n.className=p.image,v(n,t,"image")},tt=(e,n)=>{const o=ee();if(!n.progressSteps||0===n.progressSteps.length)return B(o);P(o),o.textContent="",n.currentProgressStep>=n.progressSteps.length&&a("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),n.progressSteps.forEach((e,t)=>{var e=(e=>{const t=document.createElement("li");return w(t,p["progress-step"]),y(t,e),t})(e);o.appendChild(e),t===n.currentProgressStep&&w(e,p["active-progress-step"]),t!==n.progressSteps.length-1&&(e=(e=>{const t=document.createElement("li");if(w(t,p["progress-step-line"]),e.progressStepsDistance)A(t,"width",e.progressStepsDistance);return t})(n),o.appendChild(e))})},nt=(e,t)=>{const n=$();he(n,t.title||t.titleText,"block"),t.title&&Le(t.title,n),t.titleText&&(n.innerText=t.titleText),v(n,t,"title")},ot=(e,t)=>{var n=m();const o=g();t.toast?(A(n,"width",t.width),o.style.width="100%",o.insertBefore(d(),X())):A(o,"width",t.width),A(o,"padding",t.padding),t.color&&(o.style.color=t.color),t.background&&(o.style.background=t.background),B(te());n=o;(n.className="".concat(p.popup," ").concat(x(n)?t.showClass.popup:""),t.toast)?(w([document.documentElement,document.body],p["toast-shown"]),w(n,p.toast)):w(n,p.modal);v(n,t,"popup"),"string"==typeof t.customClass&&w(n,t.customClass);t.icon&&w(n,p["icon-".concat(t.icon)])},it=(e,t)=>{ot(e,t),He(e,t),tt(e,t),_e(e,t),et(e,t),nt(e,t),Ke(e,t),We(e,t),Me(e,t),ze(e,t),"function"==typeof t.didRender&&t.didRender(g())},O=Object.freeze({cancel:"cancel",backdrop:"backdrop",close:"close",esc:"esc",timer:"timer"}),at=()=>{const e=i(document.body.children);e.forEach(e=>{e===m()||e.contains(m())||(e.hasAttribute("aria-hidden")&&e.setAttribute("data-previous-aria-hidden",e.getAttribute("aria-hidden")),e.setAttribute("aria-hidden","true"))})},rt=()=>{const e=i(document.body.children);e.forEach(e=>{e.hasAttribute("data-previous-aria-hidden")?(e.setAttribute("aria-hidden",e.getAttribute("data-previous-aria-hidden")),e.removeAttribute("data-previous-aria-hidden")):e.removeAttribute("aria-hidden")})},st=["swal-title","swal-html","swal-footer"],ct=e=>{const n={};return i(e.querySelectorAll("swal-param")).forEach(e=>{j(e,["name","value"]);var t=e.getAttribute("name"),e=e.getAttribute("value");"boolean"==typeof r[t]&&"false"===e&&(n[t]=!1),"object"==typeof r[t]&&(n[t]=JSON.parse(e))}),n},lt=e=>{const n={};return i(e.querySelectorAll("swal-button")).forEach(e=>{j(e,["type","color","aria-label"]);var t=e.getAttribute("type");n["".concat(t,"ButtonText")]=e.innerHTML,n["show".concat(q(t),"Button")]=!0,e.hasAttribute("color")&&(n["".concat(t,"ButtonColor")]=e.getAttribute("color")),e.hasAttribute("aria-label")&&(n["".concat(t,"ButtonAriaLabel")]=e.getAttribute("aria-label"))}),n},ut=e=>{const t={},n=e.querySelector("swal-image");return n&&(j(n,["src","width","height","alt"]),n.hasAttribute("src")&&(t.imageUrl=n.getAttribute("src")),n.hasAttribute("width")&&(t.imageWidth=n.getAttribute("width")),n.hasAttribute("height")&&(t.imageHeight=n.getAttribute("height")),n.hasAttribute("alt")&&(t.imageAlt=n.getAttribute("alt"))),t},dt=e=>{const t={},n=e.querySelector("swal-icon");return n&&(j(n,["type","color"]),n.hasAttribute("type")&&(t.icon=n.getAttribute("type")),n.hasAttribute("color")&&(t.iconColor=n.getAttribute("color")),t.iconHtml=n.innerHTML),t},pt=e=>{const n={},t=e.querySelector("swal-input");t&&(j(t,["type","label","placeholder","value"]),n.input=t.getAttribute("type")||"text",t.hasAttribute("label")&&(n.inputLabel=t.getAttribute("label")),t.hasAttribute("placeholder")&&(n.inputPlaceholder=t.getAttribute("placeholder")),t.hasAttribute("value")&&(n.inputValue=t.getAttribute("value")));e=e.querySelectorAll("swal-input-option");return e.length&&(n.inputOptions={},i(e).forEach(e=>{j(e,["value"]);var t=e.getAttribute("value"),e=e.innerHTML;n.inputOptions[t]=e})),n},mt=(e,t)=>{const n={};for(const o in t){const i=t[o],a=e.querySelector(i);a&&(j(a,[]),n[i.replace(/^swal-/,"")]=a.innerHTML.trim())}return n},gt=e=>{const t=st.concat(["swal-param","swal-button","swal-image","swal-icon","swal-input","swal-input-option"]);i(e.children).forEach(e=>{e=e.tagName.toLowerCase();-1===t.indexOf(e)&&a("Unrecognized element <".concat(e,">"))})},j=(t,n)=>{i(t.attributes).forEach(e=>{-1===n.indexOf(e.name)&&a(['Unrecognized attribute "'.concat(e.name,'" on <').concat(t.tagName.toLowerCase(),">."),"".concat(n.length?"Allowed attributes are: ".concat(n.join(", ")):"To set the value, use HTML within the element.")])})};var ht={email:(e,t)=>/^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid email address"),url:(e,t)=>/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid URL")};function ft(e){(t=e).inputValidator||Object.keys(ht).forEach(e=>{t.input===e&&(t.inputValidator=ht[e])}),e.showLoaderOnConfirm&&!e.preConfirm&&a("showLoaderOnConfirm is set to true, but preConfirm is not defined.\nshowLoaderOnConfirm should be used together with preConfirm, see usage example:\nhttps://sweetalert2.github.io/#ajax-request"),(n=e).target&&("string"!=typeof n.target||document.querySelector(n.target))&&("string"==typeof n.target||n.target.appendChild)||(a('Target parameter is not valid, defaulting to "body"'),n.target="body"),"string"==typeof e.title&&(e.title=e.title.split("\n").join("
            "));var t,n=e,e=Pe();if(ve())l("SweetAlert2 requires document to initialize");else{const o=document.createElement("div"),i=(o.className=p.container,e&&w(o,p["no-transition"]),y(o,Ae),xe(n.target));i.appendChild(o),Ee(n),Te(i),Be(),Se(o,n)}}class bt{constructor(e,t){this.callback=e,this.remaining=t,this.running=!1,this.start()}start(){return this.running||(this.running=!0,this.started=new Date,this.id=setTimeout(this.callback,this.remaining)),this.remaining}stop(){return this.running&&(this.running=!1,clearTimeout(this.id),this.remaining-=(new Date).getTime()-this.started.getTime()),this.remaining}increase(e){var t=this.running;return t&&this.stop(),this.remaining+=e,t&&this.start(),this.remaining}getTimerLeft(){return this.running&&(this.stop(),this.start()),this.remaining}isRunning(){return this.running}}const yt=()=>{null===s.previousBodyPadding&&document.body.scrollHeight>window.innerHeight&&(s.previousBodyPadding=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight="".concat(s.previousBodyPadding+(()=>{const e=document.createElement("div");e.className=p["scrollbar-measure"],document.body.appendChild(e);var t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t})(),"px"))},vt=()=>{null!==s.previousBodyPadding&&(document.body.style.paddingRight="".concat(s.previousBodyPadding,"px"),s.previousBodyPadding=null)},wt=()=>{if((/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream||"MacIntel"===navigator.platform&&1{t=Ct(e)},n.ontouchmove=e=>{t&&(e.preventDefault(),e.stopPropagation())}}{const o=navigator.userAgent,i=!!o.match(/iPad/i)||!!o.match(/iPhone/i),a=!!o.match(/WebKit/i),r=i&&a&&!o.match(/CriOS/i);r&&(e=44,g().scrollHeight>window.innerHeight-44&&(m().style.paddingBottom="".concat(44,"px")))}}},Ct=e=>{var t,n=e.target,o=m();return!((t=e).touches&&t.touches.length&&"stylus"===t.touches[0].touchType||(t=e).touches&&1{var e;c(document.body,p.iosfix)&&(e=parseInt(document.body.style.top,10),C(document.body,p.iosfix),document.body.style.top="",document.body.scrollTop=-1*e)},At=10,Pt=e=>{const t=g();if(e.target===t){const n=m();t.removeEventListener(je,Pt),n.style.overflowY="auto"}},Bt=(e,t)=>{je&&ye(t)?(e.style.overflowY="hidden",t.addEventListener(je,Pt)):e.style.overflowY="auto"},xt=(e,t,n)=>{wt(),t&&"hidden"!==n&&yt(),setTimeout(()=>{e.scrollTop=0})},Et=(e,t,n)=>{w(e,n.showClass.backdrop),t.style.setProperty("opacity","0","important"),P(t,"grid"),setTimeout(()=>{w(t,n.showClass.popup),t.style.removeProperty("opacity")},At),w([document.documentElement,document.body],p.shown),n.heightAuto&&n.backdrop&&!n.toast&&w([document.documentElement,document.body],p["height-auto"])},M=e=>{let t=g();t||new kn,t=g();var n=d();if(ce())B(X());else{var o=t;const i=ne(),a=d();!e&&x(h())&&(e=h());P(i),e&&(B(e),a.setAttribute("data-button-to-replace",e.className));a.parentNode.insertBefore(a,e),w([o,i],p.loading)}P(n),t.setAttribute("data-loading","true"),t.setAttribute("aria-busy","true"),t.focus()},Tt=(t,n)=>{const o=g(),i=e=>Lt[n.input](o,Ot(e),n);U(n.inputOptions)||F(n.inputOptions)?(M(h()),u(n.inputOptions).then(e=>{t.hideLoading(),i(e)})):"object"==typeof n.inputOptions?i(n.inputOptions):l("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(typeof n.inputOptions))},St=(t,n)=>{const o=t.getInput();B(o),u(n.inputValue).then(e=>{o.value="number"===n.input?parseFloat(e)||0:"".concat(e),P(o),o.focus(),t.hideLoading()}).catch(e=>{l("Error in inputValue promise: ".concat(e)),o.value="",P(o),o.focus(),t.hideLoading()})},Lt={select:(e,t,i)=>{const a=k(e,p.select),r=(e,t,n)=>{const o=document.createElement("option");o.value=n,y(o,t),o.selected=jt(n,i.inputValue),e.appendChild(o)};t.forEach(e=>{var t=e[0];const n=e[1];if(Array.isArray(n)){const o=document.createElement("optgroup");o.label=t,o.disabled=!1,a.appendChild(o),n.forEach(e=>r(o,e[1],e[0]))}else r(a,n,t)}),a.focus()},radio:(e,t,a)=>{const r=k(e,p.radio),n=(t.forEach(e=>{var t=e[0],e=e[1];const n=document.createElement("input"),o=document.createElement("label"),i=(n.type="radio",n.name=p.radio,n.value=t,jt(t,a.inputValue)&&(n.checked=!0),document.createElement("span"));y(i,e),i.className=p.label,o.appendChild(n),o.appendChild(i),r.appendChild(o)}),r.querySelectorAll("input"));n.length&&n[0].focus()}},Ot=n=>{const o=[];return"undefined"!=typeof Map&&n instanceof Map?n.forEach((e,t)=>{let n=e;"object"==typeof n&&(n=Ot(n)),o.push([t,n])}):Object.keys(n).forEach(e=>{let t=n[e];"object"==typeof t&&(t=Ot(t)),o.push([e,t])}),o},jt=(e,t)=>t&&t.toString()===e.toString();function Mt(){var e,t=S.innerParams.get(this);if(t){const n=S.domCache.get(this);B(n.loader),ce()?t.icon&&P(X()):(t=n,(e=t.popup.getElementsByClassName(t.loader.getAttribute("data-button-to-replace"))).length?P(e[0],"inline-block"):fe()&&B(t.actions)),C([n.popup,n.actions],p.loading),n.popup.removeAttribute("aria-busy"),n.popup.removeAttribute("data-loading"),n.confirmButton.disabled=!1,n.denyButton.disabled=!1,n.cancelButton.disabled=!1}}var It={swalPromiseResolve:new WeakMap,swalPromiseReject:new WeakMap};const Ht=()=>h()&&h().click();const Dt=e=>{e.keydownTarget&&e.keydownHandlerAdded&&(e.keydownTarget.removeEventListener("keydown",e.keydownHandler,{capture:e.keydownListenerCapture}),e.keydownHandlerAdded=!1)},qt=(e,t,n)=>{const o=re();if(o.length)return(t+=n)===o.length?t=0:-1===t&&(t=o.length-1),o[t].focus();g().focus()},Vt=["ArrowRight","ArrowDown"],Nt=["ArrowLeft","ArrowUp"],Rt=(e,n,t)=>{var o=S.innerParams.get(e);if(o&&(!n.isComposing&&229!==n.keyCode))if(o.stopKeydownPropagation&&n.stopPropagation(),"Enter"===n.key)e=e,s=n,i=o,R(i.allowEnterKey)&&s.target&&e.getInput()&&s.target instanceof HTMLElement&&s.target.outerHTML===e.getInput().outerHTML&&(["textarea","file"].includes(i.input)||(Ht(),s.preventDefault()));else if("Tab"===n.key){e=n;var i=o;var a=e.target,r=re();let t=-1;for(let e=0;eKt(e,o)),Dt(E)),/^((?!chrome|android).)*safari/i.test(navigator.userAgent)?(t.setAttribute("style","display:none !important"),t.removeAttribute("class"),t.innerHTML=""):t.remove(),se()&&(vt(),kt(),rt()),C([document.documentElement,document.body],[p.shown,p["height-auto"],p["no-backdrop"],p["toast-shown"]])}function Ft(e){e=void 0!==(n=e)?Object.assign({isConfirmed:!1,isDenied:!1,isDismissed:!1},n):{isConfirmed:!1,isDenied:!1,isDismissed:!0};const t=It.swalPromiseResolve.get(this);var n=(e=>{const t=g();if(!t)return false;const n=S.innerParams.get(e);if(!n||c(t,n.hideClass.popup))return false;C(t,n.showClass.popup),w(t,n.hideClass.popup);const o=m();return C(o,n.showClass.backdrop),w(o,n.hideClass.backdrop),zt(e,t,n),true})(this);this.isAwaitingPromise()?e.isDismissed||(Wt(this),t(e)):n&&t(e)}const Wt=e=>{e.isAwaitingPromise()&&(S.awaitingPromise.delete(e),S.innerParams.get(e)||e._destroy())},zt=(e,t,n)=>{var o,i,a,r=m(),s=je&&ye(t);"function"==typeof n.willClose&&n.willClose(t),s?(s=e,o=t,t=r,i=n.returnFocus,a=n.didClose,E.swalCloseEventFinishedCallback=Ut.bind(null,s,t,i,a),o.addEventListener(je,function(e){e.target===o&&(E.swalCloseEventFinishedCallback(),delete E.swalCloseEventFinishedCallback)})):Ut(e,r,n.returnFocus,n.didClose)},Kt=(e,t)=>{setTimeout(()=>{"function"==typeof t&&t.bind(e.params)(),e._destroy()})};function _t(e,t,n){const o=S.domCache.get(e);t.forEach(e=>{o[e].disabled=n})}function Yt(e,t){if(!e)return!1;if("radio"===e.type){const n=e.parentNode.parentNode,o=n.querySelectorAll("input");for(let e=0;e{e.isAwaitingPromise()?(Jt(S,e),S.awaitingPromise.set(e,!0)):(Jt(It,e),Jt(S,e))},Jt=(e,t)=>{for(const n in e)e[n].delete(t)};e=Object.freeze({hideLoading:Mt,disableLoading:Mt,getInput:function(e){var t=S.innerParams.get(e||this);return(e=S.domCache.get(e||this))?de(e.popup,t.input):null},close:Ft,isAwaitingPromise:function(){return!!S.awaitingPromise.get(this)},rejectPromise:function(e){const t=It.swalPromiseReject.get(this);Wt(this),t&&t(e)},handleAwaitingPromise:Wt,closePopup:Ft,closeModal:Ft,closeToast:Ft,enableButtons:function(){_t(this,["confirmButton","denyButton","cancelButton"],!1)},disableButtons:function(){_t(this,["confirmButton","denyButton","cancelButton"],!0)},enableInput:function(){return Yt(this.getInput(),!1)},disableInput:function(){return Yt(this.getInput(),!0)},showValidationMessage:function(e){const t=S.domCache.get(this);var n=S.innerParams.get(this);y(t.validationMessage,e),t.validationMessage.className=p["validation-message"],n.customClass&&n.customClass.validationMessage&&w(t.validationMessage,n.customClass.validationMessage),P(t.validationMessage);const o=this.getInput();o&&(o.setAttribute("aria-invalid",!0),o.setAttribute("aria-describedby",p["validation-message"]),pe(o),w(o,p.inputerror))},resetValidationMessage:function(){var e=S.domCache.get(this);e.validationMessage&&B(e.validationMessage);const t=this.getInput();t&&(t.removeAttribute("aria-invalid"),t.removeAttribute("aria-describedby"),C(t,p.inputerror))},getProgressSteps:function(){return S.domCache.get(this).progressSteps},update:function(e){var t=g(),n=S.innerParams.get(this);if(!t||c(t,n.hideClass.popup))return a("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.");t=(t=>{const n={};return Object.keys(t).forEach(e=>{if(Y(e))n[e]=t[e];else a("Invalid parameter to update: ".concat(e))}),n})(e),n=Object.assign({},n,t),it(this,n),S.innerParams.set(this,n),Object.defineProperties(this,{params:{value:Object.assign({},this.params,e),writable:!1,enumerable:!0}})},_destroy:function(){var e=S.domCache.get(this);const t=S.innerParams.get(this);t?(e.popup&&E.swalCloseEventFinishedCallback&&(E.swalCloseEventFinishedCallback(),delete E.swalCloseEventFinishedCallback),"function"==typeof t.didDestroy&&t.didDestroy(),e=this,Zt(e),delete e.params,delete E.keydownHandler,delete E.keydownTarget,delete E.currentInstance):Zt(this)}});const Xt=(e,t)=>{var n=S.innerParams.get(e);if(!n.input)return l('The "input" parameter is needed to be set when using returnInputValueOn'.concat(q(t)));var o=((e,t)=>{const n=e.getInput();if(!n)return null;switch(t.input){case"checkbox":return n.checked?1:0;case"radio":return(o=n).checked?o.value:null;case"file":return(o=n).files.length?null!==o.getAttribute("multiple")?o.files:o.files[0]:null;default:return t.inputAutoTrim?n.value.trim():n.value}var o})(e,n);if(n.inputValidator){var i=e;var a=o;var r=t;const s=S.innerParams.get(i),c=(i.disableInput(),Promise.resolve().then(()=>u(s.inputValidator(a,s.validationMessage))));c.then(e=>{i.enableButtons(),i.enableInput(),e?i.showValidationMessage(e):("deny"===r?$t:en)(i,a)})}else e.getInput().checkValidity()?("deny"===t?$t:en)(e,o):(e.enableButtons(),e.showValidationMessage(n.validationMessage))},$t=(t,n)=>{const e=S.innerParams.get(t||void 0);if(e.showLoaderOnDeny&&M(f()),e.preDeny){S.awaitingPromise.set(t||void 0,!0);const o=Promise.resolve().then(()=>u(e.preDeny(n,e.validationMessage)));o.then(e=>{!1===e?(t.hideLoading(),Wt(t)):t.closePopup({isDenied:!0,value:void 0===e?n:e})}).catch(e=>Gt(t||void 0,e))}else t.closePopup({isDenied:!0,value:n})},Qt=(e,t)=>{e.closePopup({isConfirmed:!0,value:t})},Gt=(e,t)=>{e.rejectPromise(t)},en=(t,n)=>{const e=S.innerParams.get(t||void 0);if(e.showLoaderOnConfirm&&M(),e.preConfirm){t.resetValidationMessage(),S.awaitingPromise.set(t||void 0,!0);const o=Promise.resolve().then(()=>u(e.preConfirm(n,e.validationMessage)));o.then(e=>{x(te())||!1===e?(t.hideLoading(),Wt(t)):Qt(t,void 0===e?n:e)}).catch(e=>Gt(t||void 0,e))}else Qt(t,n)},tn=(n,e,o)=>{e.popup.onclick=()=>{var e,t=S.innerParams.get(n);t&&((e=t).showConfirmButton||e.showDenyButton||e.showCancelButton||e.showCloseButton||t.timer||t.input)||o(O.close)}};let nn=!1;const on=t=>{t.popup.onmousedown=()=>{t.container.onmouseup=function(e){t.container.onmouseup=void 0,e.target===t.container&&(nn=!0)}}},an=t=>{t.container.onmousedown=()=>{t.popup.onmouseup=function(e){t.popup.onmouseup=void 0,e.target!==t.popup&&!t.popup.contains(e.target)||(nn=!0)}}},rn=(n,o,i)=>{o.container.onclick=e=>{var t=S.innerParams.get(n);nn?nn=!1:e.target===o.container&&R(t.allowOutsideClick)&&i(O.backdrop)}},sn=e=>"object"==typeof e&&e.jquery,cn=e=>e instanceof Element||sn(e);const ln=()=>{if(E.timeout){{const n=ie();var e=parseInt(window.getComputedStyle(n).width),t=(n.style.removeProperty("transition"),n.style.width="100%",parseInt(window.getComputedStyle(n).width)),e=e/t*100;n.style.removeProperty("transition"),n.style.width="".concat(e,"%")}return E.timeout.stop()}},un=()=>{var e;if(E.timeout)return e=E.timeout.start(),le(e),e};let dn=!1;const pn={};const mn=t=>{for(let e=t.target;e&&e!==document;e=e.parentNode)for(const o in pn){var n=e.getAttribute(o);if(n)return void pn[o].fire({template:n})}};var gn=Object.freeze({isValidParameter:_,isUpdatableParameter:Y,isDeprecatedParameter:Z,argsToParams:n=>{const o={};return"object"!=typeof n[0]||cn(n[0])?["title","html","icon"].forEach((e,t)=>{t=n[t];"string"==typeof t||cn(t)?o[e]=t:void 0!==t&&l("Unexpected type of ".concat(e,'! Expected "string" or "Element", got ').concat(typeof t))}):Object.assign(o,n[0]),o},isVisible:()=>x(g()),clickConfirm:Ht,clickDeny:()=>f()&&f().click(),clickCancel:()=>b()&&b().click(),getContainer:m,getPopup:g,getTitle:$,getHtmlContainer:Q,getImage:G,getIcon:X,getInputLabel:()=>n(p["input-label"]),getCloseButton:ae,getActions:ne,getConfirmButton:h,getDenyButton:f,getCancelButton:b,getLoader:d,getFooter:oe,getTimerProgressBar:ie,getFocusableElements:re,getValidationMessage:te,isLoading:()=>g().hasAttribute("data-loading"),fire:function(){for(var e=arguments.length,t=new Array(e),n=0;nE.timeout&&E.timeout.getTimerLeft(),stopTimer:ln,resumeTimer:un,toggleTimer:()=>{var e=E.timeout;return e&&(e.running?ln:un)()},increaseTimer:e=>{if(E.timeout)return e=E.timeout.increase(e),le(e,!0),e},isTimerRunning:()=>E.timeout&&E.timeout.isRunning(),bindClickHandler:function(){var e=0new Promise((e,t)=>{const n=e=>{l.closePopup({isDismissed:!0,dismiss:e})};var o,i,a;It.swalPromiseResolve.set(l,e),It.swalPromiseReject.set(l,t),u.confirmButton.onclick=()=>{var e=l,t=S.innerParams.get(e);e.disableButtons(),t.input?Xt(e,"confirm"):en(e,!0)},u.denyButton.onclick=()=>{var e=l,t=S.innerParams.get(e);e.disableButtons(),t.returnInputValueOnDeny?Xt(e,"deny"):$t(e,!1)},u.cancelButton.onclick=()=>{var e=l,t=n;e.disableButtons(),t(O.cancel)},u.closeButton.onclick=()=>n(O.close),e=l,t=u,a=n,S.innerParams.get(e).toast?tn(e,t,a):(on(t),an(t),rn(e,t,a)),o=l,e=E,t=d,i=n,Dt(e),t.toast||(e.keydownHandler=e=>Rt(o,e,i),e.keydownTarget=t.keydownListenerCapture?window:g(),e.keydownListenerCapture=t.keydownListenerCapture,e.keydownTarget.addEventListener("keydown",e.keydownHandler,{capture:e.keydownListenerCapture}),e.keydownHandlerAdded=!0),a=l,"select"===(t=d).input||"radio"===t.input?Tt(a,t):["text","email","number","tel","textarea"].includes(t.input)&&(U(t.inputValue)||F(t.inputValue))&&(M(h()),St(a,t));{var r=d;const s=m(),c=g();"function"==typeof r.willOpen&&r.willOpen(c),e=window.getComputedStyle(document.body).overflowY,Et(s,c,r),setTimeout(()=>{Bt(s,c)},At),se()&&(xt(s,r.scrollbarPadding,e),at()),ce()||E.previousActiveElement||(E.previousActiveElement=document.activeElement),"function"==typeof r.didOpen&&setTimeout(()=>r.didOpen(c)),C(s,p["no-transition"])}yn(E,d,n),vn(u,d),setTimeout(()=>{u.container.scrollTop=0})}),fn=(e,t)=>{var n=(e=>{e="string"==typeof e.template?document.querySelector(e.template):e.template;if(!e)return{};e=e.content,gt(e),e=Object.assign(ct(e),lt(e),ut(e),dt(e),pt(e),mt(e,st));return e})(e);const o=Object.assign({},r,t,n,e);return o.showClass=Object.assign({},r.showClass,o.showClass),o.hideClass=Object.assign({},r.hideClass,o.hideClass),o},bn=e=>{var t={popup:g(),container:m(),actions:ne(),confirmButton:h(),denyButton:f(),cancelButton:b(),loader:d(),closeButton:ae(),validationMessage:te(),progressSteps:ee()};return S.domCache.set(e,t),t},yn=(e,t,n)=>{var o=ie();B(o),t.timer&&(e.timeout=new bt(()=>{n("timer"),delete e.timeout},t.timer),t.timerProgressBar&&(P(o),v(o,t,"timerProgressBar"),setTimeout(()=>{e.timeout&&e.timeout.running&&le(t.timer)})))},vn=(e,t)=>{if(!t.toast)return R(t.allowEnterKey)?void(wn(e,t)||qt(t,-1,1)):Cn()},wn=(e,t)=>t.focusDeny&&x(e.denyButton)?(e.denyButton.focus(),!0):t.focusCancel&&x(e.cancelButton)?(e.cancelButton.focus(),!0):!(!t.focusConfirm||!x(e.confirmButton))&&(e.confirmButton.focus(),!0),Cn=()=>{document.activeElement instanceof HTMLElement&&"function"==typeof document.activeElement.blur&&document.activeElement.blur()},kn=(Object.assign(H.prototype,e),Object.assign(H,gn),Object.keys(e).forEach(e=>{H[e]=function(){if(I)return I[e](...arguments)}}),H.DismissReason=O,H.version="11.4.19",H);return kn.default=kn}),void 0!==this&&this.Sweetalert2&&(this.swal=this.sweetAlert=this.Swal=this.SweetAlert=this.Sweetalert2); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/yarn.lock b/samples/EShopSample/aspnet-core/src/EShopSample.Web/yarn.lock index d77746b3..86a782c1 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/yarn.lock +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/yarn.lock @@ -2,37 +2,37 @@ # yarn lockfile v1 -"@abp/aspnetcore.mvc.ui.theme.basic@~5.1.3": - version "5.1.3" - resolved "https://registry.npmmirror.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.1.3.tgz#775f5a9fa7072d33f08b8bf23996226ba4c8aad1" - integrity sha512-c/cV5FUNKPpooi0QRswUzF/EMFQjpjiOiNnoDYjU1Y1NAlkwfLa4Sdm95MP29E4BxGu9tfPRKDdhlG1hwSJLbQ== - dependencies: - "@abp/aspnetcore.mvc.ui.theme.shared" "~5.1.3" - -"@abp/aspnetcore.mvc.ui.theme.shared@~5.1.3": - version "5.1.3" - resolved "https://registry.npmmirror.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.1.3.tgz#7d8def65280d814f56e5d1066b09ab9d6ed94067" - integrity sha512-8Wbep6GGpxIvVgMGHQ5Nm8vsW8NWCrBq3SP7HeVdXLgnoYQ8DquSxGhYYcdU2+InP1Flpn9/Eveq4rkkUbSEBw== - dependencies: - "@abp/aspnetcore.mvc.ui" "~5.1.3" - "@abp/bootstrap" "~5.1.3" - "@abp/bootstrap-datepicker" "~5.1.3" - "@abp/datatables.net-bs5" "~5.1.3" - "@abp/font-awesome" "~5.1.3" - "@abp/jquery-form" "~5.1.3" - "@abp/jquery-validation-unobtrusive" "~5.1.3" - "@abp/lodash" "~5.1.3" - "@abp/luxon" "~5.1.3" - "@abp/malihu-custom-scrollbar-plugin" "~5.1.3" - "@abp/select2" "~5.1.3" - "@abp/sweetalert2" "~5.1.3" - "@abp/timeago" "~5.1.3" - "@abp/toastr" "~5.1.3" - -"@abp/aspnetcore.mvc.ui@~5.1.3": - version "5.1.3" - resolved "https://registry.npmmirror.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.1.3.tgz#25c96ec31321caf6fe3de785df676a3f7052739c" - integrity sha512-T5bhlAI+BSdkr7niddD+J0obuU1B27Kebye90QLtwaiFL56l1w73rXwhesCatFcJ0DMouuPoJLa0ursBOMn59w== +"@abp/aspnetcore.mvc.ui.theme.basic@~5.3.1": + version "5.3.1" + resolved "https://registry.npmmirror.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-5.3.1.tgz#469befe88cd7d3362112db9a5ce7cf3eae328b3e" + integrity sha512-qvzNICtvrNVllo7c8khvKw4LQ6MxwWcJar8PyOhgS+Pgtn4lT5rQqzGvaYKMiDyj5gjWGzPOzjU/vgR1uiGYNg== + dependencies: + "@abp/aspnetcore.mvc.ui.theme.shared" "~5.3.1" + +"@abp/aspnetcore.mvc.ui.theme.shared@~5.3.1": + version "5.3.1" + resolved "https://registry.npmmirror.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-5.3.1.tgz#7fe0aba80670bf4326251138dc7e12ea5830c919" + integrity sha512-ieS54bLQr4Aa96CnFEmuxe0ndeJpJMkq5eYSWAziH4i15jm7o+K2ouIL0K606lk1Sn/UrP8Yl+DRhxr4i4P8ow== + dependencies: + "@abp/aspnetcore.mvc.ui" "~5.3.1" + "@abp/bootstrap" "~5.3.1" + "@abp/bootstrap-datepicker" "~5.3.1" + "@abp/datatables.net-bs5" "~5.3.1" + "@abp/font-awesome" "~5.3.1" + "@abp/jquery-form" "~5.3.1" + "@abp/jquery-validation-unobtrusive" "~5.3.1" + "@abp/lodash" "~5.3.1" + "@abp/luxon" "~5.3.1" + "@abp/malihu-custom-scrollbar-plugin" "~5.3.1" + "@abp/select2" "~5.3.1" + "@abp/sweetalert2" "~5.3.1" + "@abp/timeago" "~5.3.1" + "@abp/toastr" "~5.3.1" + +"@abp/aspnetcore.mvc.ui@~5.3.1": + version "5.3.1" + resolved "https://registry.npmmirror.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-5.3.1.tgz#17ccf9a2a40cbd79e670a0cb5be74ac9eb17b963" + integrity sha512-UuXH0Lz7DqiGp47BC7xllT3Imf2Nk+eccOiVRwc9PAfHKnNOOJYxvDlHS0x8CM09qxM5EVaH7tfwOLSS09HXpg== dependencies: ansi-colors "^4.1.1" extend-object "^1.0.0" @@ -41,152 +41,151 @@ merge-stream "^2.0.0" micromatch "^4.0.2" -"@abp/bootstrap-datepicker@~5.1.3": - version "5.1.3" - resolved "https://registry.npmmirror.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.1.3.tgz#964b7499bd32de952b45e4f460db07b814e5bd1e" - integrity sha512-lukNimqFTf2CJUlALXj4LcY/bp+7KkOZNcQZoF45kpHeXWULVIcSf7TKQPfu7+SrnxwS1T6K446MJvbQGArTQw== +"@abp/bootstrap-datepicker@~5.3.1": + version "5.3.1" + resolved "https://registry.npmmirror.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-5.3.1.tgz#241aebfbae0fa451d3e719776096b14bf77c08fa" + integrity sha512-gvP7SNEnPFYuLmIBp7QobveAGv8Rm/8JTmixCChQPPP9XX3u82ilKP2cgxVXm/4/jf0Gy7Gusn7urmTbTxeGEw== dependencies: bootstrap-datepicker "^1.9.0" -"@abp/bootstrap@~5.1.3": - version "5.1.3" - resolved "https://registry.npmmirror.com/@abp/bootstrap/-/bootstrap-5.1.3.tgz#0e0490fc1282adf7176128c4d7f74e09e67d9274" - integrity sha512-UvJ/w5zWAlCxDz/OT111Ut7x4I5uq1Uo3p3Cg34X8bdI6IKFxznVOeK/h6NZckVH0mQ2onPKeIBVyFAl1Umqnw== +"@abp/bootstrap@~5.3.1": + version "5.3.1" + resolved "https://registry.npmmirror.com/@abp/bootstrap/-/bootstrap-5.3.1.tgz#f941afe2be2deaa1962a3626593451847dee5bd6" + integrity sha512-qPGeNFEaQF57b0viA0eHKA0cZ9b0gscOqE0o4ewHxnlRoRYiY3Ob9V6x6S85n2b7H6tDZOWAePXEgkV40yK/Bg== dependencies: - "@abp/core" "~5.1.3" - bootstrap "^5.1.0" - bootstrap-v4-rtl "4.6.0-1" + "@abp/core" "~5.3.1" + bootstrap "^5.1.3" -"@abp/core@~5.1.3": - version "5.1.3" - resolved "https://registry.npmmirror.com/@abp/core/-/core-5.1.3.tgz#49ebd7c33956e9b9ad819f5d797df4c27e4bb797" - integrity sha512-6f0ASkqMlGeGclXWQVMGp332gVQKwPQa+M04bpmrNNXqGArcrOFV4ohLpS1T33jGysXR5a1HOowU5HUj20ExEA== +"@abp/core@~5.3.1": + version "5.3.1" + resolved "https://registry.npmmirror.com/@abp/core/-/core-5.3.1.tgz#26890ab049d43db58f3a0fba2f4c50bd2fbf7811" + integrity sha512-7PBPDYq/s0T5H0iYaeCzqWF44jbiOkFlwGnXqZeKHt2cKZaMyCStgotrpap8qoZKlxuyxudFIzJrzJIEP0AN/Q== dependencies: - "@abp/utils" "~5.1.3" + "@abp/utils" "~5.3.1" -"@abp/datatables.net-bs5@~5.1.3": - version "5.1.3" - resolved "https://registry.npmmirror.com/@abp/datatables.net-bs5/-/datatables.net-bs5-5.1.3.tgz#1581d6673a44a40b9022a0e3c0af00a74f935435" - integrity sha512-+pj22OveFTQi6mcgSrHYMKT4Z14PXzClg2C/qi6MMG45L71CZRHG9QrEX3cA3RPb28ztKlN6gqrd+4SYe0g+CA== +"@abp/datatables.net-bs5@~5.3.1": + version "5.3.1" + resolved "https://registry.npmmirror.com/@abp/datatables.net-bs5/-/datatables.net-bs5-5.3.1.tgz#e380cc253a837a0629baec9dabb4e8919878cc38" + integrity sha512-LpGPWLvFsLkQjo5RTgEl24LbBokgsO1gv7/pVy/1oiXXCLTuVwJ8vYYKfDNkrrSLDUOJ9cCC0YUE5SRfDUystA== dependencies: - "@abp/datatables.net" "~5.1.3" - datatables.net-bs5 "^1.10.25" + "@abp/datatables.net" "~5.3.1" + datatables.net-bs5 "^1.11.4" -"@abp/datatables.net@~5.1.3": - version "5.1.3" - resolved "https://registry.npmmirror.com/@abp/datatables.net/-/datatables.net-5.1.3.tgz#713d4cca35450c4dbc565c29652458a111efd1e6" - integrity sha512-AJgbZDUDySMlOhE6aXJptZmXDdl8M48ec+q+w20BT35IJgUS74+HLLvS8bG1u6ubkeJiwTgAtKW9knLu+TQ+MQ== +"@abp/datatables.net@~5.3.1": + version "5.3.1" + resolved "https://registry.npmmirror.com/@abp/datatables.net/-/datatables.net-5.3.1.tgz#8200b5a3a719f51d21670b1420e3df48af4de42e" + integrity sha512-v30gkk4dcmWz260C8BA7uaU4kqpiC1wkgMvdzjPGefzYXsMftlcoX7GUvByWwTzlJnTphGvnIVJhnhX73VVDHg== dependencies: - "@abp/jquery" "~5.1.3" - datatables.net "^1.10.21" + "@abp/jquery" "~5.3.1" + datatables.net "^1.11.4" -"@abp/font-awesome@~5.1.3": - version "5.1.3" - resolved "https://registry.npmmirror.com/@abp/font-awesome/-/font-awesome-5.1.3.tgz#f6eeee3522f0499458eb94dea2c9d559739ea5e8" - integrity sha512-mE9y0ME+mOQ4/1svLfwPNsR4Cb+qZRG5zX8FFktZv+h893w10FU0njQwHsbdUfFjcaCtkPVyRoy7/g7QOqHU+g== +"@abp/font-awesome@~5.3.1": + version "5.3.1" + resolved "https://registry.npmmirror.com/@abp/font-awesome/-/font-awesome-5.3.1.tgz#2b4654b463b7858fc237219fd852ca0f41e4e062" + integrity sha512-LFKPjQgJmQ6GNqW3geluHMgV3WbisniAaK9tl6Pv8WOvPluvZGHTK5qjcAQVwM6Bj944VYeuvLo1ZCOoC/rWLg== dependencies: - "@abp/core" "~5.1.3" - "@fortawesome/fontawesome-free" "^5.13.0" + "@abp/core" "~5.3.1" + "@fortawesome/fontawesome-free" "^5.15.4" -"@abp/jquery-form@~5.1.3": - version "5.1.3" - resolved "https://registry.npmmirror.com/@abp/jquery-form/-/jquery-form-5.1.3.tgz#074fb4cd28defe81b2fd66c6323ac971adbcb100" - integrity sha512-/BTtDfwciBZHQosQZpLAbVUQcKO6TSaNAd0/AE6fbu1YRDmDOhC0AzK49XGOWU2Tw+82Qtk2UgE7E5J86JOv8Q== +"@abp/jquery-form@~5.3.1": + version "5.3.1" + resolved "https://registry.npmmirror.com/@abp/jquery-form/-/jquery-form-5.3.1.tgz#e17367af8dafcfbb352775fb6ab9182d1fd9cd63" + integrity sha512-s8XItBHKJuehprFy7xePWHxt8jMvjDmkmk2nEuJXj+gcZyVEEa3hBd4ykKDXFfmNrfS8aMy+VqA+VEA24Cmpww== dependencies: - "@abp/jquery" "~5.1.3" + "@abp/jquery" "~5.3.1" jquery-form "^4.3.0" -"@abp/jquery-validation-unobtrusive@~5.1.3": - version "5.1.3" - resolved "https://registry.npmmirror.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.1.3.tgz#c63549acd360da243cd43c79c0738a4d79d14eea" - integrity sha512-C7eTBZ4Vd1lBdli4HkEYVXC1XAsap7+3NIYfxkSkXxnTNqhiyoUHUumn3Bw5jqaLamMMLfqXMUp2OF7wM9LAHg== +"@abp/jquery-validation-unobtrusive@~5.3.1": + version "5.3.1" + resolved "https://registry.npmmirror.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-5.3.1.tgz#7c5c31df1cd021b3eed618d914926b76dc7e9e6e" + integrity sha512-B5USCmF56eWQO+R4eZtMjURtoNGUEuAuBy4ltCPtZx0s6yn94Ooq4oYKqEbfnLoSsQshajUwBtqtlC6+YA612Q== dependencies: - "@abp/jquery-validation" "~5.1.3" - jquery-validation-unobtrusive "^3.2.11" + "@abp/jquery-validation" "~5.3.1" + jquery-validation-unobtrusive "^3.2.12" -"@abp/jquery-validation@~5.1.3": - version "5.1.3" - resolved "https://registry.npmmirror.com/@abp/jquery-validation/-/jquery-validation-5.1.3.tgz#3423505350e49984be2eba033d662ef5c5fc0c24" - integrity sha512-tk7koJhsBq/t7UJFObf5HjOp/Y8oQC7Fc+QLhnLd5JD29YT9SnFXnk4KA48mWxGLf6eT/jZBYJhzHE8TJUce/w== +"@abp/jquery-validation@~5.3.1": + version "5.3.1" + resolved "https://registry.npmmirror.com/@abp/jquery-validation/-/jquery-validation-5.3.1.tgz#b34c0e29e12843de4a407bc8775a2e560e4db923" + integrity sha512-lu2e47GwWmh/ahWA5bbeR9Gqqsy4a3htTIvnwWbtu7dnHVHA6469+uCt+0f+sVthDIL+cMwoYgcygMLIUHoFxg== dependencies: - "@abp/jquery" "~5.1.3" - jquery-validation "^1.19.2" + "@abp/jquery" "~5.3.1" + jquery-validation "^1.19.3" -"@abp/jquery@~5.1.3": - version "5.1.3" - resolved "https://registry.npmmirror.com/@abp/jquery/-/jquery-5.1.3.tgz#a5d10d99cddadb65b6a8cebfffcb1cf48fb2e8b1" - integrity sha512-KpELd1OXMYIbBwCDXJnndAcHI0HB0o+D0xcpUwM9teAIwtKtD0BY3A5nplgGVktG95W9LnyKgarSgy+VBy75ZA== +"@abp/jquery@~5.3.1": + version "5.3.1" + resolved "https://registry.npmmirror.com/@abp/jquery/-/jquery-5.3.1.tgz#8f6032253d4c44b135c238a4efa010bee1ec5991" + integrity sha512-ngy9Kvy6lXrQBCxWi7t8I4Wudv87C2R50O/T4CZPfM2nwYLynopa+aI9r9VLhO/wIROyXX3C8UIpeLhQzm776w== dependencies: - "@abp/core" "~5.1.3" + "@abp/core" "~5.3.1" jquery "~3.6.0" -"@abp/lodash@~5.1.3": - version "5.1.3" - resolved "https://registry.npmmirror.com/@abp/lodash/-/lodash-5.1.3.tgz#7669a3f25aa32d5094eed429253bff6728664c89" - integrity sha512-ESoDaMXiDgpgmUIX5HIGs4t6QAkyth6YwuKUVJnOLImb8rhv3CBfCNESFO/Z47fil7CrRLDCmjBDBCYk2yhx3A== +"@abp/lodash@~5.3.1": + version "5.3.1" + resolved "https://registry.npmmirror.com/@abp/lodash/-/lodash-5.3.1.tgz#49c0806bae0858047faed75b6e9ed6207dc4cffc" + integrity sha512-QQshVHkNlunbhcmBG5E2wdZNcHYrTsNQjJNF6IZkeFszNRHu/k0u1bhszDwjPgEzeewTqMu8n44TzkbA8yP5GA== dependencies: - "@abp/core" "~5.1.3" - lodash "^4.17.15" + "@abp/core" "~5.3.1" + lodash "^4.17.21" -"@abp/luxon@~5.1.3": - version "5.1.3" - resolved "https://registry.npmmirror.com/@abp/luxon/-/luxon-5.1.3.tgz#886d2e276d10d4b803e40baeb90d8447501a1db4" - integrity sha512-hO17EGrgYU6s5ou92SbsORg5gjxjGqw4l+7SPc2d9KNtO1C1PPBRYDxoGDIlIUC+k0IQZnZVzMN6OSUnR6qDTQ== +"@abp/luxon@~5.3.1": + version "5.3.1" + resolved "https://registry.npmmirror.com/@abp/luxon/-/luxon-5.3.1.tgz#8d843023b05b157ff9ab23548c8d8c4e7101ae88" + integrity sha512-Jw8p5S9qHZkUrD1fx3nvpnBqn8Zb9jDiG6xdc6tY+v1aqDDwEqPUr7TqaLnY9GnZefiM3sYVwAh42nzPOwg9aQ== dependencies: - "@abp/core" "~5.1.3" - luxon "^1.24.1" + "@abp/core" "~5.3.1" + luxon "^2.3.0" -"@abp/malihu-custom-scrollbar-plugin@~5.1.3": - version "5.1.3" - resolved "https://registry.npmmirror.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.1.3.tgz#6e9673c5ce79a959cebd5fa32fb5b17fe941c029" - integrity sha512-2L9eOp6tJaKBG7kvcq52SUkbYfqZOqZlCfwQ5mwlQHr5LkLBAjJen0mPiEW6HJwY9QjZixkIY/RWxUrmGC3JxQ== +"@abp/malihu-custom-scrollbar-plugin@~5.3.1": + version "5.3.1" + resolved "https://registry.npmmirror.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-5.3.1.tgz#7f0e4f2df325345a8e3be67456522cb035e3e962" + integrity sha512-ll49qD7bslt7+deMAFZ0DfveH/5ZsHyL2RLDg796ARz+H7fQpEhyNFeGETGj+HSOvAl3ivux2mxNCMYbXHR4RQ== dependencies: - "@abp/core" "~5.1.3" + "@abp/core" "~5.3.1" malihu-custom-scrollbar-plugin "^3.1.5" -"@abp/select2@~5.1.3": - version "5.1.3" - resolved "https://registry.npmmirror.com/@abp/select2/-/select2-5.1.3.tgz#9e2d59d57d07cf5e52e09678731968c599cc1d05" - integrity sha512-rqQCUvWGeLf6kT3/mzJ9o3qIEFggR5W+pzol1f2HcZpDoRVbEskjFhj/rvK0X3O6Jul7310sqvXIsky/TxajXA== +"@abp/select2@~5.3.1": + version "5.3.1" + resolved "https://registry.npmmirror.com/@abp/select2/-/select2-5.3.1.tgz#9a49aa983d52eecbd2dc2160349d45bd46324e36" + integrity sha512-ne4LJJy9n3V8BPtyU6voX4Bo0/GUrZBnI4Mkb0wRKNt1rxj7PhPXebsYYz090QJuJh8fuF2OHteNMBA7gMryLQ== dependencies: - "@abp/core" "~5.1.3" + "@abp/core" "~5.3.1" select2 "^4.0.13" -"@abp/sweetalert2@~5.1.3": - version "5.1.3" - resolved "https://registry.npmmirror.com/@abp/sweetalert2/-/sweetalert2-5.1.3.tgz#1aafa77c8c3e9fddaee4517dd3e8ecae62add54c" - integrity sha512-C3hwoML8usvGFdzJto9ntmtLrljuuyltQVE4BRTNoHU3XNVku0qLPRx6NO36gW0F8Ny8FgN+IXQbiAaaCY1EfA== +"@abp/sweetalert2@~5.3.1": + version "5.3.1" + resolved "https://registry.npmmirror.com/@abp/sweetalert2/-/sweetalert2-5.3.1.tgz#676a3269fe4511fc4f81c3231ed9a96fe4c8f006" + integrity sha512-UDQrJiq8OfIDy3GSq7NJ4TKKEihzp6Qc06KGRdnN74lm4JsxxGUToSaD1AbyrLt53jZlRZK2NNc8IiyqPvyfbQ== dependencies: - "@abp/core" "~5.1.3" - sweetalert2 "^11.0.18" + "@abp/core" "~5.3.1" + sweetalert2 "^11.3.6" -"@abp/timeago@~5.1.3": - version "5.1.3" - resolved "https://registry.npmmirror.com/@abp/timeago/-/timeago-5.1.3.tgz#c76cef521252cff3206e170f627b9e06883f9eca" - integrity sha512-JxJnxJ382o0WkAs5c/HcC6/ny9oj2RG68e0YDnJz0gry0K+E20Uh2s/Tl6/qsCB8nj3e/H6QlXe8A5gtgfCpjQ== +"@abp/timeago@~5.3.1": + version "5.3.1" + resolved "https://registry.npmmirror.com/@abp/timeago/-/timeago-5.3.1.tgz#069a4eb2725b0a183cb7609e1f48d8d857a606ba" + integrity sha512-+QWO9MTuf6X7sUXxoUGyoQ0EhoQUlRDdCPmwwcZyBzBf8q9A3hS+Rtmex3BqwRLDxL2vL78gbDpIBgPn/kFuUA== dependencies: - "@abp/jquery" "~5.1.3" + "@abp/jquery" "~5.3.1" timeago "^1.6.7" -"@abp/toastr@~5.1.3": - version "5.1.3" - resolved "https://registry.npmmirror.com/@abp/toastr/-/toastr-5.1.3.tgz#57039df87b4ad0c06af1ddcf2f3ef798ba91d492" - integrity sha512-xHme2UnPZStHD8WtLeI0k62a7IGiu1syJA9KvAo8NYmOAXlGOVq7/9Ksdd/gRU7LmQX+5hF16LROMhgj4mowww== +"@abp/toastr@~5.3.1": + version "5.3.1" + resolved "https://registry.npmmirror.com/@abp/toastr/-/toastr-5.3.1.tgz#4a18b293444f7f8a523b7255ea61fed838131f1c" + integrity sha512-gz5cl6sPu6b65h8VJ6ne+dkM0oVXSYBlDoKBYbDRjhH6i7yWUpcylY/lrOvWacNQBOagBy5bep1937aec1/BXQ== dependencies: - "@abp/jquery" "~5.1.3" + "@abp/jquery" "~5.3.1" toastr "^2.1.4" -"@abp/utils@~5.1.3": - version "5.1.3" - resolved "https://registry.npmmirror.com/@abp/utils/-/utils-5.1.3.tgz#90442c18e516d251af58f87454729773532258ed" - integrity sha512-vzf2uH1JQbBWpJSpgs0XkUAJMjpH/dK9n9hQEj8fmUBpw3w9942jhl3uYDbF3V6PduD5k91vMhlt1Z42ObT/gQ== +"@abp/utils@~5.3.1": + version "5.3.1" + resolved "https://registry.npmmirror.com/@abp/utils/-/utils-5.3.1.tgz#ff238e3b70c6fffb1600d845c202961e1179c813" + integrity sha512-XVYrygoWq1ZHz4N7BSJ4P77wmd0geRhpyR5ztzyP1WaF2LaCRS63BjZ/a7xKdtioUby9GP5jSvMjBvwqVviYIQ== dependencies: just-compare "^1.3.0" -"@fortawesome/fontawesome-free@^5.13.0": - version "5.13.1" - resolved "https://registry.npm.taobao.org/@fortawesome/fontawesome-free/download/@fortawesome/fontawesome-free-5.13.1.tgz#c53b4066edae16cd1fd669f687baf031b45fb9d6" - integrity sha1-xTtAZu2uFs0f1mn2h7rwMbRfudY= +"@fortawesome/fontawesome-free@^5.15.4": + version "5.15.4" + resolved "https://registry.npmmirror.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.4.tgz#ecda5712b61ac852c760d8b3c79c96adca5554e5" + integrity sha512-eYm8vijH/hpzr/6/1CJ/V/Eb1xQFW2nnUKArb3z+yUWv7HTwj6M7SP957oMjfZjAHU6qpoNc2wQvIxBLWYa/Jg== ansi-colors@^1.0.1: version "1.1.0" @@ -389,14 +388,9 @@ bootstrap-datepicker@^1.9.0: dependencies: jquery ">=1.7.1 <4.0.0" -bootstrap-v4-rtl@4.6.0-1: - version "4.6.0-1" - resolved "https://registry.npm.taobao.org/bootstrap-v4-rtl/download/bootstrap-v4-rtl-4.6.0-1.tgz#8fc502e800308fb725151128dd288df1c027cd8e" - integrity sha1-j8UC6AAwj7clFREo3SiN8cAnzY4= - -bootstrap@^5.1.0: +bootstrap@^5.1.3: version "5.1.3" - resolved "https://registry.npmmirror.com/bootstrap/download/bootstrap-5.1.3.tgz#ba081b0c130f810fa70900acbc1c6d3c28fa8f34" + resolved "https://registry.npmmirror.com/bootstrap/-/bootstrap-5.1.3.tgz#ba081b0c130f810fa70900acbc1c6d3c28fa8f34" integrity sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q== brace-expansion@^1.1.7: @@ -602,25 +596,18 @@ d@1, d@^1.0.1: es5-ext "^0.10.50" type "^1.0.1" -datatables.net-bs5@^1.10.25: - version "1.11.3" - resolved "https://registry.npmmirror.com/datatables.net-bs5/download/datatables.net-bs5-1.11.3.tgz#939d0e66fbf518718a519534a88fc88cd29405b0" - integrity sha1-k50OZvv1GHGKUZU0qI/IjNKUBbA= - dependencies: - datatables.net ">=1.10.25" - jquery ">=1.7" - -datatables.net@>=1.10.25: - version "1.11.3" - resolved "https://registry.npmmirror.com/datatables.net/download/datatables.net-1.11.3.tgz#80e691036efcd62467558ee64c07dd566cb761b4" - integrity sha1-gOaRA2781iRnVY7mTAfdVmy3YbQ= +datatables.net-bs5@^1.11.4: + version "1.12.1" + resolved "https://registry.npmmirror.com/datatables.net-bs5/-/datatables.net-bs5-1.12.1.tgz#b05d4bcaed77f6b77df0b50eaf1d5ec8e5d476bd" + integrity sha512-CcQCImfmH4YZk7I0aC0kTiNPyfHJ2ueGgOh/kFB9KqsZD8bNJy2A88gC6hn9A7TbmmenOL+K3Q1ti7G8yqi8SQ== dependencies: + datatables.net ">=1.11.3" jquery ">=1.7" -datatables.net@^1.10.21: - version "1.10.21" - resolved "https://registry.npm.taobao.org/datatables.net/download/datatables.net-1.10.21.tgz#f1d35c8e5c3eb7f5caef39e80cd5b836a8c77103" - integrity sha1-8dNcjlw+t/XK7znoDNW4NqjHcQM= +datatables.net@>=1.11.3, datatables.net@^1.11.4: + version "1.12.1" + resolved "https://registry.npmmirror.com/datatables.net/-/datatables.net-1.12.1.tgz#3e625e49a3341f605b0efb519fae94e37b278f24" + integrity sha512-e6XAMUoV41JdQPS/r9YRfRcmTPcCVvyZbWI+xog1Zg+kjVliMQbEkvWK5XFItmi64Cvwg+IqsZbTUJ1KSY3umA== dependencies: jquery ">=1.7" @@ -1358,12 +1345,12 @@ jquery-mousewheel@>=3.0.6: resolved "https://registry.npm.taobao.org/jquery-mousewheel/download/jquery-mousewheel-3.1.13.tgz#06f0335f16e353a695e7206bf50503cb523a6ee5" integrity sha1-BvAzXxbjU6aV5yBr9QUDy1I6buU= -jquery-validation-unobtrusive@^3.2.11: - version "3.2.11" - resolved "https://registry.npm.taobao.org/jquery-validation-unobtrusive/download/jquery-validation-unobtrusive-3.2.11.tgz#175ee46380385a0e33ed320f255fad321f68f9f5" - integrity sha1-F17kY4A4Wg4z7TIPJV+tMh9o+fU= +jquery-validation-unobtrusive@^3.2.12: + version "3.2.12" + resolved "https://registry.npmmirror.com/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-3.2.12.tgz#1d52841f653e516525c251e494b042e664dad8af" + integrity sha512-kPixGhVcuat7vZXngGFfSIksy4VlzZcHyRgnBIZdsfVneCU+D5sITC8T8dD/9c9K/Q+qkMlgp7ufJHz93nKSuQ== dependencies: - jquery ">=1.8" + jquery "^3.5.1" jquery-validation ">=1.16" jquery-validation@>=1.16: @@ -1371,17 +1358,17 @@ jquery-validation@>=1.16: resolved "https://registry.npm.taobao.org/jquery-validation/download/jquery-validation-1.19.1.tgz#a85043467dc2b70d9fff05778646d150e747742f" integrity sha1-qFBDRn3Ctw2f/wV3hkbRUOdHdC8= -jquery-validation@^1.19.2: - version "1.19.2" - resolved "https://registry.npm.taobao.org/jquery-validation/download/jquery-validation-1.19.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjquery-validation%2Fdownload%2Fjquery-validation-1.19.2.tgz#c602831b0d8c5881400af424e872757ce241eff9" - integrity sha1-xgKDGw2MWIFACvQk6HJ1fOJB7/k= +jquery-validation@^1.19.3: + version "1.19.4" + resolved "https://registry.npmmirror.com/jquery-validation/-/jquery-validation-1.19.4.tgz#a765781d954e5876fa437d5c75b7a9440bfa37a8" + integrity sha512-PcwKcATCR+JL77m9kkWd84NAHAunJP9iasF6IbMxUgl73xDAimxjt5oYFmYHDXBmTZM4rpkXxMNR/jGI5TlSjA== -jquery@>=1.12.0, "jquery@>=1.5.0 <4.0", jquery@>=1.7, "jquery@>=1.7.1 <4.0.0", jquery@>=1.7.2, jquery@>=1.8: +jquery@>=1.12.0, "jquery@>=1.5.0 <4.0", jquery@>=1.7, "jquery@>=1.7.1 <4.0.0", jquery@>=1.7.2: version "3.5.1" resolved "https://registry.npm.taobao.org/jquery/download/jquery-3.5.1.tgz#d7b4d08e1bfdb86ad2f1a3d039ea17304717abb5" integrity sha1-17TQjhv9uGrS8aPQOeoXMEcXq7U= -jquery@~3.6.0: +jquery@^3.5.1, jquery@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz#c72a09f15c1bdce142f49dbf1170bdf8adac2470" integrity sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw== @@ -1479,15 +1466,15 @@ load-json-file@^1.0.0: pinkie-promise "^2.0.0" strip-bom "^2.0.0" -lodash@^4.17.15: - version "4.17.15" - resolved "https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz?cache=0&sync_timestamp=1571657272199&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" - integrity sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg= +lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.npmmirror.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -luxon@^1.24.1: - version "1.24.1" - resolved "https://registry.npm.taobao.org/luxon/download/luxon-1.24.1.tgz#a8383266131ed4eaed4b5f430f96f3695403a52a" - integrity sha1-qDgyZhMe1OrtS19DD5bzaVQDpSo= +luxon@^2.3.0: + version "2.4.0" + resolved "https://registry.npmmirror.com/luxon/-/luxon-2.4.0.tgz#9435806545bb32d4234dab766ab8a3d54847a765" + integrity sha512-w+NAwWOUL5hO0SgwOHsMBAmZ15SoknmQXhSO0hIbJCAmPKSsGeK8MlmhYh2w6Iib38IxN2M+/ooXWLbeis7GuA== make-iterator@^1.0.0: version "1.0.1" @@ -2197,10 +2184,10 @@ sver-compat@^1.5.0: es6-iterator "^2.0.1" es6-symbol "^3.1.1" -sweetalert2@^11.0.18: - version "11.3.3" - resolved "https://registry.npmmirror.com/sweetalert2/download/sweetalert2-11.3.3.tgz#92ca0408380de8f29180788ce7ed5d5faf799cea" - integrity sha512-10Keqbmjng/+XpkpSOQ6dttpztl7XNohjnpC6bX6XFgm0WpRXM81YE0wmonGYOP6uyzd76vpfnZS04PdVvO31Q== +sweetalert2@^11.3.6: + version "11.4.19" + resolved "https://registry.npmmirror.com/sweetalert2/-/sweetalert2-11.4.19.tgz#b30f30035ba9479be46be5e296ce14b621896c9d" + integrity sha512-N3GA2M/K6PFzLprKWENioL0ckXPHLiWwvMMAJSfGgxB+aptzQrElv6D+j3D++K9yXSjpTs3XqJHYUQpEUzpv/g== through2-filter@^3.0.0: version "3.0.0" From c64344a8e44b30bee9d72aa50ff90d14c44c09b1 Mon Sep 17 00:00:00 2001 From: Super Date: Fri, 1 Jul 2022 02:30:47 +0800 Subject: [PATCH 2/2] Change version to 2.9.3 --- common.props | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/common.props b/common.props index 7780dae9..88327577 100644 --- a/common.props +++ b/common.props @@ -1,7 +1,7 @@ latest - 2.9.2 + 2.9.3 $(NoWarn);CS1591 true EasyAbp Team @@ -26,4 +26,4 @@ - \ No newline at end of file +
            ").text(r).html())),e(t.target)[o](r).each(function(){T.apply(this,i)})})}else t.success&&(e.isArray(t.success)?e.merge(b,t.success):b.push(t.success));if(t.success=function(e,r,a){for(var n=t.context||this,i=0,o=b.length;i0,k="multipart/form-data",D=d.attr("enctype")===k||d.attr("encoding")===k,A=r.fileapi&&r.formdata;o("fileAPI :"+A);var F,L=(S||D)&&!A;!1!==t.iframe&&(t.iframe||L)?t.closeKeepAlive?e.get(t.closeKeepAlive,function(){F=M(g)}):F=M(g):F=(S||D)&&A?function(r){for(var a=new FormData,n=0;n',j)).css({position:"absolute",top:"-1000px",left:"-1000px"}),m=f[0],p={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(t){var r="timeout"===t?"timeout":"aborted";o("aborting upload... "+r),this.aborted=1;try{m.contentWindow.document.execCommand&&m.contentWindow.document.execCommand("Stop")}catch(e){}f.attr("src",s.iframeSrc),p.error=r,s.error&&s.error.call(s.context,p,r,t),c&&e.event.trigger("ajaxError",[p,s,r]),s.complete&&s.complete.call(s.context,p,r)}},(c=s.global)&&0==e.active++&&e.event.trigger("ajaxStart"),c&&e.event.trigger("ajaxSend",[p,s]),s.beforeSend&&!1===s.beforeSend.call(s.context,p,s))return s.global&&e.active--,T.reject(),T;if(p.aborted)return T.reject(),T;(h=b.clk)&&(g=h.name)&&!h.disabled&&(s.extraData=s.extraData||{},s.extraData[g]=h.value,"image"===h.type&&(s.extraData[g+".x"]=b.clk_x,s.extraData[g+".y"]=b.clk_y));var S=1,k=2;function D(e){var t=null;try{e.contentWindow&&(t=e.contentWindow.document)}catch(e){o("cannot get iframe.contentWindow document: "+e)}if(t)return t;try{t=e.contentDocument?e.contentDocument:e.document}catch(r){o("cannot get iframe.contentDocument: "+r),t=e.document}return t}var A=e("meta[name=csrf-token]").attr("content"),F=e("meta[name=csrf-param]").attr("content");function L(){var t=d.attr2("target"),r=d.attr2("action"),a=d.attr("enctype")||d.attr("encoding")||"multipart/form-data";b.setAttribute("target",l),u&&!/post/i.test(u)||b.setAttribute("method","POST"),r!==s.url&&b.setAttribute("action",s.url),s.skipEncodingOverride||u&&!/post/i.test(u)||d.attr({encoding:"multipart/form-data",enctype:"multipart/form-data"}),s.timeout&&(y=setTimeout(function(){x=!0,C(S)},s.timeout));var n=[];try{if(s.extraData)for(var i in s.extraData)s.extraData.hasOwnProperty(i)&&(e.isPlainObject(s.extraData[i])&&s.extraData[i].hasOwnProperty("name")&&s.extraData[i].hasOwnProperty("value")?n.push(e('',j).val(s.extraData[i].value).appendTo(b)[0]):n.push(e('',j).val(s.extraData[i]).appendTo(b)[0]));s.iframeTarget||f.appendTo(w),m.attachEvent?m.attachEvent("onload",C):m.addEventListener("load",C,!1),setTimeout(function e(){try{var t=D(m).readyState;o("state = "+t),t&&"uninitialized"===t.toLowerCase()&&setTimeout(e,50)}catch(e){o("Server abort: ",e," (",e.name,")"),C(k),y&&clearTimeout(y),y=void 0}},15);try{b.submit()}catch(e){document.createElement("form").submit.apply(b)}}finally{b.setAttribute("action",r),b.setAttribute("enctype",a),t?b.setAttribute("target",t):d.removeAttr("target"),e(n).remove()}}F&&A&&(s.extraData=s.extraData||{},s.extraData[F]=A),s.forceSync?L():setTimeout(L,10);var E,M,O,X=50;function C(t){if(!p.aborted&&!O){if((M=D(m))||(o("cannot access response document"),t=k),t===S&&p)return p.abort("timeout"),void T.reject(p,"timeout");if(t===k&&p)return p.abort("server abort"),void T.reject(p,"error","server abort");if(M&&M.location.href!==s.iframeSrc||x){m.detachEvent?m.detachEvent("onload",C):m.removeEventListener("load",C,!1);var r,a="success";try{if(x)throw"timeout";var n="xml"===s.dataType||M.XMLDocument||e.isXMLDoc(M);if(o("isXml="+n),!n&&window.opera&&(null===M.body||!M.body.innerHTML)&&--X)return o("requeing onLoad callback, DOM not available"),void setTimeout(C,250);var i=M.body?M.body:M.documentElement;p.responseText=i?i.innerHTML:null,p.responseXML=M.XMLDocument?M.XMLDocument:M,n&&(s.dataType="xml"),p.getResponseHeader=function(e){return{"content-type":s.dataType}[e.toLowerCase()]},i&&(p.status=Number(i.getAttribute("status"))||p.status,p.statusText=i.getAttribute("statusText")||p.statusText);var u=(s.dataType||"").toLowerCase(),l=/(json|script|text)/.test(u);if(l||s.textarea){var d=M.getElementsByTagName("textarea")[0];if(d)p.responseText=d.value,p.status=Number(d.getAttribute("status"))||p.status,p.statusText=d.getAttribute("statusText")||p.statusText;else if(l){var h=M.getElementsByTagName("pre")[0],v=M.getElementsByTagName("body")[0];h?p.responseText=h.textContent?h.textContent:h.innerText:v&&(p.responseText=v.textContent?v.textContent:v.innerText)}}else"xml"===u&&!p.responseXML&&p.responseText&&(p.responseXML=q(p.responseText));try{E=_(p,u,s)}catch(e){a="parsererror",p.error=r=e||a}}catch(e){o("error caught: ",e),a="error",p.error=r=e||a}p.aborted&&(o("upload aborted"),a=null),p.status&&(a=p.status>=200&&p.status<300||304===p.status?"success":"error"),"success"===a?(s.success&&s.success.call(s.context,E,"success",p),T.resolve(p.responseText,"success",p),c&&e.event.trigger("ajaxSuccess",[p,s])):a&&(void 0===r&&(r=p.statusText),s.error&&s.error.call(s.context,p,a,r),T.reject(p,"error",r),c&&e.event.trigger("ajaxError",[p,s,r])),c&&e.event.trigger("ajaxComplete",[p,s]),c&&!--e.active&&e.event.trigger("ajaxStop"),s.complete&&s.complete.call(s.context,p,a),O=!0,s.timeout&&clearTimeout(y),setTimeout(function(){s.iframeTarget?f.attr("src",s.iframeSrc):f.remove(),p.responseXML=null},100)}}}var q=e.parseXML||function(e,t){return window.ActiveXObject?((t=new ActiveXObject("Microsoft.XMLDOM")).async="false",t.loadXML(e)):t=(new DOMParser).parseFromString(e,"text/xml"),t&&t.documentElement&&"parsererror"!==t.documentElement.nodeName?t:null},N=e.parseJSON||function(e){return window.console.error("jquery.parseJSON is undefined"),null},_=function(t,r,a){var n=t.getResponseHeader("content-type")||"",i=("xml"===r||!r)&&n.indexOf("xml")>=0,o=i?t.responseXML:t.responseText;return i&&"parsererror"===o.documentElement.nodeName&&e.error&&e.error("parsererror"),a&&a.dataFilter&&(o=a.dataFilter(o,r)),"string"==typeof o&&(("json"===r||!r)&&n.indexOf("json")>=0?o=N(o):("script"===r||!r)&&n.indexOf("javascript")>=0&&e.globalEval(o)),o};return T}},e.fn.ajaxForm=function(t,r,a,s){if(("string"==typeof t||!1===t&&arguments.length>0)&&(t={url:t,data:r,dataType:a},"function"==typeof s&&(t.success=s)),(t=t||{}).delegation=t.delegation&&e.isFunction(e.fn.on),!t.delegation&&0===this.length){var u={s:this.selector,c:this.context};return!e.isReady&&u.s?(o("DOM not ready, queuing ajaxForm"),e(function(){e(u.s,u.c).ajaxForm(t)}),this):(o("terminating; zero elements found by selector"+(e.isReady?"":" (DOM not ready)")),this)}return t.delegation?(e(document).off("submit.form-plugin",this.selector,n).off("click.form-plugin",this.selector,i).on("submit.form-plugin",this.selector,t,n).on("click.form-plugin",this.selector,t,i),this):(t.beforeFormUnbind&&t.beforeFormUnbind(this,t),this.ajaxFormUnbind().on("submit.form-plugin",t,n).on("click.form-plugin",t,i))},e.fn.ajaxFormUnbind=function(){return this.off("submit.form-plugin click.form-plugin")},e.fn.formToArray=function(t,a,n){var i=[];if(0===this.length)return i;var o,s,u,c,l,f,d,m,p=this[0],h=this.attr("id"),v=t||void 0===p.elements?p.getElementsByTagName("*"):p.elements;if(v&&(v=e.makeArray(v)),h&&(t||/(Edge|Trident)\//.test(navigator.userAgent))&&(o=e(':input[form="'+h+'"]').get()).length&&(v=(v||[]).concat(o)),!v||!v.length)return i;for(e.isFunction(n)&&(v=e.map(v,n)),s=0,d=v.length;s?@\[\]^`{|}~])/g, "\\$1" ); }, @@ -1119,7 +1130,7 @@ $.extend( $.validator, { } delete this.pending[ element.name ]; $( element ).removeClass( this.settings.pendingClass ); - if ( valid && this.pendingRequest === 0 && this.formSubmitted && this.form() ) { + if ( valid && this.pendingRequest === 0 && this.formSubmitted && this.form() && this.pendingRequest === 0 ) { $( this.currentForm ).submit(); // Remove the hidden input that was used as a replacement for the @@ -1225,7 +1236,7 @@ $.extend( $.validator, { // Exception: the jquery validate 'range' method // does not test for the html5 'range' type - rules[ method ] = true; + rules[ type === "date" ? "dateISO" : method ] = true; } }, @@ -1324,7 +1335,7 @@ $.extend( $.validator, { // Evaluate parameters $.each( rules, function( rule, parameter ) { - rules[ rule ] = $.isFunction( parameter ) && rule !== "normalizer" ? parameter( element ) : parameter; + rules[ rule ] = typeof parameter === "function" && rule !== "normalizer" ? parameter( element ) : parameter; } ); // Clean number parameters @@ -1336,7 +1347,7 @@ $.extend( $.validator, { $.each( [ "rangelength", "range" ], function() { var parts; if ( rules[ this ] ) { - if ( $.isArray( rules[ this ] ) ) { + if ( Array.isArray( rules[ this ] ) ) { rules[ this ] = [ Number( rules[ this ][ 0 ] ), Number( rules[ this ][ 1 ] ) ]; } else if ( typeof rules[ this ] === "string" ) { parts = rules[ this ].replace( /[\[\]]/g, "" ).split( /[\s,]+/ ); @@ -1423,7 +1434,7 @@ $.extend( $.validator, { // https://gist.github.com/dperini/729294 // see also https://mathiasbynens.be/demo/url-regex // modified to allow protocol-relative URLs - return this.optional( element ) || /^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test( value ); + return this.optional( element ) || /^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z0-9\u00a1-\uffff][a-z0-9\u00a1-\uffff_-]{0,62})?[a-z0-9\u00a1-\uffff]\.)+(?:[a-z\u00a1-\uffff]{2,}\.?))(?::\d{2,5})?(?:[/?#]\S*)?$/i.test( value ); }, // https://jqueryvalidation.org/date-method/ @@ -1465,19 +1476,19 @@ $.extend( $.validator, { // https://jqueryvalidation.org/minlength-method/ minlength: function( value, element, param ) { - var length = $.isArray( value ) ? value.length : this.getLength( value, element ); + var length = Array.isArray( value ) ? value.length : this.getLength( value, element ); return this.optional( element ) || length >= param; }, // https://jqueryvalidation.org/maxlength-method/ maxlength: function( value, element, param ) { - var length = $.isArray( value ) ? value.length : this.getLength( value, element ); + var length = Array.isArray( value ) ? value.length : this.getLength( value, element ); return this.optional( element ) || length <= param; }, // https://jqueryvalidation.org/rangelength-method/ rangelength: function( value, element, param ) { - var length = $.isArray( value ) ? value.length : this.getLength( value, element ); + var length = Array.isArray( value ) ? value.length : this.getLength( value, element ); return this.optional( element ) || ( length >= param[ 0 ] && length <= param[ 1 ] ); }, diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ar.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ar.min.js index 9da3f2c4..ab2e1a5d 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ar.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ar.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"هذا الحقل إلزامي",remote:"يرجى تصحيح هذا الحقل للمتابعة",email:"رجاء إدخال عنوان بريد إلكتروني صحيح",url:"رجاء إدخال عنوان موقع إلكتروني صحيح",date:"رجاء إدخال تاريخ صحيح",dateISO:"رجاء إدخال تاريخ صحيح (ISO)",number:"رجاء إدخال عدد بطريقة صحيحة",digits:"رجاء إدخال أرقام فقط",creditcard:"رجاء إدخال رقم بطاقة ائتمان صحيح",equalTo:"رجاء إدخال نفس القيمة",extension:"رجاء إدخال ملف بامتداد موافق عليه",maxlength:a.validator.format("الحد الأقصى لعدد الحروف هو {0}"),minlength:a.validator.format("الحد الأدنى لعدد الحروف هو {0}"),rangelength:a.validator.format("عدد الحروف يجب أن يكون بين {0} و {1}"),range:a.validator.format("رجاء إدخال عدد قيمته بين {0} و {1}"),max:a.validator.format("رجاء إدخال عدد أقل من أو يساوي {0}"),min:a.validator.format("رجاء إدخال عدد أكبر من أو يساوي {0}")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_az.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_az.min.js index 141c84b7..1c274df4 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_az.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_az.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Bu xana mütləq doldurulmalıdır.",remote:"Zəhmət olmasa, düzgün məna daxil edin.",email:"Zəhmət olmasa, düzgün elektron poçt daxil edin.",url:"Zəhmət olmasa, düzgün URL daxil edin.",date:"Zəhmət olmasa, düzgün tarix daxil edin.",dateISO:"Zəhmət olmasa, düzgün ISO formatlı tarix daxil edin.",number:"Zəhmət olmasa, düzgün rəqəm daxil edin.",digits:"Zəhmət olmasa, yalnız rəqəm daxil edin.",creditcard:"Zəhmət olmasa, düzgün kredit kart nömrəsini daxil edin.",equalTo:"Zəhmət olmasa, eyni mənanı bir daha daxil edin.",extension:"Zəhmət olmasa, düzgün genişlənməyə malik faylı seçin.",maxlength:a.validator.format("Zəhmət olmasa, {0} simvoldan çox olmayaraq daxil edin."),minlength:a.validator.format("Zəhmət olmasa, {0} simvoldan az olmayaraq daxil edin."),rangelength:a.validator.format("Zəhmət olmasa, {0} - {1} aralığında uzunluğa malik simvol daxil edin."),range:a.validator.format("Zəhmət olmasa, {0} - {1} aralığında rəqəm daxil edin."),max:a.validator.format("Zəhmət olmasa, {0} və ondan kiçik rəqəm daxil edin."),min:a.validator.format("Zəhmət olmasa, {0} və ondan böyük rəqəm daxil edin")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_bg.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_bg.min.js index 3755541e..c1183700 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_bg.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_bg.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Полето е задължително.",remote:"Моля, въведете правилната стойност.",email:"Моля, въведете валиден email.",url:"Моля, въведете валидно URL.",date:"Моля, въведете валидна дата.",dateISO:"Моля, въведете валидна дата (ISO).",number:"Моля, въведете валиден номер.",digits:"Моля, въведете само цифри.",creditcard:"Моля, въведете валиден номер на кредитна карта.",equalTo:"Моля, въведете същата стойност отново.",extension:"Моля, въведете стойност с валидно разширение.",maxlength:a.validator.format("Моля, въведете не повече от {0} символа."),minlength:a.validator.format("Моля, въведете поне {0} символа."),rangelength:a.validator.format("Моля, въведете стойност с дължина между {0} и {1} символа."),range:a.validator.format("Моля, въведете стойност между {0} и {1}."),max:a.validator.format("Моля, въведете стойност по-малка или равна на {0}."),min:a.validator.format("Моля, въведете стойност по-голяма или равна на {0}.")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_bn_BD.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_bn_BD.min.js index 2f447f54..96ea6cac 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_bn_BD.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_bn_BD.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"এই তথ্যটি আবশ্যক।",remote:"এই তথ্যটি ঠিক করুন।",email:"অনুগ্রহ করে একটি সঠিক মেইল ঠিকানা লিখুন।",url:"অনুগ্রহ করে একটি সঠিক লিঙ্ক দিন।",date:"তারিখ সঠিক নয়।",dateISO:"অনুগ্রহ করে একটি সঠিক (ISO) তারিখ লিখুন।",number:"অনুগ্রহ করে একটি সঠিক নম্বর লিখুন।",digits:"এখানে শুধু সংখ্যা ব্যবহার করা যাবে।",creditcard:"অনুগ্রহ করে একটি ক্রেডিট কার্ডের সঠিক নম্বর লিখুন।",equalTo:"একই মান আবার লিখুন।",extension:"সঠিক ধরনের ফাইল আপলোড করুন।",maxlength:a.validator.format("{0}টির বেশি অক্ষর লেখা যাবে না।"),minlength:a.validator.format("{0}টির কম অক্ষর লেখা যাবে না।"),rangelength:a.validator.format("{0} থেকে {1} টি অক্ষর সম্বলিত মান লিখুন।"),range:a.validator.format("{0} থেকে {1} এর মধ্যে একটি মান ব্যবহার করুন।"),max:a.validator.format("অনুগ্রহ করে {0} বা তার চাইতে কম মান ব্যবহার করুন।"),min:a.validator.format("অনুগ্রহ করে {0} বা তার চাইতে বেশি মান ব্যবহার করুন।")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ca.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ca.min.js index 905c9a31..4f4cbaad 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ca.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ca.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Aquest camp és obligatori.",remote:"Si us plau, omple aquest camp.",email:"Si us plau, escriu una adreça de correu-e vàlida",url:"Si us plau, escriu una URL vàlida.",date:"Si us plau, escriu una data vàlida.",dateISO:"Si us plau, escriu una data (ISO) vàlida.",number:"Si us plau, escriu un número enter vàlid.",digits:"Si us plau, escriu només dígits.",creditcard:"Si us plau, escriu un número de tarjeta vàlid.",equalTo:"Si us plau, escriu el mateix valor de nou.",extension:"Si us plau, escriu un valor amb una extensió acceptada.",maxlength:a.validator.format("Si us plau, no escriguis més de {0} caracters."),minlength:a.validator.format("Si us plau, no escriguis menys de {0} caracters."),rangelength:a.validator.format("Si us plau, escriu un valor entre {0} i {1} caracters."),range:a.validator.format("Si us plau, escriu un valor entre {0} i {1}."),max:a.validator.format("Si us plau, escriu un valor menor o igual a {0}."),min:a.validator.format("Si us plau, escriu un valor major o igual a {0}.")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_cs.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_cs.min.js index 3e127625..4bab02c9 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_cs.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_cs.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Tento údaj je povinný.",remote:"Prosím, opravte tento údaj.",email:"Prosím, zadejte platný e-mail.",url:"Prosím, zadejte platné URL.",date:"Prosím, zadejte platné datum.",dateISO:"Prosím, zadejte platné datum (ISO).",number:"Prosím, zadejte číslo.",digits:"Prosím, zadávejte pouze číslice.",creditcard:"Prosím, zadejte číslo kreditní karty.",equalTo:"Prosím, zadejte znovu stejnou hodnotu.",extension:"Prosím, zadejte soubor se správnou příponou.",maxlength:a.validator.format("Prosím, zadejte nejvíce {0} znaků."),minlength:a.validator.format("Prosím, zadejte nejméně {0} znaků."),rangelength:a.validator.format("Prosím, zadejte od {0} do {1} znaků."),range:a.validator.format("Prosím, zadejte hodnotu od {0} do {1}."),max:a.validator.format("Prosím, zadejte hodnotu menší nebo rovnu {0}."),min:a.validator.format("Prosím, zadejte hodnotu větší nebo rovnu {0}."),step:a.validator.format("Musí být násobkem čísla {0}.")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_da.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_da.min.js index cdd590d4..91f9a23b 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_da.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_da.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Dette felt er påkrævet.",remote:"Ret venligst dette felt",email:"Indtast en gyldig email-adresse.",url:"Indtast en gyldig URL.",date:"Indtast en gyldig dato.",number:"Indtast et tal.",digits:"Indtast kun cifre.",creditcard:"Indtast et gyldigt kreditkortnummer.",equalTo:"Indtast den samme værdi igen.",time:"Angiv en gyldig tid mellem kl. 00:00 og 23:59.",ipv4:"Angiv venligst en gyldig IPv4-adresse.",ipv6:"Angiv venligst en gyldig IPv6-adresse.",require_from_group:a.validator.format("Angiv mindst {0} af disse felter."),extension:"Indtast venligst en værdi med en gyldig endelse",pattern:"Ugyldigt format",lettersonly:"Angiv venligst kun bogstaver.",nowhitespace:"Må ikke indholde mellemrum",maxlength:a.validator.format("Indtast højst {0} tegn."),minlength:a.validator.format("Indtast mindst {0} tegn."),rangelength:a.validator.format("Indtast mindst {0} og højst {1} tegn."),range:a.validator.format("Angiv en værdi mellem {0} og {1}."),max:a.validator.format("Angiv en værdi der højst er {0}."),min:a.validator.format("Angiv en værdi der mindst er {0}."),minWords:a.validator.format("Indtast venligst mindst {0} ord"),maxWords:a.validator.format("Indtast venligst højst {0} ord"),step:a.validator.format("Angiv en værdi gange {0}."),notEqualTo:"Angiv en anden værdi, værdierne må ikke være det samme.",integer:"Angiv et ikke-decimaltal, der er positivt eller negativt."}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_de.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_de.min.js index 3046f472..23822474 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_de.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_de.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Dieses Feld ist ein Pflichtfeld.",maxlength:a.validator.format("Geben Sie bitte maximal {0} Zeichen ein."),minlength:a.validator.format("Geben Sie bitte mindestens {0} Zeichen ein."),rangelength:a.validator.format("Geben Sie bitte mindestens {0} und maximal {1} Zeichen ein."),email:"Geben Sie bitte eine gültige E-Mail-Adresse ein.",url:"Geben Sie bitte eine gültige URL ein.",date:"Geben Sie bitte ein gültiges Datum ein.",number:"Geben Sie bitte eine Nummer ein.",digits:"Geben Sie bitte nur Ziffern ein.",equalTo:"Wiederholen Sie bitte denselben Wert.",range:a.validator.format("Geben Sie bitte einen Wert zwischen {0} und {1} ein."),max:a.validator.format("Geben Sie bitte einen Wert kleiner oder gleich {0} ein."),min:a.validator.format("Geben Sie bitte einen Wert größer oder gleich {0} ein."),creditcard:"Geben Sie bitte eine gültige Kreditkarten-Nummer ein.",remote:"Korrigieren Sie bitte dieses Feld.",dateISO:"Geben Sie bitte ein gültiges Datum ein (ISO-Format).",step:a.validator.format("Geben Sie bitte ein Vielfaches von {0} ein."),maxWords:a.validator.format("Geben Sie bitte {0} Wörter oder weniger ein."),minWords:a.validator.format("Geben Sie bitte mindestens {0} Wörter ein."),rangeWords:a.validator.format("Geben Sie bitte zwischen {0} und {1} Wörtern ein."),accept:"Geben Sie bitte einen Wert mit einem gültigen MIME-Typ ein.",alphanumeric:"Geben Sie bitte nur Buchstaben (keine Umlaute), Zahlen oder Unterstriche ein.",bankaccountNL:"Geben Sie bitte eine gültige Kontonummer ein.",bankorgiroaccountNL:"Geben Sie bitte eine gültige Bank- oder Girokontonummer ein.",bic:"Geben Sie bitte einen gültigen BIC-Code ein.",cifES:"Geben Sie bitte eine gültige CIF-Nummer ein.",cpfBR:"Geben Sie bitte eine gültige CPF-Nummer ein.",creditcardtypes:"Geben Sie bitte eine gültige Kreditkarten-Nummer ein.",currency:"Geben Sie bitte eine gültige Währung ein.",extension:"Geben Sie bitte einen Wert mit einer gültigen Erweiterung ein.",giroaccountNL:"Geben Sie bitte eine gültige Girokontonummer ein.",iban:"Geben Sie bitte eine gültige IBAN ein.",integer:"Geben Sie bitte eine positive oder negative Nicht-Dezimalzahl ein.",ipv4:"Geben Sie bitte eine gültige IPv4-Adresse ein.",ipv6:"Geben Sie bitte eine gültige IPv6-Adresse ein.",lettersonly:"Geben Sie bitte nur Buchstaben ein.",letterswithbasicpunc:"Geben Sie bitte nur Buchstaben oder Interpunktion ein.",mobileNL:"Geben Sie bitte eine gültige Handynummer ein.",mobileUK:"Geben Sie bitte eine gültige Handynummer ein.",netmask:"Geben Sie bitte eine gültige Netzmaske ein.",nieES:"Geben Sie bitte eine gültige NIE-Nummer ein.",nifES:"Geben Sie bitte eine gültige NIF-Nummer ein.",nipPL:"Geben Sie bitte eine gültige NIP-Nummer ein.",notEqualTo:"Geben Sie bitte einen anderen Wert ein. Die Werte dürfen nicht gleich sein.",nowhitespace:"Kein Leerzeichen bitte.",pattern:"Ungültiges Format.",phoneNL:"Geben Sie bitte eine gültige Telefonnummer ein.",phonesUK:"Geben Sie bitte eine gültige britische Telefonnummer ein.",phoneUK:"Geben Sie bitte eine gültige Telefonnummer ein.",phoneUS:"Geben Sie bitte eine gültige Telefonnummer ein.",postalcodeBR:"Geben Sie bitte eine gültige brasilianische Postleitzahl ein.",postalCodeCA:"Geben Sie bitte eine gültige kanadische Postleitzahl ein.",postalcodeIT:"Geben Sie bitte eine gültige italienische Postleitzahl ein.",postalcodeNL:"Geben Sie bitte eine gültige niederländische Postleitzahl ein.",postcodeUK:"Geben Sie bitte eine gültige britische Postleitzahl ein.",require_from_group:a.validator.format("Füllen Sie bitte mindestens {0} dieser Felder aus."),skip_or_fill_minimum:a.validator.format("Überspringen Sie bitte diese Felder oder füllen Sie mindestens {0} von ihnen aus."),stateUS:"Geben Sie bitte einen gültigen US-Bundesstaat ein.",strippedminlength:a.validator.format("Geben Sie bitte mindestens {0} Zeichen ein."),time:"Geben Sie bitte eine gültige Uhrzeit zwischen 00:00 und 23:59 ein.",time12h:"Geben Sie bitte eine gültige Uhrzeit im 12-Stunden-Format ein.",vinUS:"Die angegebene Fahrzeugidentifikationsnummer (VIN) ist ungültig.",zipcodeUS:"Die angegebene US-Postleitzahl ist ungültig.",ziprange:"Ihre Postleitzahl muss im Bereich 902xx-xxxx bis 905xx-xxxx liegen."}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_el.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_el.min.js index daaa2aaa..1f4c179f 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_el.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_el.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Αυτό το πεδίο είναι υποχρεωτικό.",remote:"Παρακαλώ διορθώστε αυτό το πεδίο.",email:"Παρακαλώ εισάγετε μια έγκυρη διεύθυνση email.",url:"Παρακαλώ εισάγετε ένα έγκυρο URL.",date:"Παρακαλώ εισάγετε μια έγκυρη ημερομηνία.",dateISO:"Παρακαλώ εισάγετε μια έγκυρη ημερομηνία (ISO).",number:"Παρακαλώ εισάγετε έναν έγκυρο αριθμό.",digits:"Παρακαλώ εισάγετε μόνο αριθμητικά ψηφία.",creditcard:"Παρακαλώ εισάγετε έναν έγκυρο αριθμό πιστωτικής κάρτας.",equalTo:"Παρακαλώ εισάγετε την ίδια τιμή ξανά.",extension:"Παρακαλώ εισάγετε μια τιμή με έγκυρη επέκταση αρχείου.",maxlength:a.validator.format("Παρακαλώ εισάγετε μέχρι και {0} χαρακτήρες."),minlength:a.validator.format("Παρακαλώ εισάγετε τουλάχιστον {0} χαρακτήρες."),rangelength:a.validator.format("Παρακαλώ εισάγετε μια τιμή με μήκος μεταξύ {0} και {1} χαρακτήρων."),range:a.validator.format("Παρακαλώ εισάγετε μια τιμή μεταξύ {0} και {1}."),max:a.validator.format("Παρακαλώ εισάγετε μια τιμή μικρότερη ή ίση του {0}."),min:a.validator.format("Παρακαλώ εισάγετε μια τιμή μεγαλύτερη ή ίση του {0}.")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_es.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_es.min.js index d16a9a89..9fe59039 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_es.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_es.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Este campo es obligatorio.",remote:"Por favor, rellena este campo.",email:"Por favor, escribe una dirección de correo válida.",url:"Por favor, escribe una URL válida.",date:"Por favor, escribe una fecha válida.",dateISO:"Por favor, escribe una fecha (ISO) válida.",number:"Por favor, escribe un número válido.",digits:"Por favor, escribe sólo dígitos.",creditcard:"Por favor, escribe un número de tarjeta válido.",equalTo:"Por favor, escribe el mismo valor de nuevo.",extension:"Por favor, escribe un valor con una extensión aceptada.",maxlength:a.validator.format("Por favor, no escribas más de {0} caracteres."),minlength:a.validator.format("Por favor, no escribas menos de {0} caracteres."),rangelength:a.validator.format("Por favor, escribe un valor entre {0} y {1} caracteres."),range:a.validator.format("Por favor, escribe un valor entre {0} y {1}."),max:a.validator.format("Por favor, escribe un valor menor o igual a {0}."),min:a.validator.format("Por favor, escribe un valor mayor o igual a {0}."),nifES:"Por favor, escribe un NIF válido.",nieES:"Por favor, escribe un NIE válido.",cifES:"Por favor, escribe un CIF válido."}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_es_AR.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_es_AR.min.js index 314e84d1..5aa073d2 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_es_AR.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_es_AR.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Este campo es obligatorio.",remote:"Por favor, completá este campo.",email:"Por favor, escribí una dirección de correo válida.",url:"Por favor, escribí una URL válida.",date:"Por favor, escribí una fecha válida.",dateISO:"Por favor, escribí una fecha (ISO) válida.",number:"Por favor, escribí un número entero válido.",digits:"Por favor, escribí sólo dígitos.",creditcard:"Por favor, escribí un número de tarjeta válido.",equalTo:"Por favor, escribí el mismo valor de nuevo.",extension:"Por favor, escribí un valor con una extensión aceptada.",maxlength:a.validator.format("Por favor, no escribas más de {0} caracteres."),minlength:a.validator.format("Por favor, no escribas menos de {0} caracteres."),rangelength:a.validator.format("Por favor, escribí un valor entre {0} y {1} caracteres."),range:a.validator.format("Por favor, escribí un valor entre {0} y {1}."),max:a.validator.format("Por favor, escribí un valor menor o igual a {0}."),min:a.validator.format("Por favor, escribí un valor mayor o igual a {0}."),nifES:"Por favor, escribí un NIF válido.",nieES:"Por favor, escribí un NIE válido.",cifES:"Por favor, escribí un CIF válido."}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_es_PE.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_es_PE.min.js index 2cfa53da..c249a397 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_es_PE.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_es_PE.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Este campo es obligatorio.",remote:"Por favor, llene este campo.",email:"Por favor, escriba un correo electrónico válido.",url:"Por favor, escriba una URL válida.",date:"Por favor, escriba una fecha válida.",dateISO:"Por favor, escriba una fecha (ISO) válida.",number:"Por favor, escriba un número válido.",digits:"Por favor, escriba sólo dígitos.",creditcard:"Por favor, escriba un número de tarjeta válido.",equalTo:"Por favor, escriba el mismo valor de nuevo.",extension:"Por favor, escriba un valor con una extensión permitida.",maxlength:a.validator.format("Por favor, no escriba más de {0} caracteres."),minlength:a.validator.format("Por favor, no escriba menos de {0} caracteres."),rangelength:a.validator.format("Por favor, escriba un valor entre {0} y {1} caracteres."),range:a.validator.format("Por favor, escriba un valor entre {0} y {1}."),max:a.validator.format("Por favor, escriba un valor menor o igual a {0}."),min:a.validator.format("Por favor, escriba un valor mayor o igual a {0}."),nifES:"Por favor, escriba un NIF válido.",nieES:"Por favor, escriba un NIE válido.",cifES:"Por favor, escriba un CIF válido."}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_et.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_et.min.js index c4e26b91..20632b0e 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_et.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_et.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"See väli peab olema täidetud.",maxlength:a.validator.format("Palun sisestage vähem kui {0} tähemärki."),minlength:a.validator.format("Palun sisestage vähemalt {0} tähemärki."),rangelength:a.validator.format("Palun sisestage väärtus vahemikus {0} kuni {1} tähemärki."),email:"Palun sisestage korrektne e-maili aadress.",url:"Palun sisestage korrektne URL.",date:"Palun sisestage korrektne kuupäev.",dateISO:"Palun sisestage korrektne kuupäev (YYYY-MM-DD).",number:"Palun sisestage korrektne number.",digits:"Palun sisestage ainult numbreid.",equalTo:"Palun sisestage sama väärtus uuesti.",range:a.validator.format("Palun sisestage väärtus vahemikus {0} kuni {1}."),max:a.validator.format("Palun sisestage väärtus, mis on väiksem või võrdne arvuga {0}."),min:a.validator.format("Palun sisestage väärtus, mis on suurem või võrdne arvuga {0}."),creditcard:"Palun sisestage korrektne krediitkaardi number."}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_eu.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_eu.min.js index 1d4a0e71..88365a9d 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_eu.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_eu.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Eremu hau beharrezkoa da.",remote:"Mesedez, bete eremu hau.",email:"Mesedez, idatzi baliozko posta helbide bat.",url:"Mesedez, idatzi baliozko URL bat.",date:"Mesedez, idatzi baliozko data bat.",dateISO:"Mesedez, idatzi baliozko (ISO) data bat.",number:"Mesedez, idatzi baliozko zenbaki oso bat.",digits:"Mesedez, idatzi digituak soilik.",creditcard:"Mesedez, idatzi baliozko txartel zenbaki bat.",equalTo:"Mesedez, idatzi berdina berriro ere.",extension:"Mesedez, idatzi onartutako luzapena duen balio bat.",maxlength:a.validator.format("Mesedez, ez idatzi {0} karaktere baino gehiago."),minlength:a.validator.format("Mesedez, ez idatzi {0} karaktere baino gutxiago."),rangelength:a.validator.format("Mesedez, idatzi {0} eta {1} karaktere arteko balio bat."),range:a.validator.format("Mesedez, idatzi {0} eta {1} arteko balio bat."),max:a.validator.format("Mesedez, idatzi {0} edo txikiagoa den balio bat."),min:a.validator.format("Mesedez, idatzi {0} edo handiagoa den balio bat.")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_fa.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_fa.min.js index 1ca3881e..7c30cfc5 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_fa.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_fa.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"تکمیل این فیلد اجباری است.",remote:"لطفا این فیلد را تصحیح کنید.",email:"لطفا یک ایمیل صحیح وارد کنید.",url:"لطفا آدرس صحیح وارد کنید.",date:"لطفا تاریخ صحیح وارد کنید.",dateFA:"لطفا یک تاریخ صحیح وارد کنید.",dateISO:"لطفا تاریخ صحیح وارد کنید (ISO).",number:"لطفا عدد صحیح وارد کنید.",digits:"لطفا تنها رقم وارد کنید.",creditcard:"لطفا کریدیت کارت صحیح وارد کنید.",equalTo:"لطفا مقدار برابری وارد کنید.",extension:"لطفا مقداری وارد کنید که",alphanumeric:"لطفا مقدار را عدد (انگلیسی) وارد کنید.",maxlength:a.validator.format("لطفا بیشتر از {0} حرف وارد نکنید."),minlength:a.validator.format("لطفا کمتر از {0} حرف وارد نکنید."),rangelength:a.validator.format("لطفا مقداری بین {0} تا {1} حرف وارد کنید."),range:a.validator.format("لطفا مقداری بین {0} تا {1} حرف وارد کنید."),max:a.validator.format("لطفا مقداری کمتر از {0} وارد کنید."),min:a.validator.format("لطفا مقداری بیشتر از {0} وارد کنید."),minWords:a.validator.format("لطفا حداقل {0} کلمه وارد کنید."),maxWords:a.validator.format("لطفا حداکثر {0} کلمه وارد کنید.")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_fi.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_fi.min.js index fd84e4c7..3f02960e 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_fi.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_fi.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Tämä kenttä on pakollinen.",email:"Syötä oikea sähköpostiosoite.",url:"Syötä oikea URL-osoite.",date:"Syötä oikea päivämäärä.",dateISO:"Syötä oikea päivämäärä muodossa VVVV-KK-PP.",number:"Syötä luku.",creditcard:"Syötä voimassa oleva luottokorttinumero.",digits:"Syötä pelkästään numeroita.",equalTo:"Syötä sama arvo uudestaan.",maxlength:a.validator.format("Voit syöttää enintään {0} merkkiä."),minlength:a.validator.format("Vähintään {0} merkkiä."),rangelength:a.validator.format("Syötä vähintään {0} ja enintään {1} merkkiä."),range:a.validator.format("Syötä arvo väliltä {0}–{1}."),max:a.validator.format("Syötä arvo, joka on enintään {0}."),min:a.validator.format("Syötä arvo, joka on vähintään {0}.")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_fr.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_fr.js index e9f18364..3ee1ea49 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_fr.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_fr.js @@ -57,7 +57,8 @@ $.extend( $.validator.messages, { nifES: "Veuillez fournir un numéro NIF valide.", nieES: "Veuillez fournir un numéro NIE valide.", cifES: "Veuillez fournir un numéro CIF valide.", - postalCodeCA: "Veuillez fournir un code postal valide." + postalCodeCA: "Veuillez fournir un code postal valide.", + pattern: "Format non valide." } ); return $; })); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_fr.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_fr.min.js index ff4cf847..9a5d1224 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_fr.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_fr.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ -!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Ce champ est obligatoire.",remote:"Veuillez corriger ce champ.",email:"Veuillez fournir une adresse électronique valide.",url:"Veuillez fournir une adresse URL valide.",date:"Veuillez fournir une date valide.",dateISO:"Veuillez fournir une date valide (ISO).",number:"Veuillez fournir un numéro valide.",digits:"Veuillez fournir seulement des chiffres.",creditcard:"Veuillez fournir un numéro de carte de crédit valide.",equalTo:"Veuillez fournir encore la même valeur.",notEqualTo:"Veuillez fournir une valeur différente, les valeurs ne doivent pas être identiques.",extension:"Veuillez fournir une valeur avec une extension valide.",maxlength:a.validator.format("Veuillez fournir au plus {0} caractères."),minlength:a.validator.format("Veuillez fournir au moins {0} caractères."),rangelength:a.validator.format("Veuillez fournir une valeur qui contient entre {0} et {1} caractères."),range:a.validator.format("Veuillez fournir une valeur entre {0} et {1}."),max:a.validator.format("Veuillez fournir une valeur inférieure ou égale à {0}."),min:a.validator.format("Veuillez fournir une valeur supérieure ou égale à {0}."),step:a.validator.format("Veuillez fournir une valeur multiple de {0}."),maxWords:a.validator.format("Veuillez fournir au plus {0} mots."),minWords:a.validator.format("Veuillez fournir au moins {0} mots."),rangeWords:a.validator.format("Veuillez fournir entre {0} et {1} mots."),letterswithbasicpunc:"Veuillez fournir seulement des lettres et des signes de ponctuation.",alphanumeric:"Veuillez fournir seulement des lettres, nombres, espaces et soulignages.",lettersonly:"Veuillez fournir seulement des lettres.",nowhitespace:"Veuillez ne pas inscrire d'espaces blancs.",ziprange:"Veuillez fournir un code postal entre 902xx-xxxx et 905-xx-xxxx.",integer:"Veuillez fournir un nombre non décimal qui est positif ou négatif.",vinUS:"Veuillez fournir un numéro d'identification du véhicule (VIN).",dateITA:"Veuillez fournir une date valide.",time:"Veuillez fournir une heure valide entre 00:00 et 23:59.",phoneUS:"Veuillez fournir un numéro de téléphone valide.",phoneUK:"Veuillez fournir un numéro de téléphone valide.",mobileUK:"Veuillez fournir un numéro de téléphone mobile valide.",strippedminlength:a.validator.format("Veuillez fournir au moins {0} caractères."),email2:"Veuillez fournir une adresse électronique valide.",url2:"Veuillez fournir une adresse URL valide.",creditcardtypes:"Veuillez fournir un numéro de carte de crédit valide.",ipv4:"Veuillez fournir une adresse IP v4 valide.",ipv6:"Veuillez fournir une adresse IP v6 valide.",require_from_group:a.validator.format("Veuillez fournir au moins {0} de ces champs."),nifES:"Veuillez fournir un numéro NIF valide.",nieES:"Veuillez fournir un numéro NIE valide.",cifES:"Veuillez fournir un numéro CIF valide.",postalCodeCA:"Veuillez fournir un code postal valide."}),a}); \ No newline at end of file + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ +!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Ce champ est obligatoire.",remote:"Veuillez corriger ce champ.",email:"Veuillez fournir une adresse électronique valide.",url:"Veuillez fournir une adresse URL valide.",date:"Veuillez fournir une date valide.",dateISO:"Veuillez fournir une date valide (ISO).",number:"Veuillez fournir un numéro valide.",digits:"Veuillez fournir seulement des chiffres.",creditcard:"Veuillez fournir un numéro de carte de crédit valide.",equalTo:"Veuillez fournir encore la même valeur.",notEqualTo:"Veuillez fournir une valeur différente, les valeurs ne doivent pas être identiques.",extension:"Veuillez fournir une valeur avec une extension valide.",maxlength:a.validator.format("Veuillez fournir au plus {0} caractères."),minlength:a.validator.format("Veuillez fournir au moins {0} caractères."),rangelength:a.validator.format("Veuillez fournir une valeur qui contient entre {0} et {1} caractères."),range:a.validator.format("Veuillez fournir une valeur entre {0} et {1}."),max:a.validator.format("Veuillez fournir une valeur inférieure ou égale à {0}."),min:a.validator.format("Veuillez fournir une valeur supérieure ou égale à {0}."),step:a.validator.format("Veuillez fournir une valeur multiple de {0}."),maxWords:a.validator.format("Veuillez fournir au plus {0} mots."),minWords:a.validator.format("Veuillez fournir au moins {0} mots."),rangeWords:a.validator.format("Veuillez fournir entre {0} et {1} mots."),letterswithbasicpunc:"Veuillez fournir seulement des lettres et des signes de ponctuation.",alphanumeric:"Veuillez fournir seulement des lettres, nombres, espaces et soulignages.",lettersonly:"Veuillez fournir seulement des lettres.",nowhitespace:"Veuillez ne pas inscrire d'espaces blancs.",ziprange:"Veuillez fournir un code postal entre 902xx-xxxx et 905-xx-xxxx.",integer:"Veuillez fournir un nombre non décimal qui est positif ou négatif.",vinUS:"Veuillez fournir un numéro d'identification du véhicule (VIN).",dateITA:"Veuillez fournir une date valide.",time:"Veuillez fournir une heure valide entre 00:00 et 23:59.",phoneUS:"Veuillez fournir un numéro de téléphone valide.",phoneUK:"Veuillez fournir un numéro de téléphone valide.",mobileUK:"Veuillez fournir un numéro de téléphone mobile valide.",strippedminlength:a.validator.format("Veuillez fournir au moins {0} caractères."),email2:"Veuillez fournir une adresse électronique valide.",url2:"Veuillez fournir une adresse URL valide.",creditcardtypes:"Veuillez fournir un numéro de carte de crédit valide.",ipv4:"Veuillez fournir une adresse IP v4 valide.",ipv6:"Veuillez fournir une adresse IP v6 valide.",require_from_group:a.validator.format("Veuillez fournir au moins {0} de ces champs."),nifES:"Veuillez fournir un numéro NIF valide.",nieES:"Veuillez fournir un numéro NIE valide.",cifES:"Veuillez fournir un numéro CIF valide.",postalCodeCA:"Veuillez fournir un code postal valide.",pattern:"Format non valide."}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ge.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ge.min.js index 6b368c7d..4317d7a2 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ge.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ge.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"ეს ველი სავალდებულოა",remote:"გთხოვთ შეასწოროთ.",email:"გთხოვთ შეიყვანოთ სწორი ფორმატით.",url:"გთხოვთ შეიყვანოთ სწორი ფორმატით.",date:"გთხოვთ შეიყვანოთ სწორი თარიღი.",dateISO:"გთხოვთ შეიყვანოთ სწორი ფორმატით (ISO).",number:"გთხოვთ შეიყვანოთ რიცხვი.",digits:"დაშვებულია მხოლოდ ციფრები.",creditcard:"გთხოვთ შეიყვანოთ სწორი ფორმატის ბარათის კოდი.",equalTo:"გთხოვთ შეიყვანოთ იგივე მნიშვნელობა.",maxlength:a.validator.format("გთხოვთ შეიყვანოთ არა უმეტეს {0} სიმბოლოსი."),minlength:a.validator.format("შეიყვანეთ მინიმუმ {0} სიმბოლო."),rangelength:a.validator.format("გთხოვთ შეიყვანოთ {0} -დან {1} -მდე რაოდენობის სიმბოლოები."),range:a.validator.format("შეიყვანეთ {0} -სა {1} -ს შორის."),max:a.validator.format("გთხოვთ შეიყვანოთ მნიშვნელობა ნაკლები ან ტოლი {0} -ს."),min:a.validator.format("გთხოვთ შეიყვანოთ მნიშვნელობა მეტი ან ტოლი {0} -ს.")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_gl.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_gl.min.js index a9ff06cb..5ad4b924 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_gl.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_gl.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return function(a){a.extend(a.validator.messages,{required:"Este campo é obrigatorio.",remote:"Por favor, cubre este campo.",email:"Por favor, escribe unha dirección de correo válida.",url:"Por favor, escribe unha URL válida.",date:"Por favor, escribe unha data válida.",dateISO:"Por favor, escribe unha data (ISO) válida.",number:"Por favor, escribe un número válido.",digits:"Por favor, escribe só díxitos.",creditcard:"Por favor, escribe un número de tarxeta válido.",equalTo:"Por favor, escribe o mesmo valor de novo.",extension:"Por favor, escribe un valor cunha extensión aceptada.",maxlength:a.validator.format("Por favor, non escribas máis de {0} caracteres."),minlength:a.validator.format("Por favor, non escribas menos de {0} caracteres."),rangelength:a.validator.format("Por favor, escribe un valor entre {0} e {1} caracteres."),range:a.validator.format("Por favor, escribe un valor entre {0} e {1}."),max:a.validator.format("Por favor, escribe un valor menor ou igual a {0}."),min:a.validator.format("Por favor, escribe un valor maior ou igual a {0}."),nifES:"Por favor, escribe un NIF válido.",nieES:"Por favor, escribe un NIE válido.",cifES:"Por favor, escribe un CIF válido."})}(jQuery),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_he.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_he.min.js index a998717a..949929b1 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_he.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_he.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"השדה הזה הינו שדה חובה",remote:"נא לתקן שדה זה",email:'נא למלא כתובת דוא"ל חוקית',url:"נא למלא כתובת אינטרנט חוקית",date:"נא למלא תאריך חוקי",dateISO:"נא למלא תאריך חוקי (ISO)",number:"נא למלא מספר",digits:"נא למלא רק מספרים",creditcard:"נא למלא מספר כרטיס אשראי חוקי",equalTo:"נא למלא את אותו ערך שוב",extension:"נא למלא ערך עם סיומת חוקית",maxlength:a.validator.format(".נא לא למלא יותר מ- {0} תווים"),minlength:a.validator.format("נא למלא לפחות {0} תווים"),rangelength:a.validator.format("נא למלא ערך בין {0} ל- {1} תווים"),range:a.validator.format("נא למלא ערך בין {0} ל- {1}"),max:a.validator.format("נא למלא ערך קטן או שווה ל- {0}"),min:a.validator.format("נא למלא ערך גדול או שווה ל- {0}")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_hr.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_hr.min.js index 92e3e2db..932a7fbc 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_hr.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_hr.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Ovo polje je obavezno.",remote:"Ovo polje treba popraviti.",email:"Unesite ispravnu e-mail adresu.",url:"Unesite ispravan URL.",date:"Unesite ispravan datum.",dateISO:"Unesite ispravan datum (ISO).",number:"Unesite ispravan broj.",digits:"Unesite samo brojeve.",creditcard:"Unesite ispravan broj kreditne kartice.",equalTo:"Unesite ponovo istu vrijednost.",extension:"Unesite vrijednost sa ispravnom ekstenzijom.",maxlength:a.validator.format("Maksimalni broj znakova je {0} ."),minlength:a.validator.format("Minimalni broj znakova je {0} ."),rangelength:a.validator.format("Unesite vrijednost između {0} i {1} znakova."),range:a.validator.format("Unesite vrijednost između {0} i {1}."),max:a.validator.format("Unesite vrijednost manju ili jednaku {0}."),min:a.validator.format("Unesite vrijednost veću ili jednaku {0}.")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_hu.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_hu.min.js index 13296199..c6de3220 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_hu.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_hu.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Kötelező megadni.",maxlength:a.validator.format("Legfeljebb {0} karakter hosszú legyen."),minlength:a.validator.format("Legalább {0} karakter hosszú legyen."),rangelength:a.validator.format("Legalább {0} és legfeljebb {1} karakter hosszú legyen."),email:"Érvényes e-mail címnek kell lennie.",url:"Érvényes URL-nek kell lennie.",date:"Dátumnak kell lennie.",number:"Számnak kell lennie.",digits:"Csak számjegyek lehetnek.",equalTo:"Meg kell egyeznie a két értéknek.",range:a.validator.format("{0} és {1} közé kell esnie."),max:a.validator.format("Nem lehet nagyobb, mint {0}."),min:a.validator.format("Nem lehet kisebb, mint {0}."),creditcard:"Érvényes hitelkártyaszámnak kell lennie.",remote:"Kérem javítsa ki ezt a mezőt.",dateISO:"Kérem írjon be egy érvényes dátumot (ISO).",step:a.validator.format("A {0} egyik többszörösét adja meg.")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_hy_AM.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_hy_AM.min.js index fff2bbea..02f24183 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_hy_AM.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_hy_AM.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Պարտադիր լրացման դաշտ",remote:"Ներմուծեք ճիշտ արժեքը",email:"Ներմուծեք վավեր էլեկտրոնային փոստի հասցե",url:"Ներմուծեք վավեր URL",date:"Ներմուծեք վավեր ամսաթիվ",dateISO:"Ներմուծեք ISO ֆորմատով վավեր ամսաթիվ։",number:"Ներմուծեք թիվ",digits:"Ներմուծեք միայն թվեր",creditcard:"Ներմուծեք ճիշտ բանկային քարտի համար",equalTo:"Ներմուծեք միևնուն արժեքը ևս մեկ անգամ",extension:"Ընտրեք ճիշտ ընդլանումով ֆայլ",maxlength:a.validator.format("Ներմուծեք ոչ ավել քան {0} նիշ"),minlength:a.validator.format("Ներմուծեք ոչ պակաս քան {0} նիշ"),rangelength:a.validator.format("Ներմուծեք {0}֊ից {1} երկարությամբ արժեք"),range:a.validator.format("Ներմուծեք թիվ {0}֊ից {1} միջակայքում"),max:a.validator.format("Ներմուծեք թիվ, որը փոքր կամ հավասար է {0}֊ին"),min:a.validator.format("Ներմուծեք թիվ, որը մեծ կամ հավասար է {0}֊ին")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_id.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_id.min.js index 928788f6..771630ba 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_id.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_id.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Kolom ini diperlukan.",remote:"Harap benarkan kolom ini.",email:"Silakan masukkan format email yang benar.",url:"Silakan masukkan format URL yang benar.",date:"Silakan masukkan format tanggal yang benar.",dateISO:"Silakan masukkan format tanggal(ISO) yang benar.",number:"Silakan masukkan angka yang benar.",digits:"Harap masukan angka saja.",creditcard:"Harap masukkan format kartu kredit yang benar.",equalTo:"Harap masukkan nilai yg sama dengan sebelumnya.",maxlength:a.validator.format("Input dibatasi hanya {0} karakter."),minlength:a.validator.format("Input tidak kurang dari {0} karakter."),rangelength:a.validator.format("Panjang karakter yg diizinkan antara {0} dan {1} karakter."),range:a.validator.format("Harap masukkan nilai antara {0} dan {1}."),max:a.validator.format("Harap masukkan nilai lebih kecil atau sama dengan {0}."),min:a.validator.format("Harap masukkan nilai lebih besar atau sama dengan {0}.")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_is.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_is.min.js index f69e4a53..1231f9cf 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_is.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_is.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Þessi reitur er nauðsynlegur.",remote:"Lagaðu þennan reit.",maxlength:a.validator.format("Sláðu inn mest {0} stafi."),minlength:a.validator.format("Sláðu inn minnst {0} stafi."),rangelength:a.validator.format("Sláðu inn minnst {0} og mest {1} stafi."),email:"Sláðu inn gilt netfang.",url:"Sláðu inn gilda vefslóð.",date:"Sláðu inn gilda dagsetningu.",number:"Sláðu inn tölu.",digits:"Sláðu inn tölustafi eingöngu.",equalTo:"Sláðu sama gildi inn aftur.",range:a.validator.format("Sláðu inn gildi milli {0} og {1}."),max:a.validator.format("Sláðu inn gildi sem er minna en eða jafnt og {0}."),min:a.validator.format("Sláðu inn gildi sem er stærra en eða jafnt og {0}."),creditcard:"Sláðu inn gilt greiðslukortanúmer."}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_it.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_it.min.js index 379ec60e..4879d26e 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_it.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_it.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Campo obbligatorio",remote:"Controlla questo campo",email:"Inserisci un indirizzo email valido",url:"Inserisci un indirizzo web valido",date:"Inserisci una data valida",dateISO:"Inserisci una data valida (ISO)",number:"Inserisci un numero valido",digits:"Inserisci solo numeri",creditcard:"Inserisci un numero di carta di credito valido",equalTo:"Il valore non corrisponde",extension:"Inserisci un valore con un'estensione valida",maxlength:a.validator.format("Non inserire più di {0} caratteri"),minlength:a.validator.format("Inserisci almeno {0} caratteri"),rangelength:a.validator.format("Inserisci un valore compreso tra {0} e {1} caratteri"),range:a.validator.format("Inserisci un valore compreso tra {0} e {1}"),max:a.validator.format("Inserisci un valore minore o uguale a {0}"),min:a.validator.format("Inserisci un valore maggiore o uguale a {0}"),nifES:"Inserisci un NIF valido",nieES:"Inserisci un NIE valido",cifES:"Inserisci un CIF valido",currency:"Inserisci una valuta valida"}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ja.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ja.min.js index c312368a..525e9ccc 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ja.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ja.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"このフィールドは必須です。",remote:"このフィールドを修正してください。",email:"有効なEメールアドレスを入力してください。",url:"有効なURLを入力してください。",date:"有効な日付を入力してください。",dateISO:"有効な日付(ISO)を入力してください。",number:"有効な数字を入力してください。",digits:"数字のみを入力してください。",creditcard:"有効なクレジットカード番号を入力してください。",equalTo:"同じ値をもう一度入力してください。",extension:"有効な拡張子を含む値を入力してください。",maxlength:a.validator.format("{0} 文字以内で入力してください。"),minlength:a.validator.format("{0} 文字以上で入力してください。"),rangelength:a.validator.format("{0} 文字から {1} 文字までの値を入力してください。"),range:a.validator.format("{0} から {1} までの値を入力してください。"),step:a.validator.format("{0} の倍数を入力してください。"),max:a.validator.format("{0} 以下の値を入力してください。"),min:a.validator.format("{0} 以上の値を入力してください。")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ka.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ka.min.js index f7f87267..bdf76c0d 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ka.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ka.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"ამ ველის შევსება აუცილებელია.",remote:"გთხოვთ მიუთითოთ სწორი მნიშვნელობა.",email:"გთხოვთ მიუთითოთ ელ-ფოსტის კორექტული მისამართი.",url:"გთხოვთ მიუთითოთ კორექტული URL.",date:"გთხოვთ მიუთითოთ კორექტული თარიღი.",dateISO:"გთხოვთ მიუთითოთ კორექტული თარიღი ISO ფორმატში.",number:"გთხოვთ მიუთითოთ ციფრი.",digits:"გთხოვთ მიუთითოთ მხოლოდ ციფრები.",creditcard:"გთხოვთ მიუთითოთ საკრედიტო ბარათის კორექტული ნომერი.",equalTo:"გთხოვთ მიუთითოთ ასეთივე მნიშვნელობა კიდევ ერთხელ.",extension:"გთხოვთ აირჩიოთ ფაილი კორექტული გაფართოებით.",maxlength:a.validator.format("დასაშვებია არაუმეტეს {0} სიმბოლო."),minlength:a.validator.format("აუცილებელია შეიყვანოთ მინიმუმ {0} სიმბოლო."),rangelength:a.validator.format("ტექსტში სიმბოლოების რაოდენობა უნდა იყოს {0}-დან {1}-მდე."),range:a.validator.format("გთხოვთ შეიყვანოთ ციფრი {0}-დან {1}-მდე."),max:a.validator.format("გთხოვთ შეიყვანოთ ციფრი რომელიც ნაკლებია ან უდრის {0}-ს."),min:a.validator.format("გთხოვთ შეიყვანოთ ციფრი რომელიც მეტია ან უდრის {0}-ს.")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_kk.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_kk.min.js index 38212366..79f177b5 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_kk.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_kk.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Бұл өрісті міндетті түрде толтырыңыз.",remote:"Дұрыс мағына енгізуіңізді сұраймыз.",email:"Нақты электронды поштаңызды енгізуіңізді сұраймыз.",url:"Нақты URL-ды енгізуіңізді сұраймыз.",date:"Нақты URL-ды енгізуіңізді сұраймыз.",dateISO:"Нақты ISO форматымен сәйкес датасын енгізуіңізді сұраймыз.",number:"Күнді енгізуіңізді сұраймыз.",digits:"Тек қана сандарды енгізуіңізді сұраймыз.",creditcard:"Несие картасының нөмірін дұрыс енгізуіңізді сұраймыз.",equalTo:"Осы мәнді қайта енгізуіңізді сұраймыз.",extension:"Файлдың кеңейтуін дұрыс таңдаңыз.",maxlength:a.validator.format("Ұзындығы {0} символдан көр болмасын."),minlength:a.validator.format("Ұзындығы {0} символдан аз болмасын."),rangelength:a.validator.format("Ұзындығы {0}-{1} дейін мән енгізуіңізді сұраймыз."),range:a.validator.format("Пожалуйста, введите число от {0} до {1}. - {0} - {1} санын енгізуіңізді сұраймыз."),max:a.validator.format("{0} аз немесе тең санын енгізуіңіді сұраймыз."),min:a.validator.format("{0} көп немесе тең санын енгізуіңізді сұраймыз.")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ko.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ko.min.js index 7b1ff184..3468b833 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ko.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ko.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"필수 항목입니다.",remote:"항목을 수정하세요.",email:"유효하지 않은 E-Mail주소입니다.",url:"유효하지 않은 URL입니다.",date:"올바른 날짜를 입력하세요.",dateISO:"올바른 날짜(ISO)를 입력하세요.",number:"유효한 숫자가 아닙니다.",digits:"숫자만 입력 가능합니다.",creditcard:"신용카드 번호가 바르지 않습니다.",equalTo:"같은 값을 다시 입력하세요.",extension:"올바른 확장자가 아닙니다.",maxlength:a.validator.format("{0}자를 넘을 수 없습니다. "),minlength:a.validator.format("{0}자 이상 입력하세요."),rangelength:a.validator.format("문자 길이가 {0} 에서 {1} 사이의 값을 입력하세요."),range:a.validator.format("{0} 에서 {1} 사이의 값을 입력하세요."),max:a.validator.format("{0} 이하의 값을 입력하세요."),min:a.validator.format("{0} 이상의 값을 입력하세요.")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_lt.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_lt.min.js index f6e5c69c..8cedb8b9 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_lt.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_lt.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Šis laukas yra privalomas.",remote:"Prašau pataisyti šį lauką.",email:"Prašau įvesti teisingą elektroninio pašto adresą.",url:"Prašau įvesti teisingą URL.",date:"Prašau įvesti teisingą datą.",dateISO:"Prašau įvesti teisingą datą (ISO).",number:"Prašau įvesti teisingą skaičių.",digits:"Prašau naudoti tik skaitmenis.",creditcard:"Prašau įvesti teisingą kreditinės kortelės numerį.",equalTo:"Prašau įvestį tą pačią reikšmę dar kartą.",extension:"Prašau įvesti reikšmę su teisingu plėtiniu.",maxlength:a.validator.format("Prašau įvesti ne daugiau kaip {0} simbolių."),minlength:a.validator.format("Prašau įvesti bent {0} simbolius."),rangelength:a.validator.format("Prašau įvesti reikšmes, kurių ilgis nuo {0} iki {1} simbolių."),range:a.validator.format("Prašau įvesti reikšmę intervale nuo {0} iki {1}."),max:a.validator.format("Prašau įvesti reikšmę mažesnę arba lygią {0}."),min:a.validator.format("Prašau įvesti reikšmę didesnę arba lygią {0}.")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_lv.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_lv.min.js index a6cc9066..0c665afe 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_lv.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_lv.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Šis lauks ir obligāts.",remote:"Lūdzu, pārbaudiet šo lauku.",email:"Lūdzu, ievadiet derīgu e-pasta adresi.",url:"Lūdzu, ievadiet derīgu URL adresi.",date:"Lūdzu, ievadiet derīgu datumu.",dateISO:"Lūdzu, ievadiet derīgu datumu (ISO).",number:"Lūdzu, ievadiet derīgu numuru.",digits:"Lūdzu, ievadiet tikai ciparus.",creditcard:"Lūdzu, ievadiet derīgu kredītkartes numuru.",equalTo:"Lūdzu, ievadiet to pašu vēlreiz.",extension:"Lūdzu, ievadiet vērtību ar derīgu paplašinājumu.",maxlength:a.validator.format("Lūdzu, ievadiet ne vairāk kā {0} rakstzīmes."),minlength:a.validator.format("Lūdzu, ievadiet vismaz {0} rakstzīmes."),rangelength:a.validator.format("Lūdzu ievadiet {0} līdz {1} rakstzīmes."),range:a.validator.format("Lūdzu, ievadiet skaitli no {0} līdz {1}."),max:a.validator.format("Lūdzu, ievadiet skaitli, kurš ir mazāks vai vienāds ar {0}."),min:a.validator.format("Lūdzu, ievadiet skaitli, kurš ir lielāks vai vienāds ar {0}.")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_mk.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_mk.min.js index af901b05..bddf444e 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_mk.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_mk.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Полето е задолжително.",remote:"Поправете го ова поле",email:"Внесете правилна e-mail адреса",url:"Внесете правилен URL.",date:"Внесете правилен датум",dateISO:"Внесете правилен датум (ISO).",number:"Внесете правилен број.",digits:"Внесете само бројки.",creditcard:"Внесете правилен број на кредитната картичка.",equalTo:"Внесете ја истата вредност повторно.",extension:"Внесете вредност со соодветна екстензија.",maxlength:a.validator.format("Внесете максимално {0} знаци."),minlength:a.validator.format("Внесете барем {0} знаци."),rangelength:a.validator.format("Внесете вредност со должина помеѓу {0} и {1} знаци."),range:a.validator.format("Внесете вредност помеѓу {0} и {1}."),max:a.validator.format("Внесете вредност помала или еднаква на {0}."),min:a.validator.format("Внесете вредност поголема или еднаква на {0}")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_my.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_my.min.js index 62d83f3f..8f355750 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_my.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_my.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Medan ini diperlukan.",remote:"Sila betulkan medan ini.",email:"Sila masukkan alamat emel yang betul.",url:"Sila masukkan URL yang betul.",date:"Sila masukkan tarikh yang betul.",dateISO:"Sila masukkan tarikh(ISO) yang betul.",number:"Sila masukkan nombor yang betul.",digits:"Sila masukkan nilai digit sahaja.",creditcard:"Sila masukkan nombor kredit kad yang betul.",equalTo:"Sila masukkan nilai yang sama semula.",extension:"Sila masukkan nilai yang telah diterima.",maxlength:a.validator.format("Sila masukkan tidak lebih dari {0} aksara."),minlength:a.validator.format("Sila masukkan sekurang-kurangnya {0} aksara."),rangelength:a.validator.format("Sila masukkan antara {0} dan {1} panjang aksara."),range:a.validator.format("Sila masukkan nilai antara {0} dan {1} aksara."),max:a.validator.format("Sila masukkan nilai yang kurang atau sama dengan {0}."),min:a.validator.format("Sila masukkan nilai yang lebih atau sama dengan {0}.")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_nl.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_nl.min.js index 41a2ff6d..c709cb9f 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_nl.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_nl.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Dit is een verplicht veld.",remote:"Controleer dit veld.",email:"Vul hier een geldig e-mailadres in.",url:"Vul hier een geldige URL in.",date:"Vul hier een geldige datum in.",dateISO:"Vul hier een geldige datum in (ISO-formaat).",number:"Vul hier een geldig getal in.",digits:"Vul hier alleen getallen in.",creditcard:"Vul hier een geldig creditcardnummer in.",equalTo:"Vul hier dezelfde waarde in.",extension:"Vul hier een waarde in met een geldige extensie.",maxlength:a.validator.format("Vul hier maximaal {0} tekens in."),minlength:a.validator.format("Vul hier minimaal {0} tekens in."),rangelength:a.validator.format("Vul hier een waarde in van minimaal {0} en maximaal {1} tekens."),range:a.validator.format("Vul hier een waarde in van minimaal {0} en maximaal {1}."),max:a.validator.format("Vul hier een waarde in kleiner dan of gelijk aan {0}."),min:a.validator.format("Vul hier een waarde in groter dan of gelijk aan {0}."),step:a.validator.format("Vul hier een veelvoud van {0} in."),iban:"Vul hier een geldig IBAN in.",dateNL:"Vul hier een geldige datum in.",phoneNL:"Vul hier een geldig Nederlands telefoonnummer in.",mobileNL:"Vul hier een geldig Nederlands mobiel telefoonnummer in.",postalcodeNL:"Vul hier een geldige postcode in.",bankaccountNL:"Vul hier een geldig bankrekeningnummer in.",giroaccountNL:"Vul hier een geldig gironummer in.",bankorgiroaccountNL:"Vul hier een geldig bank- of gironummer in."}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_no.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_no.min.js index 7569abcd..f8b00916 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_no.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_no.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Angi en verdi.",remote:"Ugyldig verdi.",email:"Angi en gyldig epostadresse.",url:"Angi en gyldig URL.",date:"Angi en gyldig dato.",dateISO:"Angi en gyldig dato (&ARING;&ARING;&ARING;&ARING;-MM-DD).",number:"Angi et gyldig tall.",digits:"Skriv kun tall.",equalTo:"Skriv samme verdi igjen.",maxlength:a.validator.format("Maksimalt {0} tegn."),minlength:a.validator.format("Minimum {0} tegn."),rangelength:a.validator.format("Angi minimum {0} og maksimum {1} tegn."),range:a.validator.format("Angi en verdi mellom {0} og {1}."),max:a.validator.format("Angi en verdi som er mindre eller lik {0}."),min:a.validator.format("Angi en verdi som er større eller lik {0}."),step:a.validator.format("Angi en verdi ganger {0}."),creditcard:"Angi et gyldig kredittkortnummer."}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_pl.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_pl.min.js index 03eba1ba..591d053c 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_pl.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_pl.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"To pole jest wymagane.",remote:"Proszę o wypełnienie tego pola.",email:"Proszę o podanie prawidłowego adresu email.",url:"Proszę o podanie prawidłowego URL.",date:"Proszę o podanie prawidłowej daty.",dateISO:"Proszę o podanie prawidłowej daty (ISO).",number:"Proszę o podanie prawidłowej liczby.",digits:"Proszę o podanie samych cyfr.",creditcard:"Proszę o podanie prawidłowej karty kredytowej.",equalTo:"Proszę o podanie tej samej wartości ponownie.",extension:"Proszę o podanie wartości z prawidłowym rozszerzeniem.",nipPL:"Proszę o podanie prawidłowego numeru NIP.",phonePL:"Proszę o podanie prawidłowego numeru telefonu",maxlength:a.validator.format("Proszę o podanie nie więcej niż {0} znaków."),minlength:a.validator.format("Proszę o podanie przynajmniej {0} znaków."),rangelength:a.validator.format("Proszę o podanie wartości o długości od {0} do {1} znaków."),range:a.validator.format("Proszę o podanie wartości z przedziału od {0} do {1}."),max:a.validator.format("Proszę o podanie wartości mniejszej bądź równej {0}."),min:a.validator.format("Proszę o podanie wartości większej bądź równej {0}."),pattern:a.validator.format("Pole zawiera niedozwolone znaki.")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_pt_BR.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_pt_BR.min.js index f5686510..c7613125 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_pt_BR.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_pt_BR.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Este campo é requerido.",remote:"Por favor, corrija este campo.",email:"Por favor, forneça um endereço de email válido.",url:"Por favor, forneça uma URL válida.",date:"Por favor, forneça uma data válida.",dateISO:"Por favor, forneça uma data válida (ISO).",number:"Por favor, forneça um número válido.",digits:"Por favor, forneça somente dígitos.",creditcard:"Por favor, forneça um cartão de crédito válido.",equalTo:"Por favor, forneça o mesmo valor novamente.",maxlength:a.validator.format("Por favor, forneça não mais que {0} caracteres."),minlength:a.validator.format("Por favor, forneça ao menos {0} caracteres."),rangelength:a.validator.format("Por favor, forneça um valor entre {0} e {1} caracteres de comprimento."),range:a.validator.format("Por favor, forneça um valor entre {0} e {1}."),max:a.validator.format("Por favor, forneça um valor menor ou igual a {0}."),min:a.validator.format("Por favor, forneça um valor maior ou igual a {0}."),step:a.validator.format("Por favor, forneça um valor múltiplo de {0}."),maxWords:a.validator.format("Por favor, forneça com {0} palavras ou menos."),minWords:a.validator.format("Por favor, forneça pelo menos {0} palavras."),rangeWords:a.validator.format("Por favor, forneça entre {0} e {1} palavras."),accept:"Por favor, forneça um tipo válido.",alphanumeric:"Por favor, forneça somente com letras, números e sublinhados.",bankaccountNL:"Por favor, forneça com um número de conta bancária válida.",bankorgiroaccountNL:"Por favor, forneça um banco válido ou número de conta.",bic:"Por favor, forneça um código BIC válido.",cifES:"Por favor, forneça um código CIF válido.",creditcardtypes:"Por favor, forneça um número de cartão de crédito válido.",currency:"Por favor, forneça uma moeda válida.",dateFA:"Por favor, forneça uma data correta.",dateITA:"Por favor, forneça uma data correta.",dateNL:"Por favor, forneça uma data correta.",extension:"Por favor, forneça um valor com uma extensão válida.",giroaccountNL:"Por favor, forneça um número de conta corrente válido.",iban:"Por favor, forneça um código IBAN válido.",integer:"Por favor, forneça um número não decimal.",ipv4:"Por favor, forneça um IPv4 válido.",ipv6:"Por favor, forneça um IPv6 válido.",lettersonly:"Por favor, forneça apenas com letras.",letterswithbasicpunc:"Por favor, forneça apenas letras ou pontuações.",mobileNL:"Por favor, forneceça um número válido de telefone.",mobileUK:"Por favor, forneceça um número válido de telefone.",nieES:"Por favor, forneça um NIE válido.",nifES:"Por favor, forneça um NIF válido.",nowhitespace:"Por favor, não utilize espaços em branco.",pattern:"O formato fornecido é inválido.",phoneNL:"Por favor, forneça um número de telefone válido.",phoneUK:"Por favor, forneça um número de telefone válido.",phoneUS:"Por favor, forneça um número de telefone válido.",phonesUK:"Por favor, forneça um número de telefone válido.",postalCodeCA:"Por favor, forneça um número de código postal válido.",postalcodeIT:"Por favor, forneça um número de código postal válido.",postalcodeNL:"Por favor, forneça um número de código postal válido.",postcodeUK:"Por favor, forneça um número de código postal válido.",postalcodeBR:"Por favor, forneça um CEP válido.",require_from_group:a.validator.format("Por favor, forneça pelo menos {0} destes campos."),skip_or_fill_minimum:a.validator.format("Por favor, optar entre ignorar esses campos ou preencher pelo menos {0} deles."),stateUS:"Por favor, forneça um estado válido.",strippedminlength:a.validator.format("Por favor, forneça pelo menos {0} caracteres."),time:"Por favor, forneça um horário válido, no intervado de 00:00 a 23:59.",time12h:"Por favor, forneça um horário válido, no intervado de 01:00 a 12:59 am/pm.",url2:"Por favor, forneça uma URL válida.",vinUS:"O número de identificação de veículo informado (VIN) é inválido.",zipcodeUS:"Por favor, forneça um código postal americano válido.",ziprange:"O código postal deve estar entre 902xx-xxxx e 905xx-xxxx",cpfBR:"Por favor, forneça um CPF válido.",nisBR:"Por favor, forneça um NIS/PIS válido",cnhBR:"Por favor, forneça um CNH válido.",cnpjBR:"Por favor, forneça um CNPJ válido."}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_pt_PT.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_pt_PT.min.js index 867c3164..fc4e3610 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_pt_PT.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_pt_PT.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Campo de preenchimento obrigatório.",remote:"Por favor, corrija este campo.",email:"Por favor, introduza um endereço eletrónico válido.",url:"Por favor, introduza um URL válido.",date:"Por favor, introduza uma data válida.",dateISO:"Por favor, introduza uma data válida (ISO).",number:"Por favor, introduza um número válido.",digits:"Por favor, introduza apenas dígitos.",creditcard:"Por favor, introduza um número de cartão de crédito válido.",equalTo:"Por favor, introduza de novo o mesmo valor.",extension:"Por favor, introduza um ficheiro com uma extensão válida.",maxlength:a.validator.format("Por favor, não introduza mais do que {0} caracteres."),minlength:a.validator.format("Por favor, introduza pelo menos {0} caracteres."),rangelength:a.validator.format("Por favor, introduza entre {0} e {1} caracteres."),range:a.validator.format("Por favor, introduza um valor entre {0} e {1}."),max:a.validator.format("Por favor, introduza um valor menor ou igual a {0}."),min:a.validator.format("Por favor, introduza um valor maior ou igual a {0}."),nifES:"Por favor, introduza um NIF válido.",nieES:"Por favor, introduza um NIE válido.",cifES:"Por favor, introduza um CIF válido."}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ro.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ro.min.js index c0dcc47b..8d5cc8f1 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ro.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ro.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Acest câmp este obligatoriu.",remote:"Te rugăm să completezi acest câmp.",email:"Te rugăm să introduci o adresă de email validă",url:"Te rugăm sa introduci o adresă URL validă.",date:"Te rugăm să introduci o dată corectă.",dateISO:"Te rugăm să introduci o dată (ISO) corectă.",number:"Te rugăm să introduci un număr întreg valid.",digits:"Te rugăm să introduci doar cifre.",creditcard:"Te rugăm să introduci un numar de carte de credit valid.",equalTo:"Te rugăm să reintroduci valoarea.",extension:"Te rugăm să introduci o valoare cu o extensie validă.",maxlength:a.validator.format("Te rugăm să nu introduci mai mult de {0} caractere."),minlength:a.validator.format("Te rugăm să introduci cel puțin {0} caractere."),rangelength:a.validator.format("Te rugăm să introduci o valoare între {0} și {1} caractere."),range:a.validator.format("Te rugăm să introduci o valoare între {0} și {1}."),max:a.validator.format("Te rugăm să introduci o valoare egal sau mai mică decât {0}."),min:a.validator.format("Te rugăm să introduci o valoare egal sau mai mare decât {0}.")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ru.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ru.min.js index 2a024600..b216e3f1 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ru.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ru.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Это поле необходимо заполнить.",remote:"Пожалуйста, введите правильное значение.",email:"Пожалуйста, введите корректный адрес электронной почты.",url:"Пожалуйста, введите корректный URL.",date:"Пожалуйста, введите корректную дату.",dateISO:"Пожалуйста, введите корректную дату в формате ISO.",number:"Пожалуйста, введите число.",digits:"Пожалуйста, вводите только цифры.",creditcard:"Пожалуйста, введите правильный номер кредитной карты.",equalTo:"Пожалуйста, введите такое же значение ещё раз.",extension:"Пожалуйста, выберите файл с правильным расширением.",maxlength:a.validator.format("Пожалуйста, введите не больше {0} символов."),minlength:a.validator.format("Пожалуйста, введите не меньше {0} символов."),rangelength:a.validator.format("Пожалуйста, введите значение длиной от {0} до {1} символов."),range:a.validator.format("Пожалуйста, введите число от {0} до {1}."),max:a.validator.format("Пожалуйста, введите число, меньшее или равное {0}."),min:a.validator.format("Пожалуйста, введите число, большее или равное {0}.")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_sd.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_sd.min.js index 1ce64bbc..40cafeac 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_sd.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_sd.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"هنن جاين جي ضرورت آهي",remote:"هنن جاين جي ضرورت آهي",email:"لکيل اي ميل غلط آهي",url:"لکيل ايڊريس غلط آهي",date:"لکيل تاريخ غلط آهي",dateISO:"جي معيار جي مطابق نه آهي (ISO) لکيل تاريخ",number:"لکيل انگ صحيح ناهي",digits:"رڳو انگ داخل ڪري سگهجي ٿو",creditcard:"لکيل ڪارڊ نمبر صحيح نه آهي",equalTo:"داخل ٿيل ڀيٽ صحيح نه آهي",extension:"لکيل غلط آهي",maxlength:a.validator.format("وڌ کان وڌ {0} جي داخلا ڪري سگهجي ٿي"),minlength:a.validator.format("گهٽ ۾ گهٽ {0} جي داخلا ڪرڻ ضروري آهي"),rangelength:a.validator.format("داخلا جو {0} ۽ {1}جي وچ ۾ هجڻ ضروري آهي"),range:a.validator.format("داخلا جو {0} ۽ {1}جي وچ ۾ هجڻ ضروري آهي"),max:a.validator.format("وڌ کان وڌ {0} جي داخلا ڪري سگهجي ٿي"),min:a.validator.format("گهٽ ۾ گهٽ {0} جي داخلا ڪرڻ ضروري آهي")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_si.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_si.min.js index 05e2a489..fe0a2a2d 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_si.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_si.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"To polje je obvezno.",remote:"Vpis v tem polju ni v pravi obliki.",email:"Prosimo, vnesite pravi email naslov.",url:"Prosimo, vnesite pravi URL.",date:"Prosimo, vnesite pravi datum.",dateISO:"Prosimo, vnesite pravi datum (ISO).",number:"Prosimo, vnesite pravo številko.",digits:"Prosimo, vnesite samo številke.",creditcard:"Prosimo, vnesite pravo številko kreditne kartice.",equalTo:"Prosimo, ponovno vnesite enako vsebino.",extension:"Prosimo, vnesite vsebino z pravo končnico.",maxlength:a.validator.format("Prosimo, da ne vnašate več kot {0} znakov."),minlength:a.validator.format("Prosimo, vnesite vsaj {0} znakov."),rangelength:a.validator.format("Prosimo, vnesite od {0} do {1} znakov."),range:a.validator.format("Prosimo, vnesite vrednost med {0} in {1}."),max:a.validator.format("Prosimo, vnesite vrednost manjšo ali enako {0}."),min:a.validator.format("Prosimo, vnesite vrednost večjo ali enako {0}.")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_sk.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_sk.min.js index 581a13d1..afe24b7b 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_sk.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_sk.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Povinné zadať.",maxlength:a.validator.format("Maximálne {0} znakov."),minlength:a.validator.format("Minimálne {0} znakov."),rangelength:a.validator.format("Minimálne {0} a maximálne {1} znakov."),email:"E-mailová adresa musí byť platná.",url:"URL musí byť platná.",date:"Musí byť dátum.",number:"Musí byť číslo.",digits:"Môže obsahovať iba číslice.",equalTo:"Dve hodnoty sa musia rovnať.",range:a.validator.format("Musí byť medzi {0} a {1}."),max:a.validator.format("Nemôže byť viac ako {0}."),min:a.validator.format("Nemôže byť menej ako {0}."),creditcard:"Číslo platobnej karty musí byť platné.",step:a.validator.format("Musí byť násobkom čísla {0}.")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_sl.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_sl.min.js index 9ac8718c..38246a43 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_sl.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_sl.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"To polje je obvezno.",remote:"Prosimo popravite to polje.",email:"Prosimo vnesite veljaven email naslov.",url:"Prosimo vnesite veljaven URL naslov.",date:"Prosimo vnesite veljaven datum.",dateISO:"Prosimo vnesite veljaven ISO datum.",number:"Prosimo vnesite veljavno število.",digits:"Prosimo vnesite samo števila.",creditcard:"Prosimo vnesite veljavno številko kreditne kartice.",equalTo:"Prosimo ponovno vnesite vrednost.",extension:"Prosimo vnesite vrednost z veljavno končnico.",maxlength:a.validator.format("Prosimo vnesite največ {0} znakov."),minlength:a.validator.format("Prosimo vnesite najmanj {0} znakov."),rangelength:a.validator.format("Prosimo vnesite najmanj {0} in največ {1} znakov."),range:a.validator.format("Prosimo vnesite vrednost med {0} in {1}."),max:a.validator.format("Prosimo vnesite vrednost manjše ali enako {0}."),min:a.validator.format("Prosimo vnesite vrednost večje ali enako {0}.")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_sr.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_sr.min.js index a6a80457..f6d44d8f 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_sr.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_sr.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Поље је обавезно.",remote:"Средите ово поље.",email:"Унесите исправну и-мејл адресу.",url:"Унесите исправан URL.",date:"Унесите исправан датум.",dateISO:"Унесите исправан датум (ISO).",number:"Унесите исправан број.",digits:"Унесите само цифе.",creditcard:"Унесите исправан број кредитне картице.",equalTo:"Унесите исту вредност поново.",extension:"Унесите вредност са одговарајућом екстензијом.",maxlength:a.validator.format("Унесите мање од {0} карактера."),minlength:a.validator.format("Унесите барем {0} карактера."),rangelength:a.validator.format("Унесите вредност дугачку између {0} и {1} карактера."),range:a.validator.format("Унесите вредност између {0} и {1}."),max:a.validator.format("Унесите вредност мању или једнаку {0}."),min:a.validator.format("Унесите вредност већу или једнаку {0}."),step:a.validator.format("Унесите вредност која је умножак броја {0}.")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_sr_lat.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_sr_lat.min.js index 28cf8e3a..ab8fc9fa 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_sr_lat.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_sr_lat.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Polje je obavezno.",remote:"Sredite ovo polje.",email:"Unesite ispravnu e-mail adresu",url:"Unesite ispravan URL.",date:"Unesite ispravan datum.",dateISO:"Unesite ispravan datum (ISO).",number:"Unesite ispravan broj.",digits:"Unesite samo cifre.",creditcard:"Unesite ispravan broj kreditne kartice.",equalTo:"Unesite istu vrednost ponovo.",extension:"Unesite vrednost sa odgovarajućom ekstenzijom.",maxlength:a.validator.format("Unesite manje od {0} karaktera."),minlength:a.validator.format("Unesite barem {0} karaktera."),rangelength:a.validator.format("Unesite vrednost dugačku između {0} i {1} karaktera."),range:a.validator.format("Unesite vrednost između {0} i {1}."),max:a.validator.format("Unesite vrednost manju ili jednaku {0}."),min:a.validator.format("Unesite vrednost veću ili jednaku {0}."),step:a.validator.format("Unesite vrednost koja je umnožak broja {0}.")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_sv.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_sv.min.js index 22da3637..4fc55c53 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_sv.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_sv.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Detta fält är obligatoriskt.",remote:"Var snäll och åtgärda detta fält.",maxlength:a.validator.format("Du får ange högst {0} tecken."),minlength:a.validator.format("Du måste ange minst {0} tecken."),rangelength:a.validator.format("Ange minst {0} och max {1} tecken."),email:"Ange en korrekt e-postadress.",url:"Ange en korrekt URL.",date:"Ange ett korrekt datum.",dateISO:"Ange ett korrekt datum (ÅÅÅÅ-MM-DD).",number:"Ange ett korrekt nummer.",digits:"Ange endast siffror.",equalTo:"Ange samma värde igen.",range:a.validator.format("Ange ett värde mellan {0} och {1}."),max:a.validator.format("Ange ett värde som är mindre eller lika med {0}."),min:a.validator.format("Ange ett värde som är större eller lika med {0}."),creditcard:"Ange ett korrekt kreditkortsnummer.",pattern:"Ogiltigt format."}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_th.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_th.min.js index fdf1af24..7f228a4e 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_th.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_th.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"โปรดระบุ",remote:"โปรดแก้ไขให้ถูกต้อง",email:"โปรดระบุที่อยู่อีเมล์ที่ถูกต้อง",url:"โปรดระบุ URL ที่ถูกต้อง",date:"โปรดระบุวันที่ ที่ถูกต้อง",dateISO:"โปรดระบุวันที่ ที่ถูกต้อง (ระบบ ISO).",number:"โปรดระบุทศนิยมที่ถูกต้อง",digits:"โปรดระบุจำนวนเต็มที่ถูกต้อง",creditcard:"โปรดระบุรหัสบัตรเครดิตที่ถูกต้อง",equalTo:"โปรดระบุค่าเดิมอีกครั้ง",extension:"โปรดระบุค่าที่มีส่วนขยายที่ถูกต้อง",maxlength:a.validator.format("โปรดอย่าระบุค่าที่ยาวกว่า {0} อักขระ"),minlength:a.validator.format("โปรดอย่าระบุค่าที่สั้นกว่า {0} อักขระ"),rangelength:a.validator.format("โปรดอย่าระบุค่าความยาวระหว่าง {0} ถึง {1} อักขระ"),range:a.validator.format("โปรดระบุค่าระหว่าง {0} และ {1}"),max:a.validator.format("โปรดระบุค่าน้อยกว่าหรือเท่ากับ {0}"),min:a.validator.format("โปรดระบุค่ามากกว่าหรือเท่ากับ {0}")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_tj.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_tj.min.js index 16df53db..f38828d5 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_tj.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_tj.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Ворид кардани ин филд маҷбури аст.",remote:"Илтимос, маълумоти саҳеҳ ворид кунед.",email:"Илтимос, почтаи электронии саҳеҳ ворид кунед.",url:"Илтимос, URL адреси саҳеҳ ворид кунед.",date:"Илтимос, таърихи саҳеҳ ворид кунед.",dateISO:"Илтимос, таърихи саҳеҳи (ISO)ӣ ворид кунед.",number:"Илтимос, рақамҳои саҳеҳ ворид кунед.",digits:"Илтимос, танҳо рақам ворид кунед.",creditcard:"Илтимос, кредит карди саҳеҳ ворид кунед.",equalTo:"Илтимос, миқдори баробар ворид кунед.",extension:"Илтимос, қофияи файлро дуруст интихоб кунед",maxlength:a.validator.format("Илтимос, бештар аз {0} рамз ворид накунед."),minlength:a.validator.format("Илтимос, камтар аз {0} рамз ворид накунед."),rangelength:a.validator.format("Илтимос, камтар аз {0} ва зиёда аз {1} рамз ворид кунед."),range:a.validator.format("Илтимос, аз {0} то {1} рақам зиёд ворид кунед."),max:a.validator.format("Илтимос, бештар аз {0} рақам ворид накунед."),min:a.validator.format("Илтимос, камтар аз {0} рақам ворид накунед.")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_tr.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_tr.js index bb8c32ee..2df5b4cd 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_tr.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_tr.js @@ -24,6 +24,7 @@ $.extend( $.validator.messages, { creditcard: "Lütfen geçerli bir kredi kartı giriniz.", equalTo: "Lütfen aynı değeri tekrar giriniz.", extension: "Lütfen geçerli uzantıya sahip bir değer giriniz.", + phone: "Lütfen geçerli bir telefon numarası giriniz.", maxlength: $.validator.format( "Lütfen en fazla {0} karakter uzunluğunda bir değer giriniz." ), minlength: $.validator.format( "Lütfen en az {0} karakter uzunluğunda bir değer giriniz." ), rangelength: $.validator.format( "Lütfen en az {0} ve en fazla {1} uzunluğunda bir değer giriniz." ), diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_tr.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_tr.min.js index bf9edb52..ac43c43b 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_tr.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_tr.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ -!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Bu alanın doldurulması zorunludur.",remote:"Lütfen bu alanı düzeltin.",email:"Lütfen geçerli bir e-posta adresi giriniz.",url:"Lütfen geçerli bir web adresi (URL) giriniz.",date:"Lütfen geçerli bir tarih giriniz.",dateISO:"Lütfen geçerli bir tarih giriniz(ISO formatında)",number:"Lütfen geçerli bir sayı giriniz.",digits:"Lütfen sadece sayısal karakterler giriniz.",creditcard:"Lütfen geçerli bir kredi kartı giriniz.",equalTo:"Lütfen aynı değeri tekrar giriniz.",extension:"Lütfen geçerli uzantıya sahip bir değer giriniz.",maxlength:a.validator.format("Lütfen en fazla {0} karakter uzunluğunda bir değer giriniz."),minlength:a.validator.format("Lütfen en az {0} karakter uzunluğunda bir değer giriniz."),rangelength:a.validator.format("Lütfen en az {0} ve en fazla {1} uzunluğunda bir değer giriniz."),range:a.validator.format("Lütfen {0} ile {1} arasında bir değer giriniz."),max:a.validator.format("Lütfen {0} değerine eşit ya da daha küçük bir değer giriniz."),min:a.validator.format("Lütfen {0} değerine eşit ya da daha büyük bir değer giriniz."),require_from_group:a.validator.format("Lütfen bu alanların en az {0} tanesini doldurunuz.")}),a}); \ No newline at end of file + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ +!function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Bu alanın doldurulması zorunludur.",remote:"Lütfen bu alanı düzeltin.",email:"Lütfen geçerli bir e-posta adresi giriniz.",url:"Lütfen geçerli bir web adresi (URL) giriniz.",date:"Lütfen geçerli bir tarih giriniz.",dateISO:"Lütfen geçerli bir tarih giriniz(ISO formatında)",number:"Lütfen geçerli bir sayı giriniz.",digits:"Lütfen sadece sayısal karakterler giriniz.",creditcard:"Lütfen geçerli bir kredi kartı giriniz.",equalTo:"Lütfen aynı değeri tekrar giriniz.",extension:"Lütfen geçerli uzantıya sahip bir değer giriniz.",phone:"Lütfen geçerli bir telefon numarası giriniz.",maxlength:a.validator.format("Lütfen en fazla {0} karakter uzunluğunda bir değer giriniz."),minlength:a.validator.format("Lütfen en az {0} karakter uzunluğunda bir değer giriniz."),rangelength:a.validator.format("Lütfen en az {0} ve en fazla {1} uzunluğunda bir değer giriniz."),range:a.validator.format("Lütfen {0} ile {1} arasında bir değer giriniz."),max:a.validator.format("Lütfen {0} değerine eşit ya da daha küçük bir değer giriniz."),min:a.validator.format("Lütfen {0} değerine eşit ya da daha büyük bir değer giriniz."),require_from_group:a.validator.format("Lütfen bu alanların en az {0} tanesini doldurunuz.")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_uk.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_uk.min.js index 0538a186..513151e8 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_uk.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_uk.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Це поле необхідно заповнити.",remote:"Будь ласка, введіть правильне значення.",email:"Будь ласка, введіть коректну адресу електронної пошти.",url:"Будь ласка, введіть коректний URL.",date:"Будь ласка, введіть коректну дату.",dateISO:"Будь ласка, введіть коректну дату у форматі ISO.",number:"Будь ласка, введіть число.",digits:"Вводите потрібно лише цифри.",creditcard:"Будь ласка, введіть правильний номер кредитної карти.",equalTo:"Будь ласка, введіть таке ж значення ще раз.",extension:"Будь ласка, виберіть файл з правильним розширенням.",maxlength:a.validator.format("Будь ласка, введіть не більше {0} символів."),minlength:a.validator.format("Будь ласка, введіть не менше {0} символів."),rangelength:a.validator.format("Будь ласка, введіть значення довжиною від {0} до {1} символів."),range:a.validator.format("Будь ласка, введіть число від {0} до {1}."),max:a.validator.format("Будь ласка, введіть число, менше або рівно {0}."),min:a.validator.format("Будь ласка, введіть число, більше або рівно {0}.")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ur.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ur.min.js index 94113070..c8a53903 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ur.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_ur.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"ان معلومات کا اندراج ضروری ہے",remote:"ان معلومات کا اندراج ضروری ہے",email:"درج کی ہوئی ای میل درست نہیں ہے",url:"درج کیا گیا پتہ درست نہیں ہے",date:"درج کی گئی تاریخ درست نہیں ہے",dateISO:"معیار کے مطابق نہیں ہے (ISO) درج کی گئی تاریخ",number:"درج کیےگئے ہندسے درست نہیں ہیں",digits:"صرف ہندسے اندراج کئے جاسکتے ہیں",creditcard:"درج کیا گیا کارڈ نمبر درست نہیں ہے",equalTo:"اندراج کا موازنہ درست نہیں ہے",extension:"اندراج درست نہیں ہے",maxlength:a.validator.format("زیادہ سے زیادہ {0} کا اندراج کر سکتے ہیں"),minlength:a.validator.format("کم سے کم {0} کا اندراج کرنا ضروری ہے"),rangelength:a.validator.format("اندراج کا {0} اور {1}کے درمیان ہونا ضروری ہے"),range:a.validator.format("اندراج کا {0} اور {1} کے درمیان ہونا ضروری ہے"),max:a.validator.format("زیادہ سے زیادہ {0} کا اندراج کر سکتے ہیں"),min:a.validator.format("کم سے کم {0} کا اندراج کرنا ضروری ہے")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_vi.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_vi.min.js index 328904a4..51691c63 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_vi.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_vi.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"Hãy nhập.",remote:"Hãy sửa cho đúng.",email:"Hãy nhập email.",url:"Hãy nhập URL.",date:"Hãy nhập ngày.",dateISO:"Hãy nhập ngày (ISO).",number:"Hãy nhập số.",digits:"Hãy nhập chữ số.",creditcard:"Hãy nhập số thẻ tín dụng.",equalTo:"Hãy nhập thêm lần nữa.",extension:"Phần mở rộng không đúng.",maxlength:a.validator.format("Hãy nhập từ {0} kí tự trở xuống."),minlength:a.validator.format("Hãy nhập từ {0} kí tự trở lên."),rangelength:a.validator.format("Hãy nhập từ {0} đến {1} kí tự."),range:a.validator.format("Hãy nhập từ {0} đến {1}."),max:a.validator.format("Hãy nhập từ {0} trở xuống."),min:a.validator.format("Hãy nhập từ {0} trở lên.")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_zh.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_zh.min.js index 5cc9653c..cff8c3b0 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_zh.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_zh.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"这是必填字段",remote:"请修正此字段",email:"请输入有效的电子邮件地址",url:"请输入有效的网址",date:"请输入有效的日期",dateISO:"请输入有效的日期 (YYYY-MM-DD)",number:"请输入有效的数字",digits:"只能输入数字",creditcard:"请输入有效的信用卡号码",equalTo:"你的输入不相同",extension:"请输入有效的后缀",maxlength:a.validator.format("最多可以输入 {0} 个字符"),minlength:a.validator.format("最少要输入 {0} 个字符"),rangelength:a.validator.format("请输入长度在 {0} 到 {1} 之间的字符串"),range:a.validator.format("请输入范围在 {0} 到 {1} 之间的数值"),step:a.validator.format("请输入 {0} 的整数倍值"),max:a.validator.format("请输入不大于 {0} 的数值"),min:a.validator.format("请输入不小于 {0} 的数值")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_zh_TW.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_zh_TW.min.js index a05922ea..042a10fc 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_zh_TW.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/messages_zh_TW.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.messages,{required:"必須填寫",remote:"請修正此欄位",email:"請輸入有效的電子郵件",url:"請輸入有效的網址",date:"請輸入有效的日期",dateISO:"請輸入有效的日期 (YYYY-MM-DD)",number:"請輸入正確的數值",digits:"只可輸入數字",creditcard:"請輸入有效的信用卡號碼",equalTo:"請重複輸入一次",extension:"請輸入有效的後綴",maxlength:a.validator.format("最多 {0} 個字"),minlength:a.validator.format("最少 {0} 個字"),rangelength:a.validator.format("請輸入長度為 {0} 至 {1} 之間的字串"),range:a.validator.format("請輸入 {0} 至 {1} 之間的數值"),step:a.validator.format("請輸入 {0} 的整數倍值"),max:a.validator.format("請輸入不大於 {0} 的數值"),min:a.validator.format("請輸入不小於 {0} 的數值")}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/methods_de.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/methods_de.min.js index 24522ea9..a798b013 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/methods_de.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/methods_de.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.methods,{date:function(a,b){return this.optional(b)||/^\d\d?\.\d\d?\.\d\d\d?\d?$/.test(a)},number:function(a,b){return this.optional(b)||/^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test(a)}}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/methods_es_CL.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/methods_es_CL.min.js index 08e13729..61f05fc8 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/methods_es_CL.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/methods_es_CL.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.methods,{date:function(a,b){return this.optional(b)||/^\d\d?\-\d\d?\-\d\d\d?\d?$/.test(a)},number:function(a,b){return this.optional(b)||/^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test(a)}}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/methods_fi.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/methods_fi.min.js index 14ce3322..751abd3d 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/methods_fi.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/methods_fi.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.methods,{date:function(a,b){return this.optional(b)||/^\d{1,2}\.\d{1,2}\.\d{4}$/.test(a)},number:function(a,b){return this.optional(b)||/^-?(?:\d+)(?:,\d+)?$/.test(a)}}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/methods_it.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/methods_it.min.js index 08e13729..61f05fc8 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/methods_it.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/methods_it.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.methods,{date:function(a,b){return this.optional(b)||/^\d\d?\-\d\d?\-\d\d\d?\d?$/.test(a)},number:function(a,b){return this.optional(b)||/^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test(a)}}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/methods_nl.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/methods_nl.min.js index 114c24d3..dd1d2056 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/methods_nl.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/methods_nl.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.methods,{date:function(a,b){return this.optional(b)||/^\d\d?[\.\/\-]\d\d?[\.\/\-]\d\d\d?\d?$/.test(a)},number:function(a,b){return this.optional(b)||/^-?(?:\d+|\d{1,3}(?:\.\d{3})+)(?:,\d+)?$/.test(a)}}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/methods_pt.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/methods_pt.min.js index 64e16dfe..68980227 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/methods_pt.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/jquery-validation/localization/methods_pt.min.js @@ -1,4 +1,4 @@ -/*! jQuery Validation Plugin - v1.19.1 - 6/15/2019 +/*! jQuery Validation Plugin - v1.19.4 - 5/19/2022 * https://jqueryvalidation.org/ - * Copyright (c) 2019 Jörn Zaefferer; Licensed MIT */ + * Copyright (c) 2022 Jörn Zaefferer; Licensed MIT */ !function(a){"function"==typeof define&&define.amd?define(["jquery","../jquery.validate.min"],a):"object"==typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a){return a.extend(a.validator.methods,{date:function(a,b){return this.optional(b)||/^\d\d?\/\d\d?\/\d\d\d?\d?$/.test(a)}}),a}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/lodash/lodash.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/lodash/lodash.min.js index 13ec307d..4219da73 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/lodash/lodash.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/lodash/lodash.min.js @@ -1,137 +1,140 @@ /** * @license - * Lodash lodash.com/license | Underscore.js 1.8.3 underscorejs.org/LICENSE + * Lodash + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors */ -;(function(){function n(n,t,r){switch(r.length){case 0:return n.call(t);case 1:return n.call(t,r[0]);case 2:return n.call(t,r[0],r[1]);case 3:return n.call(t,r[0],r[1],r[2])}return n.apply(t,r)}function t(n,t,r,e){for(var u=-1,i=null==n?0:n.length;++u"']/g,G=RegExp(V.source),H=RegExp(K.source),J=/<%-([\s\S]+?)%>/g,Y=/<%([\s\S]+?)%>/g,Q=/<%=([\s\S]+?)%>/g,X=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,nn=/^\w*$/,tn=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,rn=/[\\^$.*+?()[\]{}|]/g,en=RegExp(rn.source),un=/^\s+|\s+$/g,on=/^\s+/,fn=/\s+$/,cn=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,an=/\{\n\/\* \[wrapped with (.+)\] \*/,ln=/,? & /,sn=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,hn=/\\(\\)?/g,pn=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,_n=/\w*$/,vn=/^[-+]0x[0-9a-f]+$/i,gn=/^0b[01]+$/i,dn=/^\[object .+?Constructor\]$/,yn=/^0o[0-7]+$/i,bn=/^(?:0|[1-9]\d*)$/,xn=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,jn=/($^)/,wn=/['\n\r\u2028\u2029\\]/g,mn="[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?(?:\\u200d(?:[^\\ud800-\\udfff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])[\\ufe0e\\ufe0f]?(?:[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|\\ud83c[\\udffb-\\udfff])?)*",An="(?:[\\u2700-\\u27bf]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff])"+mn,En="(?:[^\\ud800-\\udfff][\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]?|[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]|(?:\\ud83c[\\udde6-\\uddff]){2}|[\\ud800-\\udbff][\\udc00-\\udfff]|[\\ud800-\\udfff])",kn=RegExp("['\u2019]","g"),Sn=RegExp("[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]","g"),On=RegExp("\\ud83c[\\udffb-\\udfff](?=\\ud83c[\\udffb-\\udfff])|"+En+mn,"g"),In=RegExp(["[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+(?:['\u2019](?:d|ll|m|re|s|t|ve))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde]|$)|(?:[A-Z\\xc0-\\xd6\\xd8-\\xde]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?(?=[\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000]|[A-Z\\xc0-\\xd6\\xd8-\\xde](?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])|$)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?(?:[a-z\\xdf-\\xf6\\xf8-\\xff]|[^\\ud800-\\udfff\\xac\\xb1\\xd7\\xf7\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf\\u2000-\\u206f \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000\\d+\\u2700-\\u27bfa-z\\xdf-\\xf6\\xf8-\\xffA-Z\\xc0-\\xd6\\xd8-\\xde])+(?:['\u2019](?:d|ll|m|re|s|t|ve))?|[A-Z\\xc0-\\xd6\\xd8-\\xde]+(?:['\u2019](?:D|LL|M|RE|S|T|VE))?|\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])|\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])|\\d+",An].join("|"),"g"),Rn=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]"),zn=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Wn="Array Buffer DataView Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Map Math Object Promise RegExp Set String Symbol TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap _ clearTimeout isFinite parseInt setTimeout".split(" "),Bn={}; -Bn["[object Float32Array]"]=Bn["[object Float64Array]"]=Bn["[object Int8Array]"]=Bn["[object Int16Array]"]=Bn["[object Int32Array]"]=Bn["[object Uint8Array]"]=Bn["[object Uint8ClampedArray]"]=Bn["[object Uint16Array]"]=Bn["[object Uint32Array]"]=true,Bn["[object Arguments]"]=Bn["[object Array]"]=Bn["[object ArrayBuffer]"]=Bn["[object Boolean]"]=Bn["[object DataView]"]=Bn["[object Date]"]=Bn["[object Error]"]=Bn["[object Function]"]=Bn["[object Map]"]=Bn["[object Number]"]=Bn["[object Object]"]=Bn["[object RegExp]"]=Bn["[object Set]"]=Bn["[object String]"]=Bn["[object WeakMap]"]=false; -var Ln={};Ln["[object Arguments]"]=Ln["[object Array]"]=Ln["[object ArrayBuffer]"]=Ln["[object DataView]"]=Ln["[object Boolean]"]=Ln["[object Date]"]=Ln["[object Float32Array]"]=Ln["[object Float64Array]"]=Ln["[object Int8Array]"]=Ln["[object Int16Array]"]=Ln["[object Int32Array]"]=Ln["[object Map]"]=Ln["[object Number]"]=Ln["[object Object]"]=Ln["[object RegExp]"]=Ln["[object Set]"]=Ln["[object String]"]=Ln["[object Symbol]"]=Ln["[object Uint8Array]"]=Ln["[object Uint8ClampedArray]"]=Ln["[object Uint16Array]"]=Ln["[object Uint32Array]"]=true, -Ln["[object Error]"]=Ln["[object Function]"]=Ln["[object WeakMap]"]=false;var Un={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Cn=parseFloat,Dn=parseInt,Mn=typeof global=="object"&&global&&global.Object===Object&&global,Tn=typeof self=="object"&&self&&self.Object===Object&&self,$n=Mn||Tn||Function("return this")(),Fn=typeof exports=="object"&&exports&&!exports.nodeType&&exports,Nn=Fn&&typeof module=="object"&&module&&!module.nodeType&&module,Pn=Nn&&Nn.exports===Fn,Zn=Pn&&Mn.process,qn=function(){ -try{var n=Nn&&Nn.f&&Nn.f("util").types;return n?n:Zn&&Zn.binding&&Zn.binding("util")}catch(n){}}(),Vn=qn&&qn.isArrayBuffer,Kn=qn&&qn.isDate,Gn=qn&&qn.isMap,Hn=qn&&qn.isRegExp,Jn=qn&&qn.isSet,Yn=qn&&qn.isTypedArray,Qn=b("length"),Xn=x({"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a","\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I", -"\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae","\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C", -"\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g","\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i", -"\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O","\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r", -"\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w","\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij", -"\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"}),nt=x({"&":"&","<":"<",">":">",'"':""","'":"'"}),tt=x({"&":"&","<":"<",">":">",""":'"',"'":"'"}),rt=function x(mn){function An(n){if(yu(n)&&!ff(n)&&!(n instanceof Un)){if(n instanceof On)return n;if(oi.call(n,"__wrapped__"))return Fe(n)}return new On(n)}function En(){}function On(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t,this.__index__=0,this.__values__=T}function Un(n){this.__wrapped__=n, -this.__actions__=[],this.__dir__=1,this.__filtered__=false,this.__iteratees__=[],this.__takeCount__=4294967295,this.__views__=[]}function Mn(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t=t?n:t)),n}function _t(n,t,e,u,i,o){var f,c=1&t,a=2&t,l=4&t;if(e&&(f=i?e(n,u,i,o):e(n)),f!==T)return f;if(!du(n))return n;if(u=ff(n)){if(f=me(n),!c)return Ur(n,f)}else{var s=vo(n),h="[object Function]"==s||"[object GeneratorFunction]"==s;if(af(n))return Ir(n,c);if("[object Object]"==s||"[object Arguments]"==s||h&&!i){if(f=a||h?{}:Ae(n),!c)return a?Mr(n,lt(f,n)):Dr(n,at(f,n))}else{if(!Ln[s])return i?n:{};f=Ee(n,s,c)}}if(o||(o=new Zn), -i=o.get(n))return i;o.set(n,f),pf(n)?n.forEach(function(r){f.add(_t(r,t,e,r,n,o))}):sf(n)&&n.forEach(function(r,u){f.set(u,_t(r,t,e,u,n,o))});var a=l?a?ve:_e:a?Bu:Wu,p=u?T:a(n);return r(p||n,function(r,u){p&&(u=r,r=n[u]),ot(f,u,_t(r,t,e,u,n,o))}),f}function vt(n){var t=Wu(n);return function(r){return gt(r,n,t)}}function gt(n,t,r){var e=r.length;if(null==n)return!e;for(n=Qu(n);e--;){var u=r[e],i=t[u],o=n[u];if(o===T&&!(u in n)||!i(o))return false}return true}function dt(n,t,r){if(typeof n!="function")throw new ti("Expected a function"); -return bo(function(){n.apply(T,r)},t)}function yt(n,t,r,e){var u=-1,i=o,a=true,l=n.length,s=[],h=t.length;if(!l)return s;r&&(t=c(t,k(r))),e?(i=f,a=false):200<=t.length&&(i=O,a=false,t=new Nn(t));n:for(;++ut}function Rt(n,t){return null!=n&&oi.call(n,t)}function zt(n,t){return null!=n&&t in Qu(n)}function Wt(n,t,r){for(var e=r?f:o,u=n[0].length,i=n.length,a=i,l=Ku(i),s=1/0,h=[];a--;){var p=n[a];a&&t&&(p=c(p,k(t))),s=Ci(p.length,s), -l[a]=!r&&(t||120<=u&&120<=p.length)?new Nn(a&&p):T}var p=n[0],_=-1,v=l[0];n:for(;++_r.length?t:kt(t,hr(r,0,-1)),r=null==t?t:t[Me(Ve(r))],null==r?T:n(r,t,e)}function Ut(n){return yu(n)&&"[object Arguments]"==Ot(n)}function Ct(n){ -return yu(n)&&"[object ArrayBuffer]"==Ot(n)}function Dt(n){return yu(n)&&"[object Date]"==Ot(n)}function Mt(n,t,r,e,u){if(n===t)t=true;else if(null==n||null==t||!yu(n)&&!yu(t))t=n!==n&&t!==t;else n:{var i=ff(n),o=ff(t),f=i?"[object Array]":vo(n),c=o?"[object Array]":vo(t),f="[object Arguments]"==f?"[object Object]":f,c="[object Arguments]"==c?"[object Object]":c,a="[object Object]"==f,o="[object Object]"==c;if((c=f==c)&&af(n)){if(!af(t)){t=false;break n}i=true,a=false}if(c&&!a)u||(u=new Zn),t=i||_f(n)?se(n,t,r,e,Mt,u):he(n,t,f,r,e,Mt,u);else{ -if(!(1&r)&&(i=a&&oi.call(n,"__wrapped__"),f=o&&oi.call(t,"__wrapped__"),i||f)){n=i?n.value():n,t=f?t.value():t,u||(u=new Zn),t=Mt(n,t,r,e,u);break n}if(c)t:if(u||(u=new Zn),i=1&r,f=_e(n),o=f.length,c=_e(t).length,o==c||i){for(a=o;a--;){var l=f[a];if(!(i?l in t:oi.call(t,l))){t=false;break t}}if((c=u.get(n))&&u.get(t))t=c==t;else{c=true,u.set(n,t),u.set(t,n);for(var s=i;++at?r:0,Se(t,r)?n[t]:T}function Xt(n,t,r){var e=-1;return t=c(t.length?t:[$u],k(ye())),n=Gt(n,function(n){return{ -a:c(t,function(t){return t(n)}),b:++e,c:n}}),w(n,function(n,t){var e;n:{e=-1;for(var u=n.a,i=t.a,o=u.length,f=r.length;++e=f?c:c*("desc"==r[e]?-1:1);break n}}e=n.b-t.b}return e})}function nr(n,t){return tr(n,t,function(t,r){return zu(n,r)})}function tr(n,t,r){for(var e=-1,u=t.length,i={};++et||9007199254740991t&&(t=-t>u?0:u+t),r=r>u?u:r,0>r&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0,r=Ku(u);++e=u){for(;e>>1,o=n[i];null!==o&&!wu(o)&&(r?o<=t:ot.length?n:kt(n,hr(t,0,-1)),null==n||delete n[Me(Ve(t))]}function jr(n,t,r,e){for(var u=n.length,i=e?u:-1;(e?i--:++ie)return e?br(n[0]):[];for(var u=-1,i=Ku(e);++u=e?n:hr(n,t,r)}function Ir(n,t){if(t)return n.slice();var r=n.length,r=gi?gi(r):new n.constructor(r);return n.copy(r),r}function Rr(n){var t=new n.constructor(n.byteLength);return new vi(t).set(new vi(n)), -t}function zr(n,t){return new n.constructor(t?Rr(n.buffer):n.buffer,n.byteOffset,n.length)}function Wr(n,t){if(n!==t){var r=n!==T,e=null===n,u=n===n,i=wu(n),o=t!==T,f=null===t,c=t===t,a=wu(t);if(!f&&!a&&!i&&n>t||i&&o&&c&&!f&&!a||e&&o&&c||!r&&c||!u)return 1;if(!e&&!i&&!a&&nu?T:i,u=1),t=Qu(t);++eo&&f[0]!==a&&f[o-1]!==a?[]:L(f,a), -o-=c.length,or?r?or(t,n):t:(r=or(t,Oi(n/D(t))),Rn.test(t)?Or(M(r),0,n).join(""):r.slice(0,n))}function te(t,r,e,u){function i(){for(var r=-1,c=arguments.length,a=-1,l=u.length,s=Ku(l+c),h=this&&this!==$n&&this instanceof i?f:t;++at||e)&&(1&n&&(i[2]=h[2],t|=1&r?0:4),(r=h[3])&&(e=i[3],i[3]=e?Br(e,r,h[4]):r,i[4]=e?L(i[3],"__lodash_placeholder__"):h[4]),(r=h[5])&&(e=i[5],i[5]=e?Lr(e,r,h[6]):r,i[6]=e?L(i[5],"__lodash_placeholder__"):h[6]),(r=h[7])&&(i[7]=r),128&n&&(i[8]=null==i[8]?h[8]:Ci(i[8],h[8])),null==i[9]&&(i[9]=h[9]),i[0]=h[0],i[1]=t),n=i[0], -t=i[1],r=i[2],e=i[3],u=i[4],f=i[9]=i[9]===T?c?0:n.length:Ui(i[9]-a,0),!f&&24&t&&(t&=-25),Ue((h?co:yo)(t&&1!=t?8==t||16==t?Kr(n,t,f):32!=t&&33!=t||u.length?Jr.apply(T,i):te(n,t,r,e):Pr(n,t,r),i),n,t)}function ce(n,t,r,e){return n===T||lu(n,ei[r])&&!oi.call(e,r)?t:n}function ae(n,t,r,e,u,i){return du(n)&&du(t)&&(i.set(t,n),Yt(n,t,T,ae,i),i.delete(t)),n}function le(n){return xu(n)?T:n}function se(n,t,r,e,u,i){var o=1&r,f=n.length,c=t.length;if(f!=c&&!(o&&c>f))return false;if((c=i.get(n))&&i.get(t))return c==t; -var c=-1,a=true,l=2&r?new Nn:T;for(i.set(n,t),i.set(t,n);++cr&&(r=Ui(e+r,0)),_(n,ye(t,3),r)):-1}function Pe(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e-1;return r!==T&&(u=Eu(r),u=0>r?Ui(e+u,0):Ci(u,e-1)), -_(n,ye(t,3),u,true)}function Ze(n){return(null==n?0:n.length)?wt(n,1):[]}function qe(n){return n&&n.length?n[0]:T}function Ve(n){var t=null==n?0:n.length;return t?n[t-1]:T}function Ke(n,t){return n&&n.length&&t&&t.length?er(n,t):n}function Ge(n){return null==n?n:$i.call(n)}function He(n){if(!n||!n.length)return[];var t=0;return n=i(n,function(n){if(hu(n))return t=Ui(n.length,t),true}),A(t,function(t){return c(n,b(t))})}function Je(t,r){if(!t||!t.length)return[];var e=He(t);return null==r?e:c(e,function(t){ -return n(r,T,t)})}function Ye(n){return n=An(n),n.__chain__=true,n}function Qe(n,t){return t(n)}function Xe(){return this}function nu(n,t){return(ff(n)?r:uo)(n,ye(t,3))}function tu(n,t){return(ff(n)?e:io)(n,ye(t,3))}function ru(n,t){return(ff(n)?c:Gt)(n,ye(t,3))}function eu(n,t,r){return t=r?T:t,t=n&&null==t?n.length:t,fe(n,128,T,T,T,T,t)}function uu(n,t){var r;if(typeof t!="function")throw new ti("Expected a function");return n=Eu(n),function(){return 0<--n&&(r=t.apply(this,arguments)),1>=n&&(t=T), -r}}function iu(n,t,r){return t=r?T:t,n=fe(n,8,T,T,T,T,T,t),n.placeholder=iu.placeholder,n}function ou(n,t,r){return t=r?T:t,n=fe(n,16,T,T,T,T,T,t),n.placeholder=ou.placeholder,n}function fu(n,t,r){function e(t){var r=c,e=a;return c=a=T,_=t,s=n.apply(e,r)}function u(n){var r=n-p;return n-=_,p===T||r>=t||0>r||g&&n>=l}function i(){var n=Go();if(u(n))return o(n);var r,e=bo;r=n-_,n=t-(n-p),r=g?Ci(n,l-r):n,h=e(i,r)}function o(n){return h=T,d&&c?e(n):(c=a=T,s)}function f(){var n=Go(),r=u(n);if(c=arguments, -a=this,p=n,r){if(h===T)return _=n=p,h=bo(i,t),v?e(n):s;if(g)return lo(h),h=bo(i,t),e(p)}return h===T&&(h=bo(i,t)),s}var c,a,l,s,h,p,_=0,v=false,g=false,d=true;if(typeof n!="function")throw new ti("Expected a function");return t=Su(t)||0,du(r)&&(v=!!r.leading,l=(g="maxWait"in r)?Ui(Su(r.maxWait)||0,t):l,d="trailing"in r?!!r.trailing:d),f.cancel=function(){h!==T&&lo(h),_=0,c=p=a=h=T},f.flush=function(){return h===T?s:o(Go())},f}function cu(n,t){function r(){var e=arguments,u=t?t.apply(this,e):e[0],i=r.cache; -return i.has(u)?i.get(u):(e=n.apply(this,e),r.cache=i.set(u,e)||i,e)}if(typeof n!="function"||null!=t&&typeof t!="function")throw new ti("Expected a function");return r.cache=new(cu.Cache||Fn),r}function au(n){if(typeof n!="function")throw new ti("Expected a function");return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2:return!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2])}return!n.apply(this,t)}}function lu(n,t){return n===t||n!==n&&t!==t; -}function su(n){return null!=n&&gu(n.length)&&!_u(n)}function hu(n){return yu(n)&&su(n)}function pu(n){if(!yu(n))return false;var t=Ot(n);return"[object Error]"==t||"[object DOMException]"==t||typeof n.message=="string"&&typeof n.name=="string"&&!xu(n)}function _u(n){return!!du(n)&&(n=Ot(n),"[object Function]"==n||"[object GeneratorFunction]"==n||"[object AsyncFunction]"==n||"[object Proxy]"==n)}function vu(n){return typeof n=="number"&&n==Eu(n)}function gu(n){return typeof n=="number"&&-1=n; -}function du(n){var t=typeof n;return null!=n&&("object"==t||"function"==t)}function yu(n){return null!=n&&typeof n=="object"}function bu(n){return typeof n=="number"||yu(n)&&"[object Number]"==Ot(n)}function xu(n){return!(!yu(n)||"[object Object]"!=Ot(n))&&(n=di(n),null===n||(n=oi.call(n,"constructor")&&n.constructor,typeof n=="function"&&n instanceof n&&ii.call(n)==li))}function ju(n){return typeof n=="string"||!ff(n)&&yu(n)&&"[object String]"==Ot(n)}function wu(n){return typeof n=="symbol"||yu(n)&&"[object Symbol]"==Ot(n); -}function mu(n){if(!n)return[];if(su(n))return ju(n)?M(n):Ur(n);if(wi&&n[wi]){n=n[wi]();for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r}return t=vo(n),("[object Map]"==t?W:"[object Set]"==t?U:Uu)(n)}function Au(n){return n?(n=Su(n),n===$||n===-$?1.7976931348623157e308*(0>n?-1:1):n===n?n:0):0===n?n:0}function Eu(n){n=Au(n);var t=n%1;return n===n?t?n-t:n:0}function ku(n){return n?pt(Eu(n),0,4294967295):0}function Su(n){if(typeof n=="number")return n;if(wu(n))return F;if(du(n)&&(n=typeof n.valueOf=="function"?n.valueOf():n, -n=du(n)?n+"":n),typeof n!="string")return 0===n?n:+n;n=n.replace(un,"");var t=gn.test(n);return t||yn.test(n)?Dn(n.slice(2),t?2:8):vn.test(n)?F:+n}function Ou(n){return Cr(n,Bu(n))}function Iu(n){return null==n?"":yr(n)}function Ru(n,t,r){return n=null==n?T:kt(n,t),n===T?r:n}function zu(n,t){return null!=n&&we(n,t,zt)}function Wu(n){return su(n)?qn(n):Vt(n)}function Bu(n){if(su(n))n=qn(n,true);else if(du(n)){var t,r=ze(n),e=[];for(t in n)("constructor"!=t||!r&&oi.call(n,t))&&e.push(t);n=e}else{if(t=[], -null!=n)for(r in Qu(n))t.push(r);n=t}return n}function Lu(n,t){if(null==n)return{};var r=c(ve(n),function(n){return[n]});return t=ye(t),tr(n,r,function(n,r){return t(n,r[0])})}function Uu(n){return null==n?[]:S(n,Wu(n))}function Cu(n){return $f(Iu(n).toLowerCase())}function Du(n){return(n=Iu(n))&&n.replace(xn,Xn).replace(Sn,"")}function Mu(n,t,r){return n=Iu(n),t=r?T:t,t===T?zn.test(n)?n.match(In)||[]:n.match(sn)||[]:n.match(t)||[]}function Tu(n){return function(){return n}}function $u(n){return n; -}function Fu(n){return qt(typeof n=="function"?n:_t(n,1))}function Nu(n,t,e){var u=Wu(t),i=Et(t,u);null!=e||du(t)&&(i.length||!u.length)||(e=t,t=n,n=this,i=Et(t,Wu(t)));var o=!(du(e)&&"chain"in e&&!e.chain),f=_u(n);return r(i,function(r){var e=t[r];n[r]=e,f&&(n.prototype[r]=function(){var t=this.__chain__;if(o||t){var r=n(this.__wrapped__);return(r.__actions__=Ur(this.__actions__)).push({func:e,args:arguments,thisArg:n}),r.__chain__=t,r}return e.apply(n,a([this.value()],arguments))})}),n}function Pu(){} -function Zu(n){return Ie(n)?b(Me(n)):rr(n)}function qu(){return[]}function Vu(){return false}mn=null==mn?$n:rt.defaults($n.Object(),mn,rt.pick($n,Wn));var Ku=mn.Array,Gu=mn.Date,Hu=mn.Error,Ju=mn.Function,Yu=mn.Math,Qu=mn.Object,Xu=mn.RegExp,ni=mn.String,ti=mn.TypeError,ri=Ku.prototype,ei=Qu.prototype,ui=mn["__core-js_shared__"],ii=Ju.prototype.toString,oi=ei.hasOwnProperty,fi=0,ci=function(){var n=/[^.]+$/.exec(ui&&ui.keys&&ui.keys.IE_PROTO||"");return n?"Symbol(src)_1."+n:""}(),ai=ei.toString,li=ii.call(Qu),si=$n._,hi=Xu("^"+ii.call(oi).replace(rn,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$"),pi=Pn?mn.Buffer:T,_i=mn.Symbol,vi=mn.Uint8Array,gi=pi?pi.g:T,di=B(Qu.getPrototypeOf,Qu),yi=Qu.create,bi=ei.propertyIsEnumerable,xi=ri.splice,ji=_i?_i.isConcatSpreadable:T,wi=_i?_i.iterator:T,mi=_i?_i.toStringTag:T,Ai=function(){ -try{var n=je(Qu,"defineProperty");return n({},"",{}),n}catch(n){}}(),Ei=mn.clearTimeout!==$n.clearTimeout&&mn.clearTimeout,ki=Gu&&Gu.now!==$n.Date.now&&Gu.now,Si=mn.setTimeout!==$n.setTimeout&&mn.setTimeout,Oi=Yu.ceil,Ii=Yu.floor,Ri=Qu.getOwnPropertySymbols,zi=pi?pi.isBuffer:T,Wi=mn.isFinite,Bi=ri.join,Li=B(Qu.keys,Qu),Ui=Yu.max,Ci=Yu.min,Di=Gu.now,Mi=mn.parseInt,Ti=Yu.random,$i=ri.reverse,Fi=je(mn,"DataView"),Ni=je(mn,"Map"),Pi=je(mn,"Promise"),Zi=je(mn,"Set"),qi=je(mn,"WeakMap"),Vi=je(Qu,"create"),Ki=qi&&new qi,Gi={},Hi=Te(Fi),Ji=Te(Ni),Yi=Te(Pi),Qi=Te(Zi),Xi=Te(qi),no=_i?_i.prototype:T,to=no?no.valueOf:T,ro=no?no.toString:T,eo=function(){ -function n(){}return function(t){return du(t)?yi?yi(t):(n.prototype=t,t=new n,n.prototype=T,t):{}}}();An.templateSettings={escape:J,evaluate:Y,interpolate:Q,variable:"",imports:{_:An}},An.prototype=En.prototype,An.prototype.constructor=An,On.prototype=eo(En.prototype),On.prototype.constructor=On,Un.prototype=eo(En.prototype),Un.prototype.constructor=Un,Mn.prototype.clear=function(){this.__data__=Vi?Vi(null):{},this.size=0},Mn.prototype.delete=function(n){return n=this.has(n)&&delete this.__data__[n], -this.size-=n?1:0,n},Mn.prototype.get=function(n){var t=this.__data__;return Vi?(n=t[n],"__lodash_hash_undefined__"===n?T:n):oi.call(t,n)?t[n]:T},Mn.prototype.has=function(n){var t=this.__data__;return Vi?t[n]!==T:oi.call(t,n)},Mn.prototype.set=function(n,t){var r=this.__data__;return this.size+=this.has(n)?0:1,r[n]=Vi&&t===T?"__lodash_hash_undefined__":t,this},Tn.prototype.clear=function(){this.__data__=[],this.size=0},Tn.prototype.delete=function(n){var t=this.__data__;return n=ft(t,n),!(0>n)&&(n==t.length-1?t.pop():xi.call(t,n,1), ---this.size,true)},Tn.prototype.get=function(n){var t=this.__data__;return n=ft(t,n),0>n?T:t[n][1]},Tn.prototype.has=function(n){return-1e?(++this.size,r.push([n,t])):r[e][1]=t,this},Fn.prototype.clear=function(){this.size=0,this.__data__={hash:new Mn,map:new(Ni||Tn),string:new Mn}},Fn.prototype.delete=function(n){return n=be(this,n).delete(n),this.size-=n?1:0,n},Fn.prototype.get=function(n){return be(this,n).get(n); -},Fn.prototype.has=function(n){return be(this,n).has(n)},Fn.prototype.set=function(n,t){var r=be(this,n),e=r.size;return r.set(n,t),this.size+=r.size==e?0:1,this},Nn.prototype.add=Nn.prototype.push=function(n){return this.__data__.set(n,"__lodash_hash_undefined__"),this},Nn.prototype.has=function(n){return this.__data__.has(n)},Zn.prototype.clear=function(){this.__data__=new Tn,this.size=0},Zn.prototype.delete=function(n){var t=this.__data__;return n=t.delete(n),this.size=t.size,n},Zn.prototype.get=function(n){ -return this.__data__.get(n)},Zn.prototype.has=function(n){return this.__data__.has(n)},Zn.prototype.set=function(n,t){var r=this.__data__;if(r instanceof Tn){var e=r.__data__;if(!Ni||199>e.length)return e.push([n,t]),this.size=++r.size,this;r=this.__data__=new Fn(e)}return r.set(n,t),this.size=r.size,this};var uo=Fr(mt),io=Fr(At,true),oo=Nr(),fo=Nr(true),co=Ki?function(n,t){return Ki.set(n,t),n}:$u,ao=Ai?function(n,t){return Ai(n,"toString",{configurable:true,enumerable:false,value:Tu(t),writable:true})}:$u,lo=Ei||function(n){ -return $n.clearTimeout(n)},so=Zi&&1/U(new Zi([,-0]))[1]==$?function(n){return new Zi(n)}:Pu,ho=Ki?function(n){return Ki.get(n)}:Pu,po=Ri?function(n){return null==n?[]:(n=Qu(n),i(Ri(n),function(t){return bi.call(n,t)}))}:qu,_o=Ri?function(n){for(var t=[];n;)a(t,po(n)),n=di(n);return t}:qu,vo=Ot;(Fi&&"[object DataView]"!=vo(new Fi(new ArrayBuffer(1)))||Ni&&"[object Map]"!=vo(new Ni)||Pi&&"[object Promise]"!=vo(Pi.resolve())||Zi&&"[object Set]"!=vo(new Zi)||qi&&"[object WeakMap]"!=vo(new qi))&&(vo=function(n){ -var t=Ot(n);if(n=(n="[object Object]"==t?n.constructor:T)?Te(n):"")switch(n){case Hi:return"[object DataView]";case Ji:return"[object Map]";case Yi:return"[object Promise]";case Qi:return"[object Set]";case Xi:return"[object WeakMap]"}return t});var go=ui?_u:Vu,yo=Ce(co),bo=Si||function(n,t){return $n.setTimeout(n,t)},xo=Ce(ao),jo=function(n){n=cu(n,function(n){return 500===t.size&&t.clear(),n});var t=n.cache;return n}(function(n){var t=[];return 46===n.charCodeAt(0)&&t.push(""),n.replace(tn,function(n,r,e,u){ -t.push(e?u.replace(hn,"$1"):r||n)}),t}),wo=fr(function(n,t){return hu(n)?yt(n,wt(t,1,hu,true)):[]}),mo=fr(function(n,t){var r=Ve(t);return hu(r)&&(r=T),hu(n)?yt(n,wt(t,1,hu,true),ye(r,2)):[]}),Ao=fr(function(n,t){var r=Ve(t);return hu(r)&&(r=T),hu(n)?yt(n,wt(t,1,hu,true),T,r):[]}),Eo=fr(function(n){var t=c(n,Er);return t.length&&t[0]===n[0]?Wt(t):[]}),ko=fr(function(n){var t=Ve(n),r=c(n,Er);return t===Ve(r)?t=T:r.pop(),r.length&&r[0]===n[0]?Wt(r,ye(t,2)):[]}),So=fr(function(n){var t=Ve(n),r=c(n,Er);return(t=typeof t=="function"?t:T)&&r.pop(), -r.length&&r[0]===n[0]?Wt(r,T,t):[]}),Oo=fr(Ke),Io=pe(function(n,t){var r=null==n?0:n.length,e=ht(n,t);return ur(n,c(t,function(n){return Se(n,r)?+n:n}).sort(Wr)),e}),Ro=fr(function(n){return br(wt(n,1,hu,true))}),zo=fr(function(n){var t=Ve(n);return hu(t)&&(t=T),br(wt(n,1,hu,true),ye(t,2))}),Wo=fr(function(n){var t=Ve(n),t=typeof t=="function"?t:T;return br(wt(n,1,hu,true),T,t)}),Bo=fr(function(n,t){return hu(n)?yt(n,t):[]}),Lo=fr(function(n){return mr(i(n,hu))}),Uo=fr(function(n){var t=Ve(n);return hu(t)&&(t=T), -mr(i(n,hu),ye(t,2))}),Co=fr(function(n){var t=Ve(n),t=typeof t=="function"?t:T;return mr(i(n,hu),T,t)}),Do=fr(He),Mo=fr(function(n){var t=n.length,t=1=t}),of=Ut(function(){return arguments}())?Ut:function(n){return yu(n)&&oi.call(n,"callee")&&!bi.call(n,"callee")},ff=Ku.isArray,cf=Vn?k(Vn):Ct,af=zi||Vu,lf=Kn?k(Kn):Dt,sf=Gn?k(Gn):Tt,hf=Hn?k(Hn):Nt,pf=Jn?k(Jn):Pt,_f=Yn?k(Yn):Zt,vf=ee(Kt),gf=ee(function(n,t){return n<=t}),df=$r(function(n,t){ -if(ze(t)||su(t))Cr(t,Wu(t),n);else for(var r in t)oi.call(t,r)&&ot(n,r,t[r])}),yf=$r(function(n,t){Cr(t,Bu(t),n)}),bf=$r(function(n,t,r,e){Cr(t,Bu(t),n,e)}),xf=$r(function(n,t,r,e){Cr(t,Wu(t),n,e)}),jf=pe(ht),wf=fr(function(n,t){n=Qu(n);var r=-1,e=t.length,u=2--n)return t.apply(this,arguments)}},An.ary=eu,An.assign=df,An.assignIn=yf,An.assignInWith=bf,An.assignWith=xf,An.at=jf,An.before=uu,An.bind=Ho,An.bindAll=Nf,An.bindKey=Jo,An.castArray=function(){if(!arguments.length)return[];var n=arguments[0];return ff(n)?n:[n]},An.chain=Ye,An.chunk=function(n,t,r){if(t=(r?Oe(n,t,r):t===T)?1:Ui(Eu(t),0),r=null==n?0:n.length,!r||1>t)return[];for(var e=0,u=0,i=Ku(Oi(r/t));et?0:t,e)):[]},An.dropRight=function(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===T?1:Eu(t),t=e-t,hr(n,0,0>t?0:t)):[]},An.dropRightWhile=function(n,t){return n&&n.length?jr(n,ye(t,3),true,true):[]; -},An.dropWhile=function(n,t){return n&&n.length?jr(n,ye(t,3),true):[]},An.fill=function(n,t,r,e){var u=null==n?0:n.length;if(!u)return[];for(r&&typeof r!="number"&&Oe(n,t,r)&&(r=0,e=u),u=n.length,r=Eu(r),0>r&&(r=-r>u?0:u+r),e=e===T||e>u?u:Eu(e),0>e&&(e+=u),e=r>e?0:ku(e);r>>0,r?(n=Iu(n))&&(typeof t=="string"||null!=t&&!hf(t))&&(t=yr(t),!t&&Rn.test(n))?Or(M(n),0,r):n.split(t,r):[]},An.spread=function(t,r){if(typeof t!="function")throw new ti("Expected a function");return r=null==r?0:Ui(Eu(r),0), -fr(function(e){var u=e[r];return e=Or(e,0,r),u&&a(e,u),n(t,this,e)})},An.tail=function(n){var t=null==n?0:n.length;return t?hr(n,1,t):[]},An.take=function(n,t,r){return n&&n.length?(t=r||t===T?1:Eu(t),hr(n,0,0>t?0:t)):[]},An.takeRight=function(n,t,r){var e=null==n?0:n.length;return e?(t=r||t===T?1:Eu(t),t=e-t,hr(n,0>t?0:t,e)):[]},An.takeRightWhile=function(n,t){return n&&n.length?jr(n,ye(t,3),false,true):[]},An.takeWhile=function(n,t){return n&&n.length?jr(n,ye(t,3)):[]},An.tap=function(n,t){return t(n), -n},An.throttle=function(n,t,r){var e=true,u=true;if(typeof n!="function")throw new ti("Expected a function");return du(r)&&(e="leading"in r?!!r.leading:e,u="trailing"in r?!!r.trailing:u),fu(n,t,{leading:e,maxWait:t,trailing:u})},An.thru=Qe,An.toArray=mu,An.toPairs=zf,An.toPairsIn=Wf,An.toPath=function(n){return ff(n)?c(n,Me):wu(n)?[n]:Ur(jo(Iu(n)))},An.toPlainObject=Ou,An.transform=function(n,t,e){var u=ff(n),i=u||af(n)||_f(n);if(t=ye(t,4),null==e){var o=n&&n.constructor;e=i?u?new o:[]:du(n)&&_u(o)?eo(di(n)):{}; -}return(i?r:mt)(n,function(n,r,u){return t(e,n,r,u)}),e},An.unary=function(n){return eu(n,1)},An.union=Ro,An.unionBy=zo,An.unionWith=Wo,An.uniq=function(n){return n&&n.length?br(n):[]},An.uniqBy=function(n,t){return n&&n.length?br(n,ye(t,2)):[]},An.uniqWith=function(n,t){return t=typeof t=="function"?t:T,n&&n.length?br(n,T,t):[]},An.unset=function(n,t){return null==n||xr(n,t)},An.unzip=He,An.unzipWith=Je,An.update=function(n,t,r){return null==n?n:lr(n,t,kr(r)(kt(n,t)),void 0)},An.updateWith=function(n,t,r,e){ -return e=typeof e=="function"?e:T,null!=n&&(n=lr(n,t,kr(r)(kt(n,t)),e)),n},An.values=Uu,An.valuesIn=function(n){return null==n?[]:S(n,Bu(n))},An.without=Bo,An.words=Mu,An.wrap=function(n,t){return nf(kr(t),n)},An.xor=Lo,An.xorBy=Uo,An.xorWith=Co,An.zip=Do,An.zipObject=function(n,t){return Ar(n||[],t||[],ot)},An.zipObjectDeep=function(n,t){return Ar(n||[],t||[],lr)},An.zipWith=Mo,An.entries=zf,An.entriesIn=Wf,An.extend=yf,An.extendWith=bf,Nu(An,An),An.add=Qf,An.attempt=Ff,An.camelCase=Bf,An.capitalize=Cu, -An.ceil=Xf,An.clamp=function(n,t,r){return r===T&&(r=t,t=T),r!==T&&(r=Su(r),r=r===r?r:0),t!==T&&(t=Su(t),t=t===t?t:0),pt(Su(n),t,r)},An.clone=function(n){return _t(n,4)},An.cloneDeep=function(n){return _t(n,5)},An.cloneDeepWith=function(n,t){return t=typeof t=="function"?t:T,_t(n,5,t)},An.cloneWith=function(n,t){return t=typeof t=="function"?t:T,_t(n,4,t)},An.conformsTo=function(n,t){return null==t||gt(n,t,Wu(t))},An.deburr=Du,An.defaultTo=function(n,t){return null==n||n!==n?t:n},An.divide=nc,An.endsWith=function(n,t,r){ -n=Iu(n),t=yr(t);var e=n.length,e=r=r===T?e:pt(Eu(r),0,e);return r-=t.length,0<=r&&n.slice(r,e)==t},An.eq=lu,An.escape=function(n){return(n=Iu(n))&&H.test(n)?n.replace(K,nt):n},An.escapeRegExp=function(n){return(n=Iu(n))&&en.test(n)?n.replace(rn,"\\$&"):n},An.every=function(n,t,r){var e=ff(n)?u:bt;return r&&Oe(n,t,r)&&(t=T),e(n,ye(t,3))},An.find=Fo,An.findIndex=Ne,An.findKey=function(n,t){return p(n,ye(t,3),mt)},An.findLast=No,An.findLastIndex=Pe,An.findLastKey=function(n,t){return p(n,ye(t,3),At); -},An.floor=tc,An.forEach=nu,An.forEachRight=tu,An.forIn=function(n,t){return null==n?n:oo(n,ye(t,3),Bu)},An.forInRight=function(n,t){return null==n?n:fo(n,ye(t,3),Bu)},An.forOwn=function(n,t){return n&&mt(n,ye(t,3))},An.forOwnRight=function(n,t){return n&&At(n,ye(t,3))},An.get=Ru,An.gt=ef,An.gte=uf,An.has=function(n,t){return null!=n&&we(n,t,Rt)},An.hasIn=zu,An.head=qe,An.identity=$u,An.includes=function(n,t,r,e){return n=su(n)?n:Uu(n),r=r&&!e?Eu(r):0,e=n.length,0>r&&(r=Ui(e+r,0)),ju(n)?r<=e&&-1r&&(r=Ui(e+r,0)),v(n,t,r)):-1},An.inRange=function(n,t,r){return t=Au(t),r===T?(r=t,t=0):r=Au(r),n=Su(n),n>=Ci(t,r)&&n=n},An.isSet=pf,An.isString=ju,An.isSymbol=wu,An.isTypedArray=_f,An.isUndefined=function(n){return n===T},An.isWeakMap=function(n){return yu(n)&&"[object WeakMap]"==vo(n)},An.isWeakSet=function(n){return yu(n)&&"[object WeakSet]"==Ot(n)},An.join=function(n,t){return null==n?"":Bi.call(n,t)},An.kebabCase=Lf,An.last=Ve,An.lastIndexOf=function(n,t,r){var e=null==n?0:n.length;if(!e)return-1;var u=e;if(r!==T&&(u=Eu(r),u=0>u?Ui(e+u,0):Ci(u,e-1)), -t===t){for(r=u+1;r--&&n[r]!==t;);n=r}else n=_(n,d,u,true);return n},An.lowerCase=Uf,An.lowerFirst=Cf,An.lt=vf,An.lte=gf,An.max=function(n){return n&&n.length?xt(n,$u,It):T},An.maxBy=function(n,t){return n&&n.length?xt(n,ye(t,2),It):T},An.mean=function(n){return y(n,$u)},An.meanBy=function(n,t){return y(n,ye(t,2))},An.min=function(n){return n&&n.length?xt(n,$u,Kt):T},An.minBy=function(n,t){return n&&n.length?xt(n,ye(t,2),Kt):T},An.stubArray=qu,An.stubFalse=Vu,An.stubObject=function(){return{}},An.stubString=function(){ -return""},An.stubTrue=function(){return true},An.multiply=rc,An.nth=function(n,t){return n&&n.length?Qt(n,Eu(t)):T},An.noConflict=function(){return $n._===this&&($n._=si),this},An.noop=Pu,An.now=Go,An.pad=function(n,t,r){n=Iu(n);var e=(t=Eu(t))?D(n):0;return!t||e>=t?n:(t=(t-e)/2,ne(Ii(t),r)+n+ne(Oi(t),r))},An.padEnd=function(n,t,r){n=Iu(n);var e=(t=Eu(t))?D(n):0;return t&&et){var e=n;n=t,t=e}return r||n%1||t%1?(r=Ti(),Ci(n+r*(t-n+Cn("1e-"+((r+"").length-1))),t)):ir(n,t)},An.reduce=function(n,t,r){var e=ff(n)?l:j,u=3>arguments.length;return e(n,ye(t,4),r,u,uo)},An.reduceRight=function(n,t,r){var e=ff(n)?s:j,u=3>arguments.length; -return e(n,ye(t,4),r,u,io)},An.repeat=function(n,t,r){return t=(r?Oe(n,t,r):t===T)?1:Eu(t),or(Iu(n),t)},An.replace=function(){var n=arguments,t=Iu(n[0]);return 3>n.length?t:t.replace(n[1],n[2])},An.result=function(n,t,r){t=Sr(t,n);var e=-1,u=t.length;for(u||(u=1,n=T);++en||9007199254740991=i)return n;if(i=r-D(e),1>i)return e;if(r=o?Or(o,0,i).join(""):n.slice(0,i),u===T)return r+e;if(o&&(i+=r.length-i),hf(u)){if(n.slice(i).search(u)){ -var f=r;for(u.global||(u=Xu(u.source,Iu(_n.exec(u))+"g")),u.lastIndex=0;o=u.exec(f);)var c=o.index;r=r.slice(0,c===T?i:c)}}else n.indexOf(yr(u),i)!=i&&(u=r.lastIndexOf(u),-1e.__dir__?"Right":"")}),e},Un.prototype[n+"Right"]=function(t){return this.reverse()[n](t).reverse()}}),r(["filter","map","takeWhile"],function(n,t){ -var r=t+1,e=1==r||3==r;Un.prototype[n]=function(n){var t=this.clone();return t.__iteratees__.push({iteratee:ye(n,3),type:r}),t.__filtered__=t.__filtered__||e,t}}),r(["head","last"],function(n,t){var r="take"+(t?"Right":"");Un.prototype[n]=function(){return this[r](1).value()[0]}}),r(["initial","tail"],function(n,t){var r="drop"+(t?"":"Right");Un.prototype[n]=function(){return this.__filtered__?new Un(this):this[r](1)}}),Un.prototype.compact=function(){return this.filter($u)},Un.prototype.find=function(n){ -return this.filter(n).head()},Un.prototype.findLast=function(n){return this.reverse().find(n)},Un.prototype.invokeMap=fr(function(n,t){return typeof n=="function"?new Un(this):this.map(function(r){return Lt(r,n,t)})}),Un.prototype.reject=function(n){return this.filter(au(ye(n)))},Un.prototype.slice=function(n,t){n=Eu(n);var r=this;return r.__filtered__&&(0t)?new Un(r):(0>n?r=r.takeRight(-n):n&&(r=r.drop(n)),t!==T&&(t=Eu(t),r=0>t?r.dropRight(-t):r.take(t-n)),r)},Un.prototype.takeRightWhile=function(n){ -return this.reverse().takeWhile(n).reverse()},Un.prototype.toArray=function(){return this.take(4294967295)},mt(Un.prototype,function(n,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),e=/^(?:head|last)$/.test(t),u=An[e?"take"+("last"==t?"Right":""):t],i=e||/^find/.test(t);u&&(An.prototype[t]=function(){function t(n){return n=u.apply(An,a([n],f)),e&&h?n[0]:n}var o=this.__wrapped__,f=e?[1]:arguments,c=o instanceof Un,l=f[0],s=c||ff(o);s&&r&&typeof l=="function"&&1!=l.length&&(c=s=false);var h=this.__chain__,p=!!this.__actions__.length,l=i&&!h,c=c&&!p; -return!i&&s?(o=c?o:new Un(this),o=n.apply(o,f),o.__actions__.push({func:Qe,args:[t],thisArg:T}),new On(o,h)):l&&c?n.apply(this,f):(o=this.thru(t),l?e?o.value()[0]:o.value():o)})}),r("pop push shift sort splice unshift".split(" "),function(n){var t=ri[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|shift)$/.test(n);An.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){var u=this.value();return t.apply(ff(u)?u:[],n)}return this[r](function(r){return t.apply(ff(r)?r:[],n)}); -}}),mt(Un.prototype,function(n,t){var r=An[t];if(r){var e=r.name+"";oi.call(Gi,e)||(Gi[e]=[]),Gi[e].push({name:t,func:r})}}),Gi[Jr(T,2).name]=[{name:"wrapper",func:T}],Un.prototype.clone=function(){var n=new Un(this.__wrapped__);return n.__actions__=Ur(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=Ur(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=Ur(this.__views__),n},Un.prototype.reverse=function(){if(this.__filtered__){var n=new Un(this); -n.__dir__=-1,n.__filtered__=true}else n=this.clone(),n.__dir__*=-1;return n},Un.prototype.value=function(){var n,t=this.__wrapped__.value(),r=this.__dir__,e=ff(t),u=0>r,i=e?t.length:0;n=i;for(var o=this.__views__,f=0,c=-1,a=o.length;++c=this.__values__.length;return{done:n,value:n?T:this.__values__[this.__index__++]}},An.prototype.plant=function(n){ -for(var t,r=this;r instanceof En;){var e=Fe(r);e.__index__=0,e.__values__=T,t?u.__wrapped__=e:t=e;var u=e,r=r.__wrapped__}return u.__wrapped__=n,t},An.prototype.reverse=function(){var n=this.__wrapped__;return n instanceof Un?(this.__actions__.length&&(n=new Un(this)),n=n.reverse(),n.__actions__.push({func:Qe,args:[Ge],thisArg:T}),new On(n,this.__chain__)):this.thru(Ge)},An.prototype.toJSON=An.prototype.valueOf=An.prototype.value=function(){return wr(this.__wrapped__,this.__actions__)},An.prototype.first=An.prototype.head, -wi&&(An.prototype[wi]=Xe),An}();typeof define=="function"&&typeof define.amd=="object"&&define.amd?($n._=rt, define(function(){return rt})):Nn?((Nn.exports=rt)._=rt,Fn._=rt):$n._=rt}).call(this); \ No newline at end of file +(function(){function n(n,t,r){switch(r.length){case 0:return n.call(t);case 1:return n.call(t,r[0]);case 2:return n.call(t,r[0],r[1]);case 3:return n.call(t,r[0],r[1],r[2])}return n.apply(t,r)}function t(n,t,r,e){for(var u=-1,i=null==n?0:n.length;++u-1}function f(n,t,r){for(var e=-1,u=null==n?0:n.length;++e-1;);return r}function L(n,t){for(var r=n.length;r--&&y(t,n[r],0)>-1;);return r}function C(n,t){for(var r=n.length,e=0;r--;)n[r]===t&&++e; +return e}function U(n){return"\\"+Yr[n]}function B(n,t){return null==n?X:n[t]}function T(n){return Nr.test(n)}function $(n){return Pr.test(n)}function D(n){for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r}function M(n){var t=-1,r=Array(n.size);return n.forEach(function(n,e){r[++t]=[e,n]}),r}function F(n,t){return function(r){return n(t(r))}}function N(n,t){for(var r=-1,e=n.length,u=0,i=[];++r>>1,$n=[["ary",mn],["bind",_n],["bindKey",vn],["curry",yn],["curryRight",dn],["flip",jn],["partial",bn],["partialRight",wn],["rearg",xn]],Dn="[object Arguments]",Mn="[object Array]",Fn="[object AsyncFunction]",Nn="[object Boolean]",Pn="[object Date]",qn="[object DOMException]",Zn="[object Error]",Kn="[object Function]",Vn="[object GeneratorFunction]",Gn="[object Map]",Hn="[object Number]",Jn="[object Null]",Yn="[object Object]",Qn="[object Promise]",Xn="[object Proxy]",nt="[object RegExp]",tt="[object Set]",rt="[object String]",et="[object Symbol]",ut="[object Undefined]",it="[object WeakMap]",ot="[object WeakSet]",ft="[object ArrayBuffer]",ct="[object DataView]",at="[object Float32Array]",lt="[object Float64Array]",st="[object Int8Array]",ht="[object Int16Array]",pt="[object Int32Array]",_t="[object Uint8Array]",vt="[object Uint8ClampedArray]",gt="[object Uint16Array]",yt="[object Uint32Array]",dt=/\b__p \+= '';/g,bt=/\b(__p \+=) '' \+/g,wt=/(__e\(.*?\)|\b__t\)) \+\n'';/g,mt=/&(?:amp|lt|gt|quot|#39);/g,xt=/[&<>"']/g,jt=RegExp(mt.source),At=RegExp(xt.source),kt=/<%-([\s\S]+?)%>/g,Ot=/<%([\s\S]+?)%>/g,It=/<%=([\s\S]+?)%>/g,Rt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,zt=/^\w*$/,Et=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,St=/[\\^$.*+?()[\]{}|]/g,Wt=RegExp(St.source),Lt=/^\s+/,Ct=/\s/,Ut=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Bt=/\{\n\/\* \[wrapped with (.+)\] \*/,Tt=/,? & /,$t=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Dt=/[()=,{}\[\]\/\s]/,Mt=/\\(\\)?/g,Ft=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Nt=/\w*$/,Pt=/^[-+]0x[0-9a-f]+$/i,qt=/^0b[01]+$/i,Zt=/^\[object .+?Constructor\]$/,Kt=/^0o[0-7]+$/i,Vt=/^(?:0|[1-9]\d*)$/,Gt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Ht=/($^)/,Jt=/['\n\r\u2028\u2029\\]/g,Yt="\\ud800-\\udfff",Qt="\\u0300-\\u036f",Xt="\\ufe20-\\ufe2f",nr="\\u20d0-\\u20ff",tr=Qt+Xt+nr,rr="\\u2700-\\u27bf",er="a-z\\xdf-\\xf6\\xf8-\\xff",ur="\\xac\\xb1\\xd7\\xf7",ir="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",or="\\u2000-\\u206f",fr=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",cr="A-Z\\xc0-\\xd6\\xd8-\\xde",ar="\\ufe0e\\ufe0f",lr=ur+ir+or+fr,sr="['\u2019]",hr="["+Yt+"]",pr="["+lr+"]",_r="["+tr+"]",vr="\\d+",gr="["+rr+"]",yr="["+er+"]",dr="[^"+Yt+lr+vr+rr+er+cr+"]",br="\\ud83c[\\udffb-\\udfff]",wr="(?:"+_r+"|"+br+")",mr="[^"+Yt+"]",xr="(?:\\ud83c[\\udde6-\\uddff]){2}",jr="[\\ud800-\\udbff][\\udc00-\\udfff]",Ar="["+cr+"]",kr="\\u200d",Or="(?:"+yr+"|"+dr+")",Ir="(?:"+Ar+"|"+dr+")",Rr="(?:"+sr+"(?:d|ll|m|re|s|t|ve))?",zr="(?:"+sr+"(?:D|LL|M|RE|S|T|VE))?",Er=wr+"?",Sr="["+ar+"]?",Wr="(?:"+kr+"(?:"+[mr,xr,jr].join("|")+")"+Sr+Er+")*",Lr="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Cr="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Ur=Sr+Er+Wr,Br="(?:"+[gr,xr,jr].join("|")+")"+Ur,Tr="(?:"+[mr+_r+"?",_r,xr,jr,hr].join("|")+")",$r=RegExp(sr,"g"),Dr=RegExp(_r,"g"),Mr=RegExp(br+"(?="+br+")|"+Tr+Ur,"g"),Fr=RegExp([Ar+"?"+yr+"+"+Rr+"(?="+[pr,Ar,"$"].join("|")+")",Ir+"+"+zr+"(?="+[pr,Ar+Or,"$"].join("|")+")",Ar+"?"+Or+"+"+Rr,Ar+"+"+zr,Cr,Lr,vr,Br].join("|"),"g"),Nr=RegExp("["+kr+Yt+tr+ar+"]"),Pr=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,qr=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Zr=-1,Kr={}; +Kr[at]=Kr[lt]=Kr[st]=Kr[ht]=Kr[pt]=Kr[_t]=Kr[vt]=Kr[gt]=Kr[yt]=!0,Kr[Dn]=Kr[Mn]=Kr[ft]=Kr[Nn]=Kr[ct]=Kr[Pn]=Kr[Zn]=Kr[Kn]=Kr[Gn]=Kr[Hn]=Kr[Yn]=Kr[nt]=Kr[tt]=Kr[rt]=Kr[it]=!1;var Vr={};Vr[Dn]=Vr[Mn]=Vr[ft]=Vr[ct]=Vr[Nn]=Vr[Pn]=Vr[at]=Vr[lt]=Vr[st]=Vr[ht]=Vr[pt]=Vr[Gn]=Vr[Hn]=Vr[Yn]=Vr[nt]=Vr[tt]=Vr[rt]=Vr[et]=Vr[_t]=Vr[vt]=Vr[gt]=Vr[yt]=!0,Vr[Zn]=Vr[Kn]=Vr[it]=!1;var Gr={"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a", +"\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae", +"\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g", +"\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O", +"\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w", +"\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"},Hr={"&":"&","<":"<",">":">",'"':""","'":"'"},Jr={"&":"&","<":"<",">":">",""":'"',"'":"'"},Yr={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Qr=parseFloat,Xr=parseInt,ne="object"==typeof global&&global&&global.Object===Object&&global,te="object"==typeof self&&self&&self.Object===Object&&self,re=ne||te||Function("return this")(),ee="object"==typeof exports&&exports&&!exports.nodeType&&exports,ue=ee&&"object"==typeof module&&module&&!module.nodeType&&module,ie=ue&&ue.exports===ee,oe=ie&&ne.process,fe=function(){ +try{var n=ue&&ue.require&&ue.require("util").types;return n?n:oe&&oe.binding&&oe.binding("util")}catch(n){}}(),ce=fe&&fe.isArrayBuffer,ae=fe&&fe.isDate,le=fe&&fe.isMap,se=fe&&fe.isRegExp,he=fe&&fe.isSet,pe=fe&&fe.isTypedArray,_e=m("length"),ve=x(Gr),ge=x(Hr),ye=x(Jr),de=function p(x){function Z(n){if(cc(n)&&!bh(n)&&!(n instanceof Ct)){if(n instanceof Y)return n;if(bl.call(n,"__wrapped__"))return eo(n)}return new Y(n)}function J(){}function Y(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t, +this.__index__=0,this.__values__=X}function Ct(n){this.__wrapped__=n,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=Un,this.__views__=[]}function $t(){var n=new Ct(this.__wrapped__);return n.__actions__=Tu(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=Tu(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=Tu(this.__views__),n}function Yt(){if(this.__filtered__){var n=new Ct(this);n.__dir__=-1, +n.__filtered__=!0}else n=this.clone(),n.__dir__*=-1;return n}function Qt(){var n=this.__wrapped__.value(),t=this.__dir__,r=bh(n),e=t<0,u=r?n.length:0,i=Oi(0,u,this.__views__),o=i.start,f=i.end,c=f-o,a=e?f:o-1,l=this.__iteratees__,s=l.length,h=0,p=Hl(c,this.__takeCount__);if(!r||!e&&u==c&&p==c)return wu(n,this.__actions__);var _=[];n:for(;c--&&h-1}function lr(n,t){var r=this.__data__,e=Wr(r,n);return e<0?(++this.size,r.push([n,t])):r[e][1]=t,this}function sr(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t=t?n:t)),n}function Fr(n,t,e,u,i,o){var f,c=t&an,a=t&ln,l=t&sn;if(e&&(f=i?e(n,u,i,o):e(n)),f!==X)return f;if(!fc(n))return n;var s=bh(n);if(s){if(f=zi(n),!c)return Tu(n,f)}else{var h=zs(n),p=h==Kn||h==Vn;if(mh(n))return Iu(n,c);if(h==Yn||h==Dn||p&&!i){if(f=a||p?{}:Ei(n),!c)return a?Mu(n,Ur(f,n)):Du(n,Cr(f,n))}else{if(!Vr[h])return i?n:{};f=Si(n,h,c)}}o||(o=new wr);var _=o.get(n);if(_)return _;o.set(n,f),kh(n)?n.forEach(function(r){f.add(Fr(r,t,e,r,n,o))}):jh(n)&&n.forEach(function(r,u){ +f.set(u,Fr(r,t,e,u,n,o))});var v=l?a?di:yi:a?qc:Pc,g=s?X:v(n);return r(g||n,function(r,u){g&&(u=r,r=n[u]),Sr(f,u,Fr(r,t,e,u,n,o))}),f}function Nr(n){var t=Pc(n);return function(r){return Pr(r,n,t)}}function Pr(n,t,r){var e=r.length;if(null==n)return!e;for(n=ll(n);e--;){var u=r[e],i=t[u],o=n[u];if(o===X&&!(u in n)||!i(o))return!1}return!0}function Gr(n,t,r){if("function"!=typeof n)throw new pl(en);return Ws(function(){n.apply(X,r)},t)}function Hr(n,t,r,e){var u=-1,i=o,a=!0,l=n.length,s=[],h=t.length; +if(!l)return s;r&&(t=c(t,z(r))),e?(i=f,a=!1):t.length>=tn&&(i=S,a=!1,t=new yr(t));n:for(;++uu?0:u+r), +e=e===X||e>u?u:kc(e),e<0&&(e+=u),e=r>e?0:Oc(e);r0&&r(f)?t>1?ee(f,t-1,r,e,u):a(u,f):e||(u[u.length]=f)}return u}function ue(n,t){return n&&bs(n,t,Pc)}function oe(n,t){return n&&ws(n,t,Pc)}function fe(n,t){return i(t,function(t){return uc(n[t])})}function _e(n,t){t=ku(t,n);for(var r=0,e=t.length;null!=n&&rt}function xe(n,t){return null!=n&&bl.call(n,t)}function je(n,t){return null!=n&&t in ll(n)}function Ae(n,t,r){return n>=Hl(t,r)&&n=120&&p.length>=120)?new yr(a&&p):X}p=n[0]; +var _=-1,v=l[0];n:for(;++_-1;)f!==n&&Ll.call(f,a,1),Ll.call(n,a,1);return n}function nu(n,t){for(var r=n?t.length:0,e=r-1;r--;){ +var u=t[r];if(r==e||u!==i){var i=u;Ci(u)?Ll.call(n,u,1):yu(n,u)}}return n}function tu(n,t){return n+Nl(Ql()*(t-n+1))}function ru(n,t,r,e){for(var u=-1,i=Gl(Fl((t-n)/(r||1)),0),o=il(i);i--;)o[e?i:++u]=n,n+=r;return o}function eu(n,t){var r="";if(!n||t<1||t>Wn)return r;do t%2&&(r+=n),t=Nl(t/2),t&&(n+=n);while(t);return r}function uu(n,t){return Ls(Vi(n,t,La),n+"")}function iu(n){return Ir(ra(n))}function ou(n,t){var r=ra(n);return Xi(r,Mr(t,0,r.length))}function fu(n,t,r,e){if(!fc(n))return n;t=ku(t,n); +for(var u=-1,i=t.length,o=i-1,f=n;null!=f&&++uu?0:u+t),r=r>u?u:r,r<0&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0;for(var i=il(u);++e>>1,o=n[i];null!==o&&!bc(o)&&(r?o<=t:o=tn){var s=t?null:ks(n);if(s)return P(s);c=!1,u=S,l=new yr}else l=t?[]:a;n:for(;++e=e?n:au(n,t,r)}function Iu(n,t){if(t)return n.slice();var r=n.length,e=zl?zl(r):new n.constructor(r); +return n.copy(e),e}function Ru(n){var t=new n.constructor(n.byteLength);return new Rl(t).set(new Rl(n)),t}function zu(n,t){return new n.constructor(t?Ru(n.buffer):n.buffer,n.byteOffset,n.byteLength)}function Eu(n){var t=new n.constructor(n.source,Nt.exec(n));return t.lastIndex=n.lastIndex,t}function Su(n){return _s?ll(_s.call(n)):{}}function Wu(n,t){return new n.constructor(t?Ru(n.buffer):n.buffer,n.byteOffset,n.length)}function Lu(n,t){if(n!==t){var r=n!==X,e=null===n,u=n===n,i=bc(n),o=t!==X,f=null===t,c=t===t,a=bc(t); +if(!f&&!a&&!i&&n>t||i&&o&&c&&!f&&!a||e&&o&&c||!r&&c||!u)return 1;if(!e&&!i&&!a&&n=f)return c;return c*("desc"==r[e]?-1:1)}}return n.index-t.index}function Uu(n,t,r,e){for(var u=-1,i=n.length,o=r.length,f=-1,c=t.length,a=Gl(i-o,0),l=il(c+a),s=!e;++f1?r[u-1]:X,o=u>2?r[2]:X;for(i=n.length>3&&"function"==typeof i?(u--,i):X,o&&Ui(r[0],r[1],o)&&(i=u<3?X:i,u=1),t=ll(t);++e-1?u[i?t[o]:o]:X}}function Yu(n){return gi(function(t){var r=t.length,e=r,u=Y.prototype.thru;for(n&&t.reverse();e--;){var i=t[e];if("function"!=typeof i)throw new pl(en);if(u&&!o&&"wrapper"==bi(i))var o=new Y([],!0)}for(e=o?e:r;++e1&&d.reverse(),s&&cf))return!1;var a=i.get(n),l=i.get(t);if(a&&l)return a==t&&l==n;var s=-1,p=!0,_=r&pn?new yr:X;for(i.set(n,t),i.set(t,n);++s1?"& ":"")+t[e],t=t.join(r>2?", ":" "),n.replace(Ut,"{\n/* [wrapped with "+t+"] */\n")}function Li(n){return bh(n)||dh(n)||!!(Cl&&n&&n[Cl])}function Ci(n,t){var r=typeof n; +return t=null==t?Wn:t,!!t&&("number"==r||"symbol"!=r&&Vt.test(n))&&n>-1&&n%1==0&&n0){if(++t>=On)return arguments[0]}else t=0; +return n.apply(X,arguments)}}function Xi(n,t){var r=-1,e=n.length,u=e-1;for(t=t===X?e:t;++r=this.__values__.length;return{done:n,value:n?X:this.__values__[this.__index__++]}}function uf(){return this}function of(n){for(var t,r=this;r instanceof J;){var e=eo(r);e.__index__=0,e.__values__=X,t?u.__wrapped__=e:t=e;var u=e;r=r.__wrapped__}return u.__wrapped__=n,t}function ff(){var n=this.__wrapped__;if(n instanceof Ct){var t=n;return this.__actions__.length&&(t=new Ct(this)),t=t.reverse(),t.__actions__.push({func:nf,args:[Eo],thisArg:X}),new Y(t,this.__chain__)}return this.thru(Eo); +}function cf(){return wu(this.__wrapped__,this.__actions__)}function af(n,t,r){var e=bh(n)?u:Jr;return r&&Ui(n,t,r)&&(t=X),e(n,mi(t,3))}function lf(n,t){return(bh(n)?i:te)(n,mi(t,3))}function sf(n,t){return ee(yf(n,t),1)}function hf(n,t){return ee(yf(n,t),Sn)}function pf(n,t,r){return r=r===X?1:kc(r),ee(yf(n,t),r)}function _f(n,t){return(bh(n)?r:ys)(n,mi(t,3))}function vf(n,t){return(bh(n)?e:ds)(n,mi(t,3))}function gf(n,t,r,e){n=Hf(n)?n:ra(n),r=r&&!e?kc(r):0;var u=n.length;return r<0&&(r=Gl(u+r,0)), +dc(n)?r<=u&&n.indexOf(t,r)>-1:!!u&&y(n,t,r)>-1}function yf(n,t){return(bh(n)?c:Pe)(n,mi(t,3))}function df(n,t,r,e){return null==n?[]:(bh(t)||(t=null==t?[]:[t]),r=e?X:r,bh(r)||(r=null==r?[]:[r]),He(n,t,r))}function bf(n,t,r){var e=bh(n)?l:j,u=arguments.length<3;return e(n,mi(t,4),r,u,ys)}function wf(n,t,r){var e=bh(n)?s:j,u=arguments.length<3;return e(n,mi(t,4),r,u,ds)}function mf(n,t){return(bh(n)?i:te)(n,Uf(mi(t,3)))}function xf(n){return(bh(n)?Ir:iu)(n)}function jf(n,t,r){return t=(r?Ui(n,t,r):t===X)?1:kc(t), +(bh(n)?Rr:ou)(n,t)}function Af(n){return(bh(n)?zr:cu)(n)}function kf(n){if(null==n)return 0;if(Hf(n))return dc(n)?V(n):n.length;var t=zs(n);return t==Gn||t==tt?n.size:Me(n).length}function Of(n,t,r){var e=bh(n)?h:lu;return r&&Ui(n,t,r)&&(t=X),e(n,mi(t,3))}function If(n,t){if("function"!=typeof t)throw new pl(en);return n=kc(n),function(){if(--n<1)return t.apply(this,arguments)}}function Rf(n,t,r){return t=r?X:t,t=n&&null==t?n.length:t,ai(n,mn,X,X,X,X,t)}function zf(n,t){var r;if("function"!=typeof t)throw new pl(en); +return n=kc(n),function(){return--n>0&&(r=t.apply(this,arguments)),n<=1&&(t=X),r}}function Ef(n,t,r){t=r?X:t;var e=ai(n,yn,X,X,X,X,X,t);return e.placeholder=Ef.placeholder,e}function Sf(n,t,r){t=r?X:t;var e=ai(n,dn,X,X,X,X,X,t);return e.placeholder=Sf.placeholder,e}function Wf(n,t,r){function e(t){var r=h,e=p;return h=p=X,d=t,v=n.apply(e,r)}function u(n){return d=n,g=Ws(f,t),b?e(n):v}function i(n){var r=n-y,e=n-d,u=t-r;return w?Hl(u,_-e):u}function o(n){var r=n-y,e=n-d;return y===X||r>=t||r<0||w&&e>=_; +}function f(){var n=fh();return o(n)?c(n):(g=Ws(f,i(n)),X)}function c(n){return g=X,m&&h?e(n):(h=p=X,v)}function a(){g!==X&&As(g),d=0,h=y=p=g=X}function l(){return g===X?v:c(fh())}function s(){var n=fh(),r=o(n);if(h=arguments,p=this,y=n,r){if(g===X)return u(y);if(w)return As(g),g=Ws(f,t),e(y)}return g===X&&(g=Ws(f,t)),v}var h,p,_,v,g,y,d=0,b=!1,w=!1,m=!0;if("function"!=typeof n)throw new pl(en);return t=Ic(t)||0,fc(r)&&(b=!!r.leading,w="maxWait"in r,_=w?Gl(Ic(r.maxWait)||0,t):_,m="trailing"in r?!!r.trailing:m), +s.cancel=a,s.flush=l,s}function Lf(n){return ai(n,jn)}function Cf(n,t){if("function"!=typeof n||null!=t&&"function"!=typeof t)throw new pl(en);var r=function(){var e=arguments,u=t?t.apply(this,e):e[0],i=r.cache;if(i.has(u))return i.get(u);var o=n.apply(this,e);return r.cache=i.set(u,o)||i,o};return r.cache=new(Cf.Cache||sr),r}function Uf(n){if("function"!=typeof n)throw new pl(en);return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2: +return!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2])}return!n.apply(this,t)}}function Bf(n){return zf(2,n)}function Tf(n,t){if("function"!=typeof n)throw new pl(en);return t=t===X?t:kc(t),uu(n,t)}function $f(t,r){if("function"!=typeof t)throw new pl(en);return r=null==r?0:Gl(kc(r),0),uu(function(e){var u=e[r],i=Ou(e,0,r);return u&&a(i,u),n(t,this,i)})}function Df(n,t,r){var e=!0,u=!0;if("function"!=typeof n)throw new pl(en);return fc(r)&&(e="leading"in r?!!r.leading:e,u="trailing"in r?!!r.trailing:u), +Wf(n,t,{leading:e,maxWait:t,trailing:u})}function Mf(n){return Rf(n,1)}function Ff(n,t){return ph(Au(t),n)}function Nf(){if(!arguments.length)return[];var n=arguments[0];return bh(n)?n:[n]}function Pf(n){return Fr(n,sn)}function qf(n,t){return t="function"==typeof t?t:X,Fr(n,sn,t)}function Zf(n){return Fr(n,an|sn)}function Kf(n,t){return t="function"==typeof t?t:X,Fr(n,an|sn,t)}function Vf(n,t){return null==t||Pr(n,t,Pc(t))}function Gf(n,t){return n===t||n!==n&&t!==t}function Hf(n){return null!=n&&oc(n.length)&&!uc(n); +}function Jf(n){return cc(n)&&Hf(n)}function Yf(n){return n===!0||n===!1||cc(n)&&we(n)==Nn}function Qf(n){return cc(n)&&1===n.nodeType&&!gc(n)}function Xf(n){if(null==n)return!0;if(Hf(n)&&(bh(n)||"string"==typeof n||"function"==typeof n.splice||mh(n)||Oh(n)||dh(n)))return!n.length;var t=zs(n);if(t==Gn||t==tt)return!n.size;if(Mi(n))return!Me(n).length;for(var r in n)if(bl.call(n,r))return!1;return!0}function nc(n,t){return Se(n,t)}function tc(n,t,r){r="function"==typeof r?r:X;var e=r?r(n,t):X;return e===X?Se(n,t,X,r):!!e; +}function rc(n){if(!cc(n))return!1;var t=we(n);return t==Zn||t==qn||"string"==typeof n.message&&"string"==typeof n.name&&!gc(n)}function ec(n){return"number"==typeof n&&Zl(n)}function uc(n){if(!fc(n))return!1;var t=we(n);return t==Kn||t==Vn||t==Fn||t==Xn}function ic(n){return"number"==typeof n&&n==kc(n)}function oc(n){return"number"==typeof n&&n>-1&&n%1==0&&n<=Wn}function fc(n){var t=typeof n;return null!=n&&("object"==t||"function"==t)}function cc(n){return null!=n&&"object"==typeof n}function ac(n,t){ +return n===t||Ce(n,t,ji(t))}function lc(n,t,r){return r="function"==typeof r?r:X,Ce(n,t,ji(t),r)}function sc(n){return vc(n)&&n!=+n}function hc(n){if(Es(n))throw new fl(rn);return Ue(n)}function pc(n){return null===n}function _c(n){return null==n}function vc(n){return"number"==typeof n||cc(n)&&we(n)==Hn}function gc(n){if(!cc(n)||we(n)!=Yn)return!1;var t=El(n);if(null===t)return!0;var r=bl.call(t,"constructor")&&t.constructor;return"function"==typeof r&&r instanceof r&&dl.call(r)==jl}function yc(n){ +return ic(n)&&n>=-Wn&&n<=Wn}function dc(n){return"string"==typeof n||!bh(n)&&cc(n)&&we(n)==rt}function bc(n){return"symbol"==typeof n||cc(n)&&we(n)==et}function wc(n){return n===X}function mc(n){return cc(n)&&zs(n)==it}function xc(n){return cc(n)&&we(n)==ot}function jc(n){if(!n)return[];if(Hf(n))return dc(n)?G(n):Tu(n);if(Ul&&n[Ul])return D(n[Ul]());var t=zs(n);return(t==Gn?M:t==tt?P:ra)(n)}function Ac(n){if(!n)return 0===n?n:0;if(n=Ic(n),n===Sn||n===-Sn){return(n<0?-1:1)*Ln}return n===n?n:0}function kc(n){ +var t=Ac(n),r=t%1;return t===t?r?t-r:t:0}function Oc(n){return n?Mr(kc(n),0,Un):0}function Ic(n){if("number"==typeof n)return n;if(bc(n))return Cn;if(fc(n)){var t="function"==typeof n.valueOf?n.valueOf():n;n=fc(t)?t+"":t}if("string"!=typeof n)return 0===n?n:+n;n=R(n);var r=qt.test(n);return r||Kt.test(n)?Xr(n.slice(2),r?2:8):Pt.test(n)?Cn:+n}function Rc(n){return $u(n,qc(n))}function zc(n){return n?Mr(kc(n),-Wn,Wn):0===n?n:0}function Ec(n){return null==n?"":vu(n)}function Sc(n,t){var r=gs(n);return null==t?r:Cr(r,t); +}function Wc(n,t){return v(n,mi(t,3),ue)}function Lc(n,t){return v(n,mi(t,3),oe)}function Cc(n,t){return null==n?n:bs(n,mi(t,3),qc)}function Uc(n,t){return null==n?n:ws(n,mi(t,3),qc)}function Bc(n,t){return n&&ue(n,mi(t,3))}function Tc(n,t){return n&&oe(n,mi(t,3))}function $c(n){return null==n?[]:fe(n,Pc(n))}function Dc(n){return null==n?[]:fe(n,qc(n))}function Mc(n,t,r){var e=null==n?X:_e(n,t);return e===X?r:e}function Fc(n,t){return null!=n&&Ri(n,t,xe)}function Nc(n,t){return null!=n&&Ri(n,t,je); +}function Pc(n){return Hf(n)?Or(n):Me(n)}function qc(n){return Hf(n)?Or(n,!0):Fe(n)}function Zc(n,t){var r={};return t=mi(t,3),ue(n,function(n,e,u){Br(r,t(n,e,u),n)}),r}function Kc(n,t){var r={};return t=mi(t,3),ue(n,function(n,e,u){Br(r,e,t(n,e,u))}),r}function Vc(n,t){return Gc(n,Uf(mi(t)))}function Gc(n,t){if(null==n)return{};var r=c(di(n),function(n){return[n]});return t=mi(t),Ye(n,r,function(n,r){return t(n,r[0])})}function Hc(n,t,r){t=ku(t,n);var e=-1,u=t.length;for(u||(u=1,n=X);++et){ +var e=n;n=t,t=e}if(r||n%1||t%1){var u=Ql();return Hl(n+u*(t-n+Qr("1e-"+((u+"").length-1))),t)}return tu(n,t)}function fa(n){return Qh(Ec(n).toLowerCase())}function ca(n){return n=Ec(n),n&&n.replace(Gt,ve).replace(Dr,"")}function aa(n,t,r){n=Ec(n),t=vu(t);var e=n.length;r=r===X?e:Mr(kc(r),0,e);var u=r;return r-=t.length,r>=0&&n.slice(r,u)==t}function la(n){return n=Ec(n),n&&At.test(n)?n.replace(xt,ge):n}function sa(n){return n=Ec(n),n&&Wt.test(n)?n.replace(St,"\\$&"):n}function ha(n,t,r){n=Ec(n),t=kc(t); +var e=t?V(n):0;if(!t||e>=t)return n;var u=(t-e)/2;return ri(Nl(u),r)+n+ri(Fl(u),r)}function pa(n,t,r){n=Ec(n),t=kc(t);var e=t?V(n):0;return t&&e>>0)?(n=Ec(n),n&&("string"==typeof t||null!=t&&!Ah(t))&&(t=vu(t),!t&&T(n))?Ou(G(n),0,r):n.split(t,r)):[]}function ba(n,t,r){return n=Ec(n),r=null==r?0:Mr(kc(r),0,n.length),t=vu(t),n.slice(r,r+t.length)==t}function wa(n,t,r){var e=Z.templateSettings;r&&Ui(n,t,r)&&(t=X),n=Ec(n),t=Sh({},t,e,li);var u,i,o=Sh({},t.imports,e.imports,li),f=Pc(o),c=E(o,f),a=0,l=t.interpolate||Ht,s="__p += '",h=sl((t.escape||Ht).source+"|"+l.source+"|"+(l===It?Ft:Ht).source+"|"+(t.evaluate||Ht).source+"|$","g"),p="//# sourceURL="+(bl.call(t,"sourceURL")?(t.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Zr+"]")+"\n"; +n.replace(h,function(t,r,e,o,f,c){return e||(e=o),s+=n.slice(a,c).replace(Jt,U),r&&(u=!0,s+="' +\n__e("+r+") +\n'"),f&&(i=!0,s+="';\n"+f+";\n__p += '"),e&&(s+="' +\n((__t = ("+e+")) == null ? '' : __t) +\n'"),a=c+t.length,t}),s+="';\n";var _=bl.call(t,"variable")&&t.variable;if(_){if(Dt.test(_))throw new fl(un)}else s="with (obj) {\n"+s+"\n}\n";s=(i?s.replace(dt,""):s).replace(bt,"$1").replace(wt,"$1;"),s="function("+(_||"obj")+") {\n"+(_?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(u?", __e = _.escape":"")+(i?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+s+"return __p\n}"; +var v=Xh(function(){return cl(f,p+"return "+s).apply(X,c)});if(v.source=s,rc(v))throw v;return v}function ma(n){return Ec(n).toLowerCase()}function xa(n){return Ec(n).toUpperCase()}function ja(n,t,r){if(n=Ec(n),n&&(r||t===X))return R(n);if(!n||!(t=vu(t)))return n;var e=G(n),u=G(t);return Ou(e,W(e,u),L(e,u)+1).join("")}function Aa(n,t,r){if(n=Ec(n),n&&(r||t===X))return n.slice(0,H(n)+1);if(!n||!(t=vu(t)))return n;var e=G(n);return Ou(e,0,L(e,G(t))+1).join("")}function ka(n,t,r){if(n=Ec(n),n&&(r||t===X))return n.replace(Lt,""); +if(!n||!(t=vu(t)))return n;var e=G(n);return Ou(e,W(e,G(t))).join("")}function Oa(n,t){var r=An,e=kn;if(fc(t)){var u="separator"in t?t.separator:u;r="length"in t?kc(t.length):r,e="omission"in t?vu(t.omission):e}n=Ec(n);var i=n.length;if(T(n)){var o=G(n);i=o.length}if(r>=i)return n;var f=r-V(e);if(f<1)return e;var c=o?Ou(o,0,f).join(""):n.slice(0,f);if(u===X)return c+e;if(o&&(f+=c.length-f),Ah(u)){if(n.slice(f).search(u)){var a,l=c;for(u.global||(u=sl(u.source,Ec(Nt.exec(u))+"g")),u.lastIndex=0;a=u.exec(l);)var s=a.index; +c=c.slice(0,s===X?f:s)}}else if(n.indexOf(vu(u),f)!=f){var h=c.lastIndexOf(u);h>-1&&(c=c.slice(0,h))}return c+e}function Ia(n){return n=Ec(n),n&&jt.test(n)?n.replace(mt,ye):n}function Ra(n,t,r){return n=Ec(n),t=r?X:t,t===X?$(n)?Q(n):_(n):n.match(t)||[]}function za(t){var r=null==t?0:t.length,e=mi();return t=r?c(t,function(n){if("function"!=typeof n[1])throw new pl(en);return[e(n[0]),n[1]]}):[],uu(function(e){for(var u=-1;++uWn)return[];var r=Un,e=Hl(n,Un);t=mi(t),n-=Un;for(var u=O(e,t);++r1?n[t-1]:X;return r="function"==typeof r?(n.pop(), +r):X,Ho(n,r)}),Qs=gi(function(n){var t=n.length,r=t?n[0]:0,e=this.__wrapped__,u=function(t){return Tr(t,n)};return!(t>1||this.__actions__.length)&&e instanceof Ct&&Ci(r)?(e=e.slice(r,+r+(t?1:0)),e.__actions__.push({func:nf,args:[u],thisArg:X}),new Y(e,this.__chain__).thru(function(n){return t&&!n.length&&n.push(X),n})):this.thru(u)}),Xs=Fu(function(n,t,r){bl.call(n,r)?++n[r]:Br(n,r,1)}),nh=Ju(ho),th=Ju(po),rh=Fu(function(n,t,r){bl.call(n,r)?n[r].push(t):Br(n,r,[t])}),eh=uu(function(t,r,e){var u=-1,i="function"==typeof r,o=Hf(t)?il(t.length):[]; +return ys(t,function(t){o[++u]=i?n(r,t,e):Ie(t,r,e)}),o}),uh=Fu(function(n,t,r){Br(n,r,t)}),ih=Fu(function(n,t,r){n[r?0:1].push(t)},function(){return[[],[]]}),oh=uu(function(n,t){if(null==n)return[];var r=t.length;return r>1&&Ui(n,t[0],t[1])?t=[]:r>2&&Ui(t[0],t[1],t[2])&&(t=[t[0]]),He(n,ee(t,1),[])}),fh=Dl||function(){return re.Date.now()},ch=uu(function(n,t,r){var e=_n;if(r.length){var u=N(r,wi(ch));e|=bn}return ai(n,e,t,r,u)}),ah=uu(function(n,t,r){var e=_n|vn;if(r.length){var u=N(r,wi(ah));e|=bn; +}return ai(t,e,n,r,u)}),lh=uu(function(n,t){return Gr(n,1,t)}),sh=uu(function(n,t,r){return Gr(n,Ic(t)||0,r)});Cf.Cache=sr;var hh=js(function(t,r){r=1==r.length&&bh(r[0])?c(r[0],z(mi())):c(ee(r,1),z(mi()));var e=r.length;return uu(function(u){for(var i=-1,o=Hl(u.length,e);++i=t}),dh=Re(function(){return arguments}())?Re:function(n){return cc(n)&&bl.call(n,"callee")&&!Wl.call(n,"callee")},bh=il.isArray,wh=ce?z(ce):ze,mh=ql||qa,xh=ae?z(ae):Ee,jh=le?z(le):Le,Ah=se?z(se):Be,kh=he?z(he):Te,Oh=pe?z(pe):$e,Ih=ii(Ne),Rh=ii(function(n,t){return n<=t}),zh=Nu(function(n,t){if(Mi(t)||Hf(t))return $u(t,Pc(t),n),X;for(var r in t)bl.call(t,r)&&Sr(n,r,t[r])}),Eh=Nu(function(n,t){$u(t,qc(t),n)}),Sh=Nu(function(n,t,r,e){$u(t,qc(t),n,e)}),Wh=Nu(function(n,t,r,e){$u(t,Pc(t),n,e); +}),Lh=gi(Tr),Ch=uu(function(n,t){n=ll(n);var r=-1,e=t.length,u=e>2?t[2]:X;for(u&&Ui(t[0],t[1],u)&&(e=1);++r1),t}),$u(n,di(n),r),e&&(r=Fr(r,an|ln|sn,hi));for(var u=t.length;u--;)yu(r,t[u]);return r}),Nh=gi(function(n,t){return null==n?{}:Je(n,t)}),Ph=ci(Pc),qh=ci(qc),Zh=Vu(function(n,t,r){return t=t.toLowerCase(),n+(r?fa(t):t)}),Kh=Vu(function(n,t,r){return n+(r?"-":"")+t.toLowerCase()}),Vh=Vu(function(n,t,r){return n+(r?" ":"")+t.toLowerCase()}),Gh=Ku("toLowerCase"),Hh=Vu(function(n,t,r){ +return n+(r?"_":"")+t.toLowerCase()}),Jh=Vu(function(n,t,r){return n+(r?" ":"")+Qh(t)}),Yh=Vu(function(n,t,r){return n+(r?" ":"")+t.toUpperCase()}),Qh=Ku("toUpperCase"),Xh=uu(function(t,r){try{return n(t,X,r)}catch(n){return rc(n)?n:new fl(n)}}),np=gi(function(n,t){return r(t,function(t){t=no(t),Br(n,t,ch(n[t],n))}),n}),tp=Yu(),rp=Yu(!0),ep=uu(function(n,t){return function(r){return Ie(r,n,t)}}),up=uu(function(n,t){return function(r){return Ie(n,r,t)}}),ip=ti(c),op=ti(u),fp=ti(h),cp=ui(),ap=ui(!0),lp=ni(function(n,t){ +return n+t},0),sp=fi("ceil"),hp=ni(function(n,t){return n/t},1),pp=fi("floor"),_p=ni(function(n,t){return n*t},1),vp=fi("round"),gp=ni(function(n,t){return n-t},0);return Z.after=If,Z.ary=Rf,Z.assign=zh,Z.assignIn=Eh,Z.assignInWith=Sh,Z.assignWith=Wh,Z.at=Lh,Z.before=zf,Z.bind=ch,Z.bindAll=np,Z.bindKey=ah,Z.castArray=Nf,Z.chain=Qo,Z.chunk=uo,Z.compact=io,Z.concat=oo,Z.cond=za,Z.conforms=Ea,Z.constant=Sa,Z.countBy=Xs,Z.create=Sc,Z.curry=Ef,Z.curryRight=Sf,Z.debounce=Wf,Z.defaults=Ch,Z.defaultsDeep=Uh, +Z.defer=lh,Z.delay=sh,Z.difference=Us,Z.differenceBy=Bs,Z.differenceWith=Ts,Z.drop=fo,Z.dropRight=co,Z.dropRightWhile=ao,Z.dropWhile=lo,Z.fill=so,Z.filter=lf,Z.flatMap=sf,Z.flatMapDeep=hf,Z.flatMapDepth=pf,Z.flatten=_o,Z.flattenDeep=vo,Z.flattenDepth=go,Z.flip=Lf,Z.flow=tp,Z.flowRight=rp,Z.fromPairs=yo,Z.functions=$c,Z.functionsIn=Dc,Z.groupBy=rh,Z.initial=mo,Z.intersection=$s,Z.intersectionBy=Ds,Z.intersectionWith=Ms,Z.invert=Bh,Z.invertBy=Th,Z.invokeMap=eh,Z.iteratee=Ca,Z.keyBy=uh,Z.keys=Pc,Z.keysIn=qc, +Z.map=yf,Z.mapKeys=Zc,Z.mapValues=Kc,Z.matches=Ua,Z.matchesProperty=Ba,Z.memoize=Cf,Z.merge=Dh,Z.mergeWith=Mh,Z.method=ep,Z.methodOf=up,Z.mixin=Ta,Z.negate=Uf,Z.nthArg=Ma,Z.omit=Fh,Z.omitBy=Vc,Z.once=Bf,Z.orderBy=df,Z.over=ip,Z.overArgs=hh,Z.overEvery=op,Z.overSome=fp,Z.partial=ph,Z.partialRight=_h,Z.partition=ih,Z.pick=Nh,Z.pickBy=Gc,Z.property=Fa,Z.propertyOf=Na,Z.pull=Fs,Z.pullAll=Oo,Z.pullAllBy=Io,Z.pullAllWith=Ro,Z.pullAt=Ns,Z.range=cp,Z.rangeRight=ap,Z.rearg=vh,Z.reject=mf,Z.remove=zo,Z.rest=Tf, +Z.reverse=Eo,Z.sampleSize=jf,Z.set=Jc,Z.setWith=Yc,Z.shuffle=Af,Z.slice=So,Z.sortBy=oh,Z.sortedUniq=$o,Z.sortedUniqBy=Do,Z.split=da,Z.spread=$f,Z.tail=Mo,Z.take=Fo,Z.takeRight=No,Z.takeRightWhile=Po,Z.takeWhile=qo,Z.tap=Xo,Z.throttle=Df,Z.thru=nf,Z.toArray=jc,Z.toPairs=Ph,Z.toPairsIn=qh,Z.toPath=Ha,Z.toPlainObject=Rc,Z.transform=Qc,Z.unary=Mf,Z.union=Ps,Z.unionBy=qs,Z.unionWith=Zs,Z.uniq=Zo,Z.uniqBy=Ko,Z.uniqWith=Vo,Z.unset=Xc,Z.unzip=Go,Z.unzipWith=Ho,Z.update=na,Z.updateWith=ta,Z.values=ra,Z.valuesIn=ea, +Z.without=Ks,Z.words=Ra,Z.wrap=Ff,Z.xor=Vs,Z.xorBy=Gs,Z.xorWith=Hs,Z.zip=Js,Z.zipObject=Jo,Z.zipObjectDeep=Yo,Z.zipWith=Ys,Z.entries=Ph,Z.entriesIn=qh,Z.extend=Eh,Z.extendWith=Sh,Ta(Z,Z),Z.add=lp,Z.attempt=Xh,Z.camelCase=Zh,Z.capitalize=fa,Z.ceil=sp,Z.clamp=ua,Z.clone=Pf,Z.cloneDeep=Zf,Z.cloneDeepWith=Kf,Z.cloneWith=qf,Z.conformsTo=Vf,Z.deburr=ca,Z.defaultTo=Wa,Z.divide=hp,Z.endsWith=aa,Z.eq=Gf,Z.escape=la,Z.escapeRegExp=sa,Z.every=af,Z.find=nh,Z.findIndex=ho,Z.findKey=Wc,Z.findLast=th,Z.findLastIndex=po, +Z.findLastKey=Lc,Z.floor=pp,Z.forEach=_f,Z.forEachRight=vf,Z.forIn=Cc,Z.forInRight=Uc,Z.forOwn=Bc,Z.forOwnRight=Tc,Z.get=Mc,Z.gt=gh,Z.gte=yh,Z.has=Fc,Z.hasIn=Nc,Z.head=bo,Z.identity=La,Z.includes=gf,Z.indexOf=wo,Z.inRange=ia,Z.invoke=$h,Z.isArguments=dh,Z.isArray=bh,Z.isArrayBuffer=wh,Z.isArrayLike=Hf,Z.isArrayLikeObject=Jf,Z.isBoolean=Yf,Z.isBuffer=mh,Z.isDate=xh,Z.isElement=Qf,Z.isEmpty=Xf,Z.isEqual=nc,Z.isEqualWith=tc,Z.isError=rc,Z.isFinite=ec,Z.isFunction=uc,Z.isInteger=ic,Z.isLength=oc,Z.isMap=jh, +Z.isMatch=ac,Z.isMatchWith=lc,Z.isNaN=sc,Z.isNative=hc,Z.isNil=_c,Z.isNull=pc,Z.isNumber=vc,Z.isObject=fc,Z.isObjectLike=cc,Z.isPlainObject=gc,Z.isRegExp=Ah,Z.isSafeInteger=yc,Z.isSet=kh,Z.isString=dc,Z.isSymbol=bc,Z.isTypedArray=Oh,Z.isUndefined=wc,Z.isWeakMap=mc,Z.isWeakSet=xc,Z.join=xo,Z.kebabCase=Kh,Z.last=jo,Z.lastIndexOf=Ao,Z.lowerCase=Vh,Z.lowerFirst=Gh,Z.lt=Ih,Z.lte=Rh,Z.max=Ya,Z.maxBy=Qa,Z.mean=Xa,Z.meanBy=nl,Z.min=tl,Z.minBy=rl,Z.stubArray=Pa,Z.stubFalse=qa,Z.stubObject=Za,Z.stubString=Ka, +Z.stubTrue=Va,Z.multiply=_p,Z.nth=ko,Z.noConflict=$a,Z.noop=Da,Z.now=fh,Z.pad=ha,Z.padEnd=pa,Z.padStart=_a,Z.parseInt=va,Z.random=oa,Z.reduce=bf,Z.reduceRight=wf,Z.repeat=ga,Z.replace=ya,Z.result=Hc,Z.round=vp,Z.runInContext=p,Z.sample=xf,Z.size=kf,Z.snakeCase=Hh,Z.some=Of,Z.sortedIndex=Wo,Z.sortedIndexBy=Lo,Z.sortedIndexOf=Co,Z.sortedLastIndex=Uo,Z.sortedLastIndexBy=Bo,Z.sortedLastIndexOf=To,Z.startCase=Jh,Z.startsWith=ba,Z.subtract=gp,Z.sum=el,Z.sumBy=ul,Z.template=wa,Z.times=Ga,Z.toFinite=Ac,Z.toInteger=kc, +Z.toLength=Oc,Z.toLower=ma,Z.toNumber=Ic,Z.toSafeInteger=zc,Z.toString=Ec,Z.toUpper=xa,Z.trim=ja,Z.trimEnd=Aa,Z.trimStart=ka,Z.truncate=Oa,Z.unescape=Ia,Z.uniqueId=Ja,Z.upperCase=Yh,Z.upperFirst=Qh,Z.each=_f,Z.eachRight=vf,Z.first=bo,Ta(Z,function(){var n={};return ue(Z,function(t,r){bl.call(Z.prototype,r)||(n[r]=t)}),n}(),{chain:!1}),Z.VERSION=nn,r(["bind","bindKey","curry","curryRight","partial","partialRight"],function(n){Z[n].placeholder=Z}),r(["drop","take"],function(n,t){Ct.prototype[n]=function(r){ +r=r===X?1:Gl(kc(r),0);var e=this.__filtered__&&!t?new Ct(this):this.clone();return e.__filtered__?e.__takeCount__=Hl(r,e.__takeCount__):e.__views__.push({size:Hl(r,Un),type:n+(e.__dir__<0?"Right":"")}),e},Ct.prototype[n+"Right"]=function(t){return this.reverse()[n](t).reverse()}}),r(["filter","map","takeWhile"],function(n,t){var r=t+1,e=r==Rn||r==En;Ct.prototype[n]=function(n){var t=this.clone();return t.__iteratees__.push({iteratee:mi(n,3),type:r}),t.__filtered__=t.__filtered__||e,t}}),r(["head","last"],function(n,t){ +var r="take"+(t?"Right":"");Ct.prototype[n]=function(){return this[r](1).value()[0]}}),r(["initial","tail"],function(n,t){var r="drop"+(t?"":"Right");Ct.prototype[n]=function(){return this.__filtered__?new Ct(this):this[r](1)}}),Ct.prototype.compact=function(){return this.filter(La)},Ct.prototype.find=function(n){return this.filter(n).head()},Ct.prototype.findLast=function(n){return this.reverse().find(n)},Ct.prototype.invokeMap=uu(function(n,t){return"function"==typeof n?new Ct(this):this.map(function(r){ +return Ie(r,n,t)})}),Ct.prototype.reject=function(n){return this.filter(Uf(mi(n)))},Ct.prototype.slice=function(n,t){n=kc(n);var r=this;return r.__filtered__&&(n>0||t<0)?new Ct(r):(n<0?r=r.takeRight(-n):n&&(r=r.drop(n)),t!==X&&(t=kc(t),r=t<0?r.dropRight(-t):r.take(t-n)),r)},Ct.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},Ct.prototype.toArray=function(){return this.take(Un)},ue(Ct.prototype,function(n,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),e=/^(?:head|last)$/.test(t),u=Z[e?"take"+("last"==t?"Right":""):t],i=e||/^find/.test(t); +u&&(Z.prototype[t]=function(){var t=this.__wrapped__,o=e?[1]:arguments,f=t instanceof Ct,c=o[0],l=f||bh(t),s=function(n){var t=u.apply(Z,a([n],o));return e&&h?t[0]:t};l&&r&&"function"==typeof c&&1!=c.length&&(f=l=!1);var h=this.__chain__,p=!!this.__actions__.length,_=i&&!h,v=f&&!p;if(!i&&l){t=v?t:new Ct(this);var g=n.apply(t,o);return g.__actions__.push({func:nf,args:[s],thisArg:X}),new Y(g,h)}return _&&v?n.apply(this,o):(g=this.thru(s),_?e?g.value()[0]:g.value():g)})}),r(["pop","push","shift","sort","splice","unshift"],function(n){ +var t=_l[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|shift)$/.test(n);Z.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){var u=this.value();return t.apply(bh(u)?u:[],n)}return this[r](function(r){return t.apply(bh(r)?r:[],n)})}}),ue(Ct.prototype,function(n,t){var r=Z[t];if(r){var e=r.name+"";bl.call(fs,e)||(fs[e]=[]),fs[e].push({name:t,func:r})}}),fs[Qu(X,vn).name]=[{name:"wrapper",func:X}],Ct.prototype.clone=$t,Ct.prototype.reverse=Yt,Ct.prototype.value=Qt,Z.prototype.at=Qs, +Z.prototype.chain=tf,Z.prototype.commit=rf,Z.prototype.next=ef,Z.prototype.plant=of,Z.prototype.reverse=ff,Z.prototype.toJSON=Z.prototype.valueOf=Z.prototype.value=cf,Z.prototype.first=Z.prototype.head,Ul&&(Z.prototype[Ul]=uf),Z},be=de();"function"==typeof define&&"object"==typeof define.amd&&define.amd?(re._=be,define(function(){return be})):ue?((ue.exports=be)._=be,ee._=be):re._=be}).call(this); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/luxon/luxon.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/luxon/luxon.js index aa6e8caa..34e067f4 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/luxon/luxon.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/luxon/luxon.js @@ -17,10 +17,29 @@ var luxon = (function (exports) { return Constructor; } + function _extends() { + _extends = Object.assign || function (target) { + for (var i = 1; i < arguments.length; i++) { + var source = arguments[i]; + + for (var key in source) { + if (Object.prototype.hasOwnProperty.call(source, key)) { + target[key] = source[key]; + } + } + } + + return target; + }; + + return _extends.apply(this, arguments); + } + function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; - subClass.__proto__ = superClass; + + _setPrototypeOf(subClass, superClass); } function _getPrototypeOf(o) { @@ -45,7 +64,7 @@ var luxon = (function (exports) { if (typeof Proxy === "function") return true; try { - Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); + Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; @@ -139,11 +158,14 @@ var luxon = (function (exports) { return arr2; } - function _createForOfIteratorHelperLoose(o) { - var i = 0; + function _createForOfIteratorHelperLoose(o, allowArrayLike) { + var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; + if (it) return (it = it.call(o)).next.bind(it); - if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { - if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) return function () { + if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { + if (it) o = it; + var i = 0; + return function () { if (i >= o.length) return { done: true }; @@ -152,11 +174,9 @@ var luxon = (function (exports) { value: o[i++] }; }; - throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } - i = o[Symbol.iterator](); - return i.next.bind(i); + throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } // these aren't really private, but nor are they really useful to document @@ -282,6 +302,12 @@ var luxon = (function (exports) { month: s, day: n }; + var DATE_MED_WITH_WEEKDAY = { + year: n, + month: s, + day: n, + weekday: s + }; var DATE_FULL = { year: n, month: l, @@ -317,44 +343,28 @@ var luxon = (function (exports) { var TIME_24_SIMPLE = { hour: n, minute: n, - hour12: false + hourCycle: "h23" }; - /** - * {@link toLocaleString}; format like '09:30:23', always 24-hour. - */ - var TIME_24_WITH_SECONDS = { hour: n, minute: n, second: n, - hour12: false + hourCycle: "h23" }; - /** - * {@link toLocaleString}; format like '09:30:23 EDT', always 24-hour. - */ - var TIME_24_WITH_SHORT_OFFSET = { hour: n, minute: n, second: n, - hour12: false, + hourCycle: "h23", timeZoneName: s }; - /** - * {@link toLocaleString}; format like '09:30:23 Eastern Daylight Time', always 24-hour. - */ - var TIME_24_WITH_LONG_OFFSET = { hour: n, minute: n, second: n, - hour12: false, + hourCycle: "h23", timeZoneName: l }; - /** - * {@link toLocaleString}; format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is. - */ - var DATETIME_SHORT = { year: n, month: n, @@ -362,10 +372,6 @@ var luxon = (function (exports) { hour: n, minute: n }; - /** - * {@link toLocaleString}; format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is. - */ - var DATETIME_SHORT_WITH_SECONDS = { year: n, month: n, @@ -434,11 +440,6 @@ var luxon = (function (exports) { timeZoneName: l }; - /* - This is just a junk drawer, containing anything used across multiple classes. - Because Luxon is small(ish), this should stay small and we won't worry about splitting - it up into, say, parsingUtil.js and basicUtil.js and so on. But they are divided up by feature area. - */ /** * @private */ @@ -460,16 +461,6 @@ var luxon = (function (exports) { return Object.prototype.toString.call(o) === "[object Date]"; } // CAPABILITIES - function hasIntl() { - try { - return typeof Intl !== "undefined" && Intl.DateTimeFormat; - } catch (e) { - return false; - } - } - function hasFormatToParts() { - return !isUndefined(Intl.DateTimeFormat.prototype.formatToParts); - } function hasRelative() { try { return typeof Intl !== "undefined" && !!Intl.RelativeTimeFormat; @@ -520,11 +511,16 @@ var luxon = (function (exports) { n = 2; } - if (input.toString().length < n) { - return ("0".repeat(n) + input).slice(-n); + var isNeg = input < 0; + var padded; + + if (isNeg) { + padded = "-" + ("" + -input).padStart(n, "0"); } else { - return input.toString(); + padded = ("" + input).padStart(n, "0"); } + + return padded; } function parseInteger(string) { if (isUndefined(string) || string === null || string === "") { @@ -533,6 +529,13 @@ var luxon = (function (exports) { return parseInt(string, 10); } } + function parseFloating(string) { + if (isUndefined(string) || string === null || string === "") { + return undefined; + } else { + return parseFloat(string); + } + } function parseMillis(fraction) { // Return undefined (instead of 0) in these cases, where fraction is not set if (isUndefined(fraction) || fraction === null || fraction === "") { @@ -598,7 +601,7 @@ var luxon = (function (exports) { var date = new Date(ts), intlOpts = { - hour12: false, + hourCycle: "h23", year: "numeric", month: "2-digit", day: "2-digit", @@ -610,26 +613,14 @@ var luxon = (function (exports) { intlOpts.timeZone = timeZone; } - var modified = Object.assign({ + var modified = _extends({ timeZoneName: offsetFormat - }, intlOpts), - intl = hasIntl(); + }, intlOpts); - if (intl && hasFormatToParts()) { - var parsed = new Intl.DateTimeFormat(locale, modified).formatToParts(date).find(function (m) { - return m.type.toLowerCase() === "timezonename"; - }); - return parsed ? parsed.value : null; - } else if (intl) { - // this probably doesn't work for all locales - var without = new Intl.DateTimeFormat(locale, intlOpts).format(date), - included = new Intl.DateTimeFormat(locale, modified).format(date), - diffed = included.substring(without.length), - trimmed = diffed.replace(/^[, \u200e]+/, ""); - return trimmed; - } else { - return null; - } + var parsed = new Intl.DateTimeFormat(locale, modified).formatToParts(date).find(function (m) { + return m.type.toLowerCase() === "timezonename"; + }); + return parsed ? parsed.value : null; } // signedOffset('-5', '30') -> -330 function signedOffset(offHourStr, offMinuteStr) { @@ -649,12 +640,11 @@ var luxon = (function (exports) { if (typeof value === "boolean" || value === "" || Number.isNaN(numericValue)) throw new InvalidArgumentError("Invalid unit value " + value); return numericValue; } - function normalizeObject(obj, normalizer, nonUnitKeys) { + function normalizeObject(obj, normalizer) { var normalized = {}; for (var u in obj) { if (hasOwnProperty(obj, u)) { - if (nonUnitKeys.indexOf(u) >= 0) continue; var v = obj[u]; if (v === undefined || v === null) continue; normalized[normalizer(u)] = asNumber(v); @@ -664,20 +654,19 @@ var luxon = (function (exports) { return normalized; } function formatOffset(offset, format) { - var hours = Math.trunc(offset / 60), - minutes = Math.abs(offset % 60), - sign = hours >= 0 && !Object.is(hours, -0) ? "+" : "-", - base = "" + sign + Math.abs(hours); + var hours = Math.trunc(Math.abs(offset / 60)), + minutes = Math.trunc(Math.abs(offset % 60)), + sign = offset >= 0 ? "+" : "-"; switch (format) { case "short": - return "" + sign + padStart(Math.abs(hours), 2) + ":" + padStart(minutes, 2); + return "" + sign + padStart(hours, 2) + ":" + padStart(minutes, 2); case "narrow": - return minutes > 0 ? base + ":" + minutes : base; + return "" + sign + hours + (minutes > 0 ? ":" + minutes : ""); case "techie": - return "" + sign + padStart(Math.abs(hours), 2) + padStart(minutes, 2); + return "" + sign + padStart(hours, 2) + padStart(minutes, 2); default: throw new RangeError("Value format " + format + " is out of range for property format"); @@ -686,11 +675,8 @@ var luxon = (function (exports) { function timeObject(obj) { return pick(obj, ["hour", "minute", "second", "millisecond"]); } - var ianaRegex = /[A-Za-z_+-]{1,256}(:?\/[A-Za-z_+-]{1,256}(\/[A-Za-z_+-]{1,256})?)?/; + var ianaRegex = /[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/; - function stringify(obj) { - return JSON.stringify(obj, Object.keys(obj).sort()); - } /** * @private */ @@ -702,13 +688,13 @@ var luxon = (function (exports) { function months(length) { switch (length) { case "narrow": - return monthsNarrow; + return [].concat(monthsNarrow); case "short": - return monthsShort; + return [].concat(monthsShort); case "long": - return monthsLong; + return [].concat(monthsLong); case "numeric": return ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"]; @@ -726,13 +712,13 @@ var luxon = (function (exports) { function weekdays(length) { switch (length) { case "narrow": - return weekdaysNarrow; + return [].concat(weekdaysNarrow); case "short": - return weekdaysShort; + return [].concat(weekdaysShort); case "long": - return weekdaysLong; + return [].concat(weekdaysLong); case "numeric": return ["1", "2", "3", "4", "5", "6", "7"]; @@ -748,13 +734,13 @@ var luxon = (function (exports) { function eras(length) { switch (length) { case "narrow": - return erasNarrow; + return [].concat(erasNarrow); case "short": - return erasShort; + return [].concat(erasShort); case "long": - return erasLong; + return [].concat(erasLong); default: return null; @@ -816,81 +802,6 @@ var luxon = (function (exports) { fmtUnit = narrow ? singular ? lilUnits[1] : lilUnits[2] || lilUnits[1] : singular ? units[unit][0] : unit; return isInPast ? fmtValue + " " + fmtUnit + " ago" : "in " + fmtValue + " " + fmtUnit; } - function formatString(knownFormat) { - // these all have the offsets removed because we don't have access to them - // without all the intl stuff this is backfilling - var filtered = pick(knownFormat, ["weekday", "era", "year", "month", "day", "hour", "minute", "second", "timeZoneName", "hour12"]), - key = stringify(filtered), - dateTimeHuge = "EEEE, LLLL d, yyyy, h:mm a"; - - switch (key) { - case stringify(DATE_SHORT): - return "M/d/yyyy"; - - case stringify(DATE_MED): - return "LLL d, yyyy"; - - case stringify(DATE_FULL): - return "LLLL d, yyyy"; - - case stringify(DATE_HUGE): - return "EEEE, LLLL d, yyyy"; - - case stringify(TIME_SIMPLE): - return "h:mm a"; - - case stringify(TIME_WITH_SECONDS): - return "h:mm:ss a"; - - case stringify(TIME_WITH_SHORT_OFFSET): - return "h:mm a"; - - case stringify(TIME_WITH_LONG_OFFSET): - return "h:mm a"; - - case stringify(TIME_24_SIMPLE): - return "HH:mm"; - - case stringify(TIME_24_WITH_SECONDS): - return "HH:mm:ss"; - - case stringify(TIME_24_WITH_SHORT_OFFSET): - return "HH:mm"; - - case stringify(TIME_24_WITH_LONG_OFFSET): - return "HH:mm"; - - case stringify(DATETIME_SHORT): - return "M/d/yyyy, h:mm a"; - - case stringify(DATETIME_MED): - return "LLL d, yyyy, h:mm a"; - - case stringify(DATETIME_FULL): - return "LLLL d, yyyy, h:mm a"; - - case stringify(DATETIME_HUGE): - return dateTimeHuge; - - case stringify(DATETIME_SHORT_WITH_SECONDS): - return "M/d/yyyy, h:mm:ss a"; - - case stringify(DATETIME_MED_WITH_SECONDS): - return "LLL d, yyyy, h:mm:ss a"; - - case stringify(DATETIME_MED_WITH_WEEKDAY): - return "EEE, d LLL yyyy, h:mm a"; - - case stringify(DATETIME_FULL_WITH_SECONDS): - return "LLLL d, yyyy, h:mm:ss a"; - - case stringify(DATETIME_HUGE_WITH_SECONDS): - return "EEEE, LLLL d, yyyy, h:mm:ss a"; - - default: - return dateTimeHuge; - } - } function stringifyTokens(splits, tokenToString) { var s = ""; @@ -1007,7 +918,7 @@ var luxon = (function (exports) { this.systemLoc = this.loc.redefaultToSystem(); } - var df = this.systemLoc.dtFormatter(dt, Object.assign({}, this.opts, opts)); + var df = this.systemLoc.dtFormatter(dt, _extends({}, this.opts, opts)); return df.format(); }; @@ -1016,7 +927,7 @@ var luxon = (function (exports) { opts = {}; } - var df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts)); + var df = this.loc.dtFormatter(dt, _extends({}, this.opts, opts)); return df.format(); }; @@ -1025,7 +936,7 @@ var luxon = (function (exports) { opts = {}; } - var df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts)); + var df = this.loc.dtFormatter(dt, _extends({}, this.opts, opts)); return df.formatToParts(); }; @@ -1034,7 +945,7 @@ var luxon = (function (exports) { opts = {}; } - var df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts)); + var df = this.loc.dtFormatter(dt, _extends({}, this.opts, opts)); return df.resolvedOptions(); }; @@ -1048,7 +959,7 @@ var luxon = (function (exports) { return padStart(n, p); } - var opts = Object.assign({}, this.opts); + var opts = _extends({}, this.opts); if (p > 0) { opts.padTo = p; @@ -1061,7 +972,7 @@ var luxon = (function (exports) { var _this = this; var knownEnglish = this.loc.listingMode() === "en", - useDateTimeFormatter = this.loc.outputCalendar && this.loc.outputCalendar !== "gregory" && hasFormatToParts(), + useDateTimeFormatter = this.loc.outputCalendar && this.loc.outputCalendar !== "gregory", string = function string(opts, extract) { return _this.loc.extract(dt, opts, extract); }, @@ -1075,7 +986,7 @@ var luxon = (function (exports) { meridiem = function meridiem() { return knownEnglish ? meridiemForDateTime(dt) : string({ hour: "numeric", - hour12: true + hourCycle: "h12" }, "dayperiod"); }, month = function month(length, standalone) { @@ -1110,7 +1021,7 @@ var luxon = (function (exports) { }, "era"); }, tokenToString = function tokenToString(token) { - // Where possible: http://cldr.unicode.org/translation/date-time#TOC-Stand-Alone-vs.-Format-Styles + // Where possible: http://cldr.unicode.org/translation/date-time-1/date-time#TOC-Standalone-vs.-Format-Styles switch (token) { // ms case "S": @@ -1127,6 +1038,13 @@ var luxon = (function (exports) { case "ss": return _this.num(dt.second, 2); + // fractional seconds + + case "uu": + return _this.num(Math.floor(dt.millisecond / 10), 2); + + case "uuu": + return _this.num(Math.floor(dt.millisecond / 100)); // minutes case "m": @@ -1387,6 +1305,9 @@ var luxon = (function (exports) { case "d": return "day"; + case "w": + return "week"; + case "M": return "month"; @@ -1508,13 +1429,13 @@ var luxon = (function (exports) { _createClass(Zone, [{ key: "type", - + get: /** * The type of zone * @abstract * @type {string} */ - get: function get() { + function get() { throw new ZoneIsAbstractError(); } /** @@ -1528,6 +1449,11 @@ var luxon = (function (exports) { get: function get() { throw new ZoneIsAbstractError(); } + }, { + key: "ianaName", + get: function get() { + return this.name; + } /** * Returns whether the offset is known to be fixed for the whole year. * @abstract @@ -1535,7 +1461,7 @@ var luxon = (function (exports) { */ }, { - key: "universal", + key: "isUniversal", get: function get() { throw new ZoneIsAbstractError(); } @@ -1549,20 +1475,20 @@ var luxon = (function (exports) { return Zone; }(); - var singleton = null; + var singleton$1 = null; /** - * Represents the local zone for this Javascript environment. + * Represents the local zone for this JavaScript environment. * @implements {Zone} */ - var LocalZone = /*#__PURE__*/function (_Zone) { - _inheritsLoose(LocalZone, _Zone); + var SystemZone = /*#__PURE__*/function (_Zone) { + _inheritsLoose(SystemZone, _Zone); - function LocalZone() { + function SystemZone() { return _Zone.apply(this, arguments) || this; } - var _proto = LocalZone.prototype; + var _proto = SystemZone.prototype; /** @override **/ _proto.offsetName = function offsetName(ts, _ref) { @@ -1586,31 +1512,29 @@ var luxon = (function (exports) { ; _proto.equals = function equals(otherZone) { - return otherZone.type === "local"; + return otherZone.type === "system"; } /** @override **/ ; - _createClass(LocalZone, [{ + _createClass(SystemZone, [{ key: "type", - + get: /** @override **/ - get: function get() { - return "local"; + function get() { + return "system"; } /** @override **/ }, { key: "name", get: function get() { - if (hasIntl()) { - return new Intl.DateTimeFormat().resolvedOptions().timeZone; - } else return "local"; + return new Intl.DateTimeFormat().resolvedOptions().timeZone; } /** @override **/ }, { - key: "universal", + key: "isUniversal", get: function get() { return false; } @@ -1621,24 +1545,23 @@ var luxon = (function (exports) { } }], [{ key: "instance", - + get: /** * Get a singleton instance of the local zone - * @return {LocalZone} + * @return {SystemZone} */ - get: function get() { - if (singleton === null) { - singleton = new LocalZone(); + function get() { + if (singleton$1 === null) { + singleton$1 = new SystemZone(); } - return singleton; + return singleton$1; } }]); - return LocalZone; + return SystemZone; }(Zone); - var matchingRegex = RegExp("^" + ianaRegex.source + "$"); var dtfCache = {}; function makeDTF(zone) { @@ -1651,7 +1574,8 @@ var luxon = (function (exports) { day: "2-digit", hour: "2-digit", minute: "2-digit", - second: "2-digit" + second: "2-digit", + era: "short" }); } @@ -1662,34 +1586,38 @@ var luxon = (function (exports) { year: 0, month: 1, day: 2, - hour: 3, - minute: 4, - second: 5 + era: 3, + hour: 4, + minute: 5, + second: 6 }; function hackyOffset(dtf, date) { var formatted = dtf.format(date).replace(/\u200E/g, ""), - parsed = /(\d+)\/(\d+)\/(\d+),? (\d+):(\d+):(\d+)/.exec(formatted), + parsed = /(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(formatted), fMonth = parsed[1], fDay = parsed[2], fYear = parsed[3], - fHour = parsed[4], - fMinute = parsed[5], - fSecond = parsed[6]; - return [fYear, fMonth, fDay, fHour, fMinute, fSecond]; + fadOrBc = parsed[4], + fHour = parsed[5], + fMinute = parsed[6], + fSecond = parsed[7]; + return [fYear, fMonth, fDay, fadOrBc, fHour, fMinute, fSecond]; } function partsOffset(dtf, date) { - var formatted = dtf.formatToParts(date), - filled = []; + var formatted = dtf.formatToParts(date); + var filled = []; for (var i = 0; i < formatted.length; i++) { var _formatted$i = formatted[i], type = _formatted$i.type, - value = _formatted$i.value, - pos = typeToPos[type]; + value = _formatted$i.value; + var pos = typeToPos[type]; - if (!isUndefined(pos)) { + if (type === "era") { + filled[pos] = value; + } else if (!isUndefined(pos)) { filled[pos] = parseInt(value, 10); } } @@ -1731,14 +1659,14 @@ var luxon = (function (exports) { * Returns whether the provided string is a valid specifier. This only checks the string's format, not that the specifier identifies a known zone; see isValidZone for that. * @param {string} s - The string to check validity on * @example IANAZone.isValidSpecifier("America/New_York") //=> true - * @example IANAZone.isValidSpecifier("Fantasia/Castle") //=> true * @example IANAZone.isValidSpecifier("Sport~~blorp") //=> false + * @deprecated This method returns false for some valid IANA names. Use isValidZone instead. * @return {boolean} */ ; IANAZone.isValidSpecifier = function isValidSpecifier(s) { - return !!(s && s.match(matchingRegex)); + return this.isValidZone(s); } /** * Returns whether the provided string identifies a real zone @@ -1751,6 +1679,10 @@ var luxon = (function (exports) { ; IANAZone.isValidZone = function isValidZone(zone) { + if (!zone) { + return false; + } + try { new Intl.DateTimeFormat("en-US", { timeZone: zone @@ -1759,21 +1691,6 @@ var luxon = (function (exports) { } catch (e) { return false; } - } // Etc/GMT+8 -> -480 - - /** @ignore */ - ; - - IANAZone.parseGMTOffset = function parseGMTOffset(specifier) { - if (specifier) { - var match = specifier.match(/^Etc\/GMT([+-]\d{1,2})$/i); - - if (match) { - return -60 * parseInt(match[1]); - } - } - - return null; }; function IANAZone(name) { @@ -1809,17 +1726,25 @@ var luxon = (function (exports) { ; _proto.offset = function offset(ts) { - var date = new Date(ts), - dtf = makeDTF(this.name), - _ref2 = dtf.formatToParts ? partsOffset(dtf, date) : hackyOffset(dtf, date), + var date = new Date(ts); + if (isNaN(date)) return NaN; + var dtf = makeDTF(this.name); + + var _ref2 = dtf.formatToParts ? partsOffset(dtf, date) : hackyOffset(dtf, date), year = _ref2[0], month = _ref2[1], day = _ref2[2], - hour = _ref2[3], - minute = _ref2[4], - second = _ref2[5], - adjustedHour = hour === 24 ? 0 : hour; + adOrBc = _ref2[3], + hour = _ref2[4], + minute = _ref2[5], + second = _ref2[6]; + + if (adOrBc === "BC") { + year = -Math.abs(year) + 1; + } // because we're using hour12 and https://bugs.chromium.org/p/chromium/issues/detail?id=1025564&can=2&q=%2224%3A00%22%20datetimeformat + + var adjustedHour = hour === 24 ? 0 : hour; var asUTC = objToLocalTS({ year: year, month: month, @@ -1858,7 +1783,7 @@ var luxon = (function (exports) { /** @override **/ }, { - key: "universal", + key: "isUniversal", get: function get() { return false; } @@ -1872,7 +1797,7 @@ var luxon = (function (exports) { return IANAZone; }(Zone); - var singleton$1 = null; + var singleton = null; /** * A zone with a fixed offset (meaning no DST) * @implements {Zone} @@ -1911,22 +1836,6 @@ var luxon = (function (exports) { return null; }; - _createClass(FixedOffsetZone, null, [{ - key: "utcInstance", - - /** - * Get a singleton instance of UTC - * @return {FixedOffsetZone} - */ - get: function get() { - if (singleton$1 === null) { - singleton$1 = new FixedOffsetZone(0); - } - - return singleton$1; - } - }]); - function FixedOffsetZone(offset) { var _this; @@ -1980,7 +1889,16 @@ var luxon = (function (exports) { return this.fixed === 0 ? "UTC" : "UTC" + formatOffset(this.fixed, "narrow"); } }, { - key: "universal", + key: "ianaName", + get: function get() { + if (this.fixed === 0) { + return "Etc/UTC"; + } else { + return "Etc/GMT" + formatOffset(-this.fixed, "narrow"); + } + } + }, { + key: "isUniversal", get: function get() { return true; } @@ -1989,6 +1907,20 @@ var luxon = (function (exports) { get: function get() { return true; } + }], [{ + key: "utcInstance", + get: + /** + * Get a singleton instance of UTC + * @return {FixedOffsetZone} + */ + function get() { + if (singleton === null) { + singleton = new FixedOffsetZone(0); + } + + return singleton; + } }]); return FixedOffsetZone; @@ -2056,7 +1988,7 @@ var luxon = (function (exports) { /** @override **/ }, { - key: "universal", + key: "isUniversal", get: function get() { return false; } @@ -2074,7 +2006,6 @@ var luxon = (function (exports) { * @private */ function normalizeZone(input, defaultZone) { - var offset; if (isUndefined(input) || input === null) { return defaultZone; @@ -2082,10 +2013,7 @@ var luxon = (function (exports) { return input; } else if (isString(input)) { var lowered = input.toLowerCase(); - if (lowered === "local") return defaultZone;else if (lowered === "utc" || lowered === "gmt") return FixedOffsetZone.utcInstance;else if ((offset = IANAZone.parseGMTOffset(input)) != null) { - // handle Etc/GMT-4, which V8 chokes on - return FixedOffsetZone.instance(offset); - } else if (IANAZone.isValidSpecifier(lowered)) return IANAZone.create(input);else return FixedOffsetZone.parseSpecifier(lowered) || new InvalidZone(input); + if (lowered === "local" || lowered === "system") return defaultZone;else if (lowered === "utc" || lowered === "gmt") return FixedOffsetZone.utcInstance;else return FixedOffsetZone.parseSpecifier(lowered) || IANAZone.create(input); } else if (isNumber(input)) { return FixedOffsetZone.instance(input); } else if (typeof input === "object" && input.offset && typeof input.offset === "number") { @@ -2100,12 +2028,11 @@ var luxon = (function (exports) { var now = function now() { return Date.now(); }, - defaultZone = null, - // not setting this directly to LocalZone.instance bc loading order issues - defaultLocale = null, + defaultZone = "system", + defaultLocale = null, defaultNumberingSystem = null, defaultOutputCalendar = null, - throwOnInvalid = false; + throwOnInvalid; /** * Settings contains static getters and setters that control Luxon's overall behavior. Luxon is a simple library with few options, but the ones it does have live here. */ @@ -2125,12 +2052,12 @@ var luxon = (function (exports) { _createClass(Settings, null, [{ key: "now", - + get: /** * Get the callback for returning the current timestamp. * @type {function} */ - get: function get() { + function get() { return now; } /** @@ -2145,42 +2072,30 @@ var luxon = (function (exports) { now = n; } /** - * Get the default time zone to create DateTimes in. + * Set the default time zone to create DateTimes in. Does not affect existing instances. + * Use the value "system" to reset this value to the system's time zone. * @type {string} */ }, { - key: "defaultZoneName", - get: function get() { - return Settings.defaultZone.name; - } - /** - * Set the default time zone to create DateTimes in. Does not affect existing instances. - * @type {string} - */ - , - set: function set(z) { - if (!z) { - defaultZone = null; - } else { - defaultZone = normalizeZone(z); - } - } + key: "defaultZone", + get: /** - * Get the default time zone object to create DateTimes in. Does not affect existing instances. + * Get the default time zone object currently used to create DateTimes. Does not affect existing instances. + * The default value is the system's time zone (the one set on the machine that runs this code). * @type {Zone} */ - - }, { - key: "defaultZone", - get: function get() { - return defaultZone || LocalZone.instance; + function get() { + return normalizeZone(defaultZone, SystemZone.instance); } /** * Get the default locale to create DateTimes with. Does not affect existing instances. * @type {string} */ - + , + set: function set(zone) { + defaultZone = zone; + } }, { key: "defaultLocale", get: function get() { @@ -2253,6 +2168,27 @@ var luxon = (function (exports) { return Settings; }(); + var _excluded = ["base"], + _excluded2 = ["padTo", "floor"]; + + var intlLFCache = {}; + + function getCachedLF(locString, opts) { + if (opts === void 0) { + opts = {}; + } + + var key = JSON.stringify([locString, opts]); + var dtf = intlLFCache[key]; + + if (!dtf) { + dtf = new Intl.ListFormat(locString, opts); + intlLFCache[key] = dtf; + } + + return dtf; + } + var intlDTCache = {}; function getCachedDTF(locString, opts) { @@ -2296,9 +2232,9 @@ var luxon = (function (exports) { opts = {}; } - var _opts = opts, - base = _opts.base, - cacheKeyOpts = _objectWithoutPropertiesLoose(_opts, ["base"]); // exclude `base` from the options + var _opts = opts; + _opts.base; + var cacheKeyOpts = _objectWithoutPropertiesLoose(_opts, _excluded); // exclude `base` from the options var key = JSON.stringify([locString, cacheKeyOpts]); @@ -2317,13 +2253,8 @@ var luxon = (function (exports) { function systemLocale() { if (sysLocaleCache) { return sysLocaleCache; - } else if (hasIntl()) { - var computedSys = new Intl.DateTimeFormat().resolvedOptions().locale; // node sometimes defaults to "und". Override that because that is dumb - - sysLocaleCache = !computedSys || computedSys === "und" ? "en-US" : computedSys; - return sysLocaleCache; } else { - sysLocaleCache = "en-US"; + sysLocaleCache = new Intl.DateTimeFormat().resolvedOptions().locale; return sysLocaleCache; } } @@ -2358,24 +2289,20 @@ var luxon = (function (exports) { } function intlConfigString(localeStr, numberingSystem, outputCalendar) { - if (hasIntl()) { - if (outputCalendar || numberingSystem) { - localeStr += "-u"; - - if (outputCalendar) { - localeStr += "-ca-" + outputCalendar; - } + if (outputCalendar || numberingSystem) { + localeStr += "-u"; - if (numberingSystem) { - localeStr += "-nu-" + numberingSystem; - } + if (outputCalendar) { + localeStr += "-ca-" + outputCalendar; + } - return localeStr; - } else { - return localeStr; + if (numberingSystem) { + localeStr += "-nu-" + numberingSystem; } + + return localeStr; } else { - return []; + return localeStr; } } @@ -2417,7 +2344,7 @@ var luxon = (function (exports) { if (loc.numberingSystem && loc.numberingSystem !== "latn") { return false; } else { - return loc.numberingSystem === "latn" || !loc.locale || loc.locale.startsWith("en") || hasIntl() && new Intl.DateTimeFormat(loc.intl).resolvedOptions().numberingSystem === "latn"; + return loc.numberingSystem === "latn" || !loc.locale || loc.locale.startsWith("en") || new Intl.DateTimeFormat(loc.intl).resolvedOptions().numberingSystem === "latn"; } } /** @@ -2430,10 +2357,15 @@ var luxon = (function (exports) { this.padTo = opts.padTo || 0; this.floor = opts.floor || false; - if (!forceSimple && hasIntl()) { - var intlOpts = { + opts.padTo; + opts.floor; + var otherOpts = _objectWithoutPropertiesLoose(opts, _excluded2); + + if (!forceSimple || Object.keys(otherOpts).length > 0) { + var intlOpts = _extends({ useGrouping: false - }; + }, opts); + if (opts.padTo > 0) intlOpts.minimumIntegerDigits = opts.padTo; this.inf = getCachedINF(intl, intlOpts); } @@ -2463,76 +2395,65 @@ var luxon = (function (exports) { var PolyDateFormatter = /*#__PURE__*/function () { function PolyDateFormatter(dt, intl, opts) { this.opts = opts; - this.hasIntl = hasIntl(); var z; - if (dt.zone.universal && this.hasIntl) { - // Chromium doesn't support fixed-offset zones like Etc/GMT+8 in its formatter, - // See https://bugs.chromium.org/p/chromium/issues/detail?id=364374. - // So we have to make do. Two cases: - // 1. The format options tell us to show the zone. We can't do that, so the best - // we can do is format the date in UTC. - // 2. The format options don't tell us to show the zone. Then we can adjust them - // the time and tell the formatter to show it to us in UTC, so that the time is right - // and the bad zone doesn't show up. - // We can clean all this up when Chrome fixes this. - z = "UTC"; - - if (opts.timeZoneName) { + if (dt.zone.isUniversal) { + // UTC-8 or Etc/UTC-8 are not part of tzdata, only Etc/GMT+8 and the like. + // That is why fixed-offset TZ is set to that unless it is: + // 1. Representing offset 0 when UTC is used to maintain previous behavior and does not become GMT. + // 2. Unsupported by the browser: + // - some do not support Etc/ + // - < Etc/GMT-14, > Etc/GMT+12, and 30-minute or 45-minute offsets are not part of tzdata + var gmtOffset = -1 * (dt.offset / 60); + var offsetZ = gmtOffset >= 0 ? "Etc/GMT+" + gmtOffset : "Etc/GMT" + gmtOffset; + + if (dt.offset !== 0 && IANAZone.create(offsetZ).valid) { + z = offsetZ; this.dt = dt; } else { - this.dt = dt.offset === 0 ? dt : DateTime.fromMillis(dt.ts + dt.offset * 60 * 1000); + // Not all fixed-offset zones like Etc/+4:30 are present in tzdata. + // So we have to make do. Two cases: + // 1. The format options tell us to show the zone. We can't do that, so the best + // we can do is format the date in UTC. + // 2. The format options don't tell us to show the zone. Then we can adjust them + // the time and tell the formatter to show it to us in UTC, so that the time is right + // and the bad zone doesn't show up. + z = "UTC"; + + if (opts.timeZoneName) { + this.dt = dt; + } else { + this.dt = dt.offset === 0 ? dt : DateTime.fromMillis(dt.ts + dt.offset * 60 * 1000); + } } - } else if (dt.zone.type === "local") { + } else if (dt.zone.type === "system") { this.dt = dt; } else { this.dt = dt; z = dt.zone.name; } - if (this.hasIntl) { - var intlOpts = Object.assign({}, this.opts); + var intlOpts = _extends({}, this.opts); - if (z) { - intlOpts.timeZone = z; - } - - this.dtf = getCachedDTF(intl, intlOpts); + if (z) { + intlOpts.timeZone = z; } + + this.dtf = getCachedDTF(intl, intlOpts); } var _proto2 = PolyDateFormatter.prototype; _proto2.format = function format() { - if (this.hasIntl) { - return this.dtf.format(this.dt.toJSDate()); - } else { - var tokenFormat = formatString(this.opts), - loc = Locale.create("en-US"); - return Formatter.create(loc).formatDateTimeFromString(this.dt, tokenFormat); - } + return this.dtf.format(this.dt.toJSDate()); }; _proto2.formatToParts = function formatToParts() { - if (this.hasIntl && hasFormatToParts()) { - return this.dtf.formatToParts(this.dt.toJSDate()); - } else { - // This is kind of a cop out. We actually could do this for English. However, we couldn't do it for intl strings - // and IMO it's too weird to have an uncanny valley like that - return []; - } + return this.dtf.formatToParts(this.dt.toJSDate()); }; _proto2.resolvedOptions = function resolvedOptions() { - if (this.hasIntl) { - return this.dtf.resolvedOptions(); - } else { - return { - locale: "en-US", - numberingSystem: "latn", - outputCalendar: "gregory" - }; - } + return this.dtf.resolvedOptions(); }; return PolyDateFormatter; @@ -2544,7 +2465,7 @@ var luxon = (function (exports) { var PolyRelFormatter = /*#__PURE__*/function () { function PolyRelFormatter(intl, isEnglish, opts) { - this.opts = Object.assign({ + this.opts = _extends({ style: "long" }, opts); @@ -2588,11 +2509,11 @@ var luxon = (function (exports) { defaultToEN = false; } - var specifiedLocale = locale || Settings.defaultLocale, - // the system locale is useful for human readable strings but annoying for parsing/formatting known formats - localeR = specifiedLocale || (defaultToEN ? "en-US" : systemLocale()), - numberingSystemR = numberingSystem || Settings.defaultNumberingSystem, - outputCalendarR = outputCalendar || Settings.defaultOutputCalendar; + var specifiedLocale = locale || Settings.defaultLocale; // the system locale is useful for human readable strings but annoying for parsing/formatting known formats + + var localeR = specifiedLocale || (defaultToEN ? "en-US" : systemLocale()); + var numberingSystemR = numberingSystem || Settings.defaultNumberingSystem; + var outputCalendarR = outputCalendar || Settings.defaultOutputCalendar; return new Locale(localeR, numberingSystemR, outputCalendarR, specifiedLocale); }; @@ -2638,23 +2559,10 @@ var luxon = (function (exports) { var _proto4 = Locale.prototype; - _proto4.listingMode = function listingMode(defaultOK) { - if (defaultOK === void 0) { - defaultOK = true; - } - - var intl = hasIntl(), - hasFTP = intl && hasFormatToParts(), - isActuallyEn = this.isEnglish(), - hasNoWeirdness = (this.numberingSystem === null || this.numberingSystem === "latn") && (this.outputCalendar === null || this.outputCalendar === "gregory"); - - if (!hasFTP && !(isActuallyEn && hasNoWeirdness) && !defaultOK) { - return "error"; - } else if (!hasFTP || isActuallyEn && hasNoWeirdness) { - return "en"; - } else { - return "intl"; - } + _proto4.listingMode = function listingMode() { + var isActuallyEn = this.isEnglish(); + var hasNoWeirdness = (this.numberingSystem === null || this.numberingSystem === "latn") && (this.outputCalendar === null || this.outputCalendar === "gregory"); + return isActuallyEn && hasNoWeirdness ? "en" : "intl"; }; _proto4.clone = function clone(alts) { @@ -2670,7 +2578,7 @@ var luxon = (function (exports) { alts = {}; } - return this.clone(Object.assign({}, alts, { + return this.clone(_extends({}, alts, { defaultToEN: true })); }; @@ -2680,7 +2588,7 @@ var luxon = (function (exports) { alts = {}; } - return this.clone(Object.assign({}, alts, { + return this.clone(_extends({}, alts, { defaultToEN: false })); }; @@ -2762,7 +2670,7 @@ var luxon = (function (exports) { if (!_this3.meridiemCache) { var intl = { hour: "numeric", - hour12: true + hourCycle: "h12" }; _this3.meridiemCache = [DateTime.utc(2016, 11, 13, 9), DateTime.utc(2016, 11, 13, 19)].map(function (dt) { return _this3.extract(dt, intl, "dayperiod"); @@ -2783,7 +2691,7 @@ var luxon = (function (exports) { return listStuff(this, length, defaultOK, eras, function () { var intl = { era: length - }; // This is utter bullshit. Different calendars are going to define eras totally differently. What I need is the minimum set of dates + }; // This is problematic. Different calendars are going to define eras totally differently. What I need is the minimum set of dates // to definitely enumerate them. if (!_this4.eraCache[length]) { @@ -2831,8 +2739,16 @@ var luxon = (function (exports) { return new PolyRelFormatter(this.intl, this.isEnglish(), opts); }; + _proto4.listFormatter = function listFormatter(opts) { + if (opts === void 0) { + opts = {}; + } + + return getCachedLF(this.intl, opts); + }; + _proto4.isEnglish = function isEnglish() { - return this.locale === "en" || this.locale.toLowerCase() === "en-us" || hasIntl() && new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us"); + return this.locale === "en" || this.locale.toLowerCase() === "en-us" || new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith("en-us"); }; _proto4.equals = function equals(other) { @@ -2890,7 +2806,7 @@ var luxon = (function (exports) { zone = _ex[1], next = _ex[2]; - return [Object.assign(mergedVals, val), mergedZone || zone, next]; + return [_extends({}, mergedVals, val), zone || mergedZone, next]; }, [{}, null, 1]).slice(0, 2); }; } @@ -2936,19 +2852,20 @@ var luxon = (function (exports) { } // ISO and SQL parsing - var offsetRegex = /(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/, - isoTimeBaseRegex = /(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,9}))?)?)?/, - isoTimeRegex = RegExp("" + isoTimeBaseRegex.source + offsetRegex.source + "?"), - isoTimeExtensionRegex = RegExp("(?:T" + isoTimeRegex.source + ")?"), - isoYmdRegex = /([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/, - isoWeekRegex = /(\d{4})-?W(\d\d)(?:-?(\d))?/, - isoOrdinalRegex = /(\d{4})-?(\d{3})/, - extractISOWeekData = simpleParse("weekYear", "weekNumber", "weekDay"), - extractISOOrdinalData = simpleParse("year", "ordinal"), - sqlYmdRegex = /(\d{4})-(\d\d)-(\d\d)/, - // dumbed-down version of the ISO one - sqlTimeRegex = RegExp(isoTimeBaseRegex.source + " ?(?:" + offsetRegex.source + "|(" + ianaRegex.source + "))?"), - sqlTimeExtensionRegex = RegExp("(?: " + sqlTimeRegex.source + ")?"); + var offsetRegex = /(?:(Z)|([+-]\d\d)(?::?(\d\d))?)/; + var isoExtendedZone = "(?:" + offsetRegex.source + "?(?:\\[(" + ianaRegex.source + ")\\])?)?"; + var isoTimeBaseRegex = /(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/; + var isoTimeRegex = RegExp("" + isoTimeBaseRegex.source + isoExtendedZone); + var isoTimeExtensionRegex = RegExp("(?:T" + isoTimeRegex.source + ")?"); + var isoYmdRegex = /([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/; + var isoWeekRegex = /(\d{4})-?W(\d\d)(?:-?(\d))?/; + var isoOrdinalRegex = /(\d{4})-?(\d{3})/; + var extractISOWeekData = simpleParse("weekYear", "weekNumber", "weekDay"); + var extractISOOrdinalData = simpleParse("year", "ordinal"); + var sqlYmdRegex = /(\d{4})-(\d\d)-(\d\d)/; // dumbed-down version of the ISO one + + var sqlTimeRegex = RegExp(isoTimeBaseRegex.source + " ?(?:" + offsetRegex.source + "|(" + ianaRegex.source + "))?"); + var sqlTimeExtensionRegex = RegExp("(?: " + sqlTimeRegex.source + ")?"); function int(match, pos, fallback) { var m = match[pos]; @@ -2966,10 +2883,10 @@ var luxon = (function (exports) { function extractISOTime(match, cursor) { var item = { - hour: int(match, cursor, 0), - minute: int(match, cursor + 1, 0), - second: int(match, cursor + 2, 0), - millisecond: parseMillis(match[cursor + 3]) + hours: int(match, cursor, 0), + minutes: int(match, cursor + 1, 0), + seconds: int(match, cursor + 2, 0), + milliseconds: parseMillis(match[cursor + 3]) }; return [item, null, cursor + 4]; } @@ -2984,10 +2901,12 @@ var luxon = (function (exports) { function extractIANAZone(match, cursor) { var zone = match[cursor] ? IANAZone.create(match[cursor]) : null; return [{}, zone, cursor + 1]; - } // ISO duration parsing + } // ISO time parsing + + var isoTimeOnly = RegExp("^T?" + isoTimeBaseRegex.source + "$"); // ISO duration parsing - var isoDuration = /^-?P(?:(?:(-?\d{1,9})Y)?(?:(-?\d{1,9})M)?(?:(-?\d{1,9})W)?(?:(-?\d{1,9})D)?(?:T(?:(-?\d{1,9})H)?(?:(-?\d{1,9})M)?(?:(-?\d{1,9})(?:[.,](-?\d{1,9}))?S)?)?)$/; + var isoDuration = /^-?P(?:(?:(-?\d{1,9}(?:\.\d{1,9})?)Y)?(?:(-?\d{1,9}(?:\.\d{1,9})?)M)?(?:(-?\d{1,9}(?:\.\d{1,9})?)W)?(?:(-?\d{1,9}(?:\.\d{1,9})?)D)?(?:T(?:(-?\d{1,9}(?:\.\d{1,9})?)H)?(?:(-?\d{1,9}(?:\.\d{1,9})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,9}))?S)?)?)$/; function extractISODuration(match) { var s = match[0], @@ -3000,20 +2919,25 @@ var luxon = (function (exports) { secondStr = match[7], millisecondsStr = match[8]; var hasNegativePrefix = s[0] === "-"; + var negativeSeconds = secondStr && secondStr[0] === "-"; + + var maybeNegate = function maybeNegate(num, force) { + if (force === void 0) { + force = false; + } - var maybeNegate = function maybeNegate(num) { - return num && hasNegativePrefix ? -num : num; + return num !== undefined && (force || num && hasNegativePrefix) ? -num : num; }; return [{ - years: maybeNegate(parseInteger(yearStr)), - months: maybeNegate(parseInteger(monthStr)), - weeks: maybeNegate(parseInteger(weekStr)), - days: maybeNegate(parseInteger(dayStr)), - hours: maybeNegate(parseInteger(hourStr)), - minutes: maybeNegate(parseInteger(minuteStr)), - seconds: maybeNegate(parseInteger(secondStr)), - milliseconds: maybeNegate(parseMillis(millisecondsStr)) + years: maybeNegate(parseFloating(yearStr)), + months: maybeNegate(parseFloating(monthStr)), + weeks: maybeNegate(parseFloating(weekStr)), + days: maybeNegate(parseFloating(dayStr)), + hours: maybeNegate(parseFloating(hourStr)), + minutes: maybeNegate(parseFloating(minuteStr)), + seconds: maybeNegate(parseFloating(secondStr), secondStr === "-0"), + milliseconds: maybeNegate(parseMillis(millisecondsStr), negativeSeconds) }]; } // These are a little braindead. EDT *should* tell us that we're in, say, America/New_York // and not just that we're in -240 *right now*. But since I don't think these are used that often @@ -3116,16 +3040,16 @@ var luxon = (function (exports) { var isoWeekWithTimeExtensionRegex = combineRegexes(isoWeekRegex, isoTimeExtensionRegex); var isoOrdinalWithTimeExtensionRegex = combineRegexes(isoOrdinalRegex, isoTimeExtensionRegex); var isoTimeCombinedRegex = combineRegexes(isoTimeRegex); - var extractISOYmdTimeAndOffset = combineExtractors(extractISOYmd, extractISOTime, extractISOOffset); - var extractISOWeekTimeAndOffset = combineExtractors(extractISOWeekData, extractISOTime, extractISOOffset); - var extractISOOrdinalDataAndTime = combineExtractors(extractISOOrdinalData, extractISOTime); - var extractISOTimeAndOffset = combineExtractors(extractISOTime, extractISOOffset); - /** + var extractISOYmdTimeAndOffset = combineExtractors(extractISOYmd, extractISOTime, extractISOOffset, extractIANAZone); + var extractISOWeekTimeAndOffset = combineExtractors(extractISOWeekData, extractISOTime, extractISOOffset, extractIANAZone); + var extractISOOrdinalDateAndTime = combineExtractors(extractISOOrdinalData, extractISOTime, extractISOOffset, extractIANAZone); + var extractISOTimeAndOffset = combineExtractors(extractISOTime, extractISOOffset, extractIANAZone); + /* * @private */ function parseISODate(s) { - return parse(s, [isoYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset], [isoWeekWithTimeExtensionRegex, extractISOWeekTimeAndOffset], [isoOrdinalWithTimeExtensionRegex, extractISOOrdinalDataAndTime], [isoTimeCombinedRegex, extractISOTimeAndOffset]); + return parse(s, [isoYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset], [isoWeekWithTimeExtensionRegex, extractISOWeekTimeAndOffset], [isoOrdinalWithTimeExtensionRegex, extractISOOrdinalDateAndTime], [isoTimeCombinedRegex, extractISOTimeAndOffset]); } function parseRFC2822Date(s) { return parse(preprocessRFC2822(s), [rfc2822, extractRFC2822]); @@ -3136,15 +3060,18 @@ var luxon = (function (exports) { function parseISODuration(s) { return parse(s, [isoDuration, extractISODuration]); } + var extractISOTimeOnly = combineExtractors(extractISOTime); + function parseISOTimeOnly(s) { + return parse(s, [isoTimeOnly, extractISOTimeOnly]); + } var sqlYmdWithTimeExtensionRegex = combineRegexes(sqlYmdRegex, sqlTimeExtensionRegex); var sqlTimeCombinedRegex = combineRegexes(sqlTimeRegex); - var extractISOYmdTimeOffsetAndIANAZone = combineExtractors(extractISOYmd, extractISOTime, extractISOOffset, extractIANAZone); var extractISOTimeOffsetAndIANAZone = combineExtractors(extractISOTime, extractISOOffset, extractIANAZone); function parseSQL(s) { - return parse(s, [sqlYmdWithTimeExtensionRegex, extractISOYmdTimeOffsetAndIANAZone], [sqlTimeCombinedRegex, extractISOTimeOffsetAndIANAZone]); + return parse(s, [sqlYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset], [sqlTimeCombinedRegex, extractISOTimeOffsetAndIANAZone]); } - var INVALID = "Invalid Duration"; // unit conversion constants + var INVALID$2 = "Invalid Duration"; // unit conversion constants var lowOrderMatrix = { weeks: { @@ -3173,8 +3100,9 @@ var luxon = (function (exports) { milliseconds: 1000 } }, - casualMatrix = Object.assign({ + casualMatrix = _extends({ years: { + quarters: 4, months: 12, weeks: 52, days: 365, @@ -3189,6 +3117,7 @@ var luxon = (function (exports) { days: 91, hours: 91 * 24, minutes: 91 * 24 * 60, + seconds: 91 * 24 * 60 * 60, milliseconds: 91 * 24 * 60 * 60 * 1000 }, months: { @@ -3202,8 +3131,9 @@ var luxon = (function (exports) { }, lowOrderMatrix), daysInYearAccurate = 146097.0 / 400, daysInMonthAccurate = 146097.0 / 4800, - accurateMatrix = Object.assign({ + accurateMatrix = _extends({ years: { + quarters: 4, months: 12, weeks: daysInYearAccurate / 7, days: daysInYearAccurate, @@ -3231,17 +3161,17 @@ var luxon = (function (exports) { } }, lowOrderMatrix); // units ordered by size - var orderedUnits = ["years", "quarters", "months", "weeks", "days", "hours", "minutes", "seconds", "milliseconds"]; - var reverseUnits = orderedUnits.slice(0).reverse(); // clone really means "create another instance just like this one, but with these changes" + var orderedUnits$1 = ["years", "quarters", "months", "weeks", "days", "hours", "minutes", "seconds", "milliseconds"]; + var reverseUnits = orderedUnits$1.slice(0).reverse(); // clone really means "create another instance just like this one, but with these changes" - function clone(dur, alts, clear) { + function clone$1(dur, alts, clear) { if (clear === void 0) { clear = false; } // deep merge for vals var conf = { - values: clear ? alts.values : Object.assign({}, dur.values, alts.values || {}), + values: clear ? alts.values : _extends({}, dur.values, alts.values || {}), loc: dur.loc.clone(alts.loc), conversionAccuracy: alts.conversionAccuracy || dur.conversionAccuracy }; @@ -3278,15 +3208,15 @@ var luxon = (function (exports) { }, null); } /** - * A Duration object represents a period of time, like "2 months" or "1 day, 1 hour". Conceptually, it's just a map of units to their quantities, accompanied by some additional configuration and methods for creating, parsing, interrogating, transforming, and formatting them. They can be used on their own or in conjunction with other Luxon types; for example, you can use {@link DateTime.plus} to add a Duration object to a DateTime, producing another DateTime. + * A Duration object represents a period of time, like "2 months" or "1 day, 1 hour". Conceptually, it's just a map of units to their quantities, accompanied by some additional configuration and methods for creating, parsing, interrogating, transforming, and formatting them. They can be used on their own or in conjunction with other Luxon types; for example, you can use {@link DateTime#plus} to add a Duration object to a DateTime, producing another DateTime. * * Here is a brief overview of commonly used methods and getters in Duration: * - * * **Creation** To create a Duration, use {@link Duration.fromMillis}, {@link Duration.fromObject}, or {@link Duration.fromISO}. - * * **Unit values** See the {@link Duration.years}, {@link Duration.months}, {@link Duration.weeks}, {@link Duration.days}, {@link Duration.hours}, {@link Duration.minutes}, {@link Duration.seconds}, {@link Duration.milliseconds} accessors. - * * **Configuration** See {@link Duration.locale} and {@link Duration.numberingSystem} accessors. - * * **Transformation** To create new Durations out of old ones use {@link Duration.plus}, {@link Duration.minus}, {@link Duration.normalize}, {@link Duration.set}, {@link Duration.reconfigure}, {@link Duration.shiftTo}, and {@link Duration.negate}. - * * **Output** To convert the Duration into other representations, see {@link Duration.as}, {@link Duration.toISO}, {@link Duration.toFormat}, and {@link Duration.toJSON} + * * **Creation** To create a Duration, use {@link Duration#fromMillis}, {@link Duration#fromObject}, or {@link Duration#fromISO}. + * * **Unit values** See the {@link Duration#years}, {@link Duration.months}, {@link Duration#weeks}, {@link Duration#days}, {@link Duration#hours}, {@link Duration#minutes}, {@link Duration#seconds}, {@link Duration#milliseconds} accessors. + * * **Configuration** See {@link Duration#locale} and {@link Duration#numberingSystem} accessors. + * * **Transformation** To create new Durations out of old ones use {@link Duration#plus}, {@link Duration#minus}, {@link Duration#normalize}, {@link Duration#set}, {@link Duration#reconfigure}, {@link Duration#shiftTo}, and {@link Duration#negate}. + * * **Output** To convert the Duration into other representations, see {@link Duration#as}, {@link Duration#toISO}, {@link Duration#toFormat}, and {@link Duration#toJSON} * * There's are more methods documented below. In addition, for more information on subtler topics like internationalization and validity, see the external documentation. */ @@ -3341,12 +3271,12 @@ var luxon = (function (exports) { Duration.fromMillis = function fromMillis(count, opts) { - return Duration.fromObject(Object.assign({ + return Duration.fromObject({ milliseconds: count - }, opts)); + }, opts); } /** - * Create a Duration from a Javascript object with keys like 'years' and 'hours. + * Create a Duration from a JavaScript object with keys like 'years' and 'hours'. * If this object is empty then a zero milliseconds duration is returned. * @param {Object} obj - the object to create the DateTime from * @param {number} obj.years @@ -3358,25 +3288,52 @@ var luxon = (function (exports) { * @param {number} obj.minutes * @param {number} obj.seconds * @param {number} obj.milliseconds - * @param {string} [obj.locale='en-US'] - the locale to use - * @param {string} obj.numberingSystem - the numbering system to use - * @param {string} [obj.conversionAccuracy='casual'] - the conversion system to use + * @param {Object} [opts=[]] - options for creating this Duration + * @param {string} [opts.locale='en-US'] - the locale to use + * @param {string} opts.numberingSystem - the numbering system to use + * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use * @return {Duration} */ ; - Duration.fromObject = function fromObject(obj) { + Duration.fromObject = function fromObject(obj, opts) { + if (opts === void 0) { + opts = {}; + } + if (obj == null || typeof obj !== "object") { throw new InvalidArgumentError("Duration.fromObject: argument expected to be an object, got " + (obj === null ? "null" : typeof obj)); } return new Duration({ - values: normalizeObject(obj, Duration.normalizeUnit, ["locale", "numberingSystem", "conversionAccuracy", "zone" // a bit of debt; it's super inconvenient internally not to be able to blindly pass this - ]), - loc: Locale.fromObject(obj), - conversionAccuracy: obj.conversionAccuracy + values: normalizeObject(obj, Duration.normalizeUnit), + loc: Locale.fromObject(opts), + conversionAccuracy: opts.conversionAccuracy }); } + /** + * Create a Duration from DurationLike. + * + * @param {Object | number | Duration} durationLike + * One of: + * - object with keys like 'years' and 'hours'. + * - number representing milliseconds + * - Duration instance + * @return {Duration} + */ + ; + + Duration.fromDurationLike = function fromDurationLike(durationLike) { + if (isNumber(durationLike)) { + return Duration.fromMillis(durationLike); + } else if (Duration.isDuration(durationLike)) { + return durationLike; + } else if (typeof durationLike === "object") { + return Duration.fromObject(durationLike); + } else { + throw new InvalidArgumentError("Unknown duration argument " + durationLike + " of type " + typeof durationLike); + } + } /** * Create a Duration from an ISO 8601 duration string. * @param {string} text - text to parse @@ -3397,8 +3354,34 @@ var luxon = (function (exports) { parsed = _parseISODuration[0]; if (parsed) { - var obj = Object.assign(parsed, opts); - return Duration.fromObject(obj); + return Duration.fromObject(parsed, opts); + } else { + return Duration.invalid("unparsable", "the input \"" + text + "\" can't be parsed as ISO 8601"); + } + } + /** + * Create a Duration from an ISO 8601 time string. + * @param {string} text - text to parse + * @param {Object} opts - options for parsing + * @param {string} [opts.locale='en-US'] - the locale to use + * @param {string} opts.numberingSystem - the numbering system to use + * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use + * @see https://en.wikipedia.org/wiki/ISO_8601#Times + * @example Duration.fromISOTime('11:22:33.444').toObject() //=> { hours: 11, minutes: 22, seconds: 33, milliseconds: 444 } + * @example Duration.fromISOTime('11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 } + * @example Duration.fromISOTime('T11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 } + * @example Duration.fromISOTime('1100').toObject() //=> { hours: 11, minutes: 0, seconds: 0 } + * @example Duration.fromISOTime('T1100').toObject() //=> { hours: 11, minutes: 0, seconds: 0 } + * @return {Duration} + */ + ; + + Duration.fromISOTime = function fromISOTime(text, opts) { + var _parseISOTimeOnly = parseISOTimeOnly(text), + parsed = _parseISOTimeOnly[0]; + + if (parsed) { + return Duration.fromObject(parsed, opts); } else { return Duration.invalid("unparsable", "the input \"" + text + "\" can't be parsed as ISO 8601"); } @@ -3484,11 +3467,12 @@ var luxon = (function (exports) { * * `m` for minutes * * `h` for hours * * `d` for days + * * `w` for weeks * * `M` for months * * `y` for years * Notes: * * Add padding by repeating the token, e.g. "yy" pads the years to two digits, "hhhh" pads the hours out to four digits - * * The duration will be converted to the set of units in the format string using {@link Duration.shiftTo} and the Durations's conversion accuracy setting. + * * The duration will be converted to the set of units in the format string using {@link Duration#shiftTo} and the Durations's conversion accuracy setting. * @param {string} fmt - the format string * @param {Object} opts - options * @param {boolean} [opts.floor=true] - floor numerical values @@ -3502,36 +3486,66 @@ var luxon = (function (exports) { opts = {}; } - // reverse-compat since 1.2; we always round down now, never up, and we do it by default - var fmtOpts = Object.assign({}, opts, { - floor: opts.round !== false && opts.floor !== false + // reverse-compat since 1.2; we always round down now, never up, and we do it by default + var fmtOpts = _extends({}, opts, { + floor: opts.round !== false && opts.floor !== false + }); + + return this.isValid ? Formatter.create(this.loc, fmtOpts).formatDurationFromString(this, fmt) : INVALID$2; + } + /** + * Returns a string representation of a Duration with all units included. + * To modify its behavior use the `listStyle` and any Intl.NumberFormat option, though `unitDisplay` is especially relevant. + * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat + * @param opts - On option object to override the formatting. Accepts the same keys as the options parameter of the native `Int.NumberFormat` constructor, as well as `listStyle`. + * @example + * ```js + * var dur = Duration.fromObject({ days: 1, hours: 5, minutes: 6 }) + * dur.toHuman() //=> '1 day, 5 hours, 6 minutes' + * dur.toHuman({ listStyle: "long" }) //=> '1 day, 5 hours, and 6 minutes' + * dur.toHuman({ unitDisplay: "short" }) //=> '1 day, 5 hr, 6 min' + * ``` + */ + ; + + _proto.toHuman = function toHuman(opts) { + var _this = this; + + if (opts === void 0) { + opts = {}; + } + + var l = orderedUnits$1.map(function (unit) { + var val = _this.values[unit]; + + if (isUndefined(val)) { + return null; + } + + return _this.loc.numberFormatter(_extends({ + style: "unit", + unitDisplay: "long" + }, opts, { + unit: unit.slice(0, -1) + })).format(val); + }).filter(function (n) { + return n; }); - return this.isValid ? Formatter.create(this.loc, fmtOpts).formatDurationFromString(this, fmt) : INVALID; + return this.loc.listFormatter(_extends({ + type: "conjunction", + style: opts.listStyle || "narrow" + }, opts)).format(l); } /** - * Returns a Javascript object with this Duration's values. - * @param opts - options for generating the object - * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output + * Returns a JavaScript object with this Duration's values. * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toObject() //=> { years: 1, days: 6, seconds: 2 } * @return {Object} */ ; - _proto.toObject = function toObject(opts) { - if (opts === void 0) { - opts = {}; - } - + _proto.toObject = function toObject() { if (!this.isValid) return {}; - var base = Object.assign({}, this.values); - - if (opts.includeConfig) { - base.conversionAccuracy = this.conversionAccuracy; - base.numberingSystem = this.loc.numberingSystem; - base.locale = this.loc.locale; - } - - return base; + return _extends({}, this.values); } /** * Returns an ISO 8601-compliant string representation of this Duration. @@ -3562,6 +3576,57 @@ var luxon = (function (exports) { if (s === "P") s += "T0S"; return s; } + /** + * Returns an ISO 8601-compliant string representation of this Duration, formatted as a time of day. + * Note that this will return null if the duration is invalid, negative, or equal to or greater than 24 hours. + * @see https://en.wikipedia.org/wiki/ISO_8601#Times + * @param {Object} opts - options + * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0 + * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0 + * @param {boolean} [opts.includePrefix=false] - include the `T` prefix + * @param {string} [opts.format='extended'] - choose between the basic and extended format + * @example Duration.fromObject({ hours: 11 }).toISOTime() //=> '11:00:00.000' + * @example Duration.fromObject({ hours: 11 }).toISOTime({ suppressMilliseconds: true }) //=> '11:00:00' + * @example Duration.fromObject({ hours: 11 }).toISOTime({ suppressSeconds: true }) //=> '11:00' + * @example Duration.fromObject({ hours: 11 }).toISOTime({ includePrefix: true }) //=> 'T11:00:00.000' + * @example Duration.fromObject({ hours: 11 }).toISOTime({ format: 'basic' }) //=> '110000.000' + * @return {string} + */ + ; + + _proto.toISOTime = function toISOTime(opts) { + if (opts === void 0) { + opts = {}; + } + + if (!this.isValid) return null; + var millis = this.toMillis(); + if (millis < 0 || millis >= 86400000) return null; + opts = _extends({ + suppressMilliseconds: false, + suppressSeconds: false, + includePrefix: false, + format: "extended" + }, opts); + var value = this.shiftTo("hours", "minutes", "seconds", "milliseconds"); + var fmt = opts.format === "basic" ? "hhmm" : "hh:mm"; + + if (!opts.suppressSeconds || value.seconds !== 0 || value.milliseconds !== 0) { + fmt += opts.format === "basic" ? "ss" : ":ss"; + + if (!opts.suppressMilliseconds || value.milliseconds !== 0) { + fmt += ".SSS"; + } + } + + var str = value.toFormat(fmt); + + if (opts.includePrefix) { + str = "T" + str; + } + + return str; + } /** * Returns an ISO 8601 representation of this Duration appropriate for use in JSON. * @return {string} @@ -3586,9 +3651,18 @@ var luxon = (function (exports) { */ ; - _proto.valueOf = function valueOf() { + _proto.toMillis = function toMillis() { return this.as("milliseconds"); } + /** + * Returns an milliseconds value of this Duration. Alias of {@link toMillis} + * @return {number} + */ + ; + + _proto.valueOf = function valueOf() { + return this.toMillis(); + } /** * Make this Duration longer by the specified amount. Return a newly-constructed Duration. * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject() @@ -3598,10 +3672,10 @@ var luxon = (function (exports) { _proto.plus = function plus(duration) { if (!this.isValid) return this; - var dur = friendlyDuration(duration), + var dur = Duration.fromDurationLike(duration), result = {}; - for (var _iterator = _createForOfIteratorHelperLoose(orderedUnits), _step; !(_step = _iterator()).done;) { + for (var _iterator = _createForOfIteratorHelperLoose(orderedUnits$1), _step; !(_step = _iterator()).done;) { var k = _step.value; if (hasOwnProperty(dur.values, k) || hasOwnProperty(this.values, k)) { @@ -3609,7 +3683,7 @@ var luxon = (function (exports) { } } - return clone(this, { + return clone$1(this, { values: result }, true); } @@ -3622,14 +3696,14 @@ var luxon = (function (exports) { _proto.minus = function minus(duration) { if (!this.isValid) return this; - var dur = friendlyDuration(duration); + var dur = Duration.fromDurationLike(duration); return this.plus(dur.negate()); } /** * Scale this Duration by the specified amount. Return a newly-constructed Duration. * @param {function} fn - The function to apply to each unit. Arity is 1 or 2: the value of the unit and, optionally, the unit name. Must return a number. - * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnit(x => x * 2) //=> { hours: 2, minutes: 60 } - * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnit((x, u) => u === "hour" ? x * 2 : x) //=> { hours: 2, minutes: 30 } + * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnits(x => x * 2) //=> { hours: 2, minutes: 60 } + * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnits((x, u) => u === "hour" ? x * 2 : x) //=> { hours: 2, minutes: 30 } * @return {Duration} */ ; @@ -3643,16 +3717,16 @@ var luxon = (function (exports) { result[k] = asNumber(fn(this.values[k], k)); } - return clone(this, { + return clone$1(this, { values: result }, true); } /** * Get the value of unit. * @param {string} unit - a unit such as 'minute' or 'day' - * @example Duration.fromObject({years: 2, days: 3}).years //=> 2 - * @example Duration.fromObject({years: 2, days: 3}).months //=> 0 - * @example Duration.fromObject({years: 2, days: 3}).days //=> 3 + * @example Duration.fromObject({years: 2, days: 3}).get('years') //=> 2 + * @example Duration.fromObject({years: 2, days: 3}).get('months') //=> 0 + * @example Duration.fromObject({years: 2, days: 3}).get('days') //=> 3 * @return {number} */ ; @@ -3671,8 +3745,10 @@ var luxon = (function (exports) { _proto.set = function set(values) { if (!this.isValid) return this; - var mixed = Object.assign(this.values, normalizeObject(values, Duration.normalizeUnit, [])); - return clone(this, { + + var mixed = _extends({}, this.values, normalizeObject(values, Duration.normalizeUnit)); + + return clone$1(this, { values: mixed }); } @@ -3701,7 +3777,7 @@ var luxon = (function (exports) { opts.conversionAccuracy = conversionAccuracy; } - return clone(this, opts); + return clone$1(this, opts); } /** * Return the length of the duration in the specified unit. @@ -3728,7 +3804,7 @@ var luxon = (function (exports) { if (!this.isValid) return this; var vals = this.toObject(); normalizeValues(this.matrix, vals); - return clone(this, { + return clone$1(this, { values: vals }, true); } @@ -3757,9 +3833,8 @@ var luxon = (function (exports) { accumulated = {}, vals = this.toObject(); var lastUnit; - normalizeValues(this.matrix, vals); - for (var _iterator2 = _createForOfIteratorHelperLoose(orderedUnits), _step2; !(_step2 = _iterator2()).done;) { + for (var _iterator2 = _createForOfIteratorHelperLoose(orderedUnits$1), _step2; !(_step2 = _iterator2()).done;) { var k = _step2.value; if (units.indexOf(k) >= 0) { @@ -3778,11 +3853,10 @@ var luxon = (function (exports) { var i = Math.trunc(own); built[k] = i; - accumulated[k] = own - i; // we'd like to absorb these fractions in another unit - // plus anything further down the chain that should be rolled up in to this + accumulated[k] = (own * 1000 - i * 1000) / 1000; // plus anything further down the chain that should be rolled up in to this for (var down in vals) { - if (orderedUnits.indexOf(down) > orderedUnits.indexOf(k)) { + if (orderedUnits$1.indexOf(down) > orderedUnits$1.indexOf(k)) { convert(this.matrix, vals, down, built, k); } } // otherwise, keep it in the wings to boil it later @@ -3800,7 +3874,7 @@ var luxon = (function (exports) { } } - return clone(this, { + return clone$1(this, { values: built }, true).normalize(); } @@ -3817,10 +3891,10 @@ var luxon = (function (exports) { for (var _i2 = 0, _Object$keys2 = Object.keys(this.values); _i2 < _Object$keys2.length; _i2++) { var k = _Object$keys2[_i2]; - negated[k] = -this.values[k]; + negated[k] = this.values[k] === 0 ? 0 : -this.values[k]; } - return clone(this, { + return clone$1(this, { values: negated }, true); } @@ -3845,10 +3919,16 @@ var luxon = (function (exports) { return false; } - for (var _iterator3 = _createForOfIteratorHelperLoose(orderedUnits), _step3; !(_step3 = _iterator3()).done;) { + function eq(v1, v2) { + // Consider 0 and undefined as equal + if (v1 === undefined || v1 === 0) return v2 === undefined || v2 === 0; + return v1 === v2; + } + + for (var _iterator3 = _createForOfIteratorHelperLoose(orderedUnits$1), _step3; !(_step3 = _iterator3()).done;) { var u = _step3.value; - if (this.values[u] !== other.values[u]) { + if (!eq(this.values[u], other.values[u])) { return false; } } @@ -3992,17 +4072,6 @@ var luxon = (function (exports) { return Duration; }(); - function friendlyDuration(durationish) { - if (isNumber(durationish)) { - return Duration.fromMillis(durationish); - } else if (Duration.isDuration(durationish)) { - return durationish; - } else if (typeof durationish === "object") { - return Duration.fromObject(durationish); - } else { - throw new InvalidArgumentError("Unknown duration argument " + durationish + " of type " + typeof durationish); - } - } var INVALID$1 = "Invalid Interval"; // checks if the start is equal to or before the end @@ -4022,12 +4091,12 @@ var luxon = (function (exports) { * * Here is a brief overview of the most commonly used methods and getters in Interval: * - * * **Creation** To create an Interval, use {@link fromDateTimes}, {@link after}, {@link before}, or {@link fromISO}. - * * **Accessors** Use {@link start} and {@link end} to get the start and end. - * * **Interrogation** To analyze the Interval, use {@link count}, {@link length}, {@link hasSame}, {@link contains}, {@link isAfter}, or {@link isBefore}. - * * **Transformation** To create other Intervals out of this one, use {@link set}, {@link splitAt}, {@link splitBy}, {@link divideEqually}, {@link merge}, {@link xor}, {@link union}, {@link intersection}, or {@link difference}. - * * **Comparison** To compare this Interval to another one, use {@link equals}, {@link overlaps}, {@link abutsStart}, {@link abutsEnd}, {@link engulfs} - * * **Output** To convert the Interval into other representations, see {@link toString}, {@link toISO}, {@link toISODate}, {@link toISOTime}, {@link toFormat}, and {@link toDuration}. + * * **Creation** To create an Interval, use {@link Interval#fromDateTimes}, {@link Interval#after}, {@link Interval#before}, or {@link Interval#fromISO}. + * * **Accessors** Use {@link Interval#start} and {@link Interval#end} to get the start and end. + * * **Interrogation** To analyze the Interval, use {@link Interval#count}, {@link Interval#length}, {@link Interval#hasSame}, {@link Interval#contains}, {@link Interval#isAfter}, or {@link Interval#isBefore}. + * * **Transformation** To create other Intervals out of this one, use {@link Interval#set}, {@link Interval#splitAt}, {@link Interval#splitBy}, {@link Interval#divideEqually}, {@link Interval#merge}, {@link Interval#xor}, {@link Interval#union}, {@link Interval#intersection}, or {@link Interval#difference}. + * * **Comparison** To compare this Interval to another one, use {@link Interval#equals}, {@link Interval#overlaps}, {@link Interval#abutsStart}, {@link Interval#abutsEnd}, {@link Interval#engulfs} + * * **Output** To convert the Interval into other representations, see {@link Interval#toString}, {@link Interval#toISO}, {@link Interval#toISODate}, {@link Interval#toISOTime}, {@link Interval#toFormat}, and {@link Interval#toDuration}. */ @@ -4114,7 +4183,7 @@ var luxon = (function (exports) { ; Interval.after = function after(start, duration) { - var dur = friendlyDuration(duration), + var dur = Duration.fromDurationLike(duration), dt = friendlyDateTime(start); return Interval.fromDateTimes(dt, dt.plus(dur)); } @@ -4127,7 +4196,7 @@ var luxon = (function (exports) { ; Interval.before = function before(end, duration) { - var dur = friendlyDuration(duration), + var dur = Duration.fromDurationLike(duration), dt = friendlyDateTime(end); return Interval.fromDateTimes(dt.minus(dur), dt); } @@ -4135,7 +4204,7 @@ var luxon = (function (exports) { * Create an Interval from an ISO 8601 string. * Accepts `/`, `/`, and `/` formats. * @param {string} text - the ISO string to parse - * @param {Object} [opts] - options to pass {@link DateTime.fromISO} and optionally {@link Duration.fromISO} + * @param {Object} [opts] - options to pass {@link DateTime#fromISO} and optionally {@link Duration#fromISO} * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals * @return {Interval} */ @@ -4147,20 +4216,35 @@ var luxon = (function (exports) { e = _split[1]; if (s && e) { - var start = DateTime.fromISO(s, opts), - end = DateTime.fromISO(e, opts); + var start, startIsValid; + + try { + start = DateTime.fromISO(s, opts); + startIsValid = start.isValid; + } catch (e) { + startIsValid = false; + } + + var end, endIsValid; + + try { + end = DateTime.fromISO(e, opts); + endIsValid = end.isValid; + } catch (e) { + endIsValid = false; + } - if (start.isValid && end.isValid) { + if (startIsValid && endIsValid) { return Interval.fromDateTimes(start, end); } - if (start.isValid) { + if (startIsValid) { var dur = Duration.fromISO(e, opts); if (dur.isValid) { return Interval.after(start, dur); } - } else if (end.isValid) { + } else if (endIsValid) { var _dur = Duration.fromISO(s, opts); if (_dur.isValid) { @@ -4203,7 +4287,7 @@ var luxon = (function (exports) { } /** * Returns the count of minutes, hours, days, months, or years included in the Interval, even in part. - * Unlike {@link length} this counts sections of the calendar, not periods of time, e.g. specifying 'day' + * Unlike {@link Interval#length} this counts sections of the calendar, not periods of time, e.g. specifying 'day' * asks 'what dates are included in this interval?', not 'how many days long is this interval?' * @param {string} [unit='milliseconds'] - the unit of time to count. * @return {number} @@ -4228,7 +4312,7 @@ var luxon = (function (exports) { ; _proto.hasSame = function hasSame(unit) { - return this.isValid ? this.e.minus(1).hasSame(this.s, unit) : false; + return this.isValid ? this.isEmpty() || this.e.minus(1).hasSame(this.s, unit) : false; } /** * Return whether this Interval has the same start and end DateTimes. @@ -4291,8 +4375,8 @@ var luxon = (function (exports) { } /** * Split this Interval at each of the specified DateTimes - * @param {...[DateTime]} dateTimes - the unit of time to count. - * @return {[Interval]} + * @param {...DateTime} dateTimes - the unit of time to count. + * @return {Array} */ ; @@ -4326,27 +4410,30 @@ var luxon = (function (exports) { * Split this Interval into smaller Intervals, each of the specified length. * Left over time is grouped into a smaller interval * @param {Duration|Object|number} duration - The length of each resulting interval. - * @return {[Interval]} + * @return {Array} */ ; _proto.splitBy = function splitBy(duration) { - var dur = friendlyDuration(duration); + var dur = Duration.fromDurationLike(duration); if (!this.isValid || !dur.isValid || dur.as("milliseconds") === 0) { return []; } var s = this.s, - added, + idx = 1, next; var results = []; while (s < this.e) { - added = s.plus(dur); + var added = this.start.plus(dur.mapUnits(function (x) { + return x * idx; + })); next = +added > +this.e ? this.e : added; results.push(Interval.fromDateTimes(s, next)); s = next; + idx += 1; } return results; @@ -4354,7 +4441,7 @@ var luxon = (function (exports) { /** * Split this Interval into the specified number of smaller intervals. * @param {number} numberOfParts - The number of Intervals to divide the Interval into. - * @return {[Interval]} + * @return {Array} */ ; @@ -4433,7 +4520,7 @@ var luxon = (function (exports) { var s = this.s > other.s ? this.s : other.s, e = this.e < other.e ? this.e : other.e; - if (s > e) { + if (s >= e) { return null; } else { return Interval.fromDateTimes(s, e); @@ -4456,8 +4543,8 @@ var luxon = (function (exports) { /** * Merge an array of Intervals into a equivalent minimal set of Intervals. * Combines overlapping and adjacent Intervals. - * @param {[Interval]} intervals - * @return {[Interval]} + * @param {Array} intervals + * @return {Array} */ ; @@ -4487,8 +4574,8 @@ var luxon = (function (exports) { } /** * Return an array of Intervals representing the spans of time that only appear in one of the specified Intervals. - * @param {[Interval]} intervals - * @return {[Interval]} + * @param {Array} intervals + * @return {Array} */ ; @@ -4533,7 +4620,7 @@ var luxon = (function (exports) { /** * Return an Interval representing the span of time in this Interval that doesn't overlap with any of the specified Intervals. * @param {...Interval} intervals - * @return {[Interval]} + * @return {Array} */ ; @@ -4563,7 +4650,7 @@ var luxon = (function (exports) { /** * Returns an ISO 8601-compliant string representation of this Interval. * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals - * @param {Object} opts - The same options as {@link DateTime.toISO} + * @param {Object} opts - The same options as {@link DateTime#toISO} * @return {string} */ ; @@ -4588,7 +4675,7 @@ var luxon = (function (exports) { * Returns an ISO 8601-compliant string representation of time of this Interval. * The date components are ignored. * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals - * @param {Object} opts - The same options as {@link DateTime.toISO} + * @param {Object} opts - The same options as {@link DateTime#toISO} * @return {string} */ ; @@ -4599,7 +4686,7 @@ var luxon = (function (exports) { } /** * Returns a string representation of this Interval formatted according to the specified format string. - * @param {string} dateFormat - the format string. This string formats the start and end time. See {@link DateTime.toFormat} for details. + * @param {string} dateFormat - the format string. This string formats the start and end time. See {@link DateTime#toFormat} for details. * @param {Object} opts - options * @param {string} [opts.separator = ' – '] - a separator to place between the start and end representations * @return {string} @@ -4715,10 +4802,10 @@ var luxon = (function (exports) { zone = Settings.defaultZone; } - var proto = DateTime.local().setZone(zone).set({ + var proto = DateTime.now().setZone(zone).set({ month: 12 }); - return !zone.universal && proto.offset !== proto.set({ + return !zone.isUniversal && proto.offset !== proto.set({ month: 6 }).offset; } @@ -4730,7 +4817,7 @@ var luxon = (function (exports) { ; Info.isValidIANAZone = function isValidIANAZone(zone) { - return IANAZone.isValidSpecifier(zone) && IANAZone.isValidZone(zone); + return IANAZone.isValidZone(zone); } /** * Converts the input into a {@link Zone} instance. @@ -4739,7 +4826,7 @@ var luxon = (function (exports) { * * If `input` is a string containing a valid time zone name, a Zone instance * with that name is returned. * * If `input` is a string that doesn't refer to a known time zone, a Zone - * instance with {@link Zone.isValid} == false is returned. + * instance with {@link Zone#isValid} == false is returned. * * If `input is a number, a Zone instance with the specified fixed offset * in minutes is returned. * * If `input` is `null` or `undefined`, the default zone is returned. @@ -4758,6 +4845,7 @@ var luxon = (function (exports) { * @param {Object} opts - options * @param {string} [opts.locale] - the locale code * @param {string} [opts.numberingSystem=null] - the numbering system + * @param {string} [opts.locObj=null] - an existing locale object to use * @param {string} [opts.outputCalendar='gregory'] - the calendar * @example Info.months()[0] //=> 'January' * @example Info.months('short')[0] //=> 'Jan' @@ -4765,7 +4853,7 @@ var luxon = (function (exports) { * @example Info.months('short', { locale: 'fr-CA' } )[0] //=> 'janv.' * @example Info.months('numeric', { locale: 'ar' })[0] //=> '١' * @example Info.months('long', { outputCalendar: 'islamic' })[0] //=> 'Rabiʻ I' - * @return {[string]} + * @return {Array} */ ; @@ -4779,22 +4867,25 @@ var luxon = (function (exports) { locale = _ref$locale === void 0 ? null : _ref$locale, _ref$numberingSystem = _ref.numberingSystem, numberingSystem = _ref$numberingSystem === void 0 ? null : _ref$numberingSystem, + _ref$locObj = _ref.locObj, + locObj = _ref$locObj === void 0 ? null : _ref$locObj, _ref$outputCalendar = _ref.outputCalendar, outputCalendar = _ref$outputCalendar === void 0 ? "gregory" : _ref$outputCalendar; - return Locale.create(locale, numberingSystem, outputCalendar).months(length); + return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length); } /** * Return an array of format month names. * Format months differ from standalone months in that they're meant to appear next to the day of the month. In some languages, that * changes the string. - * See {@link months} + * See {@link Info#months} * @param {string} [length='long'] - the length of the month representation, such as "numeric", "2-digit", "narrow", "short", "long" * @param {Object} opts - options * @param {string} [opts.locale] - the locale code * @param {string} [opts.numberingSystem=null] - the numbering system + * @param {string} [opts.locObj=null] - an existing locale object to use * @param {string} [opts.outputCalendar='gregory'] - the calendar - * @return {[string]} + * @return {Array} */ ; @@ -4808,23 +4899,26 @@ var luxon = (function (exports) { locale = _ref2$locale === void 0 ? null : _ref2$locale, _ref2$numberingSystem = _ref2.numberingSystem, numberingSystem = _ref2$numberingSystem === void 0 ? null : _ref2$numberingSystem, + _ref2$locObj = _ref2.locObj, + locObj = _ref2$locObj === void 0 ? null : _ref2$locObj, _ref2$outputCalendar = _ref2.outputCalendar, outputCalendar = _ref2$outputCalendar === void 0 ? "gregory" : _ref2$outputCalendar; - return Locale.create(locale, numberingSystem, outputCalendar).months(length, true); + return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length, true); } /** * Return an array of standalone week names. * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat - * @param {string} [length='long'] - the length of the month representation, such as "narrow", "short", "long". + * @param {string} [length='long'] - the length of the weekday representation, such as "narrow", "short", "long". * @param {Object} opts - options * @param {string} [opts.locale] - the locale code * @param {string} [opts.numberingSystem=null] - the numbering system + * @param {string} [opts.locObj=null] - an existing locale object to use * @example Info.weekdays()[0] //=> 'Monday' * @example Info.weekdays('short')[0] //=> 'Mon' * @example Info.weekdays('short', { locale: 'fr-CA' })[0] //=> 'lun.' * @example Info.weekdays('short', { locale: 'ar' })[0] //=> 'الاثنين' - * @return {[string]} + * @return {Array} */ ; @@ -4837,20 +4931,23 @@ var luxon = (function (exports) { _ref3$locale = _ref3.locale, locale = _ref3$locale === void 0 ? null : _ref3$locale, _ref3$numberingSystem = _ref3.numberingSystem, - numberingSystem = _ref3$numberingSystem === void 0 ? null : _ref3$numberingSystem; + numberingSystem = _ref3$numberingSystem === void 0 ? null : _ref3$numberingSystem, + _ref3$locObj = _ref3.locObj, + locObj = _ref3$locObj === void 0 ? null : _ref3$locObj; - return Locale.create(locale, numberingSystem, null).weekdays(length); + return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length); } /** * Return an array of format week names. * Format weekdays differ from standalone weekdays in that they're meant to appear next to more date information. In some languages, that * changes the string. - * See {@link weekdays} + * See {@link Info#weekdays} * @param {string} [length='long'] - the length of the month representation, such as "narrow", "short", "long". * @param {Object} opts - options * @param {string} [opts.locale=null] - the locale code * @param {string} [opts.numberingSystem=null] - the numbering system - * @return {[string]} + * @param {string} [opts.locObj=null] - an existing locale object to use + * @return {Array} */ ; @@ -4863,9 +4960,11 @@ var luxon = (function (exports) { _ref4$locale = _ref4.locale, locale = _ref4$locale === void 0 ? null : _ref4$locale, _ref4$numberingSystem = _ref4.numberingSystem, - numberingSystem = _ref4$numberingSystem === void 0 ? null : _ref4$numberingSystem; + numberingSystem = _ref4$numberingSystem === void 0 ? null : _ref4$numberingSystem, + _ref4$locObj = _ref4.locObj, + locObj = _ref4$locObj === void 0 ? null : _ref4$locObj; - return Locale.create(locale, numberingSystem, null).weekdays(length, true); + return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length, true); } /** * Return an array of meridiems. @@ -4873,7 +4972,7 @@ var luxon = (function (exports) { * @param {string} [opts.locale] - the locale code * @example Info.meridiems() //=> [ 'AM', 'PM' ] * @example Info.meridiems({ locale: 'my' }) //=> [ 'နံနက်', 'ညနေ' ] - * @return {[string]} + * @return {Array} */ ; @@ -4892,7 +4991,7 @@ var luxon = (function (exports) { * @example Info.eras() //=> [ 'BC', 'AD' ] * @example Info.eras('long') //=> [ 'Before Christ', 'Anno Domini' ] * @example Info.eras('long', { locale: 'fr' }) //=> [ 'avant Jésus-Christ', 'après Jésus-Christ' ] - * @return {[string]} + * @return {Array} */ ; @@ -4909,42 +5008,17 @@ var luxon = (function (exports) { } /** * Return the set of available features in this environment. - * Some features of Luxon are not available in all environments. For example, on older browsers, timezone support is not available. Use this function to figure out if that's the case. + * Some features of Luxon are not available in all environments. For example, on older browsers, relative time formatting support is not available. Use this function to figure out if that's the case. * Keys: - * * `zones`: whether this environment supports IANA timezones - * * `intlTokens`: whether this environment supports internationalized token-based formatting/parsing - * * `intl`: whether this environment supports general internationalization * * `relative`: whether this environment supports relative time formatting - * @example Info.features() //=> { intl: true, intlTokens: false, zones: true, relative: false } + * @example Info.features() //=> { relative: false } * @return {Object} */ ; Info.features = function features() { - var intl = false, - intlTokens = false, - zones = false, - relative = false; - - if (hasIntl()) { - intl = true; - intlTokens = hasFormatToParts(); - relative = hasRelative(); - - try { - zones = new Intl.DateTimeFormat("en", { - timeZone: "America/New_York" - }).resolvedOptions().timeZone === "America/New_York"; - } catch (e) { - zones = false; - } - } - return { - intl: intl, - intlTokens: intlTokens, - zones: zones, - relative: relative + relative: hasRelative() }; }; @@ -4965,6 +5039,8 @@ var luxon = (function (exports) { function highOrderDiffs(cursor, later, units) { var differs = [["years", function (a, b) { return b.year - a.year; + }], ["quarters", function (a, b) { + return b.quarter - a.quarter; }], ["months", function (a, b) { return b.month - a.month + (b.year - a.year) * 12; }], ["weeks", function (a, b) { @@ -5026,7 +5102,7 @@ var luxon = (function (exports) { } } - var duration = Duration.fromObject(Object.assign(results, opts)); + var duration = Duration.fromObject(results, opts); if (lowerOrderUnits.length > 0) { var _Duration$fromMillis; @@ -5080,8 +5156,7 @@ var luxon = (function (exports) { telu: [3174, 3183], thai: [3664, 3673], tibt: [3872, 3881] - }; // eslint-disable-next-line - + }; var hanidecChars = numberingSystems.hanidec.replace(/[\[|\]]/g, "").split(""); function parseDigits(str) { var value = parseInt(str, 10); @@ -5140,13 +5215,20 @@ var luxon = (function (exports) { }; } + var NBSP = String.fromCharCode(160); + var spaceOrNBSP = "[ " + NBSP + "]"; + var spaceOrNBSPRegExp = new RegExp(spaceOrNBSP, "g"); + function fixListRegex(s) { // make dots optional and also make them literal - return s.replace(/\./, "\\.?"); + // make space and non breakable space characters interchangeable + return s.replace(/\./g, "\\.?").replace(spaceOrNBSPRegExp, spaceOrNBSP); } function stripInsensitivities(s) { - return s.replace(/\./, "").toLowerCase(); + return s.replace(/\./g, "") // ignore dots that were made optional + .replace(spaceOrNBSPRegExp, " ") // interchange space and nbsp + .toLowerCase(); } function oneOf(strings, startIndex) { @@ -5188,7 +5270,6 @@ var luxon = (function (exports) { } function escapeToken(value) { - // eslint-disable-next-line no-useless-escape return value.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&"); } @@ -5321,6 +5402,12 @@ var luxon = (function (exports) { case "u": return simple(oneToNine); + + case "uu": + return simple(oneOrTwo); + + case "uuu": + return intUnit(one); // meridiem case "a": @@ -5527,14 +5614,19 @@ var luxon = (function (exports) { } }; - var zone; + var zone = null; + var specificOffset; - if (!isUndefined(matches.Z)) { - zone = new FixedOffsetZone(matches.Z); - } else if (!isUndefined(matches.z)) { + if (!isUndefined(matches.z)) { zone = IANAZone.create(matches.z); - } else { - zone = null; + } + + if (!isUndefined(matches.Z)) { + if (!zone) { + zone = new FixedOffsetZone(matches.Z); + } + + specificOffset = matches.Z; } if (!isUndefined(matches.q)) { @@ -5566,7 +5658,7 @@ var luxon = (function (exports) { return r; }, {}); - return [vals, zone]; + return [vals, zone, specificOffset]; } var dummyDateTimeCache = null; @@ -5638,9 +5730,10 @@ var luxon = (function (exports) { _match = match(input, regex, handlers), rawMatches = _match[0], matches = _match[1], - _ref6 = matches ? dateTimeFromMatches(matches) : [null, null], + _ref6 = matches ? dateTimeFromMatches(matches) : [null, null, undefined], result = _ref6[0], - zone = _ref6[1]; + zone = _ref6[1], + specificOffset = _ref6[2]; if (hasOwnProperty(matches, "a") && hasOwnProperty(matches, "H")) { throw new ConflictingSpecificationError("Can't include meridiem when specifying 24-hour format"); @@ -5653,7 +5746,8 @@ var luxon = (function (exports) { rawMatches: rawMatches, matches: matches, result: result, - zone: zone + zone: zone, + specificOffset: specificOffset }; } } @@ -5661,9 +5755,10 @@ var luxon = (function (exports) { var _explainFromTokens = explainFromTokens(locale, input, format), result = _explainFromTokens.result, zone = _explainFromTokens.zone, + specificOffset = _explainFromTokens.specificOffset, invalidReason = _explainFromTokens.invalidReason; - return [result, zone, invalidReason]; + return [result, zone, specificOffset, invalidReason]; } var nonLeapLadder = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334], @@ -5674,7 +5769,13 @@ var luxon = (function (exports) { } function dayOfWeek(year, month, day) { - var js = new Date(Date.UTC(year, month - 1, day)).getUTCDay(); + var d = new Date(Date.UTC(year, month - 1, day)); + + if (year < 100 && year >= 0) { + d.setUTCFullYear(d.getUTCFullYear() - 1900); + } + + var js = d.getUTCDay(); return js === 0 ? 7 : js; } @@ -5717,7 +5818,7 @@ var luxon = (function (exports) { weekYear = year; } - return Object.assign({ + return _extends({ weekYear: weekYear, weekNumber: weekNumber, weekday: weekday @@ -5746,7 +5847,7 @@ var luxon = (function (exports) { month = _uncomputeOrdinal.month, day = _uncomputeOrdinal.day; - return Object.assign({ + return _extends({ year: year, month: month, day: day @@ -5755,21 +5856,22 @@ var luxon = (function (exports) { function gregorianToOrdinal(gregData) { var year = gregData.year, month = gregData.month, - day = gregData.day, - ordinal = computeOrdinal(year, month, day); - return Object.assign({ + day = gregData.day; + var ordinal = computeOrdinal(year, month, day); + return _extends({ year: year, ordinal: ordinal }, timeObject(gregData)); } function ordinalToGregorian(ordinalData) { var year = ordinalData.year, - ordinal = ordinalData.ordinal, - _uncomputeOrdinal2 = uncomputeOrdinal(year, ordinal), + ordinal = ordinalData.ordinal; + + var _uncomputeOrdinal2 = uncomputeOrdinal(year, ordinal), month = _uncomputeOrdinal2.month, day = _uncomputeOrdinal2.day; - return Object.assign({ + return _extends({ year: year, month: month, day: day @@ -5832,7 +5934,7 @@ var luxon = (function (exports) { } else return false; } - var INVALID$2 = "Invalid DateTime"; + var INVALID = "Invalid DateTime"; var MAX_DATE = 8.64e15; function unsupportedZone(zone) { @@ -5850,7 +5952,7 @@ var luxon = (function (exports) { // to create a new object while only changing some of the properties - function clone$1(inst, alts) { + function clone(inst, alts) { var current = { ts: inst.ts, zone: inst.zone, @@ -5859,7 +5961,7 @@ var luxon = (function (exports) { loc: inst.loc, invalid: inst.invalid }; - return new DateTime(Object.assign({}, current, alts, { + return new DateTime(_extends({}, current, alts, { old: current })); } // find the right offset a given local time. The o input is our guess, which determines which @@ -5911,24 +6013,20 @@ var luxon = (function (exports) { function adjustTime(inst, dur) { - var _dur; - - var keys = Object.keys(dur.values); - - if (keys.indexOf("milliseconds") === -1) { - keys.push("milliseconds"); - } - - dur = (_dur = dur).shiftTo.apply(_dur, keys); var oPre = inst.o, - year = inst.c.year + dur.years, - month = inst.c.month + dur.months + dur.quarters * 3, - c = Object.assign({}, inst.c, { + year = inst.c.year + Math.trunc(dur.years), + month = inst.c.month + Math.trunc(dur.months) + Math.trunc(dur.quarters) * 3, + c = _extends({}, inst.c, { year: year, month: month, - day: Math.min(inst.c.day, daysInMonth(year, month)) + dur.days + dur.weeks * 7 + day: Math.min(inst.c.day, daysInMonth(year, month)) + Math.trunc(dur.days) + Math.trunc(dur.weeks) * 7 }), millisToAdd = Duration.fromObject({ + years: dur.years - Math.trunc(dur.years), + quarters: dur.quarters - Math.trunc(dur.quarters), + months: dur.months - Math.trunc(dur.months), + weeks: dur.weeks - Math.trunc(dur.weeks), + days: dur.days - Math.trunc(dur.days), hours: dur.hours, minutes: dur.minutes, seconds: dur.seconds, @@ -5954,16 +6052,15 @@ var luxon = (function (exports) { // by handling the zone options - function parseDataToDateTime(parsed, parsedZone, opts, format, text) { + function parseDataToDateTime(parsed, parsedZone, opts, format, text, specificOffset) { var setZone = opts.setZone, zone = opts.zone; if (parsed && Object.keys(parsed).length !== 0) { var interpretationZone = parsedZone || zone, - inst = DateTime.fromObject(Object.assign(parsed, opts, { + inst = DateTime.fromObject(parsed, _extends({}, opts, { zone: interpretationZone, - // setZone is a valid option in the calling methods, but not in fromObject - setZone: undefined + specificOffset: specificOffset })); return setZone ? inst : inst.setZone(zone); } else { @@ -5982,43 +6079,71 @@ var luxon = (function (exports) { allowZ: allowZ, forceSimple: true }).formatDateTimeFromString(dt, format) : null; - } // technical time formats (e.g. the time part of ISO 8601), take some options - // and this commonizes their handling + } + + function _toISODate(o, extended) { + var longFormat = o.c.year > 9999 || o.c.year < 0; + var c = ""; + if (longFormat && o.c.year >= 0) c += "+"; + c += padStart(o.c.year, longFormat ? 6 : 4); + + if (extended) { + c += "-"; + c += padStart(o.c.month); + c += "-"; + c += padStart(o.c.day); + } else { + c += padStart(o.c.month); + c += padStart(o.c.day); + } + + return c; + } + + function _toISOTime(o, extended, suppressSeconds, suppressMilliseconds, includeOffset, extendedZone) { + var c = padStart(o.c.hour); + if (extended) { + c += ":"; + c += padStart(o.c.minute); - function toTechTimeFormat(dt, _ref) { - var _ref$suppressSeconds = _ref.suppressSeconds, - suppressSeconds = _ref$suppressSeconds === void 0 ? false : _ref$suppressSeconds, - _ref$suppressMillisec = _ref.suppressMilliseconds, - suppressMilliseconds = _ref$suppressMillisec === void 0 ? false : _ref$suppressMillisec, - includeOffset = _ref.includeOffset, - _ref$includeZone = _ref.includeZone, - includeZone = _ref$includeZone === void 0 ? false : _ref$includeZone, - _ref$spaceZone = _ref.spaceZone, - spaceZone = _ref$spaceZone === void 0 ? false : _ref$spaceZone, - _ref$format = _ref.format, - format = _ref$format === void 0 ? "extended" : _ref$format; - var fmt = format === "basic" ? "HHmm" : "HH:mm"; + if (o.c.second !== 0 || !suppressSeconds) { + c += ":"; + } + } else { + c += padStart(o.c.minute); + } - if (!suppressSeconds || dt.second !== 0 || dt.millisecond !== 0) { - fmt += format === "basic" ? "ss" : ":ss"; + if (o.c.second !== 0 || !suppressSeconds) { + c += padStart(o.c.second); - if (!suppressMilliseconds || dt.millisecond !== 0) { - fmt += ".SSS"; + if (o.c.millisecond !== 0 || !suppressMilliseconds) { + c += "."; + c += padStart(o.c.millisecond, 3); } } - if ((includeZone || includeOffset) && spaceZone) { - fmt += " "; + if (includeOffset) { + if (o.isOffsetFixed && o.offset === 0 && !extendedZone) { + c += "Z"; + } else if (o.o < 0) { + c += "-"; + c += padStart(Math.trunc(-o.o / 60)); + c += ":"; + c += padStart(Math.trunc(-o.o % 60)); + } else { + c += "+"; + c += padStart(Math.trunc(o.o / 60)); + c += ":"; + c += padStart(Math.trunc(o.o % 60)); + } } - if (includeZone) { - fmt += "z"; - } else if (includeOffset) { - fmt += format === "basic" ? "ZZZ" : "ZZ"; + if (extendedZone) { + c += "[" + o.zone.ianaName + "]"; } - return toTechFormat(dt, fmt); + return c; } // defaults for unspecified units in the supported calendars @@ -6046,7 +6171,7 @@ var luxon = (function (exports) { millisecond: 0 }; // Units in the supported calendars, sorted by bigness - var orderedUnits$1 = ["year", "month", "day", "hour", "minute", "second", "millisecond"], + var orderedUnits = ["year", "month", "day", "hour", "minute", "second", "millisecond"], orderedWeekUnits = ["weekYear", "weekNumber", "weekday", "hour", "minute", "second", "millisecond"], orderedOrdinalUnits = ["year", "ordinal", "hour", "minute", "second", "millisecond"]; // standardize case and plurality in units @@ -6084,31 +6209,41 @@ var luxon = (function (exports) { // are present, and so on. - function quickDT(obj, zone) { - // assume we have the higher-order units - for (var _iterator = _createForOfIteratorHelperLoose(orderedUnits$1), _step; !(_step = _iterator()).done;) { - var u = _step.value; + function quickDT(obj, opts) { + var zone = normalizeZone(opts.zone, Settings.defaultZone), + loc = Locale.fromObject(opts), + tsNow = Settings.now(); + var ts, o; // assume we have the higher-order units + + if (!isUndefined(obj.year)) { + for (var _iterator = _createForOfIteratorHelperLoose(orderedUnits), _step; !(_step = _iterator()).done;) { + var u = _step.value; + + if (isUndefined(obj[u])) { + obj[u] = defaultUnitValues[u]; + } + } + + var invalid = hasInvalidGregorianData(obj) || hasInvalidTimeData(obj); - if (isUndefined(obj[u])) { - obj[u] = defaultUnitValues[u]; + if (invalid) { + return DateTime.invalid(invalid); } - } - var invalid = hasInvalidGregorianData(obj) || hasInvalidTimeData(obj); + var offsetProvis = zone.offset(tsNow); - if (invalid) { - return DateTime.invalid(invalid); - } + var _objToTS = objToTS(obj, offsetProvis, zone); - var tsNow = Settings.now(), - offsetProvis = zone.offset(tsNow), - _objToTS = objToTS(obj, offsetProvis, zone), - ts = _objToTS[0], - o = _objToTS[1]; + ts = _objToTS[0]; + o = _objToTS[1]; + } else { + ts = tsNow; + } return new DateTime({ ts: ts, zone: zone, + loc: loc, o: o }); } @@ -6143,7 +6278,21 @@ var luxon = (function (exports) { } } - return format(0, opts.units[opts.units.length - 1]); + return format(start > end ? -0 : 0, opts.units[opts.units.length - 1]); + } + + function lastOpts(argList) { + var opts = {}, + args; + + if (argList.length > 0 && typeof argList[argList.length - 1] === "object") { + opts = argList[argList.length - 1]; + args = Array.from(argList).slice(0, argList.length - 1); + } else { + args = Array.from(argList); + } + + return [opts, args]; } /** * A DateTime is an immutable data structure representing a specific date and time and accompanying methods. It contains class and instance methods for creating, parsing, interrogating, transforming, and formatting them. @@ -6155,13 +6304,13 @@ var luxon = (function (exports) { * * Here is a brief overview of the most commonly used functionality it provides: * - * * **Creation**: To create a DateTime from its components, use one of its factory class methods: {@link local}, {@link utc}, and (most flexibly) {@link fromObject}. To create one from a standard string format, use {@link fromISO}, {@link fromHTTP}, and {@link fromRFC2822}. To create one from a custom string format, use {@link fromFormat}. To create one from a native JS date, use {@link fromJSDate}. - * * **Gregorian calendar and time**: To examine the Gregorian properties of a DateTime individually (i.e as opposed to collectively through {@link toObject}), use the {@link year}, {@link month}, - * {@link day}, {@link hour}, {@link minute}, {@link second}, {@link millisecond} accessors. - * * **Week calendar**: For ISO week calendar attributes, see the {@link weekYear}, {@link weekNumber}, and {@link weekday} accessors. - * * **Configuration** See the {@link locale} and {@link numberingSystem} accessors. - * * **Transformation**: To transform the DateTime into other DateTimes, use {@link set}, {@link reconfigure}, {@link setZone}, {@link setLocale}, {@link plus}, {@link minus}, {@link endOf}, {@link startOf}, {@link toUTC}, and {@link toLocal}. - * * **Output**: To convert the DateTime to other representations, use the {@link toRelative}, {@link toRelativeCalendar}, {@link toJSON}, {@link toISO}, {@link toHTTP}, {@link toObject}, {@link toRFC2822}, {@link toString}, {@link toLocaleString}, {@link toFormat}, {@link toMillis} and {@link toJSDate}. + * * **Creation**: To create a DateTime from its components, use one of its factory class methods: {@link DateTime#local}, {@link DateTime#utc}, and (most flexibly) {@link DateTime#fromObject}. To create one from a standard string format, use {@link DateTime#fromISO}, {@link DateTime#fromHTTP}, and {@link DateTime#fromRFC2822}. To create one from a custom string format, use {@link DateTime#fromFormat}. To create one from a native JS date, use {@link DateTime#fromJSDate}. + * * **Gregorian calendar and time**: To examine the Gregorian properties of a DateTime individually (i.e as opposed to collectively through {@link DateTime#toObject}), use the {@link DateTime#year}, {@link DateTime#month}, + * {@link DateTime#day}, {@link DateTime#hour}, {@link DateTime#minute}, {@link DateTime#second}, {@link DateTime#millisecond} accessors. + * * **Week calendar**: For ISO week calendar attributes, see the {@link DateTime#weekYear}, {@link DateTime#weekNumber}, and {@link DateTime#weekday} accessors. + * * **Configuration** See the {@link DateTime#locale} and {@link DateTime#numberingSystem} accessors. + * * **Transformation**: To transform the DateTime into other DateTimes, use {@link DateTime#set}, {@link DateTime#reconfigure}, {@link DateTime#setZone}, {@link DateTime#setLocale}, {@link DateTime.plus}, {@link DateTime#minus}, {@link DateTime#endOf}, {@link DateTime#startOf}, {@link DateTime#toUTC}, and {@link DateTime#toLocal}. + * * **Output**: To convert the DateTime to other representations, use the {@link DateTime#toRelative}, {@link DateTime#toRelativeCalendar}, {@link DateTime#toJSON}, {@link DateTime#toISO}, {@link DateTime#toHTTP}, {@link DateTime#toObject}, {@link DateTime#toRFC2822}, {@link DateTime#toString}, {@link DateTime#toLocaleString}, {@link DateTime#toFormat}, {@link DateTime#toMillis} and {@link DateTime#toJSDate}. * * There's plenty others documented below. In addition, for more information on subtler topics like internationalization, time zones, alternative calendars, validity, and so on, see the external documentation. */ @@ -6186,9 +6335,9 @@ var luxon = (function (exports) { var unchanged = config.old && config.old.ts === this.ts && config.old.zone.equals(zone); if (unchanged) { - var _ref2 = [config.old.c, config.old.o]; - c = _ref2[0]; - o = _ref2[1]; + var _ref = [config.old.c, config.old.o]; + c = _ref[0]; + o = _ref[1]; } else { var ot = zone.offset(this.ts); c = tsToObj(this.ts, ot); @@ -6235,43 +6384,62 @@ var luxon = (function (exports) { this.isLuxonDateTime = true; } // CONSTRUCT + /** + * Create a DateTime for the current instant, in the system's time zone. + * + * Use Settings to override these default values if needed. + * @example DateTime.now().toISO() //~> now in the ISO format + * @return {DateTime} + */ + + + DateTime.now = function now() { + return new DateTime({}); + } /** * Create a local DateTime * @param {number} [year] - The calendar year. If omitted (as in, call `local()` with no arguments), the current time will be used * @param {number} [month=1] - The month, 1-indexed - * @param {number} [day=1] - The day of the month + * @param {number} [day=1] - The day of the month, 1-indexed * @param {number} [hour=0] - The hour of the day, in 24-hour time * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59 * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59 * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999 - * @example DateTime.local() //~> now - * @example DateTime.local(2017) //~> 2017-01-01T00:00:00 - * @example DateTime.local(2017, 3) //~> 2017-03-01T00:00:00 - * @example DateTime.local(2017, 3, 12) //~> 2017-03-12T00:00:00 - * @example DateTime.local(2017, 3, 12, 5) //~> 2017-03-12T05:00:00 - * @example DateTime.local(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00 - * @example DateTime.local(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10 - * @example DateTime.local(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765 + * @example DateTime.local() //~> now + * @example DateTime.local({ zone: "America/New_York" }) //~> now, in US east coast time + * @example DateTime.local(2017) //~> 2017-01-01T00:00:00 + * @example DateTime.local(2017, 3) //~> 2017-03-01T00:00:00 + * @example DateTime.local(2017, 3, 12, { locale: "fr" }) //~> 2017-03-12T00:00:00, with a French locale + * @example DateTime.local(2017, 3, 12, 5) //~> 2017-03-12T05:00:00 + * @example DateTime.local(2017, 3, 12, 5, { zone: "utc" }) //~> 2017-03-12T05:00:00, in UTC + * @example DateTime.local(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00 + * @example DateTime.local(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10 + * @example DateTime.local(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765 * @return {DateTime} */ + ; + DateTime.local = function local() { + var _lastOpts = lastOpts(arguments), + opts = _lastOpts[0], + args = _lastOpts[1], + year = args[0], + month = args[1], + day = args[2], + hour = args[3], + minute = args[4], + second = args[5], + millisecond = args[6]; - DateTime.local = function local(year, month, day, hour, minute, second, millisecond) { - if (isUndefined(year)) { - return new DateTime({ - ts: Settings.now() - }); - } else { - return quickDT({ - year: year, - month: month, - day: day, - hour: hour, - minute: minute, - second: second, - millisecond: millisecond - }, Settings.defaultZone); - } + return quickDT({ + year: year, + month: month, + day: day, + hour: hour, + minute: minute, + second: second, + millisecond: millisecond + }, opts); } /** * Create a DateTime in UTC @@ -6282,39 +6450,49 @@ var luxon = (function (exports) { * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59 * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59 * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999 - * @example DateTime.utc() //~> now - * @example DateTime.utc(2017) //~> 2017-01-01T00:00:00Z - * @example DateTime.utc(2017, 3) //~> 2017-03-01T00:00:00Z - * @example DateTime.utc(2017, 3, 12) //~> 2017-03-12T00:00:00Z - * @example DateTime.utc(2017, 3, 12, 5) //~> 2017-03-12T05:00:00Z - * @example DateTime.utc(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00Z - * @example DateTime.utc(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10Z - * @example DateTime.utc(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765Z + * @param {Object} options - configuration options for the DateTime + * @param {string} [options.locale] - a locale to set on the resulting DateTime instance + * @param {string} [options.outputCalendar] - the output calendar to set on the resulting DateTime instance + * @param {string} [options.numberingSystem] - the numbering system to set on the resulting DateTime instance + * @example DateTime.utc() //~> now + * @example DateTime.utc(2017) //~> 2017-01-01T00:00:00Z + * @example DateTime.utc(2017, 3) //~> 2017-03-01T00:00:00Z + * @example DateTime.utc(2017, 3, 12) //~> 2017-03-12T00:00:00Z + * @example DateTime.utc(2017, 3, 12, 5) //~> 2017-03-12T05:00:00Z + * @example DateTime.utc(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00Z + * @example DateTime.utc(2017, 3, 12, 5, 45, { locale: "fr" }) //~> 2017-03-12T05:45:00Z with a French locale + * @example DateTime.utc(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10Z + * @example DateTime.utc(2017, 3, 12, 5, 45, 10, 765, { locale: "fr" }) //~> 2017-03-12T05:45:10.765Z with a French locale * @return {DateTime} */ ; - DateTime.utc = function utc(year, month, day, hour, minute, second, millisecond) { - if (isUndefined(year)) { - return new DateTime({ - ts: Settings.now(), - zone: FixedOffsetZone.utcInstance - }); - } else { - return quickDT({ - year: year, - month: month, - day: day, - hour: hour, - minute: minute, - second: second, - millisecond: millisecond - }, FixedOffsetZone.utcInstance); - } + DateTime.utc = function utc() { + var _lastOpts2 = lastOpts(arguments), + opts = _lastOpts2[0], + args = _lastOpts2[1], + year = args[0], + month = args[1], + day = args[2], + hour = args[3], + minute = args[4], + second = args[5], + millisecond = args[6]; + + opts.zone = FixedOffsetZone.utcInstance; + return quickDT({ + year: year, + month: month, + day: day, + hour: hour, + minute: minute, + second: second, + millisecond: millisecond + }, opts); } /** - * Create a DateTime from a Javascript Date object. Uses the default zone. - * @param {Date} date - a Javascript Date object + * Create a DateTime from a JavaScript Date object. Uses the default zone. + * @param {Date} date - a JavaScript Date object * @param {Object} options - configuration options for the DateTime * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into * @return {DateTime} @@ -6402,7 +6580,7 @@ var luxon = (function (exports) { } } /** - * Create a DateTime from a Javascript object with keys like 'year' and 'hour' with reasonable defaults. + * Create a DateTime from a JavaScript object with keys like 'year' and 'hour' with reasonable defaults. * @param {Object} obj - the object to create the DateTime from * @param {number} obj.year - a year, such as 1987 * @param {number} obj.month - a month, 1-12 @@ -6415,37 +6593,43 @@ var luxon = (function (exports) { * @param {number} obj.minute - minute of the hour, 0-59 * @param {number} obj.second - second of the minute, 0-59 * @param {number} obj.millisecond - millisecond of the second, 0-999 - * @param {string|Zone} [obj.zone='local'] - interpret the numbers in the context of a particular zone. Can take any value taken as the first argument to setZone() - * @param {string} [obj.locale='system's locale'] - a locale to set on the resulting DateTime instance - * @param {string} obj.outputCalendar - the output calendar to set on the resulting DateTime instance - * @param {string} obj.numberingSystem - the numbering system to set on the resulting DateTime instance + * @param {Object} opts - options for creating this DateTime + * @param {string|Zone} [opts.zone='local'] - interpret the numbers in the context of a particular zone. Can take any value taken as the first argument to setZone() + * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance + * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance + * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance * @example DateTime.fromObject({ year: 1982, month: 5, day: 25}).toISODate() //=> '1982-05-25' * @example DateTime.fromObject({ year: 1982 }).toISODate() //=> '1982-01-01' * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }) //~> today at 10:26:06 - * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'utc' }), - * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'local' }) - * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'America/New_York' }) + * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'utc' }), + * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'local' }) + * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'America/New_York' }) * @example DateTime.fromObject({ weekYear: 2016, weekNumber: 2, weekday: 3 }).toISODate() //=> '2016-01-13' * @return {DateTime} */ ; - DateTime.fromObject = function fromObject(obj) { - var zoneToUse = normalizeZone(obj.zone, Settings.defaultZone); + DateTime.fromObject = function fromObject(obj, opts) { + if (opts === void 0) { + opts = {}; + } + + obj = obj || {}; + var zoneToUse = normalizeZone(opts.zone, Settings.defaultZone); if (!zoneToUse.isValid) { return DateTime.invalid(unsupportedZone(zoneToUse)); } var tsNow = Settings.now(), - offsetProvis = zoneToUse.offset(tsNow), - normalized = normalizeObject(obj, normalizeUnit, ["zone", "locale", "outputCalendar", "numberingSystem"]), + offsetProvis = !isUndefined(opts.specificOffset) ? opts.specificOffset : zoneToUse.offset(tsNow), + normalized = normalizeObject(obj, normalizeUnit), containsOrdinal = !isUndefined(normalized.ordinal), containsGregorYear = !isUndefined(normalized.year), containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day), containsGregor = containsGregorYear || containsGregorMD, definiteWeekDef = normalized.weekYear || normalized.weekNumber, - loc = Locale.fromObject(obj); // cases: + loc = Locale.fromObject(opts); // cases: // just a weekday -> this week's instance of that weekday, no worries // (gregorian data or ordinal) + (weekYear or weekNumber) -> error // (gregorian month or day) + ordinal -> error @@ -6474,7 +6658,7 @@ var luxon = (function (exports) { defaultValues = defaultOrdinalUnitValues; objNow = gregorianToOrdinal(objNow); } else { - units = orderedUnits$1; + units = orderedUnits; defaultValues = defaultUnitValues; } // set default values for missing stuff @@ -6528,8 +6712,8 @@ var luxon = (function (exports) { * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the time to this zone * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance - * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance - * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance + * @param {string} [opts.outputCalendar] - the output calendar to set on the resulting DateTime instance + * @param {string} [opts.numberingSystem] - the numbering system to set on the resulting DateTime instance * @example DateTime.fromISO('2016-05-25T09:08:34.123') * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00') * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00', {setZone: true}) @@ -6607,8 +6791,7 @@ var luxon = (function (exports) { } /** * Create a DateTime from an input string and format string. - * Defaults to en-US if no locale has been specified, regardless of the system's locale. - * @see https://moment.github.io/luxon/docs/manual/parsing.html#table-of-tokens + * Defaults to en-US if no locale has been specified, regardless of the system's locale. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/#/parsing?id=table-of-tokens). * @param {string} text - the string to parse * @param {string} fmt - the format the string is expected to be in (see the link below for the formats) * @param {Object} opts - options to affect the creation @@ -6643,12 +6826,13 @@ var luxon = (function (exports) { _parseFromTokens = parseFromTokens(localeToUse, text, fmt), vals = _parseFromTokens[0], parsedZone = _parseFromTokens[1], - invalid = _parseFromTokens[2]; + specificOffset = _parseFromTokens[2], + invalid = _parseFromTokens[3]; if (invalid) { return DateTime.invalid(invalid); } else { - return parseDataToDateTime(vals, parsedZone, opts, "format " + fmt, text); + return parseDataToDateTime(vals, parsedZone, opts, "format " + fmt, text, specificOffset); } } /** @@ -6724,7 +6908,7 @@ var luxon = (function (exports) { } } /** - * Check if an object is a DateTime. Works across context boundaries + * Check if an object is an instance of DateTime. Works across context boundaries * @param {object} o * @return {boolean} */ @@ -6762,7 +6946,7 @@ var luxon = (function (exports) { * @param {Object} opts - the same options as toLocaleString * @return {Object} */ - _proto.resolvedLocaleOpts = function resolvedLocaleOpts(opts) { + _proto.resolvedLocaleOptions = function resolvedLocaleOptions(opts) { if (opts === void 0) { opts = {}; } @@ -6782,7 +6966,7 @@ var luxon = (function (exports) { /** * "Set" the DateTime's zone to UTC. Returns a newly-constructed DateTime. * - * Equivalent to {@link setZone}('utc') + * Equivalent to {@link DateTime#setZone}('utc') * @param {number} [offset=0] - optionally, an offset from UTC in minutes * @param {Object} [opts={}] - options to pass to `setZone()` * @return {DateTime} @@ -6814,8 +6998,8 @@ var luxon = (function (exports) { /** * "Set" the DateTime's zone to specified zone. Returns a newly-constructed DateTime. * - * By default, the setter keeps the underlying time the same (as in, the same timestamp), but the new instance will report different local times and consider DSTs when making computations, as with {@link plus}. You may wish to use {@link toLocal} and {@link toUTC} which provide simple convenience wrappers for commonly used zones. - * @param {string|Zone} [zone='local'] - a zone identifier. As a string, that can be any IANA zone supported by the host environment, or a fixed-offset name of the form 'UTC+3', or the strings 'local' or 'utc'. You may also supply an instance of a {@link Zone} class. + * By default, the setter keeps the underlying time the same (as in, the same timestamp), but the new instance will report different local times and consider DSTs when making computations, as with {@link DateTime#plus}. You may wish to use {@link DateTime#toLocal} and {@link DateTime#toUTC} which provide simple convenience wrappers for commonly used zones. + * @param {string|Zone} [zone='local'] - a zone identifier. As a string, that can be any IANA zone supported by the host environment, or a fixed-offset name of the form 'UTC+3', or the strings 'local' or 'utc'. You may also supply an instance of a {@link DateTime#Zone} class. * @param {Object} opts - options * @param {boolean} [opts.keepLocalTime=false] - If true, adjust the underlying time so that the local time stays the same, but in the target zone. You should rarely need this. * @return {DateTime} @@ -6823,11 +7007,11 @@ var luxon = (function (exports) { ; _proto.setZone = function setZone(zone, _temp) { - var _ref3 = _temp === void 0 ? {} : _temp, - _ref3$keepLocalTime = _ref3.keepLocalTime, - keepLocalTime = _ref3$keepLocalTime === void 0 ? false : _ref3$keepLocalTime, - _ref3$keepCalendarTim = _ref3.keepCalendarTime, - keepCalendarTime = _ref3$keepCalendarTim === void 0 ? false : _ref3$keepCalendarTim; + var _ref2 = _temp === void 0 ? {} : _temp, + _ref2$keepLocalTime = _ref2.keepLocalTime, + keepLocalTime = _ref2$keepLocalTime === void 0 ? false : _ref2$keepLocalTime, + _ref2$keepCalendarTim = _ref2.keepCalendarTime, + keepCalendarTime = _ref2$keepCalendarTim === void 0 ? false : _ref2$keepCalendarTim; zone = normalizeZone(zone, Settings.defaultZone); @@ -6847,7 +7031,7 @@ var luxon = (function (exports) { newTS = _objToTS3[0]; } - return clone$1(this, { + return clone(this, { ts: newTS, zone: zone }); @@ -6862,17 +7046,17 @@ var luxon = (function (exports) { ; _proto.reconfigure = function reconfigure(_temp2) { - var _ref4 = _temp2 === void 0 ? {} : _temp2, - locale = _ref4.locale, - numberingSystem = _ref4.numberingSystem, - outputCalendar = _ref4.outputCalendar; + var _ref3 = _temp2 === void 0 ? {} : _temp2, + locale = _ref3.locale, + numberingSystem = _ref3.numberingSystem, + outputCalendar = _ref3.outputCalendar; var loc = this.loc.clone({ locale: locale, numberingSystem: numberingSystem, outputCalendar: outputCalendar }); - return clone$1(this, { + return clone(this, { loc: loc }); } @@ -6891,7 +7075,7 @@ var luxon = (function (exports) { } /** * "Set" the values of specified units. Returns a newly-constructed DateTime. - * You can only set units with this method; for "setting" metadata, see {@link reconfigure} and {@link setZone}. + * You can only set units with this method; for "setting" metadata, see {@link DateTime#reconfigure} and {@link DateTime#setZone}. * @param {Object} values - a mapping of units to numbers * @example dt.set({ year: 2017 }) * @example dt.set({ hour: 8, minute: 30 }) @@ -6903,16 +7087,30 @@ var luxon = (function (exports) { _proto.set = function set(values) { if (!this.isValid) return this; - var normalized = normalizeObject(values, normalizeUnit, []), - settingWeekStuff = !isUndefined(normalized.weekYear) || !isUndefined(normalized.weekNumber) || !isUndefined(normalized.weekday); + var normalized = normalizeObject(values, normalizeUnit), + settingWeekStuff = !isUndefined(normalized.weekYear) || !isUndefined(normalized.weekNumber) || !isUndefined(normalized.weekday), + containsOrdinal = !isUndefined(normalized.ordinal), + containsGregorYear = !isUndefined(normalized.year), + containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day), + containsGregor = containsGregorYear || containsGregorMD, + definiteWeekDef = normalized.weekYear || normalized.weekNumber; + + if ((containsGregor || containsOrdinal) && definiteWeekDef) { + throw new ConflictingSpecificationError("Can't mix weekYear/weekNumber units with year/month/day or ordinals"); + } + + if (containsGregorMD && containsOrdinal) { + throw new ConflictingSpecificationError("Can't mix ordinal dates with month/day"); + } + var mixed; if (settingWeekStuff) { - mixed = weekToGregorian(Object.assign(gregorianToWeek(this.c), normalized)); + mixed = weekToGregorian(_extends({}, gregorianToWeek(this.c), normalized)); } else if (!isUndefined(normalized.ordinal)) { - mixed = ordinalToGregorian(Object.assign(gregorianToOrdinal(this.c), normalized)); + mixed = ordinalToGregorian(_extends({}, gregorianToOrdinal(this.c), normalized)); } else { - mixed = Object.assign(this.toObject(), normalized); // if we didn't set the day but we ended up on an overflow date, + mixed = _extends({}, this.toObject(), normalized); // if we didn't set the day but we ended up on an overflow date, // use the last day of the right month if (isUndefined(normalized.day)) { @@ -6924,7 +7122,7 @@ var luxon = (function (exports) { ts = _objToTS4[0], o = _objToTS4[1]; - return clone$1(this, { + return clone(this, { ts: ts, o: o }); @@ -6934,39 +7132,40 @@ var luxon = (function (exports) { * * Adding hours, minutes, seconds, or milliseconds increases the timestamp by the right number of milliseconds. Adding days, months, or years shifts the calendar, accounting for DSTs and leap years along the way. Thus, `dt.plus({ hours: 24 })` may result in a different time than `dt.plus({ days: 1 })` if there's a DST shift in between. * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject() - * @example DateTime.local().plus(123) //~> in 123 milliseconds - * @example DateTime.local().plus({ minutes: 15 }) //~> in 15 minutes - * @example DateTime.local().plus({ days: 1 }) //~> this time tomorrow - * @example DateTime.local().plus({ days: -1 }) //~> this time yesterday - * @example DateTime.local().plus({ hours: 3, minutes: 13 }) //~> in 3 hr, 13 min - * @example DateTime.local().plus(Duration.fromObject({ hours: 3, minutes: 13 })) //~> in 3 hr, 13 min + * @example DateTime.now().plus(123) //~> in 123 milliseconds + * @example DateTime.now().plus({ minutes: 15 }) //~> in 15 minutes + * @example DateTime.now().plus({ days: 1 }) //~> this time tomorrow + * @example DateTime.now().plus({ days: -1 }) //~> this time yesterday + * @example DateTime.now().plus({ hours: 3, minutes: 13 }) //~> in 3 hr, 13 min + * @example DateTime.now().plus(Duration.fromObject({ hours: 3, minutes: 13 })) //~> in 3 hr, 13 min * @return {DateTime} */ ; _proto.plus = function plus(duration) { if (!this.isValid) return this; - var dur = friendlyDuration(duration); - return clone$1(this, adjustTime(this, dur)); + var dur = Duration.fromDurationLike(duration); + return clone(this, adjustTime(this, dur)); } /** * Subtract a period of time to this DateTime and return the resulting DateTime - * See {@link plus} + * See {@link DateTime#plus} * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject() @return {DateTime} - */ + */ ; _proto.minus = function minus(duration) { if (!this.isValid) return this; - var dur = friendlyDuration(duration).negate(); - return clone$1(this, adjustTime(this, dur)); + var dur = Duration.fromDurationLike(duration).negate(); + return clone(this, adjustTime(this, dur)); } /** * "Set" this DateTime to the beginning of a unit of time. * @param {string} unit - The unit to go to the beginning of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'. * @example DateTime.local(2014, 3, 3).startOf('month').toISODate(); //=> '2014-03-01' * @example DateTime.local(2014, 3, 3).startOf('year').toISODate(); //=> '2014-01-01' + * @example DateTime.local(2014, 3, 3).startOf('week').toISODate(); //=> '2014-03-03', weeks always start on Mondays * @example DateTime.local(2014, 3, 3, 5, 30).startOf('day').toISOTime(); //=> '00:00.000-05:00' * @example DateTime.local(2014, 3, 3, 5, 30).startOf('hour').toISOTime(); //=> '05:00:00.000-05:00' * @return {DateTime} @@ -7020,9 +7219,10 @@ var luxon = (function (exports) { } /** * "Set" this DateTime to the end (meaning the last millisecond) of a unit of time - * @param {string} unit - The unit to go to the end of. Can be 'year', 'month', 'day', 'hour', 'minute', 'second', or 'millisecond'. + * @param {string} unit - The unit to go to the end of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'. * @example DateTime.local(2014, 3, 3).endOf('month').toISO(); //=> '2014-03-31T23:59:59.999-05:00' * @example DateTime.local(2014, 3, 3).endOf('year').toISO(); //=> '2014-12-31T23:59:59.999-05:00' + * @example DateTime.local(2014, 3, 3).endOf('week').toISO(); // => '2014-03-09T23:59:59.999-05:00', weeks start on Mondays * @example DateTime.local(2014, 3, 3, 5, 30).endOf('day').toISO(); //=> '2014-03-03T23:59:59.999-05:00' * @example DateTime.local(2014, 3, 3, 5, 30).endOf('hour').toISO(); //=> '2014-03-03T05:59:59.999-05:00' * @return {DateTime} @@ -7037,15 +7237,14 @@ var luxon = (function (exports) { /** * Returns a string representation of this DateTime formatted according to the specified format string. - * **You may not want this.** See {@link toLocaleString} for a more flexible formatting tool. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/docs/manual/formatting.html#table-of-tokens). + * **You may not want this.** See {@link DateTime#toLocaleString} for a more flexible formatting tool. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/#/formatting?id=table-of-tokens). * Defaults to en-US if no locale has been specified, regardless of the system's locale. - * @see https://moment.github.io/luxon/docs/manual/formatting.html#table-of-tokens * @param {string} fmt - the format string - * @param {Object} opts - opts to override the configuration options - * @example DateTime.local().toFormat('yyyy LLL dd') //=> '2017 Apr 22' - * @example DateTime.local().setLocale('fr').toFormat('yyyy LLL dd') //=> '2017 avr. 22' - * @example DateTime.local().toFormat('yyyy LLL dd', { locale: "fr" }) //=> '2017 avr. 22' - * @example DateTime.local().toFormat("HH 'hours and' mm 'minutes'") //=> '20 hours and 55 minutes' + * @param {Object} opts - opts to override the configuration options on this DateTime + * @example DateTime.now().toFormat('yyyy LLL dd') //=> '2017 Apr 22' + * @example DateTime.now().setLocale('fr').toFormat('yyyy LLL dd') //=> '2017 avr. 22' + * @example DateTime.now().toFormat('yyyy LLL dd', { locale: "fr" }) //=> '2017 avr. 22' + * @example DateTime.now().toFormat("HH 'hours and' mm 'minutes'") //=> '20 hours and 55 minutes' * @return {string} */ ; @@ -7055,7 +7254,7 @@ var luxon = (function (exports) { opts = {}; } - return this.isValid ? Formatter.create(this.loc.redefaultToEN(opts)).formatDateTimeFromString(this, fmt) : INVALID$2; + return this.isValid ? Formatter.create(this.loc.redefaultToEN(opts)).formatDateTimeFromString(this, fmt) : INVALID; } /** * Returns a localized string representing this date. Accepts the same options as the Intl.DateTimeFormat constructor and any presets defined by Luxon, such as `DateTime.DATE_FULL` or `DateTime.TIME_SIMPLE`. @@ -7063,33 +7262,38 @@ var luxon = (function (exports) { * of the DateTime in the assigned locale. * Defaults to the system's locale if no locale has been specified * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat - * @param opts {Object} - Intl.DateTimeFormat constructor options and configuration options - * @example DateTime.local().toLocaleString(); //=> 4/20/2017 - * @example DateTime.local().setLocale('en-gb').toLocaleString(); //=> '20/04/2017' - * @example DateTime.local().toLocaleString({ locale: 'en-gb' }); //=> '20/04/2017' - * @example DateTime.local().toLocaleString(DateTime.DATE_FULL); //=> 'April 20, 2017' - * @example DateTime.local().toLocaleString(DateTime.TIME_SIMPLE); //=> '11:32 AM' - * @example DateTime.local().toLocaleString(DateTime.DATETIME_SHORT); //=> '4/20/2017, 11:32 AM' - * @example DateTime.local().toLocaleString({ weekday: 'long', month: 'long', day: '2-digit' }); //=> 'Thursday, April 20' - * @example DateTime.local().toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> 'Thu, Apr 20, 11:27 AM' - * @example DateTime.local().toLocaleString({ hour: '2-digit', minute: '2-digit', hour12: false }); //=> '11:32' + * @param formatOpts {Object} - Intl.DateTimeFormat constructor options and configuration options + * @param {Object} opts - opts to override the configuration options on this DateTime + * @example DateTime.now().toLocaleString(); //=> 4/20/2017 + * @example DateTime.now().setLocale('en-gb').toLocaleString(); //=> '20/04/2017' + * @example DateTime.now().toLocaleString({ locale: 'en-gb' }); //=> '20/04/2017' + * @example DateTime.now().toLocaleString(DateTime.DATE_FULL); //=> 'April 20, 2017' + * @example DateTime.now().toLocaleString(DateTime.TIME_SIMPLE); //=> '11:32 AM' + * @example DateTime.now().toLocaleString(DateTime.DATETIME_SHORT); //=> '4/20/2017, 11:32 AM' + * @example DateTime.now().toLocaleString({ weekday: 'long', month: 'long', day: '2-digit' }); //=> 'Thursday, April 20' + * @example DateTime.now().toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> 'Thu, Apr 20, 11:27 AM' + * @example DateTime.now().toLocaleString({ hour: '2-digit', minute: '2-digit', hourCycle: 'h23' }); //=> '11:32' * @return {string} */ ; - _proto.toLocaleString = function toLocaleString(opts) { + _proto.toLocaleString = function toLocaleString(formatOpts, opts) { + if (formatOpts === void 0) { + formatOpts = DATE_SHORT; + } + if (opts === void 0) { - opts = DATE_SHORT; + opts = {}; } - return this.isValid ? Formatter.create(this.loc.clone(opts), opts).formatDateTime(this) : INVALID$2; + return this.isValid ? Formatter.create(this.loc.clone(opts), formatOpts).formatDateTime(this) : INVALID; } /** * Returns an array of format "parts", meaning individual tokens along with metadata. This is allows callers to post-process individual sections of the formatted output. * Defaults to the system's locale if no locale has been specified * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/formatToParts * @param opts {Object} - Intl.DateTimeFormat constructor options, same as `toLocaleString`. - * @example DateTime.local().toLocaleParts(); //=> [ + * @example DateTime.now().toLocaleParts(); //=> [ * //=> { type: 'day', value: '25' }, * //=> { type: 'literal', value: '/' }, * //=> { type: 'month', value: '05' }, @@ -7112,25 +7316,40 @@ var luxon = (function (exports) { * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0 * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0 * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00' + * @param {boolean} [opts.extendedZone=true] - add the time zone format extension * @param {string} [opts.format='extended'] - choose between the basic and extended format - * @example DateTime.utc(1982, 5, 25).toISO() //=> '1982-05-25T00:00:00.000Z' - * @example DateTime.local().toISO() //=> '2017-04-22T20:47:05.335-04:00' - * @example DateTime.local().toISO({ includeOffset: false }) //=> '2017-04-22T20:47:05.335' - * @example DateTime.local().toISO({ format: 'basic' }) //=> '20170422T204705.335-0400' + * @example DateTime.utc(1983, 5, 25).toISO() //=> '1982-05-25T00:00:00.000Z' + * @example DateTime.now().toISO() //=> '2017-04-22T20:47:05.335-04:00' + * @example DateTime.now().toISO({ includeOffset: false }) //=> '2017-04-22T20:47:05.335' + * @example DateTime.now().toISO({ format: 'basic' }) //=> '20170422T204705.335-0400' * @return {string} */ ; - _proto.toISO = function toISO(opts) { - if (opts === void 0) { - opts = {}; - } + _proto.toISO = function toISO(_temp3) { + var _ref4 = _temp3 === void 0 ? {} : _temp3, + _ref4$format = _ref4.format, + format = _ref4$format === void 0 ? "extended" : _ref4$format, + _ref4$suppressSeconds = _ref4.suppressSeconds, + suppressSeconds = _ref4$suppressSeconds === void 0 ? false : _ref4$suppressSeconds, + _ref4$suppressMillise = _ref4.suppressMilliseconds, + suppressMilliseconds = _ref4$suppressMillise === void 0 ? false : _ref4$suppressMillise, + _ref4$includeOffset = _ref4.includeOffset, + includeOffset = _ref4$includeOffset === void 0 ? true : _ref4$includeOffset, + _ref4$extendedZone = _ref4.extendedZone, + extendedZone = _ref4$extendedZone === void 0 ? false : _ref4$extendedZone; if (!this.isValid) { return null; } - return this.toISODate(opts) + "T" + this.toISOTime(opts); + var ext = format === "extended"; + + var c = _toISODate(this, ext); + + c += "T"; + c += _toISOTime(this, ext, suppressSeconds, suppressMilliseconds, includeOffset, extendedZone); + return c; } /** * Returns an ISO 8601-compliant string representation of this DateTime's date component @@ -7142,18 +7361,16 @@ var luxon = (function (exports) { */ ; - _proto.toISODate = function toISODate(_temp3) { - var _ref5 = _temp3 === void 0 ? {} : _temp3, + _proto.toISODate = function toISODate(_temp4) { + var _ref5 = _temp4 === void 0 ? {} : _temp4, _ref5$format = _ref5.format, format = _ref5$format === void 0 ? "extended" : _ref5$format; - var fmt = format === "basic" ? "yyyyMMdd" : "yyyy-MM-dd"; - - if (this.year > 9999) { - fmt = "+" + fmt; + if (!this.isValid) { + return null; } - return toTechFormat(this, fmt); + return _toISODate(this, format === "extended"); } /** * Returns an ISO 8601-compliant string representation of this DateTime's week date @@ -7171,34 +7388,41 @@ var luxon = (function (exports) { * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0 * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0 * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00' + * @param {boolean} [opts.extendedZone=true] - add the time zone format extension + * @param {boolean} [opts.includePrefix=false] - include the `T` prefix * @param {string} [opts.format='extended'] - choose between the basic and extended format * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime() //=> '07:34:19.361Z' * @example DateTime.utc().set({ hour: 7, minute: 34, seconds: 0, milliseconds: 0 }).toISOTime({ suppressSeconds: true }) //=> '07:34Z' * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ format: 'basic' }) //=> '073419.361Z' + * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ includePrefix: true }) //=> 'T07:34:19.361Z' * @return {string} */ ; - _proto.toISOTime = function toISOTime(_temp4) { - var _ref6 = _temp4 === void 0 ? {} : _temp4, + _proto.toISOTime = function toISOTime(_temp5) { + var _ref6 = _temp5 === void 0 ? {} : _temp5, _ref6$suppressMillise = _ref6.suppressMilliseconds, suppressMilliseconds = _ref6$suppressMillise === void 0 ? false : _ref6$suppressMillise, _ref6$suppressSeconds = _ref6.suppressSeconds, suppressSeconds = _ref6$suppressSeconds === void 0 ? false : _ref6$suppressSeconds, _ref6$includeOffset = _ref6.includeOffset, includeOffset = _ref6$includeOffset === void 0 ? true : _ref6$includeOffset, + _ref6$includePrefix = _ref6.includePrefix, + includePrefix = _ref6$includePrefix === void 0 ? false : _ref6$includePrefix, + _ref6$extendedZone = _ref6.extendedZone, + extendedZone = _ref6$extendedZone === void 0 ? false : _ref6$extendedZone, _ref6$format = _ref6.format, format = _ref6$format === void 0 ? "extended" : _ref6$format; - return toTechTimeFormat(this, { - suppressSeconds: suppressSeconds, - suppressMilliseconds: suppressMilliseconds, - includeOffset: includeOffset, - format: format - }); + if (!this.isValid) { + return null; + } + + var c = includePrefix ? "T" : ""; + return c + _toISOTime(this, format === "extended", suppressSeconds, suppressMilliseconds, includeOffset, extendedZone); } /** - * Returns an RFC 2822-compatible string representation of this DateTime, always in UTC + * Returns an RFC 2822-compatible string representation of this DateTime * @example DateTime.utc(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 +0000' * @example DateTime.local(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 -0400' * @return {string} @@ -7209,7 +7433,7 @@ var luxon = (function (exports) { return toTechFormat(this, "EEE, dd LLL yyyy HH:mm:ss ZZZ", false); } /** - * Returns a string representation of this DateTime appropriate for use in HTTP headers. + * Returns a string representation of this DateTime appropriate for use in HTTP headers. The output is always expressed in GMT. * Specifically, the string conforms to RFC 1123. * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1 * @example DateTime.utc(2014, 7, 13).toHTTP() //=> 'Sun, 13 Jul 2014 00:00:00 GMT' @@ -7229,39 +7453,57 @@ var luxon = (function (exports) { ; _proto.toSQLDate = function toSQLDate() { - return toTechFormat(this, "yyyy-MM-dd"); + if (!this.isValid) { + return null; + } + + return _toISODate(this, true); } /** * Returns a string representation of this DateTime appropriate for use in SQL Time * @param {Object} opts - options * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset. * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00' + * @param {boolean} [opts.includeOffsetSpace=true] - include the space between the time and the offset, such as '05:15:16.345 -04:00' * @example DateTime.utc().toSQL() //=> '05:15:16.345' - * @example DateTime.local().toSQL() //=> '05:15:16.345 -04:00' - * @example DateTime.local().toSQL({ includeOffset: false }) //=> '05:15:16.345' - * @example DateTime.local().toSQL({ includeZone: false }) //=> '05:15:16.345 America/New_York' + * @example DateTime.now().toSQL() //=> '05:15:16.345 -04:00' + * @example DateTime.now().toSQL({ includeOffset: false }) //=> '05:15:16.345' + * @example DateTime.now().toSQL({ includeZone: false }) //=> '05:15:16.345 America/New_York' * @return {string} */ ; - _proto.toSQLTime = function toSQLTime(_temp5) { - var _ref7 = _temp5 === void 0 ? {} : _temp5, + _proto.toSQLTime = function toSQLTime(_temp6) { + var _ref7 = _temp6 === void 0 ? {} : _temp6, _ref7$includeOffset = _ref7.includeOffset, includeOffset = _ref7$includeOffset === void 0 ? true : _ref7$includeOffset, _ref7$includeZone = _ref7.includeZone, - includeZone = _ref7$includeZone === void 0 ? false : _ref7$includeZone; + includeZone = _ref7$includeZone === void 0 ? false : _ref7$includeZone, + _ref7$includeOffsetSp = _ref7.includeOffsetSpace, + includeOffsetSpace = _ref7$includeOffsetSp === void 0 ? true : _ref7$includeOffsetSp; - return toTechTimeFormat(this, { - includeOffset: includeOffset, - includeZone: includeZone, - spaceZone: true - }); + var fmt = "HH:mm:ss.SSS"; + + if (includeZone || includeOffset) { + if (includeOffsetSpace) { + fmt += " "; + } + + if (includeZone) { + fmt += "z"; + } else if (includeOffset) { + fmt += "ZZ"; + } + } + + return toTechFormat(this, fmt, true); } /** * Returns a string representation of this DateTime appropriate for use in SQL DateTime * @param {Object} opts - options * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset. * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00' + * @param {boolean} [opts.includeOffsetSpace=true] - include the space between the time and the offset, such as '05:15:16.345 -04:00' * @example DateTime.utc(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 Z' * @example DateTime.local(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 -04:00' * @example DateTime.local(2014, 7, 13).toSQL({ includeOffset: false }) //=> '2014-07-13 00:00:00.000' @@ -7288,10 +7530,10 @@ var luxon = (function (exports) { ; _proto.toString = function toString() { - return this.isValid ? this.toISO() : INVALID$2; + return this.isValid ? this.toISO() : INVALID; } /** - * Returns the epoch milliseconds of this DateTime. Alias of {@link toMillis} + * Returns the epoch milliseconds of this DateTime. Alias of {@link DateTime#toMillis} * @return {number} */ ; @@ -7317,6 +7559,15 @@ var luxon = (function (exports) { _proto.toSeconds = function toSeconds() { return this.isValid ? this.ts / 1000 : NaN; } + /** + * Returns the epoch seconds (as a whole number) of this DateTime. + * @return {number} + */ + ; + + _proto.toUnixInteger = function toUnixInteger() { + return this.isValid ? Math.floor(this.ts / 1000) : NaN; + } /** * Returns an ISO 8601 representation of this DateTime appropriate for use in JSON. * @return {string} @@ -7336,10 +7587,10 @@ var luxon = (function (exports) { return this.toJSDate(); } /** - * Returns a Javascript object with this DateTime's year, month, day, and so on. + * Returns a JavaScript object with this DateTime's year, month, day, and so on. * @param opts - options for generating the object * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output - * @example DateTime.local().toObject() //=> { year: 2017, month: 4, day: 22, hour: 20, minute: 49, second: 42, millisecond: 268 } + * @example DateTime.now().toObject() //=> { year: 2017, month: 4, day: 22, hour: 20, minute: 49, second: 42, millisecond: 268 } * @return {Object} */ ; @@ -7350,7 +7601,8 @@ var luxon = (function (exports) { } if (!this.isValid) return {}; - var base = Object.assign({}, this.c); + + var base = _extends({}, this.c); if (opts.includeConfig) { base.outputCalendar = this.outputCalendar; @@ -7361,7 +7613,7 @@ var luxon = (function (exports) { return base; } /** - * Returns a Javascript Date equivalent to this DateTime. + * Returns a JavaScript Date equivalent to this DateTime. * @return {Date} */ ; @@ -7397,10 +7649,10 @@ var luxon = (function (exports) { } if (!this.isValid || !otherDateTime.isValid) { - return Duration.invalid(this.invalid || otherDateTime.invalid, "created by diffing an invalid DateTime"); + return Duration.invalid("created by diffing an invalid DateTime"); } - var durOpts = Object.assign({ + var durOpts = _extends({ locale: this.locale, numberingSystem: this.numberingSystem }, opts); @@ -7415,7 +7667,7 @@ var luxon = (function (exports) { } /** * Return the difference between this DateTime and right now. - * See {@link diff} + * See {@link DateTime#diff} * @param {string|string[]} [unit=['milliseconds']] - the unit or units units (such as 'hours' or 'days') to include in the duration * @param {Object} opts - options that affect the creation of the Duration * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use @@ -7432,7 +7684,7 @@ var luxon = (function (exports) { opts = {}; } - return this.diff(DateTime.local(), unit, opts); + return this.diff(DateTime.now(), unit, opts); } /** * Return an Interval spanning between this DateTime and another DateTime @@ -7445,23 +7697,23 @@ var luxon = (function (exports) { return this.isValid ? Interval.fromDateTimes(this, otherDateTime) : this; } /** - * Return whether this DateTime is in the same unit of time as another DateTime + * Return whether this DateTime is in the same unit of time as another DateTime. + * Higher-order units must also be identical for this function to return `true`. + * Note that time zones are **ignored** in this comparison, which compares the **local** calendar time. Use {@link DateTime#setZone} to convert one of the dates if needed. * @param {DateTime} otherDateTime - the other DateTime * @param {string} unit - the unit of time to check sameness on - * @example DateTime.local().hasSame(otherDT, 'day'); //~> true if both the same calendar day + * @example DateTime.now().hasSame(otherDT, 'day'); //~> true if otherDT is in the same current calendar day * @return {boolean} */ ; _proto.hasSame = function hasSame(otherDateTime, unit) { if (!this.isValid) return false; - - if (unit === "millisecond") { - return this.valueOf() === otherDateTime.valueOf(); - } else { - var inputMs = otherDateTime.valueOf(); - return this.startOf(unit) <= inputMs && inputMs <= this.endOf(unit); - } + var inputMs = otherDateTime.valueOf(); + var adjustedToZone = this.setZone(otherDateTime.zone, { + keepLocalTime: true + }); + return adjustedToZone.startOf(unit) <= inputMs && inputMs <= adjustedToZone.endOf(unit); } /** * Equality check @@ -7479,19 +7731,19 @@ var luxon = (function (exports) { * Returns a string representation of a this time relative to now, such as "in two days". Can only internationalize if your * platform supports Intl.RelativeTimeFormat. Rounds down by default. * @param {Object} options - options that affect the output - * @param {DateTime} [options.base=DateTime.local()] - the DateTime to use as the basis to which this time is compared. Defaults to now. + * @param {DateTime} [options.base=DateTime.now()] - the DateTime to use as the basis to which this time is compared. Defaults to now. * @param {string} [options.style="long"] - the style of units, must be "long", "short", or "narrow" - * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of "years", "quarters", "months", "weeks", "days", "hours", "minutes", or "seconds" + * @param {string|string[]} options.unit - use a specific unit or array of units; if omitted, or an array, the method will pick the best unit. Use an array or one of "years", "quarters", "months", "weeks", "days", "hours", "minutes", or "seconds" * @param {boolean} [options.round=true] - whether to round the numbers in the output. - * @param {boolean} [options.padding=0] - padding in milliseconds. This allows you to round up the result if it fits inside the threshold. Don't use in combination with {round: false} because the decimal output will include the padding. + * @param {number} [options.padding=0] - padding in milliseconds. This allows you to round up the result if it fits inside the threshold. Don't use in combination with {round: false} because the decimal output will include the padding. * @param {string} options.locale - override the locale of this DateTime * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this - * @example DateTime.local().plus({ days: 1 }).toRelative() //=> "in 1 day" - * @example DateTime.local().setLocale("es").toRelative({ days: 1 }) //=> "dentro de 1 día" - * @example DateTime.local().plus({ days: 1 }).toRelative({ locale: "fr" }) //=> "dans 23 heures" - * @example DateTime.local().minus({ days: 2 }).toRelative() //=> "2 days ago" - * @example DateTime.local().minus({ days: 2 }).toRelative({ unit: "hours" }) //=> "48 hours ago" - * @example DateTime.local().minus({ hours: 36 }).toRelative({ round: false }) //=> "1.5 days ago" + * @example DateTime.now().plus({ days: 1 }).toRelative() //=> "in 1 day" + * @example DateTime.now().setLocale("es").toRelative({ days: 1 }) //=> "dentro de 1 día" + * @example DateTime.now().plus({ days: 1 }).toRelative({ locale: "fr" }) //=> "dans 23 heures" + * @example DateTime.now().minus({ days: 2 }).toRelative() //=> "2 days ago" + * @example DateTime.now().minus({ days: 2 }).toRelative({ unit: "hours" }) //=> "48 hours ago" + * @example DateTime.now().minus({ hours: 36 }).toRelative({ round: false }) //=> "1.5 days ago" */ ; @@ -7501,27 +7753,36 @@ var luxon = (function (exports) { } if (!this.isValid) return null; - var base = options.base || DateTime.fromObject({ + var base = options.base || DateTime.fromObject({}, { zone: this.zone }), padding = options.padding ? this < base ? -options.padding : options.padding : 0; - return diffRelative(base, this.plus(padding), Object.assign(options, { + var units = ["years", "months", "days", "hours", "minutes", "seconds"]; + var unit = options.unit; + + if (Array.isArray(options.unit)) { + units = options.unit; + unit = undefined; + } + + return diffRelative(base, this.plus(padding), _extends({}, options, { numeric: "always", - units: ["years", "months", "days", "hours", "minutes", "seconds"] + units: units, + unit: unit })); } /** * Returns a string representation of this date relative to today, such as "yesterday" or "next month". * Only internationalizes on platforms that supports Intl.RelativeTimeFormat. * @param {Object} options - options that affect the output - * @param {DateTime} [options.base=DateTime.local()] - the DateTime to use as the basis to which this time is compared. Defaults to now. + * @param {DateTime} [options.base=DateTime.now()] - the DateTime to use as the basis to which this time is compared. Defaults to now. * @param {string} options.locale - override the locale of this DateTime * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of "years", "quarters", "months", "weeks", or "days" * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this - * @example DateTime.local().plus({ days: 1 }).toRelativeCalendar() //=> "tomorrow" - * @example DateTime.local().setLocale("es").plus({ days: 1 }).toRelative() //=> ""mañana" - * @example DateTime.local().plus({ days: 1 }).toRelativeCalendar({ locale: "fr" }) //=> "demain" - * @example DateTime.local().minus({ days: 2 }).toRelativeCalendar() //=> "2 days ago" + * @example DateTime.now().plus({ days: 1 }).toRelativeCalendar() //=> "tomorrow" + * @example DateTime.now().setLocale("es").plus({ days: 1 }).toRelative() //=> ""mañana" + * @example DateTime.now().plus({ days: 1 }).toRelativeCalendar({ locale: "fr" }) //=> "demain" + * @example DateTime.now().minus({ days: 2 }).toRelativeCalendar() //=> "2 days ago" */ ; @@ -7531,9 +7792,9 @@ var luxon = (function (exports) { } if (!this.isValid) return null; - return diffRelative(options.base || DateTime.fromObject({ + return diffRelative(options.base || DateTime.fromObject({}, { zone: this.zone - }), this, Object.assign(options, { + }), this, _extends({}, options, { numeric: "auto", units: ["years", "months", "days"], calendary: true @@ -7620,7 +7881,7 @@ var luxon = (function (exports) { } // FORMAT PRESETS /** - * {@link toLocaleString} format like 10/14/1983 + * {@link DateTime#toLocaleString} format like 10/14/1983 * @type {Object} */ ; @@ -7794,7 +8055,7 @@ var luxon = (function (exports) { /** * Get the week year * @see https://en.wikipedia.org/wiki/ISO_week_date - * @example DateTime.local(2014, 11, 31).weekYear //=> 2015 + * @example DateTime.local(2014, 12, 31).weekYear //=> 2015 * @type {number} */ @@ -7850,7 +8111,7 @@ var luxon = (function (exports) { key: "monthShort", get: function get() { return this.isValid ? Info.months("short", { - locale: this.locale + locObj: this.loc })[this.month - 1] : null; } /** @@ -7864,7 +8125,7 @@ var luxon = (function (exports) { key: "monthLong", get: function get() { return this.isValid ? Info.months("long", { - locale: this.locale + locObj: this.loc })[this.month - 1] : null; } /** @@ -7878,7 +8139,7 @@ var luxon = (function (exports) { key: "weekdayShort", get: function get() { return this.isValid ? Info.weekdays("short", { - locale: this.locale + locObj: this.loc })[this.weekday - 1] : null; } /** @@ -7892,12 +8153,12 @@ var luxon = (function (exports) { key: "weekdayLong", get: function get() { return this.isValid ? Info.weekdays("long", { - locale: this.locale + locObj: this.loc })[this.weekday - 1] : null; } /** * Get the UTC offset of this DateTime in minutes - * @example DateTime.local().offset //=> -240 + * @example DateTime.now().offset //=> -240 * @example DateTime.utc().offset //=> 0 * @type {number} */ @@ -7951,7 +8212,7 @@ var luxon = (function (exports) { }, { key: "isOffsetFixed", get: function get() { - return this.isValid ? this.zone.universal : null; + return this.isValid ? this.zone.isUniversal : null; } /** * Get whether the DateTime is in a DST. @@ -7965,7 +8226,8 @@ var luxon = (function (exports) { return false; } else { return this.offset > this.set({ - month: 1 + month: 1, + day: 1 }).offset || this.offset > this.set({ month: 5 }).offset; @@ -8026,7 +8288,7 @@ var luxon = (function (exports) { return DATE_SHORT; } /** - * {@link toLocaleString} format like 'Oct 14, 1983' + * {@link DateTime#toLocaleString} format like 'Oct 14, 1983' * @type {Object} */ @@ -8036,7 +8298,17 @@ var luxon = (function (exports) { return DATE_MED; } /** - * {@link toLocaleString} format like 'October 14, 1983' + * {@link DateTime#toLocaleString} format like 'Fri, Oct 14, 1983' + * @type {Object} + */ + + }, { + key: "DATE_MED_WITH_WEEKDAY", + get: function get() { + return DATE_MED_WITH_WEEKDAY; + } + /** + * {@link DateTime#toLocaleString} format like 'October 14, 1983' * @type {Object} */ @@ -8046,7 +8318,7 @@ var luxon = (function (exports) { return DATE_FULL; } /** - * {@link toLocaleString} format like 'Tuesday, October 14, 1983' + * {@link DateTime#toLocaleString} format like 'Tuesday, October 14, 1983' * @type {Object} */ @@ -8056,7 +8328,7 @@ var luxon = (function (exports) { return DATE_HUGE; } /** - * {@link toLocaleString} format like '09:30 AM'. Only 12-hour if the locale is. + * {@link DateTime#toLocaleString} format like '09:30 AM'. Only 12-hour if the locale is. * @type {Object} */ @@ -8066,7 +8338,7 @@ var luxon = (function (exports) { return TIME_SIMPLE; } /** - * {@link toLocaleString} format like '09:30:23 AM'. Only 12-hour if the locale is. + * {@link DateTime#toLocaleString} format like '09:30:23 AM'. Only 12-hour if the locale is. * @type {Object} */ @@ -8076,7 +8348,7 @@ var luxon = (function (exports) { return TIME_WITH_SECONDS; } /** - * {@link toLocaleString} format like '09:30:23 AM EDT'. Only 12-hour if the locale is. + * {@link DateTime#toLocaleString} format like '09:30:23 AM EDT'. Only 12-hour if the locale is. * @type {Object} */ @@ -8086,7 +8358,7 @@ var luxon = (function (exports) { return TIME_WITH_SHORT_OFFSET; } /** - * {@link toLocaleString} format like '09:30:23 AM Eastern Daylight Time'. Only 12-hour if the locale is. + * {@link DateTime#toLocaleString} format like '09:30:23 AM Eastern Daylight Time'. Only 12-hour if the locale is. * @type {Object} */ @@ -8096,7 +8368,7 @@ var luxon = (function (exports) { return TIME_WITH_LONG_OFFSET; } /** - * {@link toLocaleString} format like '09:30', always 24-hour. + * {@link DateTime#toLocaleString} format like '09:30', always 24-hour. * @type {Object} */ @@ -8106,7 +8378,7 @@ var luxon = (function (exports) { return TIME_24_SIMPLE; } /** - * {@link toLocaleString} format like '09:30:23', always 24-hour. + * {@link DateTime#toLocaleString} format like '09:30:23', always 24-hour. * @type {Object} */ @@ -8116,7 +8388,7 @@ var luxon = (function (exports) { return TIME_24_WITH_SECONDS; } /** - * {@link toLocaleString} format like '09:30:23 EDT', always 24-hour. + * {@link DateTime#toLocaleString} format like '09:30:23 EDT', always 24-hour. * @type {Object} */ @@ -8126,7 +8398,7 @@ var luxon = (function (exports) { return TIME_24_WITH_SHORT_OFFSET; } /** - * {@link toLocaleString} format like '09:30:23 Eastern Daylight Time', always 24-hour. + * {@link DateTime#toLocaleString} format like '09:30:23 Eastern Daylight Time', always 24-hour. * @type {Object} */ @@ -8136,7 +8408,7 @@ var luxon = (function (exports) { return TIME_24_WITH_LONG_OFFSET; } /** - * {@link toLocaleString} format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is. + * {@link DateTime#toLocaleString} format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is. * @type {Object} */ @@ -8146,7 +8418,7 @@ var luxon = (function (exports) { return DATETIME_SHORT; } /** - * {@link toLocaleString} format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is. + * {@link DateTime#toLocaleString} format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is. * @type {Object} */ @@ -8156,7 +8428,7 @@ var luxon = (function (exports) { return DATETIME_SHORT_WITH_SECONDS; } /** - * {@link toLocaleString} format like 'Oct 14, 1983, 9:30 AM'. Only 12-hour if the locale is. + * {@link DateTime#toLocaleString} format like 'Oct 14, 1983, 9:30 AM'. Only 12-hour if the locale is. * @type {Object} */ @@ -8166,7 +8438,7 @@ var luxon = (function (exports) { return DATETIME_MED; } /** - * {@link toLocaleString} format like 'Oct 14, 1983, 9:30:33 AM'. Only 12-hour if the locale is. + * {@link DateTime#toLocaleString} format like 'Oct 14, 1983, 9:30:33 AM'. Only 12-hour if the locale is. * @type {Object} */ @@ -8176,7 +8448,7 @@ var luxon = (function (exports) { return DATETIME_MED_WITH_SECONDS; } /** - * {@link toLocaleString} format like 'Fri, 14 Oct 1983, 9:30 AM'. Only 12-hour if the locale is. + * {@link DateTime#toLocaleString} format like 'Fri, 14 Oct 1983, 9:30 AM'. Only 12-hour if the locale is. * @type {Object} */ @@ -8186,7 +8458,7 @@ var luxon = (function (exports) { return DATETIME_MED_WITH_WEEKDAY; } /** - * {@link toLocaleString} format like 'October 14, 1983, 9:30 AM EDT'. Only 12-hour if the locale is. + * {@link DateTime#toLocaleString} format like 'October 14, 1983, 9:30 AM EDT'. Only 12-hour if the locale is. * @type {Object} */ @@ -8196,7 +8468,7 @@ var luxon = (function (exports) { return DATETIME_FULL; } /** - * {@link toLocaleString} format like 'October 14, 1983, 9:30:33 AM EDT'. Only 12-hour if the locale is. + * {@link DateTime#toLocaleString} format like 'October 14, 1983, 9:30:33 AM EDT'. Only 12-hour if the locale is. * @type {Object} */ @@ -8206,7 +8478,7 @@ var luxon = (function (exports) { return DATETIME_FULL_WITH_SECONDS; } /** - * {@link toLocaleString} format like 'Friday, October 14, 1983, 9:30 AM Eastern Daylight Time'. Only 12-hour if the locale is. + * {@link DateTime#toLocaleString} format like 'Friday, October 14, 1983, 9:30 AM Eastern Daylight Time'. Only 12-hour if the locale is. * @type {Object} */ @@ -8216,7 +8488,7 @@ var luxon = (function (exports) { return DATETIME_HUGE; } /** - * {@link toLocaleString} format like 'Friday, October 14, 1983, 9:30:33 AM Eastern Daylight Time'. Only 12-hour if the locale is. + * {@link DateTime#toLocaleString} format like 'Friday, October 14, 1983, 9:30:33 AM Eastern Daylight Time'. Only 12-hour if the locale is. * @type {Object} */ @@ -8241,6 +8513,8 @@ var luxon = (function (exports) { } } + var VERSION = "2.4.0"; + exports.DateTime = DateTime; exports.Duration = Duration; exports.FixedOffsetZone = FixedOffsetZone; @@ -8248,11 +8522,14 @@ var luxon = (function (exports) { exports.Info = Info; exports.Interval = Interval; exports.InvalidZone = InvalidZone; - exports.LocalZone = LocalZone; exports.Settings = Settings; + exports.SystemZone = SystemZone; + exports.VERSION = VERSION; exports.Zone = Zone; + Object.defineProperty(exports, '__esModule', { value: true }); + return exports; -}({})); +})({}); //# sourceMappingURL=luxon.js.map diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/luxon/luxon.js.map b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/luxon/luxon.js.map index 2b8f42a6..100362e7 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/luxon/luxon.js.map +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/luxon/luxon.js.map @@ -1 +1 @@ -{"version":3,"file":"luxon.js","sources":["../../src/errors.js","../../src/impl/formats.js","../../src/impl/util.js","../../src/impl/english.js","../../src/impl/formatter.js","../../src/impl/invalid.js","../../src/zone.js","../../src/zones/localZone.js","../../src/zones/IANAZone.js","../../src/zones/fixedOffsetZone.js","../../src/zones/invalidZone.js","../../src/impl/zoneUtil.js","../../src/settings.js","../../src/impl/locale.js","../../src/impl/regexParser.js","../../src/duration.js","../../src/interval.js","../../src/info.js","../../src/impl/diff.js","../../src/impl/digits.js","../../src/impl/tokenParser.js","../../src/impl/conversions.js","../../src/datetime.js"],"sourcesContent":["// these aren't really private, but nor are they really useful to document\n\n/**\n * @private\n */\nclass LuxonError extends Error {}\n\n/**\n * @private\n */\nexport class InvalidDateTimeError extends LuxonError {\n constructor(reason) {\n super(`Invalid DateTime: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidIntervalError extends LuxonError {\n constructor(reason) {\n super(`Invalid Interval: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidDurationError extends LuxonError {\n constructor(reason) {\n super(`Invalid Duration: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class ConflictingSpecificationError extends LuxonError {}\n\n/**\n * @private\n */\nexport class InvalidUnitError extends LuxonError {\n constructor(unit) {\n super(`Invalid unit ${unit}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidArgumentError extends LuxonError {}\n\n/**\n * @private\n */\nexport class ZoneIsAbstractError extends LuxonError {\n constructor() {\n super(\"Zone is an abstract class\");\n }\n}\n","/**\n * @private\n */\n\nconst n = \"numeric\",\n s = \"short\",\n l = \"long\";\n\nexport const DATE_SHORT = {\n year: n,\n month: n,\n day: n\n};\n\nexport const DATE_MED = {\n year: n,\n month: s,\n day: n\n};\n\nexport const DATE_FULL = {\n year: n,\n month: l,\n day: n\n};\n\nexport const DATE_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l\n};\n\nexport const TIME_SIMPLE = {\n hour: n,\n minute: n\n};\n\nexport const TIME_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n\n};\n\nexport const TIME_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s\n};\n\nexport const TIME_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l\n};\n\nexport const TIME_24_SIMPLE = {\n hour: n,\n minute: n,\n hour12: false\n};\n\n/**\n * {@link toLocaleString}; format like '09:30:23', always 24-hour.\n */\nexport const TIME_24_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n,\n hour12: false\n};\n\n/**\n * {@link toLocaleString}; format like '09:30:23 EDT', always 24-hour.\n */\nexport const TIME_24_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hour12: false,\n timeZoneName: s\n};\n\n/**\n * {@link toLocaleString}; format like '09:30:23 Eastern Daylight Time', always 24-hour.\n */\nexport const TIME_24_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hour12: false,\n timeZoneName: l\n};\n\n/**\n * {@link toLocaleString}; format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n */\nexport const DATETIME_SHORT = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n\n};\n\n/**\n * {@link toLocaleString}; format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n */\nexport const DATETIME_SHORT_WITH_SECONDS = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n,\n second: n\n};\n\nexport const DATETIME_MED = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n\n};\n\nexport const DATETIME_MED_WITH_SECONDS = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n,\n second: n\n};\n\nexport const DATETIME_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s,\n hour: n,\n minute: n\n};\n\nexport const DATETIME_FULL = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n timeZoneName: s\n};\n\nexport const DATETIME_FULL_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s\n};\n\nexport const DATETIME_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n timeZoneName: l\n};\n\nexport const DATETIME_HUGE_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l\n};\n","/*\n This is just a junk drawer, containing anything used across multiple classes.\n Because Luxon is small(ish), this should stay small and we won't worry about splitting\n it up into, say, parsingUtil.js and basicUtil.js and so on. But they are divided up by feature area.\n*/\n\nimport { InvalidArgumentError } from \"../errors.js\";\n\n/**\n * @private\n */\n\n// TYPES\n\nexport function isUndefined(o) {\n return typeof o === \"undefined\";\n}\n\nexport function isNumber(o) {\n return typeof o === \"number\";\n}\n\nexport function isInteger(o) {\n return typeof o === \"number\" && o % 1 === 0;\n}\n\nexport function isString(o) {\n return typeof o === \"string\";\n}\n\nexport function isDate(o) {\n return Object.prototype.toString.call(o) === \"[object Date]\";\n}\n\n// CAPABILITIES\n\nexport function hasIntl() {\n try {\n return typeof Intl !== \"undefined\" && Intl.DateTimeFormat;\n } catch (e) {\n return false;\n }\n}\n\nexport function hasFormatToParts() {\n return !isUndefined(Intl.DateTimeFormat.prototype.formatToParts);\n}\n\nexport function hasRelative() {\n try {\n return typeof Intl !== \"undefined\" && !!Intl.RelativeTimeFormat;\n } catch (e) {\n return false;\n }\n}\n\n// OBJECTS AND ARRAYS\n\nexport function maybeArray(thing) {\n return Array.isArray(thing) ? thing : [thing];\n}\n\nexport function bestBy(arr, by, compare) {\n if (arr.length === 0) {\n return undefined;\n }\n return arr.reduce((best, next) => {\n const pair = [by(next), next];\n if (!best) {\n return pair;\n } else if (compare(best[0], pair[0]) === best[0]) {\n return best;\n } else {\n return pair;\n }\n }, null)[1];\n}\n\nexport function pick(obj, keys) {\n return keys.reduce((a, k) => {\n a[k] = obj[k];\n return a;\n }, {});\n}\n\nexport function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\n// NUMBERS AND STRINGS\n\nexport function integerBetween(thing, bottom, top) {\n return isInteger(thing) && thing >= bottom && thing <= top;\n}\n\n// x % n but takes the sign of n instead of x\nexport function floorMod(x, n) {\n return x - n * Math.floor(x / n);\n}\n\nexport function padStart(input, n = 2) {\n if (input.toString().length < n) {\n return (\"0\".repeat(n) + input).slice(-n);\n } else {\n return input.toString();\n }\n}\n\nexport function parseInteger(string) {\n if (isUndefined(string) || string === null || string === \"\") {\n return undefined;\n } else {\n return parseInt(string, 10);\n }\n}\n\nexport function parseMillis(fraction) {\n // Return undefined (instead of 0) in these cases, where fraction is not set\n if (isUndefined(fraction) || fraction === null || fraction === \"\") {\n return undefined;\n } else {\n const f = parseFloat(\"0.\" + fraction) * 1000;\n return Math.floor(f);\n }\n}\n\nexport function roundTo(number, digits, towardZero = false) {\n const factor = 10 ** digits,\n rounder = towardZero ? Math.trunc : Math.round;\n return rounder(number * factor) / factor;\n}\n\n// DATE BASICS\n\nexport function isLeapYear(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\nexport function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\n\nexport function daysInMonth(year, month) {\n const modMonth = floorMod(month - 1, 12) + 1,\n modYear = year + (month - modMonth) / 12;\n\n if (modMonth === 2) {\n return isLeapYear(modYear) ? 29 : 28;\n } else {\n return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][modMonth - 1];\n }\n}\n\n// covert a calendar object to a local timestamp (epoch, but with the offset baked in)\nexport function objToLocalTS(obj) {\n let d = Date.UTC(\n obj.year,\n obj.month - 1,\n obj.day,\n obj.hour,\n obj.minute,\n obj.second,\n obj.millisecond\n );\n\n // for legacy reasons, years between 0 and 99 are interpreted as 19XX; revert that\n if (obj.year < 100 && obj.year >= 0) {\n d = new Date(d);\n d.setUTCFullYear(d.getUTCFullYear() - 1900);\n }\n return +d;\n}\n\nexport function weeksInWeekYear(weekYear) {\n const p1 =\n (weekYear +\n Math.floor(weekYear / 4) -\n Math.floor(weekYear / 100) +\n Math.floor(weekYear / 400)) %\n 7,\n last = weekYear - 1,\n p2 = (last + Math.floor(last / 4) - Math.floor(last / 100) + Math.floor(last / 400)) % 7;\n return p1 === 4 || p2 === 3 ? 53 : 52;\n}\n\nexport function untruncateYear(year) {\n if (year > 99) {\n return year;\n } else return year > 60 ? 1900 + year : 2000 + year;\n}\n\n// PARSING\n\nexport function parseZoneInfo(ts, offsetFormat, locale, timeZone = null) {\n const date = new Date(ts),\n intlOpts = {\n hour12: false,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\"\n };\n\n if (timeZone) {\n intlOpts.timeZone = timeZone;\n }\n\n const modified = Object.assign({ timeZoneName: offsetFormat }, intlOpts),\n intl = hasIntl();\n\n if (intl && hasFormatToParts()) {\n const parsed = new Intl.DateTimeFormat(locale, modified)\n .formatToParts(date)\n .find(m => m.type.toLowerCase() === \"timezonename\");\n return parsed ? parsed.value : null;\n } else if (intl) {\n // this probably doesn't work for all locales\n const without = new Intl.DateTimeFormat(locale, intlOpts).format(date),\n included = new Intl.DateTimeFormat(locale, modified).format(date),\n diffed = included.substring(without.length),\n trimmed = diffed.replace(/^[, \\u200e]+/, \"\");\n return trimmed;\n } else {\n return null;\n }\n}\n\n// signedOffset('-5', '30') -> -330\nexport function signedOffset(offHourStr, offMinuteStr) {\n let offHour = parseInt(offHourStr, 10);\n\n // don't || this because we want to preserve -0\n if (Number.isNaN(offHour)) {\n offHour = 0;\n }\n\n const offMin = parseInt(offMinuteStr, 10) || 0,\n offMinSigned = offHour < 0 || Object.is(offHour, -0) ? -offMin : offMin;\n return offHour * 60 + offMinSigned;\n}\n\n// COERCION\n\nexport function asNumber(value) {\n const numericValue = Number(value);\n if (typeof value === \"boolean\" || value === \"\" || Number.isNaN(numericValue))\n throw new InvalidArgumentError(`Invalid unit value ${value}`);\n return numericValue;\n}\n\nexport function normalizeObject(obj, normalizer, nonUnitKeys) {\n const normalized = {};\n for (const u in obj) {\n if (hasOwnProperty(obj, u)) {\n if (nonUnitKeys.indexOf(u) >= 0) continue;\n const v = obj[u];\n if (v === undefined || v === null) continue;\n normalized[normalizer(u)] = asNumber(v);\n }\n }\n return normalized;\n}\n\nexport function formatOffset(offset, format) {\n const hours = Math.trunc(offset / 60),\n minutes = Math.abs(offset % 60),\n sign = hours >= 0 && !Object.is(hours, -0) ? \"+\" : \"-\",\n base = `${sign}${Math.abs(hours)}`;\n\n switch (format) {\n case \"short\":\n return `${sign}${padStart(Math.abs(hours), 2)}:${padStart(minutes, 2)}`;\n case \"narrow\":\n return minutes > 0 ? `${base}:${minutes}` : base;\n case \"techie\":\n return `${sign}${padStart(Math.abs(hours), 2)}${padStart(minutes, 2)}`;\n default:\n throw new RangeError(`Value format ${format} is out of range for property format`);\n }\n}\n\nexport function timeObject(obj) {\n return pick(obj, [\"hour\", \"minute\", \"second\", \"millisecond\"]);\n}\n\nexport const ianaRegex = /[A-Za-z_+-]{1,256}(:?\\/[A-Za-z_+-]{1,256}(\\/[A-Za-z_+-]{1,256})?)?/;\n","import * as Formats from \"./formats.js\";\nimport { pick } from \"./util.js\";\n\nfunction stringify(obj) {\n return JSON.stringify(obj, Object.keys(obj).sort());\n}\n\n/**\n * @private\n */\n\nexport const monthsLong = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n];\n\nexport const monthsShort = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n];\n\nexport const monthsNarrow = [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"];\n\nexport function months(length) {\n switch (length) {\n case \"narrow\":\n return monthsNarrow;\n case \"short\":\n return monthsShort;\n case \"long\":\n return monthsLong;\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\"];\n case \"2-digit\":\n return [\"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"10\", \"11\", \"12\"];\n default:\n return null;\n }\n}\n\nexport const weekdaysLong = [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n \"Sunday\"\n];\n\nexport const weekdaysShort = [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"];\n\nexport const weekdaysNarrow = [\"M\", \"T\", \"W\", \"T\", \"F\", \"S\", \"S\"];\n\nexport function weekdays(length) {\n switch (length) {\n case \"narrow\":\n return weekdaysNarrow;\n case \"short\":\n return weekdaysShort;\n case \"long\":\n return weekdaysLong;\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\"];\n default:\n return null;\n }\n}\n\nexport const meridiems = [\"AM\", \"PM\"];\n\nexport const erasLong = [\"Before Christ\", \"Anno Domini\"];\n\nexport const erasShort = [\"BC\", \"AD\"];\n\nexport const erasNarrow = [\"B\", \"A\"];\n\nexport function eras(length) {\n switch (length) {\n case \"narrow\":\n return erasNarrow;\n case \"short\":\n return erasShort;\n case \"long\":\n return erasLong;\n default:\n return null;\n }\n}\n\nexport function meridiemForDateTime(dt) {\n return meridiems[dt.hour < 12 ? 0 : 1];\n}\n\nexport function weekdayForDateTime(dt, length) {\n return weekdays(length)[dt.weekday - 1];\n}\n\nexport function monthForDateTime(dt, length) {\n return months(length)[dt.month - 1];\n}\n\nexport function eraForDateTime(dt, length) {\n return eras(length)[dt.year < 0 ? 0 : 1];\n}\n\nexport function formatRelativeTime(unit, count, numeric = \"always\", narrow = false) {\n const units = {\n years: [\"year\", \"yr.\"],\n quarters: [\"quarter\", \"qtr.\"],\n months: [\"month\", \"mo.\"],\n weeks: [\"week\", \"wk.\"],\n days: [\"day\", \"day\", \"days\"],\n hours: [\"hour\", \"hr.\"],\n minutes: [\"minute\", \"min.\"],\n seconds: [\"second\", \"sec.\"]\n };\n\n const lastable = [\"hours\", \"minutes\", \"seconds\"].indexOf(unit) === -1;\n\n if (numeric === \"auto\" && lastable) {\n const isDay = unit === \"days\";\n switch (count) {\n case 1:\n return isDay ? \"tomorrow\" : `next ${units[unit][0]}`;\n case -1:\n return isDay ? \"yesterday\" : `last ${units[unit][0]}`;\n case 0:\n return isDay ? \"today\" : `this ${units[unit][0]}`;\n default: // fall through\n }\n }\n\n const isInPast = Object.is(count, -0) || count < 0,\n fmtValue = Math.abs(count),\n singular = fmtValue === 1,\n lilUnits = units[unit],\n fmtUnit = narrow\n ? singular\n ? lilUnits[1]\n : lilUnits[2] || lilUnits[1]\n : singular\n ? units[unit][0]\n : unit;\n return isInPast ? `${fmtValue} ${fmtUnit} ago` : `in ${fmtValue} ${fmtUnit}`;\n}\n\nexport function formatString(knownFormat) {\n // these all have the offsets removed because we don't have access to them\n // without all the intl stuff this is backfilling\n const filtered = pick(knownFormat, [\n \"weekday\",\n \"era\",\n \"year\",\n \"month\",\n \"day\",\n \"hour\",\n \"minute\",\n \"second\",\n \"timeZoneName\",\n \"hour12\"\n ]),\n key = stringify(filtered),\n dateTimeHuge = \"EEEE, LLLL d, yyyy, h:mm a\";\n switch (key) {\n case stringify(Formats.DATE_SHORT):\n return \"M/d/yyyy\";\n case stringify(Formats.DATE_MED):\n return \"LLL d, yyyy\";\n case stringify(Formats.DATE_FULL):\n return \"LLLL d, yyyy\";\n case stringify(Formats.DATE_HUGE):\n return \"EEEE, LLLL d, yyyy\";\n case stringify(Formats.TIME_SIMPLE):\n return \"h:mm a\";\n case stringify(Formats.TIME_WITH_SECONDS):\n return \"h:mm:ss a\";\n case stringify(Formats.TIME_WITH_SHORT_OFFSET):\n return \"h:mm a\";\n case stringify(Formats.TIME_WITH_LONG_OFFSET):\n return \"h:mm a\";\n case stringify(Formats.TIME_24_SIMPLE):\n return \"HH:mm\";\n case stringify(Formats.TIME_24_WITH_SECONDS):\n return \"HH:mm:ss\";\n case stringify(Formats.TIME_24_WITH_SHORT_OFFSET):\n return \"HH:mm\";\n case stringify(Formats.TIME_24_WITH_LONG_OFFSET):\n return \"HH:mm\";\n case stringify(Formats.DATETIME_SHORT):\n return \"M/d/yyyy, h:mm a\";\n case stringify(Formats.DATETIME_MED):\n return \"LLL d, yyyy, h:mm a\";\n case stringify(Formats.DATETIME_FULL):\n return \"LLLL d, yyyy, h:mm a\";\n case stringify(Formats.DATETIME_HUGE):\n return dateTimeHuge;\n case stringify(Formats.DATETIME_SHORT_WITH_SECONDS):\n return \"M/d/yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_MED_WITH_SECONDS):\n return \"LLL d, yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_MED_WITH_WEEKDAY):\n return \"EEE, d LLL yyyy, h:mm a\";\n case stringify(Formats.DATETIME_FULL_WITH_SECONDS):\n return \"LLLL d, yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_HUGE_WITH_SECONDS):\n return \"EEEE, LLLL d, yyyy, h:mm:ss a\";\n default:\n return dateTimeHuge;\n }\n}\n","import * as English from \"./english.js\";\nimport * as Formats from \"./formats.js\";\nimport { hasFormatToParts, padStart } from \"./util.js\";\n\nfunction stringifyTokens(splits, tokenToString) {\n let s = \"\";\n for (const token of splits) {\n if (token.literal) {\n s += token.val;\n } else {\n s += tokenToString(token.val);\n }\n }\n return s;\n}\n\nconst macroTokenToFormatOpts = {\n D: Formats.DATE_SHORT,\n DD: Formats.DATE_MED,\n DDD: Formats.DATE_FULL,\n DDDD: Formats.DATE_HUGE,\n t: Formats.TIME_SIMPLE,\n tt: Formats.TIME_WITH_SECONDS,\n ttt: Formats.TIME_WITH_SHORT_OFFSET,\n tttt: Formats.TIME_WITH_LONG_OFFSET,\n T: Formats.TIME_24_SIMPLE,\n TT: Formats.TIME_24_WITH_SECONDS,\n TTT: Formats.TIME_24_WITH_SHORT_OFFSET,\n TTTT: Formats.TIME_24_WITH_LONG_OFFSET,\n f: Formats.DATETIME_SHORT,\n ff: Formats.DATETIME_MED,\n fff: Formats.DATETIME_FULL,\n ffff: Formats.DATETIME_HUGE,\n F: Formats.DATETIME_SHORT_WITH_SECONDS,\n FF: Formats.DATETIME_MED_WITH_SECONDS,\n FFF: Formats.DATETIME_FULL_WITH_SECONDS,\n FFFF: Formats.DATETIME_HUGE_WITH_SECONDS\n};\n\n/**\n * @private\n */\n\nexport default class Formatter {\n static create(locale, opts = {}) {\n return new Formatter(locale, opts);\n }\n\n static parseFormat(fmt) {\n let current = null,\n currentFull = \"\",\n bracketed = false;\n const splits = [];\n for (let i = 0; i < fmt.length; i++) {\n const c = fmt.charAt(i);\n if (c === \"'\") {\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed, val: currentFull });\n }\n current = null;\n currentFull = \"\";\n bracketed = !bracketed;\n } else if (bracketed) {\n currentFull += c;\n } else if (c === current) {\n currentFull += c;\n } else {\n if (currentFull.length > 0) {\n splits.push({ literal: false, val: currentFull });\n }\n currentFull = c;\n current = c;\n }\n }\n\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed, val: currentFull });\n }\n\n return splits;\n }\n\n static macroTokenToFormatOpts(token) {\n return macroTokenToFormatOpts[token];\n }\n\n constructor(locale, formatOpts) {\n this.opts = formatOpts;\n this.loc = locale;\n this.systemLoc = null;\n }\n\n formatWithSystemDefault(dt, opts) {\n if (this.systemLoc === null) {\n this.systemLoc = this.loc.redefaultToSystem();\n }\n const df = this.systemLoc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.format();\n }\n\n formatDateTime(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.format();\n }\n\n formatDateTimeParts(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.formatToParts();\n }\n\n resolvedOptions(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, Object.assign({}, this.opts, opts));\n return df.resolvedOptions();\n }\n\n num(n, p = 0) {\n // we get some perf out of doing this here, annoyingly\n if (this.opts.forceSimple) {\n return padStart(n, p);\n }\n\n const opts = Object.assign({}, this.opts);\n\n if (p > 0) {\n opts.padTo = p;\n }\n\n return this.loc.numberFormatter(opts).format(n);\n }\n\n formatDateTimeFromString(dt, fmt) {\n const knownEnglish = this.loc.listingMode() === \"en\",\n useDateTimeFormatter =\n this.loc.outputCalendar && this.loc.outputCalendar !== \"gregory\" && hasFormatToParts(),\n string = (opts, extract) => this.loc.extract(dt, opts, extract),\n formatOffset = opts => {\n if (dt.isOffsetFixed && dt.offset === 0 && opts.allowZ) {\n return \"Z\";\n }\n\n return dt.isValid ? dt.zone.formatOffset(dt.ts, opts.format) : \"\";\n },\n meridiem = () =>\n knownEnglish\n ? English.meridiemForDateTime(dt)\n : string({ hour: \"numeric\", hour12: true }, \"dayperiod\"),\n month = (length, standalone) =>\n knownEnglish\n ? English.monthForDateTime(dt, length)\n : string(standalone ? { month: length } : { month: length, day: \"numeric\" }, \"month\"),\n weekday = (length, standalone) =>\n knownEnglish\n ? English.weekdayForDateTime(dt, length)\n : string(\n standalone ? { weekday: length } : { weekday: length, month: \"long\", day: \"numeric\" },\n \"weekday\"\n ),\n maybeMacro = token => {\n const formatOpts = Formatter.macroTokenToFormatOpts(token);\n if (formatOpts) {\n return this.formatWithSystemDefault(dt, formatOpts);\n } else {\n return token;\n }\n },\n era = length =>\n knownEnglish ? English.eraForDateTime(dt, length) : string({ era: length }, \"era\"),\n tokenToString = token => {\n // Where possible: http://cldr.unicode.org/translation/date-time#TOC-Stand-Alone-vs.-Format-Styles\n switch (token) {\n // ms\n case \"S\":\n return this.num(dt.millisecond);\n case \"u\":\n // falls through\n case \"SSS\":\n return this.num(dt.millisecond, 3);\n // seconds\n case \"s\":\n return this.num(dt.second);\n case \"ss\":\n return this.num(dt.second, 2);\n // minutes\n case \"m\":\n return this.num(dt.minute);\n case \"mm\":\n return this.num(dt.minute, 2);\n // hours\n case \"h\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12);\n case \"hh\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12, 2);\n case \"H\":\n return this.num(dt.hour);\n case \"HH\":\n return this.num(dt.hour, 2);\n // offset\n case \"Z\":\n // like +6\n return formatOffset({ format: \"narrow\", allowZ: this.opts.allowZ });\n case \"ZZ\":\n // like +06:00\n return formatOffset({ format: \"short\", allowZ: this.opts.allowZ });\n case \"ZZZ\":\n // like +0600\n return formatOffset({ format: \"techie\", allowZ: this.opts.allowZ });\n case \"ZZZZ\":\n // like EST\n return dt.zone.offsetName(dt.ts, { format: \"short\", locale: this.loc.locale });\n case \"ZZZZZ\":\n // like Eastern Standard Time\n return dt.zone.offsetName(dt.ts, { format: \"long\", locale: this.loc.locale });\n // zone\n case \"z\":\n // like America/New_York\n return dt.zoneName;\n // meridiems\n case \"a\":\n return meridiem();\n // dates\n case \"d\":\n return useDateTimeFormatter ? string({ day: \"numeric\" }, \"day\") : this.num(dt.day);\n case \"dd\":\n return useDateTimeFormatter ? string({ day: \"2-digit\" }, \"day\") : this.num(dt.day, 2);\n // weekdays - standalone\n case \"c\":\n // like 1\n return this.num(dt.weekday);\n case \"ccc\":\n // like 'Tues'\n return weekday(\"short\", true);\n case \"cccc\":\n // like 'Tuesday'\n return weekday(\"long\", true);\n case \"ccccc\":\n // like 'T'\n return weekday(\"narrow\", true);\n // weekdays - format\n case \"E\":\n // like 1\n return this.num(dt.weekday);\n case \"EEE\":\n // like 'Tues'\n return weekday(\"short\", false);\n case \"EEEE\":\n // like 'Tuesday'\n return weekday(\"long\", false);\n case \"EEEEE\":\n // like 'T'\n return weekday(\"narrow\", false);\n // months - standalone\n case \"L\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\", day: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"LL\":\n // like 01, doesn't seem to work\n return useDateTimeFormatter\n ? string({ month: \"2-digit\", day: \"numeric\" }, \"month\")\n : this.num(dt.month, 2);\n case \"LLL\":\n // like Jan\n return month(\"short\", true);\n case \"LLLL\":\n // like January\n return month(\"long\", true);\n case \"LLLLL\":\n // like J\n return month(\"narrow\", true);\n // months - format\n case \"M\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"MM\":\n // like 01\n return useDateTimeFormatter\n ? string({ month: \"2-digit\" }, \"month\")\n : this.num(dt.month, 2);\n case \"MMM\":\n // like Jan\n return month(\"short\", false);\n case \"MMMM\":\n // like January\n return month(\"long\", false);\n case \"MMMMM\":\n // like J\n return month(\"narrow\", false);\n // years\n case \"y\":\n // like 2014\n return useDateTimeFormatter ? string({ year: \"numeric\" }, \"year\") : this.num(dt.year);\n case \"yy\":\n // like 14\n return useDateTimeFormatter\n ? string({ year: \"2-digit\" }, \"year\")\n : this.num(dt.year.toString().slice(-2), 2);\n case \"yyyy\":\n // like 0012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 4);\n case \"yyyyyy\":\n // like 000012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 6);\n // eras\n case \"G\":\n // like AD\n return era(\"short\");\n case \"GG\":\n // like Anno Domini\n return era(\"long\");\n case \"GGGGG\":\n return era(\"narrow\");\n case \"kk\":\n return this.num(dt.weekYear.toString().slice(-2), 2);\n case \"kkkk\":\n return this.num(dt.weekYear, 4);\n case \"W\":\n return this.num(dt.weekNumber);\n case \"WW\":\n return this.num(dt.weekNumber, 2);\n case \"o\":\n return this.num(dt.ordinal);\n case \"ooo\":\n return this.num(dt.ordinal, 3);\n case \"q\":\n // like 1\n return this.num(dt.quarter);\n case \"qq\":\n // like 01\n return this.num(dt.quarter, 2);\n case \"X\":\n return this.num(Math.floor(dt.ts / 1000));\n case \"x\":\n return this.num(dt.ts);\n default:\n return maybeMacro(token);\n }\n };\n\n return stringifyTokens(Formatter.parseFormat(fmt), tokenToString);\n }\n\n formatDurationFromString(dur, fmt) {\n const tokenToField = token => {\n switch (token[0]) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n default:\n return null;\n }\n },\n tokenToString = lildur => token => {\n const mapped = tokenToField(token);\n if (mapped) {\n return this.num(lildur.get(mapped), token.length);\n } else {\n return token;\n }\n },\n tokens = Formatter.parseFormat(fmt),\n realTokens = tokens.reduce(\n (found, { literal, val }) => (literal ? found : found.concat(val)),\n []\n ),\n collapsed = dur.shiftTo(...realTokens.map(tokenToField).filter(t => t));\n return stringifyTokens(tokens, tokenToString(collapsed));\n }\n}\n","export default class Invalid {\n constructor(reason, explanation) {\n this.reason = reason;\n this.explanation = explanation;\n }\n\n toMessage() {\n if (this.explanation) {\n return `${this.reason}: ${this.explanation}`;\n } else {\n return this.reason;\n }\n }\n}\n","/* eslint no-unused-vars: \"off\" */\nimport { ZoneIsAbstractError } from \"./errors.js\";\n\n/**\n * @interface\n */\nexport default class Zone {\n /**\n * The type of zone\n * @abstract\n * @type {string}\n */\n get type() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * The name of this zone.\n * @abstract\n * @type {string}\n */\n get name() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns whether the offset is known to be fixed for the whole year.\n * @abstract\n * @type {boolean}\n */\n get universal() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's common name (such as EST) at the specified timestamp\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the name\n * @param {Object} opts - Options to affect the format\n * @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'.\n * @param {string} opts.locale - What locale to return the offset name in.\n * @return {string}\n */\n offsetName(ts, opts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's value as a string\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\n formatOffset(ts, format) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return the offset in minutes for this zone at the specified timestamp.\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to compute the offset\n * @return {number}\n */\n offset(ts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is equal to another zone\n * @abstract\n * @param {Zone} otherZone - the zone to compare\n * @return {boolean}\n */\n equals(otherZone) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is valid.\n * @abstract\n * @type {boolean}\n */\n get isValid() {\n throw new ZoneIsAbstractError();\n }\n}\n","import { formatOffset, parseZoneInfo, hasIntl } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * Represents the local zone for this Javascript environment.\n * @implements {Zone}\n */\nexport default class LocalZone extends Zone {\n /**\n * Get a singleton instance of the local zone\n * @return {LocalZone}\n */\n static get instance() {\n if (singleton === null) {\n singleton = new LocalZone();\n }\n return singleton;\n }\n\n /** @override **/\n get type() {\n return \"local\";\n }\n\n /** @override **/\n get name() {\n if (hasIntl()) {\n return new Intl.DateTimeFormat().resolvedOptions().timeZone;\n } else return \"local\";\n }\n\n /** @override **/\n get universal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n return -new Date(ts).getTimezoneOffset();\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"local\";\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n","import { formatOffset, parseZoneInfo, isUndefined, ianaRegex, objToLocalTS } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nconst matchingRegex = RegExp(`^${ianaRegex.source}$`);\n\nlet dtfCache = {};\nfunction makeDTF(zone) {\n if (!dtfCache[zone]) {\n dtfCache[zone] = new Intl.DateTimeFormat(\"en-US\", {\n hour12: false,\n timeZone: zone,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\"\n });\n }\n return dtfCache[zone];\n}\n\nconst typeToPos = {\n year: 0,\n month: 1,\n day: 2,\n hour: 3,\n minute: 4,\n second: 5\n};\n\nfunction hackyOffset(dtf, date) {\n const formatted = dtf.format(date).replace(/\\u200E/g, \"\"),\n parsed = /(\\d+)\\/(\\d+)\\/(\\d+),? (\\d+):(\\d+):(\\d+)/.exec(formatted),\n [, fMonth, fDay, fYear, fHour, fMinute, fSecond] = parsed;\n return [fYear, fMonth, fDay, fHour, fMinute, fSecond];\n}\n\nfunction partsOffset(dtf, date) {\n const formatted = dtf.formatToParts(date),\n filled = [];\n for (let i = 0; i < formatted.length; i++) {\n const { type, value } = formatted[i],\n pos = typeToPos[type];\n\n if (!isUndefined(pos)) {\n filled[pos] = parseInt(value, 10);\n }\n }\n return filled;\n}\n\nlet ianaZoneCache = {};\n/**\n * A zone identified by an IANA identifier, like America/New_York\n * @implements {Zone}\n */\nexport default class IANAZone extends Zone {\n /**\n * @param {string} name - Zone name\n * @return {IANAZone}\n */\n static create(name) {\n if (!ianaZoneCache[name]) {\n ianaZoneCache[name] = new IANAZone(name);\n }\n return ianaZoneCache[name];\n }\n\n /**\n * Reset local caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCache() {\n ianaZoneCache = {};\n dtfCache = {};\n }\n\n /**\n * Returns whether the provided string is a valid specifier. This only checks the string's format, not that the specifier identifies a known zone; see isValidZone for that.\n * @param {string} s - The string to check validity on\n * @example IANAZone.isValidSpecifier(\"America/New_York\") //=> true\n * @example IANAZone.isValidSpecifier(\"Fantasia/Castle\") //=> true\n * @example IANAZone.isValidSpecifier(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */\n static isValidSpecifier(s) {\n return !!(s && s.match(matchingRegex));\n }\n\n /**\n * Returns whether the provided string identifies a real zone\n * @param {string} zone - The string to check\n * @example IANAZone.isValidZone(\"America/New_York\") //=> true\n * @example IANAZone.isValidZone(\"Fantasia/Castle\") //=> false\n * @example IANAZone.isValidZone(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */\n static isValidZone(zone) {\n try {\n new Intl.DateTimeFormat(\"en-US\", { timeZone: zone }).format();\n return true;\n } catch (e) {\n return false;\n }\n }\n\n // Etc/GMT+8 -> -480\n /** @ignore */\n static parseGMTOffset(specifier) {\n if (specifier) {\n const match = specifier.match(/^Etc\\/GMT([+-]\\d{1,2})$/i);\n if (match) {\n return -60 * parseInt(match[1]);\n }\n }\n return null;\n }\n\n constructor(name) {\n super();\n /** @private **/\n this.zoneName = name;\n /** @private **/\n this.valid = IANAZone.isValidZone(name);\n }\n\n /** @override **/\n get type() {\n return \"iana\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get universal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale, this.name);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n const date = new Date(ts),\n dtf = makeDTF(this.name),\n [year, month, day, hour, minute, second] = dtf.formatToParts\n ? partsOffset(dtf, date)\n : hackyOffset(dtf, date),\n // work around https://bugs.chromium.org/p/chromium/issues/detail?id=1025564&can=2&q=%2224%3A00%22%20datetimeformat\n adjustedHour = hour === 24 ? 0 : hour;\n\n const asUTC = objToLocalTS({\n year,\n month,\n day,\n hour: adjustedHour,\n minute,\n second,\n millisecond: 0\n });\n\n let asTS = +date;\n const over = asTS % 1000;\n asTS -= over >= 0 ? over : 1000 + over;\n return (asUTC - asTS) / (60 * 1000);\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"iana\" && otherZone.name === this.name;\n }\n\n /** @override **/\n get isValid() {\n return this.valid;\n }\n}\n","import { formatOffset, signedOffset } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * A zone with a fixed offset (meaning no DST)\n * @implements {Zone}\n */\nexport default class FixedOffsetZone extends Zone {\n /**\n * Get a singleton instance of UTC\n * @return {FixedOffsetZone}\n */\n static get utcInstance() {\n if (singleton === null) {\n singleton = new FixedOffsetZone(0);\n }\n return singleton;\n }\n\n /**\n * Get an instance with a specified offset\n * @param {number} offset - The offset in minutes\n * @return {FixedOffsetZone}\n */\n static instance(offset) {\n return offset === 0 ? FixedOffsetZone.utcInstance : new FixedOffsetZone(offset);\n }\n\n /**\n * Get an instance of FixedOffsetZone from a UTC offset string, like \"UTC+6\"\n * @param {string} s - The offset string to parse\n * @example FixedOffsetZone.parseSpecifier(\"UTC+6\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC+06\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC-6:00\")\n * @return {FixedOffsetZone}\n */\n static parseSpecifier(s) {\n if (s) {\n const r = s.match(/^utc(?:([+-]\\d{1,2})(?::(\\d{2}))?)?$/i);\n if (r) {\n return new FixedOffsetZone(signedOffset(r[1], r[2]));\n }\n }\n return null;\n }\n\n constructor(offset) {\n super();\n /** @private **/\n this.fixed = offset;\n }\n\n /** @override **/\n get type() {\n return \"fixed\";\n }\n\n /** @override **/\n get name() {\n return this.fixed === 0 ? \"UTC\" : `UTC${formatOffset(this.fixed, \"narrow\")}`;\n }\n\n /** @override **/\n offsetName() {\n return this.name;\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.fixed, format);\n }\n\n /** @override **/\n get universal() {\n return true;\n }\n\n /** @override **/\n offset() {\n return this.fixed;\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"fixed\" && otherZone.fixed === this.fixed;\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n","import Zone from \"../zone.js\";\n\n/**\n * A zone that failed to parse. You should never need to instantiate this.\n * @implements {Zone}\n */\nexport default class InvalidZone extends Zone {\n constructor(zoneName) {\n super();\n /** @private */\n this.zoneName = zoneName;\n }\n\n /** @override **/\n get type() {\n return \"invalid\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get universal() {\n return false;\n }\n\n /** @override **/\n offsetName() {\n return null;\n }\n\n /** @override **/\n formatOffset() {\n return \"\";\n }\n\n /** @override **/\n offset() {\n return NaN;\n }\n\n /** @override **/\n equals() {\n return false;\n }\n\n /** @override **/\n get isValid() {\n return false;\n }\n}\n","/**\n * @private\n */\n\nimport Zone from \"../zone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport InvalidZone from \"../zones/invalidZone.js\";\n\nimport { isUndefined, isString, isNumber } from \"./util.js\";\n\nexport function normalizeZone(input, defaultZone) {\n let offset;\n if (isUndefined(input) || input === null) {\n return defaultZone;\n } else if (input instanceof Zone) {\n return input;\n } else if (isString(input)) {\n const lowered = input.toLowerCase();\n if (lowered === \"local\") return defaultZone;\n else if (lowered === \"utc\" || lowered === \"gmt\") return FixedOffsetZone.utcInstance;\n else if ((offset = IANAZone.parseGMTOffset(input)) != null) {\n // handle Etc/GMT-4, which V8 chokes on\n return FixedOffsetZone.instance(offset);\n } else if (IANAZone.isValidSpecifier(lowered)) return IANAZone.create(input);\n else return FixedOffsetZone.parseSpecifier(lowered) || new InvalidZone(input);\n } else if (isNumber(input)) {\n return FixedOffsetZone.instance(input);\n } else if (typeof input === \"object\" && input.offset && typeof input.offset === \"number\") {\n // This is dumb, but the instanceof check above doesn't seem to really work\n // so we're duck checking it\n return input;\n } else {\n return new InvalidZone(input);\n }\n}\n","import LocalZone from \"./zones/localZone.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport Locale from \"./impl/locale.js\";\n\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\n\nlet now = () => Date.now(),\n defaultZone = null, // not setting this directly to LocalZone.instance bc loading order issues\n defaultLocale = null,\n defaultNumberingSystem = null,\n defaultOutputCalendar = null,\n throwOnInvalid = false;\n\n/**\n * Settings contains static getters and setters that control Luxon's overall behavior. Luxon is a simple library with few options, but the ones it does have live here.\n */\nexport default class Settings {\n /**\n * Get the callback for returning the current timestamp.\n * @type {function}\n */\n static get now() {\n return now;\n }\n\n /**\n * Set the callback for returning the current timestamp.\n * The function should return a number, which will be interpreted as an Epoch millisecond count\n * @type {function}\n * @example Settings.now = () => Date.now() + 3000 // pretend it is 3 seconds in the future\n * @example Settings.now = () => 0 // always pretend it's Jan 1, 1970 at midnight in UTC time\n */\n static set now(n) {\n now = n;\n }\n\n /**\n * Get the default time zone to create DateTimes in.\n * @type {string}\n */\n static get defaultZoneName() {\n return Settings.defaultZone.name;\n }\n\n /**\n * Set the default time zone to create DateTimes in. Does not affect existing instances.\n * @type {string}\n */\n static set defaultZoneName(z) {\n if (!z) {\n defaultZone = null;\n } else {\n defaultZone = normalizeZone(z);\n }\n }\n\n /**\n * Get the default time zone object to create DateTimes in. Does not affect existing instances.\n * @type {Zone}\n */\n static get defaultZone() {\n return defaultZone || LocalZone.instance;\n }\n\n /**\n * Get the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultLocale() {\n return defaultLocale;\n }\n\n /**\n * Set the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultLocale(locale) {\n defaultLocale = locale;\n }\n\n /**\n * Get the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultNumberingSystem() {\n return defaultNumberingSystem;\n }\n\n /**\n * Set the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultNumberingSystem(numberingSystem) {\n defaultNumberingSystem = numberingSystem;\n }\n\n /**\n * Get the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultOutputCalendar() {\n return defaultOutputCalendar;\n }\n\n /**\n * Set the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultOutputCalendar(outputCalendar) {\n defaultOutputCalendar = outputCalendar;\n }\n\n /**\n * Get whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static get throwOnInvalid() {\n return throwOnInvalid;\n }\n\n /**\n * Set whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static set throwOnInvalid(t) {\n throwOnInvalid = t;\n }\n\n /**\n * Reset Luxon's global caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCaches() {\n Locale.resetCache();\n IANAZone.resetCache();\n }\n}\n","import { hasFormatToParts, hasIntl, padStart, roundTo, hasRelative } from \"./util.js\";\nimport * as English from \"./english.js\";\nimport Settings from \"../settings.js\";\nimport DateTime from \"../datetime.js\";\nimport Formatter from \"./formatter.js\";\n\nlet intlDTCache = {};\nfunction getCachedDTF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let dtf = intlDTCache[key];\n if (!dtf) {\n dtf = new Intl.DateTimeFormat(locString, opts);\n intlDTCache[key] = dtf;\n }\n return dtf;\n}\n\nlet intlNumCache = {};\nfunction getCachedINF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let inf = intlNumCache[key];\n if (!inf) {\n inf = new Intl.NumberFormat(locString, opts);\n intlNumCache[key] = inf;\n }\n return inf;\n}\n\nlet intlRelCache = {};\nfunction getCachedRTF(locString, opts = {}) {\n const { base, ...cacheKeyOpts } = opts; // exclude `base` from the options\n const key = JSON.stringify([locString, cacheKeyOpts]);\n let inf = intlRelCache[key];\n if (!inf) {\n inf = new Intl.RelativeTimeFormat(locString, opts);\n intlRelCache[key] = inf;\n }\n return inf;\n}\n\nlet sysLocaleCache = null;\nfunction systemLocale() {\n if (sysLocaleCache) {\n return sysLocaleCache;\n } else if (hasIntl()) {\n const computedSys = new Intl.DateTimeFormat().resolvedOptions().locale;\n // node sometimes defaults to \"und\". Override that because that is dumb\n sysLocaleCache = !computedSys || computedSys === \"und\" ? \"en-US\" : computedSys;\n return sysLocaleCache;\n } else {\n sysLocaleCache = \"en-US\";\n return sysLocaleCache;\n }\n}\n\nfunction parseLocaleString(localeStr) {\n // I really want to avoid writing a BCP 47 parser\n // see, e.g. https://github.com/wooorm/bcp-47\n // Instead, we'll do this:\n\n // a) if the string has no -u extensions, just leave it alone\n // b) if it does, use Intl to resolve everything\n // c) if Intl fails, try again without the -u\n\n const uIndex = localeStr.indexOf(\"-u-\");\n if (uIndex === -1) {\n return [localeStr];\n } else {\n let options;\n const smaller = localeStr.substring(0, uIndex);\n try {\n options = getCachedDTF(localeStr).resolvedOptions();\n } catch (e) {\n options = getCachedDTF(smaller).resolvedOptions();\n }\n\n const { numberingSystem, calendar } = options;\n // return the smaller one so that we can append the calendar and numbering overrides to it\n return [smaller, numberingSystem, calendar];\n }\n}\n\nfunction intlConfigString(localeStr, numberingSystem, outputCalendar) {\n if (hasIntl()) {\n if (outputCalendar || numberingSystem) {\n localeStr += \"-u\";\n\n if (outputCalendar) {\n localeStr += `-ca-${outputCalendar}`;\n }\n\n if (numberingSystem) {\n localeStr += `-nu-${numberingSystem}`;\n }\n return localeStr;\n } else {\n return localeStr;\n }\n } else {\n return [];\n }\n}\n\nfunction mapMonths(f) {\n const ms = [];\n for (let i = 1; i <= 12; i++) {\n const dt = DateTime.utc(2016, i, 1);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction mapWeekdays(f) {\n const ms = [];\n for (let i = 1; i <= 7; i++) {\n const dt = DateTime.utc(2016, 11, 13 + i);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction listStuff(loc, length, defaultOK, englishFn, intlFn) {\n const mode = loc.listingMode(defaultOK);\n\n if (mode === \"error\") {\n return null;\n } else if (mode === \"en\") {\n return englishFn(length);\n } else {\n return intlFn(length);\n }\n}\n\nfunction supportsFastNumbers(loc) {\n if (loc.numberingSystem && loc.numberingSystem !== \"latn\") {\n return false;\n } else {\n return (\n loc.numberingSystem === \"latn\" ||\n !loc.locale ||\n loc.locale.startsWith(\"en\") ||\n (hasIntl() && new Intl.DateTimeFormat(loc.intl).resolvedOptions().numberingSystem === \"latn\")\n );\n }\n}\n\n/**\n * @private\n */\n\nclass PolyNumberFormatter {\n constructor(intl, forceSimple, opts) {\n this.padTo = opts.padTo || 0;\n this.floor = opts.floor || false;\n\n if (!forceSimple && hasIntl()) {\n const intlOpts = { useGrouping: false };\n if (opts.padTo > 0) intlOpts.minimumIntegerDigits = opts.padTo;\n this.inf = getCachedINF(intl, intlOpts);\n }\n }\n\n format(i) {\n if (this.inf) {\n const fixed = this.floor ? Math.floor(i) : i;\n return this.inf.format(fixed);\n } else {\n // to match the browser's numberformatter defaults\n const fixed = this.floor ? Math.floor(i) : roundTo(i, 3);\n return padStart(fixed, this.padTo);\n }\n }\n}\n\n/**\n * @private\n */\n\nclass PolyDateFormatter {\n constructor(dt, intl, opts) {\n this.opts = opts;\n this.hasIntl = hasIntl();\n\n let z;\n if (dt.zone.universal && this.hasIntl) {\n // Chromium doesn't support fixed-offset zones like Etc/GMT+8 in its formatter,\n // See https://bugs.chromium.org/p/chromium/issues/detail?id=364374.\n // So we have to make do. Two cases:\n // 1. The format options tell us to show the zone. We can't do that, so the best\n // we can do is format the date in UTC.\n // 2. The format options don't tell us to show the zone. Then we can adjust them\n // the time and tell the formatter to show it to us in UTC, so that the time is right\n // and the bad zone doesn't show up.\n // We can clean all this up when Chrome fixes this.\n z = \"UTC\";\n if (opts.timeZoneName) {\n this.dt = dt;\n } else {\n this.dt = dt.offset === 0 ? dt : DateTime.fromMillis(dt.ts + dt.offset * 60 * 1000);\n }\n } else if (dt.zone.type === \"local\") {\n this.dt = dt;\n } else {\n this.dt = dt;\n z = dt.zone.name;\n }\n\n if (this.hasIntl) {\n const intlOpts = Object.assign({}, this.opts);\n if (z) {\n intlOpts.timeZone = z;\n }\n this.dtf = getCachedDTF(intl, intlOpts);\n }\n }\n\n format() {\n if (this.hasIntl) {\n return this.dtf.format(this.dt.toJSDate());\n } else {\n const tokenFormat = English.formatString(this.opts),\n loc = Locale.create(\"en-US\");\n return Formatter.create(loc).formatDateTimeFromString(this.dt, tokenFormat);\n }\n }\n\n formatToParts() {\n if (this.hasIntl && hasFormatToParts()) {\n return this.dtf.formatToParts(this.dt.toJSDate());\n } else {\n // This is kind of a cop out. We actually could do this for English. However, we couldn't do it for intl strings\n // and IMO it's too weird to have an uncanny valley like that\n return [];\n }\n }\n\n resolvedOptions() {\n if (this.hasIntl) {\n return this.dtf.resolvedOptions();\n } else {\n return {\n locale: \"en-US\",\n numberingSystem: \"latn\",\n outputCalendar: \"gregory\"\n };\n }\n }\n}\n\n/**\n * @private\n */\nclass PolyRelFormatter {\n constructor(intl, isEnglish, opts) {\n this.opts = Object.assign({ style: \"long\" }, opts);\n if (!isEnglish && hasRelative()) {\n this.rtf = getCachedRTF(intl, opts);\n }\n }\n\n format(count, unit) {\n if (this.rtf) {\n return this.rtf.format(count, unit);\n } else {\n return English.formatRelativeTime(unit, count, this.opts.numeric, this.opts.style !== \"long\");\n }\n }\n\n formatToParts(count, unit) {\n if (this.rtf) {\n return this.rtf.formatToParts(count, unit);\n } else {\n return [];\n }\n }\n}\n\n/**\n * @private\n */\n\nexport default class Locale {\n static fromOpts(opts) {\n return Locale.create(opts.locale, opts.numberingSystem, opts.outputCalendar, opts.defaultToEN);\n }\n\n static create(locale, numberingSystem, outputCalendar, defaultToEN = false) {\n const specifiedLocale = locale || Settings.defaultLocale,\n // the system locale is useful for human readable strings but annoying for parsing/formatting known formats\n localeR = specifiedLocale || (defaultToEN ? \"en-US\" : systemLocale()),\n numberingSystemR = numberingSystem || Settings.defaultNumberingSystem,\n outputCalendarR = outputCalendar || Settings.defaultOutputCalendar;\n return new Locale(localeR, numberingSystemR, outputCalendarR, specifiedLocale);\n }\n\n static resetCache() {\n sysLocaleCache = null;\n intlDTCache = {};\n intlNumCache = {};\n intlRelCache = {};\n }\n\n static fromObject({ locale, numberingSystem, outputCalendar } = {}) {\n return Locale.create(locale, numberingSystem, outputCalendar);\n }\n\n constructor(locale, numbering, outputCalendar, specifiedLocale) {\n const [parsedLocale, parsedNumberingSystem, parsedOutputCalendar] = parseLocaleString(locale);\n\n this.locale = parsedLocale;\n this.numberingSystem = numbering || parsedNumberingSystem || null;\n this.outputCalendar = outputCalendar || parsedOutputCalendar || null;\n this.intl = intlConfigString(this.locale, this.numberingSystem, this.outputCalendar);\n\n this.weekdaysCache = { format: {}, standalone: {} };\n this.monthsCache = { format: {}, standalone: {} };\n this.meridiemCache = null;\n this.eraCache = {};\n\n this.specifiedLocale = specifiedLocale;\n this.fastNumbersCached = null;\n }\n\n get fastNumbers() {\n if (this.fastNumbersCached == null) {\n this.fastNumbersCached = supportsFastNumbers(this);\n }\n\n return this.fastNumbersCached;\n }\n\n listingMode(defaultOK = true) {\n const intl = hasIntl(),\n hasFTP = intl && hasFormatToParts(),\n isActuallyEn = this.isEnglish(),\n hasNoWeirdness =\n (this.numberingSystem === null || this.numberingSystem === \"latn\") &&\n (this.outputCalendar === null || this.outputCalendar === \"gregory\");\n\n if (!hasFTP && !(isActuallyEn && hasNoWeirdness) && !defaultOK) {\n return \"error\";\n } else if (!hasFTP || (isActuallyEn && hasNoWeirdness)) {\n return \"en\";\n } else {\n return \"intl\";\n }\n }\n\n clone(alts) {\n if (!alts || Object.getOwnPropertyNames(alts).length === 0) {\n return this;\n } else {\n return Locale.create(\n alts.locale || this.specifiedLocale,\n alts.numberingSystem || this.numberingSystem,\n alts.outputCalendar || this.outputCalendar,\n alts.defaultToEN || false\n );\n }\n }\n\n redefaultToEN(alts = {}) {\n return this.clone(Object.assign({}, alts, { defaultToEN: true }));\n }\n\n redefaultToSystem(alts = {}) {\n return this.clone(Object.assign({}, alts, { defaultToEN: false }));\n }\n\n months(length, format = false, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.months, () => {\n const intl = format ? { month: length, day: \"numeric\" } : { month: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.monthsCache[formatStr][length]) {\n this.monthsCache[formatStr][length] = mapMonths(dt => this.extract(dt, intl, \"month\"));\n }\n return this.monthsCache[formatStr][length];\n });\n }\n\n weekdays(length, format = false, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.weekdays, () => {\n const intl = format\n ? { weekday: length, year: \"numeric\", month: \"long\", day: \"numeric\" }\n : { weekday: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.weekdaysCache[formatStr][length]) {\n this.weekdaysCache[formatStr][length] = mapWeekdays(dt =>\n this.extract(dt, intl, \"weekday\")\n );\n }\n return this.weekdaysCache[formatStr][length];\n });\n }\n\n meridiems(defaultOK = true) {\n return listStuff(\n this,\n undefined,\n defaultOK,\n () => English.meridiems,\n () => {\n // In theory there could be aribitrary day periods. We're gonna assume there are exactly two\n // for AM and PM. This is probably wrong, but it's makes parsing way easier.\n if (!this.meridiemCache) {\n const intl = { hour: \"numeric\", hour12: true };\n this.meridiemCache = [DateTime.utc(2016, 11, 13, 9), DateTime.utc(2016, 11, 13, 19)].map(\n dt => this.extract(dt, intl, \"dayperiod\")\n );\n }\n\n return this.meridiemCache;\n }\n );\n }\n\n eras(length, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.eras, () => {\n const intl = { era: length };\n\n // This is utter bullshit. Different calendars are going to define eras totally differently. What I need is the minimum set of dates\n // to definitely enumerate them.\n if (!this.eraCache[length]) {\n this.eraCache[length] = [DateTime.utc(-40, 1, 1), DateTime.utc(2017, 1, 1)].map(dt =>\n this.extract(dt, intl, \"era\")\n );\n }\n\n return this.eraCache[length];\n });\n }\n\n extract(dt, intlOpts, field) {\n const df = this.dtFormatter(dt, intlOpts),\n results = df.formatToParts(),\n matching = results.find(m => m.type.toLowerCase() === field);\n return matching ? matching.value : null;\n }\n\n numberFormatter(opts = {}) {\n // this forcesimple option is never used (the only caller short-circuits on it, but it seems safer to leave)\n // (in contrast, the rest of the condition is used heavily)\n return new PolyNumberFormatter(this.intl, opts.forceSimple || this.fastNumbers, opts);\n }\n\n dtFormatter(dt, intlOpts = {}) {\n return new PolyDateFormatter(dt, this.intl, intlOpts);\n }\n\n relFormatter(opts = {}) {\n return new PolyRelFormatter(this.intl, this.isEnglish(), opts);\n }\n\n isEnglish() {\n return (\n this.locale === \"en\" ||\n this.locale.toLowerCase() === \"en-us\" ||\n (hasIntl() && new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith(\"en-us\"))\n );\n }\n\n equals(other) {\n return (\n this.locale === other.locale &&\n this.numberingSystem === other.numberingSystem &&\n this.outputCalendar === other.outputCalendar\n );\n }\n}\n","import {\n untruncateYear,\n signedOffset,\n parseInteger,\n parseMillis,\n ianaRegex,\n isUndefined\n} from \"./util.js\";\nimport * as English from \"./english.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\n\n/*\n * This file handles parsing for well-specified formats. Here's how it works:\n * Two things go into parsing: a regex to match with and an extractor to take apart the groups in the match.\n * An extractor is just a function that takes a regex match array and returns a { year: ..., month: ... } object\n * parse() does the work of executing the regex and applying the extractor. It takes multiple regex/extractor pairs to try in sequence.\n * Extractors can take a \"cursor\" representing the offset in the match to look at. This makes it easy to combine extractors.\n * combineExtractors() does the work of combining them, keeping track of the cursor through multiple extractions.\n * Some extractions are super dumb and simpleParse and fromStrings help DRY them.\n */\n\nfunction combineRegexes(...regexes) {\n const full = regexes.reduce((f, r) => f + r.source, \"\");\n return RegExp(`^${full}$`);\n}\n\nfunction combineExtractors(...extractors) {\n return m =>\n extractors\n .reduce(\n ([mergedVals, mergedZone, cursor], ex) => {\n const [val, zone, next] = ex(m, cursor);\n return [Object.assign(mergedVals, val), mergedZone || zone, next];\n },\n [{}, null, 1]\n )\n .slice(0, 2);\n}\n\nfunction parse(s, ...patterns) {\n if (s == null) {\n return [null, null];\n }\n\n for (const [regex, extractor] of patterns) {\n const m = regex.exec(s);\n if (m) {\n return extractor(m);\n }\n }\n return [null, null];\n}\n\nfunction simpleParse(...keys) {\n return (match, cursor) => {\n const ret = {};\n let i;\n\n for (i = 0; i < keys.length; i++) {\n ret[keys[i]] = parseInteger(match[cursor + i]);\n }\n return [ret, null, cursor + i];\n };\n}\n\n// ISO and SQL parsing\nconst offsetRegex = /(?:(Z)|([+-]\\d\\d)(?::?(\\d\\d))?)/,\n isoTimeBaseRegex = /(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:[.,](\\d{1,9}))?)?)?/,\n isoTimeRegex = RegExp(`${isoTimeBaseRegex.source}${offsetRegex.source}?`),\n isoTimeExtensionRegex = RegExp(`(?:T${isoTimeRegex.source})?`),\n isoYmdRegex = /([+-]\\d{6}|\\d{4})(?:-?(\\d\\d)(?:-?(\\d\\d))?)?/,\n isoWeekRegex = /(\\d{4})-?W(\\d\\d)(?:-?(\\d))?/,\n isoOrdinalRegex = /(\\d{4})-?(\\d{3})/,\n extractISOWeekData = simpleParse(\"weekYear\", \"weekNumber\", \"weekDay\"),\n extractISOOrdinalData = simpleParse(\"year\", \"ordinal\"),\n sqlYmdRegex = /(\\d{4})-(\\d\\d)-(\\d\\d)/, // dumbed-down version of the ISO one\n sqlTimeRegex = RegExp(\n `${isoTimeBaseRegex.source} ?(?:${offsetRegex.source}|(${ianaRegex.source}))?`\n ),\n sqlTimeExtensionRegex = RegExp(`(?: ${sqlTimeRegex.source})?`);\n\nfunction int(match, pos, fallback) {\n const m = match[pos];\n return isUndefined(m) ? fallback : parseInteger(m);\n}\n\nfunction extractISOYmd(match, cursor) {\n const item = {\n year: int(match, cursor),\n month: int(match, cursor + 1, 1),\n day: int(match, cursor + 2, 1)\n };\n\n return [item, null, cursor + 3];\n}\n\nfunction extractISOTime(match, cursor) {\n const item = {\n hour: int(match, cursor, 0),\n minute: int(match, cursor + 1, 0),\n second: int(match, cursor + 2, 0),\n millisecond: parseMillis(match[cursor + 3])\n };\n\n return [item, null, cursor + 4];\n}\n\nfunction extractISOOffset(match, cursor) {\n const local = !match[cursor] && !match[cursor + 1],\n fullOffset = signedOffset(match[cursor + 1], match[cursor + 2]),\n zone = local ? null : FixedOffsetZone.instance(fullOffset);\n return [{}, zone, cursor + 3];\n}\n\nfunction extractIANAZone(match, cursor) {\n const zone = match[cursor] ? IANAZone.create(match[cursor]) : null;\n return [{}, zone, cursor + 1];\n}\n\n// ISO duration parsing\n\nconst isoDuration = /^-?P(?:(?:(-?\\d{1,9})Y)?(?:(-?\\d{1,9})M)?(?:(-?\\d{1,9})W)?(?:(-?\\d{1,9})D)?(?:T(?:(-?\\d{1,9})H)?(?:(-?\\d{1,9})M)?(?:(-?\\d{1,9})(?:[.,](-?\\d{1,9}))?S)?)?)$/;\n\nfunction extractISODuration(match) {\n const [\n s,\n yearStr,\n monthStr,\n weekStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr,\n millisecondsStr\n ] = match;\n\n const hasNegativePrefix = s[0] === \"-\";\n\n const maybeNegate = num => (num && hasNegativePrefix ? -num : num);\n\n return [\n {\n years: maybeNegate(parseInteger(yearStr)),\n months: maybeNegate(parseInteger(monthStr)),\n weeks: maybeNegate(parseInteger(weekStr)),\n days: maybeNegate(parseInteger(dayStr)),\n hours: maybeNegate(parseInteger(hourStr)),\n minutes: maybeNegate(parseInteger(minuteStr)),\n seconds: maybeNegate(parseInteger(secondStr)),\n milliseconds: maybeNegate(parseMillis(millisecondsStr))\n }\n ];\n}\n\n// These are a little braindead. EDT *should* tell us that we're in, say, America/New_York\n// and not just that we're in -240 *right now*. But since I don't think these are used that often\n// I'm just going to ignore that\nconst obsOffsets = {\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n};\n\nfunction fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n const result = {\n year: yearStr.length === 2 ? untruncateYear(parseInteger(yearStr)) : parseInteger(yearStr),\n month: English.monthsShort.indexOf(monthStr) + 1,\n day: parseInteger(dayStr),\n hour: parseInteger(hourStr),\n minute: parseInteger(minuteStr)\n };\n\n if (secondStr) result.second = parseInteger(secondStr);\n if (weekdayStr) {\n result.weekday =\n weekdayStr.length > 3\n ? English.weekdaysLong.indexOf(weekdayStr) + 1\n : English.weekdaysShort.indexOf(weekdayStr) + 1;\n }\n\n return result;\n}\n\n// RFC 2822/5322\nconst rfc2822 = /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\\d\\d)(\\d\\d)))$/;\n\nfunction extractRFC2822(match) {\n const [\n ,\n weekdayStr,\n dayStr,\n monthStr,\n yearStr,\n hourStr,\n minuteStr,\n secondStr,\n obsOffset,\n milOffset,\n offHourStr,\n offMinuteStr\n ] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n\n let offset;\n if (obsOffset) {\n offset = obsOffsets[obsOffset];\n } else if (milOffset) {\n offset = 0;\n } else {\n offset = signedOffset(offHourStr, offMinuteStr);\n }\n\n return [result, new FixedOffsetZone(offset)];\n}\n\nfunction preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, \" \")\n .replace(/(\\s\\s+)/g, \" \")\n .trim();\n}\n\n// http date\n\nconst rfc1123 = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\\d\\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\\d{4}) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,\n rfc850 = /^(Monday|Tuesday|Wedsday|Thursday|Friday|Saturday|Sunday), (\\d\\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,\n ascii = /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \\d|\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) (\\d{4})$/;\n\nfunction extractRFC1123Or850(match) {\n const [, weekdayStr, dayStr, monthStr, yearStr, hourStr, minuteStr, secondStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nfunction extractASCII(match) {\n const [, weekdayStr, monthStr, dayStr, hourStr, minuteStr, secondStr, yearStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nconst isoYmdWithTimeExtensionRegex = combineRegexes(isoYmdRegex, isoTimeExtensionRegex);\nconst isoWeekWithTimeExtensionRegex = combineRegexes(isoWeekRegex, isoTimeExtensionRegex);\nconst isoOrdinalWithTimeExtensionRegex = combineRegexes(isoOrdinalRegex, isoTimeExtensionRegex);\nconst isoTimeCombinedRegex = combineRegexes(isoTimeRegex);\n\nconst extractISOYmdTimeAndOffset = combineExtractors(\n extractISOYmd,\n extractISOTime,\n extractISOOffset\n);\nconst extractISOWeekTimeAndOffset = combineExtractors(\n extractISOWeekData,\n extractISOTime,\n extractISOOffset\n);\nconst extractISOOrdinalDataAndTime = combineExtractors(extractISOOrdinalData, extractISOTime);\nconst extractISOTimeAndOffset = combineExtractors(extractISOTime, extractISOOffset);\n\n/**\n * @private\n */\n\nexport function parseISODate(s) {\n return parse(\n s,\n [isoYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset],\n [isoWeekWithTimeExtensionRegex, extractISOWeekTimeAndOffset],\n [isoOrdinalWithTimeExtensionRegex, extractISOOrdinalDataAndTime],\n [isoTimeCombinedRegex, extractISOTimeAndOffset]\n );\n}\n\nexport function parseRFC2822Date(s) {\n return parse(preprocessRFC2822(s), [rfc2822, extractRFC2822]);\n}\n\nexport function parseHTTPDate(s) {\n return parse(\n s,\n [rfc1123, extractRFC1123Or850],\n [rfc850, extractRFC1123Or850],\n [ascii, extractASCII]\n );\n}\n\nexport function parseISODuration(s) {\n return parse(s, [isoDuration, extractISODuration]);\n}\n\nconst sqlYmdWithTimeExtensionRegex = combineRegexes(sqlYmdRegex, sqlTimeExtensionRegex);\nconst sqlTimeCombinedRegex = combineRegexes(sqlTimeRegex);\n\nconst extractISOYmdTimeOffsetAndIANAZone = combineExtractors(\n extractISOYmd,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOTimeOffsetAndIANAZone = combineExtractors(\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\n\nexport function parseSQL(s) {\n return parse(\n s,\n [sqlYmdWithTimeExtensionRegex, extractISOYmdTimeOffsetAndIANAZone],\n [sqlTimeCombinedRegex, extractISOTimeOffsetAndIANAZone]\n );\n}\n","import { InvalidArgumentError, InvalidDurationError, InvalidUnitError } from \"./errors.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport Invalid from \"./impl/invalid.js\";\nimport Locale from \"./impl/locale.js\";\nimport { parseISODuration } from \"./impl/regexParser.js\";\nimport {\n asNumber,\n hasOwnProperty,\n isNumber,\n isUndefined,\n normalizeObject,\n roundTo\n} from \"./impl/util.js\";\nimport Settings from \"./settings.js\";\n\nconst INVALID = \"Invalid Duration\";\n\n// unit conversion constants\nconst lowOrderMatrix = {\n weeks: {\n days: 7,\n hours: 7 * 24,\n minutes: 7 * 24 * 60,\n seconds: 7 * 24 * 60 * 60,\n milliseconds: 7 * 24 * 60 * 60 * 1000\n },\n days: {\n hours: 24,\n minutes: 24 * 60,\n seconds: 24 * 60 * 60,\n milliseconds: 24 * 60 * 60 * 1000\n },\n hours: { minutes: 60, seconds: 60 * 60, milliseconds: 60 * 60 * 1000 },\n minutes: { seconds: 60, milliseconds: 60 * 1000 },\n seconds: { milliseconds: 1000 }\n },\n casualMatrix = Object.assign(\n {\n years: {\n months: 12,\n weeks: 52,\n days: 365,\n hours: 365 * 24,\n minutes: 365 * 24 * 60,\n seconds: 365 * 24 * 60 * 60,\n milliseconds: 365 * 24 * 60 * 60 * 1000\n },\n quarters: {\n months: 3,\n weeks: 13,\n days: 91,\n hours: 91 * 24,\n minutes: 91 * 24 * 60,\n milliseconds: 91 * 24 * 60 * 60 * 1000\n },\n months: {\n weeks: 4,\n days: 30,\n hours: 30 * 24,\n minutes: 30 * 24 * 60,\n seconds: 30 * 24 * 60 * 60,\n milliseconds: 30 * 24 * 60 * 60 * 1000\n }\n },\n lowOrderMatrix\n ),\n daysInYearAccurate = 146097.0 / 400,\n daysInMonthAccurate = 146097.0 / 4800,\n accurateMatrix = Object.assign(\n {\n years: {\n months: 12,\n weeks: daysInYearAccurate / 7,\n days: daysInYearAccurate,\n hours: daysInYearAccurate * 24,\n minutes: daysInYearAccurate * 24 * 60,\n seconds: daysInYearAccurate * 24 * 60 * 60,\n milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1000\n },\n quarters: {\n months: 3,\n weeks: daysInYearAccurate / 28,\n days: daysInYearAccurate / 4,\n hours: (daysInYearAccurate * 24) / 4,\n minutes: (daysInYearAccurate * 24 * 60) / 4,\n seconds: (daysInYearAccurate * 24 * 60 * 60) / 4,\n milliseconds: (daysInYearAccurate * 24 * 60 * 60 * 1000) / 4\n },\n months: {\n weeks: daysInMonthAccurate / 7,\n days: daysInMonthAccurate,\n hours: daysInMonthAccurate * 24,\n minutes: daysInMonthAccurate * 24 * 60,\n seconds: daysInMonthAccurate * 24 * 60 * 60,\n milliseconds: daysInMonthAccurate * 24 * 60 * 60 * 1000\n }\n },\n lowOrderMatrix\n );\n\n// units ordered by size\nconst orderedUnits = [\n \"years\",\n \"quarters\",\n \"months\",\n \"weeks\",\n \"days\",\n \"hours\",\n \"minutes\",\n \"seconds\",\n \"milliseconds\"\n];\n\nconst reverseUnits = orderedUnits.slice(0).reverse();\n\n// clone really means \"create another instance just like this one, but with these changes\"\nfunction clone(dur, alts, clear = false) {\n // deep merge for vals\n const conf = {\n values: clear ? alts.values : Object.assign({}, dur.values, alts.values || {}),\n loc: dur.loc.clone(alts.loc),\n conversionAccuracy: alts.conversionAccuracy || dur.conversionAccuracy\n };\n return new Duration(conf);\n}\n\nfunction antiTrunc(n) {\n return n < 0 ? Math.floor(n) : Math.ceil(n);\n}\n\n// NB: mutates parameters\nfunction convert(matrix, fromMap, fromUnit, toMap, toUnit) {\n const conv = matrix[toUnit][fromUnit],\n raw = fromMap[fromUnit] / conv,\n sameSign = Math.sign(raw) === Math.sign(toMap[toUnit]),\n // ok, so this is wild, but see the matrix in the tests\n added =\n !sameSign && toMap[toUnit] !== 0 && Math.abs(raw) <= 1 ? antiTrunc(raw) : Math.trunc(raw);\n toMap[toUnit] += added;\n fromMap[fromUnit] -= added * conv;\n}\n\n// NB: mutates parameters\nfunction normalizeValues(matrix, vals) {\n reverseUnits.reduce((previous, current) => {\n if (!isUndefined(vals[current])) {\n if (previous) {\n convert(matrix, vals, previous, vals, current);\n }\n return current;\n } else {\n return previous;\n }\n }, null);\n}\n\n/**\n * A Duration object represents a period of time, like \"2 months\" or \"1 day, 1 hour\". Conceptually, it's just a map of units to their quantities, accompanied by some additional configuration and methods for creating, parsing, interrogating, transforming, and formatting them. They can be used on their own or in conjunction with other Luxon types; for example, you can use {@link DateTime.plus} to add a Duration object to a DateTime, producing another DateTime.\n *\n * Here is a brief overview of commonly used methods and getters in Duration:\n *\n * * **Creation** To create a Duration, use {@link Duration.fromMillis}, {@link Duration.fromObject}, or {@link Duration.fromISO}.\n * * **Unit values** See the {@link Duration.years}, {@link Duration.months}, {@link Duration.weeks}, {@link Duration.days}, {@link Duration.hours}, {@link Duration.minutes}, {@link Duration.seconds}, {@link Duration.milliseconds} accessors.\n * * **Configuration** See {@link Duration.locale} and {@link Duration.numberingSystem} accessors.\n * * **Transformation** To create new Durations out of old ones use {@link Duration.plus}, {@link Duration.minus}, {@link Duration.normalize}, {@link Duration.set}, {@link Duration.reconfigure}, {@link Duration.shiftTo}, and {@link Duration.negate}.\n * * **Output** To convert the Duration into other representations, see {@link Duration.as}, {@link Duration.toISO}, {@link Duration.toFormat}, and {@link Duration.toJSON}\n *\n * There's are more methods documented below. In addition, for more information on subtler topics like internationalization and validity, see the external documentation.\n */\nexport default class Duration {\n /**\n * @private\n */\n constructor(config) {\n const accurate = config.conversionAccuracy === \"longterm\" || false;\n /**\n * @access private\n */\n this.values = config.values;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.conversionAccuracy = accurate ? \"longterm\" : \"casual\";\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.matrix = accurate ? accurateMatrix : casualMatrix;\n /**\n * @access private\n */\n this.isLuxonDuration = true;\n }\n\n /**\n * Create Duration from a number of milliseconds.\n * @param {number} count of milliseconds\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n static fromMillis(count, opts) {\n return Duration.fromObject(Object.assign({ milliseconds: count }, opts));\n }\n\n /**\n * Create a Duration from a Javascript object with keys like 'years' and 'hours.\n * If this object is empty then a zero milliseconds duration is returned.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.years\n * @param {number} obj.quarters\n * @param {number} obj.months\n * @param {number} obj.weeks\n * @param {number} obj.days\n * @param {number} obj.hours\n * @param {number} obj.minutes\n * @param {number} obj.seconds\n * @param {number} obj.milliseconds\n * @param {string} [obj.locale='en-US'] - the locale to use\n * @param {string} obj.numberingSystem - the numbering system to use\n * @param {string} [obj.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n static fromObject(obj) {\n if (obj == null || typeof obj !== \"object\") {\n throw new InvalidArgumentError(\n `Duration.fromObject: argument expected to be an object, got ${\n obj === null ? \"null\" : typeof obj\n }`\n );\n }\n return new Duration({\n values: normalizeObject(obj, Duration.normalizeUnit, [\n \"locale\",\n \"numberingSystem\",\n \"conversionAccuracy\",\n \"zone\" // a bit of debt; it's super inconvenient internally not to be able to blindly pass this\n ]),\n loc: Locale.fromObject(obj),\n conversionAccuracy: obj.conversionAccuracy\n });\n }\n\n /**\n * Create a Duration from an ISO 8601 duration string.\n * @param {string} text - text to parse\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromISO('P3Y6M1W4DT12H30M5S').toObject() //=> { years: 3, months: 6, weeks: 1, days: 4, hours: 12, minutes: 30, seconds: 5 }\n * @example Duration.fromISO('PT23H').toObject() //=> { hours: 23 }\n * @example Duration.fromISO('P5Y3M').toObject() //=> { years: 5, months: 3 }\n * @return {Duration}\n */\n static fromISO(text, opts) {\n const [parsed] = parseISODuration(text);\n if (parsed) {\n const obj = Object.assign(parsed, opts);\n return Duration.fromObject(obj);\n } else {\n return Duration.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n }\n\n /**\n * Create an invalid Duration.\n * @param {string} reason - simple string of why this datetime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Duration}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Duration is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDurationError(invalid);\n } else {\n return new Duration({ invalid });\n }\n }\n\n /**\n * @private\n */\n static normalizeUnit(unit) {\n const normalized = {\n year: \"years\",\n years: \"years\",\n quarter: \"quarters\",\n quarters: \"quarters\",\n month: \"months\",\n months: \"months\",\n week: \"weeks\",\n weeks: \"weeks\",\n day: \"days\",\n days: \"days\",\n hour: \"hours\",\n hours: \"hours\",\n minute: \"minutes\",\n minutes: \"minutes\",\n second: \"seconds\",\n seconds: \"seconds\",\n millisecond: \"milliseconds\",\n milliseconds: \"milliseconds\"\n }[unit ? unit.toLowerCase() : unit];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n }\n\n /**\n * Check if an object is a Duration. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDuration(o) {\n return (o && o.isLuxonDuration) || false;\n }\n\n /**\n * Get the locale of a Duration, such 'en-GB'\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a Duration, such 'beng'. The numbering system is used when formatting the Duration\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Returns a string representation of this Duration formatted according to the specified format string. You may use these tokens:\n * * `S` for milliseconds\n * * `s` for seconds\n * * `m` for minutes\n * * `h` for hours\n * * `d` for days\n * * `M` for months\n * * `y` for years\n * Notes:\n * * Add padding by repeating the token, e.g. \"yy\" pads the years to two digits, \"hhhh\" pads the hours out to four digits\n * * The duration will be converted to the set of units in the format string using {@link Duration.shiftTo} and the Durations's conversion accuracy setting.\n * @param {string} fmt - the format string\n * @param {Object} opts - options\n * @param {boolean} [opts.floor=true] - floor numerical values\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"y d s\") //=> \"1 6 2\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"yy dd sss\") //=> \"01 06 002\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"M S\") //=> \"12 518402000\"\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n // reverse-compat since 1.2; we always round down now, never up, and we do it by default\n const fmtOpts = Object.assign({}, opts, {\n floor: opts.round !== false && opts.floor !== false\n });\n return this.isValid\n ? Formatter.create(this.loc, fmtOpts).formatDurationFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a Javascript object with this Duration's values.\n * @param opts - options for generating the object\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toObject() //=> { years: 1, days: 6, seconds: 2 }\n * @return {Object}\n */\n toObject(opts = {}) {\n if (!this.isValid) return {};\n\n const base = Object.assign({}, this.values);\n\n if (opts.includeConfig) {\n base.conversionAccuracy = this.conversionAccuracy;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n return base;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Duration.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromObject({ years: 3, seconds: 45 }).toISO() //=> 'P3YT45S'\n * @example Duration.fromObject({ months: 4, seconds: 45 }).toISO() //=> 'P4MT45S'\n * @example Duration.fromObject({ months: 5 }).toISO() //=> 'P5M'\n * @example Duration.fromObject({ minutes: 5 }).toISO() //=> 'PT5M'\n * @example Duration.fromObject({ milliseconds: 6 }).toISO() //=> 'PT0.006S'\n * @return {string}\n */\n toISO() {\n // we could use the formatter, but this is an easier way to get the minimum string\n if (!this.isValid) return null;\n\n let s = \"P\";\n if (this.years !== 0) s += this.years + \"Y\";\n if (this.months !== 0 || this.quarters !== 0) s += this.months + this.quarters * 3 + \"M\";\n if (this.weeks !== 0) s += this.weeks + \"W\";\n if (this.days !== 0) s += this.days + \"D\";\n if (this.hours !== 0 || this.minutes !== 0 || this.seconds !== 0 || this.milliseconds !== 0)\n s += \"T\";\n if (this.hours !== 0) s += this.hours + \"H\";\n if (this.minutes !== 0) s += this.minutes + \"M\";\n if (this.seconds !== 0 || this.milliseconds !== 0)\n // this will handle \"floating point madness\" by removing extra decimal places\n // https://stackoverflow.com/questions/588004/is-floating-point-math-broken\n s += roundTo(this.seconds + this.milliseconds / 1000, 3) + \"S\";\n if (s === \"P\") s += \"T0S\";\n return s;\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in debugging.\n * @return {string}\n */\n toString() {\n return this.toISO();\n }\n\n /**\n * Returns an milliseconds value of this Duration.\n * @return {number}\n */\n valueOf() {\n return this.as(\"milliseconds\");\n }\n\n /**\n * Make this Duration longer by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n plus(duration) {\n if (!this.isValid) return this;\n\n const dur = friendlyDuration(duration),\n result = {};\n\n for (const k of orderedUnits) {\n if (hasOwnProperty(dur.values, k) || hasOwnProperty(this.values, k)) {\n result[k] = dur.get(k) + this.get(k);\n }\n }\n\n return clone(this, { values: result }, true);\n }\n\n /**\n * Make this Duration shorter by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n minus(duration) {\n if (!this.isValid) return this;\n\n const dur = friendlyDuration(duration);\n return this.plus(dur.negate());\n }\n\n /**\n * Scale this Duration by the specified amount. Return a newly-constructed Duration.\n * @param {function} fn - The function to apply to each unit. Arity is 1 or 2: the value of the unit and, optionally, the unit name. Must return a number.\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnit(x => x * 2) //=> { hours: 2, minutes: 60 }\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnit((x, u) => u === \"hour\" ? x * 2 : x) //=> { hours: 2, minutes: 30 }\n * @return {Duration}\n */\n mapUnits(fn) {\n if (!this.isValid) return this;\n const result = {};\n for (const k of Object.keys(this.values)) {\n result[k] = asNumber(fn(this.values[k], k));\n }\n return clone(this, { values: result }, true);\n }\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example Duration.fromObject({years: 2, days: 3}).years //=> 2\n * @example Duration.fromObject({years: 2, days: 3}).months //=> 0\n * @example Duration.fromObject({years: 2, days: 3}).days //=> 3\n * @return {number}\n */\n get(unit) {\n return this[Duration.normalizeUnit(unit)];\n }\n\n /**\n * \"Set\" the values of specified units. Return a newly-constructed Duration.\n * @param {Object} values - a mapping of units to numbers\n * @example dur.set({ years: 2017 })\n * @example dur.set({ hours: 8, minutes: 30 })\n * @return {Duration}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const mixed = Object.assign(this.values, normalizeObject(values, Duration.normalizeUnit, []));\n return clone(this, { values: mixed });\n }\n\n /**\n * \"Set\" the locale and/or numberingSystem. Returns a newly-constructed Duration.\n * @example dur.reconfigure({ locale: 'en-GB' })\n * @return {Duration}\n */\n reconfigure({ locale, numberingSystem, conversionAccuracy } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem }),\n opts = { loc };\n\n if (conversionAccuracy) {\n opts.conversionAccuracy = conversionAccuracy;\n }\n\n return clone(this, opts);\n }\n\n /**\n * Return the length of the duration in the specified unit.\n * @param {string} unit - a unit such as 'minutes' or 'days'\n * @example Duration.fromObject({years: 1}).as('days') //=> 365\n * @example Duration.fromObject({years: 1}).as('months') //=> 12\n * @example Duration.fromObject({hours: 60}).as('days') //=> 2.5\n * @return {number}\n */\n as(unit) {\n return this.isValid ? this.shiftTo(unit).get(unit) : NaN;\n }\n\n /**\n * Reduce this Duration to its canonical representation in its current units.\n * @example Duration.fromObject({ years: 2, days: 5000 }).normalize().toObject() //=> { years: 15, days: 255 }\n * @example Duration.fromObject({ hours: 12, minutes: -45 }).normalize().toObject() //=> { hours: 11, minutes: 15 }\n * @return {Duration}\n */\n normalize() {\n if (!this.isValid) return this;\n const vals = this.toObject();\n normalizeValues(this.matrix, vals);\n return clone(this, { values: vals }, true);\n }\n\n /**\n * Convert this Duration into its representation in a different set of units.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).shiftTo('minutes', 'milliseconds').toObject() //=> { minutes: 60, milliseconds: 30000 }\n * @return {Duration}\n */\n shiftTo(...units) {\n if (!this.isValid) return this;\n\n if (units.length === 0) {\n return this;\n }\n\n units = units.map(u => Duration.normalizeUnit(u));\n\n const built = {},\n accumulated = {},\n vals = this.toObject();\n let lastUnit;\n\n normalizeValues(this.matrix, vals);\n\n for (const k of orderedUnits) {\n if (units.indexOf(k) >= 0) {\n lastUnit = k;\n\n let own = 0;\n\n // anything we haven't boiled down yet should get boiled to this unit\n for (const ak in accumulated) {\n own += this.matrix[ak][k] * accumulated[ak];\n accumulated[ak] = 0;\n }\n\n // plus anything that's already in this unit\n if (isNumber(vals[k])) {\n own += vals[k];\n }\n\n const i = Math.trunc(own);\n built[k] = i;\n accumulated[k] = own - i; // we'd like to absorb these fractions in another unit\n\n // plus anything further down the chain that should be rolled up in to this\n for (const down in vals) {\n if (orderedUnits.indexOf(down) > orderedUnits.indexOf(k)) {\n convert(this.matrix, vals, down, built, k);\n }\n }\n // otherwise, keep it in the wings to boil it later\n } else if (isNumber(vals[k])) {\n accumulated[k] = vals[k];\n }\n }\n\n // anything leftover becomes the decimal for the last unit\n // lastUnit must be defined since units is not empty\n for (const key in accumulated) {\n if (accumulated[key] !== 0) {\n built[lastUnit] +=\n key === lastUnit ? accumulated[key] : accumulated[key] / this.matrix[lastUnit][key];\n }\n }\n\n return clone(this, { values: built }, true).normalize();\n }\n\n /**\n * Return the negative of this Duration.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).negate().toObject() //=> { hours: -1, seconds: -30 }\n * @return {Duration}\n */\n negate() {\n if (!this.isValid) return this;\n const negated = {};\n for (const k of Object.keys(this.values)) {\n negated[k] = -this.values[k];\n }\n return clone(this, { values: negated }, true);\n }\n\n /**\n * Get the years.\n * @type {number}\n */\n get years() {\n return this.isValid ? this.values.years || 0 : NaN;\n }\n\n /**\n * Get the quarters.\n * @type {number}\n */\n get quarters() {\n return this.isValid ? this.values.quarters || 0 : NaN;\n }\n\n /**\n * Get the months.\n * @type {number}\n */\n get months() {\n return this.isValid ? this.values.months || 0 : NaN;\n }\n\n /**\n * Get the weeks\n * @type {number}\n */\n get weeks() {\n return this.isValid ? this.values.weeks || 0 : NaN;\n }\n\n /**\n * Get the days.\n * @type {number}\n */\n get days() {\n return this.isValid ? this.values.days || 0 : NaN;\n }\n\n /**\n * Get the hours.\n * @type {number}\n */\n get hours() {\n return this.isValid ? this.values.hours || 0 : NaN;\n }\n\n /**\n * Get the minutes.\n * @type {number}\n */\n get minutes() {\n return this.isValid ? this.values.minutes || 0 : NaN;\n }\n\n /**\n * Get the seconds.\n * @return {number}\n */\n get seconds() {\n return this.isValid ? this.values.seconds || 0 : NaN;\n }\n\n /**\n * Get the milliseconds.\n * @return {number}\n */\n get milliseconds() {\n return this.isValid ? this.values.milliseconds || 0 : NaN;\n }\n\n /**\n * Returns whether the Duration is invalid. Invalid durations are returned by diff operations\n * on invalid DateTimes or Intervals.\n * @return {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this Duration became invalid, or null if the Duration is valid\n * @return {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Duration became invalid, or null if the Duration is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Equality check\n * Two Durations are equal iff they have the same units and the same values for each unit.\n * @param {Duration} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n if (!this.loc.equals(other.loc)) {\n return false;\n }\n\n for (const u of orderedUnits) {\n if (this.values[u] !== other.values[u]) {\n return false;\n }\n }\n return true;\n }\n}\n\n/**\n * @private\n */\nexport function friendlyDuration(durationish) {\n if (isNumber(durationish)) {\n return Duration.fromMillis(durationish);\n } else if (Duration.isDuration(durationish)) {\n return durationish;\n } else if (typeof durationish === \"object\") {\n return Duration.fromObject(durationish);\n } else {\n throw new InvalidArgumentError(\n `Unknown duration argument ${durationish} of type ${typeof durationish}`\n );\n }\n}\n","import DateTime, { friendlyDateTime } from \"./datetime.js\";\nimport Duration, { friendlyDuration } from \"./duration.js\";\nimport Settings from \"./settings.js\";\nimport { InvalidArgumentError, InvalidIntervalError } from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\n\nconst INVALID = \"Invalid Interval\";\n\n// checks if the start is equal to or before the end\nfunction validateStartEnd(start, end) {\n if (!start || !start.isValid) {\n return Interval.invalid(\"missing or invalid start\");\n } else if (!end || !end.isValid) {\n return Interval.invalid(\"missing or invalid end\");\n } else if (end < start) {\n return Interval.invalid(\n \"end before start\",\n `The end of an interval must be after its start, but you had start=${start.toISO()} and end=${end.toISO()}`\n );\n } else {\n return null;\n }\n}\n\n/**\n * An Interval object represents a half-open interval of time, where each endpoint is a {@link DateTime}. Conceptually, it's a container for those two endpoints, accompanied by methods for creating, parsing, interrogating, comparing, transforming, and formatting them.\n *\n * Here is a brief overview of the most commonly used methods and getters in Interval:\n *\n * * **Creation** To create an Interval, use {@link fromDateTimes}, {@link after}, {@link before}, or {@link fromISO}.\n * * **Accessors** Use {@link start} and {@link end} to get the start and end.\n * * **Interrogation** To analyze the Interval, use {@link count}, {@link length}, {@link hasSame}, {@link contains}, {@link isAfter}, or {@link isBefore}.\n * * **Transformation** To create other Intervals out of this one, use {@link set}, {@link splitAt}, {@link splitBy}, {@link divideEqually}, {@link merge}, {@link xor}, {@link union}, {@link intersection}, or {@link difference}.\n * * **Comparison** To compare this Interval to another one, use {@link equals}, {@link overlaps}, {@link abutsStart}, {@link abutsEnd}, {@link engulfs}\n * * **Output** To convert the Interval into other representations, see {@link toString}, {@link toISO}, {@link toISODate}, {@link toISOTime}, {@link toFormat}, and {@link toDuration}.\n */\nexport default class Interval {\n /**\n * @private\n */\n constructor(config) {\n /**\n * @access private\n */\n this.s = config.start;\n /**\n * @access private\n */\n this.e = config.end;\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.isLuxonInterval = true;\n }\n\n /**\n * Create an invalid Interval.\n * @param {string} reason - simple string of why this Interval is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Interval}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Interval is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidIntervalError(invalid);\n } else {\n return new Interval({ invalid });\n }\n }\n\n /**\n * Create an Interval from a start DateTime and an end DateTime. Inclusive of the start but not the end.\n * @param {DateTime|Date|Object} start\n * @param {DateTime|Date|Object} end\n * @return {Interval}\n */\n static fromDateTimes(start, end) {\n const builtStart = friendlyDateTime(start),\n builtEnd = friendlyDateTime(end);\n\n const validateError = validateStartEnd(builtStart, builtEnd);\n\n if (validateError == null) {\n return new Interval({\n start: builtStart,\n end: builtEnd\n });\n } else {\n return validateError;\n }\n }\n\n /**\n * Create an Interval from a start DateTime and a Duration to extend to.\n * @param {DateTime|Date|Object} start\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static after(start, duration) {\n const dur = friendlyDuration(duration),\n dt = friendlyDateTime(start);\n return Interval.fromDateTimes(dt, dt.plus(dur));\n }\n\n /**\n * Create an Interval from an end DateTime and a Duration to extend backwards to.\n * @param {DateTime|Date|Object} end\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static before(end, duration) {\n const dur = friendlyDuration(duration),\n dt = friendlyDateTime(end);\n return Interval.fromDateTimes(dt.minus(dur), dt);\n }\n\n /**\n * Create an Interval from an ISO 8601 string.\n * Accepts `/`, `/`, and `/` formats.\n * @param {string} text - the ISO string to parse\n * @param {Object} [opts] - options to pass {@link DateTime.fromISO} and optionally {@link Duration.fromISO}\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {Interval}\n */\n static fromISO(text, opts) {\n const [s, e] = (text || \"\").split(\"/\", 2);\n if (s && e) {\n const start = DateTime.fromISO(s, opts),\n end = DateTime.fromISO(e, opts);\n\n if (start.isValid && end.isValid) {\n return Interval.fromDateTimes(start, end);\n }\n\n if (start.isValid) {\n const dur = Duration.fromISO(e, opts);\n if (dur.isValid) {\n return Interval.after(start, dur);\n }\n } else if (end.isValid) {\n const dur = Duration.fromISO(s, opts);\n if (dur.isValid) {\n return Interval.before(end, dur);\n }\n }\n }\n return Interval.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n\n /**\n * Check if an object is an Interval. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isInterval(o) {\n return (o && o.isLuxonInterval) || false;\n }\n\n /**\n * Returns the start of the Interval\n * @type {DateTime}\n */\n get start() {\n return this.isValid ? this.s : null;\n }\n\n /**\n * Returns the end of the Interval\n * @type {DateTime}\n */\n get end() {\n return this.isValid ? this.e : null;\n }\n\n /**\n * Returns whether this Interval's end is at least its start, meaning that the Interval isn't 'backwards'.\n * @type {boolean}\n */\n get isValid() {\n return this.invalidReason === null;\n }\n\n /**\n * Returns an error code if this Interval is invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Interval became invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Returns the length of the Interval in the specified unit.\n * @param {string} unit - the unit (such as 'hours' or 'days') to return the length in.\n * @return {number}\n */\n length(unit = \"milliseconds\") {\n return this.isValid ? this.toDuration(...[unit]).get(unit) : NaN;\n }\n\n /**\n * Returns the count of minutes, hours, days, months, or years included in the Interval, even in part.\n * Unlike {@link length} this counts sections of the calendar, not periods of time, e.g. specifying 'day'\n * asks 'what dates are included in this interval?', not 'how many days long is this interval?'\n * @param {string} [unit='milliseconds'] - the unit of time to count.\n * @return {number}\n */\n count(unit = \"milliseconds\") {\n if (!this.isValid) return NaN;\n const start = this.start.startOf(unit),\n end = this.end.startOf(unit);\n return Math.floor(end.diff(start, unit).get(unit)) + 1;\n }\n\n /**\n * Returns whether this Interval's start and end are both in the same unit of time\n * @param {string} unit - the unit of time to check sameness on\n * @return {boolean}\n */\n hasSame(unit) {\n return this.isValid ? this.e.minus(1).hasSame(this.s, unit) : false;\n }\n\n /**\n * Return whether this Interval has the same start and end DateTimes.\n * @return {boolean}\n */\n isEmpty() {\n return this.s.valueOf() === this.e.valueOf();\n }\n\n /**\n * Return whether this Interval's start is after the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isAfter(dateTime) {\n if (!this.isValid) return false;\n return this.s > dateTime;\n }\n\n /**\n * Return whether this Interval's end is before the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isBefore(dateTime) {\n if (!this.isValid) return false;\n return this.e <= dateTime;\n }\n\n /**\n * Return whether this Interval contains the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n contains(dateTime) {\n if (!this.isValid) return false;\n return this.s <= dateTime && this.e > dateTime;\n }\n\n /**\n * \"Sets\" the start and/or end dates. Returns a newly-constructed Interval.\n * @param {Object} values - the values to set\n * @param {DateTime} values.start - the starting DateTime\n * @param {DateTime} values.end - the ending DateTime\n * @return {Interval}\n */\n set({ start, end } = {}) {\n if (!this.isValid) return this;\n return Interval.fromDateTimes(start || this.s, end || this.e);\n }\n\n /**\n * Split this Interval at each of the specified DateTimes\n * @param {...[DateTime]} dateTimes - the unit of time to count.\n * @return {[Interval]}\n */\n splitAt(...dateTimes) {\n if (!this.isValid) return [];\n const sorted = dateTimes\n .map(friendlyDateTime)\n .filter(d => this.contains(d))\n .sort(),\n results = [];\n let { s } = this,\n i = 0;\n\n while (s < this.e) {\n const added = sorted[i] || this.e,\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n i += 1;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into smaller Intervals, each of the specified length.\n * Left over time is grouped into a smaller interval\n * @param {Duration|Object|number} duration - The length of each resulting interval.\n * @return {[Interval]}\n */\n splitBy(duration) {\n const dur = friendlyDuration(duration);\n\n if (!this.isValid || !dur.isValid || dur.as(\"milliseconds\") === 0) {\n return [];\n }\n\n let { s } = this,\n added,\n next;\n\n const results = [];\n while (s < this.e) {\n added = s.plus(dur);\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into the specified number of smaller intervals.\n * @param {number} numberOfParts - The number of Intervals to divide the Interval into.\n * @return {[Interval]}\n */\n divideEqually(numberOfParts) {\n if (!this.isValid) return [];\n return this.splitBy(this.length() / numberOfParts).slice(0, numberOfParts);\n }\n\n /**\n * Return whether this Interval overlaps with the specified Interval\n * @param {Interval} other\n * @return {boolean}\n */\n overlaps(other) {\n return this.e > other.s && this.s < other.e;\n }\n\n /**\n * Return whether this Interval's end is adjacent to the specified Interval's start.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsStart(other) {\n if (!this.isValid) return false;\n return +this.e === +other.s;\n }\n\n /**\n * Return whether this Interval's start is adjacent to the specified Interval's end.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsEnd(other) {\n if (!this.isValid) return false;\n return +other.e === +this.s;\n }\n\n /**\n * Return whether this Interval engulfs the start and end of the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n engulfs(other) {\n if (!this.isValid) return false;\n return this.s <= other.s && this.e >= other.e;\n }\n\n /**\n * Return whether this Interval has the same start and end as the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n return this.s.equals(other.s) && this.e.equals(other.e);\n }\n\n /**\n * Return an Interval representing the intersection of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the maximum start time and the minimum end time of the two Intervals.\n * Returns null if the intersection is empty, meaning, the intervals don't intersect.\n * @param {Interval} other\n * @return {Interval}\n */\n intersection(other) {\n if (!this.isValid) return this;\n const s = this.s > other.s ? this.s : other.s,\n e = this.e < other.e ? this.e : other.e;\n\n if (s > e) {\n return null;\n } else {\n return Interval.fromDateTimes(s, e);\n }\n }\n\n /**\n * Return an Interval representing the union of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the minimum start time and the maximum end time of the two Intervals.\n * @param {Interval} other\n * @return {Interval}\n */\n union(other) {\n if (!this.isValid) return this;\n const s = this.s < other.s ? this.s : other.s,\n e = this.e > other.e ? this.e : other.e;\n return Interval.fromDateTimes(s, e);\n }\n\n /**\n * Merge an array of Intervals into a equivalent minimal set of Intervals.\n * Combines overlapping and adjacent Intervals.\n * @param {[Interval]} intervals\n * @return {[Interval]}\n */\n static merge(intervals) {\n const [found, final] = intervals.sort((a, b) => a.s - b.s).reduce(\n ([sofar, current], item) => {\n if (!current) {\n return [sofar, item];\n } else if (current.overlaps(item) || current.abutsStart(item)) {\n return [sofar, current.union(item)];\n } else {\n return [sofar.concat([current]), item];\n }\n },\n [[], null]\n );\n if (final) {\n found.push(final);\n }\n return found;\n }\n\n /**\n * Return an array of Intervals representing the spans of time that only appear in one of the specified Intervals.\n * @param {[Interval]} intervals\n * @return {[Interval]}\n */\n static xor(intervals) {\n let start = null,\n currentCount = 0;\n const results = [],\n ends = intervals.map(i => [{ time: i.s, type: \"s\" }, { time: i.e, type: \"e\" }]),\n flattened = Array.prototype.concat(...ends),\n arr = flattened.sort((a, b) => a.time - b.time);\n\n for (const i of arr) {\n currentCount += i.type === \"s\" ? 1 : -1;\n\n if (currentCount === 1) {\n start = i.time;\n } else {\n if (start && +start !== +i.time) {\n results.push(Interval.fromDateTimes(start, i.time));\n }\n\n start = null;\n }\n }\n\n return Interval.merge(results);\n }\n\n /**\n * Return an Interval representing the span of time in this Interval that doesn't overlap with any of the specified Intervals.\n * @param {...Interval} intervals\n * @return {[Interval]}\n */\n difference(...intervals) {\n return Interval.xor([this].concat(intervals))\n .map(i => this.intersection(i))\n .filter(i => i && !i.isEmpty());\n }\n\n /**\n * Returns a string representation of this Interval appropriate for debugging.\n * @return {string}\n */\n toString() {\n if (!this.isValid) return INVALID;\n return `[${this.s.toISO()} – ${this.e.toISO()})`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Interval.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime.toISO}\n * @return {string}\n */\n toISO(opts) {\n if (!this.isValid) return INVALID;\n return `${this.s.toISO(opts)}/${this.e.toISO(opts)}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of date of this Interval.\n * The time components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {string}\n */\n toISODate() {\n if (!this.isValid) return INVALID;\n return `${this.s.toISODate()}/${this.e.toISODate()}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of time of this Interval.\n * The date components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime.toISO}\n * @return {string}\n */\n toISOTime(opts) {\n if (!this.isValid) return INVALID;\n return `${this.s.toISOTime(opts)}/${this.e.toISOTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this Interval formatted according to the specified format string.\n * @param {string} dateFormat - the format string. This string formats the start and end time. See {@link DateTime.toFormat} for details.\n * @param {Object} opts - options\n * @param {string} [opts.separator = ' – '] - a separator to place between the start and end representations\n * @return {string}\n */\n toFormat(dateFormat, { separator = \" – \" } = {}) {\n if (!this.isValid) return INVALID;\n return `${this.s.toFormat(dateFormat)}${separator}${this.e.toFormat(dateFormat)}`;\n }\n\n /**\n * Return a Duration representing the time spanned by this interval.\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example Interval.fromDateTimes(dt1, dt2).toDuration().toObject() //=> { milliseconds: 88489257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('days').toObject() //=> { days: 1.0241812152777778 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes']).toObject() //=> { hours: 24, minutes: 34.82095 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes', 'seconds']).toObject() //=> { hours: 24, minutes: 34, seconds: 49.257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('seconds').toObject() //=> { seconds: 88489.257 }\n * @return {Duration}\n */\n toDuration(unit, opts) {\n if (!this.isValid) {\n return Duration.invalid(this.invalidReason);\n }\n return this.e.diff(this.s, unit, opts);\n }\n\n /**\n * Run mapFn on the interval start and end, returning a new Interval from the resulting DateTimes\n * @param {function} mapFn\n * @return {Interval}\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.toUTC())\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.plus({ hours: 2 }))\n */\n mapEndpoints(mapFn) {\n return Interval.fromDateTimes(mapFn(this.s), mapFn(this.e));\n }\n}\n","import DateTime from \"./datetime.js\";\nimport Settings from \"./settings.js\";\nimport Locale from \"./impl/locale.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\n\nimport { hasFormatToParts, hasIntl, hasRelative } from \"./impl/util.js\";\n\n/**\n * The Info class contains static methods for retrieving general time and date related data. For example, it has methods for finding out if a time zone has a DST, for listing the months in any supported locale, and for discovering which of Luxon features are available in the current environment.\n */\nexport default class Info {\n /**\n * Return whether the specified zone contains a DST.\n * @param {string|Zone} [zone='local'] - Zone to check. Defaults to the environment's local zone.\n * @return {boolean}\n */\n static hasDST(zone = Settings.defaultZone) {\n const proto = DateTime.local()\n .setZone(zone)\n .set({ month: 12 });\n\n return !zone.universal && proto.offset !== proto.set({ month: 6 }).offset;\n }\n\n /**\n * Return whether the specified zone is a valid IANA specifier.\n * @param {string} zone - Zone to check\n * @return {boolean}\n */\n static isValidIANAZone(zone) {\n return IANAZone.isValidSpecifier(zone) && IANAZone.isValidZone(zone);\n }\n\n /**\n * Converts the input into a {@link Zone} instance.\n *\n * * If `input` is already a Zone instance, it is returned unchanged.\n * * If `input` is a string containing a valid time zone name, a Zone instance\n * with that name is returned.\n * * If `input` is a string that doesn't refer to a known time zone, a Zone\n * instance with {@link Zone.isValid} == false is returned.\n * * If `input is a number, a Zone instance with the specified fixed offset\n * in minutes is returned.\n * * If `input` is `null` or `undefined`, the default zone is returned.\n * @param {string|Zone|number} [input] - the value to be converted\n * @return {Zone}\n */\n static normalizeZone(input) {\n return normalizeZone(input, Settings.defaultZone);\n }\n\n /**\n * Return an array of standalone month names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @example Info.months()[0] //=> 'January'\n * @example Info.months('short')[0] //=> 'Jan'\n * @example Info.months('numeric')[0] //=> '1'\n * @example Info.months('short', { locale: 'fr-CA' } )[0] //=> 'janv.'\n * @example Info.months('numeric', { locale: 'ar' })[0] //=> '١'\n * @example Info.months('long', { outputCalendar: 'islamic' })[0] //=> 'Rabiʻ I'\n * @return {[string]}\n */\n static months(\n length = \"long\",\n { locale = null, numberingSystem = null, outputCalendar = \"gregory\" } = {}\n ) {\n return Locale.create(locale, numberingSystem, outputCalendar).months(length);\n }\n\n /**\n * Return an array of format month names.\n * Format months differ from standalone months in that they're meant to appear next to the day of the month. In some languages, that\n * changes the string.\n * See {@link months}\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @return {[string]}\n */\n static monthsFormat(\n length = \"long\",\n { locale = null, numberingSystem = null, outputCalendar = \"gregory\" } = {}\n ) {\n return Locale.create(locale, numberingSystem, outputCalendar).months(length, true);\n }\n\n /**\n * Return an array of standalone week names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the month representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @example Info.weekdays()[0] //=> 'Monday'\n * @example Info.weekdays('short')[0] //=> 'Mon'\n * @example Info.weekdays('short', { locale: 'fr-CA' })[0] //=> 'lun.'\n * @example Info.weekdays('short', { locale: 'ar' })[0] //=> 'الاثنين'\n * @return {[string]}\n */\n static weekdays(length = \"long\", { locale = null, numberingSystem = null } = {}) {\n return Locale.create(locale, numberingSystem, null).weekdays(length);\n }\n\n /**\n * Return an array of format week names.\n * Format weekdays differ from standalone weekdays in that they're meant to appear next to more date information. In some languages, that\n * changes the string.\n * See {@link weekdays}\n * @param {string} [length='long'] - the length of the month representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale=null] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @return {[string]}\n */\n static weekdaysFormat(length = \"long\", { locale = null, numberingSystem = null } = {}) {\n return Locale.create(locale, numberingSystem, null).weekdays(length, true);\n }\n\n /**\n * Return an array of meridiems.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.meridiems() //=> [ 'AM', 'PM' ]\n * @example Info.meridiems({ locale: 'my' }) //=> [ 'နံနက်', 'ညနေ' ]\n * @return {[string]}\n */\n static meridiems({ locale = null } = {}) {\n return Locale.create(locale).meridiems();\n }\n\n /**\n * Return an array of eras, such as ['BC', 'AD']. The locale can be specified, but the calendar system is always Gregorian.\n * @param {string} [length='short'] - the length of the era representation, such as \"short\" or \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.eras() //=> [ 'BC', 'AD' ]\n * @example Info.eras('long') //=> [ 'Before Christ', 'Anno Domini' ]\n * @example Info.eras('long', { locale: 'fr' }) //=> [ 'avant Jésus-Christ', 'après Jésus-Christ' ]\n * @return {[string]}\n */\n static eras(length = \"short\", { locale = null } = {}) {\n return Locale.create(locale, null, \"gregory\").eras(length);\n }\n\n /**\n * Return the set of available features in this environment.\n * Some features of Luxon are not available in all environments. For example, on older browsers, timezone support is not available. Use this function to figure out if that's the case.\n * Keys:\n * * `zones`: whether this environment supports IANA timezones\n * * `intlTokens`: whether this environment supports internationalized token-based formatting/parsing\n * * `intl`: whether this environment supports general internationalization\n * * `relative`: whether this environment supports relative time formatting\n * @example Info.features() //=> { intl: true, intlTokens: false, zones: true, relative: false }\n * @return {Object}\n */\n static features() {\n let intl = false,\n intlTokens = false,\n zones = false,\n relative = false;\n\n if (hasIntl()) {\n intl = true;\n intlTokens = hasFormatToParts();\n relative = hasRelative();\n\n try {\n zones =\n new Intl.DateTimeFormat(\"en\", { timeZone: \"America/New_York\" }).resolvedOptions()\n .timeZone === \"America/New_York\";\n } catch (e) {\n zones = false;\n }\n }\n\n return { intl, intlTokens, zones, relative };\n }\n}\n","import Duration from \"../duration.js\";\n\nfunction dayDiff(earlier, later) {\n const utcDayStart = dt =>\n dt\n .toUTC(0, { keepLocalTime: true })\n .startOf(\"day\")\n .valueOf(),\n ms = utcDayStart(later) - utcDayStart(earlier);\n return Math.floor(Duration.fromMillis(ms).as(\"days\"));\n}\n\nfunction highOrderDiffs(cursor, later, units) {\n const differs = [\n [\"years\", (a, b) => b.year - a.year],\n [\"months\", (a, b) => b.month - a.month + (b.year - a.year) * 12],\n [\n \"weeks\",\n (a, b) => {\n const days = dayDiff(a, b);\n return (days - (days % 7)) / 7;\n }\n ],\n [\"days\", dayDiff]\n ];\n\n const results = {};\n let lowestOrder, highWater;\n\n for (const [unit, differ] of differs) {\n if (units.indexOf(unit) >= 0) {\n lowestOrder = unit;\n\n let delta = differ(cursor, later);\n highWater = cursor.plus({ [unit]: delta });\n\n if (highWater > later) {\n cursor = cursor.plus({ [unit]: delta - 1 });\n delta -= 1;\n } else {\n cursor = highWater;\n }\n\n results[unit] = delta;\n }\n }\n\n return [cursor, results, highWater, lowestOrder];\n}\n\nexport default function(earlier, later, units, opts) {\n let [cursor, results, highWater, lowestOrder] = highOrderDiffs(earlier, later, units);\n\n const remainingMillis = later - cursor;\n\n const lowerOrderUnits = units.filter(\n u => [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"].indexOf(u) >= 0\n );\n\n if (lowerOrderUnits.length === 0) {\n if (highWater < later) {\n highWater = cursor.plus({ [lowestOrder]: 1 });\n }\n\n if (highWater !== cursor) {\n results[lowestOrder] = (results[lowestOrder] || 0) + remainingMillis / (highWater - cursor);\n }\n }\n\n const duration = Duration.fromObject(Object.assign(results, opts));\n\n if (lowerOrderUnits.length > 0) {\n return Duration.fromMillis(remainingMillis, opts)\n .shiftTo(...lowerOrderUnits)\n .plus(duration);\n } else {\n return duration;\n }\n}\n","const numberingSystems = {\n arab: \"[\\u0660-\\u0669]\",\n arabext: \"[\\u06F0-\\u06F9]\",\n bali: \"[\\u1B50-\\u1B59]\",\n beng: \"[\\u09E6-\\u09EF]\",\n deva: \"[\\u0966-\\u096F]\",\n fullwide: \"[\\uFF10-\\uFF19]\",\n gujr: \"[\\u0AE6-\\u0AEF]\",\n hanidec: \"[〇|一|二|三|四|五|六|七|八|九]\",\n khmr: \"[\\u17E0-\\u17E9]\",\n knda: \"[\\u0CE6-\\u0CEF]\",\n laoo: \"[\\u0ED0-\\u0ED9]\",\n limb: \"[\\u1946-\\u194F]\",\n mlym: \"[\\u0D66-\\u0D6F]\",\n mong: \"[\\u1810-\\u1819]\",\n mymr: \"[\\u1040-\\u1049]\",\n orya: \"[\\u0B66-\\u0B6F]\",\n tamldec: \"[\\u0BE6-\\u0BEF]\",\n telu: \"[\\u0C66-\\u0C6F]\",\n thai: \"[\\u0E50-\\u0E59]\",\n tibt: \"[\\u0F20-\\u0F29]\",\n latn: \"\\\\d\"\n};\n\nconst numberingSystemsUTF16 = {\n arab: [1632, 1641],\n arabext: [1776, 1785],\n bali: [6992, 7001],\n beng: [2534, 2543],\n deva: [2406, 2415],\n fullwide: [65296, 65303],\n gujr: [2790, 2799],\n khmr: [6112, 6121],\n knda: [3302, 3311],\n laoo: [3792, 3801],\n limb: [6470, 6479],\n mlym: [3430, 3439],\n mong: [6160, 6169],\n mymr: [4160, 4169],\n orya: [2918, 2927],\n tamldec: [3046, 3055],\n telu: [3174, 3183],\n thai: [3664, 3673],\n tibt: [3872, 3881]\n};\n\n// eslint-disable-next-line\nconst hanidecChars = numberingSystems.hanidec.replace(/[\\[|\\]]/g, \"\").split(\"\");\n\nexport function parseDigits(str) {\n let value = parseInt(str, 10);\n if (isNaN(value)) {\n value = \"\";\n for (let i = 0; i < str.length; i++) {\n const code = str.charCodeAt(i);\n\n if (str[i].search(numberingSystems.hanidec) !== -1) {\n value += hanidecChars.indexOf(str[i]);\n } else {\n for (const key in numberingSystemsUTF16) {\n const [min, max] = numberingSystemsUTF16[key];\n if (code >= min && code <= max) {\n value += code - min;\n }\n }\n }\n }\n return parseInt(value, 10);\n } else {\n return value;\n }\n}\n\nexport function digitRegex({ numberingSystem }, append = \"\") {\n return new RegExp(`${numberingSystems[numberingSystem || \"latn\"]}${append}`);\n}\n","import { parseMillis, isUndefined, untruncateYear, signedOffset, hasOwnProperty } from \"./util.js\";\nimport Formatter from \"./formatter.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport DateTime from \"../datetime.js\";\nimport { digitRegex, parseDigits } from \"./digits.js\";\nimport { ConflictingSpecificationError } from \"../errors.js\";\n\nconst MISSING_FTP = \"missing Intl.DateTimeFormat.formatToParts support\";\n\nfunction intUnit(regex, post = i => i) {\n return { regex, deser: ([s]) => post(parseDigits(s)) };\n}\n\nfunction fixListRegex(s) {\n // make dots optional and also make them literal\n return s.replace(/\\./, \"\\\\.?\");\n}\n\nfunction stripInsensitivities(s) {\n return s.replace(/\\./, \"\").toLowerCase();\n}\n\nfunction oneOf(strings, startIndex) {\n if (strings === null) {\n return null;\n } else {\n return {\n regex: RegExp(strings.map(fixListRegex).join(\"|\")),\n deser: ([s]) =>\n strings.findIndex(i => stripInsensitivities(s) === stripInsensitivities(i)) + startIndex\n };\n }\n}\n\nfunction offset(regex, groups) {\n return { regex, deser: ([, h, m]) => signedOffset(h, m), groups };\n}\n\nfunction simple(regex) {\n return { regex, deser: ([s]) => s };\n}\n\nfunction escapeToken(value) {\n // eslint-disable-next-line no-useless-escape\n return value.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, \"\\\\$&\");\n}\n\nfunction unitForToken(token, loc) {\n const one = digitRegex(loc),\n two = digitRegex(loc, \"{2}\"),\n three = digitRegex(loc, \"{3}\"),\n four = digitRegex(loc, \"{4}\"),\n six = digitRegex(loc, \"{6}\"),\n oneOrTwo = digitRegex(loc, \"{1,2}\"),\n oneToThree = digitRegex(loc, \"{1,3}\"),\n oneToSix = digitRegex(loc, \"{1,6}\"),\n oneToNine = digitRegex(loc, \"{1,9}\"),\n twoToFour = digitRegex(loc, \"{2,4}\"),\n fourToSix = digitRegex(loc, \"{4,6}\"),\n literal = t => ({ regex: RegExp(escapeToken(t.val)), deser: ([s]) => s, literal: true }),\n unitate = t => {\n if (token.literal) {\n return literal(t);\n }\n switch (t.val) {\n // era\n case \"G\":\n return oneOf(loc.eras(\"short\", false), 0);\n case \"GG\":\n return oneOf(loc.eras(\"long\", false), 0);\n // years\n case \"y\":\n return intUnit(oneToSix);\n case \"yy\":\n return intUnit(twoToFour, untruncateYear);\n case \"yyyy\":\n return intUnit(four);\n case \"yyyyy\":\n return intUnit(fourToSix);\n case \"yyyyyy\":\n return intUnit(six);\n // months\n case \"M\":\n return intUnit(oneOrTwo);\n case \"MM\":\n return intUnit(two);\n case \"MMM\":\n return oneOf(loc.months(\"short\", true, false), 1);\n case \"MMMM\":\n return oneOf(loc.months(\"long\", true, false), 1);\n case \"L\":\n return intUnit(oneOrTwo);\n case \"LL\":\n return intUnit(two);\n case \"LLL\":\n return oneOf(loc.months(\"short\", false, false), 1);\n case \"LLLL\":\n return oneOf(loc.months(\"long\", false, false), 1);\n // dates\n case \"d\":\n return intUnit(oneOrTwo);\n case \"dd\":\n return intUnit(two);\n // ordinals\n case \"o\":\n return intUnit(oneToThree);\n case \"ooo\":\n return intUnit(three);\n // time\n case \"HH\":\n return intUnit(two);\n case \"H\":\n return intUnit(oneOrTwo);\n case \"hh\":\n return intUnit(two);\n case \"h\":\n return intUnit(oneOrTwo);\n case \"mm\":\n return intUnit(two);\n case \"m\":\n return intUnit(oneOrTwo);\n case \"q\":\n return intUnit(oneOrTwo);\n case \"qq\":\n return intUnit(two);\n case \"s\":\n return intUnit(oneOrTwo);\n case \"ss\":\n return intUnit(two);\n case \"S\":\n return intUnit(oneToThree);\n case \"SSS\":\n return intUnit(three);\n case \"u\":\n return simple(oneToNine);\n // meridiem\n case \"a\":\n return oneOf(loc.meridiems(), 0);\n // weekYear (k)\n case \"kkkk\":\n return intUnit(four);\n case \"kk\":\n return intUnit(twoToFour, untruncateYear);\n // weekNumber (W)\n case \"W\":\n return intUnit(oneOrTwo);\n case \"WW\":\n return intUnit(two);\n // weekdays\n case \"E\":\n case \"c\":\n return intUnit(one);\n case \"EEE\":\n return oneOf(loc.weekdays(\"short\", false, false), 1);\n case \"EEEE\":\n return oneOf(loc.weekdays(\"long\", false, false), 1);\n case \"ccc\":\n return oneOf(loc.weekdays(\"short\", true, false), 1);\n case \"cccc\":\n return oneOf(loc.weekdays(\"long\", true, false), 1);\n // offset/zone\n case \"Z\":\n case \"ZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(?::(${two.source}))?`), 2);\n case \"ZZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(${two.source})?`), 2);\n // we don't support ZZZZ (PST) or ZZZZZ (Pacific Standard Time) in parsing\n // because we don't have any way to figure out what they are\n case \"z\":\n return simple(/[a-z_+-/]{1,256}?/i);\n default:\n return literal(t);\n }\n };\n\n const unit = unitate(token) || {\n invalidReason: MISSING_FTP\n };\n\n unit.token = token;\n\n return unit;\n}\n\nconst partTypeStyleToTokenVal = {\n year: {\n \"2-digit\": \"yy\",\n numeric: \"yyyyy\"\n },\n month: {\n numeric: \"M\",\n \"2-digit\": \"MM\",\n short: \"MMM\",\n long: \"MMMM\"\n },\n day: {\n numeric: \"d\",\n \"2-digit\": \"dd\"\n },\n weekday: {\n short: \"EEE\",\n long: \"EEEE\"\n },\n dayperiod: \"a\",\n dayPeriod: \"a\",\n hour: {\n numeric: \"h\",\n \"2-digit\": \"hh\"\n },\n minute: {\n numeric: \"m\",\n \"2-digit\": \"mm\"\n },\n second: {\n numeric: \"s\",\n \"2-digit\": \"ss\"\n }\n};\n\nfunction tokenForPart(part, locale, formatOpts) {\n const { type, value } = part;\n\n if (type === \"literal\") {\n return {\n literal: true,\n val: value\n };\n }\n\n const style = formatOpts[type];\n\n let val = partTypeStyleToTokenVal[type];\n if (typeof val === \"object\") {\n val = val[style];\n }\n\n if (val) {\n return {\n literal: false,\n val\n };\n }\n\n return undefined;\n}\n\nfunction buildRegex(units) {\n const re = units.map(u => u.regex).reduce((f, r) => `${f}(${r.source})`, \"\");\n return [`^${re}$`, units];\n}\n\nfunction match(input, regex, handlers) {\n const matches = input.match(regex);\n\n if (matches) {\n const all = {};\n let matchIndex = 1;\n for (const i in handlers) {\n if (hasOwnProperty(handlers, i)) {\n const h = handlers[i],\n groups = h.groups ? h.groups + 1 : 1;\n if (!h.literal && h.token) {\n all[h.token.val[0]] = h.deser(matches.slice(matchIndex, matchIndex + groups));\n }\n matchIndex += groups;\n }\n }\n return [matches, all];\n } else {\n return [matches, {}];\n }\n}\n\nfunction dateTimeFromMatches(matches) {\n const toField = token => {\n switch (token) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n case \"H\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"o\":\n return \"ordinal\";\n case \"L\":\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n case \"E\":\n case \"c\":\n return \"weekday\";\n case \"W\":\n return \"weekNumber\";\n case \"k\":\n return \"weekYear\";\n case \"q\":\n return \"quarter\";\n default:\n return null;\n }\n };\n\n let zone;\n if (!isUndefined(matches.Z)) {\n zone = new FixedOffsetZone(matches.Z);\n } else if (!isUndefined(matches.z)) {\n zone = IANAZone.create(matches.z);\n } else {\n zone = null;\n }\n\n if (!isUndefined(matches.q)) {\n matches.M = (matches.q - 1) * 3 + 1;\n }\n\n if (!isUndefined(matches.h)) {\n if (matches.h < 12 && matches.a === 1) {\n matches.h += 12;\n } else if (matches.h === 12 && matches.a === 0) {\n matches.h = 0;\n }\n }\n\n if (matches.G === 0 && matches.y) {\n matches.y = -matches.y;\n }\n\n if (!isUndefined(matches.u)) {\n matches.S = parseMillis(matches.u);\n }\n\n const vals = Object.keys(matches).reduce((r, k) => {\n const f = toField(k);\n if (f) {\n r[f] = matches[k];\n }\n\n return r;\n }, {});\n\n return [vals, zone];\n}\n\nlet dummyDateTimeCache = null;\n\nfunction getDummyDateTime() {\n if (!dummyDateTimeCache) {\n dummyDateTimeCache = DateTime.fromMillis(1555555555555);\n }\n\n return dummyDateTimeCache;\n}\n\nfunction maybeExpandMacroToken(token, locale) {\n if (token.literal) {\n return token;\n }\n\n const formatOpts = Formatter.macroTokenToFormatOpts(token.val);\n\n if (!formatOpts) {\n return token;\n }\n\n const formatter = Formatter.create(locale, formatOpts);\n const parts = formatter.formatDateTimeParts(getDummyDateTime());\n\n const tokens = parts.map(p => tokenForPart(p, locale, formatOpts));\n\n if (tokens.includes(undefined)) {\n return token;\n }\n\n return tokens;\n}\n\nfunction expandMacroTokens(tokens, locale) {\n return Array.prototype.concat(...tokens.map(t => maybeExpandMacroToken(t, locale)));\n}\n\n/**\n * @private\n */\n\nexport function explainFromTokens(locale, input, format) {\n const tokens = expandMacroTokens(Formatter.parseFormat(format), locale),\n units = tokens.map(t => unitForToken(t, locale)),\n disqualifyingUnit = units.find(t => t.invalidReason);\n\n if (disqualifyingUnit) {\n return { input, tokens, invalidReason: disqualifyingUnit.invalidReason };\n } else {\n const [regexString, handlers] = buildRegex(units),\n regex = RegExp(regexString, \"i\"),\n [rawMatches, matches] = match(input, regex, handlers),\n [result, zone] = matches ? dateTimeFromMatches(matches) : [null, null];\n if (hasOwnProperty(matches, \"a\") && hasOwnProperty(matches, \"H\")) {\n throw new ConflictingSpecificationError(\n \"Can't include meridiem when specifying 24-hour format\"\n );\n }\n return { input, tokens, regex, rawMatches, matches, result, zone };\n }\n}\n\nexport function parseFromTokens(locale, input, format) {\n const { result, zone, invalidReason } = explainFromTokens(locale, input, format);\n return [result, zone, invalidReason];\n}\n","import {\n integerBetween,\n isLeapYear,\n timeObject,\n daysInYear,\n daysInMonth,\n weeksInWeekYear,\n isInteger\n} from \"./util.js\";\nimport Invalid from \"./invalid.js\";\n\nconst nonLeapLadder = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],\n leapLadder = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335];\n\nfunction unitOutOfRange(unit, value) {\n return new Invalid(\n \"unit out of range\",\n `you specified ${value} (of type ${typeof value}) as a ${unit}, which is invalid`\n );\n}\n\nfunction dayOfWeek(year, month, day) {\n const js = new Date(Date.UTC(year, month - 1, day)).getUTCDay();\n return js === 0 ? 7 : js;\n}\n\nfunction computeOrdinal(year, month, day) {\n return day + (isLeapYear(year) ? leapLadder : nonLeapLadder)[month - 1];\n}\n\nfunction uncomputeOrdinal(year, ordinal) {\n const table = isLeapYear(year) ? leapLadder : nonLeapLadder,\n month0 = table.findIndex(i => i < ordinal),\n day = ordinal - table[month0];\n return { month: month0 + 1, day };\n}\n\n/**\n * @private\n */\n\nexport function gregorianToWeek(gregObj) {\n const { year, month, day } = gregObj,\n ordinal = computeOrdinal(year, month, day),\n weekday = dayOfWeek(year, month, day);\n\n let weekNumber = Math.floor((ordinal - weekday + 10) / 7),\n weekYear;\n\n if (weekNumber < 1) {\n weekYear = year - 1;\n weekNumber = weeksInWeekYear(weekYear);\n } else if (weekNumber > weeksInWeekYear(year)) {\n weekYear = year + 1;\n weekNumber = 1;\n } else {\n weekYear = year;\n }\n\n return Object.assign({ weekYear, weekNumber, weekday }, timeObject(gregObj));\n}\n\nexport function weekToGregorian(weekData) {\n const { weekYear, weekNumber, weekday } = weekData,\n weekdayOfJan4 = dayOfWeek(weekYear, 1, 4),\n yearInDays = daysInYear(weekYear);\n\n let ordinal = weekNumber * 7 + weekday - weekdayOfJan4 - 3,\n year;\n\n if (ordinal < 1) {\n year = weekYear - 1;\n ordinal += daysInYear(year);\n } else if (ordinal > yearInDays) {\n year = weekYear + 1;\n ordinal -= daysInYear(weekYear);\n } else {\n year = weekYear;\n }\n\n const { month, day } = uncomputeOrdinal(year, ordinal);\n\n return Object.assign({ year, month, day }, timeObject(weekData));\n}\n\nexport function gregorianToOrdinal(gregData) {\n const { year, month, day } = gregData,\n ordinal = computeOrdinal(year, month, day);\n\n return Object.assign({ year, ordinal }, timeObject(gregData));\n}\n\nexport function ordinalToGregorian(ordinalData) {\n const { year, ordinal } = ordinalData,\n { month, day } = uncomputeOrdinal(year, ordinal);\n\n return Object.assign({ year, month, day }, timeObject(ordinalData));\n}\n\nexport function hasInvalidWeekData(obj) {\n const validYear = isInteger(obj.weekYear),\n validWeek = integerBetween(obj.weekNumber, 1, weeksInWeekYear(obj.weekYear)),\n validWeekday = integerBetween(obj.weekday, 1, 7);\n\n if (!validYear) {\n return unitOutOfRange(\"weekYear\", obj.weekYear);\n } else if (!validWeek) {\n return unitOutOfRange(\"week\", obj.week);\n } else if (!validWeekday) {\n return unitOutOfRange(\"weekday\", obj.weekday);\n } else return false;\n}\n\nexport function hasInvalidOrdinalData(obj) {\n const validYear = isInteger(obj.year),\n validOrdinal = integerBetween(obj.ordinal, 1, daysInYear(obj.year));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validOrdinal) {\n return unitOutOfRange(\"ordinal\", obj.ordinal);\n } else return false;\n}\n\nexport function hasInvalidGregorianData(obj) {\n const validYear = isInteger(obj.year),\n validMonth = integerBetween(obj.month, 1, 12),\n validDay = integerBetween(obj.day, 1, daysInMonth(obj.year, obj.month));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validMonth) {\n return unitOutOfRange(\"month\", obj.month);\n } else if (!validDay) {\n return unitOutOfRange(\"day\", obj.day);\n } else return false;\n}\n\nexport function hasInvalidTimeData(obj) {\n const { hour, minute, second, millisecond } = obj;\n const validHour =\n integerBetween(hour, 0, 23) ||\n (hour === 24 && minute === 0 && second === 0 && millisecond === 0),\n validMinute = integerBetween(minute, 0, 59),\n validSecond = integerBetween(second, 0, 59),\n validMillisecond = integerBetween(millisecond, 0, 999);\n\n if (!validHour) {\n return unitOutOfRange(\"hour\", hour);\n } else if (!validMinute) {\n return unitOutOfRange(\"minute\", minute);\n } else if (!validSecond) {\n return unitOutOfRange(\"second\", second);\n } else if (!validMillisecond) {\n return unitOutOfRange(\"millisecond\", millisecond);\n } else return false;\n}\n","import Duration, { friendlyDuration } from \"./duration.js\";\nimport Interval from \"./interval.js\";\nimport Settings from \"./settings.js\";\nimport Info from \"./info.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport FixedOffsetZone from \"./zones/fixedOffsetZone.js\";\nimport Locale from \"./impl/locale.js\";\nimport {\n isUndefined,\n maybeArray,\n isDate,\n isNumber,\n bestBy,\n daysInMonth,\n daysInYear,\n isLeapYear,\n weeksInWeekYear,\n normalizeObject,\n roundTo,\n objToLocalTS\n} from \"./impl/util.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\nimport diff from \"./impl/diff.js\";\nimport { parseRFC2822Date, parseISODate, parseHTTPDate, parseSQL } from \"./impl/regexParser.js\";\nimport { parseFromTokens, explainFromTokens } from \"./impl/tokenParser.js\";\nimport {\n gregorianToWeek,\n weekToGregorian,\n gregorianToOrdinal,\n ordinalToGregorian,\n hasInvalidGregorianData,\n hasInvalidWeekData,\n hasInvalidOrdinalData,\n hasInvalidTimeData\n} from \"./impl/conversions.js\";\nimport * as Formats from \"./impl/formats.js\";\nimport {\n InvalidArgumentError,\n ConflictingSpecificationError,\n InvalidUnitError,\n InvalidDateTimeError\n} from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\n\nconst INVALID = \"Invalid DateTime\";\nconst MAX_DATE = 8.64e15;\n\nfunction unsupportedZone(zone) {\n return new Invalid(\"unsupported zone\", `the zone \"${zone.name}\" is not supported`);\n}\n\n// we cache week data on the DT object and this intermediates the cache\nfunction possiblyCachedWeekData(dt) {\n if (dt.weekData === null) {\n dt.weekData = gregorianToWeek(dt.c);\n }\n return dt.weekData;\n}\n\n// clone really means, \"make a new object with these modifications\". all \"setters\" really use this\n// to create a new object while only changing some of the properties\nfunction clone(inst, alts) {\n const current = {\n ts: inst.ts,\n zone: inst.zone,\n c: inst.c,\n o: inst.o,\n loc: inst.loc,\n invalid: inst.invalid\n };\n return new DateTime(Object.assign({}, current, alts, { old: current }));\n}\n\n// find the right offset a given local time. The o input is our guess, which determines which\n// offset we'll pick in ambiguous cases (e.g. there are two 3 AMs b/c Fallback DST)\nfunction fixOffset(localTS, o, tz) {\n // Our UTC time is just a guess because our offset is just a guess\n let utcGuess = localTS - o * 60 * 1000;\n\n // Test whether the zone matches the offset for this ts\n const o2 = tz.offset(utcGuess);\n\n // If so, offset didn't change and we're done\n if (o === o2) {\n return [utcGuess, o];\n }\n\n // If not, change the ts by the difference in the offset\n utcGuess -= (o2 - o) * 60 * 1000;\n\n // If that gives us the local time we want, we're done\n const o3 = tz.offset(utcGuess);\n if (o2 === o3) {\n return [utcGuess, o2];\n }\n\n // If it's different, we're in a hole time. The offset has changed, but the we don't adjust the time\n return [localTS - Math.min(o2, o3) * 60 * 1000, Math.max(o2, o3)];\n}\n\n// convert an epoch timestamp into a calendar object with the given offset\nfunction tsToObj(ts, offset) {\n ts += offset * 60 * 1000;\n\n const d = new Date(ts);\n\n return {\n year: d.getUTCFullYear(),\n month: d.getUTCMonth() + 1,\n day: d.getUTCDate(),\n hour: d.getUTCHours(),\n minute: d.getUTCMinutes(),\n second: d.getUTCSeconds(),\n millisecond: d.getUTCMilliseconds()\n };\n}\n\n// convert a calendar object to a epoch timestamp\nfunction objToTS(obj, offset, zone) {\n return fixOffset(objToLocalTS(obj), offset, zone);\n}\n\n// create a new DT instance by adding a duration, adjusting for DSTs\nfunction adjustTime(inst, dur) {\n const keys = Object.keys(dur.values);\n if (keys.indexOf(\"milliseconds\") === -1) {\n keys.push(\"milliseconds\");\n }\n\n dur = dur.shiftTo(...keys);\n\n const oPre = inst.o,\n year = inst.c.year + dur.years,\n month = inst.c.month + dur.months + dur.quarters * 3,\n c = Object.assign({}, inst.c, {\n year,\n month,\n day: Math.min(inst.c.day, daysInMonth(year, month)) + dur.days + dur.weeks * 7\n }),\n millisToAdd = Duration.fromObject({\n hours: dur.hours,\n minutes: dur.minutes,\n seconds: dur.seconds,\n milliseconds: dur.milliseconds\n }).as(\"milliseconds\"),\n localTS = objToLocalTS(c);\n\n let [ts, o] = fixOffset(localTS, oPre, inst.zone);\n\n if (millisToAdd !== 0) {\n ts += millisToAdd;\n // that could have changed the offset by going over a DST, but we want to keep the ts the same\n o = inst.zone.offset(ts);\n }\n\n return { ts, o };\n}\n\n// helper useful in turning the results of parsing into real dates\n// by handling the zone options\nfunction parseDataToDateTime(parsed, parsedZone, opts, format, text) {\n const { setZone, zone } = opts;\n if (parsed && Object.keys(parsed).length !== 0) {\n const interpretationZone = parsedZone || zone,\n inst = DateTime.fromObject(\n Object.assign(parsed, opts, {\n zone: interpretationZone,\n // setZone is a valid option in the calling methods, but not in fromObject\n setZone: undefined\n })\n );\n return setZone ? inst : inst.setZone(zone);\n } else {\n return DateTime.invalid(\n new Invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ${format}`)\n );\n }\n}\n\n// if you want to output a technical format (e.g. RFC 2822), this helper\n// helps handle the details\nfunction toTechFormat(dt, format, allowZ = true) {\n return dt.isValid\n ? Formatter.create(Locale.create(\"en-US\"), {\n allowZ,\n forceSimple: true\n }).formatDateTimeFromString(dt, format)\n : null;\n}\n\n// technical time formats (e.g. the time part of ISO 8601), take some options\n// and this commonizes their handling\nfunction toTechTimeFormat(\n dt,\n {\n suppressSeconds = false,\n suppressMilliseconds = false,\n includeOffset,\n includeZone = false,\n spaceZone = false,\n format = \"extended\"\n }\n) {\n let fmt = format === \"basic\" ? \"HHmm\" : \"HH:mm\";\n\n if (!suppressSeconds || dt.second !== 0 || dt.millisecond !== 0) {\n fmt += format === \"basic\" ? \"ss\" : \":ss\";\n if (!suppressMilliseconds || dt.millisecond !== 0) {\n fmt += \".SSS\";\n }\n }\n\n if ((includeZone || includeOffset) && spaceZone) {\n fmt += \" \";\n }\n\n if (includeZone) {\n fmt += \"z\";\n } else if (includeOffset) {\n fmt += format === \"basic\" ? \"ZZZ\" : \"ZZ\";\n }\n\n return toTechFormat(dt, fmt);\n}\n\n// defaults for unspecified units in the supported calendars\nconst defaultUnitValues = {\n month: 1,\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n },\n defaultWeekUnitValues = {\n weekNumber: 1,\n weekday: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n },\n defaultOrdinalUnitValues = {\n ordinal: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n };\n\n// Units in the supported calendars, sorted by bigness\nconst orderedUnits = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\", \"millisecond\"],\n orderedWeekUnits = [\n \"weekYear\",\n \"weekNumber\",\n \"weekday\",\n \"hour\",\n \"minute\",\n \"second\",\n \"millisecond\"\n ],\n orderedOrdinalUnits = [\"year\", \"ordinal\", \"hour\", \"minute\", \"second\", \"millisecond\"];\n\n// standardize case and plurality in units\nfunction normalizeUnit(unit) {\n const normalized = {\n year: \"year\",\n years: \"year\",\n month: \"month\",\n months: \"month\",\n day: \"day\",\n days: \"day\",\n hour: \"hour\",\n hours: \"hour\",\n minute: \"minute\",\n minutes: \"minute\",\n quarter: \"quarter\",\n quarters: \"quarter\",\n second: \"second\",\n seconds: \"second\",\n millisecond: \"millisecond\",\n milliseconds: \"millisecond\",\n weekday: \"weekday\",\n weekdays: \"weekday\",\n weeknumber: \"weekNumber\",\n weeksnumber: \"weekNumber\",\n weeknumbers: \"weekNumber\",\n weekyear: \"weekYear\",\n weekyears: \"weekYear\",\n ordinal: \"ordinal\"\n }[unit.toLowerCase()];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n}\n\n// this is a dumbed down version of fromObject() that runs about 60% faster\n// but doesn't do any validation, makes a bunch of assumptions about what units\n// are present, and so on.\nfunction quickDT(obj, zone) {\n // assume we have the higher-order units\n for (const u of orderedUnits) {\n if (isUndefined(obj[u])) {\n obj[u] = defaultUnitValues[u];\n }\n }\n\n const invalid = hasInvalidGregorianData(obj) || hasInvalidTimeData(obj);\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n const tsNow = Settings.now(),\n offsetProvis = zone.offset(tsNow),\n [ts, o] = objToTS(obj, offsetProvis, zone);\n\n return new DateTime({\n ts,\n zone,\n o\n });\n}\n\nfunction diffRelative(start, end, opts) {\n const round = isUndefined(opts.round) ? true : opts.round,\n format = (c, unit) => {\n c = roundTo(c, round || opts.calendary ? 0 : 2, true);\n const formatter = end.loc.clone(opts).relFormatter(opts);\n return formatter.format(c, unit);\n },\n differ = unit => {\n if (opts.calendary) {\n if (!end.hasSame(start, unit)) {\n return end\n .startOf(unit)\n .diff(start.startOf(unit), unit)\n .get(unit);\n } else return 0;\n } else {\n return end.diff(start, unit).get(unit);\n }\n };\n\n if (opts.unit) {\n return format(differ(opts.unit), opts.unit);\n }\n\n for (const unit of opts.units) {\n const count = differ(unit);\n if (Math.abs(count) >= 1) {\n return format(count, unit);\n }\n }\n return format(0, opts.units[opts.units.length - 1]);\n}\n\n/**\n * A DateTime is an immutable data structure representing a specific date and time and accompanying methods. It contains class and instance methods for creating, parsing, interrogating, transforming, and formatting them.\n *\n * A DateTime comprises of:\n * * A timestamp. Each DateTime instance refers to a specific millisecond of the Unix epoch.\n * * A time zone. Each instance is considered in the context of a specific zone (by default the local system's zone).\n * * Configuration properties that effect how output strings are formatted, such as `locale`, `numberingSystem`, and `outputCalendar`.\n *\n * Here is a brief overview of the most commonly used functionality it provides:\n *\n * * **Creation**: To create a DateTime from its components, use one of its factory class methods: {@link local}, {@link utc}, and (most flexibly) {@link fromObject}. To create one from a standard string format, use {@link fromISO}, {@link fromHTTP}, and {@link fromRFC2822}. To create one from a custom string format, use {@link fromFormat}. To create one from a native JS date, use {@link fromJSDate}.\n * * **Gregorian calendar and time**: To examine the Gregorian properties of a DateTime individually (i.e as opposed to collectively through {@link toObject}), use the {@link year}, {@link month},\n * {@link day}, {@link hour}, {@link minute}, {@link second}, {@link millisecond} accessors.\n * * **Week calendar**: For ISO week calendar attributes, see the {@link weekYear}, {@link weekNumber}, and {@link weekday} accessors.\n * * **Configuration** See the {@link locale} and {@link numberingSystem} accessors.\n * * **Transformation**: To transform the DateTime into other DateTimes, use {@link set}, {@link reconfigure}, {@link setZone}, {@link setLocale}, {@link plus}, {@link minus}, {@link endOf}, {@link startOf}, {@link toUTC}, and {@link toLocal}.\n * * **Output**: To convert the DateTime to other representations, use the {@link toRelative}, {@link toRelativeCalendar}, {@link toJSON}, {@link toISO}, {@link toHTTP}, {@link toObject}, {@link toRFC2822}, {@link toString}, {@link toLocaleString}, {@link toFormat}, {@link toMillis} and {@link toJSDate}.\n *\n * There's plenty others documented below. In addition, for more information on subtler topics like internationalization, time zones, alternative calendars, validity, and so on, see the external documentation.\n */\nexport default class DateTime {\n /**\n * @access private\n */\n constructor(config) {\n const zone = config.zone || Settings.defaultZone;\n\n let invalid =\n config.invalid ||\n (Number.isNaN(config.ts) ? new Invalid(\"invalid input\") : null) ||\n (!zone.isValid ? unsupportedZone(zone) : null);\n /**\n * @access private\n */\n this.ts = isUndefined(config.ts) ? Settings.now() : config.ts;\n\n let c = null,\n o = null;\n if (!invalid) {\n const unchanged = config.old && config.old.ts === this.ts && config.old.zone.equals(zone);\n\n if (unchanged) {\n [c, o] = [config.old.c, config.old.o];\n } else {\n const ot = zone.offset(this.ts);\n c = tsToObj(this.ts, ot);\n invalid = Number.isNaN(c.year) ? new Invalid(\"invalid input\") : null;\n c = invalid ? null : c;\n o = invalid ? null : ot;\n }\n }\n\n /**\n * @access private\n */\n this._zone = zone;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.invalid = invalid;\n /**\n * @access private\n */\n this.weekData = null;\n /**\n * @access private\n */\n this.c = c;\n /**\n * @access private\n */\n this.o = o;\n /**\n * @access private\n */\n this.isLuxonDateTime = true;\n }\n\n // CONSTRUCT\n\n /**\n * Create a local DateTime\n * @param {number} [year] - The calendar year. If omitted (as in, call `local()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @example DateTime.local() //~> now\n * @example DateTime.local(2017) //~> 2017-01-01T00:00:00\n * @example DateTime.local(2017, 3) //~> 2017-03-01T00:00:00\n * @example DateTime.local(2017, 3, 12) //~> 2017-03-12T00:00:00\n * @example DateTime.local(2017, 3, 12, 5) //~> 2017-03-12T05:00:00\n * @example DateTime.local(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00\n * @example DateTime.local(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10\n * @example DateTime.local(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765\n * @return {DateTime}\n */\n static local(year, month, day, hour, minute, second, millisecond) {\n if (isUndefined(year)) {\n return new DateTime({ ts: Settings.now() });\n } else {\n return quickDT(\n {\n year,\n month,\n day,\n hour,\n minute,\n second,\n millisecond\n },\n Settings.defaultZone\n );\n }\n }\n\n /**\n * Create a DateTime in UTC\n * @param {number} [year] - The calendar year. If omitted (as in, call `utc()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @example DateTime.utc() //~> now\n * @example DateTime.utc(2017) //~> 2017-01-01T00:00:00Z\n * @example DateTime.utc(2017, 3) //~> 2017-03-01T00:00:00Z\n * @example DateTime.utc(2017, 3, 12) //~> 2017-03-12T00:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5) //~> 2017-03-12T05:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765Z\n * @return {DateTime}\n */\n static utc(year, month, day, hour, minute, second, millisecond) {\n if (isUndefined(year)) {\n return new DateTime({\n ts: Settings.now(),\n zone: FixedOffsetZone.utcInstance\n });\n } else {\n return quickDT(\n {\n year,\n month,\n day,\n hour,\n minute,\n second,\n millisecond\n },\n FixedOffsetZone.utcInstance\n );\n }\n }\n\n /**\n * Create a DateTime from a Javascript Date object. Uses the default zone.\n * @param {Date} date - a Javascript Date object\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @return {DateTime}\n */\n static fromJSDate(date, options = {}) {\n const ts = isDate(date) ? date.valueOf() : NaN;\n if (Number.isNaN(ts)) {\n return DateTime.invalid(\"invalid input\");\n }\n\n const zoneToUse = normalizeZone(options.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n return new DateTime({\n ts: ts,\n zone: zoneToUse,\n loc: Locale.fromObject(options)\n });\n }\n\n /**\n * Create a DateTime from a number of milliseconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} milliseconds - a number of milliseconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromMillis(milliseconds, options = {}) {\n if (!isNumber(milliseconds)) {\n throw new InvalidArgumentError(\n `fromMillis requires a numerical input, but received a ${typeof milliseconds} with value ${milliseconds}`\n );\n } else if (milliseconds < -MAX_DATE || milliseconds > MAX_DATE) {\n // this isn't perfect because because we can still end up out of range because of additional shifting, but it's a start\n return DateTime.invalid(\"Timestamp out of range\");\n } else {\n return new DateTime({\n ts: milliseconds,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options)\n });\n }\n }\n\n /**\n * Create a DateTime from a number of seconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} seconds - a number of seconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromSeconds(seconds, options = {}) {\n if (!isNumber(seconds)) {\n throw new InvalidArgumentError(\"fromSeconds requires a numerical input\");\n } else {\n return new DateTime({\n ts: seconds * 1000,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options)\n });\n }\n }\n\n /**\n * Create a DateTime from a Javascript object with keys like 'year' and 'hour' with reasonable defaults.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.year - a year, such as 1987\n * @param {number} obj.month - a month, 1-12\n * @param {number} obj.day - a day of the month, 1-31, depending on the month\n * @param {number} obj.ordinal - day of the year, 1-365 or 366\n * @param {number} obj.weekYear - an ISO week year\n * @param {number} obj.weekNumber - an ISO week number, between 1 and 52 or 53, depending on the year\n * @param {number} obj.weekday - an ISO weekday, 1-7, where 1 is Monday and 7 is Sunday\n * @param {number} obj.hour - hour of the day, 0-23\n * @param {number} obj.minute - minute of the hour, 0-59\n * @param {number} obj.second - second of the minute, 0-59\n * @param {number} obj.millisecond - millisecond of the second, 0-999\n * @param {string|Zone} [obj.zone='local'] - interpret the numbers in the context of a particular zone. Can take any value taken as the first argument to setZone()\n * @param {string} [obj.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} obj.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} obj.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromObject({ year: 1982, month: 5, day: 25}).toISODate() //=> '1982-05-25'\n * @example DateTime.fromObject({ year: 1982 }).toISODate() //=> '1982-01-01'\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }) //~> today at 10:26:06\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'utc' }),\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'local' })\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6, zone: 'America/New_York' })\n * @example DateTime.fromObject({ weekYear: 2016, weekNumber: 2, weekday: 3 }).toISODate() //=> '2016-01-13'\n * @return {DateTime}\n */\n static fromObject(obj) {\n const zoneToUse = normalizeZone(obj.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n const tsNow = Settings.now(),\n offsetProvis = zoneToUse.offset(tsNow),\n normalized = normalizeObject(obj, normalizeUnit, [\n \"zone\",\n \"locale\",\n \"outputCalendar\",\n \"numberingSystem\"\n ]),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber,\n loc = Locale.fromObject(obj);\n\n // cases:\n // just a weekday -> this week's instance of that weekday, no worries\n // (gregorian data or ordinal) + (weekYear or weekNumber) -> error\n // (gregorian month or day) + ordinal -> error\n // otherwise just use weeks or ordinals or gregorian, depending on what's specified\n\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\n \"Can't mix weekYear/weekNumber units with year/month/day or ordinals\"\n );\n }\n\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n\n const useWeekData = definiteWeekDef || (normalized.weekday && !containsGregor);\n\n // configure ourselves to deal with gregorian dates or week stuff\n let units,\n defaultValues,\n objNow = tsToObj(tsNow, offsetProvis);\n if (useWeekData) {\n units = orderedWeekUnits;\n defaultValues = defaultWeekUnitValues;\n objNow = gregorianToWeek(objNow);\n } else if (containsOrdinal) {\n units = orderedOrdinalUnits;\n defaultValues = defaultOrdinalUnitValues;\n objNow = gregorianToOrdinal(objNow);\n } else {\n units = orderedUnits;\n defaultValues = defaultUnitValues;\n }\n\n // set default values for missing stuff\n let foundFirst = false;\n for (const u of units) {\n const v = normalized[u];\n if (!isUndefined(v)) {\n foundFirst = true;\n } else if (foundFirst) {\n normalized[u] = defaultValues[u];\n } else {\n normalized[u] = objNow[u];\n }\n }\n\n // make sure the values we have are in range\n const higherOrderInvalid = useWeekData\n ? hasInvalidWeekData(normalized)\n : containsOrdinal\n ? hasInvalidOrdinalData(normalized)\n : hasInvalidGregorianData(normalized),\n invalid = higherOrderInvalid || hasInvalidTimeData(normalized);\n\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n // compute the actual time\n const gregorian = useWeekData\n ? weekToGregorian(normalized)\n : containsOrdinal\n ? ordinalToGregorian(normalized)\n : normalized,\n [tsFinal, offsetFinal] = objToTS(gregorian, offsetProvis, zoneToUse),\n inst = new DateTime({\n ts: tsFinal,\n zone: zoneToUse,\n o: offsetFinal,\n loc\n });\n\n // gregorian data + weekday serves only to validate\n if (normalized.weekday && containsGregor && obj.weekday !== inst.weekday) {\n return DateTime.invalid(\n \"mismatched weekday\",\n `you can't specify both a weekday of ${normalized.weekday} and a date of ${inst.toISO()}`\n );\n }\n\n return inst;\n }\n\n /**\n * Create a DateTime from an ISO 8601 string\n * @param {string} text - the ISO string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the time to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromISO('2016-05-25T09:08:34.123')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00', {setZone: true})\n * @example DateTime.fromISO('2016-05-25T09:08:34.123', {zone: 'utc'})\n * @example DateTime.fromISO('2016-W05-4')\n * @return {DateTime}\n */\n static fromISO(text, opts = {}) {\n const [vals, parsedZone] = parseISODate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"ISO 8601\", text);\n }\n\n /**\n * Create a DateTime from an RFC 2822 string\n * @param {string} text - the RFC 2822 string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since the offset is always specified in the string itself, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23:12 GMT')\n * @example DateTime.fromRFC2822('Fri, 25 Nov 2016 13:23:12 +0600')\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23 Z')\n * @return {DateTime}\n */\n static fromRFC2822(text, opts = {}) {\n const [vals, parsedZone] = parseRFC2822Date(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"RFC 2822\", text);\n }\n\n /**\n * Create a DateTime from an HTTP header date\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @param {string} text - the HTTP header date\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since HTTP dates are always in UTC, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with the fixed-offset zone specified in the string. For HTTP dates, this is always UTC, so this option is equivalent to setting the `zone` option to 'utc', but this option is included for consistency with similar methods.\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromHTTP('Sun, 06 Nov 1994 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sunday, 06-Nov-94 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sun Nov 6 08:49:37 1994')\n * @return {DateTime}\n */\n static fromHTTP(text, opts = {}) {\n const [vals, parsedZone] = parseHTTPDate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"HTTP\", opts);\n }\n\n /**\n * Create a DateTime from an input string and format string.\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n * @see https://moment.github.io/luxon/docs/manual/parsing.html#table-of-tokens\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see the link below for the formats)\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromFormat(text, fmt, opts = {}) {\n if (isUndefined(text) || isUndefined(fmt)) {\n throw new InvalidArgumentError(\"fromFormat requires an input string and a format\");\n }\n\n const { locale = null, numberingSystem = null } = opts,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true\n }),\n [vals, parsedZone, invalid] = parseFromTokens(localeToUse, text, fmt);\n if (invalid) {\n return DateTime.invalid(invalid);\n } else {\n return parseDataToDateTime(vals, parsedZone, opts, `format ${fmt}`, text);\n }\n }\n\n /**\n * @deprecated use fromFormat instead\n */\n static fromString(text, fmt, opts = {}) {\n return DateTime.fromFormat(text, fmt, opts);\n }\n\n /**\n * Create a DateTime from a SQL date, time, or datetime\n * Defaults to en-US if no locale has been specified, regardless of the system's locale\n * @param {string} text - the string to parse\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @example DateTime.fromSQL('2017-05-15')\n * @example DateTime.fromSQL('2017-05-15 09:12:34')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342+06:00')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles', { setZone: true })\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342', { zone: 'America/Los_Angeles' })\n * @example DateTime.fromSQL('09:12:34.342')\n * @return {DateTime}\n */\n static fromSQL(text, opts = {}) {\n const [vals, parsedZone] = parseSQL(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"SQL\", text);\n }\n\n /**\n * Create an invalid DateTime.\n * @param {string} reason - simple string of why this DateTime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {DateTime}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the DateTime is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDateTimeError(invalid);\n } else {\n return new DateTime({ invalid });\n }\n }\n\n /**\n * Check if an object is a DateTime. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDateTime(o) {\n return (o && o.isLuxonDateTime) || false;\n }\n\n // INFO\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example DateTime.local(2017, 7, 4).get('month'); //=> 7\n * @example DateTime.local(2017, 7, 4).get('day'); //=> 4\n * @return {number}\n */\n get(unit) {\n return this[unit];\n }\n\n /**\n * Returns whether the DateTime is valid. Invalid DateTimes occur when:\n * * The DateTime was created from invalid calendar information, such as the 13th month or February 30\n * * The DateTime was created by an operation on another invalid date\n * @type {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this DateTime is invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this DateTime became invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Get the locale of a DateTime, such 'en-GB'. The locale is used when formatting the DateTime\n *\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a DateTime, such 'beng'. The numbering system is used when formatting the DateTime\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Get the output calendar of a DateTime, such 'islamic'. The output calendar is used when formatting the DateTime\n *\n * @type {string}\n */\n get outputCalendar() {\n return this.isValid ? this.loc.outputCalendar : null;\n }\n\n /**\n * Get the time zone associated with this DateTime.\n * @type {Zone}\n */\n get zone() {\n return this._zone;\n }\n\n /**\n * Get the name of the time zone.\n * @type {string}\n */\n get zoneName() {\n return this.isValid ? this.zone.name : null;\n }\n\n /**\n * Get the year\n * @example DateTime.local(2017, 5, 25).year //=> 2017\n * @type {number}\n */\n get year() {\n return this.isValid ? this.c.year : NaN;\n }\n\n /**\n * Get the quarter\n * @example DateTime.local(2017, 5, 25).quarter //=> 2\n * @type {number}\n */\n get quarter() {\n return this.isValid ? Math.ceil(this.c.month / 3) : NaN;\n }\n\n /**\n * Get the month (1-12).\n * @example DateTime.local(2017, 5, 25).month //=> 5\n * @type {number}\n */\n get month() {\n return this.isValid ? this.c.month : NaN;\n }\n\n /**\n * Get the day of the month (1-30ish).\n * @example DateTime.local(2017, 5, 25).day //=> 25\n * @type {number}\n */\n get day() {\n return this.isValid ? this.c.day : NaN;\n }\n\n /**\n * Get the hour of the day (0-23).\n * @example DateTime.local(2017, 5, 25, 9).hour //=> 9\n * @type {number}\n */\n get hour() {\n return this.isValid ? this.c.hour : NaN;\n }\n\n /**\n * Get the minute of the hour (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30).minute //=> 30\n * @type {number}\n */\n get minute() {\n return this.isValid ? this.c.minute : NaN;\n }\n\n /**\n * Get the second of the minute (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52).second //=> 52\n * @type {number}\n */\n get second() {\n return this.isValid ? this.c.second : NaN;\n }\n\n /**\n * Get the millisecond of the second (0-999).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52, 654).millisecond //=> 654\n * @type {number}\n */\n get millisecond() {\n return this.isValid ? this.c.millisecond : NaN;\n }\n\n /**\n * Get the week year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 11, 31).weekYear //=> 2015\n * @type {number}\n */\n get weekYear() {\n return this.isValid ? possiblyCachedWeekData(this).weekYear : NaN;\n }\n\n /**\n * Get the week number of the week year (1-52ish).\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2017, 5, 25).weekNumber //=> 21\n * @type {number}\n */\n get weekNumber() {\n return this.isValid ? possiblyCachedWeekData(this).weekNumber : NaN;\n }\n\n /**\n * Get the day of the week.\n * 1 is Monday and 7 is Sunday\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 11, 31).weekday //=> 4\n * @type {number}\n */\n get weekday() {\n return this.isValid ? possiblyCachedWeekData(this).weekday : NaN;\n }\n\n /**\n * Get the ordinal (meaning the day of the year)\n * @example DateTime.local(2017, 5, 25).ordinal //=> 145\n * @type {number|DateTime}\n */\n get ordinal() {\n return this.isValid ? gregorianToOrdinal(this.c).ordinal : NaN;\n }\n\n /**\n * Get the human readable short month name, such as 'Oct'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthShort //=> Oct\n * @type {string}\n */\n get monthShort() {\n return this.isValid ? Info.months(\"short\", { locale: this.locale })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable long month name, such as 'October'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthLong //=> October\n * @type {string}\n */\n get monthLong() {\n return this.isValid ? Info.months(\"long\", { locale: this.locale })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable short weekday, such as 'Mon'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayShort //=> Mon\n * @type {string}\n */\n get weekdayShort() {\n return this.isValid ? Info.weekdays(\"short\", { locale: this.locale })[this.weekday - 1] : null;\n }\n\n /**\n * Get the human readable long weekday, such as 'Monday'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayLong //=> Monday\n * @type {string}\n */\n get weekdayLong() {\n return this.isValid ? Info.weekdays(\"long\", { locale: this.locale })[this.weekday - 1] : null;\n }\n\n /**\n * Get the UTC offset of this DateTime in minutes\n * @example DateTime.local().offset //=> -240\n * @example DateTime.utc().offset //=> 0\n * @type {number}\n */\n get offset() {\n return this.isValid ? +this.o : NaN;\n }\n\n /**\n * Get the short human name for the zone's current offset, for example \"EST\" or \"EDT\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameShort() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"short\",\n locale: this.locale\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get the long human name for the zone's current offset, for example \"Eastern Standard Time\" or \"Eastern Daylight Time\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameLong() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"long\",\n locale: this.locale\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get whether this zone's offset ever changes, as in a DST.\n * @type {boolean}\n */\n get isOffsetFixed() {\n return this.isValid ? this.zone.universal : null;\n }\n\n /**\n * Get whether the DateTime is in a DST.\n * @type {boolean}\n */\n get isInDST() {\n if (this.isOffsetFixed) {\n return false;\n } else {\n return (\n this.offset > this.set({ month: 1 }).offset || this.offset > this.set({ month: 5 }).offset\n );\n }\n }\n\n /**\n * Returns true if this DateTime is in a leap year, false otherwise\n * @example DateTime.local(2016).isInLeapYear //=> true\n * @example DateTime.local(2013).isInLeapYear //=> false\n * @type {boolean}\n */\n get isInLeapYear() {\n return isLeapYear(this.year);\n }\n\n /**\n * Returns the number of days in this DateTime's month\n * @example DateTime.local(2016, 2).daysInMonth //=> 29\n * @example DateTime.local(2016, 3).daysInMonth //=> 31\n * @type {number}\n */\n get daysInMonth() {\n return daysInMonth(this.year, this.month);\n }\n\n /**\n * Returns the number of days in this DateTime's year\n * @example DateTime.local(2016).daysInYear //=> 366\n * @example DateTime.local(2013).daysInYear //=> 365\n * @type {number}\n */\n get daysInYear() {\n return this.isValid ? daysInYear(this.year) : NaN;\n }\n\n /**\n * Returns the number of weeks in this DateTime's year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2004).weeksInWeekYear //=> 53\n * @example DateTime.local(2013).weeksInWeekYear //=> 52\n * @type {number}\n */\n get weeksInWeekYear() {\n return this.isValid ? weeksInWeekYear(this.weekYear) : NaN;\n }\n\n /**\n * Returns the resolved Intl options for this DateTime.\n * This is useful in understanding the behavior of formatting methods\n * @param {Object} opts - the same options as toLocaleString\n * @return {Object}\n */\n resolvedLocaleOpts(opts = {}) {\n const { locale, numberingSystem, calendar } = Formatter.create(\n this.loc.clone(opts),\n opts\n ).resolvedOptions(this);\n return { locale, numberingSystem, outputCalendar: calendar };\n }\n\n // TRANSFORM\n\n /**\n * \"Set\" the DateTime's zone to UTC. Returns a newly-constructed DateTime.\n *\n * Equivalent to {@link setZone}('utc')\n * @param {number} [offset=0] - optionally, an offset from UTC in minutes\n * @param {Object} [opts={}] - options to pass to `setZone()`\n * @return {DateTime}\n */\n toUTC(offset = 0, opts = {}) {\n return this.setZone(FixedOffsetZone.instance(offset), opts);\n }\n\n /**\n * \"Set\" the DateTime's zone to the host's local zone. Returns a newly-constructed DateTime.\n *\n * Equivalent to `setZone('local')`\n * @return {DateTime}\n */\n toLocal() {\n return this.setZone(Settings.defaultZone);\n }\n\n /**\n * \"Set\" the DateTime's zone to specified zone. Returns a newly-constructed DateTime.\n *\n * By default, the setter keeps the underlying time the same (as in, the same timestamp), but the new instance will report different local times and consider DSTs when making computations, as with {@link plus}. You may wish to use {@link toLocal} and {@link toUTC} which provide simple convenience wrappers for commonly used zones.\n * @param {string|Zone} [zone='local'] - a zone identifier. As a string, that can be any IANA zone supported by the host environment, or a fixed-offset name of the form 'UTC+3', or the strings 'local' or 'utc'. You may also supply an instance of a {@link Zone} class.\n * @param {Object} opts - options\n * @param {boolean} [opts.keepLocalTime=false] - If true, adjust the underlying time so that the local time stays the same, but in the target zone. You should rarely need this.\n * @return {DateTime}\n */\n setZone(zone, { keepLocalTime = false, keepCalendarTime = false } = {}) {\n zone = normalizeZone(zone, Settings.defaultZone);\n if (zone.equals(this.zone)) {\n return this;\n } else if (!zone.isValid) {\n return DateTime.invalid(unsupportedZone(zone));\n } else {\n let newTS = this.ts;\n if (keepLocalTime || keepCalendarTime) {\n const offsetGuess = zone.offset(this.ts);\n const asObj = this.toObject();\n [newTS] = objToTS(asObj, offsetGuess, zone);\n }\n return clone(this, { ts: newTS, zone });\n }\n }\n\n /**\n * \"Set\" the locale, numberingSystem, or outputCalendar. Returns a newly-constructed DateTime.\n * @param {Object} properties - the properties to set\n * @example DateTime.local(2017, 5, 25).reconfigure({ locale: 'en-GB' })\n * @return {DateTime}\n */\n reconfigure({ locale, numberingSystem, outputCalendar } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem, outputCalendar });\n return clone(this, { loc });\n }\n\n /**\n * \"Set\" the locale. Returns a newly-constructed DateTime.\n * Just a convenient alias for reconfigure({ locale })\n * @example DateTime.local(2017, 5, 25).setLocale('en-GB')\n * @return {DateTime}\n */\n setLocale(locale) {\n return this.reconfigure({ locale });\n }\n\n /**\n * \"Set\" the values of specified units. Returns a newly-constructed DateTime.\n * You can only set units with this method; for \"setting\" metadata, see {@link reconfigure} and {@link setZone}.\n * @param {Object} values - a mapping of units to numbers\n * @example dt.set({ year: 2017 })\n * @example dt.set({ hour: 8, minute: 30 })\n * @example dt.set({ weekday: 5 })\n * @example dt.set({ year: 2005, ordinal: 234 })\n * @return {DateTime}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const normalized = normalizeObject(values, normalizeUnit, []),\n settingWeekStuff =\n !isUndefined(normalized.weekYear) ||\n !isUndefined(normalized.weekNumber) ||\n !isUndefined(normalized.weekday);\n\n let mixed;\n if (settingWeekStuff) {\n mixed = weekToGregorian(Object.assign(gregorianToWeek(this.c), normalized));\n } else if (!isUndefined(normalized.ordinal)) {\n mixed = ordinalToGregorian(Object.assign(gregorianToOrdinal(this.c), normalized));\n } else {\n mixed = Object.assign(this.toObject(), normalized);\n\n // if we didn't set the day but we ended up on an overflow date,\n // use the last day of the right month\n if (isUndefined(normalized.day)) {\n mixed.day = Math.min(daysInMonth(mixed.year, mixed.month), mixed.day);\n }\n }\n\n const [ts, o] = objToTS(mixed, this.o, this.zone);\n return clone(this, { ts, o });\n }\n\n /**\n * Add a period of time to this DateTime and return the resulting DateTime\n *\n * Adding hours, minutes, seconds, or milliseconds increases the timestamp by the right number of milliseconds. Adding days, months, or years shifts the calendar, accounting for DSTs and leap years along the way. Thus, `dt.plus({ hours: 24 })` may result in a different time than `dt.plus({ days: 1 })` if there's a DST shift in between.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @example DateTime.local().plus(123) //~> in 123 milliseconds\n * @example DateTime.local().plus({ minutes: 15 }) //~> in 15 minutes\n * @example DateTime.local().plus({ days: 1 }) //~> this time tomorrow\n * @example DateTime.local().plus({ days: -1 }) //~> this time yesterday\n * @example DateTime.local().plus({ hours: 3, minutes: 13 }) //~> in 3 hr, 13 min\n * @example DateTime.local().plus(Duration.fromObject({ hours: 3, minutes: 13 })) //~> in 3 hr, 13 min\n * @return {DateTime}\n */\n plus(duration) {\n if (!this.isValid) return this;\n const dur = friendlyDuration(duration);\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * Subtract a period of time to this DateTime and return the resulting DateTime\n * See {@link plus}\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n @return {DateTime}\n */\n minus(duration) {\n if (!this.isValid) return this;\n const dur = friendlyDuration(duration).negate();\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * \"Set\" this DateTime to the beginning of a unit of time.\n * @param {string} unit - The unit to go to the beginning of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @example DateTime.local(2014, 3, 3).startOf('month').toISODate(); //=> '2014-03-01'\n * @example DateTime.local(2014, 3, 3).startOf('year').toISODate(); //=> '2014-01-01'\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('day').toISOTime(); //=> '00:00.000-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('hour').toISOTime(); //=> '05:00:00.000-05:00'\n * @return {DateTime}\n */\n startOf(unit) {\n if (!this.isValid) return this;\n const o = {},\n normalizedUnit = Duration.normalizeUnit(unit);\n switch (normalizedUnit) {\n case \"years\":\n o.month = 1;\n // falls through\n case \"quarters\":\n case \"months\":\n o.day = 1;\n // falls through\n case \"weeks\":\n case \"days\":\n o.hour = 0;\n // falls through\n case \"hours\":\n o.minute = 0;\n // falls through\n case \"minutes\":\n o.second = 0;\n // falls through\n case \"seconds\":\n o.millisecond = 0;\n break;\n case \"milliseconds\":\n break;\n // no default, invalid units throw in normalizeUnit()\n }\n\n if (normalizedUnit === \"weeks\") {\n o.weekday = 1;\n }\n\n if (normalizedUnit === \"quarters\") {\n const q = Math.ceil(this.month / 3);\n o.month = (q - 1) * 3 + 1;\n }\n\n return this.set(o);\n }\n\n /**\n * \"Set\" this DateTime to the end (meaning the last millisecond) of a unit of time\n * @param {string} unit - The unit to go to the end of. Can be 'year', 'month', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @example DateTime.local(2014, 3, 3).endOf('month').toISO(); //=> '2014-03-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3).endOf('year').toISO(); //=> '2014-12-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('day').toISO(); //=> '2014-03-03T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('hour').toISO(); //=> '2014-03-03T05:59:59.999-05:00'\n * @return {DateTime}\n */\n endOf(unit) {\n return this.isValid\n ? this.plus({ [unit]: 1 })\n .startOf(unit)\n .minus(1)\n : this;\n }\n\n // OUTPUT\n\n /**\n * Returns a string representation of this DateTime formatted according to the specified format string.\n * **You may not want this.** See {@link toLocaleString} for a more flexible formatting tool. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/docs/manual/formatting.html#table-of-tokens).\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n * @see https://moment.github.io/luxon/docs/manual/formatting.html#table-of-tokens\n * @param {string} fmt - the format string\n * @param {Object} opts - opts to override the configuration options\n * @example DateTime.local().toFormat('yyyy LLL dd') //=> '2017 Apr 22'\n * @example DateTime.local().setLocale('fr').toFormat('yyyy LLL dd') //=> '2017 avr. 22'\n * @example DateTime.local().toFormat('yyyy LLL dd', { locale: \"fr\" }) //=> '2017 avr. 22'\n * @example DateTime.local().toFormat(\"HH 'hours and' mm 'minutes'\") //=> '20 hours and 55 minutes'\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.redefaultToEN(opts)).formatDateTimeFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a localized string representing this date. Accepts the same options as the Intl.DateTimeFormat constructor and any presets defined by Luxon, such as `DateTime.DATE_FULL` or `DateTime.TIME_SIMPLE`.\n * The exact behavior of this method is browser-specific, but in general it will return an appropriate representation\n * of the DateTime in the assigned locale.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param opts {Object} - Intl.DateTimeFormat constructor options and configuration options\n * @example DateTime.local().toLocaleString(); //=> 4/20/2017\n * @example DateTime.local().setLocale('en-gb').toLocaleString(); //=> '20/04/2017'\n * @example DateTime.local().toLocaleString({ locale: 'en-gb' }); //=> '20/04/2017'\n * @example DateTime.local().toLocaleString(DateTime.DATE_FULL); //=> 'April 20, 2017'\n * @example DateTime.local().toLocaleString(DateTime.TIME_SIMPLE); //=> '11:32 AM'\n * @example DateTime.local().toLocaleString(DateTime.DATETIME_SHORT); //=> '4/20/2017, 11:32 AM'\n * @example DateTime.local().toLocaleString({ weekday: 'long', month: 'long', day: '2-digit' }); //=> 'Thursday, April 20'\n * @example DateTime.local().toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> 'Thu, Apr 20, 11:27 AM'\n * @example DateTime.local().toLocaleString({ hour: '2-digit', minute: '2-digit', hour12: false }); //=> '11:32'\n * @return {string}\n */\n toLocaleString(opts = Formats.DATE_SHORT) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), opts).formatDateTime(this)\n : INVALID;\n }\n\n /**\n * Returns an array of format \"parts\", meaning individual tokens along with metadata. This is allows callers to post-process individual sections of the formatted output.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/formatToParts\n * @param opts {Object} - Intl.DateTimeFormat constructor options, same as `toLocaleString`.\n * @example DateTime.local().toLocaleParts(); //=> [\n * //=> { type: 'day', value: '25' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'month', value: '05' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'year', value: '1982' }\n * //=> ]\n */\n toLocaleParts(opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), opts).formatDateTimeParts(this)\n : [];\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1982, 5, 25).toISO() //=> '1982-05-25T00:00:00.000Z'\n * @example DateTime.local().toISO() //=> '2017-04-22T20:47:05.335-04:00'\n * @example DateTime.local().toISO({ includeOffset: false }) //=> '2017-04-22T20:47:05.335'\n * @example DateTime.local().toISO({ format: 'basic' }) //=> '20170422T204705.335-0400'\n * @return {string}\n */\n toISO(opts = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return `${this.toISODate(opts)}T${this.toISOTime(opts)}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's date component\n * @param {Object} opts - options\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1982, 5, 25).toISODate() //=> '1982-05-25'\n * @example DateTime.utc(1982, 5, 25).toISODate({ format: 'basic' }) //=> '19820525'\n * @return {string}\n */\n toISODate({ format = \"extended\" } = {}) {\n let fmt = format === \"basic\" ? \"yyyyMMdd\" : \"yyyy-MM-dd\";\n if (this.year > 9999) {\n fmt = \"+\" + fmt;\n }\n\n return toTechFormat(this, fmt);\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's week date\n * @example DateTime.utc(1982, 5, 25).toISOWeekDate() //=> '1982-W21-2'\n * @return {string}\n */\n toISOWeekDate() {\n return toTechFormat(this, \"kkkk-'W'WW-c\");\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's time component\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime() //=> '07:34:19.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34, seconds: 0, milliseconds: 0 }).toISOTime({ suppressSeconds: true }) //=> '07:34Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ format: 'basic' }) //=> '073419.361Z'\n * @return {string}\n */\n toISOTime({\n suppressMilliseconds = false,\n suppressSeconds = false,\n includeOffset = true,\n format = \"extended\"\n } = {}) {\n return toTechTimeFormat(this, {\n suppressSeconds,\n suppressMilliseconds,\n includeOffset,\n format\n });\n }\n\n /**\n * Returns an RFC 2822-compatible string representation of this DateTime, always in UTC\n * @example DateTime.utc(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 +0000'\n * @example DateTime.local(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 -0400'\n * @return {string}\n */\n toRFC2822() {\n return toTechFormat(this, \"EEE, dd LLL yyyy HH:mm:ss ZZZ\", false);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in HTTP headers.\n * Specifically, the string conforms to RFC 1123.\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @example DateTime.utc(2014, 7, 13).toHTTP() //=> 'Sun, 13 Jul 2014 00:00:00 GMT'\n * @example DateTime.utc(2014, 7, 13, 19).toHTTP() //=> 'Sun, 13 Jul 2014 19:00:00 GMT'\n * @return {string}\n */\n toHTTP() {\n return toTechFormat(this.toUTC(), \"EEE, dd LLL yyyy HH:mm:ss 'GMT'\");\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Date\n * @example DateTime.utc(2014, 7, 13).toSQLDate() //=> '2014-07-13'\n * @return {string}\n */\n toSQLDate() {\n return toTechFormat(this, \"yyyy-MM-dd\");\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Time\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @example DateTime.utc().toSQL() //=> '05:15:16.345'\n * @example DateTime.local().toSQL() //=> '05:15:16.345 -04:00'\n * @example DateTime.local().toSQL({ includeOffset: false }) //=> '05:15:16.345'\n * @example DateTime.local().toSQL({ includeZone: false }) //=> '05:15:16.345 America/New_York'\n * @return {string}\n */\n toSQLTime({ includeOffset = true, includeZone = false } = {}) {\n return toTechTimeFormat(this, {\n includeOffset,\n includeZone,\n spaceZone: true\n });\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @example DateTime.utc(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 Z'\n * @example DateTime.local(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 -04:00'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeOffset: false }) //=> '2014-07-13 00:00:00.000'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeZone: true }) //=> '2014-07-13 00:00:00.000 America/New_York'\n * @return {string}\n */\n toSQL(opts = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return `${this.toSQLDate()} ${this.toSQLTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for debugging\n * @return {string}\n */\n toString() {\n return this.isValid ? this.toISO() : INVALID;\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime. Alias of {@link toMillis}\n * @return {number}\n */\n valueOf() {\n return this.toMillis();\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime.\n * @return {number}\n */\n toMillis() {\n return this.isValid ? this.ts : NaN;\n }\n\n /**\n * Returns the epoch seconds of this DateTime.\n * @return {number}\n */\n toSeconds() {\n return this.isValid ? this.ts / 1000 : NaN;\n }\n\n /**\n * Returns an ISO 8601 representation of this DateTime appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns a BSON serializable equivalent to this DateTime.\n * @return {Date}\n */\n toBSON() {\n return this.toJSDate();\n }\n\n /**\n * Returns a Javascript object with this DateTime's year, month, day, and so on.\n * @param opts - options for generating the object\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n * @example DateTime.local().toObject() //=> { year: 2017, month: 4, day: 22, hour: 20, minute: 49, second: 42, millisecond: 268 }\n * @return {Object}\n */\n toObject(opts = {}) {\n if (!this.isValid) return {};\n\n const base = Object.assign({}, this.c);\n\n if (opts.includeConfig) {\n base.outputCalendar = this.outputCalendar;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n return base;\n }\n\n /**\n * Returns a Javascript Date equivalent to this DateTime.\n * @return {Date}\n */\n toJSDate() {\n return new Date(this.isValid ? this.ts : NaN);\n }\n\n // COMPARE\n\n /**\n * Return the difference between two DateTimes as a Duration.\n * @param {DateTime} otherDateTime - the DateTime to compare this one to\n * @param {string|string[]} [unit=['milliseconds']] - the unit or array of units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example\n * var i1 = DateTime.fromISO('1982-05-25T09:45'),\n * i2 = DateTime.fromISO('1983-10-14T10:30');\n * i2.diff(i1).toObject() //=> { milliseconds: 43807500000 }\n * i2.diff(i1, 'hours').toObject() //=> { hours: 12168.75 }\n * i2.diff(i1, ['months', 'days']).toObject() //=> { months: 16, days: 19.03125 }\n * i2.diff(i1, ['months', 'days', 'hours']).toObject() //=> { months: 16, days: 19, hours: 0.75 }\n * @return {Duration}\n */\n diff(otherDateTime, unit = \"milliseconds\", opts = {}) {\n if (!this.isValid || !otherDateTime.isValid) {\n return Duration.invalid(\n this.invalid || otherDateTime.invalid,\n \"created by diffing an invalid DateTime\"\n );\n }\n\n const durOpts = Object.assign(\n { locale: this.locale, numberingSystem: this.numberingSystem },\n opts\n );\n\n const units = maybeArray(unit).map(Duration.normalizeUnit),\n otherIsLater = otherDateTime.valueOf() > this.valueOf(),\n earlier = otherIsLater ? this : otherDateTime,\n later = otherIsLater ? otherDateTime : this,\n diffed = diff(earlier, later, units, durOpts);\n\n return otherIsLater ? diffed.negate() : diffed;\n }\n\n /**\n * Return the difference between this DateTime and right now.\n * See {@link diff}\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units units (such as 'hours' or 'days') to include in the duration\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n diffNow(unit = \"milliseconds\", opts = {}) {\n return this.diff(DateTime.local(), unit, opts);\n }\n\n /**\n * Return an Interval spanning between this DateTime and another DateTime\n * @param {DateTime} otherDateTime - the other end point of the Interval\n * @return {Interval}\n */\n until(otherDateTime) {\n return this.isValid ? Interval.fromDateTimes(this, otherDateTime) : this;\n }\n\n /**\n * Return whether this DateTime is in the same unit of time as another DateTime\n * @param {DateTime} otherDateTime - the other DateTime\n * @param {string} unit - the unit of time to check sameness on\n * @example DateTime.local().hasSame(otherDT, 'day'); //~> true if both the same calendar day\n * @return {boolean}\n */\n hasSame(otherDateTime, unit) {\n if (!this.isValid) return false;\n if (unit === \"millisecond\") {\n return this.valueOf() === otherDateTime.valueOf();\n } else {\n const inputMs = otherDateTime.valueOf();\n return this.startOf(unit) <= inputMs && inputMs <= this.endOf(unit);\n }\n }\n\n /**\n * Equality check\n * Two DateTimes are equal iff they represent the same millisecond, have the same zone and location, and are both valid.\n * To compare just the millisecond values, use `+dt1 === +dt2`.\n * @param {DateTime} other - the other DateTime\n * @return {boolean}\n */\n equals(other) {\n return (\n this.isValid &&\n other.isValid &&\n this.valueOf() === other.valueOf() &&\n this.zone.equals(other.zone) &&\n this.loc.equals(other.loc)\n );\n }\n\n /**\n * Returns a string representation of a this time relative to now, such as \"in two days\". Can only internationalize if your\n * platform supports Intl.RelativeTimeFormat. Rounds down by default.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.local()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} [options.style=\"long\"] - the style of units, must be \"long\", \"short\", or \"narrow\"\n * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"years\", \"quarters\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", or \"seconds\"\n * @param {boolean} [options.round=true] - whether to round the numbers in the output.\n * @param {boolean} [options.padding=0] - padding in milliseconds. This allows you to round up the result if it fits inside the threshold. Don't use in combination with {round: false} because the decimal output will include the padding.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.local().plus({ days: 1 }).toRelative() //=> \"in 1 day\"\n * @example DateTime.local().setLocale(\"es\").toRelative({ days: 1 }) //=> \"dentro de 1 día\"\n * @example DateTime.local().plus({ days: 1 }).toRelative({ locale: \"fr\" }) //=> \"dans 23 heures\"\n * @example DateTime.local().minus({ days: 2 }).toRelative() //=> \"2 days ago\"\n * @example DateTime.local().minus({ days: 2 }).toRelative({ unit: \"hours\" }) //=> \"48 hours ago\"\n * @example DateTime.local().minus({ hours: 36 }).toRelative({ round: false }) //=> \"1.5 days ago\"\n */\n toRelative(options = {}) {\n if (!this.isValid) return null;\n const base = options.base || DateTime.fromObject({ zone: this.zone }),\n padding = options.padding ? (this < base ? -options.padding : options.padding) : 0;\n return diffRelative(\n base,\n this.plus(padding),\n Object.assign(options, {\n numeric: \"always\",\n units: [\"years\", \"months\", \"days\", \"hours\", \"minutes\", \"seconds\"]\n })\n );\n }\n\n /**\n * Returns a string representation of this date relative to today, such as \"yesterday\" or \"next month\".\n * Only internationalizes on platforms that supports Intl.RelativeTimeFormat.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.local()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"years\", \"quarters\", \"months\", \"weeks\", or \"days\"\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.local().plus({ days: 1 }).toRelativeCalendar() //=> \"tomorrow\"\n * @example DateTime.local().setLocale(\"es\").plus({ days: 1 }).toRelative() //=> \"\"mañana\"\n * @example DateTime.local().plus({ days: 1 }).toRelativeCalendar({ locale: \"fr\" }) //=> \"demain\"\n * @example DateTime.local().minus({ days: 2 }).toRelativeCalendar() //=> \"2 days ago\"\n */\n toRelativeCalendar(options = {}) {\n if (!this.isValid) return null;\n\n return diffRelative(\n options.base || DateTime.fromObject({ zone: this.zone }),\n this,\n Object.assign(options, {\n numeric: \"auto\",\n units: [\"years\", \"months\", \"days\"],\n calendary: true\n })\n );\n }\n\n /**\n * Return the min of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the minimum\n * @return {DateTime} the min DateTime, or undefined if called with no argument\n */\n static min(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"min requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, i => i.valueOf(), Math.min);\n }\n\n /**\n * Return the max of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the maximum\n * @return {DateTime} the max DateTime, or undefined if called with no argument\n */\n static max(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"max requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, i => i.valueOf(), Math.max);\n }\n\n // MISC\n\n /**\n * Explain how a string would be parsed by fromFormat()\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see description)\n * @param {Object} options - options taken by fromFormat()\n * @return {Object}\n */\n static fromFormatExplain(text, fmt, options = {}) {\n const { locale = null, numberingSystem = null } = options,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true\n });\n return explainFromTokens(localeToUse, text, fmt);\n }\n\n /**\n * @deprecated use fromFormatExplain instead\n */\n static fromStringExplain(text, fmt, options = {}) {\n return DateTime.fromFormatExplain(text, fmt, options);\n }\n\n // FORMAT PRESETS\n\n /**\n * {@link toLocaleString} format like 10/14/1983\n * @type {Object}\n */\n static get DATE_SHORT() {\n return Formats.DATE_SHORT;\n }\n\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED() {\n return Formats.DATE_MED;\n }\n\n /**\n * {@link toLocaleString} format like 'October 14, 1983'\n * @type {Object}\n */\n static get DATE_FULL() {\n return Formats.DATE_FULL;\n }\n\n /**\n * {@link toLocaleString} format like 'Tuesday, October 14, 1983'\n * @type {Object}\n */\n static get DATE_HUGE() {\n return Formats.DATE_HUGE;\n }\n\n /**\n * {@link toLocaleString} format like '09:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_SIMPLE() {\n return Formats.TIME_SIMPLE;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SECONDS() {\n return Formats.TIME_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SHORT_OFFSET() {\n return Formats.TIME_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_LONG_OFFSET() {\n return Formats.TIME_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '09:30', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_SIMPLE() {\n return Formats.TIME_24_SIMPLE;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SECONDS() {\n return Formats.TIME_24_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 EDT', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SHORT_OFFSET() {\n return Formats.TIME_24_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '09:30:23 Eastern Daylight Time', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_LONG_OFFSET() {\n return Formats.TIME_24_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link toLocaleString} format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT() {\n return Formats.DATETIME_SHORT;\n }\n\n /**\n * {@link toLocaleString} format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT_WITH_SECONDS() {\n return Formats.DATETIME_SHORT_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED() {\n return Formats.DATETIME_MED;\n }\n\n /**\n * {@link toLocaleString} format like 'Oct 14, 1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_SECONDS() {\n return Formats.DATETIME_MED_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like 'Fri, 14 Oct 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_WEEKDAY() {\n return Formats.DATETIME_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link toLocaleString} format like 'October 14, 1983, 9:30 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL() {\n return Formats.DATETIME_FULL;\n }\n\n /**\n * {@link toLocaleString} format like 'October 14, 1983, 9:30:33 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL_WITH_SECONDS() {\n return Formats.DATETIME_FULL_WITH_SECONDS;\n }\n\n /**\n * {@link toLocaleString} format like 'Friday, October 14, 1983, 9:30 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE() {\n return Formats.DATETIME_HUGE;\n }\n\n /**\n * {@link toLocaleString} format like 'Friday, October 14, 1983, 9:30:33 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE_WITH_SECONDS() {\n return Formats.DATETIME_HUGE_WITH_SECONDS;\n }\n}\n\n/**\n * @private\n */\nexport function friendlyDateTime(dateTimeish) {\n if (DateTime.isDateTime(dateTimeish)) {\n return dateTimeish;\n } else if (dateTimeish && dateTimeish.valueOf && isNumber(dateTimeish.valueOf())) {\n return DateTime.fromJSDate(dateTimeish);\n } else if (dateTimeish && typeof dateTimeish === \"object\") {\n return DateTime.fromObject(dateTimeish);\n } else {\n throw new InvalidArgumentError(\n `Unknown datetime argument: ${dateTimeish}, of type ${typeof dateTimeish}`\n );\n }\n}\n"],"names":["LuxonError","Error","InvalidDateTimeError","reason","toMessage","InvalidIntervalError","InvalidDurationError","ConflictingSpecificationError","InvalidUnitError","unit","InvalidArgumentError","ZoneIsAbstractError","n","s","l","DATE_SHORT","year","month","day","DATE_MED","DATE_FULL","DATE_HUGE","weekday","TIME_SIMPLE","hour","minute","TIME_WITH_SECONDS","second","TIME_WITH_SHORT_OFFSET","timeZoneName","TIME_WITH_LONG_OFFSET","TIME_24_SIMPLE","hour12","TIME_24_WITH_SECONDS","TIME_24_WITH_SHORT_OFFSET","TIME_24_WITH_LONG_OFFSET","DATETIME_SHORT","DATETIME_SHORT_WITH_SECONDS","DATETIME_MED","DATETIME_MED_WITH_SECONDS","DATETIME_MED_WITH_WEEKDAY","DATETIME_FULL","DATETIME_FULL_WITH_SECONDS","DATETIME_HUGE","DATETIME_HUGE_WITH_SECONDS","isUndefined","o","isNumber","isInteger","isString","isDate","Object","prototype","toString","call","hasIntl","Intl","DateTimeFormat","e","hasFormatToParts","formatToParts","hasRelative","RelativeTimeFormat","maybeArray","thing","Array","isArray","bestBy","arr","by","compare","length","undefined","reduce","best","next","pair","pick","obj","keys","a","k","hasOwnProperty","prop","integerBetween","bottom","top","floorMod","x","Math","floor","padStart","input","repeat","slice","parseInteger","string","parseInt","parseMillis","fraction","f","parseFloat","roundTo","number","digits","towardZero","factor","rounder","trunc","round","isLeapYear","daysInYear","daysInMonth","modMonth","modYear","objToLocalTS","d","Date","UTC","millisecond","setUTCFullYear","getUTCFullYear","weeksInWeekYear","weekYear","p1","last","p2","untruncateYear","parseZoneInfo","ts","offsetFormat","locale","timeZone","date","intlOpts","modified","assign","intl","parsed","find","m","type","toLowerCase","value","without","format","included","diffed","substring","trimmed","replace","signedOffset","offHourStr","offMinuteStr","offHour","Number","isNaN","offMin","offMinSigned","is","asNumber","numericValue","normalizeObject","normalizer","nonUnitKeys","normalized","u","indexOf","v","formatOffset","offset","hours","minutes","abs","sign","base","RangeError","timeObject","ianaRegex","stringify","JSON","sort","monthsLong","monthsShort","monthsNarrow","months","weekdaysLong","weekdaysShort","weekdaysNarrow","weekdays","meridiems","erasLong","erasShort","erasNarrow","eras","meridiemForDateTime","dt","weekdayForDateTime","monthForDateTime","eraForDateTime","formatRelativeTime","count","numeric","narrow","units","years","quarters","weeks","days","seconds","lastable","isDay","isInPast","fmtValue","singular","lilUnits","fmtUnit","formatString","knownFormat","filtered","key","dateTimeHuge","Formats","stringifyTokens","splits","tokenToString","token","literal","val","macroTokenToFormatOpts","D","DD","DDD","DDDD","t","tt","ttt","tttt","T","TT","TTT","TTTT","ff","fff","ffff","F","FF","FFF","FFFF","Formatter","create","opts","parseFormat","fmt","current","currentFull","bracketed","i","c","charAt","push","formatOpts","loc","systemLoc","formatWithSystemDefault","redefaultToSystem","df","dtFormatter","formatDateTime","formatDateTimeParts","resolvedOptions","num","p","forceSimple","padTo","numberFormatter","formatDateTimeFromString","knownEnglish","listingMode","useDateTimeFormatter","outputCalendar","extract","isOffsetFixed","allowZ","isValid","zone","meridiem","English","standalone","maybeMacro","era","offsetName","zoneName","weekNumber","ordinal","quarter","formatDurationFromString","dur","tokenToField","lildur","mapped","get","tokens","realTokens","found","concat","collapsed","shiftTo","map","filter","Invalid","explanation","Zone","equals","otherZone","singleton","LocalZone","getTimezoneOffset","matchingRegex","RegExp","source","dtfCache","makeDTF","typeToPos","hackyOffset","dtf","formatted","exec","fMonth","fDay","fYear","fHour","fMinute","fSecond","partsOffset","filled","pos","ianaZoneCache","IANAZone","name","resetCache","isValidSpecifier","match","isValidZone","parseGMTOffset","specifier","valid","adjustedHour","asUTC","asTS","over","FixedOffsetZone","instance","utcInstance","parseSpecifier","r","fixed","InvalidZone","NaN","normalizeZone","defaultZone","lowered","now","defaultLocale","defaultNumberingSystem","defaultOutputCalendar","throwOnInvalid","Settings","resetCaches","Locale","z","numberingSystem","intlDTCache","getCachedDTF","locString","intlNumCache","getCachedINF","inf","NumberFormat","intlRelCache","getCachedRTF","cacheKeyOpts","sysLocaleCache","systemLocale","computedSys","parseLocaleString","localeStr","uIndex","options","smaller","calendar","intlConfigString","mapMonths","ms","DateTime","utc","mapWeekdays","listStuff","defaultOK","englishFn","intlFn","mode","supportsFastNumbers","startsWith","PolyNumberFormatter","useGrouping","minimumIntegerDigits","PolyDateFormatter","universal","fromMillis","toJSDate","tokenFormat","PolyRelFormatter","isEnglish","style","rtf","fromOpts","defaultToEN","specifiedLocale","localeR","numberingSystemR","outputCalendarR","fromObject","numbering","parsedLocale","parsedNumberingSystem","parsedOutputCalendar","weekdaysCache","monthsCache","meridiemCache","eraCache","fastNumbersCached","hasFTP","isActuallyEn","hasNoWeirdness","clone","alts","getOwnPropertyNames","redefaultToEN","formatStr","field","results","matching","fastNumbers","relFormatter","other","combineRegexes","regexes","full","combineExtractors","extractors","ex","mergedVals","mergedZone","cursor","parse","patterns","regex","extractor","simpleParse","ret","offsetRegex","isoTimeBaseRegex","isoTimeRegex","isoTimeExtensionRegex","isoYmdRegex","isoWeekRegex","isoOrdinalRegex","extractISOWeekData","extractISOOrdinalData","sqlYmdRegex","sqlTimeRegex","sqlTimeExtensionRegex","int","fallback","extractISOYmd","item","extractISOTime","extractISOOffset","local","fullOffset","extractIANAZone","isoDuration","extractISODuration","yearStr","monthStr","weekStr","dayStr","hourStr","minuteStr","secondStr","millisecondsStr","hasNegativePrefix","maybeNegate","milliseconds","obsOffsets","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","fromStrings","weekdayStr","result","rfc2822","extractRFC2822","obsOffset","milOffset","preprocessRFC2822","trim","rfc1123","rfc850","ascii","extractRFC1123Or850","extractASCII","isoYmdWithTimeExtensionRegex","isoWeekWithTimeExtensionRegex","isoOrdinalWithTimeExtensionRegex","isoTimeCombinedRegex","extractISOYmdTimeAndOffset","extractISOWeekTimeAndOffset","extractISOOrdinalDataAndTime","extractISOTimeAndOffset","parseISODate","parseRFC2822Date","parseHTTPDate","parseISODuration","sqlYmdWithTimeExtensionRegex","sqlTimeCombinedRegex","extractISOYmdTimeOffsetAndIANAZone","extractISOTimeOffsetAndIANAZone","parseSQL","INVALID","lowOrderMatrix","casualMatrix","daysInYearAccurate","daysInMonthAccurate","accurateMatrix","orderedUnits","reverseUnits","reverse","clear","conf","values","conversionAccuracy","Duration","antiTrunc","ceil","convert","matrix","fromMap","fromUnit","toMap","toUnit","conv","raw","sameSign","added","normalizeValues","vals","previous","config","accurate","invalid","isLuxonDuration","normalizeUnit","fromISO","text","week","isDuration","toFormat","fmtOpts","toObject","includeConfig","toISO","toJSON","valueOf","as","plus","duration","friendlyDuration","minus","negate","mapUnits","fn","set","mixed","reconfigure","normalize","built","accumulated","lastUnit","own","ak","down","negated","durationish","validateStartEnd","start","end","Interval","isLuxonInterval","fromDateTimes","builtStart","friendlyDateTime","builtEnd","validateError","after","before","split","isInterval","toDuration","startOf","diff","hasSame","isEmpty","isAfter","dateTime","isBefore","contains","splitAt","dateTimes","sorted","splitBy","divideEqually","numberOfParts","overlaps","abutsStart","abutsEnd","engulfs","intersection","union","merge","intervals","b","sofar","final","xor","currentCount","ends","time","flattened","difference","toISODate","toISOTime","dateFormat","separator","invalidReason","mapEndpoints","mapFn","Info","hasDST","proto","setZone","isValidIANAZone","monthsFormat","weekdaysFormat","features","intlTokens","zones","relative","dayDiff","earlier","later","utcDayStart","toUTC","keepLocalTime","highOrderDiffs","differs","lowestOrder","highWater","differ","delta","remainingMillis","lowerOrderUnits","numberingSystems","arab","arabext","bali","beng","deva","fullwide","gujr","hanidec","khmr","knda","laoo","limb","mlym","mong","mymr","orya","tamldec","telu","thai","tibt","latn","numberingSystemsUTF16","hanidecChars","parseDigits","str","code","charCodeAt","search","min","max","digitRegex","append","MISSING_FTP","intUnit","post","deser","fixListRegex","stripInsensitivities","oneOf","strings","startIndex","join","findIndex","groups","h","simple","escapeToken","unitForToken","one","two","three","four","six","oneOrTwo","oneToThree","oneToSix","oneToNine","twoToFour","fourToSix","unitate","partTypeStyleToTokenVal","short","long","dayperiod","dayPeriod","tokenForPart","part","buildRegex","re","handlers","matches","all","matchIndex","dateTimeFromMatches","toField","Z","q","M","G","y","S","dummyDateTimeCache","getDummyDateTime","maybeExpandMacroToken","formatter","parts","includes","expandMacroTokens","explainFromTokens","disqualifyingUnit","regexString","rawMatches","parseFromTokens","nonLeapLadder","leapLadder","unitOutOfRange","dayOfWeek","js","getUTCDay","computeOrdinal","uncomputeOrdinal","table","month0","gregorianToWeek","gregObj","weekToGregorian","weekData","weekdayOfJan4","yearInDays","gregorianToOrdinal","gregData","ordinalToGregorian","ordinalData","hasInvalidWeekData","validYear","validWeek","validWeekday","hasInvalidOrdinalData","validOrdinal","hasInvalidGregorianData","validMonth","validDay","hasInvalidTimeData","validHour","validMinute","validSecond","validMillisecond","MAX_DATE","unsupportedZone","possiblyCachedWeekData","inst","old","fixOffset","localTS","tz","utcGuess","o2","o3","tsToObj","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","objToTS","adjustTime","oPre","millisToAdd","parseDataToDateTime","parsedZone","interpretationZone","toTechFormat","toTechTimeFormat","suppressSeconds","suppressMilliseconds","includeOffset","includeZone","spaceZone","defaultUnitValues","defaultWeekUnitValues","defaultOrdinalUnitValues","orderedWeekUnits","orderedOrdinalUnits","weeknumber","weeksnumber","weeknumbers","weekyear","weekyears","quickDT","tsNow","offsetProvis","diffRelative","calendary","unchanged","ot","_zone","isLuxonDateTime","fromJSDate","zoneToUse","fromSeconds","containsOrdinal","containsGregorYear","containsGregorMD","containsGregor","definiteWeekDef","useWeekData","defaultValues","objNow","foundFirst","higherOrderInvalid","gregorian","tsFinal","offsetFinal","fromRFC2822","fromHTTP","fromFormat","localeToUse","fromString","fromSQL","isDateTime","resolvedLocaleOpts","toLocal","keepCalendarTime","newTS","offsetGuess","asObj","setLocale","settingWeekStuff","normalizedUnit","endOf","toLocaleString","toLocaleParts","toISOWeekDate","toRFC2822","toHTTP","toSQLDate","toSQLTime","toSQL","toMillis","toSeconds","toBSON","otherDateTime","durOpts","otherIsLater","diffNow","until","inputMs","toRelative","padding","toRelativeCalendar","every","fromFormatExplain","fromStringExplain","dateTimeish"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"luxon.js","sources":["../../src/errors.js","../../src/impl/formats.js","../../src/impl/util.js","../../src/impl/english.js","../../src/impl/formatter.js","../../src/impl/invalid.js","../../src/zone.js","../../src/zones/systemZone.js","../../src/zones/IANAZone.js","../../src/zones/fixedOffsetZone.js","../../src/zones/invalidZone.js","../../src/impl/zoneUtil.js","../../src/settings.js","../../src/impl/locale.js","../../src/impl/regexParser.js","../../src/duration.js","../../src/interval.js","../../src/info.js","../../src/impl/diff.js","../../src/impl/digits.js","../../src/impl/tokenParser.js","../../src/impl/conversions.js","../../src/datetime.js","../../src/luxon.js"],"sourcesContent":["// these aren't really private, but nor are they really useful to document\n\n/**\n * @private\n */\nclass LuxonError extends Error {}\n\n/**\n * @private\n */\nexport class InvalidDateTimeError extends LuxonError {\n constructor(reason) {\n super(`Invalid DateTime: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidIntervalError extends LuxonError {\n constructor(reason) {\n super(`Invalid Interval: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidDurationError extends LuxonError {\n constructor(reason) {\n super(`Invalid Duration: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nexport class ConflictingSpecificationError extends LuxonError {}\n\n/**\n * @private\n */\nexport class InvalidUnitError extends LuxonError {\n constructor(unit) {\n super(`Invalid unit ${unit}`);\n }\n}\n\n/**\n * @private\n */\nexport class InvalidArgumentError extends LuxonError {}\n\n/**\n * @private\n */\nexport class ZoneIsAbstractError extends LuxonError {\n constructor() {\n super(\"Zone is an abstract class\");\n }\n}\n","/**\n * @private\n */\n\nconst n = \"numeric\",\n s = \"short\",\n l = \"long\";\n\nexport const DATE_SHORT = {\n year: n,\n month: n,\n day: n,\n};\n\nexport const DATE_MED = {\n year: n,\n month: s,\n day: n,\n};\n\nexport const DATE_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s,\n};\n\nexport const DATE_FULL = {\n year: n,\n month: l,\n day: n,\n};\n\nexport const DATE_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n};\n\nexport const TIME_SIMPLE = {\n hour: n,\n minute: n,\n};\n\nexport const TIME_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n,\n};\n\nexport const TIME_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s,\n};\n\nexport const TIME_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l,\n};\n\nexport const TIME_24_SIMPLE = {\n hour: n,\n minute: n,\n hourCycle: \"h23\",\n};\n\nexport const TIME_24_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n,\n hourCycle: \"h23\",\n};\n\nexport const TIME_24_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hourCycle: \"h23\",\n timeZoneName: s,\n};\n\nexport const TIME_24_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hourCycle: \"h23\",\n timeZoneName: l,\n};\n\nexport const DATETIME_SHORT = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n,\n};\n\nexport const DATETIME_SHORT_WITH_SECONDS = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n,\n second: n,\n};\n\nexport const DATETIME_MED = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n,\n};\n\nexport const DATETIME_MED_WITH_SECONDS = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n,\n second: n,\n};\n\nexport const DATETIME_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s,\n hour: n,\n minute: n,\n};\n\nexport const DATETIME_FULL = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n timeZoneName: s,\n};\n\nexport const DATETIME_FULL_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s,\n};\n\nexport const DATETIME_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n timeZoneName: l,\n};\n\nexport const DATETIME_HUGE_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l,\n};\n","/*\n This is just a junk drawer, containing anything used across multiple classes.\n Because Luxon is small(ish), this should stay small and we won't worry about splitting\n it up into, say, parsingUtil.js and basicUtil.js and so on. But they are divided up by feature area.\n*/\n\nimport { InvalidArgumentError } from \"../errors.js\";\n\n/**\n * @private\n */\n\n// TYPES\n\nexport function isUndefined(o) {\n return typeof o === \"undefined\";\n}\n\nexport function isNumber(o) {\n return typeof o === \"number\";\n}\n\nexport function isInteger(o) {\n return typeof o === \"number\" && o % 1 === 0;\n}\n\nexport function isString(o) {\n return typeof o === \"string\";\n}\n\nexport function isDate(o) {\n return Object.prototype.toString.call(o) === \"[object Date]\";\n}\n\n// CAPABILITIES\n\nexport function hasRelative() {\n try {\n return typeof Intl !== \"undefined\" && !!Intl.RelativeTimeFormat;\n } catch (e) {\n return false;\n }\n}\n\n// OBJECTS AND ARRAYS\n\nexport function maybeArray(thing) {\n return Array.isArray(thing) ? thing : [thing];\n}\n\nexport function bestBy(arr, by, compare) {\n if (arr.length === 0) {\n return undefined;\n }\n return arr.reduce((best, next) => {\n const pair = [by(next), next];\n if (!best) {\n return pair;\n } else if (compare(best[0], pair[0]) === best[0]) {\n return best;\n } else {\n return pair;\n }\n }, null)[1];\n}\n\nexport function pick(obj, keys) {\n return keys.reduce((a, k) => {\n a[k] = obj[k];\n return a;\n }, {});\n}\n\nexport function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\n// NUMBERS AND STRINGS\n\nexport function integerBetween(thing, bottom, top) {\n return isInteger(thing) && thing >= bottom && thing <= top;\n}\n\n// x % n but takes the sign of n instead of x\nexport function floorMod(x, n) {\n return x - n * Math.floor(x / n);\n}\n\nexport function padStart(input, n = 2) {\n const isNeg = input < 0;\n let padded;\n if (isNeg) {\n padded = \"-\" + (\"\" + -input).padStart(n, \"0\");\n } else {\n padded = (\"\" + input).padStart(n, \"0\");\n }\n return padded;\n}\n\nexport function parseInteger(string) {\n if (isUndefined(string) || string === null || string === \"\") {\n return undefined;\n } else {\n return parseInt(string, 10);\n }\n}\n\nexport function parseFloating(string) {\n if (isUndefined(string) || string === null || string === \"\") {\n return undefined;\n } else {\n return parseFloat(string);\n }\n}\n\nexport function parseMillis(fraction) {\n // Return undefined (instead of 0) in these cases, where fraction is not set\n if (isUndefined(fraction) || fraction === null || fraction === \"\") {\n return undefined;\n } else {\n const f = parseFloat(\"0.\" + fraction) * 1000;\n return Math.floor(f);\n }\n}\n\nexport function roundTo(number, digits, towardZero = false) {\n const factor = 10 ** digits,\n rounder = towardZero ? Math.trunc : Math.round;\n return rounder(number * factor) / factor;\n}\n\n// DATE BASICS\n\nexport function isLeapYear(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\nexport function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\n\nexport function daysInMonth(year, month) {\n const modMonth = floorMod(month - 1, 12) + 1,\n modYear = year + (month - modMonth) / 12;\n\n if (modMonth === 2) {\n return isLeapYear(modYear) ? 29 : 28;\n } else {\n return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][modMonth - 1];\n }\n}\n\n// covert a calendar object to a local timestamp (epoch, but with the offset baked in)\nexport function objToLocalTS(obj) {\n let d = Date.UTC(\n obj.year,\n obj.month - 1,\n obj.day,\n obj.hour,\n obj.minute,\n obj.second,\n obj.millisecond\n );\n\n // for legacy reasons, years between 0 and 99 are interpreted as 19XX; revert that\n if (obj.year < 100 && obj.year >= 0) {\n d = new Date(d);\n d.setUTCFullYear(d.getUTCFullYear() - 1900);\n }\n return +d;\n}\n\nexport function weeksInWeekYear(weekYear) {\n const p1 =\n (weekYear +\n Math.floor(weekYear / 4) -\n Math.floor(weekYear / 100) +\n Math.floor(weekYear / 400)) %\n 7,\n last = weekYear - 1,\n p2 = (last + Math.floor(last / 4) - Math.floor(last / 100) + Math.floor(last / 400)) % 7;\n return p1 === 4 || p2 === 3 ? 53 : 52;\n}\n\nexport function untruncateYear(year) {\n if (year > 99) {\n return year;\n } else return year > 60 ? 1900 + year : 2000 + year;\n}\n\n// PARSING\n\nexport function parseZoneInfo(ts, offsetFormat, locale, timeZone = null) {\n const date = new Date(ts),\n intlOpts = {\n hourCycle: \"h23\",\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n };\n\n if (timeZone) {\n intlOpts.timeZone = timeZone;\n }\n\n const modified = { timeZoneName: offsetFormat, ...intlOpts };\n\n const parsed = new Intl.DateTimeFormat(locale, modified)\n .formatToParts(date)\n .find((m) => m.type.toLowerCase() === \"timezonename\");\n return parsed ? parsed.value : null;\n}\n\n// signedOffset('-5', '30') -> -330\nexport function signedOffset(offHourStr, offMinuteStr) {\n let offHour = parseInt(offHourStr, 10);\n\n // don't || this because we want to preserve -0\n if (Number.isNaN(offHour)) {\n offHour = 0;\n }\n\n const offMin = parseInt(offMinuteStr, 10) || 0,\n offMinSigned = offHour < 0 || Object.is(offHour, -0) ? -offMin : offMin;\n return offHour * 60 + offMinSigned;\n}\n\n// COERCION\n\nexport function asNumber(value) {\n const numericValue = Number(value);\n if (typeof value === \"boolean\" || value === \"\" || Number.isNaN(numericValue))\n throw new InvalidArgumentError(`Invalid unit value ${value}`);\n return numericValue;\n}\n\nexport function normalizeObject(obj, normalizer) {\n const normalized = {};\n for (const u in obj) {\n if (hasOwnProperty(obj, u)) {\n const v = obj[u];\n if (v === undefined || v === null) continue;\n normalized[normalizer(u)] = asNumber(v);\n }\n }\n return normalized;\n}\n\nexport function formatOffset(offset, format) {\n const hours = Math.trunc(Math.abs(offset / 60)),\n minutes = Math.trunc(Math.abs(offset % 60)),\n sign = offset >= 0 ? \"+\" : \"-\";\n\n switch (format) {\n case \"short\":\n return `${sign}${padStart(hours, 2)}:${padStart(minutes, 2)}`;\n case \"narrow\":\n return `${sign}${hours}${minutes > 0 ? `:${minutes}` : \"\"}`;\n case \"techie\":\n return `${sign}${padStart(hours, 2)}${padStart(minutes, 2)}`;\n default:\n throw new RangeError(`Value format ${format} is out of range for property format`);\n }\n}\n\nexport function timeObject(obj) {\n return pick(obj, [\"hour\", \"minute\", \"second\", \"millisecond\"]);\n}\n\nexport const ianaRegex =\n /[A-Za-z_+-]{1,256}(?::?\\/[A-Za-z0-9_+-]{1,256}(?:\\/[A-Za-z0-9_+-]{1,256})?)?/;\n","import * as Formats from \"./formats.js\";\nimport { pick } from \"./util.js\";\n\nfunction stringify(obj) {\n return JSON.stringify(obj, Object.keys(obj).sort());\n}\n\n/**\n * @private\n */\n\nexport const monthsLong = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n];\n\nexport const monthsShort = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n];\n\nexport const monthsNarrow = [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"];\n\nexport function months(length) {\n switch (length) {\n case \"narrow\":\n return [...monthsNarrow];\n case \"short\":\n return [...monthsShort];\n case \"long\":\n return [...monthsLong];\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\"];\n case \"2-digit\":\n return [\"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"10\", \"11\", \"12\"];\n default:\n return null;\n }\n}\n\nexport const weekdaysLong = [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n \"Sunday\",\n];\n\nexport const weekdaysShort = [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"];\n\nexport const weekdaysNarrow = [\"M\", \"T\", \"W\", \"T\", \"F\", \"S\", \"S\"];\n\nexport function weekdays(length) {\n switch (length) {\n case \"narrow\":\n return [...weekdaysNarrow];\n case \"short\":\n return [...weekdaysShort];\n case \"long\":\n return [...weekdaysLong];\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\"];\n default:\n return null;\n }\n}\n\nexport const meridiems = [\"AM\", \"PM\"];\n\nexport const erasLong = [\"Before Christ\", \"Anno Domini\"];\n\nexport const erasShort = [\"BC\", \"AD\"];\n\nexport const erasNarrow = [\"B\", \"A\"];\n\nexport function eras(length) {\n switch (length) {\n case \"narrow\":\n return [...erasNarrow];\n case \"short\":\n return [...erasShort];\n case \"long\":\n return [...erasLong];\n default:\n return null;\n }\n}\n\nexport function meridiemForDateTime(dt) {\n return meridiems[dt.hour < 12 ? 0 : 1];\n}\n\nexport function weekdayForDateTime(dt, length) {\n return weekdays(length)[dt.weekday - 1];\n}\n\nexport function monthForDateTime(dt, length) {\n return months(length)[dt.month - 1];\n}\n\nexport function eraForDateTime(dt, length) {\n return eras(length)[dt.year < 0 ? 0 : 1];\n}\n\nexport function formatRelativeTime(unit, count, numeric = \"always\", narrow = false) {\n const units = {\n years: [\"year\", \"yr.\"],\n quarters: [\"quarter\", \"qtr.\"],\n months: [\"month\", \"mo.\"],\n weeks: [\"week\", \"wk.\"],\n days: [\"day\", \"day\", \"days\"],\n hours: [\"hour\", \"hr.\"],\n minutes: [\"minute\", \"min.\"],\n seconds: [\"second\", \"sec.\"],\n };\n\n const lastable = [\"hours\", \"minutes\", \"seconds\"].indexOf(unit) === -1;\n\n if (numeric === \"auto\" && lastable) {\n const isDay = unit === \"days\";\n switch (count) {\n case 1:\n return isDay ? \"tomorrow\" : `next ${units[unit][0]}`;\n case -1:\n return isDay ? \"yesterday\" : `last ${units[unit][0]}`;\n case 0:\n return isDay ? \"today\" : `this ${units[unit][0]}`;\n default: // fall through\n }\n }\n\n const isInPast = Object.is(count, -0) || count < 0,\n fmtValue = Math.abs(count),\n singular = fmtValue === 1,\n lilUnits = units[unit],\n fmtUnit = narrow\n ? singular\n ? lilUnits[1]\n : lilUnits[2] || lilUnits[1]\n : singular\n ? units[unit][0]\n : unit;\n return isInPast ? `${fmtValue} ${fmtUnit} ago` : `in ${fmtValue} ${fmtUnit}`;\n}\n\nexport function formatString(knownFormat) {\n // these all have the offsets removed because we don't have access to them\n // without all the intl stuff this is backfilling\n const filtered = pick(knownFormat, [\n \"weekday\",\n \"era\",\n \"year\",\n \"month\",\n \"day\",\n \"hour\",\n \"minute\",\n \"second\",\n \"timeZoneName\",\n \"hourCycle\",\n ]),\n key = stringify(filtered),\n dateTimeHuge = \"EEEE, LLLL d, yyyy, h:mm a\";\n switch (key) {\n case stringify(Formats.DATE_SHORT):\n return \"M/d/yyyy\";\n case stringify(Formats.DATE_MED):\n return \"LLL d, yyyy\";\n case stringify(Formats.DATE_MED_WITH_WEEKDAY):\n return \"EEE, LLL d, yyyy\";\n case stringify(Formats.DATE_FULL):\n return \"LLLL d, yyyy\";\n case stringify(Formats.DATE_HUGE):\n return \"EEEE, LLLL d, yyyy\";\n case stringify(Formats.TIME_SIMPLE):\n return \"h:mm a\";\n case stringify(Formats.TIME_WITH_SECONDS):\n return \"h:mm:ss a\";\n case stringify(Formats.TIME_WITH_SHORT_OFFSET):\n return \"h:mm a\";\n case stringify(Formats.TIME_WITH_LONG_OFFSET):\n return \"h:mm a\";\n case stringify(Formats.TIME_24_SIMPLE):\n return \"HH:mm\";\n case stringify(Formats.TIME_24_WITH_SECONDS):\n return \"HH:mm:ss\";\n case stringify(Formats.TIME_24_WITH_SHORT_OFFSET):\n return \"HH:mm\";\n case stringify(Formats.TIME_24_WITH_LONG_OFFSET):\n return \"HH:mm\";\n case stringify(Formats.DATETIME_SHORT):\n return \"M/d/yyyy, h:mm a\";\n case stringify(Formats.DATETIME_MED):\n return \"LLL d, yyyy, h:mm a\";\n case stringify(Formats.DATETIME_FULL):\n return \"LLLL d, yyyy, h:mm a\";\n case stringify(Formats.DATETIME_HUGE):\n return dateTimeHuge;\n case stringify(Formats.DATETIME_SHORT_WITH_SECONDS):\n return \"M/d/yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_MED_WITH_SECONDS):\n return \"LLL d, yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_MED_WITH_WEEKDAY):\n return \"EEE, d LLL yyyy, h:mm a\";\n case stringify(Formats.DATETIME_FULL_WITH_SECONDS):\n return \"LLLL d, yyyy, h:mm:ss a\";\n case stringify(Formats.DATETIME_HUGE_WITH_SECONDS):\n return \"EEEE, LLLL d, yyyy, h:mm:ss a\";\n default:\n return dateTimeHuge;\n }\n}\n","import * as English from \"./english.js\";\nimport * as Formats from \"./formats.js\";\nimport { padStart } from \"./util.js\";\n\nfunction stringifyTokens(splits, tokenToString) {\n let s = \"\";\n for (const token of splits) {\n if (token.literal) {\n s += token.val;\n } else {\n s += tokenToString(token.val);\n }\n }\n return s;\n}\n\nconst macroTokenToFormatOpts = {\n D: Formats.DATE_SHORT,\n DD: Formats.DATE_MED,\n DDD: Formats.DATE_FULL,\n DDDD: Formats.DATE_HUGE,\n t: Formats.TIME_SIMPLE,\n tt: Formats.TIME_WITH_SECONDS,\n ttt: Formats.TIME_WITH_SHORT_OFFSET,\n tttt: Formats.TIME_WITH_LONG_OFFSET,\n T: Formats.TIME_24_SIMPLE,\n TT: Formats.TIME_24_WITH_SECONDS,\n TTT: Formats.TIME_24_WITH_SHORT_OFFSET,\n TTTT: Formats.TIME_24_WITH_LONG_OFFSET,\n f: Formats.DATETIME_SHORT,\n ff: Formats.DATETIME_MED,\n fff: Formats.DATETIME_FULL,\n ffff: Formats.DATETIME_HUGE,\n F: Formats.DATETIME_SHORT_WITH_SECONDS,\n FF: Formats.DATETIME_MED_WITH_SECONDS,\n FFF: Formats.DATETIME_FULL_WITH_SECONDS,\n FFFF: Formats.DATETIME_HUGE_WITH_SECONDS,\n};\n\n/**\n * @private\n */\n\nexport default class Formatter {\n static create(locale, opts = {}) {\n return new Formatter(locale, opts);\n }\n\n static parseFormat(fmt) {\n let current = null,\n currentFull = \"\",\n bracketed = false;\n const splits = [];\n for (let i = 0; i < fmt.length; i++) {\n const c = fmt.charAt(i);\n if (c === \"'\") {\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed, val: currentFull });\n }\n current = null;\n currentFull = \"\";\n bracketed = !bracketed;\n } else if (bracketed) {\n currentFull += c;\n } else if (c === current) {\n currentFull += c;\n } else {\n if (currentFull.length > 0) {\n splits.push({ literal: false, val: currentFull });\n }\n currentFull = c;\n current = c;\n }\n }\n\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed, val: currentFull });\n }\n\n return splits;\n }\n\n static macroTokenToFormatOpts(token) {\n return macroTokenToFormatOpts[token];\n }\n\n constructor(locale, formatOpts) {\n this.opts = formatOpts;\n this.loc = locale;\n this.systemLoc = null;\n }\n\n formatWithSystemDefault(dt, opts) {\n if (this.systemLoc === null) {\n this.systemLoc = this.loc.redefaultToSystem();\n }\n const df = this.systemLoc.dtFormatter(dt, { ...this.opts, ...opts });\n return df.format();\n }\n\n formatDateTime(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, { ...this.opts, ...opts });\n return df.format();\n }\n\n formatDateTimeParts(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, { ...this.opts, ...opts });\n return df.formatToParts();\n }\n\n resolvedOptions(dt, opts = {}) {\n const df = this.loc.dtFormatter(dt, { ...this.opts, ...opts });\n return df.resolvedOptions();\n }\n\n num(n, p = 0) {\n // we get some perf out of doing this here, annoyingly\n if (this.opts.forceSimple) {\n return padStart(n, p);\n }\n\n const opts = { ...this.opts };\n\n if (p > 0) {\n opts.padTo = p;\n }\n\n return this.loc.numberFormatter(opts).format(n);\n }\n\n formatDateTimeFromString(dt, fmt) {\n const knownEnglish = this.loc.listingMode() === \"en\",\n useDateTimeFormatter = this.loc.outputCalendar && this.loc.outputCalendar !== \"gregory\",\n string = (opts, extract) => this.loc.extract(dt, opts, extract),\n formatOffset = (opts) => {\n if (dt.isOffsetFixed && dt.offset === 0 && opts.allowZ) {\n return \"Z\";\n }\n\n return dt.isValid ? dt.zone.formatOffset(dt.ts, opts.format) : \"\";\n },\n meridiem = () =>\n knownEnglish\n ? English.meridiemForDateTime(dt)\n : string({ hour: \"numeric\", hourCycle: \"h12\" }, \"dayperiod\"),\n month = (length, standalone) =>\n knownEnglish\n ? English.monthForDateTime(dt, length)\n : string(standalone ? { month: length } : { month: length, day: \"numeric\" }, \"month\"),\n weekday = (length, standalone) =>\n knownEnglish\n ? English.weekdayForDateTime(dt, length)\n : string(\n standalone ? { weekday: length } : { weekday: length, month: \"long\", day: \"numeric\" },\n \"weekday\"\n ),\n maybeMacro = (token) => {\n const formatOpts = Formatter.macroTokenToFormatOpts(token);\n if (formatOpts) {\n return this.formatWithSystemDefault(dt, formatOpts);\n } else {\n return token;\n }\n },\n era = (length) =>\n knownEnglish ? English.eraForDateTime(dt, length) : string({ era: length }, \"era\"),\n tokenToString = (token) => {\n // Where possible: http://cldr.unicode.org/translation/date-time-1/date-time#TOC-Standalone-vs.-Format-Styles\n switch (token) {\n // ms\n case \"S\":\n return this.num(dt.millisecond);\n case \"u\":\n // falls through\n case \"SSS\":\n return this.num(dt.millisecond, 3);\n // seconds\n case \"s\":\n return this.num(dt.second);\n case \"ss\":\n return this.num(dt.second, 2);\n // fractional seconds\n case \"uu\":\n return this.num(Math.floor(dt.millisecond / 10), 2);\n case \"uuu\":\n return this.num(Math.floor(dt.millisecond / 100));\n // minutes\n case \"m\":\n return this.num(dt.minute);\n case \"mm\":\n return this.num(dt.minute, 2);\n // hours\n case \"h\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12);\n case \"hh\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12, 2);\n case \"H\":\n return this.num(dt.hour);\n case \"HH\":\n return this.num(dt.hour, 2);\n // offset\n case \"Z\":\n // like +6\n return formatOffset({ format: \"narrow\", allowZ: this.opts.allowZ });\n case \"ZZ\":\n // like +06:00\n return formatOffset({ format: \"short\", allowZ: this.opts.allowZ });\n case \"ZZZ\":\n // like +0600\n return formatOffset({ format: \"techie\", allowZ: this.opts.allowZ });\n case \"ZZZZ\":\n // like EST\n return dt.zone.offsetName(dt.ts, { format: \"short\", locale: this.loc.locale });\n case \"ZZZZZ\":\n // like Eastern Standard Time\n return dt.zone.offsetName(dt.ts, { format: \"long\", locale: this.loc.locale });\n // zone\n case \"z\":\n // like America/New_York\n return dt.zoneName;\n // meridiems\n case \"a\":\n return meridiem();\n // dates\n case \"d\":\n return useDateTimeFormatter ? string({ day: \"numeric\" }, \"day\") : this.num(dt.day);\n case \"dd\":\n return useDateTimeFormatter ? string({ day: \"2-digit\" }, \"day\") : this.num(dt.day, 2);\n // weekdays - standalone\n case \"c\":\n // like 1\n return this.num(dt.weekday);\n case \"ccc\":\n // like 'Tues'\n return weekday(\"short\", true);\n case \"cccc\":\n // like 'Tuesday'\n return weekday(\"long\", true);\n case \"ccccc\":\n // like 'T'\n return weekday(\"narrow\", true);\n // weekdays - format\n case \"E\":\n // like 1\n return this.num(dt.weekday);\n case \"EEE\":\n // like 'Tues'\n return weekday(\"short\", false);\n case \"EEEE\":\n // like 'Tuesday'\n return weekday(\"long\", false);\n case \"EEEEE\":\n // like 'T'\n return weekday(\"narrow\", false);\n // months - standalone\n case \"L\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\", day: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"LL\":\n // like 01, doesn't seem to work\n return useDateTimeFormatter\n ? string({ month: \"2-digit\", day: \"numeric\" }, \"month\")\n : this.num(dt.month, 2);\n case \"LLL\":\n // like Jan\n return month(\"short\", true);\n case \"LLLL\":\n // like January\n return month(\"long\", true);\n case \"LLLLL\":\n // like J\n return month(\"narrow\", true);\n // months - format\n case \"M\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"MM\":\n // like 01\n return useDateTimeFormatter\n ? string({ month: \"2-digit\" }, \"month\")\n : this.num(dt.month, 2);\n case \"MMM\":\n // like Jan\n return month(\"short\", false);\n case \"MMMM\":\n // like January\n return month(\"long\", false);\n case \"MMMMM\":\n // like J\n return month(\"narrow\", false);\n // years\n case \"y\":\n // like 2014\n return useDateTimeFormatter ? string({ year: \"numeric\" }, \"year\") : this.num(dt.year);\n case \"yy\":\n // like 14\n return useDateTimeFormatter\n ? string({ year: \"2-digit\" }, \"year\")\n : this.num(dt.year.toString().slice(-2), 2);\n case \"yyyy\":\n // like 0012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 4);\n case \"yyyyyy\":\n // like 000012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 6);\n // eras\n case \"G\":\n // like AD\n return era(\"short\");\n case \"GG\":\n // like Anno Domini\n return era(\"long\");\n case \"GGGGG\":\n return era(\"narrow\");\n case \"kk\":\n return this.num(dt.weekYear.toString().slice(-2), 2);\n case \"kkkk\":\n return this.num(dt.weekYear, 4);\n case \"W\":\n return this.num(dt.weekNumber);\n case \"WW\":\n return this.num(dt.weekNumber, 2);\n case \"o\":\n return this.num(dt.ordinal);\n case \"ooo\":\n return this.num(dt.ordinal, 3);\n case \"q\":\n // like 1\n return this.num(dt.quarter);\n case \"qq\":\n // like 01\n return this.num(dt.quarter, 2);\n case \"X\":\n return this.num(Math.floor(dt.ts / 1000));\n case \"x\":\n return this.num(dt.ts);\n default:\n return maybeMacro(token);\n }\n };\n\n return stringifyTokens(Formatter.parseFormat(fmt), tokenToString);\n }\n\n formatDurationFromString(dur, fmt) {\n const tokenToField = (token) => {\n switch (token[0]) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"w\":\n return \"week\";\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n default:\n return null;\n }\n },\n tokenToString = (lildur) => (token) => {\n const mapped = tokenToField(token);\n if (mapped) {\n return this.num(lildur.get(mapped), token.length);\n } else {\n return token;\n }\n },\n tokens = Formatter.parseFormat(fmt),\n realTokens = tokens.reduce(\n (found, { literal, val }) => (literal ? found : found.concat(val)),\n []\n ),\n collapsed = dur.shiftTo(...realTokens.map(tokenToField).filter((t) => t));\n return stringifyTokens(tokens, tokenToString(collapsed));\n }\n}\n","export default class Invalid {\n constructor(reason, explanation) {\n this.reason = reason;\n this.explanation = explanation;\n }\n\n toMessage() {\n if (this.explanation) {\n return `${this.reason}: ${this.explanation}`;\n } else {\n return this.reason;\n }\n }\n}\n","import { ZoneIsAbstractError } from \"./errors.js\";\n\n/**\n * @interface\n */\nexport default class Zone {\n /**\n * The type of zone\n * @abstract\n * @type {string}\n */\n get type() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * The name of this zone.\n * @abstract\n * @type {string}\n */\n get name() {\n throw new ZoneIsAbstractError();\n }\n\n get ianaName() {\n return this.name;\n }\n\n /**\n * Returns whether the offset is known to be fixed for the whole year.\n * @abstract\n * @type {boolean}\n */\n get isUniversal() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's common name (such as EST) at the specified timestamp\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the name\n * @param {Object} opts - Options to affect the format\n * @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'.\n * @param {string} opts.locale - What locale to return the offset name in.\n * @return {string}\n */\n offsetName(ts, opts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's value as a string\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\n formatOffset(ts, format) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return the offset in minutes for this zone at the specified timestamp.\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to compute the offset\n * @return {number}\n */\n offset(ts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is equal to another zone\n * @abstract\n * @param {Zone} otherZone - the zone to compare\n * @return {boolean}\n */\n equals(otherZone) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is valid.\n * @abstract\n * @type {boolean}\n */\n get isValid() {\n throw new ZoneIsAbstractError();\n }\n}\n","import { formatOffset, parseZoneInfo } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * Represents the local zone for this JavaScript environment.\n * @implements {Zone}\n */\nexport default class SystemZone extends Zone {\n /**\n * Get a singleton instance of the local zone\n * @return {SystemZone}\n */\n static get instance() {\n if (singleton === null) {\n singleton = new SystemZone();\n }\n return singleton;\n }\n\n /** @override **/\n get type() {\n return \"system\";\n }\n\n /** @override **/\n get name() {\n return new Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n\n /** @override **/\n get isUniversal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n return -new Date(ts).getTimezoneOffset();\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"system\";\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n","import { formatOffset, parseZoneInfo, isUndefined, objToLocalTS } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet dtfCache = {};\nfunction makeDTF(zone) {\n if (!dtfCache[zone]) {\n dtfCache[zone] = new Intl.DateTimeFormat(\"en-US\", {\n hour12: false,\n timeZone: zone,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n era: \"short\",\n });\n }\n return dtfCache[zone];\n}\n\nconst typeToPos = {\n year: 0,\n month: 1,\n day: 2,\n era: 3,\n hour: 4,\n minute: 5,\n second: 6,\n};\n\nfunction hackyOffset(dtf, date) {\n const formatted = dtf.format(date).replace(/\\u200E/g, \"\"),\n parsed = /(\\d+)\\/(\\d+)\\/(\\d+) (AD|BC),? (\\d+):(\\d+):(\\d+)/.exec(formatted),\n [, fMonth, fDay, fYear, fadOrBc, fHour, fMinute, fSecond] = parsed;\n return [fYear, fMonth, fDay, fadOrBc, fHour, fMinute, fSecond];\n}\n\nfunction partsOffset(dtf, date) {\n const formatted = dtf.formatToParts(date);\n const filled = [];\n for (let i = 0; i < formatted.length; i++) {\n const { type, value } = formatted[i];\n const pos = typeToPos[type];\n\n if (type === \"era\") {\n filled[pos] = value;\n } else if (!isUndefined(pos)) {\n filled[pos] = parseInt(value, 10);\n }\n }\n return filled;\n}\n\nlet ianaZoneCache = {};\n/**\n * A zone identified by an IANA identifier, like America/New_York\n * @implements {Zone}\n */\nexport default class IANAZone extends Zone {\n /**\n * @param {string} name - Zone name\n * @return {IANAZone}\n */\n static create(name) {\n if (!ianaZoneCache[name]) {\n ianaZoneCache[name] = new IANAZone(name);\n }\n return ianaZoneCache[name];\n }\n\n /**\n * Reset local caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCache() {\n ianaZoneCache = {};\n dtfCache = {};\n }\n\n /**\n * Returns whether the provided string is a valid specifier. This only checks the string's format, not that the specifier identifies a known zone; see isValidZone for that.\n * @param {string} s - The string to check validity on\n * @example IANAZone.isValidSpecifier(\"America/New_York\") //=> true\n * @example IANAZone.isValidSpecifier(\"Sport~~blorp\") //=> false\n * @deprecated This method returns false for some valid IANA names. Use isValidZone instead.\n * @return {boolean}\n */\n static isValidSpecifier(s) {\n return this.isValidZone(s);\n }\n\n /**\n * Returns whether the provided string identifies a real zone\n * @param {string} zone - The string to check\n * @example IANAZone.isValidZone(\"America/New_York\") //=> true\n * @example IANAZone.isValidZone(\"Fantasia/Castle\") //=> false\n * @example IANAZone.isValidZone(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */\n static isValidZone(zone) {\n if (!zone) {\n return false;\n }\n try {\n new Intl.DateTimeFormat(\"en-US\", { timeZone: zone }).format();\n return true;\n } catch (e) {\n return false;\n }\n }\n\n constructor(name) {\n super();\n /** @private **/\n this.zoneName = name;\n /** @private **/\n this.valid = IANAZone.isValidZone(name);\n }\n\n /** @override **/\n get type() {\n return \"iana\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get isUniversal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale, this.name);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n const date = new Date(ts);\n\n if (isNaN(date)) return NaN;\n\n const dtf = makeDTF(this.name);\n let [year, month, day, adOrBc, hour, minute, second] = dtf.formatToParts\n ? partsOffset(dtf, date)\n : hackyOffset(dtf, date);\n\n if (adOrBc === \"BC\") {\n year = -Math.abs(year) + 1;\n }\n\n // because we're using hour12 and https://bugs.chromium.org/p/chromium/issues/detail?id=1025564&can=2&q=%2224%3A00%22%20datetimeformat\n const adjustedHour = hour === 24 ? 0 : hour;\n\n const asUTC = objToLocalTS({\n year,\n month,\n day,\n hour: adjustedHour,\n minute,\n second,\n millisecond: 0,\n });\n\n let asTS = +date;\n const over = asTS % 1000;\n asTS -= over >= 0 ? over : 1000 + over;\n return (asUTC - asTS) / (60 * 1000);\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"iana\" && otherZone.name === this.name;\n }\n\n /** @override **/\n get isValid() {\n return this.valid;\n }\n}\n","import { formatOffset, signedOffset } from \"../impl/util.js\";\nimport Zone from \"../zone.js\";\n\nlet singleton = null;\n\n/**\n * A zone with a fixed offset (meaning no DST)\n * @implements {Zone}\n */\nexport default class FixedOffsetZone extends Zone {\n /**\n * Get a singleton instance of UTC\n * @return {FixedOffsetZone}\n */\n static get utcInstance() {\n if (singleton === null) {\n singleton = new FixedOffsetZone(0);\n }\n return singleton;\n }\n\n /**\n * Get an instance with a specified offset\n * @param {number} offset - The offset in minutes\n * @return {FixedOffsetZone}\n */\n static instance(offset) {\n return offset === 0 ? FixedOffsetZone.utcInstance : new FixedOffsetZone(offset);\n }\n\n /**\n * Get an instance of FixedOffsetZone from a UTC offset string, like \"UTC+6\"\n * @param {string} s - The offset string to parse\n * @example FixedOffsetZone.parseSpecifier(\"UTC+6\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC+06\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC-6:00\")\n * @return {FixedOffsetZone}\n */\n static parseSpecifier(s) {\n if (s) {\n const r = s.match(/^utc(?:([+-]\\d{1,2})(?::(\\d{2}))?)?$/i);\n if (r) {\n return new FixedOffsetZone(signedOffset(r[1], r[2]));\n }\n }\n return null;\n }\n\n constructor(offset) {\n super();\n /** @private **/\n this.fixed = offset;\n }\n\n /** @override **/\n get type() {\n return \"fixed\";\n }\n\n /** @override **/\n get name() {\n return this.fixed === 0 ? \"UTC\" : `UTC${formatOffset(this.fixed, \"narrow\")}`;\n }\n\n get ianaName() {\n if (this.fixed === 0) {\n return \"Etc/UTC\";\n } else {\n return `Etc/GMT${formatOffset(-this.fixed, \"narrow\")}`;\n }\n }\n\n /** @override **/\n offsetName() {\n return this.name;\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.fixed, format);\n }\n\n /** @override **/\n get isUniversal() {\n return true;\n }\n\n /** @override **/\n offset() {\n return this.fixed;\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"fixed\" && otherZone.fixed === this.fixed;\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n","import Zone from \"../zone.js\";\n\n/**\n * A zone that failed to parse. You should never need to instantiate this.\n * @implements {Zone}\n */\nexport default class InvalidZone extends Zone {\n constructor(zoneName) {\n super();\n /** @private */\n this.zoneName = zoneName;\n }\n\n /** @override **/\n get type() {\n return \"invalid\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get isUniversal() {\n return false;\n }\n\n /** @override **/\n offsetName() {\n return null;\n }\n\n /** @override **/\n formatOffset() {\n return \"\";\n }\n\n /** @override **/\n offset() {\n return NaN;\n }\n\n /** @override **/\n equals() {\n return false;\n }\n\n /** @override **/\n get isValid() {\n return false;\n }\n}\n","/**\n * @private\n */\n\nimport Zone from \"../zone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport InvalidZone from \"../zones/invalidZone.js\";\n\nimport { isUndefined, isString, isNumber } from \"./util.js\";\n\nexport function normalizeZone(input, defaultZone) {\n let offset;\n if (isUndefined(input) || input === null) {\n return defaultZone;\n } else if (input instanceof Zone) {\n return input;\n } else if (isString(input)) {\n const lowered = input.toLowerCase();\n if (lowered === \"local\" || lowered === \"system\") return defaultZone;\n else if (lowered === \"utc\" || lowered === \"gmt\") return FixedOffsetZone.utcInstance;\n else return FixedOffsetZone.parseSpecifier(lowered) || IANAZone.create(input);\n } else if (isNumber(input)) {\n return FixedOffsetZone.instance(input);\n } else if (typeof input === \"object\" && input.offset && typeof input.offset === \"number\") {\n // This is dumb, but the instanceof check above doesn't seem to really work\n // so we're duck checking it\n return input;\n } else {\n return new InvalidZone(input);\n }\n}\n","import SystemZone from \"./zones/systemZone.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport Locale from \"./impl/locale.js\";\n\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\n\nlet now = () => Date.now(),\n defaultZone = \"system\",\n defaultLocale = null,\n defaultNumberingSystem = null,\n defaultOutputCalendar = null,\n throwOnInvalid;\n\n/**\n * Settings contains static getters and setters that control Luxon's overall behavior. Luxon is a simple library with few options, but the ones it does have live here.\n */\nexport default class Settings {\n /**\n * Get the callback for returning the current timestamp.\n * @type {function}\n */\n static get now() {\n return now;\n }\n\n /**\n * Set the callback for returning the current timestamp.\n * The function should return a number, which will be interpreted as an Epoch millisecond count\n * @type {function}\n * @example Settings.now = () => Date.now() + 3000 // pretend it is 3 seconds in the future\n * @example Settings.now = () => 0 // always pretend it's Jan 1, 1970 at midnight in UTC time\n */\n static set now(n) {\n now = n;\n }\n\n /**\n * Set the default time zone to create DateTimes in. Does not affect existing instances.\n * Use the value \"system\" to reset this value to the system's time zone.\n * @type {string}\n */\n static set defaultZone(zone) {\n defaultZone = zone;\n }\n\n /**\n * Get the default time zone object currently used to create DateTimes. Does not affect existing instances.\n * The default value is the system's time zone (the one set on the machine that runs this code).\n * @type {Zone}\n */\n static get defaultZone() {\n return normalizeZone(defaultZone, SystemZone.instance);\n }\n\n /**\n * Get the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultLocale() {\n return defaultLocale;\n }\n\n /**\n * Set the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultLocale(locale) {\n defaultLocale = locale;\n }\n\n /**\n * Get the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultNumberingSystem() {\n return defaultNumberingSystem;\n }\n\n /**\n * Set the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultNumberingSystem(numberingSystem) {\n defaultNumberingSystem = numberingSystem;\n }\n\n /**\n * Get the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultOutputCalendar() {\n return defaultOutputCalendar;\n }\n\n /**\n * Set the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultOutputCalendar(outputCalendar) {\n defaultOutputCalendar = outputCalendar;\n }\n\n /**\n * Get whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static get throwOnInvalid() {\n return throwOnInvalid;\n }\n\n /**\n * Set whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static set throwOnInvalid(t) {\n throwOnInvalid = t;\n }\n\n /**\n * Reset Luxon's global caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCaches() {\n Locale.resetCache();\n IANAZone.resetCache();\n }\n}\n","import { padStart, roundTo, hasRelative } from \"./util.js\";\nimport * as English from \"./english.js\";\nimport Settings from \"../settings.js\";\nimport DateTime from \"../datetime.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\n\n// todo - remap caching\n\nlet intlLFCache = {};\nfunction getCachedLF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let dtf = intlLFCache[key];\n if (!dtf) {\n dtf = new Intl.ListFormat(locString, opts);\n intlLFCache[key] = dtf;\n }\n return dtf;\n}\n\nlet intlDTCache = {};\nfunction getCachedDTF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let dtf = intlDTCache[key];\n if (!dtf) {\n dtf = new Intl.DateTimeFormat(locString, opts);\n intlDTCache[key] = dtf;\n }\n return dtf;\n}\n\nlet intlNumCache = {};\nfunction getCachedINF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let inf = intlNumCache[key];\n if (!inf) {\n inf = new Intl.NumberFormat(locString, opts);\n intlNumCache[key] = inf;\n }\n return inf;\n}\n\nlet intlRelCache = {};\nfunction getCachedRTF(locString, opts = {}) {\n const { base, ...cacheKeyOpts } = opts; // exclude `base` from the options\n const key = JSON.stringify([locString, cacheKeyOpts]);\n let inf = intlRelCache[key];\n if (!inf) {\n inf = new Intl.RelativeTimeFormat(locString, opts);\n intlRelCache[key] = inf;\n }\n return inf;\n}\n\nlet sysLocaleCache = null;\nfunction systemLocale() {\n if (sysLocaleCache) {\n return sysLocaleCache;\n } else {\n sysLocaleCache = new Intl.DateTimeFormat().resolvedOptions().locale;\n return sysLocaleCache;\n }\n}\n\nfunction parseLocaleString(localeStr) {\n // I really want to avoid writing a BCP 47 parser\n // see, e.g. https://github.com/wooorm/bcp-47\n // Instead, we'll do this:\n\n // a) if the string has no -u extensions, just leave it alone\n // b) if it does, use Intl to resolve everything\n // c) if Intl fails, try again without the -u\n\n const uIndex = localeStr.indexOf(\"-u-\");\n if (uIndex === -1) {\n return [localeStr];\n } else {\n let options;\n const smaller = localeStr.substring(0, uIndex);\n try {\n options = getCachedDTF(localeStr).resolvedOptions();\n } catch (e) {\n options = getCachedDTF(smaller).resolvedOptions();\n }\n\n const { numberingSystem, calendar } = options;\n // return the smaller one so that we can append the calendar and numbering overrides to it\n return [smaller, numberingSystem, calendar];\n }\n}\n\nfunction intlConfigString(localeStr, numberingSystem, outputCalendar) {\n if (outputCalendar || numberingSystem) {\n localeStr += \"-u\";\n\n if (outputCalendar) {\n localeStr += `-ca-${outputCalendar}`;\n }\n\n if (numberingSystem) {\n localeStr += `-nu-${numberingSystem}`;\n }\n return localeStr;\n } else {\n return localeStr;\n }\n}\n\nfunction mapMonths(f) {\n const ms = [];\n for (let i = 1; i <= 12; i++) {\n const dt = DateTime.utc(2016, i, 1);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction mapWeekdays(f) {\n const ms = [];\n for (let i = 1; i <= 7; i++) {\n const dt = DateTime.utc(2016, 11, 13 + i);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction listStuff(loc, length, defaultOK, englishFn, intlFn) {\n const mode = loc.listingMode(defaultOK);\n\n if (mode === \"error\") {\n return null;\n } else if (mode === \"en\") {\n return englishFn(length);\n } else {\n return intlFn(length);\n }\n}\n\nfunction supportsFastNumbers(loc) {\n if (loc.numberingSystem && loc.numberingSystem !== \"latn\") {\n return false;\n } else {\n return (\n loc.numberingSystem === \"latn\" ||\n !loc.locale ||\n loc.locale.startsWith(\"en\") ||\n new Intl.DateTimeFormat(loc.intl).resolvedOptions().numberingSystem === \"latn\"\n );\n }\n}\n\n/**\n * @private\n */\n\nclass PolyNumberFormatter {\n constructor(intl, forceSimple, opts) {\n this.padTo = opts.padTo || 0;\n this.floor = opts.floor || false;\n\n const { padTo, floor, ...otherOpts } = opts;\n\n if (!forceSimple || Object.keys(otherOpts).length > 0) {\n const intlOpts = { useGrouping: false, ...opts };\n if (opts.padTo > 0) intlOpts.minimumIntegerDigits = opts.padTo;\n this.inf = getCachedINF(intl, intlOpts);\n }\n }\n\n format(i) {\n if (this.inf) {\n const fixed = this.floor ? Math.floor(i) : i;\n return this.inf.format(fixed);\n } else {\n // to match the browser's numberformatter defaults\n const fixed = this.floor ? Math.floor(i) : roundTo(i, 3);\n return padStart(fixed, this.padTo);\n }\n }\n}\n\n/**\n * @private\n */\n\nclass PolyDateFormatter {\n constructor(dt, intl, opts) {\n this.opts = opts;\n\n let z;\n if (dt.zone.isUniversal) {\n // UTC-8 or Etc/UTC-8 are not part of tzdata, only Etc/GMT+8 and the like.\n // That is why fixed-offset TZ is set to that unless it is:\n // 1. Representing offset 0 when UTC is used to maintain previous behavior and does not become GMT.\n // 2. Unsupported by the browser:\n // - some do not support Etc/\n // - < Etc/GMT-14, > Etc/GMT+12, and 30-minute or 45-minute offsets are not part of tzdata\n const gmtOffset = -1 * (dt.offset / 60);\n const offsetZ = gmtOffset >= 0 ? `Etc/GMT+${gmtOffset}` : `Etc/GMT${gmtOffset}`;\n if (dt.offset !== 0 && IANAZone.create(offsetZ).valid) {\n z = offsetZ;\n this.dt = dt;\n } else {\n // Not all fixed-offset zones like Etc/+4:30 are present in tzdata.\n // So we have to make do. Two cases:\n // 1. The format options tell us to show the zone. We can't do that, so the best\n // we can do is format the date in UTC.\n // 2. The format options don't tell us to show the zone. Then we can adjust them\n // the time and tell the formatter to show it to us in UTC, so that the time is right\n // and the bad zone doesn't show up.\n z = \"UTC\";\n if (opts.timeZoneName) {\n this.dt = dt;\n } else {\n this.dt = dt.offset === 0 ? dt : DateTime.fromMillis(dt.ts + dt.offset * 60 * 1000);\n }\n }\n } else if (dt.zone.type === \"system\") {\n this.dt = dt;\n } else {\n this.dt = dt;\n z = dt.zone.name;\n }\n\n const intlOpts = { ...this.opts };\n if (z) {\n intlOpts.timeZone = z;\n }\n this.dtf = getCachedDTF(intl, intlOpts);\n }\n\n format() {\n return this.dtf.format(this.dt.toJSDate());\n }\n\n formatToParts() {\n return this.dtf.formatToParts(this.dt.toJSDate());\n }\n\n resolvedOptions() {\n return this.dtf.resolvedOptions();\n }\n}\n\n/**\n * @private\n */\nclass PolyRelFormatter {\n constructor(intl, isEnglish, opts) {\n this.opts = { style: \"long\", ...opts };\n if (!isEnglish && hasRelative()) {\n this.rtf = getCachedRTF(intl, opts);\n }\n }\n\n format(count, unit) {\n if (this.rtf) {\n return this.rtf.format(count, unit);\n } else {\n return English.formatRelativeTime(unit, count, this.opts.numeric, this.opts.style !== \"long\");\n }\n }\n\n formatToParts(count, unit) {\n if (this.rtf) {\n return this.rtf.formatToParts(count, unit);\n } else {\n return [];\n }\n }\n}\n\n/**\n * @private\n */\n\nexport default class Locale {\n static fromOpts(opts) {\n return Locale.create(opts.locale, opts.numberingSystem, opts.outputCalendar, opts.defaultToEN);\n }\n\n static create(locale, numberingSystem, outputCalendar, defaultToEN = false) {\n const specifiedLocale = locale || Settings.defaultLocale;\n // the system locale is useful for human readable strings but annoying for parsing/formatting known formats\n const localeR = specifiedLocale || (defaultToEN ? \"en-US\" : systemLocale());\n const numberingSystemR = numberingSystem || Settings.defaultNumberingSystem;\n const outputCalendarR = outputCalendar || Settings.defaultOutputCalendar;\n return new Locale(localeR, numberingSystemR, outputCalendarR, specifiedLocale);\n }\n\n static resetCache() {\n sysLocaleCache = null;\n intlDTCache = {};\n intlNumCache = {};\n intlRelCache = {};\n }\n\n static fromObject({ locale, numberingSystem, outputCalendar } = {}) {\n return Locale.create(locale, numberingSystem, outputCalendar);\n }\n\n constructor(locale, numbering, outputCalendar, specifiedLocale) {\n const [parsedLocale, parsedNumberingSystem, parsedOutputCalendar] = parseLocaleString(locale);\n\n this.locale = parsedLocale;\n this.numberingSystem = numbering || parsedNumberingSystem || null;\n this.outputCalendar = outputCalendar || parsedOutputCalendar || null;\n this.intl = intlConfigString(this.locale, this.numberingSystem, this.outputCalendar);\n\n this.weekdaysCache = { format: {}, standalone: {} };\n this.monthsCache = { format: {}, standalone: {} };\n this.meridiemCache = null;\n this.eraCache = {};\n\n this.specifiedLocale = specifiedLocale;\n this.fastNumbersCached = null;\n }\n\n get fastNumbers() {\n if (this.fastNumbersCached == null) {\n this.fastNumbersCached = supportsFastNumbers(this);\n }\n\n return this.fastNumbersCached;\n }\n\n listingMode() {\n const isActuallyEn = this.isEnglish();\n const hasNoWeirdness =\n (this.numberingSystem === null || this.numberingSystem === \"latn\") &&\n (this.outputCalendar === null || this.outputCalendar === \"gregory\");\n return isActuallyEn && hasNoWeirdness ? \"en\" : \"intl\";\n }\n\n clone(alts) {\n if (!alts || Object.getOwnPropertyNames(alts).length === 0) {\n return this;\n } else {\n return Locale.create(\n alts.locale || this.specifiedLocale,\n alts.numberingSystem || this.numberingSystem,\n alts.outputCalendar || this.outputCalendar,\n alts.defaultToEN || false\n );\n }\n }\n\n redefaultToEN(alts = {}) {\n return this.clone({ ...alts, defaultToEN: true });\n }\n\n redefaultToSystem(alts = {}) {\n return this.clone({ ...alts, defaultToEN: false });\n }\n\n months(length, format = false, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.months, () => {\n const intl = format ? { month: length, day: \"numeric\" } : { month: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.monthsCache[formatStr][length]) {\n this.monthsCache[formatStr][length] = mapMonths((dt) => this.extract(dt, intl, \"month\"));\n }\n return this.monthsCache[formatStr][length];\n });\n }\n\n weekdays(length, format = false, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.weekdays, () => {\n const intl = format\n ? { weekday: length, year: \"numeric\", month: \"long\", day: \"numeric\" }\n : { weekday: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.weekdaysCache[formatStr][length]) {\n this.weekdaysCache[formatStr][length] = mapWeekdays((dt) =>\n this.extract(dt, intl, \"weekday\")\n );\n }\n return this.weekdaysCache[formatStr][length];\n });\n }\n\n meridiems(defaultOK = true) {\n return listStuff(\n this,\n undefined,\n defaultOK,\n () => English.meridiems,\n () => {\n // In theory there could be aribitrary day periods. We're gonna assume there are exactly two\n // for AM and PM. This is probably wrong, but it's makes parsing way easier.\n if (!this.meridiemCache) {\n const intl = { hour: \"numeric\", hourCycle: \"h12\" };\n this.meridiemCache = [DateTime.utc(2016, 11, 13, 9), DateTime.utc(2016, 11, 13, 19)].map(\n (dt) => this.extract(dt, intl, \"dayperiod\")\n );\n }\n\n return this.meridiemCache;\n }\n );\n }\n\n eras(length, defaultOK = true) {\n return listStuff(this, length, defaultOK, English.eras, () => {\n const intl = { era: length };\n\n // This is problematic. Different calendars are going to define eras totally differently. What I need is the minimum set of dates\n // to definitely enumerate them.\n if (!this.eraCache[length]) {\n this.eraCache[length] = [DateTime.utc(-40, 1, 1), DateTime.utc(2017, 1, 1)].map((dt) =>\n this.extract(dt, intl, \"era\")\n );\n }\n\n return this.eraCache[length];\n });\n }\n\n extract(dt, intlOpts, field) {\n const df = this.dtFormatter(dt, intlOpts),\n results = df.formatToParts(),\n matching = results.find((m) => m.type.toLowerCase() === field);\n return matching ? matching.value : null;\n }\n\n numberFormatter(opts = {}) {\n // this forcesimple option is never used (the only caller short-circuits on it, but it seems safer to leave)\n // (in contrast, the rest of the condition is used heavily)\n return new PolyNumberFormatter(this.intl, opts.forceSimple || this.fastNumbers, opts);\n }\n\n dtFormatter(dt, intlOpts = {}) {\n return new PolyDateFormatter(dt, this.intl, intlOpts);\n }\n\n relFormatter(opts = {}) {\n return new PolyRelFormatter(this.intl, this.isEnglish(), opts);\n }\n\n listFormatter(opts = {}) {\n return getCachedLF(this.intl, opts);\n }\n\n isEnglish() {\n return (\n this.locale === \"en\" ||\n this.locale.toLowerCase() === \"en-us\" ||\n new Intl.DateTimeFormat(this.intl).resolvedOptions().locale.startsWith(\"en-us\")\n );\n }\n\n equals(other) {\n return (\n this.locale === other.locale &&\n this.numberingSystem === other.numberingSystem &&\n this.outputCalendar === other.outputCalendar\n );\n }\n}\n","import {\n untruncateYear,\n signedOffset,\n parseInteger,\n parseMillis,\n ianaRegex,\n isUndefined,\n parseFloating,\n} from \"./util.js\";\nimport * as English from \"./english.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\n\n/*\n * This file handles parsing for well-specified formats. Here's how it works:\n * Two things go into parsing: a regex to match with and an extractor to take apart the groups in the match.\n * An extractor is just a function that takes a regex match array and returns a { year: ..., month: ... } object\n * parse() does the work of executing the regex and applying the extractor. It takes multiple regex/extractor pairs to try in sequence.\n * Extractors can take a \"cursor\" representing the offset in the match to look at. This makes it easy to combine extractors.\n * combineExtractors() does the work of combining them, keeping track of the cursor through multiple extractions.\n * Some extractions are super dumb and simpleParse and fromStrings help DRY them.\n */\n\nfunction combineRegexes(...regexes) {\n const full = regexes.reduce((f, r) => f + r.source, \"\");\n return RegExp(`^${full}$`);\n}\n\nfunction combineExtractors(...extractors) {\n return (m) =>\n extractors\n .reduce(\n ([mergedVals, mergedZone, cursor], ex) => {\n const [val, zone, next] = ex(m, cursor);\n return [{ ...mergedVals, ...val }, zone || mergedZone, next];\n },\n [{}, null, 1]\n )\n .slice(0, 2);\n}\n\nfunction parse(s, ...patterns) {\n if (s == null) {\n return [null, null];\n }\n\n for (const [regex, extractor] of patterns) {\n const m = regex.exec(s);\n if (m) {\n return extractor(m);\n }\n }\n return [null, null];\n}\n\nfunction simpleParse(...keys) {\n return (match, cursor) => {\n const ret = {};\n let i;\n\n for (i = 0; i < keys.length; i++) {\n ret[keys[i]] = parseInteger(match[cursor + i]);\n }\n return [ret, null, cursor + i];\n };\n}\n\n// ISO and SQL parsing\nconst offsetRegex = /(?:(Z)|([+-]\\d\\d)(?::?(\\d\\d))?)/;\nconst isoExtendedZone = `(?:${offsetRegex.source}?(?:\\\\[(${ianaRegex.source})\\\\])?)?`;\nconst isoTimeBaseRegex = /(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:[.,](\\d{1,30}))?)?)?/;\nconst isoTimeRegex = RegExp(`${isoTimeBaseRegex.source}${isoExtendedZone}`);\nconst isoTimeExtensionRegex = RegExp(`(?:T${isoTimeRegex.source})?`);\nconst isoYmdRegex = /([+-]\\d{6}|\\d{4})(?:-?(\\d\\d)(?:-?(\\d\\d))?)?/;\nconst isoWeekRegex = /(\\d{4})-?W(\\d\\d)(?:-?(\\d))?/;\nconst isoOrdinalRegex = /(\\d{4})-?(\\d{3})/;\nconst extractISOWeekData = simpleParse(\"weekYear\", \"weekNumber\", \"weekDay\");\nconst extractISOOrdinalData = simpleParse(\"year\", \"ordinal\");\nconst sqlYmdRegex = /(\\d{4})-(\\d\\d)-(\\d\\d)/; // dumbed-down version of the ISO one\nconst sqlTimeRegex = RegExp(\n `${isoTimeBaseRegex.source} ?(?:${offsetRegex.source}|(${ianaRegex.source}))?`\n);\nconst sqlTimeExtensionRegex = RegExp(`(?: ${sqlTimeRegex.source})?`);\n\nfunction int(match, pos, fallback) {\n const m = match[pos];\n return isUndefined(m) ? fallback : parseInteger(m);\n}\n\nfunction extractISOYmd(match, cursor) {\n const item = {\n year: int(match, cursor),\n month: int(match, cursor + 1, 1),\n day: int(match, cursor + 2, 1),\n };\n\n return [item, null, cursor + 3];\n}\n\nfunction extractISOTime(match, cursor) {\n const item = {\n hours: int(match, cursor, 0),\n minutes: int(match, cursor + 1, 0),\n seconds: int(match, cursor + 2, 0),\n milliseconds: parseMillis(match[cursor + 3]),\n };\n\n return [item, null, cursor + 4];\n}\n\nfunction extractISOOffset(match, cursor) {\n const local = !match[cursor] && !match[cursor + 1],\n fullOffset = signedOffset(match[cursor + 1], match[cursor + 2]),\n zone = local ? null : FixedOffsetZone.instance(fullOffset);\n return [{}, zone, cursor + 3];\n}\n\nfunction extractIANAZone(match, cursor) {\n const zone = match[cursor] ? IANAZone.create(match[cursor]) : null;\n return [{}, zone, cursor + 1];\n}\n\n// ISO time parsing\n\nconst isoTimeOnly = RegExp(`^T?${isoTimeBaseRegex.source}$`);\n\n// ISO duration parsing\n\nconst isoDuration =\n /^-?P(?:(?:(-?\\d{1,9}(?:\\.\\d{1,9})?)Y)?(?:(-?\\d{1,9}(?:\\.\\d{1,9})?)M)?(?:(-?\\d{1,9}(?:\\.\\d{1,9})?)W)?(?:(-?\\d{1,9}(?:\\.\\d{1,9})?)D)?(?:T(?:(-?\\d{1,9}(?:\\.\\d{1,9})?)H)?(?:(-?\\d{1,9}(?:\\.\\d{1,9})?)M)?(?:(-?\\d{1,20})(?:[.,](-?\\d{1,9}))?S)?)?)$/;\n\nfunction extractISODuration(match) {\n const [s, yearStr, monthStr, weekStr, dayStr, hourStr, minuteStr, secondStr, millisecondsStr] =\n match;\n\n const hasNegativePrefix = s[0] === \"-\";\n const negativeSeconds = secondStr && secondStr[0] === \"-\";\n\n const maybeNegate = (num, force = false) =>\n num !== undefined && (force || (num && hasNegativePrefix)) ? -num : num;\n\n return [\n {\n years: maybeNegate(parseFloating(yearStr)),\n months: maybeNegate(parseFloating(monthStr)),\n weeks: maybeNegate(parseFloating(weekStr)),\n days: maybeNegate(parseFloating(dayStr)),\n hours: maybeNegate(parseFloating(hourStr)),\n minutes: maybeNegate(parseFloating(minuteStr)),\n seconds: maybeNegate(parseFloating(secondStr), secondStr === \"-0\"),\n milliseconds: maybeNegate(parseMillis(millisecondsStr), negativeSeconds),\n },\n ];\n}\n\n// These are a little braindead. EDT *should* tell us that we're in, say, America/New_York\n// and not just that we're in -240 *right now*. But since I don't think these are used that often\n// I'm just going to ignore that\nconst obsOffsets = {\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n};\n\nfunction fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n const result = {\n year: yearStr.length === 2 ? untruncateYear(parseInteger(yearStr)) : parseInteger(yearStr),\n month: English.monthsShort.indexOf(monthStr) + 1,\n day: parseInteger(dayStr),\n hour: parseInteger(hourStr),\n minute: parseInteger(minuteStr),\n };\n\n if (secondStr) result.second = parseInteger(secondStr);\n if (weekdayStr) {\n result.weekday =\n weekdayStr.length > 3\n ? English.weekdaysLong.indexOf(weekdayStr) + 1\n : English.weekdaysShort.indexOf(weekdayStr) + 1;\n }\n\n return result;\n}\n\n// RFC 2822/5322\nconst rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\\d\\d)(\\d\\d)))$/;\n\nfunction extractRFC2822(match) {\n const [\n ,\n weekdayStr,\n dayStr,\n monthStr,\n yearStr,\n hourStr,\n minuteStr,\n secondStr,\n obsOffset,\n milOffset,\n offHourStr,\n offMinuteStr,\n ] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n\n let offset;\n if (obsOffset) {\n offset = obsOffsets[obsOffset];\n } else if (milOffset) {\n offset = 0;\n } else {\n offset = signedOffset(offHourStr, offMinuteStr);\n }\n\n return [result, new FixedOffsetZone(offset)];\n}\n\nfunction preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^)]*\\)|[\\n\\t]/g, \" \")\n .replace(/(\\s\\s+)/g, \" \")\n .trim();\n}\n\n// http date\n\nconst rfc1123 =\n /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\\d\\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\\d{4}) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,\n rfc850 =\n /^(Monday|Tuesday|Wedsday|Thursday|Friday|Saturday|Sunday), (\\d\\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,\n ascii =\n /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \\d|\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) (\\d{4})$/;\n\nfunction extractRFC1123Or850(match) {\n const [, weekdayStr, dayStr, monthStr, yearStr, hourStr, minuteStr, secondStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nfunction extractASCII(match) {\n const [, weekdayStr, monthStr, dayStr, hourStr, minuteStr, secondStr, yearStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nconst isoYmdWithTimeExtensionRegex = combineRegexes(isoYmdRegex, isoTimeExtensionRegex);\nconst isoWeekWithTimeExtensionRegex = combineRegexes(isoWeekRegex, isoTimeExtensionRegex);\nconst isoOrdinalWithTimeExtensionRegex = combineRegexes(isoOrdinalRegex, isoTimeExtensionRegex);\nconst isoTimeCombinedRegex = combineRegexes(isoTimeRegex);\n\nconst extractISOYmdTimeAndOffset = combineExtractors(\n extractISOYmd,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOWeekTimeAndOffset = combineExtractors(\n extractISOWeekData,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOOrdinalDateAndTime = combineExtractors(\n extractISOOrdinalData,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOTimeAndOffset = combineExtractors(\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\n\n/*\n * @private\n */\n\nexport function parseISODate(s) {\n return parse(\n s,\n [isoYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset],\n [isoWeekWithTimeExtensionRegex, extractISOWeekTimeAndOffset],\n [isoOrdinalWithTimeExtensionRegex, extractISOOrdinalDateAndTime],\n [isoTimeCombinedRegex, extractISOTimeAndOffset]\n );\n}\n\nexport function parseRFC2822Date(s) {\n return parse(preprocessRFC2822(s), [rfc2822, extractRFC2822]);\n}\n\nexport function parseHTTPDate(s) {\n return parse(\n s,\n [rfc1123, extractRFC1123Or850],\n [rfc850, extractRFC1123Or850],\n [ascii, extractASCII]\n );\n}\n\nexport function parseISODuration(s) {\n return parse(s, [isoDuration, extractISODuration]);\n}\n\nconst extractISOTimeOnly = combineExtractors(extractISOTime);\n\nexport function parseISOTimeOnly(s) {\n return parse(s, [isoTimeOnly, extractISOTimeOnly]);\n}\n\nconst sqlYmdWithTimeExtensionRegex = combineRegexes(sqlYmdRegex, sqlTimeExtensionRegex);\nconst sqlTimeCombinedRegex = combineRegexes(sqlTimeRegex);\n\nconst extractISOTimeOffsetAndIANAZone = combineExtractors(\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\n\nexport function parseSQL(s) {\n return parse(\n s,\n [sqlYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset],\n [sqlTimeCombinedRegex, extractISOTimeOffsetAndIANAZone]\n );\n}\n","import { InvalidArgumentError, InvalidDurationError, InvalidUnitError } from \"./errors.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport Invalid from \"./impl/invalid.js\";\nimport Locale from \"./impl/locale.js\";\nimport { parseISODuration, parseISOTimeOnly } from \"./impl/regexParser.js\";\nimport {\n asNumber,\n hasOwnProperty,\n isNumber,\n isUndefined,\n normalizeObject,\n roundTo,\n} from \"./impl/util.js\";\nimport Settings from \"./settings.js\";\n\nconst INVALID = \"Invalid Duration\";\n\n// unit conversion constants\nexport const lowOrderMatrix = {\n weeks: {\n days: 7,\n hours: 7 * 24,\n minutes: 7 * 24 * 60,\n seconds: 7 * 24 * 60 * 60,\n milliseconds: 7 * 24 * 60 * 60 * 1000,\n },\n days: {\n hours: 24,\n minutes: 24 * 60,\n seconds: 24 * 60 * 60,\n milliseconds: 24 * 60 * 60 * 1000,\n },\n hours: { minutes: 60, seconds: 60 * 60, milliseconds: 60 * 60 * 1000 },\n minutes: { seconds: 60, milliseconds: 60 * 1000 },\n seconds: { milliseconds: 1000 },\n },\n casualMatrix = {\n years: {\n quarters: 4,\n months: 12,\n weeks: 52,\n days: 365,\n hours: 365 * 24,\n minutes: 365 * 24 * 60,\n seconds: 365 * 24 * 60 * 60,\n milliseconds: 365 * 24 * 60 * 60 * 1000,\n },\n quarters: {\n months: 3,\n weeks: 13,\n days: 91,\n hours: 91 * 24,\n minutes: 91 * 24 * 60,\n seconds: 91 * 24 * 60 * 60,\n milliseconds: 91 * 24 * 60 * 60 * 1000,\n },\n months: {\n weeks: 4,\n days: 30,\n hours: 30 * 24,\n minutes: 30 * 24 * 60,\n seconds: 30 * 24 * 60 * 60,\n milliseconds: 30 * 24 * 60 * 60 * 1000,\n },\n\n ...lowOrderMatrix,\n },\n daysInYearAccurate = 146097.0 / 400,\n daysInMonthAccurate = 146097.0 / 4800,\n accurateMatrix = {\n years: {\n quarters: 4,\n months: 12,\n weeks: daysInYearAccurate / 7,\n days: daysInYearAccurate,\n hours: daysInYearAccurate * 24,\n minutes: daysInYearAccurate * 24 * 60,\n seconds: daysInYearAccurate * 24 * 60 * 60,\n milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1000,\n },\n quarters: {\n months: 3,\n weeks: daysInYearAccurate / 28,\n days: daysInYearAccurate / 4,\n hours: (daysInYearAccurate * 24) / 4,\n minutes: (daysInYearAccurate * 24 * 60) / 4,\n seconds: (daysInYearAccurate * 24 * 60 * 60) / 4,\n milliseconds: (daysInYearAccurate * 24 * 60 * 60 * 1000) / 4,\n },\n months: {\n weeks: daysInMonthAccurate / 7,\n days: daysInMonthAccurate,\n hours: daysInMonthAccurate * 24,\n minutes: daysInMonthAccurate * 24 * 60,\n seconds: daysInMonthAccurate * 24 * 60 * 60,\n milliseconds: daysInMonthAccurate * 24 * 60 * 60 * 1000,\n },\n ...lowOrderMatrix,\n };\n\n// units ordered by size\nconst orderedUnits = [\n \"years\",\n \"quarters\",\n \"months\",\n \"weeks\",\n \"days\",\n \"hours\",\n \"minutes\",\n \"seconds\",\n \"milliseconds\",\n];\n\nconst reverseUnits = orderedUnits.slice(0).reverse();\n\n// clone really means \"create another instance just like this one, but with these changes\"\nfunction clone(dur, alts, clear = false) {\n // deep merge for vals\n const conf = {\n values: clear ? alts.values : { ...dur.values, ...(alts.values || {}) },\n loc: dur.loc.clone(alts.loc),\n conversionAccuracy: alts.conversionAccuracy || dur.conversionAccuracy,\n };\n return new Duration(conf);\n}\n\nfunction antiTrunc(n) {\n return n < 0 ? Math.floor(n) : Math.ceil(n);\n}\n\n// NB: mutates parameters\nfunction convert(matrix, fromMap, fromUnit, toMap, toUnit) {\n const conv = matrix[toUnit][fromUnit],\n raw = fromMap[fromUnit] / conv,\n sameSign = Math.sign(raw) === Math.sign(toMap[toUnit]),\n // ok, so this is wild, but see the matrix in the tests\n added =\n !sameSign && toMap[toUnit] !== 0 && Math.abs(raw) <= 1 ? antiTrunc(raw) : Math.trunc(raw);\n toMap[toUnit] += added;\n fromMap[fromUnit] -= added * conv;\n}\n\n// NB: mutates parameters\nfunction normalizeValues(matrix, vals) {\n reverseUnits.reduce((previous, current) => {\n if (!isUndefined(vals[current])) {\n if (previous) {\n convert(matrix, vals, previous, vals, current);\n }\n return current;\n } else {\n return previous;\n }\n }, null);\n}\n\n/**\n * A Duration object represents a period of time, like \"2 months\" or \"1 day, 1 hour\". Conceptually, it's just a map of units to their quantities, accompanied by some additional configuration and methods for creating, parsing, interrogating, transforming, and formatting them. They can be used on their own or in conjunction with other Luxon types; for example, you can use {@link DateTime#plus} to add a Duration object to a DateTime, producing another DateTime.\n *\n * Here is a brief overview of commonly used methods and getters in Duration:\n *\n * * **Creation** To create a Duration, use {@link Duration#fromMillis}, {@link Duration#fromObject}, or {@link Duration#fromISO}.\n * * **Unit values** See the {@link Duration#years}, {@link Duration.months}, {@link Duration#weeks}, {@link Duration#days}, {@link Duration#hours}, {@link Duration#minutes}, {@link Duration#seconds}, {@link Duration#milliseconds} accessors.\n * * **Configuration** See {@link Duration#locale} and {@link Duration#numberingSystem} accessors.\n * * **Transformation** To create new Durations out of old ones use {@link Duration#plus}, {@link Duration#minus}, {@link Duration#normalize}, {@link Duration#set}, {@link Duration#reconfigure}, {@link Duration#shiftTo}, and {@link Duration#negate}.\n * * **Output** To convert the Duration into other representations, see {@link Duration#as}, {@link Duration#toISO}, {@link Duration#toFormat}, and {@link Duration#toJSON}\n *\n * There's are more methods documented below. In addition, for more information on subtler topics like internationalization and validity, see the external documentation.\n */\nexport default class Duration {\n /**\n * @private\n */\n constructor(config) {\n const accurate = config.conversionAccuracy === \"longterm\" || false;\n /**\n * @access private\n */\n this.values = config.values;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.conversionAccuracy = accurate ? \"longterm\" : \"casual\";\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.matrix = accurate ? accurateMatrix : casualMatrix;\n /**\n * @access private\n */\n this.isLuxonDuration = true;\n }\n\n /**\n * Create Duration from a number of milliseconds.\n * @param {number} count of milliseconds\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n static fromMillis(count, opts) {\n return Duration.fromObject({ milliseconds: count }, opts);\n }\n\n /**\n * Create a Duration from a JavaScript object with keys like 'years' and 'hours'.\n * If this object is empty then a zero milliseconds duration is returned.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.years\n * @param {number} obj.quarters\n * @param {number} obj.months\n * @param {number} obj.weeks\n * @param {number} obj.days\n * @param {number} obj.hours\n * @param {number} obj.minutes\n * @param {number} obj.seconds\n * @param {number} obj.milliseconds\n * @param {Object} [opts=[]] - options for creating this Duration\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n static fromObject(obj, opts = {}) {\n if (obj == null || typeof obj !== \"object\") {\n throw new InvalidArgumentError(\n `Duration.fromObject: argument expected to be an object, got ${\n obj === null ? \"null\" : typeof obj\n }`\n );\n }\n\n return new Duration({\n values: normalizeObject(obj, Duration.normalizeUnit),\n loc: Locale.fromObject(opts),\n conversionAccuracy: opts.conversionAccuracy,\n });\n }\n\n /**\n * Create a Duration from DurationLike.\n *\n * @param {Object | number | Duration} durationLike\n * One of:\n * - object with keys like 'years' and 'hours'.\n * - number representing milliseconds\n * - Duration instance\n * @return {Duration}\n */\n static fromDurationLike(durationLike) {\n if (isNumber(durationLike)) {\n return Duration.fromMillis(durationLike);\n } else if (Duration.isDuration(durationLike)) {\n return durationLike;\n } else if (typeof durationLike === \"object\") {\n return Duration.fromObject(durationLike);\n } else {\n throw new InvalidArgumentError(\n `Unknown duration argument ${durationLike} of type ${typeof durationLike}`\n );\n }\n }\n\n /**\n * Create a Duration from an ISO 8601 duration string.\n * @param {string} text - text to parse\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromISO('P3Y6M1W4DT12H30M5S').toObject() //=> { years: 3, months: 6, weeks: 1, days: 4, hours: 12, minutes: 30, seconds: 5 }\n * @example Duration.fromISO('PT23H').toObject() //=> { hours: 23 }\n * @example Duration.fromISO('P5Y3M').toObject() //=> { years: 5, months: 3 }\n * @return {Duration}\n */\n static fromISO(text, opts) {\n const [parsed] = parseISODuration(text);\n if (parsed) {\n return Duration.fromObject(parsed, opts);\n } else {\n return Duration.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n }\n\n /**\n * Create a Duration from an ISO 8601 time string.\n * @param {string} text - text to parse\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @see https://en.wikipedia.org/wiki/ISO_8601#Times\n * @example Duration.fromISOTime('11:22:33.444').toObject() //=> { hours: 11, minutes: 22, seconds: 33, milliseconds: 444 }\n * @example Duration.fromISOTime('11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('T11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('1100').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('T1100').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @return {Duration}\n */\n static fromISOTime(text, opts) {\n const [parsed] = parseISOTimeOnly(text);\n if (parsed) {\n return Duration.fromObject(parsed, opts);\n } else {\n return Duration.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n }\n\n /**\n * Create an invalid Duration.\n * @param {string} reason - simple string of why this datetime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Duration}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Duration is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDurationError(invalid);\n } else {\n return new Duration({ invalid });\n }\n }\n\n /**\n * @private\n */\n static normalizeUnit(unit) {\n const normalized = {\n year: \"years\",\n years: \"years\",\n quarter: \"quarters\",\n quarters: \"quarters\",\n month: \"months\",\n months: \"months\",\n week: \"weeks\",\n weeks: \"weeks\",\n day: \"days\",\n days: \"days\",\n hour: \"hours\",\n hours: \"hours\",\n minute: \"minutes\",\n minutes: \"minutes\",\n second: \"seconds\",\n seconds: \"seconds\",\n millisecond: \"milliseconds\",\n milliseconds: \"milliseconds\",\n }[unit ? unit.toLowerCase() : unit];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n }\n\n /**\n * Check if an object is a Duration. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDuration(o) {\n return (o && o.isLuxonDuration) || false;\n }\n\n /**\n * Get the locale of a Duration, such 'en-GB'\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a Duration, such 'beng'. The numbering system is used when formatting the Duration\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Returns a string representation of this Duration formatted according to the specified format string. You may use these tokens:\n * * `S` for milliseconds\n * * `s` for seconds\n * * `m` for minutes\n * * `h` for hours\n * * `d` for days\n * * `w` for weeks\n * * `M` for months\n * * `y` for years\n * Notes:\n * * Add padding by repeating the token, e.g. \"yy\" pads the years to two digits, \"hhhh\" pads the hours out to four digits\n * * The duration will be converted to the set of units in the format string using {@link Duration#shiftTo} and the Durations's conversion accuracy setting.\n * @param {string} fmt - the format string\n * @param {Object} opts - options\n * @param {boolean} [opts.floor=true] - floor numerical values\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"y d s\") //=> \"1 6 2\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"yy dd sss\") //=> \"01 06 002\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"M S\") //=> \"12 518402000\"\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n // reverse-compat since 1.2; we always round down now, never up, and we do it by default\n const fmtOpts = {\n ...opts,\n floor: opts.round !== false && opts.floor !== false,\n };\n return this.isValid\n ? Formatter.create(this.loc, fmtOpts).formatDurationFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a string representation of a Duration with all units included.\n * To modify its behavior use the `listStyle` and any Intl.NumberFormat option, though `unitDisplay` is especially relevant.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat\n * @param opts - On option object to override the formatting. Accepts the same keys as the options parameter of the native `Int.NumberFormat` constructor, as well as `listStyle`.\n * @example\n * ```js\n * var dur = Duration.fromObject({ days: 1, hours: 5, minutes: 6 })\n * dur.toHuman() //=> '1 day, 5 hours, 6 minutes'\n * dur.toHuman({ listStyle: \"long\" }) //=> '1 day, 5 hours, and 6 minutes'\n * dur.toHuman({ unitDisplay: \"short\" }) //=> '1 day, 5 hr, 6 min'\n * ```\n */\n toHuman(opts = {}) {\n const l = orderedUnits\n .map((unit) => {\n const val = this.values[unit];\n if (isUndefined(val)) {\n return null;\n }\n return this.loc\n .numberFormatter({ style: \"unit\", unitDisplay: \"long\", ...opts, unit: unit.slice(0, -1) })\n .format(val);\n })\n .filter((n) => n);\n\n return this.loc\n .listFormatter({ type: \"conjunction\", style: opts.listStyle || \"narrow\", ...opts })\n .format(l);\n }\n\n /**\n * Returns a JavaScript object with this Duration's values.\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toObject() //=> { years: 1, days: 6, seconds: 2 }\n * @return {Object}\n */\n toObject() {\n if (!this.isValid) return {};\n return { ...this.values };\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Duration.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromObject({ years: 3, seconds: 45 }).toISO() //=> 'P3YT45S'\n * @example Duration.fromObject({ months: 4, seconds: 45 }).toISO() //=> 'P4MT45S'\n * @example Duration.fromObject({ months: 5 }).toISO() //=> 'P5M'\n * @example Duration.fromObject({ minutes: 5 }).toISO() //=> 'PT5M'\n * @example Duration.fromObject({ milliseconds: 6 }).toISO() //=> 'PT0.006S'\n * @return {string}\n */\n toISO() {\n // we could use the formatter, but this is an easier way to get the minimum string\n if (!this.isValid) return null;\n\n let s = \"P\";\n if (this.years !== 0) s += this.years + \"Y\";\n if (this.months !== 0 || this.quarters !== 0) s += this.months + this.quarters * 3 + \"M\";\n if (this.weeks !== 0) s += this.weeks + \"W\";\n if (this.days !== 0) s += this.days + \"D\";\n if (this.hours !== 0 || this.minutes !== 0 || this.seconds !== 0 || this.milliseconds !== 0)\n s += \"T\";\n if (this.hours !== 0) s += this.hours + \"H\";\n if (this.minutes !== 0) s += this.minutes + \"M\";\n if (this.seconds !== 0 || this.milliseconds !== 0)\n // this will handle \"floating point madness\" by removing extra decimal places\n // https://stackoverflow.com/questions/588004/is-floating-point-math-broken\n s += roundTo(this.seconds + this.milliseconds / 1000, 3) + \"S\";\n if (s === \"P\") s += \"T0S\";\n return s;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Duration, formatted as a time of day.\n * Note that this will return null if the duration is invalid, negative, or equal to or greater than 24 hours.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Times\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includePrefix=false] - include the `T` prefix\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example Duration.fromObject({ hours: 11 }).toISOTime() //=> '11:00:00.000'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ suppressMilliseconds: true }) //=> '11:00:00'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ suppressSeconds: true }) //=> '11:00'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ includePrefix: true }) //=> 'T11:00:00.000'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ format: 'basic' }) //=> '110000.000'\n * @return {string}\n */\n toISOTime(opts = {}) {\n if (!this.isValid) return null;\n\n const millis = this.toMillis();\n if (millis < 0 || millis >= 86400000) return null;\n\n opts = {\n suppressMilliseconds: false,\n suppressSeconds: false,\n includePrefix: false,\n format: \"extended\",\n ...opts,\n };\n\n const value = this.shiftTo(\"hours\", \"minutes\", \"seconds\", \"milliseconds\");\n\n let fmt = opts.format === \"basic\" ? \"hhmm\" : \"hh:mm\";\n\n if (!opts.suppressSeconds || value.seconds !== 0 || value.milliseconds !== 0) {\n fmt += opts.format === \"basic\" ? \"ss\" : \":ss\";\n if (!opts.suppressMilliseconds || value.milliseconds !== 0) {\n fmt += \".SSS\";\n }\n }\n\n let str = value.toFormat(fmt);\n\n if (opts.includePrefix) {\n str = \"T\" + str;\n }\n\n return str;\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in debugging.\n * @return {string}\n */\n toString() {\n return this.toISO();\n }\n\n /**\n * Returns an milliseconds value of this Duration.\n * @return {number}\n */\n toMillis() {\n return this.as(\"milliseconds\");\n }\n\n /**\n * Returns an milliseconds value of this Duration. Alias of {@link toMillis}\n * @return {number}\n */\n valueOf() {\n return this.toMillis();\n }\n\n /**\n * Make this Duration longer by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n plus(duration) {\n if (!this.isValid) return this;\n\n const dur = Duration.fromDurationLike(duration),\n result = {};\n\n for (const k of orderedUnits) {\n if (hasOwnProperty(dur.values, k) || hasOwnProperty(this.values, k)) {\n result[k] = dur.get(k) + this.get(k);\n }\n }\n\n return clone(this, { values: result }, true);\n }\n\n /**\n * Make this Duration shorter by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n minus(duration) {\n if (!this.isValid) return this;\n\n const dur = Duration.fromDurationLike(duration);\n return this.plus(dur.negate());\n }\n\n /**\n * Scale this Duration by the specified amount. Return a newly-constructed Duration.\n * @param {function} fn - The function to apply to each unit. Arity is 1 or 2: the value of the unit and, optionally, the unit name. Must return a number.\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnits(x => x * 2) //=> { hours: 2, minutes: 60 }\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnits((x, u) => u === \"hour\" ? x * 2 : x) //=> { hours: 2, minutes: 30 }\n * @return {Duration}\n */\n mapUnits(fn) {\n if (!this.isValid) return this;\n const result = {};\n for (const k of Object.keys(this.values)) {\n result[k] = asNumber(fn(this.values[k], k));\n }\n return clone(this, { values: result }, true);\n }\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example Duration.fromObject({years: 2, days: 3}).get('years') //=> 2\n * @example Duration.fromObject({years: 2, days: 3}).get('months') //=> 0\n * @example Duration.fromObject({years: 2, days: 3}).get('days') //=> 3\n * @return {number}\n */\n get(unit) {\n return this[Duration.normalizeUnit(unit)];\n }\n\n /**\n * \"Set\" the values of specified units. Return a newly-constructed Duration.\n * @param {Object} values - a mapping of units to numbers\n * @example dur.set({ years: 2017 })\n * @example dur.set({ hours: 8, minutes: 30 })\n * @return {Duration}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const mixed = { ...this.values, ...normalizeObject(values, Duration.normalizeUnit) };\n return clone(this, { values: mixed });\n }\n\n /**\n * \"Set\" the locale and/or numberingSystem. Returns a newly-constructed Duration.\n * @example dur.reconfigure({ locale: 'en-GB' })\n * @return {Duration}\n */\n reconfigure({ locale, numberingSystem, conversionAccuracy } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem }),\n opts = { loc };\n\n if (conversionAccuracy) {\n opts.conversionAccuracy = conversionAccuracy;\n }\n\n return clone(this, opts);\n }\n\n /**\n * Return the length of the duration in the specified unit.\n * @param {string} unit - a unit such as 'minutes' or 'days'\n * @example Duration.fromObject({years: 1}).as('days') //=> 365\n * @example Duration.fromObject({years: 1}).as('months') //=> 12\n * @example Duration.fromObject({hours: 60}).as('days') //=> 2.5\n * @return {number}\n */\n as(unit) {\n return this.isValid ? this.shiftTo(unit).get(unit) : NaN;\n }\n\n /**\n * Reduce this Duration to its canonical representation in its current units.\n * @example Duration.fromObject({ years: 2, days: 5000 }).normalize().toObject() //=> { years: 15, days: 255 }\n * @example Duration.fromObject({ hours: 12, minutes: -45 }).normalize().toObject() //=> { hours: 11, minutes: 15 }\n * @return {Duration}\n */\n normalize() {\n if (!this.isValid) return this;\n const vals = this.toObject();\n normalizeValues(this.matrix, vals);\n return clone(this, { values: vals }, true);\n }\n\n /**\n * Convert this Duration into its representation in a different set of units.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).shiftTo('minutes', 'milliseconds').toObject() //=> { minutes: 60, milliseconds: 30000 }\n * @return {Duration}\n */\n shiftTo(...units) {\n if (!this.isValid) return this;\n\n if (units.length === 0) {\n return this;\n }\n\n units = units.map((u) => Duration.normalizeUnit(u));\n\n const built = {},\n accumulated = {},\n vals = this.toObject();\n let lastUnit;\n\n for (const k of orderedUnits) {\n if (units.indexOf(k) >= 0) {\n lastUnit = k;\n\n let own = 0;\n\n // anything we haven't boiled down yet should get boiled to this unit\n for (const ak in accumulated) {\n own += this.matrix[ak][k] * accumulated[ak];\n accumulated[ak] = 0;\n }\n\n // plus anything that's already in this unit\n if (isNumber(vals[k])) {\n own += vals[k];\n }\n\n const i = Math.trunc(own);\n built[k] = i;\n accumulated[k] = (own * 1000 - i * 1000) / 1000;\n\n // plus anything further down the chain that should be rolled up in to this\n for (const down in vals) {\n if (orderedUnits.indexOf(down) > orderedUnits.indexOf(k)) {\n convert(this.matrix, vals, down, built, k);\n }\n }\n // otherwise, keep it in the wings to boil it later\n } else if (isNumber(vals[k])) {\n accumulated[k] = vals[k];\n }\n }\n\n // anything leftover becomes the decimal for the last unit\n // lastUnit must be defined since units is not empty\n for (const key in accumulated) {\n if (accumulated[key] !== 0) {\n built[lastUnit] +=\n key === lastUnit ? accumulated[key] : accumulated[key] / this.matrix[lastUnit][key];\n }\n }\n\n return clone(this, { values: built }, true).normalize();\n }\n\n /**\n * Return the negative of this Duration.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).negate().toObject() //=> { hours: -1, seconds: -30 }\n * @return {Duration}\n */\n negate() {\n if (!this.isValid) return this;\n const negated = {};\n for (const k of Object.keys(this.values)) {\n negated[k] = this.values[k] === 0 ? 0 : -this.values[k];\n }\n return clone(this, { values: negated }, true);\n }\n\n /**\n * Get the years.\n * @type {number}\n */\n get years() {\n return this.isValid ? this.values.years || 0 : NaN;\n }\n\n /**\n * Get the quarters.\n * @type {number}\n */\n get quarters() {\n return this.isValid ? this.values.quarters || 0 : NaN;\n }\n\n /**\n * Get the months.\n * @type {number}\n */\n get months() {\n return this.isValid ? this.values.months || 0 : NaN;\n }\n\n /**\n * Get the weeks\n * @type {number}\n */\n get weeks() {\n return this.isValid ? this.values.weeks || 0 : NaN;\n }\n\n /**\n * Get the days.\n * @type {number}\n */\n get days() {\n return this.isValid ? this.values.days || 0 : NaN;\n }\n\n /**\n * Get the hours.\n * @type {number}\n */\n get hours() {\n return this.isValid ? this.values.hours || 0 : NaN;\n }\n\n /**\n * Get the minutes.\n * @type {number}\n */\n get minutes() {\n return this.isValid ? this.values.minutes || 0 : NaN;\n }\n\n /**\n * Get the seconds.\n * @return {number}\n */\n get seconds() {\n return this.isValid ? this.values.seconds || 0 : NaN;\n }\n\n /**\n * Get the milliseconds.\n * @return {number}\n */\n get milliseconds() {\n return this.isValid ? this.values.milliseconds || 0 : NaN;\n }\n\n /**\n * Returns whether the Duration is invalid. Invalid durations are returned by diff operations\n * on invalid DateTimes or Intervals.\n * @return {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this Duration became invalid, or null if the Duration is valid\n * @return {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Duration became invalid, or null if the Duration is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Equality check\n * Two Durations are equal iff they have the same units and the same values for each unit.\n * @param {Duration} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n if (!this.loc.equals(other.loc)) {\n return false;\n }\n\n function eq(v1, v2) {\n // Consider 0 and undefined as equal\n if (v1 === undefined || v1 === 0) return v2 === undefined || v2 === 0;\n return v1 === v2;\n }\n\n for (const u of orderedUnits) {\n if (!eq(this.values[u], other.values[u])) {\n return false;\n }\n }\n return true;\n }\n}\n","import DateTime, { friendlyDateTime } from \"./datetime.js\";\nimport Duration from \"./duration.js\";\nimport Settings from \"./settings.js\";\nimport { InvalidArgumentError, InvalidIntervalError } from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\n\nconst INVALID = \"Invalid Interval\";\n\n// checks if the start is equal to or before the end\nfunction validateStartEnd(start, end) {\n if (!start || !start.isValid) {\n return Interval.invalid(\"missing or invalid start\");\n } else if (!end || !end.isValid) {\n return Interval.invalid(\"missing or invalid end\");\n } else if (end < start) {\n return Interval.invalid(\n \"end before start\",\n `The end of an interval must be after its start, but you had start=${start.toISO()} and end=${end.toISO()}`\n );\n } else {\n return null;\n }\n}\n\n/**\n * An Interval object represents a half-open interval of time, where each endpoint is a {@link DateTime}. Conceptually, it's a container for those two endpoints, accompanied by methods for creating, parsing, interrogating, comparing, transforming, and formatting them.\n *\n * Here is a brief overview of the most commonly used methods and getters in Interval:\n *\n * * **Creation** To create an Interval, use {@link Interval#fromDateTimes}, {@link Interval#after}, {@link Interval#before}, or {@link Interval#fromISO}.\n * * **Accessors** Use {@link Interval#start} and {@link Interval#end} to get the start and end.\n * * **Interrogation** To analyze the Interval, use {@link Interval#count}, {@link Interval#length}, {@link Interval#hasSame}, {@link Interval#contains}, {@link Interval#isAfter}, or {@link Interval#isBefore}.\n * * **Transformation** To create other Intervals out of this one, use {@link Interval#set}, {@link Interval#splitAt}, {@link Interval#splitBy}, {@link Interval#divideEqually}, {@link Interval#merge}, {@link Interval#xor}, {@link Interval#union}, {@link Interval#intersection}, or {@link Interval#difference}.\n * * **Comparison** To compare this Interval to another one, use {@link Interval#equals}, {@link Interval#overlaps}, {@link Interval#abutsStart}, {@link Interval#abutsEnd}, {@link Interval#engulfs}\n * * **Output** To convert the Interval into other representations, see {@link Interval#toString}, {@link Interval#toISO}, {@link Interval#toISODate}, {@link Interval#toISOTime}, {@link Interval#toFormat}, and {@link Interval#toDuration}.\n */\nexport default class Interval {\n /**\n * @private\n */\n constructor(config) {\n /**\n * @access private\n */\n this.s = config.start;\n /**\n * @access private\n */\n this.e = config.end;\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.isLuxonInterval = true;\n }\n\n /**\n * Create an invalid Interval.\n * @param {string} reason - simple string of why this Interval is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Interval}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Interval is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidIntervalError(invalid);\n } else {\n return new Interval({ invalid });\n }\n }\n\n /**\n * Create an Interval from a start DateTime and an end DateTime. Inclusive of the start but not the end.\n * @param {DateTime|Date|Object} start\n * @param {DateTime|Date|Object} end\n * @return {Interval}\n */\n static fromDateTimes(start, end) {\n const builtStart = friendlyDateTime(start),\n builtEnd = friendlyDateTime(end);\n\n const validateError = validateStartEnd(builtStart, builtEnd);\n\n if (validateError == null) {\n return new Interval({\n start: builtStart,\n end: builtEnd,\n });\n } else {\n return validateError;\n }\n }\n\n /**\n * Create an Interval from a start DateTime and a Duration to extend to.\n * @param {DateTime|Date|Object} start\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static after(start, duration) {\n const dur = Duration.fromDurationLike(duration),\n dt = friendlyDateTime(start);\n return Interval.fromDateTimes(dt, dt.plus(dur));\n }\n\n /**\n * Create an Interval from an end DateTime and a Duration to extend backwards to.\n * @param {DateTime|Date|Object} end\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static before(end, duration) {\n const dur = Duration.fromDurationLike(duration),\n dt = friendlyDateTime(end);\n return Interval.fromDateTimes(dt.minus(dur), dt);\n }\n\n /**\n * Create an Interval from an ISO 8601 string.\n * Accepts `/`, `/`, and `/` formats.\n * @param {string} text - the ISO string to parse\n * @param {Object} [opts] - options to pass {@link DateTime#fromISO} and optionally {@link Duration#fromISO}\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {Interval}\n */\n static fromISO(text, opts) {\n const [s, e] = (text || \"\").split(\"/\", 2);\n if (s && e) {\n let start, startIsValid;\n try {\n start = DateTime.fromISO(s, opts);\n startIsValid = start.isValid;\n } catch (e) {\n startIsValid = false;\n }\n\n let end, endIsValid;\n try {\n end = DateTime.fromISO(e, opts);\n endIsValid = end.isValid;\n } catch (e) {\n endIsValid = false;\n }\n\n if (startIsValid && endIsValid) {\n return Interval.fromDateTimes(start, end);\n }\n\n if (startIsValid) {\n const dur = Duration.fromISO(e, opts);\n if (dur.isValid) {\n return Interval.after(start, dur);\n }\n } else if (endIsValid) {\n const dur = Duration.fromISO(s, opts);\n if (dur.isValid) {\n return Interval.before(end, dur);\n }\n }\n }\n return Interval.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n\n /**\n * Check if an object is an Interval. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isInterval(o) {\n return (o && o.isLuxonInterval) || false;\n }\n\n /**\n * Returns the start of the Interval\n * @type {DateTime}\n */\n get start() {\n return this.isValid ? this.s : null;\n }\n\n /**\n * Returns the end of the Interval\n * @type {DateTime}\n */\n get end() {\n return this.isValid ? this.e : null;\n }\n\n /**\n * Returns whether this Interval's end is at least its start, meaning that the Interval isn't 'backwards'.\n * @type {boolean}\n */\n get isValid() {\n return this.invalidReason === null;\n }\n\n /**\n * Returns an error code if this Interval is invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Interval became invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Returns the length of the Interval in the specified unit.\n * @param {string} unit - the unit (such as 'hours' or 'days') to return the length in.\n * @return {number}\n */\n length(unit = \"milliseconds\") {\n return this.isValid ? this.toDuration(...[unit]).get(unit) : NaN;\n }\n\n /**\n * Returns the count of minutes, hours, days, months, or years included in the Interval, even in part.\n * Unlike {@link Interval#length} this counts sections of the calendar, not periods of time, e.g. specifying 'day'\n * asks 'what dates are included in this interval?', not 'how many days long is this interval?'\n * @param {string} [unit='milliseconds'] - the unit of time to count.\n * @return {number}\n */\n count(unit = \"milliseconds\") {\n if (!this.isValid) return NaN;\n const start = this.start.startOf(unit),\n end = this.end.startOf(unit);\n return Math.floor(end.diff(start, unit).get(unit)) + 1;\n }\n\n /**\n * Returns whether this Interval's start and end are both in the same unit of time\n * @param {string} unit - the unit of time to check sameness on\n * @return {boolean}\n */\n hasSame(unit) {\n return this.isValid ? this.isEmpty() || this.e.minus(1).hasSame(this.s, unit) : false;\n }\n\n /**\n * Return whether this Interval has the same start and end DateTimes.\n * @return {boolean}\n */\n isEmpty() {\n return this.s.valueOf() === this.e.valueOf();\n }\n\n /**\n * Return whether this Interval's start is after the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isAfter(dateTime) {\n if (!this.isValid) return false;\n return this.s > dateTime;\n }\n\n /**\n * Return whether this Interval's end is before the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isBefore(dateTime) {\n if (!this.isValid) return false;\n return this.e <= dateTime;\n }\n\n /**\n * Return whether this Interval contains the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n contains(dateTime) {\n if (!this.isValid) return false;\n return this.s <= dateTime && this.e > dateTime;\n }\n\n /**\n * \"Sets\" the start and/or end dates. Returns a newly-constructed Interval.\n * @param {Object} values - the values to set\n * @param {DateTime} values.start - the starting DateTime\n * @param {DateTime} values.end - the ending DateTime\n * @return {Interval}\n */\n set({ start, end } = {}) {\n if (!this.isValid) return this;\n return Interval.fromDateTimes(start || this.s, end || this.e);\n }\n\n /**\n * Split this Interval at each of the specified DateTimes\n * @param {...DateTime} dateTimes - the unit of time to count.\n * @return {Array}\n */\n splitAt(...dateTimes) {\n if (!this.isValid) return [];\n const sorted = dateTimes\n .map(friendlyDateTime)\n .filter((d) => this.contains(d))\n .sort(),\n results = [];\n let { s } = this,\n i = 0;\n\n while (s < this.e) {\n const added = sorted[i] || this.e,\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n i += 1;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into smaller Intervals, each of the specified length.\n * Left over time is grouped into a smaller interval\n * @param {Duration|Object|number} duration - The length of each resulting interval.\n * @return {Array}\n */\n splitBy(duration) {\n const dur = Duration.fromDurationLike(duration);\n\n if (!this.isValid || !dur.isValid || dur.as(\"milliseconds\") === 0) {\n return [];\n }\n\n let { s } = this,\n idx = 1,\n next;\n\n const results = [];\n while (s < this.e) {\n const added = this.start.plus(dur.mapUnits((x) => x * idx));\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n idx += 1;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into the specified number of smaller intervals.\n * @param {number} numberOfParts - The number of Intervals to divide the Interval into.\n * @return {Array}\n */\n divideEqually(numberOfParts) {\n if (!this.isValid) return [];\n return this.splitBy(this.length() / numberOfParts).slice(0, numberOfParts);\n }\n\n /**\n * Return whether this Interval overlaps with the specified Interval\n * @param {Interval} other\n * @return {boolean}\n */\n overlaps(other) {\n return this.e > other.s && this.s < other.e;\n }\n\n /**\n * Return whether this Interval's end is adjacent to the specified Interval's start.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsStart(other) {\n if (!this.isValid) return false;\n return +this.e === +other.s;\n }\n\n /**\n * Return whether this Interval's start is adjacent to the specified Interval's end.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsEnd(other) {\n if (!this.isValid) return false;\n return +other.e === +this.s;\n }\n\n /**\n * Return whether this Interval engulfs the start and end of the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n engulfs(other) {\n if (!this.isValid) return false;\n return this.s <= other.s && this.e >= other.e;\n }\n\n /**\n * Return whether this Interval has the same start and end as the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n return this.s.equals(other.s) && this.e.equals(other.e);\n }\n\n /**\n * Return an Interval representing the intersection of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the maximum start time and the minimum end time of the two Intervals.\n * Returns null if the intersection is empty, meaning, the intervals don't intersect.\n * @param {Interval} other\n * @return {Interval}\n */\n intersection(other) {\n if (!this.isValid) return this;\n const s = this.s > other.s ? this.s : other.s,\n e = this.e < other.e ? this.e : other.e;\n\n if (s >= e) {\n return null;\n } else {\n return Interval.fromDateTimes(s, e);\n }\n }\n\n /**\n * Return an Interval representing the union of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the minimum start time and the maximum end time of the two Intervals.\n * @param {Interval} other\n * @return {Interval}\n */\n union(other) {\n if (!this.isValid) return this;\n const s = this.s < other.s ? this.s : other.s,\n e = this.e > other.e ? this.e : other.e;\n return Interval.fromDateTimes(s, e);\n }\n\n /**\n * Merge an array of Intervals into a equivalent minimal set of Intervals.\n * Combines overlapping and adjacent Intervals.\n * @param {Array} intervals\n * @return {Array}\n */\n static merge(intervals) {\n const [found, final] = intervals\n .sort((a, b) => a.s - b.s)\n .reduce(\n ([sofar, current], item) => {\n if (!current) {\n return [sofar, item];\n } else if (current.overlaps(item) || current.abutsStart(item)) {\n return [sofar, current.union(item)];\n } else {\n return [sofar.concat([current]), item];\n }\n },\n [[], null]\n );\n if (final) {\n found.push(final);\n }\n return found;\n }\n\n /**\n * Return an array of Intervals representing the spans of time that only appear in one of the specified Intervals.\n * @param {Array} intervals\n * @return {Array}\n */\n static xor(intervals) {\n let start = null,\n currentCount = 0;\n const results = [],\n ends = intervals.map((i) => [\n { time: i.s, type: \"s\" },\n { time: i.e, type: \"e\" },\n ]),\n flattened = Array.prototype.concat(...ends),\n arr = flattened.sort((a, b) => a.time - b.time);\n\n for (const i of arr) {\n currentCount += i.type === \"s\" ? 1 : -1;\n\n if (currentCount === 1) {\n start = i.time;\n } else {\n if (start && +start !== +i.time) {\n results.push(Interval.fromDateTimes(start, i.time));\n }\n\n start = null;\n }\n }\n\n return Interval.merge(results);\n }\n\n /**\n * Return an Interval representing the span of time in this Interval that doesn't overlap with any of the specified Intervals.\n * @param {...Interval} intervals\n * @return {Array}\n */\n difference(...intervals) {\n return Interval.xor([this].concat(intervals))\n .map((i) => this.intersection(i))\n .filter((i) => i && !i.isEmpty());\n }\n\n /**\n * Returns a string representation of this Interval appropriate for debugging.\n * @return {string}\n */\n toString() {\n if (!this.isValid) return INVALID;\n return `[${this.s.toISO()} – ${this.e.toISO()})`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Interval.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime#toISO}\n * @return {string}\n */\n toISO(opts) {\n if (!this.isValid) return INVALID;\n return `${this.s.toISO(opts)}/${this.e.toISO(opts)}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of date of this Interval.\n * The time components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {string}\n */\n toISODate() {\n if (!this.isValid) return INVALID;\n return `${this.s.toISODate()}/${this.e.toISODate()}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of time of this Interval.\n * The date components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime#toISO}\n * @return {string}\n */\n toISOTime(opts) {\n if (!this.isValid) return INVALID;\n return `${this.s.toISOTime(opts)}/${this.e.toISOTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this Interval formatted according to the specified format string.\n * @param {string} dateFormat - the format string. This string formats the start and end time. See {@link DateTime#toFormat} for details.\n * @param {Object} opts - options\n * @param {string} [opts.separator = ' – '] - a separator to place between the start and end representations\n * @return {string}\n */\n toFormat(dateFormat, { separator = \" – \" } = {}) {\n if (!this.isValid) return INVALID;\n return `${this.s.toFormat(dateFormat)}${separator}${this.e.toFormat(dateFormat)}`;\n }\n\n /**\n * Return a Duration representing the time spanned by this interval.\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example Interval.fromDateTimes(dt1, dt2).toDuration().toObject() //=> { milliseconds: 88489257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('days').toObject() //=> { days: 1.0241812152777778 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes']).toObject() //=> { hours: 24, minutes: 34.82095 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes', 'seconds']).toObject() //=> { hours: 24, minutes: 34, seconds: 49.257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('seconds').toObject() //=> { seconds: 88489.257 }\n * @return {Duration}\n */\n toDuration(unit, opts) {\n if (!this.isValid) {\n return Duration.invalid(this.invalidReason);\n }\n return this.e.diff(this.s, unit, opts);\n }\n\n /**\n * Run mapFn on the interval start and end, returning a new Interval from the resulting DateTimes\n * @param {function} mapFn\n * @return {Interval}\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.toUTC())\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.plus({ hours: 2 }))\n */\n mapEndpoints(mapFn) {\n return Interval.fromDateTimes(mapFn(this.s), mapFn(this.e));\n }\n}\n","import DateTime from \"./datetime.js\";\nimport Settings from \"./settings.js\";\nimport Locale from \"./impl/locale.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\n\nimport { hasRelative } from \"./impl/util.js\";\n\n/**\n * The Info class contains static methods for retrieving general time and date related data. For example, it has methods for finding out if a time zone has a DST, for listing the months in any supported locale, and for discovering which of Luxon features are available in the current environment.\n */\nexport default class Info {\n /**\n * Return whether the specified zone contains a DST.\n * @param {string|Zone} [zone='local'] - Zone to check. Defaults to the environment's local zone.\n * @return {boolean}\n */\n static hasDST(zone = Settings.defaultZone) {\n const proto = DateTime.now().setZone(zone).set({ month: 12 });\n\n return !zone.isUniversal && proto.offset !== proto.set({ month: 6 }).offset;\n }\n\n /**\n * Return whether the specified zone is a valid IANA specifier.\n * @param {string} zone - Zone to check\n * @return {boolean}\n */\n static isValidIANAZone(zone) {\n return IANAZone.isValidZone(zone);\n }\n\n /**\n * Converts the input into a {@link Zone} instance.\n *\n * * If `input` is already a Zone instance, it is returned unchanged.\n * * If `input` is a string containing a valid time zone name, a Zone instance\n * with that name is returned.\n * * If `input` is a string that doesn't refer to a known time zone, a Zone\n * instance with {@link Zone#isValid} == false is returned.\n * * If `input is a number, a Zone instance with the specified fixed offset\n * in minutes is returned.\n * * If `input` is `null` or `undefined`, the default zone is returned.\n * @param {string|Zone|number} [input] - the value to be converted\n * @return {Zone}\n */\n static normalizeZone(input) {\n return normalizeZone(input, Settings.defaultZone);\n }\n\n /**\n * Return an array of standalone month names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @example Info.months()[0] //=> 'January'\n * @example Info.months('short')[0] //=> 'Jan'\n * @example Info.months('numeric')[0] //=> '1'\n * @example Info.months('short', { locale: 'fr-CA' } )[0] //=> 'janv.'\n * @example Info.months('numeric', { locale: 'ar' })[0] //=> '١'\n * @example Info.months('long', { outputCalendar: 'islamic' })[0] //=> 'Rabiʻ I'\n * @return {Array}\n */\n static months(\n length = \"long\",\n { locale = null, numberingSystem = null, locObj = null, outputCalendar = \"gregory\" } = {}\n ) {\n return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length);\n }\n\n /**\n * Return an array of format month names.\n * Format months differ from standalone months in that they're meant to appear next to the day of the month. In some languages, that\n * changes the string.\n * See {@link Info#months}\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @return {Array}\n */\n static monthsFormat(\n length = \"long\",\n { locale = null, numberingSystem = null, locObj = null, outputCalendar = \"gregory\" } = {}\n ) {\n return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length, true);\n }\n\n /**\n * Return an array of standalone week names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the weekday representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @example Info.weekdays()[0] //=> 'Monday'\n * @example Info.weekdays('short')[0] //=> 'Mon'\n * @example Info.weekdays('short', { locale: 'fr-CA' })[0] //=> 'lun.'\n * @example Info.weekdays('short', { locale: 'ar' })[0] //=> 'الاثنين'\n * @return {Array}\n */\n static weekdays(length = \"long\", { locale = null, numberingSystem = null, locObj = null } = {}) {\n return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length);\n }\n\n /**\n * Return an array of format week names.\n * Format weekdays differ from standalone weekdays in that they're meant to appear next to more date information. In some languages, that\n * changes the string.\n * See {@link Info#weekdays}\n * @param {string} [length='long'] - the length of the month representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale=null] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @return {Array}\n */\n static weekdaysFormat(\n length = \"long\",\n { locale = null, numberingSystem = null, locObj = null } = {}\n ) {\n return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length, true);\n }\n\n /**\n * Return an array of meridiems.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.meridiems() //=> [ 'AM', 'PM' ]\n * @example Info.meridiems({ locale: 'my' }) //=> [ 'နံနက်', 'ညနေ' ]\n * @return {Array}\n */\n static meridiems({ locale = null } = {}) {\n return Locale.create(locale).meridiems();\n }\n\n /**\n * Return an array of eras, such as ['BC', 'AD']. The locale can be specified, but the calendar system is always Gregorian.\n * @param {string} [length='short'] - the length of the era representation, such as \"short\" or \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.eras() //=> [ 'BC', 'AD' ]\n * @example Info.eras('long') //=> [ 'Before Christ', 'Anno Domini' ]\n * @example Info.eras('long', { locale: 'fr' }) //=> [ 'avant Jésus-Christ', 'après Jésus-Christ' ]\n * @return {Array}\n */\n static eras(length = \"short\", { locale = null } = {}) {\n return Locale.create(locale, null, \"gregory\").eras(length);\n }\n\n /**\n * Return the set of available features in this environment.\n * Some features of Luxon are not available in all environments. For example, on older browsers, relative time formatting support is not available. Use this function to figure out if that's the case.\n * Keys:\n * * `relative`: whether this environment supports relative time formatting\n * @example Info.features() //=> { relative: false }\n * @return {Object}\n */\n static features() {\n return { relative: hasRelative() };\n }\n}\n","import Duration from \"../duration.js\";\n\nfunction dayDiff(earlier, later) {\n const utcDayStart = (dt) => dt.toUTC(0, { keepLocalTime: true }).startOf(\"day\").valueOf(),\n ms = utcDayStart(later) - utcDayStart(earlier);\n return Math.floor(Duration.fromMillis(ms).as(\"days\"));\n}\n\nfunction highOrderDiffs(cursor, later, units) {\n const differs = [\n [\"years\", (a, b) => b.year - a.year],\n [\"quarters\", (a, b) => b.quarter - a.quarter],\n [\"months\", (a, b) => b.month - a.month + (b.year - a.year) * 12],\n [\n \"weeks\",\n (a, b) => {\n const days = dayDiff(a, b);\n return (days - (days % 7)) / 7;\n },\n ],\n [\"days\", dayDiff],\n ];\n\n const results = {};\n let lowestOrder, highWater;\n\n for (const [unit, differ] of differs) {\n if (units.indexOf(unit) >= 0) {\n lowestOrder = unit;\n\n let delta = differ(cursor, later);\n highWater = cursor.plus({ [unit]: delta });\n\n if (highWater > later) {\n cursor = cursor.plus({ [unit]: delta - 1 });\n delta -= 1;\n } else {\n cursor = highWater;\n }\n\n results[unit] = delta;\n }\n }\n\n return [cursor, results, highWater, lowestOrder];\n}\n\nexport default function (earlier, later, units, opts) {\n let [cursor, results, highWater, lowestOrder] = highOrderDiffs(earlier, later, units);\n\n const remainingMillis = later - cursor;\n\n const lowerOrderUnits = units.filter(\n (u) => [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"].indexOf(u) >= 0\n );\n\n if (lowerOrderUnits.length === 0) {\n if (highWater < later) {\n highWater = cursor.plus({ [lowestOrder]: 1 });\n }\n\n if (highWater !== cursor) {\n results[lowestOrder] = (results[lowestOrder] || 0) + remainingMillis / (highWater - cursor);\n }\n }\n\n const duration = Duration.fromObject(results, opts);\n\n if (lowerOrderUnits.length > 0) {\n return Duration.fromMillis(remainingMillis, opts)\n .shiftTo(...lowerOrderUnits)\n .plus(duration);\n } else {\n return duration;\n }\n}\n","const numberingSystems = {\n arab: \"[\\u0660-\\u0669]\",\n arabext: \"[\\u06F0-\\u06F9]\",\n bali: \"[\\u1B50-\\u1B59]\",\n beng: \"[\\u09E6-\\u09EF]\",\n deva: \"[\\u0966-\\u096F]\",\n fullwide: \"[\\uFF10-\\uFF19]\",\n gujr: \"[\\u0AE6-\\u0AEF]\",\n hanidec: \"[〇|一|二|三|四|五|六|七|八|九]\",\n khmr: \"[\\u17E0-\\u17E9]\",\n knda: \"[\\u0CE6-\\u0CEF]\",\n laoo: \"[\\u0ED0-\\u0ED9]\",\n limb: \"[\\u1946-\\u194F]\",\n mlym: \"[\\u0D66-\\u0D6F]\",\n mong: \"[\\u1810-\\u1819]\",\n mymr: \"[\\u1040-\\u1049]\",\n orya: \"[\\u0B66-\\u0B6F]\",\n tamldec: \"[\\u0BE6-\\u0BEF]\",\n telu: \"[\\u0C66-\\u0C6F]\",\n thai: \"[\\u0E50-\\u0E59]\",\n tibt: \"[\\u0F20-\\u0F29]\",\n latn: \"\\\\d\",\n};\n\nconst numberingSystemsUTF16 = {\n arab: [1632, 1641],\n arabext: [1776, 1785],\n bali: [6992, 7001],\n beng: [2534, 2543],\n deva: [2406, 2415],\n fullwide: [65296, 65303],\n gujr: [2790, 2799],\n khmr: [6112, 6121],\n knda: [3302, 3311],\n laoo: [3792, 3801],\n limb: [6470, 6479],\n mlym: [3430, 3439],\n mong: [6160, 6169],\n mymr: [4160, 4169],\n orya: [2918, 2927],\n tamldec: [3046, 3055],\n telu: [3174, 3183],\n thai: [3664, 3673],\n tibt: [3872, 3881],\n};\n\nconst hanidecChars = numberingSystems.hanidec.replace(/[\\[|\\]]/g, \"\").split(\"\");\n\nexport function parseDigits(str) {\n let value = parseInt(str, 10);\n if (isNaN(value)) {\n value = \"\";\n for (let i = 0; i < str.length; i++) {\n const code = str.charCodeAt(i);\n\n if (str[i].search(numberingSystems.hanidec) !== -1) {\n value += hanidecChars.indexOf(str[i]);\n } else {\n for (const key in numberingSystemsUTF16) {\n const [min, max] = numberingSystemsUTF16[key];\n if (code >= min && code <= max) {\n value += code - min;\n }\n }\n }\n }\n return parseInt(value, 10);\n } else {\n return value;\n }\n}\n\nexport function digitRegex({ numberingSystem }, append = \"\") {\n return new RegExp(`${numberingSystems[numberingSystem || \"latn\"]}${append}`);\n}\n","import { parseMillis, isUndefined, untruncateYear, signedOffset, hasOwnProperty } from \"./util.js\";\nimport Formatter from \"./formatter.js\";\nimport FixedOffsetZone from \"../zones/fixedOffsetZone.js\";\nimport IANAZone from \"../zones/IANAZone.js\";\nimport DateTime from \"../datetime.js\";\nimport { digitRegex, parseDigits } from \"./digits.js\";\nimport { ConflictingSpecificationError } from \"../errors.js\";\n\nconst MISSING_FTP = \"missing Intl.DateTimeFormat.formatToParts support\";\n\nfunction intUnit(regex, post = (i) => i) {\n return { regex, deser: ([s]) => post(parseDigits(s)) };\n}\n\nconst NBSP = String.fromCharCode(160);\nconst spaceOrNBSP = `[ ${NBSP}]`;\nconst spaceOrNBSPRegExp = new RegExp(spaceOrNBSP, \"g\");\n\nfunction fixListRegex(s) {\n // make dots optional and also make them literal\n // make space and non breakable space characters interchangeable\n return s.replace(/\\./g, \"\\\\.?\").replace(spaceOrNBSPRegExp, spaceOrNBSP);\n}\n\nfunction stripInsensitivities(s) {\n return s\n .replace(/\\./g, \"\") // ignore dots that were made optional\n .replace(spaceOrNBSPRegExp, \" \") // interchange space and nbsp\n .toLowerCase();\n}\n\nfunction oneOf(strings, startIndex) {\n if (strings === null) {\n return null;\n } else {\n return {\n regex: RegExp(strings.map(fixListRegex).join(\"|\")),\n deser: ([s]) =>\n strings.findIndex((i) => stripInsensitivities(s) === stripInsensitivities(i)) + startIndex,\n };\n }\n}\n\nfunction offset(regex, groups) {\n return { regex, deser: ([, h, m]) => signedOffset(h, m), groups };\n}\n\nfunction simple(regex) {\n return { regex, deser: ([s]) => s };\n}\n\nfunction escapeToken(value) {\n return value.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, \"\\\\$&\");\n}\n\nfunction unitForToken(token, loc) {\n const one = digitRegex(loc),\n two = digitRegex(loc, \"{2}\"),\n three = digitRegex(loc, \"{3}\"),\n four = digitRegex(loc, \"{4}\"),\n six = digitRegex(loc, \"{6}\"),\n oneOrTwo = digitRegex(loc, \"{1,2}\"),\n oneToThree = digitRegex(loc, \"{1,3}\"),\n oneToSix = digitRegex(loc, \"{1,6}\"),\n oneToNine = digitRegex(loc, \"{1,9}\"),\n twoToFour = digitRegex(loc, \"{2,4}\"),\n fourToSix = digitRegex(loc, \"{4,6}\"),\n literal = (t) => ({ regex: RegExp(escapeToken(t.val)), deser: ([s]) => s, literal: true }),\n unitate = (t) => {\n if (token.literal) {\n return literal(t);\n }\n switch (t.val) {\n // era\n case \"G\":\n return oneOf(loc.eras(\"short\", false), 0);\n case \"GG\":\n return oneOf(loc.eras(\"long\", false), 0);\n // years\n case \"y\":\n return intUnit(oneToSix);\n case \"yy\":\n return intUnit(twoToFour, untruncateYear);\n case \"yyyy\":\n return intUnit(four);\n case \"yyyyy\":\n return intUnit(fourToSix);\n case \"yyyyyy\":\n return intUnit(six);\n // months\n case \"M\":\n return intUnit(oneOrTwo);\n case \"MM\":\n return intUnit(two);\n case \"MMM\":\n return oneOf(loc.months(\"short\", true, false), 1);\n case \"MMMM\":\n return oneOf(loc.months(\"long\", true, false), 1);\n case \"L\":\n return intUnit(oneOrTwo);\n case \"LL\":\n return intUnit(two);\n case \"LLL\":\n return oneOf(loc.months(\"short\", false, false), 1);\n case \"LLLL\":\n return oneOf(loc.months(\"long\", false, false), 1);\n // dates\n case \"d\":\n return intUnit(oneOrTwo);\n case \"dd\":\n return intUnit(two);\n // ordinals\n case \"o\":\n return intUnit(oneToThree);\n case \"ooo\":\n return intUnit(three);\n // time\n case \"HH\":\n return intUnit(two);\n case \"H\":\n return intUnit(oneOrTwo);\n case \"hh\":\n return intUnit(two);\n case \"h\":\n return intUnit(oneOrTwo);\n case \"mm\":\n return intUnit(two);\n case \"m\":\n return intUnit(oneOrTwo);\n case \"q\":\n return intUnit(oneOrTwo);\n case \"qq\":\n return intUnit(two);\n case \"s\":\n return intUnit(oneOrTwo);\n case \"ss\":\n return intUnit(two);\n case \"S\":\n return intUnit(oneToThree);\n case \"SSS\":\n return intUnit(three);\n case \"u\":\n return simple(oneToNine);\n case \"uu\":\n return simple(oneOrTwo);\n case \"uuu\":\n return intUnit(one);\n // meridiem\n case \"a\":\n return oneOf(loc.meridiems(), 0);\n // weekYear (k)\n case \"kkkk\":\n return intUnit(four);\n case \"kk\":\n return intUnit(twoToFour, untruncateYear);\n // weekNumber (W)\n case \"W\":\n return intUnit(oneOrTwo);\n case \"WW\":\n return intUnit(two);\n // weekdays\n case \"E\":\n case \"c\":\n return intUnit(one);\n case \"EEE\":\n return oneOf(loc.weekdays(\"short\", false, false), 1);\n case \"EEEE\":\n return oneOf(loc.weekdays(\"long\", false, false), 1);\n case \"ccc\":\n return oneOf(loc.weekdays(\"short\", true, false), 1);\n case \"cccc\":\n return oneOf(loc.weekdays(\"long\", true, false), 1);\n // offset/zone\n case \"Z\":\n case \"ZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(?::(${two.source}))?`), 2);\n case \"ZZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(${two.source})?`), 2);\n // we don't support ZZZZ (PST) or ZZZZZ (Pacific Standard Time) in parsing\n // because we don't have any way to figure out what they are\n case \"z\":\n return simple(/[a-z_+-/]{1,256}?/i);\n default:\n return literal(t);\n }\n };\n\n const unit = unitate(token) || {\n invalidReason: MISSING_FTP,\n };\n\n unit.token = token;\n\n return unit;\n}\n\nconst partTypeStyleToTokenVal = {\n year: {\n \"2-digit\": \"yy\",\n numeric: \"yyyyy\",\n },\n month: {\n numeric: \"M\",\n \"2-digit\": \"MM\",\n short: \"MMM\",\n long: \"MMMM\",\n },\n day: {\n numeric: \"d\",\n \"2-digit\": \"dd\",\n },\n weekday: {\n short: \"EEE\",\n long: \"EEEE\",\n },\n dayperiod: \"a\",\n dayPeriod: \"a\",\n hour: {\n numeric: \"h\",\n \"2-digit\": \"hh\",\n },\n minute: {\n numeric: \"m\",\n \"2-digit\": \"mm\",\n },\n second: {\n numeric: \"s\",\n \"2-digit\": \"ss\",\n },\n};\n\nfunction tokenForPart(part, locale, formatOpts) {\n const { type, value } = part;\n\n if (type === \"literal\") {\n return {\n literal: true,\n val: value,\n };\n }\n\n const style = formatOpts[type];\n\n let val = partTypeStyleToTokenVal[type];\n if (typeof val === \"object\") {\n val = val[style];\n }\n\n if (val) {\n return {\n literal: false,\n val,\n };\n }\n\n return undefined;\n}\n\nfunction buildRegex(units) {\n const re = units.map((u) => u.regex).reduce((f, r) => `${f}(${r.source})`, \"\");\n return [`^${re}$`, units];\n}\n\nfunction match(input, regex, handlers) {\n const matches = input.match(regex);\n\n if (matches) {\n const all = {};\n let matchIndex = 1;\n for (const i in handlers) {\n if (hasOwnProperty(handlers, i)) {\n const h = handlers[i],\n groups = h.groups ? h.groups + 1 : 1;\n if (!h.literal && h.token) {\n all[h.token.val[0]] = h.deser(matches.slice(matchIndex, matchIndex + groups));\n }\n matchIndex += groups;\n }\n }\n return [matches, all];\n } else {\n return [matches, {}];\n }\n}\n\nfunction dateTimeFromMatches(matches) {\n const toField = (token) => {\n switch (token) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n case \"H\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"o\":\n return \"ordinal\";\n case \"L\":\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n case \"E\":\n case \"c\":\n return \"weekday\";\n case \"W\":\n return \"weekNumber\";\n case \"k\":\n return \"weekYear\";\n case \"q\":\n return \"quarter\";\n default:\n return null;\n }\n };\n\n let zone = null;\n let specificOffset;\n if (!isUndefined(matches.z)) {\n zone = IANAZone.create(matches.z);\n }\n\n if (!isUndefined(matches.Z)) {\n if (!zone) {\n zone = new FixedOffsetZone(matches.Z);\n }\n specificOffset = matches.Z;\n }\n\n if (!isUndefined(matches.q)) {\n matches.M = (matches.q - 1) * 3 + 1;\n }\n\n if (!isUndefined(matches.h)) {\n if (matches.h < 12 && matches.a === 1) {\n matches.h += 12;\n } else if (matches.h === 12 && matches.a === 0) {\n matches.h = 0;\n }\n }\n\n if (matches.G === 0 && matches.y) {\n matches.y = -matches.y;\n }\n\n if (!isUndefined(matches.u)) {\n matches.S = parseMillis(matches.u);\n }\n\n const vals = Object.keys(matches).reduce((r, k) => {\n const f = toField(k);\n if (f) {\n r[f] = matches[k];\n }\n\n return r;\n }, {});\n\n return [vals, zone, specificOffset];\n}\n\nlet dummyDateTimeCache = null;\n\nfunction getDummyDateTime() {\n if (!dummyDateTimeCache) {\n dummyDateTimeCache = DateTime.fromMillis(1555555555555);\n }\n\n return dummyDateTimeCache;\n}\n\nfunction maybeExpandMacroToken(token, locale) {\n if (token.literal) {\n return token;\n }\n\n const formatOpts = Formatter.macroTokenToFormatOpts(token.val);\n\n if (!formatOpts) {\n return token;\n }\n\n const formatter = Formatter.create(locale, formatOpts);\n const parts = formatter.formatDateTimeParts(getDummyDateTime());\n\n const tokens = parts.map((p) => tokenForPart(p, locale, formatOpts));\n\n if (tokens.includes(undefined)) {\n return token;\n }\n\n return tokens;\n}\n\nfunction expandMacroTokens(tokens, locale) {\n return Array.prototype.concat(...tokens.map((t) => maybeExpandMacroToken(t, locale)));\n}\n\n/**\n * @private\n */\n\nexport function explainFromTokens(locale, input, format) {\n const tokens = expandMacroTokens(Formatter.parseFormat(format), locale),\n units = tokens.map((t) => unitForToken(t, locale)),\n disqualifyingUnit = units.find((t) => t.invalidReason);\n\n if (disqualifyingUnit) {\n return { input, tokens, invalidReason: disqualifyingUnit.invalidReason };\n } else {\n const [regexString, handlers] = buildRegex(units),\n regex = RegExp(regexString, \"i\"),\n [rawMatches, matches] = match(input, regex, handlers),\n [result, zone, specificOffset] = matches\n ? dateTimeFromMatches(matches)\n : [null, null, undefined];\n if (hasOwnProperty(matches, \"a\") && hasOwnProperty(matches, \"H\")) {\n throw new ConflictingSpecificationError(\n \"Can't include meridiem when specifying 24-hour format\"\n );\n }\n return { input, tokens, regex, rawMatches, matches, result, zone, specificOffset };\n }\n}\n\nexport function parseFromTokens(locale, input, format) {\n const { result, zone, specificOffset, invalidReason } = explainFromTokens(locale, input, format);\n return [result, zone, specificOffset, invalidReason];\n}\n","import {\n integerBetween,\n isLeapYear,\n timeObject,\n daysInYear,\n daysInMonth,\n weeksInWeekYear,\n isInteger,\n} from \"./util.js\";\nimport Invalid from \"./invalid.js\";\n\nconst nonLeapLadder = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],\n leapLadder = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335];\n\nfunction unitOutOfRange(unit, value) {\n return new Invalid(\n \"unit out of range\",\n `you specified ${value} (of type ${typeof value}) as a ${unit}, which is invalid`\n );\n}\n\nfunction dayOfWeek(year, month, day) {\n const d = new Date(Date.UTC(year, month - 1, day));\n\n if (year < 100 && year >= 0) {\n d.setUTCFullYear(d.getUTCFullYear() - 1900);\n }\n\n const js = d.getUTCDay();\n\n return js === 0 ? 7 : js;\n}\n\nfunction computeOrdinal(year, month, day) {\n return day + (isLeapYear(year) ? leapLadder : nonLeapLadder)[month - 1];\n}\n\nfunction uncomputeOrdinal(year, ordinal) {\n const table = isLeapYear(year) ? leapLadder : nonLeapLadder,\n month0 = table.findIndex((i) => i < ordinal),\n day = ordinal - table[month0];\n return { month: month0 + 1, day };\n}\n\n/**\n * @private\n */\n\nexport function gregorianToWeek(gregObj) {\n const { year, month, day } = gregObj,\n ordinal = computeOrdinal(year, month, day),\n weekday = dayOfWeek(year, month, day);\n\n let weekNumber = Math.floor((ordinal - weekday + 10) / 7),\n weekYear;\n\n if (weekNumber < 1) {\n weekYear = year - 1;\n weekNumber = weeksInWeekYear(weekYear);\n } else if (weekNumber > weeksInWeekYear(year)) {\n weekYear = year + 1;\n weekNumber = 1;\n } else {\n weekYear = year;\n }\n\n return { weekYear, weekNumber, weekday, ...timeObject(gregObj) };\n}\n\nexport function weekToGregorian(weekData) {\n const { weekYear, weekNumber, weekday } = weekData,\n weekdayOfJan4 = dayOfWeek(weekYear, 1, 4),\n yearInDays = daysInYear(weekYear);\n\n let ordinal = weekNumber * 7 + weekday - weekdayOfJan4 - 3,\n year;\n\n if (ordinal < 1) {\n year = weekYear - 1;\n ordinal += daysInYear(year);\n } else if (ordinal > yearInDays) {\n year = weekYear + 1;\n ordinal -= daysInYear(weekYear);\n } else {\n year = weekYear;\n }\n\n const { month, day } = uncomputeOrdinal(year, ordinal);\n return { year, month, day, ...timeObject(weekData) };\n}\n\nexport function gregorianToOrdinal(gregData) {\n const { year, month, day } = gregData;\n const ordinal = computeOrdinal(year, month, day);\n return { year, ordinal, ...timeObject(gregData) };\n}\n\nexport function ordinalToGregorian(ordinalData) {\n const { year, ordinal } = ordinalData;\n const { month, day } = uncomputeOrdinal(year, ordinal);\n return { year, month, day, ...timeObject(ordinalData) };\n}\n\nexport function hasInvalidWeekData(obj) {\n const validYear = isInteger(obj.weekYear),\n validWeek = integerBetween(obj.weekNumber, 1, weeksInWeekYear(obj.weekYear)),\n validWeekday = integerBetween(obj.weekday, 1, 7);\n\n if (!validYear) {\n return unitOutOfRange(\"weekYear\", obj.weekYear);\n } else if (!validWeek) {\n return unitOutOfRange(\"week\", obj.week);\n } else if (!validWeekday) {\n return unitOutOfRange(\"weekday\", obj.weekday);\n } else return false;\n}\n\nexport function hasInvalidOrdinalData(obj) {\n const validYear = isInteger(obj.year),\n validOrdinal = integerBetween(obj.ordinal, 1, daysInYear(obj.year));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validOrdinal) {\n return unitOutOfRange(\"ordinal\", obj.ordinal);\n } else return false;\n}\n\nexport function hasInvalidGregorianData(obj) {\n const validYear = isInteger(obj.year),\n validMonth = integerBetween(obj.month, 1, 12),\n validDay = integerBetween(obj.day, 1, daysInMonth(obj.year, obj.month));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validMonth) {\n return unitOutOfRange(\"month\", obj.month);\n } else if (!validDay) {\n return unitOutOfRange(\"day\", obj.day);\n } else return false;\n}\n\nexport function hasInvalidTimeData(obj) {\n const { hour, minute, second, millisecond } = obj;\n const validHour =\n integerBetween(hour, 0, 23) ||\n (hour === 24 && minute === 0 && second === 0 && millisecond === 0),\n validMinute = integerBetween(minute, 0, 59),\n validSecond = integerBetween(second, 0, 59),\n validMillisecond = integerBetween(millisecond, 0, 999);\n\n if (!validHour) {\n return unitOutOfRange(\"hour\", hour);\n } else if (!validMinute) {\n return unitOutOfRange(\"minute\", minute);\n } else if (!validSecond) {\n return unitOutOfRange(\"second\", second);\n } else if (!validMillisecond) {\n return unitOutOfRange(\"millisecond\", millisecond);\n } else return false;\n}\n","import Duration from \"./duration.js\";\nimport Interval from \"./interval.js\";\nimport Settings from \"./settings.js\";\nimport Info from \"./info.js\";\nimport Formatter from \"./impl/formatter.js\";\nimport FixedOffsetZone from \"./zones/fixedOffsetZone.js\";\nimport Locale from \"./impl/locale.js\";\nimport {\n isUndefined,\n maybeArray,\n isDate,\n isNumber,\n bestBy,\n daysInMonth,\n daysInYear,\n isLeapYear,\n weeksInWeekYear,\n normalizeObject,\n roundTo,\n objToLocalTS,\n padStart,\n} from \"./impl/util.js\";\nimport { normalizeZone } from \"./impl/zoneUtil.js\";\nimport diff from \"./impl/diff.js\";\nimport { parseRFC2822Date, parseISODate, parseHTTPDate, parseSQL } from \"./impl/regexParser.js\";\nimport { parseFromTokens, explainFromTokens } from \"./impl/tokenParser.js\";\nimport {\n gregorianToWeek,\n weekToGregorian,\n gregorianToOrdinal,\n ordinalToGregorian,\n hasInvalidGregorianData,\n hasInvalidWeekData,\n hasInvalidOrdinalData,\n hasInvalidTimeData,\n} from \"./impl/conversions.js\";\nimport * as Formats from \"./impl/formats.js\";\nimport {\n InvalidArgumentError,\n ConflictingSpecificationError,\n InvalidUnitError,\n InvalidDateTimeError,\n} from \"./errors.js\";\nimport Invalid from \"./impl/invalid.js\";\n\nconst INVALID = \"Invalid DateTime\";\nconst MAX_DATE = 8.64e15;\n\nfunction unsupportedZone(zone) {\n return new Invalid(\"unsupported zone\", `the zone \"${zone.name}\" is not supported`);\n}\n\n// we cache week data on the DT object and this intermediates the cache\nfunction possiblyCachedWeekData(dt) {\n if (dt.weekData === null) {\n dt.weekData = gregorianToWeek(dt.c);\n }\n return dt.weekData;\n}\n\n// clone really means, \"make a new object with these modifications\". all \"setters\" really use this\n// to create a new object while only changing some of the properties\nfunction clone(inst, alts) {\n const current = {\n ts: inst.ts,\n zone: inst.zone,\n c: inst.c,\n o: inst.o,\n loc: inst.loc,\n invalid: inst.invalid,\n };\n return new DateTime({ ...current, ...alts, old: current });\n}\n\n// find the right offset a given local time. The o input is our guess, which determines which\n// offset we'll pick in ambiguous cases (e.g. there are two 3 AMs b/c Fallback DST)\nfunction fixOffset(localTS, o, tz) {\n // Our UTC time is just a guess because our offset is just a guess\n let utcGuess = localTS - o * 60 * 1000;\n\n // Test whether the zone matches the offset for this ts\n const o2 = tz.offset(utcGuess);\n\n // If so, offset didn't change and we're done\n if (o === o2) {\n return [utcGuess, o];\n }\n\n // If not, change the ts by the difference in the offset\n utcGuess -= (o2 - o) * 60 * 1000;\n\n // If that gives us the local time we want, we're done\n const o3 = tz.offset(utcGuess);\n if (o2 === o3) {\n return [utcGuess, o2];\n }\n\n // If it's different, we're in a hole time. The offset has changed, but the we don't adjust the time\n return [localTS - Math.min(o2, o3) * 60 * 1000, Math.max(o2, o3)];\n}\n\n// convert an epoch timestamp into a calendar object with the given offset\nfunction tsToObj(ts, offset) {\n ts += offset * 60 * 1000;\n\n const d = new Date(ts);\n\n return {\n year: d.getUTCFullYear(),\n month: d.getUTCMonth() + 1,\n day: d.getUTCDate(),\n hour: d.getUTCHours(),\n minute: d.getUTCMinutes(),\n second: d.getUTCSeconds(),\n millisecond: d.getUTCMilliseconds(),\n };\n}\n\n// convert a calendar object to a epoch timestamp\nfunction objToTS(obj, offset, zone) {\n return fixOffset(objToLocalTS(obj), offset, zone);\n}\n\n// create a new DT instance by adding a duration, adjusting for DSTs\nfunction adjustTime(inst, dur) {\n const oPre = inst.o,\n year = inst.c.year + Math.trunc(dur.years),\n month = inst.c.month + Math.trunc(dur.months) + Math.trunc(dur.quarters) * 3,\n c = {\n ...inst.c,\n year,\n month,\n day:\n Math.min(inst.c.day, daysInMonth(year, month)) +\n Math.trunc(dur.days) +\n Math.trunc(dur.weeks) * 7,\n },\n millisToAdd = Duration.fromObject({\n years: dur.years - Math.trunc(dur.years),\n quarters: dur.quarters - Math.trunc(dur.quarters),\n months: dur.months - Math.trunc(dur.months),\n weeks: dur.weeks - Math.trunc(dur.weeks),\n days: dur.days - Math.trunc(dur.days),\n hours: dur.hours,\n minutes: dur.minutes,\n seconds: dur.seconds,\n milliseconds: dur.milliseconds,\n }).as(\"milliseconds\"),\n localTS = objToLocalTS(c);\n\n let [ts, o] = fixOffset(localTS, oPre, inst.zone);\n\n if (millisToAdd !== 0) {\n ts += millisToAdd;\n // that could have changed the offset by going over a DST, but we want to keep the ts the same\n o = inst.zone.offset(ts);\n }\n\n return { ts, o };\n}\n\n// helper useful in turning the results of parsing into real dates\n// by handling the zone options\nfunction parseDataToDateTime(parsed, parsedZone, opts, format, text, specificOffset) {\n const { setZone, zone } = opts;\n if (parsed && Object.keys(parsed).length !== 0) {\n const interpretationZone = parsedZone || zone,\n inst = DateTime.fromObject(parsed, {\n ...opts,\n zone: interpretationZone,\n specificOffset,\n });\n return setZone ? inst : inst.setZone(zone);\n } else {\n return DateTime.invalid(\n new Invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ${format}`)\n );\n }\n}\n\n// if you want to output a technical format (e.g. RFC 2822), this helper\n// helps handle the details\nfunction toTechFormat(dt, format, allowZ = true) {\n return dt.isValid\n ? Formatter.create(Locale.create(\"en-US\"), {\n allowZ,\n forceSimple: true,\n }).formatDateTimeFromString(dt, format)\n : null;\n}\n\nfunction toISODate(o, extended) {\n const longFormat = o.c.year > 9999 || o.c.year < 0;\n let c = \"\";\n if (longFormat && o.c.year >= 0) c += \"+\";\n c += padStart(o.c.year, longFormat ? 6 : 4);\n\n if (extended) {\n c += \"-\";\n c += padStart(o.c.month);\n c += \"-\";\n c += padStart(o.c.day);\n } else {\n c += padStart(o.c.month);\n c += padStart(o.c.day);\n }\n return c;\n}\n\nfunction toISOTime(\n o,\n extended,\n suppressSeconds,\n suppressMilliseconds,\n includeOffset,\n extendedZone\n) {\n let c = padStart(o.c.hour);\n if (extended) {\n c += \":\";\n c += padStart(o.c.minute);\n if (o.c.second !== 0 || !suppressSeconds) {\n c += \":\";\n }\n } else {\n c += padStart(o.c.minute);\n }\n\n if (o.c.second !== 0 || !suppressSeconds) {\n c += padStart(o.c.second);\n\n if (o.c.millisecond !== 0 || !suppressMilliseconds) {\n c += \".\";\n c += padStart(o.c.millisecond, 3);\n }\n }\n\n if (includeOffset) {\n if (o.isOffsetFixed && o.offset === 0 && !extendedZone) {\n c += \"Z\";\n } else if (o.o < 0) {\n c += \"-\";\n c += padStart(Math.trunc(-o.o / 60));\n c += \":\";\n c += padStart(Math.trunc(-o.o % 60));\n } else {\n c += \"+\";\n c += padStart(Math.trunc(o.o / 60));\n c += \":\";\n c += padStart(Math.trunc(o.o % 60));\n }\n }\n\n if (extendedZone) {\n c += \"[\" + o.zone.ianaName + \"]\";\n }\n return c;\n}\n\n// defaults for unspecified units in the supported calendars\nconst defaultUnitValues = {\n month: 1,\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n },\n defaultWeekUnitValues = {\n weekNumber: 1,\n weekday: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n },\n defaultOrdinalUnitValues = {\n ordinal: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n };\n\n// Units in the supported calendars, sorted by bigness\nconst orderedUnits = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\", \"millisecond\"],\n orderedWeekUnits = [\n \"weekYear\",\n \"weekNumber\",\n \"weekday\",\n \"hour\",\n \"minute\",\n \"second\",\n \"millisecond\",\n ],\n orderedOrdinalUnits = [\"year\", \"ordinal\", \"hour\", \"minute\", \"second\", \"millisecond\"];\n\n// standardize case and plurality in units\nfunction normalizeUnit(unit) {\n const normalized = {\n year: \"year\",\n years: \"year\",\n month: \"month\",\n months: \"month\",\n day: \"day\",\n days: \"day\",\n hour: \"hour\",\n hours: \"hour\",\n minute: \"minute\",\n minutes: \"minute\",\n quarter: \"quarter\",\n quarters: \"quarter\",\n second: \"second\",\n seconds: \"second\",\n millisecond: \"millisecond\",\n milliseconds: \"millisecond\",\n weekday: \"weekday\",\n weekdays: \"weekday\",\n weeknumber: \"weekNumber\",\n weeksnumber: \"weekNumber\",\n weeknumbers: \"weekNumber\",\n weekyear: \"weekYear\",\n weekyears: \"weekYear\",\n ordinal: \"ordinal\",\n }[unit.toLowerCase()];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n}\n\n// this is a dumbed down version of fromObject() that runs about 60% faster\n// but doesn't do any validation, makes a bunch of assumptions about what units\n// are present, and so on.\nfunction quickDT(obj, opts) {\n const zone = normalizeZone(opts.zone, Settings.defaultZone),\n loc = Locale.fromObject(opts),\n tsNow = Settings.now();\n\n let ts, o;\n\n // assume we have the higher-order units\n if (!isUndefined(obj.year)) {\n for (const u of orderedUnits) {\n if (isUndefined(obj[u])) {\n obj[u] = defaultUnitValues[u];\n }\n }\n\n const invalid = hasInvalidGregorianData(obj) || hasInvalidTimeData(obj);\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n const offsetProvis = zone.offset(tsNow);\n [ts, o] = objToTS(obj, offsetProvis, zone);\n } else {\n ts = tsNow;\n }\n\n return new DateTime({ ts, zone, loc, o });\n}\n\nfunction diffRelative(start, end, opts) {\n const round = isUndefined(opts.round) ? true : opts.round,\n format = (c, unit) => {\n c = roundTo(c, round || opts.calendary ? 0 : 2, true);\n const formatter = end.loc.clone(opts).relFormatter(opts);\n return formatter.format(c, unit);\n },\n differ = (unit) => {\n if (opts.calendary) {\n if (!end.hasSame(start, unit)) {\n return end.startOf(unit).diff(start.startOf(unit), unit).get(unit);\n } else return 0;\n } else {\n return end.diff(start, unit).get(unit);\n }\n };\n\n if (opts.unit) {\n return format(differ(opts.unit), opts.unit);\n }\n\n for (const unit of opts.units) {\n const count = differ(unit);\n if (Math.abs(count) >= 1) {\n return format(count, unit);\n }\n }\n return format(start > end ? -0 : 0, opts.units[opts.units.length - 1]);\n}\n\nfunction lastOpts(argList) {\n let opts = {},\n args;\n if (argList.length > 0 && typeof argList[argList.length - 1] === \"object\") {\n opts = argList[argList.length - 1];\n args = Array.from(argList).slice(0, argList.length - 1);\n } else {\n args = Array.from(argList);\n }\n return [opts, args];\n}\n\n/**\n * A DateTime is an immutable data structure representing a specific date and time and accompanying methods. It contains class and instance methods for creating, parsing, interrogating, transforming, and formatting them.\n *\n * A DateTime comprises of:\n * * A timestamp. Each DateTime instance refers to a specific millisecond of the Unix epoch.\n * * A time zone. Each instance is considered in the context of a specific zone (by default the local system's zone).\n * * Configuration properties that effect how output strings are formatted, such as `locale`, `numberingSystem`, and `outputCalendar`.\n *\n * Here is a brief overview of the most commonly used functionality it provides:\n *\n * * **Creation**: To create a DateTime from its components, use one of its factory class methods: {@link DateTime#local}, {@link DateTime#utc}, and (most flexibly) {@link DateTime#fromObject}. To create one from a standard string format, use {@link DateTime#fromISO}, {@link DateTime#fromHTTP}, and {@link DateTime#fromRFC2822}. To create one from a custom string format, use {@link DateTime#fromFormat}. To create one from a native JS date, use {@link DateTime#fromJSDate}.\n * * **Gregorian calendar and time**: To examine the Gregorian properties of a DateTime individually (i.e as opposed to collectively through {@link DateTime#toObject}), use the {@link DateTime#year}, {@link DateTime#month},\n * {@link DateTime#day}, {@link DateTime#hour}, {@link DateTime#minute}, {@link DateTime#second}, {@link DateTime#millisecond} accessors.\n * * **Week calendar**: For ISO week calendar attributes, see the {@link DateTime#weekYear}, {@link DateTime#weekNumber}, and {@link DateTime#weekday} accessors.\n * * **Configuration** See the {@link DateTime#locale} and {@link DateTime#numberingSystem} accessors.\n * * **Transformation**: To transform the DateTime into other DateTimes, use {@link DateTime#set}, {@link DateTime#reconfigure}, {@link DateTime#setZone}, {@link DateTime#setLocale}, {@link DateTime.plus}, {@link DateTime#minus}, {@link DateTime#endOf}, {@link DateTime#startOf}, {@link DateTime#toUTC}, and {@link DateTime#toLocal}.\n * * **Output**: To convert the DateTime to other representations, use the {@link DateTime#toRelative}, {@link DateTime#toRelativeCalendar}, {@link DateTime#toJSON}, {@link DateTime#toISO}, {@link DateTime#toHTTP}, {@link DateTime#toObject}, {@link DateTime#toRFC2822}, {@link DateTime#toString}, {@link DateTime#toLocaleString}, {@link DateTime#toFormat}, {@link DateTime#toMillis} and {@link DateTime#toJSDate}.\n *\n * There's plenty others documented below. In addition, for more information on subtler topics like internationalization, time zones, alternative calendars, validity, and so on, see the external documentation.\n */\nexport default class DateTime {\n /**\n * @access private\n */\n constructor(config) {\n const zone = config.zone || Settings.defaultZone;\n\n let invalid =\n config.invalid ||\n (Number.isNaN(config.ts) ? new Invalid(\"invalid input\") : null) ||\n (!zone.isValid ? unsupportedZone(zone) : null);\n /**\n * @access private\n */\n this.ts = isUndefined(config.ts) ? Settings.now() : config.ts;\n\n let c = null,\n o = null;\n if (!invalid) {\n const unchanged = config.old && config.old.ts === this.ts && config.old.zone.equals(zone);\n\n if (unchanged) {\n [c, o] = [config.old.c, config.old.o];\n } else {\n const ot = zone.offset(this.ts);\n c = tsToObj(this.ts, ot);\n invalid = Number.isNaN(c.year) ? new Invalid(\"invalid input\") : null;\n c = invalid ? null : c;\n o = invalid ? null : ot;\n }\n }\n\n /**\n * @access private\n */\n this._zone = zone;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.invalid = invalid;\n /**\n * @access private\n */\n this.weekData = null;\n /**\n * @access private\n */\n this.c = c;\n /**\n * @access private\n */\n this.o = o;\n /**\n * @access private\n */\n this.isLuxonDateTime = true;\n }\n\n // CONSTRUCT\n\n /**\n * Create a DateTime for the current instant, in the system's time zone.\n *\n * Use Settings to override these default values if needed.\n * @example DateTime.now().toISO() //~> now in the ISO format\n * @return {DateTime}\n */\n static now() {\n return new DateTime({});\n }\n\n /**\n * Create a local DateTime\n * @param {number} [year] - The calendar year. If omitted (as in, call `local()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month, 1-indexed\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @example DateTime.local() //~> now\n * @example DateTime.local({ zone: \"America/New_York\" }) //~> now, in US east coast time\n * @example DateTime.local(2017) //~> 2017-01-01T00:00:00\n * @example DateTime.local(2017, 3) //~> 2017-03-01T00:00:00\n * @example DateTime.local(2017, 3, 12, { locale: \"fr\" }) //~> 2017-03-12T00:00:00, with a French locale\n * @example DateTime.local(2017, 3, 12, 5) //~> 2017-03-12T05:00:00\n * @example DateTime.local(2017, 3, 12, 5, { zone: \"utc\" }) //~> 2017-03-12T05:00:00, in UTC\n * @example DateTime.local(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00\n * @example DateTime.local(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10\n * @example DateTime.local(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765\n * @return {DateTime}\n */\n static local() {\n const [opts, args] = lastOpts(arguments),\n [year, month, day, hour, minute, second, millisecond] = args;\n return quickDT({ year, month, day, hour, minute, second, millisecond }, opts);\n }\n\n /**\n * Create a DateTime in UTC\n * @param {number} [year] - The calendar year. If omitted (as in, call `utc()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @param {Object} options - configuration options for the DateTime\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} [options.outputCalendar] - the output calendar to set on the resulting DateTime instance\n * @param {string} [options.numberingSystem] - the numbering system to set on the resulting DateTime instance\n * @example DateTime.utc() //~> now\n * @example DateTime.utc(2017) //~> 2017-01-01T00:00:00Z\n * @example DateTime.utc(2017, 3) //~> 2017-03-01T00:00:00Z\n * @example DateTime.utc(2017, 3, 12) //~> 2017-03-12T00:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5) //~> 2017-03-12T05:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, { locale: \"fr\" }) //~> 2017-03-12T05:45:00Z with a French locale\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10, 765, { locale: \"fr\" }) //~> 2017-03-12T05:45:10.765Z with a French locale\n * @return {DateTime}\n */\n static utc() {\n const [opts, args] = lastOpts(arguments),\n [year, month, day, hour, minute, second, millisecond] = args;\n\n opts.zone = FixedOffsetZone.utcInstance;\n return quickDT({ year, month, day, hour, minute, second, millisecond }, opts);\n }\n\n /**\n * Create a DateTime from a JavaScript Date object. Uses the default zone.\n * @param {Date} date - a JavaScript Date object\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @return {DateTime}\n */\n static fromJSDate(date, options = {}) {\n const ts = isDate(date) ? date.valueOf() : NaN;\n if (Number.isNaN(ts)) {\n return DateTime.invalid(\"invalid input\");\n }\n\n const zoneToUse = normalizeZone(options.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n return new DateTime({\n ts: ts,\n zone: zoneToUse,\n loc: Locale.fromObject(options),\n });\n }\n\n /**\n * Create a DateTime from a number of milliseconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} milliseconds - a number of milliseconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromMillis(milliseconds, options = {}) {\n if (!isNumber(milliseconds)) {\n throw new InvalidArgumentError(\n `fromMillis requires a numerical input, but received a ${typeof milliseconds} with value ${milliseconds}`\n );\n } else if (milliseconds < -MAX_DATE || milliseconds > MAX_DATE) {\n // this isn't perfect because because we can still end up out of range because of additional shifting, but it's a start\n return DateTime.invalid(\"Timestamp out of range\");\n } else {\n return new DateTime({\n ts: milliseconds,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options),\n });\n }\n }\n\n /**\n * Create a DateTime from a number of seconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} seconds - a number of seconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromSeconds(seconds, options = {}) {\n if (!isNumber(seconds)) {\n throw new InvalidArgumentError(\"fromSeconds requires a numerical input\");\n } else {\n return new DateTime({\n ts: seconds * 1000,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options),\n });\n }\n }\n\n /**\n * Create a DateTime from a JavaScript object with keys like 'year' and 'hour' with reasonable defaults.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.year - a year, such as 1987\n * @param {number} obj.month - a month, 1-12\n * @param {number} obj.day - a day of the month, 1-31, depending on the month\n * @param {number} obj.ordinal - day of the year, 1-365 or 366\n * @param {number} obj.weekYear - an ISO week year\n * @param {number} obj.weekNumber - an ISO week number, between 1 and 52 or 53, depending on the year\n * @param {number} obj.weekday - an ISO weekday, 1-7, where 1 is Monday and 7 is Sunday\n * @param {number} obj.hour - hour of the day, 0-23\n * @param {number} obj.minute - minute of the hour, 0-59\n * @param {number} obj.second - second of the minute, 0-59\n * @param {number} obj.millisecond - millisecond of the second, 0-999\n * @param {Object} opts - options for creating this DateTime\n * @param {string|Zone} [opts.zone='local'] - interpret the numbers in the context of a particular zone. Can take any value taken as the first argument to setZone()\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromObject({ year: 1982, month: 5, day: 25}).toISODate() //=> '1982-05-25'\n * @example DateTime.fromObject({ year: 1982 }).toISODate() //=> '1982-01-01'\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }) //~> today at 10:26:06\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'utc' }),\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'local' })\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'America/New_York' })\n * @example DateTime.fromObject({ weekYear: 2016, weekNumber: 2, weekday: 3 }).toISODate() //=> '2016-01-13'\n * @return {DateTime}\n */\n static fromObject(obj, opts = {}) {\n obj = obj || {};\n const zoneToUse = normalizeZone(opts.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n const tsNow = Settings.now(),\n offsetProvis = !isUndefined(opts.specificOffset)\n ? opts.specificOffset\n : zoneToUse.offset(tsNow),\n normalized = normalizeObject(obj, normalizeUnit),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber,\n loc = Locale.fromObject(opts);\n\n // cases:\n // just a weekday -> this week's instance of that weekday, no worries\n // (gregorian data or ordinal) + (weekYear or weekNumber) -> error\n // (gregorian month or day) + ordinal -> error\n // otherwise just use weeks or ordinals or gregorian, depending on what's specified\n\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\n \"Can't mix weekYear/weekNumber units with year/month/day or ordinals\"\n );\n }\n\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n\n const useWeekData = definiteWeekDef || (normalized.weekday && !containsGregor);\n\n // configure ourselves to deal with gregorian dates or week stuff\n let units,\n defaultValues,\n objNow = tsToObj(tsNow, offsetProvis);\n if (useWeekData) {\n units = orderedWeekUnits;\n defaultValues = defaultWeekUnitValues;\n objNow = gregorianToWeek(objNow);\n } else if (containsOrdinal) {\n units = orderedOrdinalUnits;\n defaultValues = defaultOrdinalUnitValues;\n objNow = gregorianToOrdinal(objNow);\n } else {\n units = orderedUnits;\n defaultValues = defaultUnitValues;\n }\n\n // set default values for missing stuff\n let foundFirst = false;\n for (const u of units) {\n const v = normalized[u];\n if (!isUndefined(v)) {\n foundFirst = true;\n } else if (foundFirst) {\n normalized[u] = defaultValues[u];\n } else {\n normalized[u] = objNow[u];\n }\n }\n\n // make sure the values we have are in range\n const higherOrderInvalid = useWeekData\n ? hasInvalidWeekData(normalized)\n : containsOrdinal\n ? hasInvalidOrdinalData(normalized)\n : hasInvalidGregorianData(normalized),\n invalid = higherOrderInvalid || hasInvalidTimeData(normalized);\n\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n // compute the actual time\n const gregorian = useWeekData\n ? weekToGregorian(normalized)\n : containsOrdinal\n ? ordinalToGregorian(normalized)\n : normalized,\n [tsFinal, offsetFinal] = objToTS(gregorian, offsetProvis, zoneToUse),\n inst = new DateTime({\n ts: tsFinal,\n zone: zoneToUse,\n o: offsetFinal,\n loc,\n });\n\n // gregorian data + weekday serves only to validate\n if (normalized.weekday && containsGregor && obj.weekday !== inst.weekday) {\n return DateTime.invalid(\n \"mismatched weekday\",\n `you can't specify both a weekday of ${normalized.weekday} and a date of ${inst.toISO()}`\n );\n }\n\n return inst;\n }\n\n /**\n * Create a DateTime from an ISO 8601 string\n * @param {string} text - the ISO string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the time to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} [opts.outputCalendar] - the output calendar to set on the resulting DateTime instance\n * @param {string} [opts.numberingSystem] - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromISO('2016-05-25T09:08:34.123')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00', {setZone: true})\n * @example DateTime.fromISO('2016-05-25T09:08:34.123', {zone: 'utc'})\n * @example DateTime.fromISO('2016-W05-4')\n * @return {DateTime}\n */\n static fromISO(text, opts = {}) {\n const [vals, parsedZone] = parseISODate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"ISO 8601\", text);\n }\n\n /**\n * Create a DateTime from an RFC 2822 string\n * @param {string} text - the RFC 2822 string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since the offset is always specified in the string itself, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23:12 GMT')\n * @example DateTime.fromRFC2822('Fri, 25 Nov 2016 13:23:12 +0600')\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23 Z')\n * @return {DateTime}\n */\n static fromRFC2822(text, opts = {}) {\n const [vals, parsedZone] = parseRFC2822Date(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"RFC 2822\", text);\n }\n\n /**\n * Create a DateTime from an HTTP header date\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @param {string} text - the HTTP header date\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since HTTP dates are always in UTC, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with the fixed-offset zone specified in the string. For HTTP dates, this is always UTC, so this option is equivalent to setting the `zone` option to 'utc', but this option is included for consistency with similar methods.\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @example DateTime.fromHTTP('Sun, 06 Nov 1994 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sunday, 06-Nov-94 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sun Nov 6 08:49:37 1994')\n * @return {DateTime}\n */\n static fromHTTP(text, opts = {}) {\n const [vals, parsedZone] = parseHTTPDate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"HTTP\", opts);\n }\n\n /**\n * Create a DateTime from an input string and format string.\n * Defaults to en-US if no locale has been specified, regardless of the system's locale. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/#/parsing?id=table-of-tokens).\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see the link below for the formats)\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromFormat(text, fmt, opts = {}) {\n if (isUndefined(text) || isUndefined(fmt)) {\n throw new InvalidArgumentError(\"fromFormat requires an input string and a format\");\n }\n\n const { locale = null, numberingSystem = null } = opts,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true,\n }),\n [vals, parsedZone, specificOffset, invalid] = parseFromTokens(localeToUse, text, fmt);\n if (invalid) {\n return DateTime.invalid(invalid);\n } else {\n return parseDataToDateTime(vals, parsedZone, opts, `format ${fmt}`, text, specificOffset);\n }\n }\n\n /**\n * @deprecated use fromFormat instead\n */\n static fromString(text, fmt, opts = {}) {\n return DateTime.fromFormat(text, fmt, opts);\n }\n\n /**\n * Create a DateTime from a SQL date, time, or datetime\n * Defaults to en-US if no locale has been specified, regardless of the system's locale\n * @param {string} text - the string to parse\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @example DateTime.fromSQL('2017-05-15')\n * @example DateTime.fromSQL('2017-05-15 09:12:34')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342+06:00')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles', { setZone: true })\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342', { zone: 'America/Los_Angeles' })\n * @example DateTime.fromSQL('09:12:34.342')\n * @return {DateTime}\n */\n static fromSQL(text, opts = {}) {\n const [vals, parsedZone] = parseSQL(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"SQL\", text);\n }\n\n /**\n * Create an invalid DateTime.\n * @param {string} reason - simple string of why this DateTime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {DateTime}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the DateTime is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDateTimeError(invalid);\n } else {\n return new DateTime({ invalid });\n }\n }\n\n /**\n * Check if an object is an instance of DateTime. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDateTime(o) {\n return (o && o.isLuxonDateTime) || false;\n }\n\n // INFO\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example DateTime.local(2017, 7, 4).get('month'); //=> 7\n * @example DateTime.local(2017, 7, 4).get('day'); //=> 4\n * @return {number}\n */\n get(unit) {\n return this[unit];\n }\n\n /**\n * Returns whether the DateTime is valid. Invalid DateTimes occur when:\n * * The DateTime was created from invalid calendar information, such as the 13th month or February 30\n * * The DateTime was created by an operation on another invalid date\n * @type {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this DateTime is invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this DateTime became invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Get the locale of a DateTime, such 'en-GB'. The locale is used when formatting the DateTime\n *\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a DateTime, such 'beng'. The numbering system is used when formatting the DateTime\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Get the output calendar of a DateTime, such 'islamic'. The output calendar is used when formatting the DateTime\n *\n * @type {string}\n */\n get outputCalendar() {\n return this.isValid ? this.loc.outputCalendar : null;\n }\n\n /**\n * Get the time zone associated with this DateTime.\n * @type {Zone}\n */\n get zone() {\n return this._zone;\n }\n\n /**\n * Get the name of the time zone.\n * @type {string}\n */\n get zoneName() {\n return this.isValid ? this.zone.name : null;\n }\n\n /**\n * Get the year\n * @example DateTime.local(2017, 5, 25).year //=> 2017\n * @type {number}\n */\n get year() {\n return this.isValid ? this.c.year : NaN;\n }\n\n /**\n * Get the quarter\n * @example DateTime.local(2017, 5, 25).quarter //=> 2\n * @type {number}\n */\n get quarter() {\n return this.isValid ? Math.ceil(this.c.month / 3) : NaN;\n }\n\n /**\n * Get the month (1-12).\n * @example DateTime.local(2017, 5, 25).month //=> 5\n * @type {number}\n */\n get month() {\n return this.isValid ? this.c.month : NaN;\n }\n\n /**\n * Get the day of the month (1-30ish).\n * @example DateTime.local(2017, 5, 25).day //=> 25\n * @type {number}\n */\n get day() {\n return this.isValid ? this.c.day : NaN;\n }\n\n /**\n * Get the hour of the day (0-23).\n * @example DateTime.local(2017, 5, 25, 9).hour //=> 9\n * @type {number}\n */\n get hour() {\n return this.isValid ? this.c.hour : NaN;\n }\n\n /**\n * Get the minute of the hour (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30).minute //=> 30\n * @type {number}\n */\n get minute() {\n return this.isValid ? this.c.minute : NaN;\n }\n\n /**\n * Get the second of the minute (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52).second //=> 52\n * @type {number}\n */\n get second() {\n return this.isValid ? this.c.second : NaN;\n }\n\n /**\n * Get the millisecond of the second (0-999).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52, 654).millisecond //=> 654\n * @type {number}\n */\n get millisecond() {\n return this.isValid ? this.c.millisecond : NaN;\n }\n\n /**\n * Get the week year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 12, 31).weekYear //=> 2015\n * @type {number}\n */\n get weekYear() {\n return this.isValid ? possiblyCachedWeekData(this).weekYear : NaN;\n }\n\n /**\n * Get the week number of the week year (1-52ish).\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2017, 5, 25).weekNumber //=> 21\n * @type {number}\n */\n get weekNumber() {\n return this.isValid ? possiblyCachedWeekData(this).weekNumber : NaN;\n }\n\n /**\n * Get the day of the week.\n * 1 is Monday and 7 is Sunday\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 11, 31).weekday //=> 4\n * @type {number}\n */\n get weekday() {\n return this.isValid ? possiblyCachedWeekData(this).weekday : NaN;\n }\n\n /**\n * Get the ordinal (meaning the day of the year)\n * @example DateTime.local(2017, 5, 25).ordinal //=> 145\n * @type {number|DateTime}\n */\n get ordinal() {\n return this.isValid ? gregorianToOrdinal(this.c).ordinal : NaN;\n }\n\n /**\n * Get the human readable short month name, such as 'Oct'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthShort //=> Oct\n * @type {string}\n */\n get monthShort() {\n return this.isValid ? Info.months(\"short\", { locObj: this.loc })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable long month name, such as 'October'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthLong //=> October\n * @type {string}\n */\n get monthLong() {\n return this.isValid ? Info.months(\"long\", { locObj: this.loc })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable short weekday, such as 'Mon'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayShort //=> Mon\n * @type {string}\n */\n get weekdayShort() {\n return this.isValid ? Info.weekdays(\"short\", { locObj: this.loc })[this.weekday - 1] : null;\n }\n\n /**\n * Get the human readable long weekday, such as 'Monday'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayLong //=> Monday\n * @type {string}\n */\n get weekdayLong() {\n return this.isValid ? Info.weekdays(\"long\", { locObj: this.loc })[this.weekday - 1] : null;\n }\n\n /**\n * Get the UTC offset of this DateTime in minutes\n * @example DateTime.now().offset //=> -240\n * @example DateTime.utc().offset //=> 0\n * @type {number}\n */\n get offset() {\n return this.isValid ? +this.o : NaN;\n }\n\n /**\n * Get the short human name for the zone's current offset, for example \"EST\" or \"EDT\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameShort() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"short\",\n locale: this.locale,\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get the long human name for the zone's current offset, for example \"Eastern Standard Time\" or \"Eastern Daylight Time\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameLong() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"long\",\n locale: this.locale,\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get whether this zone's offset ever changes, as in a DST.\n * @type {boolean}\n */\n get isOffsetFixed() {\n return this.isValid ? this.zone.isUniversal : null;\n }\n\n /**\n * Get whether the DateTime is in a DST.\n * @type {boolean}\n */\n get isInDST() {\n if (this.isOffsetFixed) {\n return false;\n } else {\n return (\n this.offset > this.set({ month: 1, day: 1 }).offset ||\n this.offset > this.set({ month: 5 }).offset\n );\n }\n }\n\n /**\n * Returns true if this DateTime is in a leap year, false otherwise\n * @example DateTime.local(2016).isInLeapYear //=> true\n * @example DateTime.local(2013).isInLeapYear //=> false\n * @type {boolean}\n */\n get isInLeapYear() {\n return isLeapYear(this.year);\n }\n\n /**\n * Returns the number of days in this DateTime's month\n * @example DateTime.local(2016, 2).daysInMonth //=> 29\n * @example DateTime.local(2016, 3).daysInMonth //=> 31\n * @type {number}\n */\n get daysInMonth() {\n return daysInMonth(this.year, this.month);\n }\n\n /**\n * Returns the number of days in this DateTime's year\n * @example DateTime.local(2016).daysInYear //=> 366\n * @example DateTime.local(2013).daysInYear //=> 365\n * @type {number}\n */\n get daysInYear() {\n return this.isValid ? daysInYear(this.year) : NaN;\n }\n\n /**\n * Returns the number of weeks in this DateTime's year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2004).weeksInWeekYear //=> 53\n * @example DateTime.local(2013).weeksInWeekYear //=> 52\n * @type {number}\n */\n get weeksInWeekYear() {\n return this.isValid ? weeksInWeekYear(this.weekYear) : NaN;\n }\n\n /**\n * Returns the resolved Intl options for this DateTime.\n * This is useful in understanding the behavior of formatting methods\n * @param {Object} opts - the same options as toLocaleString\n * @return {Object}\n */\n resolvedLocaleOptions(opts = {}) {\n const { locale, numberingSystem, calendar } = Formatter.create(\n this.loc.clone(opts),\n opts\n ).resolvedOptions(this);\n return { locale, numberingSystem, outputCalendar: calendar };\n }\n\n // TRANSFORM\n\n /**\n * \"Set\" the DateTime's zone to UTC. Returns a newly-constructed DateTime.\n *\n * Equivalent to {@link DateTime#setZone}('utc')\n * @param {number} [offset=0] - optionally, an offset from UTC in minutes\n * @param {Object} [opts={}] - options to pass to `setZone()`\n * @return {DateTime}\n */\n toUTC(offset = 0, opts = {}) {\n return this.setZone(FixedOffsetZone.instance(offset), opts);\n }\n\n /**\n * \"Set\" the DateTime's zone to the host's local zone. Returns a newly-constructed DateTime.\n *\n * Equivalent to `setZone('local')`\n * @return {DateTime}\n */\n toLocal() {\n return this.setZone(Settings.defaultZone);\n }\n\n /**\n * \"Set\" the DateTime's zone to specified zone. Returns a newly-constructed DateTime.\n *\n * By default, the setter keeps the underlying time the same (as in, the same timestamp), but the new instance will report different local times and consider DSTs when making computations, as with {@link DateTime#plus}. You may wish to use {@link DateTime#toLocal} and {@link DateTime#toUTC} which provide simple convenience wrappers for commonly used zones.\n * @param {string|Zone} [zone='local'] - a zone identifier. As a string, that can be any IANA zone supported by the host environment, or a fixed-offset name of the form 'UTC+3', or the strings 'local' or 'utc'. You may also supply an instance of a {@link DateTime#Zone} class.\n * @param {Object} opts - options\n * @param {boolean} [opts.keepLocalTime=false] - If true, adjust the underlying time so that the local time stays the same, but in the target zone. You should rarely need this.\n * @return {DateTime}\n */\n setZone(zone, { keepLocalTime = false, keepCalendarTime = false } = {}) {\n zone = normalizeZone(zone, Settings.defaultZone);\n if (zone.equals(this.zone)) {\n return this;\n } else if (!zone.isValid) {\n return DateTime.invalid(unsupportedZone(zone));\n } else {\n let newTS = this.ts;\n if (keepLocalTime || keepCalendarTime) {\n const offsetGuess = zone.offset(this.ts);\n const asObj = this.toObject();\n [newTS] = objToTS(asObj, offsetGuess, zone);\n }\n return clone(this, { ts: newTS, zone });\n }\n }\n\n /**\n * \"Set\" the locale, numberingSystem, or outputCalendar. Returns a newly-constructed DateTime.\n * @param {Object} properties - the properties to set\n * @example DateTime.local(2017, 5, 25).reconfigure({ locale: 'en-GB' })\n * @return {DateTime}\n */\n reconfigure({ locale, numberingSystem, outputCalendar } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem, outputCalendar });\n return clone(this, { loc });\n }\n\n /**\n * \"Set\" the locale. Returns a newly-constructed DateTime.\n * Just a convenient alias for reconfigure({ locale })\n * @example DateTime.local(2017, 5, 25).setLocale('en-GB')\n * @return {DateTime}\n */\n setLocale(locale) {\n return this.reconfigure({ locale });\n }\n\n /**\n * \"Set\" the values of specified units. Returns a newly-constructed DateTime.\n * You can only set units with this method; for \"setting\" metadata, see {@link DateTime#reconfigure} and {@link DateTime#setZone}.\n * @param {Object} values - a mapping of units to numbers\n * @example dt.set({ year: 2017 })\n * @example dt.set({ hour: 8, minute: 30 })\n * @example dt.set({ weekday: 5 })\n * @example dt.set({ year: 2005, ordinal: 234 })\n * @return {DateTime}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const normalized = normalizeObject(values, normalizeUnit),\n settingWeekStuff =\n !isUndefined(normalized.weekYear) ||\n !isUndefined(normalized.weekNumber) ||\n !isUndefined(normalized.weekday),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber;\n\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\n \"Can't mix weekYear/weekNumber units with year/month/day or ordinals\"\n );\n }\n\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n\n let mixed;\n if (settingWeekStuff) {\n mixed = weekToGregorian({ ...gregorianToWeek(this.c), ...normalized });\n } else if (!isUndefined(normalized.ordinal)) {\n mixed = ordinalToGregorian({ ...gregorianToOrdinal(this.c), ...normalized });\n } else {\n mixed = { ...this.toObject(), ...normalized };\n\n // if we didn't set the day but we ended up on an overflow date,\n // use the last day of the right month\n if (isUndefined(normalized.day)) {\n mixed.day = Math.min(daysInMonth(mixed.year, mixed.month), mixed.day);\n }\n }\n\n const [ts, o] = objToTS(mixed, this.o, this.zone);\n return clone(this, { ts, o });\n }\n\n /**\n * Add a period of time to this DateTime and return the resulting DateTime\n *\n * Adding hours, minutes, seconds, or milliseconds increases the timestamp by the right number of milliseconds. Adding days, months, or years shifts the calendar, accounting for DSTs and leap years along the way. Thus, `dt.plus({ hours: 24 })` may result in a different time than `dt.plus({ days: 1 })` if there's a DST shift in between.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @example DateTime.now().plus(123) //~> in 123 milliseconds\n * @example DateTime.now().plus({ minutes: 15 }) //~> in 15 minutes\n * @example DateTime.now().plus({ days: 1 }) //~> this time tomorrow\n * @example DateTime.now().plus({ days: -1 }) //~> this time yesterday\n * @example DateTime.now().plus({ hours: 3, minutes: 13 }) //~> in 3 hr, 13 min\n * @example DateTime.now().plus(Duration.fromObject({ hours: 3, minutes: 13 })) //~> in 3 hr, 13 min\n * @return {DateTime}\n */\n plus(duration) {\n if (!this.isValid) return this;\n const dur = Duration.fromDurationLike(duration);\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * Subtract a period of time to this DateTime and return the resulting DateTime\n * See {@link DateTime#plus}\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n @return {DateTime}\n */\n minus(duration) {\n if (!this.isValid) return this;\n const dur = Duration.fromDurationLike(duration).negate();\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * \"Set\" this DateTime to the beginning of a unit of time.\n * @param {string} unit - The unit to go to the beginning of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @example DateTime.local(2014, 3, 3).startOf('month').toISODate(); //=> '2014-03-01'\n * @example DateTime.local(2014, 3, 3).startOf('year').toISODate(); //=> '2014-01-01'\n * @example DateTime.local(2014, 3, 3).startOf('week').toISODate(); //=> '2014-03-03', weeks always start on Mondays\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('day').toISOTime(); //=> '00:00.000-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('hour').toISOTime(); //=> '05:00:00.000-05:00'\n * @return {DateTime}\n */\n startOf(unit) {\n if (!this.isValid) return this;\n const o = {},\n normalizedUnit = Duration.normalizeUnit(unit);\n switch (normalizedUnit) {\n case \"years\":\n o.month = 1;\n // falls through\n case \"quarters\":\n case \"months\":\n o.day = 1;\n // falls through\n case \"weeks\":\n case \"days\":\n o.hour = 0;\n // falls through\n case \"hours\":\n o.minute = 0;\n // falls through\n case \"minutes\":\n o.second = 0;\n // falls through\n case \"seconds\":\n o.millisecond = 0;\n break;\n case \"milliseconds\":\n break;\n // no default, invalid units throw in normalizeUnit()\n }\n\n if (normalizedUnit === \"weeks\") {\n o.weekday = 1;\n }\n\n if (normalizedUnit === \"quarters\") {\n const q = Math.ceil(this.month / 3);\n o.month = (q - 1) * 3 + 1;\n }\n\n return this.set(o);\n }\n\n /**\n * \"Set\" this DateTime to the end (meaning the last millisecond) of a unit of time\n * @param {string} unit - The unit to go to the end of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @example DateTime.local(2014, 3, 3).endOf('month').toISO(); //=> '2014-03-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3).endOf('year').toISO(); //=> '2014-12-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3).endOf('week').toISO(); // => '2014-03-09T23:59:59.999-05:00', weeks start on Mondays\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('day').toISO(); //=> '2014-03-03T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('hour').toISO(); //=> '2014-03-03T05:59:59.999-05:00'\n * @return {DateTime}\n */\n endOf(unit) {\n return this.isValid\n ? this.plus({ [unit]: 1 })\n .startOf(unit)\n .minus(1)\n : this;\n }\n\n // OUTPUT\n\n /**\n * Returns a string representation of this DateTime formatted according to the specified format string.\n * **You may not want this.** See {@link DateTime#toLocaleString} for a more flexible formatting tool. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/#/formatting?id=table-of-tokens).\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n * @param {string} fmt - the format string\n * @param {Object} opts - opts to override the configuration options on this DateTime\n * @example DateTime.now().toFormat('yyyy LLL dd') //=> '2017 Apr 22'\n * @example DateTime.now().setLocale('fr').toFormat('yyyy LLL dd') //=> '2017 avr. 22'\n * @example DateTime.now().toFormat('yyyy LLL dd', { locale: \"fr\" }) //=> '2017 avr. 22'\n * @example DateTime.now().toFormat(\"HH 'hours and' mm 'minutes'\") //=> '20 hours and 55 minutes'\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.redefaultToEN(opts)).formatDateTimeFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a localized string representing this date. Accepts the same options as the Intl.DateTimeFormat constructor and any presets defined by Luxon, such as `DateTime.DATE_FULL` or `DateTime.TIME_SIMPLE`.\n * The exact behavior of this method is browser-specific, but in general it will return an appropriate representation\n * of the DateTime in the assigned locale.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param formatOpts {Object} - Intl.DateTimeFormat constructor options and configuration options\n * @param {Object} opts - opts to override the configuration options on this DateTime\n * @example DateTime.now().toLocaleString(); //=> 4/20/2017\n * @example DateTime.now().setLocale('en-gb').toLocaleString(); //=> '20/04/2017'\n * @example DateTime.now().toLocaleString({ locale: 'en-gb' }); //=> '20/04/2017'\n * @example DateTime.now().toLocaleString(DateTime.DATE_FULL); //=> 'April 20, 2017'\n * @example DateTime.now().toLocaleString(DateTime.TIME_SIMPLE); //=> '11:32 AM'\n * @example DateTime.now().toLocaleString(DateTime.DATETIME_SHORT); //=> '4/20/2017, 11:32 AM'\n * @example DateTime.now().toLocaleString({ weekday: 'long', month: 'long', day: '2-digit' }); //=> 'Thursday, April 20'\n * @example DateTime.now().toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> 'Thu, Apr 20, 11:27 AM'\n * @example DateTime.now().toLocaleString({ hour: '2-digit', minute: '2-digit', hourCycle: 'h23' }); //=> '11:32'\n * @return {string}\n */\n toLocaleString(formatOpts = Formats.DATE_SHORT, opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), formatOpts).formatDateTime(this)\n : INVALID;\n }\n\n /**\n * Returns an array of format \"parts\", meaning individual tokens along with metadata. This is allows callers to post-process individual sections of the formatted output.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/formatToParts\n * @param opts {Object} - Intl.DateTimeFormat constructor options, same as `toLocaleString`.\n * @example DateTime.now().toLocaleParts(); //=> [\n * //=> { type: 'day', value: '25' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'month', value: '05' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'year', value: '1982' }\n * //=> ]\n */\n toLocaleParts(opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), opts).formatDateTimeParts(this)\n : [];\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.extendedZone=true] - add the time zone format extension\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1983, 5, 25).toISO() //=> '1982-05-25T00:00:00.000Z'\n * @example DateTime.now().toISO() //=> '2017-04-22T20:47:05.335-04:00'\n * @example DateTime.now().toISO({ includeOffset: false }) //=> '2017-04-22T20:47:05.335'\n * @example DateTime.now().toISO({ format: 'basic' }) //=> '20170422T204705.335-0400'\n * @return {string}\n */\n toISO({\n format = \"extended\",\n suppressSeconds = false,\n suppressMilliseconds = false,\n includeOffset = true,\n extendedZone = false,\n } = {}) {\n if (!this.isValid) {\n return null;\n }\n\n const ext = format === \"extended\";\n\n let c = toISODate(this, ext);\n c += \"T\";\n c += toISOTime(this, ext, suppressSeconds, suppressMilliseconds, includeOffset, extendedZone);\n return c;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's date component\n * @param {Object} opts - options\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc(1982, 5, 25).toISODate() //=> '1982-05-25'\n * @example DateTime.utc(1982, 5, 25).toISODate({ format: 'basic' }) //=> '19820525'\n * @return {string}\n */\n toISODate({ format = \"extended\" } = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return toISODate(this, format === \"extended\");\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's week date\n * @example DateTime.utc(1982, 5, 25).toISOWeekDate() //=> '1982-W21-2'\n * @return {string}\n */\n toISOWeekDate() {\n return toTechFormat(this, \"kkkk-'W'WW-c\");\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's time component\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.extendedZone=true] - add the time zone format extension\n * @param {boolean} [opts.includePrefix=false] - include the `T` prefix\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime() //=> '07:34:19.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34, seconds: 0, milliseconds: 0 }).toISOTime({ suppressSeconds: true }) //=> '07:34Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ format: 'basic' }) //=> '073419.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ includePrefix: true }) //=> 'T07:34:19.361Z'\n * @return {string}\n */\n toISOTime({\n suppressMilliseconds = false,\n suppressSeconds = false,\n includeOffset = true,\n includePrefix = false,\n extendedZone = false,\n format = \"extended\",\n } = {}) {\n if (!this.isValid) {\n return null;\n }\n\n let c = includePrefix ? \"T\" : \"\";\n return (\n c +\n toISOTime(\n this,\n format === \"extended\",\n suppressSeconds,\n suppressMilliseconds,\n includeOffset,\n extendedZone\n )\n );\n }\n\n /**\n * Returns an RFC 2822-compatible string representation of this DateTime\n * @example DateTime.utc(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 +0000'\n * @example DateTime.local(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 -0400'\n * @return {string}\n */\n toRFC2822() {\n return toTechFormat(this, \"EEE, dd LLL yyyy HH:mm:ss ZZZ\", false);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in HTTP headers. The output is always expressed in GMT.\n * Specifically, the string conforms to RFC 1123.\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @example DateTime.utc(2014, 7, 13).toHTTP() //=> 'Sun, 13 Jul 2014 00:00:00 GMT'\n * @example DateTime.utc(2014, 7, 13, 19).toHTTP() //=> 'Sun, 13 Jul 2014 19:00:00 GMT'\n * @return {string}\n */\n toHTTP() {\n return toTechFormat(this.toUTC(), \"EEE, dd LLL yyyy HH:mm:ss 'GMT'\");\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Date\n * @example DateTime.utc(2014, 7, 13).toSQLDate() //=> '2014-07-13'\n * @return {string}\n */\n toSQLDate() {\n if (!this.isValid) {\n return null;\n }\n return toISODate(this, true);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Time\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.includeOffsetSpace=true] - include the space between the time and the offset, such as '05:15:16.345 -04:00'\n * @example DateTime.utc().toSQL() //=> '05:15:16.345'\n * @example DateTime.now().toSQL() //=> '05:15:16.345 -04:00'\n * @example DateTime.now().toSQL({ includeOffset: false }) //=> '05:15:16.345'\n * @example DateTime.now().toSQL({ includeZone: false }) //=> '05:15:16.345 America/New_York'\n * @return {string}\n */\n toSQLTime({ includeOffset = true, includeZone = false, includeOffsetSpace = true } = {}) {\n let fmt = \"HH:mm:ss.SSS\";\n\n if (includeZone || includeOffset) {\n if (includeOffsetSpace) {\n fmt += \" \";\n }\n if (includeZone) {\n fmt += \"z\";\n } else if (includeOffset) {\n fmt += \"ZZ\";\n }\n }\n\n return toTechFormat(this, fmt, true);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.includeOffsetSpace=true] - include the space between the time and the offset, such as '05:15:16.345 -04:00'\n * @example DateTime.utc(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 Z'\n * @example DateTime.local(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 -04:00'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeOffset: false }) //=> '2014-07-13 00:00:00.000'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeZone: true }) //=> '2014-07-13 00:00:00.000 America/New_York'\n * @return {string}\n */\n toSQL(opts = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return `${this.toSQLDate()} ${this.toSQLTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for debugging\n * @return {string}\n */\n toString() {\n return this.isValid ? this.toISO() : INVALID;\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime. Alias of {@link DateTime#toMillis}\n * @return {number}\n */\n valueOf() {\n return this.toMillis();\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime.\n * @return {number}\n */\n toMillis() {\n return this.isValid ? this.ts : NaN;\n }\n\n /**\n * Returns the epoch seconds of this DateTime.\n * @return {number}\n */\n toSeconds() {\n return this.isValid ? this.ts / 1000 : NaN;\n }\n\n /**\n * Returns the epoch seconds (as a whole number) of this DateTime.\n * @return {number}\n */\n toUnixInteger() {\n return this.isValid ? Math.floor(this.ts / 1000) : NaN;\n }\n\n /**\n * Returns an ISO 8601 representation of this DateTime appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns a BSON serializable equivalent to this DateTime.\n * @return {Date}\n */\n toBSON() {\n return this.toJSDate();\n }\n\n /**\n * Returns a JavaScript object with this DateTime's year, month, day, and so on.\n * @param opts - options for generating the object\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n * @example DateTime.now().toObject() //=> { year: 2017, month: 4, day: 22, hour: 20, minute: 49, second: 42, millisecond: 268 }\n * @return {Object}\n */\n toObject(opts = {}) {\n if (!this.isValid) return {};\n\n const base = { ...this.c };\n\n if (opts.includeConfig) {\n base.outputCalendar = this.outputCalendar;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n return base;\n }\n\n /**\n * Returns a JavaScript Date equivalent to this DateTime.\n * @return {Date}\n */\n toJSDate() {\n return new Date(this.isValid ? this.ts : NaN);\n }\n\n // COMPARE\n\n /**\n * Return the difference between two DateTimes as a Duration.\n * @param {DateTime} otherDateTime - the DateTime to compare this one to\n * @param {string|string[]} [unit=['milliseconds']] - the unit or array of units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example\n * var i1 = DateTime.fromISO('1982-05-25T09:45'),\n * i2 = DateTime.fromISO('1983-10-14T10:30');\n * i2.diff(i1).toObject() //=> { milliseconds: 43807500000 }\n * i2.diff(i1, 'hours').toObject() //=> { hours: 12168.75 }\n * i2.diff(i1, ['months', 'days']).toObject() //=> { months: 16, days: 19.03125 }\n * i2.diff(i1, ['months', 'days', 'hours']).toObject() //=> { months: 16, days: 19, hours: 0.75 }\n * @return {Duration}\n */\n diff(otherDateTime, unit = \"milliseconds\", opts = {}) {\n if (!this.isValid || !otherDateTime.isValid) {\n return Duration.invalid(\"created by diffing an invalid DateTime\");\n }\n\n const durOpts = { locale: this.locale, numberingSystem: this.numberingSystem, ...opts };\n\n const units = maybeArray(unit).map(Duration.normalizeUnit),\n otherIsLater = otherDateTime.valueOf() > this.valueOf(),\n earlier = otherIsLater ? this : otherDateTime,\n later = otherIsLater ? otherDateTime : this,\n diffed = diff(earlier, later, units, durOpts);\n\n return otherIsLater ? diffed.negate() : diffed;\n }\n\n /**\n * Return the difference between this DateTime and right now.\n * See {@link DateTime#diff}\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units units (such as 'hours' or 'days') to include in the duration\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n diffNow(unit = \"milliseconds\", opts = {}) {\n return this.diff(DateTime.now(), unit, opts);\n }\n\n /**\n * Return an Interval spanning between this DateTime and another DateTime\n * @param {DateTime} otherDateTime - the other end point of the Interval\n * @return {Interval}\n */\n until(otherDateTime) {\n return this.isValid ? Interval.fromDateTimes(this, otherDateTime) : this;\n }\n\n /**\n * Return whether this DateTime is in the same unit of time as another DateTime.\n * Higher-order units must also be identical for this function to return `true`.\n * Note that time zones are **ignored** in this comparison, which compares the **local** calendar time. Use {@link DateTime#setZone} to convert one of the dates if needed.\n * @param {DateTime} otherDateTime - the other DateTime\n * @param {string} unit - the unit of time to check sameness on\n * @example DateTime.now().hasSame(otherDT, 'day'); //~> true if otherDT is in the same current calendar day\n * @return {boolean}\n */\n hasSame(otherDateTime, unit) {\n if (!this.isValid) return false;\n\n const inputMs = otherDateTime.valueOf();\n const adjustedToZone = this.setZone(otherDateTime.zone, { keepLocalTime: true });\n return adjustedToZone.startOf(unit) <= inputMs && inputMs <= adjustedToZone.endOf(unit);\n }\n\n /**\n * Equality check\n * Two DateTimes are equal iff they represent the same millisecond, have the same zone and location, and are both valid.\n * To compare just the millisecond values, use `+dt1 === +dt2`.\n * @param {DateTime} other - the other DateTime\n * @return {boolean}\n */\n equals(other) {\n return (\n this.isValid &&\n other.isValid &&\n this.valueOf() === other.valueOf() &&\n this.zone.equals(other.zone) &&\n this.loc.equals(other.loc)\n );\n }\n\n /**\n * Returns a string representation of a this time relative to now, such as \"in two days\". Can only internationalize if your\n * platform supports Intl.RelativeTimeFormat. Rounds down by default.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.now()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} [options.style=\"long\"] - the style of units, must be \"long\", \"short\", or \"narrow\"\n * @param {string|string[]} options.unit - use a specific unit or array of units; if omitted, or an array, the method will pick the best unit. Use an array or one of \"years\", \"quarters\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", or \"seconds\"\n * @param {boolean} [options.round=true] - whether to round the numbers in the output.\n * @param {number} [options.padding=0] - padding in milliseconds. This allows you to round up the result if it fits inside the threshold. Don't use in combination with {round: false} because the decimal output will include the padding.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.now().plus({ days: 1 }).toRelative() //=> \"in 1 day\"\n * @example DateTime.now().setLocale(\"es\").toRelative({ days: 1 }) //=> \"dentro de 1 día\"\n * @example DateTime.now().plus({ days: 1 }).toRelative({ locale: \"fr\" }) //=> \"dans 23 heures\"\n * @example DateTime.now().minus({ days: 2 }).toRelative() //=> \"2 days ago\"\n * @example DateTime.now().minus({ days: 2 }).toRelative({ unit: \"hours\" }) //=> \"48 hours ago\"\n * @example DateTime.now().minus({ hours: 36 }).toRelative({ round: false }) //=> \"1.5 days ago\"\n */\n toRelative(options = {}) {\n if (!this.isValid) return null;\n const base = options.base || DateTime.fromObject({}, { zone: this.zone }),\n padding = options.padding ? (this < base ? -options.padding : options.padding) : 0;\n let units = [\"years\", \"months\", \"days\", \"hours\", \"minutes\", \"seconds\"];\n let unit = options.unit;\n if (Array.isArray(options.unit)) {\n units = options.unit;\n unit = undefined;\n }\n return diffRelative(base, this.plus(padding), {\n ...options,\n numeric: \"always\",\n units,\n unit,\n });\n }\n\n /**\n * Returns a string representation of this date relative to today, such as \"yesterday\" or \"next month\".\n * Only internationalizes on platforms that supports Intl.RelativeTimeFormat.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.now()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"years\", \"quarters\", \"months\", \"weeks\", or \"days\"\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.now().plus({ days: 1 }).toRelativeCalendar() //=> \"tomorrow\"\n * @example DateTime.now().setLocale(\"es\").plus({ days: 1 }).toRelative() //=> \"\"mañana\"\n * @example DateTime.now().plus({ days: 1 }).toRelativeCalendar({ locale: \"fr\" }) //=> \"demain\"\n * @example DateTime.now().minus({ days: 2 }).toRelativeCalendar() //=> \"2 days ago\"\n */\n toRelativeCalendar(options = {}) {\n if (!this.isValid) return null;\n\n return diffRelative(options.base || DateTime.fromObject({}, { zone: this.zone }), this, {\n ...options,\n numeric: \"auto\",\n units: [\"years\", \"months\", \"days\"],\n calendary: true,\n });\n }\n\n /**\n * Return the min of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the minimum\n * @return {DateTime} the min DateTime, or undefined if called with no argument\n */\n static min(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"min requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, (i) => i.valueOf(), Math.min);\n }\n\n /**\n * Return the max of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the maximum\n * @return {DateTime} the max DateTime, or undefined if called with no argument\n */\n static max(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"max requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, (i) => i.valueOf(), Math.max);\n }\n\n // MISC\n\n /**\n * Explain how a string would be parsed by fromFormat()\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see description)\n * @param {Object} options - options taken by fromFormat()\n * @return {Object}\n */\n static fromFormatExplain(text, fmt, options = {}) {\n const { locale = null, numberingSystem = null } = options,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true,\n });\n return explainFromTokens(localeToUse, text, fmt);\n }\n\n /**\n * @deprecated use fromFormatExplain instead\n */\n static fromStringExplain(text, fmt, options = {}) {\n return DateTime.fromFormatExplain(text, fmt, options);\n }\n\n // FORMAT PRESETS\n\n /**\n * {@link DateTime#toLocaleString} format like 10/14/1983\n * @type {Object}\n */\n static get DATE_SHORT() {\n return Formats.DATE_SHORT;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED() {\n return Formats.DATE_MED;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Fri, Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED_WITH_WEEKDAY() {\n return Formats.DATE_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'October 14, 1983'\n * @type {Object}\n */\n static get DATE_FULL() {\n return Formats.DATE_FULL;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Tuesday, October 14, 1983'\n * @type {Object}\n */\n static get DATE_HUGE() {\n return Formats.DATE_HUGE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_SIMPLE() {\n return Formats.TIME_SIMPLE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SECONDS() {\n return Formats.TIME_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SHORT_OFFSET() {\n return Formats.TIME_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_LONG_OFFSET() {\n return Formats.TIME_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_SIMPLE() {\n return Formats.TIME_24_SIMPLE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SECONDS() {\n return Formats.TIME_24_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 EDT', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SHORT_OFFSET() {\n return Formats.TIME_24_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 Eastern Daylight Time', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_LONG_OFFSET() {\n return Formats.TIME_24_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT() {\n return Formats.DATETIME_SHORT;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT_WITH_SECONDS() {\n return Formats.DATETIME_SHORT_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Oct 14, 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED() {\n return Formats.DATETIME_MED;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Oct 14, 1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_SECONDS() {\n return Formats.DATETIME_MED_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Fri, 14 Oct 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_WEEKDAY() {\n return Formats.DATETIME_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'October 14, 1983, 9:30 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL() {\n return Formats.DATETIME_FULL;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'October 14, 1983, 9:30:33 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL_WITH_SECONDS() {\n return Formats.DATETIME_FULL_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Friday, October 14, 1983, 9:30 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE() {\n return Formats.DATETIME_HUGE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Friday, October 14, 1983, 9:30:33 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE_WITH_SECONDS() {\n return Formats.DATETIME_HUGE_WITH_SECONDS;\n }\n}\n\n/**\n * @private\n */\nexport function friendlyDateTime(dateTimeish) {\n if (DateTime.isDateTime(dateTimeish)) {\n return dateTimeish;\n } else if (dateTimeish && dateTimeish.valueOf && isNumber(dateTimeish.valueOf())) {\n return DateTime.fromJSDate(dateTimeish);\n } else if (dateTimeish && typeof dateTimeish === \"object\") {\n return DateTime.fromObject(dateTimeish);\n } else {\n throw new InvalidArgumentError(\n `Unknown datetime argument: ${dateTimeish}, of type ${typeof dateTimeish}`\n );\n }\n}\n","import DateTime from \"./datetime.js\";\nimport Duration from \"./duration.js\";\nimport Interval from \"./interval.js\";\nimport Info from \"./info.js\";\nimport Zone from \"./zone.js\";\nimport FixedOffsetZone from \"./zones/fixedOffsetZone.js\";\nimport IANAZone from \"./zones/IANAZone.js\";\nimport InvalidZone from \"./zones/invalidZone.js\";\nimport SystemZone from \"./zones/systemZone.js\";\nimport Settings from \"./settings.js\";\n\nconst VERSION = \"2.4.0\";\n\nexport {\n VERSION,\n DateTime,\n Duration,\n Interval,\n Info,\n Zone,\n FixedOffsetZone,\n IANAZone,\n InvalidZone,\n SystemZone,\n Settings,\n};\n"],"names":["LuxonError","Error","InvalidDateTimeError","reason","toMessage","InvalidIntervalError","InvalidDurationError","ConflictingSpecificationError","InvalidUnitError","unit","InvalidArgumentError","ZoneIsAbstractError","n","s","l","DATE_SHORT","year","month","day","DATE_MED","DATE_MED_WITH_WEEKDAY","weekday","DATE_FULL","DATE_HUGE","TIME_SIMPLE","hour","minute","TIME_WITH_SECONDS","second","TIME_WITH_SHORT_OFFSET","timeZoneName","TIME_WITH_LONG_OFFSET","TIME_24_SIMPLE","hourCycle","TIME_24_WITH_SECONDS","TIME_24_WITH_SHORT_OFFSET","TIME_24_WITH_LONG_OFFSET","DATETIME_SHORT","DATETIME_SHORT_WITH_SECONDS","DATETIME_MED","DATETIME_MED_WITH_SECONDS","DATETIME_MED_WITH_WEEKDAY","DATETIME_FULL","DATETIME_FULL_WITH_SECONDS","DATETIME_HUGE","DATETIME_HUGE_WITH_SECONDS","isUndefined","o","isNumber","isInteger","isString","isDate","Object","prototype","toString","call","hasRelative","Intl","RelativeTimeFormat","e","maybeArray","thing","Array","isArray","bestBy","arr","by","compare","length","undefined","reduce","best","next","pair","pick","obj","keys","a","k","hasOwnProperty","prop","integerBetween","bottom","top","floorMod","x","Math","floor","padStart","input","isNeg","padded","parseInteger","string","parseInt","parseFloating","parseFloat","parseMillis","fraction","f","roundTo","number","digits","towardZero","factor","rounder","trunc","round","isLeapYear","daysInYear","daysInMonth","modMonth","modYear","objToLocalTS","d","Date","UTC","millisecond","setUTCFullYear","getUTCFullYear","weeksInWeekYear","weekYear","p1","last","p2","untruncateYear","parseZoneInfo","ts","offsetFormat","locale","timeZone","date","intlOpts","modified","parsed","DateTimeFormat","formatToParts","find","m","type","toLowerCase","value","signedOffset","offHourStr","offMinuteStr","offHour","Number","isNaN","offMin","offMinSigned","is","asNumber","numericValue","normalizeObject","normalizer","normalized","u","v","formatOffset","offset","format","hours","abs","minutes","sign","RangeError","timeObject","ianaRegex","monthsLong","monthsShort","monthsNarrow","months","weekdaysLong","weekdaysShort","weekdaysNarrow","weekdays","meridiems","erasLong","erasShort","erasNarrow","eras","meridiemForDateTime","dt","weekdayForDateTime","monthForDateTime","eraForDateTime","formatRelativeTime","count","numeric","narrow","units","years","quarters","weeks","days","seconds","lastable","indexOf","isDay","isInPast","fmtValue","singular","lilUnits","fmtUnit","stringifyTokens","splits","tokenToString","token","literal","val","macroTokenToFormatOpts","D","Formats","DD","DDD","DDDD","t","tt","ttt","tttt","T","TT","TTT","TTTT","ff","fff","ffff","F","FF","FFF","FFFF","Formatter","create","opts","parseFormat","fmt","current","currentFull","bracketed","i","c","charAt","push","formatOpts","loc","systemLoc","formatWithSystemDefault","redefaultToSystem","df","dtFormatter","formatDateTime","formatDateTimeParts","resolvedOptions","num","p","forceSimple","padTo","numberFormatter","formatDateTimeFromString","knownEnglish","listingMode","useDateTimeFormatter","outputCalendar","extract","isOffsetFixed","allowZ","isValid","zone","meridiem","English","standalone","maybeMacro","era","offsetName","zoneName","slice","weekNumber","ordinal","quarter","formatDurationFromString","dur","tokenToField","lildur","mapped","get","tokens","realTokens","found","concat","collapsed","shiftTo","map","filter","Invalid","explanation","Zone","equals","otherZone","name","singleton","SystemZone","getTimezoneOffset","dtfCache","makeDTF","hour12","typeToPos","hackyOffset","dtf","formatted","replace","exec","fMonth","fDay","fYear","fadOrBc","fHour","fMinute","fSecond","partsOffset","filled","pos","ianaZoneCache","IANAZone","resetCache","isValidSpecifier","isValidZone","valid","NaN","adOrBc","adjustedHour","asUTC","asTS","over","FixedOffsetZone","instance","utcInstance","parseSpecifier","r","match","fixed","InvalidZone","normalizeZone","defaultZone","lowered","now","defaultLocale","defaultNumberingSystem","defaultOutputCalendar","throwOnInvalid","Settings","resetCaches","Locale","numberingSystem","intlLFCache","getCachedLF","locString","key","JSON","stringify","ListFormat","intlDTCache","getCachedDTF","intlNumCache","getCachedINF","inf","NumberFormat","intlRelCache","getCachedRTF","base","cacheKeyOpts","sysLocaleCache","systemLocale","parseLocaleString","localeStr","uIndex","options","smaller","substring","calendar","intlConfigString","mapMonths","ms","DateTime","utc","mapWeekdays","listStuff","defaultOK","englishFn","intlFn","mode","supportsFastNumbers","startsWith","intl","PolyNumberFormatter","otherOpts","useGrouping","minimumIntegerDigits","PolyDateFormatter","z","isUniversal","gmtOffset","offsetZ","fromMillis","toJSDate","PolyRelFormatter","isEnglish","style","rtf","fromOpts","defaultToEN","specifiedLocale","localeR","numberingSystemR","outputCalendarR","fromObject","numbering","parsedLocale","parsedNumberingSystem","parsedOutputCalendar","weekdaysCache","monthsCache","meridiemCache","eraCache","fastNumbersCached","isActuallyEn","hasNoWeirdness","clone","alts","getOwnPropertyNames","redefaultToEN","formatStr","field","results","matching","fastNumbers","relFormatter","listFormatter","other","combineRegexes","regexes","full","source","RegExp","combineExtractors","extractors","ex","mergedVals","mergedZone","cursor","parse","patterns","regex","extractor","simpleParse","ret","offsetRegex","isoExtendedZone","isoTimeBaseRegex","isoTimeRegex","isoTimeExtensionRegex","isoYmdRegex","isoWeekRegex","isoOrdinalRegex","extractISOWeekData","extractISOOrdinalData","sqlYmdRegex","sqlTimeRegex","sqlTimeExtensionRegex","int","fallback","extractISOYmd","item","extractISOTime","milliseconds","extractISOOffset","local","fullOffset","extractIANAZone","isoTimeOnly","isoDuration","extractISODuration","yearStr","monthStr","weekStr","dayStr","hourStr","minuteStr","secondStr","millisecondsStr","hasNegativePrefix","negativeSeconds","maybeNegate","force","obsOffsets","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","fromStrings","weekdayStr","result","rfc2822","extractRFC2822","obsOffset","milOffset","preprocessRFC2822","trim","rfc1123","rfc850","ascii","extractRFC1123Or850","extractASCII","isoYmdWithTimeExtensionRegex","isoWeekWithTimeExtensionRegex","isoOrdinalWithTimeExtensionRegex","isoTimeCombinedRegex","extractISOYmdTimeAndOffset","extractISOWeekTimeAndOffset","extractISOOrdinalDateAndTime","extractISOTimeAndOffset","parseISODate","parseRFC2822Date","parseHTTPDate","parseISODuration","extractISOTimeOnly","parseISOTimeOnly","sqlYmdWithTimeExtensionRegex","sqlTimeCombinedRegex","extractISOTimeOffsetAndIANAZone","parseSQL","INVALID","lowOrderMatrix","casualMatrix","daysInYearAccurate","daysInMonthAccurate","accurateMatrix","orderedUnits","reverseUnits","reverse","clear","conf","values","conversionAccuracy","Duration","antiTrunc","ceil","convert","matrix","fromMap","fromUnit","toMap","toUnit","conv","raw","sameSign","added","normalizeValues","vals","previous","config","accurate","invalid","isLuxonDuration","normalizeUnit","fromDurationLike","durationLike","isDuration","fromISO","text","fromISOTime","week","toFormat","fmtOpts","toHuman","unitDisplay","listStyle","toObject","toISO","toISOTime","millis","toMillis","suppressMilliseconds","suppressSeconds","includePrefix","str","toJSON","as","valueOf","plus","duration","minus","negate","mapUnits","fn","set","mixed","reconfigure","normalize","built","accumulated","lastUnit","own","ak","down","negated","eq","v1","v2","validateStartEnd","start","end","Interval","isLuxonInterval","fromDateTimes","builtStart","friendlyDateTime","builtEnd","validateError","after","before","split","startIsValid","endIsValid","isInterval","toDuration","startOf","diff","hasSame","isEmpty","isAfter","dateTime","isBefore","contains","splitAt","dateTimes","sorted","sort","splitBy","idx","divideEqually","numberOfParts","overlaps","abutsStart","abutsEnd","engulfs","intersection","union","merge","intervals","b","sofar","final","xor","currentCount","ends","time","flattened","difference","toISODate","dateFormat","separator","invalidReason","mapEndpoints","mapFn","Info","hasDST","proto","setZone","isValidIANAZone","locObj","monthsFormat","weekdaysFormat","features","relative","dayDiff","earlier","later","utcDayStart","toUTC","keepLocalTime","highOrderDiffs","differs","lowestOrder","highWater","differ","delta","remainingMillis","lowerOrderUnits","numberingSystems","arab","arabext","bali","beng","deva","fullwide","gujr","hanidec","khmr","knda","laoo","limb","mlym","mong","mymr","orya","tamldec","telu","thai","tibt","latn","numberingSystemsUTF16","hanidecChars","parseDigits","code","charCodeAt","search","min","max","digitRegex","append","MISSING_FTP","intUnit","post","deser","NBSP","String","fromCharCode","spaceOrNBSP","spaceOrNBSPRegExp","fixListRegex","stripInsensitivities","oneOf","strings","startIndex","join","findIndex","groups","h","simple","escapeToken","unitForToken","one","two","three","four","six","oneOrTwo","oneToThree","oneToSix","oneToNine","twoToFour","fourToSix","unitate","partTypeStyleToTokenVal","short","long","dayperiod","dayPeriod","tokenForPart","part","buildRegex","re","handlers","matches","all","matchIndex","dateTimeFromMatches","toField","specificOffset","Z","q","M","G","y","S","dummyDateTimeCache","getDummyDateTime","maybeExpandMacroToken","formatter","parts","includes","expandMacroTokens","explainFromTokens","disqualifyingUnit","regexString","rawMatches","parseFromTokens","nonLeapLadder","leapLadder","unitOutOfRange","dayOfWeek","js","getUTCDay","computeOrdinal","uncomputeOrdinal","table","month0","gregorianToWeek","gregObj","weekToGregorian","weekData","weekdayOfJan4","yearInDays","gregorianToOrdinal","gregData","ordinalToGregorian","ordinalData","hasInvalidWeekData","validYear","validWeek","validWeekday","hasInvalidOrdinalData","validOrdinal","hasInvalidGregorianData","validMonth","validDay","hasInvalidTimeData","validHour","validMinute","validSecond","validMillisecond","MAX_DATE","unsupportedZone","possiblyCachedWeekData","inst","old","fixOffset","localTS","tz","utcGuess","o2","o3","tsToObj","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","objToTS","adjustTime","oPre","millisToAdd","parseDataToDateTime","parsedZone","interpretationZone","toTechFormat","extended","longFormat","includeOffset","extendedZone","ianaName","defaultUnitValues","defaultWeekUnitValues","defaultOrdinalUnitValues","orderedWeekUnits","orderedOrdinalUnits","weeknumber","weeksnumber","weeknumbers","weekyear","weekyears","quickDT","tsNow","offsetProvis","diffRelative","calendary","lastOpts","argList","args","from","unchanged","ot","_zone","isLuxonDateTime","arguments","fromJSDate","zoneToUse","fromSeconds","containsOrdinal","containsGregorYear","containsGregorMD","containsGregor","definiteWeekDef","useWeekData","defaultValues","objNow","foundFirst","higherOrderInvalid","gregorian","tsFinal","offsetFinal","fromRFC2822","fromHTTP","fromFormat","localeToUse","fromString","fromSQL","isDateTime","resolvedLocaleOptions","toLocal","keepCalendarTime","newTS","offsetGuess","asObj","setLocale","settingWeekStuff","normalizedUnit","endOf","toLocaleString","toLocaleParts","ext","toISOWeekDate","toRFC2822","toHTTP","toSQLDate","toSQLTime","includeZone","includeOffsetSpace","toSQL","toSeconds","toUnixInteger","toBSON","includeConfig","otherDateTime","durOpts","otherIsLater","diffed","diffNow","until","inputMs","adjustedToZone","toRelative","padding","toRelativeCalendar","every","fromFormatExplain","fromStringExplain","dateTimeish","VERSION"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAA;;EAEA;EACA;EACA;MACMA;;;;;;;;mCAAmBC;EAEzB;EACA;EACA;;;MACaC,oBAAb;EAAA;;EACE,gCAAYC,MAAZ,EAAoB;EAAA,WAClB,8CAA2BA,MAAM,CAACC,SAAP,EAA3B,CADkB;EAEnB;;EAHH;EAAA,EAA0CJ,UAA1C;EAMA;EACA;EACA;;MACaK,oBAAb;EAAA;;EACE,gCAAYF,MAAZ,EAAoB;EAAA,WAClB,+CAA2BA,MAAM,CAACC,SAAP,EAA3B,CADkB;EAEnB;;EAHH;EAAA,EAA0CJ,UAA1C;EAMA;EACA;EACA;;MACaM,oBAAb;EAAA;;EACE,gCAAYH,MAAZ,EAAoB;EAAA,WAClB,+CAA2BA,MAAM,CAACC,SAAP,EAA3B,CADkB;EAEnB;;EAHH;EAAA,EAA0CJ,UAA1C;EAMA;EACA;EACA;;MACaO,6BAAb;EAAA;;EAAA;EAAA;EAAA;;EAAA;EAAA,EAAmDP,UAAnD;EAEA;EACA;EACA;;MACaQ,gBAAb;EAAA;;EACE,4BAAYC,IAAZ,EAAkB;EAAA,WAChB,0CAAsBA,IAAtB,CADgB;EAEjB;;EAHH;EAAA,EAAsCT,UAAtC;EAMA;EACA;EACA;;MACaU,oBAAb;EAAA;;EAAA;EAAA;EAAA;;EAAA;EAAA,EAA0CV,UAA1C;EAEA;EACA;EACA;;MACaW,mBAAb;EAAA;;EACE,iCAAc;EAAA,WACZ,wBAAM,2BAAN,CADY;EAEb;;EAHH;EAAA,EAAyCX,UAAzC;;ECxDA;EACA;EACA;EAEA,IAAMY,CAAC,GAAG,SAAV;EAAA,IACEC,CAAC,GAAG,OADN;EAAA,IAEEC,CAAC,GAAG,MAFN;EAIO,IAAMC,UAAU,GAAG;EACxBC,EAAAA,IAAI,EAAEJ,CADkB;EAExBK,EAAAA,KAAK,EAAEL,CAFiB;EAGxBM,EAAAA,GAAG,EAAEN;EAHmB,CAAnB;EAMA,IAAMO,QAAQ,GAAG;EACtBH,EAAAA,IAAI,EAAEJ,CADgB;EAEtBK,EAAAA,KAAK,EAAEJ,CAFe;EAGtBK,EAAAA,GAAG,EAAEN;EAHiB,CAAjB;EAMA,IAAMQ,qBAAqB,GAAG;EACnCJ,EAAAA,IAAI,EAAEJ,CAD6B;EAEnCK,EAAAA,KAAK,EAAEJ,CAF4B;EAGnCK,EAAAA,GAAG,EAAEN,CAH8B;EAInCS,EAAAA,OAAO,EAAER;EAJ0B,CAA9B;EAOA,IAAMS,SAAS,GAAG;EACvBN,EAAAA,IAAI,EAAEJ,CADiB;EAEvBK,EAAAA,KAAK,EAAEH,CAFgB;EAGvBI,EAAAA,GAAG,EAAEN;EAHkB,CAAlB;EAMA,IAAMW,SAAS,GAAG;EACvBP,EAAAA,IAAI,EAAEJ,CADiB;EAEvBK,EAAAA,KAAK,EAAEH,CAFgB;EAGvBI,EAAAA,GAAG,EAAEN,CAHkB;EAIvBS,EAAAA,OAAO,EAAEP;EAJc,CAAlB;EAOA,IAAMU,WAAW,GAAG;EACzBC,EAAAA,IAAI,EAAEb,CADmB;EAEzBc,EAAAA,MAAM,EAAEd;EAFiB,CAApB;EAKA,IAAMe,iBAAiB,GAAG;EAC/BF,EAAAA,IAAI,EAAEb,CADyB;EAE/Bc,EAAAA,MAAM,EAAEd,CAFuB;EAG/BgB,EAAAA,MAAM,EAAEhB;EAHuB,CAA1B;EAMA,IAAMiB,sBAAsB,GAAG;EACpCJ,EAAAA,IAAI,EAAEb,CAD8B;EAEpCc,EAAAA,MAAM,EAAEd,CAF4B;EAGpCgB,EAAAA,MAAM,EAAEhB,CAH4B;EAIpCkB,EAAAA,YAAY,EAAEjB;EAJsB,CAA/B;EAOA,IAAMkB,qBAAqB,GAAG;EACnCN,EAAAA,IAAI,EAAEb,CAD6B;EAEnCc,EAAAA,MAAM,EAAEd,CAF2B;EAGnCgB,EAAAA,MAAM,EAAEhB,CAH2B;EAInCkB,EAAAA,YAAY,EAAEhB;EAJqB,CAA9B;EAOA,IAAMkB,cAAc,GAAG;EAC5BP,EAAAA,IAAI,EAAEb,CADsB;EAE5Bc,EAAAA,MAAM,EAAEd,CAFoB;EAG5BqB,EAAAA,SAAS,EAAE;EAHiB,CAAvB;EAMA,IAAMC,oBAAoB,GAAG;EAClCT,EAAAA,IAAI,EAAEb,CAD4B;EAElCc,EAAAA,MAAM,EAAEd,CAF0B;EAGlCgB,EAAAA,MAAM,EAAEhB,CAH0B;EAIlCqB,EAAAA,SAAS,EAAE;EAJuB,CAA7B;EAOA,IAAME,yBAAyB,GAAG;EACvCV,EAAAA,IAAI,EAAEb,CADiC;EAEvCc,EAAAA,MAAM,EAAEd,CAF+B;EAGvCgB,EAAAA,MAAM,EAAEhB,CAH+B;EAIvCqB,EAAAA,SAAS,EAAE,KAJ4B;EAKvCH,EAAAA,YAAY,EAAEjB;EALyB,CAAlC;EAQA,IAAMuB,wBAAwB,GAAG;EACtCX,EAAAA,IAAI,EAAEb,CADgC;EAEtCc,EAAAA,MAAM,EAAEd,CAF8B;EAGtCgB,EAAAA,MAAM,EAAEhB,CAH8B;EAItCqB,EAAAA,SAAS,EAAE,KAJ2B;EAKtCH,EAAAA,YAAY,EAAEhB;EALwB,CAAjC;EAQA,IAAMuB,cAAc,GAAG;EAC5BrB,EAAAA,IAAI,EAAEJ,CADsB;EAE5BK,EAAAA,KAAK,EAAEL,CAFqB;EAG5BM,EAAAA,GAAG,EAAEN,CAHuB;EAI5Ba,EAAAA,IAAI,EAAEb,CAJsB;EAK5Bc,EAAAA,MAAM,EAAEd;EALoB,CAAvB;EAQA,IAAM0B,2BAA2B,GAAG;EACzCtB,EAAAA,IAAI,EAAEJ,CADmC;EAEzCK,EAAAA,KAAK,EAAEL,CAFkC;EAGzCM,EAAAA,GAAG,EAAEN,CAHoC;EAIzCa,EAAAA,IAAI,EAAEb,CAJmC;EAKzCc,EAAAA,MAAM,EAAEd,CALiC;EAMzCgB,EAAAA,MAAM,EAAEhB;EANiC,CAApC;EASA,IAAM2B,YAAY,GAAG;EAC1BvB,EAAAA,IAAI,EAAEJ,CADoB;EAE1BK,EAAAA,KAAK,EAAEJ,CAFmB;EAG1BK,EAAAA,GAAG,EAAEN,CAHqB;EAI1Ba,EAAAA,IAAI,EAAEb,CAJoB;EAK1Bc,EAAAA,MAAM,EAAEd;EALkB,CAArB;EAQA,IAAM4B,yBAAyB,GAAG;EACvCxB,EAAAA,IAAI,EAAEJ,CADiC;EAEvCK,EAAAA,KAAK,EAAEJ,CAFgC;EAGvCK,EAAAA,GAAG,EAAEN,CAHkC;EAIvCa,EAAAA,IAAI,EAAEb,CAJiC;EAKvCc,EAAAA,MAAM,EAAEd,CAL+B;EAMvCgB,EAAAA,MAAM,EAAEhB;EAN+B,CAAlC;EASA,IAAM6B,yBAAyB,GAAG;EACvCzB,EAAAA,IAAI,EAAEJ,CADiC;EAEvCK,EAAAA,KAAK,EAAEJ,CAFgC;EAGvCK,EAAAA,GAAG,EAAEN,CAHkC;EAIvCS,EAAAA,OAAO,EAAER,CAJ8B;EAKvCY,EAAAA,IAAI,EAAEb,CALiC;EAMvCc,EAAAA,MAAM,EAAEd;EAN+B,CAAlC;EASA,IAAM8B,aAAa,GAAG;EAC3B1B,EAAAA,IAAI,EAAEJ,CADqB;EAE3BK,EAAAA,KAAK,EAAEH,CAFoB;EAG3BI,EAAAA,GAAG,EAAEN,CAHsB;EAI3Ba,EAAAA,IAAI,EAAEb,CAJqB;EAK3Bc,EAAAA,MAAM,EAAEd,CALmB;EAM3BkB,EAAAA,YAAY,EAAEjB;EANa,CAAtB;EASA,IAAM8B,0BAA0B,GAAG;EACxC3B,EAAAA,IAAI,EAAEJ,CADkC;EAExCK,EAAAA,KAAK,EAAEH,CAFiC;EAGxCI,EAAAA,GAAG,EAAEN,CAHmC;EAIxCa,EAAAA,IAAI,EAAEb,CAJkC;EAKxCc,EAAAA,MAAM,EAAEd,CALgC;EAMxCgB,EAAAA,MAAM,EAAEhB,CANgC;EAOxCkB,EAAAA,YAAY,EAAEjB;EAP0B,CAAnC;EAUA,IAAM+B,aAAa,GAAG;EAC3B5B,EAAAA,IAAI,EAAEJ,CADqB;EAE3BK,EAAAA,KAAK,EAAEH,CAFoB;EAG3BI,EAAAA,GAAG,EAAEN,CAHsB;EAI3BS,EAAAA,OAAO,EAAEP,CAJkB;EAK3BW,EAAAA,IAAI,EAAEb,CALqB;EAM3Bc,EAAAA,MAAM,EAAEd,CANmB;EAO3BkB,EAAAA,YAAY,EAAEhB;EAPa,CAAtB;EAUA,IAAM+B,0BAA0B,GAAG;EACxC7B,EAAAA,IAAI,EAAEJ,CADkC;EAExCK,EAAAA,KAAK,EAAEH,CAFiC;EAGxCI,EAAAA,GAAG,EAAEN,CAHmC;EAIxCS,EAAAA,OAAO,EAAEP,CAJ+B;EAKxCW,EAAAA,IAAI,EAAEb,CALkC;EAMxCc,EAAAA,MAAM,EAAEd,CANgC;EAOxCgB,EAAAA,MAAM,EAAEhB,CAPgC;EAQxCkB,EAAAA,YAAY,EAAEhB;EAR0B,CAAnC;;EC9JP;EACA;EACA;EAEA;;EAEO,SAASgC,WAAT,CAAqBC,CAArB,EAAwB;EAC7B,SAAO,OAAOA,CAAP,KAAa,WAApB;EACD;EAEM,SAASC,QAAT,CAAkBD,CAAlB,EAAqB;EAC1B,SAAO,OAAOA,CAAP,KAAa,QAApB;EACD;EAEM,SAASE,SAAT,CAAmBF,CAAnB,EAAsB;EAC3B,SAAO,OAAOA,CAAP,KAAa,QAAb,IAAyBA,CAAC,GAAG,CAAJ,KAAU,CAA1C;EACD;EAEM,SAASG,QAAT,CAAkBH,CAAlB,EAAqB;EAC1B,SAAO,OAAOA,CAAP,KAAa,QAApB;EACD;EAEM,SAASI,MAAT,CAAgBJ,CAAhB,EAAmB;EACxB,SAAOK,MAAM,CAACC,SAAP,CAAiBC,QAAjB,CAA0BC,IAA1B,CAA+BR,CAA/B,MAAsC,eAA7C;EACD;;EAIM,SAASS,WAAT,GAAuB;EAC5B,MAAI;EACF,WAAO,OAAOC,IAAP,KAAgB,WAAhB,IAA+B,CAAC,CAACA,IAAI,CAACC,kBAA7C;EACD,GAFD,CAEE,OAAOC,CAAP,EAAU;EACV,WAAO,KAAP;EACD;EACF;;EAIM,SAASC,UAAT,CAAoBC,KAApB,EAA2B;EAChC,SAAOC,KAAK,CAACC,OAAN,CAAcF,KAAd,IAAuBA,KAAvB,GAA+B,CAACA,KAAD,CAAtC;EACD;EAEM,SAASG,MAAT,CAAgBC,GAAhB,EAAqBC,EAArB,EAAyBC,OAAzB,EAAkC;EACvC,MAAIF,GAAG,CAACG,MAAJ,KAAe,CAAnB,EAAsB;EACpB,WAAOC,SAAP;EACD;;EACD,SAAOJ,GAAG,CAACK,MAAJ,CAAW,UAACC,IAAD,EAAOC,IAAP,EAAgB;EAChC,QAAMC,IAAI,GAAG,CAACP,EAAE,CAACM,IAAD,CAAH,EAAWA,IAAX,CAAb;;EACA,QAAI,CAACD,IAAL,EAAW;EACT,aAAOE,IAAP;EACD,KAFD,MAEO,IAAIN,OAAO,CAACI,IAAI,CAAC,CAAD,CAAL,EAAUE,IAAI,CAAC,CAAD,CAAd,CAAP,KAA8BF,IAAI,CAAC,CAAD,CAAtC,EAA2C;EAChD,aAAOA,IAAP;EACD,KAFM,MAEA;EACL,aAAOE,IAAP;EACD;EACF,GATM,EASJ,IATI,EASE,CATF,CAAP;EAUD;EAEM,SAASC,IAAT,CAAcC,GAAd,EAAmBC,IAAnB,EAAyB;EAC9B,SAAOA,IAAI,CAACN,MAAL,CAAY,UAACO,CAAD,EAAIC,CAAJ,EAAU;EAC3BD,IAAAA,CAAC,CAACC,CAAD,CAAD,GAAOH,GAAG,CAACG,CAAD,CAAV;EACA,WAAOD,CAAP;EACD,GAHM,EAGJ,EAHI,CAAP;EAID;EAEM,SAASE,cAAT,CAAwBJ,GAAxB,EAA6BK,IAA7B,EAAmC;EACxC,SAAO5B,MAAM,CAACC,SAAP,CAAiB0B,cAAjB,CAAgCxB,IAAhC,CAAqCoB,GAArC,EAA0CK,IAA1C,CAAP;EACD;;EAIM,SAASC,cAAT,CAAwBpB,KAAxB,EAA+BqB,MAA/B,EAAuCC,GAAvC,EAA4C;EACjD,SAAOlC,SAAS,CAACY,KAAD,CAAT,IAAoBA,KAAK,IAAIqB,MAA7B,IAAuCrB,KAAK,IAAIsB,GAAvD;EACD;;EAGM,SAASC,QAAT,CAAkBC,CAAlB,EAAqBzE,CAArB,EAAwB;EAC7B,SAAOyE,CAAC,GAAGzE,CAAC,GAAG0E,IAAI,CAACC,KAAL,CAAWF,CAAC,GAAGzE,CAAf,CAAf;EACD;EAEM,SAAS4E,QAAT,CAAkBC,KAAlB,EAAyB7E,CAAzB,EAAgC;EAAA,MAAPA,CAAO;EAAPA,IAAAA,CAAO,GAAH,CAAG;EAAA;;EACrC,MAAM8E,KAAK,GAAGD,KAAK,GAAG,CAAtB;EACA,MAAIE,MAAJ;;EACA,MAAID,KAAJ,EAAW;EACTC,IAAAA,MAAM,GAAG,MAAM,CAAC,KAAK,CAACF,KAAP,EAAcD,QAAd,CAAuB5E,CAAvB,EAA0B,GAA1B,CAAf;EACD,GAFD,MAEO;EACL+E,IAAAA,MAAM,GAAG,CAAC,KAAKF,KAAN,EAAaD,QAAb,CAAsB5E,CAAtB,EAAyB,GAAzB,CAAT;EACD;;EACD,SAAO+E,MAAP;EACD;EAEM,SAASC,YAAT,CAAsBC,MAAtB,EAA8B;EACnC,MAAI/C,WAAW,CAAC+C,MAAD,CAAX,IAAuBA,MAAM,KAAK,IAAlC,IAA0CA,MAAM,KAAK,EAAzD,EAA6D;EAC3D,WAAOxB,SAAP;EACD,GAFD,MAEO;EACL,WAAOyB,QAAQ,CAACD,MAAD,EAAS,EAAT,CAAf;EACD;EACF;EAEM,SAASE,aAAT,CAAuBF,MAAvB,EAA+B;EACpC,MAAI/C,WAAW,CAAC+C,MAAD,CAAX,IAAuBA,MAAM,KAAK,IAAlC,IAA0CA,MAAM,KAAK,EAAzD,EAA6D;EAC3D,WAAOxB,SAAP;EACD,GAFD,MAEO;EACL,WAAO2B,UAAU,CAACH,MAAD,CAAjB;EACD;EACF;EAEM,SAASI,WAAT,CAAqBC,QAArB,EAA+B;EACpC;EACA,MAAIpD,WAAW,CAACoD,QAAD,CAAX,IAAyBA,QAAQ,KAAK,IAAtC,IAA8CA,QAAQ,KAAK,EAA/D,EAAmE;EACjE,WAAO7B,SAAP;EACD,GAFD,MAEO;EACL,QAAM8B,CAAC,GAAGH,UAAU,CAAC,OAAOE,QAAR,CAAV,GAA8B,IAAxC;EACA,WAAOZ,IAAI,CAACC,KAAL,CAAWY,CAAX,CAAP;EACD;EACF;EAEM,SAASC,OAAT,CAAiBC,MAAjB,EAAyBC,MAAzB,EAAiCC,UAAjC,EAAqD;EAAA,MAApBA,UAAoB;EAApBA,IAAAA,UAAoB,GAAP,KAAO;EAAA;;EAC1D,MAAMC,MAAM,YAAG,EAAH,EAASF,MAAT,CAAZ;EAAA,MACEG,OAAO,GAAGF,UAAU,GAAGjB,IAAI,CAACoB,KAAR,GAAgBpB,IAAI,CAACqB,KAD3C;EAEA,SAAOF,OAAO,CAACJ,MAAM,GAAGG,MAAV,CAAP,GAA2BA,MAAlC;EACD;;EAIM,SAASI,UAAT,CAAoB5F,IAApB,EAA0B;EAC/B,SAAOA,IAAI,GAAG,CAAP,KAAa,CAAb,KAAmBA,IAAI,GAAG,GAAP,KAAe,CAAf,IAAoBA,IAAI,GAAG,GAAP,KAAe,CAAtD,CAAP;EACD;EAEM,SAAS6F,UAAT,CAAoB7F,IAApB,EAA0B;EAC/B,SAAO4F,UAAU,CAAC5F,IAAD,CAAV,GAAmB,GAAnB,GAAyB,GAAhC;EACD;EAEM,SAAS8F,WAAT,CAAqB9F,IAArB,EAA2BC,KAA3B,EAAkC;EACvC,MAAM8F,QAAQ,GAAG3B,QAAQ,CAACnE,KAAK,GAAG,CAAT,EAAY,EAAZ,CAAR,GAA0B,CAA3C;EAAA,MACE+F,OAAO,GAAGhG,IAAI,GAAG,CAACC,KAAK,GAAG8F,QAAT,IAAqB,EADxC;;EAGA,MAAIA,QAAQ,KAAK,CAAjB,EAAoB;EAClB,WAAOH,UAAU,CAACI,OAAD,CAAV,GAAsB,EAAtB,GAA2B,EAAlC;EACD,GAFD,MAEO;EACL,WAAO,CAAC,EAAD,EAAK,IAAL,EAAW,EAAX,EAAe,EAAf,EAAmB,EAAnB,EAAuB,EAAvB,EAA2B,EAA3B,EAA+B,EAA/B,EAAmC,EAAnC,EAAuC,EAAvC,EAA2C,EAA3C,EAA+C,EAA/C,EAAmDD,QAAQ,GAAG,CAA9D,CAAP;EACD;EACF;;EAGM,SAASE,YAAT,CAAsBtC,GAAtB,EAA2B;EAChC,MAAIuC,CAAC,GAAGC,IAAI,CAACC,GAAL,CACNzC,GAAG,CAAC3D,IADE,EAEN2D,GAAG,CAAC1D,KAAJ,GAAY,CAFN,EAGN0D,GAAG,CAACzD,GAHE,EAINyD,GAAG,CAAClD,IAJE,EAKNkD,GAAG,CAACjD,MALE,EAMNiD,GAAG,CAAC/C,MANE,EAON+C,GAAG,CAAC0C,WAPE,CAAR,CADgC;;EAYhC,MAAI1C,GAAG,CAAC3D,IAAJ,GAAW,GAAX,IAAkB2D,GAAG,CAAC3D,IAAJ,IAAY,CAAlC,EAAqC;EACnCkG,IAAAA,CAAC,GAAG,IAAIC,IAAJ,CAASD,CAAT,CAAJ;EACAA,IAAAA,CAAC,CAACI,cAAF,CAAiBJ,CAAC,CAACK,cAAF,KAAqB,IAAtC;EACD;;EACD,SAAO,CAACL,CAAR;EACD;EAEM,SAASM,eAAT,CAAyBC,QAAzB,EAAmC;EACxC,MAAMC,EAAE,GACJ,CAACD,QAAQ,GACPnC,IAAI,CAACC,KAAL,CAAWkC,QAAQ,GAAG,CAAtB,CADD,GAECnC,IAAI,CAACC,KAAL,CAAWkC,QAAQ,GAAG,GAAtB,CAFD,GAGCnC,IAAI,CAACC,KAAL,CAAWkC,QAAQ,GAAG,GAAtB,CAHF,IAIA,CALJ;EAAA,MAMEE,IAAI,GAAGF,QAAQ,GAAG,CANpB;EAAA,MAOEG,EAAE,GAAG,CAACD,IAAI,GAAGrC,IAAI,CAACC,KAAL,CAAWoC,IAAI,GAAG,CAAlB,CAAP,GAA8BrC,IAAI,CAACC,KAAL,CAAWoC,IAAI,GAAG,GAAlB,CAA9B,GAAuDrC,IAAI,CAACC,KAAL,CAAWoC,IAAI,GAAG,GAAlB,CAAxD,IAAkF,CAPzF;EAQA,SAAOD,EAAE,KAAK,CAAP,IAAYE,EAAE,KAAK,CAAnB,GAAuB,EAAvB,GAA4B,EAAnC;EACD;EAEM,SAASC,cAAT,CAAwB7G,IAAxB,EAA8B;EACnC,MAAIA,IAAI,GAAG,EAAX,EAAe;EACb,WAAOA,IAAP;EACD,GAFD,MAEO,OAAOA,IAAI,GAAG,EAAP,GAAY,OAAOA,IAAnB,GAA0B,OAAOA,IAAxC;EACR;;EAIM,SAAS8G,aAAT,CAAuBC,EAAvB,EAA2BC,YAA3B,EAAyCC,MAAzC,EAAiDC,QAAjD,EAAkE;EAAA,MAAjBA,QAAiB;EAAjBA,IAAAA,QAAiB,GAAN,IAAM;EAAA;;EACvE,MAAMC,IAAI,GAAG,IAAIhB,IAAJ,CAASY,EAAT,CAAb;EAAA,MACEK,QAAQ,GAAG;EACTnG,IAAAA,SAAS,EAAE,KADF;EAETjB,IAAAA,IAAI,EAAE,SAFG;EAGTC,IAAAA,KAAK,EAAE,SAHE;EAITC,IAAAA,GAAG,EAAE,SAJI;EAKTO,IAAAA,IAAI,EAAE,SALG;EAMTC,IAAAA,MAAM,EAAE;EANC,GADb;;EAUA,MAAIwG,QAAJ,EAAc;EACZE,IAAAA,QAAQ,CAACF,QAAT,GAAoBA,QAApB;EACD;;EAED,MAAMG,QAAQ;EAAKvG,IAAAA,YAAY,EAAEkG;EAAnB,KAAoCI,QAApC,CAAd;;EAEA,MAAME,MAAM,GAAG,IAAI7E,IAAI,CAAC8E,cAAT,CAAwBN,MAAxB,EAAgCI,QAAhC,EACZG,aADY,CACEL,IADF,EAEZM,IAFY,CAEP,UAACC,CAAD;EAAA,WAAOA,CAAC,CAACC,IAAF,CAAOC,WAAP,OAAyB,cAAhC;EAAA,GAFO,CAAf;EAGA,SAAON,MAAM,GAAGA,MAAM,CAACO,KAAV,GAAkB,IAA/B;EACD;;EAGM,SAASC,YAAT,CAAsBC,UAAtB,EAAkCC,YAAlC,EAAgD;EACrD,MAAIC,OAAO,GAAGnD,QAAQ,CAACiD,UAAD,EAAa,EAAb,CAAtB,CADqD;;EAIrD,MAAIG,MAAM,CAACC,KAAP,CAAaF,OAAb,CAAJ,EAA2B;EACzBA,IAAAA,OAAO,GAAG,CAAV;EACD;;EAED,MAAMG,MAAM,GAAGtD,QAAQ,CAACkD,YAAD,EAAe,EAAf,CAAR,IAA8B,CAA7C;EAAA,MACEK,YAAY,GAAGJ,OAAO,GAAG,CAAV,IAAe7F,MAAM,CAACkG,EAAP,CAAUL,OAAV,EAAmB,CAAC,CAApB,CAAf,GAAwC,CAACG,MAAzC,GAAkDA,MADnE;EAEA,SAAOH,OAAO,GAAG,EAAV,GAAeI,YAAtB;EACD;;EAIM,SAASE,QAAT,CAAkBV,KAAlB,EAAyB;EAC9B,MAAMW,YAAY,GAAGN,MAAM,CAACL,KAAD,CAA3B;EACA,MAAI,OAAOA,KAAP,KAAiB,SAAjB,IAA8BA,KAAK,KAAK,EAAxC,IAA8CK,MAAM,CAACC,KAAP,CAAaK,YAAb,CAAlD,EACE,MAAM,IAAI9I,oBAAJ,yBAA+CmI,KAA/C,CAAN;EACF,SAAOW,YAAP;EACD;EAEM,SAASC,eAAT,CAAyB9E,GAAzB,EAA8B+E,UAA9B,EAA0C;EAC/C,MAAMC,UAAU,GAAG,EAAnB;;EACA,OAAK,IAAMC,CAAX,IAAgBjF,GAAhB,EAAqB;EACnB,QAAII,cAAc,CAACJ,GAAD,EAAMiF,CAAN,CAAlB,EAA4B;EAC1B,UAAMC,CAAC,GAAGlF,GAAG,CAACiF,CAAD,CAAb;EACA,UAAIC,CAAC,KAAKxF,SAAN,IAAmBwF,CAAC,KAAK,IAA7B,EAAmC;EACnCF,MAAAA,UAAU,CAACD,UAAU,CAACE,CAAD,CAAX,CAAV,GAA4BL,QAAQ,CAACM,CAAD,CAApC;EACD;EACF;;EACD,SAAOF,UAAP;EACD;EAEM,SAASG,YAAT,CAAsBC,MAAtB,EAA8BC,MAA9B,EAAsC;EAC3C,MAAMC,KAAK,GAAG3E,IAAI,CAACoB,KAAL,CAAWpB,IAAI,CAAC4E,GAAL,CAASH,MAAM,GAAG,EAAlB,CAAX,CAAd;EAAA,MACEI,OAAO,GAAG7E,IAAI,CAACoB,KAAL,CAAWpB,IAAI,CAAC4E,GAAL,CAASH,MAAM,GAAG,EAAlB,CAAX,CADZ;EAAA,MAEEK,IAAI,GAAGL,MAAM,IAAI,CAAV,GAAc,GAAd,GAAoB,GAF7B;;EAIA,UAAQC,MAAR;EACE,SAAK,OAAL;EACE,kBAAUI,IAAV,GAAiB5E,QAAQ,CAACyE,KAAD,EAAQ,CAAR,CAAzB,SAAuCzE,QAAQ,CAAC2E,OAAD,EAAU,CAAV,CAA/C;;EACF,SAAK,QAAL;EACE,kBAAUC,IAAV,GAAiBH,KAAjB,IAAyBE,OAAO,GAAG,CAAV,SAAkBA,OAAlB,GAA8B,EAAvD;;EACF,SAAK,QAAL;EACE,kBAAUC,IAAV,GAAiB5E,QAAQ,CAACyE,KAAD,EAAQ,CAAR,CAAzB,GAAsCzE,QAAQ,CAAC2E,OAAD,EAAU,CAAV,CAA9C;;EACF;EACE,YAAM,IAAIE,UAAJ,mBAA+BL,MAA/B,0CAAN;EARJ;EAUD;EAEM,SAASM,UAAT,CAAoB3F,GAApB,EAAyB;EAC9B,SAAOD,IAAI,CAACC,GAAD,EAAM,CAAC,MAAD,EAAS,QAAT,EAAmB,QAAnB,EAA6B,aAA7B,CAAN,CAAX;EACD;EAEM,IAAM4F,SAAS,GACpB,8EADK;;ECxQP;EACA;EACA;;;EAEO,IAAMC,UAAU,GAAG,CACxB,SADwB,EAExB,UAFwB,EAGxB,OAHwB,EAIxB,OAJwB,EAKxB,KALwB,EAMxB,MANwB,EAOxB,MAPwB,EAQxB,QARwB,EASxB,WATwB,EAUxB,SAVwB,EAWxB,UAXwB,EAYxB,UAZwB,CAAnB;EAeA,IAAMC,WAAW,GAAG,CACzB,KADyB,EAEzB,KAFyB,EAGzB,KAHyB,EAIzB,KAJyB,EAKzB,KALyB,EAMzB,KANyB,EAOzB,KAPyB,EAQzB,KARyB,EASzB,KATyB,EAUzB,KAVyB,EAWzB,KAXyB,EAYzB,KAZyB,CAApB;EAeA,IAAMC,YAAY,GAAG,CAAC,GAAD,EAAM,GAAN,EAAW,GAAX,EAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,GAA/B,EAAoC,GAApC,EAAyC,GAAzC,EAA8C,GAA9C,EAAmD,GAAnD,EAAwD,GAAxD,CAArB;EAEA,SAASC,MAAT,CAAgBvG,MAAhB,EAAwB;EAC7B,UAAQA,MAAR;EACE,SAAK,QAAL;EACE,uBAAWsG,YAAX;;EACF,SAAK,OAAL;EACE,uBAAWD,WAAX;;EACF,SAAK,MAAL;EACE,uBAAWD,UAAX;;EACF,SAAK,SAAL;EACE,aAAO,CAAC,GAAD,EAAM,GAAN,EAAW,GAAX,EAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,GAA/B,EAAoC,GAApC,EAAyC,GAAzC,EAA8C,IAA9C,EAAoD,IAApD,EAA0D,IAA1D,CAAP;;EACF,SAAK,SAAL;EACE,aAAO,CAAC,IAAD,EAAO,IAAP,EAAa,IAAb,EAAmB,IAAnB,EAAyB,IAAzB,EAA+B,IAA/B,EAAqC,IAArC,EAA2C,IAA3C,EAAiD,IAAjD,EAAuD,IAAvD,EAA6D,IAA7D,EAAmE,IAAnE,CAAP;;EACF;EACE,aAAO,IAAP;EAZJ;EAcD;EAEM,IAAMI,YAAY,GAAG,CAC1B,QAD0B,EAE1B,SAF0B,EAG1B,WAH0B,EAI1B,UAJ0B,EAK1B,QAL0B,EAM1B,UAN0B,EAO1B,QAP0B,CAArB;EAUA,IAAMC,aAAa,GAAG,CAAC,KAAD,EAAQ,KAAR,EAAe,KAAf,EAAsB,KAAtB,EAA6B,KAA7B,EAAoC,KAApC,EAA2C,KAA3C,CAAtB;EAEA,IAAMC,cAAc,GAAG,CAAC,GAAD,EAAM,GAAN,EAAW,GAAX,EAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,GAA/B,CAAvB;EAEA,SAASC,QAAT,CAAkB3G,MAAlB,EAA0B;EAC/B,UAAQA,MAAR;EACE,SAAK,QAAL;EACE,uBAAW0G,cAAX;;EACF,SAAK,OAAL;EACE,uBAAWD,aAAX;;EACF,SAAK,MAAL;EACE,uBAAWD,YAAX;;EACF,SAAK,SAAL;EACE,aAAO,CAAC,GAAD,EAAM,GAAN,EAAW,GAAX,EAAgB,GAAhB,EAAqB,GAArB,EAA0B,GAA1B,EAA+B,GAA/B,CAAP;;EACF;EACE,aAAO,IAAP;EAVJ;EAYD;EAEM,IAAMI,SAAS,GAAG,CAAC,IAAD,EAAO,IAAP,CAAlB;EAEA,IAAMC,QAAQ,GAAG,CAAC,eAAD,EAAkB,aAAlB,CAAjB;EAEA,IAAMC,SAAS,GAAG,CAAC,IAAD,EAAO,IAAP,CAAlB;EAEA,IAAMC,UAAU,GAAG,CAAC,GAAD,EAAM,GAAN,CAAnB;EAEA,SAASC,IAAT,CAAchH,MAAd,EAAsB;EAC3B,UAAQA,MAAR;EACE,SAAK,QAAL;EACE,uBAAW+G,UAAX;;EACF,SAAK,OAAL;EACE,uBAAWD,SAAX;;EACF,SAAK,MAAL;EACE,uBAAWD,QAAX;;EACF;EACE,aAAO,IAAP;EARJ;EAUD;EAEM,SAASI,mBAAT,CAA6BC,EAA7B,EAAiC;EACtC,SAAON,SAAS,CAACM,EAAE,CAAC7J,IAAH,GAAU,EAAV,GAAe,CAAf,GAAmB,CAApB,CAAhB;EACD;EAEM,SAAS8J,kBAAT,CAA4BD,EAA5B,EAAgClH,MAAhC,EAAwC;EAC7C,SAAO2G,QAAQ,CAAC3G,MAAD,CAAR,CAAiBkH,EAAE,CAACjK,OAAH,GAAa,CAA9B,CAAP;EACD;EAEM,SAASmK,gBAAT,CAA0BF,EAA1B,EAA8BlH,MAA9B,EAAsC;EAC3C,SAAOuG,MAAM,CAACvG,MAAD,CAAN,CAAekH,EAAE,CAACrK,KAAH,GAAW,CAA1B,CAAP;EACD;EAEM,SAASwK,cAAT,CAAwBH,EAAxB,EAA4BlH,MAA5B,EAAoC;EACzC,SAAOgH,IAAI,CAAChH,MAAD,CAAJ,CAAakH,EAAE,CAACtK,IAAH,GAAU,CAAV,GAAc,CAAd,GAAkB,CAA/B,CAAP;EACD;EAEM,SAAS0K,kBAAT,CAA4BjL,IAA5B,EAAkCkL,KAAlC,EAAyCC,OAAzC,EAA6DC,MAA7D,EAA6E;EAAA,MAApCD,OAAoC;EAApCA,IAAAA,OAAoC,GAA1B,QAA0B;EAAA;;EAAA,MAAhBC,MAAgB;EAAhBA,IAAAA,MAAgB,GAAP,KAAO;EAAA;;EAClF,MAAMC,KAAK,GAAG;EACZC,IAAAA,KAAK,EAAE,CAAC,MAAD,EAAS,KAAT,CADK;EAEZC,IAAAA,QAAQ,EAAE,CAAC,SAAD,EAAY,MAAZ,CAFE;EAGZrB,IAAAA,MAAM,EAAE,CAAC,OAAD,EAAU,KAAV,CAHI;EAIZsB,IAAAA,KAAK,EAAE,CAAC,MAAD,EAAS,KAAT,CAJK;EAKZC,IAAAA,IAAI,EAAE,CAAC,KAAD,EAAQ,KAAR,EAAe,MAAf,CALM;EAMZjC,IAAAA,KAAK,EAAE,CAAC,MAAD,EAAS,KAAT,CANK;EAOZE,IAAAA,OAAO,EAAE,CAAC,QAAD,EAAW,MAAX,CAPG;EAQZgC,IAAAA,OAAO,EAAE,CAAC,QAAD,EAAW,MAAX;EARG,GAAd;EAWA,MAAMC,QAAQ,GAAG,CAAC,OAAD,EAAU,SAAV,EAAqB,SAArB,EAAgCC,OAAhC,CAAwC5L,IAAxC,MAAkD,CAAC,CAApE;;EAEA,MAAImL,OAAO,KAAK,MAAZ,IAAsBQ,QAA1B,EAAoC;EAClC,QAAME,KAAK,GAAG7L,IAAI,KAAK,MAAvB;;EACA,YAAQkL,KAAR;EACE,WAAK,CAAL;EACE,eAAOW,KAAK,GAAG,UAAH,aAAwBR,KAAK,CAACrL,IAAD,CAAL,CAAY,CAAZ,CAApC;;EACF,WAAK,CAAC,CAAN;EACE,eAAO6L,KAAK,GAAG,WAAH,aAAyBR,KAAK,CAACrL,IAAD,CAAL,CAAY,CAAZ,CAArC;;EACF,WAAK,CAAL;EACE,eAAO6L,KAAK,GAAG,OAAH,aAAqBR,KAAK,CAACrL,IAAD,CAAL,CAAY,CAAZ,CAAjC;;EANJ;EASD;;EAED,MAAM8L,QAAQ,GAAGnJ,MAAM,CAACkG,EAAP,CAAUqC,KAAV,EAAiB,CAAC,CAAlB,KAAwBA,KAAK,GAAG,CAAjD;EAAA,MACEa,QAAQ,GAAGlH,IAAI,CAAC4E,GAAL,CAASyB,KAAT,CADb;EAAA,MAEEc,QAAQ,GAAGD,QAAQ,KAAK,CAF1B;EAAA,MAGEE,QAAQ,GAAGZ,KAAK,CAACrL,IAAD,CAHlB;EAAA,MAIEkM,OAAO,GAAGd,MAAM,GACZY,QAAQ,GACNC,QAAQ,CAAC,CAAD,CADF,GAENA,QAAQ,CAAC,CAAD,CAAR,IAAeA,QAAQ,CAAC,CAAD,CAHb,GAIZD,QAAQ,GACRX,KAAK,CAACrL,IAAD,CAAL,CAAY,CAAZ,CADQ,GAERA,IAVN;EAWA,SAAO8L,QAAQ,GAAMC,QAAN,SAAkBG,OAAlB,oBAAwCH,QAAxC,SAAoDG,OAAnE;EACD;;ECjKD,SAASC,eAAT,CAAyBC,MAAzB,EAAiCC,aAAjC,EAAgD;EAC9C,MAAIjM,CAAC,GAAG,EAAR;;EACA,uDAAoBgM,MAApB,wCAA4B;EAAA,QAAjBE,KAAiB;;EAC1B,QAAIA,KAAK,CAACC,OAAV,EAAmB;EACjBnM,MAAAA,CAAC,IAAIkM,KAAK,CAACE,GAAX;EACD,KAFD,MAEO;EACLpM,MAAAA,CAAC,IAAIiM,aAAa,CAACC,KAAK,CAACE,GAAP,CAAlB;EACD;EACF;;EACD,SAAOpM,CAAP;EACD;;EAED,IAAMqM,uBAAsB,GAAG;EAC7BC,EAAAA,CAAC,EAAEC,UAD0B;EAE7BC,EAAAA,EAAE,EAAED,QAFyB;EAG7BE,EAAAA,GAAG,EAAEF,SAHwB;EAI7BG,EAAAA,IAAI,EAAEH,SAJuB;EAK7BI,EAAAA,CAAC,EAAEJ,WAL0B;EAM7BK,EAAAA,EAAE,EAAEL,iBANyB;EAO7BM,EAAAA,GAAG,EAAEN,sBAPwB;EAQ7BO,EAAAA,IAAI,EAAEP,qBARuB;EAS7BQ,EAAAA,CAAC,EAAER,cAT0B;EAU7BS,EAAAA,EAAE,EAAET,oBAVyB;EAW7BU,EAAAA,GAAG,EAAEV,yBAXwB;EAY7BW,EAAAA,IAAI,EAAEX,wBAZuB;EAa7BjH,EAAAA,CAAC,EAAEiH,cAb0B;EAc7BY,EAAAA,EAAE,EAAEZ,YAdyB;EAe7Ba,EAAAA,GAAG,EAAEb,aAfwB;EAgB7Bc,EAAAA,IAAI,EAAEd,aAhBuB;EAiB7Be,EAAAA,CAAC,EAAEf,2BAjB0B;EAkB7BgB,EAAAA,EAAE,EAAEhB,yBAlByB;EAmB7BiB,EAAAA,GAAG,EAAEjB,0BAnBwB;EAoB7BkB,EAAAA,IAAI,EAAElB;EApBuB,CAA/B;EAuBA;EACA;EACA;;MAEqBmB;cACZC,SAAP,gBAAcvG,MAAd,EAAsBwG,IAAtB,EAAiC;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EAC/B,WAAO,IAAIF,SAAJ,CAActG,MAAd,EAAsBwG,IAAtB,CAAP;EACD;;cAEMC,cAAP,qBAAmBC,GAAnB,EAAwB;EACtB,QAAIC,OAAO,GAAG,IAAd;EAAA,QACEC,WAAW,GAAG,EADhB;EAAA,QAEEC,SAAS,GAAG,KAFd;EAGA,QAAMjC,MAAM,GAAG,EAAf;;EACA,SAAK,IAAIkC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGJ,GAAG,CAACvK,MAAxB,EAAgC2K,CAAC,EAAjC,EAAqC;EACnC,UAAMC,CAAC,GAAGL,GAAG,CAACM,MAAJ,CAAWF,CAAX,CAAV;;EACA,UAAIC,CAAC,KAAK,GAAV,EAAe;EACb,YAAIH,WAAW,CAACzK,MAAZ,GAAqB,CAAzB,EAA4B;EAC1ByI,UAAAA,MAAM,CAACqC,IAAP,CAAY;EAAElC,YAAAA,OAAO,EAAE8B,SAAX;EAAsB7B,YAAAA,GAAG,EAAE4B;EAA3B,WAAZ;EACD;;EACDD,QAAAA,OAAO,GAAG,IAAV;EACAC,QAAAA,WAAW,GAAG,EAAd;EACAC,QAAAA,SAAS,GAAG,CAACA,SAAb;EACD,OAPD,MAOO,IAAIA,SAAJ,EAAe;EACpBD,QAAAA,WAAW,IAAIG,CAAf;EACD,OAFM,MAEA,IAAIA,CAAC,KAAKJ,OAAV,EAAmB;EACxBC,QAAAA,WAAW,IAAIG,CAAf;EACD,OAFM,MAEA;EACL,YAAIH,WAAW,CAACzK,MAAZ,GAAqB,CAAzB,EAA4B;EAC1ByI,UAAAA,MAAM,CAACqC,IAAP,CAAY;EAAElC,YAAAA,OAAO,EAAE,KAAX;EAAkBC,YAAAA,GAAG,EAAE4B;EAAvB,WAAZ;EACD;;EACDA,QAAAA,WAAW,GAAGG,CAAd;EACAJ,QAAAA,OAAO,GAAGI,CAAV;EACD;EACF;;EAED,QAAIH,WAAW,CAACzK,MAAZ,GAAqB,CAAzB,EAA4B;EAC1ByI,MAAAA,MAAM,CAACqC,IAAP,CAAY;EAAElC,QAAAA,OAAO,EAAE8B,SAAX;EAAsB7B,QAAAA,GAAG,EAAE4B;EAA3B,OAAZ;EACD;;EAED,WAAOhC,MAAP;EACD;;cAEMK,yBAAP,gCAA8BH,KAA9B,EAAqC;EACnC,WAAOG,uBAAsB,CAACH,KAAD,CAA7B;EACD;;EAED,qBAAY9E,MAAZ,EAAoBkH,UAApB,EAAgC;EAC9B,SAAKV,IAAL,GAAYU,UAAZ;EACA,SAAKC,GAAL,GAAWnH,MAAX;EACA,SAAKoH,SAAL,GAAiB,IAAjB;EACD;;;;WAEDC,0BAAA,iCAAwBhE,EAAxB,EAA4BmD,IAA5B,EAAkC;EAChC,QAAI,KAAKY,SAAL,KAAmB,IAAvB,EAA6B;EAC3B,WAAKA,SAAL,GAAiB,KAAKD,GAAL,CAASG,iBAAT,EAAjB;EACD;;EACD,QAAMC,EAAE,GAAG,KAAKH,SAAL,CAAeI,WAAf,CAA2BnE,EAA3B,eAAoC,KAAKmD,IAAzC,EAAkDA,IAAlD,EAAX;EACA,WAAOe,EAAE,CAACxF,MAAH,EAAP;EACD;;WAED0F,iBAAA,wBAAepE,EAAf,EAAmBmD,IAAnB,EAA8B;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EAC5B,QAAMe,EAAE,GAAG,KAAKJ,GAAL,CAASK,WAAT,CAAqBnE,EAArB,eAA8B,KAAKmD,IAAnC,EAA4CA,IAA5C,EAAX;EACA,WAAOe,EAAE,CAACxF,MAAH,EAAP;EACD;;WAED2F,sBAAA,6BAAoBrE,EAApB,EAAwBmD,IAAxB,EAAmC;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EACjC,QAAMe,EAAE,GAAG,KAAKJ,GAAL,CAASK,WAAT,CAAqBnE,EAArB,eAA8B,KAAKmD,IAAnC,EAA4CA,IAA5C,EAAX;EACA,WAAOe,EAAE,CAAChH,aAAH,EAAP;EACD;;WAEDoH,kBAAA,yBAAgBtE,EAAhB,EAAoBmD,IAApB,EAA+B;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EAC7B,QAAMe,EAAE,GAAG,KAAKJ,GAAL,CAASK,WAAT,CAAqBnE,EAArB,eAA8B,KAAKmD,IAAnC,EAA4CA,IAA5C,EAAX;EACA,WAAOe,EAAE,CAACI,eAAH,EAAP;EACD;;WAEDC,MAAA,aAAIjP,CAAJ,EAAOkP,CAAP,EAAc;EAAA,QAAPA,CAAO;EAAPA,MAAAA,CAAO,GAAH,CAAG;EAAA;;EACZ;EACA,QAAI,KAAKrB,IAAL,CAAUsB,WAAd,EAA2B;EACzB,aAAOvK,QAAQ,CAAC5E,CAAD,EAAIkP,CAAJ,CAAf;EACD;;EAED,QAAMrB,IAAI,gBAAQ,KAAKA,IAAb,CAAV;;EAEA,QAAIqB,CAAC,GAAG,CAAR,EAAW;EACTrB,MAAAA,IAAI,CAACuB,KAAL,GAAaF,CAAb;EACD;;EAED,WAAO,KAAKV,GAAL,CAASa,eAAT,CAAyBxB,IAAzB,EAA+BzE,MAA/B,CAAsCpJ,CAAtC,CAAP;EACD;;WAEDsP,2BAAA,kCAAyB5E,EAAzB,EAA6BqD,GAA7B,EAAkC;EAAA;;EAChC,QAAMwB,YAAY,GAAG,KAAKf,GAAL,CAASgB,WAAT,OAA2B,IAAhD;EAAA,QACEC,oBAAoB,GAAG,KAAKjB,GAAL,CAASkB,cAAT,IAA2B,KAAKlB,GAAL,CAASkB,cAAT,KAA4B,SADhF;EAAA,QAEEzK,MAAM,GAAG,SAATA,MAAS,CAAC4I,IAAD,EAAO8B,OAAP;EAAA,aAAmB,KAAI,CAACnB,GAAL,CAASmB,OAAT,CAAiBjF,EAAjB,EAAqBmD,IAArB,EAA2B8B,OAA3B,CAAnB;EAAA,KAFX;EAAA,QAGEzG,YAAY,GAAG,SAAfA,YAAe,CAAC2E,IAAD,EAAU;EACvB,UAAInD,EAAE,CAACkF,aAAH,IAAoBlF,EAAE,CAACvB,MAAH,KAAc,CAAlC,IAAuC0E,IAAI,CAACgC,MAAhD,EAAwD;EACtD,eAAO,GAAP;EACD;;EAED,aAAOnF,EAAE,CAACoF,OAAH,GAAapF,EAAE,CAACqF,IAAH,CAAQ7G,YAAR,CAAqBwB,EAAE,CAACvD,EAAxB,EAA4B0G,IAAI,CAACzE,MAAjC,CAAb,GAAwD,EAA/D;EACD,KATH;EAAA,QAUE4G,QAAQ,GAAG,SAAXA,QAAW;EAAA,aACTT,YAAY,GACRU,mBAAA,CAA4BvF,EAA5B,CADQ,GAERzF,MAAM,CAAC;EAAEpE,QAAAA,IAAI,EAAE,SAAR;EAAmBQ,QAAAA,SAAS,EAAE;EAA9B,OAAD,EAAwC,WAAxC,CAHD;EAAA,KAVb;EAAA,QAcEhB,KAAK,GAAG,SAARA,KAAQ,CAACmD,MAAD,EAAS0M,UAAT;EAAA,aACNX,YAAY,GACRU,gBAAA,CAAyBvF,EAAzB,EAA6BlH,MAA7B,CADQ,GAERyB,MAAM,CAACiL,UAAU,GAAG;EAAE7P,QAAAA,KAAK,EAAEmD;EAAT,OAAH,GAAuB;EAAEnD,QAAAA,KAAK,EAAEmD,MAAT;EAAiBlD,QAAAA,GAAG,EAAE;EAAtB,OAAlC,EAAqE,OAArE,CAHJ;EAAA,KAdV;EAAA,QAkBEG,OAAO,GAAG,SAAVA,OAAU,CAAC+C,MAAD,EAAS0M,UAAT;EAAA,aACRX,YAAY,GACRU,kBAAA,CAA2BvF,EAA3B,EAA+BlH,MAA/B,CADQ,GAERyB,MAAM,CACJiL,UAAU,GAAG;EAAEzP,QAAAA,OAAO,EAAE+C;EAAX,OAAH,GAAyB;EAAE/C,QAAAA,OAAO,EAAE+C,MAAX;EAAmBnD,QAAAA,KAAK,EAAE,MAA1B;EAAkCC,QAAAA,GAAG,EAAE;EAAvC,OAD/B,EAEJ,SAFI,CAHF;EAAA,KAlBZ;EAAA,QAyBE6P,UAAU,GAAG,SAAbA,UAAa,CAAChE,KAAD,EAAW;EACtB,UAAMoC,UAAU,GAAGZ,SAAS,CAACrB,sBAAV,CAAiCH,KAAjC,CAAnB;;EACA,UAAIoC,UAAJ,EAAgB;EACd,eAAO,KAAI,CAACG,uBAAL,CAA6BhE,EAA7B,EAAiC6D,UAAjC,CAAP;EACD,OAFD,MAEO;EACL,eAAOpC,KAAP;EACD;EACF,KAhCH;EAAA,QAiCEiE,GAAG,GAAG,SAANA,GAAM,CAAC5M,MAAD;EAAA,aACJ+L,YAAY,GAAGU,cAAA,CAAuBvF,EAAvB,EAA2BlH,MAA3B,CAAH,GAAwCyB,MAAM,CAAC;EAAEmL,QAAAA,GAAG,EAAE5M;EAAP,OAAD,EAAkB,KAAlB,CADtD;EAAA,KAjCR;EAAA,QAmCE0I,aAAa,GAAG,SAAhBA,aAAgB,CAACC,KAAD,EAAW;EACzB;EACA,cAAQA,KAAR;EACE;EACA,aAAK,GAAL;EACE,iBAAO,KAAI,CAAC8C,GAAL,CAASvE,EAAE,CAACjE,WAAZ,CAAP;;EACF,aAAK,GAAL,CAJF;;EAME,aAAK,KAAL;EACE,iBAAO,KAAI,CAACwI,GAAL,CAASvE,EAAE,CAACjE,WAAZ,EAAyB,CAAzB,CAAP;EACF;;EACA,aAAK,GAAL;EACE,iBAAO,KAAI,CAACwI,GAAL,CAASvE,EAAE,CAAC1J,MAAZ,CAAP;;EACF,aAAK,IAAL;EACE,iBAAO,KAAI,CAACiO,GAAL,CAASvE,EAAE,CAAC1J,MAAZ,EAAoB,CAApB,CAAP;EACF;;EACA,aAAK,IAAL;EACE,iBAAO,KAAI,CAACiO,GAAL,CAASvK,IAAI,CAACC,KAAL,CAAW+F,EAAE,CAACjE,WAAH,GAAiB,EAA5B,CAAT,EAA0C,CAA1C,CAAP;;EACF,aAAK,KAAL;EACE,iBAAO,KAAI,CAACwI,GAAL,CAASvK,IAAI,CAACC,KAAL,CAAW+F,EAAE,CAACjE,WAAH,GAAiB,GAA5B,CAAT,CAAP;EACF;;EACA,aAAK,GAAL;EACE,iBAAO,KAAI,CAACwI,GAAL,CAASvE,EAAE,CAAC5J,MAAZ,CAAP;;EACF,aAAK,IAAL;EACE,iBAAO,KAAI,CAACmO,GAAL,CAASvE,EAAE,CAAC5J,MAAZ,EAAoB,CAApB,CAAP;EACF;;EACA,aAAK,GAAL;EACE,iBAAO,KAAI,CAACmO,GAAL,CAASvE,EAAE,CAAC7J,IAAH,GAAU,EAAV,KAAiB,CAAjB,GAAqB,EAArB,GAA0B6J,EAAE,CAAC7J,IAAH,GAAU,EAA7C,CAAP;;EACF,aAAK,IAAL;EACE,iBAAO,KAAI,CAACoO,GAAL,CAASvE,EAAE,CAAC7J,IAAH,GAAU,EAAV,KAAiB,CAAjB,GAAqB,EAArB,GAA0B6J,EAAE,CAAC7J,IAAH,GAAU,EAA7C,EAAiD,CAAjD,CAAP;;EACF,aAAK,GAAL;EACE,iBAAO,KAAI,CAACoO,GAAL,CAASvE,EAAE,CAAC7J,IAAZ,CAAP;;EACF,aAAK,IAAL;EACE,iBAAO,KAAI,CAACoO,GAAL,CAASvE,EAAE,CAAC7J,IAAZ,EAAkB,CAAlB,CAAP;EACF;;EACA,aAAK,GAAL;EACE;EACA,iBAAOqI,YAAY,CAAC;EAAEE,YAAAA,MAAM,EAAE,QAAV;EAAoByG,YAAAA,MAAM,EAAE,KAAI,CAAChC,IAAL,CAAUgC;EAAtC,WAAD,CAAnB;;EACF,aAAK,IAAL;EACE;EACA,iBAAO3G,YAAY,CAAC;EAAEE,YAAAA,MAAM,EAAE,OAAV;EAAmByG,YAAAA,MAAM,EAAE,KAAI,CAAChC,IAAL,CAAUgC;EAArC,WAAD,CAAnB;;EACF,aAAK,KAAL;EACE;EACA,iBAAO3G,YAAY,CAAC;EAAEE,YAAAA,MAAM,EAAE,QAAV;EAAoByG,YAAAA,MAAM,EAAE,KAAI,CAAChC,IAAL,CAAUgC;EAAtC,WAAD,CAAnB;;EACF,aAAK,MAAL;EACE;EACA,iBAAOnF,EAAE,CAACqF,IAAH,CAAQM,UAAR,CAAmB3F,EAAE,CAACvD,EAAtB,EAA0B;EAAEiC,YAAAA,MAAM,EAAE,OAAV;EAAmB/B,YAAAA,MAAM,EAAE,KAAI,CAACmH,GAAL,CAASnH;EAApC,WAA1B,CAAP;;EACF,aAAK,OAAL;EACE;EACA,iBAAOqD,EAAE,CAACqF,IAAH,CAAQM,UAAR,CAAmB3F,EAAE,CAACvD,EAAtB,EAA0B;EAAEiC,YAAAA,MAAM,EAAE,MAAV;EAAkB/B,YAAAA,MAAM,EAAE,KAAI,CAACmH,GAAL,CAASnH;EAAnC,WAA1B,CAAP;EACF;;EACA,aAAK,GAAL;EACE;EACA,iBAAOqD,EAAE,CAAC4F,QAAV;EACF;;EACA,aAAK,GAAL;EACE,iBAAON,QAAQ,EAAf;EACF;;EACA,aAAK,GAAL;EACE,iBAAOP,oBAAoB,GAAGxK,MAAM,CAAC;EAAE3E,YAAAA,GAAG,EAAE;EAAP,WAAD,EAAqB,KAArB,CAAT,GAAuC,KAAI,CAAC2O,GAAL,CAASvE,EAAE,CAACpK,GAAZ,CAAlE;;EACF,aAAK,IAAL;EACE,iBAAOmP,oBAAoB,GAAGxK,MAAM,CAAC;EAAE3E,YAAAA,GAAG,EAAE;EAAP,WAAD,EAAqB,KAArB,CAAT,GAAuC,KAAI,CAAC2O,GAAL,CAASvE,EAAE,CAACpK,GAAZ,EAAiB,CAAjB,CAAlE;EACF;;EACA,aAAK,GAAL;EACE;EACA,iBAAO,KAAI,CAAC2O,GAAL,CAASvE,EAAE,CAACjK,OAAZ,CAAP;;EACF,aAAK,KAAL;EACE;EACA,iBAAOA,OAAO,CAAC,OAAD,EAAU,IAAV,CAAd;;EACF,aAAK,MAAL;EACE;EACA,iBAAOA,OAAO,CAAC,MAAD,EAAS,IAAT,CAAd;;EACF,aAAK,OAAL;EACE;EACA,iBAAOA,OAAO,CAAC,QAAD,EAAW,IAAX,CAAd;EACF;;EACA,aAAK,GAAL;EACE;EACA,iBAAO,KAAI,CAACwO,GAAL,CAASvE,EAAE,CAACjK,OAAZ,CAAP;;EACF,aAAK,KAAL;EACE;EACA,iBAAOA,OAAO,CAAC,OAAD,EAAU,KAAV,CAAd;;EACF,aAAK,MAAL;EACE;EACA,iBAAOA,OAAO,CAAC,MAAD,EAAS,KAAT,CAAd;;EACF,aAAK,OAAL;EACE;EACA,iBAAOA,OAAO,CAAC,QAAD,EAAW,KAAX,CAAd;EACF;;EACA,aAAK,GAAL;EACE;EACA,iBAAOgP,oBAAoB,GACvBxK,MAAM,CAAC;EAAE5E,YAAAA,KAAK,EAAE,SAAT;EAAoBC,YAAAA,GAAG,EAAE;EAAzB,WAAD,EAAuC,OAAvC,CADiB,GAEvB,KAAI,CAAC2O,GAAL,CAASvE,EAAE,CAACrK,KAAZ,CAFJ;;EAGF,aAAK,IAAL;EACE;EACA,iBAAOoP,oBAAoB,GACvBxK,MAAM,CAAC;EAAE5E,YAAAA,KAAK,EAAE,SAAT;EAAoBC,YAAAA,GAAG,EAAE;EAAzB,WAAD,EAAuC,OAAvC,CADiB,GAEvB,KAAI,CAAC2O,GAAL,CAASvE,EAAE,CAACrK,KAAZ,EAAmB,CAAnB,CAFJ;;EAGF,aAAK,KAAL;EACE;EACA,iBAAOA,KAAK,CAAC,OAAD,EAAU,IAAV,CAAZ;;EACF,aAAK,MAAL;EACE;EACA,iBAAOA,KAAK,CAAC,MAAD,EAAS,IAAT,CAAZ;;EACF,aAAK,OAAL;EACE;EACA,iBAAOA,KAAK,CAAC,QAAD,EAAW,IAAX,CAAZ;EACF;;EACA,aAAK,GAAL;EACE;EACA,iBAAOoP,oBAAoB,GACvBxK,MAAM,CAAC;EAAE5E,YAAAA,KAAK,EAAE;EAAT,WAAD,EAAuB,OAAvB,CADiB,GAEvB,KAAI,CAAC4O,GAAL,CAASvE,EAAE,CAACrK,KAAZ,CAFJ;;EAGF,aAAK,IAAL;EACE;EACA,iBAAOoP,oBAAoB,GACvBxK,MAAM,CAAC;EAAE5E,YAAAA,KAAK,EAAE;EAAT,WAAD,EAAuB,OAAvB,CADiB,GAEvB,KAAI,CAAC4O,GAAL,CAASvE,EAAE,CAACrK,KAAZ,EAAmB,CAAnB,CAFJ;;EAGF,aAAK,KAAL;EACE;EACA,iBAAOA,KAAK,CAAC,OAAD,EAAU,KAAV,CAAZ;;EACF,aAAK,MAAL;EACE;EACA,iBAAOA,KAAK,CAAC,MAAD,EAAS,KAAT,CAAZ;;EACF,aAAK,OAAL;EACE;EACA,iBAAOA,KAAK,CAAC,QAAD,EAAW,KAAX,CAAZ;EACF;;EACA,aAAK,GAAL;EACE;EACA,iBAAOoP,oBAAoB,GAAGxK,MAAM,CAAC;EAAE7E,YAAAA,IAAI,EAAE;EAAR,WAAD,EAAsB,MAAtB,CAAT,GAAyC,KAAI,CAAC6O,GAAL,CAASvE,EAAE,CAACtK,IAAZ,CAApE;;EACF,aAAK,IAAL;EACE;EACA,iBAAOqP,oBAAoB,GACvBxK,MAAM,CAAC;EAAE7E,YAAAA,IAAI,EAAE;EAAR,WAAD,EAAsB,MAAtB,CADiB,GAEvB,KAAI,CAAC6O,GAAL,CAASvE,EAAE,CAACtK,IAAH,CAAQsC,QAAR,GAAmB6N,KAAnB,CAAyB,CAAC,CAA1B,CAAT,EAAuC,CAAvC,CAFJ;;EAGF,aAAK,MAAL;EACE;EACA,iBAAOd,oBAAoB,GACvBxK,MAAM,CAAC;EAAE7E,YAAAA,IAAI,EAAE;EAAR,WAAD,EAAsB,MAAtB,CADiB,GAEvB,KAAI,CAAC6O,GAAL,CAASvE,EAAE,CAACtK,IAAZ,EAAkB,CAAlB,CAFJ;;EAGF,aAAK,QAAL;EACE;EACA,iBAAOqP,oBAAoB,GACvBxK,MAAM,CAAC;EAAE7E,YAAAA,IAAI,EAAE;EAAR,WAAD,EAAsB,MAAtB,CADiB,GAEvB,KAAI,CAAC6O,GAAL,CAASvE,EAAE,CAACtK,IAAZ,EAAkB,CAAlB,CAFJ;EAGF;;EACA,aAAK,GAAL;EACE;EACA,iBAAOgQ,GAAG,CAAC,OAAD,CAAV;;EACF,aAAK,IAAL;EACE;EACA,iBAAOA,GAAG,CAAC,MAAD,CAAV;;EACF,aAAK,OAAL;EACE,iBAAOA,GAAG,CAAC,QAAD,CAAV;;EACF,aAAK,IAAL;EACE,iBAAO,KAAI,CAACnB,GAAL,CAASvE,EAAE,CAAC7D,QAAH,CAAYnE,QAAZ,GAAuB6N,KAAvB,CAA6B,CAAC,CAA9B,CAAT,EAA2C,CAA3C,CAAP;;EACF,aAAK,MAAL;EACE,iBAAO,KAAI,CAACtB,GAAL,CAASvE,EAAE,CAAC7D,QAAZ,EAAsB,CAAtB,CAAP;;EACF,aAAK,GAAL;EACE,iBAAO,KAAI,CAACoI,GAAL,CAASvE,EAAE,CAAC8F,UAAZ,CAAP;;EACF,aAAK,IAAL;EACE,iBAAO,KAAI,CAACvB,GAAL,CAASvE,EAAE,CAAC8F,UAAZ,EAAwB,CAAxB,CAAP;;EACF,aAAK,GAAL;EACE,iBAAO,KAAI,CAACvB,GAAL,CAASvE,EAAE,CAAC+F,OAAZ,CAAP;;EACF,aAAK,KAAL;EACE,iBAAO,KAAI,CAACxB,GAAL,CAASvE,EAAE,CAAC+F,OAAZ,EAAqB,CAArB,CAAP;;EACF,aAAK,GAAL;EACE;EACA,iBAAO,KAAI,CAACxB,GAAL,CAASvE,EAAE,CAACgG,OAAZ,CAAP;;EACF,aAAK,IAAL;EACE;EACA,iBAAO,KAAI,CAACzB,GAAL,CAASvE,EAAE,CAACgG,OAAZ,EAAqB,CAArB,CAAP;;EACF,aAAK,GAAL;EACE,iBAAO,KAAI,CAACzB,GAAL,CAASvK,IAAI,CAACC,KAAL,CAAW+F,EAAE,CAACvD,EAAH,GAAQ,IAAnB,CAAT,CAAP;;EACF,aAAK,GAAL;EACE,iBAAO,KAAI,CAAC8H,GAAL,CAASvE,EAAE,CAACvD,EAAZ,CAAP;;EACF;EACE,iBAAOgJ,UAAU,CAAChE,KAAD,CAAjB;EAjLJ;EAmLD,KAxNH;;EA0NA,WAAOH,eAAe,CAAC2B,SAAS,CAACG,WAAV,CAAsBC,GAAtB,CAAD,EAA6B7B,aAA7B,CAAtB;EACD;;WAEDyE,2BAAA,kCAAyBC,GAAzB,EAA8B7C,GAA9B,EAAmC;EAAA;;EACjC,QAAM8C,YAAY,GAAG,SAAfA,YAAe,CAAC1E,KAAD,EAAW;EAC5B,cAAQA,KAAK,CAAC,CAAD,CAAb;EACE,aAAK,GAAL;EACE,iBAAO,aAAP;;EACF,aAAK,GAAL;EACE,iBAAO,QAAP;;EACF,aAAK,GAAL;EACE,iBAAO,QAAP;;EACF,aAAK,GAAL;EACE,iBAAO,MAAP;;EACF,aAAK,GAAL;EACE,iBAAO,KAAP;;EACF,aAAK,GAAL;EACE,iBAAO,MAAP;;EACF,aAAK,GAAL;EACE,iBAAO,OAAP;;EACF,aAAK,GAAL;EACE,iBAAO,MAAP;;EACF;EACE,iBAAO,IAAP;EAlBJ;EAoBD,KArBH;EAAA,QAsBED,aAAa,GAAG,SAAhBA,aAAgB,CAAC4E,MAAD;EAAA,aAAY,UAAC3E,KAAD,EAAW;EACrC,YAAM4E,MAAM,GAAGF,YAAY,CAAC1E,KAAD,CAA3B;;EACA,YAAI4E,MAAJ,EAAY;EACV,iBAAO,MAAI,CAAC9B,GAAL,CAAS6B,MAAM,CAACE,GAAP,CAAWD,MAAX,CAAT,EAA6B5E,KAAK,CAAC3I,MAAnC,CAAP;EACD,SAFD,MAEO;EACL,iBAAO2I,KAAP;EACD;EACF,OAPe;EAAA,KAtBlB;EAAA,QA8BE8E,MAAM,GAAGtD,SAAS,CAACG,WAAV,CAAsBC,GAAtB,CA9BX;EAAA,QA+BEmD,UAAU,GAAGD,MAAM,CAACvN,MAAP,CACX,UAACyN,KAAD;EAAA,UAAU/E,OAAV,QAAUA,OAAV;EAAA,UAAmBC,GAAnB,QAAmBA,GAAnB;EAAA,aAA8BD,OAAO,GAAG+E,KAAH,GAAWA,KAAK,CAACC,MAAN,CAAa/E,GAAb,CAAhD;EAAA,KADW,EAEX,EAFW,CA/Bf;EAAA,QAmCEgF,SAAS,GAAGT,GAAG,CAACU,OAAJ,OAAAV,GAAG,EAAYM,UAAU,CAACK,GAAX,CAAeV,YAAf,EAA6BW,MAA7B,CAAoC,UAAC5E,CAAD;EAAA,aAAOA,CAAP;EAAA,KAApC,CAAZ,CAnCjB;;EAoCA,WAAOZ,eAAe,CAACiF,MAAD,EAAS/E,aAAa,CAACmF,SAAD,CAAtB,CAAtB;EACD;;;;;MCtYkBI;EACnB,mBAAYlS,MAAZ,EAAoBmS,WAApB,EAAiC;EAC/B,SAAKnS,MAAL,GAAcA,MAAd;EACA,SAAKmS,WAAL,GAAmBA,WAAnB;EACD;;;;WAEDlS,YAAA,qBAAY;EACV,QAAI,KAAKkS,WAAT,EAAsB;EACpB,aAAU,KAAKnS,MAAf,UAA0B,KAAKmS,WAA/B;EACD,KAFD,MAEO;EACL,aAAO,KAAKnS,MAAZ;EACD;EACF;;;;;ECVH;EACA;EACA;;MACqBoS;;;;;EAgCnB;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;WACEtB,aAAA,oBAAWlJ,EAAX,EAAe0G,IAAf,EAAqB;EACnB,UAAM,IAAI9N,mBAAJ,EAAN;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;;;WACEmJ,eAAA,sBAAa/B,EAAb,EAAiBiC,MAAjB,EAAyB;EACvB,UAAM,IAAIrJ,mBAAJ,EAAN;EACD;EAED;EACF;EACA;EACA;EACA;EACA;;;WACEoJ,SAAA,gBAAOhC,EAAP,EAAW;EACT,UAAM,IAAIpH,mBAAJ,EAAN;EACD;EAED;EACF;EACA;EACA;EACA;EACA;;;WACE6R,SAAA,gBAAOC,SAAP,EAAkB;EAChB,UAAM,IAAI9R,mBAAJ,EAAN;EACD;EAED;EACF;EACA;EACA;EACA;;;;;;EAhFE;EACF;EACA;EACA;EACA;EACE,mBAAW;EACT,YAAM,IAAIA,mBAAJ,EAAN;EACD;EAED;EACF;EACA;EACA;EACA;;;;WACE,eAAW;EACT,YAAM,IAAIA,mBAAJ,EAAN;EACD;;;WAED,eAAe;EACb,aAAO,KAAK+R,IAAZ;EACD;EAED;EACF;EACA;EACA;EACA;;;;WACE,eAAkB;EAChB,YAAM,IAAI/R,mBAAJ,EAAN;EACD;;;WAoDD,eAAc;EACZ,YAAM,IAAIA,mBAAJ,EAAN;EACD;;;;;;ECtFH,IAAIgS,WAAS,GAAG,IAAhB;EAEA;EACA;EACA;EACA;;MACqBC;;;;;;;;;EA2BnB;WACA3B,aAAA,oBAAWlJ,EAAX,QAAmC;EAAA,QAAlBiC,MAAkB,QAAlBA,MAAkB;EAAA,QAAV/B,MAAU,QAAVA,MAAU;EACjC,WAAOH,aAAa,CAACC,EAAD,EAAKiC,MAAL,EAAa/B,MAAb,CAApB;EACD;EAED;;;WACA6B,eAAA,wBAAa/B,EAAb,EAAiBiC,MAAjB,EAAyB;EACvB,WAAOF,YAAY,CAAC,KAAKC,MAAL,CAAYhC,EAAZ,CAAD,EAAkBiC,MAAlB,CAAnB;EACD;EAED;;;WACAD,SAAA,gBAAOhC,EAAP,EAAW;EACT,WAAO,CAAC,IAAIZ,IAAJ,CAASY,EAAT,EAAa8K,iBAAb,EAAR;EACD;EAED;;;WACAL,SAAA,gBAAOC,SAAP,EAAkB;EAChB,WAAOA,SAAS,CAAC9J,IAAV,KAAmB,QAA1B;EACD;EAED;;;;;;EAnCA;EACA,mBAAW;EACT,aAAO,QAAP;EACD;EAED;;;;WACA,eAAW;EACT,aAAO,IAAIlF,IAAI,CAAC8E,cAAT,GAA0BqH,eAA1B,GAA4C1H,QAAnD;EACD;EAED;;;;WACA,eAAkB;EAChB,aAAO,KAAP;EACD;;;WAuBD,eAAc;EACZ,aAAO,IAAP;EACD;;;;EAjDD;EACF;EACA;EACA;EACE,mBAAsB;EACpB,UAAIyK,WAAS,KAAK,IAAlB,EAAwB;EACtBA,QAAAA,WAAS,GAAG,IAAIC,UAAJ,EAAZ;EACD;;EACD,aAAOD,WAAP;EACD;;;;IAVqCJ;;ECNxC,IAAIO,QAAQ,GAAG,EAAf;;EACA,SAASC,OAAT,CAAiBpC,IAAjB,EAAuB;EACrB,MAAI,CAACmC,QAAQ,CAACnC,IAAD,CAAb,EAAqB;EACnBmC,IAAAA,QAAQ,CAACnC,IAAD,CAAR,GAAiB,IAAIlN,IAAI,CAAC8E,cAAT,CAAwB,OAAxB,EAAiC;EAChDyK,MAAAA,MAAM,EAAE,KADwC;EAEhD9K,MAAAA,QAAQ,EAAEyI,IAFsC;EAGhD3P,MAAAA,IAAI,EAAE,SAH0C;EAIhDC,MAAAA,KAAK,EAAE,SAJyC;EAKhDC,MAAAA,GAAG,EAAE,SAL2C;EAMhDO,MAAAA,IAAI,EAAE,SAN0C;EAOhDC,MAAAA,MAAM,EAAE,SAPwC;EAQhDE,MAAAA,MAAM,EAAE,SARwC;EAShDoP,MAAAA,GAAG,EAAE;EAT2C,KAAjC,CAAjB;EAWD;;EACD,SAAO8B,QAAQ,CAACnC,IAAD,CAAf;EACD;;EAED,IAAMsC,SAAS,GAAG;EAChBjS,EAAAA,IAAI,EAAE,CADU;EAEhBC,EAAAA,KAAK,EAAE,CAFS;EAGhBC,EAAAA,GAAG,EAAE,CAHW;EAIhB8P,EAAAA,GAAG,EAAE,CAJW;EAKhBvP,EAAAA,IAAI,EAAE,CALU;EAMhBC,EAAAA,MAAM,EAAE,CANQ;EAOhBE,EAAAA,MAAM,EAAE;EAPQ,CAAlB;;EAUA,SAASsR,WAAT,CAAqBC,GAArB,EAA0BhL,IAA1B,EAAgC;EACxB,MAAAiL,SAAS,GAAGD,GAAG,CAACnJ,MAAJ,CAAW7B,IAAX,EAAiBkL,OAAjB,CAAyB,SAAzB,EAAoC,EAApC,CAAZ;EAAA,MACJ/K,MADI,GACK,kDAAkDgL,IAAlD,CAAuDF,SAAvD,CADL;EAAA,MAEDG,MAFC,GAEwDjL,MAFxD;EAAA,MAEOkL,IAFP,GAEwDlL,MAFxD;EAAA,MAEamL,KAFb,GAEwDnL,MAFxD;EAAA,MAEoBoL,OAFpB,GAEwDpL,MAFxD;EAAA,MAE6BqL,KAF7B,GAEwDrL,MAFxD;EAAA,MAEoCsL,OAFpC,GAEwDtL,MAFxD;EAAA,MAE6CuL,OAF7C,GAEwDvL,MAFxD;EAGN,SAAO,CAACmL,KAAD,EAAQF,MAAR,EAAgBC,IAAhB,EAAsBE,OAAtB,EAA+BC,KAA/B,EAAsCC,OAAtC,EAA+CC,OAA/C,CAAP;EACD;;EAED,SAASC,WAAT,CAAqBX,GAArB,EAA0BhL,IAA1B,EAAgC;EAC9B,MAAMiL,SAAS,GAAGD,GAAG,CAAC3K,aAAJ,CAAkBL,IAAlB,CAAlB;EACA,MAAM4L,MAAM,GAAG,EAAf;;EACA,OAAK,IAAIhF,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGqE,SAAS,CAAChP,MAA9B,EAAsC2K,CAAC,EAAvC,EAA2C;EACzC,uBAAwBqE,SAAS,CAACrE,CAAD,CAAjC;EAAA,QAAQpG,IAAR,gBAAQA,IAAR;EAAA,QAAcE,KAAd,gBAAcA,KAAd;EACA,QAAMmL,GAAG,GAAGf,SAAS,CAACtK,IAAD,CAArB;;EAEA,QAAIA,IAAI,KAAK,KAAb,EAAoB;EAClBoL,MAAAA,MAAM,CAACC,GAAD,CAAN,GAAcnL,KAAd;EACD,KAFD,MAEO,IAAI,CAAC/F,WAAW,CAACkR,GAAD,CAAhB,EAAuB;EAC5BD,MAAAA,MAAM,CAACC,GAAD,CAAN,GAAclO,QAAQ,CAAC+C,KAAD,EAAQ,EAAR,CAAtB;EACD;EACF;;EACD,SAAOkL,MAAP;EACD;;EAED,IAAIE,aAAa,GAAG,EAApB;EACA;EACA;EACA;EACA;;MACqBC;;;EACnB;EACF;EACA;EACA;aACS1F,SAAP,gBAAckE,IAAd,EAAoB;EAClB,QAAI,CAACuB,aAAa,CAACvB,IAAD,CAAlB,EAA0B;EACxBuB,MAAAA,aAAa,CAACvB,IAAD,CAAb,GAAsB,IAAIwB,QAAJ,CAAaxB,IAAb,CAAtB;EACD;;EACD,WAAOuB,aAAa,CAACvB,IAAD,CAApB;EACD;EAED;EACF;EACA;EACA;;;aACSyB,aAAP,sBAAoB;EAClBF,IAAAA,aAAa,GAAG,EAAhB;EACAnB,IAAAA,QAAQ,GAAG,EAAX;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;;;aACSsB,mBAAP,0BAAwBvT,CAAxB,EAA2B;EACzB,WAAO,KAAKwT,WAAL,CAAiBxT,CAAjB,CAAP;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;;;aACSwT,cAAP,qBAAmB1D,IAAnB,EAAyB;EACvB,QAAI,CAACA,IAAL,EAAW;EACT,aAAO,KAAP;EACD;;EACD,QAAI;EACF,UAAIlN,IAAI,CAAC8E,cAAT,CAAwB,OAAxB,EAAiC;EAAEL,QAAAA,QAAQ,EAAEyI;EAAZ,OAAjC,EAAqD3G,MAArD;EACA,aAAO,IAAP;EACD,KAHD,CAGE,OAAOrG,CAAP,EAAU;EACV,aAAO,KAAP;EACD;EACF;;EAED,oBAAY+O,IAAZ,EAAkB;EAAA;;EAChB;EACA;;EACA,UAAKxB,QAAL,GAAgBwB,IAAhB;EACA;;EACA,UAAK4B,KAAL,GAAaJ,QAAQ,CAACG,WAAT,CAAqB3B,IAArB,CAAb;EALgB;EAMjB;EAED;;;;;EAeA;WACAzB,aAAA,oBAAWlJ,EAAX,QAAmC;EAAA,QAAlBiC,MAAkB,QAAlBA,MAAkB;EAAA,QAAV/B,MAAU,QAAVA,MAAU;EACjC,WAAOH,aAAa,CAACC,EAAD,EAAKiC,MAAL,EAAa/B,MAAb,EAAqB,KAAKyK,IAA1B,CAApB;EACD;EAED;;;WACA5I,eAAA,wBAAa/B,EAAb,EAAiBiC,MAAjB,EAAyB;EACvB,WAAOF,YAAY,CAAC,KAAKC,MAAL,CAAYhC,EAAZ,CAAD,EAAkBiC,MAAlB,CAAnB;EACD;EAED;;;WACAD,SAAA,gBAAOhC,EAAP,EAAW;EACT,QAAMI,IAAI,GAAG,IAAIhB,IAAJ,CAASY,EAAT,CAAb;EAEA,QAAIoB,KAAK,CAAChB,IAAD,CAAT,EAAiB,OAAOoM,GAAP;EAEjB,QAAMpB,GAAG,GAAGJ,OAAO,CAAC,KAAKL,IAAN,CAAnB;;EACA,gBAAuDS,GAAG,CAAC3K,aAAJ,GACnDsL,WAAW,CAACX,GAAD,EAAMhL,IAAN,CADwC,GAEnD+K,WAAW,CAACC,GAAD,EAAMhL,IAAN,CAFf;EAAA,QAAKnH,IAAL;EAAA,QAAWC,KAAX;EAAA,QAAkBC,GAAlB;EAAA,QAAuBsT,MAAvB;EAAA,QAA+B/S,IAA/B;EAAA,QAAqCC,MAArC;EAAA,QAA6CE,MAA7C;;EAIA,QAAI4S,MAAM,KAAK,IAAf,EAAqB;EACnBxT,MAAAA,IAAI,GAAG,CAACsE,IAAI,CAAC4E,GAAL,CAASlJ,IAAT,CAAD,GAAkB,CAAzB;EACD,KAZQ;;;EAeT,QAAMyT,YAAY,GAAGhT,IAAI,KAAK,EAAT,GAAc,CAAd,GAAkBA,IAAvC;EAEA,QAAMiT,KAAK,GAAGzN,YAAY,CAAC;EACzBjG,MAAAA,IAAI,EAAJA,IADyB;EAEzBC,MAAAA,KAAK,EAALA,KAFyB;EAGzBC,MAAAA,GAAG,EAAHA,GAHyB;EAIzBO,MAAAA,IAAI,EAAEgT,YAJmB;EAKzB/S,MAAAA,MAAM,EAANA,MALyB;EAMzBE,MAAAA,MAAM,EAANA,MANyB;EAOzByF,MAAAA,WAAW,EAAE;EAPY,KAAD,CAA1B;EAUA,QAAIsN,IAAI,GAAG,CAACxM,IAAZ;EACA,QAAMyM,IAAI,GAAGD,IAAI,GAAG,IAApB;EACAA,IAAAA,IAAI,IAAIC,IAAI,IAAI,CAAR,GAAYA,IAAZ,GAAmB,OAAOA,IAAlC;EACA,WAAO,CAACF,KAAK,GAAGC,IAAT,KAAkB,KAAK,IAAvB,CAAP;EACD;EAED;;;WACAnC,SAAA,gBAAOC,SAAP,EAAkB;EAChB,WAAOA,SAAS,CAAC9J,IAAV,KAAmB,MAAnB,IAA6B8J,SAAS,CAACC,IAAV,KAAmB,KAAKA,IAA5D;EACD;EAED;;;;;WA/DA,eAAW;EACT,aAAO,MAAP;EACD;EAED;;;;WACA,eAAW;EACT,aAAO,KAAKxB,QAAZ;EACD;EAED;;;;WACA,eAAkB;EAChB,aAAO,KAAP;EACD;;;WAoDD,eAAc;EACZ,aAAO,KAAKoD,KAAZ;EACD;;;;IAhImC/B;;ECxDtC,IAAII,SAAS,GAAG,IAAhB;EAEA;EACA;EACA;EACA;;MACqBkC;;;EAYnB;EACF;EACA;EACA;EACA;oBACSC,WAAP,kBAAgB/K,MAAhB,EAAwB;EACtB,WAAOA,MAAM,KAAK,CAAX,GAAe8K,eAAe,CAACE,WAA/B,GAA6C,IAAIF,eAAJ,CAAoB9K,MAApB,CAApD;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;;;oBACSiL,iBAAP,wBAAsBnU,CAAtB,EAAyB;EACvB,QAAIA,CAAJ,EAAO;EACL,UAAMoU,CAAC,GAAGpU,CAAC,CAACqU,KAAF,CAAQ,uCAAR,CAAV;;EACA,UAAID,CAAJ,EAAO;EACL,eAAO,IAAIJ,eAAJ,CAAoB/L,YAAY,CAACmM,CAAC,CAAC,CAAD,CAAF,EAAOA,CAAC,CAAC,CAAD,CAAR,CAAhC,CAAP;EACD;EACF;;EACD,WAAO,IAAP;EACD;;EAED,2BAAYlL,MAAZ,EAAoB;EAAA;;EAClB;EACA;;EACA,UAAKoL,KAAL,GAAapL,MAAb;EAHkB;EAInB;EAED;;;;;EAkBA;WACAkH,aAAA,sBAAa;EACX,WAAO,KAAKyB,IAAZ;EACD;EAED;;;WACA5I,eAAA,wBAAa/B,EAAb,EAAiBiC,MAAjB,EAAyB;EACvB,WAAOF,YAAY,CAAC,KAAKqL,KAAN,EAAanL,MAAb,CAAnB;EACD;EAED;;;EAKA;WACAD,SAAA,kBAAS;EACP,WAAO,KAAKoL,KAAZ;EACD;EAED;;;WACA3C,SAAA,gBAAOC,SAAP,EAAkB;EAChB,WAAOA,SAAS,CAAC9J,IAAV,KAAmB,OAAnB,IAA8B8J,SAAS,CAAC0C,KAAV,KAAoB,KAAKA,KAA9D;EACD;EAED;;;;;WA1CA,eAAW;EACT,aAAO,OAAP;EACD;EAED;;;;WACA,eAAW;EACT,aAAO,KAAKA,KAAL,KAAe,CAAf,GAAmB,KAAnB,WAAiCrL,YAAY,CAAC,KAAKqL,KAAN,EAAa,QAAb,CAApD;EACD;;;WAED,eAAe;EACb,UAAI,KAAKA,KAAL,KAAe,CAAnB,EAAsB;EACpB,eAAO,SAAP;EACD,OAFD,MAEO;EACL,2BAAiBrL,YAAY,CAAC,CAAC,KAAKqL,KAAP,EAAc,QAAd,CAA7B;EACD;EACF;;;WAaD,eAAkB;EAChB,aAAO,IAAP;EACD;;;WAaD,eAAc;EACZ,aAAO,IAAP;EACD;;;;EA1FD;EACF;EACA;EACA;EACE,mBAAyB;EACvB,UAAIxC,SAAS,KAAK,IAAlB,EAAwB;EACtBA,QAAAA,SAAS,GAAG,IAAIkC,eAAJ,CAAoB,CAApB,CAAZ;EACD;;EACD,aAAOlC,SAAP;EACD;;;;IAV0CJ;;ECP7C;EACA;EACA;EACA;;MACqB6C;;;EACnB,uBAAYlE,QAAZ,EAAsB;EAAA;;EACpB;EACA;;EACA,UAAKA,QAAL,GAAgBA,QAAhB;EAHoB;EAIrB;EAED;;;;;EAeA;WACAD,aAAA,sBAAa;EACX,WAAO,IAAP;EACD;EAED;;;WACAnH,eAAA,wBAAe;EACb,WAAO,EAAP;EACD;EAED;;;WACAC,SAAA,kBAAS;EACP,WAAOwK,GAAP;EACD;EAED;;;WACA/B,SAAA,kBAAS;EACP,WAAO,KAAP;EACD;EAED;;;;;WAlCA,eAAW;EACT,aAAO,SAAP;EACD;EAED;;;;WACA,eAAW;EACT,aAAO,KAAKtB,QAAZ;EACD;EAED;;;;WACA,eAAkB;EAChB,aAAO,KAAP;EACD;;;WAuBD,eAAc;EACZ,aAAO,KAAP;EACD;;;;IA7CsCqB;;ECNzC;EACA;EACA;EASO,SAAS8C,aAAT,CAAuB5P,KAAvB,EAA8B6P,WAA9B,EAA2C;;EAEhD,MAAIxS,WAAW,CAAC2C,KAAD,CAAX,IAAsBA,KAAK,KAAK,IAApC,EAA0C;EACxC,WAAO6P,WAAP;EACD,GAFD,MAEO,IAAI7P,KAAK,YAAY8M,IAArB,EAA2B;EAChC,WAAO9M,KAAP;EACD,GAFM,MAEA,IAAIvC,QAAQ,CAACuC,KAAD,CAAZ,EAAqB;EAC1B,QAAM8P,OAAO,GAAG9P,KAAK,CAACmD,WAAN,EAAhB;EACA,QAAI2M,OAAO,KAAK,OAAZ,IAAuBA,OAAO,KAAK,QAAvC,EAAiD,OAAOD,WAAP,CAAjD,KACK,IAAIC,OAAO,KAAK,KAAZ,IAAqBA,OAAO,KAAK,KAArC,EAA4C,OAAOV,eAAe,CAACE,WAAvB,CAA5C,KACA,OAAOF,eAAe,CAACG,cAAhB,CAA+BO,OAA/B,KAA2CrB,QAAQ,CAAC1F,MAAT,CAAgB/I,KAAhB,CAAlD;EACN,GALM,MAKA,IAAIzC,QAAQ,CAACyC,KAAD,CAAZ,EAAqB;EAC1B,WAAOoP,eAAe,CAACC,QAAhB,CAAyBrP,KAAzB,CAAP;EACD,GAFM,MAEA,IAAI,OAAOA,KAAP,KAAiB,QAAjB,IAA6BA,KAAK,CAACsE,MAAnC,IAA6C,OAAOtE,KAAK,CAACsE,MAAb,KAAwB,QAAzE,EAAmF;EACxF;EACA;EACA,WAAOtE,KAAP;EACD,GAJM,MAIA;EACL,WAAO,IAAI2P,WAAJ,CAAgB3P,KAAhB,CAAP;EACD;EACF;;ECzBD,IAAI+P,GAAG,GAAG;EAAA,SAAMrO,IAAI,CAACqO,GAAL,EAAN;EAAA,CAAV;EAAA,IACEF,WAAW,GAAG,QADhB;EAAA,IAEEG,aAAa,GAAG,IAFlB;EAAA,IAGEC,sBAAsB,GAAG,IAH3B;EAAA,IAIEC,qBAAqB,GAAG,IAJ1B;EAAA,IAKEC,cALF;EAOA;EACA;EACA;;;MACqBC;;;EAsGnB;EACF;EACA;EACA;aACSC,cAAP,uBAAqB;EACnBC,IAAAA,MAAM,CAAC5B,UAAP;EACAD,IAAAA,QAAQ,CAACC,UAAT;EACD;;;;;EA5GD;EACF;EACA;EACA;EACE,mBAAiB;EACf,aAAOqB,GAAP;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;;WACE,aAAe5U,CAAf,EAAkB;EAChB4U,MAAAA,GAAG,GAAG5U,CAAN;EACD;EAED;EACF;EACA;EACA;EACA;;;;;EAKE;EACF;EACA;EACA;EACA;EACE,mBAAyB;EACvB,aAAOyU,aAAa,CAACC,WAAD,EAAc1C,UAAU,CAACkC,QAAzB,CAApB;EACD;EAED;EACF;EACA;EACA;;WAhBE,aAAuBnE,IAAvB,EAA6B;EAC3B2E,MAAAA,WAAW,GAAG3E,IAAd;EACD;;;WAeD,eAA2B;EACzB,aAAO8E,aAAP;EACD;EAED;EACF;EACA;EACA;;WACE,aAAyBxN,MAAzB,EAAiC;EAC/BwN,MAAAA,aAAa,GAAGxN,MAAhB;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAAoC;EAClC,aAAOyN,sBAAP;EACD;EAED;EACF;EACA;EACA;;WACE,aAAkCM,eAAlC,EAAmD;EACjDN,MAAAA,sBAAsB,GAAGM,eAAzB;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAAmC;EACjC,aAAOL,qBAAP;EACD;EAED;EACF;EACA;EACA;;WACE,aAAiCrF,cAAjC,EAAiD;EAC/CqF,MAAAA,qBAAqB,GAAGrF,cAAxB;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAA4B;EAC1B,aAAOsF,cAAP;EACD;EAED;EACF;EACA;EACA;;WACE,aAA0BpI,CAA1B,EAA6B;EAC3BoI,MAAAA,cAAc,GAAGpI,CAAjB;EACD;;;;;;;;;EC5GH,IAAIyI,WAAW,GAAG,EAAlB;;EACA,SAASC,WAAT,CAAqBC,SAArB,EAAgC1H,IAAhC,EAA2C;EAAA,MAAXA,IAAW;EAAXA,IAAAA,IAAW,GAAJ,EAAI;EAAA;;EACzC,MAAM2H,GAAG,GAAGC,IAAI,CAACC,SAAL,CAAe,CAACH,SAAD,EAAY1H,IAAZ,CAAf,CAAZ;EACA,MAAI0E,GAAG,GAAG8C,WAAW,CAACG,GAAD,CAArB;;EACA,MAAI,CAACjD,GAAL,EAAU;EACRA,IAAAA,GAAG,GAAG,IAAI1P,IAAI,CAAC8S,UAAT,CAAoBJ,SAApB,EAA+B1H,IAA/B,CAAN;EACAwH,IAAAA,WAAW,CAACG,GAAD,CAAX,GAAmBjD,GAAnB;EACD;;EACD,SAAOA,GAAP;EACD;;EAED,IAAIqD,WAAW,GAAG,EAAlB;;EACA,SAASC,YAAT,CAAsBN,SAAtB,EAAiC1H,IAAjC,EAA4C;EAAA,MAAXA,IAAW;EAAXA,IAAAA,IAAW,GAAJ,EAAI;EAAA;;EAC1C,MAAM2H,GAAG,GAAGC,IAAI,CAACC,SAAL,CAAe,CAACH,SAAD,EAAY1H,IAAZ,CAAf,CAAZ;EACA,MAAI0E,GAAG,GAAGqD,WAAW,CAACJ,GAAD,CAArB;;EACA,MAAI,CAACjD,GAAL,EAAU;EACRA,IAAAA,GAAG,GAAG,IAAI1P,IAAI,CAAC8E,cAAT,CAAwB4N,SAAxB,EAAmC1H,IAAnC,CAAN;EACA+H,IAAAA,WAAW,CAACJ,GAAD,CAAX,GAAmBjD,GAAnB;EACD;;EACD,SAAOA,GAAP;EACD;;EAED,IAAIuD,YAAY,GAAG,EAAnB;;EACA,SAASC,YAAT,CAAsBR,SAAtB,EAAiC1H,IAAjC,EAA4C;EAAA,MAAXA,IAAW;EAAXA,IAAAA,IAAW,GAAJ,EAAI;EAAA;;EAC1C,MAAM2H,GAAG,GAAGC,IAAI,CAACC,SAAL,CAAe,CAACH,SAAD,EAAY1H,IAAZ,CAAf,CAAZ;EACA,MAAImI,GAAG,GAAGF,YAAY,CAACN,GAAD,CAAtB;;EACA,MAAI,CAACQ,GAAL,EAAU;EACRA,IAAAA,GAAG,GAAG,IAAInT,IAAI,CAACoT,YAAT,CAAsBV,SAAtB,EAAiC1H,IAAjC,CAAN;EACAiI,IAAAA,YAAY,CAACN,GAAD,CAAZ,GAAoBQ,GAApB;EACD;;EACD,SAAOA,GAAP;EACD;;EAED,IAAIE,YAAY,GAAG,EAAnB;;EACA,SAASC,YAAT,CAAsBZ,SAAtB,EAAiC1H,IAAjC,EAA4C;EAAA,MAAXA,IAAW;EAAXA,IAAAA,IAAW,GAAJ,EAAI;EAAA;;EAC1C,cAAkCA,IAAlC;EAAA,YAAQuI,IAAR;EAAA,UAAiBC,YAAjB,mDAD0C;;;EAE1C,MAAMb,GAAG,GAAGC,IAAI,CAACC,SAAL,CAAe,CAACH,SAAD,EAAYc,YAAZ,CAAf,CAAZ;EACA,MAAIL,GAAG,GAAGE,YAAY,CAACV,GAAD,CAAtB;;EACA,MAAI,CAACQ,GAAL,EAAU;EACRA,IAAAA,GAAG,GAAG,IAAInT,IAAI,CAACC,kBAAT,CAA4ByS,SAA5B,EAAuC1H,IAAvC,CAAN;EACAqI,IAAAA,YAAY,CAACV,GAAD,CAAZ,GAAoBQ,GAApB;EACD;;EACD,SAAOA,GAAP;EACD;;EAED,IAAIM,cAAc,GAAG,IAArB;;EACA,SAASC,YAAT,GAAwB;EACtB,MAAID,cAAJ,EAAoB;EAClB,WAAOA,cAAP;EACD,GAFD,MAEO;EACLA,IAAAA,cAAc,GAAG,IAAIzT,IAAI,CAAC8E,cAAT,GAA0BqH,eAA1B,GAA4C3H,MAA7D;EACA,WAAOiP,cAAP;EACD;EACF;;EAED,SAASE,iBAAT,CAA2BC,SAA3B,EAAsC;EACpC;EACA;EACA;EAEA;EACA;EACA;EAEA,MAAMC,MAAM,GAAGD,SAAS,CAAChL,OAAV,CAAkB,KAAlB,CAAf;;EACA,MAAIiL,MAAM,KAAK,CAAC,CAAhB,EAAmB;EACjB,WAAO,CAACD,SAAD,CAAP;EACD,GAFD,MAEO;EACL,QAAIE,OAAJ;EACA,QAAMC,OAAO,GAAGH,SAAS,CAACI,SAAV,CAAoB,CAApB,EAAuBH,MAAvB,CAAhB;;EACA,QAAI;EACFC,MAAAA,OAAO,GAAGd,YAAY,CAACY,SAAD,CAAZ,CAAwBzH,eAAxB,EAAV;EACD,KAFD,CAEE,OAAOjM,CAAP,EAAU;EACV4T,MAAAA,OAAO,GAAGd,YAAY,CAACe,OAAD,CAAZ,CAAsB5H,eAAtB,EAAV;EACD;;EAED,mBAAsC2H,OAAtC;EAAA,QAAQvB,eAAR,YAAQA,eAAR;EAAA,QAAyB0B,QAAzB,YAAyBA,QAAzB,CATK;;EAWL,WAAO,CAACF,OAAD,EAAUxB,eAAV,EAA2B0B,QAA3B,CAAP;EACD;EACF;;EAED,SAASC,gBAAT,CAA0BN,SAA1B,EAAqCrB,eAArC,EAAsD1F,cAAtD,EAAsE;EACpE,MAAIA,cAAc,IAAI0F,eAAtB,EAAuC;EACrCqB,IAAAA,SAAS,IAAI,IAAb;;EAEA,QAAI/G,cAAJ,EAAoB;EAClB+G,MAAAA,SAAS,aAAW/G,cAApB;EACD;;EAED,QAAI0F,eAAJ,EAAqB;EACnBqB,MAAAA,SAAS,aAAWrB,eAApB;EACD;;EACD,WAAOqB,SAAP;EACD,GAXD,MAWO;EACL,WAAOA,SAAP;EACD;EACF;;EAED,SAASO,SAAT,CAAmBzR,CAAnB,EAAsB;EACpB,MAAM0R,EAAE,GAAG,EAAX;;EACA,OAAK,IAAI9I,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAI,EAArB,EAAyBA,CAAC,EAA1B,EAA8B;EAC5B,QAAMzD,EAAE,GAAGwM,QAAQ,CAACC,GAAT,CAAa,IAAb,EAAmBhJ,CAAnB,EAAsB,CAAtB,CAAX;EACA8I,IAAAA,EAAE,CAAC3I,IAAH,CAAQ/I,CAAC,CAACmF,EAAD,CAAT;EACD;;EACD,SAAOuM,EAAP;EACD;;EAED,SAASG,WAAT,CAAqB7R,CAArB,EAAwB;EACtB,MAAM0R,EAAE,GAAG,EAAX;;EACA,OAAK,IAAI9I,CAAC,GAAG,CAAb,EAAgBA,CAAC,IAAI,CAArB,EAAwBA,CAAC,EAAzB,EAA6B;EAC3B,QAAMzD,EAAE,GAAGwM,QAAQ,CAACC,GAAT,CAAa,IAAb,EAAmB,EAAnB,EAAuB,KAAKhJ,CAA5B,CAAX;EACA8I,IAAAA,EAAE,CAAC3I,IAAH,CAAQ/I,CAAC,CAACmF,EAAD,CAAT;EACD;;EACD,SAAOuM,EAAP;EACD;;EAED,SAASI,SAAT,CAAmB7I,GAAnB,EAAwBhL,MAAxB,EAAgC8T,SAAhC,EAA2CC,SAA3C,EAAsDC,MAAtD,EAA8D;EAC5D,MAAMC,IAAI,GAAGjJ,GAAG,CAACgB,WAAJ,CAAgB8H,SAAhB,CAAb;;EAEA,MAAIG,IAAI,KAAK,OAAb,EAAsB;EACpB,WAAO,IAAP;EACD,GAFD,MAEO,IAAIA,IAAI,KAAK,IAAb,EAAmB;EACxB,WAAOF,SAAS,CAAC/T,MAAD,CAAhB;EACD,GAFM,MAEA;EACL,WAAOgU,MAAM,CAAChU,MAAD,CAAb;EACD;EACF;;EAED,SAASkU,mBAAT,CAA6BlJ,GAA7B,EAAkC;EAChC,MAAIA,GAAG,CAAC4G,eAAJ,IAAuB5G,GAAG,CAAC4G,eAAJ,KAAwB,MAAnD,EAA2D;EACzD,WAAO,KAAP;EACD,GAFD,MAEO;EACL,WACE5G,GAAG,CAAC4G,eAAJ,KAAwB,MAAxB,IACA,CAAC5G,GAAG,CAACnH,MADL,IAEAmH,GAAG,CAACnH,MAAJ,CAAWsQ,UAAX,CAAsB,IAAtB,CAFA,IAGA,IAAI9U,IAAI,CAAC8E,cAAT,CAAwB6G,GAAG,CAACoJ,IAA5B,EAAkC5I,eAAlC,GAAoDoG,eAApD,KAAwE,MAJ1E;EAMD;EACF;EAED;EACA;EACA;;;MAEMyC;EACJ,+BAAYD,IAAZ,EAAkBzI,WAAlB,EAA+BtB,IAA/B,EAAqC;EACnC,SAAKuB,KAAL,GAAavB,IAAI,CAACuB,KAAL,IAAc,CAA3B;EACA,SAAKzK,KAAL,GAAakJ,IAAI,CAAClJ,KAAL,IAAc,KAA3B;;EAEA,IAAuCkJ,IAAvC,CAAQuB,KAAR;EAAA,QAAuCvB,IAAvC,CAAelJ,KAAf;EAAA,YAAyBmT,SAAzB,iCAAuCjK,IAAvC;;EAEA,QAAI,CAACsB,WAAD,IAAgB3M,MAAM,CAACwB,IAAP,CAAY8T,SAAZ,EAAuBtU,MAAvB,GAAgC,CAApD,EAAuD;EACrD,UAAMgE,QAAQ;EAAKuQ,QAAAA,WAAW,EAAE;EAAlB,SAA4BlK,IAA5B,CAAd;;EACA,UAAIA,IAAI,CAACuB,KAAL,GAAa,CAAjB,EAAoB5H,QAAQ,CAACwQ,oBAAT,GAAgCnK,IAAI,CAACuB,KAArC;EACpB,WAAK4G,GAAL,GAAWD,YAAY,CAAC6B,IAAD,EAAOpQ,QAAP,CAAvB;EACD;EACF;;;;WAED4B,SAAA,gBAAO+E,CAAP,EAAU;EACR,QAAI,KAAK6H,GAAT,EAAc;EACZ,UAAMzB,KAAK,GAAG,KAAK5P,KAAL,GAAaD,IAAI,CAACC,KAAL,CAAWwJ,CAAX,CAAb,GAA6BA,CAA3C;EACA,aAAO,KAAK6H,GAAL,CAAS5M,MAAT,CAAgBmL,KAAhB,CAAP;EACD,KAHD,MAGO;EACL;EACA,UAAMA,MAAK,GAAG,KAAK5P,KAAL,GAAaD,IAAI,CAACC,KAAL,CAAWwJ,CAAX,CAAb,GAA6B3I,OAAO,CAAC2I,CAAD,EAAI,CAAJ,CAAlD;;EACA,aAAOvJ,QAAQ,CAAC2P,MAAD,EAAQ,KAAKnF,KAAb,CAAf;EACD;EACF;;;;EAGH;EACA;EACA;;;MAEM6I;EACJ,6BAAYvN,EAAZ,EAAgBkN,IAAhB,EAAsB/J,IAAtB,EAA4B;EAC1B,SAAKA,IAAL,GAAYA,IAAZ;EAEA,QAAIqK,CAAJ;;EACA,QAAIxN,EAAE,CAACqF,IAAH,CAAQoI,WAAZ,EAAyB;EACvB;EACA;EACA;EACA;EACA;EACA;EACA,UAAMC,SAAS,GAAG,CAAC,CAAD,IAAM1N,EAAE,CAACvB,MAAH,GAAY,EAAlB,CAAlB;EACA,UAAMkP,OAAO,GAAGD,SAAS,IAAI,CAAb,gBAA4BA,SAA5B,eAAoDA,SAApE;;EACA,UAAI1N,EAAE,CAACvB,MAAH,KAAc,CAAd,IAAmBmK,QAAQ,CAAC1F,MAAT,CAAgByK,OAAhB,EAAyB3E,KAAhD,EAAuD;EACrDwE,QAAAA,CAAC,GAAGG,OAAJ;EACA,aAAK3N,EAAL,GAAUA,EAAV;EACD,OAHD,MAGO;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACAwN,QAAAA,CAAC,GAAG,KAAJ;;EACA,YAAIrK,IAAI,CAAC3M,YAAT,EAAuB;EACrB,eAAKwJ,EAAL,GAAUA,EAAV;EACD,SAFD,MAEO;EACL,eAAKA,EAAL,GAAUA,EAAE,CAACvB,MAAH,KAAc,CAAd,GAAkBuB,EAAlB,GAAuBwM,QAAQ,CAACoB,UAAT,CAAoB5N,EAAE,CAACvD,EAAH,GAAQuD,EAAE,CAACvB,MAAH,GAAY,EAAZ,GAAiB,IAA7C,CAAjC;EACD;EACF;EACF,KA3BD,MA2BO,IAAIuB,EAAE,CAACqF,IAAH,CAAQhI,IAAR,KAAiB,QAArB,EAA+B;EACpC,WAAK2C,EAAL,GAAUA,EAAV;EACD,KAFM,MAEA;EACL,WAAKA,EAAL,GAAUA,EAAV;EACAwN,MAAAA,CAAC,GAAGxN,EAAE,CAACqF,IAAH,CAAQ+B,IAAZ;EACD;;EAED,QAAMtK,QAAQ,gBAAQ,KAAKqG,IAAb,CAAd;;EACA,QAAIqK,CAAJ,EAAO;EACL1Q,MAAAA,QAAQ,CAACF,QAAT,GAAoB4Q,CAApB;EACD;;EACD,SAAK3F,GAAL,GAAWsD,YAAY,CAAC+B,IAAD,EAAOpQ,QAAP,CAAvB;EACD;;;;YAED4B,SAAA,kBAAS;EACP,WAAO,KAAKmJ,GAAL,CAASnJ,MAAT,CAAgB,KAAKsB,EAAL,CAAQ6N,QAAR,EAAhB,CAAP;EACD;;YAED3Q,gBAAA,yBAAgB;EACd,WAAO,KAAK2K,GAAL,CAAS3K,aAAT,CAAuB,KAAK8C,EAAL,CAAQ6N,QAAR,EAAvB,CAAP;EACD;;YAEDvJ,kBAAA,2BAAkB;EAChB,WAAO,KAAKuD,GAAL,CAASvD,eAAT,EAAP;EACD;;;;EAGH;EACA;EACA;;;MACMwJ;EACJ,4BAAYZ,IAAZ,EAAkBa,SAAlB,EAA6B5K,IAA7B,EAAmC;EACjC,SAAKA,IAAL;EAAc6K,MAAAA,KAAK,EAAE;EAArB,OAAgC7K,IAAhC;;EACA,QAAI,CAAC4K,SAAD,IAAc7V,WAAW,EAA7B,EAAiC;EAC/B,WAAK+V,GAAL,GAAWxC,YAAY,CAACyB,IAAD,EAAO/J,IAAP,CAAvB;EACD;EACF;;;;YAEDzE,SAAA,gBAAO2B,KAAP,EAAclL,IAAd,EAAoB;EAClB,QAAI,KAAK8Y,GAAT,EAAc;EACZ,aAAO,KAAKA,GAAL,CAASvP,MAAT,CAAgB2B,KAAhB,EAAuBlL,IAAvB,CAAP;EACD,KAFD,MAEO;EACL,aAAOoQ,kBAAA,CAA2BpQ,IAA3B,EAAiCkL,KAAjC,EAAwC,KAAK8C,IAAL,CAAU7C,OAAlD,EAA2D,KAAK6C,IAAL,CAAU6K,KAAV,KAAoB,MAA/E,CAAP;EACD;EACF;;YAED9Q,gBAAA,uBAAcmD,KAAd,EAAqBlL,IAArB,EAA2B;EACzB,QAAI,KAAK8Y,GAAT,EAAc;EACZ,aAAO,KAAKA,GAAL,CAAS/Q,aAAT,CAAuBmD,KAAvB,EAA8BlL,IAA9B,CAAP;EACD,KAFD,MAEO;EACL,aAAO,EAAP;EACD;EACF;;;;EAGH;EACA;EACA;;;MAEqBsV;WACZyD,WAAP,kBAAgB/K,IAAhB,EAAsB;EACpB,WAAOsH,MAAM,CAACvH,MAAP,CAAcC,IAAI,CAACxG,MAAnB,EAA2BwG,IAAI,CAACuH,eAAhC,EAAiDvH,IAAI,CAAC6B,cAAtD,EAAsE7B,IAAI,CAACgL,WAA3E,CAAP;EACD;;WAEMjL,SAAP,gBAAcvG,MAAd,EAAsB+N,eAAtB,EAAuC1F,cAAvC,EAAuDmJ,WAAvD,EAA4E;EAAA,QAArBA,WAAqB;EAArBA,MAAAA,WAAqB,GAAP,KAAO;EAAA;;EAC1E,QAAMC,eAAe,GAAGzR,MAAM,IAAI4N,QAAQ,CAACJ,aAA3C,CAD0E;;EAG1E,QAAMkE,OAAO,GAAGD,eAAe,KAAKD,WAAW,GAAG,OAAH,GAAatC,YAAY,EAAzC,CAA/B;EACA,QAAMyC,gBAAgB,GAAG5D,eAAe,IAAIH,QAAQ,CAACH,sBAArD;EACA,QAAMmE,eAAe,GAAGvJ,cAAc,IAAIuF,QAAQ,CAACF,qBAAnD;EACA,WAAO,IAAII,MAAJ,CAAW4D,OAAX,EAAoBC,gBAApB,EAAsCC,eAAtC,EAAuDH,eAAvD,CAAP;EACD;;WAEMvF,aAAP,sBAAoB;EAClB+C,IAAAA,cAAc,GAAG,IAAjB;EACAV,IAAAA,WAAW,GAAG,EAAd;EACAE,IAAAA,YAAY,GAAG,EAAf;EACAI,IAAAA,YAAY,GAAG,EAAf;EACD;;WAEMgD,aAAP,2BAAoE;EAAA,kCAAJ,EAAI;EAAA,QAAhD7R,MAAgD,QAAhDA,MAAgD;EAAA,QAAxC+N,eAAwC,QAAxCA,eAAwC;EAAA,QAAvB1F,cAAuB,QAAvBA,cAAuB;;EAClE,WAAOyF,MAAM,CAACvH,MAAP,CAAcvG,MAAd,EAAsB+N,eAAtB,EAAuC1F,cAAvC,CAAP;EACD;;EAED,kBAAYrI,MAAZ,EAAoB8R,SAApB,EAA+BzJ,cAA/B,EAA+CoJ,eAA/C,EAAgE;EAC9D,6BAAoEtC,iBAAiB,CAACnP,MAAD,CAArF;EAAA,QAAO+R,YAAP;EAAA,QAAqBC,qBAArB;EAAA,QAA4CC,oBAA5C;;EAEA,SAAKjS,MAAL,GAAc+R,YAAd;EACA,SAAKhE,eAAL,GAAuB+D,SAAS,IAAIE,qBAAb,IAAsC,IAA7D;EACA,SAAK3J,cAAL,GAAsBA,cAAc,IAAI4J,oBAAlB,IAA0C,IAAhE;EACA,SAAK1B,IAAL,GAAYb,gBAAgB,CAAC,KAAK1P,MAAN,EAAc,KAAK+N,eAAnB,EAAoC,KAAK1F,cAAzC,CAA5B;EAEA,SAAK6J,aAAL,GAAqB;EAAEnQ,MAAAA,MAAM,EAAE,EAAV;EAAc8G,MAAAA,UAAU,EAAE;EAA1B,KAArB;EACA,SAAKsJ,WAAL,GAAmB;EAAEpQ,MAAAA,MAAM,EAAE,EAAV;EAAc8G,MAAAA,UAAU,EAAE;EAA1B,KAAnB;EACA,SAAKuJ,aAAL,GAAqB,IAArB;EACA,SAAKC,QAAL,GAAgB,EAAhB;EAEA,SAAKZ,eAAL,GAAuBA,eAAvB;EACA,SAAKa,iBAAL,GAAyB,IAAzB;EACD;;;;YAUDnK,cAAA,uBAAc;EACZ,QAAMoK,YAAY,GAAG,KAAKnB,SAAL,EAArB;EACA,QAAMoB,cAAc,GAClB,CAAC,KAAKzE,eAAL,KAAyB,IAAzB,IAAiC,KAAKA,eAAL,KAAyB,MAA3D,MACC,KAAK1F,cAAL,KAAwB,IAAxB,IAAgC,KAAKA,cAAL,KAAwB,SADzD,CADF;EAGA,WAAOkK,YAAY,IAAIC,cAAhB,GAAiC,IAAjC,GAAwC,MAA/C;EACD;;YAEDC,QAAA,eAAMC,IAAN,EAAY;EACV,QAAI,CAACA,IAAD,IAASvX,MAAM,CAACwX,mBAAP,CAA2BD,IAA3B,EAAiCvW,MAAjC,KAA4C,CAAzD,EAA4D;EAC1D,aAAO,IAAP;EACD,KAFD,MAEO;EACL,aAAO2R,MAAM,CAACvH,MAAP,CACLmM,IAAI,CAAC1S,MAAL,IAAe,KAAKyR,eADf,EAELiB,IAAI,CAAC3E,eAAL,IAAwB,KAAKA,eAFxB,EAGL2E,IAAI,CAACrK,cAAL,IAAuB,KAAKA,cAHvB,EAILqK,IAAI,CAAClB,WAAL,IAAoB,KAJf,CAAP;EAMD;EACF;;YAEDoB,gBAAA,uBAAcF,IAAd,EAAyB;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EACvB,WAAO,KAAKD,KAAL,cAAgBC,IAAhB;EAAsBlB,MAAAA,WAAW,EAAE;EAAnC,OAAP;EACD;;YAEDlK,oBAAA,2BAAkBoL,IAAlB,EAA6B;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EAC3B,WAAO,KAAKD,KAAL,cAAgBC,IAAhB;EAAsBlB,MAAAA,WAAW,EAAE;EAAnC,OAAP;EACD;;YAED9O,SAAA,kBAAOvG,MAAP,EAAe4F,MAAf,EAA+BkO,SAA/B,EAAiD;EAAA;;EAAA,QAAlClO,MAAkC;EAAlCA,MAAAA,MAAkC,GAAzB,KAAyB;EAAA;;EAAA,QAAlBkO,SAAkB;EAAlBA,MAAAA,SAAkB,GAAN,IAAM;EAAA;;EAC/C,WAAOD,SAAS,CAAC,IAAD,EAAO7T,MAAP,EAAe8T,SAAf,EAA0BrH,MAA1B,EAA0C,YAAM;EAC9D,UAAM2H,IAAI,GAAGxO,MAAM,GAAG;EAAE/I,QAAAA,KAAK,EAAEmD,MAAT;EAAiBlD,QAAAA,GAAG,EAAE;EAAtB,OAAH,GAAuC;EAAED,QAAAA,KAAK,EAAEmD;EAAT,OAA1D;EAAA,UACE0W,SAAS,GAAG9Q,MAAM,GAAG,QAAH,GAAc,YADlC;;EAEA,UAAI,CAAC,KAAI,CAACoQ,WAAL,CAAiBU,SAAjB,EAA4B1W,MAA5B,CAAL,EAA0C;EACxC,QAAA,KAAI,CAACgW,WAAL,CAAiBU,SAAjB,EAA4B1W,MAA5B,IAAsCwT,SAAS,CAAC,UAACtM,EAAD;EAAA,iBAAQ,KAAI,CAACiF,OAAL,CAAajF,EAAb,EAAiBkN,IAAjB,EAAuB,OAAvB,CAAR;EAAA,SAAD,CAA/C;EACD;;EACD,aAAO,KAAI,CAAC4B,WAAL,CAAiBU,SAAjB,EAA4B1W,MAA5B,CAAP;EACD,KAPe,CAAhB;EAQD;;YAED2G,WAAA,oBAAS3G,MAAT,EAAiB4F,MAAjB,EAAiCkO,SAAjC,EAAmD;EAAA;;EAAA,QAAlClO,MAAkC;EAAlCA,MAAAA,MAAkC,GAAzB,KAAyB;EAAA;;EAAA,QAAlBkO,SAAkB;EAAlBA,MAAAA,SAAkB,GAAN,IAAM;EAAA;;EACjD,WAAOD,SAAS,CAAC,IAAD,EAAO7T,MAAP,EAAe8T,SAAf,EAA0BrH,QAA1B,EAA4C,YAAM;EAChE,UAAM2H,IAAI,GAAGxO,MAAM,GACb;EAAE3I,QAAAA,OAAO,EAAE+C,MAAX;EAAmBpD,QAAAA,IAAI,EAAE,SAAzB;EAAoCC,QAAAA,KAAK,EAAE,MAA3C;EAAmDC,QAAAA,GAAG,EAAE;EAAxD,OADa,GAEb;EAAEG,QAAAA,OAAO,EAAE+C;EAAX,OAFN;EAAA,UAGE0W,SAAS,GAAG9Q,MAAM,GAAG,QAAH,GAAc,YAHlC;;EAIA,UAAI,CAAC,MAAI,CAACmQ,aAAL,CAAmBW,SAAnB,EAA8B1W,MAA9B,CAAL,EAA4C;EAC1C,QAAA,MAAI,CAAC+V,aAAL,CAAmBW,SAAnB,EAA8B1W,MAA9B,IAAwC4T,WAAW,CAAC,UAAC1M,EAAD;EAAA,iBAClD,MAAI,CAACiF,OAAL,CAAajF,EAAb,EAAiBkN,IAAjB,EAAuB,SAAvB,CADkD;EAAA,SAAD,CAAnD;EAGD;;EACD,aAAO,MAAI,CAAC2B,aAAL,CAAmBW,SAAnB,EAA8B1W,MAA9B,CAAP;EACD,KAXe,CAAhB;EAYD;;YAED4G,YAAA,qBAAUkN,SAAV,EAA4B;EAAA;;EAAA,QAAlBA,SAAkB;EAAlBA,MAAAA,SAAkB,GAAN,IAAM;EAAA;;EAC1B,WAAOD,SAAS,CACd,IADc,EAEd5T,SAFc,EAGd6T,SAHc,EAId;EAAA,aAAMrH,SAAN;EAAA,KAJc,EAKd,YAAM;EACJ;EACA;EACA,UAAI,CAAC,MAAI,CAACwJ,aAAV,EAAyB;EACvB,YAAM7B,IAAI,GAAG;EAAE/W,UAAAA,IAAI,EAAE,SAAR;EAAmBQ,UAAAA,SAAS,EAAE;EAA9B,SAAb;EACA,QAAA,MAAI,CAACoY,aAAL,GAAqB,CAACvC,QAAQ,CAACC,GAAT,CAAa,IAAb,EAAmB,EAAnB,EAAuB,EAAvB,EAA2B,CAA3B,CAAD,EAAgCD,QAAQ,CAACC,GAAT,CAAa,IAAb,EAAmB,EAAnB,EAAuB,EAAvB,EAA2B,EAA3B,CAAhC,EAAgE5F,GAAhE,CACnB,UAAC7G,EAAD;EAAA,iBAAQ,MAAI,CAACiF,OAAL,CAAajF,EAAb,EAAiBkN,IAAjB,EAAuB,WAAvB,CAAR;EAAA,SADmB,CAArB;EAGD;;EAED,aAAO,MAAI,CAAC6B,aAAZ;EACD,KAhBa,CAAhB;EAkBD;;YAEDjP,OAAA,gBAAKhH,MAAL,EAAa8T,SAAb,EAA+B;EAAA;;EAAA,QAAlBA,SAAkB;EAAlBA,MAAAA,SAAkB,GAAN,IAAM;EAAA;;EAC7B,WAAOD,SAAS,CAAC,IAAD,EAAO7T,MAAP,EAAe8T,SAAf,EAA0BrH,IAA1B,EAAwC,YAAM;EAC5D,UAAM2H,IAAI,GAAG;EAAExH,QAAAA,GAAG,EAAE5M;EAAP,OAAb,CAD4D;EAI5D;;EACA,UAAI,CAAC,MAAI,CAACkW,QAAL,CAAclW,MAAd,CAAL,EAA4B;EAC1B,QAAA,MAAI,CAACkW,QAAL,CAAclW,MAAd,IAAwB,CAAC0T,QAAQ,CAACC,GAAT,CAAa,CAAC,EAAd,EAAkB,CAAlB,EAAqB,CAArB,CAAD,EAA0BD,QAAQ,CAACC,GAAT,CAAa,IAAb,EAAmB,CAAnB,EAAsB,CAAtB,CAA1B,EAAoD5F,GAApD,CAAwD,UAAC7G,EAAD;EAAA,iBAC9E,MAAI,CAACiF,OAAL,CAAajF,EAAb,EAAiBkN,IAAjB,EAAuB,KAAvB,CAD8E;EAAA,SAAxD,CAAxB;EAGD;;EAED,aAAO,MAAI,CAAC8B,QAAL,CAAclW,MAAd,CAAP;EACD,KAZe,CAAhB;EAaD;;YAEDmM,UAAA,iBAAQjF,EAAR,EAAYlD,QAAZ,EAAsB2S,KAAtB,EAA6B;EAC3B,QAAMvL,EAAE,GAAG,KAAKC,WAAL,CAAiBnE,EAAjB,EAAqBlD,QAArB,CAAX;EAAA,QACE4S,OAAO,GAAGxL,EAAE,CAAChH,aAAH,EADZ;EAAA,QAEEyS,QAAQ,GAAGD,OAAO,CAACvS,IAAR,CAAa,UAACC,CAAD;EAAA,aAAOA,CAAC,CAACC,IAAF,CAAOC,WAAP,OAAyBmS,KAAhC;EAAA,KAAb,CAFb;EAGA,WAAOE,QAAQ,GAAGA,QAAQ,CAACpS,KAAZ,GAAoB,IAAnC;EACD;;YAEDoH,kBAAA,yBAAgBxB,IAAhB,EAA2B;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EACzB;EACA;EACA,WAAO,IAAIgK,mBAAJ,CAAwB,KAAKD,IAA7B,EAAmC/J,IAAI,CAACsB,WAAL,IAAoB,KAAKmL,WAA5D,EAAyEzM,IAAzE,CAAP;EACD;;YAEDgB,cAAA,qBAAYnE,EAAZ,EAAgBlD,QAAhB,EAA+B;EAAA,QAAfA,QAAe;EAAfA,MAAAA,QAAe,GAAJ,EAAI;EAAA;;EAC7B,WAAO,IAAIyQ,iBAAJ,CAAsBvN,EAAtB,EAA0B,KAAKkN,IAA/B,EAAqCpQ,QAArC,CAAP;EACD;;YAED+S,eAAA,sBAAa1M,IAAb,EAAwB;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EACtB,WAAO,IAAI2K,gBAAJ,CAAqB,KAAKZ,IAA1B,EAAgC,KAAKa,SAAL,EAAhC,EAAkD5K,IAAlD,CAAP;EACD;;YAED2M,gBAAA,uBAAc3M,IAAd,EAAyB;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EACvB,WAAOyH,WAAW,CAAC,KAAKsC,IAAN,EAAY/J,IAAZ,CAAlB;EACD;;YAED4K,YAAA,qBAAY;EACV,WACE,KAAKpR,MAAL,KAAgB,IAAhB,IACA,KAAKA,MAAL,CAAYW,WAAZ,OAA8B,OAD9B,IAEA,IAAInF,IAAI,CAAC8E,cAAT,CAAwB,KAAKiQ,IAA7B,EAAmC5I,eAAnC,GAAqD3H,MAArD,CAA4DsQ,UAA5D,CAAuE,OAAvE,CAHF;EAKD;;YAED/F,SAAA,gBAAO6I,KAAP,EAAc;EACZ,WACE,KAAKpT,MAAL,KAAgBoT,KAAK,CAACpT,MAAtB,IACA,KAAK+N,eAAL,KAAyBqF,KAAK,CAACrF,eAD/B,IAEA,KAAK1F,cAAL,KAAwB+K,KAAK,CAAC/K,cAHhC;EAKD;;;;WA3ID,eAAkB;EAChB,UAAI,KAAKiK,iBAAL,IAA0B,IAA9B,EAAoC;EAClC,aAAKA,iBAAL,GAAyBjC,mBAAmB,CAAC,IAAD,CAA5C;EACD;;EAED,aAAO,KAAKiC,iBAAZ;EACD;;;;;;ECtTH;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;EAEA,SAASe,cAAT,GAAoC;EAAA,oCAATC,OAAS;EAATA,IAAAA,OAAS;EAAA;;EAClC,MAAMC,IAAI,GAAGD,OAAO,CAACjX,MAAR,CAAe,UAAC6B,CAAD,EAAI8O,CAAJ;EAAA,WAAU9O,CAAC,GAAG8O,CAAC,CAACwG,MAAhB;EAAA,GAAf,EAAuC,EAAvC,CAAb;EACA,SAAOC,MAAM,OAAKF,IAAL,OAAb;EACD;;EAED,SAASG,iBAAT,GAA0C;EAAA,qCAAZC,UAAY;EAAZA,IAAAA,UAAY;EAAA;;EACxC,SAAO,UAAClT,CAAD;EAAA,WACLkT,UAAU,CACPtX,MADH,CAEI,gBAAmCuX,EAAnC,EAA0C;EAAA,UAAxCC,UAAwC;EAAA,UAA5BC,UAA4B;EAAA,UAAhBC,MAAgB;;EACxC,gBAA0BH,EAAE,CAACnT,CAAD,EAAIsT,MAAJ,CAA5B;EAAA,UAAO/O,GAAP;EAAA,UAAY0D,IAAZ;EAAA,UAAkBnM,IAAlB;;EACA,aAAO,cAAMsX,UAAN,EAAqB7O,GAArB,GAA4B0D,IAAI,IAAIoL,UAApC,EAAgDvX,IAAhD,CAAP;EACD,KALL,EAMI,CAAC,EAAD,EAAK,IAAL,EAAW,CAAX,CANJ,EAQG2M,KARH,CAQS,CART,EAQY,CARZ,CADK;EAAA,GAAP;EAUD;;EAED,SAAS8K,KAAT,CAAepb,CAAf,EAA+B;EAC7B,MAAIA,CAAC,IAAI,IAAT,EAAe;EACb,WAAO,CAAC,IAAD,EAAO,IAAP,CAAP;EACD;;EAH4B,qCAAVqb,QAAU;EAAVA,IAAAA,QAAU;EAAA;;EAK7B,+BAAiCA,QAAjC,+BAA2C;EAAtC;EAAA,QAAOC,KAAP;EAAA,QAAcC,SAAd;EACH,QAAM1T,CAAC,GAAGyT,KAAK,CAAC7I,IAAN,CAAWzS,CAAX,CAAV;;EACA,QAAI6H,CAAJ,EAAO;EACL,aAAO0T,SAAS,CAAC1T,CAAD,CAAhB;EACD;EACF;;EACD,SAAO,CAAC,IAAD,EAAO,IAAP,CAAP;EACD;;EAED,SAAS2T,WAAT,GAA8B;EAAA,qCAANzX,IAAM;EAANA,IAAAA,IAAM;EAAA;;EAC5B,SAAO,UAACsQ,KAAD,EAAQ8G,MAAR,EAAmB;EACxB,QAAMM,GAAG,GAAG,EAAZ;EACA,QAAIvN,CAAJ;;EAEA,SAAKA,CAAC,GAAG,CAAT,EAAYA,CAAC,GAAGnK,IAAI,CAACR,MAArB,EAA6B2K,CAAC,EAA9B,EAAkC;EAChCuN,MAAAA,GAAG,CAAC1X,IAAI,CAACmK,CAAD,CAAL,CAAH,GAAenJ,YAAY,CAACsP,KAAK,CAAC8G,MAAM,GAAGjN,CAAV,CAAN,CAA3B;EACD;;EACD,WAAO,CAACuN,GAAD,EAAM,IAAN,EAAYN,MAAM,GAAGjN,CAArB,CAAP;EACD,GARD;EASD;;;EAGD,IAAMwN,WAAW,GAAG,iCAApB;EACA,IAAMC,eAAe,WAASD,WAAW,CAACd,MAArB,gBAAsClR,SAAS,CAACkR,MAAhD,aAArB;EACA,IAAMgB,gBAAgB,GAAG,qDAAzB;EACA,IAAMC,YAAY,GAAGhB,MAAM,MAAIe,gBAAgB,CAAChB,MAArB,GAA8Be,eAA9B,CAA3B;EACA,IAAMG,qBAAqB,GAAGjB,MAAM,UAAQgB,YAAY,CAACjB,MAArB,QAApC;EACA,IAAMmB,WAAW,GAAG,6CAApB;EACA,IAAMC,YAAY,GAAG,6BAArB;EACA,IAAMC,eAAe,GAAG,kBAAxB;EACA,IAAMC,kBAAkB,GAAGV,WAAW,CAAC,UAAD,EAAa,YAAb,EAA2B,SAA3B,CAAtC;EACA,IAAMW,qBAAqB,GAAGX,WAAW,CAAC,MAAD,EAAS,SAAT,CAAzC;EACA,IAAMY,WAAW,GAAG,uBAApB;;EACA,IAAMC,YAAY,GAAGxB,MAAM,CACtBe,gBAAgB,CAAChB,MADK,aACSc,WAAW,CAACd,MADrB,UACgClR,SAAS,CAACkR,MAD1C,SAA3B;EAGA,IAAM0B,qBAAqB,GAAGzB,MAAM,UAAQwB,YAAY,CAACzB,MAArB,QAApC;;EAEA,SAAS2B,GAAT,CAAalI,KAAb,EAAoBlB,GAApB,EAAyBqJ,QAAzB,EAAmC;EACjC,MAAM3U,CAAC,GAAGwM,KAAK,CAAClB,GAAD,CAAf;EACA,SAAOlR,WAAW,CAAC4F,CAAD,CAAX,GAAiB2U,QAAjB,GAA4BzX,YAAY,CAAC8C,CAAD,CAA/C;EACD;;EAED,SAAS4U,aAAT,CAAuBpI,KAAvB,EAA8B8G,MAA9B,EAAsC;EACpC,MAAMuB,IAAI,GAAG;EACXvc,IAAAA,IAAI,EAAEoc,GAAG,CAAClI,KAAD,EAAQ8G,MAAR,CADE;EAEX/a,IAAAA,KAAK,EAAEmc,GAAG,CAAClI,KAAD,EAAQ8G,MAAM,GAAG,CAAjB,EAAoB,CAApB,CAFC;EAGX9a,IAAAA,GAAG,EAAEkc,GAAG,CAAClI,KAAD,EAAQ8G,MAAM,GAAG,CAAjB,EAAoB,CAApB;EAHG,GAAb;EAMA,SAAO,CAACuB,IAAD,EAAO,IAAP,EAAavB,MAAM,GAAG,CAAtB,CAAP;EACD;;EAED,SAASwB,cAAT,CAAwBtI,KAAxB,EAA+B8G,MAA/B,EAAuC;EACrC,MAAMuB,IAAI,GAAG;EACXtT,IAAAA,KAAK,EAAEmT,GAAG,CAAClI,KAAD,EAAQ8G,MAAR,EAAgB,CAAhB,CADC;EAEX7R,IAAAA,OAAO,EAAEiT,GAAG,CAAClI,KAAD,EAAQ8G,MAAM,GAAG,CAAjB,EAAoB,CAApB,CAFD;EAGX7P,IAAAA,OAAO,EAAEiR,GAAG,CAAClI,KAAD,EAAQ8G,MAAM,GAAG,CAAjB,EAAoB,CAApB,CAHD;EAIXyB,IAAAA,YAAY,EAAExX,WAAW,CAACiP,KAAK,CAAC8G,MAAM,GAAG,CAAV,CAAN;EAJd,GAAb;EAOA,SAAO,CAACuB,IAAD,EAAO,IAAP,EAAavB,MAAM,GAAG,CAAtB,CAAP;EACD;;EAED,SAAS0B,gBAAT,CAA0BxI,KAA1B,EAAiC8G,MAAjC,EAAyC;EACvC,MAAM2B,KAAK,GAAG,CAACzI,KAAK,CAAC8G,MAAD,CAAN,IAAkB,CAAC9G,KAAK,CAAC8G,MAAM,GAAG,CAAV,CAAtC;EAAA,MACE4B,UAAU,GAAG9U,YAAY,CAACoM,KAAK,CAAC8G,MAAM,GAAG,CAAV,CAAN,EAAoB9G,KAAK,CAAC8G,MAAM,GAAG,CAAV,CAAzB,CAD3B;EAAA,MAEErL,IAAI,GAAGgN,KAAK,GAAG,IAAH,GAAU9I,eAAe,CAACC,QAAhB,CAAyB8I,UAAzB,CAFxB;EAGA,SAAO,CAAC,EAAD,EAAKjN,IAAL,EAAWqL,MAAM,GAAG,CAApB,CAAP;EACD;;EAED,SAAS6B,eAAT,CAAyB3I,KAAzB,EAAgC8G,MAAhC,EAAwC;EACtC,MAAMrL,IAAI,GAAGuE,KAAK,CAAC8G,MAAD,CAAL,GAAgB9H,QAAQ,CAAC1F,MAAT,CAAgB0G,KAAK,CAAC8G,MAAD,CAArB,CAAhB,GAAiD,IAA9D;EACA,SAAO,CAAC,EAAD,EAAKrL,IAAL,EAAWqL,MAAM,GAAG,CAApB,CAAP;EACD;;;EAID,IAAM8B,WAAW,GAAGpC,MAAM,SAAOe,gBAAgB,CAAChB,MAAxB,OAA1B;;EAIA,IAAMsC,WAAW,GACf,iPADF;;EAGA,SAASC,kBAAT,CAA4B9I,KAA5B,EAAmC;EACjC,MAAOrU,CAAP,GACEqU,KADF;EAAA,MAAU+I,OAAV,GACE/I,KADF;EAAA,MAAmBgJ,QAAnB,GACEhJ,KADF;EAAA,MAA6BiJ,OAA7B,GACEjJ,KADF;EAAA,MAAsCkJ,MAAtC,GACElJ,KADF;EAAA,MAA8CmJ,OAA9C,GACEnJ,KADF;EAAA,MAAuDoJ,SAAvD,GACEpJ,KADF;EAAA,MAAkEqJ,SAAlE,GACErJ,KADF;EAAA,MAA6EsJ,eAA7E,GACEtJ,KADF;EAGA,MAAMuJ,iBAAiB,GAAG5d,CAAC,CAAC,CAAD,CAAD,KAAS,GAAnC;EACA,MAAM6d,eAAe,GAAGH,SAAS,IAAIA,SAAS,CAAC,CAAD,CAAT,KAAiB,GAAtD;;EAEA,MAAMI,WAAW,GAAG,SAAdA,WAAc,CAAC9O,GAAD,EAAM+O,KAAN;EAAA,QAAMA,KAAN;EAAMA,MAAAA,KAAN,GAAc,KAAd;EAAA;;EAAA,WAClB/O,GAAG,KAAKxL,SAAR,KAAsBua,KAAK,IAAK/O,GAAG,IAAI4O,iBAAvC,IAA6D,CAAC5O,GAA9D,GAAoEA,GADlD;EAAA,GAApB;;EAGA,SAAO,CACL;EACE9D,IAAAA,KAAK,EAAE4S,WAAW,CAAC5Y,aAAa,CAACkY,OAAD,CAAd,CADpB;EAEEtT,IAAAA,MAAM,EAAEgU,WAAW,CAAC5Y,aAAa,CAACmY,QAAD,CAAd,CAFrB;EAGEjS,IAAAA,KAAK,EAAE0S,WAAW,CAAC5Y,aAAa,CAACoY,OAAD,CAAd,CAHpB;EAIEjS,IAAAA,IAAI,EAAEyS,WAAW,CAAC5Y,aAAa,CAACqY,MAAD,CAAd,CAJnB;EAKEnU,IAAAA,KAAK,EAAE0U,WAAW,CAAC5Y,aAAa,CAACsY,OAAD,CAAd,CALpB;EAMElU,IAAAA,OAAO,EAAEwU,WAAW,CAAC5Y,aAAa,CAACuY,SAAD,CAAd,CANtB;EAOEnS,IAAAA,OAAO,EAAEwS,WAAW,CAAC5Y,aAAa,CAACwY,SAAD,CAAd,EAA2BA,SAAS,KAAK,IAAzC,CAPtB;EAQEd,IAAAA,YAAY,EAAEkB,WAAW,CAAC1Y,WAAW,CAACuY,eAAD,CAAZ,EAA+BE,eAA/B;EAR3B,GADK,CAAP;EAYD;EAGD;EACA;;;EACA,IAAMG,UAAU,GAAG;EACjBC,EAAAA,GAAG,EAAE,CADY;EAEjBC,EAAAA,GAAG,EAAE,CAAC,CAAD,GAAK,EAFO;EAGjBC,EAAAA,GAAG,EAAE,CAAC,CAAD,GAAK,EAHO;EAIjBC,EAAAA,GAAG,EAAE,CAAC,CAAD,GAAK,EAJO;EAKjBC,EAAAA,GAAG,EAAE,CAAC,CAAD,GAAK,EALO;EAMjBC,EAAAA,GAAG,EAAE,CAAC,CAAD,GAAK,EANO;EAOjBC,EAAAA,GAAG,EAAE,CAAC,CAAD,GAAK,EAPO;EAQjBC,EAAAA,GAAG,EAAE,CAAC,CAAD,GAAK,EARO;EASjBC,EAAAA,GAAG,EAAE,CAAC,CAAD,GAAK;EATO,CAAnB;;EAYA,SAASC,WAAT,CAAqBC,UAArB,EAAiCvB,OAAjC,EAA0CC,QAA1C,EAAoDE,MAApD,EAA4DC,OAA5D,EAAqEC,SAArE,EAAgFC,SAAhF,EAA2F;EACzF,MAAMkB,MAAM,GAAG;EACbze,IAAAA,IAAI,EAAEid,OAAO,CAAC7Z,MAAR,KAAmB,CAAnB,GAAuByD,cAAc,CAACjC,YAAY,CAACqY,OAAD,CAAb,CAArC,GAA+DrY,YAAY,CAACqY,OAAD,CADpE;EAEbhd,IAAAA,KAAK,EAAE4P,WAAA,CAAoBxE,OAApB,CAA4B6R,QAA5B,IAAwC,CAFlC;EAGbhd,IAAAA,GAAG,EAAE0E,YAAY,CAACwY,MAAD,CAHJ;EAIb3c,IAAAA,IAAI,EAAEmE,YAAY,CAACyY,OAAD,CAJL;EAKb3c,IAAAA,MAAM,EAAEkE,YAAY,CAAC0Y,SAAD;EALP,GAAf;EAQA,MAAIC,SAAJ,EAAekB,MAAM,CAAC7d,MAAP,GAAgBgE,YAAY,CAAC2Y,SAAD,CAA5B;;EACf,MAAIiB,UAAJ,EAAgB;EACdC,IAAAA,MAAM,CAACpe,OAAP,GACEme,UAAU,CAACpb,MAAX,GAAoB,CAApB,GACIyM,YAAA,CAAqBxE,OAArB,CAA6BmT,UAA7B,IAA2C,CAD/C,GAEI3O,aAAA,CAAsBxE,OAAtB,CAA8BmT,UAA9B,IAA4C,CAHlD;EAID;;EAED,SAAOC,MAAP;EACD;;;EAGD,IAAMC,OAAO,GACX,iMADF;;EAGA,SAASC,cAAT,CAAwBzK,KAAxB,EAA+B;EAC7B,MAEIsK,UAFJ,GAaMtK,KAbN;EAAA,MAGIkJ,MAHJ,GAaMlJ,KAbN;EAAA,MAIIgJ,QAJJ,GAaMhJ,KAbN;EAAA,MAKI+I,OALJ,GAaM/I,KAbN;EAAA,MAMImJ,OANJ,GAaMnJ,KAbN;EAAA,MAOIoJ,SAPJ,GAaMpJ,KAbN;EAAA,MAQIqJ,SARJ,GAaMrJ,KAbN;EAAA,MASI0K,SATJ,GAaM1K,KAbN;EAAA,MAUI2K,SAVJ,GAaM3K,KAbN;EAAA,MAWInM,UAXJ,GAaMmM,KAbN;EAAA,MAYIlM,YAZJ,GAaMkM,KAbN;EAAA,MAcEuK,MAdF,GAcWF,WAAW,CAACC,UAAD,EAAavB,OAAb,EAAsBC,QAAtB,EAAgCE,MAAhC,EAAwCC,OAAxC,EAAiDC,SAAjD,EAA4DC,SAA5D,CAdtB;EAgBA,MAAIxU,MAAJ;;EACA,MAAI6V,SAAJ,EAAe;EACb7V,IAAAA,MAAM,GAAG8U,UAAU,CAACe,SAAD,CAAnB;EACD,GAFD,MAEO,IAAIC,SAAJ,EAAe;EACpB9V,IAAAA,MAAM,GAAG,CAAT;EACD,GAFM,MAEA;EACLA,IAAAA,MAAM,GAAGjB,YAAY,CAACC,UAAD,EAAaC,YAAb,CAArB;EACD;;EAED,SAAO,CAACyW,MAAD,EAAS,IAAI5K,eAAJ,CAAoB9K,MAApB,CAAT,CAAP;EACD;;EAED,SAAS+V,iBAAT,CAA2Bjf,CAA3B,EAA8B;EAC5B;EACA,SAAOA,CAAC,CACLwS,OADI,CACI,mBADJ,EACyB,GADzB,EAEJA,OAFI,CAEI,UAFJ,EAEgB,GAFhB,EAGJ0M,IAHI,EAAP;EAID;;;EAID,IAAMC,OAAO,GACT,4HADJ;EAAA,IAEEC,MAAM,GACJ,sJAHJ;EAAA,IAIEC,KAAK,GACH,2HALJ;;EAOA,SAASC,mBAAT,CAA6BjL,KAA7B,EAAoC;EAClC,MAASsK,UAAT,GAAiFtK,KAAjF;EAAA,MAAqBkJ,MAArB,GAAiFlJ,KAAjF;EAAA,MAA6BgJ,QAA7B,GAAiFhJ,KAAjF;EAAA,MAAuC+I,OAAvC,GAAiF/I,KAAjF;EAAA,MAAgDmJ,OAAhD,GAAiFnJ,KAAjF;EAAA,MAAyDoJ,SAAzD,GAAiFpJ,KAAjF;EAAA,MAAoEqJ,SAApE,GAAiFrJ,KAAjF;EAAA,MACEuK,MADF,GACWF,WAAW,CAACC,UAAD,EAAavB,OAAb,EAAsBC,QAAtB,EAAgCE,MAAhC,EAAwCC,OAAxC,EAAiDC,SAAjD,EAA4DC,SAA5D,CADtB;EAEA,SAAO,CAACkB,MAAD,EAAS5K,eAAe,CAACE,WAAzB,CAAP;EACD;;EAED,SAASqL,YAAT,CAAsBlL,KAAtB,EAA6B;EAC3B,MAASsK,UAAT,GAAiFtK,KAAjF;EAAA,MAAqBgJ,QAArB,GAAiFhJ,KAAjF;EAAA,MAA+BkJ,MAA/B,GAAiFlJ,KAAjF;EAAA,MAAuCmJ,OAAvC,GAAiFnJ,KAAjF;EAAA,MAAgDoJ,SAAhD,GAAiFpJ,KAAjF;EAAA,MAA2DqJ,SAA3D,GAAiFrJ,KAAjF;EAAA,MAAsE+I,OAAtE,GAAiF/I,KAAjF;EAAA,MACEuK,MADF,GACWF,WAAW,CAACC,UAAD,EAAavB,OAAb,EAAsBC,QAAtB,EAAgCE,MAAhC,EAAwCC,OAAxC,EAAiDC,SAAjD,EAA4DC,SAA5D,CADtB;EAEA,SAAO,CAACkB,MAAD,EAAS5K,eAAe,CAACE,WAAzB,CAAP;EACD;;EAED,IAAMsL,4BAA4B,GAAG/E,cAAc,CAACsB,WAAD,EAAcD,qBAAd,CAAnD;EACA,IAAM2D,6BAA6B,GAAGhF,cAAc,CAACuB,YAAD,EAAeF,qBAAf,CAApD;EACA,IAAM4D,gCAAgC,GAAGjF,cAAc,CAACwB,eAAD,EAAkBH,qBAAlB,CAAvD;EACA,IAAM6D,oBAAoB,GAAGlF,cAAc,CAACoB,YAAD,CAA3C;EAEA,IAAM+D,0BAA0B,GAAG9E,iBAAiB,CAClD2B,aADkD,EAElDE,cAFkD,EAGlDE,gBAHkD,EAIlDG,eAJkD,CAApD;EAMA,IAAM6C,2BAA2B,GAAG/E,iBAAiB,CACnDoB,kBADmD,EAEnDS,cAFmD,EAGnDE,gBAHmD,EAInDG,eAJmD,CAArD;EAMA,IAAM8C,4BAA4B,GAAGhF,iBAAiB,CACpDqB,qBADoD,EAEpDQ,cAFoD,EAGpDE,gBAHoD,EAIpDG,eAJoD,CAAtD;EAMA,IAAM+C,uBAAuB,GAAGjF,iBAAiB,CAC/C6B,cAD+C,EAE/CE,gBAF+C,EAG/CG,eAH+C,CAAjD;EAMA;EACA;EACA;;EAEO,SAASgD,YAAT,CAAsBhgB,CAAtB,EAAyB;EAC9B,SAAOob,KAAK,CACVpb,CADU,EAEV,CAACwf,4BAAD,EAA+BI,0BAA/B,CAFU,EAGV,CAACH,6BAAD,EAAgCI,2BAAhC,CAHU,EAIV,CAACH,gCAAD,EAAmCI,4BAAnC,CAJU,EAKV,CAACH,oBAAD,EAAuBI,uBAAvB,CALU,CAAZ;EAOD;EAEM,SAASE,gBAAT,CAA0BjgB,CAA1B,EAA6B;EAClC,SAAOob,KAAK,CAAC6D,iBAAiB,CAACjf,CAAD,CAAlB,EAAuB,CAAC6e,OAAD,EAAUC,cAAV,CAAvB,CAAZ;EACD;EAEM,SAASoB,aAAT,CAAuBlgB,CAAvB,EAA0B;EAC/B,SAAOob,KAAK,CACVpb,CADU,EAEV,CAACmf,OAAD,EAAUG,mBAAV,CAFU,EAGV,CAACF,MAAD,EAASE,mBAAT,CAHU,EAIV,CAACD,KAAD,EAAQE,YAAR,CAJU,CAAZ;EAMD;EAEM,SAASY,gBAAT,CAA0BngB,CAA1B,EAA6B;EAClC,SAAOob,KAAK,CAACpb,CAAD,EAAI,CAACkd,WAAD,EAAcC,kBAAd,CAAJ,CAAZ;EACD;EAED,IAAMiD,kBAAkB,GAAGtF,iBAAiB,CAAC6B,cAAD,CAA5C;EAEO,SAAS0D,gBAAT,CAA0BrgB,CAA1B,EAA6B;EAClC,SAAOob,KAAK,CAACpb,CAAD,EAAI,CAACid,WAAD,EAAcmD,kBAAd,CAAJ,CAAZ;EACD;EAED,IAAME,4BAA4B,GAAG7F,cAAc,CAAC2B,WAAD,EAAcE,qBAAd,CAAnD;EACA,IAAMiE,oBAAoB,GAAG9F,cAAc,CAAC4B,YAAD,CAA3C;EAEA,IAAMmE,+BAA+B,GAAG1F,iBAAiB,CACvD6B,cADuD,EAEvDE,gBAFuD,EAGvDG,eAHuD,CAAzD;EAMO,SAASyD,QAAT,CAAkBzgB,CAAlB,EAAqB;EAC1B,SAAOob,KAAK,CACVpb,CADU,EAEV,CAACsgB,4BAAD,EAA+BV,0BAA/B,CAFU,EAGV,CAACW,oBAAD,EAAuBC,+BAAvB,CAHU,CAAZ;EAKD;;EC9TD,IAAME,SAAO,GAAG,kBAAhB;;EAGO,IAAMC,cAAc,GAAG;EAC1BvV,EAAAA,KAAK,EAAE;EACLC,IAAAA,IAAI,EAAE,CADD;EAELjC,IAAAA,KAAK,EAAE,IAAI,EAFN;EAGLE,IAAAA,OAAO,EAAE,IAAI,EAAJ,GAAS,EAHb;EAILgC,IAAAA,OAAO,EAAE,IAAI,EAAJ,GAAS,EAAT,GAAc,EAJlB;EAKLsR,IAAAA,YAAY,EAAE,IAAI,EAAJ,GAAS,EAAT,GAAc,EAAd,GAAmB;EAL5B,GADmB;EAQ1BvR,EAAAA,IAAI,EAAE;EACJjC,IAAAA,KAAK,EAAE,EADH;EAEJE,IAAAA,OAAO,EAAE,KAAK,EAFV;EAGJgC,IAAAA,OAAO,EAAE,KAAK,EAAL,GAAU,EAHf;EAIJsR,IAAAA,YAAY,EAAE,KAAK,EAAL,GAAU,EAAV,GAAe;EAJzB,GARoB;EAc1BxT,EAAAA,KAAK,EAAE;EAAEE,IAAAA,OAAO,EAAE,EAAX;EAAegC,IAAAA,OAAO,EAAE,KAAK,EAA7B;EAAiCsR,IAAAA,YAAY,EAAE,KAAK,EAAL,GAAU;EAAzD,GAdmB;EAe1BtT,EAAAA,OAAO,EAAE;EAAEgC,IAAAA,OAAO,EAAE,EAAX;EAAesR,IAAAA,YAAY,EAAE,KAAK;EAAlC,GAfiB;EAgB1BtR,EAAAA,OAAO,EAAE;EAAEsR,IAAAA,YAAY,EAAE;EAAhB;EAhBiB,CAAvB;EAAA,IAkBLgE,YAAY;EACV1V,EAAAA,KAAK,EAAE;EACLC,IAAAA,QAAQ,EAAE,CADL;EAELrB,IAAAA,MAAM,EAAE,EAFH;EAGLsB,IAAAA,KAAK,EAAE,EAHF;EAILC,IAAAA,IAAI,EAAE,GAJD;EAKLjC,IAAAA,KAAK,EAAE,MAAM,EALR;EAMLE,IAAAA,OAAO,EAAE,MAAM,EAAN,GAAW,EANf;EAOLgC,IAAAA,OAAO,EAAE,MAAM,EAAN,GAAW,EAAX,GAAgB,EAPpB;EAQLsR,IAAAA,YAAY,EAAE,MAAM,EAAN,GAAW,EAAX,GAAgB,EAAhB,GAAqB;EAR9B,GADG;EAWVzR,EAAAA,QAAQ,EAAE;EACRrB,IAAAA,MAAM,EAAE,CADA;EAERsB,IAAAA,KAAK,EAAE,EAFC;EAGRC,IAAAA,IAAI,EAAE,EAHE;EAIRjC,IAAAA,KAAK,EAAE,KAAK,EAJJ;EAKRE,IAAAA,OAAO,EAAE,KAAK,EAAL,GAAU,EALX;EAMRgC,IAAAA,OAAO,EAAE,KAAK,EAAL,GAAU,EAAV,GAAe,EANhB;EAORsR,IAAAA,YAAY,EAAE,KAAK,EAAL,GAAU,EAAV,GAAe,EAAf,GAAoB;EAP1B,GAXA;EAoBV9S,EAAAA,MAAM,EAAE;EACNsB,IAAAA,KAAK,EAAE,CADD;EAENC,IAAAA,IAAI,EAAE,EAFA;EAGNjC,IAAAA,KAAK,EAAE,KAAK,EAHN;EAINE,IAAAA,OAAO,EAAE,KAAK,EAAL,GAAU,EAJb;EAKNgC,IAAAA,OAAO,EAAE,KAAK,EAAL,GAAU,EAAV,GAAe,EALlB;EAMNsR,IAAAA,YAAY,EAAE,KAAK,EAAL,GAAU,EAAV,GAAe,EAAf,GAAoB;EAN5B;EApBE,GA6BP+D,cA7BO,CAlBP;EAAA,IAiDLE,kBAAkB,GAAG,WAAW,GAjD3B;EAAA,IAkDLC,mBAAmB,GAAG,WAAW,IAlD5B;EAAA,IAmDLC,cAAc;EACZ7V,EAAAA,KAAK,EAAE;EACLC,IAAAA,QAAQ,EAAE,CADL;EAELrB,IAAAA,MAAM,EAAE,EAFH;EAGLsB,IAAAA,KAAK,EAAEyV,kBAAkB,GAAG,CAHvB;EAILxV,IAAAA,IAAI,EAAEwV,kBAJD;EAKLzX,IAAAA,KAAK,EAAEyX,kBAAkB,GAAG,EALvB;EAMLvX,IAAAA,OAAO,EAAEuX,kBAAkB,GAAG,EAArB,GAA0B,EAN9B;EAOLvV,IAAAA,OAAO,EAAEuV,kBAAkB,GAAG,EAArB,GAA0B,EAA1B,GAA+B,EAPnC;EAQLjE,IAAAA,YAAY,EAAEiE,kBAAkB,GAAG,EAArB,GAA0B,EAA1B,GAA+B,EAA/B,GAAoC;EAR7C,GADK;EAWZ1V,EAAAA,QAAQ,EAAE;EACRrB,IAAAA,MAAM,EAAE,CADA;EAERsB,IAAAA,KAAK,EAAEyV,kBAAkB,GAAG,EAFpB;EAGRxV,IAAAA,IAAI,EAAEwV,kBAAkB,GAAG,CAHnB;EAIRzX,IAAAA,KAAK,EAAGyX,kBAAkB,GAAG,EAAtB,GAA4B,CAJ3B;EAKRvX,IAAAA,OAAO,EAAGuX,kBAAkB,GAAG,EAArB,GAA0B,EAA3B,GAAiC,CALlC;EAMRvV,IAAAA,OAAO,EAAGuV,kBAAkB,GAAG,EAArB,GAA0B,EAA1B,GAA+B,EAAhC,GAAsC,CANvC;EAORjE,IAAAA,YAAY,EAAGiE,kBAAkB,GAAG,EAArB,GAA0B,EAA1B,GAA+B,EAA/B,GAAoC,IAArC,GAA6C;EAPnD,GAXE;EAoBZ/W,EAAAA,MAAM,EAAE;EACNsB,IAAAA,KAAK,EAAE0V,mBAAmB,GAAG,CADvB;EAENzV,IAAAA,IAAI,EAAEyV,mBAFA;EAGN1X,IAAAA,KAAK,EAAE0X,mBAAmB,GAAG,EAHvB;EAINxX,IAAAA,OAAO,EAAEwX,mBAAmB,GAAG,EAAtB,GAA2B,EAJ9B;EAKNxV,IAAAA,OAAO,EAAEwV,mBAAmB,GAAG,EAAtB,GAA2B,EAA3B,GAAgC,EALnC;EAMNlE,IAAAA,YAAY,EAAEkE,mBAAmB,GAAG,EAAtB,GAA2B,EAA3B,GAAgC,EAAhC,GAAqC;EAN7C;EApBI,GA4BTH,cA5BS,CAnDT;;EAmFP,IAAMK,cAAY,GAAG,CACnB,OADmB,EAEnB,UAFmB,EAGnB,QAHmB,EAInB,OAJmB,EAKnB,MALmB,EAMnB,OANmB,EAOnB,SAPmB,EAQnB,SARmB,EASnB,cATmB,CAArB;EAYA,IAAMC,YAAY,GAAGD,cAAY,CAAC1Q,KAAb,CAAmB,CAAnB,EAAsB4Q,OAAtB,EAArB;;EAGA,SAASrH,OAAT,CAAelJ,GAAf,EAAoBmJ,IAApB,EAA0BqH,KAA1B,EAAyC;EAAA,MAAfA,KAAe;EAAfA,IAAAA,KAAe,GAAP,KAAO;EAAA;;EACvC;EACA,MAAMC,IAAI,GAAG;EACXC,IAAAA,MAAM,EAAEF,KAAK,GAAGrH,IAAI,CAACuH,MAAR,gBAAsB1Q,GAAG,CAAC0Q,MAA1B,EAAsCvH,IAAI,CAACuH,MAAL,IAAe,EAArD,CADF;EAEX9S,IAAAA,GAAG,EAAEoC,GAAG,CAACpC,GAAJ,CAAQsL,KAAR,CAAcC,IAAI,CAACvL,GAAnB,CAFM;EAGX+S,IAAAA,kBAAkB,EAAExH,IAAI,CAACwH,kBAAL,IAA2B3Q,GAAG,CAAC2Q;EAHxC,GAAb;EAKA,SAAO,IAAIC,QAAJ,CAAaH,IAAb,CAAP;EACD;;EAED,SAASI,SAAT,CAAmBzhB,CAAnB,EAAsB;EACpB,SAAOA,CAAC,GAAG,CAAJ,GAAQ0E,IAAI,CAACC,KAAL,CAAW3E,CAAX,CAAR,GAAwB0E,IAAI,CAACgd,IAAL,CAAU1hB,CAAV,CAA/B;EACD;;;EAGD,SAAS2hB,OAAT,CAAiBC,MAAjB,EAAyBC,OAAzB,EAAkCC,QAAlC,EAA4CC,KAA5C,EAAmDC,MAAnD,EAA2D;EACzD,MAAMC,IAAI,GAAGL,MAAM,CAACI,MAAD,CAAN,CAAeF,QAAf,CAAb;EAAA,MACEI,GAAG,GAAGL,OAAO,CAACC,QAAD,CAAP,GAAoBG,IAD5B;EAAA,MAEEE,QAAQ,GAAGzd,IAAI,CAAC8E,IAAL,CAAU0Y,GAAV,MAAmBxd,IAAI,CAAC8E,IAAL,CAAUuY,KAAK,CAACC,MAAD,CAAf,CAFhC;EAAA;EAIEI,EAAAA,KAAK,GACH,CAACD,QAAD,IAAaJ,KAAK,CAACC,MAAD,CAAL,KAAkB,CAA/B,IAAoCtd,IAAI,CAAC4E,GAAL,CAAS4Y,GAAT,KAAiB,CAArD,GAAyDT,SAAS,CAACS,GAAD,CAAlE,GAA0Exd,IAAI,CAACoB,KAAL,CAAWoc,GAAX,CAL9E;EAMAH,EAAAA,KAAK,CAACC,MAAD,CAAL,IAAiBI,KAAjB;EACAP,EAAAA,OAAO,CAACC,QAAD,CAAP,IAAqBM,KAAK,GAAGH,IAA7B;EACD;;;EAGD,SAASI,eAAT,CAAyBT,MAAzB,EAAiCU,IAAjC,EAAuC;EACrCpB,EAAAA,YAAY,CAACxd,MAAb,CAAoB,UAAC6e,QAAD,EAAWvU,OAAX,EAAuB;EACzC,QAAI,CAAC9L,WAAW,CAACogB,IAAI,CAACtU,OAAD,CAAL,CAAhB,EAAiC;EAC/B,UAAIuU,QAAJ,EAAc;EACZZ,QAAAA,OAAO,CAACC,MAAD,EAASU,IAAT,EAAeC,QAAf,EAAyBD,IAAzB,EAA+BtU,OAA/B,CAAP;EACD;;EACD,aAAOA,OAAP;EACD,KALD,MAKO;EACL,aAAOuU,QAAP;EACD;EACF,GATD,EASG,IATH;EAUD;EAED;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;MACqBf;EACnB;EACF;EACA;EACE,oBAAYgB,MAAZ,EAAoB;EAClB,QAAMC,QAAQ,GAAGD,MAAM,CAACjB,kBAAP,KAA8B,UAA9B,IAA4C,KAA7D;EACA;EACJ;EACA;;EACI,SAAKD,MAAL,GAAckB,MAAM,CAAClB,MAArB;EACA;EACJ;EACA;;EACI,SAAK9S,GAAL,GAAWgU,MAAM,CAAChU,GAAP,IAAc2G,MAAM,CAACvH,MAAP,EAAzB;EACA;EACJ;EACA;;EACI,SAAK2T,kBAAL,GAA0BkB,QAAQ,GAAG,UAAH,GAAgB,QAAlD;EACA;EACJ;EACA;;EACI,SAAKC,OAAL,GAAeF,MAAM,CAACE,OAAP,IAAkB,IAAjC;EACA;EACJ;EACA;;EACI,SAAKd,MAAL,GAAca,QAAQ,GAAGzB,cAAH,GAAoBH,YAA1C;EACA;EACJ;EACA;;EACI,SAAK8B,eAAL,GAAuB,IAAvB;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;aACSrK,aAAP,oBAAkBvN,KAAlB,EAAyB8C,IAAzB,EAA+B;EAC7B,WAAO2T,QAAQ,CAACtI,UAAT,CAAoB;EAAE2D,MAAAA,YAAY,EAAE9R;EAAhB,KAApB,EAA6C8C,IAA7C,CAAP;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;aACSqL,aAAP,oBAAkBnV,GAAlB,EAAuB8J,IAAvB,EAAkC;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EAChC,QAAI9J,GAAG,IAAI,IAAP,IAAe,OAAOA,GAAP,KAAe,QAAlC,EAA4C;EAC1C,YAAM,IAAIjE,oBAAJ,mEAEFiE,GAAG,KAAK,IAAR,GAAe,MAAf,GAAwB,OAAOA,GAF7B,EAAN;EAKD;;EAED,WAAO,IAAIyd,QAAJ,CAAa;EAClBF,MAAAA,MAAM,EAAEzY,eAAe,CAAC9E,GAAD,EAAMyd,QAAQ,CAACoB,aAAf,CADL;EAElBpU,MAAAA,GAAG,EAAE2G,MAAM,CAAC+D,UAAP,CAAkBrL,IAAlB,CAFa;EAGlB0T,MAAAA,kBAAkB,EAAE1T,IAAI,CAAC0T;EAHP,KAAb,CAAP;EAKD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;aACSsB,mBAAP,0BAAwBC,YAAxB,EAAsC;EACpC,QAAI1gB,QAAQ,CAAC0gB,YAAD,CAAZ,EAA4B;EAC1B,aAAOtB,QAAQ,CAAClJ,UAAT,CAAoBwK,YAApB,CAAP;EACD,KAFD,MAEO,IAAItB,QAAQ,CAACuB,UAAT,CAAoBD,YAApB,CAAJ,EAAuC;EAC5C,aAAOA,YAAP;EACD,KAFM,MAEA,IAAI,OAAOA,YAAP,KAAwB,QAA5B,EAAsC;EAC3C,aAAOtB,QAAQ,CAACtI,UAAT,CAAoB4J,YAApB,CAAP;EACD,KAFM,MAEA;EACL,YAAM,IAAIhjB,oBAAJ,gCACyBgjB,YADzB,iBACiD,OAAOA,YADxD,CAAN;EAGD;EACF;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;aACSE,UAAP,iBAAeC,IAAf,EAAqBpV,IAArB,EAA2B;EACzB,4BAAiBuS,gBAAgB,CAAC6C,IAAD,CAAjC;EAAA,QAAOvb,MAAP;;EACA,QAAIA,MAAJ,EAAY;EACV,aAAO8Z,QAAQ,CAACtI,UAAT,CAAoBxR,MAApB,EAA4BmG,IAA5B,CAAP;EACD,KAFD,MAEO;EACL,aAAO2T,QAAQ,CAACkB,OAAT,CAAiB,YAAjB,mBAA6CO,IAA7C,oCAAP;EACD;EACF;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;aACSC,cAAP,qBAAmBD,IAAnB,EAAyBpV,IAAzB,EAA+B;EAC7B,4BAAiByS,gBAAgB,CAAC2C,IAAD,CAAjC;EAAA,QAAOvb,MAAP;;EACA,QAAIA,MAAJ,EAAY;EACV,aAAO8Z,QAAQ,CAACtI,UAAT,CAAoBxR,MAApB,EAA4BmG,IAA5B,CAAP;EACD,KAFD,MAEO;EACL,aAAO2T,QAAQ,CAACkB,OAAT,CAAiB,YAAjB,mBAA6CO,IAA7C,oCAAP;EACD;EACF;EAED;EACF;EACA;EACA;EACA;EACA;;;aACSP,UAAP,iBAAenjB,MAAf,EAAuBmS,WAAvB,EAA2C;EAAA,QAApBA,WAAoB;EAApBA,MAAAA,WAAoB,GAAN,IAAM;EAAA;;EACzC,QAAI,CAACnS,MAAL,EAAa;EACX,YAAM,IAAIO,oBAAJ,CAAyB,kDAAzB,CAAN;EACD;;EAED,QAAM4iB,OAAO,GAAGnjB,MAAM,YAAYkS,OAAlB,GAA4BlS,MAA5B,GAAqC,IAAIkS,OAAJ,CAAYlS,MAAZ,EAAoBmS,WAApB,CAArD;;EAEA,QAAIuD,QAAQ,CAACD,cAAb,EAA6B;EAC3B,YAAM,IAAItV,oBAAJ,CAAyBgjB,OAAzB,CAAN;EACD,KAFD,MAEO;EACL,aAAO,IAAIlB,QAAJ,CAAa;EAAEkB,QAAAA,OAAO,EAAPA;EAAF,OAAb,CAAP;EACD;EACF;EAED;EACF;EACA;;;aACSE,gBAAP,uBAAqB/iB,IAArB,EAA2B;EACzB,QAAMkJ,UAAU,GAAG;EACjB3I,MAAAA,IAAI,EAAE,OADW;EAEjB+K,MAAAA,KAAK,EAAE,OAFU;EAGjBuF,MAAAA,OAAO,EAAE,UAHQ;EAIjBtF,MAAAA,QAAQ,EAAE,UAJO;EAKjB/K,MAAAA,KAAK,EAAE,QALU;EAMjB0J,MAAAA,MAAM,EAAE,QANS;EAOjBoZ,MAAAA,IAAI,EAAE,OAPW;EAQjB9X,MAAAA,KAAK,EAAE,OARU;EASjB/K,MAAAA,GAAG,EAAE,MATY;EAUjBgL,MAAAA,IAAI,EAAE,MAVW;EAWjBzK,MAAAA,IAAI,EAAE,OAXW;EAYjBwI,MAAAA,KAAK,EAAE,OAZU;EAajBvI,MAAAA,MAAM,EAAE,SAbS;EAcjByI,MAAAA,OAAO,EAAE,SAdQ;EAejBvI,MAAAA,MAAM,EAAE,SAfS;EAgBjBuK,MAAAA,OAAO,EAAE,SAhBQ;EAiBjB9E,MAAAA,WAAW,EAAE,cAjBI;EAkBjBoW,MAAAA,YAAY,EAAE;EAlBG,MAmBjBhd,IAAI,GAAGA,IAAI,CAACmI,WAAL,EAAH,GAAwBnI,IAnBX,CAAnB;EAqBA,QAAI,CAACkJ,UAAL,EAAiB,MAAM,IAAInJ,gBAAJ,CAAqBC,IAArB,CAAN;EAEjB,WAAOkJ,UAAP;EACD;EAED;EACF;EACA;EACA;EACA;;;aACSga,aAAP,oBAAkB5gB,CAAlB,EAAqB;EACnB,WAAQA,CAAC,IAAIA,CAAC,CAACwgB,eAAR,IAA4B,KAAnC;EACD;EAED;EACF;EACA;EACA;;;;;EAcE;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;WACES,WAAA,kBAASrV,GAAT,EAAcF,IAAd,EAAyB;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EACvB;EACA,QAAMwV,OAAO,gBACRxV,IADQ;EAEXlJ,MAAAA,KAAK,EAAEkJ,IAAI,CAAC9H,KAAL,KAAe,KAAf,IAAwB8H,IAAI,CAAClJ,KAAL,KAAe;EAFnC,MAAb;;EAIA,WAAO,KAAKmL,OAAL,GACHnC,SAAS,CAACC,MAAV,CAAiB,KAAKY,GAAtB,EAA2B6U,OAA3B,EAAoC1S,wBAApC,CAA6D,IAA7D,EAAmE5C,GAAnE,CADG,GAEH4S,SAFJ;EAGD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;WACE2C,UAAA,iBAAQzV,IAAR,EAAmB;EAAA;;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EACjB,QAAM3N,CAAC,GAAG+gB,cAAY,CACnB1P,GADO,CACH,UAAC1R,IAAD,EAAU;EACb,UAAMwM,GAAG,GAAG,KAAI,CAACiV,MAAL,CAAYzhB,IAAZ,CAAZ;;EACA,UAAIqC,WAAW,CAACmK,GAAD,CAAf,EAAsB;EACpB,eAAO,IAAP;EACD;;EACD,aAAO,KAAI,CAACmC,GAAL,CACJa,eADI;EACcqJ,QAAAA,KAAK,EAAE,MADrB;EAC6B6K,QAAAA,WAAW,EAAE;EAD1C,SACqD1V,IADrD;EAC2DhO,QAAAA,IAAI,EAAEA,IAAI,CAAC0Q,KAAL,CAAW,CAAX,EAAc,CAAC,CAAf;EADjE,UAEJnH,MAFI,CAEGiD,GAFH,CAAP;EAGD,KATO,EAUPmF,MAVO,CAUA,UAACxR,CAAD;EAAA,aAAOA,CAAP;EAAA,KAVA,CAAV;EAYA,WAAO,KAAKwO,GAAL,CACJgM,aADI;EACYzS,MAAAA,IAAI,EAAE,aADlB;EACiC2Q,MAAAA,KAAK,EAAE7K,IAAI,CAAC2V,SAAL,IAAkB;EAD1D,OACuE3V,IADvE,GAEJzE,MAFI,CAEGlJ,CAFH,CAAP;EAGD;EAED;EACF;EACA;EACA;EACA;;;WACEujB,WAAA,oBAAW;EACT,QAAI,CAAC,KAAK3T,OAAV,EAAmB,OAAO,EAAP;EACnB,wBAAY,KAAKwR,MAAjB;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;WACEoC,QAAA,iBAAQ;EACN;EACA,QAAI,CAAC,KAAK5T,OAAV,EAAmB,OAAO,IAAP;EAEnB,QAAI7P,CAAC,GAAG,GAAR;EACA,QAAI,KAAKkL,KAAL,KAAe,CAAnB,EAAsBlL,CAAC,IAAI,KAAKkL,KAAL,GAAa,GAAlB;EACtB,QAAI,KAAKpB,MAAL,KAAgB,CAAhB,IAAqB,KAAKqB,QAAL,KAAkB,CAA3C,EAA8CnL,CAAC,IAAI,KAAK8J,MAAL,GAAc,KAAKqB,QAAL,GAAgB,CAA9B,GAAkC,GAAvC;EAC9C,QAAI,KAAKC,KAAL,KAAe,CAAnB,EAAsBpL,CAAC,IAAI,KAAKoL,KAAL,GAAa,GAAlB;EACtB,QAAI,KAAKC,IAAL,KAAc,CAAlB,EAAqBrL,CAAC,IAAI,KAAKqL,IAAL,GAAY,GAAjB;EACrB,QAAI,KAAKjC,KAAL,KAAe,CAAf,IAAoB,KAAKE,OAAL,KAAiB,CAArC,IAA0C,KAAKgC,OAAL,KAAiB,CAA3D,IAAgE,KAAKsR,YAAL,KAAsB,CAA1F,EACE5c,CAAC,IAAI,GAAL;EACF,QAAI,KAAKoJ,KAAL,KAAe,CAAnB,EAAsBpJ,CAAC,IAAI,KAAKoJ,KAAL,GAAa,GAAlB;EACtB,QAAI,KAAKE,OAAL,KAAiB,CAArB,EAAwBtJ,CAAC,IAAI,KAAKsJ,OAAL,GAAe,GAApB;EACxB,QAAI,KAAKgC,OAAL,KAAiB,CAAjB,IAAsB,KAAKsR,YAAL,KAAsB,CAAhD;EAEE;EACA5c,MAAAA,CAAC,IAAIuF,OAAO,CAAC,KAAK+F,OAAL,GAAe,KAAKsR,YAAL,GAAoB,IAApC,EAA0C,CAA1C,CAAP,GAAsD,GAA3D;EACF,QAAI5c,CAAC,KAAK,GAAV,EAAeA,CAAC,IAAI,KAAL;EACf,WAAOA,CAAP;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;WACE0jB,YAAA,mBAAU9V,IAAV,EAAqB;EAAA,QAAXA,IAAW;EAAXA,MAAAA,IAAW,GAAJ,EAAI;EAAA;;EACnB,QAAI,CAAC,KAAKiC,OAAV,EAAmB,OAAO,IAAP;EAEnB,QAAM8T,MAAM,GAAG,KAAKC,QAAL,EAAf;EACA,QAAID,MAAM,GAAG,CAAT,IAAcA,MAAM,IAAI,QAA5B,EAAsC,OAAO,IAAP;EAEtC/V,IAAAA,IAAI;EACFiW,MAAAA,oBAAoB,EAAE,KADpB;EAEFC,MAAAA,eAAe,EAAE,KAFf;EAGFC,MAAAA,aAAa,EAAE,KAHb;EAIF5a,MAAAA,MAAM,EAAE;EAJN,OAKCyE,IALD,CAAJ;EAQA,QAAM5F,KAAK,GAAG,KAAKqJ,OAAL,CAAa,OAAb,EAAsB,SAAtB,EAAiC,SAAjC,EAA4C,cAA5C,CAAd;EAEA,QAAIvD,GAAG,GAAGF,IAAI,CAACzE,MAAL,KAAgB,OAAhB,GAA0B,MAA1B,GAAmC,OAA7C;;EAEA,QAAI,CAACyE,IAAI,CAACkW,eAAN,IAAyB9b,KAAK,CAACsD,OAAN,KAAkB,CAA3C,IAAgDtD,KAAK,CAAC4U,YAAN,KAAuB,CAA3E,EAA8E;EAC5E9O,MAAAA,GAAG,IAAIF,IAAI,CAACzE,MAAL,KAAgB,OAAhB,GAA0B,IAA1B,GAAiC,KAAxC;;EACA,UAAI,CAACyE,IAAI,CAACiW,oBAAN,IAA8B7b,KAAK,CAAC4U,YAAN,KAAuB,CAAzD,EAA4D;EAC1D9O,QAAAA,GAAG,IAAI,MAAP;EACD;EACF;;EAED,QAAIkW,GAAG,GAAGhc,KAAK,CAACmb,QAAN,CAAerV,GAAf,CAAV;;EAEA,QAAIF,IAAI,CAACmW,aAAT,EAAwB;EACtBC,MAAAA,GAAG,GAAG,MAAMA,GAAZ;EACD;;EAED,WAAOA,GAAP;EACD;EAED;EACF;EACA;EACA;;;WACEC,SAAA,kBAAS;EACP,WAAO,KAAKR,KAAL,EAAP;EACD;EAED;EACF;EACA;EACA;;;WACEhhB,WAAA,oBAAW;EACT,WAAO,KAAKghB,KAAL,EAAP;EACD;EAED;EACF;EACA;EACA;;;WACEG,WAAA,oBAAW;EACT,WAAO,KAAKM,EAAL,CAAQ,cAAR,CAAP;EACD;EAED;EACF;EACA;EACA;;;WACEC,UAAA,mBAAU;EACR,WAAO,KAAKP,QAAL,EAAP;EACD;EAED;EACF;EACA;EACA;EACA;;;WACEQ,OAAA,cAAKC,QAAL,EAAe;EACb,QAAI,CAAC,KAAKxU,OAAV,EAAmB,OAAO,IAAP;EAEnB,QAAMc,GAAG,GAAG4Q,QAAQ,CAACqB,gBAAT,CAA0ByB,QAA1B,CAAZ;EAAA,QACEzF,MAAM,GAAG,EADX;;EAGA,yDAAgBoC,cAAhB,wCAA8B;EAAA,UAAnB/c,CAAmB;;EAC5B,UAAIC,cAAc,CAACyM,GAAG,CAAC0Q,MAAL,EAAapd,CAAb,CAAd,IAAiCC,cAAc,CAAC,KAAKmd,MAAN,EAAcpd,CAAd,CAAnD,EAAqE;EACnE2a,QAAAA,MAAM,CAAC3a,CAAD,CAAN,GAAY0M,GAAG,CAACI,GAAJ,CAAQ9M,CAAR,IAAa,KAAK8M,GAAL,CAAS9M,CAAT,CAAzB;EACD;EACF;;EAED,WAAO4V,OAAK,CAAC,IAAD,EAAO;EAAEwH,MAAAA,MAAM,EAAEzC;EAAV,KAAP,EAA2B,IAA3B,CAAZ;EACD;EAED;EACF;EACA;EACA;EACA;;;WACE0F,QAAA,eAAMD,QAAN,EAAgB;EACd,QAAI,CAAC,KAAKxU,OAAV,EAAmB,OAAO,IAAP;EAEnB,QAAMc,GAAG,GAAG4Q,QAAQ,CAACqB,gBAAT,CAA0ByB,QAA1B,CAAZ;EACA,WAAO,KAAKD,IAAL,CAAUzT,GAAG,CAAC4T,MAAJ,EAAV,CAAP;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;;;WACEC,WAAA,kBAASC,EAAT,EAAa;EACX,QAAI,CAAC,KAAK5U,OAAV,EAAmB,OAAO,IAAP;EACnB,QAAM+O,MAAM,GAAG,EAAf;;EACA,oCAAgBrc,MAAM,CAACwB,IAAP,CAAY,KAAKsd,MAAjB,CAAhB,kCAA0C;EAArC,UAAMpd,CAAC,mBAAP;EACH2a,MAAAA,MAAM,CAAC3a,CAAD,CAAN,GAAYyE,QAAQ,CAAC+b,EAAE,CAAC,KAAKpD,MAAL,CAAYpd,CAAZ,CAAD,EAAiBA,CAAjB,CAAH,CAApB;EACD;;EACD,WAAO4V,OAAK,CAAC,IAAD,EAAO;EAAEwH,MAAAA,MAAM,EAAEzC;EAAV,KAAP,EAA2B,IAA3B,CAAZ;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;;;WACE7N,MAAA,aAAInR,IAAJ,EAAU;EACR,WAAO,KAAK2hB,QAAQ,CAACoB,aAAT,CAAuB/iB,IAAvB,CAAL,CAAP;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;;;WACE8kB,MAAA,aAAIrD,MAAJ,EAAY;EACV,QAAI,CAAC,KAAKxR,OAAV,EAAmB,OAAO,IAAP;;EAEnB,QAAM8U,KAAK,gBAAQ,KAAKtD,MAAb,EAAwBzY,eAAe,CAACyY,MAAD,EAASE,QAAQ,CAACoB,aAAlB,CAAvC,CAAX;;EACA,WAAO9I,OAAK,CAAC,IAAD,EAAO;EAAEwH,MAAAA,MAAM,EAAEsD;EAAV,KAAP,CAAZ;EACD;EAED;EACF;EACA;EACA;EACA;;;WACEC,cAAA,4BAAkE;EAAA,kCAAJ,EAAI;EAAA,QAApDxd,MAAoD,QAApDA,MAAoD;EAAA,QAA5C+N,eAA4C,QAA5CA,eAA4C;EAAA,QAA3BmM,kBAA2B,QAA3BA,kBAA2B;;EAChE,QAAM/S,GAAG,GAAG,KAAKA,GAAL,CAASsL,KAAT,CAAe;EAAEzS,MAAAA,MAAM,EAANA,MAAF;EAAU+N,MAAAA,eAAe,EAAfA;EAAV,KAAf,CAAZ;EAAA,QACEvH,IAAI,GAAG;EAAEW,MAAAA,GAAG,EAAHA;EAAF,KADT;;EAGA,QAAI+S,kBAAJ,EAAwB;EACtB1T,MAAAA,IAAI,CAAC0T,kBAAL,GAA0BA,kBAA1B;EACD;;EAED,WAAOzH,OAAK,CAAC,IAAD,EAAOjM,IAAP,CAAZ;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;;;WACEsW,KAAA,YAAGtkB,IAAH,EAAS;EACP,WAAO,KAAKiQ,OAAL,GAAe,KAAKwB,OAAL,CAAazR,IAAb,EAAmBmR,GAAnB,CAAuBnR,IAAvB,CAAf,GAA8C8T,GAArD;EACD;EAED;EACF;EACA;EACA;EACA;EACA;;;WACEmR,YAAA,qBAAY;EACV,QAAI,CAAC,KAAKhV,OAAV,EAAmB,OAAO,IAAP;EACnB,QAAMwS,IAAI,GAAG,KAAKmB,QAAL,EAAb;EACApB,IAAAA,eAAe,CAAC,KAAKT,MAAN,EAAcU,IAAd,CAAf;EACA,WAAOxI,OAAK,CAAC,IAAD,EAAO;EAAEwH,MAAAA,MAAM,EAAEgB;EAAV,KAAP,EAAyB,IAAzB,CAAZ;EACD;EAED;EACF;EACA;EACA;EACA;;;WACEhR,UAAA,mBAAkB;EAAA,sCAAPpG,KAAO;EAAPA,MAAAA,KAAO;EAAA;;EAChB,QAAI,CAAC,KAAK4E,OAAV,EAAmB,OAAO,IAAP;;EAEnB,QAAI5E,KAAK,CAAC1H,MAAN,KAAiB,CAArB,EAAwB;EACtB,aAAO,IAAP;EACD;;EAED0H,IAAAA,KAAK,GAAGA,KAAK,CAACqG,GAAN,CAAU,UAACvI,CAAD;EAAA,aAAOwY,QAAQ,CAACoB,aAAT,CAAuB5Z,CAAvB,CAAP;EAAA,KAAV,CAAR;EAEA,QAAM+b,KAAK,GAAG,EAAd;EAAA,QACEC,WAAW,GAAG,EADhB;EAAA,QAEE1C,IAAI,GAAG,KAAKmB,QAAL,EAFT;EAGA,QAAIwB,QAAJ;;EAEA,0DAAgBhE,cAAhB,2CAA8B;EAAA,UAAnB/c,CAAmB;;EAC5B,UAAIgH,KAAK,CAACO,OAAN,CAAcvH,CAAd,KAAoB,CAAxB,EAA2B;EACzB+gB,QAAAA,QAAQ,GAAG/gB,CAAX;EAEA,YAAIghB,GAAG,GAAG,CAAV,CAHyB;;EAMzB,aAAK,IAAMC,EAAX,IAAiBH,WAAjB,EAA8B;EAC5BE,UAAAA,GAAG,IAAI,KAAKtD,MAAL,CAAYuD,EAAZ,EAAgBjhB,CAAhB,IAAqB8gB,WAAW,CAACG,EAAD,CAAvC;EACAH,UAAAA,WAAW,CAACG,EAAD,CAAX,GAAkB,CAAlB;EACD,SATwB;;;EAYzB,YAAI/iB,QAAQ,CAACkgB,IAAI,CAACpe,CAAD,CAAL,CAAZ,EAAuB;EACrBghB,UAAAA,GAAG,IAAI5C,IAAI,CAACpe,CAAD,CAAX;EACD;;EAED,YAAMiK,CAAC,GAAGzJ,IAAI,CAACoB,KAAL,CAAWof,GAAX,CAAV;EACAH,QAAAA,KAAK,CAAC7gB,CAAD,CAAL,GAAWiK,CAAX;EACA6W,QAAAA,WAAW,CAAC9gB,CAAD,CAAX,GAAiB,CAACghB,GAAG,GAAG,IAAN,GAAa/W,CAAC,GAAG,IAAlB,IAA0B,IAA3C,CAlByB;;EAqBzB,aAAK,IAAMiX,IAAX,IAAmB9C,IAAnB,EAAyB;EACvB,cAAIrB,cAAY,CAACxV,OAAb,CAAqB2Z,IAArB,IAA6BnE,cAAY,CAACxV,OAAb,CAAqBvH,CAArB,CAAjC,EAA0D;EACxDyd,YAAAA,OAAO,CAAC,KAAKC,MAAN,EAAcU,IAAd,EAAoB8C,IAApB,EAA0BL,KAA1B,EAAiC7gB,CAAjC,CAAP;EACD;EACF,SAzBwB;;EA2B1B,OA3BD,MA2BO,IAAI9B,QAAQ,CAACkgB,IAAI,CAACpe,CAAD,CAAL,CAAZ,EAAuB;EAC5B8gB,QAAAA,WAAW,CAAC9gB,CAAD,CAAX,GAAiBoe,IAAI,CAACpe,CAAD,CAArB;EACD;EACF,KA7Ce;EAgDhB;;;EACA,SAAK,IAAMsR,GAAX,IAAkBwP,WAAlB,EAA+B;EAC7B,UAAIA,WAAW,CAACxP,GAAD,CAAX,KAAqB,CAAzB,EAA4B;EAC1BuP,QAAAA,KAAK,CAACE,QAAD,CAAL,IACEzP,GAAG,KAAKyP,QAAR,GAAmBD,WAAW,CAACxP,GAAD,CAA9B,GAAsCwP,WAAW,CAACxP,GAAD,CAAX,GAAmB,KAAKoM,MAAL,CAAYqD,QAAZ,EAAsBzP,GAAtB,CAD3D;EAED;EACF;;EAED,WAAOsE,OAAK,CAAC,IAAD,EAAO;EAAEwH,MAAAA,MAAM,EAAEyD;EAAV,KAAP,EAA0B,IAA1B,CAAL,CAAqCD,SAArC,EAAP;EACD;EAED;EACF;EACA;EACA;EACA;;;WACEN,SAAA,kBAAS;EACP,QAAI,CAAC,KAAK1U,OAAV,EAAmB,OAAO,IAAP;EACnB,QAAMuV,OAAO,GAAG,EAAhB;;EACA,sCAAgB7iB,MAAM,CAACwB,IAAP,CAAY,KAAKsd,MAAjB,CAAhB,qCAA0C;EAArC,UAAMpd,CAAC,qBAAP;EACHmhB,MAAAA,OAAO,CAACnhB,CAAD,CAAP,GAAa,KAAKod,MAAL,CAAYpd,CAAZ,MAAmB,CAAnB,GAAuB,CAAvB,GAA2B,CAAC,KAAKod,MAAL,CAAYpd,CAAZ,CAAzC;EACD;;EACD,WAAO4V,OAAK,CAAC,IAAD,EAAO;EAAEwH,MAAAA,MAAM,EAAE+D;EAAV,KAAP,EAA4B,IAA5B,CAAZ;EACD;EAED;EACF;EACA;EACA;;;EA8FE;EACF;EACA;EACA;EACA;EACA;WACEzT,SAAA,gBAAO6I,KAAP,EAAc;EACZ,QAAI,CAAC,KAAK3K,OAAN,IAAiB,CAAC2K,KAAK,CAAC3K,OAA5B,EAAqC;EACnC,aAAO,KAAP;EACD;;EAED,QAAI,CAAC,KAAKtB,GAAL,CAASoD,MAAT,CAAgB6I,KAAK,CAACjM,GAAtB,CAAL,EAAiC;EAC/B,aAAO,KAAP;EACD;;EAED,aAAS8W,EAAT,CAAYC,EAAZ,EAAgBC,EAAhB,EAAoB;EAClB;EACA,UAAID,EAAE,KAAK9hB,SAAP,IAAoB8hB,EAAE,KAAK,CAA/B,EAAkC,OAAOC,EAAE,KAAK/hB,SAAP,IAAoB+hB,EAAE,KAAK,CAAlC;EAClC,aAAOD,EAAE,KAAKC,EAAd;EACD;;EAED,0DAAgBvE,cAAhB,2CAA8B;EAAA,UAAnBjY,CAAmB;;EAC5B,UAAI,CAACsc,EAAE,CAAC,KAAKhE,MAAL,CAAYtY,CAAZ,CAAD,EAAiByR,KAAK,CAAC6G,MAAN,CAAatY,CAAb,CAAjB,CAAP,EAA0C;EACxC,eAAO,KAAP;EACD;EACF;;EACD,WAAO,IAAP;EACD;;;;WApgBD,eAAa;EACX,aAAO,KAAK8G,OAAL,GAAe,KAAKtB,GAAL,CAASnH,MAAxB,GAAiC,IAAxC;EACD;EAED;EACF;EACA;EACA;EACA;;;;WACE,eAAsB;EACpB,aAAO,KAAKyI,OAAL,GAAe,KAAKtB,GAAL,CAAS4G,eAAxB,GAA0C,IAAjD;EACD;;;WAiYD,eAAY;EACV,aAAO,KAAKtF,OAAL,GAAe,KAAKwR,MAAL,CAAYnW,KAAZ,IAAqB,CAApC,GAAwCwI,GAA/C;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAAe;EACb,aAAO,KAAK7D,OAAL,GAAe,KAAKwR,MAAL,CAAYlW,QAAZ,IAAwB,CAAvC,GAA2CuI,GAAlD;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAAa;EACX,aAAO,KAAK7D,OAAL,GAAe,KAAKwR,MAAL,CAAYvX,MAAZ,IAAsB,CAArC,GAAyC4J,GAAhD;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAAY;EACV,aAAO,KAAK7D,OAAL,GAAe,KAAKwR,MAAL,CAAYjW,KAAZ,IAAqB,CAApC,GAAwCsI,GAA/C;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAAW;EACT,aAAO,KAAK7D,OAAL,GAAe,KAAKwR,MAAL,CAAYhW,IAAZ,IAAoB,CAAnC,GAAuCqI,GAA9C;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAAY;EACV,aAAO,KAAK7D,OAAL,GAAe,KAAKwR,MAAL,CAAYjY,KAAZ,IAAqB,CAApC,GAAwCsK,GAA/C;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAAc;EACZ,aAAO,KAAK7D,OAAL,GAAe,KAAKwR,MAAL,CAAY/X,OAAZ,IAAuB,CAAtC,GAA0CoK,GAAjD;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAAc;EACZ,aAAO,KAAK7D,OAAL,GAAe,KAAKwR,MAAL,CAAY/V,OAAZ,IAAuB,CAAtC,GAA0CoI,GAAjD;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAAmB;EACjB,aAAO,KAAK7D,OAAL,GAAe,KAAKwR,MAAL,CAAYzE,YAAZ,IAA4B,CAA3C,GAA+ClJ,GAAtD;EACD;EAED;EACF;EACA;EACA;EACA;;;;WACE,eAAc;EACZ,aAAO,KAAK+O,OAAL,KAAiB,IAAxB;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAAoB;EAClB,aAAO,KAAKA,OAAL,GAAe,KAAKA,OAAL,CAAanjB,MAA5B,GAAqC,IAA5C;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAAyB;EACvB,aAAO,KAAKmjB,OAAL,GAAe,KAAKA,OAAL,CAAahR,WAA5B,GAA0C,IAAjD;EACD;;;;;;EC/1BH,IAAMiP,SAAO,GAAG,kBAAhB;;EAGA,SAAS8E,gBAAT,CAA0BC,KAA1B,EAAiCC,GAAjC,EAAsC;EACpC,MAAI,CAACD,KAAD,IAAU,CAACA,KAAK,CAAC5V,OAArB,EAA8B;EAC5B,WAAO8V,QAAQ,CAAClD,OAAT,CAAiB,0BAAjB,CAAP;EACD,GAFD,MAEO,IAAI,CAACiD,GAAD,IAAQ,CAACA,GAAG,CAAC7V,OAAjB,EAA0B;EAC/B,WAAO8V,QAAQ,CAAClD,OAAT,CAAiB,wBAAjB,CAAP;EACD,GAFM,MAEA,IAAIiD,GAAG,GAAGD,KAAV,EAAiB;EACtB,WAAOE,QAAQ,CAAClD,OAAT,CACL,kBADK,yEAEgEgD,KAAK,CAAChC,KAAN,EAFhE,iBAEyFiC,GAAG,CAACjC,KAAJ,EAFzF,CAAP;EAID,GALM,MAKA;EACL,WAAO,IAAP;EACD;EACF;EAED;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;MACqBkC;EACnB;EACF;EACA;EACE,oBAAYpD,MAAZ,EAAoB;EAClB;EACJ;EACA;EACI,SAAKviB,CAAL,GAASuiB,MAAM,CAACkD,KAAhB;EACA;EACJ;EACA;;EACI,SAAK3iB,CAAL,GAASyf,MAAM,CAACmD,GAAhB;EACA;EACJ;EACA;;EACI,SAAKjD,OAAL,GAAeF,MAAM,CAACE,OAAP,IAAkB,IAAjC;EACA;EACJ;EACA;;EACI,SAAKmD,eAAL,GAAuB,IAAvB;EACD;EAED;EACF;EACA;EACA;EACA;EACA;;;aACSnD,UAAP,iBAAenjB,MAAf,EAAuBmS,WAAvB,EAA2C;EAAA,QAApBA,WAAoB;EAApBA,MAAAA,WAAoB,GAAN,IAAM;EAAA;;EACzC,QAAI,CAACnS,MAAL,EAAa;EACX,YAAM,IAAIO,oBAAJ,CAAyB,kDAAzB,CAAN;EACD;;EAED,QAAM4iB,OAAO,GAAGnjB,MAAM,YAAYkS,OAAlB,GAA4BlS,MAA5B,GAAqC,IAAIkS,OAAJ,CAAYlS,MAAZ,EAAoBmS,WAApB,CAArD;;EAEA,QAAIuD,QAAQ,CAACD,cAAb,EAA6B;EAC3B,YAAM,IAAIvV,oBAAJ,CAAyBijB,OAAzB,CAAN;EACD,KAFD,MAEO;EACL,aAAO,IAAIkD,QAAJ,CAAa;EAAElD,QAAAA,OAAO,EAAPA;EAAF,OAAb,CAAP;EACD;EACF;EAED;EACF;EACA;EACA;EACA;EACA;;;aACSoD,gBAAP,uBAAqBJ,KAArB,EAA4BC,GAA5B,EAAiC;EAC/B,QAAMI,UAAU,GAAGC,gBAAgB,CAACN,KAAD,CAAnC;EAAA,QACEO,QAAQ,GAAGD,gBAAgB,CAACL,GAAD,CAD7B;EAGA,QAAMO,aAAa,GAAGT,gBAAgB,CAACM,UAAD,EAAaE,QAAb,CAAtC;;EAEA,QAAIC,aAAa,IAAI,IAArB,EAA2B;EACzB,aAAO,IAAIN,QAAJ,CAAa;EAClBF,QAAAA,KAAK,EAAEK,UADW;EAElBJ,QAAAA,GAAG,EAAEM;EAFa,OAAb,CAAP;EAID,KALD,MAKO;EACL,aAAOC,aAAP;EACD;EACF;EAED;EACF;EACA;EACA;EACA;EACA;;;aACSC,QAAP,eAAaT,KAAb,EAAoBpB,QAApB,EAA8B;EAC5B,QAAM1T,GAAG,GAAG4Q,QAAQ,CAACqB,gBAAT,CAA0ByB,QAA1B,CAAZ;EAAA,QACE5Z,EAAE,GAAGsb,gBAAgB,CAACN,KAAD,CADvB;EAEA,WAAOE,QAAQ,CAACE,aAAT,CAAuBpb,EAAvB,EAA2BA,EAAE,CAAC2Z,IAAH,CAAQzT,GAAR,CAA3B,CAAP;EACD;EAED;EACF;EACA;EACA;EACA;EACA;;;aACSwV,SAAP,gBAAcT,GAAd,EAAmBrB,QAAnB,EAA6B;EAC3B,QAAM1T,GAAG,GAAG4Q,QAAQ,CAACqB,gBAAT,CAA0ByB,QAA1B,CAAZ;EAAA,QACE5Z,EAAE,GAAGsb,gBAAgB,CAACL,GAAD,CADvB;EAEA,WAAOC,QAAQ,CAACE,aAAT,CAAuBpb,EAAE,CAAC6Z,KAAH,CAAS3T,GAAT,CAAvB,EAAsClG,EAAtC,CAAP;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;;;aACSsY,UAAP,iBAAeC,IAAf,EAAqBpV,IAArB,EAA2B;EACzB,iBAAe,CAACoV,IAAI,IAAI,EAAT,EAAaoD,KAAb,CAAmB,GAAnB,EAAwB,CAAxB,CAAf;EAAA,QAAOpmB,CAAP;EAAA,QAAU8C,CAAV;;EACA,QAAI9C,CAAC,IAAI8C,CAAT,EAAY;EACV,UAAI2iB,KAAJ,EAAWY,YAAX;;EACA,UAAI;EACFZ,QAAAA,KAAK,GAAGxO,QAAQ,CAAC8L,OAAT,CAAiB/iB,CAAjB,EAAoB4N,IAApB,CAAR;EACAyY,QAAAA,YAAY,GAAGZ,KAAK,CAAC5V,OAArB;EACD,OAHD,CAGE,OAAO/M,CAAP,EAAU;EACVujB,QAAAA,YAAY,GAAG,KAAf;EACD;;EAED,UAAIX,GAAJ,EAASY,UAAT;;EACA,UAAI;EACFZ,QAAAA,GAAG,GAAGzO,QAAQ,CAAC8L,OAAT,CAAiBjgB,CAAjB,EAAoB8K,IAApB,CAAN;EACA0Y,QAAAA,UAAU,GAAGZ,GAAG,CAAC7V,OAAjB;EACD,OAHD,CAGE,OAAO/M,CAAP,EAAU;EACVwjB,QAAAA,UAAU,GAAG,KAAb;EACD;;EAED,UAAID,YAAY,IAAIC,UAApB,EAAgC;EAC9B,eAAOX,QAAQ,CAACE,aAAT,CAAuBJ,KAAvB,EAA8BC,GAA9B,CAAP;EACD;;EAED,UAAIW,YAAJ,EAAkB;EAChB,YAAM1V,GAAG,GAAG4Q,QAAQ,CAACwB,OAAT,CAAiBjgB,CAAjB,EAAoB8K,IAApB,CAAZ;;EACA,YAAI+C,GAAG,CAACd,OAAR,EAAiB;EACf,iBAAO8V,QAAQ,CAACO,KAAT,CAAeT,KAAf,EAAsB9U,GAAtB,CAAP;EACD;EACF,OALD,MAKO,IAAI2V,UAAJ,EAAgB;EACrB,YAAM3V,IAAG,GAAG4Q,QAAQ,CAACwB,OAAT,CAAiB/iB,CAAjB,EAAoB4N,IAApB,CAAZ;;EACA,YAAI+C,IAAG,CAACd,OAAR,EAAiB;EACf,iBAAO8V,QAAQ,CAACQ,MAAT,CAAgBT,GAAhB,EAAqB/U,IAArB,CAAP;EACD;EACF;EACF;;EACD,WAAOgV,QAAQ,CAAClD,OAAT,CAAiB,YAAjB,mBAA6CO,IAA7C,oCAAP;EACD;EAED;EACF;EACA;EACA;EACA;;;aACSuD,aAAP,oBAAkBrkB,CAAlB,EAAqB;EACnB,WAAQA,CAAC,IAAIA,CAAC,CAAC0jB,eAAR,IAA4B,KAAnC;EACD;EAED;EACF;EACA;EACA;;;;;EAqCE;EACF;EACA;EACA;EACA;WACEriB,SAAA,gBAAO3D,IAAP,EAA8B;EAAA,QAAvBA,IAAuB;EAAvBA,MAAAA,IAAuB,GAAhB,cAAgB;EAAA;;EAC5B,WAAO,KAAKiQ,OAAL,GAAe,KAAK2W,UAAL,aAAmB,CAAC5mB,IAAD,CAAnB,EAA2BmR,GAA3B,CAA+BnR,IAA/B,CAAf,GAAsD8T,GAA7D;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;;;WACE5I,QAAA,eAAMlL,IAAN,EAA6B;EAAA,QAAvBA,IAAuB;EAAvBA,MAAAA,IAAuB,GAAhB,cAAgB;EAAA;;EAC3B,QAAI,CAAC,KAAKiQ,OAAV,EAAmB,OAAO6D,GAAP;EACnB,QAAM+R,KAAK,GAAG,KAAKA,KAAL,CAAWgB,OAAX,CAAmB7mB,IAAnB,CAAd;EAAA,QACE8lB,GAAG,GAAG,KAAKA,GAAL,CAASe,OAAT,CAAiB7mB,IAAjB,CADR;EAEA,WAAO6E,IAAI,CAACC,KAAL,CAAWghB,GAAG,CAACgB,IAAJ,CAASjB,KAAT,EAAgB7lB,IAAhB,EAAsBmR,GAAtB,CAA0BnR,IAA1B,CAAX,IAA8C,CAArD;EACD;EAED;EACF;EACA;EACA;EACA;;;WACE+mB,UAAA,iBAAQ/mB,IAAR,EAAc;EACZ,WAAO,KAAKiQ,OAAL,GAAe,KAAK+W,OAAL,MAAkB,KAAK9jB,CAAL,CAAOwhB,KAAP,CAAa,CAAb,EAAgBqC,OAAhB,CAAwB,KAAK3mB,CAA7B,EAAgCJ,IAAhC,CAAjC,GAAyE,KAAhF;EACD;EAED;EACF;EACA;EACA;;;WACEgnB,UAAA,mBAAU;EACR,WAAO,KAAK5mB,CAAL,CAAOmkB,OAAP,OAAqB,KAAKrhB,CAAL,CAAOqhB,OAAP,EAA5B;EACD;EAED;EACF;EACA;EACA;EACA;;;WACE0C,UAAA,iBAAQC,QAAR,EAAkB;EAChB,QAAI,CAAC,KAAKjX,OAAV,EAAmB,OAAO,KAAP;EACnB,WAAO,KAAK7P,CAAL,GAAS8mB,QAAhB;EACD;EAED;EACF;EACA;EACA;EACA;;;WACEC,WAAA,kBAASD,QAAT,EAAmB;EACjB,QAAI,CAAC,KAAKjX,OAAV,EAAmB,OAAO,KAAP;EACnB,WAAO,KAAK/M,CAAL,IAAUgkB,QAAjB;EACD;EAED;EACF;EACA;EACA;EACA;;;WACEE,WAAA,kBAASF,QAAT,EAAmB;EACjB,QAAI,CAAC,KAAKjX,OAAV,EAAmB,OAAO,KAAP;EACnB,WAAO,KAAK7P,CAAL,IAAU8mB,QAAV,IAAsB,KAAKhkB,CAAL,GAASgkB,QAAtC;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;;;WACEpC,MAAA,oBAAyB;EAAA,kCAAJ,EAAI;EAAA,QAAnBe,KAAmB,QAAnBA,KAAmB;EAAA,QAAZC,GAAY,QAAZA,GAAY;;EACvB,QAAI,CAAC,KAAK7V,OAAV,EAAmB,OAAO,IAAP;EACnB,WAAO8V,QAAQ,CAACE,aAAT,CAAuBJ,KAAK,IAAI,KAAKzlB,CAArC,EAAwC0lB,GAAG,IAAI,KAAK5iB,CAApD,CAAP;EACD;EAED;EACF;EACA;EACA;EACA;;;WACEmkB,UAAA,mBAAsB;EAAA;;EACpB,QAAI,CAAC,KAAKpX,OAAV,EAAmB,OAAO,EAAP;;EADC,sCAAXqX,SAAW;EAAXA,MAAAA,SAAW;EAAA;;EAEpB,QAAMC,MAAM,GAAGD,SAAS,CACnB5V,GADU,CACNyU,gBADM,EAEVxU,MAFU,CAEH,UAAClL,CAAD;EAAA,aAAO,KAAI,CAAC2gB,QAAL,CAAc3gB,CAAd,CAAP;EAAA,KAFG,EAGV+gB,IAHU,EAAf;EAAA,QAIEjN,OAAO,GAAG,EAJZ;EAKI,QAAEna,CAAF,GAAQ,IAAR,CAAEA,CAAF;EAAA,QACFkO,CADE,GACE,CADF;;EAGJ,WAAOlO,CAAC,GAAG,KAAK8C,CAAhB,EAAmB;EACjB,UAAMqf,KAAK,GAAGgF,MAAM,CAACjZ,CAAD,CAAN,IAAa,KAAKpL,CAAhC;EAAA,UACEa,IAAI,GAAG,CAACwe,KAAD,GAAS,CAAC,KAAKrf,CAAf,GAAmB,KAAKA,CAAxB,GAA4Bqf,KADrC;EAEAhI,MAAAA,OAAO,CAAC9L,IAAR,CAAasX,QAAQ,CAACE,aAAT,CAAuB7lB,CAAvB,EAA0B2D,IAA1B,CAAb;EACA3D,MAAAA,CAAC,GAAG2D,IAAJ;EACAuK,MAAAA,CAAC,IAAI,CAAL;EACD;;EAED,WAAOiM,OAAP;EACD;EAED;EACF;EACA;EACA;EACA;EACA;;;WACEkN,UAAA,iBAAQhD,QAAR,EAAkB;EAChB,QAAM1T,GAAG,GAAG4Q,QAAQ,CAACqB,gBAAT,CAA0ByB,QAA1B,CAAZ;;EAEA,QAAI,CAAC,KAAKxU,OAAN,IAAiB,CAACc,GAAG,CAACd,OAAtB,IAAiCc,GAAG,CAACuT,EAAJ,CAAO,cAAP,MAA2B,CAAhE,EAAmE;EACjE,aAAO,EAAP;EACD;;EAEG,QAAElkB,CAAF,GAAQ,IAAR,CAAEA,CAAF;EAAA,QACFsnB,GADE,GACI,CADJ;EAAA,QAEF3jB,IAFE;EAIJ,QAAMwW,OAAO,GAAG,EAAhB;;EACA,WAAOna,CAAC,GAAG,KAAK8C,CAAhB,EAAmB;EACjB,UAAMqf,KAAK,GAAG,KAAKsD,KAAL,CAAWrB,IAAX,CAAgBzT,GAAG,CAAC6T,QAAJ,CAAa,UAAChgB,CAAD;EAAA,eAAOA,CAAC,GAAG8iB,GAAX;EAAA,OAAb,CAAhB,CAAd;EACA3jB,MAAAA,IAAI,GAAG,CAACwe,KAAD,GAAS,CAAC,KAAKrf,CAAf,GAAmB,KAAKA,CAAxB,GAA4Bqf,KAAnC;EACAhI,MAAAA,OAAO,CAAC9L,IAAR,CAAasX,QAAQ,CAACE,aAAT,CAAuB7lB,CAAvB,EAA0B2D,IAA1B,CAAb;EACA3D,MAAAA,CAAC,GAAG2D,IAAJ;EACA2jB,MAAAA,GAAG,IAAI,CAAP;EACD;;EAED,WAAOnN,OAAP;EACD;EAED;EACF;EACA;EACA;EACA;;;WACEoN,gBAAA,uBAAcC,aAAd,EAA6B;EAC3B,QAAI,CAAC,KAAK3X,OAAV,EAAmB,OAAO,EAAP;EACnB,WAAO,KAAKwX,OAAL,CAAa,KAAK9jB,MAAL,KAAgBikB,aAA7B,EAA4ClX,KAA5C,CAAkD,CAAlD,EAAqDkX,aAArD,CAAP;EACD;EAED;EACF;EACA;EACA;EACA;;;WACEC,WAAA,kBAASjN,KAAT,EAAgB;EACd,WAAO,KAAK1X,CAAL,GAAS0X,KAAK,CAACxa,CAAf,IAAoB,KAAKA,CAAL,GAASwa,KAAK,CAAC1X,CAA1C;EACD;EAED;EACF;EACA;EACA;EACA;;;WACE4kB,aAAA,oBAAWlN,KAAX,EAAkB;EAChB,QAAI,CAAC,KAAK3K,OAAV,EAAmB,OAAO,KAAP;EACnB,WAAO,CAAC,KAAK/M,CAAN,KAAY,CAAC0X,KAAK,CAACxa,CAA1B;EACD;EAED;EACF;EACA;EACA;EACA;;;WACE2nB,WAAA,kBAASnN,KAAT,EAAgB;EACd,QAAI,CAAC,KAAK3K,OAAV,EAAmB,OAAO,KAAP;EACnB,WAAO,CAAC2K,KAAK,CAAC1X,CAAP,KAAa,CAAC,KAAK9C,CAA1B;EACD;EAED;EACF;EACA;EACA;EACA;;;WACE4nB,UAAA,iBAAQpN,KAAR,EAAe;EACb,QAAI,CAAC,KAAK3K,OAAV,EAAmB,OAAO,KAAP;EACnB,WAAO,KAAK7P,CAAL,IAAUwa,KAAK,CAACxa,CAAhB,IAAqB,KAAK8C,CAAL,IAAU0X,KAAK,CAAC1X,CAA5C;EACD;EAED;EACF;EACA;EACA;EACA;;;WACE6O,SAAA,gBAAO6I,KAAP,EAAc;EACZ,QAAI,CAAC,KAAK3K,OAAN,IAAiB,CAAC2K,KAAK,CAAC3K,OAA5B,EAAqC;EACnC,aAAO,KAAP;EACD;;EAED,WAAO,KAAK7P,CAAL,CAAO2R,MAAP,CAAc6I,KAAK,CAACxa,CAApB,KAA0B,KAAK8C,CAAL,CAAO6O,MAAP,CAAc6I,KAAK,CAAC1X,CAApB,CAAjC;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;;;WACE+kB,eAAA,sBAAarN,KAAb,EAAoB;EAClB,QAAI,CAAC,KAAK3K,OAAV,EAAmB,OAAO,IAAP;EACnB,QAAM7P,CAAC,GAAG,KAAKA,CAAL,GAASwa,KAAK,CAACxa,CAAf,GAAmB,KAAKA,CAAxB,GAA4Bwa,KAAK,CAACxa,CAA5C;EAAA,QACE8C,CAAC,GAAG,KAAKA,CAAL,GAAS0X,KAAK,CAAC1X,CAAf,GAAmB,KAAKA,CAAxB,GAA4B0X,KAAK,CAAC1X,CADxC;;EAGA,QAAI9C,CAAC,IAAI8C,CAAT,EAAY;EACV,aAAO,IAAP;EACD,KAFD,MAEO;EACL,aAAO6iB,QAAQ,CAACE,aAAT,CAAuB7lB,CAAvB,EAA0B8C,CAA1B,CAAP;EACD;EACF;EAED;EACF;EACA;EACA;EACA;EACA;;;WACEglB,QAAA,eAAMtN,KAAN,EAAa;EACX,QAAI,CAAC,KAAK3K,OAAV,EAAmB,OAAO,IAAP;EACnB,QAAM7P,CAAC,GAAG,KAAKA,CAAL,GAASwa,KAAK,CAACxa,CAAf,GAAmB,KAAKA,CAAxB,GAA4Bwa,KAAK,CAACxa,CAA5C;EAAA,QACE8C,CAAC,GAAG,KAAKA,CAAL,GAAS0X,KAAK,CAAC1X,CAAf,GAAmB,KAAKA,CAAxB,GAA4B0X,KAAK,CAAC1X,CADxC;EAEA,WAAO6iB,QAAQ,CAACE,aAAT,CAAuB7lB,CAAvB,EAA0B8C,CAA1B,CAAP;EACD;EAED;EACF;EACA;EACA;EACA;EACA;;;aACSilB,QAAP,eAAaC,SAAb,EAAwB;EACtB,gCAAuBA,SAAS,CAC7BZ,IADoB,CACf,UAACpjB,CAAD,EAAIikB,CAAJ;EAAA,aAAUjkB,CAAC,CAAChE,CAAF,GAAMioB,CAAC,CAACjoB,CAAlB;EAAA,KADe,EAEpByD,MAFoB,CAGnB,iBAAmBiZ,IAAnB,EAA4B;EAAA,UAA1BwL,KAA0B;EAAA,UAAnBna,OAAmB;;EAC1B,UAAI,CAACA,OAAL,EAAc;EACZ,eAAO,CAACma,KAAD,EAAQxL,IAAR,CAAP;EACD,OAFD,MAEO,IAAI3O,OAAO,CAAC0Z,QAAR,CAAiB/K,IAAjB,KAA0B3O,OAAO,CAAC2Z,UAAR,CAAmBhL,IAAnB,CAA9B,EAAwD;EAC7D,eAAO,CAACwL,KAAD,EAAQna,OAAO,CAAC+Z,KAAR,CAAcpL,IAAd,CAAR,CAAP;EACD,OAFM,MAEA;EACL,eAAO,CAACwL,KAAK,CAAC/W,MAAN,CAAa,CAACpD,OAAD,CAAb,CAAD,EAA0B2O,IAA1B,CAAP;EACD;EACF,KAXkB,EAYnB,CAAC,EAAD,EAAK,IAAL,CAZmB,CAAvB;EAAA,QAAOxL,KAAP;EAAA,QAAciX,KAAd;;EAcA,QAAIA,KAAJ,EAAW;EACTjX,MAAAA,KAAK,CAAC7C,IAAN,CAAW8Z,KAAX;EACD;;EACD,WAAOjX,KAAP;EACD;EAED;EACF;EACA;EACA;EACA;;;aACSkX,MAAP,aAAWJ,SAAX,EAAsB;EAAA;;EACpB,QAAIvC,KAAK,GAAG,IAAZ;EAAA,QACE4C,YAAY,GAAG,CADjB;;EAEA,QAAMlO,OAAO,GAAG,EAAhB;EAAA,QACEmO,IAAI,GAAGN,SAAS,CAAC1W,GAAV,CAAc,UAACpD,CAAD;EAAA,aAAO,CAC1B;EAAEqa,QAAAA,IAAI,EAAEra,CAAC,CAAClO,CAAV;EAAa8H,QAAAA,IAAI,EAAE;EAAnB,OAD0B,EAE1B;EAAEygB,QAAAA,IAAI,EAAEra,CAAC,CAACpL,CAAV;EAAagF,QAAAA,IAAI,EAAE;EAAnB,OAF0B,CAAP;EAAA,KAAd,CADT;EAAA,QAKE0gB,SAAS,GAAG,oBAAAvlB,KAAK,CAACT,SAAN,EAAgB2O,MAAhB,yBAA0BmX,IAA1B,CALd;EAAA,QAMEllB,GAAG,GAAGolB,SAAS,CAACpB,IAAV,CAAe,UAACpjB,CAAD,EAAIikB,CAAJ;EAAA,aAAUjkB,CAAC,CAACukB,IAAF,GAASN,CAAC,CAACM,IAArB;EAAA,KAAf,CANR;;EAQA,yDAAgBnlB,GAAhB,wCAAqB;EAAA,UAAV8K,CAAU;EACnBma,MAAAA,YAAY,IAAIna,CAAC,CAACpG,IAAF,KAAW,GAAX,GAAiB,CAAjB,GAAqB,CAAC,CAAtC;;EAEA,UAAIugB,YAAY,KAAK,CAArB,EAAwB;EACtB5C,QAAAA,KAAK,GAAGvX,CAAC,CAACqa,IAAV;EACD,OAFD,MAEO;EACL,YAAI9C,KAAK,IAAI,CAACA,KAAD,KAAW,CAACvX,CAAC,CAACqa,IAA3B,EAAiC;EAC/BpO,UAAAA,OAAO,CAAC9L,IAAR,CAAasX,QAAQ,CAACE,aAAT,CAAuBJ,KAAvB,EAA8BvX,CAAC,CAACqa,IAAhC,CAAb;EACD;;EAED9C,QAAAA,KAAK,GAAG,IAAR;EACD;EACF;;EAED,WAAOE,QAAQ,CAACoC,KAAT,CAAe5N,OAAf,CAAP;EACD;EAED;EACF;EACA;EACA;EACA;;;WACEsO,aAAA,sBAAyB;EAAA;;EAAA,uCAAXT,SAAW;EAAXA,MAAAA,SAAW;EAAA;;EACvB,WAAOrC,QAAQ,CAACyC,GAAT,CAAa,CAAC,IAAD,EAAOjX,MAAP,CAAc6W,SAAd,CAAb,EACJ1W,GADI,CACA,UAACpD,CAAD;EAAA,aAAO,MAAI,CAAC2Z,YAAL,CAAkB3Z,CAAlB,CAAP;EAAA,KADA,EAEJqD,MAFI,CAEG,UAACrD,CAAD;EAAA,aAAOA,CAAC,IAAI,CAACA,CAAC,CAAC0Y,OAAF,EAAb;EAAA,KAFH,CAAP;EAGD;EAED;EACF;EACA;EACA;;;WACEnkB,WAAA,oBAAW;EACT,QAAI,CAAC,KAAKoN,OAAV,EAAmB,OAAO6Q,SAAP;EACnB,iBAAW,KAAK1gB,CAAL,CAAOyjB,KAAP,EAAX,gBAA+B,KAAK3gB,CAAL,CAAO2gB,KAAP,EAA/B;EACD;EAED;EACF;EACA;EACA;EACA;EACA;;;WACEA,QAAA,eAAM7V,IAAN,EAAY;EACV,QAAI,CAAC,KAAKiC,OAAV,EAAmB,OAAO6Q,SAAP;EACnB,WAAU,KAAK1gB,CAAL,CAAOyjB,KAAP,CAAa7V,IAAb,CAAV,SAAgC,KAAK9K,CAAL,CAAO2gB,KAAP,CAAa7V,IAAb,CAAhC;EACD;EAED;EACF;EACA;EACA;EACA;EACA;;;WACE8a,YAAA,qBAAY;EACV,QAAI,CAAC,KAAK7Y,OAAV,EAAmB,OAAO6Q,SAAP;EACnB,WAAU,KAAK1gB,CAAL,CAAO0oB,SAAP,EAAV,SAAgC,KAAK5lB,CAAL,CAAO4lB,SAAP,EAAhC;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;;;WACEhF,YAAA,mBAAU9V,IAAV,EAAgB;EACd,QAAI,CAAC,KAAKiC,OAAV,EAAmB,OAAO6Q,SAAP;EACnB,WAAU,KAAK1gB,CAAL,CAAO0jB,SAAP,CAAiB9V,IAAjB,CAAV,SAAoC,KAAK9K,CAAL,CAAO4gB,SAAP,CAAiB9V,IAAjB,CAApC;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;;;WACEuV,WAAA,kBAASwF,UAAT,UAAiD;EAAA,oCAAJ,EAAI;EAAA,gCAA1BC,SAA0B;EAAA,QAA1BA,SAA0B,gCAAd,KAAc;;EAC/C,QAAI,CAAC,KAAK/Y,OAAV,EAAmB,OAAO6Q,SAAP;EACnB,gBAAU,KAAK1gB,CAAL,CAAOmjB,QAAP,CAAgBwF,UAAhB,CAAV,GAAwCC,SAAxC,GAAoD,KAAK9lB,CAAL,CAAOqgB,QAAP,CAAgBwF,UAAhB,CAApD;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;WACEnC,aAAA,oBAAW5mB,IAAX,EAAiBgO,IAAjB,EAAuB;EACrB,QAAI,CAAC,KAAKiC,OAAV,EAAmB;EACjB,aAAO0R,QAAQ,CAACkB,OAAT,CAAiB,KAAKoG,aAAtB,CAAP;EACD;;EACD,WAAO,KAAK/lB,CAAL,CAAO4jB,IAAP,CAAY,KAAK1mB,CAAjB,EAAoBJ,IAApB,EAA0BgO,IAA1B,CAAP;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;;;WACEkb,eAAA,sBAAaC,KAAb,EAAoB;EAClB,WAAOpD,QAAQ,CAACE,aAAT,CAAuBkD,KAAK,CAAC,KAAK/oB,CAAN,CAA5B,EAAsC+oB,KAAK,CAAC,KAAKjmB,CAAN,CAA3C,CAAP;EACD;;;;WAraD,eAAY;EACV,aAAO,KAAK+M,OAAL,GAAe,KAAK7P,CAApB,GAAwB,IAA/B;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAAU;EACR,aAAO,KAAK6P,OAAL,GAAe,KAAK/M,CAApB,GAAwB,IAA/B;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAAc;EACZ,aAAO,KAAK+lB,aAAL,KAAuB,IAA9B;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAAoB;EAClB,aAAO,KAAKpG,OAAL,GAAe,KAAKA,OAAL,CAAanjB,MAA5B,GAAqC,IAA5C;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAAyB;EACvB,aAAO,KAAKmjB,OAAL,GAAe,KAAKA,OAAL,CAAahR,WAA5B,GAA0C,IAAjD;EACD;;;;;;EClNH;EACA;EACA;;MACqBuX;;;EACnB;EACF;EACA;EACA;EACA;SACSC,SAAP,gBAAcnZ,IAAd,EAA2C;EAAA,QAA7BA,IAA6B;EAA7BA,MAAAA,IAA6B,GAAtBkF,QAAQ,CAACP,WAAa;EAAA;;EACzC,QAAMyU,KAAK,GAAGjS,QAAQ,CAACtC,GAAT,GAAewU,OAAf,CAAuBrZ,IAAvB,EAA6B4U,GAA7B,CAAiC;EAAEtkB,MAAAA,KAAK,EAAE;EAAT,KAAjC,CAAd;EAEA,WAAO,CAAC0P,IAAI,CAACoI,WAAN,IAAqBgR,KAAK,CAAChgB,MAAN,KAAiBggB,KAAK,CAACxE,GAAN,CAAU;EAAEtkB,MAAAA,KAAK,EAAE;EAAT,KAAV,EAAwB8I,MAArE;EACD;EAED;EACF;EACA;EACA;EACA;;;SACSkgB,kBAAP,yBAAuBtZ,IAAvB,EAA6B;EAC3B,WAAOuD,QAAQ,CAACG,WAAT,CAAqB1D,IAArB,CAAP;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;SACS0E,gBAAP,yBAAqB5P,KAArB,EAA4B;EAC1B,WAAO4P,aAAa,CAAC5P,KAAD,EAAQoQ,QAAQ,CAACP,WAAjB,CAApB;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;SACS3K,SAAP,gBACEvG,MADF,SAGE;EAAA,QAFAA,MAEA;EAFAA,MAAAA,MAEA,GAFS,MAET;EAAA;;EAAA,kCADuF,EACvF;EAAA,2BADE6D,MACF;EAAA,QADEA,MACF,4BADW,IACX;EAAA,oCADiB+N,eACjB;EAAA,QADiBA,eACjB,qCADmC,IACnC;EAAA,2BADyCkU,MACzC;EAAA,QADyCA,MACzC,4BADkD,IAClD;EAAA,mCADwD5Z,cACxD;EAAA,QADwDA,cACxD,oCADyE,SACzE;;EACA,WAAO,CAAC4Z,MAAM,IAAInU,MAAM,CAACvH,MAAP,CAAcvG,MAAd,EAAsB+N,eAAtB,EAAuC1F,cAAvC,CAAX,EAAmE3F,MAAnE,CAA0EvG,MAA1E,CAAP;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;SACS+lB,eAAP,sBACE/lB,MADF,UAGE;EAAA,QAFAA,MAEA;EAFAA,MAAAA,MAEA,GAFS,MAET;EAAA;;EAAA,oCADuF,EACvF;EAAA,6BADE6D,MACF;EAAA,QADEA,MACF,6BADW,IACX;EAAA,sCADiB+N,eACjB;EAAA,QADiBA,eACjB,sCADmC,IACnC;EAAA,6BADyCkU,MACzC;EAAA,QADyCA,MACzC,6BADkD,IAClD;EAAA,qCADwD5Z,cACxD;EAAA,QADwDA,cACxD,qCADyE,SACzE;;EACA,WAAO,CAAC4Z,MAAM,IAAInU,MAAM,CAACvH,MAAP,CAAcvG,MAAd,EAAsB+N,eAAtB,EAAuC1F,cAAvC,CAAX,EAAmE3F,MAAnE,CAA0EvG,MAA1E,EAAkF,IAAlF,CAAP;EACD;EAED;EACF;EACA;EAC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B;EACD;EAED;EACF;EACA;EACA;EACA;EACA;;;;WACE,eAAkB;EAChB,aAAO8F,WAAW,CAAC,KAAK9F,IAAN,EAAY,KAAKC,KAAjB,CAAlB;EACD;EAED;EACF;EACA;EACA;EACA;EACA;;;;WACE,eAAiB;EACf,aAAO,KAAKyP,OAAL,GAAe7J,UAAU,CAAC,KAAK7F,IAAN,CAAzB,GAAuCuT,GAA9C;EACD;EAED;EACF;EACA;EACA;EACA;EACA;EACA;;;;WACE,eAAsB;EACpB,aAAO,KAAK7D,OAAL,GAAelJ,eAAe,CAAC,KAAKC,QAAN,CAA9B,GAAgD8M,GAAvD;EACD;;;WAuwBD,eAAwB;EACtB,aAAOnH,UAAP;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAAsB;EACpB,aAAOA,QAAP;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAAmC;EACjC,aAAOA,qBAAP;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAAuB;EACrB,aAAOA,SAAP;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAAuB;EACrB,aAAOA,SAAP;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAAyB;EACvB,aAAOA,WAAP;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAA+B;EAC7B,aAAOA,iBAAP;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAAoC;EAClC,aAAOA,sBAAP;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAAmC;EACjC,aAAOA,qBAAP;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAA4B;EAC1B,aAAOA,cAAP;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAAkC;EAChC,aAAOA,oBAAP;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAAuC;EACrC,aAAOA,yBAAP;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAAsC;EACpC,aAAOA,wBAAP;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAA4B;EAC1B,aAAOA,cAAP;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAAyC;EACvC,aAAOA,2BAAP;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAA0B;EACxB,aAAOA,YAAP;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAAuC;EACrC,aAAOA,yBAAP;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAAuC;EACrC,aAAOA,yBAAP;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAA2B;EACzB,aAAOA,aAAP;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAAwC;EACtC,aAAOA,0BAAP;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAA2B;EACzB,aAAOA,aAAP;EACD;EAED;EACF;EACA;EACA;;;;WACE,eAAwC;EACtC,aAAOA,0BAAP;EACD;;;;;EAMI,SAASwZ,gBAAT,CAA0BmU,WAA1B,EAAuC;EAC5C,MAAIjjB,QAAQ,CAACygB,UAAT,CAAoBwC,WAApB,CAAJ,EAAsC;EACpC,WAAOA,WAAP;EACD,GAFD,MAEO,IAAIA,WAAW,IAAIA,WAAW,CAAC/V,OAA3B,IAAsChiB,QAAQ,CAAC+3B,WAAW,CAAC/V,OAAZ,EAAD,CAAlD,EAA2E;EAChF,WAAOlN,QAAQ,CAACmf,UAAT,CAAoB8D,WAApB,CAAP;EACD,GAFM,MAEA,IAAIA,WAAW,IAAI,OAAOA,WAAP,KAAuB,QAA1C,EAAoD;EACzD,WAAOjjB,QAAQ,CAACgC,UAAT,CAAoBihB,WAApB,CAAP;EACD,GAFM,MAEA;EACL,UAAM,IAAIr6B,oBAAJ,iCAC0Bq6B,WAD1B,kBACkD,OAAOA,WADzD,CAAN;EAGD;EACF;;MChqEKC,OAAO,GAAG;;;;;;;;;;;;;;;;;;;;;;"} \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/luxon/luxon.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/luxon/luxon.min.js index 03f3699b..ef41bc7f 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/luxon/luxon.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/luxon/luxon.min.js @@ -1 +1 @@ -var luxon=function(e){"use strict";function r(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[t++]}};throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var n=function(e){function t(){return e.apply(this,arguments)||this}return o(t,e),t}(t(Error)),l=function(t){function e(e){return t.call(this,"Invalid DateTime: "+e.toMessage())||this}return o(e,t),e}(n),f=function(t){function e(e){return t.call(this,"Invalid Interval: "+e.toMessage())||this}return o(e,t),e}(n),d=function(t){function e(e){return t.call(this,"Invalid Duration: "+e.toMessage())||this}return o(e,t),e}(n),L=function(e){function t(){return e.apply(this,arguments)||this}return o(t,e),t}(n),h=function(t){function e(e){return t.call(this,"Invalid unit "+e)||this}return o(e,t),e}(n),m=function(e){function t(){return e.apply(this,arguments)||this}return o(t,e),t}(n),y=function(e){function t(){return e.call(this,"Zone is an abstract class")||this}return o(t,e),t}(n),v="numeric",g="short",p="long",w={year:v,month:v,day:v},k={year:v,month:g,day:v},b={year:v,month:p,day:v},O={year:v,month:p,day:v,weekday:p},S={hour:v,minute:v},T={hour:v,minute:v,second:v},M={hour:v,minute:v,second:v,timeZoneName:g},N={hour:v,minute:v,second:v,timeZoneName:p},D={hour:v,minute:v,hour12:!1},E={hour:v,minute:v,second:v,hour12:!1},x={hour:v,minute:v,second:v,hour12:!1,timeZoneName:g},F={hour:v,minute:v,second:v,hour12:!1,timeZoneName:p},Z={year:v,month:v,day:v,hour:v,minute:v},C={year:v,month:v,day:v,hour:v,minute:v,second:v},j={year:v,month:g,day:v,hour:v,minute:v},A={year:v,month:g,day:v,hour:v,minute:v,second:v},z={year:v,month:g,day:v,weekday:g,hour:v,minute:v},_={year:v,month:p,day:v,hour:v,minute:v,timeZoneName:g},q={year:v,month:p,day:v,hour:v,minute:v,second:v,timeZoneName:g},H={year:v,month:p,day:v,weekday:p,hour:v,minute:v,timeZoneName:p},U={year:v,month:p,day:v,weekday:p,hour:v,minute:v,second:v,timeZoneName:p};function R(e){return void 0===e}function W(e){return"number"==typeof e}function P(e){return"number"==typeof e&&e%1==0}function I(){try{return"undefined"!=typeof Intl&&Intl.DateTimeFormat}catch(e){return!1}}function J(){return!R(Intl.DateTimeFormat.prototype.formatToParts)}function Y(){try{return"undefined"!=typeof Intl&&!!Intl.RelativeTimeFormat}catch(e){return!1}}function G(e,r,i){if(0!==e.length)return e.reduce(function(e,t){var n=[r(t),t];return e&&i(e[0],n[0])===e[0]?e:n},null)[1]}function $(n,e){return e.reduce(function(e,t){return e[t]=n[t],e},{})}function B(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Q(e,t,n){return P(e)&&t<=e&&e<=n}function K(e,t){return void 0===t&&(t=2),e.toString().lengthen.indexOf(c)&&rn(this.matrix,a,h,i,c)}else W(a[c])&&(o[c]=a[c])}for(var m in o)0!==o[m]&&(i[r]+=m===r?o[m]:o[m]/this.matrix[r][m]);return nn(this,{values:i},!0).normalize()},e.negate=function(){if(!this.isValid)return this;for(var e={},t=0,n=Object.keys(this.values);te},e.isBefore=function(e){return!!this.isValid&&this.e<=e},e.contains=function(e){return!!this.isValid&&(this.s<=e&&this.e>e)},e.set=function(e){var t=void 0===e?{}:e,n=t.start,r=t.end;return this.isValid?l.fromDateTimes(n||this.s,r||this.e):this},e.splitAt=function(){var t=this;if(!this.isValid)return[];for(var e=arguments.length,n=new Array(e),r=0;r+this.e?this.e:s;o.push(l.fromDateTimes(a,c)),a=c,u+=1}return o},e.splitBy=function(e){var t=un(e);if(!this.isValid||!t.isValid||0===t.as("milliseconds"))return[];for(var n,r,i=this.s,o=[];i+this.e?this.e:n,o.push(l.fromDateTimes(i,r)),i=r;return o},e.divideEqually=function(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]},e.overlaps=function(e){return this.e>e.s&&this.s=e.e)},e.equals=function(e){return!(!this.isValid||!e.isValid)&&(this.s.equals(e.s)&&this.e.equals(e.e))},e.intersection=function(e){if(!this.isValid)return this;var t=this.s>e.s?this.s:e.s,n=this.ee.e?this.e:e.e;return l.fromDateTimes(t,n)},l.merge=function(e){var t=e.sort(function(e,t){return e.s-t.s}).reduce(function(e,t){var n=e[0],r=e[1];return r?r.overlaps(t)||r.abutsStart(t)?[n,r.union(t)]:[n.concat([r]),t]:[n,t]},[[],null]),n=t[0],r=t[1];return r&&n.push(r),n},l.xor=function(e){for(var t,n,r=null,i=0,o=[],a=e.map(function(e){return[{time:e.s,type:"s"},{time:e.e,type:"e"}]}),u=V((t=Array.prototype).concat.apply(t,a).sort(function(e,t){return e.time-t.time}));!(n=u()).done;)var s=n.value,r=1===(i+="s"===s.type?1:-1)?s.time:(r&&+r!=+s.time&&o.push(l.fromDateTimes(r,s.time)),null);return l.merge(o)},e.difference=function(){for(var t=this,e=arguments.length,n=new Array(e),r=0;rae(n)?(t=n+1,u=1):t=n,Object.assign({weekYear:t,weekNumber:u,weekday:a},he(e))}function jn(e){var t,n=e.weekYear,r=e.weekNumber,i=e.weekday,o=xn(n,1,4),a=re(n),u=7*r+i-o-3;u<1?u+=re(t=n-1):athis.valueOf(),u=dn(a?this:e,a?e:this,o,i);return a?u.negate():u},e.diffNow=function(e,t){return void 0===e&&(e="milliseconds"),void 0===t&&(t={}),this.diff(I.local(),e,t)},e.until=function(e){return this.isValid?cn.fromDateTimes(this,e):this},e.hasSame=function(e,t){if(!this.isValid)return!1;if("millisecond"===t)return this.valueOf()===e.valueOf();var n=e.valueOf();return this.startOf(t)<=n&&n<=this.endOf(t)},e.equals=function(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)},e.toRelative=function(e){if(void 0===e&&(e={}),!this.isValid)return null;var t=e.base||I.fromObject({zone:this.zone}),n=e.padding?thisthis.set({month:1}).offset||this.offset>this.set({month:5}).offset)}},{key:"isInLeapYear",get:function(){return ne(this.year)}},{key:"daysInMonth",get:function(){return ie(this.year,this.month)}},{key:"daysInYear",get:function(){return this.isValid?re(this.year):NaN}},{key:"weeksInWeekYear",get:function(){return this.isValid?ae(this.weekYear):NaN}}],[{key:"DATE_SHORT",get:function(){return w}},{key:"DATE_MED",get:function(){return k}},{key:"DATE_FULL",get:function(){return b}},{key:"DATE_HUGE",get:function(){return O}},{key:"TIME_SIMPLE",get:function(){return S}},{key:"TIME_WITH_SECONDS",get:function(){return T}},{key:"TIME_WITH_SHORT_OFFSET",get:function(){return M}},{key:"TIME_WITH_LONG_OFFSET",get:function(){return N}},{key:"TIME_24_SIMPLE",get:function(){return D}},{key:"TIME_24_WITH_SECONDS",get:function(){return E}},{key:"TIME_24_WITH_SHORT_OFFSET",get:function(){return x}},{key:"TIME_24_WITH_LONG_OFFSET",get:function(){return F}},{key:"DATETIME_SHORT",get:function(){return Z}},{key:"DATETIME_SHORT_WITH_SECONDS",get:function(){return C}},{key:"DATETIME_MED",get:function(){return j}},{key:"DATETIME_MED_WITH_SECONDS",get:function(){return A}},{key:"DATETIME_MED_WITH_WEEKDAY",get:function(){return z}},{key:"DATETIME_FULL",get:function(){return _}},{key:"DATETIME_FULL_WITH_SECONDS",get:function(){return q}},{key:"DATETIME_HUGE",get:function(){return H}},{key:"DATETIME_HUGE_WITH_SECONDS",get:function(){return U}}]),I}();function sr(e){if(ur.isDateTime(e))return e;if(e&&e.valueOf&&W(e.valueOf()))return ur.fromJSDate(e);if(e&&"object"==typeof e)return ur.fromObject(e);throw new m("Unknown datetime argument: "+e+", of type "+typeof e)}return e.DateTime=ur,e.Duration=an,e.FixedOffsetZone=Ue,e.IANAZone=qe,e.Info=ln,e.Interval=cn,e.InvalidZone=Re,e.LocalZone=Ce,e.Settings=Qe,e.Zone=Fe,e}({}); \ No newline at end of file +var luxon=function(e){"use strict";function r(e,t){for(var n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var n=function(e){function t(){return e.apply(this,arguments)||this}return i(t,e),t}(t(Error)),d=function(t){function e(e){return t.call(this,"Invalid DateTime: "+e.toMessage())||this}return i(e,t),e}(n),h=function(t){function e(e){return t.call(this,"Invalid Interval: "+e.toMessage())||this}return i(e,t),e}(n),y=function(t){function e(e){return t.call(this,"Invalid Duration: "+e.toMessage())||this}return i(e,t),e}(n),T=function(e){function t(){return e.apply(this,arguments)||this}return i(t,e),t}(n),v=function(t){function e(e){return t.call(this,"Invalid unit "+e)||this}return i(e,t),e}(n),p=function(e){function t(){return e.apply(this,arguments)||this}return i(t,e),t}(n),m=function(e){function t(){return e.call(this,"Zone is an abstract class")||this}return i(t,e),t}(n),g="numeric",w="short",S="long",b={year:g,month:g,day:g},O={year:g,month:w,day:g},M={year:g,month:w,day:g,weekday:w},N={year:g,month:S,day:g},D={year:g,month:S,day:g,weekday:S},E={hour:g,minute:g},V={hour:g,minute:g,second:g},I={hour:g,minute:g,second:g,timeZoneName:w},x={hour:g,minute:g,second:g,timeZoneName:S},C={hour:g,minute:g,hourCycle:"h23"},F={hour:g,minute:g,second:g,hourCycle:"h23"},Z={hour:g,minute:g,second:g,hourCycle:"h23",timeZoneName:w},L={hour:g,minute:g,second:g,hourCycle:"h23",timeZoneName:S},A={year:g,month:g,day:g,hour:g,minute:g},z={year:g,month:g,day:g,hour:g,minute:g,second:g},j={year:g,month:w,day:g,hour:g,minute:g},q={year:g,month:w,day:g,hour:g,minute:g,second:g},_={year:g,month:w,day:g,weekday:w,hour:g,minute:g},U={year:g,month:S,day:g,hour:g,minute:g,timeZoneName:w},R={year:g,month:S,day:g,hour:g,minute:g,second:g,timeZoneName:w},H={year:g,month:S,day:g,weekday:S,hour:g,minute:g,timeZoneName:S},P={year:g,month:S,day:g,weekday:S,hour:g,minute:g,second:g,timeZoneName:S};function W(e){return void 0===e}function J(e){return"number"==typeof e}function Y(e){return"number"==typeof e&&e%1==0}function G(){try{return"undefined"!=typeof Intl&&!!Intl.RelativeTimeFormat}catch(e){return!1}}function $(e,n,r){if(0!==e.length)return e.reduce(function(e,t){t=[n(t),t];return e&&r(e[0],t[0])===e[0]?e:t},null)[1]}function B(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Q(e,t,n){return Y(e)&&t<=e&&e<=n}function K(e,t){void 0===t&&(t=2);t=e<0?"-"+(""+-e).padStart(t,"0"):(""+e).padStart(t,"0");return t}function X(e){if(!W(e)&&null!==e&&""!==e)return parseInt(e,10)}function ee(e){if(!W(e)&&null!==e&&""!==e)return parseFloat(e)}function te(e){if(!W(e)&&null!==e&&""!==e){e=1e3*parseFloat("0."+e);return Math.floor(e)}}function ne(e,t,n){void 0===n&&(n=!1);t=Math.pow(10,t);return(n?Math.trunc:Math.round)(e*t)/t}function re(e){return e%4==0&&(e%100!=0||e%400==0)}function ie(e){return re(e)?366:365}function oe(e,t){var n,r=(n=t-1)-(r=12)*Math.floor(n/r)+1;return 2==r?re(e+(t-r)/12)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][r-1]}function ae(e){var t=Date.UTC(e.year,e.month-1,e.day,e.hour,e.minute,e.second,e.millisecond);return e.year<100&&0<=e.year&&(t=new Date(t)).setUTCFullYear(t.getUTCFullYear()-1900),+t}function ue(e){var t=(e+Math.floor(e/4)-Math.floor(e/100)+Math.floor(e/400))%7,e=e-1,e=(e+Math.floor(e/4)-Math.floor(e/100)+Math.floor(e/400))%7;return 4==t||3==e?53:52}function se(e){return 99Jt.indexOf(s)&&$t(this.matrix,a,d,i,s)}else J(a[s])&&(o[s]=a[s])}for(r in o)0!==o[r]&&(i[l]+=r===l?o[r]:o[r]/this.matrix[l][r]);return Gt(this,{values:i},!0).normalize()},e.negate=function(){if(!this.isValid)return this;for(var e={},t=0,n=Object.keys(this.values);te},e.isBefore=function(e){return!!this.isValid&&this.e<=e},e.contains=function(e){return!!this.isValid&&(this.s<=e&&this.e>e)},e.set=function(e){var t=void 0===e?{}:e,e=t.start,t=t.end;return this.isValid?c.fromDateTimes(e||this.s,t||this.e):this},e.splitAt=function(){var t=this;if(!this.isValid)return[];for(var e=arguments.length,n=new Array(e),r=0;r+this.e?this.e:s;o.push(c.fromDateTimes(a,s)),a=s,u+=1}return o},e.splitBy=function(e){var t=Bt.fromDurationLike(e);if(!this.isValid||!t.isValid||0===t.as("milliseconds"))return[];for(var n=this.s,r=1,i=[];n+this.e?this.e:o;i.push(c.fromDateTimes(n,o)),n=o,r+=1}return i},e.divideEqually=function(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]},e.overlaps=function(e){return this.e>e.s&&this.s=e.e)},e.equals=function(e){return!(!this.isValid||!e.isValid)&&(this.s.equals(e.s)&&this.e.equals(e.e))},e.intersection=function(e){if(!this.isValid)return this;var t=(this.s>e.s?this:e).s,e=(this.ee.e?this:e).e;return c.fromDateTimes(t,e)},c.merge=function(e){var t=e.sort(function(e,t){return e.s-t.s}).reduce(function(e,t){var n=e[0],e=e[1];return e?e.overlaps(t)||e.abutsStart(t)?[n,e.union(t)]:[n.concat([e]),t]:[n,t]},[[],null]),e=t[0],t=t[1];return t&&e.push(t),e},c.xor=function(e){for(var t=null,n=0,r=[],i=e.map(function(e){return[{time:e.s,type:"s"},{time:e.e,type:"e"}]}),o=k((e=Array.prototype).concat.apply(e,i).sort(function(e,t){return e.time-t.time}));!(a=o()).done;)var a=a.value,t=1===(n+="s"===a.type?1:-1)?a.time:(t&&+t!=+a.time&&r.push(c.fromDateTimes(t,a.time)),null);return c.merge(r)},e.difference=function(){for(var t=this,e=arguments.length,n=new Array(e),r=0;rue(n)?(t=n+1,o=1):t=n,s({weekYear:t,weekNumber:o,weekday:i},me(e))}function En(e){var t,n=e.weekYear,r=e.weekNumber,i=e.weekday,o=On(n,1,4),a=ie(n),o=7*r+i-o-3;o<1?o+=ie(t=n-1):athis.valueOf(),r=tn(n?this:e,n?e:this,t,r);return n?r.negate():r},e.diffNow=function(e,t){return void 0===e&&(e="milliseconds"),void 0===t&&(t={}),this.diff(w.now(),e,t)},e.until=function(e){return this.isValid?Kt.fromDateTimes(this,e):this},e.hasSame=function(e,t){if(!this.isValid)return!1;var n=e.valueOf(),e=this.setZone(e.zone,{keepLocalTime:!0});return e.startOf(t)<=n&&n<=e.endOf(t)},e.equals=function(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)},e.toRelative=function(e){if(!this.isValid)return null;var t=(e=void 0===e?{}:e).base||w.fromObject({},{zone:this.zone}),n=e.padding?thisthis.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset)}},{key:"isInLeapYear",get:function(){return re(this.year)}},{key:"daysInMonth",get:function(){return oe(this.year,this.month)}},{key:"daysInYear",get:function(){return this.isValid?ie(this.year):NaN}},{key:"weeksInWeekYear",get:function(){return this.isValid?ue(this.weekYear):NaN}}],[{key:"DATE_SHORT",get:function(){return b}},{key:"DATE_MED",get:function(){return O}},{key:"DATE_MED_WITH_WEEKDAY",get:function(){return M}},{key:"DATE_FULL",get:function(){return N}},{key:"DATE_HUGE",get:function(){return D}},{key:"TIME_SIMPLE",get:function(){return E}},{key:"TIME_WITH_SECONDS",get:function(){return V}},{key:"TIME_WITH_SHORT_OFFSET",get:function(){return I}},{key:"TIME_WITH_LONG_OFFSET",get:function(){return x}},{key:"TIME_24_SIMPLE",get:function(){return C}},{key:"TIME_24_WITH_SECONDS",get:function(){return F}},{key:"TIME_24_WITH_SHORT_OFFSET",get:function(){return Z}},{key:"TIME_24_WITH_LONG_OFFSET",get:function(){return L}},{key:"DATETIME_SHORT",get:function(){return A}},{key:"DATETIME_SHORT_WITH_SECONDS",get:function(){return z}},{key:"DATETIME_MED",get:function(){return j}},{key:"DATETIME_MED_WITH_SECONDS",get:function(){return q}},{key:"DATETIME_MED_WITH_WEEKDAY",get:function(){return _}},{key:"DATETIME_FULL",get:function(){return U}},{key:"DATETIME_FULL_WITH_SECONDS",get:function(){return R}},{key:"DATETIME_HUGE",get:function(){return H}},{key:"DATETIME_HUGE_WITH_SECONDS",get:function(){return P}}]),w}();function nr(e){if(tr.isDateTime(e))return e;if(e&&e.valueOf&&J(e.valueOf()))return tr.fromJSDate(e);if(e&&"object"==typeof e)return tr.fromObject(e);throw new p("Unknown datetime argument: "+e+", of type "+typeof e)}return e.DateTime=tr,e.Duration=Bt,e.FixedOffsetZone=Ue,e.IANAZone=qe,e.Info=Xt,e.Interval=Kt,e.InvalidZone=Re,e.Settings=Be,e.SystemZone=Le,e.VERSION="2.4.0",e.Zone=Fe,Object.defineProperty(e,"__esModule",{value:!0}),e}({}); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/luxon/luxon.min.js.map b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/luxon/luxon.min.js.map index 09ddafd1..c9bb1448 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/luxon/luxon.min.js.map +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/luxon/luxon.min.js.map @@ -1 +1 @@ -{"version":3,"file":"build/global/luxon.js","sources":["0"],"names":["luxon","exports","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","Constructor","protoProps","staticProps","prototype","_inheritsLoose","subClass","superClass","create","constructor","__proto__","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","_setPrototypeOf","p","_construct","Parent","args","Class","Reflect","construct","sham","Proxy","Date","toString","call","e","_isNativeReflectConstruct","a","push","apply","instance","Function","bind","arguments","_wrapNativeSuper","_cache","Map","undefined","fn","indexOf","TypeError","has","get","set","Wrapper","this","value","_arrayLikeToArray","arr","len","arr2","Array","_createForOfIteratorHelperLoose","Symbol","iterator","next","isArray","minLen","n","slice","name","from","test","_unsupportedIterableToArray","done","LuxonError","_Error","Error","InvalidDateTimeError","_LuxonError","reason","toMessage","InvalidIntervalError","_LuxonError2","InvalidDurationError","_LuxonError3","ConflictingSpecificationError","_LuxonError4","InvalidUnitError","_LuxonError5","unit","InvalidArgumentError","_LuxonError6","ZoneIsAbstractError","_LuxonError7","s","l","DATE_SHORT","year","month","day","DATE_MED","DATE_FULL","DATE_HUGE","weekday","TIME_SIMPLE","hour","minute","TIME_WITH_SECONDS","second","TIME_WITH_SHORT_OFFSET","timeZoneName","TIME_WITH_LONG_OFFSET","TIME_24_SIMPLE","hour12","TIME_24_WITH_SECONDS","TIME_24_WITH_SHORT_OFFSET","TIME_24_WITH_LONG_OFFSET","DATETIME_SHORT","DATETIME_SHORT_WITH_SECONDS","DATETIME_MED","DATETIME_MED_WITH_SECONDS","DATETIME_MED_WITH_WEEKDAY","DATETIME_FULL","DATETIME_FULL_WITH_SECONDS","DATETIME_HUGE","DATETIME_HUGE_WITH_SECONDS","isUndefined","isNumber","isInteger","hasIntl","Intl","DateTimeFormat","hasFormatToParts","formatToParts","hasRelative","RelativeTimeFormat","bestBy","by","compare","reduce","best","pair","pick","obj","keys","k","hasOwnProperty","prop","integerBetween","thing","bottom","top","padStart","input","repeat","parseInteger","string","parseInt","parseMillis","fraction","f","parseFloat","Math","floor","roundTo","number","digits","towardZero","factor","pow","trunc","round","isLeapYear","daysInYear","daysInMonth","x","modMonth","objToLocalTS","d","UTC","millisecond","setUTCFullYear","getUTCFullYear","weeksInWeekYear","weekYear","p1","last","p2","untruncateYear","parseZoneInfo","ts","offsetFormat","locale","timeZone","date","intlOpts","modified","assign","intl","parsed","find","m","type","toLowerCase","without","format","substring","replace","signedOffset","offHourStr","offMinuteStr","offHour","Number","isNaN","offMin","is","asNumber","numericValue","normalizeObject","normalizer","nonUnitKeys","normalized","u","v","formatOffset","offset","hours","minutes","abs","sign","base","RangeError","timeObject","ianaRegex","stringify","JSON","sort","monthsLong","monthsShort","monthsNarrow","months","weekdaysLong","weekdaysShort","weekdaysNarrow","weekdays","meridiems","erasLong","erasShort","erasNarrow","eras","stringifyTokens","splits","tokenToString","_step","_iterator","token","literal","val","_macroTokenToFormatOpts","D","DD","DDD","DDDD","t","tt","ttt","tttt","T","TT","TTT","TTTT","ff","fff","ffff","F","FF","FFF","FFFF","Formatter","formatOpts","opts","loc","systemLoc","parseFormat","fmt","current","currentFull","bracketed","c","charAt","macroTokenToFormatOpts","_proto","formatWithSystemDefault","dt","redefaultToSystem","dtFormatter","formatDateTime","formatDateTimeParts","resolvedOptions","num","forceSimple","padTo","numberFormatter","formatDateTimeFromString","extract","_this","isOffsetFixed","allowZ","isValid","zone","meridiem","knownEnglish","standalone","era","listingMode","useDateTimeFormatter","outputCalendar","offsetName","zoneName","weekNumber","ordinal","quarter","formatDurationFromString","dur","tokenToField","lildur","_this2","tokens","realTokens","found","_ref","concat","collapsed","shiftTo","map","filter","mapped","Invalid","explanation","Zone","equals","singleton","LocalZone","_Zone","getTimezoneOffset","otherZone","matchingRegex","RegExp","source","dtfCache","typeToPos","ianaZoneCache","IANAZone","valid","isValidZone","resetCache","isValidSpecifier","match","parseGMTOffset","specifier","formatted","fMonth","fDay","dtf","_ref2","filled","_formatted$i","pos","partsOffset","exec","asTS","over","singleton$1","FixedOffsetZone","fixed","utcInstance","parseSpecifier","r","InvalidZone","NaN","normalizeZone","defaultZone","lowered","now","defaultLocale","defaultNumberingSystem","defaultOutputCalendar","throwOnInvalid","Settings","resetCaches","Locale","z","numberingSystem","intlDTCache","getCachedDTF","locString","intlNumCache","intlRelCache","getCachedRTF","cacheKeyOpts","excluded","sourceKeys","_objectWithoutPropertiesLoose","inf","sysLocaleCache","listStuff","defaultOK","englishFn","intlFn","mode","PolyNumberFormatter","useGrouping","minimumIntegerDigits","NumberFormat","getCachedINF","PolyDateFormatter","universal","DateTime","fromMillis","_proto2","toJSDate","tokenFormat","knownFormat","dateTimeHuge","formatString","PolyRelFormatter","isEnglish","style","rtf","_proto3","count","numeric","narrow","units","years","quarters","weeks","days","seconds","lastable","isDay","isInPast","fmtValue","singular","lilUnits","fmtUnit","formatRelativeTime","numbering","specifiedLocale","localeStr","_parseLocaleString","uIndex","options","smaller","calendar","parseLocaleString","parsedLocale","parsedNumberingSystem","parsedOutputCalendar","weekdaysCache","monthsCache","meridiemCache","eraCache","fastNumbersCached","fromOpts","defaultToEN","computedSys","systemLocale","fromObject","_temp","_proto4","hasFTP","isActuallyEn","hasNoWeirdness","clone","alts","getOwnPropertyNames","redefaultToEN","formatStr","ms","utc","mapMonths","mapWeekdays","_this3","_this4","field","matching","fastNumbers","relFormatter","startsWith","other","combineRegexes","_len","regexes","_key","full","combineExtractors","_len2","extractors","_key2","ex","mergedVals","mergedZone","cursor","_ex","parse","_len3","patterns","_key3","_i","_patterns","_patterns$_i","regex","extractor","simpleParse","_len4","_key4","ret","offsetRegex","isoTimeBaseRegex","isoTimeRegex","isoTimeExtensionRegex","extractISOWeekData","extractISOOrdinalData","sqlTimeRegex","sqlTimeExtensionRegex","int","fallback","extractISOYmd","extractISOTime","extractISOOffset","local","fullOffset","extractIANAZone","isoDuration","extractISODuration","maybeNegate","hasNegativePrefix","yearStr","monthStr","weekStr","dayStr","hourStr","minuteStr","secondStr","millisecondsStr","milliseconds","obsOffsets","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","fromStrings","weekdayStr","result","rfc2822","extractRFC2822","obsOffset","milOffset","rfc1123","rfc850","ascii","extractRFC1123Or850","extractASCII","isoYmdWithTimeExtensionRegex","isoWeekWithTimeExtensionRegex","isoOrdinalWithTimeExtensionRegex","isoTimeCombinedRegex","extractISOYmdTimeAndOffset","extractISOWeekTimeAndOffset","extractISOOrdinalDataAndTime","extractISOTimeAndOffset","sqlYmdWithTimeExtensionRegex","sqlTimeCombinedRegex","extractISOYmdTimeOffsetAndIANAZone","extractISOTimeOffsetAndIANAZone","lowOrderMatrix","casualMatrix","daysInYearAccurate","daysInMonthAccurate","accurateMatrix","orderedUnits","reverseUnits","reverse","clear","conf","values","conversionAccuracy","Duration","convert","matrix","fromMap","fromUnit","toMap","toUnit","conv","raw","added","ceil","normalizeValues","vals","previous","config","accurate","invalid","isLuxonDuration","normalizeUnit","fromISO","text","week","isDuration","toFormat","fmtOpts","toObject","includeConfig","toISO","toJSON","valueOf","as","plus","duration","friendlyDuration","minus","negate","mapUnits","_Object$keys","reconfigure","normalize","lastUnit","built","accumulated","_step2","_iterator2","own","ak","down","negated","_i2","_Object$keys2","_step3","_iterator3","durationish","INVALID$1","Interval","start","end","isLuxonInterval","fromDateTimes","builtStart","friendlyDateTime","builtEnd","validateError","after","before","_split","split","_dur","isInterval","toDuration","startOf","diff","hasSame","isEmpty","isAfter","dateTime","isBefore","contains","splitAt","dateTimes","sorted","results","splitBy","divideEqually","numberOfParts","overlaps","abutsStart","abutsEnd","engulfs","intersection","union","merge","intervals","_intervals$sort$reduc","b","item","sofar","final","xor","_Array$prototype","currentCount","ends","time","difference","toISODate","toISOTime","dateFormat","_temp2","_ref3$separator","separator","invalidReason","mapEndpoints","mapFn","Info","hasDST","proto","setZone","isValidIANAZone","_ref$locale","_ref$numberingSystem","_ref$outputCalendar","monthsFormat","_ref2$locale","_ref2$numberingSystem","_ref2$outputCalendar","_temp3","_ref3","_ref3$locale","_ref3$numberingSystem","weekdaysFormat","_temp4","_ref4","_ref4$locale","_ref4$numberingSystem","_temp5","_ref5$locale","_temp6","_ref6$locale","features","intlTokens","zones","relative","dayDiff","earlier","later","utcDayStart","toUTC","keepLocalTime","_diff","_cursor$plus3","_highOrderDiffs","_differs","_cursor$plus","lowestOrder","delta","_cursor$plus2","highWater","_differs$_i","differ","highOrderDiffs","remainingMillis","lowerOrderUnits","_Duration$fromMillis","numberingSystems","arab","arabext","bali","beng","deva","fullwide","gujr","hanidec","khmr","knda","laoo","limb","mlym","mong","mymr","orya","tamldec","telu","thai","tibt","latn","numberingSystemsUTF16","hanidecChars","digitRegex","append","MISSING_FTP","intUnit","post","deser","str","code","charCodeAt","search","_numberingSystemsUTF","min","max","parseDigits","fixListRegex","stripInsensitivities","oneOf","strings","startIndex","join","findIndex","groups","simple","unitForToken","_ref5","one","two","three","four","six","oneOrTwo","oneToThree","oneToSix","oneToNine","twoToFour","fourToSix","unitate","partTypeStyleToTokenVal","2-digit","short","long","dayperiod","dayPeriod","dummyDateTimeCache","maybeExpandMacroToken","part","tokenForPart","includes","explainFromTokens","disqualifyingUnit","matches","_buildRegex","handlers","_match","h","all","matchIndex","rawMatches","_ref6","Z","q","M","G","y","S","toField","nonLeapLadder","leapLadder","unitOutOfRange","dayOfWeek","js","getUTCDay","computeOrdinal","uncomputeOrdinal","table","month0","gregorianToWeek","gregObj","weekToGregorian","weekData","weekdayOfJan4","yearInDays","_uncomputeOrdinal","gregorianToOrdinal","gregData","ordinalToGregorian","ordinalData","_uncomputeOrdinal2","hasInvalidGregorianData","validYear","validMonth","validDay","hasInvalidTimeData","validHour","validMinute","validSecond","validMillisecond","INVALID$2","unsupportedZone","possiblyCachedWeekData","clone$1","inst","old","fixOffset","localTS","tz","utcGuess","o2","o3","tsToObj","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","objToTS","adjustTime","oPre","millisToAdd","_fixOffset","parseDataToDateTime","parsedZone","interpretationZone","toTechFormat","toTechTimeFormat","_ref$suppressSeconds","suppressSeconds","_ref$suppressMillisec","suppressMilliseconds","includeOffset","_ref$includeZone","includeZone","_ref$spaceZone","spaceZone","_ref$format","defaultUnitValues","defaultWeekUnitValues","defaultOrdinalUnitValues","orderedUnits$1","orderedWeekUnits","orderedOrdinalUnits","weeknumber","weeksnumber","weeknumbers","weekyear","weekyears","quickDT","tsNow","_objToTS","diffRelative","calendary","ot","_zone","isLuxonDateTime","fromJSDate","zoneToUse","fromSeconds","offsetProvis","containsOrdinal","containsGregorYear","containsGregorMD","containsGregor","definiteWeekDef","defaultValues","useWeekData","objNow","foundFirst","validOrdinal","validWeek","validWeekday","_objToTS2","_parseISODate","fromRFC2822","_parseRFC2822Date","trim","fromHTTP","_parseHTTPDate","fromFormat","_explainFromTokens","_opts$locale","_opts$numberingSystem","localeToUse","_parseFromTokens","fromString","fromSQL","_parseSQL","isDateTime","resolvedLocaleOpts","_Formatter$create$res","toLocal","_ref3$keepLocalTime","_ref3$keepCalendarTim","keepCalendarTime","offsetGuess","newTS","setLocale","mixed","_objToTS4","normalizedUnit","endOf","_this$plus","toLocaleString","toLocaleParts","_ref5$format","toISOWeekDate","_ref6$suppressMillise","_ref6$suppressSeconds","_ref6$includeOffset","_ref6$format","toRFC2822","toHTTP","toSQLDate","toSQLTime","_ref7","_ref7$includeOffset","_ref7$includeZone","toSQL","toMillis","toSeconds","toBSON","otherDateTime","durOpts","otherIsLater","diffed","diffNow","until","inputMs","toRelative","padding","toRelativeCalendar","every","fromFormatExplain","_options$locale","_options$numberingSys","fromStringExplain","dateTimeish"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"build/global/luxon.js","sources":["0"],"names":["luxon","exports","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","Constructor","protoProps","staticProps","prototype","_extends","assign","arguments","source","hasOwnProperty","call","apply","this","_inheritsLoose","subClass","superClass","create","_setPrototypeOf","constructor","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","p","_construct","Parent","args","Class","Reflect","construct","sham","Proxy","Boolean","valueOf","e","_isNativeReflectConstruct","a","push","instance","Function","bind","_wrapNativeSuper","_cache","Map","undefined","toString","indexOf","TypeError","has","get","set","Wrapper","value","_objectWithoutPropertiesLoose","excluded","sourceKeys","keys","_arrayLikeToArray","arr","len","arr2","Array","_createForOfIteratorHelperLoose","allowArrayLike","it","Symbol","iterator","next","isArray","minLen","n","slice","name","from","test","_unsupportedIterableToArray","done","LuxonError","_Error","Error","InvalidDateTimeError","_LuxonError","reason","toMessage","InvalidIntervalError","_LuxonError2","InvalidDurationError","_LuxonError3","ConflictingSpecificationError","_LuxonError4","InvalidUnitError","_LuxonError5","unit","InvalidArgumentError","_LuxonError6","ZoneIsAbstractError","_LuxonError7","s","l","DATE_SHORT","year","month","day","DATE_MED","DATE_MED_WITH_WEEKDAY","weekday","DATE_FULL","DATE_HUGE","TIME_SIMPLE","hour","minute","TIME_WITH_SECONDS","second","TIME_WITH_SHORT_OFFSET","timeZoneName","TIME_WITH_LONG_OFFSET","TIME_24_SIMPLE","hourCycle","TIME_24_WITH_SECONDS","TIME_24_WITH_SHORT_OFFSET","TIME_24_WITH_LONG_OFFSET","DATETIME_SHORT","DATETIME_SHORT_WITH_SECONDS","DATETIME_MED","DATETIME_MED_WITH_SECONDS","DATETIME_MED_WITH_WEEKDAY","DATETIME_FULL","DATETIME_FULL_WITH_SECONDS","DATETIME_HUGE","DATETIME_HUGE_WITH_SECONDS","isUndefined","isNumber","isInteger","hasRelative","Intl","RelativeTimeFormat","bestBy","by","compare","reduce","best","pair","obj","prop","integerBetween","thing","bottom","top","padStart","input","padded","parseInteger","string","parseInt","parseFloating","parseFloat","parseMillis","fraction","f","Math","floor","roundTo","number","digits","towardZero","factor","pow","trunc","round","isLeapYear","daysInYear","daysInMonth","x","modMonth","objToLocalTS","d","Date","UTC","millisecond","setUTCFullYear","getUTCFullYear","weeksInWeekYear","weekYear","p1","last","p2","untruncateYear","parseZoneInfo","ts","offsetFormat","locale","timeZone","date","intlOpts","modified","parsed","DateTimeFormat","formatToParts","find","m","type","toLowerCase","signedOffset","offHourStr","offMinuteStr","offHour","Number","isNaN","offMin","is","asNumber","numericValue","normalizeObject","normalizer","u","v","normalized","formatOffset","offset","format","hours","abs","minutes","sign","RangeError","timeObject","k","ianaRegex","monthsLong","monthsShort","monthsNarrow","months","concat","weekdaysLong","weekdaysShort","weekdaysNarrow","weekdays","meridiems","erasLong","erasShort","erasNarrow","eras","stringifyTokens","splits","tokenToString","_iterator","_step","token","literal","val","_macroTokenToFormatOpts","D","DD","DDD","DDDD","t","tt","ttt","tttt","T","TT","TTT","TTTT","ff","fff","ffff","F","FF","FFF","FFFF","Formatter","formatOpts","opts","loc","systemLoc","parseFormat","fmt","current","currentFull","bracketed","c","charAt","macroTokenToFormatOpts","_proto","formatWithSystemDefault","dt","redefaultToSystem","dtFormatter","formatDateTime","formatDateTimeParts","resolvedOptions","num","forceSimple","padTo","numberFormatter","formatDateTimeFromString","_this","knownEnglish","listingMode","useDateTimeFormatter","outputCalendar","extract","isOffsetFixed","allowZ","isValid","zone","meridiem","standalone","maybeMacro","era","offsetName","zoneName","weekNumber","ordinal","quarter","formatDurationFromString","dur","lildur","_this2","tokenToField","tokens","realTokens","found","_ref","collapsed","shiftTo","map","filter","mapped","Invalid","explanation","Zone","equals","otherZone","singleton$1","SystemZone","_Zone","getTimezoneOffset","dtfCache","typeToPos","ianaZoneCache","IANAZone","valid","isValidZone","resetCache","isValidSpecifier","NaN","dtf","hour12","_ref2","formatted","filled","_formatted$i","pos","partsOffset","replace","fMonth","exec","fDay","adOrBc","asTS","over","singleton","FixedOffsetZone","fixed","utcInstance","parseSpecifier","r","match","InvalidZone","normalizeZone","defaultZone","lowered","throwOnInvalid","now","defaultLocale","defaultNumberingSystem","defaultOutputCalendar","Settings","resetCaches","Locale","numberingSystem","_excluded","_excluded2","intlLFCache","intlDTCache","getCachedDTF","locString","JSON","stringify","intlNumCache","intlRelCache","sysLocaleCache","listStuff","defaultOK","englishFn","intlFn","mode","PolyNumberFormatter","intl","otherOpts","useGrouping","minimumIntegerDigits","inf","NumberFormat","getCachedINF","PolyDateFormatter","z","offsetZ","isUniversal","gmtOffset","DateTime","fromMillis","_proto2","toJSDate","PolyRelFormatter","isEnglish","style","rtf","_opts","base","cacheKeyOpts","getCachedRTF","_proto3","count","numeric","narrow","units","years","quarters","weeks","days","seconds","lastable","isDay","isInPast","singular","fmtValue","lilUnits","fmtUnit","formatRelativeTime","numbering","specifiedLocale","_parseLocaleString","localeStr","uIndex","smaller","substring","options","_options","calendar","parseLocaleString","parsedLocale","parsedNumberingSystem","parsedOutputCalendar","weekdaysCache","monthsCache","meridiemCache","eraCache","fastNumbersCached","fromOpts","defaultToEN","fromObject","_temp","_proto4","isActuallyEn","hasNoWeirdness","clone","alts","getOwnPropertyNames","redefaultToEN","formatStr","ms","utc","mapMonths","mapWeekdays","_this3","_this4","field","matching","fastNumbers","relFormatter","listFormatter","ListFormat","getCachedLF","startsWith","other","combineRegexes","_len","regexes","_key","full","RegExp","combineExtractors","_len2","extractors","_key2","ex","mergedVals","mergedZone","cursor","_ex","parse","_len3","patterns","_key3","_i","_patterns","_patterns$_i","regex","extractor","simpleParse","_len4","_key4","ret","offsetRegex","isoTimeBaseRegex","isoTimeRegex","isoTimeExtensionRegex","extractISOWeekData","extractISOOrdinalData","sqlTimeRegex","sqlTimeExtensionRegex","int","fallback","extractISOTime","milliseconds","extractISOOffset","local","fullOffset","extractIANAZone","isoTimeOnly","isoDuration","extractISODuration","maybeNegate","force","hasNegativePrefix","yearStr","monthStr","weekStr","dayStr","hourStr","minuteStr","secondStr","millisecondsStr","negativeSeconds","obsOffsets","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","fromStrings","weekdayStr","result","rfc2822","extractRFC2822","obsOffset","milOffset","rfc1123","rfc850","ascii","extractRFC1123Or850","extractASCII","isoYmdWithTimeExtensionRegex","isoWeekWithTimeExtensionRegex","isoOrdinalWithTimeExtensionRegex","isoTimeCombinedRegex","extractISOYmdTimeAndOffset","extractISOWeekTimeAndOffset","extractISOOrdinalDateAndTime","extractISOTimeAndOffset","extractISOTimeOnly","sqlYmdWithTimeExtensionRegex","sqlTimeCombinedRegex","extractISOTimeOffsetAndIANAZone","lowOrderMatrix","casualMatrix","daysInYearAccurate","daysInMonthAccurate","accurateMatrix","orderedUnits$1","reverseUnits","reverse","clone$1","clear","conf","values","conversionAccuracy","Duration","convert","matrix","fromMap","fromUnit","toMap","toUnit","conv","raw","added","ceil","config","accurate","invalid","isLuxonDuration","normalizeUnit","fromDurationLike","durationLike","isDuration","fromISO","text","fromISOTime","week","toFormat","fmtOpts","toHuman","unitDisplay","listStyle","toObject","toISO","toISOTime","millis","toMillis","suppressMilliseconds","suppressSeconds","includePrefix","str","toJSON","as","plus","duration","minus","negate","mapUnits","fn","_Object$keys","reconfigure","normalize","vals","previous","built","accumulated","_iterator2","_step2","ak","lastUnit","own","down","negated","_i2","_Object$keys2","v1","_iterator3","_step3","v2","INVALID$1","Interval","start","end","isLuxonInterval","fromDateTimes","builtStart","friendlyDateTime","builtEnd","validateError","after","before","endIsValid","_split","split","startIsValid","_dur","isInterval","toDuration","startOf","diff","hasSame","isEmpty","isAfter","dateTime","isBefore","contains","splitAt","dateTimes","sorted","sort","results","splitBy","idx","divideEqually","numberOfParts","overlaps","abutsStart","abutsEnd","engulfs","intersection","union","merge","intervals","_intervals$sort$reduc","b","item","sofar","final","xor","currentCount","ends","time","_Array$prototype","difference","toISODate","dateFormat","_temp2","_ref3$separator","separator","invalidReason","mapEndpoints","mapFn","Info","hasDST","proto","setZone","isValidIANAZone","_ref$locale","_ref$numberingSystem","_ref$locObj","locObj","_ref$outputCalendar","monthsFormat","_ref2$locale","_ref2$numberingSystem","_ref2$locObj","_ref2$outputCalendar","_temp3","_ref3","_ref3$locale","_ref3$numberingSystem","_ref3$locObj","weekdaysFormat","_temp4","_ref4","_ref4$locale","_ref4$numberingSystem","_ref4$locObj","_temp5","_ref5$locale","_temp6","_ref6$locale","features","relative","dayDiff","earlier","later","utcDayStart","toUTC","keepLocalTime","_diff","_highOrderDiffs","_differs","lowestOrder","highWater","_differs$_i","differ","delta","_cursor$plus","_cursor$plus2","highOrderDiffs","remainingMillis","lowerOrderUnits","_cursor$plus3","_Duration$fromMillis","numberingSystems","arab","arabext","bali","beng","deva","fullwide","gujr","hanidec","khmr","knda","laoo","limb","mlym","mong","mymr","orya","tamldec","telu","thai","tibt","latn","numberingSystemsUTF16","hanidecChars","digitRegex","append","MISSING_FTP","intUnit","post","deser","code","charCodeAt","search","_numberingSystemsUTF","min","max","parseDigits","spaceOrNBSP","String","fromCharCode","spaceOrNBSPRegExp","fixListRegex","stripInsensitivities","oneOf","strings","startIndex","join","findIndex","groups","simple","unitForToken","_ref5","one","two","three","four","six","oneOrTwo","oneToThree","oneToSix","oneToNine","twoToFour","fourToSix","unitate","partTypeStyleToTokenVal","2-digit","short","long","dayperiod","dayPeriod","dummyDateTimeCache","maybeExpandMacroToken","part","includes","explainFromTokens","disqualifyingUnit","matches","_buildRegex","handlers","_match","h","all","matchIndex","rawMatches","_ref6","Z","specificOffset","q","M","G","y","S","toField","nonLeapLadder","leapLadder","unitOutOfRange","dayOfWeek","js","getUTCDay","computeOrdinal","uncomputeOrdinal","table","month0","gregorianToWeek","gregObj","weekToGregorian","weekData","weekdayOfJan4","yearInDays","_uncomputeOrdinal","gregorianToOrdinal","gregData","ordinalToGregorian","ordinalData","_uncomputeOrdinal2","hasInvalidGregorianData","validYear","validMonth","validDay","hasInvalidTimeData","validHour","validMinute","validSecond","validMillisecond","INVALID","unsupportedZone","possiblyCachedWeekData","inst","old","fixOffset","localTS","tz","utcGuess","o2","o3","tsToObj","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCMilliseconds","objToTS","adjustTime","oPre","millisToAdd","_fixOffset","parseDataToDateTime","parsedZone","toTechFormat","_toISODate","extended","longFormat","_toISOTime","includeOffset","extendedZone","ianaName","defaultUnitValues","defaultWeekUnitValues","defaultOrdinalUnitValues","orderedUnits","orderedWeekUnits","orderedOrdinalUnits","weeknumber","weeksnumber","weeknumbers","weekyear","weekyears","quickDT","tsNow","_objToTS","diffRelative","calendary","lastOpts","argList","ot","_zone","isLuxonDateTime","_lastOpts","_lastOpts2","fromJSDate","zoneToUse","fromSeconds","offsetProvis","containsOrdinal","containsGregorYear","containsGregorMD","containsGregor","definiteWeekDef","defaultValues","useWeekData","objNow","foundFirst","validWeek","validWeekday","validOrdinal","_objToTS2","_parseISODate","fromRFC2822","_parseRFC2822Date","trim","fromHTTP","_parseHTTPDate","fromFormat","_opts$locale","_opts$numberingSystem","localeToUse","_parseFromTokens","_explainFromTokens","fromString","fromSQL","_parseSQL","isDateTime","resolvedLocaleOptions","_Formatter$create$res","toLocal","_ref2$keepLocalTime","_ref2$keepCalendarTim","keepCalendarTime","newTS","offsetGuess","setLocale","settingWeekStuff","mixed","_objToTS4","normalizedUnit","endOf","_this$plus","toLocaleString","toLocaleParts","_ref4$format","_ref4$suppressSeconds","_ref4$suppressMillise","_ref4$includeOffset","_ref4$extendedZone","ext","_ref5$format","toISOWeekDate","_ref6$suppressMillise","_ref6$suppressSeconds","_ref6$includeOffset","_ref6$includePrefix","_ref6$extendedZone","_ref6$format","toRFC2822","toHTTP","toSQLDate","toSQLTime","_ref7","_ref7$includeOffset","_ref7$includeZone","includeZone","_ref7$includeOffsetSp","includeOffsetSpace","toSQL","toSeconds","toUnixInteger","toBSON","includeConfig","otherDateTime","durOpts","otherIsLater","diffed","diffNow","until","inputMs","adjustedToZone","toRelative","padding","toRelativeCalendar","every","fromFormatExplain","_options$locale","_options$numberingSys","fromStringExplain","dateTimeish","VERSION"],"mappings":"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"} \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/sweetalert2/sweetalert2.all.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/sweetalert2/sweetalert2.all.js index a2e73c00..190bdd90 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/sweetalert2/sweetalert2.all.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/sweetalert2/sweetalert2.all.js @@ -1,5 +1,5 @@ /*! -* sweetalert2 v11.3.3 +* sweetalert2 v11.4.19 * Released under the MIT License. */ (function (global, factory) { @@ -27,27 +27,28 @@ }; /** * Capitalize the first letter of a string - * @param str + * @param {string} str + * @returns {string} */ const capitalizeFirstLetter = str => str.charAt(0).toUpperCase() + str.slice(1); /** - * Convert NodeList to Array - * @param nodeList + * @param {NodeList | HTMLCollection | NamedNodeMap | DOMTokenList} nodeList + * @returns {array} */ const toArray = nodeList => Array.prototype.slice.call(nodeList); /** - * Standardise console warnings - * @param message + * Standardize console warnings + * @param {string | array} message */ const warn = message => { console.warn("".concat(consolePrefix, " ").concat(typeof message === 'object' ? message.join(' ') : message)); }; /** - * Standardise console errors - * @param message + * Standardize console errors + * @param {string} message */ const error = message => { @@ -62,7 +63,7 @@ const previousWarnOnceMessages = []; /** * Show a console warning, but only if it hasn't already been shown - * @param message + * @param {string} message */ const warnOnce = message => { @@ -88,6 +89,7 @@ const hasToPromiseFn = arg => arg && typeof arg.toPromise === 'function'; const asPromise = arg => hasToPromiseFn(arg) ? arg.toPromise() : Promise.resolve(arg); const isPromise = arg => arg && Promise.resolve(arg) === arg; + const getRandomElement = arr => arr[Math.floor(Math.random() * arr.length)]; const defaultParams = { title: '', @@ -247,6 +249,11 @@ }; const swalPrefix = 'swal2-'; + /** + * @param {string[]} items + * @returns {object} + */ + const prefix = items => { const result = {}; @@ -256,7 +263,7 @@ return result; }; - const swalClasses = prefix(['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'show', 'hide', 'close', 'title', 'html-container', 'actions', 'confirm', 'deny', 'cancel', 'default-outline', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'input-label', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loader', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error']); + const swalClasses = prefix(['container', 'shown', 'height-auto', 'iosfix', 'popup', 'modal', 'no-backdrop', 'no-transition', 'toast', 'toast-shown', 'show', 'hide', 'close', 'title', 'html-container', 'actions', 'confirm', 'deny', 'cancel', 'default-outline', 'footer', 'icon', 'icon-content', 'image', 'input', 'file', 'range', 'select', 'radio', 'checkbox', 'label', 'textarea', 'inputerror', 'input-label', 'validation-message', 'progress-steps', 'active-progress-step', 'progress-step', 'progress-step-line', 'loader', 'loading', 'styled', 'top', 'top-start', 'top-end', 'top-left', 'top-right', 'center', 'center-start', 'center-end', 'center-left', 'center-right', 'bottom', 'bottom-start', 'bottom-end', 'bottom-left', 'bottom-right', 'grow-row', 'grow-column', 'grow-fullscreen', 'rtl', 'timer-progress-bar', 'timer-progress-bar-container', 'scrollbar-measure', 'icon-success', 'icon-warning', 'icon-info', 'icon-question', 'icon-error', 'no-war']); const iconTypes = prefix(['success', 'warning', 'info', 'question', 'error']); /** @@ -266,42 +273,119 @@ */ const getContainer = () => document.body.querySelector(".".concat(swalClasses.container)); + /** + * @param {string} selectorString + * @returns {HTMLElement | null} + */ + const elementBySelector = selectorString => { const container = getContainer(); return container ? container.querySelector(selectorString) : null; }; + /** + * @param {string} className + * @returns {HTMLElement | null} + */ const elementByClass = className => { return elementBySelector(".".concat(className)); }; + /** + * @returns {HTMLElement | null} + */ + const getPopup = () => elementByClass(swalClasses.popup); + /** + * @returns {HTMLElement | null} + */ + const getIcon = () => elementByClass(swalClasses.icon); + /** + * @returns {HTMLElement | null} + */ + const getTitle = () => elementByClass(swalClasses.title); + /** + * @returns {HTMLElement | null} + */ + const getHtmlContainer = () => elementByClass(swalClasses['html-container']); + /** + * @returns {HTMLElement | null} + */ + const getImage = () => elementByClass(swalClasses.image); + /** + * @returns {HTMLElement | null} + */ + const getProgressSteps = () => elementByClass(swalClasses['progress-steps']); + /** + * @returns {HTMLElement | null} + */ + const getValidationMessage = () => elementByClass(swalClasses['validation-message']); + /** + * @returns {HTMLElement | null} + */ + const getConfirmButton = () => elementBySelector(".".concat(swalClasses.actions, " .").concat(swalClasses.confirm)); + /** + * @returns {HTMLElement | null} + */ + const getDenyButton = () => elementBySelector(".".concat(swalClasses.actions, " .").concat(swalClasses.deny)); + /** + * @returns {HTMLElement | null} + */ + const getInputLabel = () => elementByClass(swalClasses['input-label']); + /** + * @returns {HTMLElement | null} + */ + const getLoader = () => elementBySelector(".".concat(swalClasses.loader)); + /** + * @returns {HTMLElement | null} + */ + const getCancelButton = () => elementBySelector(".".concat(swalClasses.actions, " .").concat(swalClasses.cancel)); + /** + * @returns {HTMLElement | null} + */ + const getActions = () => elementByClass(swalClasses.actions); + /** + * @returns {HTMLElement | null} + */ + const getFooter = () => elementByClass(swalClasses.footer); + /** + * @returns {HTMLElement | null} + */ + const getTimerProgressBar = () => elementByClass(swalClasses['timer-progress-bar']); + /** + * @returns {HTMLElement | null} + */ + const getCloseButton = () => elementByClass(swalClasses.close); // https://github.com/jkup/focusable/blob/master/index.js const focusable = "\n a[href],\n area[href],\n input:not([disabled]),\n select:not([disabled]),\n textarea:not([disabled]),\n button:not([disabled]),\n iframe,\n object,\n embed,\n [tabindex=\"0\"],\n [contenteditable],\n audio[controls],\n video[controls],\n summary\n"; + /** + * @returns {HTMLElement[]} + */ + const getFocusableElements = () => { const focusableElementsWithTabindex = toArray(getPopup().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')) // sort according to tabindex .sort((a, b) => { - a = parseInt(a.getAttribute('tabindex')); - b = parseInt(b.getAttribute('tabindex')); + const tabindexA = parseInt(a.getAttribute('tabindex')); + const tabindexB = parseInt(b.getAttribute('tabindex')); - if (a > b) { + if (tabindexA > tabindexB) { return 1; - } else if (a < b) { + } else if (tabindexA < tabindexB) { return -1; } @@ -310,12 +394,24 @@ const otherFocusableElements = toArray(getPopup().querySelectorAll(focusable)).filter(el => el.getAttribute('tabindex') !== '-1'); return uniqueArray(focusableElementsWithTabindex.concat(otherFocusableElements)).filter(el => isVisible(el)); }; + /** + * @returns {boolean} + */ + const isModal = () => { - return !hasClass(document.body, swalClasses['toast-shown']) && !hasClass(document.body, swalClasses['no-backdrop']); + return hasClass(document.body, swalClasses.shown) && !hasClass(document.body, swalClasses['toast-shown']) && !hasClass(document.body, swalClasses['no-backdrop']); }; + /** + * @returns {boolean} + */ + const isToast = () => { return getPopup() && hasClass(getPopup(), swalClasses.toast); }; + /** + * @returns {boolean} + */ + const isLoading = () => { return getPopup().hasAttribute('data-loading'); }; @@ -366,6 +462,10 @@ return true; }; + /** + * @param {HTMLElement} elem + * @param {SweetAlertOptions} params + */ const removeCustomClasses = (elem, params) => { toArray(elem.classList).forEach(className => { @@ -374,6 +474,12 @@ } }); }; + /** + * @param {HTMLElement} elem + * @param {SweetAlertOptions} params + * @param {string} className + */ + const applyCustomClass = (elem, params, className) => { removeCustomClasses(elem, params); @@ -388,20 +494,20 @@ }; /** * @param {HTMLElement} popup - * @param {string} inputType + * @param {import('./renderers/renderInput').InputClass} inputClass * @returns {HTMLInputElement | null} */ - const getInput = (popup, inputType) => { - if (!inputType) { + const getInput = (popup, inputClass) => { + if (!inputClass) { return null; } - switch (inputType) { + switch (inputClass) { case 'select': case 'textarea': case 'file': - return popup.querySelector(".".concat(swalClasses.popup, " > .").concat(swalClasses[inputType])); + return popup.querySelector(".".concat(swalClasses.popup, " > .").concat(swalClasses[inputClass])); case 'checkbox': return popup.querySelector(".".concat(swalClasses.popup, " > .").concat(swalClasses.checkbox, " input")); @@ -417,7 +523,7 @@ } }; /** - * @param {HTMLInputElement} input + * @param {HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement} input */ const focusInput = input => { @@ -432,7 +538,7 @@ }; /** * @param {HTMLElement | HTMLElement[] | null} target - * @param {string | string[]} classList + * @param {string | string[] | readonly string[]} classList * @param {boolean} condition */ @@ -457,7 +563,7 @@ }; /** * @param {HTMLElement | HTMLElement[] | null} target - * @param {string | string[]} classList + * @param {string | string[] | readonly string[]} classList */ const addClass = (target, classList) => { @@ -465,7 +571,7 @@ }; /** * @param {HTMLElement | HTMLElement[] | null} target - * @param {string | string[]} classList + * @param {string | string[] | readonly string[]} classList */ const removeClass = (target, classList) => { @@ -521,20 +627,55 @@ const hide = elem => { elem.style.display = 'none'; }; + /** + * @param {HTMLElement} parent + * @param {string} selector + * @param {string} property + * @param {string} value + */ + const setStyle = (parent, selector, property, value) => { + /** @type {HTMLElement} */ const el = parent.querySelector(selector); if (el) { el.style[property] = value; } }; - const toggle = (elem, condition, display) => { + /** + * @param {HTMLElement} elem + * @param {any} condition + * @param {string} display + */ + + const toggle = function (elem, condition) { + let display = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'flex'; condition ? show(elem, display) : hide(elem); - }; // borrowed from jquery $(elem).is(':visible') implementation + }; + /** + * borrowed from jquery $(elem).is(':visible') implementation + * + * @param {HTMLElement} elem + * @returns {boolean} + */ const isVisible = elem => !!(elem && (elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length)); + /** + * @returns {boolean} + */ + const allButtonsAreHidden = () => !isVisible(getConfirmButton()) && !isVisible(getDenyButton()) && !isVisible(getCancelButton()); - const isScrollable = elem => !!(elem.scrollHeight > elem.clientHeight); // borrowed from https://stackoverflow.com/a/46352119 + /** + * @returns {boolean} + */ + + const isScrollable = elem => !!(elem.scrollHeight > elem.clientHeight); + /** + * borrowed from https://stackoverflow.com/a/46352119 + * + * @param {HTMLElement} elem + * @returns {boolean} + */ const hasCssAnimation = elem => { const style = window.getComputedStyle(elem); @@ -542,6 +683,11 @@ const transDuration = parseFloat(style.getPropertyValue('transition-duration') || '0'); return animDuration > 0 || transDuration > 0; }; + /** + * @param {number} timer + * @param {boolean} reset + */ + const animateTimerProgressBar = function (timer) { let reset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; const timerProgressBar = getTimerProgressBar(); @@ -569,21 +715,33 @@ timerProgressBar.style.width = "".concat(timerProgressBarPercent, "%"); }; - // Detect Node env + /** + * Detect Node env + * + * @returns {boolean} + */ const isNodeEnv = () => typeof window === 'undefined' || typeof document === 'undefined'; const RESTORE_FOCUS_TIMEOUT = 100; + /** @type {GlobalState} */ + const globalState = {}; const focusPreviousActiveElement = () => { - if (globalState.previousActiveElement && globalState.previousActiveElement.focus) { + if (globalState.previousActiveElement instanceof HTMLElement) { globalState.previousActiveElement.focus(); globalState.previousActiveElement = null; } else if (document.body) { document.body.focus(); } - }; // Restore previous active (focused) element + }; + /** + * Restore previous active (focused) element + * + * @param {boolean} returnFocus + * @returns {Promise} + */ const restoreActiveElement = returnFocus => { @@ -604,6 +762,9 @@ }; const sweetHTML = "\n
            \n \n
              \n
              \n \n

              \n
              \n \n \n
              \n \n \n
              \n \n
              \n \n \n
              \n
              \n
              \n \n \n \n
              \n
              \n
              \n
              \n
              \n
              \n").replace(/(^|\n)\s*/g, ''); + /** + * @returns {boolean} + */ const resetOldContainer = () => { const oldContainer = getContainer(); @@ -625,9 +786,15 @@ const popup = getPopup(); const input = getDirectChildByClass(popup, swalClasses.input); const file = getDirectChildByClass(popup, swalClasses.file); + /** @type {HTMLInputElement} */ + const range = popup.querySelector(".".concat(swalClasses.range, " input")); + /** @type {HTMLOutputElement} */ + const rangeOutput = popup.querySelector(".".concat(swalClasses.range, " output")); const select = getDirectChildByClass(popup, swalClasses.select); + /** @type {HTMLInputElement} */ + const checkbox = popup.querySelector(".".concat(swalClasses.checkbox, " input")); const textarea = getDirectChildByClass(popup, swalClasses.textarea); input.oninput = resetValidationMessage; @@ -643,11 +810,20 @@ range.onchange = () => { resetValidationMessage(); - range.nextSibling.value = range.value; + rangeOutput.value = range.value; }; }; + /** + * @param {string | HTMLElement} target + * @returns {HTMLElement} + */ + const getTarget = target => typeof target === 'string' ? document.querySelector(target) : target; + /** + * @param {SweetAlertOptions} params + */ + const setupAccessibility = params => { const popup = getPopup(); @@ -658,14 +834,20 @@ popup.setAttribute('aria-modal', 'true'); } }; + /** + * @param {HTMLElement} targetElement + */ + const setupRTL = targetElement => { if (window.getComputedStyle(targetElement).direction === 'rtl') { addClass(getContainer(), swalClasses.rtl); } }; - /* - * Add modal + backdrop to DOM + /** + * Add modal + backdrop + no-war message for Russians to DOM + * + * @param {SweetAlertOptions} params */ @@ -692,27 +874,95 @@ setupAccessibility(params); setupRTL(targetElement); addInputChangeListeners(); + noWarMessageForRussians(container, params); }; + /** + * @param {HTMLElement} container + * @param {SweetAlertOptions} params + */ + + const noWarMessageForRussians = (container, params) => { + if (params.toast) { + return; + } // This message is targeted at people who are corrupted by propaganda, everybody else + // is already against war either silently or actively. + // + // The point is to wrap the truth-bomb into a patriotic title so they will actually click it + // and listen to the uncomfortable truth about the war from the people they love or respect. + + + const message = getRandomElement([{ + text: 'ШВАРЦЕНЕГГЕР обратился
              к РУССКОМУ НАРОДУ о войне', + // Arnold is loved in Russia by all people including those who are for this war + // His speech might change the mind of those who are brainwashed by propaganda + youtubeId: 'fWClXZd9c78' + }, { + text: 'РУССКИЙ ПАТРИОТ
              открыл главную тайну спецоперации', + // In this video one of the most famous Russian nationalist leaders, Dmitry Demushkin, + // explains that this war has no sense and produces the exact opposite result of what + // it was intended to do. + youtubeId: '_RjBNkn88yA' + }, { + text: 'ГЕРОЙ НОВОРОССИИ СТРЕЛКОВ
              дал оценку ходу спецоперации', + // In this video Igor Girkin, who played a key role in the annexation of Crimea, + // explains that this war has failed already and all possible outcomes are bad for Russia. + youtubeId: 'yUmzQT4C8JY' + }, { + text: 'ФИНСКИЙ ДРУГ РОССИИ
              говорит ПО-РУССКИ о спецоперации', + youtubeId: 'hkCYb6edUrQ' + }, { + text: 'ЮРИЙ ПОДОЛЯКА честно
              о генералах РУССКОЙ АРМИИ', + youtubeId: 'w4-_8BJKfpk' + }, { + text: 'Полковник ФСБ СТРЕЛКОВ
              об успехах РОССИИ в спецоперации', + youtubeId: 'saK5UTKroDA' + }]); // The message will only be shown to Russian users visiting Russian sites + + if (/^ru\b/.test(navigator.language) && location.host.match(/\.(ru|su|xn--p1ai)$/)) { + const noWar = document.createElement('div'); + noWar.className = swalClasses['no-war']; + setInnerHtml(noWar, "
              ").concat(message.text, "")); + container.appendChild(noWar); + container.style.paddingTop = '4em'; + } + }; + + /** + * @param {HTMLElement | object | string} param + * @param {HTMLElement} target + */ const parseHtmlToContainer = (param, target) => { // DOM element if (param instanceof HTMLElement) { - target.appendChild(param); // Object - } else if (typeof param === 'object') { - handleObject(param, target); // Plain string - } else if (param) { + target.appendChild(param); + } // Object + else if (typeof param === 'object') { + handleObject(param, target); + } // Plain string + else if (param) { setInnerHtml(target, param); } }; + /** + * @param {object} param + * @param {HTMLElement} target + */ const handleObject = (param, target) => { // JQuery element(s) if (param.jquery) { - handleJqueryElem(target, param); // For other objects use their string representation - } else { + handleJqueryElem(target, param); + } // For other objects use their string representation + else { setInnerHtml(target, param.toString()); } }; + /** + * @param {HTMLElement} target + * @param {HTMLElement} elem + */ + const handleJqueryElem = (target, elem) => { target.textContent = ''; @@ -726,6 +976,10 @@ } }; + /** + * @returns {'webkitAnimationEnd' | 'animationend' | false} + */ + const animationEndEvent = (() => { // Prevent run in Node env @@ -737,8 +991,9 @@ const testEl = document.createElement('div'); const transEndEventNames = { WebkitAnimation: 'webkitAnimationEnd', - OAnimation: 'oAnimationEnd oanimationend', - animation: 'animationend' + // Chrome, Safari and Opera + animation: 'animationend' // Standard syntax + }; for (const i in transEndEventNames) { @@ -750,7 +1005,12 @@ return false; })(); - // https://github.com/twbs/bootstrap/blob/master/js/src/modal.js + /** + * Measure scrollbar width for padding body during modal show/hide + * https://github.com/twbs/bootstrap/blob/master/js/src/modal.js + * + * @returns {number} + */ const measureScrollbar = () => { const scrollDiv = document.createElement('div'); @@ -761,6 +1021,11 @@ return scrollbarWidth; }; + /** + * @param {SweetAlert2} instance + * @param {SweetAlertOptions} params + */ + const renderActions = (instance, params) => { const actions = getActions(); const loader = getLoader(); // Actions (buttons) wrapper @@ -779,6 +1044,11 @@ setInnerHtml(loader, params.loaderHtml); applyCustomClass(loader, params, 'loader'); }; + /** + * @param {HTMLElement} actions + * @param {HTMLElement} loader + * @param {SweetAlertOptions} params + */ function renderButtons(actions, loader, params) { const confirmButton = getConfirmButton(); @@ -801,6 +1071,13 @@ } } } + /** + * @param {HTMLElement} confirmButton + * @param {HTMLElement} denyButton + * @param {HTMLElement} cancelButton + * @param {SweetAlertOptions} params + */ + function handleButtonsStyling(confirmButton, denyButton, cancelButton, params) { if (!params.buttonsStyling) { @@ -824,6 +1101,12 @@ addClass(cancelButton, swalClasses['default-outline']); } } + /** + * @param {HTMLElement} button + * @param {'confirm' | 'deny' | 'cancel'} buttonType + * @param {SweetAlertOptions} params + */ + function renderButton(button, buttonType, params) { toggle(button, params["show".concat(capitalizeFirstLetter(buttonType), "Button")], 'inline-block'); @@ -837,6 +1120,29 @@ addClass(button, params["".concat(buttonType, "ButtonClass")]); } + /** + * @param {SweetAlert2} instance + * @param {SweetAlertOptions} params + */ + + const renderContainer = (instance, params) => { + const container = getContainer(); + + if (!container) { + return; + } + + handleBackdropParam(container, params.backdrop); + handlePositionParam(container, params.position); + handleGrowParam(container, params.grow); // Custom class + + applyCustomClass(container, params, 'container'); + }; + /** + * @param {HTMLElement} container + * @param {SweetAlertOptions['backdrop']} backdrop + */ + function handleBackdropParam(container, backdrop) { if (typeof backdrop === 'string') { container.style.background = backdrop; @@ -844,6 +1150,11 @@ addClass([document.documentElement, document.body], swalClasses['no-backdrop']); } } + /** + * @param {HTMLElement} container + * @param {SweetAlertOptions['position']} position + */ + function handlePositionParam(container, position) { if (position in swalClasses) { @@ -853,6 +1164,11 @@ addClass(container, swalClasses.center); } } + /** + * @param {HTMLElement} container + * @param {SweetAlertOptions['grow']} grow + */ + function handleGrowParam(container, grow) { if (grow && typeof grow === 'string') { @@ -864,20 +1180,6 @@ } } - const renderContainer = (instance, params) => { - const container = getContainer(); - - if (!container) { - return; - } - - handleBackdropParam(container, params.backdrop); - handlePositionParam(container, params.position); - handleGrowParam(container, params.grow); // Custom class - - applyCustomClass(container, params, 'container'); - }; - /** * This module contains `WeakMap`s for each effectively-"private property" that a `Swal` has. * For example, to set the private property "foo" of `this` to "bar", you can `privateProps.foo.set(this, 'bar')` @@ -894,18 +1196,25 @@ domCache: new WeakMap() }; - const inputTypes = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea']; + /// + /** @type {InputClass[]} */ + + const inputClasses = ['input', 'file', 'range', 'select', 'radio', 'checkbox', 'textarea']; + /** + * @param {SweetAlert2} instance + * @param {SweetAlertOptions} params + */ + const renderInput = (instance, params) => { const popup = getPopup(); const innerParams = privateProps.innerParams.get(instance); const rerender = !innerParams || params.input !== innerParams.input; - inputTypes.forEach(inputType => { - const inputClass = swalClasses[inputType]; - const inputContainer = getDirectChildByClass(popup, inputClass); // set attributes + inputClasses.forEach(inputClass => { + const inputContainer = getDirectChildByClass(popup, swalClasses[inputClass]); // set attributes - setAttributes(inputType, params.inputAttributes); // set class + setAttributes(inputClass, params.inputAttributes); // set class - inputContainer.className = inputClass; + inputContainer.className = swalClasses[inputClass]; if (rerender) { hide(inputContainer); @@ -921,6 +1230,9 @@ setCustomClass(params); } }; + /** + * @param {SweetAlertOptions} params + */ const showInput = params => { if (!renderInputType[params.input]) { @@ -929,12 +1241,16 @@ const inputContainer = getInputContainer(params.input); const input = renderInputType[params.input](inputContainer, params); - show(input); // input autofocus + show(inputContainer); // input autofocus setTimeout(() => { focusInput(input); }); }; + /** + * @param {HTMLInputElement} input + */ + const removeAttributes = input => { for (let i = 0; i < input.attributes.length; i++) { @@ -945,9 +1261,14 @@ } } }; + /** + * @param {InputClass} inputClass + * @param {SweetAlertOptions['inputAttributes']} inputAttributes + */ - const setAttributes = (inputType, inputAttributes) => { - const input = getInput(getPopup(), inputType); + + const setAttributes = (inputClass, inputAttributes) => { + const input = getInput(getPopup(), inputClass); if (!input) { return; @@ -959,20 +1280,35 @@ input.setAttribute(attr, inputAttributes[attr]); } }; + /** + * @param {SweetAlertOptions} params + */ + const setCustomClass = params => { const inputContainer = getInputContainer(params.input); - if (params.customClass) { + if (typeof params.customClass === 'object') { addClass(inputContainer, params.customClass.input); } }; + /** + * @param {HTMLInputElement | HTMLTextAreaElement} input + * @param {SweetAlertOptions} params + */ + const setInputPlaceholder = (input, params) => { if (!input.placeholder || params.inputPlaceholder) { input.placeholder = params.inputPlaceholder; } }; + /** + * @param {Input} input + * @param {Input} prependTo + * @param {SweetAlertOptions} params + */ + const setInputLabel = (input, prependTo, params) => { if (params.inputLabel) { @@ -981,47 +1317,88 @@ const labelClass = swalClasses['input-label']; label.setAttribute('for', input.id); label.className = labelClass; - addClass(label, params.customClass.inputLabel); + + if (typeof params.customClass === 'object') { + addClass(label, params.customClass.inputLabel); + } + label.innerText = params.inputLabel; prependTo.insertAdjacentElement('beforebegin', label); } }; + /** + * @param {SweetAlertOptions['input']} inputType + * @returns {HTMLElement} + */ + const getInputContainer = inputType => { - const inputClass = swalClasses[inputType] ? swalClasses[inputType] : swalClasses.input; - return getDirectChildByClass(getPopup(), inputClass); + return getDirectChildByClass(getPopup(), swalClasses[inputType] || swalClasses.input); }; + /** + * @param {HTMLInputElement | HTMLOutputElement | HTMLTextAreaElement} input + * @param {SweetAlertOptions['inputValue']} inputValue + */ - const renderInputType = {}; - renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = (input, params) => { - if (typeof params.inputValue === 'string' || typeof params.inputValue === 'number') { - input.value = params.inputValue; - } else if (!isPromise(params.inputValue)) { - warn("Unexpected type of inputValue! Expected \"string\", \"number\" or \"Promise\", got \"".concat(typeof params.inputValue, "\"")); + const checkAndSetInputValue = (input, inputValue) => { + if (['string', 'number'].includes(typeof inputValue)) { + input.value = "".concat(inputValue); + } else if (!isPromise(inputValue)) { + warn("Unexpected type of inputValue! Expected \"string\", \"number\" or \"Promise\", got \"".concat(typeof inputValue, "\"")); } + }; + /** @type Record Input> */ + + + const renderInputType = {}; + /** + * @param {HTMLInputElement} input + * @param {SweetAlertOptions} params + * @returns {HTMLInputElement} + */ + renderInputType.text = renderInputType.email = renderInputType.password = renderInputType.number = renderInputType.tel = renderInputType.url = (input, params) => { + checkAndSetInputValue(input, params.inputValue); setInputLabel(input, input, params); setInputPlaceholder(input, params); input.type = params.input; return input; }; + /** + * @param {HTMLInputElement} input + * @param {SweetAlertOptions} params + * @returns {HTMLInputElement} + */ + renderInputType.file = (input, params) => { setInputLabel(input, input, params); setInputPlaceholder(input, params); return input; }; + /** + * @param {HTMLInputElement} range + * @param {SweetAlertOptions} params + * @returns {HTMLInputElement} + */ + renderInputType.range = (range, params) => { const rangeInput = range.querySelector('input'); const rangeOutput = range.querySelector('output'); - rangeInput.value = params.inputValue; + checkAndSetInputValue(rangeInput, params.inputValue); rangeInput.type = params.input; - rangeOutput.value = params.inputValue; + checkAndSetInputValue(rangeOutput, params.inputValue); setInputLabel(rangeInput, range, params); return range; }; + /** + * @param {HTMLSelectElement} select + * @param {SweetAlertOptions} params + * @returns {HTMLSelectElement} + */ + renderInputType.select = (select, params) => { select.textContent = ''; @@ -1038,34 +1415,54 @@ setInputLabel(select, select, params); return select; }; + /** + * @param {HTMLInputElement} radio + * @returns {HTMLInputElement} + */ + renderInputType.radio = radio => { radio.textContent = ''; return radio; }; + /** + * @param {HTMLLabelElement} checkboxContainer + * @param {SweetAlertOptions} params + * @returns {HTMLInputElement} + */ + renderInputType.checkbox = (checkboxContainer, params) => { - /** @type {HTMLInputElement} */ const checkbox = getInput(getPopup(), 'checkbox'); checkbox.value = '1'; checkbox.id = swalClasses.checkbox; checkbox.checked = Boolean(params.inputValue); const label = checkboxContainer.querySelector('span'); setInnerHtml(label, params.inputPlaceholder); - return checkboxContainer; + return checkbox; }; + /** + * @param {HTMLTextAreaElement} textarea + * @param {SweetAlertOptions} params + * @returns {HTMLTextAreaElement} + */ + renderInputType.textarea = (textarea, params) => { - textarea.value = params.inputValue; + checkAndSetInputValue(textarea, params.inputValue); setInputPlaceholder(textarea, params); setInputLabel(textarea, textarea, params); + /** + * @param {HTMLElement} el + * @returns {number} + */ + + const getMargin = el => parseInt(window.getComputedStyle(el).marginLeft) + parseInt(window.getComputedStyle(el).marginRight); // https://github.com/sweetalert2/sweetalert2/issues/2291 - const getMargin = el => parseInt(window.getComputedStyle(el).marginLeft) + parseInt(window.getComputedStyle(el).marginRight); setTimeout(() => { - // #2291 + // https://github.com/sweetalert2/sweetalert2/issues/1699 if ('MutationObserver' in window) { - // #1699 const initialPopupWidth = parseInt(window.getComputedStyle(getPopup()).width); const textareaResizeHandler = () => { @@ -1087,23 +1484,35 @@ return textarea; }; + /** + * @param {SweetAlert2} instance + * @param {SweetAlertOptions} params + */ + const renderContent = (instance, params) => { const htmlContainer = getHtmlContainer(); applyCustomClass(htmlContainer, params, 'htmlContainer'); // Content as HTML if (params.html) { parseHtmlToContainer(params.html, htmlContainer); - show(htmlContainer, 'block'); // Content as plain text - } else if (params.text) { + show(htmlContainer, 'block'); + } // Content as plain text + else if (params.text) { htmlContainer.textContent = params.text; - show(htmlContainer, 'block'); // No content - } else { + show(htmlContainer, 'block'); + } // No content + else { hide(htmlContainer); } renderInput(instance, params); }; + /** + * @param {SweetAlert2} instance + * @param {SweetAlertOptions} params + */ + const renderFooter = (instance, params) => { const footer = getFooter(); toggle(footer, params.footer); @@ -1116,6 +1525,11 @@ applyCustomClass(footer, params, 'footer'); }; + /** + * @param {SweetAlert2} instance + * @param {SweetAlertOptions} params + */ + const renderCloseButton = (instance, params) => { const closeButton = getCloseButton(); setInnerHtml(closeButton, params.closeButtonHtml); // Custom class @@ -1125,6 +1539,11 @@ closeButton.setAttribute('aria-label', params.closeButtonAriaLabel); }; + /** + * @param {SweetAlert2} instance + * @param {SweetAlertOptions} params + */ + const renderIcon = (instance, params) => { const innerParams = privateProps.innerParams.get(instance); const icon = getIcon(); // if the given icon already rendered, apply the styling without re-rendering the icon @@ -1137,12 +1556,14 @@ } if (!params.icon && !params.iconHtml) { - return hide(icon); + hide(icon); + return; } if (params.icon && Object.keys(iconTypes).indexOf(params.icon) === -1) { error("Unknown icon! Expected \"success\", \"error\", \"warning\", \"info\" or \"question\", got \"".concat(params.icon, "\"")); - return hide(icon); + hide(icon); + return; } show(icon); // Custom or default content @@ -1152,6 +1573,10 @@ addClass(icon, params.showClass.icon); }; + /** + * @param {HTMLElement} icon + * @param {SweetAlertOptions} params + */ const applyStyles = (icon, params) => { for (const iconType in iconTypes) { @@ -1164,15 +1589,17 @@ setColor(icon, params); // Success icon background color - adjustSuccessIconBackgoundColor(); // Custom class + adjustSuccessIconBackgroundColor(); // Custom class applyCustomClass(icon, params, 'icon'); }; // Adjust success icon background color to match the popup background color - const adjustSuccessIconBackgoundColor = () => { + const adjustSuccessIconBackgroundColor = () => { const popup = getPopup(); const popupBackgroundColor = window.getComputedStyle(popup).getPropertyValue('background-color'); + /** @type {NodeListOf} */ + const successIconParts = popup.querySelectorAll('[class^=swal2-success-circular-line], .swal2-success-fix'); for (let i = 0; i < successIconParts.length; i++) { @@ -1180,24 +1607,42 @@ } }; + const successIconHtml = "\n
              \n \n
              \n
              \n"; + const errorIconHtml = "\n \n \n \n \n"; + /** + * @param {HTMLElement} icon + * @param {SweetAlertOptions} params + */ + const setContent = (icon, params) => { - icon.textContent = ''; + let oldContent = icon.innerHTML; + let newContent; if (params.iconHtml) { - setInnerHtml(icon, iconContent(params.iconHtml)); + newContent = iconContent(params.iconHtml); } else if (params.icon === 'success') { - setInnerHtml(icon, "\n
              \n \n
              \n
              \n "); + newContent = successIconHtml; + oldContent = oldContent.replace(/ style=".*?"/g, ''); // undo adjustSuccessIconBackgroundColor() } else if (params.icon === 'error') { - setInnerHtml(icon, "\n \n \n \n \n "); + newContent = errorIconHtml; } else { const defaultIconHtml = { question: '?', warning: '!', info: 'i' }; - setInnerHtml(icon, iconContent(defaultIconHtml[params.icon])); + newContent = iconContent(defaultIconHtml[params.icon]); + } + + if (oldContent.trim() !== newContent.trim()) { + setInnerHtml(icon, newContent); } }; + /** + * @param {HTMLElement} icon + * @param {SweetAlertOptions} params + */ + const setColor = (icon, params) => { if (!params.iconColor) { @@ -1213,9 +1658,19 @@ setStyle(icon, '.swal2-success-ring', 'borderColor', params.iconColor); }; + /** + * @param {string} content + * @returns {string} + */ + const iconContent = content => "
              ").concat(content, "
              "); + /** + * @param {SweetAlert2} instance + * @param {SweetAlertOptions} params + */ + const renderImage = (instance, params) => { const image = getImage(); @@ -1235,23 +1690,10 @@ applyCustomClass(image, params, 'image'); }; - const createStepElement = step => { - const stepEl = document.createElement('li'); - addClass(stepEl, swalClasses['progress-step']); - setInnerHtml(stepEl, step); - return stepEl; - }; - - const createLineElement = params => { - const lineEl = document.createElement('li'); - addClass(lineEl, swalClasses['progress-step-line']); - - if (params.progressStepsDistance) { - lineEl.style.width = params.progressStepsDistance; - } - - return lineEl; - }; + /** + * @param {SweetAlert2} instance + * @param {SweetAlertOptions} params + */ const renderProgressSteps = (instance, params) => { const progressStepsContainer = getProgressSteps(); @@ -1281,6 +1723,38 @@ } }); }; + /** + * @param {string} step + * @returns {HTMLLIElement} + */ + + const createStepElement = step => { + const stepEl = document.createElement('li'); + addClass(stepEl, swalClasses['progress-step']); + setInnerHtml(stepEl, step); + return stepEl; + }; + /** + * @param {SweetAlertOptions} params + * @returns {HTMLLIElement} + */ + + + const createLineElement = params => { + const lineEl = document.createElement('li'); + addClass(lineEl, swalClasses['progress-step-line']); + + if (params.progressStepsDistance) { + applyNumericalStyle(lineEl, 'width', params.progressStepsDistance); + } + + return lineEl; + }; + + /** + * @param {SweetAlert2} instance + * @param {SweetAlertOptions} params + */ const renderTitle = (instance, params) => { const title = getTitle(); @@ -1298,12 +1772,17 @@ applyCustomClass(title, params, 'title'); }; + /** + * @param {SweetAlert2} instance + * @param {SweetAlertOptions} params + */ + const renderPopup = (instance, params) => { const container = getContainer(); const popup = getPopup(); // Width + // https://github.com/sweetalert2/sweetalert2/issues/2170 if (params.toast) { - // #2170 applyNumericalStyle(container, 'width', params.width); popup.style.width = '100%'; popup.insertBefore(getLoader(), getIcon()); @@ -1327,6 +1806,10 @@ addClasses(popup, params); }; + /** + * @param {HTMLElement} popup + * @param {SweetAlertOptions} params + */ const addClasses = (popup, params) => { // Default Class + showClass when updating Swal.update({}) @@ -1352,6 +1835,11 @@ } }; + /** + * @param {SweetAlert2} instance + * @param {SweetAlertOptions} params + */ + const render = (instance, params) => { renderPopup(instance, params); renderContainer(instance, params); @@ -1414,32 +1902,39 @@ if (!template) { return {}; } + /** @type {DocumentFragment} */ + const templateContent = template.content; showWarningsForElements(templateContent); const result = Object.assign(getSwalParams(templateContent), getSwalButtons(templateContent), getSwalImage(templateContent), getSwalIcon(templateContent), getSwalInput(templateContent), getSwalStringParams(templateContent, swalStringParams)); return result; }; + /** + * @param {DocumentFragment} templateContent + */ const getSwalParams = templateContent => { const result = {}; toArray(templateContent.querySelectorAll('swal-param')).forEach(param => { showWarningsForAttributes(param, ['name', 'value']); const paramName = param.getAttribute('name'); - let value = param.getAttribute('value'); + const value = param.getAttribute('value'); if (typeof defaultParams[paramName] === 'boolean' && value === 'false') { - value = false; + result[paramName] = false; } if (typeof defaultParams[paramName] === 'object') { - value = JSON.parse(value); + result[paramName] = JSON.parse(value); } - - result[paramName] = value; }); return result; }; + /** + * @param {DocumentFragment} templateContent + */ + const getSwalButtons = templateContent => { const result = {}; @@ -1459,9 +1954,15 @@ }); return result; }; + /** + * @param {DocumentFragment} templateContent + */ + const getSwalImage = templateContent => { const result = {}; + /** @type {HTMLElement} */ + const image = templateContent.querySelector('swal-image'); if (image) { @@ -1486,9 +1987,15 @@ return result; }; + /** + * @param {DocumentFragment} templateContent + */ + const getSwalIcon = templateContent => { const result = {}; + /** @type {HTMLElement} */ + const icon = templateContent.querySelector('swal-icon'); if (icon) { @@ -1507,9 +2014,15 @@ return result; }; + /** + * @param {DocumentFragment} templateContent + */ + const getSwalInput = templateContent => { const result = {}; + /** @type {HTMLElement} */ + const input = templateContent.querySelector('swal-input'); if (input) { @@ -1543,12 +2056,19 @@ return result; }; + /** + * @param {DocumentFragment} templateContent + * @param {string[]} paramNames + */ + const getSwalStringParams = (templateContent, paramNames) => { const result = {}; for (const i in paramNames) { const paramName = paramNames[i]; + /** @type {HTMLElement} */ + const tag = templateContent.querySelector(paramName); if (tag) { @@ -1559,10 +2079,14 @@ return result; }; + /** + * @param {DocumentFragment} templateContent + */ - const showWarningsForElements = template => { + + const showWarningsForElements = templateContent => { const allowedElements = swalStringParams.concat(['swal-param', 'swal-button', 'swal-image', 'swal-icon', 'swal-input', 'swal-input-option']); - toArray(template.children).forEach(el => { + toArray(templateContent.children).forEach(el => { const tagName = el.tagName.toLowerCase(); if (allowedElements.indexOf(tagName) === -1) { @@ -1570,6 +2094,11 @@ } }); }; + /** + * @param {HTMLElement} el + * @param {string[]} allowedAttributes + */ + const showWarningsForAttributes = (el, allowedAttributes) => { toArray(el.attributes).forEach(attribute => { @@ -1580,15 +2109,30 @@ }; var defaultInputValidators = { + /** + * @param {string} string + * @param {string} validationMessage + * @returns {Promise} + */ email: (string, validationMessage) => { return /^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid email address'); }, + + /** + * @param {string} string + * @param {string} validationMessage + * @returns {Promise} + */ url: (string, validationMessage) => { // taken from https://stackoverflow.com/a/3809435 with a small change from #1306 and #2013 return /^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(string) ? Promise.resolve() : Promise.resolve(validationMessage || 'Invalid URL'); } }; + /** + * @param {SweetAlertOptions} params + */ + function setDefaultInputValidators(params) { // Use default `inputValidator` for supported input types if not provided if (!params.inputValidator) { @@ -1599,6 +2143,10 @@ }); } } + /** + * @param {SweetAlertOptions} params + */ + function validateCustomTargetElement(params) { // Determine if the custom target element is valid @@ -1610,7 +2158,7 @@ /** * Set type, text and actions on popup * - * @param params + * @param {SweetAlertOptions} params */ @@ -1712,22 +2260,28 @@ /* istanbul ignore file */ const iOSfix = () => { - // @ts-ignore - const iOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1; + const iOS = // @ts-ignore + /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1; if (iOS && !hasClass(document.body, swalClasses.iosfix)) { const offset = document.body.scrollTop; document.body.style.top = "".concat(offset * -1, "px"); addClass(document.body, swalClasses.iosfix); lockBodyScroll(); - addBottomPaddingForTallPopups(); // #1948 + addBottomPaddingForTallPopups(); } }; + /** + * https://github.com/sweetalert2/sweetalert2/issues/1948 + */ const addBottomPaddingForTallPopups = () => { - const safari = !navigator.userAgent.match(/(CriOS|FxiOS|EdgiOS|YaBrowser|UCBrowser)/i); + const ua = navigator.userAgent; + const iOS = !!ua.match(/iPad/i) || !!ua.match(/iPhone/i); + const webkit = !!ua.match(/WebKit/i); + const iOSSafari = iOS && webkit && !ua.match(/CriOS/i); - if (safari) { + if (iOSSafari) { const bottomPanelHeight = 44; if (getPopup().scrollHeight > window.innerHeight - bottomPanelHeight) { @@ -1735,9 +2289,12 @@ } } }; + /** + * https://github.com/sweetalert2/sweetalert2/issues/1246 + */ + const lockBodyScroll = () => { - // #1246 const container = getContainer(); let preventTouchMove; @@ -1757,7 +2314,7 @@ const target = event.target; const container = getContainer(); - if (isStylys(event) || isZoom(event)) { + if (isStylus(event) || isZoom(event)) { return false; } @@ -1774,14 +2331,26 @@ return false; }; + /** + * https://github.com/sweetalert2/sweetalert2/issues/1786 + * + * @param {*} event + * @returns {boolean} + */ - const isStylys = event => { - // #1786 + + const isStylus = event => { return event.touches && event.touches.length && event.touches[0].touchType === 'stylus'; }; + /** + * https://github.com/sweetalert2/sweetalert2/issues/1891 + * + * @param {TouchEvent} event + * @returns {boolean} + */ + const isZoom = event => { - // #1891 return event.touches && event.touches.length > 1; }; @@ -1868,7 +2437,7 @@ }; const addClasses$1 = (container, popup, params) => { - addClass(container, params.showClass.backdrop); // the workaround with setting/unsetting opacity is needed for #2019 and 2059 + addClass(container, params.showClass.backdrop); // this workaround with opacity is needed for https://github.com/sweetalert2/sweetalert2/issues/2059 popup.style.setProperty('opacity', '0', 'important'); show(popup, 'grid'); @@ -1908,8 +2477,8 @@ } show(loader); - popup.setAttribute('data-loading', true); - popup.setAttribute('aria-busy', true); + popup.setAttribute('data-loading', 'true'); + popup.setAttribute('aria-busy', 'true'); popup.focus(); }; @@ -2105,210 +2674,75 @@ return inputValue && inputValue.toString() === optionValue.toString(); }; - const handleConfirmButtonClick = instance => { - const innerParams = privateProps.innerParams.get(instance); - instance.disableButtons(); + /** + * Hides loader and shows back the button which was hidden by .showLoading() + */ - if (innerParams.input) { - handleConfirmOrDenyWithInput(instance, 'confirm'); - } else { - confirm(instance, true); + function hideLoading() { + // do nothing if popup is closed + const innerParams = privateProps.innerParams.get(this); + + if (!innerParams) { + return; } - }; - const handleDenyButtonClick = instance => { - const innerParams = privateProps.innerParams.get(instance); - instance.disableButtons(); - if (innerParams.returnInputValueOnDeny) { - handleConfirmOrDenyWithInput(instance, 'deny'); + const domCache = privateProps.domCache.get(this); + hide(domCache.loader); + + if (isToast()) { + if (innerParams.icon) { + show(getIcon()); + } } else { - deny(instance, false); + showRelatedButton(domCache); } - }; - const handleCancelButtonClick = (instance, dismissWith) => { - instance.disableButtons(); - dismissWith(DismissReason.cancel); - }; - const handleConfirmOrDenyWithInput = (instance, type - /* 'confirm' | 'deny' */ - ) => { - const innerParams = privateProps.innerParams.get(instance); - const inputValue = getInputValue(instance, innerParams); + removeClass([domCache.popup, domCache.actions], swalClasses.loading); + domCache.popup.removeAttribute('aria-busy'); + domCache.popup.removeAttribute('data-loading'); + domCache.confirmButton.disabled = false; + domCache.denyButton.disabled = false; + domCache.cancelButton.disabled = false; + } - if (innerParams.inputValidator) { - handleInputValidator(instance, inputValue, type); - } else if (!instance.getInput().checkValidity()) { - instance.enableButtons(); - instance.showValidationMessage(innerParams.validationMessage); - } else if (type === 'deny') { - deny(instance, inputValue); - } else { - confirm(instance, inputValue); + const showRelatedButton = domCache => { + const buttonToReplace = domCache.popup.getElementsByClassName(domCache.loader.getAttribute('data-button-to-replace')); + + if (buttonToReplace.length) { + show(buttonToReplace[0], 'inline-block'); + } else if (allButtonsAreHidden()) { + hide(domCache.actions); } }; - const handleInputValidator = (instance, inputValue, type - /* 'confirm' | 'deny' */ - ) => { - const innerParams = privateProps.innerParams.get(instance); - instance.disableInput(); - const validationPromise = Promise.resolve().then(() => asPromise(innerParams.inputValidator(inputValue, innerParams.validationMessage))); - validationPromise.then(validationMessage => { - instance.enableButtons(); - instance.enableInput(); + /** + * Gets the input DOM node, this method works with input parameter. + * @returns {HTMLElement | null} + */ - if (validationMessage) { - instance.showValidationMessage(validationMessage); - } else if (type === 'deny') { - deny(instance, inputValue); - } else { - confirm(instance, inputValue); - } - }); - }; - - const deny = (instance, value) => { - const innerParams = privateProps.innerParams.get(instance || undefined); - - if (innerParams.showLoaderOnDeny) { - showLoading(getDenyButton()); - } - - if (innerParams.preDeny) { - privateProps.awaitingPromise.set(instance || undefined, true); // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesnt get destroyed until the result from this preDeny's promise is received - - const preDenyPromise = Promise.resolve().then(() => asPromise(innerParams.preDeny(value, innerParams.validationMessage))); - preDenyPromise.then(preDenyValue => { - if (preDenyValue === false) { - instance.hideLoading(); - } else { - instance.closePopup({ - isDenied: true, - value: typeof preDenyValue === 'undefined' ? value : preDenyValue - }); - } - }).catch(error$$1 => rejectWith(instance || undefined, error$$1)); - } else { - instance.closePopup({ - isDenied: true, - value - }); - } - }; - - const succeedWith = (instance, value) => { - instance.closePopup({ - isConfirmed: true, - value - }); - }; - - const rejectWith = (instance, error$$1) => { - instance.rejectPromise(error$$1); - }; - - const confirm = (instance, value) => { - const innerParams = privateProps.innerParams.get(instance || undefined); - - if (innerParams.showLoaderOnConfirm) { - showLoading(); - } - - if (innerParams.preConfirm) { - instance.resetValidationMessage(); - privateProps.awaitingPromise.set(instance || undefined, true); // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesnt get destroyed until the result from this preConfirm's promise is received - - const preConfirmPromise = Promise.resolve().then(() => asPromise(innerParams.preConfirm(value, innerParams.validationMessage))); - preConfirmPromise.then(preConfirmValue => { - if (isVisible(getValidationMessage()) || preConfirmValue === false) { - instance.hideLoading(); - } else { - succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue); - } - }).catch(error$$1 => rejectWith(instance || undefined, error$$1)); - } else { - succeedWith(instance, value); - } - }; - - const handlePopupClick = (instance, domCache, dismissWith) => { - const innerParams = privateProps.innerParams.get(instance); - - if (innerParams.toast) { - handleToastClick(instance, domCache, dismissWith); - } else { - // Ignore click events that had mousedown on the popup but mouseup on the container - // This can happen when the user drags a slider - handleModalMousedown(domCache); // Ignore click events that had mousedown on the container but mouseup on the popup + function getInput$1(instance) { + const innerParams = privateProps.innerParams.get(instance || this); + const domCache = privateProps.domCache.get(instance || this); - handleContainerMousedown(domCache); - handleModalClick(instance, domCache, dismissWith); + if (!domCache) { + return null; } - }; - - const handleToastClick = (instance, domCache, dismissWith) => { - // Closing toast by internal click - domCache.popup.onclick = () => { - const innerParams = privateProps.innerParams.get(instance); - if (innerParams && (isAnyButtonShown(innerParams) || innerParams.timer || innerParams.input)) { - return; - } + return getInput(domCache.popup, innerParams.input); + } - dismissWith(DismissReason.close); - }; - }; /** - * @param {*} innerParams - * @returns {boolean} + * This module contains `WeakMap`s for each effectively-"private property" that a `Swal` has. + * For example, to set the private property "foo" of `this` to "bar", you can `privateProps.foo.set(this, 'bar')` + * This is the approach that Babel will probably take to implement private methods/fields + * https://github.com/tc39/proposal-private-methods + * https://github.com/babel/babel/pull/7555 + * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module* + * then we can use that language feature. */ - - - const isAnyButtonShown = innerParams => { - return innerParams.showConfirmButton || innerParams.showDenyButton || innerParams.showCancelButton || innerParams.showCloseButton; - }; - - let ignoreOutsideClick = false; - - const handleModalMousedown = domCache => { - domCache.popup.onmousedown = () => { - domCache.container.onmouseup = function (e) { - domCache.container.onmouseup = undefined; // We only check if the mouseup target is the container because usually it doesn't - // have any other direct children aside of the popup - - if (e.target === domCache.container) { - ignoreOutsideClick = true; - } - }; - }; - }; - - const handleContainerMousedown = domCache => { - domCache.container.onmousedown = () => { - domCache.popup.onmouseup = function (e) { - domCache.popup.onmouseup = undefined; // We also need to check if the mouseup target is a child of the popup - - if (e.target === domCache.popup || domCache.popup.contains(e.target)) { - ignoreOutsideClick = true; - } - }; - }; - }; - - const handleModalClick = (instance, domCache, dismissWith) => { - domCache.container.onclick = e => { - const innerParams = privateProps.innerParams.get(instance); - - if (ignoreOutsideClick) { - ignoreOutsideClick = false; - return; - } - - if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) { - dismissWith(DismissReason.backdrop); - } - }; + var privateMethods = { + swalPromiseResolve: new WeakMap(), + swalPromiseReject: new WeakMap() }; /* @@ -2334,13 +2768,27 @@ const clickCancel = () => getCancelButton() && getCancelButton().click(); - const addKeydownHandler = (instance, globalState, innerParams, dismissWith) => { + /** + * @param {GlobalState} globalState + */ + + const removeKeydownHandler = globalState => { if (globalState.keydownTarget && globalState.keydownHandlerAdded) { globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, { capture: globalState.keydownListenerCapture }); globalState.keydownHandlerAdded = false; } + }; + /** + * @param {SweetAlert2} instance + * @param {GlobalState} globalState + * @param {SweetAlertOptions} innerParams + * @param {*} dismissWith + */ + + const addKeydownHandler = (instance, globalState, innerParams, dismissWith) => { + removeKeydownHandler(globalState); if (!innerParams.toast) { globalState.keydownHandler = e => keydownHandler(instance, e, dismissWith); @@ -2352,7 +2800,12 @@ }); globalState.keydownHandlerAdded = true; } - }; // Focus handling + }; + /** + * @param {SweetAlertOptions} innerParams + * @param {number} index + * @param {number} increment + */ const setFocus = (innerParams, index, increment) => { const focusableElements = getFocusableElements(); // search for visible elements and select the next possible match @@ -2374,12 +2827,25 @@ }; const arrowKeysNextButton = ['ArrowRight', 'ArrowDown']; const arrowKeysPreviousButton = ['ArrowLeft', 'ArrowUp']; + /** + * @param {SweetAlert2} instance + * @param {KeyboardEvent} e + * @param {function} dismissWith + */ const keydownHandler = (instance, e, dismissWith) => { const innerParams = privateProps.innerParams.get(instance); if (!innerParams) { return; // This instance has already been destroyed + } // Ignore keydown during IME composition + // https://developer.mozilla.org/en-US/docs/Web/API/Document/keydown_event#ignoring_keydown_during_ime_composition + // https://github.com/sweetalert2/sweetalert2/issues/720 + // https://github.com/sweetalert2/sweetalert2/issues/2406 + + + if (e.isComposing || e.keyCode === 229) { + return; } if (innerParams.stopKeydownPropagation) { @@ -2388,23 +2854,32 @@ if (e.key === 'Enter') { - handleEnter(instance, e, innerParams); // TAB - } else if (e.key === 'Tab') { - handleTab(e, innerParams); // ARROWS - switch focus between buttons - } else if ([...arrowKeysNextButton, ...arrowKeysPreviousButton].includes(e.key)) { - handleArrows(e.key); // ESC - } else if (e.key === 'Escape') { + handleEnter(instance, e, innerParams); + } // TAB + else if (e.key === 'Tab') { + handleTab(e, innerParams); + } // ARROWS - switch focus between buttons + else if ([...arrowKeysNextButton, ...arrowKeysPreviousButton].includes(e.key)) { + handleArrows(e.key); + } // ESC + else if (e.key === 'Escape') { handleEsc(e, innerParams, dismissWith); } }; + /** + * @param {SweetAlert2} instance + * @param {KeyboardEvent} e + * @param {SweetAlertOptions} innerParams + */ + const handleEnter = (instance, e, innerParams) => { - // #720 #721 - if (e.isComposing) { + // https://github.com/sweetalert2/sweetalert2/issues/2386 + if (!callIfFunction(innerParams.allowEnterKey)) { return; } - if (e.target && instance.getInput() && e.target.outerHTML === instance.getInput().outerHTML) { + if (e.target && instance.getInput() && e.target instanceof HTMLElement && e.target.outerHTML === instance.getInput().outerHTML) { if (['textarea', 'file'].includes(innerParams.input)) { return; // do not submit } @@ -2413,6 +2888,11 @@ e.preventDefault(); } }; + /** + * @param {KeyboardEvent} e + * @param {SweetAlertOptions} innerParams + */ + const handleTab = (e, innerParams) => { const targetElement = e.target; @@ -2424,36 +2904,58 @@ btnIndex = i; break; } - } + } // Cycle to the next button + if (!e.shiftKey) { - // Cycle to the next button setFocus(innerParams, btnIndex, 1); - } else { - // Cycle to the prev button + } // Cycle to the prev button + else { setFocus(innerParams, btnIndex, -1); } e.stopPropagation(); e.preventDefault(); }; + /** + * @param {string} key + */ + const handleArrows = key => { const confirmButton = getConfirmButton(); const denyButton = getDenyButton(); const cancelButton = getCancelButton(); - if (![confirmButton, denyButton, cancelButton].includes(document.activeElement)) { + if (document.activeElement instanceof HTMLElement && ![confirmButton, denyButton, cancelButton].includes(document.activeElement)) { return; } const sibling = arrowKeysNextButton.includes(key) ? 'nextElementSibling' : 'previousElementSibling'; - const buttonToFocus = document.activeElement[sibling]; + let buttonToFocus = document.activeElement; + + for (let i = 0; i < getActions().children.length; i++) { + buttonToFocus = buttonToFocus[sibling]; + + if (!buttonToFocus) { + return; + } + + if (buttonToFocus instanceof HTMLButtonElement && isVisible(buttonToFocus)) { + break; + } + } - if (buttonToFocus instanceof HTMLElement) { + if (buttonToFocus instanceof HTMLButtonElement) { buttonToFocus.focus(); } }; + /** + * @param {KeyboardEvent} e + * @param {SweetAlertOptions} innerParams + * @param {function} dismissWith + */ + const handleEsc = (e, innerParams, dismissWith) => { if (callIfFunction(innerParams.allowEscapeKey)) { @@ -2462,304 +2964,36 @@ } }; - const isJqueryElement = elem => typeof elem === 'object' && elem.jquery; - - const isElement = elem => elem instanceof Element || isJqueryElement(elem); - - const argsToParams = args => { - const params = {}; + /* + * Instance method to close sweetAlert + */ - if (typeof args[0] === 'object' && !isElement(args[0])) { - Object.assign(params, args[0]); + function removePopupAndResetState(instance, container, returnFocus, didClose) { + if (isToast()) { + triggerDidCloseAndDispose(instance, didClose); } else { - ['title', 'html', 'icon'].forEach((name, index) => { - const arg = args[index]; - - if (typeof arg === 'string' || isElement(arg)) { - params[name] = arg; - } else if (arg !== undefined) { - error("Unexpected type of ".concat(name, "! Expected \"string\" or \"Element\", got ").concat(typeof arg)); - } - }); + restoreActiveElement(returnFocus).then(() => triggerDidCloseAndDispose(instance, didClose)); + removeKeydownHandler(globalState); } - return params; - }; + const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); // workaround for #2088 + // for some reason removing the container in Safari will scroll the document to bottom - function fire() { - const Swal = this; + if (isSafari) { + container.setAttribute('style', 'display:none !important'); + container.removeAttribute('class'); + container.innerHTML = ''; + } else { + container.remove(); + } - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; + if (isModal()) { + undoScrollbar(); + undoIOSfix(); + unsetAriaHidden(); } - return new Swal(...args); - } - - /** - * Returns an extended version of `Swal` containing `params` as defaults. - * Useful for reusing Swal configuration. - * - * For example: - * - * Before: - * const textPromptOptions = { input: 'text', showCancelButton: true } - * const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' }) - * const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' }) - * - * After: - * const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true }) - * const {value: firstName} = await TextPrompt('What is your first name?') - * const {value: lastName} = await TextPrompt('What is your last name?') - * - * @param mixinParams - */ - function mixin(mixinParams) { - class MixinSwal extends this { - _main(params, priorityMixinParams) { - return super._main(params, Object.assign({}, mixinParams, priorityMixinParams)); - } - - } - - return MixinSwal; - } - - /** - * If `timer` parameter is set, returns number of milliseconds of timer remained. - * Otherwise, returns undefined. - */ - - const getTimerLeft = () => { - return globalState.timeout && globalState.timeout.getTimerLeft(); - }; - /** - * Stop timer. Returns number of milliseconds of timer remained. - * If `timer` parameter isn't set, returns undefined. - */ - - const stopTimer = () => { - if (globalState.timeout) { - stopTimerProgressBar(); - return globalState.timeout.stop(); - } - }; - /** - * Resume timer. Returns number of milliseconds of timer remained. - * If `timer` parameter isn't set, returns undefined. - */ - - const resumeTimer = () => { - if (globalState.timeout) { - const remaining = globalState.timeout.start(); - animateTimerProgressBar(remaining); - return remaining; - } - }; - /** - * Resume timer. Returns number of milliseconds of timer remained. - * If `timer` parameter isn't set, returns undefined. - */ - - const toggleTimer = () => { - const timer = globalState.timeout; - return timer && (timer.running ? stopTimer() : resumeTimer()); - }; - /** - * Increase timer. Returns number of milliseconds of an updated timer. - * If `timer` parameter isn't set, returns undefined. - */ - - const increaseTimer = n => { - if (globalState.timeout) { - const remaining = globalState.timeout.increase(n); - animateTimerProgressBar(remaining, true); - return remaining; - } - }; - /** - * Check if timer is running. Returns true if timer is running - * or false if timer is paused or stopped. - * If `timer` parameter isn't set, returns undefined - */ - - const isTimerRunning = () => { - return globalState.timeout && globalState.timeout.isRunning(); - }; - - let bodyClickListenerAdded = false; - const clickHandlers = {}; - function bindClickHandler() { - let attr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'data-swal-template'; - clickHandlers[attr] = this; - - if (!bodyClickListenerAdded) { - document.body.addEventListener('click', bodyClickListener); - bodyClickListenerAdded = true; - } - } - - const bodyClickListener = event => { - for (let el = event.target; el && el !== document; el = el.parentNode) { - for (const attr in clickHandlers) { - const template = el.getAttribute(attr); - - if (template) { - clickHandlers[attr].fire({ - template - }); - return; - } - } - } - }; - - - - var staticMethods = /*#__PURE__*/Object.freeze({ - isValidParameter: isValidParameter, - isUpdatableParameter: isUpdatableParameter, - isDeprecatedParameter: isDeprecatedParameter, - argsToParams: argsToParams, - isVisible: isVisible$1, - clickConfirm: clickConfirm, - clickDeny: clickDeny, - clickCancel: clickCancel, - getContainer: getContainer, - getPopup: getPopup, - getTitle: getTitle, - getHtmlContainer: getHtmlContainer, - getImage: getImage, - getIcon: getIcon, - getInputLabel: getInputLabel, - getCloseButton: getCloseButton, - getActions: getActions, - getConfirmButton: getConfirmButton, - getDenyButton: getDenyButton, - getCancelButton: getCancelButton, - getLoader: getLoader, - getFooter: getFooter, - getTimerProgressBar: getTimerProgressBar, - getFocusableElements: getFocusableElements, - getValidationMessage: getValidationMessage, - isLoading: isLoading, - fire: fire, - mixin: mixin, - showLoading: showLoading, - enableLoading: showLoading, - getTimerLeft: getTimerLeft, - stopTimer: stopTimer, - resumeTimer: resumeTimer, - toggleTimer: toggleTimer, - increaseTimer: increaseTimer, - isTimerRunning: isTimerRunning, - bindClickHandler: bindClickHandler - }); - - /** - * Hides loader and shows back the button which was hidden by .showLoading() - */ - - function hideLoading() { - // do nothing if popup is closed - const innerParams = privateProps.innerParams.get(this); - - if (!innerParams) { - return; - } - - const domCache = privateProps.domCache.get(this); - hide(domCache.loader); - - if (isToast()) { - if (innerParams.icon) { - show(getIcon()); - } - } else { - showRelatedButton(domCache); - } - - removeClass([domCache.popup, domCache.actions], swalClasses.loading); - domCache.popup.removeAttribute('aria-busy'); - domCache.popup.removeAttribute('data-loading'); - domCache.confirmButton.disabled = false; - domCache.denyButton.disabled = false; - domCache.cancelButton.disabled = false; - } - - const showRelatedButton = domCache => { - const buttonToReplace = domCache.popup.getElementsByClassName(domCache.loader.getAttribute('data-button-to-replace')); - - if (buttonToReplace.length) { - show(buttonToReplace[0], 'inline-block'); - } else if (allButtonsAreHidden()) { - hide(domCache.actions); - } - }; - - /** - * Gets the input DOM node, this method works with input parameter. - * @returns {HTMLElement | null} - */ - - function getInput$1(instance) { - const innerParams = privateProps.innerParams.get(instance || this); - const domCache = privateProps.domCache.get(instance || this); - - if (!domCache) { - return null; - } - - return getInput(domCache.popup, innerParams.input); - } - - /** - * This module contains `WeakMap`s for each effectively-"private property" that a `Swal` has. - * For example, to set the private property "foo" of `this` to "bar", you can `privateProps.foo.set(this, 'bar')` - * This is the approach that Babel will probably take to implement private methods/fields - * https://github.com/tc39/proposal-private-methods - * https://github.com/babel/babel/pull/7555 - * Once we have the changes from that PR in Babel, and our core class fits reasonable in *one module* - * then we can use that language feature. - */ - var privateMethods = { - swalPromiseResolve: new WeakMap(), - swalPromiseReject: new WeakMap() - }; - - /* - * Instance method to close sweetAlert - */ - - function removePopupAndResetState(instance, container, returnFocus, didClose) { - if (isToast()) { - triggerDidCloseAndDispose(instance, didClose); - } else { - restoreActiveElement(returnFocus).then(() => triggerDidCloseAndDispose(instance, didClose)); - globalState.keydownTarget.removeEventListener('keydown', globalState.keydownHandler, { - capture: globalState.keydownListenerCapture - }); - globalState.keydownHandlerAdded = false; - } - - const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); // workaround for #2088 - // for some reason removing the container in Safari will scroll the document to bottom - - if (isSafari) { - container.setAttribute('style', 'display:none !important'); - container.removeAttribute('class'); - container.innerHTML = ''; - } else { - container.remove(); - } - - if (isModal()) { - undoScrollbar(); - undoIOSfix(); - unsetAriaHidden(); - } - - removeBodyClasses(); + removeBodyClasses(); } function removeBodyClasses() { @@ -2817,7 +3051,6 @@ rejectPromise(error); } } - const handleAwaitingPromise = instance => { if (instance.isAwaitingPromise()) { privateProps.awaitingPromise.delete(instance); // The instance might have been previously partly destroyed, we must resume the destroy process in this case #2335 @@ -2943,135 +3176,555 @@ function resetValidationMessage$1() { const domCache = privateProps.domCache.get(this); - if (domCache.validationMessage) { - hide(domCache.validationMessage); + if (domCache.validationMessage) { + hide(domCache.validationMessage); + } + + const input = this.getInput(); + + if (input) { + input.removeAttribute('aria-invalid'); + input.removeAttribute('aria-describedby'); + removeClass(input, swalClasses.inputerror); + } + } + + function getProgressSteps$1() { + const domCache = privateProps.domCache.get(this); + return domCache.progressSteps; + } + + /** + * Updates popup parameters. + */ + + function update(params) { + const popup = getPopup(); + const innerParams = privateProps.innerParams.get(this); + + if (!popup || hasClass(popup, innerParams.hideClass.popup)) { + return warn("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup."); + } + + const validUpdatableParams = filterValidParams(params); + const updatedParams = Object.assign({}, innerParams, validUpdatableParams); + render(this, updatedParams); + privateProps.innerParams.set(this, updatedParams); + Object.defineProperties(this, { + params: { + value: Object.assign({}, this.params, params), + writable: false, + enumerable: true + } + }); + } + + const filterValidParams = params => { + const validUpdatableParams = {}; + Object.keys(params).forEach(param => { + if (isUpdatableParameter(param)) { + validUpdatableParams[param] = params[param]; + } else { + warn("Invalid parameter to update: ".concat(param)); + } + }); + return validUpdatableParams; + }; + + function _destroy() { + const domCache = privateProps.domCache.get(this); + const innerParams = privateProps.innerParams.get(this); + + if (!innerParams) { + disposeWeakMaps(this); // The WeakMaps might have been partly destroyed, we must recall it to dispose any remaining WeakMaps #2335 + + return; // This instance has already been destroyed + } // Check if there is another Swal closing + + + if (domCache.popup && globalState.swalCloseEventFinishedCallback) { + globalState.swalCloseEventFinishedCallback(); + delete globalState.swalCloseEventFinishedCallback; + } + + if (typeof innerParams.didDestroy === 'function') { + innerParams.didDestroy(); + } + + disposeSwal(this); + } + /** + * @param {SweetAlert2} instance + */ + + const disposeSwal = instance => { + disposeWeakMaps(instance); // Unset this.params so GC will dispose it (#1569) + // @ts-ignore + + delete instance.params; // Unset globalState props so GC will dispose globalState (#1569) + + delete globalState.keydownHandler; + delete globalState.keydownTarget; // Unset currentInstance + + delete globalState.currentInstance; + }; + /** + * @param {SweetAlert2} instance + */ + + + const disposeWeakMaps = instance => { + // If the current instance is awaiting a promise result, we keep the privateMethods to call them once the promise result is retrieved #2335 + // @ts-ignore + if (instance.isAwaitingPromise()) { + unsetWeakMaps(privateProps, instance); + privateProps.awaitingPromise.set(instance, true); + } else { + unsetWeakMaps(privateMethods, instance); + unsetWeakMaps(privateProps, instance); + } + }; + /** + * @param {object} obj + * @param {SweetAlert2} instance + */ + + + const unsetWeakMaps = (obj, instance) => { + for (const i in obj) { + obj[i].delete(instance); + } + }; + + + + var instanceMethods = /*#__PURE__*/Object.freeze({ + hideLoading: hideLoading, + disableLoading: hideLoading, + getInput: getInput$1, + close: close, + isAwaitingPromise: isAwaitingPromise, + rejectPromise: rejectPromise, + handleAwaitingPromise: handleAwaitingPromise, + closePopup: close, + closeModal: close, + closeToast: close, + enableButtons: enableButtons, + disableButtons: disableButtons, + enableInput: enableInput, + disableInput: disableInput, + showValidationMessage: showValidationMessage, + resetValidationMessage: resetValidationMessage$1, + getProgressSteps: getProgressSteps$1, + update: update, + _destroy: _destroy + }); + + const handleConfirmButtonClick = instance => { + const innerParams = privateProps.innerParams.get(instance); + instance.disableButtons(); + + if (innerParams.input) { + handleConfirmOrDenyWithInput(instance, 'confirm'); + } else { + confirm(instance, true); + } + }; + const handleDenyButtonClick = instance => { + const innerParams = privateProps.innerParams.get(instance); + instance.disableButtons(); + + if (innerParams.returnInputValueOnDeny) { + handleConfirmOrDenyWithInput(instance, 'deny'); + } else { + deny(instance, false); + } + }; + const handleCancelButtonClick = (instance, dismissWith) => { + instance.disableButtons(); + dismissWith(DismissReason.cancel); + }; + + const handleConfirmOrDenyWithInput = (instance, type + /* 'confirm' | 'deny' */ + ) => { + const innerParams = privateProps.innerParams.get(instance); + + if (!innerParams.input) { + return error("The \"input\" parameter is needed to be set when using returnInputValueOn".concat(capitalizeFirstLetter(type))); + } + + const inputValue = getInputValue(instance, innerParams); + + if (innerParams.inputValidator) { + handleInputValidator(instance, inputValue, type); + } else if (!instance.getInput().checkValidity()) { + instance.enableButtons(); + instance.showValidationMessage(innerParams.validationMessage); + } else if (type === 'deny') { + deny(instance, inputValue); + } else { + confirm(instance, inputValue); + } + }; + + const handleInputValidator = (instance, inputValue, type + /* 'confirm' | 'deny' */ + ) => { + const innerParams = privateProps.innerParams.get(instance); + instance.disableInput(); + const validationPromise = Promise.resolve().then(() => asPromise(innerParams.inputValidator(inputValue, innerParams.validationMessage))); + validationPromise.then(validationMessage => { + instance.enableButtons(); + instance.enableInput(); + + if (validationMessage) { + instance.showValidationMessage(validationMessage); + } else if (type === 'deny') { + deny(instance, inputValue); + } else { + confirm(instance, inputValue); + } + }); + }; + + const deny = (instance, value) => { + const innerParams = privateProps.innerParams.get(instance || undefined); + + if (innerParams.showLoaderOnDeny) { + showLoading(getDenyButton()); + } + + if (innerParams.preDeny) { + privateProps.awaitingPromise.set(instance || undefined, true); // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preDeny's promise is received + + const preDenyPromise = Promise.resolve().then(() => asPromise(innerParams.preDeny(value, innerParams.validationMessage))); + preDenyPromise.then(preDenyValue => { + if (preDenyValue === false) { + instance.hideLoading(); + handleAwaitingPromise(instance); + } else { + instance.closePopup({ + isDenied: true, + value: typeof preDenyValue === 'undefined' ? value : preDenyValue + }); + } + }).catch(error$$1 => rejectWith(instance || undefined, error$$1)); + } else { + instance.closePopup({ + isDenied: true, + value + }); + } + }; + + const succeedWith = (instance, value) => { + instance.closePopup({ + isConfirmed: true, + value + }); + }; + + const rejectWith = (instance, error$$1) => { + instance.rejectPromise(error$$1); + }; + + const confirm = (instance, value) => { + const innerParams = privateProps.innerParams.get(instance || undefined); + + if (innerParams.showLoaderOnConfirm) { + showLoading(); + } + + if (innerParams.preConfirm) { + instance.resetValidationMessage(); + privateProps.awaitingPromise.set(instance || undefined, true); // Flagging the instance as awaiting a promise so it's own promise's reject/resolve methods doesn't get destroyed until the result from this preConfirm's promise is received + + const preConfirmPromise = Promise.resolve().then(() => asPromise(innerParams.preConfirm(value, innerParams.validationMessage))); + preConfirmPromise.then(preConfirmValue => { + if (isVisible(getValidationMessage()) || preConfirmValue === false) { + instance.hideLoading(); + handleAwaitingPromise(instance); + } else { + succeedWith(instance, typeof preConfirmValue === 'undefined' ? value : preConfirmValue); + } + }).catch(error$$1 => rejectWith(instance || undefined, error$$1)); + } else { + succeedWith(instance, value); + } + }; + + const handlePopupClick = (instance, domCache, dismissWith) => { + const innerParams = privateProps.innerParams.get(instance); + + if (innerParams.toast) { + handleToastClick(instance, domCache, dismissWith); + } else { + // Ignore click events that had mousedown on the popup but mouseup on the container + // This can happen when the user drags a slider + handleModalMousedown(domCache); // Ignore click events that had mousedown on the container but mouseup on the popup + + handleContainerMousedown(domCache); + handleModalClick(instance, domCache, dismissWith); + } + }; + + const handleToastClick = (instance, domCache, dismissWith) => { + // Closing toast by internal click + domCache.popup.onclick = () => { + const innerParams = privateProps.innerParams.get(instance); + + if (innerParams && (isAnyButtonShown(innerParams) || innerParams.timer || innerParams.input)) { + return; + } + + dismissWith(DismissReason.close); + }; + }; + /** + * @param {*} innerParams + * @returns {boolean} + */ + + + const isAnyButtonShown = innerParams => { + return innerParams.showConfirmButton || innerParams.showDenyButton || innerParams.showCancelButton || innerParams.showCloseButton; + }; + + let ignoreOutsideClick = false; + + const handleModalMousedown = domCache => { + domCache.popup.onmousedown = () => { + domCache.container.onmouseup = function (e) { + domCache.container.onmouseup = undefined; // We only check if the mouseup target is the container because usually it doesn't + // have any other direct children aside of the popup + + if (e.target === domCache.container) { + ignoreOutsideClick = true; + } + }; + }; + }; + + const handleContainerMousedown = domCache => { + domCache.container.onmousedown = () => { + domCache.popup.onmouseup = function (e) { + domCache.popup.onmouseup = undefined; // We also need to check if the mouseup target is a child of the popup + + if (e.target === domCache.popup || domCache.popup.contains(e.target)) { + ignoreOutsideClick = true; + } + }; + }; + }; + + const handleModalClick = (instance, domCache, dismissWith) => { + domCache.container.onclick = e => { + const innerParams = privateProps.innerParams.get(instance); + + if (ignoreOutsideClick) { + ignoreOutsideClick = false; + return; + } + + if (e.target === domCache.container && callIfFunction(innerParams.allowOutsideClick)) { + dismissWith(DismissReason.backdrop); + } + }; + }; + + const isJqueryElement = elem => typeof elem === 'object' && elem.jquery; + + const isElement = elem => elem instanceof Element || isJqueryElement(elem); + + const argsToParams = args => { + const params = {}; + + if (typeof args[0] === 'object' && !isElement(args[0])) { + Object.assign(params, args[0]); + } else { + ['title', 'html', 'icon'].forEach((name, index) => { + const arg = args[index]; + + if (typeof arg === 'string' || isElement(arg)) { + params[name] = arg; + } else if (arg !== undefined) { + error("Unexpected type of ".concat(name, "! Expected \"string\" or \"Element\", got ").concat(typeof arg)); + } + }); } - const input = this.getInput(); + return params; + }; - if (input) { - input.removeAttribute('aria-invalid'); - input.removeAttribute('aria-describedby'); - removeClass(input, swalClasses.inputerror); + function fire() { + const Swal = this; // eslint-disable-line @typescript-eslint/no-this-alias + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; } - } - function getProgressSteps$1() { - const domCache = privateProps.domCache.get(this); - return domCache.progressSteps; + return new Swal(...args); } /** - * Updates popup parameters. + * Returns an extended version of `Swal` containing `params` as defaults. + * Useful for reusing Swal configuration. + * + * For example: + * + * Before: + * const textPromptOptions = { input: 'text', showCancelButton: true } + * const {value: firstName} = await Swal.fire({ ...textPromptOptions, title: 'What is your first name?' }) + * const {value: lastName} = await Swal.fire({ ...textPromptOptions, title: 'What is your last name?' }) + * + * After: + * const TextPrompt = Swal.mixin({ input: 'text', showCancelButton: true }) + * const {value: firstName} = await TextPrompt('What is your first name?') + * const {value: lastName} = await TextPrompt('What is your last name?') + * + * @param mixinParams */ + function mixin(mixinParams) { + class MixinSwal extends this { + _main(params, priorityMixinParams) { + return super._main(params, Object.assign({}, mixinParams, priorityMixinParams)); + } - function update(params) { - const popup = getPopup(); - const innerParams = privateProps.innerParams.get(this); - - if (!popup || hasClass(popup, innerParams.hideClass.popup)) { - return warn("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup."); } - const validUpdatableParams = {}; // assign valid params from `params` to `defaults` - - Object.keys(params).forEach(param => { - if (isUpdatableParameter(param)) { - validUpdatableParams[param] = params[param]; - } else { - warn("Invalid parameter to update: \"".concat(param, "\". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js\n\nIf you think this parameter should be updatable, request it here: https://github.com/sweetalert2/sweetalert2/issues/new?template=02_feature_request.md")); - } - }); - const updatedParams = Object.assign({}, innerParams, validUpdatableParams); - render(this, updatedParams); - privateProps.innerParams.set(this, updatedParams); - Object.defineProperties(this, { - params: { - value: Object.assign({}, this.params, params), - writable: false, - enumerable: true - } - }); + return MixinSwal; } - function _destroy() { - const domCache = privateProps.domCache.get(this); - const innerParams = privateProps.innerParams.get(this); - - if (!innerParams) { - disposeWeakMaps(this); // The WeakMaps might have been partly destroyed, we must recall it to dispose any remaining weakmaps #2335 - - return; // This instance has already been destroyed - } // Check if there is another Swal closing - - - if (domCache.popup && globalState.swalCloseEventFinishedCallback) { - globalState.swalCloseEventFinishedCallback(); - delete globalState.swalCloseEventFinishedCallback; - } // Check if there is a swal disposal defer timer + /** + * If `timer` parameter is set, returns number of milliseconds of timer remained. + * Otherwise, returns undefined. + */ + const getTimerLeft = () => { + return globalState.timeout && globalState.timeout.getTimerLeft(); + }; + /** + * Stop timer. Returns number of milliseconds of timer remained. + * If `timer` parameter isn't set, returns undefined. + */ - if (globalState.deferDisposalTimer) { - clearTimeout(globalState.deferDisposalTimer); - delete globalState.deferDisposalTimer; + const stopTimer = () => { + if (globalState.timeout) { + stopTimerProgressBar(); + return globalState.timeout.stop(); } + }; + /** + * Resume timer. Returns number of milliseconds of timer remained. + * If `timer` parameter isn't set, returns undefined. + */ - if (typeof innerParams.didDestroy === 'function') { - innerParams.didDestroy(); + const resumeTimer = () => { + if (globalState.timeout) { + const remaining = globalState.timeout.start(); + animateTimerProgressBar(remaining); + return remaining; } + }; + /** + * Resume timer. Returns number of milliseconds of timer remained. + * If `timer` parameter isn't set, returns undefined. + */ - disposeSwal(this); - } - - const disposeSwal = instance => { - disposeWeakMaps(instance); // Unset this.params so GC will dispose it (#1569) - - delete instance.params; // Unset globalState props so GC will dispose globalState (#1569) + const toggleTimer = () => { + const timer = globalState.timeout; + return timer && (timer.running ? stopTimer() : resumeTimer()); + }; + /** + * Increase timer. Returns number of milliseconds of an updated timer. + * If `timer` parameter isn't set, returns undefined. + */ - delete globalState.keydownHandler; - delete globalState.keydownTarget; // Unset currentInstance + const increaseTimer = n => { + if (globalState.timeout) { + const remaining = globalState.timeout.increase(n); + animateTimerProgressBar(remaining, true); + return remaining; + } + }; + /** + * Check if timer is running. Returns true if timer is running + * or false if timer is paused or stopped. + * If `timer` parameter isn't set, returns undefined + */ - delete globalState.currentInstance; + const isTimerRunning = () => { + return globalState.timeout && globalState.timeout.isRunning(); }; - const disposeWeakMaps = instance => { - // If the current instance is awaiting a promise result, we keep the privateMethods to call them once the promise result is retrieved #2335 - if (instance.isAwaitingPromise()) { - unsetWeakMaps(privateProps, instance); - privateProps.awaitingPromise.set(instance, true); - } else { - unsetWeakMaps(privateMethods, instance); - unsetWeakMaps(privateProps, instance); + let bodyClickListenerAdded = false; + const clickHandlers = {}; + function bindClickHandler() { + let attr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'data-swal-template'; + clickHandlers[attr] = this; + + if (!bodyClickListenerAdded) { + document.body.addEventListener('click', bodyClickListener); + bodyClickListenerAdded = true; } - }; + } - const unsetWeakMaps = (obj, instance) => { - for (const i in obj) { - obj[i].delete(instance); + const bodyClickListener = event => { + for (let el = event.target; el && el !== document; el = el.parentNode) { + for (const attr in clickHandlers) { + const template = el.getAttribute(attr); + + if (template) { + clickHandlers[attr].fire({ + template + }); + return; + } + } } }; - var instanceMethods = /*#__PURE__*/Object.freeze({ - hideLoading: hideLoading, - disableLoading: hideLoading, - getInput: getInput$1, - close: close, - isAwaitingPromise: isAwaitingPromise, - rejectPromise: rejectPromise, - closePopup: close, - closeModal: close, - closeToast: close, - enableButtons: enableButtons, - disableButtons: disableButtons, - enableInput: enableInput, - disableInput: disableInput, - showValidationMessage: showValidationMessage, - resetValidationMessage: resetValidationMessage$1, - getProgressSteps: getProgressSteps$1, - update: update, - _destroy: _destroy + var staticMethods = /*#__PURE__*/Object.freeze({ + isValidParameter: isValidParameter, + isUpdatableParameter: isUpdatableParameter, + isDeprecatedParameter: isDeprecatedParameter, + argsToParams: argsToParams, + isVisible: isVisible$1, + clickConfirm: clickConfirm, + clickDeny: clickDeny, + clickCancel: clickCancel, + getContainer: getContainer, + getPopup: getPopup, + getTitle: getTitle, + getHtmlContainer: getHtmlContainer, + getImage: getImage, + getIcon: getIcon, + getInputLabel: getInputLabel, + getCloseButton: getCloseButton, + getActions: getActions, + getConfirmButton: getConfirmButton, + getDenyButton: getDenyButton, + getCancelButton: getCancelButton, + getLoader: getLoader, + getFooter: getFooter, + getTimerProgressBar: getTimerProgressBar, + getFocusableElements: getFocusableElements, + getValidationMessage: getValidationMessage, + isLoading: isLoading, + fire: fire, + mixin: mixin, + showLoading: showLoading, + enableLoading: showLoading, + getTimerLeft: getTimerLeft, + stopTimer: stopTimer, + resumeTimer: resumeTimer, + toggleTimer: toggleTimer, + increaseTimer: increaseTimer, + isTimerRunning: isTimerRunning, + bindClickHandler: bindClickHandler }); let currentInstance; @@ -3099,7 +3752,7 @@ } }); // @ts-ignore - const promise = this._main(this.params); + const promise = currentInstance._main(currentInstance.params); privateProps.promise.set(this, promise); } @@ -3109,6 +3762,7 @@ showWarningsForParams(Object.assign({}, mixinParams, userParams)); if (globalState.currentInstance) { + // @ts-ignore globalState.currentInstance._destroy(); if (isModal()) { @@ -3116,7 +3770,7 @@ } } - globalState.currentInstance = this; + globalState.currentInstance = currentInstance; const innerParams = prepareParams(userParams, mixinParams); setParameters(innerParams); Object.freeze(innerParams); // clear the previous timer @@ -3128,10 +3782,10 @@ clearTimeout(globalState.restoreFocusTimeout); - const domCache = populateDomCache(this); - render(this, innerParams); - privateProps.innerParams.set(this, innerParams); - return swalPromise(this, domCache, innerParams); + const domCache = populateDomCache(currentInstance); + render(currentInstance, innerParams); + privateProps.innerParams.set(currentInstance, innerParams); + return swalPromise(currentInstance, domCache, innerParams); } // `catch` cannot be the name of a module export, so we define our thenable methods here instead @@ -3189,6 +3843,11 @@ params.hideClass = Object.assign({}, defaultParams.hideClass, params.hideClass); return params; }; + /** + * @param {SweetAlert2} instance + * @returns {DomCache} + */ + const populateDomCache = instance => { const domCache = { @@ -3206,6 +3865,12 @@ privateProps.domCache.set(instance, domCache); return domCache; }; + /** + * @param {GlobalState} globalState + * @param {SweetAlertOptions} innerParams + * @param {function} dismissWith + */ + const setupTimer = (globalState$$1, innerParams, dismissWith) => { const timerProgressBar = getTimerProgressBar(); @@ -3219,6 +3884,7 @@ if (innerParams.timerProgressBar) { show(timerProgressBar); + applyCustomClass(timerProgressBar, innerParams, 'timerProgressBar'); setTimeout(() => { if (globalState$$1.timeout && globalState$$1.timeout.running) { // timer can be already stopped or unset at this point @@ -3228,6 +3894,11 @@ } } }; + /** + * @param {DomCache} domCache + * @param {SweetAlertOptions} innerParams + */ + const initFocus = (domCache, innerParams) => { if (innerParams.toast) { @@ -3242,6 +3913,12 @@ setFocus(innerParams, -1, 1); } }; + /** + * @param {DomCache} domCache + * @param {SweetAlertOptions} innerParams + * @returns {boolean} + */ + const focusButton = (domCache, innerParams) => { if (innerParams.focusDeny && isVisible(domCache.denyButton)) { @@ -3281,7 +3958,7 @@ }; }); SweetAlert.DismissReason = DismissReason; - SweetAlert.version = '11.3.3'; + SweetAlert.version = '11.4.19'; const Swal = SweetAlert; // @ts-ignore @@ -3292,4 +3969,4 @@ })); if (typeof this !== 'undefined' && this.Sweetalert2){ this.swal = this.sweetAlert = this.Swal = this.SweetAlert = this.Sweetalert2} -"undefined"!=typeof document&&function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,".swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4!important;grid-row:1/4!important;grid-template-columns:1fr 99fr 1fr;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px rgba(0,0,0,.075),0 1px 2px rgba(0,0,0,.075),1px 2px 4px rgba(0,0,0,.075),1px 3px 8px rgba(0,0,0,.075),2px 4px 16px rgba(0,0,0,.075);pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:grid;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;box-sizing:border-box;grid-template-areas:\"top-start top top-end\" \"center-start center center-end\" \"bottom-start bottom-center bottom-end\";grid-template-rows:minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto);grid-template-rows:minmax(min-content,auto) minmax(min-content,auto) minmax(min-content,auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-bottom-start,.swal2-container.swal2-center-start,.swal2-container.swal2-top-start{grid-template-columns:minmax(0,1fr) auto auto}.swal2-container.swal2-bottom,.swal2-container.swal2-center,.swal2-container.swal2-top{grid-template-columns:auto minmax(0,1fr) auto}.swal2-container.swal2-bottom-end,.swal2-container.swal2-center-end,.swal2-container.swal2-top-end{grid-template-columns:auto auto minmax(0,1fr)}.swal2-container.swal2-top-start>.swal2-popup{align-self:start}.swal2-container.swal2-top>.swal2-popup{grid-column:2;align-self:start;justify-self:center}.swal2-container.swal2-top-end>.swal2-popup,.swal2-container.swal2-top-right>.swal2-popup{grid-column:3;align-self:start;justify-self:end}.swal2-container.swal2-center-left>.swal2-popup,.swal2-container.swal2-center-start>.swal2-popup{grid-row:2;align-self:center}.swal2-container.swal2-center>.swal2-popup{grid-column:2;grid-row:2;align-self:center;justify-self:center}.swal2-container.swal2-center-end>.swal2-popup,.swal2-container.swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;align-self:center;justify-self:end}.swal2-container.swal2-bottom-left>.swal2-popup,.swal2-container.swal2-bottom-start>.swal2-popup{grid-column:1;grid-row:3;align-self:end}.swal2-container.swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;justify-self:center;align-self:end}.swal2-container.swal2-bottom-end>.swal2-popup,.swal2-container.swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;align-self:end;justify-self:end}.swal2-container.swal2-grow-fullscreen>.swal2-popup,.swal2-container.swal2-grow-row>.swal2-popup{grid-column:1/4;width:100%}.swal2-container.swal2-grow-column>.swal2-popup,.swal2-container.swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}.swal2-container.swal2-no-transition{transition:none!important}.swal2-popup{display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0,100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:#545454;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-title{position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 transparent #2778c4 transparent}.swal2-styled{margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px transparent;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#7066e0;color:#fff;font-size:1em}.swal2-styled.swal2-confirm:focus{box-shadow:0 0 0 3px rgba(112,102,224,.5)}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#dc3741;color:#fff;font-size:1em}.swal2-styled.swal2-deny:focus{box-shadow:0 0 0 3px rgba(220,55,65,.5)}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#6e7881;color:#fff;font-size:1em}.swal2-styled.swal2-cancel:focus{box-shadow:0 0 0 3px rgba(110,120,129,.5)}.swal2-styled.swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-styled:focus{outline:0}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:inherit;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto!important;height:.25em;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:2em auto 1em}.swal2-close{z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:0 0;color:#ccc;font-family:serif;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close:focus{outline:0;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-html-container{z-index:1;justify-content:center;margin:1em 1.6em .3em;padding:0;overflow:auto;color:inherit;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em 2em 3px}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:inherit;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px transparent;color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em 2em 3px;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-file{width:75%;margin-right:auto;margin-left:auto;background:inherit;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:inherit;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{flex-shrink:0;margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto 0}.swal2-validation-message{align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:\"!\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:.25em solid transparent;border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-warning.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-warning.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-i-mark .5s;animation:swal2-animate-i-mark .5s}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-info.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-info.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-i-mark .8s;animation:swal2-animate-i-mark .8s}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-question.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-question.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-question-mark .8s;animation:swal2-animate-question-mark .8s}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:inherit;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@-webkit-keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@-webkit-keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{background-color:transparent!important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:transparent;pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}"); \ No newline at end of file +"undefined"!=typeof document&&function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,".swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4!important;grid-row:1/4!important;grid-template-columns:1fr 99fr 1fr;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px hsla(0deg,0%,0%,.075),0 1px 2px hsla(0deg,0%,0%,.075),1px 2px 4px hsla(0deg,0%,0%,.075),1px 3px 8px hsla(0deg,0%,0%,.075),2px 4px 16px hsla(0deg,0%,0%,.075);pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:grid;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;box-sizing:border-box;grid-template-areas:\"top-start top top-end\" \"center-start center center-end\" \"bottom-start bottom-center bottom-end\";grid-template-rows:minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto);grid-template-rows:minmax(min-content,auto) minmax(min-content,auto) minmax(min-content,auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-bottom-start,.swal2-container.swal2-center-start,.swal2-container.swal2-top-start{grid-template-columns:minmax(0,1fr) auto auto}.swal2-container.swal2-bottom,.swal2-container.swal2-center,.swal2-container.swal2-top{grid-template-columns:auto minmax(0,1fr) auto}.swal2-container.swal2-bottom-end,.swal2-container.swal2-center-end,.swal2-container.swal2-top-end{grid-template-columns:auto auto minmax(0,1fr)}.swal2-container.swal2-top-start>.swal2-popup{align-self:start}.swal2-container.swal2-top>.swal2-popup{grid-column:2;align-self:start;justify-self:center}.swal2-container.swal2-top-end>.swal2-popup,.swal2-container.swal2-top-right>.swal2-popup{grid-column:3;align-self:start;justify-self:end}.swal2-container.swal2-center-left>.swal2-popup,.swal2-container.swal2-center-start>.swal2-popup{grid-row:2;align-self:center}.swal2-container.swal2-center>.swal2-popup{grid-column:2;grid-row:2;align-self:center;justify-self:center}.swal2-container.swal2-center-end>.swal2-popup,.swal2-container.swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;align-self:center;justify-self:end}.swal2-container.swal2-bottom-left>.swal2-popup,.swal2-container.swal2-bottom-start>.swal2-popup{grid-column:1;grid-row:3;align-self:end}.swal2-container.swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;justify-self:center;align-self:end}.swal2-container.swal2-bottom-end>.swal2-popup,.swal2-container.swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;align-self:end;justify-self:end}.swal2-container.swal2-grow-fullscreen>.swal2-popup,.swal2-container.swal2-grow-row>.swal2-popup{grid-column:1/4;width:100%}.swal2-container.swal2-grow-column>.swal2-popup,.swal2-container.swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}.swal2-container.swal2-no-transition{transition:none!important}.swal2-popup{display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0,100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:#545454;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-title{position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 transparent #2778c4 transparent}.swal2-styled{margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px transparent;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#7066e0;color:#fff;font-size:1em}.swal2-styled.swal2-confirm:focus{box-shadow:0 0 0 3px rgba(112,102,224,.5)}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#dc3741;color:#fff;font-size:1em}.swal2-styled.swal2-deny:focus{box-shadow:0 0 0 3px rgba(220,55,65,.5)}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#6e7881;color:#fff;font-size:1em}.swal2-styled.swal2-cancel:focus{box-shadow:0 0 0 3px rgba(110,120,129,.5)}.swal2-styled.swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-styled:focus{outline:0}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:inherit;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto!important;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:2em auto 1em}.swal2-close{z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:0 0;color:#ccc;font-family:serif;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close:focus{outline:0;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-html-container{z-index:1;justify-content:center;margin:1em 1.6em .3em;padding:0;overflow:auto;color:inherit;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em 2em 3px}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:0 0;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px transparent;color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em 2em 3px;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-file{width:75%;margin-right:auto;margin-left:auto;background:0 0;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:0 0;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{flex-shrink:0;margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto 0}.swal2-validation-message{align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:\"!\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:.25em solid transparent;border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-warning.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-warning.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-i-mark .5s;animation:swal2-animate-i-mark .5s}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-info.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-info.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-i-mark .8s;animation:swal2-animate-i-mark .8s}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-question.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-question.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-question-mark .8s;animation:swal2-animate-question-mark .8s}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:0 0;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}.swal2-no-war{display:flex;position:fixed;z-index:1061;top:0;left:0;align-items:center;justify-content:center;width:100%;height:3.375em;background:#20232a;color:#fff;text-align:center}.swal2-no-war a{color:#61dafb;text-decoration:none}.swal2-no-war a:hover{text-decoration:underline}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@-webkit-keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@-webkit-keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{background-color:transparent!important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:transparent;pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}"); \ No newline at end of file diff --git a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/sweetalert2/sweetalert2.all.min.js b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/sweetalert2/sweetalert2.all.min.js index 2dc3ca2f..a8476bb3 100644 --- a/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/sweetalert2/sweetalert2.all.min.js +++ b/samples/EShopSample/aspnet-core/src/EShopSample.Web/wwwroot/libs/sweetalert2/sweetalert2.all.min.js @@ -1,2 +1,2 @@ -!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).Sweetalert2=t()}(this,function(){"use strict";const t="SweetAlert2:",o=e=>e.charAt(0).toUpperCase()+e.slice(1),a=e=>Array.prototype.slice.call(e),r=e=>{console.warn("".concat(t," ").concat("object"==typeof e?e.join(" "):e))},s=e=>{console.error("".concat(t," ").concat(e))},n=[],i=(e,t)=>{t='"'.concat(e,'" is deprecated and will be removed in the next major release. Please use "').concat(t,'" instead.'),n.includes(t)||(n.push(t),r(t))},c=e=>"function"==typeof e?e():e,l=e=>e&&"function"==typeof e.toPromise,u=e=>l(e)?e.toPromise():Promise.resolve(e),d=e=>e&&Promise.resolve(e)===e,p={title:"",titleText:"",text:"",html:"",footer:"",icon:void 0,iconColor:void 0,iconHtml:void 0,template:void 0,toast:!1,showClass:{popup:"swal2-show",backdrop:"swal2-backdrop-show",icon:"swal2-icon-show"},hideClass:{popup:"swal2-hide",backdrop:"swal2-backdrop-hide",icon:"swal2-icon-hide"},customClass:{},target:"body",color:void 0,backdrop:!0,heightAuto:!0,allowOutsideClick:!0,allowEscapeKey:!0,allowEnterKey:!0,stopKeydownPropagation:!0,keydownListenerCapture:!1,showConfirmButton:!0,showDenyButton:!1,showCancelButton:!1,preConfirm:void 0,preDeny:void 0,confirmButtonText:"OK",confirmButtonAriaLabel:"",confirmButtonColor:void 0,denyButtonText:"No",denyButtonAriaLabel:"",denyButtonColor:void 0,cancelButtonText:"Cancel",cancelButtonAriaLabel:"",cancelButtonColor:void 0,buttonsStyling:!0,reverseButtons:!1,focusConfirm:!0,focusDeny:!1,focusCancel:!1,returnFocus:!0,showCloseButton:!1,closeButtonHtml:"×",closeButtonAriaLabel:"Close this dialog",loaderHtml:"",showLoaderOnConfirm:!1,showLoaderOnDeny:!1,imageUrl:void 0,imageWidth:void 0,imageHeight:void 0,imageAlt:"",timer:void 0,timerProgressBar:!1,width:void 0,padding:void 0,background:void 0,input:void 0,inputPlaceholder:"",inputLabel:"",inputValue:"",inputOptions:{},inputAutoTrim:!0,inputAttributes:{},inputValidator:void 0,returnInputValueOnDeny:!1,validationMessage:void 0,grow:!1,position:"center",progressSteps:[],currentProgressStep:void 0,progressStepsDistance:void 0,willOpen:void 0,didOpen:void 0,didRender:void 0,willClose:void 0,didClose:void 0,didDestroy:void 0,scrollbarPadding:!0},m=["allowEscapeKey","allowOutsideClick","background","buttonsStyling","cancelButtonAriaLabel","cancelButtonColor","cancelButtonText","closeButtonAriaLabel","closeButtonHtml","color","confirmButtonAriaLabel","confirmButtonColor","confirmButtonText","currentProgressStep","customClass","denyButtonAriaLabel","denyButtonColor","denyButtonText","didClose","didDestroy","footer","hideClass","html","icon","iconColor","iconHtml","imageAlt","imageHeight","imageUrl","imageWidth","preConfirm","preDeny","progressSteps","returnFocus","reverseButtons","showCancelButton","showCloseButton","showConfirmButton","showDenyButton","text","title","titleText","willClose"],g={},h=["allowOutsideClick","allowEnterKey","backdrop","focusConfirm","focusDeny","focusCancel","returnFocus","heightAuto","keydownListenerCapture"],f=e=>Object.prototype.hasOwnProperty.call(p,e),b=e=>-1!==m.indexOf(e),y=e=>g[e],v=e=>{!e.backdrop&&e.allowOutsideClick&&r('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`');for(const o in e)n=o,f(n)||r('Unknown parameter "'.concat(n,'"')),e.toast&&(t=o,h.includes(t)&&r('The parameter "'.concat(t,'" is incompatible with toasts'))),t=o,y(t)&&i(t,y(t));var t,n};var e=e=>{const t={};for(const n in e)t[e[n]]="swal2-"+e[n];return t};const w=e(["container","shown","height-auto","iosfix","popup","modal","no-backdrop","no-transition","toast","toast-shown","show","hide","close","title","html-container","actions","confirm","deny","cancel","default-outline","footer","icon","icon-content","image","input","file","range","select","radio","checkbox","label","textarea","inputerror","input-label","validation-message","progress-steps","active-progress-step","progress-step","progress-step-line","loader","loading","styled","top","top-start","top-end","top-left","top-right","center","center-start","center-end","center-left","center-right","bottom","bottom-start","bottom-end","bottom-left","bottom-right","grow-row","grow-column","grow-fullscreen","rtl","timer-progress-bar","timer-progress-bar-container","scrollbar-measure","icon-success","icon-warning","icon-info","icon-question","icon-error"]),C=e(["success","warning","info","question","error"]),A=()=>document.body.querySelector(".".concat(w.container)),k=e=>{const t=A();return t?t.querySelector(e):null},B=e=>k(".".concat(e)),P=()=>B(w.popup),x=()=>B(w.icon),E=()=>B(w.title),S=()=>B(w["html-container"]),T=()=>B(w.image),L=()=>B(w["progress-steps"]),O=()=>B(w["validation-message"]),j=()=>k(".".concat(w.actions," .").concat(w.confirm)),M=()=>k(".".concat(w.actions," .").concat(w.deny));const D=()=>k(".".concat(w.loader)),H=()=>k(".".concat(w.actions," .").concat(w.cancel)),I=()=>B(w.actions),q=()=>B(w.footer),V=()=>B(w["timer-progress-bar"]),N=()=>B(w.close),F=()=>{const e=a(P().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')).sort((e,t)=>(e=parseInt(e.getAttribute("tabindex")),(t=parseInt(t.getAttribute("tabindex")))"-1"!==e.getAttribute("tabindex"));return(t=>{const n=[];for(let e=0;eae(e))},R=()=>!K(document.body,w["toast-shown"])&&!K(document.body,w["no-backdrop"]),U=()=>P()&&K(P(),w.toast);function z(e){var t=1{n.style.transition="width ".concat(e/1e3,"s linear"),n.style.width="0%"},10))}const W={previousBodyPadding:null},_=(t,e)=>{if(t.textContent="",e){const n=new DOMParser,o=n.parseFromString(e,"text/html");a(o.querySelector("head").childNodes).forEach(e=>{t.appendChild(e)}),a(o.querySelector("body").childNodes).forEach(e=>{t.appendChild(e)})}},K=(t,e)=>{if(!e)return!1;var n=e.split(/\s+/);for(let e=0;e{var o,i;if(o=e,i=t,a(o.classList).forEach(e=>{Object.values(w).includes(e)||Object.values(C).includes(e)||Object.values(i.showClass).includes(e)||o.classList.remove(e)}),t.customClass&&t.customClass[n]){if("string"!=typeof t.customClass[n]&&!t.customClass[n].forEach)return r("Invalid type of customClass.".concat(n,'! Expected string or iterable object, got "').concat(typeof t.customClass[n],'"'));$(e,t.customClass[n])}},Z=(e,t)=>{if(!t)return null;switch(t){case"select":case"textarea":case"file":return e.querySelector(".".concat(w.popup," > .").concat(w[t]));case"checkbox":return e.querySelector(".".concat(w.popup," > .").concat(w.checkbox," input"));case"radio":return e.querySelector(".".concat(w.popup," > .").concat(w.radio," input:checked"))||e.querySelector(".".concat(w.popup," > .").concat(w.radio," input:first-child"));case"range":return e.querySelector(".".concat(w.popup," > .").concat(w.range," input"));default:return e.querySelector(".".concat(w.popup," > .").concat(w.input))}},J=e=>{var t;e.focus(),"file"!==e.type&&(t=e.value,e.value="",e.value=t)},X=(e,t,n)=>{e&&t&&(t="string"==typeof t?t.split(/\s+/).filter(Boolean):t).forEach(t=>{Array.isArray(e)?e.forEach(e=>{n?e.classList.add(t):e.classList.remove(t)}):n?e.classList.add(t):e.classList.remove(t)})},$=(e,t)=>{X(e,t,!0)},G=(e,t)=>{X(e,t,!1)},Q=(e,t)=>{var n=a(e.childNodes);for(let e=0;e{(n=n==="".concat(parseInt(n))?parseInt(n):n)||0===parseInt(n)?e.style[t]="number"==typeof n?"".concat(n,"px"):n:e.style.removeProperty(t)},te=function(e){e.style.display=1{e.style.display="none"},oe=(e,t,n,o)=>{const i=e.querySelector(t);i&&(i.style[n]=o)},ie=(e,t,n)=>{t?te(e,n):ne(e)},ae=e=>!(!e||!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)),re=()=>!ae(j())&&!ae(M())&&!ae(H()),se=e=>!!(e.scrollHeight>e.clientHeight),ce=e=>{const t=window.getComputedStyle(e);var n=parseFloat(t.getPropertyValue("animation-duration")||"0"),e=parseFloat(t.getPropertyValue("transition-duration")||"0");return 0"undefined"==typeof window||"undefined"==typeof document,ue=100,de={},pe=()=>{de.previousActiveElement&&de.previousActiveElement.focus?(de.previousActiveElement.focus(),de.previousActiveElement=null):document.body&&document.body.focus()},me=o=>new Promise(e=>{if(!o)return e();var t=window.scrollX,n=window.scrollY;de.restoreFocusTimeout=setTimeout(()=>{pe(),e()},ue),window.scrollTo(t,n)}),ge='\n
              \n \n
                \n
                \n \n

                \n
                \n \n \n
                \n \n \n
                \n \n
                \n \n \n
                \n
                \n
                \n \n \n \n
                \n
                \n
                \n
                \n
                \n
                \n').replace(/(^|\n)\s*/g,""),he=()=>{const e=A();return!!e&&(e.remove(),G([document.documentElement,document.body],[w["no-backdrop"],w["toast-shown"],w["has-column"]]),!0)},fe=()=>{de.currentInstance.resetValidationMessage()},be=()=>{const e=P(),t=Q(e,w.input),n=Q(e,w.file),o=e.querySelector(".".concat(w.range," input")),i=e.querySelector(".".concat(w.range," output")),a=Q(e,w.select),r=e.querySelector(".".concat(w.checkbox," input")),s=Q(e,w.textarea);t.oninput=fe,n.onchange=fe,a.onchange=fe,r.onchange=fe,s.oninput=fe,o.oninput=()=>{fe(),i.value=o.value},o.onchange=()=>{fe(),o.nextSibling.value=o.value}},ye=e=>"string"==typeof e?document.querySelector(e):e,ve=e=>{const t=P();t.setAttribute("role",e.toast?"alert":"dialog"),t.setAttribute("aria-live",e.toast?"polite":"assertive"),e.toast||t.setAttribute("aria-modal","true")},we=e=>{"rtl"===window.getComputedStyle(e).direction&&$(A(),w.rtl)},Ce=(e,t)=>{e instanceof HTMLElement?t.appendChild(e):"object"==typeof e?((e,t)=>{if(e.jquery)Ae(t,e);else _(t,e.toString())})(e,t):e&&_(t,e)},Ae=(t,n)=>{if(t.textContent="",0 in n)for(let e=0;e in n;e++)t.appendChild(n[e].cloneNode(!0));else t.appendChild(n.cloneNode(!0))},ke=(()=>{if(le())return!1;var e=document.createElement("div"),t={WebkitAnimation:"webkitAnimationEnd",OAnimation:"oAnimationEnd oanimationend",animation:"animationend"};for(const n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&void 0!==e.style[n])return t[n];return!1})(),Be=(e,t)=>{var n,o,i,a,r,s=I(),c=D();(t.showConfirmButton||t.showDenyButton||t.showCancelButton?te:ne)(s),Y(s,t,"actions"),n=s,o=c,i=t,a=j(),r=M(),s=H(),Pe(a,"confirm",i),Pe(r,"deny",i),Pe(s,"cancel",i),function(e,t,n,o){if(!o.buttonsStyling)return G([e,t,n],w.styled);$([e,t,n],w.styled),o.confirmButtonColor&&(e.style.backgroundColor=o.confirmButtonColor,$(e,w["default-outline"]));o.denyButtonColor&&(t.style.backgroundColor=o.denyButtonColor,$(t,w["default-outline"]));o.cancelButtonColor&&(n.style.backgroundColor=o.cancelButtonColor,$(n,w["default-outline"]))}(a,r,s,i),i.reverseButtons&&(i.toast?(n.insertBefore(s,a),n.insertBefore(r,a)):(n.insertBefore(s,o),n.insertBefore(r,o),n.insertBefore(a,o))),_(c,t.loaderHtml),Y(c,t,"loader")};function Pe(e,t,n){ie(e,n["show".concat(o(t),"Button")],"inline-block"),_(e,n["".concat(t,"ButtonText")]),e.setAttribute("aria-label",n["".concat(t,"ButtonAriaLabel")]),e.className=w[t],Y(e,n,"".concat(t,"Button")),$(e,n["".concat(t,"ButtonClass")])}const xe=(e,t)=>{var n,o,i=A();i&&(o=i,"string"==typeof(n=t.backdrop)?o.style.background=n:n||$([document.documentElement,document.body],w["no-backdrop"]),o=i,(n=t.position)in w?$(o,w[n]):(r('The "position" parameter is not valid, defaulting to "center"'),$(o,w.center)),n=i,!(o=t.grow)||"string"!=typeof o||(o="grow-".concat(o))in w&&$(n,w[o]),Y(i,t,"container"))};var Ee={awaitingPromise:new WeakMap,promise:new WeakMap,innerParams:new WeakMap,domCache:new WeakMap};const Se=["input","file","range","select","radio","checkbox","textarea"],Te=(e,o)=>{const i=P();e=Ee.innerParams.get(e);const a=!e||o.input!==e.input;Se.forEach(e=>{var t=w[e];const n=Q(i,t);((e,t)=>{const n=Z(P(),e);if(n){Le(n);for(const o in t)n.setAttribute(o,t[o])}})(e,o.inputAttributes),n.className=t,a&&ne(n)}),o.input&&(a&&(e=>{if(!De[e.input])return s('Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "'.concat(e.input,'"'));const t=Me(e.input),n=De[e.input](t,e);te(n),setTimeout(()=>{J(n)})})(o),(e=>{const t=Me(e.input);if(e.customClass)$(t,e.customClass.input)})(o))},Le=t=>{for(let e=0;e{e.placeholder&&!t.inputPlaceholder||(e.placeholder=t.inputPlaceholder)},je=(e,t,n)=>{if(n.inputLabel){e.id=w.input;const i=document.createElement("label");var o=w["input-label"];i.setAttribute("for",e.id),i.className=o,$(i,n.customClass.inputLabel),i.innerText=n.inputLabel,t.insertAdjacentElement("beforebegin",i)}},Me=e=>{e=w[e]||w.input;return Q(P(),e)},De={};De.text=De.email=De.password=De.number=De.tel=De.url=(e,t)=>("string"==typeof t.inputValue||"number"==typeof t.inputValue?e.value=t.inputValue:d(t.inputValue)||r('Unexpected type of inputValue! Expected "string", "number" or "Promise", got "'.concat(typeof t.inputValue,'"')),je(e,e,t),Oe(e,t),e.type=t.input,e),De.file=(e,t)=>(je(e,e,t),Oe(e,t),e),De.range=(e,t)=>{const n=e.querySelector("input"),o=e.querySelector("output");return n.value=t.inputValue,n.type=t.input,o.value=t.inputValue,je(n,e,t),e},De.select=(e,t)=>{if(e.textContent="",t.inputPlaceholder){const n=document.createElement("option");_(n,t.inputPlaceholder),n.value="",n.disabled=!0,n.selected=!0,e.appendChild(n)}return je(e,e,t),e},De.radio=e=>(e.textContent="",e),De.checkbox=(e,t)=>{const n=Z(P(),"checkbox");n.value="1",n.id=w.checkbox,n.checked=Boolean(t.inputValue);var o=e.querySelector("span");return _(o,t.inputPlaceholder),e},De.textarea=(n,e)=>{n.value=e.inputValue,Oe(n,e),je(n,n,e);return setTimeout(()=>{if("MutationObserver"in window){const t=parseInt(window.getComputedStyle(P()).width);new MutationObserver(()=>{var e,e=n.offsetWidth+(e=n,parseInt(window.getComputedStyle(e).marginLeft)+parseInt(window.getComputedStyle(e).marginRight));e>t?P().style.width="".concat(e,"px"):P().style.width=null}).observe(n,{attributes:!0,attributeFilter:["style"]})}}),n};const He=(e,t)=>{const n=S();Y(n,t,"htmlContainer"),t.html?(Ce(t.html,n),te(n,"block")):t.text?(n.textContent=t.text,te(n,"block")):ne(n),Te(e,t)},Ie=(e,t)=>{var n=q();ie(n,t.footer),t.footer&&Ce(t.footer,n),Y(n,t,"footer")},qe=(e,t)=>{const n=N();_(n,t.closeButtonHtml),Y(n,t,"closeButton"),ie(n,t.showCloseButton),n.setAttribute("aria-label",t.closeButtonAriaLabel)},Ve=(e,t)=>{var n=Ee.innerParams.get(e),e=x();return n&&t.icon===n.icon?(Re(e,t),void Ne(e,t)):t.icon||t.iconHtml?t.icon&&-1===Object.keys(C).indexOf(t.icon)?(s('Unknown icon! Expected "success", "error", "warning", "info" or "question", got "'.concat(t.icon,'"')),ne(e)):(te(e),Re(e,t),Ne(e,t),void $(e,t.showClass.icon)):ne(e)},Ne=(e,t)=>{for(const n in C)t.icon!==n&&G(e,C[n]);$(e,C[t.icon]),Ue(e,t),Fe(),Y(e,t,"icon")},Fe=()=>{const e=P();var t=window.getComputedStyle(e).getPropertyValue("background-color");const n=e.querySelectorAll("[class^=swal2-success-circular-line], .swal2-success-fix");for(let e=0;e{var n;e.textContent="",t.iconHtml?_(e,ze(t.iconHtml)):"success"===t.icon?_(e,'\n
                \n \n
                \n
                \n '):"error"===t.icon?_(e,'\n \n \n \n \n '):(n={question:"?",warning:"!",info:"i"},_(e,ze(n[t.icon])))},Ue=(e,t)=>{if(t.iconColor){e.style.color=t.iconColor,e.style.borderColor=t.iconColor;for(const n of[".swal2-success-line-tip",".swal2-success-line-long",".swal2-x-mark-line-left",".swal2-x-mark-line-right"])oe(e,n,"backgroundColor",t.iconColor);oe(e,".swal2-success-ring","borderColor",t.iconColor)}},ze=e=>'
                ').concat(e,"
                "),We=(e,t)=>{const n=T();if(!t.imageUrl)return ne(n);te(n,""),n.setAttribute("src",t.imageUrl),n.setAttribute("alt",t.imageAlt),ee(n,"width",t.imageWidth),ee(n,"height",t.imageHeight),n.className=w.image,Y(n,t,"image")},_e=(e,o)=>{const i=L();if(!o.progressSteps||0===o.progressSteps.length)return ne(i);te(i),i.textContent="",o.currentProgressStep>=o.progressSteps.length&&r("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),o.progressSteps.forEach((e,t)=>{var n,e=(n=e,e=document.createElement("li"),$(e,w["progress-step"]),_(e,n),e);i.appendChild(e),t===o.currentProgressStep&&$(e,w["active-progress-step"]),t!==o.progressSteps.length-1&&(t=(e=>{const t=document.createElement("li");return $(t,w["progress-step-line"]),e.progressStepsDistance&&(t.style.width=e.progressStepsDistance),t})(o),i.appendChild(t))})},Ke=(e,t)=>{const n=E();ie(n,t.title||t.titleText,"block"),t.title&&Ce(t.title,n),t.titleText&&(n.innerText=t.titleText),Y(n,t,"title")},Ye=(e,t)=>{var n=A();const o=P();t.toast?(ee(n,"width",t.width),o.style.width="100%",o.insertBefore(D(),x())):ee(o,"width",t.width),ee(o,"padding",t.padding),t.color&&(o.style.color=t.color),t.background&&(o.style.background=t.background),ne(O()),((e,t)=>{if(e.className="".concat(w.popup," ").concat(ae(e)?t.showClass.popup:""),t.toast){$([document.documentElement,document.body],w["toast-shown"]);$(e,w.toast)}else $(e,w.modal);if(Y(e,t,"popup"),typeof t.customClass==="string")$(e,t.customClass);if(t.icon)$(e,w["icon-".concat(t.icon)])})(o,t)},Ze=(e,t)=>{Ye(e,t),xe(e,t),_e(e,t),Ve(e,t),We(e,t),Ke(e,t),qe(e,t),He(e,t),Be(e,t),Ie(e,t),"function"==typeof t.didRender&&t.didRender(P())},Je=Object.freeze({cancel:"cancel",backdrop:"backdrop",close:"close",esc:"esc",timer:"timer"}),Xe=()=>{const e=a(document.body.children);e.forEach(e=>{e===A()||e.contains(A())||(e.hasAttribute("aria-hidden")&&e.setAttribute("data-previous-aria-hidden",e.getAttribute("aria-hidden")),e.setAttribute("aria-hidden","true"))})},$e=()=>{const e=a(document.body.children);e.forEach(e=>{e.hasAttribute("data-previous-aria-hidden")?(e.setAttribute("aria-hidden",e.getAttribute("data-previous-aria-hidden")),e.removeAttribute("data-previous-aria-hidden")):e.removeAttribute("aria-hidden")})},Ge=["swal-title","swal-html","swal-footer"],Qe=e=>{const o={};return a(e.querySelectorAll("swal-param")).forEach(e=>{rt(e,["name","value"]);var t=e.getAttribute("name");let n=e.getAttribute("value");"boolean"==typeof p[t]&&"false"===n&&(n=!1),"object"==typeof p[t]&&(n=JSON.parse(n)),o[t]=n}),o},et=e=>{const n={};return a(e.querySelectorAll("swal-button")).forEach(e=>{rt(e,["type","color","aria-label"]);var t=e.getAttribute("type");n["".concat(t,"ButtonText")]=e.innerHTML,n["show".concat(o(t),"Button")]=!0,e.hasAttribute("color")&&(n["".concat(t,"ButtonColor")]=e.getAttribute("color")),e.hasAttribute("aria-label")&&(n["".concat(t,"ButtonAriaLabel")]=e.getAttribute("aria-label"))}),n},tt=e=>{const t={},n=e.querySelector("swal-image");return n&&(rt(n,["src","width","height","alt"]),n.hasAttribute("src")&&(t.imageUrl=n.getAttribute("src")),n.hasAttribute("width")&&(t.imageWidth=n.getAttribute("width")),n.hasAttribute("height")&&(t.imageHeight=n.getAttribute("height")),n.hasAttribute("alt")&&(t.imageAlt=n.getAttribute("alt"))),t},nt=e=>{const t={},n=e.querySelector("swal-icon");return n&&(rt(n,["type","color"]),n.hasAttribute("type")&&(t.icon=n.getAttribute("type")),n.hasAttribute("color")&&(t.iconColor=n.getAttribute("color")),t.iconHtml=n.innerHTML),t},ot=e=>{const n={},t=e.querySelector("swal-input");t&&(rt(t,["type","label","placeholder","value"]),n.input=t.getAttribute("type")||"text",t.hasAttribute("label")&&(n.inputLabel=t.getAttribute("label")),t.hasAttribute("placeholder")&&(n.inputPlaceholder=t.getAttribute("placeholder")),t.hasAttribute("value")&&(n.inputValue=t.getAttribute("value")));e=e.querySelectorAll("swal-input-option");return e.length&&(n.inputOptions={},a(e).forEach(e=>{rt(e,["value"]);var t=e.getAttribute("value"),e=e.innerHTML;n.inputOptions[t]=e})),n},it=(e,t)=>{const n={};for(const o in t){const i=t[o],a=e.querySelector(i);a&&(rt(a,[]),n[i.replace(/^swal-/,"")]=a.innerHTML.trim())}return n},at=e=>{const t=Ge.concat(["swal-param","swal-button","swal-image","swal-icon","swal-input","swal-input-option"]);a(e.children).forEach(e=>{e=e.tagName.toLowerCase();-1===t.indexOf(e)&&r("Unrecognized element <".concat(e,">"))})},rt=(t,n)=>{a(t.attributes).forEach(e=>{-1===n.indexOf(e.name)&&r(['Unrecognized attribute "'.concat(e.name,'" on <').concat(t.tagName.toLowerCase(),">."),"".concat(n.length?"Allowed attributes are: ".concat(n.join(", ")):"To set the value, use HTML within the element.")])})};var st={email:(e,t)=>/^[a-zA-Z0-9.+_-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]{2,24}$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid email address"),url:(e,t)=>/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(e)?Promise.resolve():Promise.resolve(t||"Invalid URL")};function ct(e){var t,n;(t=e).inputValidator||Object.keys(st).forEach(e=>{t.input===e&&(t.inputValidator=st[e])}),e.showLoaderOnConfirm&&!e.preConfirm&&r("showLoaderOnConfirm is set to true, but preConfirm is not defined.\nshowLoaderOnConfirm should be used together with preConfirm, see usage example:\nhttps://sweetalert2.github.io/#ajax-request"),(n=e).target&&("string"!=typeof n.target||document.querySelector(n.target))&&("string"==typeof n.target||n.target.appendChild)||(r('Target parameter is not valid, defaulting to "body"'),n.target="body"),"string"==typeof e.title&&(e.title=e.title.split("\n").join("
                ")),(e=>{var t=he();if(le())s("SweetAlert2 requires document to initialize");else{const n=document.createElement("div");n.className=w.container,t&&$(n,w["no-transition"]),_(n,ge);const o=ye(e.target);o.appendChild(n),ve(e),we(o),be()}})(e)}class lt{constructor(e,t){this.callback=e,this.remaining=t,this.running=!1,this.start()}start(){return this.running||(this.running=!0,this.started=new Date,this.id=setTimeout(this.callback,this.remaining)),this.remaining}stop(){return this.running&&(this.running=!1,clearTimeout(this.id),this.remaining-=(new Date).getTime()-this.started.getTime()),this.remaining}increase(e){var t=this.running;return t&&this.stop(),this.remaining+=e,t&&this.start(),this.remaining}getTimerLeft(){return this.running&&(this.stop(),this.start()),this.remaining}isRunning(){return this.running}}const ut=()=>{null===W.previousBodyPadding&&document.body.scrollHeight>window.innerHeight&&(W.previousBodyPadding=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight="".concat(W.previousBodyPadding+(()=>{const e=document.createElement("div");e.className=w["scrollbar-measure"],document.body.appendChild(e);var t=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),t})(),"px"))},dt=()=>{null!==W.previousBodyPadding&&(document.body.style.paddingRight="".concat(W.previousBodyPadding,"px"),W.previousBodyPadding=null)},pt=()=>{var e;(/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream||"MacIntel"===navigator.platform&&1{const e=A();let t;e.ontouchstart=e=>{t=mt(e)},e.ontouchmove=e=>{if(t){e.preventDefault();e.stopPropagation()}}})(),(()=>{const e=!navigator.userAgent.match(/(CriOS|FxiOS|EdgiOS|YaBrowser|UCBrowser)/i);if(e){const t=44;if(P().scrollHeight>window.innerHeight-t)A().style.paddingBottom="".concat(t,"px")}})())},mt=e=>{var t,n=e.target,o=A();return!((t=e).touches&&t.touches.length&&"stylus"===t.touches[0].touchType||(e=e).touches&&1{var e;K(document.body,w.iosfix)&&(e=parseInt(document.body.style.top,10),G(document.body,w.iosfix),document.body.style.top="",document.body.scrollTop=-1*e)},ht=10,ft=e=>{const t=P();if(e.target===t){const n=A();t.removeEventListener(ke,ft),n.style.overflowY="auto"}},bt=(e,t)=>{ke&&ce(t)?(e.style.overflowY="hidden",t.addEventListener(ke,ft)):e.style.overflowY="auto"},yt=(e,t,n)=>{pt(),t&&"hidden"!==n&&ut(),setTimeout(()=>{e.scrollTop=0})},vt=(e,t,n)=>{$(e,n.showClass.backdrop),t.style.setProperty("opacity","0","important"),te(t,"grid"),setTimeout(()=>{$(t,n.showClass.popup),t.style.removeProperty("opacity")},ht),$([document.documentElement,document.body],w.shown),n.heightAuto&&n.backdrop&&!n.toast&&$([document.documentElement,document.body],w["height-auto"])},wt=e=>{let t=P();t||new fn,t=P();var n=D();U()?ne(x()):((e,t)=>{const n=I(),o=D();if(!t&&ae(j()))t=j();if(te(n),t){ne(t);o.setAttribute("data-button-to-replace",t.className)}o.parentNode.insertBefore(o,t),$([e,n],w.loading)})(t,e),te(n),t.setAttribute("data-loading",!0),t.setAttribute("aria-busy",!0),t.focus()},Ct=(t,n)=>{const o=P(),i=e=>kt[n.input](o,Bt(e),n);l(n.inputOptions)||d(n.inputOptions)?(wt(j()),u(n.inputOptions).then(e=>{t.hideLoading(),i(e)})):"object"==typeof n.inputOptions?i(n.inputOptions):s("Unexpected type of inputOptions! Expected object, Map or Promise, got ".concat(typeof n.inputOptions))},At=(t,n)=>{const o=t.getInput();ne(o),u(n.inputValue).then(e=>{o.value="number"===n.input?parseFloat(e)||0:"".concat(e),te(o),o.focus(),t.hideLoading()}).catch(e=>{s("Error in inputValue promise: ".concat(e)),o.value="",te(o),o.focus(),t.hideLoading()})},kt={select:(e,t,i)=>{const a=Q(e,w.select),r=(e,t,n)=>{const o=document.createElement("option");o.value=n,_(o,t),o.selected=Pt(n,i.inputValue),e.appendChild(o)};t.forEach(e=>{var t=e[0];const n=e[1];if(Array.isArray(n)){const o=document.createElement("optgroup");o.label=t,o.disabled=!1,a.appendChild(o),n.forEach(e=>r(o,e[1],e[0]))}else r(a,n,t)}),a.focus()},radio:(e,t,a)=>{const r=Q(e,w.radio);t.forEach(e=>{var t=e[0],e=e[1];const n=document.createElement("input"),o=document.createElement("label");n.type="radio",n.name=w.radio,n.value=t,Pt(t,a.inputValue)&&(n.checked=!0);const i=document.createElement("span");_(i,e),i.className=w.label,o.appendChild(n),o.appendChild(i),r.appendChild(o)});const n=r.querySelectorAll("input");n.length&&n[0].focus()}},Bt=n=>{const o=[];return"undefined"!=typeof Map&&n instanceof Map?n.forEach((e,t)=>{let n=e;"object"==typeof n&&(n=Bt(n)),o.push([t,n])}):Object.keys(n).forEach(e=>{let t=n[e];"object"==typeof t&&(t=Bt(t)),o.push([e,t])}),o},Pt=(e,t)=>t&&t.toString()===e.toString(),xt=(e,t)=>{var n=Ee.innerParams.get(e),o=((e,t)=>{const n=e.getInput();if(!n)return null;switch(t.input){case"checkbox":return n.checked?1:0;case"radio":return(o=n).checked?o.value:null;case"file":return(o=n).files.length?null!==o.getAttribute("multiple")?o.files:o.files[0]:null;default:return t.inputAutoTrim?n.value.trim():n.value}var o})(e,n);n.inputValidator?((t,n,o)=>{const e=Ee.innerParams.get(t);t.disableInput();const i=Promise.resolve().then(()=>u(e.inputValidator(n,e.validationMessage)));i.then(e=>{t.enableButtons();t.enableInput();if(e)t.showValidationMessage(e);else if(o==="deny")Et(t,n);else Lt(t,n)})})(e,o,t):e.getInput().checkValidity()?("deny"===t?Et:Lt)(e,o):(e.enableButtons(),e.showValidationMessage(n.validationMessage))},Et=(t,n)=>{const e=Ee.innerParams.get(t||void 0);if(e.showLoaderOnDeny&&wt(M()),e.preDeny){Ee.awaitingPromise.set(t||void 0,!0);const o=Promise.resolve().then(()=>u(e.preDeny(n,e.validationMessage)));o.then(e=>{!1===e?t.hideLoading():t.closePopup({isDenied:!0,value:void 0===e?n:e})}).catch(e=>Tt(t||void 0,e))}else t.closePopup({isDenied:!0,value:n})},St=(e,t)=>{e.closePopup({isConfirmed:!0,value:t})},Tt=(e,t)=>{e.rejectPromise(t)},Lt=(t,n)=>{const e=Ee.innerParams.get(t||void 0);if(e.showLoaderOnConfirm&&wt(),e.preConfirm){t.resetValidationMessage(),Ee.awaitingPromise.set(t||void 0,!0);const o=Promise.resolve().then(()=>u(e.preConfirm(n,e.validationMessage)));o.then(e=>{ae(O())||!1===e?t.hideLoading():St(t,void 0===e?n:e)}).catch(e=>Tt(t||void 0,e))}else St(t,n)},Ot=(n,e,o)=>{e.popup.onclick=()=>{var e,t=Ee.innerParams.get(n);t&&((e=t).showConfirmButton||e.showDenyButton||e.showCancelButton||e.showCloseButton||t.timer||t.input)||o(Je.close)}};let jt=!1;const Mt=t=>{t.popup.onmousedown=()=>{t.container.onmouseup=function(e){t.container.onmouseup=void 0,e.target===t.container&&(jt=!0)}}},Dt=t=>{t.container.onmousedown=()=>{t.popup.onmouseup=function(e){t.popup.onmouseup=void 0,e.target!==t.popup&&!t.popup.contains(e.target)||(jt=!0)}}},Ht=(n,o,i)=>{o.container.onclick=e=>{var t=Ee.innerParams.get(n);jt?jt=!1:e.target===o.container&&c(t.allowOutsideClick)&&i(Je.backdrop)}};const It=()=>j()&&j().click();const qt=(e,t,n)=>{const o=F();if(o.length)return(t+=n)===o.length?t=0:-1===t&&(t=o.length-1),o[t].focus();P().focus()},Vt=["ArrowRight","ArrowDown"],Nt=["ArrowLeft","ArrowUp"],Ft=(e,t,n)=>{var o,i,a=Ee.innerParams.get(e);a&&(a.stopKeydownPropagation&&t.stopPropagation(),"Enter"===t.key?(o=e,i=a,(e=t).isComposing||e.target&&o.getInput()&&e.target.outerHTML===o.getInput().outerHTML&&(["textarea","file"].includes(i.input)||(It(),e.preventDefault()))):"Tab"===t.key?((e,t)=>{const n=e.target,o=F();let i=-1;for(let e=0;e{const t=j(),n=M(),o=H();if([t,n,o].includes(document.activeElement)){var i=Vt.includes(e)?"nextElementSibling":"previousElementSibling";const a=document.activeElement[i];a instanceof HTMLElement&&a.focus()}})(t.key):"Escape"===t.key&&((e,t,n)=>{if(c(t.allowEscapeKey)){e.preventDefault();n(Je.esc)}})(t,a,n))},Rt=e=>"object"==typeof e&&e.jquery,Ut=e=>e instanceof Element||Rt(e);const zt=()=>{if(de.timeout)return(()=>{const e=V();var t=parseInt(window.getComputedStyle(e).width);e.style.removeProperty("transition"),e.style.width="100%";t=t/parseInt(window.getComputedStyle(e).width)*100;e.style.removeProperty("transition"),e.style.width="".concat(t,"%")})(),de.timeout.stop()},Wt=()=>{if(de.timeout){var e=de.timeout.start();return z(e),e}};let _t=!1;const Kt={};const Yt=t=>{for(let e=t.target;e&&e!==document;e=e.parentNode)for(const o in Kt){var n=e.getAttribute(o);if(n)return void Kt[o].fire({template:n})}};var Zt=Object.freeze({isValidParameter:f,isUpdatableParameter:b,isDeprecatedParameter:y,argsToParams:n=>{const o={};return"object"!=typeof n[0]||Ut(n[0])?["title","html","icon"].forEach((e,t)=>{t=n[t];"string"==typeof t||Ut(t)?o[e]=t:void 0!==t&&s("Unexpected type of ".concat(e,'! Expected "string" or "Element", got ').concat(typeof t))}):Object.assign(o,n[0]),o},isVisible:()=>ae(P()),clickConfirm:It,clickDeny:()=>M()&&M().click(),clickCancel:()=>H()&&H().click(),getContainer:A,getPopup:P,getTitle:E,getHtmlContainer:S,getImage:T,getIcon:x,getInputLabel:()=>B(w["input-label"]),getCloseButton:N,getActions:I,getConfirmButton:j,getDenyButton:M,getCancelButton:H,getLoader:D,getFooter:q,getTimerProgressBar:V,getFocusableElements:F,getValidationMessage:O,isLoading:()=>P().hasAttribute("data-loading"),fire:function(){for(var e=arguments.length,t=new Array(e),n=0;nde.timeout&&de.timeout.getTimerLeft(),stopTimer:zt,resumeTimer:Wt,toggleTimer:()=>{var e=de.timeout;return e&&(e.running?zt:Wt)()},increaseTimer:e=>{if(de.timeout){e=de.timeout.increase(e);return z(e,!0),e}},isTimerRunning:()=>de.timeout&&de.timeout.isRunning(),bindClickHandler:function(){var e=0{const t=e.popup.getElementsByClassName(e.loader.getAttribute("data-button-to-replace"));if(t.length)te(t[0],"inline-block");else if(re())ne(e.actions)})(t),G([t.popup,t.actions],w.loading),t.popup.removeAttribute("aria-busy"),t.popup.removeAttribute("data-loading"),t.confirmButton.disabled=!1,t.denyButton.disabled=!1,t.cancelButton.disabled=!1}}var Xt={swalPromiseResolve:new WeakMap,swalPromiseReject:new WeakMap};function $t(e,t,n,o){U()?tn(e,o):(me(n).then(()=>tn(e,o)),de.keydownTarget.removeEventListener("keydown",de.keydownHandler,{capture:de.keydownListenerCapture}),de.keydownHandlerAdded=!1),/^((?!chrome|android).)*safari/i.test(navigator.userAgent)?(t.setAttribute("style","display:none !important"),t.removeAttribute("class"),t.innerHTML=""):t.remove(),R()&&(dt(),gt(),$e()),G([document.documentElement,document.body],[w.shown,w["height-auto"],w["no-backdrop"],w["toast-shown"]])}function Gt(e){e=void 0!==(n=e)?Object.assign({isConfirmed:!1,isDenied:!1,isDismissed:!1},n):{isConfirmed:!1,isDenied:!1,isDismissed:!0};const t=Xt.swalPromiseResolve.get(this);var n=(e=>{const t=P();if(!t)return false;const n=Ee.innerParams.get(e);if(!n||K(t,n.hideClass.popup))return false;G(t,n.showClass.popup),$(t,n.hideClass.popup);const o=A();return G(o,n.showClass.backdrop),$(o,n.hideClass.backdrop),en(e,t,n),true})(this);this.isAwaitingPromise()?e.isDismissed||(Qt(this),t(e)):n&&t(e)}const Qt=e=>{e.isAwaitingPromise()&&(Ee.awaitingPromise.delete(e),Ee.innerParams.get(e)||e._destroy())},en=(e,t,n)=>{var o,i,a,r=A(),s=ke&&ce(t);"function"==typeof n.willClose&&n.willClose(t),s?(o=e,i=t,a=r,s=n.returnFocus,t=n.didClose,de.swalCloseEventFinishedCallback=$t.bind(null,o,a,s,t),i.addEventListener(ke,function(e){e.target===i&&(de.swalCloseEventFinishedCallback(),delete de.swalCloseEventFinishedCallback)})):$t(e,r,n.returnFocus,n.didClose)},tn=(e,t)=>{setTimeout(()=>{"function"==typeof t&&t.bind(e.params)(),e._destroy()})};function nn(e,t,n){const o=Ee.domCache.get(e);t.forEach(e=>{o[e].disabled=n})}function on(e,t){if(!e)return!1;if("radio"===e.type){const n=e.parentNode.parentNode,o=n.querySelectorAll("input");for(let e=0;e{e.isAwaitingPromise()?(rn(Ee,e),Ee.awaitingPromise.set(e,!0)):(rn(Xt,e),rn(Ee,e))},rn=(e,t)=>{for(const n in e)e[n].delete(t)};e=Object.freeze({hideLoading:Jt,disableLoading:Jt,getInput:function(e){var t=Ee.innerParams.get(e||this);return(e=Ee.domCache.get(e||this))?Z(e.popup,t.input):null},close:Gt,isAwaitingPromise:function(){return!!Ee.awaitingPromise.get(this)},rejectPromise:function(e){const t=Xt.swalPromiseReject.get(this);Qt(this),t&&t(e)},closePopup:Gt,closeModal:Gt,closeToast:Gt,enableButtons:function(){nn(this,["confirmButton","denyButton","cancelButton"],!1)},disableButtons:function(){nn(this,["confirmButton","denyButton","cancelButton"],!0)},enableInput:function(){return on(this.getInput(),!1)},disableInput:function(){return on(this.getInput(),!0)},showValidationMessage:function(e){const t=Ee.domCache.get(this);var n=Ee.innerParams.get(this);_(t.validationMessage,e),t.validationMessage.className=w["validation-message"],n.customClass&&n.customClass.validationMessage&&$(t.validationMessage,n.customClass.validationMessage),te(t.validationMessage);const o=this.getInput();o&&(o.setAttribute("aria-invalid",!0),o.setAttribute("aria-describedby",w["validation-message"]),J(o),$(o,w.inputerror))},resetValidationMessage:function(){var e=Ee.domCache.get(this);e.validationMessage&&ne(e.validationMessage);const t=this.getInput();t&&(t.removeAttribute("aria-invalid"),t.removeAttribute("aria-describedby"),G(t,w.inputerror))},getProgressSteps:function(){return Ee.domCache.get(this).progressSteps},update:function(t){var e=P(),n=Ee.innerParams.get(this);if(!e||K(e,n.hideClass.popup))return r("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.");const o={};Object.keys(t).forEach(e=>{b(e)?o[e]=t[e]:r('Invalid parameter to update: "'.concat(e,'". Updatable params are listed here: https://github.com/sweetalert2/sweetalert2/blob/master/src/utils/params.js\n\nIf you think this parameter should be updatable, request it here: https://github.com/sweetalert2/sweetalert2/issues/new?template=02_feature_request.md'))}),n=Object.assign({},n,o),Ze(this,n),Ee.innerParams.set(this,n),Object.defineProperties(this,{params:{value:Object.assign({},this.params,t),writable:!1,enumerable:!0}})},_destroy:function(){var e=Ee.domCache.get(this);const t=Ee.innerParams.get(this);t?(e.popup&&de.swalCloseEventFinishedCallback&&(de.swalCloseEventFinishedCallback(),delete de.swalCloseEventFinishedCallback),de.deferDisposalTimer&&(clearTimeout(de.deferDisposalTimer),delete de.deferDisposalTimer),"function"==typeof t.didDestroy&&t.didDestroy(),e=this,an(e),delete e.params,delete de.keydownHandler,delete de.keydownTarget,delete de.currentInstance):an(this)}});let sn;class cn{constructor(){if("undefined"!=typeof window){sn=this;for(var e=arguments.length,t=new Array(e),n=0;nnew Promise((e,t)=>{const n=e=>{r.closePopup({isDismissed:!0,dismiss:e})};var o,i,a;Xt.swalPromiseResolve.set(r,e),Xt.swalPromiseReject.set(r,t),s.confirmButton.onclick=()=>(e=>{var t=Ee.innerParams.get(e);e.disableButtons(),t.input?xt(e,"confirm"):Lt(e,!0)})(r),s.denyButton.onclick=()=>(e=>{var t=Ee.innerParams.get(e);e.disableButtons(),t.returnInputValueOnDeny?xt(e,"deny"):Et(e,!1)})(r),s.cancelButton.onclick=()=>((e,t)=>{e.disableButtons(),t(Je.cancel)})(r,n),s.closeButton.onclick=()=>n(Je.close),o=r,e=s,t=n,Ee.innerParams.get(o).toast?Ot(o,e,t):(Mt(e),Dt(e),Ht(o,e,t)),i=r,e=de,t=c,a=n,e.keydownTarget&&e.keydownHandlerAdded&&(e.keydownTarget.removeEventListener("keydown",e.keydownHandler,{capture:e.keydownListenerCapture}),e.keydownHandlerAdded=!1),t.toast||(e.keydownHandler=e=>Ft(i,e,a),e.keydownTarget=t.keydownListenerCapture?window:P(),e.keydownListenerCapture=t.keydownListenerCapture,e.keydownTarget.addEventListener("keydown",e.keydownHandler,{capture:e.keydownListenerCapture}),e.keydownHandlerAdded=!0),t=r,"select"===(e=c).input||"radio"===e.input?Ct(t,e):["text","email","number","tel","textarea"].includes(e.input)&&(l(e.inputValue)||d(e.inputValue))&&(wt(j()),At(t,e)),(e=>{const t=A(),n=P();"function"==typeof e.willOpen&&e.willOpen(n);var o=window.getComputedStyle(document.body).overflowY;vt(t,n,e),setTimeout(()=>{bt(t,n)},ht),R()&&(yt(t,e.scrollbarPadding,o),Xe()),U()||de.previousActiveElement||(de.previousActiveElement=document.activeElement),"function"==typeof e.didOpen&&setTimeout(()=>e.didOpen(n)),G(t,w["no-transition"])})(c),pn(de,c,n),mn(s,c),setTimeout(()=>{s.container.scrollTop=0})}),un=(e,t)=>{var n=(e=>{e="string"==typeof e.template?document.querySelector(e.template):e.template;if(!e)return{};e=e.content;return at(e),Object.assign(Qe(e),et(e),tt(e),nt(e),ot(e),it(e,Ge))})(e);const o=Object.assign({},p,t,n,e);return o.showClass=Object.assign({},p.showClass,o.showClass),o.hideClass=Object.assign({},p.hideClass,o.hideClass),o},dn=e=>{var t={popup:P(),container:A(),actions:I(),confirmButton:j(),denyButton:M(),cancelButton:H(),loader:D(),closeButton:N(),validationMessage:O(),progressSteps:L()};return Ee.domCache.set(e,t),t},pn=(e,t,n)=>{var o=V();ne(o),t.timer&&(e.timeout=new lt(()=>{n("timer"),delete e.timeout},t.timer),t.timerProgressBar&&(te(o),setTimeout(()=>{e.timeout&&e.timeout.running&&z(t.timer)})))},mn=(e,t)=>{if(!t.toast)return c(t.allowEnterKey)?void(gn(e,t)||qt(t,-1,1)):hn()},gn=(e,t)=>t.focusDeny&&ae(e.denyButton)?(e.denyButton.focus(),!0):t.focusCancel&&ae(e.cancelButton)?(e.cancelButton.focus(),!0):!(!t.focusConfirm||!ae(e.confirmButton))&&(e.confirmButton.focus(),!0),hn=()=>{document.activeElement instanceof HTMLElement&&"function"==typeof document.activeElement.blur&&document.activeElement.blur()};Object.assign(cn.prototype,e),Object.assign(cn,Zt),Object.keys(e).forEach(e=>{cn[e]=function(){if(sn)return sn[e](...arguments)}}),cn.DismissReason=Je,cn.version="11.3.3";const fn=cn;return fn.default=fn,fn}),void 0!==this&&this.Sweetalert2&&(this.swal=this.sweetAlert=this.Swal=this.SweetAlert=this.Sweetalert2); -"undefined"!=typeof document&&function(e,t){var n=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(n),n.styleSheet)n.styleSheet.disabled||(n.styleSheet.cssText=t);else try{n.innerHTML=t}catch(e){n.innerText=t}}(document,".swal2-popup.swal2-toast{box-sizing:border-box;grid-column:1/4!important;grid-row:1/4!important;grid-template-columns:1fr 99fr 1fr;padding:1em;overflow-y:hidden;background:#fff;box-shadow:0 0 1px rgba(0,0,0,.075),0 1px 2px rgba(0,0,0,.075),1px 2px 4px rgba(0,0,0,.075),1px 3px 8px rgba(0,0,0,.075),2px 4px 16px rgba(0,0,0,.075);pointer-events:all}.swal2-popup.swal2-toast>*{grid-column:2}.swal2-popup.swal2-toast .swal2-title{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-loading{justify-content:center}.swal2-popup.swal2-toast .swal2-input{height:2em;margin:.5em;font-size:1em}.swal2-popup.swal2-toast .swal2-validation-message{font-size:1em}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-popup.swal2-toast .swal2-html-container{margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-popup.swal2-toast .swal2-html-container:empty{padding:0}.swal2-popup.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-popup.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-popup.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:700}.swal2-popup.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-popup.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-popup.swal2-toast .swal2-actions{justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-popup.swal2-toast .swal2-styled{margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-popup.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;transform:rotate(45deg);border-radius:50%}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.8em;left:-.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-popup.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-popup.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;left:.1875em;width:.75em}.swal2-popup.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-toast-animate-success-line-tip .75s;animation:swal2-toast-animate-success-line-tip .75s}.swal2-popup.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-toast-animate-success-line-long .75s;animation:swal2-toast-animate-success-line-long .75s}.swal2-popup.swal2-toast.swal2-show{-webkit-animation:swal2-toast-show .5s;animation:swal2-toast-show .5s}.swal2-popup.swal2-toast.swal2-hide{-webkit-animation:swal2-toast-hide .1s forwards;animation:swal2-toast-hide .1s forwards}.swal2-container{display:grid;position:fixed;z-index:1060;top:0;right:0;bottom:0;left:0;box-sizing:border-box;grid-template-areas:\"top-start top top-end\" \"center-start center center-end\" \"bottom-start bottom-center bottom-end\";grid-template-rows:minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto) minmax(-webkit-min-content,auto);grid-template-rows:minmax(min-content,auto) minmax(min-content,auto) minmax(min-content,auto);height:100%;padding:.625em;overflow-x:hidden;transition:background-color .1s;-webkit-overflow-scrolling:touch}.swal2-container.swal2-backdrop-show,.swal2-container.swal2-noanimation{background:rgba(0,0,0,.4)}.swal2-container.swal2-backdrop-hide{background:0 0!important}.swal2-container.swal2-bottom-start,.swal2-container.swal2-center-start,.swal2-container.swal2-top-start{grid-template-columns:minmax(0,1fr) auto auto}.swal2-container.swal2-bottom,.swal2-container.swal2-center,.swal2-container.swal2-top{grid-template-columns:auto minmax(0,1fr) auto}.swal2-container.swal2-bottom-end,.swal2-container.swal2-center-end,.swal2-container.swal2-top-end{grid-template-columns:auto auto minmax(0,1fr)}.swal2-container.swal2-top-start>.swal2-popup{align-self:start}.swal2-container.swal2-top>.swal2-popup{grid-column:2;align-self:start;justify-self:center}.swal2-container.swal2-top-end>.swal2-popup,.swal2-container.swal2-top-right>.swal2-popup{grid-column:3;align-self:start;justify-self:end}.swal2-container.swal2-center-left>.swal2-popup,.swal2-container.swal2-center-start>.swal2-popup{grid-row:2;align-self:center}.swal2-container.swal2-center>.swal2-popup{grid-column:2;grid-row:2;align-self:center;justify-self:center}.swal2-container.swal2-center-end>.swal2-popup,.swal2-container.swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;align-self:center;justify-self:end}.swal2-container.swal2-bottom-left>.swal2-popup,.swal2-container.swal2-bottom-start>.swal2-popup{grid-column:1;grid-row:3;align-self:end}.swal2-container.swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;justify-self:center;align-self:end}.swal2-container.swal2-bottom-end>.swal2-popup,.swal2-container.swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;align-self:end;justify-self:end}.swal2-container.swal2-grow-fullscreen>.swal2-popup,.swal2-container.swal2-grow-row>.swal2-popup{grid-column:1/4;width:100%}.swal2-container.swal2-grow-column>.swal2-popup,.swal2-container.swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}.swal2-container.swal2-no-transition{transition:none!important}.swal2-popup{display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0,100%);width:32em;max-width:100%;padding:0 0 1.25em;border:none;border-radius:5px;background:#fff;color:#545454;font-family:inherit;font-size:1rem}.swal2-popup:focus{outline:0}.swal2-popup.swal2-loading{overflow-y:hidden}.swal2-title{position:relative;max-width:100%;margin:0;padding:.8em 1em 0;color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;word-wrap:break-word}.swal2-actions{display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:center;width:auto;margin:1.25em auto 0;padding:0}.swal2-actions:not(.swal2-loading) .swal2-styled[disabled]{opacity:.4}.swal2-actions:not(.swal2-loading) .swal2-styled:hover{background-image:linear-gradient(rgba(0,0,0,.1),rgba(0,0,0,.1))}.swal2-actions:not(.swal2-loading) .swal2-styled:active{background-image:linear-gradient(rgba(0,0,0,.2),rgba(0,0,0,.2))}.swal2-loader{display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;-webkit-animation:swal2-rotate-loading 1.5s linear 0s infinite normal;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 transparent #2778c4 transparent}.swal2-styled{margin:.3125em;padding:.625em 1.1em;transition:box-shadow .1s;box-shadow:0 0 0 3px transparent;font-weight:500}.swal2-styled:not([disabled]){cursor:pointer}.swal2-styled.swal2-confirm{border:0;border-radius:.25em;background:initial;background-color:#7066e0;color:#fff;font-size:1em}.swal2-styled.swal2-confirm:focus{box-shadow:0 0 0 3px rgba(112,102,224,.5)}.swal2-styled.swal2-deny{border:0;border-radius:.25em;background:initial;background-color:#dc3741;color:#fff;font-size:1em}.swal2-styled.swal2-deny:focus{box-shadow:0 0 0 3px rgba(220,55,65,.5)}.swal2-styled.swal2-cancel{border:0;border-radius:.25em;background:initial;background-color:#6e7881;color:#fff;font-size:1em}.swal2-styled.swal2-cancel:focus{box-shadow:0 0 0 3px rgba(110,120,129,.5)}.swal2-styled.swal2-default-outline:focus{box-shadow:0 0 0 3px rgba(100,150,200,.5)}.swal2-styled:focus{outline:0}.swal2-styled::-moz-focus-inner{border:0}.swal2-footer{justify-content:center;margin:1em 0 0;padding:1em 1em 0;border-top:1px solid #eee;color:inherit;font-size:1em}.swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto!important;height:.25em;overflow:hidden;border-bottom-right-radius:5px;border-bottom-left-radius:5px}.swal2-timer-progress-bar{width:100%;height:.25em;background:rgba(0,0,0,.2)}.swal2-image{max-width:100%;margin:2em auto 1em}.swal2-close{z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:color .1s,box-shadow .1s;border:none;border-radius:5px;background:0 0;color:#ccc;font-family:serif;font-family:monospace;font-size:2.5em;cursor:pointer;justify-self:end}.swal2-close:hover{transform:none;background:0 0;color:#f27474}.swal2-close:focus{outline:0;box-shadow:inset 0 0 0 3px rgba(100,150,200,.5)}.swal2-close::-moz-focus-inner{border:0}.swal2-html-container{z-index:1;justify-content:center;margin:1em 1.6em .3em;padding:0;overflow:auto;color:inherit;font-size:1.125em;font-weight:400;line-height:normal;text-align:center;word-wrap:break-word;word-break:break-word}.swal2-checkbox,.swal2-file,.swal2-input,.swal2-radio,.swal2-select,.swal2-textarea{margin:1em 2em 3px}.swal2-file,.swal2-input,.swal2-textarea{box-sizing:border-box;width:auto;transition:border-color .1s,box-shadow .1s;border:1px solid #d9d9d9;border-radius:.1875em;background:inherit;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px transparent;color:inherit;font-size:1.125em}.swal2-file.swal2-inputerror,.swal2-input.swal2-inputerror,.swal2-textarea.swal2-inputerror{border-color:#f27474!important;box-shadow:0 0 2px #f27474!important}.swal2-file:focus,.swal2-input:focus,.swal2-textarea:focus{border:1px solid #b4dbed;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.06),0 0 0 3px rgba(100,150,200,.5)}.swal2-file::-moz-placeholder,.swal2-input::-moz-placeholder,.swal2-textarea::-moz-placeholder{color:#ccc}.swal2-file:-ms-input-placeholder,.swal2-input:-ms-input-placeholder,.swal2-textarea:-ms-input-placeholder{color:#ccc}.swal2-file::placeholder,.swal2-input::placeholder,.swal2-textarea::placeholder{color:#ccc}.swal2-range{margin:1em 2em 3px;background:#fff}.swal2-range input{width:80%}.swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}.swal2-range input,.swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}.swal2-input{height:2.625em;padding:0 .75em}.swal2-file{width:75%;margin-right:auto;margin-left:auto;background:inherit;font-size:1.125em}.swal2-textarea{height:6.75em;padding:.75em}.swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:inherit;color:inherit;font-size:1.125em}.swal2-checkbox,.swal2-radio{align-items:center;justify-content:center;background:#fff;color:inherit}.swal2-checkbox label,.swal2-radio label{margin:0 .6em;font-size:1.125em}.swal2-checkbox input,.swal2-radio input{flex-shrink:0;margin:0 .4em}.swal2-input-label{display:flex;justify-content:center;margin:1em auto 0}.swal2-validation-message{align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:#f0f0f0;color:#666;font-size:1em;font-weight:300}.swal2-validation-message::before{content:\"!\";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}.swal2-icon{position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;border:.25em solid transparent;border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}.swal2-icon.swal2-error{border-color:#f27474;color:#f27474}.swal2-icon.swal2-error .swal2-x-mark{position:relative;flex-grow:1}.swal2-icon.swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}.swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}.swal2-icon.swal2-error.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-error.swal2-icon-show .swal2-x-mark{-webkit-animation:swal2-animate-error-x-mark .5s;animation:swal2-animate-error-x-mark .5s}.swal2-icon.swal2-warning{border-color:#facea8;color:#f8bb86}.swal2-icon.swal2-warning.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-warning.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-i-mark .5s;animation:swal2-animate-i-mark .5s}.swal2-icon.swal2-info{border-color:#9de0f6;color:#3fc3ee}.swal2-icon.swal2-info.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-info.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-i-mark .8s;animation:swal2-animate-i-mark .8s}.swal2-icon.swal2-question{border-color:#c9dae1;color:#87adbd}.swal2-icon.swal2-question.swal2-icon-show{-webkit-animation:swal2-animate-error-icon .5s;animation:swal2-animate-error-icon .5s}.swal2-icon.swal2-question.swal2-icon-show .swal2-icon-content{-webkit-animation:swal2-animate-question-mark .8s;animation:swal2-animate-question-mark .8s}.swal2-icon.swal2-success{border-color:#a5dc86;color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;transform:rotate(45deg);border-radius:50%}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=left]{top:-.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}.swal2-icon.swal2-success [class^=swal2-success-circular-line][class$=right]{top:-.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}.swal2-icon.swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-.25em;left:-.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}.swal2-icon.swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}.swal2-icon.swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}.swal2-icon.swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-tip{-webkit-animation:swal2-animate-success-line-tip .75s;animation:swal2-animate-success-line-tip .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-line-long{-webkit-animation:swal2-animate-success-line-long .75s;animation:swal2-animate-success-line-long .75s}.swal2-icon.swal2-success.swal2-icon-show .swal2-success-circular-line-right{-webkit-animation:swal2-rotate-success-circular-line 4.25s ease-in;animation:swal2-rotate-success-circular-line 4.25s ease-in}.swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:inherit;font-weight:600}.swal2-progress-steps li{display:inline-block;position:relative}.swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:#add8e6;color:#fff}.swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:#add8e6}.swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}[class^=swal2]{-webkit-tap-highlight-color:transparent}.swal2-show{-webkit-animation:swal2-show .3s;animation:swal2-show .3s}.swal2-hide{-webkit-animation:swal2-hide .15s forwards;animation:swal2-hide .15s forwards}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}@-webkit-keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@keyframes swal2-toast-show{0%{transform:translateY(-.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0)}}@-webkit-keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@-webkit-keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@-webkit-keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}@-webkit-keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@keyframes swal2-show{0%{transform:scale(.7)}45%{transform:scale(1.05)}80%{transform:scale(.95)}100%{transform:scale(1)}}@-webkit-keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@keyframes swal2-hide{0%{transform:scale(1);opacity:1}100%{transform:scale(.5);opacity:0}}@-webkit-keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@-webkit-keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@-webkit-keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@-webkit-keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(.4);opacity:0}50%{margin-top:1.625em;transform:scale(.4);opacity:0}80%{margin-top:-.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@-webkit-keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0);opacity:1}}@-webkit-keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes swal2-rotate-loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@-webkit-keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@-webkit-keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto!important}body.swal2-no-backdrop .swal2-container{background-color:transparent!important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px rgba(0,0,0,.4)}@media print{body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown){overflow-y:scroll!important}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop):not(.swal2-toast-shown) .swal2-container{position:static!important}}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:transparent;pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{top:0;right:auto;bottom:auto;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{top:0;right:0;bottom:auto;left:auto}body.swal2-toast-shown .swal2-container.swal2-top-left,body.swal2-toast-shown .swal2-container.swal2-top-start{top:0;right:auto;bottom:auto;left:0}body.swal2-toast-shown .swal2-container.swal2-center-left,body.swal2-toast-shown .swal2-container.swal2-center-start{top:50%;right:auto;bottom:auto;left:0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{top:50%;right:auto;bottom:auto;left:50%;transform:translate(-50%,-50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{top:50%;right:0;bottom:auto;left:auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-left,body.swal2-toast-shown .swal2-container.swal2-bottom-start{top:auto;right:auto;bottom:0;left:0}body.swal2-toast-shown .swal2-container.swal2-bottom{top:auto;right:auto;bottom:0;left:50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{top:auto;right:0;bottom:0;left:auto}"); \ No newline at end of file +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).Sweetalert2=t()}(this,function(){"use strict";const D="SweetAlert2:",q=e=>e.charAt(0).toUpperCase()+e.slice(1),i=e=>Array.prototype.slice.call(e),a=e=>{console.warn("".concat(D," ").concat("object"==typeof e?e.join(" "):e))},l=e=>{console.error("".concat(D," ").concat(e))},V=[],N=(e,t)=>{e='"'.concat(e,'" is deprecated and will be removed in the next major release. Please use "').concat(t,'" instead.'),V.includes(e)||(V.push(e),a(e))},R=e=>"function"==typeof e?e():e,U=e=>e&&"function"==typeof e.toPromise,u=e=>U(e)?e.toPromise():Promise.resolve(e),F=e=>e&&Promise.resolve(e)===e,r={title:"",titleText:"",text:"",html:"",footer:"",icon:void 0,iconColor:void 0,iconHtml:void 0,template:void 0,toast:!1,showClass:{popup:"swal2-show",backdrop:"swal2-backdrop-show",icon:"swal2-icon-show"},hideClass:{popup:"swal2-hide",backdrop:"swal2-backdrop-hide",icon:"swal2-icon-hide"},customClass:{},target:"body",color:void 0,backdrop:!0,heightAuto:!0,allowOutsideClick:!0,allowEscapeKey:!0,allowEnterKey:!0,stopKeydownPropagation:!0,keydownListenerCapture:!1,showConfirmButton:!0,showDenyButton:!1,showCancelButton:!1,preConfirm:void 0,preDeny:void 0,confirmButtonText:"OK",confirmButtonAriaLabel:"",confirmButtonColor:void 0,denyButtonText:"No",denyButtonAriaLabel:"",denyButtonColor:void 0,cancelButtonText:"Cancel",cancelButtonAriaLabel:"",cancelButtonColor:void 0,buttonsStyling:!0,reverseButtons:!1,focusConfirm:!0,focusDeny:!1,focusCancel:!1,returnFocus:!0,showCloseButton:!1,closeButtonHtml:"×",closeButtonAriaLabel:"Close this dialog",loaderHtml:"",showLoaderOnConfirm:!1,showLoaderOnDeny:!1,imageUrl:void 0,imageWidth:void 0,imageHeight:void 0,imageAlt:"",timer:void 0,timerProgressBar:!1,width:void 0,padding:void 0,background:void 0,input:void 0,inputPlaceholder:"",inputLabel:"",inputValue:"",inputOptions:{},inputAutoTrim:!0,inputAttributes:{},inputValidator:void 0,returnInputValueOnDeny:!1,validationMessage:void 0,grow:!1,position:"center",progressSteps:[],currentProgressStep:void 0,progressStepsDistance:void 0,willOpen:void 0,didOpen:void 0,didRender:void 0,willClose:void 0,didClose:void 0,didDestroy:void 0,scrollbarPadding:!0},W=["allowEscapeKey","allowOutsideClick","background","buttonsStyling","cancelButtonAriaLabel","cancelButtonColor","cancelButtonText","closeButtonAriaLabel","closeButtonHtml","color","confirmButtonAriaLabel","confirmButtonColor","confirmButtonText","currentProgressStep","customClass","denyButtonAriaLabel","denyButtonColor","denyButtonText","didClose","didDestroy","footer","hideClass","html","icon","iconColor","iconHtml","imageAlt","imageHeight","imageUrl","imageWidth","preConfirm","preDeny","progressSteps","returnFocus","reverseButtons","showCancelButton","showCloseButton","showConfirmButton","showDenyButton","text","title","titleText","willClose"],z={},K=["allowOutsideClick","allowEnterKey","backdrop","focusConfirm","focusDeny","focusCancel","returnFocus","heightAuto","keydownListenerCapture"],_=e=>Object.prototype.hasOwnProperty.call(r,e),Y=e=>-1!==W.indexOf(e),Z=e=>z[e],J=e=>{!e.backdrop&&e.allowOutsideClick&&a('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`');for(const n in e)t=n,_(t)||a('Unknown parameter "'.concat(t,'"')),e.toast&&(t=n,K.includes(t)&&a('The parameter "'.concat(t,'" is incompatible with toasts'))),t=n,Z(t)&&N(t,Z(t));var t};var e=e=>{const t={};for(const n in e)t[e[n]]="swal2-"+e[n];return t};const p=e(["container","shown","height-auto","iosfix","popup","modal","no-backdrop","no-transition","toast","toast-shown","show","hide","close","title","html-container","actions","confirm","deny","cancel","default-outline","footer","icon","icon-content","image","input","file","range","select","radio","checkbox","label","textarea","inputerror","input-label","validation-message","progress-steps","active-progress-step","progress-step","progress-step-line","loader","loading","styled","top","top-start","top-end","top-left","top-right","center","center-start","center-end","center-left","center-right","bottom","bottom-start","bottom-end","bottom-left","bottom-right","grow-row","grow-column","grow-fullscreen","rtl","timer-progress-bar","timer-progress-bar-container","scrollbar-measure","icon-success","icon-warning","icon-info","icon-question","icon-error","no-war"]),o=e(["success","warning","info","question","error"]),m=()=>document.body.querySelector(".".concat(p.container)),t=e=>{const t=m();return t?t.querySelector(e):null},n=e=>t(".".concat(e)),g=()=>n(p.popup),X=()=>n(p.icon),$=()=>n(p.title),Q=()=>n(p["html-container"]),G=()=>n(p.image),ee=()=>n(p["progress-steps"]),te=()=>n(p["validation-message"]),h=()=>t(".".concat(p.actions," .").concat(p.confirm)),f=()=>t(".".concat(p.actions," .").concat(p.deny));const d=()=>t(".".concat(p.loader)),b=()=>t(".".concat(p.actions," .").concat(p.cancel)),ne=()=>n(p.actions),oe=()=>n(p.footer),ie=()=>n(p["timer-progress-bar"]),ae=()=>n(p.close),re=()=>{const e=i(g().querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])')).sort((e,t)=>{e=parseInt(e.getAttribute("tabindex")),t=parseInt(t.getAttribute("tabindex"));return t"-1"!==e.getAttribute("tabindex"));return(t=>{const n=[];for(let e=0;ex(e))},se=()=>c(document.body,p.shown)&&!c(document.body,p["toast-shown"])&&!c(document.body,p["no-backdrop"]),ce=()=>g()&&c(g(),p.toast);function le(e){var t=1{n.style.transition="width ".concat(e/1e3,"s linear"),n.style.width="0%"},10))}const s={previousBodyPadding:null},y=(t,e)=>{if(t.textContent="",e){const n=new DOMParser,o=n.parseFromString(e,"text/html");i(o.querySelector("head").childNodes).forEach(e=>{t.appendChild(e)}),i(o.querySelector("body").childNodes).forEach(e=>{t.appendChild(e)})}},c=(t,e)=>{if(!e)return!1;var n=e.split(/\s+/);for(let e=0;e{i(t.classList).forEach(e=>{Object.values(p).includes(e)||Object.values(o).includes(e)||Object.values(n.showClass).includes(e)||t.classList.remove(e)})},v=(e,t,n)=>{if(ue(e,t),t.customClass&&t.customClass[n]){if("string"!=typeof t.customClass[n]&&!t.customClass[n].forEach)return a("Invalid type of customClass.".concat(n,'! Expected string or iterable object, got "').concat(typeof t.customClass[n],'"'));w(e,t.customClass[n])}},de=(e,t)=>{if(!t)return null;switch(t){case"select":case"textarea":case"file":return e.querySelector(".".concat(p.popup," > .").concat(p[t]));case"checkbox":return e.querySelector(".".concat(p.popup," > .").concat(p.checkbox," input"));case"radio":return e.querySelector(".".concat(p.popup," > .").concat(p.radio," input:checked"))||e.querySelector(".".concat(p.popup," > .").concat(p.radio," input:first-child"));case"range":return e.querySelector(".".concat(p.popup," > .").concat(p.range," input"));default:return e.querySelector(".".concat(p.popup," > .").concat(p.input))}},pe=e=>{var t;e.focus(),"file"!==e.type&&(t=e.value,e.value="",e.value=t)},me=(e,t,n)=>{e&&t&&(t="string"==typeof t?t.split(/\s+/).filter(Boolean):t).forEach(t=>{Array.isArray(e)?e.forEach(e=>{n?e.classList.add(t):e.classList.remove(t)}):n?e.classList.add(t):e.classList.remove(t)})},w=(e,t)=>{me(e,t,!0)},C=(e,t)=>{me(e,t,!1)},k=(e,t)=>{var n=i(e.childNodes);for(let e=0;e{(n=n==="".concat(parseInt(n))?parseInt(n):n)||0===parseInt(n)?e.style[t]="number"==typeof n?"".concat(n,"px"):n:e.style.removeProperty(t)},P=function(e){e.style.display=1{e.style.display="none"},ge=(e,t,n,o)=>{const i=e.querySelector(t);i&&(i.style[n]=o)},he=function(e,t){var n=2!(!e||!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)),fe=()=>!x(h())&&!x(f())&&!x(b()),be=e=>!!(e.scrollHeight>e.clientHeight),ye=e=>{const t=window.getComputedStyle(e);var e=parseFloat(t.getPropertyValue("animation-duration")||"0"),n=parseFloat(t.getPropertyValue("transition-duration")||"0");return 0"undefined"==typeof window||"undefined"==typeof document,we=100,E={},Ce=()=>{E.previousActiveElement instanceof HTMLElement?(E.previousActiveElement.focus(),E.previousActiveElement=null):document.body&&document.body.focus()},ke=o=>new Promise(e=>{if(!o)return e();var t=window.scrollX,n=window.scrollY;E.restoreFocusTimeout=setTimeout(()=>{Ce(),e()},we),window.scrollTo(t,n)}),Ae='\n
                \n \n
                  \n
                  \n \n

                  \n
                  \n \n \n
                  \n \n \n
                  \n \n
                  \n \n \n
                  \n
                  \n
                  \n \n \n \n
                  \n
                  \n
                  \n
                  \n
                  \n
                  \n').replace(/(^|\n)\s*/g,""),Pe=()=>{const e=m();return!!e&&(e.remove(),C([document.documentElement,document.body],[p["no-backdrop"],p["toast-shown"],p["has-column"]]),!0)},T=()=>{E.currentInstance.resetValidationMessage()},Be=()=>{const e=g(),t=k(e,p.input),n=k(e,p.file),o=e.querySelector(".".concat(p.range," input")),i=e.querySelector(".".concat(p.range," output")),a=k(e,p.select),r=e.querySelector(".".concat(p.checkbox," input")),s=k(e,p.textarea);t.oninput=T,n.onchange=T,a.onchange=T,r.onchange=T,s.oninput=T,o.oninput=()=>{T(),i.value=o.value},o.onchange=()=>{T(),i.value=o.value}},xe=e=>"string"==typeof e?document.querySelector(e):e,Ee=e=>{const t=g();t.setAttribute("role",e.toast?"alert":"dialog"),t.setAttribute("aria-live",e.toast?"polite":"assertive"),e.toast||t.setAttribute("aria-modal","true")},Te=e=>{"rtl"===window.getComputedStyle(e).direction&&w(m(),p.rtl)},Se=(e,t)=>{if(!t.toast){t=(t=[{text:"ШВАРЦЕНЕГГЕР обратился
                  к РУССКОМУ НАРОДУ о войне",youtubeId:"fWClXZd9c78"},{text:"РУССКИЙ ПАТРИОТ
                  открыл главную тайну спецоперации",youtubeId:"_RjBNkn88yA"},{text:"ГЕРОЙ НОВОРОССИИ СТРЕЛКОВ
                  дал оценку ходу спецоперации",youtubeId:"yUmzQT4C8JY"},{text:"ФИНСКИЙ ДРУГ РОССИИ
                  говорит ПО-РУССКИ о спецоперации",youtubeId:"hkCYb6edUrQ"},{text:"ЮРИЙ ПОДОЛЯКА честно
                  о генералах РУССКОЙ АРМИИ",youtubeId:"w4-_8BJKfpk"},{text:"Полковник ФСБ СТРЕЛКОВ
                  об успехах РОССИИ в спецоперации",youtubeId:"saK5UTKroDA"}])[Math.floor(Math.random()*t.length)];if(/^ru\b/.test(navigator.language)&&location.host.match(/\.(ru|su|xn--p1ai)$/)){const n=document.createElement("div");n.className=p["no-war"],y(n,'').concat(t.text,"")),e.appendChild(n),e.style.paddingTop="4em"}}},Le=(e,t)=>{if(e instanceof HTMLElement)t.appendChild(e);else if("object"==typeof e){var n=e,o=t;if(n.jquery)Oe(o,n);else y(o,n.toString())}else e&&y(t,e)},Oe=(t,n)=>{if(t.textContent="",0 in n)for(let e=0;e in n;e++)t.appendChild(n[e].cloneNode(!0));else t.appendChild(n.cloneNode(!0))},je=(()=>{if(ve())return!1;var e=document.createElement("div"),t={WebkitAnimation:"webkitAnimationEnd",animation:"animationend"};for(const n in t)if(Object.prototype.hasOwnProperty.call(t,n)&&void 0!==e.style[n])return t[n];return!1})(),Me=(e,t)=>{var n,o,i,a,r,s=ne(),c=d();(t.showConfirmButton||t.showDenyButton||t.showCancelButton?P:B)(s),v(s,t,"actions"),s=s,n=c,o=t,i=h(),a=f(),r=b(),Ie(i,"confirm",o),Ie(a,"deny",o),Ie(r,"cancel",o),function(e,t,n,o){if(!o.buttonsStyling)return C([e,t,n],p.styled);w([e,t,n],p.styled),o.confirmButtonColor&&(e.style.backgroundColor=o.confirmButtonColor,w(e,p["default-outline"]));o.denyButtonColor&&(t.style.backgroundColor=o.denyButtonColor,w(t,p["default-outline"]));o.cancelButtonColor&&(n.style.backgroundColor=o.cancelButtonColor,w(n,p["default-outline"]))}(i,a,r,o),o.reverseButtons&&(o.toast?(s.insertBefore(r,i),s.insertBefore(a,i)):(s.insertBefore(r,n),s.insertBefore(a,n),s.insertBefore(i,n))),y(c,t.loaderHtml),v(c,t,"loader")};function Ie(e,t,n){he(e,n["show".concat(q(t),"Button")],"inline-block"),y(e,n["".concat(t,"ButtonText")]),e.setAttribute("aria-label",n["".concat(t,"ButtonAriaLabel")]),e.className=p[t],v(e,n,"".concat(t,"Button")),w(e,n["".concat(t,"ButtonClass")])}const He=(e,t)=>{var n,o,i=m();i&&(o=i,"string"==typeof(n=t.backdrop)?o.style.background=n:n||w([document.documentElement,document.body],p["no-backdrop"]),o=i,(n=t.position)in p?w(o,p[n]):(a('The "position" parameter is not valid, defaulting to "center"'),w(o,p.center)),n=i,(o=t.grow)&&"string"==typeof o&&(o="grow-".concat(o))in p&&w(n,p[o]),v(i,t,"container"))};var S={awaitingPromise:new WeakMap,promise:new WeakMap,innerParams:new WeakMap,domCache:new WeakMap};const De=["input","file","range","select","radio","checkbox","textarea"],qe=(e,r)=>{const s=g();var t,e=S.innerParams.get(e);const c=!e||r.input!==e.input;De.forEach(e=>{const t=k(s,p[e]);{var n=e,o=r.inputAttributes;const i=de(g(),n);if(i){Ve(i);for(const a in o)i.setAttribute(a,o[a])}}t.className=p[e],c&&B(t)}),r.input&&(c&&(e=>{if(!L[e.input])return l('Unexpected type of input! Expected "text", "email", "password", "number", "tel", "select", "radio", "checkbox", "textarea", "file" or "url", got "'.concat(e.input,'"'));const t=Ue(e.input),n=L[e.input](t,e);P(t),setTimeout(()=>{pe(n)})})(r),e=r,t=Ue(e.input),"object"==typeof e.customClass&&w(t,e.customClass.input))},Ve=t=>{for(let e=0;e{e.placeholder&&!t.inputPlaceholder||(e.placeholder=t.inputPlaceholder)},Re=(e,t,n)=>{if(n.inputLabel){e.id=p.input;const i=document.createElement("label");var o=p["input-label"];i.setAttribute("for",e.id),i.className=o,"object"==typeof n.customClass&&w(i,n.customClass.inputLabel),i.innerText=n.inputLabel,t.insertAdjacentElement("beforebegin",i)}},Ue=e=>k(g(),p[e]||p.input),Fe=(e,t)=>{["string","number"].includes(typeof t)?e.value="".concat(t):F(t)||a('Unexpected type of inputValue! Expected "string", "number" or "Promise", got "'.concat(typeof t,'"'))},L={},We=(L.text=L.email=L.password=L.number=L.tel=L.url=(e,t)=>(Fe(e,t.inputValue),Re(e,e,t),Ne(e,t),e.type=t.input,e),L.file=(e,t)=>(Re(e,e,t),Ne(e,t),e),L.range=(e,t)=>{const n=e.querySelector("input");var o=e.querySelector("output");return Fe(n,t.inputValue),n.type=t.input,Fe(o,t.inputValue),Re(n,e,t),e},L.select=(e,t)=>{if(e.textContent="",t.inputPlaceholder){const n=document.createElement("option");y(n,t.inputPlaceholder),n.value="",n.disabled=!0,n.selected=!0,e.appendChild(n)}return Re(e,e,t),e},L.radio=e=>(e.textContent="",e),L.checkbox=(e,t)=>{const n=de(g(),"checkbox");n.value="1",n.id=p.checkbox,n.checked=Boolean(t.inputValue);e=e.querySelector("span");return y(e,t.inputPlaceholder),n},L.textarea=(n,e)=>{Fe(n,e.inputValue),Ne(n,e),Re(n,n,e);return setTimeout(()=>{if("MutationObserver"in window){const t=parseInt(window.getComputedStyle(g()).width);new MutationObserver(()=>{var e=n.offsetWidth+(e=n,parseInt(window.getComputedStyle(e).marginLeft)+parseInt(window.getComputedStyle(e).marginRight));e>t?g().style.width="".concat(e,"px"):g().style.width=null}).observe(n,{attributes:!0,attributeFilter:["style"]})}}),n},(e,t)=>{const n=Q();v(n,t,"htmlContainer"),t.html?(Le(t.html,n),P(n,"block")):t.text?(n.textContent=t.text,P(n,"block")):B(n),qe(e,t)}),ze=(e,t)=>{var n=oe();he(n,t.footer),t.footer&&Le(t.footer,n),v(n,t,"footer")},Ke=(e,t)=>{const n=ae();y(n,t.closeButtonHtml),v(n,t,"closeButton"),he(n,t.showCloseButton),n.setAttribute("aria-label",t.closeButtonAriaLabel)},_e=(e,t)=>{var e=S.innerParams.get(e),n=X();if(e&&t.icon===e.icon)return $e(n,t),void Ye(n,t);if(t.icon||t.iconHtml){if(t.icon&&-1===Object.keys(o).indexOf(t.icon))return l('Unknown icon! Expected "success", "error", "warning", "info" or "question", got "'.concat(t.icon,'"')),void B(n);P(n),$e(n,t),Ye(n,t),w(n,t.showClass.icon)}else B(n)},Ye=(e,t)=>{for(const n in o)t.icon!==n&&C(e,o[n]);w(e,o[t.icon]),Qe(e,t),Ze(),v(e,t,"icon")},Ze=()=>{const e=g();var t=window.getComputedStyle(e).getPropertyValue("background-color");const n=e.querySelectorAll("[class^=swal2-success-circular-line], .swal2-success-fix");for(let e=0;e