- {qualifyingSubheadline.replace(/(\s?EUR)/g, ' €')} + {isPreapproved === 'true' + ? preapprovalSubHeadline + : qualifyingSubheadline.replace(/(\s?EUR)/g, ' €')}
) : ( )}From fa0bca848dc1a5bbe8612542b4e8e1653ae07732 Mon Sep 17 00:00:00 2001 From: perco12 <141269770+perco12@users.noreply.github.com> Date: Tue, 12 Dec 2023 15:37:20 -0600 Subject: [PATCH] feat: update learn more modals to support US and UK short term checkout and preapproval (#978) --- .gitignore | 2 +- content/modals/FR/short_term_en.json | 4 +- content/modals/GB/short_term_xo.json | 56 +++++++ content/modals/US/v2_long_term_xo.json | 3 +- content/modals/US/v2_short_term_xo.json | 60 ++++++++ src/components/modal/v2/parts/BodyContent.jsx | 8 +- src/components/modal/v2/parts/Header.jsx | 22 ++- .../modal/v2/parts/Instructions.jsx | 39 +++-- .../modal/v2/parts/PreapprovalDisclaimer.jsx | 37 +++++ .../v2/parts/views/ShortTerm/Content.jsx | 78 +++++++++- .../v2/parts/views/ShortTerm/styles.scss | 138 ++++++++++++++---- .../modal/v2/styles/components/_header.scss | 12 ++ .../v2/styles/components/_instructions.scss | 64 ++++++++ .../components/_preapproval-disclaimer.scss | 128 ++++++++++++++++ src/components/modal/v2/styles/index.scss | 1 + src/library/zoid/modal/component.js | 2 +- .../config/GB/DEV_GB_SHORT_TERM_CHECKOUT.js | 36 +++++ tests/functional/v2/config/GB/index.js | 1 + .../config/US/DEV_US_SHORT_TERM_CHECKOUT.js | 36 +++++ tests/functional/v2/config/US/index.js | 1 + ...eriodic_payment_for_amount-mobile-snap.png | Bin 89117 -> 88752 bytes ...ect_subheadline_for_amount-mobile-snap.png | Bin 89117 -> 88752 bytes ...eriodic_payment_for_amount-mobile-snap.png | Bin 89117 -> 88752 bytes ...ect_subheadline_for_amount-mobile-snap.png | Bin 89117 -> 88752 bytes ...eriodic_payment_for_amount-mobile-snap.png | Bin 91686 -> 91352 bytes ...ect_subheadline_for_amount-mobile-snap.png | Bin 91686 -> 91352 bytes ...riodic_payment_for_amount-desktop-snap.png | Bin 0 -> 76994 bytes ...ct_subheadline_for_amount-desktop-snap.png | Bin 0 -> 76994 bytes ...riodic_payment_for_amount-desktop-snap.png | Bin 0 -> 76994 bytes ...ct_subheadline_for_amount-desktop-snap.png | Bin 0 -> 76994 bytes ...riodic_payment_for_amount-desktop-snap.png | Bin 0 -> 78137 bytes ...ct_subheadline_for_amount-desktop-snap.png | Bin 0 -> 78137 bytes ...eriodic_payment_for_amount-mobile-snap.png | Bin 0 -> 80084 bytes ...ect_subheadline_for_amount-mobile-snap.png | Bin 0 -> 80084 bytes ...eriodic_payment_for_amount-mobile-snap.png | Bin 0 -> 80084 bytes ...ect_subheadline_for_amount-mobile-snap.png | Bin 0 -> 80084 bytes ...eriodic_payment_for_amount-mobile-snap.png | Bin 0 -> 81498 bytes ...ect_subheadline_for_amount-mobile-snap.png | Bin 0 -> 81498 bytes ...riodic_payment_for_amount-desktop-snap.png | Bin 0 -> 81683 bytes ...ct_subheadline_for_amount-desktop-snap.png | Bin 0 -> 81683 bytes ...riodic_payment_for_amount-desktop-snap.png | Bin 0 -> 81683 bytes ...ct_subheadline_for_amount-desktop-snap.png | Bin 0 -> 81683 bytes ...riodic_payment_for_amount-desktop-snap.png | Bin 0 -> 83492 bytes ...ct_subheadline_for_amount-desktop-snap.png | Bin 0 -> 83492 bytes ...eriodic_payment_for_amount-mobile-snap.png | Bin 0 -> 83203 bytes ...ect_subheadline_for_amount-mobile-snap.png | Bin 0 -> 83203 bytes ...eriodic_payment_for_amount-mobile-snap.png | Bin 0 -> 83203 bytes ...ect_subheadline_for_amount-mobile-snap.png | Bin 0 -> 83203 bytes ...eriodic_payment_for_amount-mobile-snap.png | Bin 0 -> 84709 bytes ...ect_subheadline_for_amount-mobile-snap.png | Bin 0 -> 84709 bytes ...eriodic_payment_for_amount-mobile-snap.png | Bin 77985 -> 77793 bytes ...ect_subheadline_for_amount-mobile-snap.png | Bin 77985 -> 77793 bytes ...eriodic_payment_for_amount-mobile-snap.png | Bin 77985 -> 77793 bytes ...ect_subheadline_for_amount-mobile-snap.png | Bin 77985 -> 77793 bytes ...eriodic_payment_for_amount-mobile-snap.png | Bin 78388 -> 78167 bytes ...ect_subheadline_for_amount-mobile-snap.png | Bin 78388 -> 78167 bytes ...riodic_payment_for_amount-desktop-snap.png | Bin 0 -> 6097 bytes ...ct_subheadline_for_amount-desktop-snap.png | Bin 0 -> 6097 bytes ...riodic_payment_for_amount-desktop-snap.png | Bin 0 -> 6097 bytes ...ct_subheadline_for_amount-desktop-snap.png | Bin 0 -> 6097 bytes ...riodic_payment_for_amount-desktop-snap.png | Bin 0 -> 6097 bytes ...ct_subheadline_for_amount-desktop-snap.png | Bin 0 -> 6097 bytes ...eriodic_payment_for_amount-mobile-snap.png | Bin 0 -> 68781 bytes ...ect_subheadline_for_amount-mobile-snap.png | Bin 0 -> 68781 bytes ...eriodic_payment_for_amount-mobile-snap.png | Bin 0 -> 68781 bytes ...ect_subheadline_for_amount-mobile-snap.png | Bin 0 -> 68781 bytes ...eriodic_payment_for_amount-mobile-snap.png | Bin 0 -> 70929 bytes ...ect_subheadline_for_amount-mobile-snap.png | Bin 0 -> 70929 bytes ...riodic_payment_for_amount-desktop-snap.png | Bin 0 -> 6097 bytes ...ct_subheadline_for_amount-desktop-snap.png | Bin 0 -> 6097 bytes ...riodic_payment_for_amount-desktop-snap.png | Bin 0 -> 6097 bytes ...ct_subheadline_for_amount-desktop-snap.png | Bin 0 -> 6097 bytes ...riodic_payment_for_amount-desktop-snap.png | Bin 0 -> 6097 bytes ...ct_subheadline_for_amount-desktop-snap.png | Bin 0 -> 6097 bytes ...eriodic_payment_for_amount-mobile-snap.png | Bin 0 -> 71808 bytes ...ect_subheadline_for_amount-mobile-snap.png | Bin 0 -> 71808 bytes ...eriodic_payment_for_amount-mobile-snap.png | Bin 0 -> 71808 bytes ...ect_subheadline_for_amount-mobile-snap.png | Bin 0 -> 71808 bytes ...eriodic_payment_for_amount-mobile-snap.png | Bin 0 -> 73638 bytes ...ect_subheadline_for_amount-mobile-snap.png | Bin 0 -> 73638 bytes ...eriodic_payment_for_amount-mobile-snap.png | Bin 77985 -> 77793 bytes ...ect_subheadline_for_amount-mobile-snap.png | Bin 77985 -> 77793 bytes ...eriodic_payment_for_amount-mobile-snap.png | Bin 77985 -> 77793 bytes ...ect_subheadline_for_amount-mobile-snap.png | Bin 77985 -> 77793 bytes ...eriodic_payment_for_amount-mobile-snap.png | Bin 78388 -> 78167 bytes ...ect_subheadline_for_amount-mobile-snap.png | Bin 78388 -> 78167 bytes ...riodic_payment_for_amount-desktop-snap.png | Bin 0 -> 7127 bytes ...ct_subheadline_for_amount-desktop-snap.png | Bin 0 -> 7127 bytes ...riodic_payment_for_amount-desktop-snap.png | Bin 0 -> 7127 bytes ...ct_subheadline_for_amount-desktop-snap.png | Bin 0 -> 7127 bytes ...riodic_payment_for_amount-desktop-snap.png | Bin 0 -> 7127 bytes ...ct_subheadline_for_amount-desktop-snap.png | Bin 0 -> 7127 bytes ...eriodic_payment_for_amount-mobile-snap.png | Bin 0 -> 68781 bytes ...ect_subheadline_for_amount-mobile-snap.png | Bin 0 -> 68781 bytes ...eriodic_payment_for_amount-mobile-snap.png | Bin 0 -> 68781 bytes ...ect_subheadline_for_amount-mobile-snap.png | Bin 0 -> 68781 bytes ...eriodic_payment_for_amount-mobile-snap.png | Bin 0 -> 70929 bytes ...ect_subheadline_for_amount-mobile-snap.png | Bin 0 -> 70929 bytes ...riodic_payment_for_amount-desktop-snap.png | Bin 0 -> 7127 bytes ...ct_subheadline_for_amount-desktop-snap.png | Bin 0 -> 7127 bytes ...riodic_payment_for_amount-desktop-snap.png | Bin 0 -> 7127 bytes ...ct_subheadline_for_amount-desktop-snap.png | Bin 0 -> 7127 bytes ...riodic_payment_for_amount-desktop-snap.png | Bin 0 -> 7127 bytes ...ct_subheadline_for_amount-desktop-snap.png | Bin 0 -> 7127 bytes ...eriodic_payment_for_amount-mobile-snap.png | Bin 0 -> 71808 bytes ...ect_subheadline_for_amount-mobile-snap.png | Bin 0 -> 71808 bytes ...eriodic_payment_for_amount-mobile-snap.png | Bin 0 -> 71808 bytes ...ect_subheadline_for_amount-mobile-snap.png | Bin 0 -> 71808 bytes ...eriodic_payment_for_amount-mobile-snap.png | Bin 0 -> 73638 bytes ...ect_subheadline_for_amount-mobile-snap.png | Bin 0 -> 73638 bytes ...riodic_payment_for_amount-desktop-snap.png | Bin 83198 -> 83071 bytes ...ct_subheadline_for_amount-desktop-snap.png | Bin 83198 -> 83071 bytes ...riodic_payment_for_amount-desktop-snap.png | Bin 83198 -> 83071 bytes ...ct_subheadline_for_amount-desktop-snap.png | Bin 83198 -> 83071 bytes ...riodic_payment_for_amount-desktop-snap.png | Bin 83794 -> 83664 bytes ...ct_subheadline_for_amount-desktop-snap.png | Bin 83794 -> 83664 bytes ...riodic_payment_for_amount-desktop-snap.png | Bin 0 -> 74079 bytes ...ct_subheadline_for_amount-desktop-snap.png | Bin 0 -> 74079 bytes ...riodic_payment_for_amount-desktop-snap.png | Bin 0 -> 74079 bytes ...ct_subheadline_for_amount-desktop-snap.png | Bin 0 -> 74079 bytes ...riodic_payment_for_amount-desktop-snap.png | Bin 0 -> 74759 bytes ...ct_subheadline_for_amount-desktop-snap.png | Bin 0 -> 74759 bytes ...eriodic_payment_for_amount-mobile-snap.png | Bin 0 -> 68386 bytes ...ect_subheadline_for_amount-mobile-snap.png | Bin 0 -> 68386 bytes ...eriodic_payment_for_amount-mobile-snap.png | Bin 0 -> 68386 bytes ...ect_subheadline_for_amount-mobile-snap.png | Bin 0 -> 68386 bytes ...eriodic_payment_for_amount-mobile-snap.png | Bin 0 -> 70501 bytes ...ect_subheadline_for_amount-mobile-snap.png | Bin 0 -> 70501 bytes ...riodic_payment_for_amount-desktop-snap.png | Bin 0 -> 78009 bytes ...ct_subheadline_for_amount-desktop-snap.png | Bin 0 -> 78009 bytes ...riodic_payment_for_amount-desktop-snap.png | Bin 0 -> 78009 bytes ...ct_subheadline_for_amount-desktop-snap.png | Bin 0 -> 78009 bytes ...riodic_payment_for_amount-desktop-snap.png | Bin 0 -> 79186 bytes ...ct_subheadline_for_amount-desktop-snap.png | Bin 0 -> 79186 bytes ...eriodic_payment_for_amount-mobile-snap.png | Bin 0 -> 71366 bytes ...ect_subheadline_for_amount-mobile-snap.png | Bin 0 -> 71366 bytes ...eriodic_payment_for_amount-mobile-snap.png | Bin 0 -> 71366 bytes ...ect_subheadline_for_amount-mobile-snap.png | Bin 0 -> 71366 bytes ...eriodic_payment_for_amount-mobile-snap.png | Bin 0 -> 73191 bytes ...ect_subheadline_for_amount-mobile-snap.png | Bin 0 -> 73191 bytes utils/devServerProxy/config/GB/index.js | 37 +++++ utils/devServerProxy/config/US/index.js | 37 +++++ 142 files changed, 739 insertions(+), 63 deletions(-) create mode 100644 content/modals/GB/short_term_xo.json create mode 100644 content/modals/US/v2_short_term_xo.json create mode 100644 src/components/modal/v2/parts/PreapprovalDisclaimer.jsx create mode 100644 src/components/modal/v2/styles/components/_preapproval-disclaimer.scss create mode 100644 tests/functional/v2/config/GB/DEV_GB_SHORT_TERM_CHECKOUT.js create mode 100644 tests/functional/v2/config/US/DEV_US_SHORT_TERM_CHECKOUT.js create mode 100644 tests/functional/v2/snapshots/modal/api/GB/DEV_GB_SHORT_TERM_CHECKOUT/desktop/0-Donuts_show_correct_periodic_payment_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/api/GB/DEV_GB_SHORT_TERM_CHECKOUT/desktop/0-Shows_correct_subheadline_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/api/GB/DEV_GB_SHORT_TERM_CHECKOUT/desktop/2000.01-Donuts_show_correct_periodic_payment_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/api/GB/DEV_GB_SHORT_TERM_CHECKOUT/desktop/2000.01-Shows_correct_subheadline_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/api/GB/DEV_GB_SHORT_TERM_CHECKOUT/desktop/30-Donuts_show_correct_periodic_payment_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/api/GB/DEV_GB_SHORT_TERM_CHECKOUT/desktop/30-Shows_correct_subheadline_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/api/GB/DEV_GB_SHORT_TERM_CHECKOUT/mobile/0-Donuts_show_correct_periodic_payment_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/api/GB/DEV_GB_SHORT_TERM_CHECKOUT/mobile/0-Shows_correct_subheadline_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/api/GB/DEV_GB_SHORT_TERM_CHECKOUT/mobile/2000.01-Donuts_show_correct_periodic_payment_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/api/GB/DEV_GB_SHORT_TERM_CHECKOUT/mobile/2000.01-Shows_correct_subheadline_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/api/GB/DEV_GB_SHORT_TERM_CHECKOUT/mobile/30-Donuts_show_correct_periodic_payment_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/api/GB/DEV_GB_SHORT_TERM_CHECKOUT/mobile/30-Shows_correct_subheadline_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/api/US/DEV_US_SHORT_TERM_CHECKOUT/desktop/0-Donuts_show_correct_periodic_payment_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/api/US/DEV_US_SHORT_TERM_CHECKOUT/desktop/0-Shows_correct_subheadline_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/api/US/DEV_US_SHORT_TERM_CHECKOUT/desktop/1500.01-Donuts_show_correct_periodic_payment_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/api/US/DEV_US_SHORT_TERM_CHECKOUT/desktop/1500.01-Shows_correct_subheadline_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/api/US/DEV_US_SHORT_TERM_CHECKOUT/desktop/30-Donuts_show_correct_periodic_payment_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/api/US/DEV_US_SHORT_TERM_CHECKOUT/desktop/30-Shows_correct_subheadline_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/api/US/DEV_US_SHORT_TERM_CHECKOUT/mobile/0-Donuts_show_correct_periodic_payment_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/api/US/DEV_US_SHORT_TERM_CHECKOUT/mobile/0-Shows_correct_subheadline_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/api/US/DEV_US_SHORT_TERM_CHECKOUT/mobile/1500.01-Donuts_show_correct_periodic_payment_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/api/US/DEV_US_SHORT_TERM_CHECKOUT/mobile/1500.01-Shows_correct_subheadline_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/api/US/DEV_US_SHORT_TERM_CHECKOUT/mobile/30-Donuts_show_correct_periodic_payment_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/api/US/DEV_US_SHORT_TERM_CHECKOUT/mobile/30-Shows_correct_subheadline_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/sdk/GB/DEV_GB_SHORT_TERM_CHECKOUT/desktop/0-Donuts_show_correct_periodic_payment_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/sdk/GB/DEV_GB_SHORT_TERM_CHECKOUT/desktop/0-Shows_correct_subheadline_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/sdk/GB/DEV_GB_SHORT_TERM_CHECKOUT/desktop/2000.01-Donuts_show_correct_periodic_payment_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/sdk/GB/DEV_GB_SHORT_TERM_CHECKOUT/desktop/2000.01-Shows_correct_subheadline_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/sdk/GB/DEV_GB_SHORT_TERM_CHECKOUT/desktop/30-Donuts_show_correct_periodic_payment_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/sdk/GB/DEV_GB_SHORT_TERM_CHECKOUT/desktop/30-Shows_correct_subheadline_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/sdk/GB/DEV_GB_SHORT_TERM_CHECKOUT/mobile/0-Donuts_show_correct_periodic_payment_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/sdk/GB/DEV_GB_SHORT_TERM_CHECKOUT/mobile/0-Shows_correct_subheadline_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/sdk/GB/DEV_GB_SHORT_TERM_CHECKOUT/mobile/2000.01-Donuts_show_correct_periodic_payment_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/sdk/GB/DEV_GB_SHORT_TERM_CHECKOUT/mobile/2000.01-Shows_correct_subheadline_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/sdk/GB/DEV_GB_SHORT_TERM_CHECKOUT/mobile/30-Donuts_show_correct_periodic_payment_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/sdk/GB/DEV_GB_SHORT_TERM_CHECKOUT/mobile/30-Shows_correct_subheadline_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/sdk/US/DEV_US_SHORT_TERM_CHECKOUT/desktop/0-Donuts_show_correct_periodic_payment_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/sdk/US/DEV_US_SHORT_TERM_CHECKOUT/desktop/0-Shows_correct_subheadline_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/sdk/US/DEV_US_SHORT_TERM_CHECKOUT/desktop/1500.01-Donuts_show_correct_periodic_payment_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/sdk/US/DEV_US_SHORT_TERM_CHECKOUT/desktop/1500.01-Shows_correct_subheadline_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/sdk/US/DEV_US_SHORT_TERM_CHECKOUT/desktop/30-Donuts_show_correct_periodic_payment_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/sdk/US/DEV_US_SHORT_TERM_CHECKOUT/desktop/30-Shows_correct_subheadline_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/sdk/US/DEV_US_SHORT_TERM_CHECKOUT/mobile/0-Donuts_show_correct_periodic_payment_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/sdk/US/DEV_US_SHORT_TERM_CHECKOUT/mobile/0-Shows_correct_subheadline_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/sdk/US/DEV_US_SHORT_TERM_CHECKOUT/mobile/1500.01-Donuts_show_correct_periodic_payment_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/sdk/US/DEV_US_SHORT_TERM_CHECKOUT/mobile/1500.01-Shows_correct_subheadline_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/sdk/US/DEV_US_SHORT_TERM_CHECKOUT/mobile/30-Donuts_show_correct_periodic_payment_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/sdk/US/DEV_US_SHORT_TERM_CHECKOUT/mobile/30-Shows_correct_subheadline_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/standalone/GB/DEV_GB_SHORT_TERM_CHECKOUT/desktop/0-Donuts_show_correct_periodic_payment_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/standalone/GB/DEV_GB_SHORT_TERM_CHECKOUT/desktop/0-Shows_correct_subheadline_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/standalone/GB/DEV_GB_SHORT_TERM_CHECKOUT/desktop/2000.01-Donuts_show_correct_periodic_payment_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/standalone/GB/DEV_GB_SHORT_TERM_CHECKOUT/desktop/2000.01-Shows_correct_subheadline_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/standalone/GB/DEV_GB_SHORT_TERM_CHECKOUT/desktop/30-Donuts_show_correct_periodic_payment_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/standalone/GB/DEV_GB_SHORT_TERM_CHECKOUT/desktop/30-Shows_correct_subheadline_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/standalone/GB/DEV_GB_SHORT_TERM_CHECKOUT/mobile/0-Donuts_show_correct_periodic_payment_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/standalone/GB/DEV_GB_SHORT_TERM_CHECKOUT/mobile/0-Shows_correct_subheadline_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/standalone/GB/DEV_GB_SHORT_TERM_CHECKOUT/mobile/2000.01-Donuts_show_correct_periodic_payment_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/standalone/GB/DEV_GB_SHORT_TERM_CHECKOUT/mobile/2000.01-Shows_correct_subheadline_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/standalone/GB/DEV_GB_SHORT_TERM_CHECKOUT/mobile/30-Donuts_show_correct_periodic_payment_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/standalone/GB/DEV_GB_SHORT_TERM_CHECKOUT/mobile/30-Shows_correct_subheadline_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/standalone/US/DEV_US_SHORT_TERM_CHECKOUT/desktop/0-Donuts_show_correct_periodic_payment_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/standalone/US/DEV_US_SHORT_TERM_CHECKOUT/desktop/0-Shows_correct_subheadline_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/standalone/US/DEV_US_SHORT_TERM_CHECKOUT/desktop/1500.01-Donuts_show_correct_periodic_payment_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/standalone/US/DEV_US_SHORT_TERM_CHECKOUT/desktop/1500.01-Shows_correct_subheadline_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/standalone/US/DEV_US_SHORT_TERM_CHECKOUT/desktop/30-Donuts_show_correct_periodic_payment_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/standalone/US/DEV_US_SHORT_TERM_CHECKOUT/desktop/30-Shows_correct_subheadline_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/standalone/US/DEV_US_SHORT_TERM_CHECKOUT/mobile/0-Donuts_show_correct_periodic_payment_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/standalone/US/DEV_US_SHORT_TERM_CHECKOUT/mobile/0-Shows_correct_subheadline_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/standalone/US/DEV_US_SHORT_TERM_CHECKOUT/mobile/1500.01-Donuts_show_correct_periodic_payment_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/standalone/US/DEV_US_SHORT_TERM_CHECKOUT/mobile/1500.01-Shows_correct_subheadline_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/standalone/US/DEV_US_SHORT_TERM_CHECKOUT/mobile/30-Donuts_show_correct_periodic_payment_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/standalone/US/DEV_US_SHORT_TERM_CHECKOUT/mobile/30-Shows_correct_subheadline_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/webpage/GB/DEV_GB_SHORT_TERM_CHECKOUT/desktop/0-Donuts_show_correct_periodic_payment_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/webpage/GB/DEV_GB_SHORT_TERM_CHECKOUT/desktop/0-Shows_correct_subheadline_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/webpage/GB/DEV_GB_SHORT_TERM_CHECKOUT/desktop/2000.01-Donuts_show_correct_periodic_payment_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/webpage/GB/DEV_GB_SHORT_TERM_CHECKOUT/desktop/2000.01-Shows_correct_subheadline_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/webpage/GB/DEV_GB_SHORT_TERM_CHECKOUT/desktop/30-Donuts_show_correct_periodic_payment_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/webpage/GB/DEV_GB_SHORT_TERM_CHECKOUT/desktop/30-Shows_correct_subheadline_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/webpage/GB/DEV_GB_SHORT_TERM_CHECKOUT/mobile/0-Donuts_show_correct_periodic_payment_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/webpage/GB/DEV_GB_SHORT_TERM_CHECKOUT/mobile/0-Shows_correct_subheadline_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/webpage/GB/DEV_GB_SHORT_TERM_CHECKOUT/mobile/2000.01-Donuts_show_correct_periodic_payment_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/webpage/GB/DEV_GB_SHORT_TERM_CHECKOUT/mobile/2000.01-Shows_correct_subheadline_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/webpage/GB/DEV_GB_SHORT_TERM_CHECKOUT/mobile/30-Donuts_show_correct_periodic_payment_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/webpage/GB/DEV_GB_SHORT_TERM_CHECKOUT/mobile/30-Shows_correct_subheadline_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/webpage/US/DEV_US_SHORT_TERM_CHECKOUT/desktop/0-Donuts_show_correct_periodic_payment_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/webpage/US/DEV_US_SHORT_TERM_CHECKOUT/desktop/0-Shows_correct_subheadline_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/webpage/US/DEV_US_SHORT_TERM_CHECKOUT/desktop/1500.01-Donuts_show_correct_periodic_payment_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/webpage/US/DEV_US_SHORT_TERM_CHECKOUT/desktop/1500.01-Shows_correct_subheadline_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/webpage/US/DEV_US_SHORT_TERM_CHECKOUT/desktop/30-Donuts_show_correct_periodic_payment_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/webpage/US/DEV_US_SHORT_TERM_CHECKOUT/desktop/30-Shows_correct_subheadline_for_amount-desktop-snap.png create mode 100644 tests/functional/v2/snapshots/modal/webpage/US/DEV_US_SHORT_TERM_CHECKOUT/mobile/0-Donuts_show_correct_periodic_payment_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/webpage/US/DEV_US_SHORT_TERM_CHECKOUT/mobile/0-Shows_correct_subheadline_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/webpage/US/DEV_US_SHORT_TERM_CHECKOUT/mobile/1500.01-Donuts_show_correct_periodic_payment_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/webpage/US/DEV_US_SHORT_TERM_CHECKOUT/mobile/1500.01-Shows_correct_subheadline_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/webpage/US/DEV_US_SHORT_TERM_CHECKOUT/mobile/30-Donuts_show_correct_periodic_payment_for_amount-mobile-snap.png create mode 100644 tests/functional/v2/snapshots/modal/webpage/US/DEV_US_SHORT_TERM_CHECKOUT/mobile/30-Shows_correct_subheadline_for_amount-mobile-snap.png diff --git a/.gitignore b/.gitignore index 3dba12e4a2..db0d27f00e 100644 --- a/.gitignore +++ b/.gitignore @@ -22,4 +22,4 @@ ehthumbs.db Icon? Thumbs.db -!*/**/icons +!*/**/icons \ No newline at end of file diff --git a/content/modals/FR/short_term_en.json b/content/modals/FR/short_term_en.json index 647faa6ae5..c7884a8328 100644 --- a/content/modals/FR/short_term_en.json +++ b/content/modals/FR/short_term_en.json @@ -49,9 +49,7 @@ "
Only for private individuals residing in France. French PayPal account required. Pay in 4X is available, subject to acceptance, for purchases between {formattedMinAmount} and {formattedMaxAmount}.
" ], - [ - "A loan is a binding commitment and must be repaid, check your repayment capacity. " - ], + ["A loan is a binding commitment and must be repaid, check your repayment capacity. "], ["Terms and Conditions", "https://www.paypal.com/fr/webapps/mpp/ua/pay-in-4x-full"], [ ". Credit offered by PayPal (Europe) S.à r.l. et Cie, S.C.A., 22-24 Boulevard Royal, L-2449, Luxembourg, Trade and Companies Register of Luxembourg B 118 349, which is duly licensed as a Luxembourg credit institution and falls under the oversight of the supervisory authority of Luxembourg, Commission de Surveillance du Secteur Financier. This information is provided by PayPal." diff --git a/content/modals/GB/short_term_xo.json b/content/modals/GB/short_term_xo.json new file mode 100644 index 0000000000..17cf2194b4 --- /dev/null +++ b/content/modals/GB/short_term_xo.json @@ -0,0 +1,56 @@ +{ + "meta": { + "product": "PAY_LATER_SHORT_TERM", + "periodicPayment": "{formattedPeriodicPayment}", + "minAmount": "{minAmount}", + "maxAmount": "{maxAmount}", + "qualifying": "{qualifying_offer}", + "amount": "{transaction_amount}", + "apr": "{apr}", + "preapproved": "false", + "variables": { + "transaction_amount": "${eval(transaction_amount ? transaction_amount : '-')}", + "qualifying_offer": "${eval(CREDIT_OFFERS_DS.qualifying_offer ? CREDIT_OFFERS_DS.qualifying_offer : 'false')}", + "financing_code": "${CREDIT_OFFERS_DS.financing_code}", + "formattedPeriodicPayment": "${CREDIT_OFFERS_DS.formattedPeriodicPayment}", + "total_payments": "${CREDIT_OFFERS_DS.total_payments}", + "formattedMinAmount": "${CREDIT_OFFERS_DS.formattedMinAmount}", + "formattedMaxAmount": "${CREDIT_OFFERS_DS.formattedMaxAmount}", + "formattedTotalCost": "${CREDIT_OFFERS_DS.formattedTotalCost}", + "minAmount": "${CREDIT_OFFERS_DS.minAmount}", + "maxAmount": "${CREDIT_OFFERS_DS.maxAmount}", + "apr": "${CREDIT_OFFERS_DS.apr}", + "nominal_rate": "${CREDIT_OFFERS_DS.nominal_rate}" + } + }, + "content": { + "headline": "Pay in 3 interest-free payments", + "subheadline": "Available for purchases of {formattedMinAmount} to {formattedMaxAmount}. No sign-up fees or late fees.", + "qualifyingSubheadline": "Split your purchase of {formattedTotalCost} into {total_payments} with no sign-up fees or late fees.", + "donutTimestamps": ["Today", "1 month", "2 months"], + "estimatedInstallments": { + "items": [ + { "total_payment:": "{formattedPeriodicPayment}", "payment_date": "Today" }, + { "total_payment:": "{formattedPeriodicPayment}", "payment_date": "1 month" }, + { "total_payment:": "{formattedPeriodicPayment}", "payment_date": "2 months" } + ] + }, + "instructions": { + "instructionsHeadline": "How to use Pay in 3", + "instructionsSubHeadline": "Confirm your info and apply, set up autopay, and review your purchase." + }, + "preapproval": { + "preapprovalHeadline": "Pre-approved to Pay in 3 on this purchase ", + "preapprovalSubHeadline": "Pay {formattedTotalCost} in {total_payments} interest-free payments.", + "preapprovalDisclaimerHeadline": "What to know about pre-approval", + "preapprovalDisclaimerBody": "Pre-approval may not be valid if you make another Pay in 3 purchase before the session expires." + }, + "cta": { + "buttonTextEligible": "Continue with Pay in 3", + "buttonTextIneligible": "Back to Checkout", + "link": "https://www.paypal.com/link/to/short-term-application" + }, + "disclosure": "Pay in 3 is a form of credit, so carefully consider whether the purchase is affordable and how you will make the repayments. Be aware of the possible impact of using Pay in 3 and of missing payments, including making other borrowing more difficult or more expensive. Pay in 3 eligibility is subject to status and approval. 18+ UK residents only. Available for purchases of {formattedMinAmount} to {formattedMaxAmount}. Terms and conditions apply. PayPal Pay in 3 is a trading name of PayPal (Europe) S.à r.l. et Cie, S.C.A. 22-24 Boulevard Royal L-2449, Luxembourg.", + "learnMoreLink": [["Learn more about Pay in 3", ["https://www.paypal.com/uk/webapps/mpp/paypal-payin3/faq"]]] + } +} diff --git a/content/modals/US/v2_long_term_xo.json b/content/modals/US/v2_long_term_xo.json index fb49b87512..28c7b19c85 100644 --- a/content/modals/US/v2_long_term_xo.json +++ b/content/modals/US/v2_long_term_xo.json @@ -41,7 +41,6 @@ "Pay Monthly is subject to consumer credit approval. Payments may change based on shipping, taxes, updates to your purchase, or missed payments. Offer availability depends on the merchant and may not be available for subscriptions or recurring payments. Pay Monthly is currently not available to residents of Alaska, Colorado, Hawaii, Massachusetts, Nevada, New York, or Texas. You must be of legal age in your U.S. state of residence. Missed payments may have an impact on your credit score. The lender for Pay Monthly is WebBank. PayPal, Inc. (NMLS #910457): Connecticut Small Loan Licensee. Rhode Island Loan Broker Licensee. Vermont Loan Solicitation Licensee. Vermont residents:", ["Find more disclosures ", "https://www.paypal.com/us/digital-wallet/ways-to-pay/buy-now-pay-later"], "by going to PayPal's page on Pay Later." - ], - "linkToProductList": "See other ways to pay over time" + ] } } diff --git a/content/modals/US/v2_short_term_xo.json b/content/modals/US/v2_short_term_xo.json new file mode 100644 index 0000000000..b355d18a62 --- /dev/null +++ b/content/modals/US/v2_short_term_xo.json @@ -0,0 +1,60 @@ +{ + "meta": { + "product": "PAY_LATER_SHORT_TERM", + "periodicPayment": "{formattedPeriodicPayment}", + "minAmount": "{minAmount}", + "maxAmount": "{maxAmount}", + "qualifying": "{qualifying_offer}", + "amount": "{transaction_amount}", + "apr": "{apr}", + "preapproved": "false", + "variables": { + "transaction_amount": "${eval(transaction_amount ? transaction_amount : '-')}", + "qualifying_offer": "${eval(CREDIT_OFFERS_DS.qualifying_offer ? CREDIT_OFFERS_DS.qualifying_offer : 'false')}", + "financing_code": "${CREDIT_OFFERS_DS.financing_code}", + "formattedPeriodicPayment": "${CREDIT_OFFERS_DS.formattedPeriodicPayment}", + "total_payments": "${CREDIT_OFFERS_DS.total_payments}", + "formattedMinAmount": "${CREDIT_OFFERS_DS.formattedMinAmount}", + "formattedMaxAmount": "${CREDIT_OFFERS_DS.formattedMaxAmount}", + "formattedTotalCost": "${CREDIT_OFFERS_DS.formattedTotalCost}", + "minAmount": "${CREDIT_OFFERS_DS.minAmount}", + "maxAmount": "${CREDIT_OFFERS_DS.maxAmount}", + "apr": "${CREDIT_OFFERS_DS.apr}", + "nominal_rate": "${CREDIT_OFFERS_DS.nominal_rate}" + } + }, + "content": { + "headline": "Pay in 4 interest-free payments", + "subheadline": "No impact on credit score and no late fees. Available for purchases of {formattedMinAmount} to {formattedMaxAmount}.", + "qualifyingSubheadline": "Split your purchase of {formattedTotalCost} into {total_payments} with no impact on credit score and no late fees.", + "donutTimestamps": ["Today", "2 weeks", "4 weeks", "6 weeks"], + "instructions": { + "instructionsHeadline": "How to use Pay in 4", + "instructionsSubHeadline": "Confirm your info and apply, set up autopay, and review your purchase." + }, + "preapproval": { + "preapprovalHeadline": "You’re pre-approved", + "preapprovalSubHeadline": "Pay {formattedTotalCost} in {total_payments} interest-free payments.", + "preapprovalDisclaimerHeadline": "What to know about pre-approval", + "preapprovalDisclaimerBody": [ + "If you no longer meet the criteria used to select you for this offer, or give info we can’t match, pre-approval won’t apply and you may be declined for Pay in 4.", + "This offer starts on {current_date} and ends when you exit checkout, or when the session expires, or if you make another Pay in 4 purchase while this session is active.", + "We didn't use info from a credit bureau to make this offer." + ] + }, + "cta": { + "buttonTextEligible": "Continue with Pay in 4", + "buttonTextIneligible": "Back to Checkout", + "link": "https://www.paypal.com/link/to/short-term-application" + }, + "disclosure": [ + "Pay in 4 is available to consumers upon approval for purchases of {formattedMinAmount} to {formattedMaxAmount}. Pay in 4 is currently not available to residents of Missouri or Nevada. Offer availability depends on the merchant and also may not be available for certain recurring, subscription services. When applying, a soft credit check may be needed, but will not affect your credit score. You must be 18 years old or older to apply. PayPal, Inc.: Loans to California residents are made or arranged pursuant to a California Financing Law License. Georgia Installment Lender Licensee, NMLS #910457. Rhode Island Small Loan Lender Licensee. New Mexico residents:", + [ + "Find more disclosures ", + "https://www.paypal.com/us/webapps/mpp/campaigns/newmexicodisclosure", + "Find more disclosures, opens new tab" + ], + "related to Pay in 4." + ] + } +} diff --git a/src/components/modal/v2/parts/BodyContent.jsx b/src/components/modal/v2/parts/BodyContent.jsx index 6c5b4957fe..610991a5da 100644 --- a/src/components/modal/v2/parts/BodyContent.jsx +++ b/src/components/modal/v2/parts/BodyContent.jsx @@ -56,7 +56,11 @@ const BodyContent = () => { const productMeta = useProductMeta(viewName); const { headline, subheadline, qualifyingSubheadline = '', closeButtonLabel } = content; + const isQualifying = productMeta?.qualifying; + const isPreapproved = productMeta?.preapproved; + const preapprovalHeadline = content?.preapproval?.preapprovalHeadline; + const preapprovalSubHeadline = content?.preapproval?.preapprovalSubHeadline; const openProductList = () => setViewName(VIEW_IDS.PRODUCT_LIST); @@ -89,7 +93,6 @@ const BodyContent = () => { ), [VIEW_IDS.PRODUCT_LIST]:- {qualifyingSubheadline.replace(/(\s?EUR)/g, ' €')} + {isPreapproved === 'true' + ? preapprovalSubHeadline + : qualifyingSubheadline.replace(/(\s?EUR)/g, ' €')}
) : ( )}l*l$Fe4oz18TYSlNBRuJA)O7+~fSOAe}jPntX04OJF+&n|*XVTJl`2S +6@4SN^zqj_&O6pIDe>II7O=>0tuZm_Edjg_+rZEw7j#Hn}u2
zAm(py8SE-TLS)VBpZO3=<&fP85eRnmTK_?>-Q@<$oipwX5vEbAUhfsgKDa+wuNQzG
zxDq1=Rhf?BCJ_rN8(R^3^`xp^Juw-mhd`CHWl}j2+`idPKE`4pFSp 5O)>
z)o^|(=>!G4`r3N`$Q;BD$E0gta~DfHF(oCeP=&Gp>;%9WBbs7o6WVK0n_E9Z9HXNk
z0R$@0%1YdmtOw=&!P5Gz8n;`q({r-bi6+JP#KbSWX9pQ#%p0S(oNnNxX9Qvntw@EU
z%K;KdYgMJ-ACrmO?7%0RoSls|7H=GF#nBoS{xdfA#{4xlI1dNwN_I^5!uMVC3+mks
z2)yj=2?>u+%#~F##AMl-nQ^=imIp^tD~E>1NUtSo9k*m`$}!<@7wobsadB}q&Z{vh
zFb3NOnn#rHFk?*OoJ3$2XSTUwgFh;af$3;Br0D)~8(B;RIA9VO@laJ6b>Kx=-@nAY
zyaRRgoa>iV7~OH8{6D828)(Uok;%F@i7Z^EjgRQ*vqaAjZs5pmhPd*a*!J`}Tzwdu
zBk}d7U4qNjHtmecrzmGjuwts)~opxb=y3;W~Z(kMFL!JL|-B%im_T{~Z9-F_kz%
z2JDEbVUZXRMejzF85k_Du@R5k$?0Ln*Q6AEeGSr!2bvgr2wFErfug}i*yDD_BSX24
zxKfQMh7N7KE4zo4Y)!45oO~yxF-U%n-YFw|LX2l?MWUdfaJc8Kcm%$R_f0i5V{!r-
z$)YH^ l*l$Fe4oz18TYSlNBRuJA)O7+~fSOAe}jPntX04OJF+&n|*XVTJl`2S +6@4SN^zqj_&O6pIDe>II7O=>0tuZm_Edjg_+rZEw7j#Hn}u2
zAm(py8SE-TLS)VBpZO3=<&fP85eRnmTK_?>-Q@<$oipwX5vEbAUhfsgKDa+wuNQzG
zxDq1=Rhf?BCJ_rN8(R^3^`xp^Juw-mhd`CHWl}j2+`idPKE`4pFSp 5O)>
z)o^|(=>!G4`r3N`$Q;BD$E0gta~DfHF(oCeP=&Gp>;%9WBbs7o6WVK0n_E9Z9HXNk
z0R$@0%1YdmtOw=&!P5Gz8n;`q({r-bi6+JP#KbSWX9pQ#%p0S(oNnNxX9Qvntw@EU
z%K;KdYgMJ-ACrmO?7%0RoSls|7H=GF#nBoS{xdfA#{4xlI1dNwN_I^5!uMVC3+mks
z2)yj=2?>u+%#~F##AMl-nQ^=imIp^tD~E>1NUtSo9k*m`$}!<@7wobsadB}q&Z{vh
zFb3NOnn#rHFk?*OoJ3$2XSTUwgFh;af$3;Br0D)~8(B;RIA9VO@laJ6b>Kx=-@nAY
zyaRRgoa>iV7~OH8{6D828)(Uok;%F@i7Z^EjgRQ*vqaAjZs5pmhPd*a*!J`}Tzwdu
zBk}d7U4qNjHtmecrzmGjuwts)~opxb=y3;W~Z(kMFL!JL|-B%im_T{~Z9-F_kz%
z2JDEbVUZXRMejzF85k_Du@R5k$?0Ln*Q6AEeGSr!2bvgr2wFErfug}i*yDD_BSX24
zxKfQMh7N7KE4zo4Y)!45oO~yxF-U%n-YFw|LX2l?MWUdfaJc8Kcm%$R_f0i5V{!r-
z$)YH^0FHxPS5E2+U8M9agCATSFW%Sb6TtG
z_IJn0v|5Y(F({DyTq-R8kcK)h7lu9we&79_?eIvb7lUYup>h7Z31)%{!@2R0@tA~6
zHpr{oXlE99E_Vag%yiw*VVMth
ze)g4Khm%_>^W|QLAZ5N@-2R)Zr>J#!j3W-FPdw8>0NyLWY2U-4mf?9hP9kP(Z>43fsi==5>NCuAKl_=x%+xn8J;5
z^haXfQh}>VG~nLgQ1^1qs6bXf6j6z5S9eE7#915nW0FHxPS5E2+U8M9agCATSFW%Sb6TtG
z_IJn0v|5Y(F({DyTq-R8kcK)h7lu9we&79_?eIvb7lUYup>h7Z31)%{!@2R0@tA~6
zHpr{oXlE99E_Vag%yiw*VVMth
ze)g4Khm%_>^W|QLAZ5N@-2R)Zr>J#!j3W-FPdw8