From 5225a200cf4656b54d908997b97e051dbf0492fe Mon Sep 17 00:00:00 2001 From: gp_dev Date: Thu, 15 May 2025 13:19:51 +0300 Subject: [PATCH 1/4] Feat | add cart and checkout --- wp-content/.cdekdelivery.php | 18 + wp-content/themes/cosmopet/functions.php | 25 +- .../global-functions/multilang-functions.php | 43 - .../header/assets/css/gp-style-desktop.css | 26 + .../cosmopet/modules/header/assets/js/core.js | 151 -- .../layout/assets/css/gp-style-core.css | 1440 ++++++++++++++++- .../layout/assets/css/gp-style-normalize.css | 12 +- .../craftwork/CraftworkGrotesk-Bold.woff | Bin .../craftwork/CraftworkGrotesk-Bold.woff2 | Bin .../craftwork/CraftworkGrotesk-Medium.woff | Bin .../craftwork/CraftworkGrotesk-Medium.woff2 | Bin .../craftwork/CraftworkGrotesk-Regular.woff | Bin .../craftwork/CraftworkGrotesk-Regular.woff2 | Bin .../craftwork/CraftworkGrotesk-SemiBold.woff | Bin .../craftwork/CraftworkGrotesk-SemiBold.woff2 | Bin .../craftwork/craftwork-grotesk-bold.ttf | Bin .../craftwork/craftwork-grotesk-medium.ttf | Bin .../craftwork/craftwork-grotesk-regular.ttf | Bin .../craftwork/craftwork-grotesk-semi-bold.ttf | Bin .../fonts/din-2014/din-2014-rounded-demi.ttf | Bin .../fonts/din-2014/din-2014-rounded-demi.woff | Bin .../din-2014/din-2014-rounded-demi.woff2 | Bin .../din-2014/din-2014-rounded-regular.ttf | Bin .../din-2014/din-2014-rounded-regular.woff | Bin .../din-2014/din-2014-rounded-regular.woff2 | Bin .../assets/fonts/roboto/Roboto-Medium.woff | Bin .../assets/fonts/roboto/Roboto-Medium.woff2 | Bin .../assets/fonts/roboto/Roboto-Regular.woff | Bin .../assets/fonts/roboto/Roboto-Regular.woff2 | Bin .../assets/fonts/roboto/roboto-medium.ttf | Bin .../assets/fonts/roboto/roboto-regular.ttf | Bin .../modules/layout/assets/js/_gp-function.js | 166 ++ .../modules/layout/assets/js/gp-cabinet.js | 67 + .../layout}/assets/js/gp-form.js | 0 .../layout}/assets/js/gp-main.js | 152 +- .../modules/layout/assets/js/gp-product.js | 110 ++ .../modules/layout/module-controller.php | 1 + .../modules/layout/module.template.twig | 40 - .../modules/popup/module.template.twig | 60 - .../shop/components/cart/assets/js/cart.js | 273 ++++ .../components/cart/component-controller.php | 8 + .../checkout/assets/css/checkout.css | 1307 +++++++++++++++ .../components/checkout/assets/js/script.js | 161 ++ .../checkout/component-controller.php | 0 .../modules/shop/module-ajax-controller.php | 0 .../modules/shop/module-controller.php | 0 wp-content/themes/cosmopet/page.php | 11 + .../static/img/modal/about_slider.png | Bin 0 -> 63741 bytes .../themes/cosmopet/static/img/pet/cat.png | Bin 0 -> 21905 bytes .../themes/cosmopet/static/img/pet/dog.png | Bin 0 -> 28197 bytes .../cosmopet/static/img/pet/mini-dog.png | Bin 0 -> 2026 bytes .../cosmopet/static/img/product/image.png | Bin 0 -> 67868 bytes .../cosmopet/static/img/product/mini-card.png | Bin 0 -> 7700 bytes .../cosmopet/static/img/svg/country/ar.svg | 13 + .../cosmopet/static/img/svg/country/ru.svg | 13 + .../static/img/svg/logo/logo-black.svg | 4 + .../static/img/svg/logo/logo-gradient.svg | 18 + .../static/img/svg/logo/logo-white.svg | 4 + .../static/img/svg/main/arrow-back.svg | 5 + .../static/img/svg/main/arrow-black.svg | 3 + .../img/svg/main/arrow-breadcrumbs-black.svg | 3 + .../static/img/svg/main/arrow-breadcrumbs.svg | 3 + .../static/img/svg/main/arrow-left.svg | 5 + .../static/img/svg/main/arrow-right-input.svg | 5 + .../static/img/svg/main/arrow-right.svg | 5 + .../img/svg/main/arrow-selected-white.svg | 3 + .../static/img/svg/main/arrow-selected.svg | 11 + .../cosmopet/static/img/svg/main/basket.svg | 13 + .../cosmopet/static/img/svg/main/black-x.svg | 11 + .../static/img/svg/main/change-dot.svg | 3 + .../cosmopet/static/img/svg/main/filter.svg | 3 + .../static/img/svg/main/google-white.svg | 6 + .../static/img/svg/main/gradient-x.svg | 11 + .../cosmopet/static/img/svg/main/minus.svg | 10 + .../static/img/svg/main/plus-grey.svg | 11 + .../cosmopet/static/img/svg/main/plus.svg | 11 + .../cosmopet/static/img/svg/main/question.svg | 3 + .../static/img/svg/main/status-cancelled.svg | 3 + .../static/img/svg/main/status-chek.svg | 3 + .../static/img/svg/main/triangle-grey.svg | 3 + .../cosmopet/static/img/svg/main/vk-white.svg | 3 + .../cosmopet/static/img/svg/main/white-x.svg | 3 + .../cosmopet/static/img/svg/main/ya-white.svg | 3 + .../static/img/svg/mini-profile/basket-w.svg | 3 + .../static/img/svg/mini-profile/basket.svg | 3 + .../static/img/svg/mini-profile/profile-w.svg | 4 + .../static/img/svg/mini-profile/profile.svg | 4 + .../static/img/svg/social-media/tg.svg | 3 + .../static/img/svg/social-media/vk.svg | 3 + .../static/img/svg/social-media/ya.svg | 6 + .../themes/cosmopet/templates/header.twig | 210 ++- .../themes/cosmopet/templates/layout.twig | 25 - .../themes/cosmopet/templates/modal.twig | 68 + .../cosmopet/templates/modal/basket.twig | 47 + .../themes/cosmopet/templates/page.twig | 9 + .../templates/shop/cart-contents.twig | 45 + .../cosmopet/templates/shop/checkout.twig | 151 ++ .../themes/cosmopet/templates/shop/index.php | 1 - .../cosmopet/templates/shop/review-order.twig | 66 + .../themes/cosmopet/templates/shop/shop.twig | 1 - .../archive-product-modal.twig | 221 --- .../archive-product/archive-product.twig | 2 +- .../woocommerce/assets/css/gp-style-core.css | 1166 +------------ .../woocommerce/assets/js/_gp-function.js | 156 -- .../cosmopet/woocommerce/assets/js/core.js | 110 -- .../woocommerce/assets/js/gp-cabinet.js | 67 - .../woocommerce/assets/js/gp-product.js | 110 -- .../woocommerce/cart/cart-item-data.php | 29 + .../woocommerce/cart/cart-shipping.php | 121 ++ .../themes/cosmopet/woocommerce/cart/cart.php | 236 +++ .../cosmopet/woocommerce/cart/cross-sells.php | 57 + .../cosmopet/woocommerce/cart/mini-cart.php | 167 ++ .../woocommerce/checkout/cart-errors.php | 25 + .../woocommerce/checkout/form-billing.php | 56 + .../woocommerce/checkout/form-checkout.php | 29 + .../woocommerce/checkout/form-coupon.php | 49 + .../woocommerce/checkout/form-login.php | 36 + .../woocommerce/checkout/form-pay.php | 109 ++ .../woocommerce/checkout/form-shipping.php | 70 + .../checkout/form-verify-email.php | 53 + .../woocommerce/checkout/order-receipt.php | 19 + .../woocommerce/checkout/order-received.php | 42 + .../woocommerce/checkout/payment-method.php | 33 + .../cosmopet/woocommerce/checkout/payment.php | 63 + .../woocommerce/checkout/review-order.php | 103 ++ .../cosmopet/woocommerce/checkout/terms.php | 43 + .../woocommerce/checkout/thankyou copy.php | 90 ++ .../woocommerce/checkout/thankyou.php | 108 ++ 128 files changed, 5896 insertions(+), 2389 deletions(-) create mode 100644 wp-content/.cdekdelivery.php rename wp-content/themes/cosmopet/{woocommerce => modules/layout}/assets/fonts/craftwork/CraftworkGrotesk-Bold.woff (100%) rename wp-content/themes/cosmopet/{woocommerce => modules/layout}/assets/fonts/craftwork/CraftworkGrotesk-Bold.woff2 (100%) rename wp-content/themes/cosmopet/{woocommerce => modules/layout}/assets/fonts/craftwork/CraftworkGrotesk-Medium.woff (100%) rename wp-content/themes/cosmopet/{woocommerce => modules/layout}/assets/fonts/craftwork/CraftworkGrotesk-Medium.woff2 (100%) rename wp-content/themes/cosmopet/{woocommerce => modules/layout}/assets/fonts/craftwork/CraftworkGrotesk-Regular.woff (100%) rename wp-content/themes/cosmopet/{woocommerce => modules/layout}/assets/fonts/craftwork/CraftworkGrotesk-Regular.woff2 (100%) rename wp-content/themes/cosmopet/{woocommerce => modules/layout}/assets/fonts/craftwork/CraftworkGrotesk-SemiBold.woff (100%) rename wp-content/themes/cosmopet/{woocommerce => modules/layout}/assets/fonts/craftwork/CraftworkGrotesk-SemiBold.woff2 (100%) rename wp-content/themes/cosmopet/{woocommerce => modules/layout}/assets/fonts/craftwork/craftwork-grotesk-bold.ttf (100%) rename wp-content/themes/cosmopet/{woocommerce => modules/layout}/assets/fonts/craftwork/craftwork-grotesk-medium.ttf (100%) rename wp-content/themes/cosmopet/{woocommerce => modules/layout}/assets/fonts/craftwork/craftwork-grotesk-regular.ttf (100%) rename wp-content/themes/cosmopet/{woocommerce => modules/layout}/assets/fonts/craftwork/craftwork-grotesk-semi-bold.ttf (100%) rename wp-content/themes/cosmopet/{woocommerce => modules/layout}/assets/fonts/din-2014/din-2014-rounded-demi.ttf (100%) rename wp-content/themes/cosmopet/{woocommerce => modules/layout}/assets/fonts/din-2014/din-2014-rounded-demi.woff (100%) rename wp-content/themes/cosmopet/{woocommerce => modules/layout}/assets/fonts/din-2014/din-2014-rounded-demi.woff2 (100%) rename wp-content/themes/cosmopet/{woocommerce => modules/layout}/assets/fonts/din-2014/din-2014-rounded-regular.ttf (100%) rename wp-content/themes/cosmopet/{woocommerce => modules/layout}/assets/fonts/din-2014/din-2014-rounded-regular.woff (100%) rename wp-content/themes/cosmopet/{woocommerce => modules/layout}/assets/fonts/din-2014/din-2014-rounded-regular.woff2 (100%) rename wp-content/themes/cosmopet/{woocommerce => modules/layout}/assets/fonts/roboto/Roboto-Medium.woff (100%) rename wp-content/themes/cosmopet/{woocommerce => modules/layout}/assets/fonts/roboto/Roboto-Medium.woff2 (100%) rename wp-content/themes/cosmopet/{woocommerce => modules/layout}/assets/fonts/roboto/Roboto-Regular.woff (100%) rename wp-content/themes/cosmopet/{woocommerce => modules/layout}/assets/fonts/roboto/Roboto-Regular.woff2 (100%) rename wp-content/themes/cosmopet/{woocommerce => modules/layout}/assets/fonts/roboto/roboto-medium.ttf (100%) rename wp-content/themes/cosmopet/{woocommerce => modules/layout}/assets/fonts/roboto/roboto-regular.ttf (100%) create mode 100644 wp-content/themes/cosmopet/modules/layout/assets/js/_gp-function.js create mode 100644 wp-content/themes/cosmopet/modules/layout/assets/js/gp-cabinet.js rename wp-content/themes/cosmopet/{woocommerce => modules/layout}/assets/js/gp-form.js (100%) rename wp-content/themes/cosmopet/{woocommerce => modules/layout}/assets/js/gp-main.js (75%) create mode 100644 wp-content/themes/cosmopet/modules/layout/assets/js/gp-product.js delete mode 100644 wp-content/themes/cosmopet/modules/layout/module.template.twig delete mode 100644 wp-content/themes/cosmopet/modules/popup/module.template.twig create mode 100644 wp-content/themes/cosmopet/modules/shop/components/cart/assets/js/cart.js create mode 100644 wp-content/themes/cosmopet/modules/shop/components/cart/component-controller.php create mode 100644 wp-content/themes/cosmopet/modules/shop/components/checkout/assets/css/checkout.css create mode 100644 wp-content/themes/cosmopet/modules/shop/components/checkout/assets/js/script.js rename .user.ini => wp-content/themes/cosmopet/modules/shop/components/checkout/component-controller.php (100%) create mode 100644 wp-content/themes/cosmopet/modules/shop/module-ajax-controller.php create mode 100644 wp-content/themes/cosmopet/modules/shop/module-controller.php create mode 100644 wp-content/themes/cosmopet/page.php create mode 100644 wp-content/themes/cosmopet/static/img/modal/about_slider.png create mode 100644 wp-content/themes/cosmopet/static/img/pet/cat.png create mode 100644 wp-content/themes/cosmopet/static/img/pet/dog.png create mode 100644 wp-content/themes/cosmopet/static/img/pet/mini-dog.png create mode 100644 wp-content/themes/cosmopet/static/img/product/image.png create mode 100644 wp-content/themes/cosmopet/static/img/product/mini-card.png create mode 100644 wp-content/themes/cosmopet/static/img/svg/country/ar.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/country/ru.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/logo/logo-black.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/logo/logo-gradient.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/logo/logo-white.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/main/arrow-back.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/main/arrow-black.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/main/arrow-breadcrumbs-black.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/main/arrow-breadcrumbs.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/main/arrow-left.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/main/arrow-right-input.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/main/arrow-right.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/main/arrow-selected-white.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/main/arrow-selected.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/main/basket.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/main/black-x.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/main/change-dot.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/main/filter.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/main/google-white.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/main/gradient-x.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/main/minus.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/main/plus-grey.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/main/plus.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/main/question.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/main/status-cancelled.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/main/status-chek.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/main/triangle-grey.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/main/vk-white.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/main/white-x.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/main/ya-white.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/mini-profile/basket-w.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/mini-profile/basket.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/mini-profile/profile-w.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/mini-profile/profile.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/social-media/tg.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/social-media/vk.svg create mode 100644 wp-content/themes/cosmopet/static/img/svg/social-media/ya.svg create mode 100644 wp-content/themes/cosmopet/templates/modal.twig create mode 100644 wp-content/themes/cosmopet/templates/modal/basket.twig create mode 100644 wp-content/themes/cosmopet/templates/page.twig create mode 100644 wp-content/themes/cosmopet/templates/shop/cart-contents.twig create mode 100644 wp-content/themes/cosmopet/templates/shop/checkout.twig delete mode 100644 wp-content/themes/cosmopet/templates/shop/index.php create mode 100644 wp-content/themes/cosmopet/templates/shop/review-order.twig delete mode 100644 wp-content/themes/cosmopet/woocommerce/archive-product/archive-product-modal.twig delete mode 100644 wp-content/themes/cosmopet/woocommerce/assets/js/_gp-function.js delete mode 100644 wp-content/themes/cosmopet/woocommerce/assets/js/core.js delete mode 100644 wp-content/themes/cosmopet/woocommerce/assets/js/gp-cabinet.js delete mode 100644 wp-content/themes/cosmopet/woocommerce/assets/js/gp-product.js create mode 100644 wp-content/themes/cosmopet/woocommerce/cart/cart-item-data.php create mode 100644 wp-content/themes/cosmopet/woocommerce/cart/cart-shipping.php create mode 100644 wp-content/themes/cosmopet/woocommerce/cart/cart.php create mode 100644 wp-content/themes/cosmopet/woocommerce/cart/cross-sells.php create mode 100644 wp-content/themes/cosmopet/woocommerce/cart/mini-cart.php create mode 100644 wp-content/themes/cosmopet/woocommerce/checkout/cart-errors.php create mode 100644 wp-content/themes/cosmopet/woocommerce/checkout/form-billing.php create mode 100644 wp-content/themes/cosmopet/woocommerce/checkout/form-checkout.php create mode 100644 wp-content/themes/cosmopet/woocommerce/checkout/form-coupon.php create mode 100644 wp-content/themes/cosmopet/woocommerce/checkout/form-login.php create mode 100644 wp-content/themes/cosmopet/woocommerce/checkout/form-pay.php create mode 100644 wp-content/themes/cosmopet/woocommerce/checkout/form-shipping.php create mode 100644 wp-content/themes/cosmopet/woocommerce/checkout/form-verify-email.php create mode 100644 wp-content/themes/cosmopet/woocommerce/checkout/order-receipt.php create mode 100644 wp-content/themes/cosmopet/woocommerce/checkout/order-received.php create mode 100644 wp-content/themes/cosmopet/woocommerce/checkout/payment-method.php create mode 100644 wp-content/themes/cosmopet/woocommerce/checkout/payment.php create mode 100644 wp-content/themes/cosmopet/woocommerce/checkout/review-order.php create mode 100644 wp-content/themes/cosmopet/woocommerce/checkout/terms.php create mode 100644 wp-content/themes/cosmopet/woocommerce/checkout/thankyou copy.php create mode 100644 wp-content/themes/cosmopet/woocommerce/checkout/thankyou.php diff --git a/wp-content/.cdekdelivery.php b/wp-content/.cdekdelivery.php new file mode 100644 index 0000000..c88bb2a --- /dev/null +++ b/wp-content/.cdekdelivery.php @@ -0,0 +1,18 @@ + + array ( + 'wordpress' => 'v4.local.nalowbOW6cLbDpvTkpTnMOVG_1PGHdZKveVTUIbgUv2hUvQGr5zQ-B97k1oykPdIiLx0D0EZ0xlOdhwqgV_DcPsmh3eOrZ9mLJOlmxL0Ciq1Lkhewhj3h1H4FQuiSmfg1oylejDCLtbzfWil8GNxrzGOiBoiiY2XALTxBT0ZDcCZNAGmKQTElV9Lzw5TxDYEm9ELTLCaFj3rTN3Vq8bMQy8aHK-Mgq2QvaD3YYEJiTxcgTl97df6rJQnGtYiG9dvhVFhShNdUj1sWh9vIzoXiUbZbByLwe5ZUwaDzE3G7xosGlTyQJ3WIle3ywsfnjgNxRQwOz--XcEYGUJ_nhR3oJscW7SJXdi-ziE5dnDi6k2XpaIbTbppIUvdeyzRDpC2VajiSvb3jg5kcxHL_3bFo-7D4Rjmtr2ZEr8uS4-xwt8uhLiSBLcRsLSGSCq0yMlNmgsxxUdySDu2Q5P5pDX3_5hBdg-4DuBH.eyJlbmRwb2ludCI6Imh0dHBzOlwvXC9hcGkuY2Rlay5ydVwvY21zIn0', + '@cdek-it/order' => 'v4.local.-h0jllL5iFSEWHkSBGY1TfzpFIQGYeCif9pGrZorJtWeZ1mUew3VjChFhXL60cVcN5LCXw9d_ui-XG1kIzjrx-UzDfK4fS-l4OznAhLWp7ZT1M3-X-uQiVJk5lzCJ2rNGQ-TJudeOlqL4kDKcqaPLgDzq5MQEqvloGAvviatPL-Y9ifTI183xVxcL6O7J700dFcQEhhSIcYfVnQVG2L1d93gxaUUH-OIMk1hxF1LCdnNIy6F6Zjt9yswXDEfEGWfE8OJysQQJhTj1IIOcf4_AZ-gGrSaXMMcG-J6GfDIjoU-uFrXhpI10grwgmY5Xka3-SPj2fyVV_e5WVuOew5HK0oDyHWqnlE37dWbQTBNPMqUNL50fQxviTzDYHplbM_CUq8YlNx2O_7FMt7b2w2sZMHLZBaWtH4zmOj8T2v-rY_MLeVwPuAfZPKnHqZMoGBL312Zh-tCyqVIp8gZ2jXJvKXnzMgumJv_uxA6Sdgk.eyJlbmRwb2ludCI6Imh0dHBzOlwvXC9hcGkuY2Rlay5ydVwvY21zIn0', + '@cdek-it/settings' => 'v4.local.Dbb69cuN8PIE7d1_5w3bD5OZI0Z5_K9w_UbnCJGJlM5jLLWkdkKf4d_svhJySz-NMm8xVJsEMEnCOSRVZZZIlcRaOlNqi7bsIDYXmpcnVCKL5v8cUWn9nKRSNvKUuiSqU_1aJl2pi7ZvxpII6STV4xxkcMXdtfYF9AZAOD0b6gtd7v8OdXjBzeKwbsilj7bToUv4mrmAlgMhd_MG3rKRP5-INo0B-rkwK78Ul88YjCgf0ooPyRICdQzLAgD7x42FJ3vYI9UA8g3wffx5kJxbRWrKUEfwZ1zJp-NQKAcyK5KGLIu9OUoFcQN4U_KdnnZqdqwwkovB0JIbqz-HKQcdi1Xrq5wKk5lIF-HdJteYn2t8Refd9soVGmN67O_V2K1b09Jw4v973C4rOxvw4WZNXHTm9a0mTI0pTk3Y5Dv1tJuN23zH73G_kNN_TSLUenE1iTGPdSnGXxIcfBG-sBoS1Au62QbzUY7lhftD6Bq6T6-6.eyJlbmRwb2ludCI6Imh0dHBzOlwvXC9hcGkuY2Rlay5ydVwvY21zIn0', + ), + 'endpoints' => + array ( + 'wordpress' => 'https://api.cdek.ru/cms', + '@cdek-it/order' => 'https://api.cdek.ru/cms', + '@cdek-it/settings' => 'https://api.cdek.ru/cms', + ), + 'keyring' => + array ( + 'k4.pid.jwGFnADDct9ZphWj1tZslqzRDXQIgEjvyVx8LI6MJR7d' => 'TDOjk4smnqY5AYE-aGdmFJIescdcJb26nThfAK3AVPU', + ), +); diff --git a/wp-content/themes/cosmopet/functions.php b/wp-content/themes/cosmopet/functions.php index e3ad1dd..0c95761 100644 --- a/wp-content/themes/cosmopet/functions.php +++ b/wp-content/themes/cosmopet/functions.php @@ -415,10 +415,30 @@ requireShortcodes(get_template_directory() . '/modules'); require_once('modules/blog/module-ajax-controller.php'); require_once('modules/forms/module-ajax-controller.php'); +require_once('modules/shop/module-ajax-controller.php'); + + +add_action('wp', 'my_custom_checkout_code'); +function my_custom_checkout_code() { + if (function_exists('is_checkout') && is_checkout() && !is_order_received_page()) { + include_component('shop', 'checkout'); + } +} + + include_module('forms'); include_module('layout'); - +add_action('wp_enqueue_scripts', 'disable_woocommerce_css', 999); +function disable_woocommerce_css() { + wp_dequeue_style('woocommerce-general'); + wp_dequeue_style('woocommerce-layout'); + wp_dequeue_style('woocommerce-smallscreen'); + wp_dequeue_style('woocommerce_frontend_styles'); + wp_dequeue_style('woocommerce_fancybox_styles'); + wp_dequeue_style('woocommerce_chosen_styles'); + wp_dequeue_style('woocommerce_prettyPhoto_css'); +} class WooProduct extends Timber\Post { protected $wc_product; @@ -573,3 +593,6 @@ register_sidebar( array( 'before_title' => '

', 'after_title' => '

', ) ); + + +add_filter( 'woocommerce_price_trim_zeros', '__return_true' ); \ No newline at end of file diff --git a/wp-content/themes/cosmopet/global-functions/multilang-functions.php b/wp-content/themes/cosmopet/global-functions/multilang-functions.php index 98d131e..e69de29 100644 --- a/wp-content/themes/cosmopet/global-functions/multilang-functions.php +++ b/wp-content/themes/cosmopet/global-functions/multilang-functions.php @@ -1,43 +0,0 @@ -скидку!', 'Узнайте о нас больше и получите скидку!'); - pll_register_string ('Это миф!', 'Это миф!'); - pll_register_string ('Это правда!', 'Это правда!'); - pll_register_string ('Правда', 'Правда'); - pll_register_string ('Миф', 'Миф'); - pll_register_string ('Далее', 'Далее'); - pll_register_string ('ваш результат', 'ваш результат'); - pll_register_string ('Скопировать', 'Скопировать'); - pll_register_string ('Скопировано', 'Скопировано'); - pll_register_string ('В магазин', 'В магазин'); - pll_register_string ('Наш блог', 'Наш блог'); - pll_register_string ('Новости рынка кормов и экологии, полезные статьи о здоровье домашних животных', 'Новости рынка кормов и экологии, полезные статьи о здоровье домашних животных'); - pll_register_string ('ЭТАПЫ ПРОИЗВОД­СТВА', 'ЭТАПЫ ПРОИЗВОД­СТВА'); - pll_register_string ('Этапы производс­тва корма', 'Этапы производс­тва корма'); - pll_register_string ('Все статьи', 'Все статьи'); - pll_register_string ('Узнать больше', 'Узнать больше'); -}); - diff --git a/wp-content/themes/cosmopet/modules/header/assets/css/gp-style-desktop.css b/wp-content/themes/cosmopet/modules/header/assets/css/gp-style-desktop.css index 82761d5..f9f3988 100644 --- a/wp-content/themes/cosmopet/modules/header/assets/css/gp-style-desktop.css +++ b/wp-content/themes/cosmopet/modules/header/assets/css/gp-style-desktop.css @@ -730,3 +730,29 @@ width: 0px; } + +.mini-profile__button--counter{ + display: flex; + flex-direction: row; + justify-content: center; + align-items: center; + padding: 2px; + position: absolute; + background: var(--gradient-turquoise); + border-radius: 10px; + width: 16px; + height: 16px; + + border-radius: 50%; + top: 6px; + right: 6px; + font-style: normal; + font-weight: 700; + font-size: 9px; + line-height: 16px; + color: #121212; +} + +.mini-profile__button--counter.disabled{ + display: none; +} \ No newline at end of file diff --git a/wp-content/themes/cosmopet/modules/header/assets/js/core.js b/wp-content/themes/cosmopet/modules/header/assets/js/core.js index f11de2e..e69de29 100644 --- a/wp-content/themes/cosmopet/modules/header/assets/js/core.js +++ b/wp-content/themes/cosmopet/modules/header/assets/js/core.js @@ -1,151 +0,0 @@ -'use strict'; - -// function -function modalOpen(buttonElement, contentElement){ - let modal = document.querySelector('.modal'), - aside = document.querySelector('.modal__aside'), - elements = document.querySelectorAll(buttonElement), - device = window.screen.width; - - elements.forEach(e => { - let thisContentElement = document.querySelector(contentElement); - - e.onclick = function () { - modal.classList.add('active'); - thisContentElement.classList.add('active'); - - let width = thisContentElement.clientWidth; - - setTimeout(() => { - if (device <= 720) { - aside.style.width = `${device}px`; - thisContentElement.style.opacity = 1; - thisContentElement.style.filter = 'blur(0px)'; - }else{ - aside.style.width = `${width}px`; - thisContentElement.style.opacity = 1; - thisContentElement.style.filter = 'blur(0px)'; - } - }, 10); - } - }) -} - -function modalClose(buttonElement) { - let modal = document.querySelector('.modal'), - aside = document.querySelector('.modal__aside'), - asideItems = document.querySelectorAll('.modal__item'), - elements = document.querySelectorAll(buttonElement); - - elements.forEach(e => { - e.onclick = function () { - aside.style.width = '0px'; - - asideItems.forEach(e => { - if (e.classList.contains('active')) { - e.style.filter = 'blur(10px)'; - } - }); - - setTimeout(() => { - asideItems.forEach(e => { - if (e.classList.contains('active')) { - e.classList.remove('active'); - } - }); - - modal.classList.remove('active'); - }, 300); - } - }) -} - -function toggleOpenX(mainElement, buttonElement ,heightElement, contentElement, close) { - let elements = document.querySelectorAll(mainElement); - - elements.forEach(e => { - let thisMainElement = e, - thisButtonElement = e.querySelector(buttonElement), - thisHeightElement = e.querySelector(heightElement), - thisContentElement = e.querySelector(contentElement); - - thisButtonElement.onclick = function (e) { - let height = thisHeightElement.clientHeight; - - if (close == true && !thisMainElement.classList.contains('active')) { - elements.forEach(e => { - if (e.classList.contains('active')) { - e.classList.remove('active'); - e.querySelector(contentElement).style.height = null - } - }) - } - - if (!thisMainElement.classList.contains('active')) { - thisContentElement.style.height = `${height}px`; - thisMainElement.classList.add('active'); - }else{ - thisContentElement.style.height = null; - thisMainElement.classList.remove('active'); - } - } - - }); -} -var menu_opened = false; -function toggleHeader(button, content, blockheight, removeBlock, removeClass) { - let thisButton = document.querySelector(button), - thisContent = document.querySelector(content), - thisRemoveBlock = document.querySelector(removeBlock) || '', - thisBlockheight = document.querySelector(blockheight); - - thisButton.onclick = function () { - let height = thisBlockheight.clientHeight; - - if (!thisContent.classList.contains('open')) { - thisContent.style.height = `${height}px`; - thisContent.classList .add('open'); - - if (removeBlock) { - thisRemoveBlock.classList.remove(removeClass); - } - }else{ - thisContent.style.height = null; - thisContent.classList.remove('open'); - - if (removeBlock) { - if (window.Y <= 25) { - thisRemoveBlock.classList.add(removeClass); - } - } - } - menu_opened = !menu_opened; - } -} - - - -if (document.querySelector('.header').classList.contains('white')) { - window.addEventListener("scroll", function (e) { - let header = document.querySelector('.header'); - let scroll = window.scrollY; - if(!menu_opened){ - if (scroll >= 25) { - header.classList.remove('white') - }else{ - - header.classList.add('white') - - } - } - - }); -} - -toggleOpenX('.lang', '.lang__open', '.lang__list', '.lang__content', false); -toggleHeader('#pc-menu','.header__menu-block','.header__pc-menu', '.white', 'white'); -toggleHeader('#phone-menu','.header__menu-block','.header__phone-menu', '.white', 'white'); -// scroll - - - diff --git a/wp-content/themes/cosmopet/modules/layout/assets/css/gp-style-core.css b/wp-content/themes/cosmopet/modules/layout/assets/css/gp-style-core.css index 5541691..1ed44cf 100644 --- a/wp-content/themes/cosmopet/modules/layout/assets/css/gp-style-core.css +++ b/wp-content/themes/cosmopet/modules/layout/assets/css/gp-style-core.css @@ -1,32 +1,80 @@ @font-face { - font-family: "Craftwork Grotest"; - src: url('../fonts/Craftwork_Grotesk_Trial/CraftworkGrotesk-Regular.ttf'); + font-family: "Craftwork Grotesk"; + src: local("Craftwork Grotesk Bold"), + url("../fonts/craftwork/CraftworkGrotesk-SemiBold.woff2") format("woff2"), + url("../fonts/craftwork/CraftworkGrotesk-Bold.woff") format("woff"), + url("../fonts/craftwork/craftwork-grotesk-bold.ttf") format("ttf"); + font-weight: 700; +} +@font-face { + font-family: "Craftwork Grotesk"; + src: local("Craftwork Grotesk SemiBold"), + url("../fonts/craftwork/CraftworkGrotesk-SemiBold.woff2") format("woff2"), + url("../fonts/craftwork/CraftworkGrotesk-SemiBold.woff") format("woff"), + url("../fonts/craftwork/craftwork-grotesk-semi-bold.ttf") format("ttf"); + font-weight: 600; +} +@font-face { + font-family: "Craftwork Grotesk"; + src: local("Craftwork Grotesk Medium"), + url("../fonts/craftwork/CraftworkGrotesk-Medium.woff2") format("woff2"), + url("../fonts/craftwork/CraftworkGrotesk-Medium.woff") format("woff"), + url("../fonts/craftwork/craftwork-grotesk-medium.ttf") format("ttf"); + font-weight: 500; +} +@font-face { + font-family: "Craftwork Grotesk"; + src: local("Craftwork Grotesk Regular"), + url("../fonts/craftwork/CraftworkGrotesk-Regular.woff2") format("woff2"), + url("../fonts/craftwork/CraftworkGrotesk-Regular.woff") format("woff"), + url("../fonts/craftwork/craftwork-grotesk-regular.ttf") format("ttf"); font-weight: 400; } @font-face { - font-family: "Craftwork Grotest"; - src: url('../fonts/Craftwork_Grotesk_Trial/CraftworkGrotesk-Medium.ttf'); - font-weight: 500; + font-family: "Abel"; + src: url('../fonts/Abel/Abel-Regular.ttf'); + font-weight: 400; } + +/* din 2014 */ @font-face { - font-family: "Craftwork Grotest"; - src: url('../fonts/Craftwork_Grotesk_Trial/CraftworkGrotesk-SemiBold.ttf'); + font-family: "DIN 2014 Rounded"; + src: local("DIN 2014 Rounded Demi"), + url("../fonts/din-2014/din-2014-rounded-demi.woff2") format("woff2"), + url("../fonts/din-2014/din-2014-rounded-demi.woff") format("woff"), + url("../fonts/din-2014/din-2014-rounded-demi.ttf") format("ttf"); font-weight: 600; } - @font-face { - font-family: "Craftwork Grotest"; - src: url('../fonts/Craftwork_Grotesk_Trial/CraftworkGrotesk-Bold.ttf'); - font-weight: 700; + font-family: "DIN 2014 Rounded"; + src: local("DIN 2014 Rounded Regular"), + url("../fonts/din-2014/din-2014-rounded-regular.woff2") format("woff2"), + url("../fonts/din-2014/din-2014-rounded-regular.woff") format("woff"), + url("../fonts/din-2014/din-2014-rounded-regular.ttf") format("ttf"); + font-weight: 400; } +/* din 2014 */ +/* roboto */ @font-face { - font-family: "Abel"; - src: url('../fonts/Abel/Abel-Regular.ttf'); + font-family: "Roboto"; + src: local("Roboto Medium"), + url("../fonts/roboto/Roboto-Medium.woff2") format("woff2"), + url("../fonts/roboto/Roboto-Medium.woff") format("woff"), + url("../fonts/roboto/roboto-medium.ttf") format("ttf"); + font-weight: 500; +} +@font-face { + font-family: "Roboto"; + src: local("Roboto Regular"), + url("../fonts/roboto/Roboto-Regular.woff2") format("woff2"), + url("../fonts/roboto/Roboto-Regular.woff") format("woff"), + url("../fonts/roboto/roboto-medium.ttf") format("ttf"); font-weight: 400; } +/* roboto */ :root { /* Colors */ @@ -36,7 +84,9 @@ --accent-3: linear-gradient(6deg, rgb(244, 66, 66) 7.584%,rgb(86, 158, 240) 72.371%); --linear: linear-gradient(-7.39deg, rgb(244, 241, 240) 23.643%,rgba(244, 241, 240, 0.3) 59.827%); --btn-bg: radial-gradient(100% 174.56% at 100% 0%, #7AD9E7 0%, #7EE7E1 25%, #B5E4B4 80%, #D7EEAA 100%); - + --font-family: "Craftwork Grotesk", sans-serif; + --second-family: "DIN 2014 Rounded", sans-serif; + --third-family: "Roboto", sans-serif; --main_white: #FFFFFF; --creme-white: #F4F1F0; @@ -56,7 +106,6 @@ /* Fonts */ --font-craftwork: 'Craftwork Grotest', sans-serif; --font-abel: 'Abel', serif; - --text-dark: #2b2b3b; --text-red: #fa0505; --text-green: #2ED15D; @@ -70,8 +119,22 @@ --gradient-blue: radial-gradient(346.57% 244.17% at 149.73% -58.39%, rgb(15, 88, 129) 0%, rgb(30, 164, 156) 51.21689438819885%, rgb(118, 206, 117) 80.70731163024902%, rgb(236, 243, 159) 91.14583134651184%); --gradient-turquoise: radial-gradient(346.57% 244.17% at 149.73% -58.39%, rgb(117, 196, 240) 0%, rgb(126, 231, 225) 51.21689438819885%, rgb(181, 228, 180) 80.70731163024902%, rgb(237, 244, 164) 91.14583134651184%); --gradient-red: linear-gradient(22deg, #f44242 0%, #569ef0 100%); + --text-white: #fff; + --text-black: #121212; + --text-grey: #999; + --text-3: #333; + --text-6: #666; + --text-9: #999; + + + + } + + + + body { background: var(--radial); font-family: var(--font-craftwork); @@ -297,7 +360,8 @@ textarea{ .form-row { display: flex; - gap: 10px; + gap: 2px; + flex-direction: column; } .full-width { @@ -308,16 +372,6 @@ textarea{ width: 100%; max-width: 380px; } - - .modal-offer input, textarea { - width: 100%!important; - padding: 12px 15px!important; - border: none!important; - border-radius: 20px!important; - font-size: 16px!important; - background-color: white!important; - } - /* Контейнер для текстового поля и изображения автора */ .message-container { position: relative; @@ -403,3 +457,1337 @@ textarea{ margin: 0 auto; max-width: 1600px; } + + + + +/* modal */ +.modal{ + position: fixed; + top: 0; + left: 0; + + padding: 20px; + + width: 100%; + height: 100%; + + background: rgba(0, 0, 0, 0.25); + + z-index: 200; + + opacity: 0; + transition: opacity .2s ease-out; + pointer-events: none; + + display: flex; + justify-content: center; + align-items: center; + + overflow-y: auto; +} +.modal.active{ + opacity: 1; + pointer-events: auto; +} +.modal__notification{} +.form__button-mobile{ + display: none; +} +.modal__aside{ + position: fixed; + top: 0; + right: 0; + + width: 0; + height: 100%; + + overflow: hidden; + transition: width .4s ease-out; +} +.modal__item{ + height: 100%; + overflow: auto; + padding: 24px; + + background: var(--background-white); + + position: relative; + + display: none; + + filter: blur(10px); + transition: filter .2s ease-out; +} +.modal__item--no-title{ + padding-top: 72px; +} +.modal__item.active{ + display: flex; + flex-direction: column; + justify-content: space-between; +} +.modal__close{ + position: absolute; + top: 32px; + right: 24px; + + width: 24px; + height: 24px; + + border: none; + background: none; +} +.modal__header{} +.modal__title{ + padding-right: 48px; + + font-family: var(--font-family); + font-weight: 700; + font-size: 36px; + line-height: 111%; + text-transform: uppercase; + color: var(--text-black); +} +.modal__small-title{ + font-family: var(--font-family); + font-weight: 700; + font-size: 24px; + line-height: 100%; + text-transform: uppercase; + color: var(--text-black); +} +.modal__text{ + margin-top: 16px; + + padding-right: 10px; + + font-family: var(--font-family); + font-weight: 400; + font-size: 20px; + line-height: 120%; + color: var(--text-0); +} +.modal__form-sub{ + margin-top: 48px; +} +.modal-form-sub__submit{ + margin-top: 64px; +} +.modal__block-button{ + margin-top: 24px; +} +.modal__button{ + margin-top: 16px; +} +.modal__button:first-child{ + margin-top: 0; +} +.modal__content{ + margin-top: 24px; +} +.modal__filter{ + width: 400px; +} +.modal__footer{ + border-top: 1px solid var(--text-6); + padding-top: 23px; +} +.modal__block-price{ + display: flex; + justify-content: space-between; + align-items: center; +} +.modal-block-price__title{ + font-family: var(--font-family); + font-weight: 600; + font-size: 20px; + line-height: 120%; + color: var(--text-black); +} +.modal-block-price__price{ + font-family: var(--font-family); + font-weight: 700; + font-size: 24px; + line-height: 100%; + text-transform: uppercase; + text-align: right; + color: var(--text-black); +} +.modal__basket{ + width: 600px; +} +.modal__to-know, +.modal__to-know-submit{ + width: 412px; +} + +.modal-basket__item{ + padding-top: 23px; + padding-right: 15px; + padding-bottom: 24px; + + display: flex; + + border-top: 1px solid var(--background-grey); + + position: relative; +} +.modal-basket__item::before{ + content: ''; + + position: absolute; + top: 24px; + right: 6px; + + width: 24px; + aspect-ratio: 1; + + background-image: url(../img/svg/main/basket.svg); + background-repeat: no-repeat; + background-position: center; + + cursor: pointer; + + transition: opacity .2s ease-out; +} +.modal-basket__item:hover .modal-basket__item::before{ + opacity: .8; +} +.modal-basket__item--return{ + padding-right: 5px; + + display: flex; + justify-content: space-between; + align-items: center; +} +.modal-basket__item--return .modal-basket-item__title{ + padding-right: 10px; +} +.modal-basket__item--return::before{ + display: none; +} +.modal-basket-item__return{ + border-radius: 20px; + padding: 4px 24px; + + font-family: var(--font-family); + font-weight: 600; + font-size: 20px; + line-height: 120%; + color: var(--text-white); + + background: var(--background-black); + + border: none; +} +.modal-basket-item__block-image{ + width: 128px; + aspect-ratio: 1; + + display: flex; + justify-content: center; + align-items: center; +} +.modal-basket-item__image{ + width: 96px; + aspect-ratio: 1; + + object-fit: contain; +} + +.modal-basket-item__block-image img{ + height: auto; +} +.modal-basket-item__content{ + margin-left: 16px; + width: 100%; +} +.modal-basket-item__title{ + padding-right: 40px; + + font-family: var(--font-family); + font-weight: 500; + font-size: 20px; + line-height: 120%; + color: var(--text-black); +} +.modal-basket-item__sub-title{ + margin-top: 8px; + + font-family: var(--font-family); + font-weight: 700; + font-size: 12px; + line-height: 133%; + color: var(--text-black); +} +.modal-basket-item__control{ + margin-top: 24px; + + display: flex; + justify-content: space-between; + align-items: center; +} +.modal-basket-item__price{ + font-family: var(--font-family); + font-weight: 600; + font-size: 20px; + line-height: 120%; + text-align: right; + color: var(--text-black); +} +.modal__basket .modal__header{ + height: calc(100% - 92px); + margin-bottom: -36px; +} +.modal__basket .modal__content{ + height: calc(100% - 100px); + overflow-x: hidden; + +} +.modal__basket .modal__content::-webkit-scrollbar { + width: 7px; + background-color: #f9f9fd; +} +.modal__basket .modal__content::-webkit-scrollbar-thumb { + background-color: var(--background-black); + border-radius: 2px; +} + +.modal-form{ + margin: auto; + + width: 600px; + + padding: 24px; + + border-radius: 20px; + + position: relative; + + display: none; +} +.modal-form.active{ + display: block; +} +.modal-form--white{ + border: 1px solid var(--background-black); + background: var(--background-white); +} +.modal-form--green-gradient{ + background: var(--gradient-blue); +} +.modal-form--width-584{ + width: 584px; +} +.modal-form--cdek{ + width: 836px; +} +.modal-form__close{ + position: absolute; + top: 24px; + right: 24px; + + width: 24px; + aspect-ratio: 1; + + border: none; + background: none; + background-image: url(../img/svg/main/black-x.svg); + background-repeat: no-repeat; + background-size: 24px; + background-position: center; + + transition: opacity .2s ease-out; + + z-index: 10; +} +.modal-form__close--white{ + background-image: url(../img/svg/main/white-x.svg); +} +.modal-form__close:hover{ + opacity: .8; +} +.modal-form__button-close{} +.modal-form__title{ + padding-right: 50px; + + font-family: var(--font-family); + font-weight: 700; + font-size: 26px; + line-height: 123%; + text-transform: uppercase; + color: var(--text-dark); +} +.modal-form__text--center{ + text-align: center; +} +.modal-form__text--center-pc{ + text-align: center; +} +.modal-form__title--green-gradient{ + background: var(--gradient-blue); + background-clip: text; + -webkit-background-clip: text; + -webkit-text-fill-color: transparent; +} +.modal-form__title--white{ + color: var(--text-white); +} +.modal-form__element{ + margin-top: 24px; +} +.modal-form__element--center{ + display: flex; + justify-content: center; +} +.modal-form__element--top-40{ + margin-top: 40px; +} +.modal-form__text{ + font-family: var(--font-family); + font-weight: 400; + font-size: 20px; + line-height: 120%; + color: var(--text-black); +} +.modal-form__text--weight-500{ + font-weight: 500; +} +.modal-form__text--white{ + color: var(--text-white); +} +.modal-form__img{ + width: 100%; + height: 360px; + + object-fit: contain; +} +.modal-form__content{ + margin-top: 40px; +} +.modal-form-content__line{ + margin-top: 24px; +} +.modal-form-content__line:first-child{ + margin-top: 0; +} +.modal-form-content__line--two{ + display: flex; + justify-content: space-between; +} +.modal-form-content__line--two-mobile{ + display: flex; + justify-content: space-between; +} +.modal-form-content__line--two-mobile .modal-form-content-line__element{ + width: calc(50% - 12px); +} +.modal-form-content-line__element{ + position: relative; +} +.modal-form-content-line__element--arrow::after{ + content: ''; + + position: absolute; + right: 16px; + bottom: 16px; + + width: 16px; + height: 16px; + + background-image: url(../img/svg/main/arrow-right-input.svg); + + pointer-events: none; +} +.modal-form-content__line--two .modal-form-content-line__element{ + width: calc(50% - 12px); +} +.modal-form-content__line--three{ + display: flex; +} +.modal-form-content__line--three .modal-form-content-line__element:nth-child(1){ + width: 85px; + + flex-shrink: 0; +} +.modal-form-content__line--three .modal-form-content-line__element:nth-child(2){ + margin-left: 8px; + + width: 100%; +} +.modal-form-content__line--three .modal-form-content-line__element:nth-child(3){ + margin-left: 8px; + + width: 85px; + + flex-shrink: 0; +} +.modal-form-content__line--margin-top-16{ + margin-top: 16px; +} +.modal-form__buttons{ + margin-top: 32px; +} +.modal-form__buttons--two{ + display: flex; + justify-content: space-between; + align-items: center; +} + +.modal-form__buttons--two button, +.modal-form__buttons--two input{ + width: calc(50% - 20px); +} +.modal-map{ + margin: auto; + + width: 1105px; + + display: none; + + border-radius: 24px; + border: none; +} +.modal-map.active{ + display: flex; +} +.modal-map__left{ + width: 600px; + + padding: 24px; + + position: relative; +} +.modal-map__control{ + margin: 38px -12px -12px -12px; + + display: flex; +} +.modal-map__control--delivery{ + margin-top: 12px; +} +.modal-map-control__item{ + margin: 12px; + + padding: 2px; + + width: calc(50% - 24px); + + background: var(--background-9); + border-radius: 20px; + border: none; +} +.modal-map-control__item.active{ + background: var(--gradient-blue); +} +.modal-map-control__item.active .form-input-radio__circle::before{ + content: ''; + position: absolute; + top: 4px; + left: 4px; + width: 12px; + aspect-ratio: 1; + border-radius: 50%; + background: var(--gradient-blue); +} +.modal-map-control-item__content{ + padding: 14px; + + border-radius: 18px; + + background: var(--background-white); +} +.modal-map-control-item__header{ + display: flex; + align-items: center; +} +.modal-map-control-item__circle{ + padding: 2px; + width: 20px; + aspect-ratio: 1; + border-radius: 50%; + background: var(--background-9); + position: relative; +} +.modal-map-control-item__input{ + display: none; +} +.modal-map-control-item-circle__content{ + width: 16px; + aspect-ratio: 1; + border-radius: 50%; + background: var(--background-white); +} +.modal-map-control__item.active .modal-map-control-item__circle{ + background: var(--gradient-blue); +} +.modal-map-control__item.active .modal-map-control-item__circle::before{ + content: ''; + position: absolute; + top: 4px; + left: 4px; + width: 12px; + aspect-ratio: 1; + border-radius: 50%; + background: var(--gradient-blue); +} +.modal-map-control-item__title{ + margin-left: 8px; + + font-family: var(--font-family); + font-weight: 400; + font-size: 20px; + line-height: 120%; + color: var(--text-dark); +} +.modal-map-control-item__description{ + margin-top: 16px; +} +.modal-map-control-item__time{ + font-family: var(--font-family); + font-weight: 500; + font-size: 16px; + line-height: 125%; + color: var(--text-black); + + text-align: start; +} +.modal-map-control-item__price{ + margin-top: 8px; + + font-family: var(--font-family); + font-weight: 700; + font-size: 12px; + line-height: 133%; + color: var(--text-6); + + text-align: start; +} +.modal-map__form{ + margin-top: 24px; +} +.modal-map-form__hidden{ + +} +.modal-map-form__button{ + margin-top: 83px; +} +.modal-map-form__sub-button{ + display: none; +} +.modal-map__right{ + padding: 16px 0px 16px 16px; +} +.modal-map__map{ + border: 2px solid var(--background-9); + border-radius: 16px; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} +.modal-map__map iframe{ + height: 650px; +} +.modal__age{ + +} +.modal__age > div{ + display: none; +} +.modal__age > div.active{ + display: flex; +} +/* modal */ + +/* toggle */ +.toggle{ + padding-top: 26px; + padding-bottom: 25px; + + border-bottom: 1px solid var(--text-3); + + position: relative; +} +.toggle::after{ + content: ''; + + position: absolute; + top: 24px; + right: 0; + + width: 24px; + aspect-ratio: 1; + + background-image: url(../img/svg/main/black-x.svg); + transform: rotate(45deg); + transition: transform .2s; + pointer-events: none; +} +.toggle.active::after{ + transform: rotate(0deg); +} +.toggle__title{ + padding-right: 30px; + + font-family: var(--font-family); + font-weight: 700; + font-size: 16px; + line-height: 125%; + color: var(--text-black); + + cursor: pointer; +} +.toggle__block-content{ + height: 0; + overflow: hidden; + + transition: height .2s ease-out; +} +.toggle__content{ + padding-top: 24px; +} +.toggle-content__item{ + margin: 12px -12px -12px -12px; + + display: flex; + align-items: center; + flex-wrap: wrap; +} +.toggle-content__item:first-child{ + margin-top: 0; +} +.toggle-content__element{ + margin: 12px; +} +.toggle-content__element--width-perc-100{ + width: 100%; +} +.toggle-content__element--width-perc-50{ + width: calc(50% - 24px); +} +.toggle__text{ + font-family: var(--font-family); + font-weight: 400; + font-size: 20px; + line-height: 120%; + color: var(--text-black); +} +/* toggle */ + +/* checkbox */ +.checkbox{ + display: flex; + align-items: center; + + cursor: pointer; +} +.checkbox__state{ + border-radius: 4px; + + width: 18px; + height: 18px; + + border: 2px solid var(--background-black); + background: var(--background-white); + + flex-shrink: 0; +} +.checkbox.active .checkbox__state{ + background-color: var(--background-black); + + background-image: url(../img/svg/main/arrow-selected-white.svg); + background-repeat: no-repeat; + background-position: center; +} +.checkbox__input{ + display: none; +} +.checkbox__label{ + padding-left: 8px; + + font-family: var(--font-family); + font-weight: 400; + font-size: 20px; + line-height: 120%; + color: var(--text-dark); + + cursor: pointer; +} +.checkbox__label a{ + color: #76ce75; + + text-decoration: none; +} +.checkbox--small{ + margin-top: 24px; +} +.checkbox--small .checkbox__label{ + padding-left: 24px; + + font-weight: 500; + font-size: 12px; + line-height: 133%; +} +/* checkbox */ + +/* radio */ +.radio{ + display: flex; + align-items: center; +} +.radio__input{ + width: 18px; + aspect-ratio: 1; + + accent-color: var(--background-black); + + cursor: pointer; +} +.radio__label{ + padding-left: 8px; + + font-family: var(--font-family); + font-weight: 400; + font-size: 20px; + line-height: 120%; + color: var(--text-dark); + + cursor: pointer; +} +/* radio */ + +.added_to_cart { + display: none!important; +} + +@keyframes slidein { + from { + opacity: 0; + } + + to { + opacity: 1; + } +} + +.remove-item{ + position: absolute; + top: 0; + right: 0; +} + +.modal-basket-item__content{ + position: relative; +} + + +/* Индикатор загрузки для корзины */ +.modal-basket__loading { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: rgba(255, 255, 255, 0.8); + display: none; + justify-content: center; + align-items: center; + z-index: 10; + border-radius: 20px; +} + +.modal__item.loading .modal-basket__loading { + display: flex; +} + +.modal-basket__loader { + width: 48px; + height: 48px; + border: 5px solid var(--background-grey); + border-top: 5px solid var(--background-black); + border-radius: 50%; + animation: spin 1s linear infinite; +} + +@keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} + +/* Блок кнопок корзины (адаптированный под ваши стили) */ +.modal-basket__actions { + display: flex; + justify-content: space-between; + gap: 16px; + margin-top: 24px; +} + +.modal-basket__button { + flex: 1; + padding: 16px 24px; + border-radius: 20px; + font-family: var(--font-family); + font-weight: 600; + font-size: 20px; + line-height: 120%; + text-align: center; + cursor: pointer; + transition: all 0.2s ease-out; +} + +.modal-basket__button--continue { + background: var(--background-white); + border: 1px solid var(--background-black); + color: var(--text-black); +} + +.modal-basket__button--checkout { + background: var(--background-black); + border: 1px solid var(--background-black); + color: var(--text-white); +} + +.modal-basket__button:hover { + opacity: 0.9; + transform: translateY(-2px); +} + + +/* counter */ +.counter{ + display: flex; + align-items: center; +} +.counter__input{ + width: 48px; + + font-family: var(--font-family); + font-weight: 600; + font-size: 20px; + line-height: 120%; + text-align: center; + color: var(--text-black); + + pointer-events: none; + + background: none; + border: none; +} +.counter__button{ + width: 48px; + height: 48px; + + display: flex; + justify-content: center; + align-items: center; + + border: 1px solid var(--text-3); + border-radius: 24px; + + background: var(--background-white); + + transition: opacity .2s ease-out; +} +.counter__button:hover{ + opacity: .8; +} +.counter--small{ + +} +.counter--small .counter__button{ + width: 32px; + height: 32px; +} +.counter--small{ + +} +/* counter */ + + +/* button */ +.button{ + font-family: var(--font-family); + font-weight: 600; + font-size: 20px; + line-height: 120%; + color: var(--text-black); + + border-radius: 20px; + + cursor: pointer; +} +.button--100-perc{ + width: 100%; + text-align: center; +} +.button--white{ + padding: 11px 24px; + + text-align: center; + + background-color: var(--background-white); + border: 1px solid var(--background-black); + + transition: opacity .2s ease-out; +} +.button--white:hover{ + opacity: .8; +} +.button--white.active{ + background: var(--background-black); + color: var(--background-white); +} +.button--gradient{ + background: var(--gradient-turquoise); + border: none; + + transition: opacity .2s ease-out; +} +.button--gradient:hover{ + opacity: .8; +} +.button--base{ + padding: 12px 24px; +} +.button--high{ + height: 56px; + + padding: 16px 24px 24px 24px; + + font-weight: 700; + text-align: center; + + position: relative; +} +.button--high-46{ + padding: 12px 24px; + + font-size: 20px; + font-weight: 700; + line-height: 24px; +} +.button--icon{ + padding-right: 56px; + + text-align: start; +} +.button--filter::after{ + content: ''; + + position: absolute; + top: 16px; + right: 24px; + + width: 24px; + aspect-ratio: 1; + + background-image: url(../img/svg/main/filter.svg); + background-repeat: no-repeat; + background-size: contain; +} +.button--black{ + padding: 7px 15px; + + font-family: var(--font-family); + font-weight: 500; + font-size: 24px; + line-height: 133%; + color: var(--text-white); + + background: var(--background-black); + border: 1px solid var(--text-white); +} +.button--link{ + text-decoration: none; +} +.button--red-48-px{ + border-radius: 48px; +} +.to-know{ + /* width: 100%; */ + + padding: 12px 24px 7px 24px; + + display: flex; + justify-content: center; + + border: none; + + transition: opacity .2s ease-out; + text-decoration: none; +} +.to-know:hover{ + opacity: .8; +} +.to-know p{ + padding-bottom: 4px; + + font-family: var(--font-family); + font-weight: 700; + font-size: 20px; + line-height: 120%; + color: var(--text-black); + + border-bottom: 1px var(--text-black) solid; + + cursor: pointer; +} +.to-know--background-none{ + background: none; +} +.back{ + margin-top: 16px; + margin-left: 16px; + + padding: 8px; + padding-left: 32px; + + background: none; + border: none; + + font-family: var(--font-family); + font-weight: 600; + font-size: 20px; + line-height: 120%; + color: var(--text-black); + + text-decoration: none; + + position: relative; +} +.back::before{ + content: ''; + + position: absolute; + top: 8px; + left: 0; + + margin-right: 8px; + + width: 24px; + height: 24px; + + background-image: url(../img/svg/main/arrow-back.svg); +} + +.back::after{ + content: ''; + + position: absolute; + bottom: 6px; + left: 0; + + width: calc(100% - 8px); + height: 1px; + + background: var(--text-black); +} + +.wc-forward { + width: 100%; + padding: 0.5rem 0; + text-align: center; +} +/* button */ + + + .woocommerce form .form-row .input-text { + display: flex; + flex-direction: row; + align-items: center; + padding: 12px 16px; + gap: 8px; + width: 100%; + height: 48px; + background: #FFFFFF; + border: 1px solid #999999; + border-radius: 20px; + margin-top: 6px; + color: #000 + } + + .woocommerce form .form-row textarea.input-text{ + height: 150px; + } + + .woocommerce-button{ + padding: 20px; + margin-top: 20px; + } + + .label__title, .form-row label { + font-family: var(--font-family); + font-weight: 700; + font-size: 16px; + line-height: 125%; + color: var(--text-3); +} + +.shop_table{ + width: 100%; +} + + +.form-input__error{ + margin-top: 4px; + + font-family: var(--font-family); + font-weight: 500; + font-size: 12px; + line-height: 133%; + + color: #f60909; + + display: none; + + position: relative; +} +.form-input__error--absolute{ + position: absolute; + bottom: -19.95px; + left: 0; + + width: 100%; +} +.form__input.error, .form-input__phone.error{ + border-color: #f60909; +} +.form__input.error + .form-input__error{ + display: block; +} +.form-input__phone.error .form-input__error{ + display: block; +} +.form-input-phone__input.error + .form-input__error--absolute::before{ + content: ''; + + position: absolute; + top: -53px; + left: -1px; + + width: 100%; + height: 48px; + + border-radius: 20px; + border: 1px solid #f60909; +} + + + +.form__input{ + width: 100%; + + border-radius: 20px; + padding: 12px 16px; + border: 1px solid var(--text-black); + + background: var(--background-white); + + font-family: var(--font-family); + font-weight: 400; + font-size: 20px; + line-height: 120%; + + color: var(--text-black); +} +.form__input::placeholder{ + color: var(--text-grey); +} +.form__input--textarea{ + height: 96px; + resize: none; +} +.form__input--center{ + text-align: center; +} +.form__button{ + width: 100%; + + padding: 12px 24px; + + font-family: var(--font-family); + font-weight: 400; + font-size: 20px; + line-height: 120%; + color: var(--text-white); + + border-radius: 16px; + border: none; + background: var(--background-black); + + cursor: pointer; + + transition: background-color .2s ease-out; +} +.form__button:hover{ + opacity: .8; +} + + +.modalProfile{ + position: fixed; + top: 0; + left: 0; + + padding: 20px; + + width: 100vw; + height: 100vh; + + background: rgba(0, 0, 0, 0.25); + + z-index: 200; + + opacity: 0; + transition: opacity .2s ease-out; + pointer-events: none; + + display: flex; + justify-content: center; + align-items: center; + + overflow-y: auto; + padding-top: 30px; + padding-bottom: 30px; +} +.modalProfile.active{ + opacity: 1; + pointer-events: auto; +} + +.popup-wrap{ + width: 100%; + height: 100%; + display: flex; +} + +.modal-form{ + margin: auto; +} + + +.label-name{ + display: block; + margin-bottom: 6px; +} + +.woocommerce-billing-fields__field-wrapper{ + margin-top: 2rem; +} + +.form__input--textarea{ + height: 96px; + resize: none; +} + +.remote-control__item { + display: none; +} + +.remote-control__item.active { + display: block; +} + +.order-contacts__delivery{ + padding-bottom: 3rem; +} \ No newline at end of file diff --git a/wp-content/themes/cosmopet/modules/layout/assets/css/gp-style-normalize.css b/wp-content/themes/cosmopet/modules/layout/assets/css/gp-style-normalize.css index 7274e0c..ccd51b7 100644 --- a/wp-content/themes/cosmopet/modules/layout/assets/css/gp-style-normalize.css +++ b/wp-content/themes/cosmopet/modules/layout/assets/css/gp-style-normalize.css @@ -16,10 +16,6 @@ img { max-width: 100%; } -span, -label { - display: inline-block; -} html { scroll-behavior: smooth; @@ -69,4 +65,12 @@ input[type=number]::-webkit-outer-spin-button { -webkit-appearance: none; -moz-appearance: none; margin: 0; +} + +main.wrapper{ + padding-top: 40px; +} + +.checkout-inline-error-message{ + display: none; } \ No newline at end of file diff --git a/wp-content/themes/cosmopet/woocommerce/assets/fonts/craftwork/CraftworkGrotesk-Bold.woff b/wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/CraftworkGrotesk-Bold.woff similarity index 100% rename from wp-content/themes/cosmopet/woocommerce/assets/fonts/craftwork/CraftworkGrotesk-Bold.woff rename to wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/CraftworkGrotesk-Bold.woff diff --git a/wp-content/themes/cosmopet/woocommerce/assets/fonts/craftwork/CraftworkGrotesk-Bold.woff2 b/wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/CraftworkGrotesk-Bold.woff2 similarity index 100% rename from wp-content/themes/cosmopet/woocommerce/assets/fonts/craftwork/CraftworkGrotesk-Bold.woff2 rename to wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/CraftworkGrotesk-Bold.woff2 diff --git a/wp-content/themes/cosmopet/woocommerce/assets/fonts/craftwork/CraftworkGrotesk-Medium.woff b/wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/CraftworkGrotesk-Medium.woff similarity index 100% rename from wp-content/themes/cosmopet/woocommerce/assets/fonts/craftwork/CraftworkGrotesk-Medium.woff rename to wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/CraftworkGrotesk-Medium.woff diff --git a/wp-content/themes/cosmopet/woocommerce/assets/fonts/craftwork/CraftworkGrotesk-Medium.woff2 b/wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/CraftworkGrotesk-Medium.woff2 similarity index 100% rename from wp-content/themes/cosmopet/woocommerce/assets/fonts/craftwork/CraftworkGrotesk-Medium.woff2 rename to wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/CraftworkGrotesk-Medium.woff2 diff --git a/wp-content/themes/cosmopet/woocommerce/assets/fonts/craftwork/CraftworkGrotesk-Regular.woff b/wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/CraftworkGrotesk-Regular.woff similarity index 100% rename from wp-content/themes/cosmopet/woocommerce/assets/fonts/craftwork/CraftworkGrotesk-Regular.woff rename to wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/CraftworkGrotesk-Regular.woff diff --git a/wp-content/themes/cosmopet/woocommerce/assets/fonts/craftwork/CraftworkGrotesk-Regular.woff2 b/wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/CraftworkGrotesk-Regular.woff2 similarity index 100% rename from wp-content/themes/cosmopet/woocommerce/assets/fonts/craftwork/CraftworkGrotesk-Regular.woff2 rename to wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/CraftworkGrotesk-Regular.woff2 diff --git a/wp-content/themes/cosmopet/woocommerce/assets/fonts/craftwork/CraftworkGrotesk-SemiBold.woff b/wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/CraftworkGrotesk-SemiBold.woff similarity index 100% rename from wp-content/themes/cosmopet/woocommerce/assets/fonts/craftwork/CraftworkGrotesk-SemiBold.woff rename to wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/CraftworkGrotesk-SemiBold.woff diff --git a/wp-content/themes/cosmopet/woocommerce/assets/fonts/craftwork/CraftworkGrotesk-SemiBold.woff2 b/wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/CraftworkGrotesk-SemiBold.woff2 similarity index 100% rename from wp-content/themes/cosmopet/woocommerce/assets/fonts/craftwork/CraftworkGrotesk-SemiBold.woff2 rename to wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/CraftworkGrotesk-SemiBold.woff2 diff --git a/wp-content/themes/cosmopet/woocommerce/assets/fonts/craftwork/craftwork-grotesk-bold.ttf b/wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/craftwork-grotesk-bold.ttf similarity index 100% rename from wp-content/themes/cosmopet/woocommerce/assets/fonts/craftwork/craftwork-grotesk-bold.ttf rename to wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/craftwork-grotesk-bold.ttf diff --git a/wp-content/themes/cosmopet/woocommerce/assets/fonts/craftwork/craftwork-grotesk-medium.ttf b/wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/craftwork-grotesk-medium.ttf similarity index 100% rename from wp-content/themes/cosmopet/woocommerce/assets/fonts/craftwork/craftwork-grotesk-medium.ttf rename to wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/craftwork-grotesk-medium.ttf diff --git a/wp-content/themes/cosmopet/woocommerce/assets/fonts/craftwork/craftwork-grotesk-regular.ttf b/wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/craftwork-grotesk-regular.ttf similarity index 100% rename from wp-content/themes/cosmopet/woocommerce/assets/fonts/craftwork/craftwork-grotesk-regular.ttf rename to wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/craftwork-grotesk-regular.ttf diff --git a/wp-content/themes/cosmopet/woocommerce/assets/fonts/craftwork/craftwork-grotesk-semi-bold.ttf b/wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/craftwork-grotesk-semi-bold.ttf similarity index 100% rename from wp-content/themes/cosmopet/woocommerce/assets/fonts/craftwork/craftwork-grotesk-semi-bold.ttf rename to wp-content/themes/cosmopet/modules/layout/assets/fonts/craftwork/craftwork-grotesk-semi-bold.ttf diff --git a/wp-content/themes/cosmopet/woocommerce/assets/fonts/din-2014/din-2014-rounded-demi.ttf b/wp-content/themes/cosmopet/modules/layout/assets/fonts/din-2014/din-2014-rounded-demi.ttf similarity index 100% rename from wp-content/themes/cosmopet/woocommerce/assets/fonts/din-2014/din-2014-rounded-demi.ttf rename to wp-content/themes/cosmopet/modules/layout/assets/fonts/din-2014/din-2014-rounded-demi.ttf diff --git a/wp-content/themes/cosmopet/woocommerce/assets/fonts/din-2014/din-2014-rounded-demi.woff b/wp-content/themes/cosmopet/modules/layout/assets/fonts/din-2014/din-2014-rounded-demi.woff similarity index 100% rename from wp-content/themes/cosmopet/woocommerce/assets/fonts/din-2014/din-2014-rounded-demi.woff rename to wp-content/themes/cosmopet/modules/layout/assets/fonts/din-2014/din-2014-rounded-demi.woff diff --git a/wp-content/themes/cosmopet/woocommerce/assets/fonts/din-2014/din-2014-rounded-demi.woff2 b/wp-content/themes/cosmopet/modules/layout/assets/fonts/din-2014/din-2014-rounded-demi.woff2 similarity index 100% rename from wp-content/themes/cosmopet/woocommerce/assets/fonts/din-2014/din-2014-rounded-demi.woff2 rename to wp-content/themes/cosmopet/modules/layout/assets/fonts/din-2014/din-2014-rounded-demi.woff2 diff --git a/wp-content/themes/cosmopet/woocommerce/assets/fonts/din-2014/din-2014-rounded-regular.ttf b/wp-content/themes/cosmopet/modules/layout/assets/fonts/din-2014/din-2014-rounded-regular.ttf similarity index 100% rename from wp-content/themes/cosmopet/woocommerce/assets/fonts/din-2014/din-2014-rounded-regular.ttf rename to wp-content/themes/cosmopet/modules/layout/assets/fonts/din-2014/din-2014-rounded-regular.ttf diff --git a/wp-content/themes/cosmopet/woocommerce/assets/fonts/din-2014/din-2014-rounded-regular.woff b/wp-content/themes/cosmopet/modules/layout/assets/fonts/din-2014/din-2014-rounded-regular.woff similarity index 100% rename from wp-content/themes/cosmopet/woocommerce/assets/fonts/din-2014/din-2014-rounded-regular.woff rename to wp-content/themes/cosmopet/modules/layout/assets/fonts/din-2014/din-2014-rounded-regular.woff diff --git a/wp-content/themes/cosmopet/woocommerce/assets/fonts/din-2014/din-2014-rounded-regular.woff2 b/wp-content/themes/cosmopet/modules/layout/assets/fonts/din-2014/din-2014-rounded-regular.woff2 similarity index 100% rename from wp-content/themes/cosmopet/woocommerce/assets/fonts/din-2014/din-2014-rounded-regular.woff2 rename to wp-content/themes/cosmopet/modules/layout/assets/fonts/din-2014/din-2014-rounded-regular.woff2 diff --git a/wp-content/themes/cosmopet/woocommerce/assets/fonts/roboto/Roboto-Medium.woff b/wp-content/themes/cosmopet/modules/layout/assets/fonts/roboto/Roboto-Medium.woff similarity index 100% rename from wp-content/themes/cosmopet/woocommerce/assets/fonts/roboto/Roboto-Medium.woff rename to wp-content/themes/cosmopet/modules/layout/assets/fonts/roboto/Roboto-Medium.woff diff --git a/wp-content/themes/cosmopet/woocommerce/assets/fonts/roboto/Roboto-Medium.woff2 b/wp-content/themes/cosmopet/modules/layout/assets/fonts/roboto/Roboto-Medium.woff2 similarity index 100% rename from wp-content/themes/cosmopet/woocommerce/assets/fonts/roboto/Roboto-Medium.woff2 rename to wp-content/themes/cosmopet/modules/layout/assets/fonts/roboto/Roboto-Medium.woff2 diff --git a/wp-content/themes/cosmopet/woocommerce/assets/fonts/roboto/Roboto-Regular.woff b/wp-content/themes/cosmopet/modules/layout/assets/fonts/roboto/Roboto-Regular.woff similarity index 100% rename from wp-content/themes/cosmopet/woocommerce/assets/fonts/roboto/Roboto-Regular.woff rename to wp-content/themes/cosmopet/modules/layout/assets/fonts/roboto/Roboto-Regular.woff diff --git a/wp-content/themes/cosmopet/woocommerce/assets/fonts/roboto/Roboto-Regular.woff2 b/wp-content/themes/cosmopet/modules/layout/assets/fonts/roboto/Roboto-Regular.woff2 similarity index 100% rename from wp-content/themes/cosmopet/woocommerce/assets/fonts/roboto/Roboto-Regular.woff2 rename to wp-content/themes/cosmopet/modules/layout/assets/fonts/roboto/Roboto-Regular.woff2 diff --git a/wp-content/themes/cosmopet/woocommerce/assets/fonts/roboto/roboto-medium.ttf b/wp-content/themes/cosmopet/modules/layout/assets/fonts/roboto/roboto-medium.ttf similarity index 100% rename from wp-content/themes/cosmopet/woocommerce/assets/fonts/roboto/roboto-medium.ttf rename to wp-content/themes/cosmopet/modules/layout/assets/fonts/roboto/roboto-medium.ttf diff --git a/wp-content/themes/cosmopet/woocommerce/assets/fonts/roboto/roboto-regular.ttf b/wp-content/themes/cosmopet/modules/layout/assets/fonts/roboto/roboto-regular.ttf similarity index 100% rename from wp-content/themes/cosmopet/woocommerce/assets/fonts/roboto/roboto-regular.ttf rename to wp-content/themes/cosmopet/modules/layout/assets/fonts/roboto/roboto-regular.ttf diff --git a/wp-content/themes/cosmopet/modules/layout/assets/js/_gp-function.js b/wp-content/themes/cosmopet/modules/layout/assets/js/_gp-function.js new file mode 100644 index 0000000..d76ad0b --- /dev/null +++ b/wp-content/themes/cosmopet/modules/layout/assets/js/_gp-function.js @@ -0,0 +1,166 @@ +// 'use strict'; + +// // Глобальные переменные для управления состоянием +// let currentModalContent = null; + +// function modalOpen(buttonElement, contentElement) { +// const modal = document.querySelector('.modal'); +// const aside = document.querySelector('.modal__aside'); +// const elements = document.querySelectorAll(buttonElement); +// const device = window.screen.width; + +// // Обработчик закрытия по клику на оверлей +// modal.addEventListener('click', function(e) { +// if (e.target === modal && currentModalContent) { +// closeModal(currentModalContent); +// } +// }); + +// // Обработчик закрытия по Escape +// document.addEventListener('keydown', function(e) { +// if (e.key === 'Escape' && currentModalContent) { +// closeModal(currentModalContent); +// } +// }); + +// elements.forEach(e => { +// e.addEventListener('click', function() { +// const content = document.querySelector(contentElement); +// currentModalContent = content; + +// // Сброс стилей перед открытием +// resetModalStyles(); + +// modal.classList.add('active'); +// content.classList.add('active'); + +// const width = content.clientWidth; + +// setTimeout(() => { +// if (device <= 720) { +// aside.style.width = `${device}px`; +// } else { +// aside.style.width = `${width}px`; +// } +// content.style.opacity = '1'; +// content.style.filter = 'blur(0)'; +// }, 10); +// }); +// }); +// } + +// function modalClose(buttonElement) { +// const elements = document.querySelectorAll(buttonElement); + +// elements.forEach(e => { +// e.addEventListener('click', function() { +// if (currentModalContent) { +// closeModal(currentModalContent); +// } +// }); +// }); +// } + +// function closeModal(contentElement) { +// const modal = document.querySelector('.modal'); +// const aside = document.querySelector('.modal__aside'); + +// aside.style.width = '0'; +// contentElement.style.opacity = '0'; +// contentElement.style.filter = 'blur(10px)'; + +// setTimeout(() => { +// contentElement.classList.remove('active'); +// modal.classList.remove('active'); +// currentModalContent = null; +// }, 300); +// } + +// function resetModalStyles() { +// const allModals = document.querySelectorAll('.modal__item'); + +// allModals.forEach(modal => { +// modal.style.opacity = ''; +// modal.style.filter = ''; +// modal.classList.remove('active'); +// }); + +// document.querySelector('.modal__aside').style.width = ''; +// } +// function toggleOpenX(mainElement, buttonElement ,heightElement, contentElement, close) { +// let elements = document.querySelectorAll(mainElement); + +// elements.forEach(e => { +// let thisMainElement = e, +// thisButtonElement = e.querySelector(buttonElement), +// thisHeightElement = e.querySelector(heightElement), +// thisContentElement = e.querySelector(contentElement); + +// thisButtonElement.onclick = function (e) { +// let height = thisHeightElement.clientHeight; + +// if (close == true && !thisMainElement.classList.contains('active')) { +// elements.forEach(e => { +// if (e.classList.contains('active')) { +// e.classList.remove('active'); +// e.querySelector(contentElement).style.height = null +// } +// }) +// } + +// if (!thisMainElement.classList.contains('active')) { +// thisContentElement.style.height = `${height}px`; +// thisMainElement.classList.add('active'); +// }else{ +// thisContentElement.style.height = null; +// thisMainElement.classList.remove('active'); +// } +// } + +// }); +// } + +// function toggleHeader(button, content, blockheight, removeBlock, removeClass) { +// let thisButton = document.querySelector(button), +// thisContent = document.querySelector(content), +// thisRemoveBlock = document.querySelector(removeBlock) || '', +// thisBlockheight = document.querySelector(blockheight); + +// thisButton.onclick = function () { +// let height = thisBlockheight.clientHeight; + +// if (!thisContent.classList .contains('open')) { +// thisContent.style.height = `${height}px`; +// thisContent.classList .add('open'); + +// if (removeBlock) { +// thisRemoveBlock.classList.remove(removeClass); +// } +// }else{ +// thisContent.style.height = null; +// thisContent.classList .remove('open'); + +// if (removeBlock) { +// if (window.scrollY <= 25) { +// thisRemoveBlock.classList.add(removeClass); +// } +// } +// } +// } +// } + +// function modalFormOpen(formOrNotification) { +// let buttons = document.querySelectorAll(formOrNotification), +// modal = document.querySelector('.modal'); + +// buttons.forEach(button => { +// button.onclick = function (eventButton) { +// let classOpenForm = button.dataset.form, +// form = modal.querySelector(`.${classOpenForm}`); + +// form.classList.add('active'); +// modal.classList.add('active'); +// } +// }) +// } +// // function \ No newline at end of file diff --git a/wp-content/themes/cosmopet/modules/layout/assets/js/gp-cabinet.js b/wp-content/themes/cosmopet/modules/layout/assets/js/gp-cabinet.js new file mode 100644 index 0000000..1b485f7 --- /dev/null +++ b/wp-content/themes/cosmopet/modules/layout/assets/js/gp-cabinet.js @@ -0,0 +1,67 @@ +// 'use strict'; + +// import * as fun from './_gp-function.js'; + +// let widthPhoneCabinet = 1200; + +// fun.toggleOpenX('.cabinet-card__order', '.cabinet-card-order__open-detail', '.cabinet-card-order__detail', '.cabinet-card-order__block-detail'); +// fun.modalFormOpen('.form-open'); + +// fun.closeModalForm('.modal-form__close'); +// fun.closeModalForm('.modal-form__button-close'); + +// controlCabinet('.cabinet-control__button', '.cabinet', widthPhoneCabinet); + +// function controlCabinet(buttons, main, minWidth){ +// let thisWidth = window.innerWidth; +// let thisMain = document.querySelector(main); + +// let thisButtons = document.querySelectorAll(buttons); + +// thisButtons.forEach(e => { +// e.onclick = function (element){ +// let thisContent = document.querySelector(`.cabinet__${e.dataset.cabinet}`); +// let newHeight = thisContent.clientHeight + 48; +// let thisButton = element.target; + +// thisMain.style.height = `${newHeight}px` + +// if (!thisContent.classList.contains('active')) { +// thisMain.querySelector('.active').classList.remove('active'); +// thisContent.classList.add('active'); + +// setTimeout(() => { +// thisMain.style.height = 'auto'; + +// if (thisMain.querySelector('.hide')) { +// thisMain.querySelector('.hide').classList.remove('hide'); +// } + +// thisMain.querySelector('.active').classList.add('hide'); +// }, 200); +// } + +// thisButtons.forEach(e => { +// e.classList.remove('active'); +// }) +// thisButton.classList.add('active'); +// } +// }) + +// } + +// let modal = document.querySelector('.modal'); +// modal.onclick = function (eventModal) { +// let thisTarget = eventModal.target; + +// if (thisTarget.classList.contains('modal')) { +// thisTarget.classList.remove('active'); + +// if (!thisTarget.querySelector('.modal-map.active')) { +// thisTarget.querySelector('.modal-form.active').classList.remove('active'); +// }else{ +// thisTarget.querySelector('.modal-map.active').classList.remove('active'); +// } +// } +// } + diff --git a/wp-content/themes/cosmopet/woocommerce/assets/js/gp-form.js b/wp-content/themes/cosmopet/modules/layout/assets/js/gp-form.js similarity index 100% rename from wp-content/themes/cosmopet/woocommerce/assets/js/gp-form.js rename to wp-content/themes/cosmopet/modules/layout/assets/js/gp-form.js diff --git a/wp-content/themes/cosmopet/woocommerce/assets/js/gp-main.js b/wp-content/themes/cosmopet/modules/layout/assets/js/gp-main.js similarity index 75% rename from wp-content/themes/cosmopet/woocommerce/assets/js/gp-main.js rename to wp-content/themes/cosmopet/modules/layout/assets/js/gp-main.js index 477626e..2338e28 100644 --- a/wp-content/themes/cosmopet/woocommerce/assets/js/gp-main.js +++ b/wp-content/themes/cosmopet/modules/layout/assets/js/gp-main.js @@ -140,19 +140,8 @@ let modal = document.querySelector('.modal'); modal.onclick = function (event) { let target = event.target; - if (target.classList.contains('modal')) { - let aside = target.querySelector('.modal__aside'), - modalItem = target.querySelector('.modal__item.active'), - body = document.querySelector('body'); - - aside.style.width = '0px'; - body.classList.remove('overflow-hidden'); - setTimeout(() => { - modalItem.style.cssText = ''; - modalItem.classList.remove('active'); - target.classList.remove('active'); - }, 300); + closeAllModals(); } } @@ -190,100 +179,7 @@ radioButtons.forEach(radioBlock => { }) // radio-button -// overlay -// let products = document.querySelectorAll('.product__item'); - -// products.forEach(productItem => { -// let button = productItem.querySelector('.open-overlay'), -// overlay = productItem.querySelector('.product-item__overlay'); - - -// if (button) { -// button.onclick = function (e) { -// document.querySelectorAll('.product__item').forEach(e => { -// if (e.classList.contains('active')) { -// e.classList.remove('active'); -// } -// }); -// document.querySelectorAll('.product-item__overlay').forEach(e => { -// if (e.classList.contains('active')) { -// e.classList.remove('active'); -// } -// }); - -// productItem.classList.toggle('active'); -// overlay.classList.toggle('active'); -// } -// } - -// }) -// overlay - - -// select -// toggleOpenX('.select', '.select__state' , '.state__content', '.state__block', true); - -// let selects = document.querySelectorAll('.select'); - -// selects.forEach(select => { -// let state = select.querySelector('.select__state'), -// content = select.querySelector('.state__block'), -// buttons = select.querySelectorAll('.state__button'); - -// buttons.forEach(e => { -// let button = e; -// e.onclick = function (event) { -// event.preventDefault(); - -// buttons.forEach(element => { -// if (element.classList.contains('active')) { -// element.classList.remove('active'); -// } -// }) - -// let text = e.textContent.trim(); -// state.value = text; - -// button.classList.add('active'); -// content.style.height = 0; -// select.classList.remove('active'); -// } -// }) -// }) - - -// select - -// counter -// let counters = document.querySelectorAll('.counter'); - -// counters.forEach(e => { -// let minus = e.querySelector('.minus'), -// plus = e.querySelector('.plus'), -// input = e.querySelector('.counter__input'); - -// minus.onclick = function (e) { -// e.preventDefault(); - -// let number = input.value; - -// if (number >= 2){ -// input.value = Number(number) - 1; -// } -// } - -// plus.onclick = function (e) { -// e.preventDefault(); - -// let number = input.value; - -// if (number <= 99) { -// input.value = Number(number) + 1; -// } -// } -// }) -// counter // checkbox let checkbox = document.querySelectorAll('.checkbox'); @@ -336,35 +232,37 @@ function modalOpen(buttonElement, contentElement){ }) } -function modalClose(buttonElement) { + +function closeAllModals() { let modal = document.querySelector('.modal'), aside = document.querySelector('.modal__aside'), asideItems = document.querySelectorAll('.modal__item'), - elements = document.querySelectorAll(buttonElement), body = document.querySelector('body'); - elements.forEach(e => { - e.onclick = function () { - body.classList.remove('overflow-hidden'); - aside.style.width = '0px'; - - asideItems.forEach(e => { - if (e.classList.contains('active')) { - e.style.filter = 'blur(10px)'; - } - }); + aside.style.width = '0px'; + body.classList.remove('overflow-hidden'); + + asideItems.forEach(item => { + if (item.classList.contains('active')) { + item.style.opacity = 0; + item.style.filter = 'blur(10px)'; + } + }); - setTimeout(() => { - asideItems.forEach(e => { - if (e.classList.contains('active')) { - e.classList.remove('active'); - } - }); + setTimeout(() => { + asideItems.forEach(item => { + item.classList.remove('active'); + }); + modal.classList.remove('active'); + }, 300); +} - modal.classList.remove('active'); - }, 300); - } - }) + +function modalClose(buttonElement) { + let elements = document.querySelectorAll(buttonElement); + elements.forEach(e => { + e.onclick = closeAllModals; + }); } function toggleOpenX(mainElement, buttonElement ,heightElement, contentElement, close) { diff --git a/wp-content/themes/cosmopet/modules/layout/assets/js/gp-product.js b/wp-content/themes/cosmopet/modules/layout/assets/js/gp-product.js new file mode 100644 index 0000000..7b90d3c --- /dev/null +++ b/wp-content/themes/cosmopet/modules/layout/assets/js/gp-product.js @@ -0,0 +1,110 @@ +// 'use strict'; + +// // slider gallery modal +// const gallery = new Swiper('.gallery__slider', { +// spaceBetween: 100, + +// pagination: { +// el: '.swiper-pagination', +// }, + +// navigation: { +// nextEl: '.swiper-button-next', +// prevEl: '.swiper-button-prev', +// }, + +// scrollbar: { +// el: '.swiper-scrollbar', +// }, +// }); + +// let paginationButtons = document.querySelectorAll('.gallery-pagination__item'); + +// paginationButtons.forEach(button => { +// let index = button.dataset.countImg; + +// button.onclick = function () { +// gallery.slideTo(index); +// } +// }) + +// // open gallery +// let detailImage= document.querySelectorAll('.detail__image'); +// detailImage.forEach(button => { +// let index = button.dataset.countImg; + +// button.onclick = function () { +// gallery.slideTo(index); + +// document.querySelector('.gallery').classList.add('active'); +// } +// }) + +// // close gallery + +// document.querySelector('.gallery__close').onclick = function () { +// document.querySelector('.gallery').classList.remove('active'); +// } +// // slider gallery modal + +// // slider gallery main phone + +// // createGalleryPhone('.detail__images', '.detail-images__wrapper', '.detail__image', 980); + +// const detailPhone = new Swiper('.detail__images-phone', { +// spaceBetween: 100, + +// pagination: { +// el: '.swiper-pagination', +// }, + +// navigation: { +// nextEl: '.swiper-button-next', +// prevEl: '.swiper-button-prev', +// }, + +// scrollbar: { +// el: '.swiper-scrollbar', +// }, +// }); + +// let detailImagesPhones = document.querySelectorAll('.detail-images-phone__image-block'); + +// detailImagesPhones.forEach(button => { +// button.onclick = function (e) { +// let index = button.dataset.countImg; + +// gallery.slideTo(index); + +// document.querySelector('.gallery').classList.add('active'); +// } +// }) + +// // slider gallery main phone + +// // detail catalog +// const detailCatalot = new Swiper('.detail__catalot', { +// // Navigation arrows +// navigation: { +// nextEl: '.detail-catalot-control__button.next', +// prevEl: '.detail-catalot-control__button.prev', +// }, +// breakpoints: { +// 1600: { +// slidesPerView: 4, +// }, +// 1200: { +// slidesPerView: 3, +// }, +// 780: { +// slidesPerView: 2, +// }, +// 100: { +// slidesPerView: 1.1, +// spaceBetween: 20 +// }, +// } + + +// }); +// // detail catalog \ No newline at end of file diff --git a/wp-content/themes/cosmopet/modules/layout/module-controller.php b/wp-content/themes/cosmopet/modules/layout/module-controller.php index 3d14f53..e3a0b36 100644 --- a/wp-content/themes/cosmopet/modules/layout/module-controller.php +++ b/wp-content/themes/cosmopet/modules/layout/module-controller.php @@ -2,4 +2,5 @@ include_module('header'); +include_component('shop', 'cart'); include_module('footer'); diff --git a/wp-content/themes/cosmopet/modules/layout/module.template.twig b/wp-content/themes/cosmopet/modules/layout/module.template.twig deleted file mode 100644 index 33532d3..0000000 --- a/wp-content/themes/cosmopet/modules/layout/module.template.twig +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - {{ function('wp_head') }} - - - - - - {% if current_lang == 'en' %} - {% include 'header/module.template_ENG.twig' %} - {% elseif current_lang == 'fr' %} - {% else %} - {% include 'header/module.template_RU.twig' %} - {% endif %} - - -
- {% block content %} - {% endblock %} -
- - {% include 'footer/module.template.twig' %} - - {{ function('wp_footer') }} - - \ No newline at end of file diff --git a/wp-content/themes/cosmopet/modules/popup/module.template.twig b/wp-content/themes/cosmopet/modules/popup/module.template.twig deleted file mode 100644 index 80f3776..0000000 --- a/wp-content/themes/cosmopet/modules/popup/module.template.twig +++ /dev/null @@ -1,60 +0,0 @@ -{% set current_path = template_path ~ '/modules/footer' %} - - \ No newline at end of file diff --git a/wp-content/themes/cosmopet/modules/shop/components/cart/assets/js/cart.js b/wp-content/themes/cosmopet/modules/shop/components/cart/assets/js/cart.js new file mode 100644 index 0000000..bcef82e --- /dev/null +++ b/wp-content/themes/cosmopet/modules/shop/components/cart/assets/js/cart.js @@ -0,0 +1,273 @@ +jQuery(document).ready(function($) { + // Открытие/закрытие модалки + // $(document).on('click', '.cart-contents, .continue-shopping, .modal__close', function(e) { + // e.preventDefault(); + // $('#modal-basket').toggleClass('active'); + // }); + + // Обновление количества через input + $(document).on('change', '.counter__input', function() { + const key = $(this).data('key'); + const quantity = $(this).val(); + + if (quantity > 0) { + updateCart(key, quantity); + } else { + removeItem(key); + } + }); + + // Увеличение количества + $(document).on('click', '.counter__button.plus', function(e) { + e.preventDefault(); + const key = $(this).data('key'); + const input = $(this).siblings('.counter__input'); + const quantity = parseInt(input.val()) + 1; + input.val(quantity).trigger('change'); + }); + + // Уменьшение количества + $(document).on('click', '.counter__button.minus', function(e) { + e.preventDefault(); + const key = $(this).data('key'); + const input = $(this).siblings('.counter__input'); + let quantity = parseInt(input.val()) - 1; + quantity = quantity < 1 ? 1 : quantity; + input.val(quantity).trigger('change'); + }); + + $(document).on('click', '.remove-item', function() { + const key = $(this).data('key'); + removeItem(key); + }); + // Удаление товара + function formatMoney(amount) { + if (typeof woocommerce_params !== 'undefined' && woocommerce_params.currency_format) { + const format = woocommerce_params.currency_format; + return format + .replace('%1$s', woocommerce_params.currency_symbol) + .replace('%2$s', parseFloat(amount).toFixed(2)); + } + return woocommerce_params.currency_symbol + parseFloat(amount).toFixed(2); + } + + // Хранилище временно удалённых товаров + const removedItemsStorageKey = 'woocommerce_removed_items'; + + + function restoreRemovedItems() { + const removedItems = JSON.parse(localStorage.getItem(removedItemsStorageKey)) || []; + + if (removedItems.length === 0) return; + + $('#modal-basket').addClass('loading'); + + // Создаем копию массива для работы + let itemsToRemove = [...removedItems]; + + function processNextItem() { + if (itemsToRemove.length === 0) { + // Все элементы обработаны + localStorage.removeItem(removedItemsStorageKey); + updateCartFragment(); + $('#modal-basket').removeClass('loading'); + return; + } + + const element = itemsToRemove.shift(); // Берем первый элемент + + $.ajax({ + type: 'POST', + url: woocommerce_params.ajax_url, + data: { + action: 'remove_cart_item', + cart_item_key: element.key + }, + success: function(response) { + if (response.success) { + // Обновляем localStorage, удаляя только что обработанный элемент + const currentItems = JSON.parse(localStorage.getItem(removedItemsStorageKey)) || []; + const updatedItems = currentItems.filter(item => item.key !== element.key); + localStorage.setItem(removedItemsStorageKey, JSON.stringify(updatedItems)); + } + // Обрабатываем следующий элемент + processNextItem(); + }, + error: function() { + // Продолжаем даже при ошибке + processNextItem(); + } + }); + } + + // Начинаем обработку + processNextItem(); +} + + // Инициализация при загрузке + restoreRemovedItems(); + + // Функция удаления товара с возможностью восстановления + function removeItem(key) { + const $item = $(`[data-key="${key}"]`); + const productId = $item.data('product_id'); + const variationId = $item.data('variation_id') || 0; + const quantity = parseInt($item.find('.counter__input').val()); + + // Сохраняем во временное хранилище + const removedItems = JSON.parse(localStorage.getItem(removedItemsStorageKey)) || []; + removedItems.push({ product_id: productId, variation_id: variationId, quantity: quantity, key: key }); + localStorage.setItem(removedItemsStorageKey, JSON.stringify(removedItems)); + + // Показываем кнопку восстановления + $item.html(` + + + `); + + // Удаляем через 5 секунд, если не восстановили + const removeTimeout = setTimeout(() => { + permanentRemoveItem(key, productId, variationId); + }, 5000); + + const product_remove_timer = setInterval(() => { + let number = Number($(`#${key}_timer`).html()) - 1 + $(`#${key}_timer`).html(number) + }, 1000); + + // Обработчик восстановления + $(document).off('click', `[data-key="${key}"] .modal-basket-item__return`).on('click', `[data-key="${key}"] .modal-basket-item__return`, function(e) { + e.preventDefault(); + clearTimeout(removeTimeout); + clearInterval(product_remove_timer); // Очищаем интервал + restoreItem(key, productId, variationId, quantity); + }); + } + + // Полное удаление товара + function permanentRemoveItem(key, productId, variationId) { + $('#modal-basket').addClass('loading'); + + $.ajax({ + type: 'POST', + url: woocommerce_params.ajax_url, + data: { + action: 'remove_cart_item', + cart_item_key: key + }, + complete: function() { + $('#modal-basket').removeClass('loading'); + }, + success: function(response) { + if (response.success) { + // Удаляем из временного хранилища + const removedItems = JSON.parse(localStorage.getItem(removedItemsStorageKey)) || []; + const updatedItems = removedItems.filter(item => + !(item.product_id === productId && item.variation_id === variationId) + ); + localStorage.setItem(removedItemsStorageKey, JSON.stringify(updatedItems)); + + updateCartFragment(); + } + } + }); + } + + // Восстановление товара + function restoreItem(key, productId, variationId, quantity) { + $('#modal-basket').addClass('loading'); + + $.ajax({ + type: 'POST', + url: woocommerce_params.ajax_url, + data: { + action: 'restore_cart_item', + product_id: productId, + variation_id: variationId, + quantity: quantity + }, + complete: function() { + $('#modal-basket').removeClass('loading'); + }, + success: function(response) { + if (response.success) { + // Удаляем из временного хранилища + const removedItems = JSON.parse(localStorage.getItem(removedItemsStorageKey)) || []; + const updatedItems = removedItems.filter(item => + !(item.product_id === productId && item.variation_id === variationId) + ); + localStorage.setItem(removedItemsStorageKey, JSON.stringify(updatedItems)); + + updateCartFragment(); + } + } + }); + } + + // Обновление корзины при добавлении товара + $(document.body).on('added_to_cart', function() { + updateCartFragment(); + }); + + // Функция обновления количества + function updateCart(key, quantity) { + $.ajax({ + type: 'POST', + url: '/wp-admin/admin-ajax.php', // Используем стандартный параметр WooCommerce + data: { + action: 'update_cart_quantity', + cart_item_key: key, + quantity: quantity + }, + beforeSend: function() { + $('#modal-basket').addClass('loading'); + }, + complete: function() { + $('#modal-basket').removeClass('loading'); + }, + success: function(response) { + if (response.success) { + updateCartFragment(); + } else { + console.error('Ошибка при обновлении корзины'); + } + }, + error: function(xhr, status, error) { + console.error('AJAX ошибка:', error); + } + }); + } + + // Обновление фрагментов корзины + function updateCartFragment() { + $.ajax({ + type: 'POST', + url: woocommerce_params.ajax_url, + data: { + action: 'get_cart_fragment' + }, + beforeSend: function() { + $('#modal-basket').addClass('loading'); + }, + complete: function() { + $('#modal-basket').removeClass('loading'); + }, + success: function(response) { + console.log(response) + if (response.success) { + $('#modal-basket-content').html(response.data.contents); + $('.modal-block-price__price').html(response.data.total); + $('.cart-count').text(response.data.count); + + + } + } + }); + } +}); \ No newline at end of file diff --git a/wp-content/themes/cosmopet/modules/shop/components/cart/component-controller.php b/wp-content/themes/cosmopet/modules/shop/components/cart/component-controller.php new file mode 100644 index 0000000..bfad3cb --- /dev/null +++ b/wp-content/themes/cosmopet/modules/shop/components/cart/component-controller.php @@ -0,0 +1,8 @@ + div{ + display: none; + } + .modal__age > div.active{ + display: flex; + } + /* modal */ + + /* toggle */ + .toggle{ + padding-top: 26px; + padding-bottom: 25px; + + border-bottom: 1px solid var(--text-3); + + position: relative; + } + .toggle::after{ + content: ''; + + position: absolute; + top: 24px; + right: 0; + + width: 24px; + aspect-ratio: 1; + + background-image: url(../img/svg/main/black-x.svg); + transform: rotate(45deg); + transition: transform .2s; + pointer-events: none; + } + .toggle.active::after{ + transform: rotate(0deg); + } + .toggle__title{ + padding-right: 30px; + + font-family: var(--font-family); + font-weight: 700; + font-size: 16px; + line-height: 125%; + color: var(--text-black); + + cursor: pointer; + } + .toggle__block-content{ + height: 0; + overflow: hidden; + + transition: height .2s ease-out; + } + .toggle__content{ + padding-top: 24px; + } + .toggle-content__item{ + margin: 12px -12px -12px -12px; + + display: flex; + align-items: center; + flex-wrap: wrap; + } + .toggle-content__item:first-child{ + margin-top: 0; + } + .toggle-content__element{ + margin: 12px; + } + .toggle-content__element--width-perc-100{ + width: 100%; + } + .toggle-content__element--width-perc-50{ + width: calc(50% - 24px); + } + .toggle__text{ + font-family: var(--font-family); + font-weight: 400; + font-size: 20px; + line-height: 120%; + color: var(--text-black); + } + /* toggle */ + + /* checkbox */ + .checkbox{ + display: flex; + align-items: center; + + cursor: pointer; + } + .checkbox__state{ + border-radius: 4px; + + width: 18px; + height: 18px; + + border: 2px solid var(--background-black); + background: var(--background-white); + + flex-shrink: 0; + } + .checkbox.active .checkbox__state{ + background-color: var(--background-black); + + background-image: url(../img/svg/main/arrow-selected-white.svg); + background-repeat: no-repeat; + background-position: center; + } + .checkbox__input{ + display: none; + } + .checkbox__label{ + padding-left: 8px; + + font-family: var(--font-family); + font-weight: 400; + font-size: 20px; + line-height: 120%; + color: var(--text-dark); + + cursor: pointer; + } + .checkbox__label a{ + color: #76ce75; + + text-decoration: none; + } + .checkbox--small{ + margin-top: 24px; + } + .checkbox--small .checkbox__label{ + padding-left: 24px; + + font-weight: 500; + font-size: 12px; + line-height: 133%; + } + /* checkbox */ + + + @media (max-width: 720px) { + .modal-map__control{ + flex-wrap: wrap; + } + .modal-map-control__item{ + width: calc(100% - 24px); + } + .form__full-mobile{ + width: 100%; + border-radius: 0; + border: none; + } + } + + .container{ + max-width: 100% !important; + padding: 0; + } + + .col, .col-1, .col-10, .col-11, .col-12, .col-2, .col-20_0, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-auto, .col-lg, .col-lg-1, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg-2, .col-lg-20_0, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-auto, .col-md, .col-md-1, .col-md-10, .col-md-11, .col-md-12, .col-md-2, .col-md-20_0, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-auto, .col-sm, .col-sm-1, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-auto, .col-xl, .col-xl-1, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-auto{ + padding: 0; + } + + .page-title{ + display: none; + } + + + .modal-map-control-item__input{ + display: none; + } + + .page .main-page-wrapper{ + background: #fff !important; + } + + .modal-map-control-item__content{ + width: 100%; + } + + + .woocommerce-shipping-methods{ + display: flex; + } + .visually-hidden { + position: absolute !important; + clip: rect(1px 1px 1px 1px); + clip: rect(1px, 1px, 1px, 1px); + padding: 0 !important; + border: 0 !important; + height: 1px !important; + width: 1px !important; + overflow: hidden; +} +.modal-map-control__item{ + display: flex; + flex-direction: column; +} +.modal-map-control__item > label { + flex-grow: 1; + display: flex; + flex-direction: column; + position: relative; +} +.modal-map-control__item > label > *{ + flex-grow: 1; +} +.modal-map-control__item:nth-child(n){ + margin: 12px; + margin-bottom: 12px; +} +.modal-map-control-item__title{ + text-align: left; +} +.modal-map-control__item > label{ + margin-bottom: 0; +} +.open-pvz-btn{ + position: absolute !important; + clip: rect(1px 1px 1px 1px); + clip: rect(1px, 1px, 1px, 1px); + padding: 0 !important; + border: 0 !important; + height: 1px !important; + width: 1px !important; + overflow: hidden; +} + + +.order-contacts__delivery.loading{ + position: relative; + min-height: 110px; +} +.order-contacts__delivery.loading::before{ + content: ''; + z-index: 150; + height: 100%; + width: 100%; + position: absolute; + top: 0; + left: 0; + background-color: rgba(255,255,255, .6); + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' viewBox='0 0 100 100' preserveAspectRatio='xMidYMid' width='200' height='200' style='shape-rendering: auto; display: block; background: transparent;'%3E%3Cg%3E%3Ccircle stroke-dasharray='164.93361431346415 56.97787143782138' r='35' stroke-width='10' stroke='%23000000' fill='none' cy='50' cx='50'%3E%3CanimateTransform keyTimes='0;1' values='0 50 50;360 50 50' dur='1s' repeatCount='indefinite' type='rotate' attributeName='transform'/%3E%3C/circle%3E%3Cg/%3E%3C/g%3E%3C!-- %5Bldio%5D generated by https://loading.io --%3E%3C/svg%3E"); + background-size: 48px; + background-position: center; + background-repeat: no-repeat; + } + + + .shop_table .woocommerce-shipping-totals{ + display:none; + } + + .amount{ + color: inherit; + } + + .order-your-products__item{ + align-items: center; + } + + +.wc_payment_methods.payment_methods.methods{ + display: none; +} + + +.woocommerce-terms-and-conditions-wrapper{ + +} + +.woocommerce-privacy-policy-text p{ + color: #121212 !important; + font-size: 14px; +} + +.woocommerce-privacy-policy-text a{ + color: #121212 !important; + font-size: 14px; + text-decoration: underline; +} + +.woocommerce-terms-and-conditions-checkbox-text a{ + color: #121212 !important; + font-size: 14px; + text-decoration: underline; +} + + + +.woocommerce-checkout.processing { + position: relative; + opacity: 0.5; + pointer-events: none; +} + +.woocommerce-checkout .blockUI.blockOverlay { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(242, 242, 242, 0.7) !important; + z-index: 9999; +} + +.woocommerce-checkout .blockUI-message { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + z-index: 10000; + font-size: 16px; + color: #333; +} + +.cabinet-card__button{ + padding: 8px 8px 6px 0; + + font-family: var(--font-family); + font-weight: 600; + font-size: 20px; + line-height: 120%; + color: var(--text-black); + + background: none; + border: none; + + position: relative; + + text-decoration: none; +} +.cabinet-card__button::before{ + content: ''; + + position: absolute; + bottom: 6px; + + width: calc(100% - 8px); + height: 1px; + + background: var(--text-black); + + transition: opacity .2s ease-out; +} +.cabinet-card__button:hover{ + opacity: .8; +} + +.form-agreement{ + display: flex; +} +.form-agreement__check{ + display: flex; + align-items: center; +} +.form-agreement__square{ + width: 18px; + aspect-ratio: 1; + + border-radius: 4px; + + border: 2px solid var(--background-black); +} +.form-agreement__label{ + margin-left: 8px; + + font-family: var(--font-family); + font-weight: 400; + font-size: 20px; + line-height: 120%; + color: var(--text-black); +} +.form-agreement__input{ + display: none; +} +.form-agreement__input:checked + .form-agreement__square{ + border: none; + background: var(--gradient-blue); + + position: relative; +} +.form-agreement__input:checked + .form-agreement__square::after{ + content: ''; + + position: absolute; + top: 1px; + left: 1px; + + width: 16px; + aspect-ratio: 1; + + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='8' viewBox='0 0 10 8' fill='none'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M9.50681 0.784901C9.86151 1.14024 9.86101 1.71584 9.50567 2.07055L4.35112 7.216C3.99601 7.57049 3.42085 7.57024 3.06604 7.21544L0.493317 4.64271C0.138295 4.28769 0.138295 3.71208 0.493317 3.35706C0.848339 3.00204 1.42394 3.00204 1.77897 3.35706L3.70944 5.28753L8.22116 0.783766C8.57649 0.429057 9.1521 0.429565 9.50681 0.784901Z' fill='white'/%3E%3C/svg%3E"); + background-repeat: no-repeat; + background-position: center; +} + +.modal-map__control--delivery > p{ + color: #121212; + padding-left: 1rem; +} + +.form-agreement__label a{ + color: #121212; + text-decoration: underline; +} + +.form-input__error.active{ + display: block; +} + +.order-your__promo{ + position: relative; +} + +.woocommerce-NoticeGroup.woocommerce-NoticeGroup-checkout{ + display: none; +} + +.woocommerce-terms-and-conditions-wrapper, .woocommerce-message{ + display: none; +} + + +.woocommerce-checkout-review-order-table tr{ + border: none !important; +} + + +.col, .col-1, .col-10, .col-11, .col-12, .col-2, .col-20_0, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-auto, .col-lg, .col-lg-1, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg-2, .col-lg-20_0, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-auto, .col-md, .col-md-1, .col-md-10, .col-md-11, .col-md-12, .col-md-2, .col-md-20_0, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-auto, .col-sm, .col-sm-1, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-auto, .col-xl, .col-xl-1, .col-xl-10, .col-xl-11, .col-xl-12, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-auto { + padding-right: 0 !important; + padding-left: 0 !important; +} + +.cdek-office-info{ + display: none; +} \ No newline at end of file diff --git a/wp-content/themes/cosmopet/modules/shop/components/checkout/assets/js/script.js b/wp-content/themes/cosmopet/modules/shop/components/checkout/assets/js/script.js new file mode 100644 index 0000000..3035f2c --- /dev/null +++ b/wp-content/themes/cosmopet/modules/shop/components/checkout/assets/js/script.js @@ -0,0 +1,161 @@ +jQuery(document).ready(function($) { + jQuery(document.body).on('updated_checkout', function() { + // Найти новые методы доставки внутри shop_table + var shippingMethodsHtml = jQuery('.woocommerce-checkout-review-order-table .woocommerce-shipping-methods').html(); + // Обновить кастомный блок + if(!shippingMethodsHtml){ + shippingMethodsHtml ='

Не удалось получить доступные методы доставки!
Укажите свой город для получения доступных методов.

' + } + jQuery('#custom-shipping-methods').html(shippingMethodsHtml); + jQuery('.order-contacts__delivery').removeClass('loading'); + + jQuery('.modal-map-control__item.active').click() + }); + + + $(document.body).on('update_checkout', function() { + jQuery('.order-contacts__delivery').addClass('loading'); + }); + + $('body').on('click', '.modal-map-control__item', function(){ + if (!$(this).hasClass('active')){ + $('#addr_inp').val('') + $('#pvz_inp').val('') + $('#billing_address_1').val('') + $('#billing_address_2').val('') + } + $('.shipping-add-info').removeClass('active') + var remote = $(this).data('remote') + $('.shipping-add-info[data-remote="' + remote + '"]').addClass('active') + }) + + jQuery('#addr_inp').on('click', function(){ + jQuery('#address_input').addClass('active') + }) + +}); + + + +jQuery(document).ready(function($) { + // Перехват отправки формы купона + $(document).on('click', 'button[name="apply_coupon"]', function(e) { + e.preventDefault(); // Останавливаем отправку основной формы + + // Отправка данных купона через AJAX + var couponCode = $('#coupon_code').val(); + + if (!couponCode) { + alert('Пожалуйста, введите код купона.'); + return; + } + + $.ajax({ + url: wc_checkout_params.ajax_url, // URL для AJAX-запроса WooCommerce + type: 'POST', + data: { + action: 'apply_coupon', + coupon_code: couponCode + }, + success: function(response) { + if (response.success) { + $(document.body).trigger('update_checkout'); + $('#promo_form').hide() + $('#promo_delete').show() + $('#promo_err').hide() + $('#coupon_code_app').val('Применен промокод: ' + couponCode) + $('#delete_coupon').data('coupon', couponCode) + } else { + $('#promo_err').show() + } + }, + error: function() { + alert('Произошла ошибка. Попробуйте ещё раз.'); + } + }); + }); + + jQuery('#pvz_inp').on('click', function(){ + jQuery('.open-pvz-btn').click() + }) + + $('#address_input input').on('change, input, keyup', function(){ + var address = $('#f_address').val() + var apart = $('#f_apartment').val() + var floor = $('#f_floor').val() + var entrance = $('#f_entrance').val() + var number_phone = $('#f_number-phone').val() + + var address_2 = '' + + if (apart){ + address_2 += ' кв ' + apart + } + if (floor){ + address_2 += ' этаж ' + floor + } + if (entrance){ + address_2 += ' подъезд ' + entrance + } + if (number_phone){ + address_2 += ' домофон ' + number_phone + } + $('#addr_inp').val(address + address_2) + $('#billing_address_1').val(address) + $('#billing_address_2').val(address_2) + }) +}); + + +jQuery(document).ready(function ($) { + $(document.body).on('checkout_error', function () { + // $('.woocommerce-error').remove(); + $('.form-input__error').removeClass('active'); + + // // Добавляем ошибки рядом с полями + $('.woocommerce-error li').each(function () { + var errorMessage = $(this).text().trim(); + var fieldKey = $(this).data('id'); // Предполагается, что ошибка содержит data-id + console.log(errorMessage) + console.log(fieldKey) + if (fieldKey) { + var errorContainer = $('#' + fieldKey + '-error'); + if (errorContainer.length) { + errorContainer.html('' + errorMessage + ''); + $('#' + fieldKey + '-error').addClass('active'); + } + } + if (errorMessage == 'phone_err' || errorMessage == 'The string supplied did not seem to be a phone number.' || errorMessage.includes('Некорректный номер телефона')){ + $('#billing_phone-error').html('Неправильно введен номер') + $('#billing_phone-error').addClass('active'); + } + if (errorMessage == 'Order pickup point not selected.' || errorMessage == 'Не выбран ПВЗ для доставки заказа.'){ + $('#pvz-error').html(errorMessage) + $('#pvz-error').addClass('active'); + } + if (errorMessage == 'adress_error'){ + $('#adr-error').html('Не указан адрес доставки') + $('#adr-error').addClass('active'); + } + if (errorMessage == 'Неверный адрес эл. почты для выставления счета'){ + $('#billing_email-error').html(errorMessage).addClass('active'); + } + if(errorMessage == 'Не выбран метод доставки. Пожалуйста перепроверьте ваш адрес или обратитесь за помощью к администрации сайта.'){ + $('#billing_city-error').html(errorMessage).addClass('active'); + } + if(errorMessage == 'Этот email уже зарегистрирован.'){ + $('#acc-error').html('Этот email уже зарегистрирован. Войдите в свой аккаунт или укажите другой E-mail.').addClass('active'); + } + }); + }); + + $('#delete_coupon').on('click', function(){ + $('.woocommerce-remove-coupon[data-coupon=' + $(this).data('coupon') + ']').click() + }) + $('.woocommerce-remove-coupon').on('click', function(){ + + $('#promo_form').show() + $('#promo_delete').hide() + }) +}); + diff --git a/.user.ini b/wp-content/themes/cosmopet/modules/shop/components/checkout/component-controller.php similarity index 100% rename from .user.ini rename to wp-content/themes/cosmopet/modules/shop/components/checkout/component-controller.php diff --git a/wp-content/themes/cosmopet/modules/shop/module-ajax-controller.php b/wp-content/themes/cosmopet/modules/shop/module-ajax-controller.php new file mode 100644 index 0000000..e69de29 diff --git a/wp-content/themes/cosmopet/modules/shop/module-controller.php b/wp-content/themes/cosmopet/modules/shop/module-controller.php new file mode 100644 index 0000000..e69de29 diff --git a/wp-content/themes/cosmopet/page.php b/wp-content/themes/cosmopet/page.php new file mode 100644 index 0000000..ac4ba9a --- /dev/null +++ b/wp-content/themes/cosmopet/page.php @@ -0,0 +1,11 @@ +EZyBDB@F`7-Q6vnQqoIzr*yX<-Ob(Q`H3%1}@+_)t*L7KjMo|KQ5|%YuI)*#otlprBB& zA>YtY>6zdsprD613 z(#tj$se8=n^w}Hp@u+S7(dG6wqvI4F0}&3!Pl)vY_pcK;Qt-N+RoDjiNmcG+u(94G z(7Jc1(SmNySG@xUZks^_;B7luM8G>g@tkj<8r-(b^PN|YH8o#N_-w8}QMNvP_NkYB z?~jQHM~4MjYyZ7E|G9`iy1@0MsGa**f`aGfE@n2>$~qHyj^{8$tPu<19W?+&O%xU||~~LT)8s zew6Y|aq0bH1p`Ok%l_@`;u*awD6M^C%k~!IZLw)pSn!olb@x0FdYOp^{DO^q*=;TO z+CyV6v4PIaZ_nUF3Xz_D*=*ilYal>6{fPGi1`}E(kNrIh(Z?i`_@_aHgW=io^9(FR zIGl46@Z|+)bicS?azd|WSh%yJAz>^k`ByLE`TLz&NSD&$PXyC_K!k()PnLnt2OU4E zF~SG>&DvY}d4i2VePidCM0(94u_+;YX6{$!-g^mgQsAZGSeL+J&B3;R2Z&9Ms2&B< z!t;;3!oJU7r1UqU|`N| zGd~PJte-FGe^O-Gy;lMrbU}wA|E5KS4GRxtjU>d6D2l^cONovq2?86fuYDX?2osnx z**U{d3Pw{*(=0e5afUz&R7t>sI1KyD^X1S5H~0~#z&D9Ye)FqDh11}EA}@qy!Bs$_ zt_)IQM>F;rdbV7A2RWQSDZZc3hEsRbjttU;nJHUbe6NAMx0TZ8f)J0iAIxL9V8ekH z$AHLO>-^~V#CyU_W|~nznl$RNjS`DyAFXZt7(%eoMpNXwOOYyn$Pxcrv2*4&XGIW8 zK=)6?BX@s-8cK8*5O%X~37-~xTF{3#1(^5oO`t1(y#*47 zYXow0)K{ZKgJSU`$}f&THE)K;HAe&zG?fS9U{5z=n0E#mam?74(z%Mf4L#?`mBsLV>PVmr zw%QQ6lqnJH^f_yIMqsi@`aW}dm4Xgfk**wXKCS_Wx#={)-{_ZVkcCub?-ensl)Wtx zz^BAp7QM_^I5s%T%xSsC??`eY3clZoqZlgKf8E4ACvKmjkJ-DD#O|}Vpro*Tl{5np z+^kR~q=7w6Q+wuOJ=LSPvT0t_Y`#Mf=}5nsmp*3BlWB{lSmc0mHWx5W#;{siNwfE7 z)VN|MH47?5WTq1NZsSGa`PTXQZ23e#6g5Uu1SSMoTFEOT-Oh)r`O=E`ake_G#L2LA zb*-yw0fEY2p6I6`Jz0m^|EUf9N{Kd50x zufs8&Zoq7i+)Qiq>aTbDDcG3o=gA>{=q7%2J7Y$)abUXQ|5;)|u6tFLmmhXoeOlcQ zxf!@CKJ#=IyC?JioCuD{zMTZ`!MLE17JDr)YerczG5NT{6z5ws^Bx#KP?2hAiTmUn zA2i2Da3PvvBu4<{EE0jR3 zR1d#Km44KEs?Y|L_|rBz91K?jvsYTV?xo>V-pap>vFNtSVSGMs&P7_6%hs2Q_gC5Ws>KjI;DX@&jj| zoN^-S5S`Z7&Q`vbpaZo3D;9IoYx?Bp0HJ$*YW%hcF)Zs+)%Om*TDCJRpq*^o@ zp%>Un-{>)#crjnkz~K;Cqe|ejZgcH6-f@aUw!{pjueFVtLFkOM<{<57mF~=7%$cUR zB6BHa8K`6`gCaBUJAmy|kIaO?;}H}X+ABpM;9cEKBj|3F`l-Wq@Y2CO%)^vcAckxa z9RVadJ;;Q`7#SB9@lAN?TR~vccU4B8WCDvu1-IjFmD_cnS4;?IA-{nqa?S$|5$^Pv zxVTqSF9GESKTvE?hzg&`u8RpXVjNhC5h=nHtb{#d^>d%y#`W^5WoAY}_st&OXo996 zEn3~AwNWnPJGVpj`0td;EeWt}P3E8wGn{6TZsz_d4D@5kZa5P^qqGpd-TA%kI&jRh z*ZALu|C*v)zR2zNnAvi({kfBuQIiW(mi`dj1^r=*RtY}9gr${1gKo!ka74+7-cIM{ z(F0-|YM~-JenN&pDD0>+wLXr6X+y%848U3-x3wugat+40aY>unuPG}f7UZr4TO(k4 z`|$B(>_zPDBlA+EOcM}%b<{Vw4&TrAu>Gvqp1F5m6d3dwI4QzRse}u{Q44lfF#}qn zB3ei(1AhHP=OfdH6 z-wAQ!CKddonXV>avt_ooEekTGjN=YI#q`6H@=IqU zKODp!gdz5zSTo`5vx!snVJ~c(hSL9YehKc@nc;4?F69Y(=?nIWB%7^PS9K1qets-= zCiQznuVY{_!~{Tyke@<5Z2Us*-XEGflZ#67T$N_0H%fLpsRp}$%Osi>7zG3wYI+9u zS(wVJWog2@GcwMA;STQP!yBC7x({hsXl3IUbgCx{$^BtLQ6=tD;|nREgP*;2qXsNW zXD}A04YJ3V5kO^#s3WEf++5=PT891K&b}M>`+{zXH=tt6H6NrDLI2^T(j;G&|E!+nMt4@ zy}P4^8Z{|tCGLj6G52Zn=YRRmS=qr5&v@gF7_uW*oCUk}r5LD*KQy)DKF@wH>oaGg z>~^4EEKVzXgbPx%mz+I@S7MEaGqMn5r>0|95E^-!Y+dho55_+|zmgpSFryt|>VO85 zX%vE3+Y*Zw_=Z{lQCpg7E{0w}!Iai|ZPqHKWc)DQ4&1$D5yR&(p)Z0hN8jzhgb#cQ z2qh=w2Nr!2Oi%G-c6dffp_vqAt)OlaLbg$oQ@Q@8#vV@wC)OcTR#tCYEQ`L&=R-Cr zykP-GdkP5JH;uee%lqyTblH)MGw-34V_ zz-KE)R6TJ4DUI8K{h+mrCv2f!k!ZGdfsYC+IfjXb1@X0C@gnOF0j?cwyLnUhY2CNc~jr7A&zNXyFD=_Q5=A63U zHi9#vH)bG70cHmFDcjva9s`zKZ5#@^eF+}1471GSSb?5@>i)26q6R+?{1G+R5sc5X zwQsgZYKKCZp*_{Dqo4SE;tF!eeM%p5yeEfP-y7Ej5i$1+QSa~mx@^@Qyd;+!e=kZ2 zoRLZtvZqqe<)BcC>It`xlGOQk8vQ^X)k6yhTV(m+X66ch1oe&VvH!<8ZCmR)SWb&? z8Ad!`m4UwfGC+^dXA)n-DNo|g{{k*LOF_FY`uFiZ{BdhK=tq=erhA zUA!0@3T5o)u}(y5o88d2s)bX&I4&ZDSV5(r=A;<;{CH?NxVp;jxX^eRhQyy}Nb<13 z)bDuEO@Wlcbs{ex!!6;Dx8$GXaZTFm!%X8Q#R>01Nt- zLMn`opNt0ovYK~wRgl{A`t{D_)vL}99qz>NzY{YQU*;#CN6pxx*O^*Qo!Fuc;hfXT zeFc27BttzY2&X>{Jx4!i;33w-$s;Q*JE7hL*!c`KEz2z%0jrpihp-`+*Zgm(qwgRM zITi2ac8tiN2qX8u@S1Uqb${ivlv^obJ*2J76cqJfe}xy#LX?KFlvC^4!d9@QL2S!X0c z7_m;4n|d7Miv>-$Uv90f2tG2j)Ha@?9wk;q9F_ea7>OW5*;^dtOE-t)Rs=AVd<+BU zex0k~?(RNH%xl#h-Y}n-Sz?nBb4Fxpfpx`nrhk&niJG($kv>F6r%LG@1<<oxHQL11V5%Z!%GVBM2};VQj1TEP&)tRP)!;OqwaU>u=ahWDP{jj_&vu{#n_+ltVFh%hkYpAGTembQ6y&^-I zFoaJ);+tDIqvzf52&Y{mY5`>Ed{?cz~5J4oo*>(R*zD#O-em8saRa|2iU8RD!?F*VVe*=B0I0 z^>9-@K_m(e5+)ePV5b5Yap}5|7Os|G+Wv6V-Af!CwxE&{gO9G|9Rt&cJ4v#Y)jA>@qan{E69(OZ@D@e!I_5%0dVit@m>RWU`3P#Cs z|HwFFZIqtf>Aod`*U5y1%kVP}RZ$~2P%rf##cxzH7nbT$+{r^z#d)11LC4ZF2Nl)G z8*5?eqWeEN|fvto2{lT^{b-t*N`%u}454=TjU{2*4Q=f8UJG;XH927Fw_ z_h-7xV$LJ}f_r7a-Ua)=CEYewZ~>XCL2FQ*)FMjPDlrrMrrXpL^}vZ5lW zMT+>it8V3q%6^Q}wXoWlncW_JQ~aN^L%5ASVB>JM+%oNkq+s&r+adHnG z6e6-Bqs(VRAHJ_{<&p|fJGM~=igz2WY!o#C`^QLU`OBr_%dW`K=9=yaj&7@uzAGG8 z8oW-DJgoaHTMIf~FG4KL*7{BR_64iHA^RUP9h)Pw0MT`pxEQw>K^b}T!x6ckR=su)k(Uxuz| z!K7mOja2aBPw0AmUCGH55SWOVt0GIIP(OaTy}9<+C5ByrNqNs$lS&9s!fuut$VH2 zDQw)_xXZGvhg&;=J&_?1@901p7!1x9y}mRY?7-b{$#=M{9j{%Vr+B|ef%VhK_@*CP zP3VOz+0(`2ee^7S5W?e(ac6NM{w1o@+(HC{7{!PO{P)v(Z#?Z*2_?baw)lDe)!ckK zxH(}pHPr73l+<{78?;4uz?L0U6p|Uf5mtSV`=zFwJ@Y;H*HcKH!RC#5ik_q7+^4yY z&0MWncD!yS5Q-Dfp2U^nJ5b|C#70yu^IU5O_bmEyP#Tdd&zbq>+N@;kDQ&Yo{WdMe z@7jQxNZ&(Fs&jjeOdAqcQY-Qz!=HgGrlH|JE@Bqs|MHx^pZ%K5Y{&(!+W0NM73_IY zD|GoTM?X_2KXkIm8MH1Rlh9Qe_onGG^!-#(Vo|Nfh&LKXc8nLcpOnC@-wP`F7=aO) zSs2PKBuTpwYl=g8keRNHhNdLanV@R)$>7c{_3CI}Ts6|Nk^Urp)g%bN4R_}5hS}$Q z6YXtJRyHv3u;_wregoDn8kpVw7Fy@r2hh-f=(+R-{AO0+ER~IgszW3Ed5hxFSSRy& zq);rV&UgTaIejtCEC`aNgU@dmCuIo<@K44m;r&vH z$43eykL2rV)%FaM|HQZIIfgww9Q;t3e$}6SA1236Y1?=ne>#i_Qj6T8`?UPEuaM~R ze1y5}Dcy4MbuH$}uH*S5#ER+Pe3A6Y@AS1nvS{XjzG&uo{=_!(8;$%k!;Z00kKSNs zd#vAcUR9P?_FZ4N2pNJbRG_IM1^85yFaAjVx;T+$X;z)Z2`KIai>Y6ZomsKEcVHA7 zMtc2mQM`|L3J1EF2$eXv1p?bf}0fRPtvcfA~_%2Vjdr1_`|o==zZ=3auIF24sMWgbyC zIc&q}dmm6Wc^?<%v1H=7_M2MuF%$&+7D}DW%v|$LNJzM74?+0oM<<@YbLqhU)MrCUzS&pXJ)N2#5Kai6`qk;m z9-m;hZNY0HacG-d2{-mDTJ}QXaWq$DPt?D8s0e@P-TF;K#c>=~F64yh)dMLqQjmx& zb=c#A8ceQjTpPUmVZT4bRE_B+R!Lye<8!%X112~B*|5|?)K1MpDP2E9~W_*C{S@LqqZSvG5upepB_KF zm@jic_JdOA7!J)JCHX?-Qj;25OGHngswu=|8zGDniQVM=%o8a&5M=sIY-pqZE7pqE zAZj^)#;lnzXlI4i_PquZ<(fz!Msy!A-fxS5KC>nLmowm&N7&Z2d#8k!;E2trwr_0;GjfLnPzA$mDiDs2`d4C z&qFK=9Zi+u)2v*4(|dSAdo8?wo=Cl;nTv6Ob@t!inSUoenqBQmBiq(b-hF1$wU=4p zDAER(u_78RDlxu%JS#d~RZjR*iB^vS;nhjGcL;$CHMu69z_Q`JZ&-V8hHKd z<9ZrJIqQxA&p2=c-oibFaVh?@sAIX6r(E8`C0$Rh`lVOjH;C zirEOODaOCuG9it|>qX=RMW&Qa8bZoy0joIQo&Y0?n@#AJ@2dF43I>zCbL84AqNW_j zKKOlbYN00h`#RFD+Qo9+9lc1OAhTgEeVgmdO-I6hp1{&5lW?v6%g73Im}El9}}>#Dk4(`hE4%zQ4%kk_Qq z;YZ%Z=W~xU468lP(?_k)v(G}Sd>Q&wEY3j?juI5+3s{-fr(BDnlxannBKWmMT^tUc zOS!FD)oNZx${`v2KK1^=nMiDi*2BB!E3W{X0r$%&$A?$tw0kG8NeNUzda_j~8`U?@F73a!qi?4ojaV^zZh<>XOYI9Ol$0T+7`Ts@kWB2 z1^(?Uq2(GK&vzr)?t2%lg7?osvQIbejjy$YSWY$b${TpDQ-lsuGRF~`SDT5>)Wf-6 z61qtE3-q`y2gy^=dc@MJdPUOqcuIRXwL4bMfTj5f|FWf9g?fLMglopm{^4{^7 zC=4?Qp9bN%Z8>974sIiRxZ7?;4PIi}x8!0r6`p!KB5~$~Ht;BnA+iZI$Ql^H)_e2< zCCr?1^DnNtYOj!G!VGsM=ptlpV^HpiNc%C*Y4om=Z~2xy!K}(nyZPaEY2M3@4->r` zR4$1KM$~9ymjI4N<;RPNP+dtVIZm2M7J_#Mz83AcI!P^`EBm@hRnOO z?Ddz*)tG0W*DhwT!#9~hitm{ep2iQ&jnj#*ZChCP>Cd*e>gr5i)fsNqOiasI0TJd= z&Ilh{5>=^ST2@7|rjRvU&NPRmS?2mGmqZqRO`mq6nAczIFcbk1kS5FGOXga*?Uysn zcwBxMd>hfDB!)_l?~p+aRwa=8zK}6y@3TomxHfC|xa9h@OaifFEU@)3LK<8fL>u|9 zi;~Q($MkF8nWvxPM5w)K26XKYj=dZrxNA1*RLStb=~gelBlfPp5#wSKi((FnGFrWS zzEuIgl8KsK9tD1>O|{Or&;px!;E}I7^=YWY1l7|cnfbx@sc4NqQ4&_I_i1!^hCAK5 z6gP{;tbu<}GyBq~6HKJ5=&=>nAJtCpO6~5GU3&~3tpzbz3H&T_gVd&gq1@RCj2W^^^54lnZuM3kSd$t!q0bPeo~cbkVnKt+N_Js9lrpUK-0Q0;Cq?L7*evIYx5Tthjp z6tG}Sx5WN;g-owCNKWBh%?AMzbX^wQa@Dv>OkR=Wl@@YrApPwq9bSG+4X{ibSVmWl zckGsc@0nBVi&k3jU#PeLuAcgszwk0Y1>^*P=X`X6A@!#HcZ1?} z`mbg&f+|nMB*T|a+3t-V+p2?oe7}urQu5SBzU_7_a-y5eOa>W2 zWg`6y9B=b`Cyd`#UVxw`q9Dzq5o8B75h&+Of1$cPs8EwU^+M;yz0zdhzxL0 zTAaN!eRly#=6EBN&$ZR*#nud{U4j@YEn`+l!)%KB^sv0XT|H>frm%RG& z@d5a=&udE#OoY0xJ$pH%zQ~Y|)8QW~=FZC68SkBAw%c6bN4Na_VNUN4=Lv3s<11E$ z$kVh*Ol#RpIRRXe3?eSlRg?nd)2v(DbgLg7K=(-rDUGk zc*4xt`|L`vc$QRWSFT))Pni?q_Eo1eV;!V9xu-*5$Ip2sG)CwBx29>>zUjGO zV1M9Cvf#Gw4MFcmwq&E}qEK}||*D4PuqxrpPKSYP#TnI?8g6uSyt z^8|0-z21+1bEMeEUqb}%S6+rfHY7X#fxImcxCe8H3gcBl#whscKtSrzh$0W{tg@;+O zF_ySjoMqYVigJ~1Ql|LhYoar*8u({GR7izExmfqEhMPd@d!!eF^x@v-q1#5JKiR;Z zba0<`WODNGIbMZDXc_CBxe5~k+658T_hqS%mRpz7=!ps`;ThCzZZ?-Pr#~JuDxVi( zo>hCnl)D4zt!)Ye#xpL17PuaYunV91QIIR1<2g$?zsz+GA_gN+@f6V zK+oG|*b1gBVp1wuV?>8+|BsB zfQ{bq(y#D(r4SO1iTK0|0}gvn$y+h{&!P&W?zd6mQFlFcyzV2)su7vDSfkBH3RL4F zk6{+jjJ4w>D>r;PjjGy+Uxz3+>9W;>J*E&$mVl@gl#RG8Y?>ys92VE#Ifbwta2Jqf zH=*Bj0_$I47I*Bk|wZ8`uhJkmdM7Dg^7Qf?J=55sqdai(0)% zTZ6CJM!T+rIH)){fH=s^Fhd#RqO#U#CYn+EqICZQu4k`%oeBGeq-pi3(dR+%Awuc; zGsc~(5F|J?A|B!0U%dcGm^e>BC@OcuX4&h_NAf2$OGwR7)c7OvUS@(i8d=$phuMIEF2g(*g2A90%MYN4XFqQ>4Gs(sqrX4;(?|(4N9Ed zaQU+IZ~=nbZcpcl{T+g+86;^;diN12RR#i|ZdoA=+J!=w5{xI%**-7#`Tu&D*L5Uj zCUCaSetl7}3$gTJ28nU6iO9&6S#{OmhRW3B?jd7xg(A?mB<56LsFBFjjJNw9o|IIg zezV1J)pJwaQB0W^k_ywYSNplHu7=lFI##8$hpLx8?_TVT#M{p9z@gt_|3 zZP|GK>AeUUQ+C(TDibCg_KPkDz@fjCBO1OwZ6w3{K5}FC+z~UF`QauS=6N5ZmYboJ zMuXeV6BA}n2A~A#**`H;aJ8)i*KK2GlhI~f-8ATxPvP<1C7+GuVhX{octSi%YQ*NQ ztG8M1qc%(?rH8)>qZ?djJ(F8Ohy8^pYkK`>kXhw0k6DmeO=Xc*l*O@Jx2m`@mv&a9 zC|58qf60d>Te3-C`7wD`*sP`DZ-bBH|4zp3O;3r})ozX)Wy{k2ngrNfXN44y11$>h ztmCV(!rAF+Hosv-eI~oF(E1|9=H%@2qnXT-7pvJ@V#8uDB9lbR(R90ZChv8k3$ z9%gE5M${P>UwzCyycyIxf=|n!)S*%1*f^xq8vXg(@7g%0esh5yUjL8k9G>-*N?e!Z zQ$v{ckP5YlB=Hh^4p5JRQ%rX%Vo!wC4O!ZZVRG68y;gfNK`K6ljJg1ZRI14-uwNwWB-JBT<&x?Z{?(Ar7UjF5TD0uIMRK1)LgD+wJHrc=hJ)!4yvh{5LG-=!XLNdwc zLozn=TqnECmxVLUqBiRtZ|dwtwa2eQ z&p4h)WPCE8;d@40Z93f+ybBO)g0L%Va!7`=4z~h(m;NcoTaFCi6JDe@d>N>mtFpzU zS)-_&yF;D<%n4Gph&4}Ub&=cOdB6)85Z6>Kj(txBz;a>Wfe(J7!v{=S4&+9XB#fd?tWr4d6w#4Fn^3;dRjCB z-LLUwJ{{Ng4nW)@9gPcUiC&?(FY(tN$t#7M*J#IO80QukH%v5R zMYby!<1JW85N9X|CmX?ja$)H`W1Jj8z5KKCX&UDjOX8Y~h}xP^L=e7UQ!J_v0-6;X*c6Z*qjZ4VQ%lzBhwMw~R zVy?#Ur?e~I>^?x5>@U8x%@GBp!jM zTF6ZuvQ_rS_NP=Dv;6FHR-H!_(lE*Yw_p`nPNO#7j@Tv<{0T3KITabsu!eRFTI?j- z5zFXSqNOUHQzI#6(O)a2wJ)tfR9a9qbqu}z-?QDlPup2H$}1!*K!(&=JKp1%1Tr&q zT)jkIZSu*jHyzz-^ip;2_*-k6Iz{*nsGDLg&%!GsBJ384#LlI}o@TPf|1SL~jr<2c zou7j%^gFCLx{@k2IbE!?Mo-$VSgVfV#_+E3K zvgvyqPZR1g1sX?3PJQ`0jMlQiGd2ky03zVw7voB%I5=sRR_)?gG|o^d8GrOFsswM! zp?`crXonTaF$_O3*$H8sBH{%=_6;ArZ0Us%?WZc>_DyXE#ZArcxydfXzE9zE51je3hpx)ZM5-`$LKX7}6jKg(s8S z&EfCmcV}z!I4D;~e8&Qr`v+>`ZM2?wO%l}dl3Dc@$+3~*NythJcpfw=G=mc3m71wP zy7ug9rZ@@J$9pwv3&2x+YS5!46b{p7JA%qCetHyahmDxLu7*e&=>i|<7Thva;V1odl7$YXgIyIkMAO2o3~8)dq5kB07PZJxQ^?T@ zg)#s1_6EF?Rfa5ih+U&yIQbQ^+|`u)ox;IELaDjjuGe!`yz&3xH3*|IHG#$hPrfXm zgyJx_?VFT7m0VmF?YtC5jM-i0+#HWkXO{41lx5i1fkrDvi#hF+@ZrgD!7b%3U*bP+ z=E4Y{+=}b{oF5}SuOFXSo@BsXcSlHN{*K{};`KnX-PUz`N6^>Z+b26kgSn3}o@NX$ zH&3^~-Cuh-Plb`PqW6Fji>3Z|#Mc4|cRC%mm?EbrQ+ ze8;OHY7=s@-?o(U8#!aoOVv}r`QOccwWIZd2T4FYW(yv3Jq^m&vS&Semr6JL7wzXd z^rxd4of5Xf{vu=~!kO3;W|b5A(QT@h_UC&I!OO!{g^sfs6mU15tXmulu@#0B{3fa3 z)VWU4YLp$l=~n6m&Ty}@laTf|DazytJG1{)9@2mlK)bc zYWjDYGXqq(t82&~@+U4Xqpfp3cdy`Yx4i5uRE+cAhvFu}5*2N>dKV|&;)gQnKz$Q7 zDp6wvysZAy$}5a!WjJE$e9ExK9;yZRMR;}S91hw>mCuu^Bv<(OG;%G^Z1y9!QKApQ zVkQp{w}O`w`fi)267>_EdhfvGsk)n_Fn%pU)ZCur8aWO1zpZ{-hZfi=1 z!to~KxfPl-f)&{ zP&kulc8t`*jp@Z!+Z2~Ud9lEMM+TCBriyZp7bY+=RDXILqn#h76yNe{ev<<1FP3Bc zy7q8oT5VVfP);c&PQF&i8qoRE_LE7a^t~0mYwg5z)y^45BvwQm6?MLS_?UXpCU+@cRR<-eCN0)_#Ap!nkZ#owjM~ z&A12s@AzsHyL>w@n)Z4`Cs^)TdIN1~XDKg^Iqp+@7P^ek;sZ$a-uPpBO~H3T>i5W5 zOvxS>bCKNL-=Atun;(7&YVEb7nlt-A26@4C1m8`W_C1-CMg2UQ3%=)Fckr~cnV{a5 zCd$%p9n&~tZPB?@6sDrxlbA#u$v>11_{ogj%ucSVrR%I{PXTs_7f?}5^ zubFm7?QR0AHtc(Ow1C}@fT(8t+J4>8@EVK$(0)T_Ey`>T<5|vC=8bjhsb5w&2eOec zP^tk(yB*iOmKDJaF-fEa<3BZUh31s@SPdVKti%;awJEAA8$)uN1=BZsc~l2%(>SK= z6`2`TFZ}3hr{AR&X{#mj#7_^$-%7M0RDBPZ)GO8(WbqgJw}AD>dST8EzRRiuOBpLJ zGRp!roL(*dmhIT$4eb)>&sHY{YuELDOwKs}ullfG*$1e}I5-mf z+cdx=c-{{6#IrR2^5pZ}UwDh4if`@Z1e!zeY9@L~7`g`eNia@85h!(5Kv}_+w3rI3 zg}9*S@%QX#(}Iv6E8RE@$iljW3gVQ3ED>>8GNl` z^FKTknT!;lx+3s|XYQiJ^{h(PFTMR+3D(t0)@byf=LRZ!(0g7H!2?gx;CHiJ`2~Jl zQ&cI`z4F)X+~W3a4YhvW^&f)AMyAF$75`mJhgUz|7p_Z$5oycr0VKboS5xaQE*!U| zU;O*7C3(zmviZY9-H2`9EawKQj)j2@vw8oFT%6{N-?ewSvEQUFVMCj~+?U@j{IcBEv{>p;H?|CK(IY}pjrEUL+-5~z(Rh&XB%9EZ1)+v8Ou3p%n7&$PJz4)}^SOoq zdQtCc7MHpZ?fNnH3N(8KN_CGeJSX9I&}DL}UsM@N=rGy3PscTMIfcx_g0#F38}@NU zYIx_tWf&d=Vts|c&+!VcZ4=54jaa@#P1Iw^c}t+AeMYSHt`z#;TQv*!j6aguQ$v;a zCU_ah2d9>Y)2r4Z4~nxFRvx*AD`G@R?L)x5`A)rvn3sVGFDX{&byU#3$E9rx&FQVl z8elfB1Q4c28Bv%c{VT#HGH9;t3^}VgF0$gFwA3{!m87Fzo2W^2y35=(s04YkFs9{4 z4LQIXO9{=`PQ!~`AStD1e@S2p^bR<3GI|Cu|O*K78-um823 zxG^G0V_F`}FNE z*}|Hu$+h)wc(v%t0E3RRFtYV$zMT?GR*7&z;LH{2mld!g3a5gN`-<0@2|5M${b&~2 z>EkhX)qx%XkNjz46`{Nh#VV(gPT(J&_jrLydhC@|+%-_Yer+POo&ZXxGDJUn2TMb( z?JRG)|Eg3xog?MW)M?z)@a4&adp8gLuk8z}Y>+%o*Z%=RLA}22HsI>AVZB6t4U#D~ ztPrJ(WjeQ<+ke$N-tw=0?8km8dX@z4IE0HNaM$74XP+HTCVJbD^ZN>^D6bj0uZY&U zuoB=_L<eRvK*~w zM7OS&=JDyw&h04r7#J;A-W`+mi7mbpeGdHoNPia& z0L|(qDSi`CrqWO^#Im1`0f(=H4bF7=;y)_Wei{OSI}AZE0(TXdT)gHj4?mpur+;FZ z<}adYx-4m^doH9kN$GEKjY!NzYrS4cN2g$*71T;K=At7LmY#}uXe^;-a4?b?F_~T~ zWi^T4YdWli4C={B8`bCDK(B|{jX~I?WUi3D=ZC2j^$2a~T@z8Mm8D2+Q&`Qg1#41L z!ck8-CDhJgx*zE`){awmK?m(b=xo$!J?CCM@GkOIIKb}mV9T)S!d`0Tj?n|>Ep;2Z z?=E1|oE?43c~x#KYlM_YFwu~b?i{DXu@~i;QNE!hX5rW#duHanR0Dk|!T5o37{{{D zZ;dLSfjbT1A_?3zc;@Oe!F9aE80l9o923j zZ9}(CSfeP~BI|I|Mw6H=pnR?C+rjqQNv(-tFH}%>+&0P21$<6_5cPPWv%DHVvUdOI zbtkwPC#mVo9yj<7+Rxt(`~CfeNDQ1Ug41LQg~eNV z;VjDtapj^mE%R<0E7u6Lc#9@5oPFWh@6Cw$h<^qa(lP0GOYFPWdK&2n{A3=ZART%-JNWGTOUne`R)%)RcUHD5~ zu0Lx$Shm}Di&5#<>F#Y+aBzJu>+y8!QN3oiHqVos$!yKo9D)dDsX>UC*fp9A>0YXa3CvLB3YPH4$j!%;^WzYrDQKmR~|^ zw@G6%xY}mBj=H_7U)cJtqbQl|Tr+;%aYfUhU1OV<8u@_wUCwZXVR)jv|KfHSe|hu1 ziy!~k3m?l62;AmK5D44_81K9GPRRLN@;rT*i)gW1L}D+PToe*9cOqyx zMBZPdOFgYH<3n)P7-CN{s9XAQx!#b{+4;~LFL3{bQwXwjSDT`t1UXxG(i(tJk5L(b zEnPQdK?A7;ZkmLUx--M}ACrkRKpFvi**q3u4cuW>TFf4FQ752;tc97lCqjaWh->?<)E zxsp}ROafEL#zJfddk*=PPj^L4o4-5ncYolW4}8gE5D44>h#=3v9SsiZeC^xsxj4O? zpQCwsH|?i^rWr`;T-Xo3{qUzn13JwrTac$(=^AGtStGfIFnTOT4V$P|smcc{u8=y7 zpbgh;ThNSIGj44mIzwKtR;;qjm9{mTQymx*aGI)xtd%rvKAA${=OAPN+A^uGXi7m! zx;)1!%Cw}hle!JbGC{Y-`mJ6OX*`D1_ijh&xr%vp?$Epx8eh4zYuiz^o?}3B5z)bQ z?Utdl_oXT`byZqVL(5j7_Pxt-?TF0K=4I=;Djir+ig1ZCf?Ax5yRQnfnz*F+RKBLm z#SQlr=~M8>%EkO1jG)iJZH{n}1ny{j-M{yq$CguiFVgZIgLec)h!|f0{}XA2z0KHel(jpn?Q%8gMn?@dTiZ-5!W0A;m|?g?v!qm^^jHzQnx<< zJd9*GbSk0t4ez)sL-Qlw1s=Azh$Q3zn)@Sx23Od|IRCOt8$`hnmxtz|>awVA zk%amh>^(_0SAJ*r2BhS18)9f>U&-S=fXsU9TslLM1XpvAm&$t1G4lQi&a z(Z#7yf6WQHEv@fIRe|a~sXOTIWnHL#bzK9k>#dx3HxFu(Ey#7Y>v5qFkB5gby*M1f zuRi|J>wY;puLf>cgo`9_$Ks9mJ^9Y^1O6f0FVE!NBn`~GLn_BuKvgal)!)S}($Z1S zRNSl%3olLGOZuH_!z6ZziKq;tTdo^2*X?)3vQ~0`+r3y;-9EW#I#XqeZ5Q=^6#%o% zRtKt!Ohj)F+7GrtVj#?e!n{G!OL>pFOCc1z>Of9Xlm#f2K_L=N=h2ZoZ-C^FOcR2J z_O1seMXWOKi>zCEb)R&eA)=w|J7?aK7anU_thyZexy#B4{X(^SaFe=ZYw`z`tk_-& zTw@`>{uVUSJs@?P?%7CQ+yhMkle!pAEpqXa%%IKE$`i-WrKlUiK42L)-(4oX`0!h< zd=h>b{v`wgw;@8o2;7nQ!+-J*KZ^VPw-iG0&Be$42<-NzSj;dibM27o1OvN@oym$J zX^jhjS_a&w)nGog&1q%MsT!Dmq^kqemUU5;1?;RHV(rIaSs)%@;N$S#!O+PORe}KZ zUg)v}bzd4R*#%arVz9~t!S*@X^2tA=DHR;dDM6g5DhA-7L7vPi%5>r&&oZ(6vaotF zl#hcb7u|C59b^+a4~&#xs`?CcSr=8iaQ8|+jGX|BvxIiNn}^0~iuNi*w?3`5(nuZF z%ibtQuW)p{(e~;0uc;*Ucs$v*YDKQSxFXV?3%hYZ3CA*F+>Yb%*FW=3Kk>o~FGSbX zz-@<6FamcZhWUg`fWM8F{A#jz3$(yZ@_37^k%QPp|5sOtTda;;sQ&Ish7Xdd##;1t zuc`&GVgoA}c{sZ+toTYdsV@+Ib~{z)H$KseC9C6tHTjV>eF$%7*2iOjjj|<6#NsNH zBzRngF&cBJD1q@*RVPQDszTP4b^uW|a+d6u%m=`oIflHt#^mQ!^&c`-gnD)$F{-sH zsr_-aN7qx*c5q!+*TAK78;WIKJm5}BOKUs4O$f&$9id~ z6DhQ0c~3;p+%x%5)^IfgU98fHcz7F4#RBY-Ua1A_iW?2xp~XvNaf_%6PRool@g+%L z<>eNcuf1`WN6NZynTF|WAqYm`HUvT-a0lT}{K@AZ-p#vb(#ig>P;rao-40;Cm%vVN z*NC)Vw+s?aJGEd>s97XSR}LH`%Y-`hqLB?U7fIFMrA|gKtXH+bEM6axDf3+j0rgi> z8@9_QqXFjb*Lsk;ui8gs?J#gxg4y3@U{PvRco2ZN4pNio^~iM^aD@E{C3eOZpW`y#BQN*78XsBPH3b98xa#1kxe&u5%IMeMxgTYcPiwKjxInRH$dCXk}e#dZZ{X+o=^7w_Rsv8 zABxuQf!hWVgAur6@a)xRxA#n&H&dQJg1h}2!7@dLS>L6Q76<5c^)6}*hPy?&-XgSe zm$)78zMCOZo6(erZeXu4g3*)=gjxif`fpGpG#is3Xp?jmUJDOAC7qp9g~2T;_U;bb zM0NTnJN}w>O00Z%%!I~Ml*7s&RcFqdpgQdcGz&f;r`5X6SzxDW_7mcu|sV$?)S1ufFFi&5nTS1xE+ShWBt z9a`31*q*Z2iZzcVS3AD|R2P-DLDfK9kA*n!EZyu%ABM%OuEOCeEyklc!?2^7Sf?F+ zs2ixHgIuN}b&u$LbD3~!Su{6_oRcw8R@ZRR6yRwd^LF`$VMqV$#T)4RfqF$lHg#cHRuWM;K~S|)<}q}5IosYB>hZS10Q=mA^o z1d_ToOnMoHuC7HP4CCk}!6h?f*dCS7Oft$c<5(6`g#yQcWZgFMCw2#57nhK;kqdQ+ zz%uO;%tLXc%u?NwT@BpLHYZ*VRk2y>*q(%KXhaIJyM%9wp1L()@4_*lXCa_Gi8}7U zs*Sq8x+@1aM;|6Cmk3&HMmt$2L5*B^phz-)*p7_s4(Iw3MN7PN-3%OiVXhHx#SUH?Tmn9q zs%mI8PbUtDDW-fQ!`PFjEOMR#7d_69M@q8}G`0f=IsEO?fkA+gSa|yv(-2Yb$7scd{NYl zG!EhpL65;0T576Pr^I!;BN2+0rErS{f!~>6>~~VSJ=?1gj&iGJRW{1K%jHG0DjnrB zmUkkL;o$WPS?Oasphm6mSE}(d>tsk43ss7?l0tl9^{D7us`tJs4c(nyy6F;^ z1BASYjwR_F^c@!MNddC8$$K2CEtt z<3Vch>xEh71&7Qep`2zR3}RrFJV2gitl3`W8T%I|sZW1ZRh2|2Yk<*#rAkRa>Bb+uiEe z{cm4WXY9J&`^Ux~be9AkDd{Yu3qI7h~` zZVQhnM5B<6;rId!N9DbIACAg$n`0b#`euW}rYyVl?^_QDEv^&`3>`+^t`QhjK8lM) z)elSQ)S_HyeO0~aw$`kYw9du{&_h0(nA7I2;$k`;cQc@+^7;+H{>A_tkcT$Czs{>^ z2Rmy8&9TOG_>Sw#_nul!5oVaIaFqKp$Q2p4(+24$AAb1tH=>Mq;5;J~jKFP;7ssa` z9cla$IywDfaeHJ4Y)(`zWSjuOpIc&4fQ z;cdHQxsIrRdY?z#CUpi?CLLOk7019$;#A^g*vp}_i-h-G?xfs{C0TQ@eOYBBt!u(;M4Tau%o{`-(#+$Q zU)ru&>cc#3TJPn+j?D2j%>+;@g@J{A&`s~d0Ru#1f2}b}4Vmdzl4sFsV%QUh-rI&) z(J9lkNNQP(OWl{bDLqz5^S3XU{?a?&`RW&c_=n*-1On$2K`;WhEuMe=gGbx_=F2ip z-v?8X+F4$=)YRH%WbrcKi%H?RH7n~>3YLSf5Qah&Q%mCViG3{>Z}Ap2hgk}V zr>r*MW=l*WScMobUM$3+s1B@3lzHRvv8oe=c#KEK#Z|HetK=!Eu9C`XStUj&I%fk& z>_yHJh+7uj7p|eP7iqJX*o~26G1xV*IfaQw^ZQ*{aR*-BJQq(`VIee=wpfvC!kme` zNSFkCS`e#VA=ILp*ot3Jz0mb0Qj5B9zTqi38nD^ljPBldY^72XYN^7cwMH%Y!!lB< zn@lTw)|kkN(H+&j)XW2M@O_dGM7jp6Rc*8#YHk6T@Z4?@55N8F&SayVxy{t1cwUI&^{z} zAN@3Qi^wr}r&U08m!x%oXk%|Z0j$Nf>=IMY8LA|KXT_rG(&#T4wi~gMk=DTa7yIx1 z4eS&o@{P6oX0&sC!>K(??E&a(WVCx&_+XKm2!H8ozTvC><&XZ&zkdROz&S)H7=har z#SW$~foXXY&iQfZV=er%D->NF44}NKd!Yu(<#cK}jMT{x)N&Y`N$3hHRZD|wwZYqj zR)e-1WpRJ zTPki26ryo-q-m+gTYXPk9FH&3uszm-TD&aBRiL>@xTqF(Bu7a=XN$|xrdi0J)Fa{g z7g^I_ML8+|E%Tl$uws>d5Gujo;LZeEoilNys8;sWdoL~--bJpa+|`__A5?dRgrQ^? zCdiK0wWd|w3v4=*KOP;KtmLM}UUV8$C70bjMz0KO_u5K_tEvVXC&c$BtNTYua?(=w zGiTS#Z!Fj9ji=X_FDOfY5(0s9h#(k&+Y(o=J~P}{mai{Aw9klZ#QKa#U?=oNwWLIo z8K>M-ir$%S(`wElWH%$wJ2kKkaqH-n!w$$TjxMGBLRxW)N)qIY)yN<#prE}E!H>jj9iYRBSF>5HcYo z;^+uBm+#SlP7dJQ6h-60B~c~gU#tc}#PKue1O;ndMIm{Bc1LS-L$ z(X>>4U&=n_;_6zaQ<_gy5m{Iz*_30saZS!(NqbQ_UjVGP`8z$+7!p$tz8}YH*RGn^JEcHZ~&5q)N7+DptOOx;Cj>M7OQQI%pw% z7L$@@yK~|~qG`HNzJKL-Jn#ki2?zwvA;Luxxb5(fs~@>c%RS#ryZkL_UcM0L;-#PV znlVydDeF5}BPnnQ{O1kd&WiL-EaAeXI?jlt}6jc%|Ym;SnuwSnt>9e#iN zj}~H4JsZ^}W=kO++-T5~t-VO-fR3b2?ILLI5opg@UACNaw)@vqCsCsAFLNJ$@9%im z|N8^)y?pJ37e2O*Yz+iH&jk5o;g|@!`iwpBjkD6<}^Q;cj=i=z{CGdS@;?R0_O-pFaoy~o_p@O z%{Jk(W<_9S0}(!32OB&s3RNdtEf)&_B|6&H`;}Mh-;|IMV+8B z_u()Y8YOX&qE73JTK7uG&Ctv1P$@^x$;Jq86~cuG$YM;5%c!zF5Wo) ztL53h9@RYq=LtbD0=E_J`+}lcoX~rRllcwOAyu+PW_G@p*DOE6Jd#b&YF;qpd;6vD z-n#%!7cg?mOyIRr9ka?(2isU{5jXo{V`KG=G$v440ou}RcXJySua%CqC_-lqi4!1a zAy~huc96JElS=d2;gqD+z&Sz?jKJ*# zoNvHWW#IOq#9dP7re0Ll!m~&0JN3#2`FrkSF3c!Fu0e-l9=f4*O$=B$N2;RHbZ-E2 z=T|CXnIgFvU2GL6+ZL%S>bR09dJ)9-3(YzJr;nQk!e8ZsO7y! zt;{KE#j&QJrVAHwb9_0=JgdT4NCu9ZBT+i4dj%!VLYkzh-NY`op&3$FUh1{$bQdo8 zrCA@OY))Mo8o!Ezsw~Mmwkii8v@+XL)?#-e%7t8NZelmjD5;;Dyg#@DL*a*Ds>IlglDC+3Yx5LqnlmBgU`k%pzor((migz4&3B!uRiIsLyd%( zf`Q%Vs$y9G93|5BJZFzNlBRJ(xfAayr2BQx{okJ3Kp=2V5DG@%w!y{Y%a77D7lJ`= zkU%$6F8V$r8e0LdDhm#4QgIXe&`oQBovsM9WxBPf2778XX{s)F>I4nRoLK1))D#HY zd~=$t1^en*fhv@n4Xy_X)dgX(B9dv@4j9d_7x&0eNr5cKWPxin3AxxDu|h$3#8o*j z5T~f7&9>O|W3Gjvl{_~b*vZOA(yj7mJraw=w2GN%om*2YppI5-6k8Z7f+zQCmS{T{ z=v*lEUSM&SsB0r{iWHGAlDCy#_LID%S=u;r`EnBXNHM}`DBE2Ij?R$X<)XMq-*^#93R=0PEQHioNcKDsR5um1MQi9rKg}+VKS$uL-<$ZM1VfsrSy}Pg zM~CAu&|+yMV`_P8S?WiRcID;)Ob`g10|dbc+&-A|Hx0}3+tS1xQ_VeM>8LgJG90vr!ICTb1TvnhGizAW|SpYFxnP_?RT^^uopRS%Nyb zawm;P7bWmhnvz*yC?{PMl0h}YBWaDRp*DFlFAnwXUPxUicDR_3niWOq0*|fmNG-Uk z$`aQyN0LRha$Zs!L02fM2voQx-PUTxyGZop8npNrzaHToru)vf6BW zPP~r`VoTZhV?L1RSTP+4wq@nq>>G2wI9*UoyLb` z9gyn6jkBmNuEXwCh-k5sXpEzFc1>mq!D2DA-UQc@(ApQtQc~3oQrsevEy7hhEe%za zjEh$8n+XP+Xe$@hf;V%^L`6G6lQXa@3Wk0S{d%B%Z^l>yM4b`xJZT!rQI@3l#g&jj z+&PlpAtl9`KwM;lOOu4#6oY$u%;}p(YO)j%QyD@JxyGefhDgqC_NzbyUi6fRsK4z} zD9kFRdYlP$H>u;0uu{U9DjDf9fd|@Eq3*HjHewY{dshi%CVBq6FA{|+)jhMtBW=?c zmhJy`2!atfCx{q~z`4is&p*HY6#T;L%jolQO-;>RZ;@P6R4bA2cniqw_q)!MFVzS* z3F$HgD%N!-a6PYnA~*=d=wJ~W2g=9c@`#<-0*zGE{b0XE6*69Fo7n$l(lJJ`t`~ z@Q~N4(AX=PLDyhUjG^&k72 zvbqJ--@5}ks!tcK?#Ft~`mELGz!i$_UiPHem!)O(%-0UVwR12%mY3y?AO52szNZlK z_-zk--Vq8$;M`+*aM^4Zd?!uwW4Pq4`=F~*0TyRr0iAt8BkY4ZiB`(DbAzT3m{F(( z4ywWHhqA5hcT*-hARHJW==2AGnp7diH?6ZustK;{1YGsQz?+bs>XFe@PK1?dGoOT% z1?TFT90bXQvY13j{6$eRjy7COON=v@0Ux;}_oxlYl8pG-OQC6~$w@|)R^P67ad>uB;0s z?$A2yt**o(3WQV%O_?1eqJw}{;=(E@IN7mN^V^K|%*-{G(KAr$GgY69469oJ{tPwG z2Vi%t+->5-3s-&?BN5%fxZqP`ko4a|InM{n_t#%Z^f183I1VFHRs)|`1i=WLdt8DW zmy109`%+#WrFoWSPh1W>d2=%#)sg+sT3{z~KwmQAVL!@R(8y9&(W3TqwS&;S0DUY* z?uV&vPpDJ7>i}Ih+l_E_8`O_vTS*7dDpE}>r{0ih+(H}OgH|Eeee(t~wZKC}7edsa zOC2o>>Ksz$%!*;7>84V(lV6sN!3w~zJ;tMp7xgof4y~DiZRGF4o3+HYm5C6WjP2S8 zDUi?%nPA;KjIdF=EVcPL)_|2d>R0zgs;&oZ;F2|}GA9nEC<+CyKa_Pg>@MISPOg73 zEws$DIf=@&;!g96xu~+G7g5iLM(J5k=1~!M3>w4HV@R!S86V8xq{6srB^RUty+SVt z*LA@Cq_HU+O}(&lw~e&)XP2m)m88ahgfOu`ZIPaC$w&qlAS?3DJr^$>KX*#|A1aIg zD+mNWj|hShIM?|8Kl}Zc;M2eQSc2sXiUBx+r3G@T4d~)6Oi)86r|>i`@#`#H36lsXw90M|F=V+h|AFXH;k{ zjK05{2C~%AJ?a&&w8}#wEU**J1(I`R8n9*~WQDstGi8vk(nzT&8Oz9hRAw0WTyb=Z zb0J9_+{w=g6Df|-V0MyoLUK;S#V)96SMpBIm$Wn&^nt3NmjgP1AyYkBIJ_uLTx#EI zLs@L+sQYaSNNczU-O~hG^TPcxWK6bGG5FsFCW*z^EOUMbz~;Y(K;ZL?@Y4m(HPW@u z++Tjlzkn8cgywwQ$VE>q2%5{{CPAH*T=eh#X9b?wdtX_xd#iOd;HJKIr!{A{*1xZ3 zuTvFmn)jkOdtkm&HTl@lnAF8Dm_DNVhBh5TX^AfVMn;XdkUAII_)N=wd*-RdUqI(F zs)p0gQcd-GKyJoU4I4$(IyF%E!*<_jl;4$^4xRJU4%g3^N1iAfpd*{UY@3u-c}^w4Hp$+x5!X_NE5pU zJjkv7+ApvQoReCPtWapnYgRJQK0CP}`|JLW)cuR71M;(9tGB#ARvBYsGa)yzHR6@Q zDn|fdXH8OboIs5Ts9qLKxQ=~P+8}NWku0cc@ba?q-H6ugj7xftTJC$}MYPNiZ;z6^ zGs&p^MN$ju#8)th*jlu$X4)~ZTSa3wQr(6nykx9Pt8$TZZe%TaV5bc4n=E6?^C=IU zDr?2Kq|)dp@gz7N7m{(T&Dj#iWN0N)&Y+R*t%IFkN~wBixPVcR-~>DgL%YbqYwyu z9uWj1aBe}Gjrh9qJO5RvKc4F!Rk9!3zQ~p<6B2(>URb1ZoFpDYB;=$n5lt8L_uOm^ zx}>jYnm2e^BWQ-+vKzW%&eB{%<1JIO&1=WK?WdU@Ia{!%Yh-G@ga#-HF-wEidfcKt zivh1JN!gF*U}7DlOQ0qjVo6Qq7pHoPK}O9YvDfIuv_>T^CRJdKzfhZ~Z9{ZeZ6&Qy z12)N22S0POgBmu09_J#yljP;Uk!prWuNt%gyLKu^sVPN%-C_PJCT|J@K}t_ zz$HXzwgS(@MwmfaxhFbh-#LoJLsp3!)B@#PhvaAc^4LDQOTsE;>5*ClLgzfd>Q+FD zw-^vxEB4Js0y?E6_{fu)B)&0n+(iWlf2xDN06)ba^X)=46Sv9XEj+CFkZB$KQ74$3OPM$1(&0p9h43 z5jeMa>80t(@|*coVZjeHm7(nl(#_d8j;VK>x+_o<|jW{R*v-VcP&?sv?47&g>^5PgU%6|{Nr(q16T#Z;XYV!s zqMJ|N*ex@WdaMwxC%^38*Ib4`;PZqa7=d$(@>Bb^LM)yd@{+vn1-~RM4;tCfpJi7r zj8w2{k!E#^m{Os+0a<^;2U9mh*?`{OKu0;+#5Tp#Av6^Ms@mXg3B38K$f{hidS#Yb zmLDo(P?^5ES9IG|EpatP7u9Or$$U1cCP)}Tkhlwv%Rot0B?&;_B3sg~-Hfm|72|T? zUF<~~jg*{?dsO#@kUNsfqA0Nzy&>yaHBt1s>>bO(8p=W|OYWD@95Ic?aWxL9 z;OUMji>Kh&ia}jKti+64uI0fMNw=!r4B8PkS)noUw_v9x)O(1~OHj~Re7m>x8l;Yg zV3jibdlh6lSBJUoRvAxFKX;1)uISZ46scs6_`+Q#Rc=kuNIMKaP`*EX>H5*@ArSaH zA<|R>=N84peHktEsyu7eLbOItXcaoK^GWAgbZaigW0sf;iNmO6A^_?TQ?{X!fqO|n zJSf@2q#tuBP53$zu(!9scP?#eC>xR|g(DEBojr#P_weP5j?5I{o`<9?@ zOuB+tBY54P#Brt;(;#&s#OU)38QtfaHNwTVhHY7X)C!;IV{@#%PnxPAS6t!|26P<) zSB0|9jMba1HY=T0cGE8r>T$Q|2HCOF#)R%$vF2y)88J5ySPS#aX{*UfYYUmumGs#2n0S42n8c>F2SXa6D_YV zKco**Ub{xHOW9l1!;q9zcZ)1g*@LSW=!!-EnXFTIH=?a$W)~iy&V#06*gS8YX0etv zumGSXxsp?tHdL>i$4f^l%b^2HZBc~XXxU0{cf`VI05$Q&6%{1QAd!;cVpvD6gONnF zXeG4mY%8~F0TeF(qxC?c8kNyk^u+#v?W9^p#Tp2H4VW-wqLmSDqxLqjUEwv6aZ*&( zomB>mHFeW0liKVJjAW!5HG;KiNG~k3JCC#y6xN^?8{&5a*N3SOMR(WxwcAG((K<3= z=e*X@s3{lJeJAQ#x#!w(wNS77iZ}3$5D0vp5CkJ|9)Z`cUAs_zIiD&-;yza{Tmo)c zB<3P}mimBGu2l$ypEe$BxPH`* zzLu#|C-+$-c40NhnXIs!teUGEQUA@*{lv`yX&ti@2;3?J!3dl?aC5Wi!i#T)d3k{5 zRk?RjDKubwg6U5}AxJO_T^@93=WEJ`?wn0YqP{{?Zg^F%KUU>nvAN$pBwfHIA znUVT+>%jA%j5al+luTgYnK`cw=gmN!q>_5Zqchn(QonLG2`7Ri%hBNS+RQP8WTZiY zB8_eED4%K;0zmKlKqD$yb7w{QAr#xYBv=cvJ+5^o{|L(~i$hGaEDq$f-{?$jrLcp=r5 z!s6V>4z-e!)nB_dPGnNTGtXE(;r^==hjve4#dGbEZaeLWn*G~g!jUXxwJ3j&mW%f_ z-}mRf?>L&D1wJ2$hc0mLFg*D3g^{LbQl<-uteI17>O}TKn!C|3PoK*VucfQD*hcU% zb+6{jd@EQfuYnUQw9kZg$gV@{`h(t$nET&-55nxtp8l~NVU7H(sg|8DLU-lFht?jB zL)-0jF)9J@<#ek(rNYjAz|GIW3|%4#BGtL*@uuj(2ezU{j>xPG=Jhd};;Mp{Ysf9> zMarM|>IAg&tQSQJZ+VPJQWwtp+VQ;Hlz+b-wY&#t)liMIt*NtJ7L1%@Ar2DMISz7D zMa9@icU2F+)QjpoRd(Em*R<=7>nd3FY|smVVaF*tJ`2W6{h4d3g^@FI6{OEZX%|Zm zsw;PI4`U^Ioy(By--DBIGJ?TH>0q9R;ic2BJ~{a}_dpNZz+Uf ztf{H|g9%W7l)==CmX^9$11K-UWIyg{O%C*f{owa1Mgpx0)3XH==%FJVX84*hIum1{ z)BB-q{j_p<9BLK6mUi(9Grc?lR9fSaq@7T2i()4RV1IOG^}607F3+#iEW3d`QX?k5 zym0^`ID2i-yNLnb{A%?|Q9IstEWR9w?t!gl1~lJ>pKoO%LOK%1oLGS^uWYIXO3si% zj~uBx>*sakq4T9Qw?$)B-R7VpN_3M`Ub&q*LRB3x-F`^><*c5^?!we#vA|DrAtEjd zmr8y0Zh$Bo9=PQQf)O}(NU$F{IIa9vj$WbAgE_G|QKHO&VjE3>SpY8 zpu6swR#$Mf{5ptKci*>-V?{&VL0$(0$F6dyyI1^@8DXo3kNw>M@Eh8v(e^BDbpt9% z=s4(#7_6yGU9Mi4o1ZiKdeo5#>hE3dNQTzLNU*&6XbT$%1a2{cU#67=G;siG0cq-D4s@RhJ33L1-o%#jX+-UjF<`ZQz7Uy@1Xrutp=7dD+C~(r zTcM{>t3AsE4`ZxfWeZ}ns57si*Ne-34@1gWi4#;~Zl$>OyES~#L{Kf+T>~1ZbFFmg zymkM@g<{FSoeE%{3c0U|yrsMl3Jv;{o+$E?7!+@s)`*Dz2bFPo(5rs%D3D$T!=6pl z>+OHmArKfC2(poiu6Y!8T~f)*ggfdlG_?sW?g4a89bwzZ6k5S8tjl2? zF1o2FH+1?NjtIR$LV~ua4TE($k(aSp9p_qFj6S*S1&zR*p$1;McTj+OnP72dMslXlV9qjw_@YJ}J4 zD!Z%K#@e&<+1EBGXt5xm{K#bo>v59nUGvH#u2dYzK^mCi{sw+}5>d@AuBuj5V7gn0 zN*k~~6?ReU!f25u>WUH}U5&-DXTr6M4E{^d~k5E~@3MDHiyo&@pW*_w3>t)pS zGqpo7!@9El_Mx-xzVT*RJp%#FPp?JH+}}Zs)IdA0^;y`N9CQJz1vN0c;sPsJY(b6D z=#`7+>+r)oT>H=?W9K48O7*&~N^e5XM>Mgvb|^)+#kdli{8Al|gw8bj|>%Mja_CLrz&8k(I3@zE1+0}+_1Wf=Q zXQ_iktq*GL%w=)ZOpe-hgH}Q~yTtnfPSvB~i&hJ5)4>i&V+H_L77oc;%aRjRHKyEA?v(*h<4@Yv06kXsciHYZ^^`nf638pP%eE+syT@4rEz5$7 zJUf~68Og1=ngu~N6J9^)eWvE|viOj)ZTZh>S|ws~T!`2yFJ!ktWHcp=hnYFXBEiWV zuBeQy+&vq3b4F9un0nglm(`7te;*nooiJ_R^wP=pV`b@o0)fCSLMRx4bA_XX_l(2v zsEw>wqcJpXTYp?V?!w81DGk-&VwEzelaE^>qR9h?YDY7L)Tb3_`3m$^pbf)uT~LZN zc)yKL*n>SM^(Hq> z%JdkMN)WodpMD?E5#sv1!0KTF>XZtCUVee@xrROtqgVQ@ba+|jRa4GSLLhJp5dZr_)x zew8+&!z~`qDoM<*cK~ZwkikS z`TeQS3<-1Umdb)j^BGCdRs;uH9hNwyoq;aFv9Y+@R%M^_E z?!?Kj-}-plWrOZm0M5F5nsfkX@3?ZTN-k`VHS+b~DY^MWbF-(YBN?kh??{K;6z~h= z?nOC&daMwm`yddwg$RNXI5%M9QC$1?luwV15+mVC#d@TsK5JJms1J^4X{J>-SOagi z5fA>%Wb@ombP6-D~V030jkvXs)|PKZ<3oiKZ9nAZsL2l zZ73P(j7;C3LR1WvDpa*7{6Yw~~W;wQP+9?XwZYd%LBXDl;k&pbI`yPF8e60K^J~jDH{oc-tLnl&nw9Mu0ny5d2R>g5uwiE6^vBudgV=cPO|GcNOld7fyQ_#7vho;5B5mU-6Ctw5D{blkPT z*HoNuWd~fILl@KK2&}G$afr?#wR-NF0Of(2LNGBKadFpBruA9ZN3}+R*mFs`EMm7W zxkhrZkojIq8Cu_QZrN8x$O|`mRhjr01Om4ZpL(skaH{KOyqZUxbhZP@ym5bX6iS-IYUCFk9Tzu0y zucD635&N;HcV4wf5^{1Q@HmfgtlPV(`ccB5Eg;bSuoS0lO*%4;qB%_lujH{3s@Wm5g zpc-~>&;mv$ZE+_+>*tNKQ$}dppuiYl9go1rNfee4BR9n8tN z+{X*$VjMsF?6U&|0=Ec3FaqZWNaMZbhww5F)_oM#dM{A-y%7u7hx>d$dL<{r**)HL z1ld=%rh`%DudyYy17}9DIMMg(i&WG-~m7=cRDKOsApqZ2}a|L)!5yACHmz9b3oj za4+SBl!hR;&V9yq6UjT@Aq_^=wJDYkXqb{K<8=Etk=acl%m9%9&XW@;zzib-a=(LF zn|#MxK#3jiv#3!ti10Ytd>is9SWSxsOxq3nf$j;avB(*BMS__7eAhBSsPTM5f;CsP zeP8J~kws$6`Yhh+2jklQPx)W&2%ly5-}+7G;16Cw*BR;|4-Kk`yeunDB$91Cc&^ZZZ~doCtw! zll-HEq>Gd<1SDmvI+J~=wCvVx-J1QWTr_g(8ey3w9G2PWzcpDb$&nl*s)?DZzaXsP zQE~7f6Y5XRP5Equ%fC?(Tc;O7$P2|G)oZrXIPe%Rs_|bk^82E*tkHrh4;jeIIqQIZ z7S;Neq=nN~RPnuNJ`=%1J*;P~0+Bre^xuRQxYX2~5ZpE$v?G@zRoC(h%p0J}SU-QU zGv^jo&Io6o>%7JFK^=V}#?Phc*qnoTd2Le9#xIJ4xAya4y*@L8!w7{-X8vIw$5&;bfPHkujm+}`K!gs`Or0XX}46S5+qY%}E zB;^Y3vko(ZsIFr2HrWh>X+_?<$Ps-~Oy?yrt|z^+;t(ZG(qYV};J&ITu#Y%)WX(zg zJgk=)P>Fuh+p*}i=jZf-LKR8u&1e^)nE($EzNR+QzpAd?2>j>#w2A?kFg5MdqN_Fa zbLhPgz|*Ld#K>5wB0H8l55DRTXPu6bqSLbFj92%(>O&0kvOxq`n|U%{n_X?x@aq>f zXUXNb`W4t{fTo!DVyr()w{_`<6v*FcOaiPx?gg<_C?d0XWwI|;US`YuIahd__7``Z zWw;i3R|ivm^fa*elL!AlaVtSWW6juGS0e7iDE!e0>DA{U_^8pa)j3(6A5`yZE_M?@ z8+!%Njg85}cPzK}Ddbh)U2kcI-H6~wVQ^oQxO7Y(dqLOCCGNHu2oBq1YUjx0_A`uH z8DWqd(a=J4N(qrkRM}q??iS6_WqNl)XO*5BmhMWDU%pJsJ7^-CZGsmHDb*^z1jw(> znOu?K@Lr*lg*E?xYw1GejuIW_m3m$n!Gpg%&Ow|b0H;AC(P;v4Xcz;HWeX;`CLMBZ z+{$Zks-VYYn^L&)+H|^p|J3H`qm(qAKUTW)GODarrJ>;kkIENpZRz_4i)l#9C&98g zN*w^T*^e%wogFsy%Vk_p8esqVDt+Fe-y!=&9JYdoq$9^7IbMNV&<9$K$B+A_T(%lU zezLvfC=bXH3I6TBgbsr+Yy@y zNpfoDAW|6eSN5s4npVcI1Cl*a2%Wwj4s|%7hQD5Oh>V9YtH7*q9%Mr%!Y;dp4l;FB zeM9h4g-FR{lPjT|(Z9&IP>73%nwf7ZK*8||bBy78g0dkwacOHgcuc3S@f!R-&=f;Q zzR53{*P%6Qa+&Fw;F9{mVBu(=(d7$rXV<9X;QkR)W8@_at59fE(IBJ7V(lGXu;l4a zeD;xa`kj!?C;-3uiq#`9mX2%Wn_t?pp*ePVven{~L7FCBzk-)fD}OIcmbTq6oqCY7 zeKIdKGO-l5dtTizEMuu{84~bkY#LMzs;da8Kq|r}^kbxxF#mV0SA}+?uUXU0?uNT0 z|B~(hUNH4W1A`xl64N6!wK=DM))tHYPVi__m+R1$G;3T1t$Y#8*{wryVz9?YBs_gU zeOq{8Y(!J|O12EsY*wYk(s_Z9HwHFjoGB?luAfkj|grYJbdl$ z>?O)O@%OPB8-nV~xU?ai)@7V)E<$`u9!A~d9l$h1{bkLQnpyjV;Wmj>?t*T7;Yix2mLR~; zHRWt~o2D5(exuIc|Ci&pV(=UC&=pLr;?TKpNNHT{c#5Y8@U7DVCZY+HdfA-sN@2!f z4nOd#RJ|CYL>i;#o0|=iQSAY+E02tUt_CcJ*q>uK^nW7>v}SV8`SFrw>c7j~)d@8_0*hG^ z7T7!(^=?t>B>=)%du*jlYJi9dqj9Jd<0kvoGovxqu1lI0uXSjh)-1r0O=?2pR~#8P zsJih!T+E!6s(~}HBrFE?j8EI*bD2f_Yr=JC2ByYqG&@3>_v5y+j=Pk&oTctjuoomdgiC zDUB+83awE5LoNt2NJpke4;?F`VV4_A2=L!$_(RVefNRiSI&Ab!G>dtNfd}fX8E%p~ z7X~|*&FXF3n+viC+DtHCnobg%B{)|65n2P=kwv*l207rQ^ZfQr^>~Mg$ zrm@L{f=RB$$4jUl;SMM5*rtYERg+b zoV6hv3GMM|1vq{&#=VZ+J`w0od`kGmwA0OK8A+Q>w>L+{#~8L;qql3!=6TQ-1gTFy~R|e}ji*;YE%=c;8ltV*rP9QZl_E%kg>z(Xy;L)F9XOr+zVO=e0}nD#@4_ zIl<9TGHOR=NcTaKl>9^}ur3{FBkZ6ma;n|3WiN&N3_$nRLCL%zlvl z%MxAL82X8u!Ri(kxdr`kBzAJD5fj;M`Va`FmW@0uu8{N6F7=tBk#KWMWj8w&C3i4F zB0p0O{Ju=rwpDEsXQSBtl3vav(@*7lqBslhsrgrNPj`wBE#6b{OY@B9l<8t0>hG~# z+K+}37HSw4d>rmbP?Ei0s)f0Y>No>l1U<)`EA+hrmgvlouLcN~)!t*5^D7A{091N+ zWWXY4dlgfkgC~{QwoqwjhdBEa0rvonP9cN;pR6u->~TiRq_cVdHakdlrL-N?pDMkFqpOCq03|2UK49RWDtDML+=<;S}t$Eal^=Rra%!sv5N@N67 zN9Me9R+>cBA1i>KbQPYh<`9;@cF8f-eHcewGdBtmrIT2KJq< z%S|Pctsi;a3IHdXeqVo%!qSHET|-pZdHL7h1>oKua45Y_{3}%!BFL*I+V-Oa7@pf! z!^>WoSEDY$pWOvX+khWLG%XSd+l5;wSmE84;+t7u)aG#m0yatD1Imh6`?T9V4Oq zr-$XYyhHgktNcy5Wz0s%v}sv+n&wVP;1T^a;*v-Nr|QG8T@BHQpZq9s*b=sP-qcyT zID@jO(9jo@+VvPE_S0)Q;E~gswd4`KQc)5`rOpUi zf0q*#cW5p!lsx!zmDh3{4~eWz%L+~ua@b-o99rkZhnmntxGC6qAaw|_5LqgCxFstN z#|*#J_{y~rkukg|$ijB3@JB^tf?q`b@RT2GvZN#!g6de|A2*bZUhBCwDqIkq+sUx? z5jXr>mI80+D?DxpQi!-RbM?C)%|Ikq$<@%{+lO)+rE0PluJ^V5I^AN=*!F<;$8>oD zgZpnFd*`8}&D%#@_!mcV*S>`^Dabym5o0KUy+EtyKmR=EJ_ITejz=xcf zNyG0dv`E3SpIBAIIEW^2@3PbTG833 z{VAGcuZ~IL7%c&HBa#_D-X2U#2bo$ihX@-=09Cfy^_w`hL3TWV<^-3r+=(KlcOuhL zurY*y(APfPw`D#SGso_sDTo!u6e`w`L>LLL$;EJ(Y&#b^Rz{3&`}b?zH8oS{&(jrVtQh1qY&@qYAA zu|8fMs`>`P1Co$y(QC)^_Je_y4F~z=VGM?H_<;Vnz`@G&1RMKvd=TzQ{j(GLZ&L9I zmJ%v8Zw>H968OliNlwE=Q|SkW)PTFXK&yC`3mM0-F=_r?m| z-YCE5V9DHYh`2;3HI$3KG2j#!jXVI)<5|Y)o~JUCRYGap#COj!f9=f_phr9$SORZZ zr8iNv(>%qe4d3jonANkQhwoe7S0QdWqsp9GA(}hchK-*$b+aqc#6nafR)vRgQ)`%| zl510>YHBgvnLz0TJ0G#?QcvSAIBeRFPyYzv`D!k4n?9N-{P@EubtSCJA317u!A|@ z61%VIn|q{qZ_Ln2^jwHh2Gc=ZUqG$(4_Y`4{q?*4ORP<7#v0i%j8jmfu{YA8qWsRo zs<0$3jq3mwtSIBM)|?AnfthL*rIBfRN`rn(T=faC48y>m{=kW0#5}aHz_`njewExl zQuEHUeUjp?2tQ3O`@2z>mr*tT`t=Tg*DMsQHhGfY7quDVMI^<0oyuI2uq9t}n%zDPGc=S8Zsf1y z4XRacQJ{hy{(&;aWC-5k%(~P|!Aoc#j#ff-KU#ch`N-?c;|D=MNW3(U6X>qJSPM+S zfRiw*Ik3O@NKo32D5qAvc0Q#@y>p=N#SOG-*`Ogah-B4)FvgcY!YfnZ3A$#4Mb?gz z5^T1nF|DrI;j0t{7>kqaurYEPN)r&Gi%Pig7B#J1sn9Uaw=9>jzr2>6t#T*GiGYr1 z7Y?%c5vo{WBrJi+%}-o;(}Q}buaEB6bjYIbMU6t^glc4acuPEH>(Tg>FF~ryeJfJ8!f8b z2@~qsy5SiAT!Pa$(I7Yv?QCYR5v&^x|M|l8^LwsRA~btt1@jp-eThm%#pYtf3?~)8 z^aCU_R1_Co=s*DIKGC!vOo2KVJ|P7*gMc7_`07z>U!F#L-jEwB$w_hllZ49=je(>o zJ}5t|F0-4bl;(gWW&JSFki5}9FNih1Sw3Pe&9%v+px{G`dkCWV^4rFFCs*@$3cuD} zg*R}*vam{B3ukHerp<;50=(<8Qgv(lIer@1kXT_0gIfx<1l?fIFR1Sa_A2bVjby!* z@~4w#;y+SpID4fLe)zok8M^;kXy63JDy1(n{NHCmxDc%4aCogsUZ_$lrZ*a@;L>1h z_JJl|%YEi@;}Gq8`K>JZ3m4)6iQ)xyBVua+jG;lX|Mew5dNv$s#4DRwU9skm{TP@A zd9`^#?xn*yAFouTO{P|T`HeQsq$e_Po?f}h*tjQ(lnR`e+~YDb{bsBoDGHtl)fj$C z@O1wW3vyJCB7=d@rx2xv={oEg+X{&S=(H_6Aq7`w9&3x&s;GMP0ML&A{${ai+(@UZDA;2!G5s9m9p1i0KkB$VxSQIl6}4#kR^ z5(w$+@Ry{IHp=+@xS5AC>)*RJ`wA4%?fm!;^?y(qG;b{hR1oRr;R0(xda~JAT=N(v zsTE1^TTg~mHFk?(r8PFyYr){OU?Y{&mB@meWH^k#vTE(;jAbq4&`EcHbz#G;_D?2G z;*=+>UY#cZ!hBUwAUW)XHoPd{fe7=4(VR$%Riny!ygLtvu`Dlhd|97L`3u~og(>y0 z(Xf8JgY8$Q4(YS>U#DP%zs`@blHY!ux^t6_yed7nwOeGPt#M_;KEwPk!b2GH-TZg; zV2so^B8RLM15gy~=e+A+k8S(UhCt6$E*cuO^_hO^bXLi$1{9>a_}8CM&obgHKjCsdD=5aFte zjJy!w2Z!nnrid3%=uBj-Lnws%M}0z%w~V-Zhj|1vJaB$u@iwV_^<-sp6tGO>kcw6? zs%Mec4vU^-%Xw&ua7|BOKe)(mC5E<`r`^7#0Q)c<0*ZxrBySiPiIhK*psd`HoccKw!}2Zn)=5Yhe1? zQ|>{ummbvcI9XTg^%n&sRJuND0kHYp$)i9@OuwYHKIHm z{_=gJd%Rn!^oZyx2uO8_!{+m|cQ2+6Pk1uhh#zQ&YW*paqZ zVM64UpnWF&4c9zBGw>;r^uzbf6Z&t&PGk3AqoE1Kw@|YzZ9S>hE+?XI!Z`PXP3hf^ zP;kq~G$(W)nVci}Z?)+^MA70vg0*oZ&8nKs&X|2XtcdLZ}LKtQS`zTO|L z=26}7O%hLn>59G4xfRvxTW6 zHSW*1?2GS9(6r}ehBS%G+(XFv+>~i9i=s3HnnPf%Tmpc!)E3-Wk_xJU<4cZGDCfe= zK+|gRi4)NIw!e(WjTz0F>JFaf6+o0$n>a1R@(<{eJ-n-4D+WgIxX#$za3fFz$ritI zE^PkZn%{RV7fM-d5zj1$;U@u#Zt`03b5VSel4Sjbv;e_U{Qr(_5@d^6POl=qYRcHn zoQOQ>mR~KWpjZiuJACY5t$I1jt{FT7+)ce%&z#KjhoMIbp zlS>)@@=Au&8Tle5%Lv9^ITmnJin)I?1RarNfOf z?+@k)jhKjx>xqU^+XvhF6H#t#tQJIj0lEg1xN`t>3G|3M#pCHQ&Q}W#4Iin}DeMDiwXXauabfjpH@8-RozIi!tk$2y9-0fcV&GtX$n z43uPH&u;DO<(7ovpF~?M3~A_v;VqQ&KY=wNV9E{48%zMXAgDe};kdb4z;(qR#N21p8Cv}D7A>JSR%*fPJVW&3xcuSQ73S6*|Rs)&6O`u;WF z!E8utu=3q4vJoZtb{~yKg6bID>zw5_Ii^>v;Ge!^ulYB7Cg_@ffi%zk^XD+{`=d4Z zP}Vvq*$Per8%lS`@?U!4S)GR+8#XxX-#Mi!ynj~MkNFFcter`$Y_|`rL0u7`XQ7rg zB3qkt+rcKXX})upjJC9?^=`;aOUqpzrtGk!;am>EQmcE3?GWj+aYAZhnB9@wsvdCy z>V}ZJi%nfXYp)mwG$r%=iE~U6iC8Af3(ODH{ZEb48Yrg!5Du^i!i_|nGj6Bu9BsKleKz6B0fk7ec z7zOw-zljNAjo?QK2twJb5O<3|Hh2r6WdXK|0aH8nyGfWizPk%pKJ9j}rFTTeQ+ zqOu_dmAg&_C_4eR2dqoz!t}qPHVnLv%fp%0MPVu-?mlyBV}cQ)P_Rn5Ji62ddEXaU zPx(>mOAOcKVJ%Ud2ul4)X<1`(#w*nzxH7euQMO&7RSe>YjyAz%t~NW2U)#)}#MqTR zokB|;`;E2^ZN>9ekq&qtl($tk!ZEtNzhe4o1YRQtQNO;Q z$oz`(gePtp!pg3;M&zo9j90DAWp@|TbEh8ljU6T~0;CYeoLW)qCcT0U@E3Nh#S1#R7q zREn%1ZHgmdJZ`!)eq0$+N^pH&4SNGH{U7z4>bnO)GZUMMIk1xrWU*IO2!uQSUHAZs zm>o=gP6Z<}4JRpx4@e7g!VU`3{Zf;fm+*|or#0RG9m|ag1|vjYbmc98J6uQL2db#8gbIzDBQ0TuM;|D> z954{0!Ai|ikk`;>6)L)oMW!;4t09^SNpLZivd9Q|ETp<{;6{-sw)ZxeVyJlNi8Eat z*y^qkV*n2oK*Zi63{}q9=epRqeZbJd({WIULJG11Fy<~}yWI?{#3LNf%)yF~gR9Pv zwFDQs{jfL~3-0uVeEM8f`UrZt1w0!z6(C33dRu1sbTR0>ya>TO>tbFxYpMje2EOH} zekT@GEHxTqk*uzRR$=spFdc06vOdwtY@X^g*I2Z7y#5Bh*SI4!!u<<61TwFQhSXnq zPS>r{(la6a?_Op=(8t>+GV#Bade-_k)$v7_X1JtM@4)8yOd#Yr@nG8TYUmbfEr~}8 zIk`|j4FEO1AuSmzWzzmssE)7PsZ+fT(L(z zct9Z3+KPN=k8YFb*{r0=v%PAo*^zJd*O*HdOJ(Zpsvl~tJk92RW@Fp?oYT)HLL^Zt zxUb`OjpDe}22_l(ARvsF#XTyG3L&g){4qyN=9FHuQUTL_K$G!V8pCD(rh-Riz{>P( zd)M8o)$vFq!hv9}%tiQdKA>qZ`lOY`zjpK2B7ZA3;908mvk)l_-yeXq3xPjK>JMo< zD(CtL=ep>x&0uOMuM4;XrIw)>YYvKHu4~axNmBqjW$OAtwAvqNA-q(ywl7bJuk4gqM zAvLikDKmfp{151{YFg_?g&??wa;%?w<8x=UvQLXw2PvrrzW-Fcw58jOnU|YPxwIk8 zN=uI*f9~^YU7SR!dPnorYZQ!tM_UV@vSyY=);J5O?rW-8E*j!lt&c+hAe2{6y%YoI zeJN>mzvUuAPMM`icgUZ4Ibw*C(;uHmR&?8`$8Ru|y|A{PTDFPJe?R^keOiTYUgOJ*veKR<@B{ZIf&RRXtZbeBjl9iLN3%vVH*h+a^Ie}&b^R; zb8r~F#-*K;E7P-s{i=Oyl2IA%_fMgc6=jt|=5>5xN1pgeS?{1xLq;5`*dm_Gp{P8a z%kPW;?kA+FYhglKn+29{F^uv0f-4wZ5C*^$T@J)I*W&gxvF4OYm}u-jEg$~Pyx&k* z05D?N_zHCn2&<~ba&ps5mrg#o#*2P_HQ(Y7*eim2YXxSlf0oWw44WceW?cSgxZAO5AyTpGro`;C{E z{-Gx2d2I-*=)3cJ=3H+Ncj~zw3)zOW_S|v|Vzq>{_EP;Qmucr_cH43qwYFX>C8=>M zz2M#b3!LJ-9gHxSSa_GT?fN9g4o4gH>l&?nYYTgZUt?VB{ds@2z~+E7J~)B{CnP?9 zkIYj4@zxJ9d~1K31{ZwAdet=~9kmdt*nF3lxhb=@RfJYC0ow5E>epplOaV^XQ%wl% zXxlknh6OuBhyyWJ(d)Cf*^a0r9@Jz`IO0g6PKCj#Da>U6;!5=kWyGNukoJ&WC6XRi zIbH-$0hg<-RhFvbEt;tEhF=Oa5S)_6xHX|664TdjtpqxqDHYt}hn!$K`{*``vMw1L z$kX^sZp=@;4T-MJe$ZNuvMrgeO(aKm#V8;qP}>tNb*Fm(8#WdDoa6O>iHD@Q6L7~g#=JA-h2M+4>HuXpx^P!9$oHUXT~TZ_Haq_Rh~GN8rzhX7&OaIh z*$}>ykm^DTQS*daK^v&Z2iXuGx<58q=>bqn-n!89x$bB}wHq_No?>?5C3k8hA%qYp zFYW@SF={_}9W9;7$v;FlAU`~dPw#aUB3e5zznKP!wWxfG!|lSfmdFR=uuid+deK3; zT8~1j-DGH0F65mx&2yEE8*)*e>(u>jpXp5czNi53&ww>KDt+WN)nXX9@$|-2NNZGY zb_yv$bRYxq8e^C@|McwE$03T-H!t{|mK(R2I?ke*7A`B0IlvKZf8wN-QXt$$1BBCh z;x(0OLtUD(JndnlQSW7R&*(&)vx9|t)(~PfnEV!5q;uvbF5nC{?P`xo>HS4l3rC0k z3B1)t%OV5#z)XvrIr|p^h4wGZzsKj(^kokFB}2Fu?Te+_}dwnjrLWR*ZjEu z?m>MQd>+O@{?L4reZETnYLBuu<6pEFzWL%!W%@8d$o7Ad!ejG%-$mh?ek1EvsE zUZuE!E@on*ZZ|cDP$Pt@2rbi(B=}lNUQ@NoD*G*xnoY+Yw+5ahMZL8@#ASHCR29T7 zR%o}LsmLje*w^U$OmnCE3qj5N5!Y)e7PHE#poi3oWr-^FhV6zfOlu4;upZ8C>>H@~ z{`;L@UWSY8#IBe$@xx?>$iD|Ofn*kwjaU;hK`l_bygu%pQBSjHa0zEB$Iha48C`>6ejo` z7S0qYfy@|Wyjg*=tIvS~bxN{-SfS-yB&YzV^N>w->5yQ=u2f=UA0$RFlSt8sX+4_D zWJ_g4mK(=tPU9`JFoZqF zM5^(kw%ggnz?s$*Y+Xd#GkF@|ks35q>DEU*ZWr=xf;s%4VBf5d)S)VQ@=?u+3{w5$2T1ocJpVCJ`$^(GlPT%w7r&X zE3G!pmicehc!o)SBIyC{DlRQ82KSuef*$K?Kg9*<{avtL?Itcrz^ObmLh=>}fH$O+ zf^))VKhuq&&P-O{56rjA5V?HQ_o1un)mrO{Hzq@ zWs}@#8rrOcK?h><0KY9Qs_Lg}Tjq@_cw~EH2~FevriR%}xk4y(=Za-AESV|p))g#L zt1iylN<`kNoRQNHW!6Qs6r}wX;h@*$uLD`6nqLkOec$Rxzk2xn;^@e`YvfnT1qsA1 zsK@(@hwU4VlL%XkL{(C{d-j(w#WYYP%=->Qv6O?A{xu zYzt!&_(x)Gsm%BrO_mDGtx?)_-Oo`0bH*D1-^{)RndH-t`R{BNUtaD8j0Megeyq0l zbL;J)e|dfy*9bF|BE(11Kvi@7pMhDfLfy^T24dmABG2Ll-^RadWRA z{-%PWNK2{qHzWo)GTQ;X*ZnW(hRfA&07UV=1r=v?%&X{^%(i!=njF^i;EcI;DhME# zQF@gdkM5H$9sEL5Pa;7@ki5s@7RF$XH8Ms@(S@}gj83!w6ggT$A9!1Zgaf51 zCAGvx@s(+Z$cppcLe{1xJz=Z0^ou;5Tk6sQuqV835RET==u&HSgRzXN>T-myrdy(k zRg?Yz#-19!jH>~4DYh4$i7RWVN+jpkL2i(D`Z2;4^-Wsdx~git%W-r&jyV2Vn_%87VFttJ<-dwQe=X|?Vs=fj zFD|iu{($qq)cY?>9?@(#IHI|2u|Z0tQeWfeXU#x;+=Ae*-Qq;aQ0@ws-&09}e{My& zS?KHl`jU}B2Bm+x=>{1Iiv_wn%D(Vj{REVE%krZTCEXQl_c^*<2-p$@b1k{*B}~d; z;7l%AZiw(HSE;HKe9Ey`U1sKrxT8lUn0JI;*^m)(WnnCxMas{<$!wj5G)>Ib{qn`2 z6;-5~xW<)zs=P0{zE>FvUeL}o|idYUQouGb@0+i{GxT} zLBxk_wziBfN?cC5=KJoc{u7u-i>3+ocFK`2l+ z)aXs=YqM%GyDIz)9Xr}DyyhHDWg#nUla6Ft!je(R>2xM`Y`!zD>ch(qmHEVQArE4t zzHxLWCoPiZD%5mCDY@cA%MC{Vzm04DLuu87Du-V zDUG;D)s}7ek~DhH26Q&7p}+lZiCh@?s5~c;vnru51jKwCU-lIoLjmq>%|u*Dx* zGCFLZ0WJC)m;*U8{@vtt{5$Cly?F|j=5dISGf-`Z`0&rd{wLNt81l^7rX{xWtlrD8 z0v&EHTR)M7ky^%P8e6@*1Zh8lSQ=|@A#X+38YHzbF&NE9riP7$jHqcv9miw>a8Um< zP7e!qQ9G2$#H&T_^2NY90uFnE96oiJKCliAVbgi~bckv-ITw?@Uc9YGmoXIvw9zAp zPq1dbCzCN%Y(5lAOkpi(F=wzipxfFxf~^cjyww!Ue$ruOspjA4ae(@A?fQab0_;@b zRc~o2pTwtB`&r`3@JE8S3~UuCgJ!=O03A3q_*Qcdk^}fmR+8)CBd1m1m&2D-fZgcy zzDO+Y#gPy#rowxU+lk~Mj*x`k*7X}{GlS>?4;DR3+xHM(g@cI=aZAgO>JpUyMa;S5 zz&6m*Yi;rg_lIQDShWpYRe(jkH*}swsB>11oAO$WLY*U)jjFp_QcbWSYFS-z{>>8} z1OP*TH#>NTI1(hfldWk&-Yg~vPFvWmV5Ds5dr{SC!5&5sLg^88sRRpnty=jivfw@uWtF%M6exj z&rz87h}C${{v3;RcVG^*8f^|ay!%dN<0t(M2$-5GkS@d78TG6o#=csj7<18(pLGpM-+9rB69Q{T9R; zo%*C1JG+nv@#Z72A8Zb>dq}x94Th4i?2e-^$z?wS4mv27^H42Gg4a~55oJ$Lg0;;9 zPeVLk-j-#-U)og4eRar^P0@Bcg(v6xFx9XQMhtXb=8d%uJT$$>CWC4`$7!a6U0f~z zu38K?^z4lzYs2cfKxC~WZbitShpIsz2Ta*R$5?_Bb&$WJz_yG_UR|@7%-e=C2>r0h zaKA4wyByYEjk-aMS{W97RL$(ePaHm-xd8`fii^(RvRwyI&X)A6*kx&aI>?OkMno@N zX`i3_hAmiphJtBn?CX+j-f-5q5{x?|w_K=prED1*1ZPSflG?%5hMv?SoKQI?9?OD-3lC^z z(!*0?DmAR0Jzb>fu`;n{1(ZN)QK-FT&!^_`3F`MT6I!U)$4!rIDS6UDcb=&3FkZ8Y zk_$J9j?=L-^aPl}PzSBO(yCeGoB=Y93As|&{r4@66P|5E6*0dD6|wC^Ore1e9ldD#E-`e%YJGBbCryir=DaO}EFVuq5sajBemq_%6_w(nJ~2@7vdZ8T^+XeN!NnoDVafGM0E#cPUHp>hk1Z=c^z3- z!D$xHvUp!x7v2WohO(=R-btgQn_Y(a zhUL4BT;c)c_bw?Y!#W$Mmv!sCedlsRlOQu{G@^aEF}nn)l)3HZx{20EljgSf7&vVA zNM&-ggD5RBEvPBZn6r))Zd+XKj7zgb8;HVBsVSk_XN_w;^WI>4xL9>CBa`gqz3I*# z@}fmw*klt{>>W$h*15>9qpDZN$GAxr4YmO)6em7^&WZybAr}^ZK$T)9Btgc1ebngx zGoVa#yB&Ujf+vlKL*DBa5op(c!GM!hL^Tmnk`e}9f1okR1kX}#Da!a!|Bat>xmoAY z?CbR7TFA;7ieJ;jZOFD^i)DL8X#@dbSpB1C-wn6=12W4VrlA_+Q_R6ZA?$V@_WP$ zH%ZqNoy^QVi2VFTqMo>Nx)%hTOh7BvrFmgjea%2@5?xPl24760+8T=dh8nkzznC-ule}8mml)7kpSv3kIo+rS)-sQ~9ol_kj`~qN zW2Q{qp_114T7hmh6Gn#rFMmBZ;Dl}ysj`NE~a42BE}?=6A|*d z;nv@sVkrMwN`jYa;|-~&NoX^29wq_>h*p=)kww9SNW_s;g~Q+R!Fc~1 z!dlv6bak7+M^+X?@Z%hY@j;H$q(b?c&xMmjF@b%|(d!1n{TCkS@*`0T{lwR*{&mu= zsDtZ>VMG1)XfoD}Q)}Hi|1u^WZV685sYMVu;x8jinXqTDRIiuuo+Ro!;upjXM_ttb zPtC^&Yh^1G#^ce7C)<-YCqo=QeHB18Ta#I|rx@T|*_?#JRhlHkAgfHzkn`u^MoFtE z_>xqbl$kwDZLw$~>&mY_k}~DX$qcmFiI_CA@-199srPWT01xIBoNbA4@3CY8-YZ|q zF0Q?Yf*qk$WPn9w(9A4z%@-5a@XI`Ion#V%0>;@r7|Q0BucVGF2%GWCq!rVx*4*K8 zQC|K>Z@3y=>j65$fqzM^g%F5|Rmk`U&v_Sq?$at4ts4#AY+;cU*d}aF$QhwJdWMf` zhxo|pu2|}!WZGsdAlf9XFb~#^!ogx64&w7bcuEgc+zWcFrtNDYQ>OYH)g_tz- zyEfihNN?Q0w&_~MP|TG;W8?YRZVS^4m-FMO0+chEu+xgld6HUr;qetS)c3rD5@W;( zSSeOfgL;f z@MqO-QSTAFG%X%6EP+fiN#U?)vU2Kf=J5??-4m=gjtOTc$t5}HwOGFHWqXQv#Y;_g z476HhHsgi|xt0XSA2ed0^QyzQyN_E znEUjEkjqCq(!UmLbklCGZbYJj*|xEqfVqxCJCU?maz8FWkLzSRS9D^t#}~nbJt372 z5v7l8&IKfEs>lwf4{#A5O4}MgENF}Yyfd25*wHs_gH}*Fv$LQLmef*f*tgvKnu5F` zrO3thV~cmGWGE%q4uVp9ia^PVKXoxlM>b=KbRG00WvYDf_3C}XJfNuveJq*;q5OXI zM-t_89lx6W(0vPh+;u-v`1fd*kAId%-~C;w?(XR7y>)P3sW;5uE$Ef>{z*h|jzJG! zC2GcUu6QlA$Ys|+{O~6W!Vt6WpRZPe*ghoCfHa@F*}n|F#I&h{m@vYOOpni|71;SQ zTEa&hF~<98`pN>8C_^_Z*kUYsN+V&0YrBh-6tIxmc!B)sHwA-C52k^&0ENsVX=bEe z%U0=5SA+D(KodPE^0NwI)|0kt_5Nf0T~AgYCQ6{oD` zoX63oI^=S_X!Y>LVh7be(5ll|M^jM~UQK@cZh9gTDd!l@pX~@;9(PA*DcnI@Z3pec zD4kH{rE^3{Hm`APg3ds~&xInWpe}+5ByDd>bwZI84>Wd+CNIeGp8qo_HNA67a^X9) z2roSzI=<2_)DiSL{jJ9fb!Z0?WxmX;2gz1(+x)aP7+$Slr$BEa!U0y9r`>v3rJ>Po zLF7-Grs*Gl8@+mV{kE9FkBhUIK7T_G9ng>OZKuz8@){%iX~o-+c1A2(6irj+Hgm%X zn(?*_W)O&|$0(%xfDpbgN=wMW*(Surl*ooIc^o4)j&T6x!!1Mp{_+%k+3bmsvfbv_Tb&gGS5$IF?o#O;Q4QcK!$l5JW; zQkk}0y#pT!+lxCgP}N{&0jd%DFj7HmmnegSSOVIQaYUcK1_zka2mKO zTZ#+b`wsF>x!^1+FieQq{Cv6HXU^V=QN#ZR z&l5$6cxjH_>la1R@D`Jl!(N!|z&p;P19M8TL`K3Ym)hUPlrEB;-@Li6=S zcEE4xE2a3Cqcafd2T)m`Ogck%A(plKL{-5T)LLsiU z=N5N&*BRU$in|xr!KD;uaCaSCi@UoPE$;56#l5(+Sb_fYe&;66zJmSi?BrQV)=J(? zUOJ2U8+9(3OKyqfIY5RtH2<(V*@S>ud&G=n;%k#~<5E)4^m2|o57FOESEMxow!gVaiLA*KpWDJxs;#5O+a1wnb!N`JvhQ$-^u+UYit>#7Y?Vek zV2UXGH}?Gb@q|E=D^<#3_-|vukLoW~bcogO>JASm-ybwRZjsqm(u2r&Jm$9lOo<4k zhS@nIBm88r?^RTnEs9E5$rj>rYE?~bu>ugZ7eqM!;?G#@A=qr;Nkb#_NzQS+MU<+F(G$o&3;~n%thEH=U=f}3A30a!xmzMhgrV;eY$!J3Jf?h6 z)^xoLMVwcZidD{#Trgn$4!;`RLe*4fom1wEg;i&C<8b(R1m^4u7JWn5#-gM|Mu0-- zJVBqlq5K}%;Jo;u6C#V-Kk$cM=_LL;IpxkWve*ju}@j!TNyK}D0}{&A?3gW2rkeDMKB2+lV2 zOT%}@b#!h9!dkEv2vg@#kczG)r3J~;zWh8P)uIl#V>0Pg#Z78A+z=_WtUI5m#z!b} zl;Za&SB}iCA89Mx*j&@->`yA>1BbFOW@^5mv$9Y{)PAC9KA+xZ{ZZom_tXac9{jJY zn?>Z|tN-%pkRoVFXO6u0clo;b%XgOTdmoI#?NU|Fme{$$0xfcQ{`GX=A0xp5xufak z*Lc3txVvsCG0qMc=q|=HVDm$v?fpnRUxs53AUhE z=Pux1XT%5Rjcyxc5fLnu|6qa34dqTVznCcdwK)DBe2+92SQKfHj(HSz=!^D8;lO!S zL?kb50Jd1tmLP!gfP120_Egs@4~KKab1?i|TS5s{*jY zs%D7DFr~&BD2A>ik}g}eX>&(Fx%OCD+a}+0&T1+SD%P2o<^!k9z6y^k&qQ*i{~#&H z>KxT{y?~$9iVH{tO}A0F$mbpJ8%cgtRXjv$!TTbbc)^@qYU3@tCvWhQJ+bR9v#Q8H z`}Kn5QS}-VzXv+*0lc@riuVyN3w9n&J?OUK( zZCgP-XdnK%mofI|jwjPX$_Q(w%;!bQ(U&-uB4=z`R8M)9p^kqaINS(~Fm%ctJv|lo z<(?ZhN0~RxSB0f)N5@<`Pf*ulTVq*j7@B&*V%77GRGuZkwAdjvbTEzFL-;jQgZisg zqZAEx+6LeDLVbWcY_tn}LlS?SI?cVQMlA7$|D4%d!7@iq+; zSzjZe%0fp(DQ%)sdvyL|>5LK*R#MiT=jO~@+;%S1(6xCN!v^`NeKtR95}M|W2bd= z%!?e(?dQI%bN0QQ-~5f^;Xy&;0mah2(up6w$A9?5IPmp);O3MHgFwbB4Its+>sC_9 zFDOG?odhB;l|RzY)P#^WySbJl4S1We)BMSu7Fe(?ir{f40uP3-Vb;2Ye(|yUQ$yjD zO$ZD3wcbF!qqdH%X=td@nmByblM9k}=_YVoD?ERt0xfPoDYbGRpKcP@ILCy}b0(rQ z?`ZZLM=8>>mNOA6+eS0dQ*a3rBf_g_HcpTNeI;0arVHVgRZ}Fj+M`Xz{MmdKiP$8_ zh#>d76}oFb!pS;y77|2Di>uRcNRxF%!wS)+VzHqyu|kVF-150Z*g_vz%E-t&ZN8+~ z4WdtE`<##N-?dY&FZASXWa6L0o{EaxBa5WX<4qyhC11(-^jumJ42TobcBB=&qZ}O zT41SOH>^v7NOIft!a0Z{>PE-eICZ}9B}(oDhB9I=|690(aEY=edVJkr7%htin z6R6Eg&RVyjOBJpspy2eqn45@#UMnJ&$K!#hsU&TEwlyUp@68gGcVB=TNcYdhHdeZ4 zST9O4!}r&(&IwbOeG*s8_v$Si=h2O`g-J(C`s*icoqGAeXxJ_`WQP z^(dhX(Ko>rP{4GZShJIC=rqL8SE96WPoEwCf~m50S*_z8;zm0W3f??ls z&&<=A9h*2Dtl`u}lr~N&^|5Bl;L~o4RWYfW*-#x|thqw|%<2N1Sr(hbcRrL{FFQo8 z$!J^ZVBJFvw-am~QxX!81iRd|8x~b90kZlm_?39vn62t7dT~0kuY(x`)3l}UIO%)r z!wS&5Oag(a_V_kdX4r@sf{o#Mu3 zBDsQHZM&ul-rw8`!v?i!Kgu(JSkr9Tv#Bzk5~pIG_DKb+AXPvq4fC4`s&?14dVqag z6=Lw)m9^a?1;$i%j+D=1@)VQ#*B^8n&=-qp7%oo0!|F)^+hKy%>IuATI~?Bn3Nd~y5mx%$f0?%IcS6iduq z%`jS%a9X<#C5|e7bv`UcH|}1+YVWWAz9+pcar|fD-+Zfy_hjnOSEAyW0^SV^YV0O`D^HnXwtgKZSTXFmr(h=q&Mr$A27O6oa)zl4LcYk&PBBs$J7oEeBWyqk0 zklKRd!a*wUoFY7Xx@dqp4rcSAvMajezih=+f3K)_@Mr^8#04QTp)Z?ZBOi)XKCbOV zj+x4a1ae^0W5m?&M|NJXIxlCwa<~zNv*5#z8)4LaBlK3BB*67nZ18PvMr{LK4OreT zc9I5x-Jf3b#}fl-r4`0u<-Jop^429eyp$@v^{;DYua#?dW|76bxl}EkSBlglygBNq z^<<3QoXIB7>nqMzS4wngNKveiv`emH&yr^VbX7hJX?t8HU%Y%#I{&0dAuo19;Xufq zuo`nD==e_7hKD)F3=~FZo%~um9W^*f#amrG(^zQD1r5UUGmomp{ z{d?RC{lKw#9#AV-6)+OM%BiH5v2UbP5EqDS4sN$5>vN}e@TmGt7xdX$x1N7A%1HIT2 zB6z<~iV%XJUV<3=Qerx%C&1HBm-;V$RWH=tT{d;&n<=YQeSPs5X)Sl+_XiYQ_&NV6 zHxLmsJ7`3o2SEjeyY4?<0e1r>Xc2bkJ8Z1+0v zhvRISCSuLnH4J^&={{9FyimDfRvJAihyuzvS0A^NlcBKo^~J_qTzFwCJNnih1?iSA zQ(@uAjMcH$R{}%W1Zg<3uos1TF~@J_)?a_Cc~gAwn)#;+%_RVSL`vg`;r{cY2Tt>w zy^rq-IN#1oEPMp^q|v18UOsynSVM+AdA^TnXtU9#cP40b=)VjS_8CGoRLs=$H(yKK ztv^WRyuo&Vb;^Bv0b%u$O>K~J!${C0^MVU5m~e4&zpHlT`e4!!k1+3yhSf}4IC~Sr zb1=6li~hFLirZ?)tm%>RA|?!*lm&Wa$ilRrMa*8_2Nl=Q?moLT z|M_cU_B@=4G_A8Djz>;sLQ`H{rCj5hxoCwB76`QFrjxrZQbtp{3Kzp@)T#2@8$ht$ zQX7f@lwEV{l%$}_lPsT(Q-M+gqiQ7? zg0nW#6yZ?v{>O3XVjC7zursx)(IzWy4J#sx;hrNNgB_y8qqr{5T zbvxV1-N6800Utha#Wb61iRMw_skcN#GRT2Eb>n4sCtKFQsHXFF0XJ^R0l-R{8%=9V zXl2#K>*7pBJ$8#sE%UM&ofsHEE+R6A|6dXiHuUiDYYT#9_7>}uvx95rqr}5JFG8^N z%B2pXO#9={WdhSK>W#bNt>?gf5)!FLs?g`571 z=3zr?Ym2W6Pw#^77uf&ixgutN>%ZjK#6(+hyy@a27lEb?$!G*a6q$#bk=9*X5v?|8ZfPM zDou5D>mQPoM_DdQj+%CodBEK*qlMe)dPmS%78SIkdXMp6cTsBJr2nz`WAIN;PI4y3 zXUx4W$F{|I!diSs0Y0B4kz$$rS^o-+%l>3I@Hu3)1}Q3u^LP?Yb}`We+sK4bPNvvT z)V)VTSCyhs(HY$%n?Yk0eNW+sux_iE#}_}&x*>+pPRq0AfjM9e%o@+(i56q8v=mg^ zcz)!AbB7;XswYJduAIL4Hl{~u*N2rD0^1|w7`z3|rR5xqpNb5B4`vmishSY8Eu&oQ zsf?4VxVJOd(2&xI+D+=UNWpY=6PJ_QYqAnixTL5ASI)b2r99o>xzhK!P$^4n?X91T z`b^jU8_pF+p`<*a?S>-KJkm+di8R@ z5T2V>&GDo>HUBE>fd1~iY+MK9xSpje$<7kM4!$-V4E5L!u%%x*-np7Q4S9yv4 zQIS@?)S^$iz+oN4F!|5S`YMMLD)}k;@GkYc8+{r-TE9Be0I6p_Ph6b)A?qglm!1D1 z;TF+{I1&MJ(l$G@9oy|SH4CaLP_o>R+T8xmWHTXPr58=S-8IvzQVeVw*u8VtoZ)t# z?8cxX!}nYt6(G=aMam{D4X}+{bjIVRURBA^k;R&8B=!xsJ*}3xzFu!_B}ha-txRAt zc-m=xTksfg(R}?6ne#(??kl}g)W5N|Qw=|MndfCQ6{cdlGp5-Ejd;|bLGO)GkJT)T z0quyI-5yuNIXqhKDlAoEGC-1tuB&Ad4a3un$TdVQUCeSC!1PK?ZU!PyY=sF;yf@{+ zB!^;E?cozWjr9lq_2?_gd@Y!78rhE5I_MyYf5IJqO0{^b9`jzkIQVrR7fuj@`sfKb z>~zqBGs2w7jEe#EuA7m{%u=fm3Kv{^*H6{o4Z}XPf}3X$4phNOo0!w1JTg^^Lvj za{ozXSdVC)Gc9)JCpO%+WBu;@DDC-K3lk!V^7o zOtGn6@%1vr_{xZQU~(OJo$u0pl=-#bKl73N&q?9kSaX+JT{d3^^_^Ve{{=)oH6|kX zZJRnDV0ImU3PHRe?CR6N0wZR`HN!enp2f3w`|^FFYEl^vd*|`_VP>y=;|=42u0m73 z2C-vn%6w+{+Yn{;2SUcHIqR9=UUl6{PjFh-!9tE}#3RQc9|q6Tcf7kPCymDUMH`+W z!~1iw&PVmK6}eJ%ov*5IpqvGflC-2&n0uY?PdbYvGh*=Ieg|c6`WFmc$)`-KVXqa) zh!coKn|WUBPF*T-w4bq1pbjDRkz96k!F;aHD829gBotLX-8MjO^1A^za*o2kxj6;? zgG3(E%NkC>ZH3ji^Hqk(hdKZM?jWVm>*wSCt}uw+Barq*n{~iNh2c(-2S?_!QO0Z^ z*~fi?S(fSbY<3~D;A}DEx($?)+)u-1%e26P!7#-^-Ge$|wCze4@N0J}ObwYiEjzCi zeyJOWC9VmDEO#o{QBAC!iYBIkM&Fa#4joK|r3a>4Z@W6KK2$Q{=><$R*L_2TSrH|3 zGyxncl7;Aq)z@lfrub9&J(f8;pdOEebo5=up8ohc-IrJsaVl~G*X-W5Dl}N0M??t! zbI6cvMwmcru#lN8mC;(WMb>iSO|HehS<}?5t2u`Vf?Z~|9~|m-uw`uQA_PxKNelxm z-TG+l3QD~0JyUPp&{uwx@cB2{1gjq(T9Eqw+XYJ!67ubW|2u_AIQDAjo)!N0CoQ)m zyJA-U#9q*3IEML-Hy7RD^xKQb^aEhHho^2uP)Bg`0yY?7ENR)7>*rgofM^P`^Kh)mlx4(2rsIsFFRb$;| zIu(~5O87FT_<1dJQs!cV?^z8-XJ#hDXD?a@sp2r^#&Z7&TWE}ih5wzwhWSonE9rQV zF_&Ykk0E2ieaPn2Kw<>ZuSaBSAeE-a&@rJcn3z!4NU&Am@PJ)Q;vXBr#Vo|@!MeN> zkyZ~l_Z~j%%|Gtqz>=-kHdqG0=;`a zN;^84{7ZMpBz{|-h52{kFm(1ax)YgJJ$WaqP211q@JvVXS4L)5OgMnld`4}#?Ub)a z>)2YiJy}QH7!zj}QL;5X3{McLQ{bdK(2#Ly3{On9yHlx*!LI>Bcy;Fyo^A07i`!I2gfe8V6J+NM7GjL zOU@BR=5ApheqlU@sjIgbGUK^jHr-a{mrh<3+UAF?Z0xr&x4t@I?R=~*aC`;p_D?oF zWDaLaKx31BB7%;UB-T7am8->)n`4<37cwiu#Tn(jOZQq>`2H(5m=L!ggZ=zeD0nek z^g}_qkSChDi8~>c3TW@pkfIVZB#RA)({e+M0iFleAelz@5&2~X`9a&xm1&BAdeww3 z3Z$Z;FIPl1Qf15klhumKb`F{>P5jfTX5w|`2`5X=fRz)@ONFoTgCxNBN{8q%O0QyS zYxX*fPm<(hii^^#)p5$O%}h;G+dR0&>P` zY5LsUb9p$2lyE=fG|4AW^T@A|(VD})mZg-*h=i{c9?5W^U&J~D@tQ0iiFF2S0=!*c z4lFk-Li+PN#~0n=zj}ce-HJ<~eRxsk+hXiMzn8Us&tLS!oSea2zld@t*+3~ooN2WO zF*T=-ffI46)sQfF@kurk@_r+I_=&7T=L6V)SJ?1)A))O>5*3$`zGml~+`*uAg!*7J z|6kQGY*S?ktv4Um64=Ep`d_<(WAzyvSrxc+$e3$jiV)ZK$(mcZFdSpmE?J|-mVX!g zx^Ma${Y{6sJM=Rqx-Me`0h(JAgDu`fwbMqch(%;;*;u3i7c1tpyqcUzy7}Dalps^c zXgD9k<0i@bc=7Pw_p7VM&Awdg97$f}L7II+E#|wWar-F0Mh=CbN6N*JSDWhzcU)Dy` z-qW}g4in=o7%6uqNvKQA?Vb*HAMwEUQ?gBsWR;bqqDbXrb_dqOYJbx)`z1R6Ab3)A zzlo<>ARq5r3m;2u;i+OMk|j1TQa5cC@=8=8g}(Tp<7CjS*Z@0uE&rPxk7w~!1<3V* zJ0!KSB;c^)%pjHl9|K4OI-ncBu)A-8u57L-GreHX`l+J^4bEh2uvNdFZd@YzOv449D z#+3Q(c&FaCZRqg5#oGK8y0CrH524t_#I86(Z|W zfOZ*`l9}ROTGeCdbV{_t)F(fsM}XPHuI4Dp>U#(thm2l6^ea%XA<-Z2?v&{rj@gjS zpyuXE3LjfGe}QJTkYzZRys_IfiAQahAQ&iV3gMKSgpx9hG9+36RU(HEqF)$#`xigK zXD)>nM5ugQL6OF7ILeU7J8|bja4^kH0claJ@mnH~ck28#LgCi@Vf3>aKZ|_F0jgzZ6xmS~{j%bmd4$lC%UH zKxwUJUTR@vS7_YDI;BwFxTbJ-6YYBkh(U7UXT2RIJRZ2AMB3CMR_NIro+8bjQYuZ_ z`d)~MlkUG#hCP)W_1?#)RMde04NaEoN?x&5;1m#`IN*~YYAs1CGp=KI2{SQirm$su zceS-Ij4q-~tBB6>yo>w6Ls5xkdSdmyEjNGo_sD&8`wdl-?RIDR1QMyA&TAHvVteOR z844Lb=I2VnmE`5I(J)oh=_)DKX%QXYBFCg%B^l##G`HwazZvh^3MqtgJs!nX8l~WyNt=B}!k0 z2FpTm$is?_Gh6n$rM=k1Y*y65+8ZLf{d(`XV*&;bRxpam;y);5fm#;tgwdXpL!jfK z%ThmKUF5l@&sACdV&wT0#?7JcKb^4rQ?~Krwc{^O2H+$(RDUCFo(H6{`66 zTh?#adzUv)(I+9)8xYtBE|9!MFQBpTGn1I1W}IV&BOEicnD(0^DSp*i$XpfBRr2j+ zpRVfuvRhTc9&rlAE@7!n9%&jy)Tw)XaOn1`Po7p2Vq$lXwA6y>Aq#k%vdfJ zox-mQkRN@M-B+EIg2YQrj;hvlmHEz4L(6i2ogk~7y@6z7-n-xfMwF8s z5#PI!z@5K+5?oRW<7qh1)a~?%_h!fRark4U@HcCv-zBgoE@orTgi5nQEg_^?$sh)$ zMHIuui4B0#pyE%kyb|trMla8p4-xxp%MO~%*4-vNAMMGM3536(!b@uO_guBwP&;l?`cd2glvbk^#d~F5QkXXO z#KLe8jg#8BbGoIK%heo(4H-zzh!zR-=f5o26RI>-1X!gKo{5-SRsq;PL9FG%i)>@9 z^%Wk0}MIq$BDWt0_t&EYx;ih7|Luwfhx%Zz)4o^N_Mj%A6*rkMr7dkN1s@bLK0XK#te98B-0DowF&%{aJ%b}Zr>h48%H$|zoi zrGieLFd7o1T36;{@Un2b@D+e0=KOq9f*W&iLMJ)5+*y<-9-w32 z9OGMuieZbw;|Bs@?y$Nu6s3lIvfuct4ncivSTef0mILp5`kmo7<9>_U=k|(Ld z_nCX6N;C;_n&z#QMFUUwYdOenj(W5M zEb&|i-xh4qX%T6RCq(ti#}32mx|@&U>>fag)178;vxs$V;o^C%Rh*g zVq3Q+gPOLkjn%#>Q11|ZVab?(OLq>m$#_u!tIgCV!}=vPv;s_HkIRKLrJLc19m0U9 zJMYw7QcN@-CQV^a%Z?KkD$S5?-X_;M0H?C(DYptwHVAV?3@4qQZk}u#C0ReBL{gS* zSQ0hSs7puGHSJ7Cz?XEeebv-SpOWx1iZ+13$?xZZ$E|;&Sx-;ka)MxeQE90a_5b`8 zZMVJg?d!Za#`0GX-Z6RN!tZ*kJWlG*+Zb-wt_`oGW%BaX#i3o!NaJ?NI&TQvH_$~T zGD8~GrqX(?Ia>RMcHpeUDa08z3ONN28VHgRBya$cjN!hTJ1BDqH2r7)DP5Oq7n5HRm79LTUuS7kRN`@?;*0q#yyU zHH!!BK?6DV#Vlh0Z;5feh=If^;V#(?S8x5268n%U zT468x%Fjenk}-pR=U#G?B(eO8_=||%VY1PR0@111PCB;Ec-mY|N-9TQCk_$P+d6kB zgQFH0TK6(^dO{Dwe>&t6s?EW;Dt!>>IG4k3wArfGN0w;HY*F}1i%&CXQ4&;00me&` z>LVoTqCVb2sQ=lD_J7XSh+=GPY|-5LcM6A?Q=DhyggW&3JoWrgE*2!}6nYO-iP6`{ zOT&@K3R%E$U#LvRa?hX1gsMVg*Nd2(@e`)ae+`C7j0QI6*l$L;wAfBXjA>6a)2$qv z>x6S&_!G*0&nOiz+rkC&&1DXD@K);!FR+p%+F?|c4=rjLF5=>NhGGn+Vb{-0O63LA znM+jzoUxsiqJe#USb1JKv7;OucoL|LX+4K3+5`BL*`5k7uN!R_iL4E8=l%bt^uK}6 zbcH^Myn~^g2&f(|hv&_nAb!{JcAmF#;Rd{wolEk`!k%46;8Hko=YUE>7 zIWmg{^x>7vR$(w#P*9k^XVm)6{g}l7Z1EQw#M!H*$_*tVPPP;obviK3ZrFQk@9@gq zn`#^-YMJKpb(M#NF$9*3ey;KdNY`&p+6?|_h%tt*vBZs9+ro`lOy9~%|qgel1XGP*n_WI{xDq!|92 zdVQ_Q(gd1+tu4rDa>pnse3sO+cj1yVx0>JCD2MCKkFQ*5c13^>{c(Zo)_%B^+^Ip_ z!|M}XqOO=+<)^AF9$j9#)-@BO1)AILXrZW9_!yPvHiBPD>Q7xgEccA%WnAa`uy9fi`GTEzDzg|E+%^>NbtmJ@vK7Y+@?hk2 zCypjO-#H?r?VV*OAl7cw$-8p|b=WA1Ty|`p+U|!_IQkJi+9AlXQPFh!8?tQb znDpC((G;D++mBp}m2Q47<4d6xrc*to2aQxv5;Ih$>N+#F8qM)D&$NxkPn~CKhik4@ zA5gxBNIx>|9z2ieMtY}ZR{F(Ak1H%--qt(Epn1X~Q3j_RzKy_lmSvAmUsH-lxriZ~ zm9EI8g<*ra#3Ljs(mFLX$3!}l#omoTngfX=!orQzJhE{`j1CPE43dkeF-ULO8vKJX z$lWE*)g?7#kGQue7J?l?8vrNMdGA)%^Uy#c9(3{a=`qoX@|;rbgUGk3|GBd$w6mCG z+7|Mh4FQU}TNQlc#`y*?517L_H6)k)NXZP|bFh@Nn)t&U8;gjKLyNj^D^+t#dKl-^ z#g`U#=#;#oZ!efqqBrVPOv+j`73m{n$z(5sv#wYMo#Y~Pqs_Se%hd1d)$MV<%!5mL^N$^)&)6p8VX!KYpL6P>v!Uf zlJQN)5nOCpUB;DJxPgsq3ZLS3A(~EEB2rxCKsU%ULUNl%lL4B_$5~nFpXHeenj+bm zb8N!RUhU|^8*M?1^$#7r(#sFroG#sXw!Cx)?lu*$Qq4qyJ2pT);a`U1bEaoV(&^~ z`#BiTYJ%F91@k|PTLUBaapyy!@N@dfwW#0E#nSu5(gjqx|JX86y%Hs{xU0i?_a5HUi^?39 zwwAycE3sR^i~N_u0uZx4aLm=l5>}sqcydoxXbBw~u?&KD-^s_RqH6Ar*x6i!2R5A2 zsYk)Jhx@!o1aCR>EqimHeG$^P$t`}_BPQqLA?wG+Oz{byaiaiUJdJR8uZ%g@$){gd8e(7-`yVNgR|k99ZU>D_B~8g|=+?;W67~}lE#zh|?+s>|A9Qrw{uvrB8!m61 zNaVhZbC#+6aMN=8vHa^_O(lYp@ve6a{Ybb;puRX6Ad6uXW41v4exd(%C~; zkFv$8{Z;gz?Jd&U>S`2nb{S3O;Lnx=5E#K}`e60uk_h8Y*2+fjo2g~vx?8e}q>d55mi#S(Vy`mGW+XVTp zyG1TBk~IY1n=IxeEbsu~8H0ol-3tbKde&;+Y%eY@Jd)=#uPIRTn8UA3bT`>+K2y(+Dr0?U&4@LJ!Uhv{0Jf?iXA!M}nO$~931i*wp! zO9)lMw2Z+&#?|%~xvsR&LfUGOqLWhKl#F3L7DnN}k)|{#@r5^N$TGL==3D zT*JTX`jltlqh!muKv&~bRzEQ-|G>!kHc|czs5Ft4(Of+H`CA}geeQ#|?|FvAsa`w= zVD?&)W@PPuzaWb&F~vsSU13Fxj}T;rOkivO_~+`6y-}BYjS3MFD08kJ z$flMVU%ZIMPp=E0FE`0=&Es>T$Y&6g%TdNr2(DPUhiwvT(;oy{+)@xtO*y0V7bC_N zC`FRKpUT3U&F+nJz%MCu?1x80+%{a{5j-G63sp4#B!_-rE~AHX%P}WC-#xD3)QA3jy|#81)GBu`0`^5(LB~ zuII;c6owGPsUKl2m~cd3Nhp=;{0$KJ)z$nn!1oTU@w3jLL*4&whId0n^u1Z-Ycg|# zs78>_qMUk=>Qq}>TX^2beHrPzH&+^uqHHQsfKJoKWi1K3)u8J8W0HR*WNbq=To7Nb z23!gkTDkSgyTei|$Qw%T?)GRZrlzJQ6iq6KlC||8RUe*GpizETS68^`+a5Y;B7d`m zV58=4ijEP#at@K*f*M8R^f{jilsZzPqzsy_4qP2A1IOrWRRSM5HrTH-6>^5H5bSfN z@U_zaHYu;V=k-t5!{;HO^@MgI!$InSkyYGuVN(Y>LiMU7DvLzCP87zSI(r%ug*eO*NhyFdK@{@^{f3rVM(qOxY~ zxnD%IuDh)+o=lViaRVz=JAPiZUY_ z6_vbrBD)%r>ITj0EHWgcbh7l^Wprcf>RArq( z*qIxypG;sc;;wh`#_{}e3zOBcVbUAZGhJy1`ILZ@vB#f|6FjvS1NFi3>DOt&$l4~D zPyrL(x^cFzALMYuI3-Qg{ARu7P;xSg$qAc}B@VrLz6fm88z~Vf%=E%v5{cH{>%u_S zoLa)P&!HfEkKFw~YOi&Fd#2I|&6Ibk6k@%4dgD)R@ylb;An+IAu1=q|@6C`DQ6d-j zW%8VI8kSkNIYODtGb?|j^dvjRIuh=Re8(thp!zN;M#Io?bB9{sRl6XZN@S3bjBi9# z0kf*Cco%kdTw7Zg9N!>&3=zx3A4|j!sM=K@(iqgM)Ks9V_>dJ;1>u^eolwp%U|PgZ zez_JELA&)FfKCF3zQEli8d* zf|$|56VDJ|FX42^l;+*8Wr}KU52vhaTS4v_*<3n~G`fPjeox^$dK&NQa-)09UkTOn z9*PEpB55T$*;q%+iymw5(6y+OY&7!idHCi!kRG+p+cN6Zeg864#ARK{q#Ivr_~C^a zlghF^T2J)~Ehh8I&exhObRM@C@1(siZcbW6@s>UgRX)tF)>~{;-mYb7L4e)pRQRDQ z^?A=Bh29cQ@S?<)>3BWRe2unX7_IRLeBaAg7LW`+xOSBrkq2-J-tb`<)s50jU5Wc$ z2ML5KE6^R1P150Fi6qk(D;{a#x9Zo#fShXBm{LMw_i6pO;wTjc2}r6(@&3_t7dUYM zxrMS~bBaDdSS8ss5g+kp4@*+1rv@gli><7QHLZKECKB-#>xzMRZU|5B3jBU=Z#L@0 ztQPX%9AB^;okVji!J2jknIe$-SN9h{{1i823PYf5?o&nt5ePuzww#h^4m+O6a1^T* zI*gf$c~aW=bz+g`w{gA6E?dMDLUc(nT{u1k5I>M8E7M=XIxUgTjtW@KME11M5RHr1 zC}=vU2uuoFG&gQX7vpZ~U_0S&q+&9vUbAjdf6b_5xSZ0^z={{d{>ZVp`33O}pIN{- zb&ODfgn?c|+4MJ6hL#lv`pRO@dV+x~<1ZtC} z<@|8F{A%orr*^Pg%G#~Zolt#b|MPXT*w@-oclx9X^+}ZKu6I*~=L`xr9WW zfKp+ELSHROB8E|wn3Ph&{;mZk9~wSVzBj<#)XJgKNG{)2$e=Uw^MLSt$W(_ zYV2_T#$BPP#?H%5CC$v4BkCf?U zW|COhmiM5K)Do$w!hR?%q%q=@!N%wfd3#$QlI9)Br_v%y8I4l)QrJBlCGz{(jEJ-L zm8v)l{}aG6fEu;_$xwd(p~ml?>^_w!R8UB36P|eO;j$PKTSTyu4hpv>elIDgX>b~o z&GjwLWr%~uW=&lr3b4)SI5@n^?f6_=ol$a`8*EsR=fi*4;X8NeY0aOy7A*O=eU$Tk z<~tn;DPa~nc}|6Luu7_gz+LG^+83XCyEP_GtNYYr{CzHBR~9upi~eGJK|w*~#%$b+%gY;H z$~N>0f{1Uu6HK}asIU#ay}2}#>==q4~6T;y8PD%APyql?^wGs%;x>4*FQ;;mNM&njs+qti=>sM8?9{wzQ+apy8m3B6cd*juy6^W8sbg!znjxkeZm{K|HitnY?L z^T5k^Am!DMv2ATo!%|wiLlcc!rD{nss6}4+-Uan^J=<=pXg$I`{QQ^YMO-<)jo5$t zCw*#aY9Y1iVlYWOgFV(JBjG;xnJre4t#kS8@At31r-HFeCkR9D@9z<8 zc6KtL3g4Mlt&dFIZl{VJt)uk#?zchb)e9)YpIiu>tT}k1M$&{A)|2=#GA?_YkbI4Y zmTeo8C0TA$D{%Nu7J8=<%nCuO9=&#|QtxQI3{P5Kb%sJH!eAjp_FG@Yu9cSB4;H4B=;(tHAE()=;L{hcaCZCePR8;i=_H?q0%B;V>nb-L8+=837WR3nmpw*^Wx_;5Lrbh| z-?t+W-#bObK4GKNbTB`VE()LIbF)4wO-YT-ah+P` zcZagBtBy1B*bD7w(1H4d-t%Fp9#8Ezr#jMnwx)hXZm(%(m!x}L|(B&HLbA6MH-J@iW5`=MGcF#@y2@=E%= zXHX-9p$y-qJkuE1ZF@FbF`8Z!&VN)A3{x?7@d(|%f21(#9FP8Y^%=utxf|+`6M{8y zqEq$UldnEo&jPJPKP__@c0JS)z1@UfiL|S~c)$3euSFH{(UJOsf;}X(`p)(?Q(Hq!FT{ z8GXU8-^Amut}<=`)*PA-u_$WLiT4uhF5co9&hs?!sY|%H0H9AGk6W&NWebZ2GTm z%JQ&t>V2rjO$d2%9o^lVUH>hXX%p~g-5vw!>ry(_#bC?(El#_$IVA4{qnu)t(~yoH zdL+b2Bb0$ewZ*>>FUdkk=e?DlSGIDvueG)HSQ!?cuTj&O4ew&&wfS)psYJnv=`As= zrogl*1XP>mruvvp{;Ps+P^}uEwl3fnK_R1?$98jk|Fu|)7|^CpYW3farleW z3vy|rrlU9HFQ6vPGUPcHO{fM_i{ZI!A zE%oUVBs52}ivEY+zq~68;&j!MOQu4oD{P5MWjcwFzXzOFLTPuf(@(-wXe^J#N`xu6 zCVqRT+TkN%1}{ZPVZqV1ZT0l@_;Qqe{z;%b4*Yllc8P5o+9b7=|x!j+9bDro0drm%)dK-Fs>ce8%g;>0dfc zc+JHUu~Ju10Na{LBI;<8xrK}OG=|)c^z1LpKe}qm5CK7GV#~jM4<1+ zd_>1QXhidbtN4=|*EQ&5*pYQiESSprsJP163}k}AG>}z-VHWIzrUP~f?A7d?gTWyT zd@V)ZLIkOm92%n1yuI%u5@M|%;Zr&=07++YgT1i|j@ z`OuWc-W5b^|6qVw-2-9r!4g1Ru7frl7J7`AzhW zKM6Q!QDIr|f%uiAlg-ccaI*N7HIFfQ<*@K7cLWM;TlC<6)f#4HX%V@7jv?;j__%aM zJL&8qA(nnl%>+(%*pgkmVlk~(Yb?_EmL{}*xKU+I^IciI$nST3Z?DK-b?VRgf>h2C zNZ}-4!j~_0eH=fDxND@E#;2LFT0-&ehqn5vrg(&=(?2VHku1IBpo{xs$-FMsFi>N~N{dO-5Pd8W$|vG@YvlJ6ol zu#=@IKJZNv{)f8qAm6!W|5+mE;>qE;Z|?H_FE3CCaLScZj%HSfm6^6DC2DJ|BP2rW zG79NbcvW7yTH9cIK@%+lI2z#`Z2Ei!-YrHt$cmWIE+h=LEHS#EsAxdUDzec0y zDmPmrh?zF(pQjt~5-5a3u48h|M&q*ovk-RhnQ}(4wU^LI_@$)6ISf!S1olTq;re3P z(tehyG{LSwv4fqGpD%(j;d*x3ifoWf@#nJnu~?LZVsTT==2%=sXbeKFXbUFjW_41O zw652SWaGY^l@e~32T)Ey@p(U1%Yqa80t*6%nT<`9;hmb7@G|E2xOZ0RjCtk3Y&@V$RbDzq$>;=S?!n}we2n}u{1W)= z8xu8OmO12SJs{0QrV#9zXp(;&-_$-yMs`53T^>xTBcB5ik!XZ2_q9=0l$@RtqGCIi zs%5R2C};`c0cQ7gcInUZvXoxD0J)v{+;_z`sn&2tEr%KIrv;))5e!zxpr3p=j)^70 z)}O?z?5_R=!~~#kZ;wz!0L)3QCZWf$yz2Ts1mq~|Vc-!n`YBs_gd1hz1}?9^D|Uw1JdLpWB~SoW+dgF$E$2U*{Er4= zmDq_*9_#^nMulb+#qtt`b>EEbXkeNfNNTE{YN9tvUR{q6yO_L{-_+EAUe{A!KNi=R zsoQxYsLOjAi8mNc$EQ{ZHb@v9Dbhho+#^w_W~Rev&?a*lZW1PQMXc!VL{x0!P{nGF znblAo)9IIhTG>`LC`6-nNAefcjYd0dzLrSQsvG9Mg}_&ozXp?EAEqhjISvF`+uAnn zZNmAecE=Y14_-aOcxJ3Q)0qX|x_RvLP4AlZD301?q&mnwBeZhV42BqVzDj4h@yUFj zqmQivlKtk7uz?9;mQFS0Y3QF4;6a3aBi5>}ZI0n(`P#dge!@Md^_hIY-Y;sGH+!84%WIFR<@L zT*o8RW0OYh%bR$IX*w-81$6d3tmrEe<2u!X&ZhFYU>T`=n8nsLF-uiPf~OJniFoB4 zd557ixhwt+iM~NM>BtzCBd8JdKUQ0g-Xp5~Dvj()Rzhi#O7A>@451H~nV~|G>sB1s zBn~(!CZG1}yW0Ppt9f$dw+jnVxftBB8QJn?*Bj3os)@(w}8$PDRnXON_% z(kf!YQICDe#3+l6hN4hu6)%;@c0|P>Fq81x_uBKTZ`dEkK0dgtQ9blK%NF8?pq=~I z;ju7cLfM{W5}1;bLM@*z!-~gRR+J87(}Zne#>);#__9hF8ZJU}yB~OWUGP}tfk%U0 zng%)Se7;2g#XG~z&d5OQ4fTxtA0li$G8hDtTNN8+gJHUDGG1h%==bLJR4+ANaSxMF zo~!Ly0P(0um&>R%f_}B#vq6i763fJVJ!9 zoS3=t{zG{pi76;Mlo$|)j0@qGis}pFw$&Ir2yU5`%`3juDUV;3A`^+8X1c7}7aCU? z)~T#zq>%sF?PSYPfnZwiU5cqhfM;T|$Fy9yO@l_hDU}!IaS+3sN$UUBaI?F+xjMy$ zIWa@~Jcf_}>>FgGSiV+LG~nsK`xePJQz*W>T04HcTzvTbAbMfuRhJH6Oe6)qZJlk3 zN*m*(rvO3WpgsOOcKA5PbTa--V&wMQ-Dk|KtV!}FWb9$=k;9XwnlxgD;jzw7G_MM_ z5DYE$XcH9uP2}Ra(M;ltEw1~kBuNYjZ$O4om^>h%KqeVbjHttKo988Bg0nlo!;W!@jWsS=vfNA=rDI&j`uW>DrcM5FQYK59H9ojQV6$DASs!=#6 zlL5Y>9}_B-gek#O5t=`wIn>$Jz9cY2iQOpTe)(ekANx=$fOdk)3!^pQJ2&`ly+6Y9 z;JOip(Qp{zJ*vN;O;061TLq7vg}Hq>GovJv+-Mdnyg?sOJSLeILMh`j%)jpx!B49d z2fxUEl2mhI5W)ezI{kp(%waV|t{@YV(}GuLyN~FjQxe`|sN>ffGFdwj=C$!cC<`Mj z+_};RrqXK9f+ZdQwDrXt1K zSfsOXmIKWMxDJ(R=j5<+b5$V3KC5^o#bPq2kC4iB&@2UeAUmNJm1q>%%Md566ep~P z7cM@he5Pe3TYta|AaxW+!EstJdu9=%Uh$N#eNx`J{zB9+NI*&YaZ2oFA(d4k2&(Iu zc|`YuLSyIbBCV5qEoq1i_+nrsc$GOtNvD+TK4PBM($)2wN&!taHO$!T4A*i@OVA6+ zwYU=TXSJ%DHlAy2f^1MAc}Jwj4AaZxG(2o$l@Y{~chEgffocZqXplupQ(N1~c;Zk( z2`ZG}K;t>u7X>kD1ed{pN+g$x?%j-!Y)8-*lS-@Z9jyV4L>3eKBCQ(zJ$P~VZ34Uh zT%+)fy&DA`4UGuo{2xT;TT*L2wC+k&vM*7{O?I8Y=g=%03RL0y&Y|LrtuSASfc4lw z{ev3|owjNL2*1>1H8JlXp8Yf0TUwF;S=1CS*E-2h-2|wDkR3b*RcIou9Lpg13r4_( ztFbH+f0_Nv`W8S1JA^S3^c7;Ke+qdl5T!_s-%_0GXTLkdG+r^u1eUi;{jdlY^6})UJZ2y~3*f0;;Kkg|`)_ZB_q=I;l>Q*AU*f_)D?eiAS7xK^`j{q){bDnrO zrOO1UbgsKuEGnj4)Z`5Qg}OX0i6~5&i;w>4Qz2CCgOOt56pDDcE(BYzg2zsH)wbmnL$2MgNiwO#}UCbd#uG_e`JY-;O!< z!D+oH1NfiK`xyqEt`i!HK?kz$|uDg0&#-vQO>&t^x9 zQC*rx2U}WzIO)Klnsg_foe!WPF#Zn=f26P2w*(m2#AR!)e)hz5n2N{}N&)`gMT|(a zzdB&Te`|cV^g7)}`22k;#iC zm{T&1JD+_l4v}uXEkHVb##rPh7yI~G=P9B#K335v47t*rVZk8&;~BJz_lvfxmCH;7 z1B{tL04_{8#1g)GoG;Xh)$U*CtKUswz+&~qJ*_K1i)5!c{J`xFtlsGMWcnpHTgK`j zx;5N};2B>(F{gvk7|H!lB!Zo69IMuK6x7{k4TxU;O%Z}mz|IZ~OC(&yn?Y0;qnXs~ zrf5iG()tDO=JUIztvW~4Hq2c&{(xmUVs6wg1{HGh%1%6PAK&@B`T z^Ry?fYicjwD!)h}TK&G{v1;20%yOd(Nn%31xt(HVy}G($t%%jCiQFhfwOHAc;q4^$ zuDmSBRN$zN%zJ{1z#zn@ar*_FS1nC{1zZi8h?4=KfZC{A?amFwGGmFGhk|6zxQoZ< zR@RKA6#_P+RVg8K0?3`zAQGOep}c=@Cm5Z(&swReHu%MRq7=0$jcdX z(aetuLyx-Abdy>Zkr>WlUL%`SQMjH?EY(r|_Lr)zL$w3zL@)D8^Eg?e9C0`)POS}9 zwxlC$l_oSB&4E+pPB|*dde4B0{|iriNfvz$ANMAnre3gjOSzzZ<#8s<9)Y#1wc8f~ z)MN>BvV(KZB77ROjoVPm07v_7 zH^0jtgZa! z#MkVFV8+W6xP zuwdatO+GTV5Y_3J7%!_h(O2ZVFKgsU;}m=9hX4q^+EByvIEG9|ABj{;z%C z7?4(oK_WOrlXCDofJ!=1iWDtpNo86sgpJ*5iYrjkGdX0U&o|?##A%nWrj_K4a9ouy zS;}+YvtI#@O2QLHMXkR@9Aw*wL2h1npf#(Np_r}=6yBR{2;Lg`lBWH+@ifD6 z5RS>DPum`%W_gx1jcSRi6G6(ASr#MS4ZBNR@dE{PU`)UX!mAmD&eiFBqKUDzGof;c z7`b*ia%Qzv3OMm4wn753eg(UjLIDhNSZNvDoeU=w(G%(=T1>30T?MfSvje7(>*DJm z=pR zwG*({zV0AnK8+BeVN&>pAvFxOOfHvsoThmsS;wnFl%S!@&DwHU9WYrnhX6CnO%@)( z#|c#>J6#e-4bM;}L)?Q!msb(;XEd$a)e(a1fs0GqF2J&$|TMUS^ zT>c4hWQj?%DgaN

2Vt1uHhtzC%WQ@^9B9>p`2&@rI%EU^)5dRbWh|+NJ^}MB6>TW$|fof(H>fF&yQl%;bX0n4+x}3&%pZmj9VB-63 zQJjdgOCLF3V{`xUF%8#~0j79K>2Vo4B_(tz%U=%3pu|K?vHAQigm0_)5kny=0AL}N zkcw@WdV(3nteT`U51PbZ_#{OF$8%~7RE(eHN zZ{Z6xGH2nOlY>JXziqO02LfW@*ljv6o+`EZXBxKdh%p?&gdZOfiE5+kqx>fu=Z;4r z=#CO5bSyAxOHCxlB4@JfSpLoOFQwBwKL#=BS5%C}3UvS?RZzU9<6zq!EadY5p4GUl zALc2QVS*0ke)Oo&od6=#m=qXnK#0eBksl=VOsl#ktC4~L1{6!wi$*pg^ck&%3|guS zMV)$?D05zTJ%RbiWRNfBc^(^C{A0~(Ynmt^-QMAS@DX6Fc*LRxRZ+boCYm^ zddl>I1Uxe}rP%>V617}S%uwln*R(05^Vmq^)^@ZLXa$o65E6*t!9ExudpkSobC_b} zq}@j7tnyOh5F!yb)IKal@dcBHg31kM z6R*i26O!7auU;OGLy9i_4u7Rr*A_|l{i4DaA+J5(3EHR5uRtW~M|8m-MPud0zyL>6 za!P~@)|`cR#vm7ES_=K)N3O&1Rp!ME%K7Z&<@+GX=wRe2@9MUc#TXz*zHmB;!%1M- zU6WdBTNgF__Zc~SRHZHBA~sbUfI>dp|`?AW1WMnw^^yEXSRqhYpMv z*2Fz}=3>Su8J9&X{c>1z7x{ZI0x9&4Oh5DbBWNpm?S)N^f;KMAgmvcKa`H-AGzpEh zUKGkHQq0veBneRhv7 zyNnWbk63GfMo2DSu54&eT2?&raE}>L79DZO6`)>H?EHJ2ea~#7gJdmLiu?pY zdkh)NrSTdDDDxoxSA6qpe0w0<-cyZ!+iDL`me7ncm933qBe1siB5K$vUH=n*;*~4+ z{Oy`G%J|eipz;$-8n)EM{!Ht(XqM6*GYI9=sX>W3n*spT5Vl>z7>nk$1i9h{p6Vo( z_=se+;1%?X6pwR`3)HkJR*B4oQ}U7C(~ny^XmLk~)v#SZOdmA&X^Id;QYT-ThvN`h zh43IYx66L6;_@|Hw0}==|2$4UEnTxl^aBazkgKcA>@d$~OAh#;5PU52{#2%V*xXpu zVk$+xCw-KgD537``o?0#29=hbVxu5lXs}c$uYkGWGDhnJJWe(p`VOgyd;%hBt=+>R z@QW-cl})^4j#?3VLiM?^KBA}ivhyFV{|)Y}QN@2eay|o+Tw1@YHdX=x5W$!M@tlap zNn|8KofaJ7(|{e0sDY6x$GCVOq1Tvn8Se3k@fC^wMvNoJso}Z-SE^*|?b`5Bztw9VEd;D zh0piUypEN#_*}jqx#oGd0ta{`KJ^)6Cnxr&>ml@jKO zFFgwz1S41yFW+ONvQ`0809D_Eais!GKw2DrZL&?(t;F7pPTP(l5)dMuN<$b#nfiIm zx&_T_mB>OpX=G;9e}sH$oA7irMx{2_=2HP{Tix64!8+EIlarEj&a7H@730;j9-Gyt zjxL)@-CwrJVAcj>=GkRVC;MWCAz8`9uxDpyOTGL96%-b}Psw4D8DA=|g!`Z@mnMY? zhxG;9SN0*Hc#4FTmAj2vO(ESX1cqKtKqNY$t@iWkYoFg%#V)?183-yXD=SpX2@)&CKyWeqx|T^!Lo(a8vsEnjky%)p5ROI) zf<|%KDQ5;FsZ59@8yLD(zrEmxfC@Nw&{a+Dqtn4Cy(m#RjFL6~;SKi2PK6!Vbuu(B zM46IMr>=}b0;l0tLy6n?=Vb}211NOfh3`w_fy%>QBQF&#zp=Uu%pLG7)@GU05ymo2 znMfg)+Y{!qP^wU$+*wx6QAcnMO#_}09t0U^1;U633DPl2t0&8d1k~}=3b%XOKg6`1 zS5f^i$IW-G)?ln?ZbwLa{T1S|6$ndlkDwYg?URlq3Qr)Y6sB%E)+kMWOD~d^y5gk2 zV}(h52bKkHRiEzBPl&zw)xcePoCKqbI5K#^Z3dYi?d9;hlzO0`2Qe(ctxPu%`(H$* zpm_2jiQ91O8$@gJ#GqDhT*^;C4GB!N$kis;dF2!eb&wSHJ{eU~xp-!T3vHM!AhKRp z|CNT!47`1#cm$5{&wO|Jm-A!WQ;LW~jTX&(q0DGlKFCAEMG@{hrEkQ(kW9h=+)k3a zHr@{or8R~|%ssg^PkQZ8CdhKxLKcbu0}4^6OJ^@1#W!WGEbMR(;9-wq<6XRwj8Gp# z1i&cBjr#?SQnH!DMqgfQi+IVLUI!kFRW ztMJn^tADQ&k@Fta6q4hoegiF^nzH6CQBmJcCBb!)Ho>l7tqA;)d8efMr&G}O@>cmx z0mS>2d@rnvOWj;NQ6W`UUOvr_-HM~npx(3{$ceIRn~Jk{l=jtVduQh>1&-M2o`gQN zZOZTJl%eLIgKliO=TeNglL+W#;FV9!BYCD*?)!k0_I1;^z@2V-fF@+kB|Gw|k$#rB zbFM~=fcvL82oias>ueQecj-FvdUqgLe2t9)Qq?Au3mYu}_|)YR_-h6qSxDs!Q6;dV zr^Zshq;+iIs8WmIPUh7TIkvSCYG}{o$g@MCY8Qcg?fG~OXhu8NYUWal#8tPuHxzCU zD=W#z-7SDp&S12zntRKUB$v(+cF~MSsF*E)G;Yn_^{xGnJvV2t^eoMc@U>^A5V%3U z0sx_Ie&ISL76v^QM?uu6JVz@Z&)|Rc*KbZ~F3e}-k*BDK9&hPl&VlSR)c zulXuzqRNmAk>x<@Wg(~KoTXfY^i5JisOn56$c(wM@!|LsS+b9l{oP%%r-wTK9%-WJ zy;94nFTU|C@WJ8*B&pKL5K`h9>Aj&?%Mjs5auvH?yVgZ#zvdg1b=HF&qL|Q+h6`eY z?<1iOuTdEcU%u^gWBXZiqUwK(?175S`_x*0(1QT*E_@S>Uf78&4H~rQpjmX8a!v^p zo_V+o8!{rv4yp;B$gQ}Bc&47&7=VcsUcu0K8_!R^iblL_Gm!Ah%;jZ%Teoekq#gz} z*{;72xk^6RfmF5-W*6kwXzSdWe=}T8%+BeE6JdeRl3P}6)MNuQQ9oQxGKk2#T3_|+ zW^d?nSv2vYwRu){{?RsQ;MyMsWG7 zJ{O0oShAOrKt5NFkMIj9<$ZO<-jeu7MT1f%;COFuZ+E3eA4BIXXdb!0V$XC?0Ou~( z^EhMVvpsCbRM~QYR~EkzMhrf3u)a!DoEE}Bqho09+#F`{hZYj6J;OX|QHD`OOcdZsZWk8GKeDayxQgeJy| zf8ER;#WQXNUB_z1ll>Fzv%~InR`BX`Dycs2ydTQrUqZo!y4ZW-0!H7gK+i>-S1k9I zd&bhNd3z#4swfyl&}M8&I9EDLj>(zgVO zg(pSQv6E>Cb@3z9l27}ms&9z~?C<-N#s|-4f5fbr z>=7yfBo;)_5ge>}44(_2xPxNv42h&MpePh8^V9j$cCdJXO9v1~Z?ppCSn8oNevyChj*D!?Qnq)9}ym3Tp zPLc#w;e-R6o+zL79r^L)Y5C6z=_JdDB5ekb=LAs*QPa6*3_8Cu>yn%e#q|PttcHfX zX$4RQ+4Fby@;Vh7CiuITmUY>`|30q%eXzF}PV;+ONC|Qi~VRmoNgw-HHH7O#& z^2NAK@H=YM!}8czN05!RIU|#&r*lV=tik!V(M%{}48AgI9*Hr+x^mx+C=UTW)!Pkn zlJ&09zYwXb)9Os=XtVX)GLidRIO*Xyv_=gNzBD=M>cTwuqke)y+9WBIXGXR8f;cjqn zaPNy{xMDP&%fsYzJeyXlqIkRrd%N({hU!;VXA4}F?A5MM&YIjQ9bpsOjuQ$&-J!vA z#ki8&wk-V8`DYuVSopn1?Bwj4^Y9GPyG_w%k(tMNd_<6M`AxkZQjQ3! zTI7{wwr$wS?Jr#+4gyn~f)^|gJ&})58CjTDD!ks;{pV;<+;dwUk5eA3J1qt&YnsA?7LKZ15^2%iChiadIM%Qgp$P(in9p z1?{5oU-)YNCgOKGWc@ehuScPLjW4)~noCh@;92zSdh&MjGGH(1x)x)cvst=$l(X^M zOc;WdzW|0H&y>Gex=K~Geh)V_scqJVP7ZUV#6goEsdW#dDP;}x9wLO!8# zOZ%+1j#!+XS#rkV6hHZlBKjQHAMtXZk2ec3^Mr}T6&vO(|p0i$(~WaaCJobfOw{$+QKQg z^mIWV>0o;gSaBbBBtuWpY&@ih{C8d#Mf z^TizCsA%NpabPvzdJCb$5-rFS;ssnQPltN-B(=a+>%v-+fT}~uNu+V3D-bUW0t|lF zQ&>GH>=FC1r>jYkXcSsDRinR;!UFwY^TPt!s)0j<%q+^AB4^2BDVeg2w!x&Se>)P9 zYecax1&rL$19IgaLN5p)__Bu_x|;t>B&G*T&ydv6g(=$ z7-T|U2fN168+l?6a|qbdN}+f%NS)r5C5cKq!;m|r?U)v~4~*J=1#O-`&iMd6J03|p z4$ZO7uuT?7(~-#36=}LDqDWCjyfafo5muvu^0D>nu-)VM+fa7;DpH~CqFVf1`%QUh&{6iH2mpHq^g3UuHNyBsn^zP$>1%{G`>>*7ZsC! z=Y<#s>TQK&mvv@#q5}DJ)kGekxF8X=AjTsE(SAP?wu4c7xI8?w`R~8+4JTQS2~G{4 z9!6y4`OO7#?>HfA9wSW75gWV*h)xk}qd`QD{zmwF!$$<;3rA59aY={yvx$NjX;%wO zNVPh}R8OCQVvAH)a7h?dqic|oi;VI$qNgpaC_K*q5hGzHnIJyI+Y3!I^oD1iJG1j| zuQ;L{C!AzCWqj{@-)sE#=Knpq`P;2lxKLH7Qw0i1NG6+*M8jh^6ef|@m*h72I1=7WFt`r_7X))QOY3H9G@21=Rf_I6eo|JRnf6wZ+PtGPw#&9 ztAFZ7?~ECaEN1{Pny20Vc;(>XUi)xsyT+uC$eE$&MadlzeCdZT9q6Qvt69%a?eo+7 z6|soIPS{c8Sp>I(ONe)>1s|10?mGDU#bj%FP)b*N3@!a z(LrN0XrFkkOWV(k$ly;l99hl~zWn7cd*?fy=Jx0}?aht)B3P+HO=~06yCSbeKy)^` z(4N^*@0Wh~nnWFWr-7<2AIzpTA7$;Um2kRwn_OZ}uhrnqg#9v2-G%88WfAGM`XsqK zvdjq4)6@x_$SW3l^Al1gecZ$L!SJx__n$fQ%%Ok!c<*ap`(JLf&IIAeayHReU0r=@ zjglU4M8H)+AMqB%W+q0Vi2c!@Bz%I$Q=+uWAKG21oqAdh;@?`eUJn+o?_VOH``jgR z`>pR%JMMdBgj8b$#ygWpc-{j)bz)MzMyXM(WDslT^m;qdc>yG%|GlHb?#-JIw~514 z;2b6y)QjOdc>M`M0(8T+>MTj>tUqF zHv$ryLUFk`zeuh`67}#QahM_;Sj*b*bklZkh z_wROPmyTR!oKwHwcawEb5soZp6NPQbosPkh6IHV<8?Tv`*7S%68wz5UYZPp3kj~l~ zxqbUK_r0X+EZ!$;=$iAcKJVJi$kYx&#*Gp65oz#?Ly;E96557y>P!KSEN2jB&z`N1 zM%n$rgcJo#2*4Mfq#{JY&oMuBm6x^3rjb*T$(aim$k)IAb#|SfzjTSb_uhNzoU$i8 zimRCXGgipgWAbwHQ{H|t?`RMmJ3KselI0ZP$Z`fjRkJ2^5Nx-^VP;*9F8n!5S?DH8OoI%N|F#Vw3bR^-T9DR(MZxXNK+*+VZ!!0RlmRduC zV~Dy^{yxu-t+_Y`KqFXc5B;S{^ty$z9 zle8SnNh$$IWIy=957_lrC7q2GoY+E#xw$<#L`UI8PZB8H10YOFmJQ-C6*#h-J=7>s zHe{kSB{GwkJ-jzCcVQ=BuL#@Yi(mXABZ%wQuNQVcCG5WZTlc#Rijibqj@^()MFlBg zZf|cxpLHJbDZqKxW)Dnq@R5hv5C7zz7?0F3OwXmZr1WY=p5rD;OyZ{3qXH(zZpQC2 zV9vKni89JK^>cZ7xq0Qv6*o+I3UFjOV>o;EY%{5LnvrBANfuGj3#huf*>&uJ#|*~X z;0gckcfU*CeDh6m;lc&21Z*7qO%mbcm5?OMYaAq*EFmERFD=y?ckbL_1A2(VMB&u% z*+T6kWiGJZ`!=@25?*WE)jO1+)?u-6Lqw{$g^GM;ZH-(wf10e)vfzx3jdk+gd+$?+ zPCz~2@ftXA{oVC0>8z#62zH%5y++PlI8RCb47&!1!@U0fo!t6YMU+`2Df{cozD^=t zoQuMnWOM0_H{R%7yLN4#I7|$VEN2Lx`qZcVrsuUyA4(CT%=6H$Q8Ft|m{F}1`F6;~ z^PeUcUcErhpT0oW&YX#kL3v=8y#AA)kn8VVrvw_(%caj>Vx%ObN*Jkg{?q4~)Oqp3 zMV5znsa*VAKrT_j{PB-}Onw43P6Z|@P5O%8~z-1rAwE{rHdEI>gm&rkY&jk$^z2-2_;P71^>!d zzCt#F4f6H>{B@>^(+I2aCVsHfb45URH)w_yt78{jZ1t7Z5fBy4qtoLc;dGD}^jgvzjF(70}NVj6> zqYm;=NsunT|NZZ4$CDRN1RQ z;U5)A%KPEGEDwF&Og@tgWKTR7Z2&5I#HFUR!`|^Oq0(24O5{gIqtU|&EiqAh{q@%u zC`m6+&7cL-#!;e7Bq-~2WC((4OcoWwk>zwzKY8-x5!&%ln?oZk}i0=!wDwD(9nRBv-pT|i_FkuJ(-9N#N44}LGMY2 zzbHT*Us_r^O4uq(g;4_s&4ULI7AZ@%vm{7?QYv=_Ny0b1rh~h8?@rxTDd4=}(?R{I zr=B``aB$G@G8!5jiM*>h7$;E*Fi$gW#H!bPAnnJE{`Be75dmT^c&*kUo0}o|-M@c7 zIwrQ?fB$`U{oo}Bk^}+-Px!4{;OT~l8IR>7NOg-IhjjPu-6LC;p^D8Syj;yUM(-(JZVK}U_OYpJ@KawUrgBJrPNJ8{4T1dmc>2vG;<~P5AC4Xls ze$=Vq69#RdUbER;qHe^@bXMxkWOygSh zBE5fgD&C_i7{>Sla?A+1*MYBe)a0r$SZU9?Ae9o<>f`H(JW9^J37Z#Y-LteN^M(LT_gjo z*Wo|@<3ECmF|)%r9a&BgUpRNJ{o6)kv4r0+je_cT(Z(K~ul0_ra|DMD5GD+J6w)Jh z%*6Hb8DW|rK(U)*eEFR_cgh7p%j==rplGpv*{1=3S4=mWc8-dcFwE(}E3drbQ;DrZ zU()ryN}DNouc{(Rhz+IE@HVwmgETqQb96eJ<>XLX`NSu{Tbb+B8K<2xGR$*$=woCv zlkAi7a7aAF5Ia}^KxD!e89I1s(Q#p46iyzK4<<@b^>5vJhX|*SoUaY!bBt}4%)et_ z9x6DpUs~HRd*KVF#m{R}b^Ph)pYQDM?zUm=9yvL@P`omAHGr@|;x;1o0UFzl;5Q%r z<`J#qW3fzzlPo8M=bn3Rf#kRV#!ZxQK_x<0#A4lqSjAonfOHAx!1!-<)y#v^u|x@E z8J+o3PH$8Lp6N0t)+wHqzbMzY{%G}PD`nca{XP3EYC zDnz-;bzsCvSkE+5{aPtPjDH6SA{F~(G6aA_2FMPMc`F`cqgt<)CaPXK3<(@NpwcrN zC3wF1{lGIAu}ckq5L*->OLkuJPjQq{$6LwglbGR2N zsNH&#I+qHElujFtEXNO+-hno)` zJeY~`-DTj&a?E(`+_~j`tJTi3N3#B9U~DsyZe&CfD-fAb5#5_;5e^LNh1WB;^9UtA>+Z!$~FYn#Gdw1*M!-q357iAT2WI0~cPrdl!QSe6Qk)eqM zRD>)eX@~vrb%mST$*9Dj@`mS;CEk_^6ShIE#&%2~Opzx@DO+3j8A$?Jg1r*Ziqvl| zRf=oD*Pe4&SA9c<;C`|YeL~?~CI;yB ztjH1*V+%<9p$2_tWj*k>sY6#EV$y1SC zkY#H45>uR)I0uDOMK1_$j)`rI`Ps@O*$wB^95xr52PaRS+s$s+#{2vI1#6VrM?oi1jl-jFM!3#5{d55j0D`r4(t({a7U%4$4rEJ!)9Sfc! z1REmC8MZ#Q`{)P1VetGgaq2eR`_8 zpYG}gDaeTzNh9HcM_x z%PIAAC`nM1YIPmuYlxPvOvJ*@8~F)?Q_=BSxCP$<8%8V}cgLsdW=jKP%s;2~(RMC( z2;+Rz-F-GR(RTh_H`k1xX&sQsREmWnAON}4|9>!u*c%97jxx{lUDQSjT9s>5zx(K| zzTEw@+ZQ}z-}>5pJ46I&<}u(`Y_jsLqB9w{TW7_lpDj zZ9%VgDKBe{XyWSJg<-RE#aFlEf*XZ*J`|uVC>g{IwQ9ll^)fx}Nm#?E(%F7AxsYwu zOnM}k>lJ-O|MhA#3C0c`dgjsDA@Bx$?WO_A8EKAmL?1=3o%Ag5eE z{^J6g_4XCt%U9l~P9$LvX!rev5)aAUvhB#_h~uW9-}K&VBcI5{ZGE^8PdpZX#SyQH^_lWYW-B(JMA41T#i_)u$!5 znVJ~$=VHkY-{+yKRwfay;`D3TIF9qm|LYBu_Ewd`=(7{l(d1Hl=E=Qq>Q=q0LNg`j z+B#d#l1;yCG%`QN-_A!g@nFFrXGrOqXDCd6#`_Tbo%d75sM- z%+0=-KE?d{NAj{10xj1ti7Q3s-|aO7ON6H3wP0g6{Y#R+g^NoD84ov3``HmSU3b$U zx#FaPiIO#*%l3+dP3au0zP`HK^*{hIR3eYgGc4<**b&X_eXtBf$q`j3bk%leSg23eyjD~IBVY{9^q^2Mi@b^72e1y zdLYCE|5NAND|7tZ;kTsgvysB)qP(QXF z+}2Z4HYO)~j@SLa#*o)|E!y_IdOnAy32RiXq5|Rtp&!M(Sfdvl+$PIr7;=t zQpn!j{b{xO>V0Y|cCXl7liU4Lc@VI|G2wNEUDA6KZxG?5L=sm0__)~CCghDu)A!LEzi&DS=RhTUTwje4ozrp=4#>VG>L_ z#Ge?a0+)^hjjIES3yym4;b)+%^au4^y$xGuH=i<>)@R8F<^67x5Jnd9#48ssdiRApde8msg>Afnl;4CDYtAeG+sbRN*Z zMbP`@rGS+gKsE`wCK}9MZxD93#N-TZ;x}JOrZABby<8y8N(;|ixYX))tUA*KisuzB z6)*kN1t110UxfI;UId>{yrf;VSDn)*hki@OhMCgdyzK>dH%x}&Fta#vh!EYdyg%Xu zC&fkr|1;hNs$6qEI;;wA+Z#bg%BhaAkY8t+^1E$ z2-nq%VaEDfLq6USJ)h7$>;u1gd3-k+ZIO%aoA#nC(*ur3st+W1)Eh91StW~D=3s9q z;gSx-m>C9R+g10ld&AyUfkcjxoM`ZaBk!Z}%Pk!(pAn51Hy#Xa3uKlIrbq)GEAY{r zfs$aFBZxk-Jo&KeJDMu5eF$R&D8M{tld~tb_^d3E48d>0lK+@_@B8QT-O!|{sL1=? z9X@yEzwS}B;BX_(Y7mRAp|l@kF`TkBzk`=n^%%#$lP;6iEwF4nW&5!L1WP1S+JK^* zNuPpQH7Mj=?x0MMD(AD%y%A{;(?37Vd4uJD^Nbtx`R%BKsbAhLBtH<&K`Dj;v8vZk zx+Vb441n(_iwTNJ(!s4bS#?YR!_R3?M$@*zVU}i*cwn+6oj}ehIDV)MWL{zzFo%)? zOn^0m=lY+5eCeZ~*5GD}VdS+T=3y@fSpv}v6mKE1L912I`aEw8kdb2ehd;g82QSytf|5Q-c_7P7AUy*OR`EzxBl$$R-f_r4lr;N!_LC3$~Nj?-| z?k|F)iR}@gsMfZHy6aF47Q3jlf(3zt<$C>cSswxMZ34fN&M*vqbz}+*n75>DU$b}L z#8}=uOymRmFtR@euNbN)>1+SGVswd!0tJ%DLehRriIJ{_r+-XOCpL>An&|yOCidl& zBp#1LFBmFN0$cy&A~2WqA$aT}Iiz(dAJGmU8|j8|XOaRmZO>OIM_IgFR{}m^Z>>!p zq0Ehatm;rjz%btQ+kct1ewjuJaqfV)5BfqXelyL}KF$+}2BZuP_SFuIt6phM-!SMr zpBi#~lCKy1HfH2OB6=AWKfKh__R zCs6oRHJS<`4nKsBz4E2?3QAhQaa9G@mS;Dq!z+X<%1(I)(xJ4X$xUh+`D~B_Hr>Te*L^^EYH}t_GdRYEUi>>zzEV1s? z9hDEW(xkt}?3=aEoJ!;ok!ZL-R72)@JI~;*RF{+tg2?+E_-g8b=u^7)BWq+|u7SbJ zG~9 zN?nUX=5dWb6H70W7yXfcok1X==(WaLZ@Xfptu!JY?!~JQkCt1;K#iDJ#gWrjNAPRU zTHhJ<5^Vi1P@>0$QRn$g*!R4n9vA^tdt8Vj!B##V11oJ&$fg-?t~_>G?u}!mneB}O9~jhX{-=ZYKif0=aL?u z>&PwQbNO{cqo(t8noEwU{=PQIc^jx!>Pra#(CV5ezXVhBGs-+^!7Efl-y%7aZY}0k z2;LWj{!Bw6K-8*K?)q-!AnA7!QPM9M5&xOdl*7bpL*e7kHK^F2a#qu48_69DRYBm; zrN_I?IfyJl^t;R#Q~8{{!iq^02>oi=b{?(;C>Kr#6ZBK6P9p; zHDx!c)WUR;R`NO>JQF`myZZTxycbla&n&ShV|h*I^KKj0y4mj{iRqvCQ?idbGgKMJM$PQUJ7ca$|$R?PIO@-n82T417MXm#Wo>s zmP{GP=x^JTX*Ye$czCS~>5%S-@Br3j=T^hXS{3{xTpK@m=gL0Zx)zynV`y>#e3VdC zkvcpthY+5AJCF*MRedH?umq96f?wWx<`Lmb0a1JPF6OWB zg*xgGrV)QhRu9MpKoprq!q+W>#1|I}@eZa9-Zt=5vPWL5M2m6bh;*<=v3?5gczuML z^FOuuI%I9f68FjHeCA-5olV@)kKtuIgb}+EI7tL15-7;`&$bXkjvD%nE%c$XP%~AL zAkjiMd<&s1&Dbgp?V=7A8$QzM4ND#incgSqhZCU}vyMrz=lOiLEx=xX1WFL87}t0A zA3Z_W#i26yqH2CW4$3)Kl^q1LvS&vL%_uyOy@QkgqGunQ8(7b?)K%PER?Kea^i0nI zrr0TjKKQy2FY->4w6en6+1RM){o3Hdz9;yL#$&>_fdfHJCR)}@3QYke1OCe%2p5kG zoBoq~05qr?NCl_^%9xcCR=#s23qzUa zxq8i9mAc8kE2|x;qiML>on@d;xjb)Tp?Y5HFE9UZ^aIEBe z)eIzvCx|};{Cpqufk@auffm?S18l?%F_RqLHcnCO{ge6B$iYd0*{;;QKQ1*irOl** z^OB_569EWrmI_}pTnknQ_IVcsg;V0oMZf7K<172p7|`tN)~d>th^4FsVOE&ZFf=UE zivM888V?xlxD_UoA}9Qn40N2GpHxI_u%Y++mbSD1BpZICDUTDpxekwNn97n)EVPvM zwV2l31m%s z*j$d!6~QD_V}8=*YX;^X#R^S3zm0M);$IDx zO*mhvVR8n0XL~imNwtrKj21W#VAok!`S8b(31(POp6eBLiip9 z3CN0Dx z*p(R(jual$sr@@a1VH&@A~>d@iB)&4Mz!PzYfOd<+bcB9g`^BHl#i+ghZPRq(o15o zcoKN%ecHTkyMk2vrv z;Eb4p(Yi_q8HwQQchZh3T$GD!=``4j1)~^->=`g?T#4yCehhfBvNWj zer9kpGy`2d)^Bng>@%BJQO@#~58#d{c129;bb^|tb~KZNPijUfg$GE|L;VYs)V^cU zdYb`H{~^@syew9pEz(HMG}fRU^%ElzCxex=lE@<2?Y%24?q^uwma+71BNoh*@XWQx zfIZk+kLN}s;;S}}BB{ffI|a@w#=C>hd-;8=w{`shJIkf)WBx}6*ZEp!5nB^(*|opn zBR71@HigBoa-cq7m)t;{*kT82^LY*L8R&%`-_3~3Q#M_&vC9G8#%%e58{&+wd46AVr4U>{B zjUFWVDII^W3f#D6Aw_($4#&GY5tA3SYWi{Pp`df~y={njg!-{>Y_!30+jXO>xr@>( z@%#ieL%qkV{<1CVO;>#)N6zPwj<}SjSOD$MuGm!^ZI>sh$uMD5p-^n)jNlxz5J6oJ z(%O=HGW*s6W=b!6r6Wu=1dWA9kan{w8*H+(dK5k<#7q+GD%+rCV3nDppfAj8JEAXl zd?b759Mn!E{?DQ%`zD8y$^(=%MPcRV#-)CYH=>+v@42FTH^nTOh8Y#x>RFp2G zQem^lUqFdBSfX6+I(@s5{_a|f4v7tG4SDG#gIAX|6}o{wpXgpmpCW`&EGbut6>Sl; zKEyYLpJOd{x5!zM$xmeT1SO!fJz<})J`t}XEgm&Wkh+Ef@~gtz4w2uPjC8PfDio2= zWVh%@Xxs7>Wsk(@?@SBrfyyLKeKD zqRGr#T2m}_rEtL;=9O3`Zb>oOz4!CSv?*-Uz~!$L%}e!8b;%jQyEhMkQo)>PEYFV7 z15;*fuvv+}k%I|+2Aq{4l+>Lu&=l+pu^Xi=sC=3!vb1t?F5M`j>>(f)r zPWcm1(00?#S9)Qh>5Au)0H60K|DO6YC@Ko}yMLBry0i|X1cAQP1+pAt*{Zp59Agx( zaT1v*6j%kXGZ$P_q!r+dQBbzxK~JK%itP;HURvHf$c&k97drr!M2?i{q^zMpa1=~g^(|Z>WCmQ`-XCSSh$bJRf`m&@f%j`3o!Js^-5Kby zJ6M&ex<4^y*-21US=XY@ivInC1R!K@!^vN-M$P1S+7v%eq9p+?lM6vL%Y!5F;1s$d zJB8H6VIzT{YC|3;sggaFgRN&X5H|T2-OyzXQ6j5wP*+2b&-HYELbUjt8c^&Qn3K9C zl6z2f2h-7c=)V+tOC_+k_1W z@)8dfr1pbW@B4-ZtfYL6B(8Y;e0f5uT}O-t|JZ&$j-V4!-(oalt1K@5!`wG-T^%-2*?h5v=djZ)OHj6GcwW?r zbZ`R;#TwK8N7x0+bREMn`A;wzX#%XW3n?^MJ_5of1Q1&<|P7xc2}BoMDa);w^?@y8CEcwo(!P;Ti135~%?DD=M!y{; zw5?7?o9weu^-VTtb(+2@qmGp_LWePF)&mHUEHO=&zv_x_GyQJ6$NXRlnPZQe>RC8I zWhVzN@#Pr~L!#I3cg{>?%jiIl!-=r9yULh(_MzcWWiX^D!%BxtDz0ddg2DW09EGf#aPv2B`#&9b8 z$QiE48X)cN5)Ipm`wMUI`H!W^&e`J_GREicwP7BrwTAU-*mBc2#PSS)M-|*T*1R5% zC?PVgBVD(|wRRzb=sI#l$i=z<+NlOBx%j)8QpSpA-87k2mL7%;EFp?I_4ptYS|-`! za7E6cIs9>cfF{DM|L84y;mW^`zK`)_<&za(_ zWXL5m+}m@Uiq|S!v{{!WI|LEueooyu7_HDMQs3o$!MvfQRv@H*Pf%_7v1L94K%1cU6Ss~PT-&?v#@b%6RV<{zG016E-ySCm5g~gy3 zFe#k{j6zHp4SakJ25-bfP~h=o-uWdy3{nePtWo6M|7LKW_>>RZmnOS9EhTV=qd$Lc-pkWU`>k#G~n<(Rnsn;rr2;S2AmWR~nH) zA$W?q(vCktSy^E%@Gbr?AqVyVhG6-(R;T@Y66R>`+CGcqCGzH4x3_ORpCJCgIQ~zL z>>dZ|N`<8ON$a@U0e+7&?HyPmKUfw#q;za)mru6~V`TZyRY=9*rT}y_EhftTI7f9nI5K9;;Xq*FiHb8gReoCq5aVKn@ruPu$W6 zsbU;;z0dtX4==g4A)7^)#mDFVKLYA23}J%`swI*1G|Q^X_k*ajC1OM|QTIXrQ8_vy^4}e!q@Y5IB_{quWTPJejz0^t--Udap)gb>?;KH`LEaad z0)w7ldOI6F_3g(-y%EQ;wZIz!3SMX`TaVihjPq~-xNIqzqv<^M%d#n`*E#aR??1qG zNMn;URX`QRtBLp&UhfoZi?ii9b8Oc`$0WQL33&kRMN`DB;Ns<*?~+V#m0xr2en<1| zezn97;yszyN=i1Yc+q zXf@o^qR4Mky`@%$-ocBaYrx)r0I!o!IaC#q?5ZNSPVsf<`AlFBvg;j_IE&NVT{)I{ ziTfV4ki;I99N9i4+5d0$!R|}cIc0Fz#4k2H6HavAeA1ay7ChO~OC?y8l-FY}@@oVv zhB}^h73segvFtJwK0!K258>XJzPdS>+QXv(2y$TD~e zKK>gSsUYsn%OIz_28xsnu3g3AJJLzDV{@XC+zqJ!&(mTU;@TrPcld=rF!fcenQ*ZL zJy>Qa#d;%)pbwOKFQt%&(tUGMfyjpk)mh>Z_H|te1Pys?C`;X$`UZ*GnVBw$&H|Hf zUKX|b6}}JmC%7`;%#uNy5L%-Pm^HmI@>hB+R1Lvu7vji;&#SKK1u{jU7xmBhy&Q99wxkeb-XAqU^2OH{PBRGnmzl0Vnu2zA3@L36OI!{%l< z2S?m*8GG3;#HSS0U$b}P68wUM{noPndS0JoroEyV0)+{v>D-%E@~ z@m*}}8o6M#z}%GKLgj}9uK@jVp7Jqq0p;|2arpTCvf|t8waq`V8KU@u`MR-n@`iz^%g9!E>jfOE7bOXD+H(z==8_aPEtsc4LVJ8y^{%H ze?5=*C6>q1GH*Qni!xt6->#rXuKH8(*hfDc3nX&~{(MXDLaFZm7}1Be_u7De4(GpT z!tZ$+)ObY+$467f_B|97gpm0u+W0^K{CtPF8bXm$ROoiSLN}-%^5Nt_3-s?v))Z z?*JX4vO70OH1>I|XH>k$%379tb#@les4)x!=r*F#PSHcT@PW~Y9B%VpqLfv@N z3E7srySO6tWo=2}6F$o(pob@-ZiFX;E_v&>W*cFjKMJ5)Jr4jnogQcm*>AXHg_DzP zaVtfT@)4iERNfwW2*KnD7?GT6Tz7p6XlThR(L;QwD?BGz&GyC-q#P*ac;F}_nwF3U zBm&l00~0PiY;V7T$3plWjztRdGu-PSpfs@R+Yw7lbdf<*&bVKXY~Iq?LmFUFL}ZW& z_H4Kl#3d2iYdJzn`>gyN6O2N}fJVHemgDm!GJa5L>LaVgHb)Y1IE+F8wRvQHH{SB7 zcbOQi>HDPhoTqsP6_=9&y}j?g`CPnvdc0PYX*%47MrAojLTRn_tH|VUTHq#0j9nkU z{@}RTc3gaN|2XbyGseLATi-co%p=HrSWez6G$c_gnVVn=7!iX#4h3V&4tqT>Ija#(BKL4uEbuXD%HTM-#Dv(25 z3Xq$vt;A3Hm>KwDjNh&W@C=QhLJ&;qml0!E5caYtH)BVV-tcmXt4FnS!3n>J1sHRu zJ!HoVlPz=?CYLeu4iwENh*ON3ZpFQuT2$=&`D93#-s@qK2;lyb32!OnRpC`u#_3@^g7oaICV&{jp+8*B_q#vuNzC_e1tZeGafn zWHUx!?x8dmV?PT?mZWj;umzEjpSQuQU$#P2xS_>EW&J^eDYb%KCCBF2W}c*RsYHA% zaUg^`6#Q#sGNvr}*m+2|l^m0g#r~DdcQhLB54v4+Q-g?~2FfI%3Ia;K8Sv1RO7BDR zX+AI4s`qJj6bgdI$S1_r80}5sptw&e>e)bDTZ<&G8-=VNKfai-(~V&`Mvd^ESew(U zUj`BlbKlLVnMy_QE4}GF+d9@l;f)Vpk@bUf2z?D4_u*p+fPU}3n8DA2=?MM2xH~H# zhZ#nq+9*asT*^=vBLz-mERJTEE@has&)vu}v6B4@AKX-Wv{K2{yP*v^N;N+80c@|% zgP_;%&!vOlQuxq5Ah=1>wK0WmFdIqrafwt&CG_6>@;(j*yeOd>hRHPGZynu;untpw zSH~XGGjQfXQJ4ORABm`f>ju9nhZ9_KJ=`9{GgB$)qS&R{OCI6D=G0)4Og%F&ks#Mj z)7AV|bLlL9o)L!r2#Y}J?+x4gGcCpv&`v&o&F{WxWqd!Fk1QVdSC1}< zAOa}qx8sceQAS%!^XrUKLoK85TN!#r!UW<&Jva6oyaJVr(%VD97Q$=Z*L&!Fnj_*r zBYnQsd!COBH4MOVRv#!fN6n~q-u8+U*q7_rEf^Vw{SqLMr!RTQI?sE~5bk@O%I zjZqe7k9aT+*5h~H3icCN=K=CqYTtWmAZfE<;~{8TfJ#LcN zg)8CA-9DM#qMHX9KO-+9Au3;)({^>>jUI{2W-5_LjMdm{+!pU6Jejc-UI*=QAbU-p z*v8euO8PG}Q-w+d|8o{#_TFb%@NK+P{pz;?Qo$;-MN_D!1gX3OmU?Ddt+4Xz2vcvNXN0sh>q z=wil>qzh_*(VH*)P3#1NWO!FR*KCGxb}KL zTo^zFvPDkZ7QWvfTsBGEX2;lQ#!(02mg6}w&I1i9ABi$VQ?7+#bJU;=dZ~5`6>>mj zl0L{Xu2z-q}xo=GH-H_IooZ!^RObGg*JevXo+VZ%=I&_ zyp2*f3Ebs6*!%K>VY#~=9*dC|c5UrNM1c!1EzQ^kHO>2kuhZ?5AsL~mdv?j$j@)xC zPZSEfb?uvvNX}}MF4h$(Ce*h(f9pUC**B3bI7~%--ql!0J*edOSVn6 z0<{At^k-S~bj|*2=;*P?4ZRgp%r6iHyp)@X=;!#+J(j{roY??Rj!AG&$4bZRn7p6U zy;}(4gh_V(zmmRQ_8SO-g^)Pq{ye5MxRmVp_>OcH344|=Iq?RBNL2_D$jJAGpd<*% zlHR}SGKnfApMHOul}rSP1nJU^wn=SvS%k%GO^FD&SY?jBUD@-jDD>fi1Tk^T;jcWW zy_cybi9U`;G*RLd_c%y;pX@t{2z}-Z>I2zMWwF_0LGHN2)J`WUTfOk5fO$HZ+Pq;$hH+2CM$gAEX z-khEaU15)|09{O;**sHnh2@WnlON3HWB0_wL1Sa2!jL4x#3<#mOd0&tlp0Ni(Ivr{ zON*~D=1=9o1`nG>vc!OwWcu#95Cjb_CjO87g5Ko8a@en{2J7p2`)iyjBR;OwzXodi z&o-}N_-cSv-V&NGBJ~=jH=4dDiTo#(LgJk)-Ffz&sFDGKmvg4QbV94DJH;5sXKzd* ziJNj+$a6<^jwEfv18c|&O{DbHDxo?hp}@r=BIIIKeJe^AygOU}tX49L7Z8Ana<}}3gSqd9 zrX%opTP;`%dJZCJ$x9$gdAI1!vCYlvGp0o< z@7PAWIVn;9>d0Evdp_9R2?7}=Mk<63Zu+k^42np?ePaf|`Ma2`*l^cS$RT|aObA#! z9(I58Y|2Kjs+LzubXe4nd3T06*|BkyskBf|5s`=bmw1h`Nn;jniaBQ+EzBp~0daeS zXN5;lB4PAIwn>_QJtxK=s65_aSia;v4~`h@>3?|@bPu6qb0A-NZ~ZGG5qsO(7HcyU z2gfB8M$K=sL<~U|9v#h7^G2V_;}_Q(hiRPi>fO@bmz4iDHq9mPp^WVYnIEng`WK&P zMco*Bs5|%Uu}iP+#s71HKkqsI^`}`T6t!FqmulDjQeHwb%k@)2k}(aG1;1rMO>AjAMm-HT6_cm^H1C6{#Tz{v7Bktv^#`;B9GYlAQ456A z9;p3vNOy1dgST~+60oz7=dlGt-dj=LM`D%>Ma{;>wtles@F8e!2-;9OsS1up!hp|J zBx2gKH_5{O6VCFU`4R-B{VSL~%GBDdQ-o78-oC(u7rUWEFn2uNW|FZ+PSbQrTp~UX z<;FSuiK!NdO@208i^RusGibhDMD&KO$yae+P{|m>TDF~Mf_vG-u#P^WRfU>MW+BD&L;GN*+^IB)*{Kc>K_@~1%24BX9(BYG4I`cqo@xFw&1GTi^G*OM39KWf!(fON(F0^N)z?Iy?Vze9e3UoZ~uo@g%tr z7a!rpcejvugL0{5Nd*QRmJ_%G6%e(JNJNv)u*tv=E#v+|A{GR&5di#YqJfSF8+;f7 zBbPSraa*3pF8uSc_!n5N&#R@!93&<73-5DpuyM|tu@}$+&hSQ7t}=ShrjjYOhJLja z4Jpgva{NdG?3KndZiSm#uSUTGuEZ}nI~<~cftoXsvNnQIkKKs-%Ki0o5ieEW_uwIp zXEqS0FPEebRfXo)K(%jq6dpmV`Xsjo$dN&lZ6K4HJ#~|kaA7lYe%tlddiW7T@K=SK zU<+Tm)WnkqSt1N896dC%wn5g}piwEio-d;?AbM^B^9f^BwmLFB`sAc6Hw2whZ`>>m z;cDzRg>W7+{P$*XtysxsXsZyQM7-Nwrv!nrJ~s-zQ*Bm1+bB`&dwoitGa3a;aH9Uw z)mxX`+3U3JyH-~0cWCAiUhyCjzUMyor53$%cKm%-@81JuaeYM|S>(oy5t=ja-?f#f z9b9c$Gd~q6`hM3-A!D!H^tZ5DDx9m#&e{ae8kUCm!~(#7xk6$9Ym*FI++^`5lVM79 zHGyH|q(;6eB+2DP5W_+tPS-W5--;~W51r_}#Yw=Wve*E{T@F-eN|x~(hLw{n2iB@r zjdIZy@gd)|>`-0aVvo-0)V-D%ZRjs$yl5snM`H`p6?tw)!^=5*V?O;Zmi&+&R{cA4 zs-_rKA}a9@aY8U&G?4ngW5;R;6EL_eHd9EgVwhe4ZlDl_aFeqUz1;3HaX3rkc3s1x zSDpd6_J+T|>+N(_nkyo)+Dggce<-4BE({d(ov`83(^H=ovW}EbaUgobLGBPQ5_*>L6kN36(>YM2o1!6 zzwrkxNQ=DqN}rkM+d@*)-hV`GaMP;wSKPHAm-bU8v`;mVk#5 za`>I4Ha0dt+q<#(;iL~fO>e6kGH$mJ3*ra~75CKLRoz{>_pDVfon6iXYWii*FSL0T zE^KYp?fT@%8{lR})STa#1|X znTrMg=KV&E1QaCK;D-uN>uM+Om^w^?IsKZ2I5=n1&b|jv982{j@;DG9&BGaD{B;iC zVVaO^G95m-`wk0(!xm+H0)8K~s*`2d^Ad_@an|;I{?fT`&CPLp{`=8)nl9T}1~;%% z1eJ=_u&LBF`+3?f`hTHv-Ha|r=ee;D>u@+>A77GAye4@|uLyygr97u}jS@3=mv}6Z<-Q$8S;4Uv9k49kR1O5My*L2WUn|=} zoRE)B&}^QH>ioH~?X*p-q%Vde29XRHf~EM;l%|H<H0U9&XCWv8|pOUk~*G=o<7vthm91hMQ4gfN}OR>CMvN+T>M4!ao2&vMzfYP z2qb=4h(Vv_X$K}b8?H86iaedN7J@3NKuaYZtrO4Ny}n92jx=9p1Ql{Ujjh~2&%TZS z+QXdlwI}0A9Sck(qBFeG^$$8>~yiDjlhg=Nj9~_}{6WDqXKj9b` zqiacbe2`G?%yMU67=!6Y~2G$EW1Q;#s&QvTq2EpZ~@1tdyQ2p7C8ok;Bs<#MHjN z(ecqnGDsoOfWd~I!6?n6KYo%;j06O{EuOXF9zG4!c$m{_*0uJI;vO|`k*u!2Hk_*0 zs&;t9BPv74Sk=o`IEq3O(Fywv+l}4y-6Un%E&rK14_kiqk-5@@12(n-lTt33!XH;^ z`k{bHMS+Z;47?PxjGv5t+%662l0#W=d`{?JM}h#QKM7MOQ+ErwwEQp~4ig%Q+&I#S zTffcoUwu9A<{gCD@$#av*7N7xoSMucA9uyKSS8B(+(%;{9S- z_O^`5L+wj#*KV~{Na%mP37{8I`zVIC)$&<%wn;WD5^AK%pd@>K6&kXx4{H&N*Rhw7 zOsqsCA|Zr+i5m%Al~T48>Cs6f&LQOz8#$u{w#cLxF<3`m3iAk&$KZI)Ph*D~pf+I= zE`FEuD#Ht;JFi6wkm{fQr(Ef2USJyndg?tz;tx18sSqQ(+=JNty2;~#%#VMeM?goN1pwAhNh}I`%nwf zFw$$#n}dp*heRd|m32`mZl+|CJ|6iF+uUz`{ z)2lzE0v`ir6V?!IqYRrT**u=@E|GBm;jwJDt5=H@{7jI-m!BR^i|jQ{fMI@P*~6zU z0;k0a#AdF?lnh3rXC{y$74not!)nIGl^|IkHi+--=dsmC%|}T{;~-fZwSF-@xK0Do zfxzlzPg$jXf>%CZlEE;G%lrP?$$rC_u2&aT&RDQjQ%p1fzlSuZT$Ql&u4JJ?FYrny zEm|>x#UznqG0CRK#0^X_D_qP#t~`xuNAM;_9xxxQw+Un=O@71~(}b$G zd6pD5Qnd&|f-2ad@ca&)gJqijy341wm_1TCIdCV zK0M87ZF~L-7Iuzk06cdIDn!cj$fW3d10n}u&~USxs6ZLGW)TuGgi64 zMhTu7m58ix=T4iliNM&Yz$FU&4_-V@Z$0;}Q%}O}FVw7tukV5HtKUIXP8uB2m9I#M zW_B>r5i7m`C_a`NTaFwxmc^D_sDv(QNuw5uB$dWWX)ETJoeBNgseQyR#7UI zXDDb>MF?|5lT*bpIljAT45@;J1BhU3{AjT^RD@vtK>Z!6Wb)L`>~}KVH^XQ|JuSg|j5y4WFO_oY!~dQk|Hhhlvl_k7&}|k8r+vyu;@P13%p!CW0Ao**9vqbx6Fhfbhnz!#S((ku@gmBe$6|UFxfa9i1&$ z!nua;I4NGYNpx#>c?nsyQ^3T8ALP_=BveS#p#V)lrOT~%bwR4@dnL$8fd6h59<7;z zn=WDQDWd5xOFKunG9>;}dx~C4`y{Btqxk^osOOZEu4CRiHBE^>;t`HUOrZBiSHs|F zXIhe{quggM~Mj!By#0(N5o%om;Xn&KNVh%;k zi*#&kh8Hkj)V6I%up|R1)G!`UNaB?)MT$a1(u5avj?E!JV7PJUa|kWQ{pu(8qT%YI z#)HPW+i}ctBv?@aEA-JvdzB$$`BUY`a~-O1;mZIM+24g8KbR08aPYA0j8tAtXixXH;~2@i>D&14*K2i@V@{;Expp0p*M+Y$M>}t zUot8sjQ$x=JfyyIs29#POjX?`QHzO}ma3+VoZ3FO72+_4kCO)uWBFuTAr5OO1!{*~ z;jk3Ijb#G#*~IpI(w`=q9K1z6)iijz)sFJ8dxc|F7Dr`=wi%V1h&Gt$VC){)l9m(CJUI0~*!f zNa_Wc@8a!Qo9c2_P?F#Pc<7;x?yvrai$pTs@PIL`+9c`)_Q=%ZmNV$p;pdbf!4LSiMem>3xCgzBH zF))8`n|p$hJY;^e0gcr)*xbCrB*7%|uzr|TJzqqALLx^E54Zq0gijb-)?ozdZ?r!j z0mjF~`+Bb1e|g8d4ke5zNpL{Scf9s)wbLY~bth^(Qk$1aP9{RxK4>LE@zU!PG^G{8ji$_E*U(TUPy}`XqlvODnF8jcLLbnZo^K{hAQ#a zB1Am03w1^`RdHOGdVop!SBXkqrR!bl;w4KY&O_?PoYYa-4)+*~deXFQa-M*AySKN= zIsF~j*(U2dn0fB$9MW~K0bb|{rk;8f`q-=B#%_D|H%~+HLH7}3uzHQfF23-EzuvST z$9tj^plVG*_AQ+HP|x zmrJ#DJCy3$>^e;Fg-S{VFht5hn%y+4Rdba{gKgrizOo68wN-u$`A6r>r7C-y)G@v% zZT3GdhgUcpjfRa>P0qVY&etI7b|iT+DNt30bw9ssnvfmydKx5-vjFQ?Yub-3B@`e) za_u`?-R`sBzFCIFq@X0hA@J>;ovkMHx_zj)${fTJ5poWT9VMK*kV=G+t<7R1l!y=@ zBtzj9mDJ-9ChE!5APG6~XScS+1y!pM`<)oUPr zPI~WA-Z_k8A`Ibc%Q#;~G0|!|0Vd z3>RXRm#DlugxOL@y%z*dRG1y=o8-Wb;DehC*tvw6fcm72IS# zL3D}=EK;yiohZwu z2A3A2^U-vg21wjv6qTC|*}PzhgRva~S(0D8QN#lr3y4_X#h&5r_3qXq?|pCjbg?B$ zNpM&YX|VSLZ+HOptChJhEtd2oM~N&A%6ULYU^Zt7XwDLz!6FrcQ8J7{Rp>z85*6nC z*@7xRo^?wT5*?SwXs;{b#fkhE`Htx?ge&vAh_pp zJ0Pp6$Lq`FZAlz(g~V3620ayp^l_>)i!^Yr96bb^Bl#A1K=gu?Q)V?S6{0LBSOZ5U2w!1oB`D zOd_-lxDf7FLTDf~I7YU=TO^RmCDB!(d|6euL7FtkHt5I{;#2&9r2 zk{V@Hwxz2V%B#Z(Xal?I0fM`_%knvCTB`C7wgDe<<}B}|WGGY-69CBx`XIx-p< zhp+XvY1_)_Q+ zoRZxn{l&Sk>3Hdw?tJZ~lP4d!2_B?4bT}{TK+b?fv%-J9aP6?)l zbk&$8CDdbxf~zTzdRmAYi%y6UAtjlNrPA^gBJ{WeLj-Aid5D8%p;8)dL_>!8VrVST z>WQ(`%wxfsFS(nUhs#9aF1${0^;GiH_NrAi*$EQniUA<|CQM%lKbf(R`Wx+#(_)Fy zZ|!t0T-+>&&o78l5*!15^OI%j~{17 zmZj+^O`Q&>_Ef#k^sg6<@h7Xg5lj-WPJqe>LzM#6RE>G_04Fz$mu$F?sj6?3t{r2M z0GR`+7xaUwfBBv7{DssR5lbXdN`hm+k^Pkw)BrMwA+bl!!jj$W$ZGP%Khc1`ibv znOXbz;Ot|pSyClGUpY`U5t_^sS~*IWIkN2F_PgHmizNXLfKn116Mpkw6DJAQoFpMM z2_{VmCkmm7a z3BEZy+n3=0k&X}h4Da@9!NSU+Z=F1OvJ8nC03`{I50wx6%m4duzq?a6?Mx%Kq}msI zQ^WiTW!R`5N13B?w3JNPr5tQNk5Sbe0Z{ZOfiwb49)(g48UhBXFOhw zGEIW2!TrU#mwx0&9xX?T84#s9JU;Z?W@{5(o}25iY1mXqU1V=Ygw%+TpArB&7)u6B=3I zWAO{OFW!hFM2a3}pK&aF9N#b0+i;2-qaT zv|qj>lRNyJ1Za3NiRbI9yTsfqe$cz|p7(5&Q)rF=B?(Rd^lOb^?&YA{?E{-UTz=85 z;(*vpHYQWUv+|Z`l*NRukPLBBCA8-*4y-LxkWmFo`R03PBe0aGl6qX6!Tc1=sRkRO zmI)_(0RzHFfYQ2b2Xre=_fSxK*>Rk5wCE9`B*6*d3e-2ZyOj>* zKy24~vZWoX$d`hsvHC+06^_-lLLyn7;&J@TKmlz%K0+s}L5a&K654B2>`_TO3{or$ zhv~YTZ+rC7F@81fJd`9jL2MAUxW4bmi)MS!kS#PXH(_NlAf%HS+W*kP5zcpXF)|dn zv7avX8SA6%M|!z-3=)B3k^-3;+;?vN$fIRA%&1Y4;DqtM_q}h&?N(c5D0yjtr4Mwx^t80mAdJlM z`nBMAt#P@WI&(ZINpK3-*f{OaRpClvhs`di@PS3-D>9Jk00X8>1p_i@aW&b?t_Ou2 z5NQgKjQV|Nl$T!#U@1gx*nIsXkCcO?jtOPAxhdhAv;Wo-?D#$CWQz}3Y=uyIv(tJ| zjF$ZJu@o+J-mtTtI0|dKav}%4rRP97(o95%<#PS#EX9bKm($&?Z9np8IY{a_QA&bS z0#$8xcUw0N(PG7rlK_i#Oe<6YP)ha9If}vPfk^4doWxLy>999Sx!InjPU$D0x3N-j zdY#6#G9GZuC?&xu;^MX7){*+|ewdr9MDwrv3BgSn5JB0OrUDy>ks2jZO4dZM!EKL{ z{8+GWUbYmNf4Cc+d(*0bjR(hapiv_9)dJ`yHHlum+UkAz>#u?m<3%Y6P7NEC>(_S= zT)KR#!sg&mW@m%kj)6o&M|>!*(Mf&C@-tLK{uxRc=-dNdM7pn58dJ=2IVLTa&9Z%%kwDH-Z+u8eZA zzF}L_bxkJBcsGv1HKW*hL4fo_xY_bx{rC}5$SU*!RX3q?faJIgB}R^t1gC)ceRFFs zw4F+uN`2@!!1^)R#GB;hzXWY)!K&{AqEl5O(ohgr!Nim!lJgPKaaH3sOB;}BQlSu@ zmO3B-7W4Av0ZQF8A-AnBMcPZvl;I20%{6-oybxeu@)Ke5ghY(8ehQd^ijccS)QBHNqf*Y**6hJ3y!UntiY zZUm0=ce`^3`u+a59LFhpjf@Z_2~HM{GrzR|#+9nmB5dTd*E>{hJ#G+3bOyEtX%GMx zD4S7l@g~=X8zjRjYC{vXpn-g%Nn@bX`Zm}scA}vnpG%G6geaO@STugA>ujEet{puj zBC$1DswFB$MyAS}0)Dm;%CNre9Kin4&k-d$`n&9VY}qEimQR-+T%tKK$m3c_rG(%j zY50z`wxRaV|IL%jWc50f7#T_uoFFzfPSwA5Wd~urAP6u-sH@60zIdHC6hwOt5Q%{} z3h{cvaZ1-YNfL<>@gr6nyk#}W_NvFv)+8j!ZHyRDj_6&@XPqDVL?E783MW^bl+bJ^ zLbj3mhf}{ILS}P27iLTUGpj>(N zyyEL4e=6uqN((n`Es@0yDEknP4CQQd6U2}I?C%`8)~YXVnxsGr0WxsbQqvUwL4GHI zyqoeOo$HvM&I7J?A&)P^5-Fkb{eDyzx#l8CJuT9!kn|du=LV5CY#xX_vMEwS?>sLm zikbs_pI-qh38TmpPnWIuN?9Ier&F#ru0d43sS0@#O?iB22aXeIEgNKedEsW?bI)J; z(8eR%P+}w~CBezTah-+vb|fKiWJ*}61UQ&?BRV&t4ct@pW40boiVp4Md6hyC6Dkw5 zr1%yz)8!NU1FptdyGs7G_0Xo4f@>J?L#!(rOCJ?r510EtlOf42J>Ef*`}ESucTq%SHmMDRdK-`-kEuRc^^&h>lR7(mX$OGiKBN?s`N2^$ zSm)Bx93eQ`jH0QT7oP{p5El)R1p8>K6bDC$k_0D+THV?5kiX!yX^)UFKqPdNXcm6V zW6i<@&qRij_YjBT5=a_T9x}{~-6#mHrvuaDv$U+fTHX4!wC_yH%;SC0malz5KkJ91D>4R5p=4og%1)Lm@;zUKPeOg$U9} z(a0c4HZ8)hGA?8OgH0aK*bw^c8jsE4Av(e=N+lmJOq5Acz9rfy+~KE$4M0KVVI)-|E`_|dB8>Kot zLX;#pL7YB)I(YBK8?WBHSvi1P7()A?hjAP{%?1?Yy$u*E_>>G{CO|A61+ip?(7G?w zO`SH)ZBrVbFtH++8*Qlj5Q>}_CM1Hebrl&nG0`F}gAF)wxEwm-Tk9RCMfsTT1xsaM zHI`cuDRFK|&zM6~Zxea2X2(^I!4Z?Q%fN!#NuAc4K78k46g>OvPT5;z#3+NMCyai- z@BHM?{r26Lue53`WCU}*@kO8qR;*lJL~d#jTI!H(Kp9&m%^85y3|4Z?LdJo{ z)IAXJAz2;(Qo>y1^n~NeR0fs_6H83WLbcibqFp54d@oJEwYjnJ6W5@`NKumD6!7yu z|Izx(H(TqMu3%=M#}N@yAYm)>Bu7XX5GVDTKvH^w7?E!*JHw{8$W!7_6be#eIr91p)i>nXB-_Ok2NmNQ4Ba^d(Z;oa(v@{6~01tT+lNSt4exOW{5|N^rN65 zns#gz;J#PP_pY?IUMvZ4JSa(UO8B22+<*1SFI489!?)(J9~;eCH&>s_GqDP$xm-O^ z36VKLB*u#kVLUBtbf)-}5HSx&@J%EOYBds!>cvOvMeFNn=gx*MnPySC1-V&M{x})- zCD_=cGONU=>}0lJrU$T1Dg~}GDUhbLt`Rl3^azg$r8+!CY;2tJUVQQSwObvSf8mAQ z%4Vn*YgT_Ot+O?cjyx@g)W{>Ec+x^<6_biA9V4a7=kqfO3Z-spXMtRqM{OfCk(S3l zG@8L7r3`)}>{T;KezA(o#}35&*<#f|7)pVW`IivjQQ`=>_n6Z=aKO3x(?9*wHzq9w zQrqcC*x5vmTXSK40fHdt&jsCnFxTx@oqDj)o!h#w`+NB0$(^emxsJu40WI7hWJurtRiP^L z0j~UnbmvL!QI_^h&Cyd9raTBC10ix?VI`Ew5g^uwbxG+Aq{CSe4$TquoO(u={&>%)(?9++1HlaZX@X)doeED0~zeU5TV9X#y zRrz~=@2+~yuhjdUodu`ry2_P!hI@$;I!6MI=XQ6m_pbhfx4*r$7wniN3C;*M-uvEV zsB9gey#x60>qJ^;k;bvvh89zyct>1BNRg?(h%A8)3&n|$H%S04Q}7}7d8}c02KjaN zWM^_Dr^pVB2)PG!FgFQi>bD6_$hZncXe<>40ZK2FK&|8W{iTC1z4482+<_TJ=@^+2EG{p*w^|*DBna}tt*#+h zUt5iPPGBk}wgI;{$?`lmErsDUz`eQ1BMpk#2pi09=ttAm38l+N!g1`0zRUEOHYhen zQ6{em7r|tjj9RB6q4^01M`-$roZE6JiR8Uj$~0{0NC>(Hl8tw(A=X@)Rmm(K`!Kxs zYF&^NyXOh#1rkIjCP$^t3$lAtuzpL>p2$l+UaQRptgn-2b8MZcy~jve1H!R$TI4IS zxp|2l+icXGCf?^lG5tIhL=>-vyYQkpC(GbK5%u9{^P=$_N2vi1b`EdYE zOvWgV+yRIhIWJ!{qDaS-RBO;j&XXX8;VJD+5EBBK#N?d_P+SqIVe?U9mAq_-D!vb4 z93Lmj#~`I)-uuMIVHgrGuSuTS>S~jGxCqg$9%s_sDj_|3?^#zsqizWifzuD$#S0hN zb8Xb!8jJu`-93Ex@Z95Gw^`ZhHvCG@aXm@-3+olaLV!l8FU21wKfmpr-74y$LuWqz z@y&-Ge)tB=AW9OP5zIT-#Y8iq1bF=Tan^V|KGr=a6X{LlBkrlMT@-LZ8j(-b=*>2j z7zr_MZbsoZA}fP0{ly}NjR$GB)N--O0m6w;D$XV*h&)o`%JBTk_QfziN<9u6&Kidc zX|k&_5D$_}1?*OHwqo}^9@I-*ZD>J2u}n;*Ir_Zl$ErysJ32`gJ3c-(^J-~+x-|?WTx(p@b;U<%v;Ny;-jxwXdX=`NQPJr4A8G#|H-^a|g+c*_#} zvej;P|M2lAzLhu3gpuFN-(0TG&nzAIPS)9R;7fXE;k+X&EnrD@lXrN0~svCLiMI%ybU&L|}s>VKeGN=Tm2NQPV8mtOt)*WZK`Q1a_u ze{QAg_ZuFns4BEhfGETMH<0>kxEJy(AblAnr2?w%ts8&;2j2NI%m_*noB@39PfzWu zy7g5Q>uM3q26e*=Yi*mh9sIRyx7uJoQZYnkz@Sz_0SwD6)`Bo(sisCqo^BL**hc|_ zAKXBKUd`=&^V?URCpNT%>PRF+_d54aqxfy$aX2|n$)PQN%z(EptZpk zarDQBVBz3%rfZu9s!(F8c>M8SLvwTc56#zTRK9@#DHO{sPpzs+1|Uc``MT_f&;qf& zZ5xjElG&~2;5);5g+H(z5@?6!vP_2um<~=W$ko=vGBUtUL)BgvM##{KI|}g~M=b3NJ^|=JVw;_Z5aL%@r-6xHK4hpw&rBF-U}c-?{Nu zU;p~m&A|EUZx71N8A@`ajX&(Nw8b#?bH^({kFHg zt$=tw9+b1qO%ZjtvT7y31hNeJ*^SkdBh+{rO*$VY-{9Tfe6S7*niH9wUJI3pr30|` z14tHzQ;yF9DyYj3f_&uaEY_BmVE2{vMsuwQ0U{RWqof!lK#u%&W$mDX_ed_b>h>y& zaH|P3fKnZv63(1Cwdhvn_d5hkm5KBXqP`^b4^1{JNPv{+sJi8PT=kNF6rnmsjsHHT z(^tg08Bw-kbt<842GY+>q*54PFgb&{h=MQ`2HJWCa9D>yJ->rMRn1LmF-dS1mzS%X zFJ7jjw?xS*0kXFyT1RYEQ-Spd;Tq+A(CvV(ZL0`#=qj1rp!BiZJ7$2P&X-z zoAU+)4a+%x{6w^!BtY3^p^0e5ULax@B+dkr0Y6Wt+pB%g_Z*&sDWfF8Dd4kz_Wate z)2*Qd<(Xf?K?D0&Om|TqeR(bWWspz$xk%gpju}ySgIo= zO9C`Q%(OWWqJgJ<#D;a!!)I{hIPr4$C-hpxnf3M~$5Cg(c5w)XBS|rY7@CwYq@En) z%Cl!^Aer@J$5}sdU-WfO4TH(RU{c`dKM_l{#ZnTylR$%8y}r9PN7P_7AUe^p$(Wi7 zN%9-^RYl@2vM@q8LP{~|%g0yO%@T^!jGAytcy9X+0p08MIe%7RmU6bW6PBKV8gz)L6krqW4CKhLc|!6R`X~3g*CkqPvUbbsJG;mSvNt3>P~ez1tiBmoL!i2JCEmVMABf|GgSB4<@MyAqPGZJ zmZ20VtHN~DTnBo=+u#27k_2y8eB<%Qk>gdH#<2*}Y=IfDHHvY=8z7VM9;H%x0?V?chco0hnk-$~*%8<6_^ za&xL6tQ?nYdR)e`;w>#NpD3(bnZ7(;lHi!|%qKs&;2^i2^az7JBql=*9^Mn221EFR z;T&8V9Gr0L7x(O*z2P&98Y~In7gJSJ#V5mgsE97W7AYR&j zdfvqG{v@mhBSg-djOg52tLC1A$Xrf_FW*oVL2TGJ{~#$rM&}4sV3vrZ=iK#oI;YQm zb?Otdmn1j_oIZWJ4jpekJ1%gr!4W0}s|pr&sT+|Z!;A5y?EytGn-qxwuoOWU?;I0G z_AFILSDLg(=RNk2Ay9hEW`z)m-Z?_@Q*3~t1c>?mE!VwH+RD@?Tq;R$#Gq2(!6k3S znX5SI9^v94F_T6vwQ$4@OqLJ_CPQ9;1XDT4kWV_?*5je@xrc>Xm~CoLN`Q3kV|y`X zHq^Tl%1aw;-4UbnNRAjTJo0l>0t^XqcXvCe|J}`Pm;sc7s*V_MeD$mA^~S=A#IC-c+QSIOZy3+IHdsQ*$)lelsH>ipX0V&Z9 zPXeY3aI0!frUP~0Rdy|w=Yre?xN&{cUKG1T*Sbqz+I|Ws;n5c*{DsLr-Q@e|$1K1B zdlHx|111r6Z~WLVZ`fz~njlI^aI|pT{qI)@5en_nT;x_-? z!dpA<{=eRT6=nqG016`n@d(d%YffT7t73yBBr!QvIL+gsrc(l;c0nwwSs2B|i~*{8 zY#Kfx%$GcJkV?_^JDu?b(~%r+Fn(?gVjJAt+{`WnCss_wA3Wf` z83G+#Axj#}0?yvWox(!u^F!~iA4`68E0q2O0e0|i&s%dZJ@UvS9hf1MBse0l-XT>q zpB$el=@2p70*f@V8FD43^&*)C-tcvm%~zzLV%_Jac|lph(~{=VOds`U5QNb&psBkc zh%b%&=m_Pz+grgEfA0Bry=!A8CR~?Ms>36~^Zi>Z3x?a7Un(pjIu54ZjRaU#L@A}m zGs+t3HO;DyoU>*yj>!Oz^($V5O)(CnT1q>s{|-W@qMd&Yjt1{aWBRcQrdZ zckVssJLi1o+_M0m^}*`BoS2v}lZNtZ&CtKfxT53o{Z?|_BlJ!Pp+P#`>L`lg^2Lm8 zcg}_L6J{|NzmqA-4)8@v<=)@4MANgM8bE4ntX;FT2Q|aESy41#oRd<|FT3{y0DYXZ zTN&d9i^MR-PT|*ce!0XI&De$S{JAZ0)b7-KbJ1Vo;Zcg~gSzQC9J?u{oK_b%7PmrtMo#y#^H-7tF88v?>5i*AAiUW&BtaJFn~@m?bJ!Va^&{W*|KfM4Cn{wS7DEkQx#6_FRBFy5U{jdv^oz*S|ps_T)pA)8&Nv_j+f z_&D6UV<*hdr=@Ev?U1A3>@*TWC*Gto^~S8|sY z5`oH20Tjg!pYg-+9y4^fxUCsH&x1EdhGBAQ8n$fdgNr*l;B(#GxL%3;A*$Y?5HL>4 zMTl8Q9sN}R-U7FCnG7_wmVwyMaj{b@VCwlYop^vb&Cvpc-`v~+_uu~y7#tjg?|knz z=^eg~v~%~}XG4mvF%BKL zZ}9UymtWu1(hg=k394?$d9tMalFeY47H;N{&!!>XuwH`kJ#up(Jw_g&@C7*MIz`B) zXZK$E#p~`}u7|G$z;&EQW@n~hF}DCtseptmV%$oQMXtPd^au(};qO^^cXSvQ=5XD@ z9NwoS;pByGCqQM~Q!Ffse6jSBl01VuG!^xmf_z~7|o6ZD9S`~m1GvMs$Q!sjb z2vMwkAC9VPi)8yp^DmXreRMvx6M}2tb%%-|t zt_y&AgN@(%ci*e|E_h?>PkRkTtnA$3FgF%4<(n}?_+ipAvNhj zhdbSeqW-^@j=Jb*eEYUN1HjGaU9}Zv@>n&w2|hExa*JiEGFQ)dPb$ zur8@Uxi~X&OHbR^doIJc=+;i#Zs^xds}Y!XaKq-F$378&iTB_7Va&1)>amzSXo?tD z$8|8)lx`poFY1t_SFmbYmW7#O$$89#%-hFa{=2H`Kernj+e|C0Cz35?x4+}kD~{C# z@WGj(jfQ#Apk~B6>5!343Kkfu3$hW#XW4v2Qiz;X6B-P>F2#@GW*Tg7A*CXJ3SeP&~ z!rG7*>Dkl>Em;%5h0~*#Fjf5tSruCJk+Wo{7}a_z!32uZk6|+-gc`PBHT|JwuY;*` zXQ(1VYI0`*zLGOzfxHQWrqccm9VK^f0E>C>N1(AuXaZ z%Q5#UJQZR(B?qq}TI*Lkp;`n{X7pvI#x~XkaQW2(+p%Z-E((4KsWcoahpIsG01=K$ zfUNrGg}{`sMu_M*uKY#AS7W&3zgRYIY;4(ZV`KZKv08l}0va*DOr660ssI2007*qo IM6N<$f*~{2&Hw-a literal 0 HcmV?d00001 diff --git a/wp-content/themes/cosmopet/static/img/product/image.png b/wp-content/themes/cosmopet/static/img/product/image.png new file mode 100644 index 0000000000000000000000000000000000000000..aaef248680b3e36f3c5b8017bd0eb52805d2cbe3 GIT binary patch literal 67868 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 O0000 + + + + + + + + + + + + diff --git a/wp-content/themes/cosmopet/static/img/svg/country/ru.svg b/wp-content/themes/cosmopet/static/img/svg/country/ru.svg new file mode 100644 index 0000000..fc991dd --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/country/ru.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/wp-content/themes/cosmopet/static/img/svg/logo/logo-black.svg b/wp-content/themes/cosmopet/static/img/svg/logo/logo-black.svg new file mode 100644 index 0000000..4cd0135 --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/logo/logo-black.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/wp-content/themes/cosmopet/static/img/svg/logo/logo-gradient.svg b/wp-content/themes/cosmopet/static/img/svg/logo/logo-gradient.svg new file mode 100644 index 0000000..9054fde --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/logo/logo-gradient.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/wp-content/themes/cosmopet/static/img/svg/logo/logo-white.svg b/wp-content/themes/cosmopet/static/img/svg/logo/logo-white.svg new file mode 100644 index 0000000..22c4489 --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/logo/logo-white.svg @@ -0,0 +1,4 @@ + + + + diff --git a/wp-content/themes/cosmopet/static/img/svg/main/arrow-back.svg b/wp-content/themes/cosmopet/static/img/svg/main/arrow-back.svg new file mode 100644 index 0000000..a977e53 --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/main/arrow-back.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/wp-content/themes/cosmopet/static/img/svg/main/arrow-black.svg b/wp-content/themes/cosmopet/static/img/svg/main/arrow-black.svg new file mode 100644 index 0000000..38fe433 --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/main/arrow-black.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/cosmopet/static/img/svg/main/arrow-breadcrumbs-black.svg b/wp-content/themes/cosmopet/static/img/svg/main/arrow-breadcrumbs-black.svg new file mode 100644 index 0000000..88fd149 --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/main/arrow-breadcrumbs-black.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/cosmopet/static/img/svg/main/arrow-breadcrumbs.svg b/wp-content/themes/cosmopet/static/img/svg/main/arrow-breadcrumbs.svg new file mode 100644 index 0000000..f1f9618 --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/main/arrow-breadcrumbs.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/cosmopet/static/img/svg/main/arrow-left.svg b/wp-content/themes/cosmopet/static/img/svg/main/arrow-left.svg new file mode 100644 index 0000000..465c268 --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/main/arrow-left.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/wp-content/themes/cosmopet/static/img/svg/main/arrow-right-input.svg b/wp-content/themes/cosmopet/static/img/svg/main/arrow-right-input.svg new file mode 100644 index 0000000..a101dd0 --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/main/arrow-right-input.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/wp-content/themes/cosmopet/static/img/svg/main/arrow-right.svg b/wp-content/themes/cosmopet/static/img/svg/main/arrow-right.svg new file mode 100644 index 0000000..8952470 --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/main/arrow-right.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/wp-content/themes/cosmopet/static/img/svg/main/arrow-selected-white.svg b/wp-content/themes/cosmopet/static/img/svg/main/arrow-selected-white.svg new file mode 100644 index 0000000..bb7e90b --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/main/arrow-selected-white.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/cosmopet/static/img/svg/main/arrow-selected.svg b/wp-content/themes/cosmopet/static/img/svg/main/arrow-selected.svg new file mode 100644 index 0000000..fb283a7 --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/main/arrow-selected.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/wp-content/themes/cosmopet/static/img/svg/main/basket.svg b/wp-content/themes/cosmopet/static/img/svg/main/basket.svg new file mode 100644 index 0000000..6c08b40 --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/main/basket.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/wp-content/themes/cosmopet/static/img/svg/main/black-x.svg b/wp-content/themes/cosmopet/static/img/svg/main/black-x.svg new file mode 100644 index 0000000..cb3041d --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/main/black-x.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/wp-content/themes/cosmopet/static/img/svg/main/change-dot.svg b/wp-content/themes/cosmopet/static/img/svg/main/change-dot.svg new file mode 100644 index 0000000..f38b6c9 --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/main/change-dot.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/cosmopet/static/img/svg/main/filter.svg b/wp-content/themes/cosmopet/static/img/svg/main/filter.svg new file mode 100644 index 0000000..efa46c8 --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/main/filter.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/cosmopet/static/img/svg/main/google-white.svg b/wp-content/themes/cosmopet/static/img/svg/main/google-white.svg new file mode 100644 index 0000000..4040621 --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/main/google-white.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/wp-content/themes/cosmopet/static/img/svg/main/gradient-x.svg b/wp-content/themes/cosmopet/static/img/svg/main/gradient-x.svg new file mode 100644 index 0000000..3a19e1f --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/main/gradient-x.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/wp-content/themes/cosmopet/static/img/svg/main/minus.svg b/wp-content/themes/cosmopet/static/img/svg/main/minus.svg new file mode 100644 index 0000000..77109fe --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/main/minus.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/wp-content/themes/cosmopet/static/img/svg/main/plus-grey.svg b/wp-content/themes/cosmopet/static/img/svg/main/plus-grey.svg new file mode 100644 index 0000000..6fa9039 --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/main/plus-grey.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/wp-content/themes/cosmopet/static/img/svg/main/plus.svg b/wp-content/themes/cosmopet/static/img/svg/main/plus.svg new file mode 100644 index 0000000..a9db939 --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/main/plus.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/wp-content/themes/cosmopet/static/img/svg/main/question.svg b/wp-content/themes/cosmopet/static/img/svg/main/question.svg new file mode 100644 index 0000000..2e21e7b --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/main/question.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/cosmopet/static/img/svg/main/status-cancelled.svg b/wp-content/themes/cosmopet/static/img/svg/main/status-cancelled.svg new file mode 100644 index 0000000..f96648a --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/main/status-cancelled.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/cosmopet/static/img/svg/main/status-chek.svg b/wp-content/themes/cosmopet/static/img/svg/main/status-chek.svg new file mode 100644 index 0000000..836d49b --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/main/status-chek.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/cosmopet/static/img/svg/main/triangle-grey.svg b/wp-content/themes/cosmopet/static/img/svg/main/triangle-grey.svg new file mode 100644 index 0000000..23ede66 --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/main/triangle-grey.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/cosmopet/static/img/svg/main/vk-white.svg b/wp-content/themes/cosmopet/static/img/svg/main/vk-white.svg new file mode 100644 index 0000000..556d386 --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/main/vk-white.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/cosmopet/static/img/svg/main/white-x.svg b/wp-content/themes/cosmopet/static/img/svg/main/white-x.svg new file mode 100644 index 0000000..3697346 --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/main/white-x.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/cosmopet/static/img/svg/main/ya-white.svg b/wp-content/themes/cosmopet/static/img/svg/main/ya-white.svg new file mode 100644 index 0000000..a6b4ece --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/main/ya-white.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/cosmopet/static/img/svg/mini-profile/basket-w.svg b/wp-content/themes/cosmopet/static/img/svg/mini-profile/basket-w.svg new file mode 100644 index 0000000..55eb29f --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/mini-profile/basket-w.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/cosmopet/static/img/svg/mini-profile/basket.svg b/wp-content/themes/cosmopet/static/img/svg/mini-profile/basket.svg new file mode 100644 index 0000000..fdf6bf8 --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/mini-profile/basket.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/cosmopet/static/img/svg/mini-profile/profile-w.svg b/wp-content/themes/cosmopet/static/img/svg/mini-profile/profile-w.svg new file mode 100644 index 0000000..442e587 --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/mini-profile/profile-w.svg @@ -0,0 +1,4 @@ + + + + diff --git a/wp-content/themes/cosmopet/static/img/svg/mini-profile/profile.svg b/wp-content/themes/cosmopet/static/img/svg/mini-profile/profile.svg new file mode 100644 index 0000000..6a48c34 --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/mini-profile/profile.svg @@ -0,0 +1,4 @@ + + + + diff --git a/wp-content/themes/cosmopet/static/img/svg/social-media/tg.svg b/wp-content/themes/cosmopet/static/img/svg/social-media/tg.svg new file mode 100644 index 0000000..332942a --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/social-media/tg.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/cosmopet/static/img/svg/social-media/vk.svg b/wp-content/themes/cosmopet/static/img/svg/social-media/vk.svg new file mode 100644 index 0000000..ef5cadf --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/social-media/vk.svg @@ -0,0 +1,3 @@ + + + diff --git a/wp-content/themes/cosmopet/static/img/svg/social-media/ya.svg b/wp-content/themes/cosmopet/static/img/svg/social-media/ya.svg new file mode 100644 index 0000000..055175d --- /dev/null +++ b/wp-content/themes/cosmopet/static/img/svg/social-media/ya.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/wp-content/themes/cosmopet/templates/header.twig b/wp-content/themes/cosmopet/templates/header.twig index bd8846a..2c03b5e 100644 --- a/wp-content/themes/cosmopet/templates/header.twig +++ b/wp-content/themes/cosmopet/templates/header.twig @@ -13,32 +13,37 @@

{% endif %}
@@ -132,34 +150,49 @@ -
-
-
- +
+
    + {{ function('pll_the_languages', {'echo': false, 'display_names_as': 'slug'}) }} +
+
- -
-
    - {{ function('pll_the_languages', {'echo': false, 'display_names_as': 'slug'}) }} -
+
+
+
-
- \ No newline at end of file diff --git a/wp-content/themes/cosmopet/templates/layout.twig b/wp-content/themes/cosmopet/templates/layout.twig index 05d2282..e69de29 100644 --- a/wp-content/themes/cosmopet/templates/layout.twig +++ b/wp-content/themes/cosmopet/templates/layout.twig @@ -1,25 +0,0 @@ - - - - {{ function('wp_head') }} - {{ function('wp_title') }} - - - - - - - - - {% include 'header.twig' %} - -
- {% block content %} - {% endblock %} -
- - {% include 'footer.twig' %} - - {{ function('wp_footer') }} - - \ No newline at end of file diff --git a/wp-content/themes/cosmopet/templates/modal.twig b/wp-content/themes/cosmopet/templates/modal.twig new file mode 100644 index 0000000..6157f38 --- /dev/null +++ b/wp-content/themes/cosmopet/templates/modal.twig @@ -0,0 +1,68 @@ + \ No newline at end of file diff --git a/wp-content/themes/cosmopet/templates/modal/basket.twig b/wp-content/themes/cosmopet/templates/modal/basket.twig new file mode 100644 index 0000000..4fb1488 --- /dev/null +++ b/wp-content/themes/cosmopet/templates/modal/basket.twig @@ -0,0 +1,47 @@ + \ No newline at end of file diff --git a/wp-content/themes/cosmopet/templates/page.twig b/wp-content/themes/cosmopet/templates/page.twig new file mode 100644 index 0000000..ab91e3d --- /dev/null +++ b/wp-content/themes/cosmopet/templates/page.twig @@ -0,0 +1,9 @@ +{% set bodyClass = 'bg-white' %} +{% set mainClass = 'wrapper' %} +{% extends 'layout.twig' %} + +{% block content %} + + {{ post.content }} + +{% endblock %} \ No newline at end of file diff --git a/wp-content/themes/cosmopet/templates/shop/cart-contents.twig b/wp-content/themes/cosmopet/templates/shop/cart-contents.twig new file mode 100644 index 0000000..1b7d181 --- /dev/null +++ b/wp-content/themes/cosmopet/templates/shop/cart-contents.twig @@ -0,0 +1,45 @@ +{% if cart.is_empty %} +

{{ function('pll_e', 'Ваша корзина пуста') }}

+{% else %} + {% for item_key, item in cart.get_cart %} + {% set product = item.data %} + + {% endfor %} +{% endif %} + diff --git a/wp-content/themes/cosmopet/templates/shop/checkout.twig b/wp-content/themes/cosmopet/templates/shop/checkout.twig new file mode 100644 index 0000000..e2dfc26 --- /dev/null +++ b/wp-content/themes/cosmopet/templates/shop/checkout.twig @@ -0,0 +1,151 @@ +{# templates/woocommerce/checkout/form-checkout.twig #} + +
+
+
+
+

+ {{ fn('pll_e', 'Контакты получателя') }} +

+ {% if fn('is_user_logged_in') %} + + {{ fn('pll_e', 'Выйти') }} + + {% else %} + + {% endif %} +
+
+
+ {{ fn('do_action', 'woocommerce_checkout_billing') }} +
+ + {% set chosen_methods = WC().session.get('chosen_shipping_methods') %} + {% set shipping_method = chosen_methods[0] ? chosen_methods[0] : fn('pll_e', 'Не выбран') %} + +
+

{{ fn('pll_e', 'Доставка') }}

+ + + + +
+
+ +
+

{{ fn('pll_e', 'Ваш заказ') }}

+
+ {% for cart_item_key, cart_item in WC().cart.get_cart() %} + {% set product = cart_item.data %} + {% set thumbnail_id = product.get_image_id() %} + + {% if product and product.exists() and cart_item.quantity > 0 and fn('apply_filters', 'woocommerce_checkout_cart_item_visible', true, cart_item, cart_item_key) %} +
+ +
+

+ {{ cart_item.quantity }} +

+

+ {{ fn('apply_filters', 'woocommerce_cart_item_subtotal', WC().cart.get_product_subtotal(product, cart_item.quantity), cart_item, cart_item_key) }} +

+
+
+ {% endif %} + {% endfor %} +
+ +
+ {{ fn('woocommerce_checkout_coupon_form') }} + +
+ {{ fn('do_action', 'woocommerce_checkout_order_review') }} +
+
+
+
+
+ +
+ +
\ No newline at end of file diff --git a/wp-content/themes/cosmopet/templates/shop/index.php b/wp-content/themes/cosmopet/templates/shop/index.php deleted file mode 100644 index d800886..0000000 --- a/wp-content/themes/cosmopet/templates/shop/index.php +++ /dev/null @@ -1 +0,0 @@ -123 \ No newline at end of file diff --git a/wp-content/themes/cosmopet/templates/shop/review-order.twig b/wp-content/themes/cosmopet/templates/shop/review-order.twig new file mode 100644 index 0000000..9f76ddb --- /dev/null +++ b/wp-content/themes/cosmopet/templates/shop/review-order.twig @@ -0,0 +1,66 @@ + + + + + + + + {% for code, coupon in fn('WC').cart.get_coupons() %} + + + + + {% endfor %} + + {% if fn('WC').cart.needs_shipping() and fn('WC').cart.show_shipping() %} + {{ do_action('woocommerce_review_order_before_shipping') }} + + {{ fn('wc_cart_totals_shipping_html') }} + + {{ do_action('woocommerce_review_order_after_shipping') }} + {% endif %} + + + + {% set chosen_shipping_methods = fn('WC').session.get('chosen_shipping_methods') %} + {% if not chosen_shipping_methods[0] is defined %} + + {% else %} + + {% endif %} + + + {% for fee in fn('WC').cart.get_fees() %} + + + + + {% endfor %} + + {% if fn('wc_tax_enabled') and not fn('WC').cart.display_prices_including_tax() %} + {% if 'itemized' == fn('get_option', 'woocommerce_tax_total_display') %} + {% for code, tax in fn('WC').cart.get_tax_totals() %} + + + + + {% endfor %} + {% else %} + + + + + {% endif %} + {% endif %} + + {{ do_action('woocommerce_review_order_before_order_total') }} + + + + + + + + {{ do_action('woocommerce_review_order_after_order_total') }} + +
{{ pll_e('Товары') }}{{ fn('wc_cart_totals_subtotal_html') }}
{{ fn('wc_cart_totals_coupon_label', coupon) }}{{ fn('wc_cart_totals_coupon_html', coupon) }}
{{ fn('pll_e', 'Доставка') }}{{ fn('pll_e', 'Введите адрес доставки') }}{{ fn('WC').cart.get_shipping_total() }} ₽
{{ fee.name|e }}{{ fn('wc_cart_totals_fee_html', fee) }}
{{ tax.label|e }}{{ tax.formatted_amount|raw }}
{{ fn('WC').countries.tax_or_vat()|e }}{{ fn('wc_cart_totals_taxes_total_html') }}
{{ fn('pll_e', 'Total') }}{{ fn('wc_cart_totals_order_total_html') }}
\ No newline at end of file diff --git a/wp-content/themes/cosmopet/templates/shop/shop.twig b/wp-content/themes/cosmopet/templates/shop/shop.twig index d800886..e69de29 100644 --- a/wp-content/themes/cosmopet/templates/shop/shop.twig +++ b/wp-content/themes/cosmopet/templates/shop/shop.twig @@ -1 +0,0 @@ -123 \ No newline at end of file diff --git a/wp-content/themes/cosmopet/woocommerce/archive-product/archive-product-modal.twig b/wp-content/themes/cosmopet/woocommerce/archive-product/archive-product-modal.twig deleted file mode 100644 index 537b00d..0000000 --- a/wp-content/themes/cosmopet/woocommerce/archive-product/archive-product-modal.twig +++ /dev/null @@ -1,221 +0,0 @@ - \ No newline at end of file diff --git a/wp-content/themes/cosmopet/woocommerce/archive-product/archive-product.twig b/wp-content/themes/cosmopet/woocommerce/archive-product/archive-product.twig index 4df9866..dd7edbc 100644 --- a/wp-content/themes/cosmopet/woocommerce/archive-product/archive-product.twig +++ b/wp-content/themes/cosmopet/woocommerce/archive-product/archive-product.twig @@ -67,6 +67,6 @@ {#{% do action('woocommerce_after_shop_loop') %} {% do action('woocommerce_after_main_content') %}#} -{% include '/woocommerce/archive-product/archive-product-modal.twig' %} + {% endblock %} \ No newline at end of file diff --git a/wp-content/themes/cosmopet/woocommerce/assets/css/gp-style-core.css b/wp-content/themes/cosmopet/woocommerce/assets/css/gp-style-core.css index 2e95825..2a05fd1 100644 --- a/wp-content/themes/cosmopet/woocommerce/assets/css/gp-style-core.css +++ b/wp-content/themes/cosmopet/woocommerce/assets/css/gp-style-core.css @@ -4,123 +4,8 @@ box-sizing: border-box; } -/* Переменные, шрифты, UI kit */ - -/* -700 - Bold -600 - SemiBold / Demi -500 - Medium -400 - Regular -*/ - -/* Craftwork Grotesk */ -@font-face { - font-family: "Craftwork Grotesk"; - src: local("Craftwork Grotesk Bold"), - url("../fonts/craftwork/CraftworkGrotesk-SemiBold.woff2") format("woff2"), - url("../fonts/craftwork/CraftworkGrotesk-Bold.woff") format("woff"), - url("../fonts/craftwork/craftwork-grotesk-bold.ttf") format("ttf"); - font-weight: 700; -} -@font-face { - font-family: "Craftwork Grotesk"; - src: local("Craftwork Grotesk SemiBold"), - url("../fonts/craftwork/CraftworkGrotesk-SemiBold.woff2") format("woff2"), - url("../fonts/craftwork/CraftworkGrotesk-SemiBold.woff") format("woff"), - url("../fonts/craftwork/craftwork-grotesk-semi-bold.ttf") format("ttf"); - font-weight: 600; -} -@font-face { - font-family: "Craftwork Grotesk"; - src: local("Craftwork Grotesk Medium"), - url("../fonts/craftwork/CraftworkGrotesk-Medium.woff2") format("woff2"), - url("../fonts/craftwork/CraftworkGrotesk-Medium.woff") format("woff"), - url("../fonts/craftwork/craftwork-grotesk-medium.ttf") format("ttf"); - font-weight: 500; -} -@font-face { - font-family: "Craftwork Grotesk"; - src: local("Craftwork Grotesk Regular"), - url("../fonts/craftwork/CraftworkGrotesk-Regular.woff2") format("woff2"), - url("../fonts/craftwork/CraftworkGrotesk-Regular.woff") format("woff"), - url("../fonts/craftwork/craftwork-grotesk-regular.ttf") format("ttf"); - font-weight: 400; -} -/* Craftwork Grotesk */ - -/* din 2014 */ -@font-face { - font-family: "DIN 2014 Rounded"; - src: local("DIN 2014 Rounded Demi"), - url("../fonts/din-2014/din-2014-rounded-demi.woff2") format("woff2"), - url("../fonts/din-2014/din-2014-rounded-demi.woff") format("woff"), - url("../fonts/din-2014/din-2014-rounded-demi.ttf") format("ttf"); - font-weight: 600; -} -@font-face { - font-family: "DIN 2014 Rounded"; - src: local("DIN 2014 Rounded Regular"), - url("../fonts/din-2014/din-2014-rounded-regular.woff2") format("woff2"), - url("../fonts/din-2014/din-2014-rounded-regular.woff") format("woff"), - url("../fonts/din-2014/din-2014-rounded-regular.ttf") format("ttf"); - font-weight: 400; -} -/* din 2014 */ - -/* roboto */ -@font-face { - font-family: "Roboto"; - src: local("Roboto Medium"), - url("../fonts/roboto/Roboto-Medium.woff2") format("woff2"), - url("../fonts/roboto/Roboto-Medium.woff") format("woff"), - url("../fonts/roboto/roboto-medium.ttf") format("ttf"); - font-weight: 500; -} -@font-face { - font-family: "Roboto"; - src: local("Roboto Regular"), - url("../fonts/roboto/Roboto-Regular.woff2") format("woff2"), - url("../fonts/roboto/Roboto-Regular.woff") format("woff"), - url("../fonts/roboto/roboto-medium.ttf") format("ttf"); - font-weight: 400; -} -/* roboto */ - -/* Глобальные переменные: */ - -:root { - /* fonts */ - --font-family: "Craftwork Grotesk", sans-serif; - --second-family: "DIN 2014 Rounded", sans-serif; - --third-family: "Roboto", sans-serif; - - /* color */ - /* text */ - --text-white: #fff; - --text-black: #121212; - --text-dark: #2b2b3b; - --text-grey: #999; - --text-red: #fa0505; - --text-green: #2ED15D; - --text-0: #000; - --text-3: #333; - --text-6: #666; - --text-9: #999; - - /* background */ - --background-white: #fff; - --background-black: #121212; - --background-grey: #f2f2f2; - --background-green: #2ED15D; - --background-green-white: #f4fff0; - --background-9: #999; - - - /* gradient */ - --gradient-blue: radial-gradient(346.57% 244.17% at 149.73% -58.39%, rgb(15, 88, 129) 0%, rgb(30, 164, 156) 51.21689438819885%, rgb(118, 206, 117) 80.70731163024902%, rgb(236, 243, 159) 91.14583134651184%); - --gradient-turquoise: radial-gradient(346.57% 244.17% at 149.73% -58.39%, rgb(117, 196, 240) 0%, rgb(126, 231, 225) 51.21689438819885%, rgb(181, 228, 180) 80.70731163024902%, rgb(237, 244, 164) 91.14583134651184%); - --gradient-red: linear-gradient(22deg, #f44242 0%, #569ef0 100%); -} + + /* общие */ @@ -1103,192 +988,6 @@ button{ } /* compound */ -/* button */ -.button{ - font-family: var(--font-family); - font-weight: 600; - font-size: 20px; - line-height: 120%; - color: var(--text-black); - - border-radius: 20px; - - cursor: pointer; -} -.button--100-perc{ - width: 100%; - text-align: center; -} -.button--white{ - padding: 11px 24px; - - text-align: center; - - background-color: var(--background-white); - border: 1px solid var(--background-black); - - transition: opacity .2s ease-out; -} -.button--white:hover{ - opacity: .8; -} -.button--white.active{ - background: var(--background-black); - color: var(--background-white); -} -.button--gradient{ - background: var(--gradient-turquoise); - border: none; - - transition: opacity .2s ease-out; -} -.button--gradient:hover{ - opacity: .8; -} -.button--base{ - padding: 12px 24px; -} -.button--high{ - height: 56px; - - padding: 16px 24px 24px 24px; - - font-weight: 700; - text-align: center; - - position: relative; -} -.button--high-46{ - padding: 12px 24px; - - font-size: 20px; - font-weight: 700; - line-height: 24px; -} -.button--icon{ - padding-right: 56px; - - text-align: start; -} -.button--filter::after{ - content: ''; - - position: absolute; - top: 16px; - right: 24px; - - width: 24px; - aspect-ratio: 1; - - background-image: url(../img/svg/main/filter.svg); - background-repeat: no-repeat; - background-size: contain; -} -.button--black{ - padding: 7px 15px; - - font-family: var(--font-family); - font-weight: 500; - font-size: 24px; - line-height: 133%; - color: var(--text-white); - - background: var(--background-black); - border: 1px solid var(--text-white); -} -.button--link{ - text-decoration: none; -} -.button--red-48-px{ - border-radius: 48px; -} -.to-know{ - /* width: 100%; */ - - padding: 12px 24px 7px 24px; - - display: flex; - justify-content: center; - - border: none; - - transition: opacity .2s ease-out; - text-decoration: none; -} -.to-know:hover{ - opacity: .8; -} -.to-know p{ - padding-bottom: 4px; - - font-family: var(--font-family); - font-weight: 700; - font-size: 20px; - line-height: 120%; - color: var(--text-black); - - border-bottom: 1px var(--text-black) solid; - - cursor: pointer; -} -.to-know--background-none{ - background: none; -} -.back{ - margin-top: 16px; - margin-left: 16px; - - padding: 8px; - padding-left: 32px; - - background: none; - border: none; - - font-family: var(--font-family); - font-weight: 600; - font-size: 20px; - line-height: 120%; - color: var(--text-black); - - text-decoration: none; - - position: relative; -} -.back::before{ - content: ''; - - position: absolute; - top: 8px; - left: 0; - - margin-right: 8px; - - width: 24px; - height: 24px; - - background-image: url(../img/svg/main/arrow-back.svg); -} - -.back::after{ - content: ''; - - position: absolute; - bottom: 6px; - left: 0; - - width: calc(100% - 8px); - height: 1px; - - background: var(--text-black); -} - -.wc-forward { - width: 100%; - padding: 0.5rem 0; - text-align: center; -} -/* button */ - /* select */ .select{ max-width: 144px; @@ -1401,867 +1100,6 @@ button{ /* select */ -/* counter */ -.counter{ - display: flex; - align-items: center; -} -.counter__input{ - width: 48px; - - font-family: var(--font-family); - font-weight: 600; - font-size: 20px; - line-height: 120%; - text-align: center; - color: var(--text-black); - - pointer-events: none; - - background: none; - border: none; -} -.counter__button{ - width: 48px; - height: 48px; - - display: flex; - justify-content: center; - align-items: center; - - border: 1px solid var(--text-3); - border-radius: 24px; - - background: var(--background-white); - - transition: opacity .2s ease-out; -} -.counter__button:hover{ - opacity: .8; -} -.counter--small{ - -} -.counter--small .counter__button{ - width: 32px; - height: 32px; -} -.counter--small{ - -} -/* counter */ - -/* modal */ -.modal{ - position: fixed; - top: 0; - left: 0; - - padding: 20px; - - width: 100%; - height: 100%; - - background: rgba(0, 0, 0, 0.25); - - z-index: 200; - - opacity: 0; - transition: opacity .2s ease-out; - pointer-events: none; - - display: flex; - justify-content: center; - align-items: center; - - overflow-y: auto; -} -.modal.active{ - opacity: 1; - pointer-events: auto; -} -.modal__notification{} -.form__button-mobile{ - display: none; -} -.modal__aside{ - position: fixed; - top: 0; - right: 0; - - width: 0; - height: 100%; - - overflow: hidden; - transition: width .4s ease-out; -} -.modal__item{ - height: 100%; - overflow: auto; - padding: 24px; - - background: var(--background-white); - - position: relative; - - display: none; - - filter: blur(10px); - transition: filter .2s ease-out; -} -.modal__item--no-title{ - padding-top: 72px; -} -.modal__item.active{ - display: flex; - flex-direction: column; - justify-content: space-between; -} -.modal__close{ - position: absolute; - top: 32px; - right: 24px; - - width: 24px; - height: 24px; - - border: none; - background: none; -} -.modal__header{} -.modal__title{ - padding-right: 48px; - - font-family: var(--font-family); - font-weight: 700; - font-size: 36px; - line-height: 111%; - text-transform: uppercase; - color: var(--text-black); -} -.modal__small-title{ - font-family: var(--font-family); - font-weight: 700; - font-size: 24px; - line-height: 100%; - text-transform: uppercase; - color: var(--text-black); -} -.modal__text{ - margin-top: 16px; - - padding-right: 10px; - - font-family: var(--font-family); - font-weight: 400; - font-size: 20px; - line-height: 120%; - color: var(--text-0); -} -.modal__form-sub{ - margin-top: 48px; -} -.modal-form-sub__submit{ - margin-top: 64px; -} -.modal__block-button{ - margin-top: 24px; -} -.modal__button{ - margin-top: 16px; -} -.modal__button:first-child{ - margin-top: 0; -} -.modal__content{ - margin-top: 24px; -} -.modal__filter{ - width: 400px; -} -.modal__footer{ - border-top: 1px solid var(--text-6); - padding-top: 23px; -} -.modal__block-price{ - display: flex; - justify-content: space-between; - align-items: center; -} -.modal-block-price__title{ - font-family: var(--font-family); - font-weight: 600; - font-size: 20px; - line-height: 120%; - color: var(--text-black); -} -.modal-block-price__price{ - font-family: var(--font-family); - font-weight: 700; - font-size: 24px; - line-height: 100%; - text-transform: uppercase; - text-align: right; - color: var(--text-black); -} -.modal-block-price__price::after{ - content: 'Р'; -} -.modal__basket{ - width: 600px; -} -.modal__to-know, -.modal__to-know-submit{ - width: 412px; -} - -.modal-basket__item{ - padding-top: 23px; - padding-right: 15px; - padding-bottom: 24px; - - display: flex; - - border-top: 1px solid var(--background-grey); - - position: relative; -} -.modal-basket__item::before{ - content: ''; - - position: absolute; - top: 24px; - right: 6px; - - width: 24px; - aspect-ratio: 1; - - background-image: url(../img/svg/main/basket.svg); - background-repeat: no-repeat; - background-position: center; - - cursor: pointer; - - transition: opacity .2s ease-out; -} -.modal-basket__item:hover .modal-basket__item::before{ - opacity: .8; -} -.modal-basket__item--return{ - padding-right: 5px; - - display: flex; - justify-content: space-between; - align-items: center; -} -.modal-basket__item--return .modal-basket-item__title{ - padding-right: 10px; -} -.modal-basket__item--return::before{ - display: none; -} -.modal-basket-item__return{ - border-radius: 20px; - padding: 4px 24px; - - font-family: var(--font-family); - font-weight: 600; - font-size: 20px; - line-height: 120%; - color: var(--text-white); - - background: var(--background-black); - - border: none; -} -.modal-basket-item__block-image{ - width: 128px; - aspect-ratio: 1; - - display: flex; - justify-content: center; - align-items: center; -} -.modal-basket-item__image{ - width: 96px; - aspect-ratio: 1; - - object-fit: contain; -} -.modal-basket-item__content{ - margin-left: 16px; -} -.modal-basket-item__title{ - padding-right: 40px; - - font-family: var(--font-family); - font-weight: 500; - font-size: 20px; - line-height: 120%; - color: var(--text-black); -} -.modal-basket-item__sub-title{ - margin-top: 8px; - - font-family: var(--font-family); - font-weight: 700; - font-size: 12px; - line-height: 133%; - color: var(--text-black); -} -.modal-basket-item__control{ - margin-top: 24px; - - display: flex; - justify-content: space-between; - align-items: center; -} -.modal-basket-item__price{ - font-family: var(--font-family); - font-weight: 600; - font-size: 20px; - line-height: 120%; - text-align: right; - color: var(--text-black); -} -.modal-basket-item__price::after{ - content: 'Р'; - - padding-left: 4px; -} -.modal__basket .modal__header{ - height: calc(100% - 92px); - margin-bottom: -36px; -} -.modal__basket .modal__content{ - height: calc(100% - 100px); - overflow-x: hidden; - -} -.modal__basket .modal__content::-webkit-scrollbar { - width: 7px; - background-color: #f9f9fd; -} -.modal__basket .modal__content::-webkit-scrollbar-thumb { - background-color: var(--background-black); - border-radius: 2px; -} - -.modal-form{ - margin: auto; - - width: 600px; - - padding: 24px; - - border-radius: 20px; - - position: relative; - - display: none; -} -.modal-form.active{ - display: block; -} -.modal-form--white{ - border: 1px solid var(--background-black); - background: var(--background-white); -} -.modal-form--green-gradient{ - background: var(--gradient-blue); -} -.modal-form--width-584{ - width: 584px; -} -.modal-form--cdek{ - width: 836px; -} -.modal-form__close{ - position: absolute; - top: 24px; - right: 24px; - - width: 24px; - aspect-ratio: 1; - - border: none; - background: none; - background-image: url(../img/svg/main/black-x.svg); - background-repeat: no-repeat; - background-size: 24px; - background-position: center; - - transition: opacity .2s ease-out; - - z-index: 10; -} -.modal-form__close--white{ - background-image: url(../img/svg/main/white-x.svg); -} -.modal-form__close:hover{ - opacity: .8; -} -.modal-form__button-close{} -.modal-form__title{ - padding-right: 50px; - - font-family: var(--font-family); - font-weight: 700; - font-size: 26px; - line-height: 123%; - text-transform: uppercase; - color: var(--text-dark); -} -.modal-form__text--center{ - text-align: center; -} -.modal-form__text--center-pc{ - text-align: center; -} -.modal-form__title--green-gradient{ - background: var(--gradient-blue); - background-clip: text; - -webkit-background-clip: text; - -webkit-text-fill-color: transparent; -} -.modal-form__title--white{ - color: var(--text-white); -} -.modal-form__element{ - margin-top: 24px; -} -.modal-form__element--center{ - display: flex; - justify-content: center; -} -.modal-form__element--top-40{ - margin-top: 40px; -} -.modal-form__text{ - font-family: var(--font-family); - font-weight: 400; - font-size: 20px; - line-height: 120%; - color: var(--text-black); -} -.modal-form__text--weight-500{ - font-weight: 500; -} -.modal-form__text--white{ - color: var(--text-white); -} -.modal-form__img{ - width: 100%; - height: 360px; - - object-fit: contain; -} -.modal-form__content{ - margin-top: 40px; -} -.modal-form-content__line{ - margin-top: 24px; -} -.modal-form-content__line:first-child{ - margin-top: 0; -} -.modal-form-content__line--two{ - display: flex; - justify-content: space-between; -} -.modal-form-content__line--two-mobile{ - display: flex; - justify-content: space-between; -} -.modal-form-content__line--two-mobile .modal-form-content-line__element{ - width: calc(50% - 12px); -} -.modal-form-content-line__element{ - position: relative; -} -.modal-form-content-line__element--arrow::after{ - content: ''; - - position: absolute; - right: 16px; - bottom: 16px; - - width: 16px; - height: 16px; - - background-image: url(../img/svg/main/arrow-right-input.svg); - - pointer-events: none; -} -.modal-form-content__line--two .modal-form-content-line__element{ - width: calc(50% - 12px); -} -.modal-form-content__line--three{ - display: flex; -} -.modal-form-content__line--three .modal-form-content-line__element:nth-child(1){ - width: 85px; - - flex-shrink: 0; -} -.modal-form-content__line--three .modal-form-content-line__element:nth-child(2){ - margin-left: 8px; - - width: 100%; -} -.modal-form-content__line--three .modal-form-content-line__element:nth-child(3){ - margin-left: 8px; - - width: 85px; - - flex-shrink: 0; -} -.modal-form-content__line--margin-top-16{ - margin-top: 16px; -} -.modal-form__buttons{ - margin-top: 32px; -} -.modal-form__buttons--two{ - display: flex; - justify-content: space-between; - align-items: center; -} - -.modal-form__buttons--two button, -.modal-form__buttons--two input{ - width: calc(50% - 20px); -} -.modal-map{ - margin: auto; - - width: 1105px; - - display: none; - - border-radius: 24px; - border: none; -} -.modal-map.active{ - display: flex; -} -.modal-map__left{ - width: 600px; - - padding: 24px; - - position: relative; -} -.modal-map__control{ - margin: 38px -12px -12px -12px; - - display: flex; -} -.modal-map__control--delivery{ - margin-top: 12px; -} -.modal-map-control__item{ - margin: 12px; - - padding: 2px; - - width: calc(50% - 24px); - - background: var(--background-9); - border-radius: 20px; - border: none; -} -.modal-map-control__item.active{ - background: var(--gradient-blue); -} -.modal-map-control__item.active .form-input-radio__circle::before{ - content: ''; - position: absolute; - top: 4px; - left: 4px; - width: 12px; - aspect-ratio: 1; - border-radius: 50%; - background: var(--gradient-blue); -} -.modal-map-control-item__content{ - padding: 14px; - - border-radius: 18px; - - background: var(--background-white); -} -.modal-map-control-item__header{ - display: flex; - align-items: center; -} -.modal-map-control-item__circle{ - padding: 2px; - width: 20px; - aspect-ratio: 1; - border-radius: 50%; - background: var(--background-9); - position: relative; -} -.modal-map-control-item__input{ - display: none; -} -.modal-map-control-item-circle__content{ - width: 16px; - aspect-ratio: 1; - border-radius: 50%; - background: var(--background-white); -} -.modal-map-control__item.active .modal-map-control-item__circle{ - background: var(--gradient-blue); -} -.modal-map-control__item.active .modal-map-control-item__circle::before{ - content: ''; - position: absolute; - top: 4px; - left: 4px; - width: 12px; - aspect-ratio: 1; - border-radius: 50%; - background: var(--gradient-blue); -} -.modal-map-control-item__title{ - margin-left: 8px; - - font-family: var(--font-family); - font-weight: 400; - font-size: 20px; - line-height: 120%; - color: var(--text-dark); -} -.modal-map-control-item__description{ - margin-top: 16px; -} -.modal-map-control-item__time{ - font-family: var(--font-family); - font-weight: 500; - font-size: 16px; - line-height: 125%; - color: var(--text-black); - - text-align: start; -} -.modal-map-control-item__price{ - margin-top: 8px; - - font-family: var(--font-family); - font-weight: 700; - font-size: 12px; - line-height: 133%; - color: var(--text-6); - - text-align: start; -} -.modal-map__form{ - margin-top: 24px; -} -.modal-map-form__hidden{ - -} -.modal-map-form__button{ - margin-top: 83px; -} -.modal-map-form__sub-button{ - display: none; -} -.modal-map__right{ - padding: 16px 0px 16px 16px; -} -.modal-map__map{ - border: 2px solid var(--background-9); - border-radius: 16px; - border-top-right-radius: 0; - border-bottom-right-radius: 0; -} -.modal-map__map iframe{ - height: 650px; -} -.modal__age{ - -} -.modal__age > div{ - display: none; -} -.modal__age > div.active{ - display: flex; -} -/* modal */ - -/* toggle */ -.toggle{ - padding-top: 26px; - padding-bottom: 25px; - - border-bottom: 1px solid var(--text-3); - - position: relative; -} -.toggle::after{ - content: ''; - - position: absolute; - top: 24px; - right: 0; - - width: 24px; - aspect-ratio: 1; - - background-image: url(../img/svg/main/black-x.svg); - transform: rotate(45deg); - transition: transform .2s; - pointer-events: none; -} -.toggle.active::after{ - transform: rotate(0deg); -} -.toggle__title{ - padding-right: 30px; - - font-family: var(--font-family); - font-weight: 700; - font-size: 16px; - line-height: 125%; - color: var(--text-black); - - cursor: pointer; -} -.toggle__block-content{ - height: 0; - overflow: hidden; - - transition: height .2s ease-out; -} -.toggle__content{ - padding-top: 24px; -} -.toggle-content__item{ - margin: 12px -12px -12px -12px; - - display: flex; - align-items: center; - flex-wrap: wrap; -} -.toggle-content__item:first-child{ - margin-top: 0; -} -.toggle-content__element{ - margin: 12px; -} -.toggle-content__element--width-perc-100{ - width: 100%; -} -.toggle-content__element--width-perc-50{ - width: calc(50% - 24px); -} -.toggle__text{ - font-family: var(--font-family); - font-weight: 400; - font-size: 20px; - line-height: 120%; - color: var(--text-black); -} -/* toggle */ - -/* checkbox */ -.checkbox{ - display: flex; - align-items: center; - - cursor: pointer; -} -.checkbox__state{ - border-radius: 4px; - - width: 18px; - height: 18px; - - border: 2px solid var(--background-black); - background: var(--background-white); - - flex-shrink: 0; -} -.checkbox.active .checkbox__state{ - background-color: var(--background-black); - - background-image: url(../img/svg/main/arrow-selected-white.svg); - background-repeat: no-repeat; - background-position: center; -} -.checkbox__input{ - display: none; -} -.checkbox__label{ - padding-left: 8px; - - font-family: var(--font-family); - font-weight: 400; - font-size: 20px; - line-height: 120%; - color: var(--text-dark); - - cursor: pointer; -} -.checkbox__label a{ - color: #76ce75; - - text-decoration: none; -} -.checkbox--small{ - margin-top: 24px; -} -.checkbox--small .checkbox__label{ - padding-left: 24px; - - font-weight: 500; - font-size: 12px; - line-height: 133%; -} -/* checkbox */ - -/* radio */ -.radio{ - display: flex; - align-items: center; -} -.radio__input{ - width: 18px; - aspect-ratio: 1; - - accent-color: var(--background-black); - - cursor: pointer; -} -.radio__label{ - padding-left: 8px; - - font-family: var(--font-family); - font-weight: 400; - font-size: 20px; - line-height: 120%; - color: var(--text-dark); - - cursor: pointer; -} -/* radio */ - -.added_to_cart { - display: none!important; -} - -@keyframes slidein { - from { - opacity: 0; - } - - to { - opacity: 1; - } -} /* Sidebar Filters */ diff --git a/wp-content/themes/cosmopet/woocommerce/assets/js/_gp-function.js b/wp-content/themes/cosmopet/woocommerce/assets/js/_gp-function.js deleted file mode 100644 index ed4d7ab..0000000 --- a/wp-content/themes/cosmopet/woocommerce/assets/js/_gp-function.js +++ /dev/null @@ -1,156 +0,0 @@ -'use strict'; - -// function -export function modalOpen(buttonElement, contentElement){ - let modal = document.querySelector('.modal'), - aside = document.querySelector('.modal__aside'), - elements = document.querySelectorAll(buttonElement), - device = window.screen.width; - - elements.forEach(e => { - let thisContentElement = document.querySelector(contentElement); - - e.onclick = function () { - modal.classList.add('active'); - thisContentElement.classList.add('active'); - - let width = thisContentElement.clientWidth; - - setTimeout(() => { - if (device <= 720) { - aside.style.width = `${device}px`; - thisContentElement.style.opacity = 1; - thisContentElement.style.filter = 'blur(0px)'; - }else{ - aside.style.width = `${width}px`; - thisContentElement.style.opacity = 1; - thisContentElement.style.filter = 'blur(0px)'; - } - }, 10); - } - }) -} - -export function modalClose(buttonElement) { - let modal = document.querySelector('.modal'), - aside = document.querySelector('.modal__aside'), - asideItems = document.querySelectorAll('.modal__item'), - elements = document.querySelectorAll(buttonElement); - - elements.forEach(e => { - e.onclick = function () { - aside.style.width = '0px'; - - asideItems.forEach(e => { - if (e.classList.contains('active')) { - e.style.filter = 'blur(10px)'; - } - }); - - setTimeout(() => { - asideItems.forEach(e => { - if (e.classList.contains('active')) { - e.classList.remove('active'); - } - }); - - modal.classList.remove('active'); - }, 300); - } - }) -} - -export function closeModalForm(close){ - let buttons = document.querySelectorAll(close), - modal = document.querySelector('.modal'); - - buttons.forEach(button => { - button.onclick = function (buttonEvent) { - modal.classList.remove('active'); - - if (!modal.querySelector('.modal-map.active')) { - modal.querySelector('.modal-form.active').classList.remove('active'); - }else{ - modal.querySelector('.modal-map.active').classList.remove('active'); - } - } - }) -} - -export function toggleOpenX(mainElement, buttonElement ,heightElement, contentElement, close) { - let elements = document.querySelectorAll(mainElement); - - elements.forEach(e => { - let thisMainElement = e, - thisButtonElement = e.querySelector(buttonElement), - thisHeightElement = e.querySelector(heightElement), - thisContentElement = e.querySelector(contentElement); - - thisButtonElement.onclick = function (e) { - let height = thisHeightElement.clientHeight; - - if (close == true && !thisMainElement.classList.contains('active')) { - elements.forEach(e => { - if (e.classList.contains('active')) { - e.classList.remove('active'); - e.querySelector(contentElement).style.height = null - } - }) - } - - if (!thisMainElement.classList.contains('active')) { - thisContentElement.style.height = `${height}px`; - thisMainElement.classList.add('active'); - }else{ - thisContentElement.style.height = null; - thisMainElement.classList.remove('active'); - } - } - - }); -} - -export function toggleHeader(button, content, blockheight, removeBlock, removeClass) { - let thisButton = document.querySelector(button), - thisContent = document.querySelector(content), - thisRemoveBlock = document.querySelector(removeBlock) || '', - thisBlockheight = document.querySelector(blockheight); - - thisButton.onclick = function () { - let height = thisBlockheight.clientHeight; - - if (!thisContent.classList .contains('open')) { - thisContent.style.height = `${height}px`; - thisContent.classList .add('open'); - - if (removeBlock) { - thisRemoveBlock.classList.remove(removeClass); - } - }else{ - thisContent.style.height = null; - thisContent.classList .remove('open'); - - if (removeBlock) { - if (window.scrollY <= 25) { - thisRemoveBlock.classList.add(removeClass); - } - } - } - } -} - -export function modalFormOpen(formOrNotification) { - let buttons = document.querySelectorAll(formOrNotification), - modal = document.querySelector('.modal'); - - buttons.forEach(button => { - button.onclick = function (eventButton) { - let classOpenForm = button.dataset.form, - form = modal.querySelector(`.${classOpenForm}`); - - form.classList.add('active'); - modal.classList.add('active'); - } - }) -} -// function \ No newline at end of file diff --git a/wp-content/themes/cosmopet/woocommerce/assets/js/core.js b/wp-content/themes/cosmopet/woocommerce/assets/js/core.js deleted file mode 100644 index d515cbb..0000000 --- a/wp-content/themes/cosmopet/woocommerce/assets/js/core.js +++ /dev/null @@ -1,110 +0,0 @@ -'use strict'; - -// slider gallery modal -const gallery = new Swiper('.gallery__slider', { - spaceBetween: 100, - - pagination: { - el: '.swiper-pagination', - }, - - navigation: { - nextEl: '.swiper-button-next', - prevEl: '.swiper-button-prev', - }, - - scrollbar: { - el: '.swiper-scrollbar', - }, -}); - -let paginationButtons = document.querySelectorAll('.gallery-pagination__item'); - -paginationButtons.forEach(button => { - let index = button.dataset.countImg; - - button.onclick = function () { - gallery.slideTo(index); - } -}) - -// open gallery -let detailImage= document.querySelectorAll('.detail__image'); -detailImage.forEach(button => { - let index = button.dataset.countImg; - - button.onclick = function () { - gallery.slideTo(index); - - document.querySelector('.gallery').classList.add('active'); - } -}) - -// close gallery - -document.querySelector('.gallery__close').onclick = function () { - document.querySelector('.gallery').classList.remove('active'); -} -// slider gallery modal - -// slider gallery main phone - -// createGalleryPhone('.detail__images', '.detail-images__wrapper', '.detail__image', 980); - -const detailPhone = new Swiper('.detail__images-phone', { - spaceBetween: 100, - - pagination: { - el: '.swiper-pagination', - }, - - navigation: { - nextEl: '.swiper-button-next', - prevEl: '.swiper-button-prev', - }, - - scrollbar: { - el: '.swiper-scrollbar', - }, -}); - -let detailImagesPhones = document.querySelectorAll('.detail-images-phone__image-block'); - -detailImagesPhones.forEach(button => { - button.onclick = function (e) { - let index = button.dataset.countImg; - - gallery.slideTo(index); - - document.querySelector('.gallery').classList.add('active'); - } -}) - -// slider gallery main phone - -// detail catalog -const detailCatalot = new Swiper('.detail__catalot', { - // Navigation arrows - navigation: { - nextEl: '.detail-catalot-control__button.next', - prevEl: '.detail-catalot-control__button.prev', - }, - breakpoints: { - 1600: { - slidesPerView: 4, - }, - 1200: { - slidesPerView: 3, - }, - 780: { - slidesPerView: 2, - }, - 100: { - slidesPerView: 1.1, - spaceBetween: 20 - }, - } - - -}); -// detail catalog \ No newline at end of file diff --git a/wp-content/themes/cosmopet/woocommerce/assets/js/gp-cabinet.js b/wp-content/themes/cosmopet/woocommerce/assets/js/gp-cabinet.js deleted file mode 100644 index d8a5111..0000000 --- a/wp-content/themes/cosmopet/woocommerce/assets/js/gp-cabinet.js +++ /dev/null @@ -1,67 +0,0 @@ -'use strict'; - -import * as fun from './_gp-function.js'; - -let widthPhoneCabinet = 1200; - -fun.toggleOpenX('.cabinet-card__order', '.cabinet-card-order__open-detail', '.cabinet-card-order__detail', '.cabinet-card-order__block-detail'); -fun.modalFormOpen('.form-open'); - -fun.closeModalForm('.modal-form__close'); -fun.closeModalForm('.modal-form__button-close'); - -controlCabinet('.cabinet-control__button', '.cabinet', widthPhoneCabinet); - -function controlCabinet(buttons, main, minWidth){ - let thisWidth = window.innerWidth; - let thisMain = document.querySelector(main); - - let thisButtons = document.querySelectorAll(buttons); - - thisButtons.forEach(e => { - e.onclick = function (element){ - let thisContent = document.querySelector(`.cabinet__${e.dataset.cabinet}`); - let newHeight = thisContent.clientHeight + 48; - let thisButton = element.target; - - thisMain.style.height = `${newHeight}px` - - if (!thisContent.classList.contains('active')) { - thisMain.querySelector('.active').classList.remove('active'); - thisContent.classList.add('active'); - - setTimeout(() => { - thisMain.style.height = 'auto'; - - if (thisMain.querySelector('.hide')) { - thisMain.querySelector('.hide').classList.remove('hide'); - } - - thisMain.querySelector('.active').classList.add('hide'); - }, 200); - } - - thisButtons.forEach(e => { - e.classList.remove('active'); - }) - thisButton.classList.add('active'); - } - }) - -} - -let modal = document.querySelector('.modal'); -modal.onclick = function (eventModal) { - let thisTarget = eventModal.target; - - if (thisTarget.classList.contains('modal')) { - thisTarget.classList.remove('active'); - - if (!thisTarget.querySelector('.modal-map.active')) { - thisTarget.querySelector('.modal-form.active').classList.remove('active'); - }else{ - thisTarget.querySelector('.modal-map.active').classList.remove('active'); - } - } -} - diff --git a/wp-content/themes/cosmopet/woocommerce/assets/js/gp-product.js b/wp-content/themes/cosmopet/woocommerce/assets/js/gp-product.js deleted file mode 100644 index 2508270..0000000 --- a/wp-content/themes/cosmopet/woocommerce/assets/js/gp-product.js +++ /dev/null @@ -1,110 +0,0 @@ -'use strict'; - -// slider gallery modal -const gallery = new Swiper('.gallery__slider', { - spaceBetween: 100, - - pagination: { - el: '.swiper-pagination', - }, - - navigation: { - nextEl: '.swiper-button-next', - prevEl: '.swiper-button-prev', - }, - - scrollbar: { - el: '.swiper-scrollbar', - }, -}); - -let paginationButtons = document.querySelectorAll('.gallery-pagination__item'); - -paginationButtons.forEach(button => { - let index = button.dataset.countImg; - - button.onclick = function () { - gallery.slideTo(index); - } -}) - -// open gallery -let detailImage= document.querySelectorAll('.detail__image'); -detailImage.forEach(button => { - let index = button.dataset.countImg; - - button.onclick = function () { - gallery.slideTo(index); - - document.querySelector('.gallery').classList.add('active'); - } -}) - -// close gallery - -document.querySelector('.gallery__close').onclick = function () { - document.querySelector('.gallery').classList.remove('active'); -} -// slider gallery modal - -// slider gallery main phone - -// createGalleryPhone('.detail__images', '.detail-images__wrapper', '.detail__image', 980); - -const detailPhone = new Swiper('.detail__images-phone', { - spaceBetween: 100, - - pagination: { - el: '.swiper-pagination', - }, - - navigation: { - nextEl: '.swiper-button-next', - prevEl: '.swiper-button-prev', - }, - - scrollbar: { - el: '.swiper-scrollbar', - }, -}); - -let detailImagesPhones = document.querySelectorAll('.detail-images-phone__image-block'); - -detailImagesPhones.forEach(button => { - button.onclick = function (e) { - let index = button.dataset.countImg; - - gallery.slideTo(index); - - document.querySelector('.gallery').classList.add('active'); - } -}) - -// slider gallery main phone - -// detail catalog -const detailCatalot = new Swiper('.detail__catalot', { - // Navigation arrows - navigation: { - nextEl: '.detail-catalot-control__button.next', - prevEl: '.detail-catalot-control__button.prev', - }, - breakpoints: { - 1600: { - slidesPerView: 4, - }, - 1200: { - slidesPerView: 3, - }, - 780: { - slidesPerView: 2, - }, - 100: { - slidesPerView: 1.1, - spaceBetween: 20 - }, - } - - -}); -// detail catalog \ No newline at end of file diff --git a/wp-content/themes/cosmopet/woocommerce/cart/cart-item-data.php b/wp-content/themes/cosmopet/woocommerce/cart/cart-item-data.php new file mode 100644 index 0000000..89c61e1 --- /dev/null +++ b/wp-content/themes/cosmopet/woocommerce/cart/cart-item-data.php @@ -0,0 +1,29 @@ + +
    + +
  • + : + +
  • + +
diff --git a/wp-content/themes/cosmopet/woocommerce/cart/cart-shipping.php b/wp-content/themes/cosmopet/woocommerce/cart/cart-shipping.php new file mode 100644 index 0000000..b341ab6 --- /dev/null +++ b/wp-content/themes/cosmopet/woocommerce/cart/cart-shipping.php @@ -0,0 +1,121 @@ +countries->get_formatted_address( $package['destination'], ', ' ); +$has_calculated_shipping = ! empty( $has_calculated_shipping ); +$show_shipping_calculator = ! empty( $show_shipping_calculator ); +$calculator_text = ''; + +?> + + + + + + +
    + label, $matches)) { + $text_before_comma = trim($matches[1]); // Текст до запятой + $text_in_parentheses = trim($matches[2]); // Текст в скобках + } else { + $text_before_comma = ''; + $text_in_parentheses = ''; + } + if ($text_before_comma == 'CDEK: Посылка склад-дверь'){ + $title = 'Курьером'; + } + else if ($text_before_comma == 'CDEK: Посылка склад-склад'){ + $title = 'Пункт выдачи'; + } + ?> + + + + +
+ +

+ ' . esc_html( $formatted_destination ) . '' ); + $calculator_text = esc_html__( 'Change address', 'woocommerce' ); + } else { + echo wp_kses_post( apply_filters( 'woocommerce_shipping_estimate_html', __( 'Shipping options will be updated during checkout.', 'woocommerce' ) ) ); + } + ?> +

+ + +

Нет доступных способов доставки. Для отображение доступных методов укажите ваш город.

+ + + + + + + + + + \ No newline at end of file diff --git a/wp-content/themes/cosmopet/woocommerce/cart/cart.php b/wp-content/themes/cosmopet/woocommerce/cart/cart.php new file mode 100644 index 0000000..b3040d7 --- /dev/null +++ b/wp-content/themes/cosmopet/woocommerce/cart/cart.php @@ -0,0 +1,236 @@ + + +
+ + + +
+
+ + + + + + + + + + + + + + + + + + + + + cart->get_cart() as $cart_item_key => $cart_item ) { + $_product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key ); + $product_id = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key ); + + if ( $_product && $_product->exists() && $cart_item['quantity'] > 0 && apply_filters( 'woocommerce_cart_item_visible', true, $cart_item, $cart_item_key ) ) { + $product_permalink = apply_filters( 'woocommerce_cart_item_permalink', $_product->is_visible() ? $_product->get_permalink( $cart_item ) : '', $cart_item, $cart_item_key ); + $product_name = apply_filters( 'woocommerce_cart_item_name', $_product->get_name(), $cart_item, $cart_item_key ); + ?> + + + + + + + + + + + + + + + + + + + + + + + + + + +
;
+ ×', + esc_url( wc_get_cart_remove_url( $cart_item_key ) ), + /* translators: %s is the product name */ + esc_attr( sprintf( __( 'Remove %s from cart', 'woocommerce' ), wp_strip_all_tags( $product_name ) ) ), + esc_attr( $product_id ), + esc_attr( $_product->get_sku() ) + ), + $cart_item_key + ); + ?> + + get_image(), $cart_item, $cart_item_key ); + } else { + printf( '%s', esc_url( $product_permalink ), apply_filters( 'woocommerce_cart_item_thumbnail', $_product->get_image(), $cart_item, $cart_item_key ) ); + } + ?> + + %s', esc_url( $product_permalink ), $_product->get_name() ), $cart_item, $cart_item_key ) ); + } + + do_action( 'woocommerce_after_cart_item_name', $cart_item, $cart_item_key ); + + // Meta data + echo wc_get_formatted_cart_item_data( $cart_item ); + + // Backorder notification + if ( $_product->backorders_require_notification() && $_product->is_on_backorder( $cart_item['quantity'] ) ) { + echo wp_kses_post( apply_filters( 'woocommerce_cart_item_backorder_notification', '

' . esc_html__( 'Available on backorder', 'woocommerce' ) . '

', $product_id ) ); + } + ?> +
+ get_sku() ) : ?> + get_sku() ); ?> + + + + + cart->get_product_price( $_product ), $cart_item, $cart_item_key ); + ?> + + is_sold_individually() ) { + $min_quantity = 1; + $max_quantity = 1; + } else { + $min_quantity = 0; + $max_quantity = $_product->get_max_purchase_quantity(); + } + + $product_quantity = woocommerce_quantity_input( + array( + 'input_name' => "cart[{$cart_item_key}][qty]", + 'input_value' => $cart_item['quantity'], + 'max_value' => $max_quantity, + 'min_value' => $min_quantity, + 'product_name' => $product_name, + ), + $_product, + false + ); + + echo apply_filters( 'woocommerce_cart_item_quantity', $product_quantity, $cart_item_key, $cart_item ); + ?> + + cart->get_product_subtotal( $_product, $cart_item['quantity'] ), $cart_item, $cart_item_key ); + ?> +
+ +
+
+ + +
+ + + + +
+ + +
+
+ + + + + +
+
+
+
+ +
+ +
+ +
+ + + + + +
+ + + +
+ + diff --git a/wp-content/themes/cosmopet/woocommerce/cart/cross-sells.php b/wp-content/themes/cosmopet/woocommerce/cart/cross-sells.php new file mode 100644 index 0000000..c7a7c53 --- /dev/null +++ b/wp-content/themes/cosmopet/woocommerce/cart/cross-sells.php @@ -0,0 +1,57 @@ + + +
+ + +

+ + + apply_filters( 'woodmart_cross_sells_products_per_view', 4 ), + 'hide_pagination_control' => true, + 'hide_prev_next_buttons' => true, + 'img_size' => 'woocommerce_thumbnail', + 'custom_sizes' => apply_filters( 'woodmart_cross_sells_custom_sizes', false ), + 'product_quantity' => woodmart_get_opt( 'product_quantity' ), + 'products_bordered_grid' => woodmart_get_opt( 'products_bordered_grid' ), + 'products_bordered_grid_style' => woodmart_get_opt( 'products_bordered_grid_style' ), + 'products_with_background' => woodmart_get_opt( 'products_with_background' ), + 'products_shadow' => woodmart_get_opt( 'products_shadow' ), + 'products_color_scheme' => woodmart_get_opt( 'products_color_scheme' ), + ); + + woodmart_set_loop_prop( 'products_view', 'carousel' ); + + echo woodmart_generate_posts_slider( $slider_args, false, $cross_sells ); + + ?> + +
+ + + +
+
+ + cart->is_empty() ) : ?> + +
    + + cart->get_cart() as $cart_item_key => $cart_item ) { + $_i++; + if( $_i > $items_to_show ) break; + + $_product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key ); + $product_id = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key ); + + if ( $_product && $_product->exists() && $cart_item['quantity'] > 0 && apply_filters( 'woocommerce_widget_cart_item_visible', true, $cart_item, $cart_item_key ) ) { + /** + * This filter is documented in woocommerce/templates/cart/cart.php. + * + * @param string $product_name Name of the product in the cart. + */ + $product_name = apply_filters( 'woocommerce_cart_item_name', $_product->get_name(), $cart_item, $cart_item_key ); + + $product_price = apply_filters( 'woocommerce_cart_item_price', WC()->cart->get_product_price( $_product ), $cart_item, $cart_item_key ); + $product_permalink = apply_filters( 'woocommerce_cart_item_permalink', $_product->is_visible() ? $_product->get_permalink( $cart_item ) : '', $cart_item, $cart_item_key ); + ?> +
  • + + ×', + esc_url( wc_get_cart_remove_url( $cart_item_key ) ), + /* translators: %s is the product name */ + esc_attr( sprintf( __( 'Remove %s from cart', 'woocommerce' ), wp_strip_all_tags( $product_name ) ) ), + esc_attr( $product_id ), + esc_attr( $cart_item_key ), + esc_attr( $_product->get_sku() ) + ), $cart_item_key ); + ?> + + get_image(), $cart_item, $cart_item_key ); ?> + + + get_image(), $cart_item, $cart_item_key ); ?> + + + +
    + + + + +
    + + + + + get_sku() ) : ?> + get_sku() ); ?> + + + + +
    + + + + is_sold_individually() && $_product->is_purchasable() && woodmart_get_opt( 'mini_cart_quantity' ) && apply_filters( 'woodmart_show_widget_cart_item_quantity', true, $cart_item_key ) ) { + woocommerce_quantity_input( + array( + 'input_value' => $cart_item['quantity'], + 'min_value' => 0, + 'max_value' => $_product->backorders_allowed() ? '' : $_product->get_stock_quantity(), + ), + $_product + ); + } + ?> + + ' . sprintf( '%s × %s', $cart_item['quantity'], $product_price ) . '', $cart_item, $cart_item_key ); ?> +
    + +
  • + +
+ + + +
+

+ 0 ) : ?> + + + + +
+ + + +
+
+ +
+ cart->is_empty() ) : ?> + + version, '3.7.0', '<' ) ) : ?> +

: cart->get_cart_subtotal(); ?>

+ +

+ +

+ + + + +

+ + + + + + +
diff --git a/wp-content/themes/cosmopet/woocommerce/checkout/cart-errors.php b/wp-content/themes/cosmopet/woocommerce/checkout/cart-errors.php new file mode 100644 index 0000000..56c989d --- /dev/null +++ b/wp-content/themes/cosmopet/woocommerce/checkout/cart-errors.php @@ -0,0 +1,25 @@ + + +

+ + + +

diff --git a/wp-content/themes/cosmopet/woocommerce/checkout/form-billing.php b/wp-content/themes/cosmopet/woocommerce/checkout/form-billing.php new file mode 100644 index 0000000..dbeeb55 --- /dev/null +++ b/wp-content/themes/cosmopet/woocommerce/checkout/form-billing.php @@ -0,0 +1,56 @@ + +
+ cart->needs_shipping() ) : ?> + +

+ + + +

+ + + + + +
+ get_checkout_fields( 'billing' ); + + foreach ( $fields as $key => $field ) { + woocommerce_form_field( $key, $field, $checkout->get_value( $key ) ); + } + ?> +
+ + +
+ +is_registration_enabled() ) : ?> + + diff --git a/wp-content/themes/cosmopet/woocommerce/checkout/form-checkout.php b/wp-content/themes/cosmopet/woocommerce/checkout/form-checkout.php new file mode 100644 index 0000000..d259c1d --- /dev/null +++ b/wp-content/themes/cosmopet/woocommerce/checkout/form-checkout.php @@ -0,0 +1,29 @@ +checkout(); + +// In your theme's functions.php +add_filter('timber/twig', function($twig) { + $twig->addFunction(new \Twig\TwigFunction('WC', function() { + return WC(); + })); + return $twig; +}); + +// Render the Twig template +Timber::render('shop/checkout.twig', $context); \ No newline at end of file diff --git a/wp-content/themes/cosmopet/woocommerce/checkout/form-coupon.php b/wp-content/themes/cosmopet/woocommerce/checkout/form-coupon.php new file mode 100644 index 0000000..072b47d --- /dev/null +++ b/wp-content/themes/cosmopet/woocommerce/checkout/form-coupon.php @@ -0,0 +1,49 @@ + + +cart->get_applied_coupons(); +if($applied_coupons){ + $first_coupon = $applied_coupons[0]; + $cText = 'Применен промокод: ' . $first_coupon; + $coupon = $applied_coupons[0]; +} +else{ + $cText = ''; + $coupon = ''; +} + +?> +
> + + +Ошибка! Промокод введен неверно или не существует. +
+ +
> + + +
\ No newline at end of file diff --git a/wp-content/themes/cosmopet/woocommerce/checkout/form-login.php b/wp-content/themes/cosmopet/woocommerce/checkout/form-login.php new file mode 100644 index 0000000..f9b9c40 --- /dev/null +++ b/wp-content/themes/cosmopet/woocommerce/checkout/form-login.php @@ -0,0 +1,36 @@ + + + esc_html__( 'If you have shopped with us before, please enter your details below. If you are a new customer, please proceed to the Billing section.', 'woocommerce' ), + 'redirect' => wc_get_checkout_url(), + 'hidden' => true, + ) +); diff --git a/wp-content/themes/cosmopet/woocommerce/checkout/form-pay.php b/wp-content/themes/cosmopet/woocommerce/checkout/form-pay.php new file mode 100644 index 0000000..59d9b34 --- /dev/null +++ b/wp-content/themes/cosmopet/woocommerce/checkout/form-pay.php @@ -0,0 +1,109 @@ +get_order_item_totals(); // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited +?> +
+ + + + + + + + + + + get_items() ) > 0 ) : ?> + get_items() as $item_id => $item ) : ?> + + + + + + + + + + + + + + + + + + + +
+ get_name(), $item, false ) ); + + do_action( 'woocommerce_order_item_meta_start', $item_id, $item, $order, false ); + + wc_display_item_meta( $item ); + + do_action( 'woocommerce_order_item_meta_end', $item_id, $item, $order, false ); + ?> + ' . sprintf( '× %s', esc_html( $item->get_quantity() ) ) . '', $item ); ?>get_formatted_line_subtotal( $item ); ?>
+ + + +
+ needs_payment() ) : ?> +
    + $gateway ) ); + } + } else { + echo '
  • '; + wc_print_notice( apply_filters( 'woocommerce_no_available_payment_methods_message', esc_html__( 'Sorry, it seems that there are no available payment methods for your location. Please contact us if you require assistance or wish to make alternate arrangements.', 'woocommerce' ) ), 'notice' ); // phpcs:ignore WooCommerce.Commenting.CommentHooks.MissingHookComment + echo '
  • '; + } + ?> +
+ +
+ + + + + + + ' . esc_html( $order_button_text ) . '' ); // @codingStandardsIgnoreLine ?> + + + + +
+
+
diff --git a/wp-content/themes/cosmopet/woocommerce/checkout/form-shipping.php b/wp-content/themes/cosmopet/woocommerce/checkout/form-shipping.php new file mode 100644 index 0000000..727f9de --- /dev/null +++ b/wp-content/themes/cosmopet/woocommerce/checkout/form-shipping.php @@ -0,0 +1,70 @@ + +
+ cart->needs_shipping_address() ) : ?> + +

+ +

+ +
+ + + +
+ get_checkout_fields( 'shipping' ); + + foreach ( $fields as $key => $field ) { + woocommerce_form_field( $key, $field, $checkout->get_value( $key ) ); + } + ?> +
+ + + +
+ + +
+
+ + + + + cart->needs_shipping() || wc_ship_to_billing_address_only() ) : ?> + +

+ + + +
+ get_checkout_fields( 'order' ) as $key => $field ) : ?> + get_value( $key ) ); ?> + +
+ + + + +
diff --git a/wp-content/themes/cosmopet/woocommerce/checkout/form-verify-email.php b/wp-content/themes/cosmopet/woocommerce/checkout/form-verify-email.php new file mode 100644 index 0000000..fd86a4d --- /dev/null +++ b/wp-content/themes/cosmopet/woocommerce/checkout/form-verify-email.php @@ -0,0 +1,53 @@ + +
+ + +

+ ', + '' + ); + ?> +

+ +

+ + +

+ +

+ +

+
diff --git a/wp-content/themes/cosmopet/woocommerce/checkout/order-receipt.php b/wp-content/themes/cosmopet/woocommerce/checkout/order-receipt.php new file mode 100644 index 0000000..74b628f --- /dev/null +++ b/wp-content/themes/cosmopet/woocommerce/checkout/order-receipt.php @@ -0,0 +1,19 @@ + + +

+ +

diff --git a/wp-content/themes/cosmopet/woocommerce/checkout/payment-method.php b/wp-content/themes/cosmopet/woocommerce/checkout/payment-method.php new file mode 100644 index 0000000..05308d8 --- /dev/null +++ b/wp-content/themes/cosmopet/woocommerce/checkout/payment-method.php @@ -0,0 +1,33 @@ + +
  • + chosen, true ); ?> data-order_button_text="order_button_text ); ?>" /> + + + has_fields() || $gateway->get_description() ) : ?> +
    chosen ) : /* phpcs:ignore Squiz.ControlStructures.ControlSignature.NewlineAfterOpenBrace */ ?>style="display:none;"> + payment_fields(); ?> +
    + +
  • diff --git a/wp-content/themes/cosmopet/woocommerce/checkout/payment.php b/wp-content/themes/cosmopet/woocommerce/checkout/payment.php new file mode 100644 index 0000000..3b68df7 --- /dev/null +++ b/wp-content/themes/cosmopet/woocommerce/checkout/payment.php @@ -0,0 +1,63 @@ + +
    + cart->needs_payment() ) : ?> +
      + $gateway ) ); + } + } else { + echo '
    • '; + wc_print_notice( apply_filters( 'woocommerce_no_available_payment_methods_message', WC()->customer->get_billing_country() ? esc_html__( 'Sorry, it seems that there are no available payment methods. Please contact us if you require assistance or wish to make alternate arrangements.', 'woocommerce' ) : esc_html__( 'Please fill in your details above to see available payment methods.', 'woocommerce' ) ), 'notice' ); // phpcs:ignore WooCommerce.Commenting.CommentHooks.MissingHookComment + echo '
    • '; + } + ?> +
    + +
    + + + + + + + ' . esc_html( $order_button_text ) . '' ); // @codingStandardsIgnoreLine ?> + + + + +
    +
    + + + + + + + + + + + + + + cart->get_coupons() as $code => $coupon ) : ?> + + + + + + + cart->needs_shipping() && WC()->cart->show_shipping() ) : ?> + + + + + + + + + + + + session->get( 'chosen_shipping_methods' ); + ?> + + + + + + + + + cart->get_fees() as $fee ) : ?> + + + + + + + cart->display_prices_including_tax() ) : ?> + + cart->get_tax_totals() as $code => $tax ) : // phpcs:ignore WordPress.WP.GlobalVariablesOverride.Prohibited ?> + + + + + + + + + + + + + + + + + + + + + + + + +
    Товары
    ДоставкаВведите адрес доставкиcart->get_shipping_total(); ?> ₽
    name ); ?>
    label ); ?>formatted_amount ); ?>
    countries->tax_or_vat() ); ?>
    \ No newline at end of file diff --git a/wp-content/themes/cosmopet/woocommerce/checkout/terms.php b/wp-content/themes/cosmopet/woocommerce/checkout/terms.php new file mode 100644 index 0000000..eebb91b --- /dev/null +++ b/wp-content/themes/cosmopet/woocommerce/checkout/terms.php @@ -0,0 +1,43 @@ + +
    + + + + + + + +
    + + +
    + + get_id() ); + ?> + + has_status( 'failed' ) ) : ?> + +

    + +

    + + + + +

    + + + + $order ) ); ?> + +
      + +
    • + + get_order_number(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> +
    • + +
    • + + get_date_created() ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> +
    • + + get_user_id() === get_current_user_id() && $order->get_billing_email() ) : ?> + + + +
    • + + get_formatted_order_total(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> +
    • + + get_payment_method_title() ) : ?> +
    • + + get_payment_method_title() ); ?> +
    • + + +
    + + + + get_payment_method(), $order->get_id() ); ?> + get_id() ); ?> + + + + false ) ); ?> + + + +
    diff --git a/wp-content/themes/cosmopet/woocommerce/checkout/thankyou.php b/wp-content/themes/cosmopet/woocommerce/checkout/thankyou.php new file mode 100644 index 0000000..6019893 --- /dev/null +++ b/wp-content/themes/cosmopet/woocommerce/checkout/thankyou.php @@ -0,0 +1,108 @@ + + +
    + + + + get_id() ); ?> + + has_status( 'failed' ) ) : ?> + +

    + +

    + + + + +

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

    + +
      + +
    • + + get_order_number(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> +
    • + +
    • + + get_date_created() ); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> +
    • + + get_user_id() === get_current_user_id() && $order->get_billing_email() ) : ?> + + + +
    • + + get_formatted_order_total(); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped ?> +
    • + + get_payment_method_title() ) : ?> +
    • + + get_payment_method_title() ); ?> +
    • + + +
    + + + + + + + get_payment_method(), $order->get_id() ); ?> + get_id() ); ?> + + + + +

    + + + +
    -- 2.36.3 From fd51269523451ad426605d027cb233bf8ffc64e8 Mon Sep 17 00:00:00 2001 From: gp_dev Date: Thu, 15 May 2025 16:31:23 +0300 Subject: [PATCH 2/4] Add cart and checkout --- wp-content/themes/cosmopet/functions.php | 3 +- .../global-functions/multilang-functions.php | 43 +++ .../modules/layout/assets/js/_gp-function.js | 166 --------- .../modules/layout/module-controller.php | 1 + .../shop/components/cart/assets/js/cart.js | 4 +- .../components/cart/component-controller.php | 8 - .../modules/shop/module-ajax-controller.php | 143 ++++++++ .../modules/shop/module-controller.php | 323 ++++++++++++++++++ .../themes/cosmopet/templates/layout.twig | 26 ++ .../woocommerce/cart/cart-item-data.php | 29 -- .../woocommerce/cart/cart-shipping.php | 121 ------- .../themes/cosmopet/woocommerce/cart/cart.php | 236 ------------- .../cosmopet/woocommerce/cart/cross-sells.php | 57 ---- .../cosmopet/woocommerce/cart/mini-cart.php | 167 --------- 14 files changed, 540 insertions(+), 787 deletions(-) delete mode 100644 wp-content/themes/cosmopet/woocommerce/cart/cart-item-data.php delete mode 100644 wp-content/themes/cosmopet/woocommerce/cart/cart-shipping.php delete mode 100644 wp-content/themes/cosmopet/woocommerce/cart/cart.php delete mode 100644 wp-content/themes/cosmopet/woocommerce/cart/cross-sells.php delete mode 100644 wp-content/themes/cosmopet/woocommerce/cart/mini-cart.php diff --git a/wp-content/themes/cosmopet/functions.php b/wp-content/themes/cosmopet/functions.php index 0c95761..f0953ab 100644 --- a/wp-content/themes/cosmopet/functions.php +++ b/wp-content/themes/cosmopet/functions.php @@ -595,4 +595,5 @@ register_sidebar( array( ) ); -add_filter( 'woocommerce_price_trim_zeros', '__return_true' ); \ No newline at end of file +add_filter( 'woocommerce_price_trim_zeros', '__return_true' ); + diff --git a/wp-content/themes/cosmopet/global-functions/multilang-functions.php b/wp-content/themes/cosmopet/global-functions/multilang-functions.php index e69de29..7bf81c6 100644 --- a/wp-content/themes/cosmopet/global-functions/multilang-functions.php +++ b/wp-content/themes/cosmopet/global-functions/multilang-functions.php @@ -0,0 +1,43 @@ +скидку!', 'Узнайте о нас больше и получите скидку!'); + pll_register_string ('Это миф!', 'Это миф!'); + pll_register_string ('Это правда!', 'Это правда!'); + pll_register_string ('Правда', 'Правда'); + pll_register_string ('Миф', 'Миф'); + pll_register_string ('Далее', 'Далее'); + pll_register_string ('ваш результат', 'ваш результат'); + pll_register_string ('Скопировать', 'Скопировать'); + pll_register_string ('Скопировано', 'Скопировано'); + pll_register_string ('В магазин', 'В магазин'); + pll_register_string ('Наш блог', 'Наш блог'); + pll_register_string ('Новости рынка кормов и экологии, полезные статьи о здоровье домашних животных', 'Новости рынка кормов и экологии, полезные статьи о здоровье домашних животных'); + pll_register_string ('ЭТАПЫ ПРОИЗВОД­СТВА', 'ЭТАПЫ ПРОИЗВОД­СТВА'); + pll_register_string ('Этапы производс­тва корма', 'Этапы производс­тва корма'); + pll_register_string ('Все статьи', 'Все статьи'); + pll_register_string ('Узнать больше', 'Узнать больше'); +}); + diff --git a/wp-content/themes/cosmopet/modules/layout/assets/js/_gp-function.js b/wp-content/themes/cosmopet/modules/layout/assets/js/_gp-function.js index d76ad0b..e69de29 100644 --- a/wp-content/themes/cosmopet/modules/layout/assets/js/_gp-function.js +++ b/wp-content/themes/cosmopet/modules/layout/assets/js/_gp-function.js @@ -1,166 +0,0 @@ -// 'use strict'; - -// // Глобальные переменные для управления состоянием -// let currentModalContent = null; - -// function modalOpen(buttonElement, contentElement) { -// const modal = document.querySelector('.modal'); -// const aside = document.querySelector('.modal__aside'); -// const elements = document.querySelectorAll(buttonElement); -// const device = window.screen.width; - -// // Обработчик закрытия по клику на оверлей -// modal.addEventListener('click', function(e) { -// if (e.target === modal && currentModalContent) { -// closeModal(currentModalContent); -// } -// }); - -// // Обработчик закрытия по Escape -// document.addEventListener('keydown', function(e) { -// if (e.key === 'Escape' && currentModalContent) { -// closeModal(currentModalContent); -// } -// }); - -// elements.forEach(e => { -// e.addEventListener('click', function() { -// const content = document.querySelector(contentElement); -// currentModalContent = content; - -// // Сброс стилей перед открытием -// resetModalStyles(); - -// modal.classList.add('active'); -// content.classList.add('active'); - -// const width = content.clientWidth; - -// setTimeout(() => { -// if (device <= 720) { -// aside.style.width = `${device}px`; -// } else { -// aside.style.width = `${width}px`; -// } -// content.style.opacity = '1'; -// content.style.filter = 'blur(0)'; -// }, 10); -// }); -// }); -// } - -// function modalClose(buttonElement) { -// const elements = document.querySelectorAll(buttonElement); - -// elements.forEach(e => { -// e.addEventListener('click', function() { -// if (currentModalContent) { -// closeModal(currentModalContent); -// } -// }); -// }); -// } - -// function closeModal(contentElement) { -// const modal = document.querySelector('.modal'); -// const aside = document.querySelector('.modal__aside'); - -// aside.style.width = '0'; -// contentElement.style.opacity = '0'; -// contentElement.style.filter = 'blur(10px)'; - -// setTimeout(() => { -// contentElement.classList.remove('active'); -// modal.classList.remove('active'); -// currentModalContent = null; -// }, 300); -// } - -// function resetModalStyles() { -// const allModals = document.querySelectorAll('.modal__item'); - -// allModals.forEach(modal => { -// modal.style.opacity = ''; -// modal.style.filter = ''; -// modal.classList.remove('active'); -// }); - -// document.querySelector('.modal__aside').style.width = ''; -// } -// function toggleOpenX(mainElement, buttonElement ,heightElement, contentElement, close) { -// let elements = document.querySelectorAll(mainElement); - -// elements.forEach(e => { -// let thisMainElement = e, -// thisButtonElement = e.querySelector(buttonElement), -// thisHeightElement = e.querySelector(heightElement), -// thisContentElement = e.querySelector(contentElement); - -// thisButtonElement.onclick = function (e) { -// let height = thisHeightElement.clientHeight; - -// if (close == true && !thisMainElement.classList.contains('active')) { -// elements.forEach(e => { -// if (e.classList.contains('active')) { -// e.classList.remove('active'); -// e.querySelector(contentElement).style.height = null -// } -// }) -// } - -// if (!thisMainElement.classList.contains('active')) { -// thisContentElement.style.height = `${height}px`; -// thisMainElement.classList.add('active'); -// }else{ -// thisContentElement.style.height = null; -// thisMainElement.classList.remove('active'); -// } -// } - -// }); -// } - -// function toggleHeader(button, content, blockheight, removeBlock, removeClass) { -// let thisButton = document.querySelector(button), -// thisContent = document.querySelector(content), -// thisRemoveBlock = document.querySelector(removeBlock) || '', -// thisBlockheight = document.querySelector(blockheight); - -// thisButton.onclick = function () { -// let height = thisBlockheight.clientHeight; - -// if (!thisContent.classList .contains('open')) { -// thisContent.style.height = `${height}px`; -// thisContent.classList .add('open'); - -// if (removeBlock) { -// thisRemoveBlock.classList.remove(removeClass); -// } -// }else{ -// thisContent.style.height = null; -// thisContent.classList .remove('open'); - -// if (removeBlock) { -// if (window.scrollY <= 25) { -// thisRemoveBlock.classList.add(removeClass); -// } -// } -// } -// } -// } - -// function modalFormOpen(formOrNotification) { -// let buttons = document.querySelectorAll(formOrNotification), -// modal = document.querySelector('.modal'); - -// buttons.forEach(button => { -// button.onclick = function (eventButton) { -// let classOpenForm = button.dataset.form, -// form = modal.querySelector(`.${classOpenForm}`); - -// form.classList.add('active'); -// modal.classList.add('active'); -// } -// }) -// } -// // function \ No newline at end of file diff --git a/wp-content/themes/cosmopet/modules/layout/module-controller.php b/wp-content/themes/cosmopet/modules/layout/module-controller.php index e3a0b36..08e4f89 100644 --- a/wp-content/themes/cosmopet/modules/layout/module-controller.php +++ b/wp-content/themes/cosmopet/modules/layout/module-controller.php @@ -3,4 +3,5 @@ include_module('header'); include_component('shop', 'cart'); +include_module('shop'); include_module('footer'); diff --git a/wp-content/themes/cosmopet/modules/shop/components/cart/assets/js/cart.js b/wp-content/themes/cosmopet/modules/shop/components/cart/assets/js/cart.js index bcef82e..2baf238 100644 --- a/wp-content/themes/cosmopet/modules/shop/components/cart/assets/js/cart.js +++ b/wp-content/themes/cosmopet/modules/shop/components/cart/assets/js/cart.js @@ -18,7 +18,7 @@ jQuery(document).ready(function($) { }); // Увеличение количества - $(document).on('click', '.counter__button.plus', function(e) { + $(document).on('click', '.modal__basket .counter__button.plus', function(e) { e.preventDefault(); const key = $(this).data('key'); const input = $(this).siblings('.counter__input'); @@ -27,7 +27,7 @@ jQuery(document).ready(function($) { }); // Уменьшение количества - $(document).on('click', '.counter__button.minus', function(e) { + $(document).on('click', '.modal__basket .counter__button.minus', function(e) { e.preventDefault(); const key = $(this).data('key'); const input = $(this).siblings('.counter__input'); diff --git a/wp-content/themes/cosmopet/modules/shop/components/cart/component-controller.php b/wp-content/themes/cosmopet/modules/shop/components/cart/component-controller.php index bfad3cb..e69de29 100644 --- a/wp-content/themes/cosmopet/modules/shop/components/cart/component-controller.php +++ b/wp-content/themes/cosmopet/modules/shop/components/cart/component-controller.php @@ -1,8 +0,0 @@ - 'Код купона не указан.' ) ); + } + + // Применение купона + $applied = WC()->cart->apply_coupon( $coupon_code ); + + if ( $applied ) { + wp_send_json_success(); + } else { + wp_send_json_error( array( 'message' => 'Купон не применён. Проверьте код.' ) ); + } +} + + +/** + * Обработчик AJAX для обновления количества товара в корзине + */ +add_action('wp_ajax_update_cart_quantity', 'update_cart_quantity_handler'); +add_action('wp_ajax_nopriv_update_cart_quantity', 'update_cart_quantity_handler'); + +function update_cart_quantity_handler() { + if (!isset($_POST['cart_item_key']) || !isset($_POST['quantity'])) { + wp_send_json_error('Недостаточно данных'); + return; + } + + $cart_item_key = sanitize_text_field($_POST['cart_item_key']); + $quantity = intval($_POST['quantity']); + + if ($quantity <= 0) { + wp_send_json_error('Некорректное количество'); + return; + } + + $cart = WC()->cart; + $cart_item = $cart->get_cart_item($cart_item_key); + + if (!$cart_item) { + wp_send_json_error('Товар не найден в корзине'); + return; + } + + $updated = $cart->set_quantity($cart_item_key, $quantity); + + if ($updated) { + wp_send_json_success(); + } else { + wp_send_json_error('Не удалось обновить количество'); + } +} + +/** + * Обработчик AJAX для восстановления товара в корзине + */ +add_action('wp_ajax_restore_cart_item', 'restore_cart_item_handler'); +add_action('wp_ajax_nopriv_restore_cart_item', 'restore_cart_item_handler'); + +function restore_cart_item_handler() { + if (!isset($_POST['product_id']) || !isset($_POST['quantity'])) { + wp_send_json_error('Недостаточно данных'); + return; + } + + $product_id = intval($_POST['product_id']); + $variation_id = isset($_POST['variation_id']) ? intval($_POST['variation_id']) : 0; + $quantity = intval($_POST['quantity']); + + if ($quantity <= 0) { + wp_send_json_error('Некорректное количество'); + return; + } + + $cart = WC()->cart; + $cart_item_key = $cart->add_to_cart($product_id, $quantity, $variation_id); + + if ($cart_item_key) { + wp_send_json_success(); + } else { + wp_send_json_error('Не удалось восстановить товар'); + } +} + +/** + * Обработчик AJAX для получения фрагментов корзины + */ +add_action('wp_ajax_get_cart_fragment', 'get_cart_fragment_handler'); +add_action('wp_ajax_nopriv_get_cart_fragment', 'get_cart_fragment_handler'); + +function get_cart_fragment_handler() { + ob_start(); + Timber::render('shop/cart-contents.twig', Timber::context()); + $contents = ob_get_clean(); + + $response = array( + 'contents' => $contents, + 'total' => WC()->cart->get_cart_total(), + 'count' => WC()->cart->get_cart_contents_count() + ); + + wp_send_json_success($response); +} + + +/** + * Инициализация WooCommerce AJAX + */ +add_action('wp_enqueue_scripts', 'enqueue_woocommerce_ajax_scripts'); +function enqueue_woocommerce_ajax_scripts() { + wp_localize_script('jquery', 'woocommerce_params', array( + 'ajax_url' => admin_url('admin-ajax.php'), + 'currency_symbol' => get_woocommerce_currency_symbol(), + 'currency_format' => str_replace(array('%1$s', '%2$s'), array('%s', '%v'), get_woocommerce_price_format()), + 'i18n_restore_item' => pll_e('Восстановить', 'woocommerce') + )); +} + +add_action('wp_ajax_remove_cart_item', 'handle_remove_cart_item'); +add_action('wp_ajax_nopriv_remove_cart_item', 'handle_remove_cart_item'); + +function handle_remove_cart_item() { + if (!isset($_POST['cart_item_key'])) { + wp_send_json_error('Не указан ключ элемента корзины'); + return; + } + + $cart_item_key = sanitize_text_field($_POST['cart_item_key']); + $cart = WC()->cart; + + if ($cart->remove_cart_item($cart_item_key)) { + wp_send_json_success(); + } else { + wp_send_json_error('Не удалось удалить товар из корзины'); + } +} \ No newline at end of file diff --git a/wp-content/themes/cosmopet/modules/shop/module-controller.php b/wp-content/themes/cosmopet/modules/shop/module-controller.php index e69de29..329d624 100644 --- a/wp-content/themes/cosmopet/modules/shop/module-controller.php +++ b/wp-content/themes/cosmopet/modules/shop/module-controller.php @@ -0,0 +1,323 @@ + 'text', + 'label' => __('Имя', 'woocommerce'), + 'placeholder' => __('Ваше имя', 'woocommerce'), + 'required' => true, + 'class' => array('form-row-wide'), + 'priority' => 10, + ); + $fields['billing']['billing_last_name'] = array( + 'type' => 'text', + 'label' => __('Фамилия', 'woocommerce'), + 'placeholder' => __('Ваша фамилия', 'woocommerce'), + 'required' => true, + 'class' => array('form-row-wide'), + 'priority' => 10, + ); + $fields['billing']['billing_email'] = array( + 'type' => 'email', + 'label' => __('E-mail', 'woocommerce'), + 'placeholder' => __('Начните вводить ваш email', 'woocommerce'), + 'required' => true, + 'class' => array('form-row-wide'), + 'priority' => 20, + ); + $fields['billing']['billing_phone'] = array( + 'type' => 'tel', + 'label' => __('Телефон', 'woocommerce'), + 'placeholder' => __('+7 ___ ___ ____', 'woocommerce'), + 'required' => true, + 'class' => array('form-row-wide'), + 'priority' => 30, + ); + $fields['billing']['billing_city'] = array( + 'type' => 'text', + 'label' => __('Населенный пункт', 'woocommerce'), + 'placeholder' => __('Ваш город', 'woocommerce'), + 'required' => true, + 'class' => array('form-row-wide'), + 'priority' => 40, + ); + + $fields['billing']['billing_address_1'] = array( + 'type' => 'text', + 'label' => __('Адрес', 'woocommerce'), + 'placeholder' => __('Адрес', 'woocommerce'), + 'required' => false, + 'class' => array('visually-hidden'), + 'priority' => 40, + ); + $fields['billing']['billing_address_2'] = array( + 'type' => 'text', + 'label' => __('Адрес 2', 'woocommerce'), + 'placeholder' => __('Адрес 2', 'woocommerce'), + 'required' => false, + 'class' => array('visually-hidden'), + 'priority' => 40, + ); + + return $fields; +} +// remove_action( 'woocommerce_review_order_before_payment', 'woocommerce_review_order_shipping' ); + +add_action( 'init', function() { + update_option( 'woocommerce_enable_coupons', 'yes' ); // Включение купонов +} ); + +add_filter( 'woocommerce_available_payment_gateways', 'set_default_payment_gateway' ); + +function set_default_payment_gateway( $available_gateways ) { + if ( is_cart() || is_checkout() ) { + // Устанавливаем способ оплаты по умолчанию + $default_payment_gateway = 'tbank'; // ID способа оплаты, например 'cod' для "наличными при доставке" + + // Проверяем, доступен ли этот способ оплаты + if ( isset( $available_gateways[ $default_payment_gateway ] ) ) { + foreach ( $available_gateways as $gateway_id => $gateway ) { + // Оставляем только выбранный способ оплаты + if ( $gateway_id !== $default_payment_gateway ) { + unset( $available_gateways[ $gateway_id ] ); + } + } + } + } + + return $available_gateways; +} + +add_filter( 'woocommerce_checkout_terms_and_conditions_checkbox_enabled', '__return_false' ); +add_filter( 'woocommerce_checkout_terms_is_required', '__return_false' ); +remove_action( 'woocommerce_checkout_before_terms_and_conditions', 'wc_checkout_privacy_policy_text', 20 ); +remove_action( 'woocommerce_checkout_terms_and_conditions', 'wc_terms_and_conditions_page_content', 30 ); +remove_action( 'woocommerce_checkout_after_terms_and_conditions', 'wc_privacy_policy_text', 20 ); + +add_action( 'woocommerce_checkout_process', 'remove_terms_validation' ); + +function remove_terms_validation() { + remove_action( 'woocommerce_checkout_process', 'woocommerce_checkout_terms_and_conditions' ); +} + +add_filter( 'woocommerce_order_button_html', 'custom_checkout_button_classes' ); + +function custom_checkout_button_classes( $button ) { + // Заменяем стандартные классы + $button = '
    + +
    '; + return $button; + + + +} + +add_filter( 'woocommerce_checkout_fields', 'customize_checkout_registration_fields' ); + +function customize_checkout_registration_fields( $fields ) { + // Убираем поле ввода пароля + unset( $fields['account']['account_password'] ); + + return $fields; +} + +// Автоматическая генерация пароля +add_filter( 'woocommerce_checkout_posted_data', 'generate_password_for_registration' ); + +function generate_password_for_registration( $data ) { + + + $billing_first_name = isset( $_POST['billing_first_name'] ) ? sanitize_text_field( $_POST['billing_first_name'] ) : ''; + $billing_last_name = isset( $_POST['billing_last_name'] ) ? sanitize_text_field( $_POST['billing_last_name'] ) : ''; + $billing_address_1 = isset( $_POST['billing_address_1'] ) ? sanitize_text_field( $_POST['billing_address_1'] ) : ''; + $billing_address_2 = isset( $_POST['billing_address_2'] ) ? sanitize_text_field( $_POST['billing_address_2'] ) : ''; + $billing_city = isset( $_POST['billing_city'] ) ? sanitize_text_field( $_POST['billing_city'] ) : ''; + $billing_postcode = isset( $_POST['billing_postcode'] ) ? sanitize_text_field( $_POST['billing_postcode'] ) : ''; + $billing_country = isset( $_POST['billing_country'] ) ? sanitize_text_field( $_POST['billing_country'] ) : ''; + $billing_state = isset( $_POST['billing_state'] ) ? sanitize_text_field( $_POST['billing_state'] ) : ''; + $billing_phone = isset( $_POST['billing_phone'] ) ? sanitize_text_field( $_POST['billing_phone'] ) : ''; + $billing_email = isset( $_POST['billing_email'] ) ? sanitize_email( $_POST['billing_email'] ) : ''; + + + $data['shipping_first_name'] = $data['billing_first_name']; + $data['shipping_last_name'] = $data['billing_last_name']; + $data['shipping_address_1'] = $data['billing_address_1'] . $data['billing_address_2']; + $data['shipping_city'] = $data['billing_city']; + $data['shipping_postcode'] = $data['billing_postcode']; + $data['shipping_country'] = $data['billing_country']; + $data['shipping_state'] = $data['billing_state']; + + + + return $data; +} + + +function handle_user_registration_on_checkout() { + // Получаем данные из POST-запроса + if ( isset( $_POST['billing_email'] ) && isset( $_POST['reg'] )) { + if ($_POST['reg'] == '1'){ + + + $email = sanitize_email( $_POST['billing_email'] ); + $pass = sanitize_text_field( $_POST['pass'] ); + + // Регистрация пользователя + $user_id = custom_register_user_from_post( $email, $pass ); + + if ( is_wp_error( $user_id ) ) { + // Если email уже существует, выводим ошибку + wc_add_notice( $user_id->get_error_message(), 'error' ); + } else { + + wp_set_current_user( $user_id ); // Устанавливаем текущего пользователя + wp_set_auth_cookie( $user_id ); // Устанавливаем куки для авторизации + do_action( 'wp_login', $email, $user ); // Событие входа в систему + + }} + + } +} +add_action( 'woocommerce_checkout_process', 'handle_user_registration_on_checkout' ); + + +function custom_register_user_from_post( $email, $pass ) { + // Проверяем, есть ли уже пользователь с таким email + if ( email_exists( $email ) ) { + return new WP_Error( 'email_exists', 'Этот email уже зарегистрирован.' ); + } + + // Создаем пользователя в WordPress + $user_id = wp_create_user( $email, $pass, $email ); + if ( is_wp_error( $user_id ) ) { + return $user_id; // Возвращаем ошибку, если не удалось создать пользователя + } + + update_user_meta( $user_id, 'billing_email', $email ); // Устанавливаем email + update_user_meta( $user_id, 'user_email', $email ); // Устанавливаем email для входа + + // Устанавливаем роль пользователя как 'customer' для WooCommerce + $user = new WP_User( $user_id ); + $user->set_role( 'customer' ); + return $user_id; +} + + +add_filter( 'woocommerce_form_field', 'add_error_containers_to_checkout_fields', 10, 4 ); + +function add_error_containers_to_checkout_fields( $field, $key, $args, $value ) { + if ( is_checkout() ) { + // Добавляем контейнер для ошибок под полем + $error_container = '
    '; + $field .= $error_container; + } + return $field; +} + +add_filter( 'woocommerce_add_error', 'remove_payments_word_from_errors_multilang' ); + +function remove_payments_word_from_errors_multilang( $error ) { + // Слова для удаления в разных языках + $translations = array( + 'Платежи', // Русский + 'Billing', // Английский + ); + + foreach ( $translations as $word ) { + $error = str_replace( $word, '', $error ); + } + + return trim( $error ); +} + + +add_action( 'woocommerce_checkout_process', 'validate_phone_field_with_li_data_id' ); + +function validate_phone_field_with_li_data_id() { + // Получаем значение телефона из формы + $phone = isset( $_POST['billing_phone'] ) ? sanitize_text_field( $_POST['billing_phone'] ) : ''; + + // Проверяем формат телефона + if ( ! preg_match( '/^\+?[0-9\s\-\(\)]+$/', $phone ) ) { + wc_add_notice( 'phone_err', 'error', 'billing_phone' ); + } +} + +add_action( 'woocommerce_checkout_process', 'make_address_required_for_specific_shipping' ); + +function make_address_required_for_specific_shipping() { + // Получаем выбранный метод доставки + $chosen_shipping_methods = WC()->session->get( 'chosen_shipping_methods' ); + $chosen_shipping = isset( $chosen_shipping_methods[0] ) ? $chosen_shipping_methods[0] : ''; + + // Проверяем, выбран ли метод доставки "official_cdek:137" + if ( $chosen_shipping === 'official_cdek:137' ) { + // Проверяем, заполнен ли адрес + if ( empty( $_POST['billing_address_1'] ) ) { + wc_add_notice('adress_error', 'error' ); + } + } +} + +function auto_fill_shipping_fields_from_billing( $order_id ) { + // Получаем объект заказа + $order = wc_get_order( $order_id ); + + if ( ! $order ) { + return; // Если заказ недоступен, выходим + } + + // Получаем значения полей billing из глобального $_POST + $billing_first_name = isset( $_POST['billing_first_name'] ) ? sanitize_text_field( $_POST['billing_first_name'] ) : ''; + $billing_last_name = isset( $_POST['billing_last_name'] ) ? sanitize_text_field( $_POST['billing_last_name'] ) : ''; + $billing_address_1 = isset( $_POST['billing_address_1'] ) ? sanitize_text_field( $_POST['billing_address_1'] ) : ''; + $billing_address_2 = isset( $_POST['billing_address_2'] ) ? sanitize_text_field( $_POST['billing_address_2'] ) : ''; + $billing_city = isset( $_POST['billing_city'] ) ? sanitize_text_field( $_POST['billing_city'] ) : ''; + $billing_postcode = isset( $_POST['billing_postcode'] ) ? sanitize_text_field( $_POST['billing_postcode'] ) : ''; + $billing_country = isset( $_POST['billing_country'] ) ? sanitize_text_field( $_POST['billing_country'] ) : ''; + $billing_state = isset( $_POST['billing_state'] ) ? sanitize_text_field( $_POST['billing_state'] ) : ''; + $billing_phone = isset( $_POST['billing_phone'] ) ? sanitize_text_field( $_POST['billing_phone'] ) : ''; + $billing_email = isset( $_POST['billing_email'] ) ? sanitize_email( $_POST['billing_email'] ) : ''; + + // Копируем данные в поля доставки + $order->set_shipping_first_name( $billing_first_name ); + $order->set_shipping_last_name( $billing_last_name ); + $order->set_shipping_address_1( $billing_address_1 ); + $order->set_shipping_address_2( $billing_address_2 ); + $order->set_shipping_city( $billing_city ); + $order->set_shipping_postcode( $billing_postcode ); + $order->set_shipping_country( $billing_country ); + $order->set_shipping_state( $billing_state ); + + // Сохраняем изменения в заказе + $order->save(); +} diff --git a/wp-content/themes/cosmopet/templates/layout.twig b/wp-content/themes/cosmopet/templates/layout.twig index e69de29..2f652f9 100644 --- a/wp-content/themes/cosmopet/templates/layout.twig +++ b/wp-content/themes/cosmopet/templates/layout.twig @@ -0,0 +1,26 @@ + + + + {{ function('wp_head') }} + {{ function('wp_title') }} + + + + + + + + + {% include 'header.twig' %} + +
    + {% block content %} + {% endblock %} + {% include 'modal.twig' %} +
    + + {% include 'footer.twig' %} + + {{ function('wp_footer') }} + + \ No newline at end of file diff --git a/wp-content/themes/cosmopet/woocommerce/cart/cart-item-data.php b/wp-content/themes/cosmopet/woocommerce/cart/cart-item-data.php deleted file mode 100644 index 89c61e1..0000000 --- a/wp-content/themes/cosmopet/woocommerce/cart/cart-item-data.php +++ /dev/null @@ -1,29 +0,0 @@ - -
      - -
    • - : - -
    • - -
    diff --git a/wp-content/themes/cosmopet/woocommerce/cart/cart-shipping.php b/wp-content/themes/cosmopet/woocommerce/cart/cart-shipping.php deleted file mode 100644 index b341ab6..0000000 --- a/wp-content/themes/cosmopet/woocommerce/cart/cart-shipping.php +++ /dev/null @@ -1,121 +0,0 @@ -countries->get_formatted_address( $package['destination'], ', ' ); -$has_calculated_shipping = ! empty( $has_calculated_shipping ); -$show_shipping_calculator = ! empty( $show_shipping_calculator ); -$calculator_text = ''; - -?> - - - - - - -
      - label, $matches)) { - $text_before_comma = trim($matches[1]); // Текст до запятой - $text_in_parentheses = trim($matches[2]); // Текст в скобках - } else { - $text_before_comma = ''; - $text_in_parentheses = ''; - } - if ($text_before_comma == 'CDEK: Посылка склад-дверь'){ - $title = 'Курьером'; - } - else if ($text_before_comma == 'CDEK: Посылка склад-склад'){ - $title = 'Пункт выдачи'; - } - ?> - - - - -
    - -

    - ' . esc_html( $formatted_destination ) . '' ); - $calculator_text = esc_html__( 'Change address', 'woocommerce' ); - } else { - echo wp_kses_post( apply_filters( 'woocommerce_shipping_estimate_html', __( 'Shipping options will be updated during checkout.', 'woocommerce' ) ) ); - } - ?> -

    - - -

    Нет доступных способов доставки. Для отображение доступных методов укажите ваш город.

    - - - - - - - - - - \ No newline at end of file diff --git a/wp-content/themes/cosmopet/woocommerce/cart/cart.php b/wp-content/themes/cosmopet/woocommerce/cart/cart.php deleted file mode 100644 index b3040d7..0000000 --- a/wp-content/themes/cosmopet/woocommerce/cart/cart.php +++ /dev/null @@ -1,236 +0,0 @@ - - -
    - - - -
    -
    - - - - - - - - - - - - - - - - - - - - - cart->get_cart() as $cart_item_key => $cart_item ) { - $_product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key ); - $product_id = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key ); - - if ( $_product && $_product->exists() && $cart_item['quantity'] > 0 && apply_filters( 'woocommerce_cart_item_visible', true, $cart_item, $cart_item_key ) ) { - $product_permalink = apply_filters( 'woocommerce_cart_item_permalink', $_product->is_visible() ? $_product->get_permalink( $cart_item ) : '', $cart_item, $cart_item_key ); - $product_name = apply_filters( 'woocommerce_cart_item_name', $_product->get_name(), $cart_item, $cart_item_key ); - ?> - - - - - - - - - - - - - - - - - - - - - - - - - - -
    ;
    - ×', - esc_url( wc_get_cart_remove_url( $cart_item_key ) ), - /* translators: %s is the product name */ - esc_attr( sprintf( __( 'Remove %s from cart', 'woocommerce' ), wp_strip_all_tags( $product_name ) ) ), - esc_attr( $product_id ), - esc_attr( $_product->get_sku() ) - ), - $cart_item_key - ); - ?> - - get_image(), $cart_item, $cart_item_key ); - } else { - printf( '%s', esc_url( $product_permalink ), apply_filters( 'woocommerce_cart_item_thumbnail', $_product->get_image(), $cart_item, $cart_item_key ) ); - } - ?> - - %s', esc_url( $product_permalink ), $_product->get_name() ), $cart_item, $cart_item_key ) ); - } - - do_action( 'woocommerce_after_cart_item_name', $cart_item, $cart_item_key ); - - // Meta data - echo wc_get_formatted_cart_item_data( $cart_item ); - - // Backorder notification - if ( $_product->backorders_require_notification() && $_product->is_on_backorder( $cart_item['quantity'] ) ) { - echo wp_kses_post( apply_filters( 'woocommerce_cart_item_backorder_notification', '

    ' . esc_html__( 'Available on backorder', 'woocommerce' ) . '

    ', $product_id ) ); - } - ?> -
    - get_sku() ) : ?> - get_sku() ); ?> - - - - - cart->get_product_price( $_product ), $cart_item, $cart_item_key ); - ?> - - is_sold_individually() ) { - $min_quantity = 1; - $max_quantity = 1; - } else { - $min_quantity = 0; - $max_quantity = $_product->get_max_purchase_quantity(); - } - - $product_quantity = woocommerce_quantity_input( - array( - 'input_name' => "cart[{$cart_item_key}][qty]", - 'input_value' => $cart_item['quantity'], - 'max_value' => $max_quantity, - 'min_value' => $min_quantity, - 'product_name' => $product_name, - ), - $_product, - false - ); - - echo apply_filters( 'woocommerce_cart_item_quantity', $product_quantity, $cart_item_key, $cart_item ); - ?> - - cart->get_product_subtotal( $_product, $cart_item['quantity'] ), $cart_item, $cart_item_key ); - ?> -
    - -
    -
    - - -
    - - - - -
    - - -
    -
    - - - - - -
    -
    -
    -
    - -
    - -
    - -
    - - - - - -
    - - - -
    - - diff --git a/wp-content/themes/cosmopet/woocommerce/cart/cross-sells.php b/wp-content/themes/cosmopet/woocommerce/cart/cross-sells.php deleted file mode 100644 index c7a7c53..0000000 --- a/wp-content/themes/cosmopet/woocommerce/cart/cross-sells.php +++ /dev/null @@ -1,57 +0,0 @@ - - -
    - - -

    - - - apply_filters( 'woodmart_cross_sells_products_per_view', 4 ), - 'hide_pagination_control' => true, - 'hide_prev_next_buttons' => true, - 'img_size' => 'woocommerce_thumbnail', - 'custom_sizes' => apply_filters( 'woodmart_cross_sells_custom_sizes', false ), - 'product_quantity' => woodmart_get_opt( 'product_quantity' ), - 'products_bordered_grid' => woodmart_get_opt( 'products_bordered_grid' ), - 'products_bordered_grid_style' => woodmart_get_opt( 'products_bordered_grid_style' ), - 'products_with_background' => woodmart_get_opt( 'products_with_background' ), - 'products_shadow' => woodmart_get_opt( 'products_shadow' ), - 'products_color_scheme' => woodmart_get_opt( 'products_color_scheme' ), - ); - - woodmart_set_loop_prop( 'products_view', 'carousel' ); - - echo woodmart_generate_posts_slider( $slider_args, false, $cross_sells ); - - ?> - -
    - - - -
    -
    - - cart->is_empty() ) : ?> - -
      - - cart->get_cart() as $cart_item_key => $cart_item ) { - $_i++; - if( $_i > $items_to_show ) break; - - $_product = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key ); - $product_id = apply_filters( 'woocommerce_cart_item_product_id', $cart_item['product_id'], $cart_item, $cart_item_key ); - - if ( $_product && $_product->exists() && $cart_item['quantity'] > 0 && apply_filters( 'woocommerce_widget_cart_item_visible', true, $cart_item, $cart_item_key ) ) { - /** - * This filter is documented in woocommerce/templates/cart/cart.php. - * - * @param string $product_name Name of the product in the cart. - */ - $product_name = apply_filters( 'woocommerce_cart_item_name', $_product->get_name(), $cart_item, $cart_item_key ); - - $product_price = apply_filters( 'woocommerce_cart_item_price', WC()->cart->get_product_price( $_product ), $cart_item, $cart_item_key ); - $product_permalink = apply_filters( 'woocommerce_cart_item_permalink', $_product->is_visible() ? $_product->get_permalink( $cart_item ) : '', $cart_item, $cart_item_key ); - ?> -
    • - - ×', - esc_url( wc_get_cart_remove_url( $cart_item_key ) ), - /* translators: %s is the product name */ - esc_attr( sprintf( __( 'Remove %s from cart', 'woocommerce' ), wp_strip_all_tags( $product_name ) ) ), - esc_attr( $product_id ), - esc_attr( $cart_item_key ), - esc_attr( $_product->get_sku() ) - ), $cart_item_key ); - ?> - - get_image(), $cart_item, $cart_item_key ); ?> - - - get_image(), $cart_item, $cart_item_key ); ?> - - - -
      - - - - -
      - - - - - get_sku() ) : ?> - get_sku() ); ?> - - - - -
      - - - - is_sold_individually() && $_product->is_purchasable() && woodmart_get_opt( 'mini_cart_quantity' ) && apply_filters( 'woodmart_show_widget_cart_item_quantity', true, $cart_item_key ) ) { - woocommerce_quantity_input( - array( - 'input_value' => $cart_item['quantity'], - 'min_value' => 0, - 'max_value' => $_product->backorders_allowed() ? '' : $_product->get_stock_quantity(), - ), - $_product - ); - } - ?> - - ' . sprintf( '%s × %s', $cart_item['quantity'], $product_price ) . '', $cart_item, $cart_item_key ); ?> -
      - -
    • - -
    - - - -
    -

    - 0 ) : ?> - - - - -
    - - - -
    -
    - -
    - cart->is_empty() ) : ?> - - version, '3.7.0', '<' ) ) : ?> -

    : cart->get_cart_subtotal(); ?>

    - -

    - -

    - - - - -

    - - - - - - -
    -- 2.36.3 From 07f71c6768dc37bef3b35fa118acef46d738f4ab Mon Sep 17 00:00:00 2001 From: gp_dev Date: Thu, 15 May 2025 16:39:37 +0300 Subject: [PATCH 3/4] Feat | Add cart and checkout --- .../woocommerce/cart/cart-shipping.php | 121 ++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 wp-content/themes/cosmopet/woocommerce/cart/cart-shipping.php diff --git a/wp-content/themes/cosmopet/woocommerce/cart/cart-shipping.php b/wp-content/themes/cosmopet/woocommerce/cart/cart-shipping.php new file mode 100644 index 0000000..b341ab6 --- /dev/null +++ b/wp-content/themes/cosmopet/woocommerce/cart/cart-shipping.php @@ -0,0 +1,121 @@ +countries->get_formatted_address( $package['destination'], ', ' ); +$has_calculated_shipping = ! empty( $has_calculated_shipping ); +$show_shipping_calculator = ! empty( $show_shipping_calculator ); +$calculator_text = ''; + +?> + + + + + + +
      + label, $matches)) { + $text_before_comma = trim($matches[1]); // Текст до запятой + $text_in_parentheses = trim($matches[2]); // Текст в скобках + } else { + $text_before_comma = ''; + $text_in_parentheses = ''; + } + if ($text_before_comma == 'CDEK: Посылка склад-дверь'){ + $title = 'Курьером'; + } + else if ($text_before_comma == 'CDEK: Посылка склад-склад'){ + $title = 'Пункт выдачи'; + } + ?> + + + + +
    + +

    + ' . esc_html( $formatted_destination ) . '' ); + $calculator_text = esc_html__( 'Change address', 'woocommerce' ); + } else { + echo wp_kses_post( apply_filters( 'woocommerce_shipping_estimate_html', __( 'Shipping options will be updated during checkout.', 'woocommerce' ) ) ); + } + ?> +

    + + +

    Нет доступных способов доставки. Для отображение доступных методов укажите ваш город.

    + + + + + + + + + + \ No newline at end of file -- 2.36.3 From 78e88ed366de441e8ac3daf336e511e0b8b132db Mon Sep 17 00:00:00 2001 From: gp_dev Date: Thu, 15 May 2025 16:49:12 +0300 Subject: [PATCH 4/4] resolve conflict --- wp-content/themes/cosmopet/functions.php | 10 ---------- .../themes/cosmopet/modules/shop/module-controller.php | 2 +- 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/wp-content/themes/cosmopet/functions.php b/wp-content/themes/cosmopet/functions.php index aa84259..9210656 100644 --- a/wp-content/themes/cosmopet/functions.php +++ b/wp-content/themes/cosmopet/functions.php @@ -425,10 +425,7 @@ require_once('modules/blog/module-ajax-controller.php'); require_once('modules/forms/module-ajax-controller.php'); require_once('modules/shop/module-ajax-controller.php'); -<<<<<<< HEAD -======= ->>>>>>> origin/master add_action('wp', 'my_custom_checkout_code'); function my_custom_checkout_code() { if (function_exists('is_checkout') && is_checkout() && !is_order_received_page()) { @@ -436,12 +433,8 @@ function my_custom_checkout_code() { } } -<<<<<<< HEAD -======= require_once('modules/author/module-ajax-controller.php'); ->>>>>>> origin/master - include_module('forms'); include_module('layout'); @@ -624,8 +617,6 @@ register_sidebar( array( add_filter( 'woocommerce_price_trim_zeros', '__return_true' ); -<<<<<<< HEAD -======= function add_comment_like() { global $wpdb; $table_name = $wpdb->prefix . 'cosmopet_likes'; @@ -964,4 +955,3 @@ function remove_view_cart_button_js() { >>>>>> origin/master diff --git a/wp-content/themes/cosmopet/modules/shop/module-controller.php b/wp-content/themes/cosmopet/modules/shop/module-controller.php index 82c5541..5fb6a26 100644 --- a/wp-content/themes/cosmopet/modules/shop/module-controller.php +++ b/wp-content/themes/cosmopet/modules/shop/module-controller.php @@ -321,7 +321,7 @@ function auto_fill_shipping_fields_from_billing( $order_id ) { // Сохраняем изменения в заказе $order->save(); } -======= + add_filter('timber/context', function($context) { if (function_exists('is_product') && is_product()) { $product_id = get_the_ID(); -- 2.36.3