From fe296e9c0dbfd5df6f9d1e00e270c4621d66e041 Mon Sep 17 00:00:00 2001 From: Inokentii Mazhara Date: Tue, 10 Dec 2024 19:11:59 +0200 Subject: [PATCH 1/6] TW-1599 Add layout for 'Rewards' page --- public/_locales/en/messages.json | 33 +++++++++ src/app/PageRouter.tsx | 2 + .../hooks/use-partners-promotion-settings.tsx | 47 ++++++++++++ src/app/hooks/use-referral-links-settings.tsx | 67 +++++++++++++++++ src/app/icons/triangle-down.svg | 4 + src/app/layouts/PageLayout.selectors.ts | 3 +- src/app/layouts/PageLayout.tsx | 14 ++-- .../PageLayout/RewardsButton/index.tsx | 67 +++++++++++++++++ .../RewardsButton/star_animation_small.gif | Bin 0 -> 6885 bytes src/app/pages/Rewards/achievements/index.tsx | 24 ++++++ src/app/pages/Rewards/active-features/ads.svg | 3 + .../Rewards/active-features/disabled.svg | 3 + .../pages/Rewards/active-features/enabled.svg | 3 + .../Rewards/active-features/feature-item.tsx | 69 ++++++++++++++++++ .../pages/Rewards/active-features/icon_bg.svg | 3 + .../pages/Rewards/active-features/index.tsx | 41 +++++++++++ .../Rewards/active-features/referrals.svg | 3 + src/app/pages/Rewards/index.tsx | 25 +++++++ .../pages/Rewards/lifetime-earnings/index.tsx | 41 +++++++++++ .../pages/Rewards/recent-earnings/index.tsx | 36 +++++++++ .../recent-earnings.module.css | 9 +++ .../Rewards/recent-earnings/stats-card.tsx | 55 ++++++++++++++ src/app/pages/Rewards/section.tsx | 32 ++++++++ src/app/pages/Rewards/selectors.ts | 8 ++ src/app/pages/Rewards/tooltip.tsx | 33 +++++++++ src/app/pages/Rewards/utils.ts | 7 ++ .../partners-promotion-settings.tsx | 49 ++----------- .../referral-links-settings.tsx | 68 ++--------------- tailwind.config.js | 3 + 29 files changed, 638 insertions(+), 114 deletions(-) create mode 100644 src/app/hooks/use-partners-promotion-settings.tsx create mode 100644 src/app/hooks/use-referral-links-settings.tsx create mode 100644 src/app/icons/triangle-down.svg create mode 100644 src/app/layouts/PageLayout/RewardsButton/index.tsx create mode 100644 src/app/layouts/PageLayout/RewardsButton/star_animation_small.gif create mode 100644 src/app/pages/Rewards/achievements/index.tsx create mode 100644 src/app/pages/Rewards/active-features/ads.svg create mode 100644 src/app/pages/Rewards/active-features/disabled.svg create mode 100644 src/app/pages/Rewards/active-features/enabled.svg create mode 100644 src/app/pages/Rewards/active-features/feature-item.tsx create mode 100644 src/app/pages/Rewards/active-features/icon_bg.svg create mode 100644 src/app/pages/Rewards/active-features/index.tsx create mode 100644 src/app/pages/Rewards/active-features/referrals.svg create mode 100644 src/app/pages/Rewards/index.tsx create mode 100644 src/app/pages/Rewards/lifetime-earnings/index.tsx create mode 100644 src/app/pages/Rewards/recent-earnings/index.tsx create mode 100644 src/app/pages/Rewards/recent-earnings/recent-earnings.module.css create mode 100644 src/app/pages/Rewards/recent-earnings/stats-card.tsx create mode 100644 src/app/pages/Rewards/section.tsx create mode 100644 src/app/pages/Rewards/selectors.ts create mode 100644 src/app/pages/Rewards/tooltip.tsx create mode 100644 src/app/pages/Rewards/utils.ts diff --git a/public/_locales/en/messages.json b/public/_locales/en/messages.json index 222063a918..d1ef0f111d 100644 --- a/public/_locales/en/messages.json +++ b/public/_locales/en/messages.json @@ -3168,5 +3168,38 @@ }, "dropdownNoItems": { "message": "No items" + }, + "earnings": { + "message": "Earnings" + }, + "earningsInfoTooltip": { + "message": "TODO: add some text about the meaning of RP acronym, stats update interval etc." + }, + "ads": { + "message": "Ads" + }, + "today": { + "message": "Today" + }, + "activeFeatures": { + "message": "Active features" + }, + "advertisingFeatureDescription": { + "message": "Get RP by viewing ads" + }, + "advertisingFeatureTooltip": { + "message": "TODO: add some text about getting RP by viewing ads" + }, + "referralLinksFeatureDescription": { + "message": "Get RP while use favorite websites" + }, + "referralLinksFeatureTooltip": { + "message": "TODO: add some text about getting RP while use favorite websites" + }, + "achievements": { + "message": "Achievements" + }, + "lifetimeEarnings": { + "message": "Lifetime earnings" } } diff --git a/src/app/PageRouter.tsx b/src/app/PageRouter.tsx index 3097171b5d..69b6661f5c 100644 --- a/src/app/PageRouter.tsx +++ b/src/app/PageRouter.tsx @@ -30,6 +30,7 @@ import { Notifications, NotificationsItem } from 'lib/notifications/components'; import { useTempleClient } from 'lib/temple/front'; import * as Woozie from 'lib/woozie'; +import { RewardsPage } from './pages/Rewards'; import { StakingPage } from './pages/Staking'; import { WithDataLoading } from './WithDataLoading'; @@ -98,6 +99,7 @@ const ROUTE_MAP = Woozie.createMap([ ['/attention', onlyReady(onlyInFullPage(() => ))], ['/notifications', onlyReady(() => )], ['/notifications/:id', onlyReady(({ id }) => )], + ['/rewards', onlyReady(() => )], ['*', () => ] ]); diff --git a/src/app/hooks/use-partners-promotion-settings.tsx b/src/app/hooks/use-partners-promotion-settings.tsx new file mode 100644 index 0000000000..d4a5a7beb1 --- /dev/null +++ b/src/app/hooks/use-partners-promotion-settings.tsx @@ -0,0 +1,47 @@ +import { ChangeEvent } from 'react'; + +import { useDispatch } from 'react-redux'; + +import { togglePartnersPromotionAction } from 'app/store/partners-promotion/actions'; +import { useShouldShowPartnersPromoSelector } from 'app/store/partners-promotion/selectors'; +import { t } from 'lib/i18n'; +import { useConfirm } from 'lib/ui/dialog'; + +export const usePartnersPromotionSettings = () => { + const dispatch = useDispatch(); + const confirm = useConfirm(); + + const isEnabled = useShouldShowPartnersPromoSelector(); + + const handleHidePromotion = async (toChecked: boolean) => { + const confirmed = await confirm({ + title: t('closePartnersPromotion'), + children: t('closePartnersPromoConfirm'), + comfirmButtonText: t('disable') + }); + + if (confirmed) { + dispatch(togglePartnersPromotionAction(toChecked)); + } + }; + + const handleShowPromotion = async (toChecked: boolean) => { + const confirmed = await confirm({ + title: t('enablePartnersPromotionConfirm'), + children: t('enablePartnersPromotionDescriptionConfirm'), + comfirmButtonText: t('enable') + }); + + if (confirmed) { + dispatch(togglePartnersPromotionAction(toChecked)); + } + }; + + const setEnabled = (toChecked: boolean, event?: ChangeEvent) => { + event?.preventDefault(); + + return toChecked ? handleShowPromotion(toChecked) : handleHidePromotion(toChecked); + }; + + return { isEnabled, setEnabled }; +}; diff --git a/src/app/hooks/use-referral-links-settings.tsx b/src/app/hooks/use-referral-links-settings.tsx new file mode 100644 index 0000000000..309982e46c --- /dev/null +++ b/src/app/hooks/use-referral-links-settings.tsx @@ -0,0 +1,67 @@ +import React, { ChangeEvent, useCallback } from 'react'; + +import { useDispatch } from 'react-redux'; + +import { setAcceptedTermsVersionAction, setReferralLinksEnabledAction } from 'app/store/settings/actions'; +import { useAcceptedTermsVersionSelector, useReferralLinksEnabledSelector } from 'app/store/settings/selectors'; +import { + PRIVACY_POLICY_URL, + RECENT_TERMS_VERSION, + TERMS_OF_USE_URL, + TERMS_WITH_REFERRALS_VERSION +} from 'lib/constants'; +import { t, T } from 'lib/i18n'; +import { useConfirm } from 'lib/ui/dialog'; + +export const useReferralLinksSettings = () => { + const dispatch = useDispatch(); + const enabled = useReferralLinksEnabledSelector(); + const acceptedTermsVersion = useAcceptedTermsVersionSelector(); + const confirm = useConfirm(); + + const setEnabled = useCallback( + async (toChecked: boolean, event?: ChangeEvent) => { + event?.preventDefault(); + + if (toChecked && acceptedTermsVersion < TERMS_WITH_REFERRALS_VERSION) { + const confirmed = await confirm({ + title: , + description: ( + + + , + + + + ]} + /> + ), + comfirmButtonText: t('agreeAndContinue') + }); + + if (!confirmed) { + return; + } + } + + dispatch(setAcceptedTermsVersionAction(RECENT_TERMS_VERSION)); + dispatch(setReferralLinksEnabledAction(toChecked)); + }, + [acceptedTermsVersion, confirm, dispatch] + ); + + return { isEnabled: enabled, setEnabled }; +}; diff --git a/src/app/icons/triangle-down.svg b/src/app/icons/triangle-down.svg new file mode 100644 index 0000000000..cff0a93f49 --- /dev/null +++ b/src/app/icons/triangle-down.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/app/layouts/PageLayout.selectors.ts b/src/app/layouts/PageLayout.selectors.ts index 17e613c8e2..60e409f646 100644 --- a/src/app/layouts/PageLayout.selectors.ts +++ b/src/app/layouts/PageLayout.selectors.ts @@ -1,4 +1,5 @@ export enum PageLayoutSelectors { backButton = 'Page Layout/Back Button', - skipButton = 'Page Layout/Skip Button' + skipButton = 'Page Layout/Skip Button', + rewardsButton = 'Page Layout/Rewards Button' } diff --git a/src/app/layouts/PageLayout.tsx b/src/app/layouts/PageLayout.tsx index 0ecf2594a9..551bcacab0 100644 --- a/src/app/layouts/PageLayout.tsx +++ b/src/app/layouts/PageLayout.tsx @@ -14,7 +14,6 @@ import clsx from 'clsx'; import DocBg from 'app/a11y/DocBg'; import { Button } from 'app/atoms/Button'; -import { DonationBanner } from 'app/atoms/DonationBanner/DonationBanner'; import Spinner from 'app/atoms/Spinner/Spinner'; import { useAppEnv } from 'app/env'; import ErrorBoundary from 'app/ErrorBoundary'; @@ -35,6 +34,7 @@ import Header from './PageLayout/Header'; import { NewsletterOverlay } from './PageLayout/NewsletterOverlay/NewsletterOverlay'; import { OnRampOverlay } from './PageLayout/OnRampOverlay/OnRampOverlay'; import { ReactivateAdsOverlay } from './PageLayout/ReactivateAdsOverlay'; +import { RewardsButton } from './PageLayout/RewardsButton'; import { ShortcutAccountSwitchOverlay } from './PageLayout/ShortcutAccountSwitchOverlay'; import { PageLayoutSelectors } from './PageLayout.selectors'; @@ -203,10 +203,8 @@ const Toolbar: FC = ({ return (
-
- {!isBackButtonAvailable && adShow && } - - {isBackButtonAvailable && ( + {isBackButtonAvailable ? ( +
- )} -
+
+ ) : ( + + )} {pageTitle && (

{pageTitle}

diff --git a/src/app/layouts/PageLayout/RewardsButton/index.tsx b/src/app/layouts/PageLayout/RewardsButton/index.tsx new file mode 100644 index 0000000000..c8794a5bc5 --- /dev/null +++ b/src/app/layouts/PageLayout/RewardsButton/index.tsx @@ -0,0 +1,67 @@ +import React, { memo, useCallback, useRef, useState } from 'react'; + +import clsx from 'clsx'; + +import { TestIDProps } from 'lib/analytics'; +import { T } from 'lib/i18n'; +import { useWillUnmount } from 'lib/ui/hooks/useWillUnmount'; +import { Link } from 'lib/woozie'; + +import starAnimation from './star_animation_small.gif'; + +const GIF_DURATION = 3000; +const ORIGINAL_IMG_SIZE = 48; + +export const RewardsButton = memo(props => { + const [isHovered, setIsHovered] = useState(false); + const [loopComplete, setLoopComplete] = useState(false); + const loopTimeoutRef = useRef(); + const animationRef = useRef(null); + const canvasRef = useRef(null); + + useWillUnmount(() => void (loopTimeoutRef.current !== undefined && clearTimeout(loopTimeoutRef.current))); + const handleAnimationLoad = useCallback(() => { + loopTimeoutRef.current = setTimeout(() => setLoopComplete(true), GIF_DURATION); + + const ctx = canvasRef.current!.getContext('2d')!; + ctx.imageSmoothingEnabled = false; + ctx.drawImage(animationRef.current!, 0, 0, ORIGINAL_IMG_SIZE, ORIGINAL_IMG_SIZE); + }, []); + + const handleHover = useCallback(() => setIsHovered(true), []); + const handleUnhover = useCallback(() => setIsHovered(false), []); + + const isAnimated = isHovered || !loopComplete; + + return ( + +
+ + + +
+ + ); +}); diff --git a/src/app/layouts/PageLayout/RewardsButton/star_animation_small.gif b/src/app/layouts/PageLayout/RewardsButton/star_animation_small.gif new file mode 100644 index 0000000000000000000000000000000000000000..7885a10b37cf829f764ee78a3584b7742d30947f GIT binary patch literal 6885 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 XTs=m^ipV;?zq*t}_kY`$ADe#w=z92v literal 0 HcmV?d00001 diff --git a/src/app/pages/Rewards/achievements/index.tsx b/src/app/pages/Rewards/achievements/index.tsx new file mode 100644 index 0000000000..d102f4793c --- /dev/null +++ b/src/app/pages/Rewards/achievements/index.tsx @@ -0,0 +1,24 @@ +import React, { memo } from 'react'; + +import clsx from 'clsx'; + +import { T, t } from 'lib/i18n'; + +import { Section } from '../section'; + +export const Achievements = memo(() => ( +
+
+

🚧

+

+ +

+
+
+)); diff --git a/src/app/pages/Rewards/active-features/ads.svg b/src/app/pages/Rewards/active-features/ads.svg new file mode 100644 index 0000000000..512f2d7c87 --- /dev/null +++ b/src/app/pages/Rewards/active-features/ads.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/app/pages/Rewards/active-features/disabled.svg b/src/app/pages/Rewards/active-features/disabled.svg new file mode 100644 index 0000000000..b1c6a25666 --- /dev/null +++ b/src/app/pages/Rewards/active-features/disabled.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/app/pages/Rewards/active-features/enabled.svg b/src/app/pages/Rewards/active-features/enabled.svg new file mode 100644 index 0000000000..798fa4fb3a --- /dev/null +++ b/src/app/pages/Rewards/active-features/enabled.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/app/pages/Rewards/active-features/feature-item.tsx b/src/app/pages/Rewards/active-features/feature-item.tsx new file mode 100644 index 0000000000..910c3afd1c --- /dev/null +++ b/src/app/pages/Rewards/active-features/feature-item.tsx @@ -0,0 +1,69 @@ +import React, { memo, ReactNode, useCallback } from 'react'; + +import clsx from 'clsx'; + +import { Button } from 'app/atoms'; +import { T } from 'lib/i18n'; + +import { RewardsTooltip } from '../tooltip'; + +import { ReactComponent as DisabledIcon } from './disabled.svg'; +import { ReactComponent as EnabledIcon } from './enabled.svg'; +import { ReactComponent as IconBg } from './icon_bg.svg'; + +interface FeatureItemProps { + Icon: ImportedSVGComponent; + enabled: boolean; + setEnabled: (newValue: boolean) => Promise; + name: ReactNode | ReactNode[]; + description: ReactNode | ReactNode[]; + tooltip: string; + buttonTestID?: string; +} + +export const FeatureItem = memo( + ({ Icon, enabled, setEnabled, name, description, tooltip, buttonTestID }) => { + const toggle = useCallback(() => setEnabled(!enabled), [enabled, setEnabled]); + const StatusIcon = enabled ? EnabledIcon : DisabledIcon; + + return ( +
+
+ + + +
+ +
+
+ {name} + +
+ {description} +
+ + +
+ ); + } +); diff --git a/src/app/pages/Rewards/active-features/icon_bg.svg b/src/app/pages/Rewards/active-features/icon_bg.svg new file mode 100644 index 0000000000..211c4fe231 --- /dev/null +++ b/src/app/pages/Rewards/active-features/icon_bg.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/app/pages/Rewards/active-features/index.tsx b/src/app/pages/Rewards/active-features/index.tsx new file mode 100644 index 0000000000..847826a40e --- /dev/null +++ b/src/app/pages/Rewards/active-features/index.tsx @@ -0,0 +1,41 @@ +import React, { memo } from 'react'; + +import { usePartnersPromotionSettings } from 'app/hooks/use-partners-promotion-settings'; +import { useReferralLinksSettings } from 'app/hooks/use-referral-links-settings'; +import { t, T } from 'lib/i18n'; + +import { Section } from '../section'; +import { RewardsPageSelectors } from '../selectors'; + +import { ReactComponent as AdsIcon } from './ads.svg'; +import { FeatureItem } from './feature-item'; +import { ReactComponent as ReferralsIcon } from './referrals.svg'; + +export const ActiveFeatures = memo(() => { + const { isEnabled: adsEnabled, setEnabled: setAdsEnabled } = usePartnersPromotionSettings(); + const { isEnabled: referralEnabled, setEnabled: setReferralEnabled } = useReferralLinksSettings(); + + return ( +
}> + } + description={} + tooltip={t('advertisingFeatureTooltip')} + buttonTestID={RewardsPageSelectors.disableAdsButton} + /> + + } + description={} + tooltip={t('referralLinksFeatureTooltip')} + buttonTestID={RewardsPageSelectors.disableReferralLinksButton} + /> +
+ ); +}); diff --git a/src/app/pages/Rewards/active-features/referrals.svg b/src/app/pages/Rewards/active-features/referrals.svg new file mode 100644 index 0000000000..23ffd82083 --- /dev/null +++ b/src/app/pages/Rewards/active-features/referrals.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/app/pages/Rewards/index.tsx b/src/app/pages/Rewards/index.tsx new file mode 100644 index 0000000000..e60a9add13 --- /dev/null +++ b/src/app/pages/Rewards/index.tsx @@ -0,0 +1,25 @@ +import React from 'react'; + +import { capitalize } from 'lodash'; + +import { PageTitle } from 'app/atoms'; +import PageLayout from 'app/layouts/PageLayout'; +import { t } from 'lib/i18n'; + +import { Achievements } from './achievements'; +import { ActiveFeatures } from './active-features'; +import { LifetimeEarnings } from './lifetime-earnings'; +import { RecentEarnings } from './recent-earnings'; + +export const RewardsPage = () => ( + } title={capitalize(t('rewards'))} />}> +
+
+ + + + +
+
+
+); diff --git a/src/app/pages/Rewards/lifetime-earnings/index.tsx b/src/app/pages/Rewards/lifetime-earnings/index.tsx new file mode 100644 index 0000000000..98e86b0253 --- /dev/null +++ b/src/app/pages/Rewards/lifetime-earnings/index.tsx @@ -0,0 +1,41 @@ +import React, { memo, useCallback } from 'react'; + +import { Button } from 'app/atoms'; +import { ReactComponent as TriangleDownIcon } from 'app/icons/triangle-down.svg'; +import { T, t } from 'lib/i18n'; + +import { Section } from '../section'; +import { formatRpAmount, getMonthName } from '../utils'; + +const mockData = [ + { date: new Date(2024, 9, 1), value: 11257 }, + { date: new Date(2024, 8, 1), value: 1024 }, + { date: new Date(2024, 7, 1), value: 14157 } +]; + +export const LifetimeEarnings = memo(() => { + const loadMore = useCallback(() => console.log('TODO: Load more'), []); + + return ( +
+ {mockData.map(({ date, value }) => ( +
+ {getMonthName(date)} + {formatRpAmount(value)} RP +
+ ))} + + +
+ ); +}); diff --git a/src/app/pages/Rewards/recent-earnings/index.tsx b/src/app/pages/Rewards/recent-earnings/index.tsx new file mode 100644 index 0000000000..aafd928c43 --- /dev/null +++ b/src/app/pages/Rewards/recent-earnings/index.tsx @@ -0,0 +1,36 @@ +import React, { memo } from 'react'; + +import { t, T } from 'lib/i18n'; + +import { Section } from '../section'; +import { RewardsPageSelectors } from '../selectors'; +import { getMonthName } from '../utils'; + +import { StatsCard } from './stats-card'; + +export const RecentEarnings = memo(() => ( +
} + tooltipText={t('earningsInfoTooltip')} + tooltipTriggerTestID={RewardsPageSelectors.earningsTooltipTrigger} + > +
+ } + rpCount={244} + adsCount={2023} + linksCount={323} + background="golden" + testID={RewardsPageSelectors.todayStatsCard} + /> + +
+
+)); diff --git a/src/app/pages/Rewards/recent-earnings/recent-earnings.module.css b/src/app/pages/Rewards/recent-earnings/recent-earnings.module.css new file mode 100644 index 0000000000..64c4bc528b --- /dev/null +++ b/src/app/pages/Rewards/recent-earnings/recent-earnings.module.css @@ -0,0 +1,9 @@ +.goldenGradient { + background: radial-gradient(135.48% 211.13% at 124.73% 100%, #ED8936 0%, #1B262C 50.05%), + linear-gradient(0deg, #1B262C, #1B262C); +} + +.bluishGradient { + background: radial-gradient(139.93% 204.42% at 107.26% 117.45%, rgba(66, 153, 225, 0.5) 0%, rgba(27, 38, 44, 0.5) 47%), + linear-gradient(0deg, #1B262C, #1B262C); +} diff --git a/src/app/pages/Rewards/recent-earnings/stats-card.tsx b/src/app/pages/Rewards/recent-earnings/stats-card.tsx new file mode 100644 index 0000000000..1c083712e6 --- /dev/null +++ b/src/app/pages/Rewards/recent-earnings/stats-card.tsx @@ -0,0 +1,55 @@ +import React, { memo, ReactNode } from 'react'; + +import clsx from 'clsx'; + +import { setTestID } from 'lib/analytics'; +import { T } from 'lib/i18n'; + +import { formatRpAmount } from '../utils'; + +import styles from './recent-earnings.module.css'; + +interface StatsCardProps { + periodName: ReactNode | ReactNode[]; + rpCount: number; + adsCount: number; + linksCount: number; + background: 'golden' | 'bluish'; + testID?: string; +} + +export const StatsCard = memo(({ periodName, rpCount, adsCount, linksCount, background, testID }) => ( +
+

{periodName}

+ +

{formatRpAmount(rpCount)} RP

+ +
+ } value={adsCount} /> + } value={linksCount} /> +
+
+)); + +interface StatsCardItemProps { + title: JSX.Element; + value: number; +} + +const StatsCardItem = memo(({ title, value }) => ( +
+ {title} + {formatRpAmount(value)} +
+)); diff --git a/src/app/pages/Rewards/section.tsx b/src/app/pages/Rewards/section.tsx new file mode 100644 index 0000000000..8052fa1e60 --- /dev/null +++ b/src/app/pages/Rewards/section.tsx @@ -0,0 +1,32 @@ +import React, { FC, PropsWithChildren, ReactNode } from 'react'; + +import clsx from 'clsx'; + +import { ReactComponent as InfoIcon } from 'app/icons/info.svg'; + +import { RewardsTooltip } from './tooltip'; + +interface SectionProps { + title: ReactNode | ReactNode[]; + tooltipText?: string; + tooltipTriggerTestID?: string; +} + +export const Section: FC> = ({ + title, + tooltipText, + tooltipTriggerTestID, + children +}) => ( +
+
+ {title} + + {tooltipText && ( + + )} +
+ + {children} +
+); diff --git a/src/app/pages/Rewards/selectors.ts b/src/app/pages/Rewards/selectors.ts new file mode 100644 index 0000000000..e633e2e225 --- /dev/null +++ b/src/app/pages/Rewards/selectors.ts @@ -0,0 +1,8 @@ +export enum RewardsPageSelectors { + earningsTooltipTrigger = 'Rewards Page/Earnings Tooltip Trigger', + todayStatsCard = 'Rewards Page/Today Stats Card', + thisMonthStatsCard = 'Rewards Page/This Month Stats Card', + disableAdsButton = 'Rewards Page/Disable Ads Button', + disableReferralLinksButton = 'Rewards Page/Disable Referral Links Button', + loadMoreButton = 'Rewards Page/Load More Button' +} diff --git a/src/app/pages/Rewards/tooltip.tsx b/src/app/pages/Rewards/tooltip.tsx new file mode 100644 index 0000000000..556f413ec4 --- /dev/null +++ b/src/app/pages/Rewards/tooltip.tsx @@ -0,0 +1,33 @@ +import React, { memo, useMemo } from 'react'; + +import { ReactComponent as AlertIcon } from 'app/icons/alert.svg'; +import { setTestID } from 'lib/analytics'; +import useTippy, { UseTippyOptions } from 'lib/ui/useTippy'; + +interface RewardsTooltipProps { + placement: UseTippyOptions['placement']; + content: string; + testID?: string; + Icon?: ImportedSVGComponent; +} + +export const RewardsTooltip = memo(({ placement, content, testID, Icon = AlertIcon }) => { + const tippyProps = useMemo( + () => ({ + trigger: 'mouseenter', + hideOnClick: false, + content, + animation: 'shift-away-subtle', + placement + }), + [content, placement] + ); + + const ref = useTippy(tippyProps); + + return ( +
+ +
+ ); +}); diff --git a/src/app/pages/Rewards/utils.ts b/src/app/pages/Rewards/utils.ts new file mode 100644 index 0000000000..96485fe7c6 --- /dev/null +++ b/src/app/pages/Rewards/utils.ts @@ -0,0 +1,7 @@ +import { capitalize } from 'lodash'; + +import { formatDate, toLocalFormat } from 'lib/i18n'; + +export const formatRpAmount = (amount: number) => toLocalFormat(amount, {}); + +export const getMonthName = (date: Date) => capitalize(formatDate(date, 'LLLL')); diff --git a/src/app/templates/AdvancedFeatures/partners-promotion-settings.tsx b/src/app/templates/AdvancedFeatures/partners-promotion-settings.tsx index bb64727d4a..650b552ec3 100644 --- a/src/app/templates/AdvancedFeatures/partners-promotion-settings.tsx +++ b/src/app/templates/AdvancedFeatures/partners-promotion-settings.tsx @@ -1,50 +1,13 @@ -import React, { ChangeEvent, FC } from 'react'; +import React, { FC } from 'react'; -import { useDispatch } from 'react-redux'; - -import { togglePartnersPromotionAction } from 'app/store/partners-promotion/actions'; -import { useShouldShowPartnersPromoSelector } from 'app/store/partners-promotion/selectors'; -import { T, t } from 'lib/i18n'; -import { useConfirm } from 'lib/ui/dialog'; +import { usePartnersPromotionSettings } from 'app/hooks/use-partners-promotion-settings'; +import { T } from 'lib/i18n'; import { EnablingSetting } from '../EnablingSetting'; import { SettingsGeneralSelectors } from '../SettingsGeneral/selectors'; export const PartnersPromotionSettings: FC = () => { - const dispatch = useDispatch(); - const confirm = useConfirm(); - - const shouldShowPartnersPromo = useShouldShowPartnersPromoSelector(); - - const handleHidePromotion = async (toChecked: boolean) => { - const confirmed = await confirm({ - title: t('closePartnersPromotion'), - children: t('closePartnersPromoConfirm'), - comfirmButtonText: t('disable') - }); - - if (confirmed) { - dispatch(togglePartnersPromotionAction(toChecked)); - } - }; - - const handleShowPromotion = async (toChecked: boolean) => { - const confirmed = await confirm({ - title: t('enablePartnersPromotionConfirm'), - children: t('enablePartnersPromotionDescriptionConfirm'), - comfirmButtonText: t('enable') - }); - - if (confirmed) { - dispatch(togglePartnersPromotionAction(toChecked)); - } - }; - - const togglePartnersPromotion = (toChecked: boolean, event: ChangeEvent) => { - event?.preventDefault(); - - return toChecked ? handleShowPromotion(toChecked) : handleHidePromotion(toChecked); - }; + const { isEnabled, setEnabled } = usePartnersPromotionSettings(); return ( { } - enabled={shouldShowPartnersPromo} - onChange={togglePartnersPromotion} + enabled={isEnabled} + onChange={setEnabled} testID={SettingsGeneralSelectors.partnersPromotion} /> ); diff --git a/src/app/templates/AdvancedFeatures/referral-links-settings.tsx b/src/app/templates/AdvancedFeatures/referral-links-settings.tsx index b542b609e3..c2ce7fadb0 100644 --- a/src/app/templates/AdvancedFeatures/referral-links-settings.tsx +++ b/src/app/templates/AdvancedFeatures/referral-links-settings.tsx @@ -1,78 +1,20 @@ -import React, { ChangeEvent, memo, useCallback } from 'react'; +import React, { memo } from 'react'; -import { useDispatch } from 'react-redux'; - -import { setAcceptedTermsVersionAction, setReferralLinksEnabledAction } from 'app/store/settings/actions'; -import { useAcceptedTermsVersionSelector, useReferralLinksEnabledSelector } from 'app/store/settings/selectors'; -import { - PRIVACY_POLICY_URL, - RECENT_TERMS_VERSION, - TERMS_OF_USE_URL, - TERMS_WITH_REFERRALS_VERSION -} from 'lib/constants'; -import { t, T } from 'lib/i18n'; -import { useConfirm } from 'lib/ui/dialog'; +import { useReferralLinksSettings } from 'app/hooks/use-referral-links-settings'; import { EnablingSetting } from '../EnablingSetting'; import { AdvancedFeaturesSelectors } from './selectors'; export const ReferralLinksSettings = memo(() => { - const dispatch = useDispatch(); - const referralLinksEnabled = useReferralLinksEnabledSelector(); - const acceptedTermsVersion = useAcceptedTermsVersionSelector(); - const confirm = useConfirm(); - - const toggleReferralLinks = useCallback( - async (toChecked: boolean, event: ChangeEvent) => { - event?.preventDefault(); - - if (toChecked && acceptedTermsVersion < TERMS_WITH_REFERRALS_VERSION) { - const confirmed = await confirm({ - title: , - description: ( - - - , - - - - ]} - /> - ), - comfirmButtonText: t('agreeAndContinue') - }); - - if (!confirmed) { - return; - } - } - - dispatch(setAcceptedTermsVersionAction(RECENT_TERMS_VERSION)); - dispatch(setReferralLinksEnabledAction(toChecked)); - }, - [acceptedTermsVersion, confirm, dispatch] - ); + const { isEnabled, setEnabled } = useReferralLinksSettings(); return ( ); diff --git a/tailwind.config.js b/tailwind.config.js index 1de5c8c9d5..3dc7a1520b 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -465,6 +465,7 @@ module.exports = { }, scale: { 0: '0', + '1/3': '33.333333%', 50: '.5', 75: '.75', 90: '.9', @@ -490,6 +491,8 @@ module.exports = { '-full': '-100%', '-1/2': '-50%', '1/2': '50%', + '1/3': '33.333333%', + '-1/3': '-33.333333%', full: '100%' }), skew: { From 7d85c51b42d033aa38a4c6bd1eac4de07b64fa4e Mon Sep 17 00:00:00 2001 From: Inokentii Mazhara Date: Fri, 13 Dec 2024 11:44:36 +0200 Subject: [PATCH 2/6] TW-1599 Implement fetching rewards --- public/_locales/en/messages.json | 12 +- .../atoms/DonationBanner/DonationBanner.tsx | 28 ---- src/app/atoms/DonationBanner/selectors.ts | 3 - .../hooks/use-partners-promotion-settings.tsx | 10 +- src/app/pages/Rewards/achievements/index.tsx | 2 +- .../Rewards/active-features/feature-item.tsx | 19 ++- src/app/pages/Rewards/index.tsx | 84 +++++++++-- .../pages/Rewards/lifetime-earnings/index.tsx | 133 +++++++++++++++--- .../pages/Rewards/recent-earnings/index.tsx | 66 +++++---- .../Rewards/recent-earnings/stats-card.tsx | 55 +++++--- src/app/store/rewards/actions.ts | 22 +++ src/app/store/rewards/epics.ts | 44 ++++++ src/app/store/rewards/reducers.ts | 35 +++++ src/app/store/rewards/selectors.ts | 47 +++++++ src/app/store/rewards/state.mock.ts | 7 + src/app/store/rewards/state.ts | 14 ++ src/app/store/root-state.epics.ts | 4 +- src/app/store/root-state.mock.ts | 4 +- src/app/store/root-state.reducer.ts | 4 +- src/lib/apis/ads-api.ts | 58 ++++++-- src/lib/apis/utils.ts | 9 ++ src/lib/icons/assets/bell-read.svg | 16 +++ src/lib/icons/assets/bell-unread.svg | 20 +++ src/lib/icons/index.ts | 2 + src/lib/notifications/components/bell.tsx | 20 +-- src/lib/utils/numbers.ts | 2 + tailwind.config.js | 1 + 27 files changed, 564 insertions(+), 157 deletions(-) delete mode 100644 src/app/atoms/DonationBanner/DonationBanner.tsx delete mode 100644 src/app/atoms/DonationBanner/selectors.ts create mode 100644 src/app/store/rewards/actions.ts create mode 100644 src/app/store/rewards/epics.ts create mode 100644 src/app/store/rewards/reducers.ts create mode 100644 src/app/store/rewards/selectors.ts create mode 100644 src/app/store/rewards/state.mock.ts create mode 100644 src/app/store/rewards/state.ts create mode 100644 src/lib/apis/utils.ts create mode 100644 src/lib/icons/assets/bell-read.svg create mode 100644 src/lib/icons/assets/bell-unread.svg diff --git a/public/_locales/en/messages.json b/public/_locales/en/messages.json index d1ef0f111d..fea6aff841 100644 --- a/public/_locales/en/messages.json +++ b/public/_locales/en/messages.json @@ -3173,7 +3173,7 @@ "message": "Earnings" }, "earningsInfoTooltip": { - "message": "TODO: add some text about the meaning of RP acronym, stats update interval etc." + "message": "Earnings are only an estimation of your daily and monthly activity, including ad views and interactions with referral links. At the end of each month, your RP (reward points) will be converted into TKEY and distributed to your Tezos address. The more RP you accumulate, the greater your rewards will be." }, "ads": { "message": "Ads" @@ -3188,18 +3188,24 @@ "message": "Get RP by viewing ads" }, "advertisingFeatureTooltip": { - "message": "TODO: add some text about getting RP by viewing ads" + "message": "The advertising feature is used to display ads within Temple Wallet and on websites. To earn TKEY and enable ads, we request your permission to share your wallet address and IP, this information is used solely to serve you relevant ads and distribute rewards." }, "referralLinksFeatureDescription": { "message": "Get RP while use favorite websites" }, "referralLinksFeatureTooltip": { - "message": "TODO: add some text about getting RP while use favorite websites" + "message": "The referral links feature allows users to engage with affiliate offers from our partners. These offers will appear as links while you browse your favorite websites. To enable this feature, we request your permission to share your wallet address and IP address, this information is used solely to serve you relevant offers and distribute rewards." }, "achievements": { "message": "Achievements" }, "lifetimeEarnings": { "message": "Lifetime earnings" + }, + "noEarningsFound": { + "message": "No earnings found" + }, + "somethingWentWrong": { + "message": "Something went wrong" } } diff --git a/src/app/atoms/DonationBanner/DonationBanner.tsx b/src/app/atoms/DonationBanner/DonationBanner.tsx deleted file mode 100644 index a3310101fb..0000000000 --- a/src/app/atoms/DonationBanner/DonationBanner.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import React, { FC } from 'react'; - -import { Anchor } from 'app/atoms/Anchor'; -import { ReactComponent as Ukraine } from 'app/icons/ukraine.svg'; -import { T } from 'lib/i18n'; - -import { DonationBannerSelectors } from './selectors'; - -const DONATE_MAD_FISH_URL = 'https://donate.mad.fish'; - -export const DonationBanner: FC = () => ( - -
-
- - - -
-
- -
-
-
-); diff --git a/src/app/atoms/DonationBanner/selectors.ts b/src/app/atoms/DonationBanner/selectors.ts deleted file mode 100644 index cc6fca5c88..0000000000 --- a/src/app/atoms/DonationBanner/selectors.ts +++ /dev/null @@ -1,3 +0,0 @@ -export enum DonationBannerSelectors { - ukraineDonationBanner = 'DonationBanner/Ukraine Donation Banner' -} diff --git a/src/app/hooks/use-partners-promotion-settings.tsx b/src/app/hooks/use-partners-promotion-settings.tsx index d4a5a7beb1..7ad32e9b02 100644 --- a/src/app/hooks/use-partners-promotion-settings.tsx +++ b/src/app/hooks/use-partners-promotion-settings.tsx @@ -13,7 +13,7 @@ export const usePartnersPromotionSettings = () => { const isEnabled = useShouldShowPartnersPromoSelector(); - const handleHidePromotion = async (toChecked: boolean) => { + const handleHidePromotion = async () => { const confirmed = await confirm({ title: t('closePartnersPromotion'), children: t('closePartnersPromoConfirm'), @@ -21,11 +21,11 @@ export const usePartnersPromotionSettings = () => { }); if (confirmed) { - dispatch(togglePartnersPromotionAction(toChecked)); + dispatch(togglePartnersPromotionAction(false)); } }; - const handleShowPromotion = async (toChecked: boolean) => { + const handleShowPromotion = async () => { const confirmed = await confirm({ title: t('enablePartnersPromotionConfirm'), children: t('enablePartnersPromotionDescriptionConfirm'), @@ -33,14 +33,14 @@ export const usePartnersPromotionSettings = () => { }); if (confirmed) { - dispatch(togglePartnersPromotionAction(toChecked)); + dispatch(togglePartnersPromotionAction(true)); } }; const setEnabled = (toChecked: boolean, event?: ChangeEvent) => { event?.preventDefault(); - return toChecked ? handleShowPromotion(toChecked) : handleHidePromotion(toChecked); + return toChecked ? handleShowPromotion() : handleHidePromotion(); }; return { isEnabled, setEnabled }; diff --git a/src/app/pages/Rewards/achievements/index.tsx b/src/app/pages/Rewards/achievements/index.tsx index d102f4793c..cbd9b38bef 100644 --- a/src/app/pages/Rewards/achievements/index.tsx +++ b/src/app/pages/Rewards/achievements/index.tsx @@ -13,7 +13,7 @@ export const Achievements = memo(() => ( 'bg-gray-100 rounded-2xl flex flex-col justify-center items-center text-center gap-1', 'text-sm leading-tight text-gray-500 font-medium' )} - style={{ padding: '50px 0' }} + style={{ height: '8.625rem' }} >

🚧

diff --git a/src/app/pages/Rewards/active-features/feature-item.tsx b/src/app/pages/Rewards/active-features/feature-item.tsx index 910c3afd1c..e54cc4dece 100644 --- a/src/app/pages/Rewards/active-features/feature-item.tsx +++ b/src/app/pages/Rewards/active-features/feature-item.tsx @@ -2,7 +2,7 @@ import React, { memo, ReactNode, useCallback } from 'react'; import clsx from 'clsx'; -import { Button } from 'app/atoms'; +import { AnalyticsEventCategory, setTestID, useAnalytics } from 'lib/analytics'; import { T } from 'lib/i18n'; import { RewardsTooltip } from '../tooltip'; @@ -19,11 +19,18 @@ interface FeatureItemProps { description: ReactNode | ReactNode[]; tooltip: string; buttonTestID?: string; + settingsCheckboxTestID?: string; } export const FeatureItem = memo( - ({ Icon, enabled, setEnabled, name, description, tooltip, buttonTestID }) => { - const toggle = useCallback(() => setEnabled(!enabled), [enabled, setEnabled]); + ({ Icon, enabled, setEnabled, name, description, tooltip, buttonTestID, settingsCheckboxTestID }) => { + const { trackEvent } = useAnalytics(); + const toggle = useCallback(() => { + if (settingsCheckboxTestID) { + trackEvent(settingsCheckboxTestID, AnalyticsEventCategory.CheckboxChange, { toChecked: !enabled }); + } + setEnabled(!enabled); + }, [enabled, setEnabled, settingsCheckboxTestID, trackEvent]); const StatusIcon = enabled ? EnabledIcon : DisabledIcon; return ( @@ -52,17 +59,17 @@ export const FeatureItem = memo( {description}

- + ); } diff --git a/src/app/pages/Rewards/index.tsx b/src/app/pages/Rewards/index.tsx index e60a9add13..45fe6a49a3 100644 --- a/src/app/pages/Rewards/index.tsx +++ b/src/app/pages/Rewards/index.tsx @@ -1,25 +1,79 @@ -import React from 'react'; +import React, { memo, useCallback, useEffect, useRef } from 'react'; -import { capitalize } from 'lodash'; +import { capitalize, range } from 'lodash'; +import { useDispatch } from 'react-redux'; -import { PageTitle } from 'app/atoms'; +import { Alert, PageTitle } from 'app/atoms'; import PageLayout from 'app/layouts/PageLayout'; -import { t } from 'lib/i18n'; +import { loadManyMonthsRewardsActions, loadTodayRewardsActions } from 'app/store/rewards/actions'; +import { useRpForMonthsErrorSelector, useRpForTodayErrorSelector } from 'app/store/rewards/selectors'; +import { toMonthYearIndex } from 'lib/apis/ads-api'; +import { T, t } from 'lib/i18n'; +import { useAccountPkh } from 'lib/temple/front'; +import { useInterval } from 'lib/ui/hooks'; +import { ONE_DAY_MS, ONE_HOUR_MS } from 'lib/utils/numbers'; import { Achievements } from './achievements'; import { ActiveFeatures } from './active-features'; import { LifetimeEarnings } from './lifetime-earnings'; import { RecentEarnings } from './recent-earnings'; -export const RewardsPage = () => ( - } title={capitalize(t('rewards'))} />}> -
-
- - - - +export const RewardsPage = memo(() => { + const dispatch = useDispatch(); + const accountPkh = useAccountPkh(); + const dailyIntervalRef = useRef(null); + const midnightTimeoutRef = useRef(null); + const rpForTodayError = useRpForTodayErrorSelector(accountPkh); + const rpForMonthsError = useRpForMonthsErrorSelector(accountPkh); + + const updateRecentEarnings = useCallback(() => { + dispatch(loadTodayRewardsActions.submit({ account: accountPkh })); + dispatch( + loadManyMonthsRewardsActions.submit({ account: accountPkh, monthYearIndexes: [toMonthYearIndex(new Date())] }) + ); + }, [accountPkh, dispatch]); + + useInterval(updateRecentEarnings, ONE_HOUR_MS, [updateRecentEarnings], false); + + useEffect(() => { + const currentMonthYearIndex = toMonthYearIndex(new Date()); + dispatch(loadTodayRewardsActions.submit({ account: accountPkh })); + dispatch( + loadManyMonthsRewardsActions.submit({ + account: accountPkh, + monthYearIndexes: range(0, 4).map(i => currentMonthYearIndex - i) + }) + ); + + const tomorrowDate = new Date(); + tomorrowDate.setDate(tomorrowDate.getDate() + 1); + tomorrowDate.setHours(0, 0, 0, 0); + midnightTimeoutRef.current = setTimeout(() => { + updateRecentEarnings(); + dailyIntervalRef.current = setInterval(() => updateRecentEarnings(), ONE_DAY_MS); + }, tomorrowDate.getTime() - Date.now()); + + return () => { + const dailyInterval = dailyIntervalRef.current; + const midnightTimeout = midnightTimeoutRef.current; + dailyInterval !== null && clearInterval(dailyInterval); + midnightTimeout !== null && clearTimeout(midnightTimeout); + }; + }, [accountPkh, dispatch, updateRecentEarnings]); + + return ( + } title={capitalize(t('rewards'))} />}> +
+
+ {(rpForTodayError || rpForMonthsError) && ( + } autoFocus /> + )} + + + + +
-
- -); + + ); +}); diff --git a/src/app/pages/Rewards/lifetime-earnings/index.tsx b/src/app/pages/Rewards/lifetime-earnings/index.tsx index 98e86b0253..f7be000efb 100644 --- a/src/app/pages/Rewards/lifetime-earnings/index.tsx +++ b/src/app/pages/Rewards/lifetime-earnings/index.tsx @@ -1,41 +1,134 @@ -import React, { memo, useCallback } from 'react'; +import React, { memo, useCallback, useMemo } from 'react'; -import { Button } from 'app/atoms'; +import clsx from 'clsx'; +import { range } from 'lodash'; +import { useDispatch } from 'react-redux'; + +import { Button, Spinner } from 'app/atoms'; import { ReactComponent as TriangleDownIcon } from 'app/icons/triangle-down.svg'; +import { loadManyMonthsRewardsActions } from 'app/store/rewards/actions'; +import { + useFirstActivityDateSelector, + useEarliestLoadedMonthYearIndex, + useRpForMonthsLoadingSelector, + useLifetimeEarnings, + useRpForMonthsErrorSelector +} from 'app/store/rewards/selectors'; +import { parseMonthYearIndex, RpStatsResponse, toMonthYearIndex } from 'lib/apis/ads-api'; import { T, t } from 'lib/i18n'; +import { useAccountPkh } from 'lib/temple/front'; import { Section } from '../section'; +import { RewardsPageSelectors } from '../selectors'; import { formatRpAmount, getMonthName } from '../utils'; -const mockData = [ - { date: new Date(2024, 9, 1), value: 11257 }, - { date: new Date(2024, 8, 1), value: 1024 }, - { date: new Date(2024, 7, 1), value: 14157 } -]; +// August 2024 +const firstMonthWithCompleteStatsIndex = toMonthYearIndex(7, 2024); export const LifetimeEarnings = memo(() => { - const loadMore = useCallback(() => console.log('TODO: Load more'), []); + const dispatch = useDispatch(); + const accountPkh = useAccountPkh(); + const earliestLoadedMonthYearIndex = useEarliestLoadedMonthYearIndex(accountPkh); + const rpForMonthsLoading = useRpForMonthsLoadingSelector(accountPkh); + const rpForMonthsError = useRpForMonthsErrorSelector(accountPkh); + const lifetimeEarnings = useLifetimeEarnings(accountPkh, new Date()); + const firstActivityDate = useFirstActivityDateSelector(accountPkh); + const failedToLoadAnyData = rpForMonthsError && lifetimeEarnings.length === 0; + + const earliestMonthYearIndexToLoad = useMemo(() => { + if (failedToLoadAnyData) { + return firstMonthWithCompleteStatsIndex; + } + + return firstActivityDate + ? Math.max(toMonthYearIndex(new Date(firstActivityDate)), firstMonthWithCompleteStatsIndex) + : toMonthYearIndex(new Date()); + }, [failedToLoadAnyData, firstActivityDate]); + + const loadMore = useCallback(() => { + dispatch( + loadManyMonthsRewardsActions.submit({ + account: accountPkh, + monthYearIndexes: range(1, 4) + .map(i => (earliestLoadedMonthYearIndex ?? toMonthYearIndex(new Date()) + 1) - i) + .filter(monthYearIndex => monthYearIndex >= earliestMonthYearIndexToLoad) + }) + ); + }, [accountPkh, dispatch, earliestLoadedMonthYearIndex, earliestMonthYearIndexToLoad]); + + const showLoadMoreButton = useMemo( + () => + !rpForMonthsLoading && + ((firstActivityDate && earliestMonthYearIndexToLoad < (earliestLoadedMonthYearIndex ?? 0)) || + failedToLoadAnyData), + [ + rpForMonthsLoading, + firstActivityDate, + earliestMonthYearIndexToLoad, + earliestLoadedMonthYearIndex, + failedToLoadAnyData + ] + ); return (
- {mockData.map(({ date, value }) => ( + {lifetimeEarnings.length === 0 && !rpForMonthsLoading && !rpForMonthsError && (
- {getMonthName(date)} - {formatRpAmount(value)} RP +

+ +

+ )} + + {lifetimeEarnings.length === 0 && rpForMonthsLoading && ( +
+ +
+ )} + + {lifetimeEarnings.length === 0 && + rpForMonthsError && + range(1, 4).map(i => )} + + {lifetimeEarnings.map(([monthYearIndex, data]) => ( + ))} - + {showLoadMoreButton && ( + + )} +
); }); + +interface HistoryEntryProps { + monthYearIndex: number; + data?: RpStatsResponse; +} + +const HistoryEntry = memo(({ monthYearIndex, data }) => ( +
+ {getMonthName(parseMonthYearIndex(monthYearIndex))} + + {data ? `${formatRpAmount(data.impressionsCount + data.referralsClicksCount)} RP` : '---'} + +
+)); diff --git a/src/app/pages/Rewards/recent-earnings/index.tsx b/src/app/pages/Rewards/recent-earnings/index.tsx index aafd928c43..4814cc1645 100644 --- a/src/app/pages/Rewards/recent-earnings/index.tsx +++ b/src/app/pages/Rewards/recent-earnings/index.tsx @@ -1,6 +1,14 @@ import React, { memo } from 'react'; +import { + useRpForMonthSelector, + useRpForMonthsErrorSelector, + useRpForTodayErrorSelector, + useRpForTodaySelector +} from 'app/store/rewards/selectors'; +import { toMonthYearIndex } from 'lib/apis/ads-api'; import { t, T } from 'lib/i18n'; +import { useAccountPkh } from 'lib/temple/front'; import { Section } from '../section'; import { RewardsPageSelectors } from '../selectors'; @@ -8,29 +16,35 @@ import { getMonthName } from '../utils'; import { StatsCard } from './stats-card'; -export const RecentEarnings = memo(() => ( -
} - tooltipText={t('earningsInfoTooltip')} - tooltipTriggerTestID={RewardsPageSelectors.earningsTooltipTrigger} - > -
- } - rpCount={244} - adsCount={2023} - linksCount={323} - background="golden" - testID={RewardsPageSelectors.todayStatsCard} - /> - -
-
-)); +export const RecentEarnings = memo(() => { + const accountPkh = useAccountPkh(); + const rpForToday = useRpForTodaySelector(accountPkh); + const rpForTodayError = useRpForTodayErrorSelector(accountPkh); + const rpForMonth = useRpForMonthSelector(accountPkh, toMonthYearIndex(new Date())); + const rpForMonthsError = useRpForMonthsErrorSelector(accountPkh); + + return ( +
} + tooltipText={t('earningsInfoTooltip')} + tooltipTriggerTestID={RewardsPageSelectors.earningsTooltipTrigger} + > +
+ } + data={rpForToday} + error={rpForTodayError} + background="golden" + testID={RewardsPageSelectors.todayStatsCard} + /> + +
+
+ ); +}); diff --git a/src/app/pages/Rewards/recent-earnings/stats-card.tsx b/src/app/pages/Rewards/recent-earnings/stats-card.tsx index 1c083712e6..26e9a9f2b8 100644 --- a/src/app/pages/Rewards/recent-earnings/stats-card.tsx +++ b/src/app/pages/Rewards/recent-earnings/stats-card.tsx @@ -2,7 +2,9 @@ import React, { memo, ReactNode } from 'react'; import clsx from 'clsx'; +import { Spinner } from 'app/atoms'; import { setTestID } from 'lib/analytics'; +import { RpStatsResponse } from 'lib/apis/ads-api'; import { T } from 'lib/i18n'; import { formatRpAmount } from '../utils'; @@ -11,35 +13,48 @@ import styles from './recent-earnings.module.css'; interface StatsCardProps { periodName: ReactNode | ReactNode[]; - rpCount: number; - adsCount: number; - linksCount: number; + data?: RpStatsResponse; + error?: string; background: 'golden' | 'bluish'; testID?: string; } -export const StatsCard = memo(({ periodName, rpCount, adsCount, linksCount, background, testID }) => ( -
-

{periodName}

+export const StatsCard = memo(({ periodName, data, error, background, testID }) => { + const isLoading = !data && !error; -

{formatRpAmount(rpCount)} RP

+ return ( +
+ {isLoading ? ( + + ) : ( + <> +

{periodName}

-
- } value={adsCount} /> - } value={linksCount} /> +

+ {data ? formatRpAmount(data.impressionsCount + data.referralsClicksCount) : '---'} RP +

+ +
+ } value={data?.impressionsCount} /> + } value={data?.referralsClicksCount} /> +
+ + )}
-
-)); + ); +}); interface StatsCardItemProps { title: JSX.Element; - value: number; + value?: number; } const StatsCardItem = memo(({ title, value }) => ( @@ -50,6 +65,6 @@ const StatsCardItem = memo(({ title, value }) => ( )} > {title} - {formatRpAmount(value)} + {typeof value === 'number' ? formatRpAmount(value) : '---'}
)); diff --git a/src/app/store/rewards/actions.ts b/src/app/store/rewards/actions.ts new file mode 100644 index 0000000000..69eb68df33 --- /dev/null +++ b/src/app/store/rewards/actions.ts @@ -0,0 +1,22 @@ +import { RpStatsResponse } from 'lib/apis/ads-api'; +import { createActions } from 'lib/store'; + +interface LoadRewardsInput { + account: string; +} + +interface LoadRewardsErrorPayload extends LoadRewardsInput { + error: string; +} + +export const loadTodayRewardsActions = createActions< + LoadRewardsInput, + LoadRewardsInput & { value: RpStatsResponse }, + LoadRewardsErrorPayload +>('rewards/LOAD_TODAY_REWARDS'); + +export const loadManyMonthsRewardsActions = createActions< + LoadRewardsInput & { monthYearIndexes: number[] }, + LoadRewardsInput & { values: StringRecord; firstActivityDate: string | null }, + LoadRewardsErrorPayload +>('rewards/LOAD_MANY_MONTHS_REWARDS'); diff --git a/src/app/store/rewards/epics.ts b/src/app/store/rewards/epics.ts new file mode 100644 index 0000000000..e0812295d8 --- /dev/null +++ b/src/app/store/rewards/epics.ts @@ -0,0 +1,44 @@ +import { combineEpics, Epic } from 'redux-observable'; +import { catchError, from, map, mergeMap, of, switchMap } from 'rxjs'; +import { ofType } from 'ts-action-operators'; + +import { fetchRpForMonth, fetchRpForToday, RpStatsResponse } from 'lib/apis/ads-api'; + +import { loadManyMonthsRewardsActions, loadTodayRewardsActions } from './actions'; + +const loadTodayRewardsEpic: Epic = action$ => + action$.pipe( + ofType(loadTodayRewardsActions.submit), + switchMap(({ payload }) => + from(fetchRpForToday(payload.account)).pipe( + map(value => loadTodayRewardsActions.success({ ...payload, value })), + catchError(error => of(loadTodayRewardsActions.fail({ ...payload, error: error.message }))) + ) + ) + ); + +const loadManyMonthsRewardsEpic: Epic = action$ => + action$.pipe( + ofType(loadManyMonthsRewardsActions.submit), + mergeMap(({ payload }) => { + const { account, monthYearIndexes } = payload; + + return from(Promise.all(monthYearIndexes.map(index => fetchRpForMonth(account, index)))).pipe( + map(values => + loadManyMonthsRewardsActions.success({ + ...payload, + firstActivityDate: values[0].firstActivityDate, + values: Object.fromEntries( + values.map(({ firstActivityDate, ...value }, i): [string, RpStatsResponse] => [ + String(monthYearIndexes[i]), + value + ]) + ) + }) + ), + catchError(error => of(loadManyMonthsRewardsActions.fail({ ...payload, error: error.message }))) + ); + }) + ); + +export const rewardsEpics = combineEpics(loadTodayRewardsEpic, loadManyMonthsRewardsEpic); diff --git a/src/app/store/rewards/reducers.ts b/src/app/store/rewards/reducers.ts new file mode 100644 index 0000000000..92046b7647 --- /dev/null +++ b/src/app/store/rewards/reducers.ts @@ -0,0 +1,35 @@ +import { createReducer } from '@reduxjs/toolkit'; + +import { createEntity } from 'lib/store'; + +import { loadManyMonthsRewardsActions, loadTodayRewardsActions } from './actions'; +import { rewardsInitialState, RewardsState } from './state'; + +export const rewardsReducer = createReducer(rewardsInitialState, builder => { + builder.addCase(loadTodayRewardsActions.submit, (state, { payload }) => { + const { account } = payload; + state.rpForToday[account] = createEntity(state.rpForToday[account]?.data, true); + }); + builder.addCase(loadTodayRewardsActions.success, (state, { payload }) => { + const { account, value } = payload; + state.rpForToday[account] = createEntity(value); + }); + builder.addCase(loadTodayRewardsActions.fail, (state, { payload }) => { + const { account, error } = payload; + state.rpForToday[account] = createEntity(state.rpForToday[account]?.data, false, error); + }); + + builder.addCase(loadManyMonthsRewardsActions.submit, (state, { payload }) => { + const { account } = payload; + state.rpForMonths[account] = createEntity(state.rpForMonths[account]?.data, true); + }); + builder.addCase(loadManyMonthsRewardsActions.success, (state, { payload }) => { + const { account, values, firstActivityDate } = payload; + state.rpForMonths[account] = createEntity(Object.assign({}, state.rpForMonths[account]?.data, values)); + state.firstActivityDates[account] = firstActivityDate; + }); + builder.addCase(loadManyMonthsRewardsActions.fail, (state, { payload }) => { + const { account, error } = payload; + state.rpForMonths[account] = createEntity(state.rpForMonths[account]?.data, false, error); + }); +}); diff --git a/src/app/store/rewards/selectors.ts b/src/app/store/rewards/selectors.ts new file mode 100644 index 0000000000..48445236b7 --- /dev/null +++ b/src/app/store/rewards/selectors.ts @@ -0,0 +1,47 @@ +import { useMemo } from 'react'; + +import { RpStatsResponse, toMonthYearIndex } from 'lib/apis/ads-api'; + +import { useSelector } from '../index'; + +export const useRpForTodaySelector = (accountPkh: string): RpStatsResponse | undefined => + useSelector(({ rewards }) => rewards.rpForToday[accountPkh]?.data); + +export const useRpForTodayErrorSelector = (accountPkh: string) => + useSelector(({ rewards }) => rewards.rpForToday[accountPkh]?.error); + +const useRpForMonthsSelector = (accountPkh: string) => + useSelector(({ rewards }) => rewards.rpForMonths[accountPkh]?.data ?? {}); + +export const useRpForMonthSelector = (accountPkh: string, monthYearIndex: number): RpStatsResponse | undefined => + useSelector(({ rewards }) => rewards.rpForMonths[accountPkh]?.data?.[monthYearIndex]); + +export const useRpForMonthsLoadingSelector = (accountPkh: string) => + useSelector(({ rewards }) => rewards.rpForMonths[accountPkh]?.isLoading ?? true); + +export const useRpForMonthsErrorSelector = (accountPkh: string) => + useSelector(({ rewards }) => rewards.rpForMonths[accountPkh]?.error); + +export const useEarliestLoadedMonthYearIndex = (accountPkh: string) => { + const rpForMonths = useRpForMonthsSelector(accountPkh); + + return useMemo(() => { + const rawValue = Object.keys(rpForMonths).sort().shift(); + + return rawValue ? parseInt(rawValue) : undefined; + }, [rpForMonths]); +}; + +export const useLifetimeEarnings = (accountPkh: string, now: Date) => { + const rpForMonths = useRpForMonthsSelector(accountPkh); + + return useMemo(() => { + return Object.entries(rpForMonths) + .map(([rawMonthYearIndex, value]): [number, RpStatsResponse] => [parseInt(rawMonthYearIndex), value]) + .filter(([monthYearIndex]) => monthYearIndex !== toMonthYearIndex(now)) + .sort(([a], [b]) => b - a); + }, [now, rpForMonths]); +}; + +export const useFirstActivityDateSelector = (accountPkh: string) => + useSelector(({ rewards }) => rewards.firstActivityDates[accountPkh] ?? null); diff --git a/src/app/store/rewards/state.mock.ts b/src/app/store/rewards/state.mock.ts new file mode 100644 index 0000000000..9ef9902e33 --- /dev/null +++ b/src/app/store/rewards/state.mock.ts @@ -0,0 +1,7 @@ +import { RewardsState } from './state'; + +export const mockRewardsState: RewardsState = { + rpForToday: {}, + rpForMonths: {}, + firstActivityDates: {} +}; diff --git a/src/app/store/rewards/state.ts b/src/app/store/rewards/state.ts new file mode 100644 index 0000000000..6f6d166877 --- /dev/null +++ b/src/app/store/rewards/state.ts @@ -0,0 +1,14 @@ +import { RpStatsResponse } from 'lib/apis/ads-api'; +import { LoadableEntityState } from 'lib/store'; + +export interface RewardsState { + rpForToday: StringRecord>; + rpForMonths: StringRecord>>; + firstActivityDates: StringRecord; +} + +export const rewardsInitialState: RewardsState = { + rpForToday: {}, + rpForMonths: {}, + firstActivityDates: {} +}; diff --git a/src/app/store/root-state.epics.ts b/src/app/store/root-state.epics.ts index 48476c31a3..c7472d5fbb 100644 --- a/src/app/store/root-state.epics.ts +++ b/src/app/store/root-state.epics.ts @@ -13,6 +13,7 @@ import { collectiblesEpics } from './collectibles/epics'; import { collectiblesMetadataEpics } from './collectibles-metadata/epics'; import { currencyEpics } from './currency/epics'; import { partnersPromotionEpics } from './partners-promotion/epics'; +import { rewardsEpics } from './rewards/epics'; import type { RootState } from './root-state.type'; import { swapEpics } from './swap/epics'; import { tokensMetadataEpics } from './tokens-metadata/epics'; @@ -29,7 +30,8 @@ const allEpics = combineEpics( collectiblesMetadataEpics, abTestingEpics, buyWithCreditCardEpics, - collectiblesEpics + collectiblesEpics, + rewardsEpics ); export const epicMiddleware = createEpicMiddleware(); diff --git a/src/app/store/root-state.mock.ts b/src/app/store/root-state.mock.ts index 460493a37c..e803b12a2e 100644 --- a/src/app/store/root-state.mock.ts +++ b/src/app/store/root-state.mock.ts @@ -11,6 +11,7 @@ import { mockCurrencyState } from './currency/state.mock'; import { mockDAppsState } from './d-apps/state.mock'; import { mockNewsletterState } from './newsletter/newsletter-state.mock'; import { mockPartnersPromotionState } from './partners-promotion/state.mock'; +import { mockRewardsState } from './rewards/state.mock'; import type { RootState } from './root-state.type'; import { mockSettingsState } from './settings/state.mock'; import { mockSwapState } from './swap/state.mock'; @@ -32,5 +33,6 @@ export const mockRootState: RootState = { abTesting: mockABTestingState, buyWithCreditCard: mockBuyWithCreditCardState, collectibles: mockCollectiblesState, - newsletter: mockNewsletterState + newsletter: mockNewsletterState, + rewards: mockRewardsState }; diff --git a/src/app/store/root-state.reducer.ts b/src/app/store/root-state.reducer.ts index 24f334ebfe..d64539ead8 100644 --- a/src/app/store/root-state.reducer.ts +++ b/src/app/store/root-state.reducer.ts @@ -13,6 +13,7 @@ import { currencyReducer } from './currency/reducers'; import { dAppsReducer } from './d-apps/reducers'; import { newsletterReducers } from './newsletter/newsletter-reducers'; import { partnersPromotionPersistedReducer } from './partners-promotion/reducers'; +import { rewardsReducer } from './rewards/reducers'; import { settingsReducer } from './settings/reducers'; import { swapPersistedReducer } from './swap/reducers'; import { tokensMetadataReducer } from './tokens-metadata/reducers'; @@ -32,7 +33,8 @@ const rootStateReducersMap = { abTesting: abTestingReducer, buyWithCreditCard: buyWithCreditCardReducer, collectibles: collectiblesPersistedReducer, - newsletter: newsletterReducers + newsletter: newsletterReducers, + rewards: rewardsReducer }; export const rootReducer = combineReducers(rootStateReducersMap); diff --git a/src/lib/apis/ads-api.ts b/src/lib/apis/ads-api.ts index 5587abf5fb..f8fedc01b9 100644 --- a/src/lib/apis/ads-api.ts +++ b/src/lib/apis/ads-api.ts @@ -2,6 +2,8 @@ import axios from 'axios'; import { APP_VERSION, EnvVars } from 'lib/env'; +import { withAxiosDataExtract } from './utils'; + const axiosClient = axios.create({ baseURL: EnvVars.TEMPLE_ADS_API_URL, adapter: 'fetch' @@ -81,22 +83,58 @@ export interface ReferralsRulesResponse { redirectUrl?: string; } -export async function fetchReferralsRules() { - const res = await axiosClient.get('/takeads/referrals/rules'); +export const fetchReferralsRules = withAxiosDataExtract(() => + axiosClient.get('/takeads/referrals/rules') +); + +export const fetchReferralsAffiliateLinks = withAxiosDataExtract((links: string[]) => + axiosClient.post('/takeads/referrals/affiliate-links', links).catch(err => { + throw err; + }) +); + +export interface RpStatsResponse { + impressionsCount: number; + referralsClicksCount: number; +} - return res.data; +interface RpForMonthResponse extends RpStatsResponse { + firstActivityDate: string | null; } -export async function fetchReferralsAffiliateLinks(links: string[]) { - const res = await axiosClient - .post('/takeads/referrals/affiliate-links', links) - .catch(err => { - throw err; - }); +export const parseMonthYearIndex = (index: number) => { + const monthIndex = index % 12; + const year = Math.floor(index / 12); - return res.data; + return new Date(year, monthIndex); +}; + +export function toMonthYearIndex(monthIndex: number, year: number): number; +export function toMonthYearIndex(date: Date): number; +export function toMonthYearIndex(...args: [number, number] | [Date]) { + let monthIndex: number; + let year: number; + if (args.length === 2) { + [monthIndex, year] = args; + } else { + const date = args[0]; + monthIndex = date.getMonth(); + year = date.getFullYear(); + } + + return monthIndex + year * 12; } +export const fetchRpForToday = withAxiosDataExtract((accountPkh: string) => + axiosClient.get('/rp/today', { params: { accountPkh, tzOffset: new Date().getTimezoneOffset() } }) +); + +export const fetchRpForMonth = withAxiosDataExtract((accountPkh: string, monthYearIndex: number) => + axiosClient.get('/rp/month', { + params: { accountPkh, monthYearIndex, tzOffset: new Date().getTimezoneOffset() } + }) +); + interface TekeadsAffiliateResponse { data: AffiliateLink[]; } diff --git a/src/lib/apis/utils.ts b/src/lib/apis/utils.ts new file mode 100644 index 0000000000..3cbe7adad5 --- /dev/null +++ b/src/lib/apis/utils.ts @@ -0,0 +1,9 @@ +import { AxiosResponse } from 'axios'; + +export const withAxiosDataExtract = + (fn: (...args: A) => Promise>) => + async (...args: A) => { + const response = await fn(...args); + + return response.data; + }; diff --git a/src/lib/icons/assets/bell-read.svg b/src/lib/icons/assets/bell-read.svg new file mode 100644 index 0000000000..0a10221029 --- /dev/null +++ b/src/lib/icons/assets/bell-read.svg @@ -0,0 +1,16 @@ + + + + diff --git a/src/lib/icons/assets/bell-unread.svg b/src/lib/icons/assets/bell-unread.svg new file mode 100644 index 0000000000..650e5bd518 --- /dev/null +++ b/src/lib/icons/assets/bell-unread.svg @@ -0,0 +1,20 @@ + + + + + diff --git a/src/lib/icons/index.ts b/src/lib/icons/index.ts index c20e84d045..030216be90 100644 --- a/src/lib/icons/index.ts +++ b/src/lib/icons/index.ts @@ -4,6 +4,8 @@ export { TOKEN_FALLBACK_ICON_SRC, TOKENS_ICONS_SRC } from './tokens'; export { ReactComponent as AlertTriangleIcon } from './assets/alert-triangle.svg'; export { ReactComponent as ArrowRightIcon } from './assets/arrow-right.svg'; export { ReactComponent as BellIcon } from './assets/bell.svg'; +export { ReactComponent as BellReadIcon } from './assets/bell-read.svg'; +export { ReactComponent as BellUnreadIcon } from './assets/bell-unread.svg'; export { ReactComponent as NewsIcon } from './assets/news.svg'; export { ReactComponent as NoResultIcon } from './assets/no-result.svg'; export { ReactComponent as NotificationDotIcon } from './assets/notification-dot.svg'; diff --git a/src/lib/notifications/components/bell.tsx b/src/lib/notifications/components/bell.tsx index 19c91fb946..1df93d0f81 100644 --- a/src/lib/notifications/components/bell.tsx +++ b/src/lib/notifications/components/bell.tsx @@ -1,14 +1,14 @@ import React from 'react'; import { HomeSelectors } from 'app/pages/Home/Home.selectors'; -import { BellIcon, NotificationDotIcon } from 'lib/icons'; +import { BellReadIcon, BellUnreadIcon } from 'lib/icons'; import { Link } from 'lib/woozie'; import { useNewNotificationsAmountSelector } from '../store/selectors'; export const NotificationsBell = () => { const newNotificationsAmount = useNewNotificationsAmountSelector(); - const isNewNotificationsAvailable = newNotificationsAmount > 0; + const BellIcon = newNotificationsAmount > 0 ? BellUnreadIcon : BellReadIcon; return ( { testID={HomeSelectors.notificationIconButton} testIDProperties={{ newNotificationsAmount }} > - {isNewNotificationsAvailable && ( - - )} - - + ); }; diff --git a/src/lib/utils/numbers.ts b/src/lib/utils/numbers.ts index 3ee405537e..341b1b3bef 100644 --- a/src/lib/utils/numbers.ts +++ b/src/lib/utils/numbers.ts @@ -10,6 +10,8 @@ const BILLION = 1_000_000_000; export const ONE_HOUR_MS = 3600_000; +export const ONE_DAY_MS = 24 * ONE_HOUR_MS; + export const ONE_MINUTE_S = 60; // TODO: Use this formatter for inputs in a swap route view diff --git a/tailwind.config.js b/tailwind.config.js index 3dc7a1520b..d2d7fd28dc 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -599,6 +599,7 @@ module.exports = { minWidth: theme => theme('width'), maxWidth: (theme, { breakpoints }) => ({ ...theme('width'), + 30: '7.5rem', xs: '20rem', sm: '24rem', md: '28rem', From 673763c1c6c68594898d0d864c183ed5f8834525 Mon Sep 17 00:00:00 2001 From: Inokentii Mazhara Date: Fri, 13 Dec 2024 11:49:48 +0200 Subject: [PATCH 3/6] TW-1599 Remove an unused property --- src/app/layouts/PageLayout.tsx | 11 +---------- src/app/pages/Home/Home.tsx | 1 - 2 files changed, 1 insertion(+), 11 deletions(-) diff --git a/src/app/layouts/PageLayout.tsx b/src/app/layouts/PageLayout.tsx index 551bcacab0..c3e81736d5 100644 --- a/src/app/layouts/PageLayout.tsx +++ b/src/app/layouts/PageLayout.tsx @@ -116,7 +116,6 @@ type ToolbarProps = { hasBackAction?: boolean; step?: number; setStep?: (step: number) => void; - adShow?: boolean; skip?: boolean; attention?: boolean; }; @@ -126,15 +125,7 @@ export let ToolbarElement: HTMLDivElement | null = null; /** Defined for reference in code to highlight relation between multiple sticky elements & their sizes */ export const TOOLBAR_IS_STICKY = true; -const Toolbar: FC = ({ - pageTitle, - hasBackAction = true, - step, - setStep, - adShow = false, - skip, - attention -}) => { +const Toolbar: FC = ({ pageTitle, hasBackAction = true, step, setStep, skip, attention }) => { const { historyPosition, pathname } = useLocation(); const { fullPage } = useAppEnv(); const { setOnboardingCompleted } = useOnboardingProgress(); diff --git a/src/app/pages/Home/Home.tsx b/src/app/pages/Home/Home.tsx index 5f0ef7616e..d324909b73 100644 --- a/src/app/pages/Home/Home.tsx +++ b/src/app/pages/Home/Home.tsx @@ -61,7 +61,6 @@ const Home = memo(({ assetSlug }) => { ) : null } attention={true} - adShow > {fullPage && (
From 7730a79d409bf5ee6b90c62c0ba2c561c7fbeaf4 Mon Sep 17 00:00:00 2001 From: Inokentii Mazhara Date: Mon, 16 Dec 2024 19:48:22 +0200 Subject: [PATCH 4/6] TW-1599 Refactoring according to comments --- src/app/pages/Rewards/index.tsx | 29 ++++++++++++++----- .../pages/Rewards/lifetime-earnings/index.tsx | 20 ++++++++----- .../pages/Rewards/recent-earnings/index.tsx | 10 +++++-- src/app/store/rewards/epics.ts | 2 +- 4 files changed, 41 insertions(+), 20 deletions(-) diff --git a/src/app/pages/Rewards/index.tsx b/src/app/pages/Rewards/index.tsx index 45fe6a49a3..877118de62 100644 --- a/src/app/pages/Rewards/index.tsx +++ b/src/app/pages/Rewards/index.tsx @@ -1,4 +1,4 @@ -import React, { memo, useCallback, useEffect, useRef } from 'react'; +import React, { memo, useCallback, useEffect, useRef, useState } from 'react'; import { capitalize, range } from 'lodash'; import { useDispatch } from 'react-redux'; @@ -25,18 +25,31 @@ export const RewardsPage = memo(() => { const midnightTimeoutRef = useRef(null); const rpForTodayError = useRpForTodayErrorSelector(accountPkh); const rpForMonthsError = useRpForMonthsErrorSelector(accountPkh); + const [statsDate, setStatsDate] = useState(() => new Date()); + + const updateStatsDate = useCallback(() => { + const newStatsDate = new Date(); + setStatsDate(newStatsDate); + + return newStatsDate; + }, []); const updateRecentEarnings = useCallback(() => { + const newStatsDate = updateStatsDate(); dispatch(loadTodayRewardsActions.submit({ account: accountPkh })); dispatch( - loadManyMonthsRewardsActions.submit({ account: accountPkh, monthYearIndexes: [toMonthYearIndex(new Date())] }) + loadManyMonthsRewardsActions.submit({ + account: accountPkh, + monthYearIndexes: [toMonthYearIndex(newStatsDate)] + }) ); - }, [accountPkh, dispatch]); + }, [accountPkh, dispatch, updateStatsDate]); useInterval(updateRecentEarnings, ONE_HOUR_MS, [updateRecentEarnings], false); useEffect(() => { - const currentMonthYearIndex = toMonthYearIndex(new Date()); + const newStatsDate = updateStatsDate(); + const currentMonthYearIndex = toMonthYearIndex(newStatsDate); dispatch(loadTodayRewardsActions.submit({ account: accountPkh })); dispatch( loadManyMonthsRewardsActions.submit({ @@ -45,7 +58,7 @@ export const RewardsPage = memo(() => { }) ); - const tomorrowDate = new Date(); + const tomorrowDate = newStatsDate; tomorrowDate.setDate(tomorrowDate.getDate() + 1); tomorrowDate.setHours(0, 0, 0, 0); midnightTimeoutRef.current = setTimeout(() => { @@ -59,7 +72,7 @@ export const RewardsPage = memo(() => { dailyInterval !== null && clearInterval(dailyInterval); midnightTimeout !== null && clearTimeout(midnightTimeout); }; - }, [accountPkh, dispatch, updateRecentEarnings]); + }, [accountPkh, dispatch, updateRecentEarnings, updateStatsDate]); return ( } title={capitalize(t('rewards'))} />}> @@ -68,10 +81,10 @@ export const RewardsPage = memo(() => { {(rpForTodayError || rpForMonthsError) && ( } autoFocus /> )} - + - +
diff --git a/src/app/pages/Rewards/lifetime-earnings/index.tsx b/src/app/pages/Rewards/lifetime-earnings/index.tsx index f7be000efb..e48754a59b 100644 --- a/src/app/pages/Rewards/lifetime-earnings/index.tsx +++ b/src/app/pages/Rewards/lifetime-earnings/index.tsx @@ -22,16 +22,20 @@ import { Section } from '../section'; import { RewardsPageSelectors } from '../selectors'; import { formatRpAmount, getMonthName } from '../utils'; -// August 2024 +/** August 2024 */ const firstMonthWithCompleteStatsIndex = toMonthYearIndex(7, 2024); -export const LifetimeEarnings = memo(() => { +interface Props { + statsDate: Date; +} + +export const LifetimeEarnings = memo(({ statsDate }) => { const dispatch = useDispatch(); const accountPkh = useAccountPkh(); const earliestLoadedMonthYearIndex = useEarliestLoadedMonthYearIndex(accountPkh); const rpForMonthsLoading = useRpForMonthsLoadingSelector(accountPkh); const rpForMonthsError = useRpForMonthsErrorSelector(accountPkh); - const lifetimeEarnings = useLifetimeEarnings(accountPkh, new Date()); + const lifetimeEarnings = useLifetimeEarnings(accountPkh, statsDate); const firstActivityDate = useFirstActivityDateSelector(accountPkh); const failedToLoadAnyData = rpForMonthsError && lifetimeEarnings.length === 0; @@ -42,19 +46,19 @@ export const LifetimeEarnings = memo(() => { return firstActivityDate ? Math.max(toMonthYearIndex(new Date(firstActivityDate)), firstMonthWithCompleteStatsIndex) - : toMonthYearIndex(new Date()); - }, [failedToLoadAnyData, firstActivityDate]); + : toMonthYearIndex(statsDate); + }, [failedToLoadAnyData, firstActivityDate, statsDate]); const loadMore = useCallback(() => { dispatch( loadManyMonthsRewardsActions.submit({ account: accountPkh, monthYearIndexes: range(1, 4) - .map(i => (earliestLoadedMonthYearIndex ?? toMonthYearIndex(new Date()) + 1) - i) + .map(i => (earliestLoadedMonthYearIndex ?? toMonthYearIndex(statsDate) + 1) - i) .filter(monthYearIndex => monthYearIndex >= earliestMonthYearIndexToLoad) }) ); - }, [accountPkh, dispatch, earliestLoadedMonthYearIndex, earliestMonthYearIndexToLoad]); + }, [accountPkh, dispatch, earliestLoadedMonthYearIndex, earliestMonthYearIndexToLoad, statsDate]); const showLoadMoreButton = useMemo( () => @@ -94,7 +98,7 @@ export const LifetimeEarnings = memo(() => { {lifetimeEarnings.length === 0 && rpForMonthsError && - range(1, 4).map(i => )} + range(1, 4).map(i => )} {lifetimeEarnings.map(([monthYearIndex, data]) => ( diff --git a/src/app/pages/Rewards/recent-earnings/index.tsx b/src/app/pages/Rewards/recent-earnings/index.tsx index 4814cc1645..755d575a38 100644 --- a/src/app/pages/Rewards/recent-earnings/index.tsx +++ b/src/app/pages/Rewards/recent-earnings/index.tsx @@ -16,11 +16,15 @@ import { getMonthName } from '../utils'; import { StatsCard } from './stats-card'; -export const RecentEarnings = memo(() => { +interface Props { + statsDate: Date; +} + +export const RecentEarnings = memo(({ statsDate }) => { const accountPkh = useAccountPkh(); const rpForToday = useRpForTodaySelector(accountPkh); const rpForTodayError = useRpForTodayErrorSelector(accountPkh); - const rpForMonth = useRpForMonthSelector(accountPkh, toMonthYearIndex(new Date())); + const rpForMonth = useRpForMonthSelector(accountPkh, toMonthYearIndex(statsDate)); const rpForMonthsError = useRpForMonthsErrorSelector(accountPkh); return ( @@ -38,7 +42,7 @@ export const RecentEarnings = memo(() => { testID={RewardsPageSelectors.todayStatsCard} /> map(values => loadManyMonthsRewardsActions.success({ ...payload, - firstActivityDate: values[0].firstActivityDate, + firstActivityDate: values.at(0)!.firstActivityDate, values: Object.fromEntries( values.map(({ firstActivityDate, ...value }, i): [string, RpStatsResponse] => [ String(monthYearIndexes[i]), From dbdaf9362ef5964143ca7f0d921a917ab3754d9b Mon Sep 17 00:00:00 2001 From: Inokentii Mazhara Date: Thu, 19 Dec 2024 10:24:32 +0200 Subject: [PATCH 5/6] TW-1599 Implement star animation as a webm video --- .../PageLayout/RewardsButton/index.tsx | 61 +++++++----------- .../RewardsButton/star_animation.webm | Bin 0 -> 224818 bytes .../RewardsButton/star_animation_poster.gif | Bin 0 -> 216 bytes .../RewardsButton/star_animation_small.gif | Bin 6885 -> 0 bytes 4 files changed, 25 insertions(+), 36 deletions(-) create mode 100644 src/app/layouts/PageLayout/RewardsButton/star_animation.webm create mode 100644 src/app/layouts/PageLayout/RewardsButton/star_animation_poster.gif delete mode 100644 src/app/layouts/PageLayout/RewardsButton/star_animation_small.gif diff --git a/src/app/layouts/PageLayout/RewardsButton/index.tsx b/src/app/layouts/PageLayout/RewardsButton/index.tsx index c8794a5bc5..ec65efb692 100644 --- a/src/app/layouts/PageLayout/RewardsButton/index.tsx +++ b/src/app/layouts/PageLayout/RewardsButton/index.tsx @@ -1,37 +1,31 @@ import React, { memo, useCallback, useRef, useState } from 'react'; -import clsx from 'clsx'; - import { TestIDProps } from 'lib/analytics'; import { T } from 'lib/i18n'; import { useWillUnmount } from 'lib/ui/hooks/useWillUnmount'; import { Link } from 'lib/woozie'; -import starAnimation from './star_animation_small.gif'; - -const GIF_DURATION = 3000; -const ORIGINAL_IMG_SIZE = 48; +const starAnimationVideo = require('./star_animation.webm'); +const starAnimationPoster = require('./star_animation_poster.gif'); export const RewardsButton = memo(props => { const [isHovered, setIsHovered] = useState(false); - const [loopComplete, setLoopComplete] = useState(false); const loopTimeoutRef = useRef(); - const animationRef = useRef(null); - const canvasRef = useRef(null); + const videoRef = useRef(null); + console.log('oy vey 1', starAnimationVideo); useWillUnmount(() => void (loopTimeoutRef.current !== undefined && clearTimeout(loopTimeoutRef.current))); - const handleAnimationLoad = useCallback(() => { - loopTimeoutRef.current = setTimeout(() => setLoopComplete(true), GIF_DURATION); - const ctx = canvasRef.current!.getContext('2d')!; - ctx.imageSmoothingEnabled = false; - ctx.drawImage(animationRef.current!, 0, 0, ORIGINAL_IMG_SIZE, ORIGINAL_IMG_SIZE); + const handleHover = useCallback(() => { + videoRef.current!.fastSeek(0); + videoRef.current!.play(); + setIsHovered(true); + }, []); + const handleUnhover = useCallback(() => { + videoRef.current!.fastSeek(0); + videoRef.current!.pause(); + setIsHovered(false); }, []); - - const handleHover = useCallback(() => setIsHovered(true), []); - const handleUnhover = useCallback(() => setIsHovered(false), []); - - const isAnimated = isHovered || !loopComplete; return ( (props => { {...props} >
- -
diff --git a/src/app/layouts/PageLayout/RewardsButton/star_animation.webm b/src/app/layouts/PageLayout/RewardsButton/star_animation.webm new file mode 100644 index 0000000000000000000000000000000000000000..a186860e2cd4fb868733c6bf0696803ca920d8ec GIT binary patch literal 224818 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

<3nl!u4C3FHyj1vg>|W! ze)aI*1%j1I9=O%#b^@E_l-LAbEJanoX(e@y_$;UsQ<3bwM(mz2kNd(uaj{v8ASVKS zJPIjaf2IKX6yxhDgU82yJ#Q)%;=GegVHDPMa^v#wCh>bQ`LX;+H-wt6e z;5Nx{`)ndz%`rNGbMPsU93}%5pSq?jMXNlfsZlFw;(2cp8$^7o?sJN_g1qJ%+}rS9 zWj;2;m9pJ%A%4B`F%_<=28)r0gqa+_CzwT*QJCK{LcYMtGY;6S+(ykXV_u~oh4&cU zAoOR2?zw?0V4)M3W&BY04M-N+#nvNmr1z#{zGPeKsGz|KABYlOKQPqWP9)Ce0 zJ?*5u*lD*ddtNvMuZ_CEgbHims*bmfJr0~3w>OvkPRK<%j+>C^$baU$LwIA#PA@QI4rAzCR^q>Cl| zhlQ;osi?K|P?aWa7#H#z!1yP47}+>FWQs$oV1D1mn#tRtr;WhxZ^=|daG(nBMu;V*YidE0OO=P|{B+8pZ;}M zMW~k~_ed0{Pyhe~r6!*N2)}T247hAm%@pOJH?AIkaKiI6zp00JSQ=$0=iWEN?9=sX02dKNa<9K=DXCjFooYjhSO`F^rV2Tp)1X zcH~>XZy;2G3bwwNcdO6R@g`YyuBda&g>X*4APZ3V7ADEJUom2m?w>@@S4rUvC>>B^ z1Ya#104**dR$jA^+S22X>5uPAtK-N^Q>Sc6dIJG-<~-I;-Gn+vm#kkUZ+zAPk2C5F z&iUjzT;-U=qUOVjXE6R{^wcfoq{MoIdT-}FXnZoN@bvyn4^&y-(tdJY%A9jL>}$Mx zj>FU?>_`pblK*oU7ydJi+bzZw{0ZgHR}lt}-L0S@vrGUrU_H-bjxQlp;v(*PEj&z& z@bbE0R>givu_2c`HTv1$x~!|xt>QequYabKO{DemHiSxb7Lpg-8#N9wuPk0I75zx@ zGs*uQ6NC~BauBYkTzjhpQG6bVROWn`c)$!=_f(?EL|@@~2xl!pHjCE@Tx$^NVUQnQ zkB#U7Cxmcon_U9bx3SuNd_ak}tjE5MAo_Lma?hZ8tXBN} zM5O9o45R$%#&tU3QroYWR1~DNUSLknT88!npbfdqN}!Pw;UTlZRQ;g04}F?Ynu*gh zsX%U%__=#IK@y2R2%l6Kkf6oJNo>cktwu*RV{UI*W#aJ#zu7n<>2dl%h+q?m<|1KQ zMms+!7W!n~p8_!VuATk}nBEQWZx-+cQW*9$!A`i}3TJqCItEsYa#9ZH7=KC()+)M9 zL2>1eFIed}z2gC5)llCJk=$V?ALyhON6vTOnL^g#k#|awM&9<_PA7M*RZn(}Pv)CN zI?uE4Gl1x{*iWfdyBmN;FX>2#e>Nd#cr78fg|0ASd(&wy%w+ZBmc{W;Ka9Ft#2kOl ztAfP}EY48|ScY!3e$XHYfbj@V{)?+64-PnDj#=IWacuk3NsXQd7c8_>bW^m?p}W9s zWoj~(V}DsMwx1|^F*;!zDV9k@7`N+W_k>bN*Z)mUbp0_%5G6B*x;56nk~Hm!)Lk$& zz2I(3OV^j8!vIWn>;!3iVavTj2TH_BT#^HZ19Dnl(pi=zV%Bf%b|w;>a7{hj|65tP zwcw)o&)O+Owa6pUlgFI$23UCcV}wj8%D>IK`Z$iB#zI%`F##Lo)J;Ld#`DRrVy?dZ z2$0n2zI~J!mmo31q$ky)M9GT>LZ$*A45h+tW>cyt7*c^$LK&iyW_Te zDL{l}JyE}lxi%HllKbNkB}5%?vTisUNask#NCz6;$L_FMR})hQvy;HOM5cJ|l1pCO z39+4+M5UD0IiaRQjQixZuO)R`%iX8(`gujR5w~(CJ4s;*c_MzD`!1&i(f5SLr!cw% z;d;5-knSP^Z>pCJwm^VES_(T04nkU732WnORJ}JG%DESIz-@A28l6I-NLat>+o|?M zrZH{?+tfdVP^N%0%an+R3KNJZh^vV5^1c4DJ`+l;)I#QhFY=`2&G-wSG5x-ax_+?6 z7uv3Ks0H2jBnJ@NVuGL9%1=uk+L!Q%=^=?l(_EZ9iY#b%p%-oSx&nl%FBXt8vjZ;w;sW{uDXv5fs@Sx;Q>9l~QsU3(1%TcH#Kt zx&h1_u~{BWl+5q?k($s}4^SyV!wggJwEiY%1f$^j_sBYIXd9!pTCf)0ffQ4Jh2JT&izoI%iU z+%KiUS*fJr;V1!xn==0%Ke_!28Q~-B?Ll-D00001q$n2x+)7_!pC8mWuPx*s4a9f_BR)Qc zCEjN>uM`N3|0L>i*Z>>b~(OSg~H)Kz0dd@6Vc?{942NUFB_!5|&t zgjGM5*tw;Vij}^gK>pQ0{Yp;|OhC$bL5hOW*yVk6`hel4| zY7EdXmJVv$D~0M+b0WAs)fS!WMw?|Z!!+OX7dGA|Uj8{PeOSR?V&?tXWs3%S5BNM2 za})kgLiEmOJ5Q8Ng^%+AiRKqMn7G7Bgd!9^z=73%oUI)*BeatH<2dB1NHPA zJ6qR+Pn(&pMIfmxMzIo4BjN`fAKx`mmbMw|G}N{nme@Lh;(+_l)eJk{w8Sqjw&WMzKI+$I&(9X*dYxC>x@2eVrcnBnk-Em4yx2aE3oGh*j^EJM)LT?2prhg*mA5?UHIDv_@$WEU*CrKP$&f$Wo=xvbGWi@% z=|PEwhOTv!j0ge#z8@sLh7+A$`1#fTV<=ozF%SG=p6nL44CLIQC>BJ#V%9#twpGhb zU$(W5?Z`v-D;v1OSJtN%OasufO-hW-a~Yk!RT1e*lo4N_T% z3rc(MwNl><{5$Swt#G9=VuRhuQChSR?RR&hMj?@E&HNOM_9K=rT%e_$hCrN;o449s z#5v{o%Vx+(Jc==B9kg-exRWmKEe-#8(V3SHn^0jep z1l>1sW>s&=JH~|(d7@!L*UGZW@_-pAPKNuVb znNvsD*xDn@(_Je>b$$F~II(mlOrtkd5RDMc(0l|)z>d8zCaB%MuR+RKG>CjfVdIya zc7O;A`e>~uY%k6X`rc1Lbop&x0Uw-r_)b>as`#`=S!{sQhwAV*0s{#!#7cdc`SU|O z9x232ET&gr4k=?8`TML|v4E_`4j%bWS_EVA483*tjGtM0)C#5b*i4FHyo;F&kBa-7 zS}6H#P*G>KIn;g-1O~yrqFrG8Myt{&`@uq9g+P%%rGX@&WK0UfTMeTgosYN%hD?@! zS}=?pG|2@1)cB8zNQy!ah{RG(mn{ykdSzo z%qtUQ2qRaaOaOD)Nc7s-&-59{Rv85KfrR@DWTHq-kgA!Tafha`0hJ26?QPq} zz0udXasF3(isjyAqduwg`hLd#000COdilvAlBk&eLL}^OveRfhuYNZSBiGM9idbkg z2;5>|ub1d~nFC8GvEjrLog_V8+=^{yD0 z&K*ux#0R5G>zqJjqrXzxqNS?k3lfWQ3SH?EQZP!{mZ^Xf$IE1-KvT&&J4{MDmi8-lhO@OeisK0+*x~;^zaKv`|fg zFAwu0IcSnvF_4i&c^gm;3>IK`!bIknlx-9VY*-x>!9aGF8&}OQNLiqv=Ul3jN@<#V zS1Gf#fdY}Isj!-%>dSpv^CNy`1UR;Ik%yIR3bJ>}Vn#JJM2S{6YTaHToF99=4ec{u zlzYgC-%#YW2n>@+LDCwCC(sk4WbXg!KY&vev0*5^qans!30~+d8D-`@>ov;J;KIPw zuz$`WS;=^nHm{inn8fX>B_l!BxXsj}14U2T@+MGFcm{0$UcA%s1=;WJ&N??Qc9G1> zCQ0#?uV*>hEF!jfP{v3kkTBLiT-xyXV4NqM?JHv);;2MzjCPmp7zDGbWVv4st;-mr zw{%ieTC(2crTpceaju31N(!p-^LrhX7mig!Af-Y~B)7e)e$ zL=>kye>vwjH+`KdUNSh0+B+m*9xnMxcs4PCOM_H!EVIt1efV<6XPl~xFq(9hu2@ua zj0mdzmly7dy_MFu2=}b$v`;2@*Ss0}awYn*ZWg+2XWG{Y2Hm_3iKlxKG8J%&#J4(1 zwPBGdZ*)u7EaDF5sLI))S$IRj$=TTKm#VGMP4}w2-%PPUOfBWuIA#sf-_4y9=&q-3 z3n>dU)2TgUrUuIyN9B*XP?{9T3a*=RQ~+BDXQ?p<3KMlP^8wz52g>X63+ihjVac&p zDS(Fr%XAS&+nR{o$(c!B(wmK=ZONAQ{0hsN-O{j;ThIk)2juG^M??7zt@ zynoyn>_~jY26rww$}vp=$O51gwd&pgC@1UQ{mBIxg~&Rz^sPo!xYCvOdL#Om zCC3W}{X8(ruD@2P+}C)&Eso$&Y5YzEYaEWN=PXPW_2c%@eTi_63oxWq{l%gugag-* z1b~-;bmU~_@Azt^Ct&+fPO2le0M>P3af)@tI8kJ=cM$-nv9~8oZsH)Yq@@jn<^_uy z1f=OVo;1^8UyLWe$z`Ypg#PI3Hhqd#hLQ`=f8i>oh@86M{zU9yb>fhkwC-F*7Qm0> z&;&Fx2aKFY!d1Z zM0?yfB~ntbu?N$FMOrC}c2ctR0)flPZ2NcR=k}6CA9~V>D5KD)V-7ajZDK!zL{5_- zN_Qn@!c>&v;IXxF285B`r*HcqJP{DGTn~!SZzn3TEeErmAIXo_=_)S=JW2)L1@BCa zJrf#bi^TepdnrZNPC$X+n-omc!J~fyeM#2OU1O_Tfag5zGHyAku$%}MEDwNND(0T| zA(0@bYv=!V7?UrS9D%V}9nSEkgasYc@(;mw^=cju(C~JV_~hORIpMMZRoPTUJv#(m zaEp0R>=^?W+!icW(UhDOQJ5fKIWxO*m8thDjrn1;2JcjHNF==J8x7WoK`b2;L7Obi zx7s!QXo73mDr(2>$fL&q${Bt}87>~65ad_w!(J^fU%^d(_g=RlkAb4}YBjOER+6Q5 zl2F@lc)yf*IYIr`&39`dRE>|*@VH`qXEIl=hyd_f0Ck~EZKh0W?tuZNOk{=tK$4t9 zO+kPKKzCsLjiEX>rq>tY00`;5wk|mJ000000rnh)*OmYUkq72RYB!8Z?5K(!q<0`# z7kr5O+6tSTNfC^u8w`^TVYq}#+lQ85m!6RPAYxN9u7hf0(xm=rZ?@O&5$BFI7d!;U zZG-6596R4iz+F*TMctVHezr|gEE>ZE-F49A`g(d3o>?usa95r%kbbAQYY50n3VQ`b zgnj^ia*rA^i?&AWDG1S;BIWS_`+VmsQbcZcIGG~9%s9etm^PP#PNkzb*Z-l%`9E4m zwn-|gkce2i^YbviEp_MSVSHOLVX8A9Eynq$k@Al}gel}l^-X=f$3vx9KsZ{3W*?1D zJ;oYSgaJPxX5;-HyhCG|;dcAq%-3sr8?u0%=eTPrx2i~%zve-gJVOcR4doQ#Zud1lP(08J={8BH)% zmR+BC=sYR%mD59~>kgM?=f)e&bsTYt2C}UIU$xOdO*WPT=e~6jH%uX24I}@XKY3{@ z;}=_i9Z=DJfVP!Y;;2~niVSVE#$DcXvS%vWzbugaX&G4A+Ke)x&3It#<}+>If_<$~ zxkGM9e?dFO5CFgc000B4CvcXc_-K5T(}gD!abF}hz?CdacdGY2?G0|8SJ(h+Me zBbCgnw#6$LwC;IBQ22m`p21N}tRYRGA?5KzK`&N_pH%5Ig{rh8CfcL@Sw01H%ErE_ZK2dFuR1zAZ!}2)t?ktgnZS(5* zg5t}syZK5)AymET&2XZYvS*AZ3m5gFUpB&(0*NYuZ{5{Mv^!*NBm_F4=H0upV{v*H zKlN&yufR2)Z6;rKa(6TBzgB-eW!Iw_D!UN$RapB9z4NHWtT>GHWK-*MzxFF-k{W=j zZvM0$haKe?1+Z~9mlPqrmPsKm*Z8DpDhBPz6lfscvb(kHgy?2;qS>l&F$$T7KuG<{G^ord-#pLcSqCiu?0QHMA ziWiUGO7!0^N^sSOI031*YmdJIOBOc{c*epl2FfJDPikN$Is_%nKz>>*h$2^DS)_aU z(uuM;1pb*5e})D`$Lhbb{0hQvT`O%*-iRf?Y#aOO)m-{^l( zo#WPb+n(h?-5f#={s%w8bY8SpL`)7s>ZhiM)fr=Z_5kLjBif1EjM){4SJ4Id1}E=o z;E4f2m=ihGDa65QN$xN0zr`@z;O=uSU|;jpEK$CVL~9O;_JhDOY=q2A*q7r~k)m*I z2VKE1rzi$~Oj)Fq+FyQ->AtSph84-%?~-xBOb4Z{g?zJ>%|FIoKDZN@TNlJ+OfIaf z-B1~dZrgDUIpQrOpCTF5AA|P)T+!;LeGLV^RXe$_hlqR&k!te-@kCk;lu3l1)Sv`x z!P^SY_u*6RQ97~^5M$8aV<<2ZW}Q zP8!yFz~ndRU}9`(`{FDHT2uA)UDDePk@5~c$|5;99Q9S{Ife`qbNq}bHk(B(&;Z&W_BbNE?{3!SK zuV2~wfjcI3AP5KP#6*4F)5>3vVVgo!G zUj7pc$46#g22z%cZ~3LZ!JS{%rA4poBB7U}dTnl#l(I9l0crCrxyGvhx+^t#Pm~>* z0^HG_;=|x|!e^Vw%yV1vZy$J908)S)!}x^MU2qpB0tM88#S^aKIB|CThRIMvy|IAC zzQ7-FP6n-`8gnjMle6`nf@yiw_z}eA2)O>9r*&GfVazC5?yd-K$g77r+Vqd5(9lFZ zzLKsNDsQaBO8kn1}!E!T;c18=l+gBeYDM$ z8Sz4u0*NYZv8wYzy1{pTDpB9SRv-kVgqT!aJJ|+TSJUsX3UhXbGYQb+XwE=(8`1l( zEZY*L!tB}it}H;{>q;(F=eKAxEkCwFzRzTfl8gAAirRhaJ+a{%f3Ge7f4>Sx zQmp#4qUBzFdMN5+_5A6LD4Vj1>%r6top4f}v5NElXs25sX`;j2ADYWWsMg^6r)5Ah zhSd_oVIY;mKcg4icqKGGbGEas@&s6P>?eovh#J}XMa4goa%yP@2N+|zCY_w*_O3sN z61lVxK%yHi&`NK~@YdM**n>Y1dLGI!?p`^;p6Xdq91Wt4o{sysiF_J>GX*EHxeT8-14DNF||CY4D92vvSVz8CRc9o zXC_hF0idSg1n4UTj=Ft9OChuc0hsCJB~sYC2%BVLOoz@RR?p_#D}xE68U?5jA$yk4 znal{uJ#3%JgIf7Z%t#;sOU?FE%eE*_<^#BBI(osZ8C1EuDwN+7YrOnz9d!heDBfdZ z-T4xe8A2RLXm)Amjt!vixNfM2SD-x%ZrR5if)ETvY6Ls1VK8tmTyYRP5Kk%*Wu@8( zhrMQRiv2pDInD?(bpegq#GGScd`}IJK>yk>w?j}T;fH#R;!R9*ib*?{_sb}Ue4%GY z;&qt_(2s2SUlD@06Vs4axWh)ZL}A^&!o?H($22%kv6pSV>=qa%n?xhZW>_0y)?fw% z>X(h3V_7~633^~Z6h4%Pf*u0M0K98FHJU72{1h`*)bG?)aq=@RRbaP?1P~~O%d`@i z2s0IRktX<@$EX3XwU@*QZI-`Ua`vW5i_W|MFnmOvOeuNxK@hlY9wZ$DW!d7VJHcHA zMts`-R1WNMP8(Hd$W5@6g2U*{VK$;SY!!dLV#%an7f}pleecz6eRqRN^v3p=`K%Ob zRU!f3<^g0vciNi8Cn7@9o7}2?_DE8C?aw_=X>yZUNE~^drEI>>t9n7|GW!XsidzYZ7-E-Xhd0H zKM;;!(9eCU7?;xL#~7TCjz`8~tKP?aFe<*!R0YC--5_$0TjMCnlA_x6RH!VU))}R0Y00B!V7Xsg!^SqzpT$cJ# z?ut++C{uUpJuSo%tbz83(MkUzq`;Q;&Mdl&f|df{GbIpL86uu=RaG|rG*mGef$N2z zSbbu1jHCC2z68tYMig$atKs53p>gCfVMmcIuK{Tk$|UXX97cO%dm0)cJ`x*4Vv-qg8E~NcrMuo4Qfi!W`PVxpaAdArB#zQ+LFqz)**09^I2CIO?}<| zkCfIseMW!rpCU-XvzvzKi%8|D!LPxez4Zy=*bR$a1BB-8(Zk58xK)bPe8l4qP}hBzkm@+U9q)}?uMxv@59|c94$u>v!Sr^+i<*iLiWv={nxuO#L9x#^Sgd5yW*y{y?5yxc@*=QX{bFA# zB~#(vzyJUM0%I?ATFbnQ(terV-{XXKXZtywpD{d1Oei=UvI)PAT(9#G)#kTMY<5~^ zbgdJSfTY|qClbbQ4Nf?h*mLSC^9C20RV{T)PazDyjlX$`>~&h}J*{EU;I_S9K~4x&#h!>Ki_NWT*G^oe)bL z4hL9?*V>Q+9_#9dmFbk4- zE)~mK2#Ohh083fpK<55#YlMilk1Q_V(~2tpz?GZpX#}JDtM|B!(ah)7=6re{?&#}! z-$6mK`4JqMlVAJiq~x#jlpca?DHije1vNxzIJ9D3G3m0vSn+zo*_vQeQlPTe%DN4e z*7yJb14?@qe;i|X$TL%A8pYo0yMbID%K^|0mIYGnDq z4MM$MiUV)wxa(N~jHpW)K3B*Z<^JCg(~=8r9>sB;92{0xM$%zah}E^l9r39MBcSeDTW%tj+C^1JW6LM)3j^ zd^ynzBDcl51L?YFS@a(!l&EHP+6Izz#e#ZObGh$SYJ`TFB5vEYvf~mNJ8~ zxxg<9`|g`f5u|15LlR3j!Qw1O1#tbgk_>^8?gn*W*4Z?J4XI@nW|sn6P_GpMzZ?e{zGdvfa$iCP} zV3blf(%J|`Tj*y+uB=#r#X7hhzozTd+;D}an8;oYG;uq%50=#o9P%8mO&*9Tz^>Z_ z)kcS4Xm9S6Z30op+`C_XNL{SL&y>-pJp!t^X^P@JHb80VpF7I$vQwes3V~>ieLa5B zepz>w6KXDzJrwID>VW{qH#!@8{2mnzF$q$So7k8w;_qRVOGh!K?8AC@1Rg#dqs{nw(@daE-MmVtGOnGOD&NBgdyhk>D^Bpj!U* z3o-%IX0o#Js_mVBn#Tpwl8BjEEa!miY6?aN35K*N33!5Pi^Dq*=-FMM^bN;bELWuy zSdxBT-fFcFKh^w1pOu_e)qXjc2F~X3C5#Ie48ekGbWSa-soGn%cRbdRf}YR-@jjWu zre0^lQY>s!iBkzZbU;H$aTo3K$-*K<#3e=W1;W}~E>6|$GT4=yJo*6*04#K0aU?P2 z)n`2#H4;Swhw*M3oYy0juSRye@%RAg3JF)^wy#ZF^Dw%}mBWYbUv9IG5tL}K46uuU zLG#(EY#Bzyd&=QD5oH1co;QNO%$t+E##yAivv>Ms33&O%t1B42hA8tSk=E0!Rj8wh_H9`q-OCw3MzkP_c|3%A~r?79$G2ThoB%CQshyeQ~l~7VzqcD||7D^4b z`gwXqTVAkTE;z?BkBTWlquO|PQvf0ESbdKi^jn9haF2<$NKG$}p&OmVf{;kEx={!E zu)W3z3A3ENAq*VkT6Tw__{wXErpD`b{+p-QNxN~P|B0i{Zx zh5$g4oLEo+fC9jF`HThtm{%ZQ`~Uy|0plHDEp(Pk&UGodCpM|!`n725uX$iIis8R{ z6T%)P@=RsGf*J!DwKr3dY42OlkHh`)bIwPIl70ZT{5;wwc7LOFzUtInQC^UE9{V(& z#aVE}FFhorDdKH{4)Y7>hlfsLbdGR5gGe)^2xE;qR?Y)(#} zlCE20rbjbM7$(zevRUECOGuTOR}4Z|{VH=>yNt9z$c8LMVbuC@&n54amO!-^WUJ4G zdCQvH6dInM?@1ONu_2T0U`2_oop)S34`UI10XlnsWD34p@5tEhyvN?eVKZ33vn*rQ zwXjzaDQ)M}K+2+K4&?oJ-Z^qgVS?Z1IMBa)QS}H5;H0QICEWzXN{{8U7=eBO3)a3m z@`)4&^l^-gN(-mjkS1#G#Qj2uETBe@Ps#=d-bE~9g8bEDJA|zlb$YM~eM{c-Mc19b zF&@|}nYu2>??;gH-v>l;hda5#kn9SY|aW@d`0mR^-wV^Le2 zRjs{GrheXF*?qFXeEA^H^p}Sf__1_fO|i&22#X}}S$UAcu#(nulg>S%lB1Pg$+Y>- zG1lk34kg~oj^-!mS0n$N@}c?y!!}1xFU)H`kM`FfVC%bR=wsf~00002ax4KLvbKzB zTIHZ~`iaXtgjGW&>GFuEh7~6M&f}+1+#`@dnV`Q!>9D%J#uO35lr8!8t641AhqJr;V4dl?UyB%KYp&Ga54 zqs|dhZ`eFHgBi0b6-pv{C(V;is;JMUiNp4U&)LV{m}03+$f}ooK}#VM0z(eZfmRWY zByT=7v7ys*LkX;xf3sUYZFz1%R$127#bh53wuD}WqfOx`9@zK>+kBx53SEZKOYz!s55KBAP=>3b1~Xs` zE3lOEyx(vM5MERu5g;gyv|@Z1p&jMEvyiHlo_-HCBkK`(CY3x~rq5c7 zFH^m?5TkQdC$ODVc7@w46hG_#0AYKLVB}2aZltiu^Kb@sbdrpP^@37JMES~0X=MU$ z$^LYDs~<&Gw?X|rL88TeK_h1TT5feGQJ3QXbZ`VZ+RVhFhWqKp_^wmk_vec`T%)!* z?gnGP-fsW1TpU2F9zH9)3XK+I;QmQ&EAs63?2tLSZx^Uf&%Wm3~n>82-aH&O!_1xV8mVo;Bhd?M3S_5a?1;))Y5 zFN{&j9O<6ydDWgQJ1C1yyRqs}uJO;}kQUl6QI*KL<-6*ttmV zc1!oMET#~*=TyCg6(ClErNxYw$;jxEl)@)F@_ZfHo>B<(#BlOxg*UEYsxA}s&6l-? zp00u5iMWmn@}zD z#b+TKR!0uyTYmzNS;`DA3>0aWU?jKJdXfyEWsjS0-O<-^3LcDm>lJ`2ieGW)MKf~1 z7~1)5TB3LNC3cSC$nzTk%NHA+IB}4&VbiG|VZP0h4L*AR)Ul>1e&<^3O=e~j+EkE4 zO`xODfaecIl%2FfTE&qLo%;0n#jbB=v|Jqt2OUU$E!fvBp*C$yz4qOh%*dCM&T;cEJvBdm@(jgGz(u~GMT(9T4iZIwtdQTN z{|wJW;PoX8t>F$RPrJkrVVQTk~H>@bBvyOs%3kf8rj{h zA>X26We?idLlEa-t?`TzwKx!dCo9i@2L!VJK} zN^K@c2CrqHN9G?Y3X^C$x=Q%>z}E(dSy*r?YcL8NyWBdaoQ$gqy{~QAce0}-t7<{4 zN;`_{kYiNfIosBniEK~SWd0e2KEn`603CEk!v|a0ZC(2A42}S&HT-!_Nk2Zr3rb-* zFtC&Y;0Dfo`!{yS(p19`gc|=*xEC>LOeZB?h@KaXD>7<5DMxZAT0`+)C}8kYM=#O& zB3tY@QZ=zUxEDhO@SwdzYfI%e%c?R(OCy5#oqaQ{xq;R%?IfV`wH^|Mr#>yL&yOqX zDVfDVS;_@+YWy0y9hA7HnFP!WDdrF&yW&k2xi-~` zROYlnA)9{Z2B<@(vL`O-yL+OjGd%f#h7K zXiEdX&WR|l1D<}3{^`4FJ4y$$BcO#ofa32;t(A0H_Hbn2I&Mgu*Kj9cp46l|h?P5G zU8`CiT4X&Du4&jPSGo+9=R=|`9p{_q+ycNY%s-Auf2L8xO=SpXlsHpyUc2AoW{K8v zL6stQR;>ngp^PPUe(Hiy&%vhD(mvmnGGQ~vt{IWou?eS|m84#V*9V^BOy4i|={2(CqIvaz%kyM z;|&U|Orm|s&L|%bgUfLHf$X4NdZAJ$fdW_nh5*2ltbj@(fDk}`m+EM^j#?Mry*m2t zhwEa-zx97J#DACgzgOh^nF{$oyl8u4u{1Ldb46mSQUdMXmRQ>5?K1;S4$kDJ;+XIN z0007cGM3dcc9hJf$}+&|o0*Dxkz8}}vQ3ZpwaBFB_#chR=CqMzq#pNiC2E#+az0YF zoE3j~8gpa)f2*yGzygP0b=342zdGe}jY0u4AW7WeX7d7wmZsVWQl+Fr;Lh)EZ5Afl z_O!oMX>qxyK6Pf-G#Is?z}TIT9NJq?R@S!W)kAxFy&sSI_Ym27DydK~;s-Ox-Hi4! z@0b(;_QQ)?;hNTzhRTG3kxvkMs z>1gVJNg8$*(WEPr?7SK1JF4g;!!x%9LP%eNSN;h$j44nY;nTX4xheW|5amj6i1xts zu*9~+8Ea+5??C8_>~$X=^mEemlrYd6uhpFH(G`ejg|OevSBi{wjvpf%*wt&;<-evB z%Tb0YYJdTiMz9m(Og75FzxdO6IYa+3m@k4s*byFAI0Edu0QU>@DObyl?SZE_Of){@ z$laH29w4Ve7XT|lfB*mmIW{*dL6kw)Han`?r4wGI027 zT1mj3m>GdZ#^Wn4qcy3}M2%OlBR@>eYXwEX;K3#zJ4QAjCom zJnUHTProXIYMk@?AW$x;GZp zJDm)TB#~yz8TfU$*u1pRyejU3Qyp1%ooPgpKRfV_GQ6sRT^BI!iNOU6k(m z&wCkU&J8GOkD(y5U4r0|CL;k06KecdE@)x8uim1^nv=or*=kiH#l}YWIURTp8sDO4 znw>m0UG+oO)xQx3CmBbq_N6wxTg;B-_|jdQ1+wqzX#@{<3<7_C5@cW+H*}wUXB{+F zR<~a4SAHQp5ikJ1o8uu7(dwW0B9M0x4b!O-)oDXLs*>KMUZY^mh_Kzdvu`&KeXpEO zIAEm>gXx{d^aP1g)u1#SHS$D4Nh8utomc@3AT%eHX-Gi}7w!C?h$^L5J0*5OOd7;n z`BQRtmhei|$0HOBTnHk->a*=G(iHxh{O?yK3&{>PKtL@M);~ld2=+Tw-|@lcdIAhu z9-6%=Rm1azuh~ejcKBVTtghZ;5Ed z1FwdM78))szn^B}msrhd#;c!25)zJWZkfJ3wKdy-6aMj|i9mwUrRT`o^Q_PBu`+FF z4NVc`q(@`KvUiKWioLG=*}YYlIS16nHa881BpdN&AycqNX z=U*Y9Q11Ez`irQz7Sa$J{d$F6LL3U{o6s7_XdWCk>u8@q=C#k(i-w*jIY`$NL z`@G?)avg5KTUU>x(q1S80cXD(6*mL@3vlw~WRrR0X2053YXJicuiwrNMh(E;|Pb_V-EKV3xRRVG^pJ`15>Y@1*c&tvSe8~YfK$_Xi z<4kZ4`*;N0v#gzeDQIF zfph&&R&-6R%_}iOLf6a5o@9=tGr&y5ZDUT3-4|#G+Tr@}$e9_mj zXFf;v=+@g2Z_Cd5e*#8|WZO(dz7nPphx}K2PGd$7MK$R3y3cLk}1DC!MA53lb`<){OV7#5OvRfZyPBa$hgKwL7ZR;Fo2}tF(WLTushII$_%N0gR z$24RDmYh}ul?i*REESGJzD>*D|rqj=NU=8K{QD zxM@EBf|V-W7hHeoG#@Gv`Ys0I4*D72&Q#Npu=Xx>SkL5x(HvL0r&(0@Ca=TPOC}&_ zzyJUM29S5CT?Zn8kdGsW8&F3&DZuc;Y;%7ZHP76k^HO)A<_?rZ=O%4>u z+iBt|G$y%N!Dwpz*Bo--kaoru3|JIvumhFo4|_`nCADWCcj^mYKW27~E)jI1+e@uZ zvrrg6R=ItysaCE_cLQtleQzcWEhw|AT4?>mxPD+)c9YOTY2#qNp2Z*1SSPSWWE7DE z>b1Xxpfy?1T0y;B?g@X=lJK6YGE5+|C}S`T&LC6WUihf!+!}PPvd%RV5&coX zud+R#b$U-|h&)dIzwV+c8+XGIRFOmDvAfH*9laAkui&F4O7#N+)6D_nj$~RKPvMR= z+7mABieOkSsEgk98Egu{>lUw{9N`aMeH$CP7hN{mW(W{wDh#Ro+GPZ9KFXm!eg_8iPy<4>|?aIubY{j1j&~OqQkdw#!Uw-&{i>7zOpJqgoDpZ z006cG#;dwU<-8@BSNkp{z`mIJO(WkW=cL`eMOG}95U{&-MCX#Xm&St1=;E}Vmcbxm zXc33S=%YL1K^bQ|LoL_~Zy&?+^K9TB#HHdtF>^<{VfrHk)E6WtB8&59S;aUkhVAQG zb3N(I+$Q-sKqeuh&)xCD<|h5}NPNo9afh}EJo&b`O+Q)Ybp1;6cHyQ?=l*t@^;K;{ zfb&JfH*Vp)yH1u}>hnS}$whaW@K_hTs$Xd8I1Q&O)>8eimqO@B+x_!CaygR7cuV75 zgL=q~l)_#&{}XiuhH&Tow8TJlp>jH{={TMm5!5%ukC` zjm|0jzi^MvCPGeu<1ITo%WI7Fj~yan_$>AU>H?qghdlSke^AtAXKkj!BIKn#r*nkL zH}Ay#2N9B+4>^i{Sc|2sGHff{m`?c5m4ZvA6wDcgPV6RZ=$#`!X}{>;;=;r9(=*$% z2YVSiWaKhpjTh9(WJ(#dOiSF~sqZ{2PuEbLi-0)z<=pDN?!ocyW2PWCaRA*zKb!N# zh$hLS(Swm~=gKHpkvg^6|MP}zGpj>%^enRb2XFQRCic=D=t&)u`>v$bTU!YwD7134 zmyn7bsKCas=ha(C#(|73Dw$jiq#Rd}wLYge!e)2H3agvz)bS4}h|TekA?(OgmX^sl z%_dn4ks3zK-sA(^hCFzCVu%9?G=&-AJ_iv}U9?8OWgB7kI(|djTcGmOIMnmT1UR+6 zn_Q&rtY}I>Xs|Bei zYKiuJdxq?!6eoeK5o+*h$LSgVPo0oAbkEph(x<*LdZHQrY`)seEa@_re(FQuJrrzj zF>F^d#te-aY9s7IZJ7OlPxK&{Q2SSL^J5J_*Ev%@?vMJvHA-0PLi6q(mg`kY;GHn_ zTPv^IhE@>Wb;Te(Exzu(0vXxpO6yPlF_QVx%QS~l*m@=iO3ZrUB1-AYmdCA?Fh(!k z1m#r6$(pVMf7qr>Bi*DD#slW6WSpc99VU?y;&lG69+z)kEDNp|A}THVK?xl(t(lA@ zc3z*m)>J1M=>7x=FToFg$P8u2qGG_Fifk^QX?ohgRE2ORGbHF}DmjgP=jecyB%IoN z7j3_rs1YO!#7$hZu6~E0s!t5W&$GvmMG?YM{s02-FiO}8Uts^ElN02Ol1SDgcw^*V zfA|*hp3PVlgI=!-T_D$QP6UL-;3nX9AtIKiM=?$^A#2F)2(8qvchkih*Hd;N=A6?N@9AR@VK_*pPLUlUB+> zsZfPa{6DCK1R*3g`QHV8(DE0BwLbn94Dw3piFBZ7H)wVh$^tDVW{Yi{eL#H>nc(Fz zUp$JjZrdbC4+CJYXB4(wp4wz-34k)lU6e**U&)oC%GM`RXnLVAtK&jFk_E)_mWZCR zacmka0jBmMM%c=&pILS+T5Y)-OF^*VdjUBmhN|9>8u+hD*uFtZe`lovLGzwPpU#uA z#hUio`p10q^6q*>+~kE6ByXy>46EaZF|Rl--gY(2V}7J2AsHKozdAC7w^9^rS~U#$lOehT6$d1qsVGazTOp{PhY#VS{GDOyg>s z8K$(Ei^fSL9JUeBkV|HiXRG1(TygJ+5?P6n#ZGXXi<6f|E;m^cS^nU=ABA00dPb;6 zACZS@4_~!Ov%vW|MHOb=XPlR%I;tMZTW1=or8%(VA}a0iBKJNPJp*gPmzhc|k}9@q zl`^L)2VPdkz#tIz`rAi=xrwurn6a4il6SIpsl4gH1L}v+CE?eeF%yspm8qU6*BziEkVIsfK5Ge6l|ZzMll zq-+vrICqV^zZdxbS6Vp-V}oOGfU2 z0i{boh5*2loIpw;fCYef;ly)aa!qynM~U#%Z2&nBStI`700001EFEAjC$C*XwZEX3 z@~Pa{l_70fL}->>p-lZD>)HC%RnHz*hCRgEd)<~TwA?jyS4N&Up$X`%MqK*2 z1A-x66GrX&nY2z|qg>#Ug3x&ba%9r!6V!)A!S_~=CdclPPl zut19{6&&KXX~*E#+0<_9g3*em`$~kWj@!Ah+jhwyFfnc*7L_|XcDsUlqiNg_{nt@% z0q|0(@0LuhC&U$9j0O=wY@40ix&6{Pwf}3LMCf?;l;KnI%*1HXYfLn2j*QJ}|0mR< zIie#QWlj0#>DJrUZ6`~{$;PH!xq4@vYW2(7qyPW|EGz?VAn`qr%i-{xzNszR8x$K}oti>=suc_C^tf zd3wp6x|H6RF&liCrg2SrRj{@ru~WxcC%8q=Ox?T}VhbF*Vv%*Uw=N3N5C_B&qM ziZGUY0&eJ`Ft1vej6gPT?0!JmyhLMy+hxenj-Na?k1ecwvX!UsbC5F~Owy;8gO47s ze=O5NHOrkgzx^O2wA)sYx;S{&$)@dd%1yBQJoWuBix#aB(a@ z+gdRi!K&J8%*Eh+VQZ4RMasc#x26&@nu6f0PXF8) ziz!&Pjwd4Kyt>fL=}SFWjK>8H4xx@?pL{CTMfd)IMC3bbHH|IVLQZ^z;^qSI$Uynl z$1&&sL@aB2XA3RbpTz}%*Gp%d4Nilu=_2ko+IsNREsxwUIA9sT* zz8gS|H~;_yLwf6xQ-=*=&y!C&rN??o1Ch1>Tk|2eX*@tA8=`B~#l-0q z`>!#i%?dI%{N}oq92^NhfnbPc|F<@g9aOzJ|L1Nw{7NRRss5k%7(CQixd)0_*68x} zf$%MgU^_?XXWHdQ32q3&5}j_v6)9T&SVU59r+}DaX$?uZ3Y$#$*=K@grRkXjO)-2* z0Ty`rZ^+_m9Z6B~tb&rLNW@}0>6CE=F(hQ9DQA1>UT_{ZKLws1s?njx_{pI{!_iU=sO=@nVpEq9 zSvo`r!&2sAbCr4k5K`MGU1_Ar&Th3XCFazY^yGoj6Cnb^zts5}+aUzN&jx;^8`1Al z&r~F{o_Nbg9Mz8ovvR=RcYapI^;y=rarR8X#CMjvTPJGff4wd#b+UtUevwSa0=@NM zRlT$-{Ra>^8*6Ps5C}O%@3x!iHI0LMR9;)n6R*aXDPZ(a8@WH<_~!t6bhO zcz^209n1`i%q=?;jRlW&E)b5RebFNJ59Nv6MHN{xq~#;D0&cF<7`0yv$*wp6b}$v7 zU`XAXM;zCRx37W_gIU(o#P%OWJ7<5iq+Y=pN3?neJKWr*$dT>5wwhtgr@a$r-acXE zBrVia5F)(!Qr*vvwonBAd=e|Pz^RBC_$ug{g-W<&eE7ksuqJ*p%`%5iZl#>lnmFzt z6=+p6J?AhkKbS_JcvHy%tpQ@LA&IoAkwGc|4n|VA{miALtsrTRC~5|PMxB~FnknGW z-HLx3=1LlmIA8X}5#12%>4ckXTW#zCIa=S_^luGeK@G(mEI>I$Vk7G?r;LvnbLNN; z3X==H=Tn#$AWM9B)t5~nn%m*>m8J9ldRaFj;M`Kk0@t!XWn+XgC8=2ZCHi`(0cCX5r+sH5gs@lxX)2WmH__F09`*_Aj9e#xd*Uqy zGuz5rkKX>>^M-I%tS9OYDCqAXHT(2dk2R6n^CIiQB6OX%soY+H;S3ep1mQ><8>_Noiy4GDf5P?1>o*Z+JRmS^lhAT zmb@ikj*24ZDdMK4-PIprG`*i6ktV6vT?DtY!g@gFUu0)=IFCKXA_#BtoRZsDS_Plj zJg}hgV`)LyI$U&yUnOQNLOppL>-B)6)nOnMH4Cl1k(-6vTWQ^qiV)|XB8JFmGoH76 z1!faf4rtsUqKrtQy9394H}V#YvRMEsF*=8IRW4=+9H146REykB+D=0DQ10Ua*F|U$ zF1Z}L&Ujc_DsAX?BhzYhDBSZgkNXoq}E4(9dud8Y1WB+?YEyS>V1=m7T*^kCk;xRi^yz!pt(#c*?P9m zL&90|41GAOpe3+#-v}rzi!(<^uSd@}QYbTy^L8S2Ghr9xf~jLme*gHtZJ>_T2q*b) z7D|VS8#ZK?lqT$wYv4yyKEF>+ov5+#Di7&>HZR(uIWsMO1r|k4Od&51L~(d~auB48 z-Y99|uZ&)FA+bsT(Fm%OsbM`)Q^7L9y`zZx@GN_1l61pA zuVt8MSGM3113iOLJM6O zuaor#D^XWbqaIPB5s#k`LX0fq5vRdq&6il&Ob6hNUJ2&LBN18L$@bHnYOVCs>q!-Z;L+sH)Dw%Rl2e4RBDC2Y zCI&mc$VH_DhL3<5(TrnM#y!M6#N~^p+&ocQ2hv&+G4xSwsGyYY%Z$Xh0XI&O7FU+w zyeDi;cq(v~3BZ3{P?2cgLDYTON+Ku$oCohN^g6JNFGTEslcO z<>Zo4G`1yN#;z|X0bT1e&5@jgxy1YIRwZ?RtAEyQBHuxpzz?u?jRdBU4xXs9F+6*M zu%8$6BCqCXp+bQPzyWf^z-gHTaH+pjAs|^8@x1_hpZi$3>j`L!8tRH)n*otHc;qnf zkOq4!{fAM(DUS99;ElzgfGe~v{j%&2fU+kK&^{3uU^0BX^vhBp0007LF1tG@h$A~6 ziOOP(`oO*rad2K*l(h^vq*b9&6<%oRe7%I8AcyoUc?1@aKT49}oaeiOi^d*08W8Dl z+j&gEg}z^Wmyt&Ekm!7yHQ;@_d{ z@Q!iKc1cLtnHnarh*>d4g4_eaXd93Ku_iaZt*XwE>^-o_8cXN62=k}Oa)+-A7^AK^*J)$^EOIK{J4 zK0kgCmDP`k{|{KQ(Rkoq-z-<+2N%HNvI>5_ZWA?|f1Gn_04{$F*N$G>8DZq4Xx} zl*$^((q?-7XvBl)f|ZO)0E+$0B7{dBGi6F_M+O}ONf^_ML+Q(ZXM+qp3 zD(Rw1x@TaRIQK*RRmNH9etypwtQ(v}gGfgSSq)g-gCFUB3l^`Y5Z8KIt~Vxq9nSI9 zScExOk8-L|k!bDQ49_D2qa!1T{(}oeN#uX`vhHjg^NGEf%Hk$yi{_2A(l^B~KkBI% zePc7*kSm~s7@3c8WcKrpe?UzSCc8}jhM7jN7bIKMe?^rh^QXkQv@L1jQ2487hX&uPG_l&J{ zLoyDNv?|c}q~7jteAKPhDiGkpU^X@ccKGWCWjS-WXBQU$0006$cXK8(i_XA^;qDn| z)(QlMXzY)X%VAP|UNGhj(b7q_iMeW6UqH+(#~PAj$Ww*KlnNDa=?Oo;?Q+p4!%fO! zmh&LQ8a;WhnfUR2GBj_tr+pjdXfE`{PwCKc)K*<@)=y9dqK<3cf*aDg1_IR`3oz|t z{9N;0mjllY=Va9zuS$|!a=$_$Yg7q1g-+Jk3f(P6o9$l-s#p3BAndWek*o$}$@DEi z!9|hXKxFZR0c6Qu++;y@{h$riHCV&2l%{G`mJm^ib6v5g^WKM0W`9)7S)z^h#NS3| z!jdl#jez$A>wtP}`b8t@EHEKvrG*XPDC2IBLV0?NW*W_iNBoP9nq`Kh6$#C$d(luJr zNn#&D+}PQV6VLflEsT~O=}ykwq(hZC=BG0h(#97%kH9IzcG2)yxBlirD5X8^0j{aR zURR~G^ll@Xn)D&KJNd(JScoC^Ybx$~bWynZ`tinY_Ntk{I8Ng(?^8wl$>$+(dwxW+lWyfNNAdl{@{w~y zpU5JUl$!nFh|F_C{DeB0jcHwJ)>O-&B<38UA?2=qV;0PSva!)iiH&#nvXuWd^y=py zL5w2~CcZ)yxe5j`X|YE0X*L36B009jYGB!Lf@|)H%P%58(@he4D+QOOO z`tKbrdWWQZlH}60Cg}FyLNNO~ultZ!28YB9s`;5&)VY>YiXy;$=nNR@RI=LY${Oz5 zh_Pc}^N0`_wLn}%jZ?PMu7n&VDPdL3!D=YSR2aCBv z!xqv+9WqxCAj;2kw+F#hT(d^-@K1*I?R&t+k26<~=3y);T99rPkAV93ki@WOX4g~X zfH@(gEg*DgV5uMJ_$CVr zb6HACMFlq&PskhJq#2gw;}y;~?XMno+p=82&kT#B^-*;5(c$uZ$MHm&28dW~3Q=?h;zZ2wfgV;Dg(@EvN(jaIu+2cw3m`X1`wb&chh(rUD(bWzsgF0;*K zmw}2r7NuD@>wYn4(J&g?jJ^D7;XeebtM(i}=-)-v#S`|(vr2F8r*uE{?Jj{)7*y4o zpQQ5L+gbfCFqU}Pr#8Lz$LVU8)p=lnx`1Z;v4f$s&~zEUbdm!Dgi(uE9R;zNpLasM z(yjXA))m3GE}OJa#Tg;!dQn0lQg-)A9CQI3i6HEp|BiuIfsoYxu~Zl4LoN7)gXk!8 zJD(=$+A=BmTB!f{#cgN?~q)#)5z8C zDH5O=>e3M+jyWzrBRA|D(Ht?ev#?iA1VWFC*Qp^V%P&uOo!`0@c@5*l5`d0j-~a#v zd3sBo85R+aC4J89*eFikV&|Mu=CBSOIr{Oc$v&UJ5Z1ExE1D(G&@n ze9?CivqO;ND?Wj@`HeE8olHx2I%^!bXvDn*JvEdz+mssGYTB`i6f}n|cRXafrmeTA zP+3ub5e1B`0<&;b%!$+qWK2U8C)qqK@&W-#A&9RYo&VGtv1JwnM^~~*_0AD)9hPauhf*rSI^@p+bC|K|F?!hlW7eV>2%IzE`?WkQ{*L?$xPZHG>v=yRVA>@Y>n zUDxId;rTwIyIBDxc3Hf9iYrCDI^Ny%_Qdv|d*OXUAuZ0IW1Okvt88#K^GU+`6^*40 zKwd*)`g!VOR^E5cilhpnpcPWhcc8h+mN4)fE!ke1_8=xtJX z^KZh*7lfeUrW)Vc&{bX)ck=2F@FN$mh?meZ7P8r+cxFp{!wNr@GRm04!>J-S8?2OF zpNT@?ZrEJzxT6q6z>Tp6+u}=_P~)W5F#(&|HqjtyuKLdVL4xZFiweq=3@nJUMHl7N zWy@SD-+4SdhuXmCw8x6aRgZ5<;+bseWu##r`5=^oGm_{5hE z0OoN-xZg4C=torfxD+wzlO`jVYdWU-?w^i286&R5pnb{p$kXd4jOv#xbxEK&x9VB}zfQzAp1*ZhQ=Hlym9E=D z*v%y^h^_lZcFnsks*@0q}50gCx!aJ{68w7v|k}S$w!?1(N*h$UciEp&Z;PgS1CMqDli*fb_qww?7blHBVsBV3BUsiK20FU|Ff5N|LEsnf04BJhT z>D{g7tUXAoR4au)52#K(o^A~3uK2E8g|zKe=x@D$t=u!n`WYyiQwk#^DwLon=p0;- zK7VPP&b@7Y!c!i-WHYm-0eX)n5K{0CE93{&vmX}~J)gRtYm&DODSx>ab{nY$3QFA? z4|!f$p!vgx4~q>vp^p_ge8K)LI4JfJ32TPU!hXYcsN_lkNng&*%HzxX3|=FuW1d%x z<1_fo4c}3Ad9>s=CzO6Z#!b#jQ)wW4bKqgKWVdkZ58gM&utehqo}=|$3586s`+@AB zR&b$BaDf7V0EPfSlJS8kh5#;qpX*@9X-DteS|7rQ$7+^IPK8W#GyAT;jx!UtC6`(| z*Kd9e>OCRH7nVYU00001!XL56Csn*h10nHLqdB7CtM9N_YXfUYleWZklZO*R*`op| zxL8VI9wyX4(I*}=JLia?G){U$>xgHZPDJWe3iq>%t=h$(grRZ1{qlL_{+KHzH1I>s zj*in)H>Zo1aUQri!J$nH$@S{92xTh{i+3f4qY&FsYqB!eW&N#KLpCuLMeL|BUTs5q zo4Jzgfh356%A#Guu%R-@W2(t-_YzjE8SFWgQgV%-z~^`Tj8bSjycL?XdzR+3|AUYw zZPTdZbJTH-X%s{ay+U_Vnv-)jI66>drT}^the4zFFq-((7}mNSCUASGHG}o0%O+UQ z(mlj_!9G^lemf9?XHcR*oBwy7kVLmi7WlnZsPbdv7@zK!8&uDcwC_r=%C;b!L!{^H zObc&0J*BVG;K}O5Z_h7h+f@T~J6sbK3Ow?UoV10bx&r@@J9xr11|LA5g2{N$b078> zi0drNo0FSb(GgzBCXU3Kjy)4ZZ(Pgm`wWD)r01F;K0oNmTRi&|6#~hPWfAQxx94z& zS+8>CWj~$|yI1g89HTU60P8>$zbTd-4Us$s+Iwa`^iLxma<`H@iN6+b=7us83&+(b zJ1@Wh000C!BEB>w1(V+e?42aEn9u+V&N)v$D4+nk@5ns6Uq~B5Utbsr(w{R9gj(ehtUTCfPJuX$Jy~aq7<4&H$KT{ zLOdd%FEF~OL!d5@RTsh-URTyNPz4z&$$VJC2KL!a0%t#2<(^&@)<~A@c!5KD>xk0M zlX{hvFkRex*P2mjmF$F?U*6=|G2!!6rjY{COlWKTBi3y`) ztP!q9i@~T8-_zY%`VoJ2!)}Um}q~@#8Z@;S< z$zN_knyx?}27!>v^v|Xa--4pa z{rLtOG+%_X%9_IT+8lb_SHxmAAd=WBEFlM^>Eqw5p#mjURZ|MTWvIWMJNUaNH;c?> zU8tyR7M;F>cJTi0^w~(HWB1GCHwyxc^&T8-IGQicdAO!ZZTl5C40bg4Un7YK4l%I+5P|> zYE&Reyi^-HZ&)!>d{A^@C+E2A+?i%1sV|_q%FXPJ#8g%;MBqgVmt!H69ENHKyPGd+ zK>B9!M?`7}!iWE_1AUiy5_6dNCVVqDwj;SiC0XBGL&y;z!am(jW%WIfGK6dd|IM9A zEj_}1T-O)vel5635h<}sjvp?V3e@Nd@&-tBL|sCk!UfgI z1}oIRPyl&UfazWc>_+pK(Y>!707#Xrme6DbKS^T;(vVjUeBUWhi)T1gOF#f}VLNM~ z$4&<@vWz{Kso!WtD>pTK=;HwQ;v6>-YRDY2`m z9Xa1mz?PT$kvDd5s=BMQM^ATQVk+9XTfsuUrx`fZT$)q%ff77`r3%^mQEF$?)Up(yzap!VSoSt z1G#oRd3<+mFD&!RwoAR?_5B8Dpn@bswcHmnt#kOK|8(dl5SO_yZQh8k%NgpEQk*RN z6_6g4q@;#!LOxx%@7+!$&h9d_+$6)kAMByYX~~dVU@mvI>O4icTW`EmGmpzh^;ZZ$ZMy`{f|^?W+=lOz-TyOK^tjVLvGyCEE-DPjSH6!3H5? zDl|z6Q2xH(61XelZi_~gocMur6@cw6^PA0W(F5!SFA+G6jK2=#GUy1v^pY zE>WsCDL^PA^PA9WdK#GNwaVZhp-4Z)dPzb}(md(f7V>RxxulpxaV)ce)H@`VNgT`F z0Zkw*8(*EwHPbUA?i%d>kt&TOD2DZ;>V-A+*#kH63-pcUzu=;Uf~oxo@ftm39(tOnQm$xS95OmE4_Ix(gLdB~sN#br=3#Ir)jOTP*MKN?v|! zD!UTA>Rb6w=_IaPA0a8zi$tc-(GhJ)e^tjh+EOX`W3BG|Lr@&P(ew#I`qD;@NOUrv z_lY+s3BNO=Ah@$0bH%1B)FD>OqI^iF%n7?R>s+U0x~UkqbQOE%6Mlj!5J^Z0-hC0X z6CQFt6Id#fl+7MwLW9;%r5|cEiv&P>$L{K6lTcSj0!jywv;WILN|Q#il_g!0n|&AMrbAa?7sQO+ z*Z+2CbM-DlFh_e7;EZl`0Ss;2V9%M8ky%#KddWMjsj;eu=eT!3o-;2S$0rwD+lQ*D zd}6qrG3!Ew#T2pbS)ghhnbx7S=5+3=1~sE6tWy=Gwfo~msd~w!a$S3tO`{*b@Zl04 z+W_ZYaBUc=kcjY583f&j>iuq%S{DbZ>MK&s#qRxrVwL6_ky@5jdE>sJN*$Ys>g;U1 zjw2v4jVV!42mk!5BBs&^W9Wby5EP^+n)`auhwtK2=n72KtF`0nGGz|U*Ymj6M54Vo@@M(j$##c?-N68w@&-<9w2^%waB<2H&O!E za7}(GwmPPW(gNj9dZXA>d9&9=VtZF9rcamp2E5kem6VeS)7ImX{a8hPgR= z9lYtrMXfB@G3@nuKYbEFSG^+A$1eBh3D5h{;@S0tXy)&W3LdYi-5nL^c>+sx002a- z|BmDDTDL_E2aw-%W~jmm+#uIFGK>rA2(u)vS>S`n2|p>iJe@H!N6oF($xGsES(1Cb zQ9ffpbb4JgGbV6T*A&$l@(XQ!#iPpKK41eOAl{(iti6}o92LH3 z`2jAP_nFAj!D|qax3z1BV6me9mv&00=min8hBw!vtsgPqrc20c0&^$7&d%M?3P=_H ziEft~Ks*=&dO)CezZ*5m&~LqXQBnWa2^_Zd^LiY*Am07*UvTE%mkkH}6CRxh=gSy= z-NdQjRg*+_C}Ul)o)+RefPi(ONcN^k^X`EGrAY0D06>zQNJ=4q1%P*LchY2Qvu_m4 z0xb6^6uypWpYQ+x0004I8L{u;`Q-u8R!X*qG0t=0N6XkhNZESYVNn`}VEd3~09W$t zD~57vFqR3zx=HpBdr2wuGK;uOwvxsQ${r_*5=q{g!tjb$#{asY5XJ*>aqt-Ce&I{Fj~~Ol zE^@R?1NM4qlMjya#yHQ(2-gcJDTdFa)wg$RiWG1nU{U)1hmgb(L8Oc0|Amsrk;<0_ za?&^%quJozHZ_a^&C5AH`IxQ^O_vqrr}4p{jQUkK9Cuy8xM43WZwrH4{qWJz8-}%e ze&(piQ||6Pt%lB5XP1SMgit?8yp0igIxG~hwH85Fw{knLiQi`Pka1yhR@(r5BCCYh zZE2{r>Ry)G!v>9#?wxZ7}a<-@lgtCvg~HNi@#jzy-bgS$YFw5(Ij~i zR*{T#t1o>zbbtT=0}Lj;#|DXOlO)V6Teu_q&MYu_yYGqsM{5hv^nFx`VIYQ- z)e2$515UAE_;%+-U&oKbi-kUTO!!K0WP-_q0ac14Wi@N42e(} z8L*jntmL^8&@xpfnGjffhs%j7QWGNhDHE2A9LCtT`!v}iaLR1Zz8mheE7hPP2^YLS z(0#UoRZ6tWa~XU2)BCyrry6953d1q?ZhKNnIu+1)qDZhR@Ijj(%$5Y3xTXU-Ku#TE zek-_W^BqBZKN>5)hRk8~P_eU3z< z3zVQpj`V+k&OKO;Wn+pVs!s_pAF=v|NeWH^hdxn@;otBjdj1M@iqz69XkZ?Q`37$^+(hW#rCdAl(9qhyD-5^78|Kvk#~sNu`j;WPL!x`p@Z!td)2nnls* z2E~Myfk#P;%=Bq4>iUm6%M&^6$Jg_6)sVbKIoUeJgCBa8 z5Q1EPIn+K(VBRX# z>6!s z!tZc+sz^vv|8%JT{P*Yo=f6MyJ=%+3szz6=FdRVKc0SdOx|iI7VJP;U9OKxy2MDB< zEBR0dGV8RlWeO#zGldo)ve38R!BAsa zr!6d|2^G6gt*C4nkx zJantu<)}$v>n3BQL(BQ`=46i*Jq0<(U!p+oc6RNaWef7{60fBv{-li8ic5)l-BRV> z05gbp$G~U1e`VT;3PvEjznJGVp84bUt=CH0!C*tgrSvBEBy?q?^_);y^|+W@M8BR{ z3k>(Dt!O-BLQt?p`d(VCjC!##Cci3%l&agru@lqjGe;{kV$Wv;k zyXP%x(j51awG3xjgzi3`LZ{ngNG6nR=|MjDbL&2!F#P^)*ZTD3B5p|!`tco1N!y|o z;B2+j4d%^>j$M*!+ml@+lgfUUagb<~51-+-*^EizyVj%}Kedk&SccO6xzK&7Nw1iyWp^dk8kuVr{bGGJ z=ZE;LYJ^MId=GU`k&a7HaPm!`J#pJwwrPBuAPIRmXe2yW6sJjbOgY9W$XxMfN$DdPF9c-rw$=y;LghG3WHX`6xh(ZdTV zH}-U~o@&ouOrs+=O?p7rQhNTZmpVbV^o^-cdjT*>nRYr}FW?!Q$!%zxGENTX$?g|m ziM1ZEzUmQ%6`fkEMg}G!0NBr&5bOPRcY+%Ch(N6SE+AR5PxXRE%DW$(buAJJ6yi>N z?!F{&@TR&+C|1aYFKTX?dED7*C-8eua*N|R)9OVB0umVE%X6Q;4t#bFKw}w?KVaDTVNMr+Q> z)Jt`lVA}hHLX3YBq;M<#tYLtzUripHAbCo<>mpBq5L01PP~nB~q_|fKc&fbVq0_Xh zUah#>mk2#P#FHLA&VNJ@_vl}Od0O1eu+2J&2_{?@s63@BBGHqGl+r)AA6&ui{1qD= z00F1YA9En-WUT5&pm+cP0sSJ-6mgPrED~+boX)?!GGug~9#6AjG80ydn~gfMNIQIt zDx7MeNZqRR3uL?SvED7>JGT5P+35YgZyn-XM-+XZY#AQX+Uw=X(7&^nKIcZIvVEf43wX4;zFhkX8lGhfRGPv3>dWxb4Tg2_Q@Tuo)t2;~q zivwF2+v=u&i-w#q5D9X0ZTo`%`8B%~G!RcdAKT-(T0#0pUM*-Iv!}htq(&Hfr72|P zShj*$=q=KWR*l`AlBs30QpdJZ0ocxdFOXu2vmEIAe&TP8stgCiE_Inz$qnS29sTr& zTntU*n-v@9W>>EcybM?E6eq2dHA6lX=a#ql_FF}`O8x>c5m5U%cJDg4LeW7Sk9a=z2cdesbRj|ap@x*^`73-Mr8sw z%OLy$4K)%tL{S?C#FjGpSL&s!`Wx^>Xg^<(U@RYx#e_&-6_2 zwJ`4ek*wM%nw5JYWT6c^Pf`(&(yMACO&n+sg--vxXRQNBPie_nLViz*t&}#aPFAaN zIC5urUwo_H(V{_c2snL^7A+5mQWq zvpgZ8$pg$Zi~NUIl>k{1ue|vi z)O+TvaZX&dzy*(ydk3Licv*_xZJyfpy!@>2V+Y0HRDWH{4as|$Q3=*1LaAFrquMWs z`BA*Ph8duOR@t*`p6el0b^O8Th#XTHFMm$8ot_zWnHi{!-X)YS@-+lAHRz4}VI>x_ zy<*O%JAx9Cwk~aAPEcCd=360&+&&y#3|=aCfjWW65j4*2pG-{ z`w2BmPiiL(HU^*Nq&Cb!NX)o1bW0^n03MEJkD*X|{df%3*Y9`|&x_)Pq(mNzdzLr> zJraDA9~CeisCV?&pnUgU@QrS33{Y)1E&2h=@lIh6 zr&B$|vB`_-$DxO~^^&^K^MZRO-}+PBkNd}6UL6I-e1Ms!B`IAL;oH|-O0%FO$ku8` zBRXNB+=64eb*{YYk+)Q~0BL+PSog5M&KfW?!g5Koi>Rt&QS(vDzg!@05`NZ|Je zkUTpu!1yTD!N6{~A=;wyY4pG6lAKIX0e}L)cWPI$D&-zB0000000A5svG2y`D4@Xi%T(LU zTa6~tHGV$w948fWZq30jRpK=FocD83LaBM`cptsoXTv37{o*wYeuEd*X?LMKE;$EX zk3Q(DJD0Q>YR^01=v@a>V@UGNJs|EN&-qdI!t9IOu2c(lNj<;IQP@tX_92(?AZE|M zzf-A|fs~07F-Am~5`j8u8)16^+r%SZ`l+8(ue0=+mVH9sQx6}gkNUFjpFpiNrhmp5J;@2gh8vdzX7eimU8pu--lgDR<%_6A{0&Mdv);778F(` zOwLr37jsm%;*B@}00LwtzXjyyQYeicYTd=nS6DEJj>m`8x)G+8_T8X|h&QgCO#l+V z?O!HkU}Yjij8Q+pn86dNDjwAAh(RYvEy;DU+SXEcITa5q4>$XFz^zpN)5^yFj+w(w2?TBj(LXVx&#^HXq^ z9Xn-etG#CR;$_;)CXx*deWEq53B>qBafznqN$yaz0_Gp>4(14Jcjr}FAjuKKK~AKM z$U+S31g68PuDhRnYOpBdm4zM1pnomBsV%~@GxS8{YpRf3^95e@K>6UaMx%-h=wuD9 zO9IaKm@-084x%pR?qbGe=JlDE+^AWB)7FG-+y%+7@sHlfOVBPf`F=fuVAcG9Xhsb$ zLGuDx;25;UEFfHhXiXnLHpspdJleVwRq~kY@+6)xCndK06tt~Nvnl=3Y(+UKZ7Mgf>&NRb+zX+d3NAt zAISg!00N_W#3oagPK07NmiFwB+9kx~E4_Rppr|}sr0`Ig4vUH{+^L_r4Syl^a!~+) zWfV@7yT`|!FS4P^M$v9(8Fi?=b;i235>00DzLG}=s-s^EQP(WVgT^R1gjJTHp<{;& z0Q%G-!7U#E?dOj~#vTaM-&VDBJ4fhE8&F>g9&KG%6vWa<`BeBBl4pan+IlgBd@CL}wks)3wTilhr~d=a1gk1>Pibm?y=k*Fi(kZ3#7 ze4Eq65-ZuZWBDt_oe0_coEBGQtAe=6d_@rm4hQlRw~xYKAmxbf=hJ z7`cmPM4Z3mVp+{u_ zHFq02;}-%Uib?UqwDr0|frhfF(ra+VTp3J$oEp3s9P_^{EacI^SCCAXh_Cv1G&~e- zV@O&e%B=I|WFHSacuX1yZCcoArfHavD$K%xPke$$l)F3DV79Mfh45#d7tG?fm*kmM zVw*xe-M6s6$G1u9JX+@Nq=C=?Y$+1`(q40Q<@bk%Nq~8hRwarB zr`%+TW9-D+Rgw4Zm!vX-ip=^7}@+Vkh4>#tl&-GbPdTjQQ%{6N~9^X4w z>PRckcS9|=r7mcj_(jPaXakPXI>)Vpj>m3WP71FNZeyrhb6V7ittrOzm>Br=Kn)av z{1~Wyqm}Y^wvs|J0li!e)*h|b+X*c516a5}MV*WBszdvG=)W3|Z_Rzp0@B5B7cgAS z2hbEkqp2uk=p_M{FKx~4Yad}PdEeCXtc~oG+HbM07t#=}J9Z zVh$=yL_D06Br;I~pio%Ch-WN8`pYs2A1B`6?h|_J?`OH0q$FBu&=+z6zl5afe+f*z z;eiZkR}`PXA|Bv0P+OwuSsvw?8#Mwn-69w=M@0V5TQ4zQWKQ9L2!MB2y%PiaUz3JhBNZs^i4ty# z>1N+wDJEl%SMLW)2D0003~A?Ji00o2)HhRfs(Z}})ruuhhV)y-al`=Qb4E^|#l zMlx*)E{F>u)RzLb{Z*Df-r^l#F0&i%+Tn!28b2dq5)au20vt}#^onmWvvoWXQAoa)*oF2S^RJ`EA!DCp>l*k1Ek8zaeH zQGk0|vF^rJP&(9mHMCbHETO+1J%rk}~Kb4U>TbD(D0e zRG|gvtkNz(fnk_PfwC{1#(sHCz#}Bu-(pQ4dC~v_j=6lp4X^paPj2b2@#vW?TXep< z5R>@kThL_52tw*NFzUncYuMlaoTdOZ73BpJn!a!6u@hh#u% zuVSQ5Dq7mC@JSg`L0CnPY@$$#FYJ(`qDJy*1*To4wdPr(_;D>_EV-1l6SV*U00Pn{ z&&1qsVfg^Af2^) zl-G$cPmTt9W+}W#@h^yhETHdEc+MWI0jTTQh3P7=rcmflOY$De3LPfbFf$m<@`ElA zcYgwyH+^*e@*MM}nD}W_K|R~3OP%4?0DoVoR~INNc`m=!pY+lXNc)>?M;M%*>MO3P z5(GFK)q*z!PH*T&j%ggI1grDKBa#ECFB4t8R$={i-~mAtdvi;xw%o@b&xENZ%XzC2 zk5^XhG3Z!i#ACuz&FQSR$rT!d{ov2d)q)W8n^g+@knRvI)R?S$Ent^ButiS0?*Z<& zD);euLAL+Taw~k3<^-nJ$d_mTR#yh}+Igm8-0Bsq0>`S-r%G#G1t$*|Qm`o*5i`}4 z#*UkJhkWtV@TF-~x$+mPUY*x1z3iRY)TCULp*y1z-koPK9s>Kl31d1MLX|Qu^apFG z!1VqEz7_?{PWkYL8_l+S&pZ#f$olg^vD_dg^Yd1~qa>MjQcFUPF#OWzz2bzwC``?1 zm6uo6(jW^Q+u*O>bT}5Y95J06{16jTOO6d1+3AsOX&BEzYNs}rdZbCmAQ6xnuA(a= zKmH?4S9yP2nACC4*j{)rgGYdyx+-QX6$D~blrV88H2?G=vL6;_lB6yx+^Co!O!g8D zc;fm7&BWFyKVYTkMf_m;88X=c=(Xt~dO5kW>U&%t|C6&Iu`aU7i-wd|Y-EpFSlbT6 z<}7>6$Y=?*>{1^I!zd|6FVHj3>WXR1#00003Eq2I8 zyh8C)S)!*&m%yBFYQYo_kBD*D87@qZWKSlyqNJXeou#n3`--F-3=Pt&L4-&832qdw z64H+Vk;9i5;TDwDXO*ofo9V`Wy|)(kz)oaefC*vDUG|Fw*hZu~d2B%}T_%@=@A1u{ zGmAqQkWDByH!n;J5T1W-bDlA)M!}-$rq-6cF`PM3LFEM-H zLBJ!@_m1S(1EJcOCb_oN0)k-a+e1VSrO!rqxbsEpBh}Zqjz;t<_JupH?)3b-6qYoQ z3vOM{p92G`%o$COSuTT)um>CG@8=SvRoCPMcb4fp{aU-H*WLuRal*jxeJ#j<=Z!P2 z+ZE49%py3?~K26)J`Nr=E@F}HxiMjd+E zTOz(i!K zq&+AA_bpW7jNy$0xsX8THFgV+(kBJR32|8(xSoKRd?KBpU*+2Vq5csVO#fZKDSuK3 zT+s<)fr)I0_`kOX0V@Kt@W}}I^R#81P)^|cU4*P{pWdc7rO=D%#*AJbE*R@O7O=tD z7DvywG4@IVpf30$%E6GD2KHlBn!>A~(E=rc?nPi3BO_2Tq+^WQVju4*%=*hID0v3nGUbIY`bh^< zM>n(S=$lLu&x4i95CobbDBwDK*~6fb6@4|t064@}{T?ZqfGxf*P}-YpRi+=z-JiIc zJ*B}V17}Zt2LO*u00U;4S`HOay0k9y%`pkb#2U@T<5h2!oBct*0;ME9r&j+w40`}I z4uK9KbdK<@Ag!hky9u>aOh1%xLko(7vvaFpypSRdk%Eu7yu-jeGkub9K1I5Bzw2RK z@6s~>8(GKV-cV~r;%pJTbQOZ{NrSl00(9*BVE+=}+KTtdP)hd$WYLs4S#{GI|I1(h zid-OVki8L%z}GZi_i+s$k))w#T)Om1%l8LAiTSP^vF*5c-IE*v+wbh{vc&Ej*9h!w z;4l57hIn=7z$TxgLPx+p#hH3OZmyQd9m8Y`nICWUVidb%;ja+KR9o zXaRipsnsAzTyAF)459Z!*oqI&+$H2pWk$E`I87i&C_1>GR(LRRgYW7C!Ev$yJSMr~ z7GRKY{v8adbHwdJn#J1|y>AblF<|2V4#}lUjCnosaJ!g3sY5qu36bs8bnu2D%ThpH zx!8fPDmDTP(xUgu?1LV#1zsd&QquF5b^g21gH6KBHfE$xcBAd1ozF^vK^E=7ZYk?+ z=ND$ARdj6^)z-zFp+f@>;rGORx3*X16|=xaqch;=4b#GltsQ&92VkCYHB% z1nzQR8HZ51i*J+Uq_;y`;+`22d8im zL((!p00001uow2Iwd$uT;uus%R%tC8fel2u^XO2Qi7pQ*`4Q~!Ch%C0`TbJT0HoB#^jJc! zLjlL_IV}+BptYKDk#KR^N)*4y&`i+*mf_z=KNpd)Hp;W{0d8mL1I<8*vX6K}2E?2RY?6JUPJ8z(|#F5xfw2#zHGzh=89C3E-fz<0(BAmvpc~ zmXRR|B{b*L^}@jXOZ=|Xi^!5jrBn6um}+UYZ98z5AMqH)`}A@2yRH#h;jWm<^^pTo zWd1w%4eH`Nn7<%u+t`r~Z&~6QAXF0mxBvhHfFSLIZ>gaA#OTYd9z~A>Ah0z?EFHt<4QE#HPFtF)hgmtzpH(goL7^h_8B}q4m>vLW zpCdQl%@MRPy@wi&;km3Qa%qt(mcBbt6>3g?Ay0$2`p>uR(YcfG0+&3HT@%SIP=R2K z5Ve0uPD1P*-G@AfJEF(EfBFDUyYW-AOWowKMG2Fe?5m{8zs1ZfexKQg*l$H$e%hkT zg3fdm2(OgcF{xolev-5}$_5 z&Zo0{9$|A%FZZ`Vf4_7+2JAu@G{55cNF+I)%TIBY76=;*yq3Knj&;Y6iVSTq7fcna zvAulx$7%-{3^z|1lFd268=5Er7-+~x)9Cz_RKHo#i(6Yw=UvGa~3A`c<<` zBb?YD!b}Y<#@w~yupK=g>923)d)pJIoX+2$A^&(=3~OVf2zw~u9^};7Zi%(0@x$Kd zx+bj0pZ|s(Eyu5A*}Mt)mEYYpd1^w$k{~*vM}IxbmI`zecLNip=q;n;LS$>>rk#17 z0+<)vhxGL_0dM0q7z9eq`whq~ssg27yoeJKo;UY!+mZuVT(RE-q0-Qwic~XePQH%S zMIzJ{F(hP}D!kLxMx*w^!Z00#S+DvZ)7NkNF@lX|NJM2=`y$$Oc{cnBbR8yL%}Oqm zl%5vb!Cf+qSrZYq6x~49_f({3`%{rv2I+B$wJpL{i;0bEVBv;v&_S>oJblGVBF%x& zvH`G6)$FEuI|-n|1_WB`FN^J&0)2EdEL%4N%crW>>;{PBnL$hdxBvhI5qgjYYMSiQ zuX5L46W-({B?fdTpB3OVn8H?QKKN94r13ST)HbU#j9RL%@+bj^VtEfLZ<9AjeQ1CJLiF5-=w)ziywb2 zq_hDrQDPmGns0gstzO{sl&Jy_{_-8!|LH~n;C?+Ue=`t{{;m*9p121rtu)#q&41AT zp1XhZk75fY|7VU@nTf5;zo*-W8MBM!f?16-9in|avIik0V=y*_(V{pQ=w&Z+@lN@K z%UkS!7i?v?g6g4R%XU&EayEEzlVw|y%R4d#v3@eyqj`mH7cIv{im&P!>te@H1Qi)Y zz7N0drivyPQ0yAFb%1oHvssS(D!@CyyDy33!?Y|*OC5vYGhGmvmWF+uz&m_}7B9QX zZ-}RUo_sj$65h%M9I>9f(xif~*}`_Qa^8F$3rxig?HusLI~JWs_Xw8A^l5@><5F4Zq}>yph?oowQ*38ZvIUPG;m#D)t+$AyTbR;G z0&v{s_`6boEt;yTqt>XtxS6O1SZ5Q7GOg6u{SvCbk(+`uWSQqoBJn?OL@{l5iHR5t zPApL{>xnw)gh;8j;0za2tw|kPHK(egroWKVUy$l ztEx!`??^$991maNGO<%cS0!z9YxCgt>@gnjU)KJ7c@|_&bWY7qyxWIIlWZ`l*{|}H zL6lW%S0qG`1IYBqkBel84AL8^M1RHeLchBmR5~32JL}l@Po;v=5vmiO*(spg@Ax~T zHv843@lsUZ;VXr2lgbiEz+W&+d-CffU(WCia}No)rj=b-QF_Wh4fjvv+k9=vUshnRmxLy2_x zJsFplCYsYw@%US%0zUGC_vA>4SyowUu)$L&?UpP~^+=86xTuH^PZLJ=vITkKM%;Q& z)nF1dPn*%q?#h0~tGa0kGVnGIu}y)80y67fZDA1O`u<9`apx!JCoqRO!X-C8HFnAv zW*8Bri;_aDrpH-6Kc1q9`UE%lfm>at%on~TqV1T-zr-d(_DL1reG30eW!QN8;A2o? zGa-P;2^t|L|IQJn$p5fS{@kIRqQEf_*}g6hGa_`I^jaJP{8zCWN|i0bCe--KQ}s(^e|h5R_`j*0(8z6QybZG3a==vYx?DZog@X=gWajrJAce^Fdk z5yZ0QQt~1s(^WkH&e|gV({E5b=oalc&NP?+z*9XVUcE`mXO#Yg7C-3oxSc0JMr0YR z*3sCzdC7Egxuk2amND*1;r1E1cCz4V4X7CBH-eY&u*h(UBxh?z%6}bgF*x}gnOIFEON-wqgv_@_&CqL2-t@PklHmvkahK)bcOavARPE5b|qsHtDz^?vof5JT$P78z?96s48L><8zmT% zXXy7NzV>^ewzTm(BCa-srXt+jKY1b@x0xx227;z`J&O3nU~#ilm;e_u4hX^V!|KP< zMhdP~vs4($@4|q|2ino|Lx80h%-Ddk{y0SWrJ&B3ATTr-VEC=!okql7j$q}~<{r&- z+u)X_*ia~;L_3ofQr%KrtdtdyRdK>3g8SC2nR1MCp9wr?dWXCxGOzDzm@<3$dYJox z?4VI%p-2dU0=xi*06>zQh)@B51ORt>l6u~PY^rrA3Pm|^000000U{yigTG`0CfR2| zT4ABWBTh70xyiv-xf%csE5xi~L8}ZM`dM&o6U*9WI5SORT^z1!JvlXCF0HZ3RkiW9 z+w`SAFnpohIqP*z(ewg7`<0}(%O)XZftX-@qJ1slb*6WOZ>e-iHy{AwRfNgP`=C%O zXoR^Ifd8U-a&4Ju68QOtNv9WfrcS*GtObtKDjp%fI%3(n-DUwk#k?Z3oyF7VSPK!Sh9bF|7R zMWc5+z-b?T5G`a;4mJUY1)_LMiag?`(mGyGVz%qHIZ6x0007$Cl#2f2lqQE}vF zG!A@9mjx%%50))8+o{=tNIVnXv-5W#MY?uiYDFp>EdRz^S(Pie(_0z$`R{=}B{Sj5 zZGFN6m&At$!fJ(?Xx45}a9CW~rPcuh4YiuHpzfr@H-o_pi9P>jMeW5qB@M6&H8~cR zy|%ve?RuL-X68OL`AW%nngU*@#ljEa>gvDUG2V zU`nJQe=L-sfy`f(A0_u6fWA-?!|JDZFxUxrwQ09bl)Uc>$t*VR492uV;pC!OusnZ9 z7w4yHP2aQNH>Z&~d@QQ~{B{e|`_e_&M>y0)GDVdaaT8q+>*D$jQ1KlOog@j11{Prh zY@G%a615>W@d8%VO*Gb@U|)b#=`T&95|^=u_3zek`(Cu?uwIAYJ~Xe8 zI}X;EMAyKiyCb4tU`O|o`LPce;>Am;ihLB!$6pOL@XM@0ZBnQ-Y-YAbP6JMm+0u#7C}{-9*m|k53hPN5P_PM zPv^)%TS13m%Ci3$_-Wsw+42xd59gQdieYYCYM|O7aU2c5_WKQ&Pd>Niuq##kIp|TJ z*&@0(AcRN&00PQ(iV2V(B!zZVD#2eL9c{^BYW9sn*Y#iW)ucHdNw2K2cbs5g8~iu; zOTWyHZG;2!#z3$&uaS%wa|lP4z6{N$=$M9qe-osC^gUQ@TlE ztPxK)GB)3o|CdJ;@hJf$)OLL^MB@E5%JpV(bQb7rFC+=(5Fl~r319O{N+Pp9=6HNB zTSYzz?}g}guhmfb&(8kyu|SQzDx?&w>+9UA-|&?6}h|;fD->8-h70j z`i(pj6D!PExC=R$3*%tx2tr3s*h9Ub1WYs+NA!_>h>wIcoJA)|&ul>bWcNUVm+8D- zFr9vuBAMQsF1x4Z%@}M1a|+C#|8%JhRU$n`39sLxK_Gk!m^KJkyD=9Gg z8gK{**0luT8+(#B#BU(*Es^1G!|JFN2!qut+el7RBvy$P z7ERLiNUTkiEnDvX;jNYwj%8Hh?n5!~@RV0{3iJ?;3MAso9z0<8&(m^}XL{#`cx(yq zB#Ao?)+1o2NO2I~LQMilty>A)&Qyx(~7zj-kW{0EetwCydtQGLow9Gr*nY+l3BYeRA_66I zvdLg!^5UH8XuU{*WSVx(6GOSIy(L(^Kl&TVU5_0#zOx9|#G=GH75mRk({H#IOzYp) zK3;zou|HoZV9FN@V6#^tp8znd6C78w`Of|juvV{nUWeckU_>1kO&u#ytWJFCbo|go zuM**w%jl!NuGem#hfnOS=EJ_^=3$mT^Mk)-#03r>M zft#1Gr_hSb6-~06j1`U$jow0aAJdz!lpBuN6a5N8v^JW?9z18#o0JQENi$otjzhwY zJu9F5l#l_{F&*5qVG#B9zXYbFEt(}U2a$12aG1#4YwkX_PSR(rCR{TiI64;^nHwe7 z?Vluf>O6uQpA~uR-Jm#SMQf_uTgIByvbr}2koimiJnx7t3}3B%8avhIg)yNhBBCZy_t#_kH_ zCHiy@R5W_{Tv?g|f61$YzTUF9j-aXw%#lpL2a}X&6~pRifGzD@`BQ1D(zvTB#`dF7 zbCSIXcTX*5vFL!fu%4xO+Vd9We*c9pWB=KZKRVcGQRyI#E!0whQjn`>j{QwHItta; z^tcJ(aHs4-S+T#e+jfBhyi8yMIQPzNpY{}f_%6Bd+5Z4_p-E7tNlos70i{Vth5$g4 zoJ3FofC9jGc>zfDX#n8_000000SFl6`CyE+us6{?M{eE`a$}xx<6s8Ng%Yw!l97k~ z@RJ*bxoPI-n%96SDW@TGg`4+cT!%n_1pje00S~3!|&-*D%UK;XrUCAC#?mZ zSt_R)j78?mz#3*pUHh z>Txo-&z;&7jPtYmM38W1W&I*Du3_nBxzF_mY%IAMJ7D+%CRkNVHSHtBhicXcPOAjl znv@*>6`%8byfOg&lu)m`yIfQI^W;bD0D`#h_(F@`2mNV4;xlt#f|1c;c896Y6-kxW z&bzKEQq<koi!u@nn zu5-Nge~Jcdxoet4S_m_;56| z9-nyR2dXW2@kx@i?--=bY<1{Mi( z_>eAS57-m-S$8>Q70TtA!IK$K-lEjClvp6^@bky_-y-`9yt6&@ZKsWc zBkXRV{GhBN{8IhOoZ8feg@0mDaiNvA4uS$3g7hdS31huI<7klZW;ika;>>cEh~wNy zSA&KHV{qea9y5%P8tYG7JX=3$&?$UoaYbeVe8 z?-KXIiQxZ4innl{}NzVQTiv4C9ctH30TPzuO ze5>c~5glgXw2cWJee{h93uRWG(eWVdEOo_{{(3JH&4^Om@enD2o`flNVRwOD<5{3G zsFAO4RnwWiFnrp^z*12TuiVj0=o&L_!> zS`I}tnFrRnusP;S-4XiUt1WfKp3y3q{!eN_+-l8Uv!>lnC$X8J(-Dd{!;`rD0HFJ6 zfH_~0wyTzNGv2IuXtZW%uj;dNrh`!YsqL?&o*`Ht_w#a>&3Ywwh}MNuxt5>RkEDbp1*5!LRKLkN^M!CVG_y*EOl;9c}ZYyiB@K5C&fZ`%etL-xa}s zL!6yHleJ6*Tk6C%=LUAE z^dML@f1bY@CrFS;4JMg@9z;aZqze@`*0*_QKT7Z7eqKq0v@!*I=2Zd>^z%hE$;!Gq zDjLjyMa8rIfjZ{x_wz)5D=b!gy5ffkVnx&a#u?qxqEXN!KFkIsd$PzMf|f^5fs(Af z!iS0b6bjcFua~Cj#p>*d*dz&x1_k=kOBAb5e!)DI_Jp@tS&B97cplY%VAm z_sladm76RIq9tU;PA!`Pqmxrn+H)jMnq7SY-^ejH>LOk&5cj(z0FzoNcFsR7&G^dz zb&da$x5Ne-`a+R2fHZsNGPbDv>x}4u0CmU z?`U;YVjWfbr+;3V0yZ5Ps*@S>T8zGVb&|IRIqi`VY04Dc2q}z$_5zZSS#2vui=wmo z=GNwZ|!9e&GwUwnPqFbSVH*BPUg^Xu77798N_% zU_9cL+tF)Tw!fkyR9f&o@Z?1$db44MH^N#yD2&x}lFaAzn#C9zTU*Vz*$5Yhs1PND;`+@ABR-mCurhx*`0EPfS zlJTK61^^s)4vtK6_rdqg^Z7nz%*i)e^pcmN{Xj%y;y?fZ009pkfeqQ$$BW}{wyv+} z8a4HO^Hc<{w`YYbleAmjObYQuovlx(PJ&p-ju<{J%UQG0;hHF;nk(1kB`4kdL&llL zF0I~oUT1JA#Ph(dKa-Cn{A`PtQ?G)T{~PKvFurzz_OWZmfs<{k5wJzYPujnDMLl-( zomK!k)!!R$z(^R*Ea^;DYplR$YY>zC)zS(+v=3jf!Z&s>pWxG0i~T{fvbnI(JCX){ zj%9nC5&sd9WF>4e|0OHZZ<>9l*JKKJq@N${_#-Q-lq%LE3Sgl+vE7y~^|poi8F1udop)=-KYJ;V6`yWk^`Y2Li(GfnJf`)khY9}oZl z1OOi1jelg2huvZ-pOq*~}#?;On-y1O~^O zSaLy|H+itO>DDd9RiQW(_@NK?&@yl3497c%Tf(*!uUunZ^+B2%Y79^!0DhE*r6)D{ zP5svgkuiEMl@89DM9UW=6)FRuzQOONltbQJzJT{dLNb1OUh-4gaBEG$5Xf#is3Z?N4mx zhg;hl9N4@Pl}_>K@}AK2{bjk z(XaXATx1qnu|kuazwd$=#TQ1A_&R@`|RMn*7xO>>9wm z&?=QIy;sk2p1^+^Xtt z7D;N+0@l<{bMEmTzH+5(b`^@jfiuHyTIl8hf2%u9rVxG~=*CSA3_u9h_kI6-#DJ|& zl(pA)^3llTH;wKhu6GZ;1@RsC=km(9eXvhI1RIHo(K174uvcK%DANpcQpW|o?!Z;^ z=i#MYOS9a%TyJ~M;iLSf8~ich%bf>>YFeZHT3fMQdI&!Ms4U_hq=SP>TCl4NC&Q^1 zR_!~5{88Rw00Kk63z0!P%YIKt4iD#a$UL)OoO!Y7+2O3A^T3l8dum46vm1n8*VKsY zESYAKrh@^;HqIk<8Q8c(HY(zP9g$@YULm1h9E|3V{oY^**SHL z0ie&-3Xr~*`e1RbJm+APH0OiznrGfys$KMd5hc2WoX11B{8cQtm3$wx;bP+6Qif}d zaP~C;Y3kV!L=oDOpP08JDF^9j)L&bMMaD;OA^_9V8ZM%!JDt zCZ@GhwrXx~(s>ZnZ`Bv!!dJ?B1*_qcmEPr8GbyMo>!3dnKH z^a$t6C*AQ|vQ`$xBn9)~6dEcfV-KR)%laDxki5r-l8J}Ov48*o1Ey#%=>hOAWyzdy z#`IX_<3Hbc1P?5lHFh6Eatt+rq|5)%ziX9mW1uo0ljWDMZPE$&^fvlEAd67U4%Pwf zj;jB(yJZXD+iCI<;T|Yz>_>Z}poL2y&VhlVjG;??)C3s2P=c-RPEWJeE?WYd*lLff zuEKoZObGM(y(>RhQz&R)bUW+LC5~TI`Vizl?j#;^%5sE-?C4 ztg^gAw;pRo{xoSP4UsF_Y_mk$)s@+6ryxo<4;5+y7LRo7WBP&tB}LbDcn95z*@U6F zST>o>2LlC(Qf_1LB=RP^)K57hOUbXiw@0l#ow!kLfs@buMa;s~3)Z1HB5pK$xa+FR+W` zntB&$ed$_vT?PYnXi?<~#wlAM0`5KCrjr?@YXbYa%gPP{QFh3>c-;H0vwP)6{czG+ zc-q7($gimGphapya>lv~+-Q%TcMJi}@hP>mh~^46C3@HijV!csA8Mok!}1O=ct zKEn5sz8)S?@EOu+JPUFYUb0}vJ;fB`c{dnk`JhhxxIaL+3n|Y0sW~NO`^)YYTfVqm zz0YDS(9~PL%v_1>eBQwYUU4^&x~6-RP4T&8NDx?yJso>dCfn#jN5}@F5#T=`Y?)6; zk83d`%X%DN!xZkchH|$QBXimCC;dBswc|LqS{Hbfl{1wMCH>-n9-(%0puK#&1vm`L zR^Pres7SULe>`>eQudprVouCmn)Q*`q0xyN3@fH&vI+N#>!TT#X6 ze~9)o($+7$-8pc~uW=kD&If_iI(rOzd4%GeL#-N(Je&+6#5cCUN#U(q$tfw}cmE7o zq?(=e-Vpjyb>~o8uDZ0s!L}5rGF>!3|JOC)(M1iGrul77)!+EQ(9R` zn9{Vy;o8y0#}@{G+elsJMfGC$Hklovz$_oJgmQX--K=5VH zL}z`ZyxFm`u6pjg!argB?Bd@jH1oi9WZBm;apkxfL1%P&pXN?XRMBstL`wZYJ7kkn za|tB)Fr){9y@%YlqkUYlelTsPV)r_efpXFexUBaF?0?gI@Y~fKn%n>^MY0kdQTZe5 zEi}SYUo>g^z!&~{k32|qp-b?lOYQD~0i{dlh5$g4oJ37QfC9jIPMG5G3|#qu00000 z0X`Vy+lTYM5--Tl`av9nhgkAs=N-w9X{kuFI&cYYI zsvucq-R$Iu>taSQZSWWOIv7O4oXBu*zszUF#hD^4AP1kk&UKnKdZh%isdXIn0m*%O zj}sduA_?EiVIFCV3>QJV16Bvz(weU{YR5#@^@^hb;8rPIvz?Cv?aoJf;$LYXsqzO% z3L{$Fh~C-KBO+TT|BRLvVP=%@`+6BDLF@<*{Duypnq97)Xzw9%8Br=2p&O&f&RK4Q zCZL(GURTGCD?%nSip#Dn@h1$F7Suw`R@C{QL}Ruwb7+(2lr4<3(An**!$Hyol$ZQ7 znM(wr##te|kur|L?~md3B&;{>P`_bYD$ZrKlR*V4zlNa|wx>8INj`Y9K)ywo4-4newk=R6|?!KZg zsPDsn9X=X#%g~q4EA(tqa~3l1WenRATt`L>6&;41t%g|{E~VTtT3w&DWH-AF-Yu;t zlY}oQjRlcBqaRM>!<7BnN0&^?Yg1Ii&06wgW&PidN*Eb=sidA^A}Y^5Ak#Gb%eL1P zozGi(B-rWBd+SvzoZ^%%wBBXQXn9%KHs`Vm@WeZ`i)lcE|dqnpE)T!cEaCaZ}X z!H)QTN4K>hBAquTA}W--@Rov->y+)(-0~6x0>FZ3edIp&50}q#SRA!;)$s%Ubq~48 zmXv0T9Nw@6@!UWc#)4Fp;w%?_^Hd(9WIx|9?3ziru)f3@ir|~(tvmM3$I2w>eR~Vu zG~h@l7POL$=ydMgy6;Q%x#~8JF)DdPHiP#whN)nM$*f!ROzec&pQiDKB;7nNq8i*` z$uw9&&|V1+!rm(L4XOr#jL)7N3s3lPq3n*yMJBiB)zYr}s3a~yj|#*UC-0I}e1wP- zBvW`DenLm{l9d^=<>iHg<>3I+eTd>sXA|nS`4xrsW!@(IOCZ7_g1Tj;g?Dkj&m-WX z6flz4WI@%S5#wxUeEUm1t1@bw!v_g`P9T#FcQHCN-^}-MP*u$|xygwA zp|G#c#qCVXXeJqLzta|aB>qy+QIkJv9CF17BLyuN)%?mutk85>#nD-d2Y}?qy+%mW zDW>r*0RYehnMN~iQk+*NIK*fx)XFruthp%#M*ViyeMV*a^lFTxCuq`2cK{LuLbGy^ zr8EbeQVSlrZ8;FG!GUGtz$!ie=+d>Edr_3@h#3vRjfxTvJt#u6(CNa#_2)Yq4y7uE z_x>98?V<0*Y{*L4h?dQGdNxwV*yY?1DaICuSUAlZG&uAmbIOi-gby`L6a16u=C;*7 z(&7zqD?RYUkHC*d@d5LRS*YfI&VxLP!v z$~%nMpC4~KXwGvWT2SsC8HAYFe_sc5dZ2wtJDzIf_VbV4QpZs`S-e9KMZH(O&K5qU7v08%bw(Wm zo)C3nqXLC_`iz%KG;cp(4Uc_?(XbV^NptobcNjq5j~*1Mu+u&OJHafyNJZu|s;-1& zMb@^H?fOGKVAur%rvXy2XOI+L;>ac0;>30XC4S{r&y5Lp1~+AS#Ws&8ND5>QolOd1 zfgy~TlVQqQ4kP*o7bedxc8=^mQC=Vg#qXjy}WCORaz~OTRl$A15HFcj~uv)8LrDP@_ zTx8W}Oah_wSm}~r)(~x>NxQ0qKnZPHrJH0|N<0A7+x2FuxIruC%cJEzu$wQ9q^0O$ z2U7VxL*H@#qjL>~-u(8VagYBS*fmSJyBP*D_E&^CYxMNm7V}QXgGv}TeX;$6LKiv5s=-w zpZ9C6M?^4AVXsdl?Q9_8b)}^#UBUYUvLP66ah&!w<;y)av1aI;MX}hLu1BT3R+7U@ z<$}0b)^2#Xo;v@9&@4ZAMG>%~L}RG_-_B;&L3}_}y9)M)I;(sbHbY!IKVxe_gafU{ zELMzD=-1kWP{~A|L5sxNNAwY>e@s4jx{ORNersId2hMo|u|p0{Vw_7&gy_PBCw`ZR zSovlMf;uKEB?yCXDBsR~-}gRAM%t+$x~Nj|8jAp>M*q7j#mPAqqc*1p$w}W?Gljk@ z8$+BSYW^tLczj8%k%s{xpDg6hu8$chD#|Kjs1DXh1ct1jTOV3F{e8F`>m7=AePkux zXA2jxs>p;)FXbv`89&wTv?IV!4B6N9jr|n}2Y|sdT(>^c1Q3pdd!@dZd0b-h^2-Y8DD{`jw zkp{rj7O3L$S>{|S`g;eXs$&L`7a|lCgiJ30UC-KQHNO;=-N`&@az;l`PNxT&CLHpB##N|3BtB?3|NlgZ^(^-PM{b}{mz!jbUZVLiW zt~85c34-4QtaJaq_X@(^#Zi`&XU)lsk1m;()~2b3<9}`f^loPI?-h0Fi|H;{Y57=f z?nHXi{htz;%66jl%*Q5d8UPsg%pZ9HM`qZ&m(0aPZvR7O?F4OKuC)Lt;pZnSf6u_m z{d50v3=i-LA?rLeC?L5{Mzi}=)dy+@5n9ThmUq6vRTQ+H#2drifzP!F1sc?*Y3zGJ zH-Y!;GeyeLW4n%NbGypI)|=eqmGJcKe%Lj9!V%||^=UUjqDWob&NX_Gcb_mXSieap z&HpIP4u-i0nB>g*npDRLl`RquuB$!V#a6Pk49azy&QXwvQLXFGgB(#!K_rPR1ebCk z{lU2Di_wDAW)`Y!!LV%sP%FQvq(0j3JTDjK&-F}DSa`uBsmh$Z)h?DcPWrnn3ag&3 z&~O7VBn*{j?eLuRPRT=+L6@PYK|qjZTb6esMjv!I5N~op*t|wJ!Ts>G0J%)hjOW)d z3ksQO9Y-)29&u63p9HhT_S_{W4S-3HIsF5m!u65zhq9X0SopX#X*WN-m}`ejWbvr+ zTV~IWm32D!=(qNGuS4IyKLU491}0Do2vz}##$E7F0bE$QWm3>CLeDBtDLbz3I2&WL zi6g|8(_$@s@zpPUD5B9w1MP>{SoZw;f$X4D#Gy!?fdb?Jh5$g4@&P~w01$T$p|kx48}+XA3eo=5000000PG(^ zPg|k{Q&#FZ?wPd@F}prksn)wBMEd{(ciW}kE3&-2LHs5;0;xQWWkY6trgRFvAZ+eZ zp&{P9AaU^(P;g~6K7e`LcE6~fJbb}r^89xxJ7)Y1A{85ymI$^Oqtl!v+VPHvQ|c5` z3u&IC`0@96zOmfQgP>1SD`x^L$HDS9x9&8(=Tz$@R~()T56UUwrG}Sq@fGv~@+!4# z{1N|SQLV>l+^{vU!nwfuSQXr5wuv>u&fPEjSKTlA?Mpr z#9*ElXqZ@f_@^1={X1nEbFK{`s)|uLfbakS105gASXhOlm$h&3x&C8iTr$olNXrte z9bhn^Renw*X%MM7bOBBj*fZxJDJmD%wqvYm-?D*A;*a96#8HxkKX&83#-;ql%$w9a zvRP*F2>4=r%Tte78Nu?G=g_L*-Hdu!4TT)@^Guw}$$712vZ4uc# z;qm1jIfSzMnWwJT{Oa>EQ|E7Dl%tDPplrB~HtNHJ+rSGI(6l<}kuI)Q3m)_H9z zSwb6LNpm9pA9H#<@ut%oON)PMtB0Lz6zwTZfOL#14$TmZm(?pyb5R^rrs*-5@yDwM zI`ZQzbf>wk3|N02Knlbz52fH7suw>i@CF5{bY>^L_OeWhF?@X1o3r`M1w~nD~>`&U@Z|-BLH+jIB1$=i7EivNPt1)kZgOo*)|s4dE^lZg4^DTQ%Fv(QpSB;w-Qt@oG9{ND4SiLn3* z^xT|OHDB-`R>U~wbztmeRq45T$9qqjj>oC{7gdrJh)eq?>e1X~8t;Elp+UVZ;CK10 z@=32RRRSe$Us_Dw4nT7tHyRfvj*7Mg`M4C2>q>bZa57P=t4#H9&%U->4kd2ZCCq{I z&FNhG&l-?JT4HxB{^)j$<$Y45&RE3wYK=G3o^ftaSFvl5Ov%7vF-&(mZL4X8X}lo- z9zY;M>fB!-nV9PG-I{V97T<~nYh@jUX^5VrM|h)y#C^A$pd^L&NRze&jRar-00Si= zrRej?=3#wWjnV?d5r>w78e|($=R}U6WqCO!1{CFes2oK+VH%Fx3eDS7n^S}5-qrxb!~jI_lok_7(3*rFf&ptojCJK4Lf zqZ}A6BJEWcB{707C)n2LJFl8@*+KkjS!?JTJ~GxQPx49F6m0_?}2#u?VlsXM7 z$2Iq|pDlw%PjZg*WGzM`ouT>1EF~;Lf_=e2M5z-JAh{wBCZv|s5}0kfg%xC18IQ;S zBO4etLI5+(S3HSx5tyJnM(SC@$--V{2LqPs_^Ca}n&OjfW+%N$^~KU5$l#I$HZ1vo zQj7FRvkuqL%EgK4qQK0KaNwCeI^UGjO^yKZ^7L?itfs#63+MQbMmrW8%HOj6&1#1f z*3HOREZDwTSB5UyfphF@u2|5QT)!>LBrWAeH|Dtf1x3>td4LhMdm}8z`r@G0AoWf| zinYsG{hHrSCJ~2*Kg{sFsV`}Zl*-7cO@3*o@AgH+K!gJ@B*#DCYFF}D_SHJQp)z^RP6mThkrR@d1PMH`A98#4lR& zE+gxgmP>4yKp6wB8a<|GmqvVi{jgvX1^7bqPzHFK3et;*M4^}c! z(npuKs0R?aJWNbyLNkiq+Fr=aoD$psA7-ghO(;V1m&n~p{Wlm2+LTKN`K-39@)|CG z8B-!?dAPj!6p0-k%VFK(o;mlhaDY+hIKqX{E@>%(Je%me2#pgY z`EB0%>S|*U(yp*5IjD!=up{PIDvNrwL?^h0*bFv4*P8dv6o}>9Pej4uPwtbLGV!Z{ z0+KVUS1>hz5T8U@w7DKbDW7^Z{A1^Bj+SXgZT1;L=D4?y;U!(6LS^ zJ}xtxQ04vsB{^kf;$u9ji2!mM9>hi5Q+I!sPB$Ath7+i7pmm{39i~ef?tuZNOB99x zK$4tHPyv7iz;{-<66*W{xZw#f+`g3n;@{d%b+pg`0002^8Q2Hq&o(K>K@dH#O$5DF zfs3MV9uL2ohHnF-aC1P^XFkP1-P(iIufpK72Dw#||rB541; z0Y!tfSpRa8d}ZdEJ4o=aJu|$hpm}$OxTQ|+JETHqy4PLB##c*2oa zXagRM|5VPeTS$%r+#4F{m9k3UI&v_=eEf})zT1i{F4+MBsAEnev zQ=$=%7g0o@o71@~8ug=V1i#VvMAc?IS{yB=C7c^z{X;%DOWL|w=_Nt9q)9c?w@O=b z50QcZ(^|uZ&+C-%*q}NOJD#(4zVDnvxnb^gge*Jj{^x4waQD|kot<5= zt>6gy!!neqjDuE_msni$^*4XGItlq3OFU6K5}Qo&WUte{??Fg9OpeC?qjbYc*bT6htOO*K(eFij5e`Hd$< zH*dG}OnPC(ZnH`}wg>UD4Y9XYF}u&^NAYI-2%oUr6y2yamua|c;MaOnB);f6vkK_O zyzYPAaB43aMy6(={d(~H4X$K^6+Ql%ou)o7D{8h>DynCAFLi% z5o@jl$~(C;@dR3p8?_N#$HMB>mpaW zn=ELF;jGE}7KpaqVAs`-4zPT(-GXxE!if2g`HM*CI3jrvg<+ZA5(^9V4`u#RG(NK7 zIj6K1X+eQ?03R2C{NiS(020>P!VcT2f)Xj5%gmI&jdU3~fCMmY`bZJUN;J$%RP_w9 zP#~yRp@4ml{2-MR0aTfM4}}S&mK^0(JpiMHlT1r^Ze|+-#@s3Ge|Ohn?=lKawBg)2 z3(5%q000CnA~3g!TaOQAf;V9Qa)$_OZ8(Au5BurS5_rfW3oSlSZJX&LK3g^;C^rzE zE98OmN5NHArqbQVtU1gWnfqyLBAKNV^@H)Rj(&OR@u?&IrElH2jcFuTTDx(9nwJh1 zq-gn*b|wzpq~JHTz}A)Tzv(%Z{k3c0s$EF>fL=2Z6HgW1QaP%~tC^45-DD}8_V??u z#sO<8E3WigGU+eVuo{e)1G>caaG20?BCiR_;8G@6i5ahUk+9Fr!hzAXQ+tIW`XSP<`8Wguvsxs==!M07y(X~`XFQC={QGdE+9Y}Cg1^RD+joLV z2urHluLIP(YUC|D9|GRT%}k2NwN;?%3SMq5lK=#Tj({bdutQ!AJh4!fWSli*T~Zv~ znmBV^H00qxJrP&ia6r?F$SIIF5`zT@=4#I>M+O09oFY(Hhiio{cNSbA(7>3l2!B?b z#aNKm`7aHIwxt`U2EFOK3py_6ff^K6J#{3nrG6T08yuW>3gCYzHO#I1ib+ra6}T6p z)E74&8YvH%D$Lh1tYSX?#wk@girr2yf5K|HGqsB`GF}L5Q7zk?8Wp=ds{I>qLtBTt zY7iP0MV+$mcxvkcFnHKrViQKin1uWZ7#|C+)49K%ey3>9*fqi@!&sTehin&e@An>1 z1sakJ5aR>?v#ntXap;#aT`-Hgndedq$CuQeGQie;nX>5J5GiR$IOvmC1vVo|W>6N| ztC|JPw=VyYFe!m0?ECMw0-S`@ki=8Phpc(DR(+7**s=Lg_j&Y7S zy5&;C1Ab9?{Qn~oas|f}U>A)_gRmOu4jeLZOYOZ{tIs#e7|ukEQH=A^Ql`r9Bo(`z z9MyPaz$DEh^ix)T0MUwfa5j(MD>jJ0hEFLkx-RY3oAkjF5pJp1lez6p|Lnj(Mj|fy zp@zQ}Amu#S@1$A8lEI@{exB8A*%h8gEkn3aIsoOz^(qRFxIhZMz{j&ldCo8Q{LR1- z)iGe+#D!}pz#T7xdeCFcQx;UVX4m`?|9UkWrc+`EEw<<3Tw$t*i|uYW7h^-{GzU~r z;oEJ$@zL50dBI$JtZt^CJ*kv{&w(f29!9w4;rc_R*&yUa2MgHd-SIyf3LwSi5~&EF zz3}9G09byhL{~?NP2DR)kCU&-XS9Q5P_V9$iQl)>c^c_-R6w){p+R`wr?Gq5>H3^m zl+qRoDC1CNNdXj=9E`9a8aoJa%f#5hcgYGWnqaO@lxl?UXRmyGYi<$uV(|7XBPGE8 z1<`aC^^%BNKAX!7)K+5!Qfjfo(4|fi} z@Qub56;y-~daghK0003CA~LO3EKT7MkI8Rd=l)nDSvjcwI~?|puwhhJ(4Ln_AQ>wV z;S1xr5mtSrSFY>S^1Yj4QiF|8;k9SI0bA;7Du@~&f@aF%f*Iny4!@AC8jv|El;OX= zKvMUKWoC?jb3dKAw!->zGrVPozMjhJre8M0n&?IlDPQmAX9FmVA!$n!Y><5ax&^Na zsi!c(eO}FLp$pt}#$gLo;i+fX;)vv=A?zMU$Ybv3+_;ToWext{E)kK(jk|e6Atjh$ zE%G#}fuC&xTAdY=PSn+yLTjX4UKSQ_jpp{1pi+ee)7W*0;ltr0pRc*@J?m`ROZ1gBYLX)o6PYQdnS9zPq(u=3`dWaU66gcy9<44#yFpaz|fl7uH_gXHD-(I-Fg}_74&R_%reyGg$fenecDs~?af}EOl zHYkFae;4eJ-vG7# zm3Tj4sF!ETsD!D3z7hNYhnK#iU%seMj>qL`-#11B?qfjvHcUu1iuAt&IN?SZ2O!Pn z4bk~Ev43|5)N(bCkWk{Ber-L2--GYke}QC8-UvQ*<|Y_0m*8lq{rj$dm-{l+^sChB z;dB8EwgJE^4^?OsCJ@W}jE-#7jlEgaH80=>iF{v!dqF8qPB3M0S`qiC`#e{fafRd0 zOIlak^BTcf(6?9g<&tKq2zsm8Wl4rCpXEbB*%q#a7%r4GFYmu1`Tt8T&YyLT?xf4$ zkSmWhVHZ4Q-=pLH0^GM3KaC^1+_>}IArr&j85`G7Ud)a_Cj@eUXr1)ePmPq}AXp(U zOYlR~Fr)uMTvXfw7`%}|;(=BT-!+m!#gI>7Kb20!zb9K-wZ8@|q`pgHN8<4V9jL8m zxBFFxLPaD+FToKfg2NY&u{xffHDPfnu8tE7{{!Qh{miERTu2?<6s+*p+XhJ!F3jY8 zquklfuz~`SoI;z!TWcaRGX6GWt{X9eJXY3O83n0v{a3fRvM659l!Z0})O);trQHz_ z*4P7a)scivf8s9%U*#lp6wRy51Nb=#9nBN8000BdCU1aXaaSmb+Sw815#YOeEaGK!7lSR7c~8!o$4}f$bP! zi8xI)%HV{GOJYlX0kprE;<`nff&q-b9fdALNkP{`pqQq#tp2ig>w0{f%>*!P#XJ|K`Bn355!hD><#1XL$~=;t zGilQF{LP);cF>8CK^j|RF6R0=8wYa@W#v^YN4ku2i(aL^LfH#$R*c5Ju5_4zm|G01f}d2!isrtmWc=Sz;=r)03ZOJ^$P0sCIVI+$`rz-g_sjlo+yBqJvN&+b zI8>p_uGuz|!4Z%8t&4mIta$xDY2kmJ(38Q3?iGM60+DTsf|%AiM=$q^f7jS~0ycM? zsR5DcK3^X)ocz@j`NbDN&Xc8_k<%S$8ZYv`d9Jr8wx`EFUK9~kWplTx?Jb6$5imXK zjq8W28Kwp~Jd@MFze=Qzn3~?7YC<;G$0IdCPo9z}K5ge&j+u1pV+y%ts13Bb>T0i_j)uMJ(@^096)@P*Qo}o@H#`FFw-vpX)24RYY)pA@0|C zkPK6Zv0euhj{QCCCiVy%f&e01X&Hy9_J*Bh30&cz5Jc?@VQaNi1|K0y0Q` z1?gac||LnRp)Q&@Ce6uXo+Abpk$rn%1PgD_zH@hzZf1@pgMynydQOsxF8SU7 zcYMx7?iP(6*5OP+h5tWm#d2GV9F6(2gN!XS1rLaB^F|)rrK`aBf~cxiX`{89@*eT> z3xWM#qja3#g4 z$aNK2tvQOR--OU(wpRR3d{sMc489y&7p4_d__Y|VzkpacfOVlu_@+zs?tuZNOYepN zK$4t9PT_z9KzU8ILjElk+5iU$fB*mh0Q(u(29V9}#yceyjup@zy4p7JrU_BJ=D@Hl z;mgT8*7pWNQHby!J^N~ZkLx|HDA zNf-hkqcm9a$JMvZ6SBSU;*7E&=`oHw{Mh0=v$r{`r`&eIGi!BhGFSLXHV$R-n^7Vj z7j)`Bdsma`j8T<*%5e^&_8@{(d#)iwjDSmZ6%?Cj2XYR@JBrPhRE5`Ch5}f67&0bG zZR!^)?>)$Cfl)qi@Rv6qYn+{7N7U}>nTWsv`?79xy#cE?#0P%S~$hNO;2a7H1@<8l22dA=~Y1f__lM zP4sn}8R@6xzVV`Y^VzeMx(d-U*D?;eNVstnWWlZ}Bbhl~Ahm371n6hV==BTlm-Pm4 zd+ZBhyfzrfA`3A$Tr|4n+Y>Y%`gSX4*5P!i2ztnV;{n*lIvXQ&Wy0Eotbv-sRJeDy zifA*7OAHO{S!ZW>m2~tx;}jyJ-jcfv;we>`6_%YZPbq`fgzhlZXoDdpSY>h^nzL>- zP(=5N`x92juSdY6x|G#cqWP-x*XIPn9`4jnX{suxC1uyPs>4xI1E5pXgM zAW#qe9j!Yfx&q@Si6$)a6Wa;8qzR6$iqUK~d+{KDIW&P(JS_s*)e~bNrA5DhiSHHt zw6F4&$Kk6V6hoq|9Vzq^`pJXGF?>Qti6WUSv`nJo9?&J&pzR0Pl_(oj;nRpKSLxBr zDBepR1MOkt?pMmoCU{TR1aK)rn&&dKDgtZG;^_0t%$H8H%_4Vi5^c`}w!_0VhI3HLXFbxsWd zg~6mIgMQFPaD0cMJzC*9Wh7nB5(GL$Db^)=?rz3^+It4?fv5+Epn;!k{@Py%<>*t$ziV634h>HmJaN{6VE9*groxBo)}#TSoOa4o2d&p%vTJtI zrV3&&6Zg7Y(~N`?NhHmNp6(hEaFv7oD5jP!dAK>-(hG%)8UFUETN0-5)VYl=Nh;zU zTFg)UyaTO&LVBipni$<|?Y`p$4MtyGhFhyC4qyD* zxg3Al`_NBVx6EzPnSw5f&ze#;k}o>f5!G|bq~7@O7PX|*;JN@u!U?2Jy4jhr6iTt7$xPS_j&Jz6FRe&d09Sq|>z$?Y+AB$XGE zrdUyG-xsoD4c>6~UG=E4?CZKgjsUiMvtbf-b^G((7+vWruNh|6{v4AKZQ9b=8-{X#%*jM-EM0O*~Hp4?w&ZmKgLTJZ?*ioWr0)t1| za(m%EuK}>3;zv@sh98Pl%P63*g$I#3D5l$4N`c=q(x`0_+pG{?Z+mL184s5GyOAKP zPX`Et&Ow#p-8gJjeK_-{kTe?s@)57&kK}ZZ;|Jzfb=8=v^yc3m4V9W+-V5ojC55|qMdz(${^=-w9qVG( z5EhC!R8NyW&m5A`_~NDsmZY2bZ^5&dSjmmdla$p9y-4}5dPn|AqP!$oMR|6%Pi$VZ zqj(zD99CKih!NEDEK1d4ssPDnZG#F=^+GukaWH9JCjM#dJh4P5@B+S#4?CI+1R#EZ zM_&3&&F*6donu^^;K&wIqW@0P%SRAMv%kK`E}F<$ZOr92`I&?LB)$a$_t(sGUgLounrJ|t>3+c7r&&o5b@;C_ zk{$w6pSdhUlYMkh6|1Ku)xbR2lsD))Qz(dkO54->;n)64&CdN0=P=G-MOtAf^o{$E zPOnR;^zhbrdt?8JK}s0n^uPegQPFIjjWgbz%@WQ3$- zFfnHp*r4gwwSFW$J#fQ;TYYW^QjRg=J-`h_$r9bRSorTD_vv?L+|4T*sxn-{q7y=z z)O4FqU4OfH;z?m8Krbeiqm?7g!tGEEWC4|Oh_fK1+AQW*4T6k3EO_mrXjtGlVUk=bY}L%6#JW)le8HtlZz|c+DwDC>LT>B1&R>lvtc9ptQqHgYZ$q zBaZD*I-+QL7Ux0}>J-DBk*RVrY2*FMsG~z;)jz3!OJScjMel~^vpnQ*ZY!`Z`63!V z6CvzcE>VZlsP^~jr_R3z{QwJ{*Fyfav?d*}flVxw$P?>X4dH{j02%Gbc<1#}`=e5` z&IK*%=JO_9a5F5fG;MmL<|kE*hbq<%JZ)!P02(rdBMCyOb|uw_XQHP$rnFl zX#eW>F@^+VT{zoVj7{%nS7dGVCEx{QgNYW)BGw6!9ip@syGu=T%PXmk)92Gk{4W3_ z@mB`;zjZX%MaS!57AFKL0 z;jA+VmRtzqFebJEw7K;@aMOlezaU`jFgtJ-!cP>ggR&;eaV?+Tz}t{;d5TEbM$E*V zuD4mcrT-N499!>)C~e6}qPEQqSh%xC5xOR4vxbAjaCp-5PP z0}KF$06>zggiry10)Tf8`?(}!53B$H0001^BJGnD0=n5E#f z=L2BWVDE+e;LPLZ>!P#-QVkS2@)r^#KZr+r6||Cqz?G45j)kfjx;9sn0<|_^i;=E( z0aoibe#PAnJUOOJcGoeU$MAM?C02QI$U%Fmw-o1jXvA=2VlX^M;saJPNuBLn3pOms zJ9|{Gl*2qpFIc;BacHE(ra$_MvvG=J)A$JDW{8{llrVq*00TKAwv;bSs(=BAJ}I## z=D1J?Q^Jz=Ta-SC$<3O{sKP?<%`e*;QY+ZdVCemp>1Q=j{IA}j975P6Zr^VIV_iAR zCiuG$c~eoYPY30ngC(P|%1dA;DNRa@`SRyxZa|XZyS*q3cW|RsZ3_*mUS8lU9e6}# zJAzUr4;rwdz=~bER@wfqY5{C@Wmy{@s>IX?lnGaTQQh-Eg?xMsNNN`~C2*PsU0w~7 zD9IU@d+rDoxBw8afq56_{SJ9k?hA7pD&a;h{dPNVV!eJ69`P?t2xVYsML(n*%w#Ak z*&tbN>%Kcz1FpUh_aQ6%Jl1+e5^#?Qh5}llD3qx6p=m#$$BLf;;=%~(`nZsqI#tsC z9%uaPYm(XdkQ{D1=7TeB=P(gl$Q3&OU$@vda>5J?<=Ik+C$u{}7k4xnZS~nfJ0g2_ zst1#>wA``!NLw=waa+||B{S>Nv7m3hi9gReETGDYtTdZbqW9dx``Y#7#fnQ#(Y)Ek34B;jP8HKzH_vqo2NWWk7|OW2+DL(eSOdt$q5e>%eFE3| zUBjN=F3hiUqI_w1Zb9hi;6Qy%E3Xt;u2sNSTGrs)_lsl-bQ&|wE{}4r%~*zOJfsw+ z90l2~5PFp&Zsm9ELN@@ZN_l!R@Vx-<;75}K(hI*YZ6feheV(!lhI7w_m>?Xn(WSWAdT@mlMz&iFDwA3L)`Va?~9cVi1=Bk z^!8EGu9xp{>`rmvW;qGxi3H(DK_QSAp(33hWC^Lz2ip74bpEoiV%=>5I*_GPQu?#_ z{n3mdvj=)0y`5^rCQ1lh0>=0g4*Sj)Ae)Z@;1(nW7)iM> zKa2EKhrq9S(B7`Z{9rwW57Ll7d%VHXH4PCBJO=2HOG20Fp+pkVyH zMm=OMmH&9E_~1-d@S4elI@~ni7YX#fELIN+Pv zXh6}o73B}gU~}a=R?&c3Y~sfdH`JW%2u-9$5g;0Y7mmCHPveqX0130--+pNB$zs*u zt6jr?We0&PxWOqa&o5&s)_@$e;;PZS<>1Mb?tnWyg0)4}tXGtC;b9Fp?b8b~$8t6S z_^2a-!!$fg4Hu)f&T!thxSD<+nd8B$T2HeW8~W*zHM^dlxEB+men3+0#sN5h@J#9C z`$3p&;TxnS*9HjWjTV8pS<;kS(L)5!!oH7LS8|9e!Xh3TM?RX0mmCfe*P-a8<>vpK zuYu(byR!DMM#Qx}C4Vmyn3OE!KG#=~I29nIJT@mIF{gdvJo1=cFm0RL`_QmrywX-z zxKCR7;9oh^5Uw*I+fWEs6BNs-)0b5QKjt1|vwd98^%+-D!ilwg>E`OeR^)x~rx1)F zz%XkGhoCf%ef?IB{nZy?zehxo-db7W|-g+?_S++nrQkX#%-tgEby zM;#GU+0jJ`zGe&C{ypX%OdOcs?fBx6Q(X)jt_jfxWjMYC#+K7<(*BTru|tx2F<5z`P9zyKp9xASN1xs*!ToQUqz;Y0yu`S)Br^uL!s z2#<2p3Q>^R3n|30vba!K3v#)~cq{Q<7>lb{%8QAe+W?BGB^g1ra|dSiEAlsfzu(r` zTNbScPSj_{|CX=~3p-4QkfWy-6@JN2opfaE9g)nJ;Qx(WX*W^0s6~jiUyrM5 z>tBEC#feFoU*iLH`tWOHn_1L1a3QW-Ut}(^;n@5F;eFMgxUx_=G|1m0&J&h9HKzHzs%!?8-13we( z<-h=Sp-Eq+NnGxM0i{V+h5$g4oK#Q&fC7Ma^G;1@zzeg000000ry1A>H4*@R)btla zCol!6BH)+MDdf=*fq&yons+mF!u!FkRLN_gR? ztgnTL$NSIoqfLSv-AQ%v2TJV#jHiTqzqYR7I@YZ(EO;9i8Vl&uB|HGDphV=mwq}4_ z`mByAU-(fRBMY;CPFX|2%tycJwV1fV^oom_WXbMQ!4N&LN2%oBjNGpA7T39temW0M z000AV8(HyP?^clWqO798DHh` zbf%P1FxMyk&j(e(17nYB*I*w+&PhD6#a5H(01zjpmz*yyeRfcKN>d z#C$DIdQi{GO-cWc>;#9#J`}+nK~1yq%HgzvuCqng57?6FZcPC5_w8;;<*ODNp<+U@ zNknwwTo5K$4?v~DqMsj>z#lFcP;rB^QR(_sc3YAF0 zIMc$Zu!qn(o$$SRktyZWRs+p^WOn|=);v)fBlFVla zWmK-@bmtauT|L3A_>E40!}g81y#T70*>GrIzL#TMLpz1`Wi*r@&CA?X?az7|l=o5&#|MmHPss zFcX8DdX`G}zsPuaz(uvK{0&;6M=s%(=SVWgNz1q7R3g&oinqNhv3S7wxG`lxzB{|i zSwqBPK)4EC@^+}RE|)SFWn@428_MHa=5+HBUM@{#S$k`Cw#OQX;ZFfNvoC!ctdY$w zvNh#?M=>)0*k;QdD)Ur-iJSR@YJT6U7i*&FXio9tAY#@{IW~HQv^c^97 zC@$!*{f0_B63FY`4}b%ye7j)9o>GZi&)?;Y0r_)2J)}c4^Swg?GhlW0Lbd+g9qrj*ATD6I4cfec~*l-e7C--jmvEeL|mD=HJ==MLuSnd=AnqwBy znzgQN^+}_kF4q3ri@9|pBO5xL=j~xhj53>#^3>IkzU_IV&d=i@aTnac0Q`l~o!&!emheKtSb?ZAgAWj<6rBs&e>;@u|9&bXo?8K&PCBONBZa;^|7`qBV~#P zgU?o`^xYc0oP$(^5)jL-5=Wg&q_aB~*R@2T5|V`Tk+gse%k;ZOP9JFiJI@eswcnJl z6~kG*SJBgqmh-RSp8XMerHaUuZ5eo`F ze0D~zf&z~*6X|&Pza}&jizQCcnd&T+WW^++Aqic1`}Oapuz-BHI%Wr)r|Hd3OJe7xHLU0wGJGj^w3!CI1e_Km1 z_>N+}UM{vEJKgsfsHlc_d<>-V(n>)SO72pEx_qoeRFy*EDB|qXZ4&<=TGRL=&N!YQ zk`bI$9np_zcLvOE_|;WY#&kG`A6+C(t3pr%(4O`jPwCi->dlmuX6C9X_4M+rd<$|l zCE$mvXg^sBL4y;l6-*uSrj327ekzM#V@?%Ig2a&A9XpdQr}&Kp^lB2G1x>prJK)H^ z8K7*?=o(N0ToM^4S+G|vF8WMb*?B~rvwQ}8nj-AFK0oA0m~9v6^b$~RMOD02Jr7^S zV{7qNl4#zImfTjb*<3B{zHkxkWkLsebQNeol0A%#V-pU=NP2;=5CL{$dV1kI*x3100(<2)%MBq$&-Z!aqyA|4HOm3^p%$!CI% zyNlW{76}FpcxawyPRuHviwgvcdhRrORQ3c{YmEK8{gIsopR4WxAuz!1{1HBJ&&@Ps zuAy&UUeA%#UNz=CDEmIg3>Bf_asf)BMbv_Z-5SZ<&~55RDVm(BFB`P`f~UJIqk||>8dfxs)i@rzsVT!qX!rShE?uO$M6iYE(vXZ z#bx2vqoT#nIH6BE1cXic*dNHxW4n}iK8i~oz9mNcN)*d@zpQ(S8z^x>FHhe;-HR3T z3J1cJ1?bWo02`=_BK;Gc-La+lF^9jc3;13@X^!3ZvK30TcWb2TOE|Ho5?Fk43bLg>7hOlVuM_uZX>e*t$&t< zQW+q=N&DV7ax3f$9#^vdJhEjj4rj-}VMThzl8a0b!p|S>?+T3!3Hz)raH!6wx#dQD zk4s$-vxJiLnLH`)wo!Y#(*6{~-4|Zz0UmHzdH6b4k-Xn%y%DdKem!ocCc2Hi$itzl zO07dCAB{03QITIl^dU3VmQnyK}e--TVnZvy|EwP9=c*kb?$+W_#|w+DMmnyE`t1JL?)U z@&iy}Ym(JS>X;p2btmREd7ER6!JL@i$qE7f>Xonc`z*&vo-dEO@s6ZE%dde!x^|;j zc;`tQoLuF;h8c%0~e}Di01fn5N|7BEdKK_lM#p%~+ zM86TbKq+LpLVuO2K}+TcnK0DhfB%UKLu@k&a;nC7zFGwXm3cyz10e(x)gMVa$NO<; z+pz(RHG-M9(Wg3PQ4f+IJMmaOhK>6-I(yp+3f~eDw{A5W((qV{3=cBt{ne|B<(+{* z5QC$CC%4C@cn!jac+oTNPWEo7gNmTsWm8=7Y5I900-bGAPJpYr=7?eVE|L^FogQj4 z*n;m;&@fEP<*LLsPjJ~{Qq5M-ZrXiuK;&mb4v zqki8RkK}AbUGhaXoyCtqaS@QKQK3s28^L^sBloy`6Fne8ZX?8n>oH&P^*HfSC8P9! z?<}E64fD=X(60lp5{)MXY9;m?u+-v`^E5(i7_DJUPTI%22x&nF2A6 zu#!v>8SdiYz|WYjNtmyXdUK|Kz~~Ual=4u^vcq`-qXP9PAzHoS&blOTh&m>4U*qAk zP zBGM+}dsBvh&&+EY-E5P)h0&)i8zRm?-y2~1HIY={<#@y33NX0hW|F6b+T(}d0v+8kf|=$yonNK z%abLYRM77(S?TS4^tU(rg}cHZ$Z4dEf_yQVPI+Dq-YTmmeaEsjki2R_w)-43ipie3 z%a3ly+3Bi6c&Rc>_^@4uv_;OI+{7(D|3j!WR}4&!9q9gYJ-*xnFaXc33#ySq9A5{0-y9^pvPxD+>aGhSum@L<0vMlF%9lH?8W3ZDnw+#!L5@wdz&FunPLy2 z^mx1~6hQ^|EX+m>hG}4i%l9{e2C7^t1oa9h=&>A2ib27^&d!q=bPp^~X$!~!O7|sX zP*;5VdNFrP#Z@1LfR~?F;q;4TJ#|aG&=?oKb}X6z=s`GG03(0|Sw?XMnM9f*kqLlJ z!WbSWv8g?7Kd4&HQz<=}TUW6N6IqezUx6G~Pfc1P)u3yNg<&siNL6^GSSwSjD4O~w zJRIXJPai`TLFIwDYlexONO@1j6%l<28ra9hd+V4j4b)iZ^l;KAm`w~si}o^q?u1UN z9VW0~dA4#ZqkNV0SuuRTzPG126Jb@2q%~Q4qsrztTWtub-xK_O8=XVl-(`YNMazr0 z{4|S(S3M_fWM9fR{*)>(WL*x2hEkjs>=?ns;tqs34=L{rdY6!JYKK3b?>*{84n7dlNMl9Wyd6AFEPjJacyuMZ~>pAl z8ICiGmvZ`oYmw0>NcVtHF^f`L`|<+(3r%s2RBf}tc&}&;`Gbfm5=-fzNeibL+xNX* z8N{J9lg0SAbEysVb=N2Vc2l;-@_lwO;^8lR7&&`LugV>2>9Wmrw`^cKau}_xY~w&E z#scD-F1C@|wNM{8-Fvc-&EG2s1HcB8a!5FP{X^Jxm8+&^MIeMO=W`H&brR_zP=IxKO>8614@DdIZy{qk9 z_=G%Q%ER#O()GR&@>=5*o!05F%Fx+VTsT`71ro0Bnl>uuo~19GX+p$qw?UZ*o!>(0 z+YD(7DoXjW7RyL-NTB;sCzRwYZItl+ltcfhD4aKd7`~8UQKUF2%5ot*-DKLPe=pDh zBkr%fnOev<=sN1rjpIK-7PRoh?&XWpE{G!ynu|OY61=rGvj8kZu&*{&2cQW?QDf2* zs_RDsAw*gya-qB*-C?TKh==2U+`AUl?RayKCwx*0?D7d`GsX?f=1NAwN~%wu-5F$Z zd+bh`=8HP{_`OYVz+ec#}Uy;=B$%C-!5GM~`^wpK73PS@XAvkhfUvOzJv==`ssc4~%cjM!)Fmv`>QUvNb zJYi1pS&Rzr@b-GPCQ%mkL*|hC5eRPt={Q*SZkD%@FL!X0w{XuJJ93{42`55Nvw35|IQvZqqzi*&IL6{|ZoTH;U4x zrS$!|3T?djXDo^_~U&e$vSXKrDX{$CrUa^vRW008W|Bvyx=D zK<=x?pJ06((ocD}D=0S7W=sxHan7ZZ`+)JWw)gn&e1UcfTlJ$BLe za5`jAIdH?5|KO-Htm8Yieel@$Vtrno&!~oNT9dGv(4~?&n8r|mvJ;H_yt_U*g$Ip5 zCd$hf*3$UKqnf;+Q25=x3i5tFuH94AJ69GT_9TUvm#c-e=D5{@3L!IwR7q|Wk-a(> z0{r%w_>`^^Jstb(*P~H$g+mVCuW5XM&KJ%bRD5O7@jh6%6RlXz*DsgtV$Hj2fOsWn z;1}l7_;L&A0@2f`^ORR}7D z7`S4?GmjZi@j_QboFg;`cQAcWow2>Yp_sHW;c;Cr?M3xEX3! zR;oa{*QK-Y{5$|*@V#HucB@7AzyKi~TaV;x<@BgHD?NAXST~_vcI27s1KwV*jRGz2 zX)x*f-!?-%N+!kq_xaV;!MW{=+!I15YG*)tPtgsOYBegLT+}z+fcOz`SX%_vn;7~@ z%9Lr{@S&MN+ri6dXR}<072yp{R2N-hhTlR1)I0g~P_!7{CMiCoTb0v0g@oDzKp=kr zU-)6%s3{GuiA_T7cC%D%?F&oeK=eD+1nNtC8UcO$!gDLlFAs2t$hATZ(Ict`ZC+$Z z;qQ1pbl9uPB$VA)0nv=j1=8POaZ+6r3q_rI5A1n}Y&(sRy{kpXm2xKu!2>OQ;=l1D zo=HY+L1^3SbL5uVD*l(%uWd3q^9dRit+?MUHS zZ;IcC9Y?YffTAovqU41JMu7(#JpHzw%nwpHb9fpL?}+cKmyir#lMzY48vsmfDTQV4 zQkDJO3$U5nsHDy*&<1d4eukp}4}j*h1+DP9y%ReUu6M{Jt@NHi!W`J|#M_&VifnV} zlF5YYy<>$+bnCENokpeK*+Rd7Vv^3+xG0lR&pC6fPbl-C-P)E5nbfB9tpzs0U|rgt zegt*p3$c%aQA;^C{lP}O5(BUxdM44tQpHe}%#~0p&Gx_@HCR1i5g`d(i#^R={&86^ zmNWk)j##qb8X3o=2L6c+It#^PgWY=Iq zN+Ey;0C#yC^ZkqNMn<~=Xy$R6biFk!aTp4*I5pFN00000hZHWD)BfZB6>wD`uDHdW zuUs-g;|DF}+xP;Jk1m2HS3F-rt6u6z-Da7$zxASisAE97uI*VPE?3LH@m&0w9q5d$ z3EZ|;kOj@ACK$ilrp(YD+~Y;e@QR|mlb`G#^&Wssgj&EJM2~sDWh4DR{^WeQP|Gh_ zZRU3c^d)ijZ!B0T_b4`i000Dy6>wgfGnqTzpD4YYt5xtdH56T0Tw#Eh)ZJH0ukeMI zeEgg1HX&Qj89pn;`bmp}`)HzumGSo7^5}11e``ueNQO)efB!>o*`_1WO4o+9_lH9CLtH86v~u%1@sa#mg#mH3@^{VdY60na ztda)9h3>j`iNpd@Q|ys#4Py8TSj3$VPMzR9sTQ1u^NTttb(O<(Ngm4m>gaNpXTM=Y z{FBW=XwI8E5O;~vF=j^mX`|zbc@B}m0cnXc!pB~_qZ;6BxcM8%;5~3!lIw2a0xG5{ z!ta4hc8roJsd8L?j}**PII_ptCfz?>d(XJgdU$0u-qimPyKR&8Rn1nSZbk=6SsHmW z52B;lMveFU^Ec!Y=FyP|qL_|I3a&j&;)2Twr(6)|Duup z38X+lBKEG-x&FVUdCUl$4lgC(B79+j+;xzbE|8i3Q$d6d&6Z=Vz0w%WobeXr^NMHC z>($GzMu3pg%EJq>t5!n>_)r6e2vyZzjbK01`KGV*&wDv^_^%gRFQ73U!LQ%$!am)e0^C#|;cl6cL_s&E8l4H&NiCjhtygrlU?M{6asF z%WWfe2|hJ9y~s({yF?-9G6TiAr~CdFXM?ES`9MPuVkE%bm%)@f1TR~b@1yDZ-V#2z zTboK=TOSY&-l`UH?y{q4t;ha)Et*(~a4pF0G5HIi#bjxwcfQzAagUi*2M_)VX08{0 zJGDo3g{dMHe^^0ew22x~B=?qTF&PV7JC4a3u-?U3U=dru{nmUTSUjT$ykV3k)nvQG zx}~<(%$QhB@^W&|_*YIBOqS^c`nN*RL->aEZlBEMZ$8PEO}{-gs2EKxo((#>3|8_k z!f%L|=3*Ji#bJN53#0c-_sbv#h==QJEJ0wMR0aIlk(F(Im}>^H;JWK*DLf9iLbSKL zr4`f!jPMq*>C$9Vg}#vQG3$GL#wcuGu9m2#(F?Am@h-d^b$%|waB|tl&T9vve9_e8 zp?5`CJhoOoE;LLOg^>7!Z$u(rNyh}DE7k6^`$a=NoTGpXYd%{T_!(IPN_9$S;V!R@ zDFOJ=Uve47-l_=)$qd%t50tGb)9H+-7=4nmMY7eU)t9`WALGL97|jHocPYqH=Sk5j zPU$R1cW!F6lpDu8N7$ISTiZ<7E@4Gc5Z{NC)>I#jvN%*$p6!3gSos57k87@pDX9qJ z5lcImf47+lK3#`>tH^y=x7yn$v9t2jA`As}>f7~lsJ^0%hoTv@yZ`_MI~&5c^JJ%b zQO>fmI!%mQ=isO%ptnD1Asry-VHre&S{yO5+JiVS(HQPfT=p_8QnLu1>hqJ2K3xNr zI#hJ~DI;1p`LSA5%#Ep^;&6E@mEc2ZwxfudBa%cQyY`-|crM?I@D#e6ni`3)^XoLva%WKkwBfNXVF3vx zc)Az>Uk}oSpC4gpzb!)X#0@3*xO%OTmfnAjpOusUsY~>B$y}k+-J7WP{waE!Yxx%ps zQXx_p&@4_d<}Vhr=eZQPtX?ssYq^T;NuJQ9^m`gOHEADt3J^LaM`e)wRn65 z(jp^RxjgyGOyEK1n4VggVyp|i@U;(~F@6zW)SICeer=jQ{(l&Mx%D@8QYiWq+V8pl zvAb)e6csG+&#C1v8{CE#R@rV)^R_P#;6K)T+DFKAg>#0jA*}2P(ka`h^dAk)|G_*} zqNw7jC;>t$Dto&ELD1My@6R0-!(l*lHkJXvkqc;0vidjcDvS zj%E>H$jnp{GnFary|wsiwE_8EH&OBm+74-QUGnL+e2c`NX_5HZ;I_t4Jz=L_yG%j- zbUIgpTJU3YmKr`+&A7VATR%aw3ThTQ=+2BMhByUaIu6}Ab3kJ| zAmQr+5asar019eV;|@h1DB*E`Fta43f-BoMJ^WIq>^ggObnx8VNN)(Ww7(pzwwrLt z%A;?$YI13iyfQVvff1RZsN&Gr_AkPJ1-maRj)95KCM!bfd_ZO|1aQ`(9zIEaT(- z&+$_ca7hTL(SOvwX9_v?m6nBr?+w#zAJ|O#2kk;15nNq#c z&n_vE4xk!+kX1NkW)TyfjN;&tf8#7!FY=z$wmO<&>x&jBCzFm5Tr ze$w_0WAF!v?@>`|m`T?~jfu>I+362Nz#Sv>cP38zj6ItG6i0%fdU*MNFZDK_1#X}R z3~fjKo3Sp`Twi<1-X2(>ZL5H23g0Wn2Y*WTAaN5=?}NvCa_%Z6@Wk(fOgBW83UaCX_?s19ti zI7Rbh0z>2*K2iC5WNbYu1LmPlpM9x9ypVI@k|CL2dhQV;zmS{1aqNGZIg^Dzj#!vs zBUWR_4CLC;gg2l7zlH*!frBIP=^n_IPJWvrn(OE7T%mBJ;(5-KImn!Ax)%h14<&KCf(AaGb75al3w^&=0Yh0 zOts$)*=wd?Oux$Gi38gGUO)+-@!@jcug2@(F{CKhmwmVByf9+K7g%S3I=zBo5#(zc zK&5z@CiBZ)iSEH;w?#Jp2|4j@bQyI65#CZGl^KM8tk{^v^ESwo-dOkzfFA`FW0G5x ze?y*_jGnSc65pCk4I4Zf$X48ilIiUfde!Eh5$g4tcXwnfCRvQp6Z}Bf1tz#A;(G` z8~kG~000000B<5W$X(0RsYj9_K+vr1jn+FsQ|#6-_W_=m8LbH+MH`Z{)W1&(&^%I5 zYhH`ZKs97Q4l2xshX+!tK@^k9^>+|kj5>nfUCpnREvc^h`~Uy~m?Es~ST}?Ul(c3aaPqk>mrM_$QWGEAQHVAzoiyeG zQYO0${XVxKS30nrxYw!V8OoYF(r$nkZD379i9GFR({204qz^IGUK4&&mRf!5vWN$f z>2fZ$yLc@#qlMoBnArJe`n=9_uo3F8yH=ExLxH{*be@9rAh!!P5@MG|{m=|QtHU|l zS92VQS^eh@JZufFaW12mUrl5%{fdu?eRs_CTIIInirPSJ??AwY?G>X`pn3SQNnBX0 zfxop@d2Z)RuCJ@02{IXrw);wY;UpQ8WgE+mu5+TZ5HZI({FLWxnjUdTgUZW2Jc(YH z*1m}xOPI1tNcvc{GHK1c{nn~&9uTA&-hvOfUq3U|*_TOwgxOLI!}?=?3+thGf`2wI zcIA*J06`>v))=L-KK1g4lLDm zt1vZ1p3;LsZdUCx_~35@*XD_o=R`23_~oF)8U&)ifAy3 z_=mniW%dk(%>|Kng|YR+=-J2h(?*kBN74Zx>95oL(Wc@k2*Q+f zccTQB-;>5(E6gUQ?esX(K`6ISHI{e#DrN3`gWjkokYH~&6VV5j{6UM|8yzYJvE zy`j!*SCH=1nv>6W2&K%}Fl8yRTB?P9$5m0%8fJ z_2wTeM7Ta13KGKkwfTI^Tja3RY#8Zjo{HUR_WjZOMyI#Awsue6_kulPs&$Nc(r)HQ z691E;Mp@$i6)8+JO!KYE|M(15Z<+8JHm4l~SjQRS$OAC~!EG`6vD`4zTI#a*O{};Q z-Hu*ybhQd=pa1{@ge9v3%)(JX+f=$fUXSVTDqcav*e=^QOI|+43ij#yeZjFqEH*nZ zQMH;oNL|k))u`~3Kr_3{w59|K=Ph}GX3>m33pzb!O)XX`bMA5P>ory;_D7#e9)>oA ziqxtD*ve-nr)z@mLsMa=1Fyz&1zUZDFL=augz9lvPKeQ&iP1j$(?9cj6`G60_kH(L z1=5J-;mo}W*(#KkEp@os4v`+hn3?)=%14occF*J+XY&@nW+VFf=_}Q(Y|?SnZNA7L zzw6MP_*D;~K-g{S2PIO;wTzpx8znx>!5|AV+*VgHXLd;U=Ym%8VX81bSdT*8fD$aO zMm=w0lY&Xy?tB7?!YV_0kYE8LZ`t+(^*;$}ojLyuAwV!zyAIK)?z{}>I6mfdx}H<} z9g6JZ08_|nix4ie8k&}QM!OaB#_XoO&PGQNVBRT53rGe?@DFYAt9_69GAh$+h+DMA za>x-wqRb=%q7DOs>LPivzI#wtmni= z+En_;ge{sWcmPu;U%L$@t2{Ub9}IjMFx1qqz@U@Z`Or@eQ`!^xOx=Vw1MDfMH_{n$ zOJ{c|8lh1&m+nZwDVO{#b0v?+!<<2SAEHQL7sh}6@O%aR&Kj*Z7TJqtP!}R+_MBb7 z8EXNm3B!4;m&pS!omi6y>8?m-`7#Kz0ePW(iztgc8)y*|!zvtiw#bqx$_uz5hMB;zZ5TC;sR# zlZlP3d*s>UCM0KrW}mRk^*w#vgGxOZR&hsVB=5M8Hs40##o(n{`Yo{Gt%cBuT~#Yg zEzG;$;9VO;zE(q--=+`XGoPS+ zOGP%d6*6AB?;MZijFKKxGi~RPk=89d%I@)-v>q91%wu@*+dcmCSx{WMwRhyO@t^e( z2@9S=`+TH<=&c7Dl2;K5(6RvQp0Z_dRtAWuy#F{WNqmEZo-bnC9h}m9cfL7*0008m z7Ri`7EM4Z;d&gkl3IVv!gu4G2b3#q3OoH@9Z#fuyW9f`~-Rj}wG-yRjd`$g$0X{wL zAw*+C;g>wqmGzYwVcW!urE36XsWw8Q=G26kA~Ja9C>8Eax2$#OCR`NAWg6~C=35^3 zmRG|Ha^Cag0ONZ4C-XwF8+h~@j%^+F(ww9PqMW{r?pywuxlbLT45dWI3JSzw-n%=k zWShb=jJ^RiKcm}I@sLRAEz47;{|4r$gp@2^OGdHHoQmHT#-f+RZhaUIVC)k!O&O2M zQa?IdG%R(et3w9#8(OmPCFf~z(^1U-3N*Pfu+9wuZZoaY))9$Px5$uLaEltRrhA$qC!K$44?o z2f>YJ*f&9~XK3R&IjNjs;3`^JIK63Tu>Z>R>aJa-TMKu$xDuy(9=s3UU8!RMRx8wG zWe$EYEsB|)@LxHcxdp^_bMXQTU{=5wq5|E&Qw~Z4od=t`DS!8=zfKI}h+=`-UQ^(& z)cZ{pGV&fL)jV_cp6jb@}7Dtof=tzeM#4dcJ&o7pOgvXz_V;|Vv%}(+T>ajNHF>r2A2M4&pBv7 z0009n9k9x?30bVbS$y93H`R&+JEy~TDs9?l9Av1KiV=J32JMop9$4ktEEZD0VQitd z7GQQ=bYC({nBN1{Jn~RBf=Z|?LY2~=?u7AEZ>k60YE6Vaw*j@-9Qp!0!HQ=jReEvP zT@&NAS{yA)fk=nN$l;nX<*bV{qik5_SDx$7rw)rY+G!@-5IZPMRQ*fOSj-g4AZ=WY z=QY7k+F;8&+HW|eVyL`Db6~S6qdqe7z=Mj3|0m_WinIZ2_unas9>-1EXGI#oQmTE zh?7>;0h!K1WDdz^9f8(uq*i9f;@)S(3b#zqQD5Z*Cc;&*E6?Y2&cj*1 z70IlxAz1X*gU?l&qkKkMR5}5w>;=Ox9rX08u4fcjw#UK7RyM^LVJCIsxM<}q`)65r z+PHtVET`i7jgn&zaUJcm}`EV{%2Y>&Y2@m;uTt6652$`!BFQ$_5~2A z|5%zjPRFQNG6`RR`5u{>=|!Ge;iI4T)L>%@F6NPMG4wdq3en$0!KDr|+GH?kG3RN0 zxoHt20-f(p$7F?tFl&~^-T6|#ysG-AwGL>nDKIMD8N|zW9J*Ri-Ke9mz|USH1bj3b zR^c`u#dcMR5tqk>{gO^o#dOf&daJ8~>d>dcQltp%xuj#e(}{LUBa$K{M2THhxv|K(8;@T!&FG$Td6)GubkxV;7xL058mspP0Ue%e zCV`*C%Bp@x3dXJnH|vU~$+^*{Y1C-KN|)3~Afg+{+@A}aK@rD%NCi_lHp+4dT8GLb za`UV(A?Xd#2&BA8Cmqd|9x{XUeh@1T;df04%QQpc|ldYp9TWk)2BH_vZU=7Xn$AK!nLonTf4vdaSlhz(WrTS81qX5fIKqaTO*g2 z^Bcra)u6Nj(BK{&-t5fg5!A>i;1%ro#R2lQslpaR&6-@51od51dH-fl0BiyP`+@AB zO)+P+d*e?7`hFKyY^mPH=ZiaCdhP4kx%v zaCZw12X}XOIKkb6%O%hI)%~}3?W(D%npr*F)3sOUwBED+JJeMP6X&FZF!i)V=?V5x zoBkACfgW>dT15Km?zSK3@h`=Hq&XyJgsQz*p&j0i@p7L%=234tj)dxgC6x|!4;O7~ z)pA~oj=x~?U(5g6aW(%odHQiCQ-8+8pK2zT1F_B-Kmf>hhrM`_`HolNb}Nv8ZShcUz4P&xo&7Yq_v(smI94mBaXnLnycwqYGA#dPdQT z!FA>eGJhyj$MBF?q_a*|lCYH0^^@qMM3ebRO!~=!w`0P+-<8JY8tvD7#9x>10$8^c8DnF15w0{ICl$(!i)Ql! zd{fzCw(=T?$$yb4h8nvlvHFwM^XMeM;cf8iSt^FH!Z&_F*n5yc5p%Da`qVE9IW`t>nKJuex1WjYCn6}!8BI2f=LZZtq4boZI64v^8X}!ImgWb3NlZR zo~%87lkmektjFSOI z8Hn%NkMtOAMr#u$xG%_0C8ax}Pc~Da4Ix|>a(|wT@GE+@84gcfW=k1sn!+9(&$S1b zH%Cai;;5Rzf4_U!?w&5sQtHZeCbIryyUksl74qg+5UeswFWH22pqcw@;d~L=H)Q;e zy(y9G3a=Y_eIMOsE<&(KQ3mg&5!dmAaJ0Ln^tdIk!9a>IENCj7!#Y&j%l~C7jmK~B zyV{TT6}`Lh7w;A@2^E(xX5{;6*nP7R=gbrB`|{fJ74;kX6FIHxqiZ&yJ=9+MtUV1Q-k`8j zu6wlw3{A<^FRb#_gRKOP$VojE%^KJbn*l^5><|e{!kblgK0&~4`re7xcbXh(vt&9( z@zJvGW?e9D6S0&k`xVCzKJJeSPm4yOyn;}qz}JT2aL@I`WA5mX`Gi^_T^8w805Uk& z2KW2YmS1wpkpbLc1$FG{6Zfi%y5^gTRem(vK}vDd&i*9Hgf;3RMaZeTK@X~vJQF0L z$gfg2y)ZJzO5`nS5cSrr)I?UQ2dms^t`YPMBe*)qfq_qVN%sztbnf%=%4-sv+0RF# z7$}Is{aP$34zmHyj4z?>&co>_#SuVXX&{_PNcz`K&3V8%M14v z);i0m@L>_Pn?ki216yy5%S2d3^lARei>`I*LHW^?u4{mlsHeV=toOk0@Xi)(f9Y&GoBmcFXZ<; zT*|Ce5U0wr3R!-^eaAN-{p&PRkla~IZZYgb zxOo>#dHyHdoc|MU|L`3O;NH(t3@|e26&(Es@BmG0MCI&!Pmrc>wDf8CvdMGDEezRI zRu77#3njoTg2mIM3kEK!8I}L-x^!k1ss3K;6>tn=R!(iQBT$$LF)`cmqd9zaB#y?> z^(PFChSc7GgpZgpIUo8*^-kjOx^xOG);+lAHkDLJU{vU1cbf(EsKKxH02kLsXKNVS zljF(~y(-MZ!oBN1< zM0)?JF;I%#l!uMSly6kKo{0p1oyX1+m(@8#R>|{EG0fedYOJr8PZZhK)~n0b=4G6g z;g7R})|yu)Qj5+Cb{Ce5_ryhpw?JGUBG}GGG>7BsbUdB-(FvpB$1n8k>qPh z5gqlC=l9r=-Ks2x4)hC6gcII^#NtC9^R>mc9}yTqT|FQTlnF=Rt&(;DPr`i?1pkRs ze7{dqP>#(;;L*tdLyY-zR#UYP( z#DmQ_X{SDcfX2U)(BjgFn1UVry-F4&t~MdyO(_!dQqjilUJbgCb>PP8d#=6Mo&jn; z6)^RQgNr{n1|3#WVTLdd|Ej%b;ZAn1OF5v4RJiD9Uk#iPOCN!&6K!pXl*tTDa11e0 z3rB^9!yQSz^lYl-Lw(P@&C!jX+L?qf)1WI^c0)Tn?syH~GJ%%@XANP0SlShRCZeDj z$p}OuQm0o1J^yghLQhp^$!!U{;(9+yF4w!^9!`n{bomS$AZz4(7O*L zOy=`^b4(dPH)=DpZ(vjXEWs#6Qs$u@l$5%`iaPGbn+)sakmvr5T9c6j(OvlHy$PhR zmT}(Mn?lVz&_0nIM;Afqt=_5TQ=1-8NF1yS2tN{_m7j;XaW@sZUle>p7E=_EnCCK7 zY@P^7Av#EGQNq@wZSsl5y-DqMSj-~jR>-NhhM0)SIY*@v$G#W*RuJ2Cxk<(kL9Ti$ zKzu?OOt zE8AU)xm1oh*`a@6~B4dl9yr`JfeqI zG?Ue>_6wEa%N;cSILH{nUX>QNdBat`qWbiXJqdN=nkE_a&qffowk7Js1@I}1l!=gm9B zr9ZEHH0Jnl5jjn}ZK3c~j%frZe8p#BMmajIcZ_e?h)E8*mtUlrJiqHS2?YgegRj;4 zuc3CAdNjM)>F@H)-?S0!MjIEbaosWsBPrY+L_?1Aem~KNW^W-ILu(w%cU_o3S;4bu ziyonbtCVO7h6D|uA~5OJyTtyQ@OOjxl;LMsSa~K6a#`6V03dJY&~Tt|BhL;LyoLmG zIE-Cs_vo3+B2>yPyhy)IS!)p_O=(POKT znG-FgIDb*`5Ruu(ty+Tz)VK!gru%Vw@2d>ACE@6600_NeL?rI*vfpZA4H_^exmJSx zm>mP?O#&yW6I5CtS!Jd9P0u<2(FXyi^g*^KJyQFKtHeK3;-gqZ&kOd;m3~i!@^^5S zB2O-;c?&D`g{?P6`*jiI5nH$FFq-r z{m3mMQ~FvB#i5M-83G=@WA&|1Vb0a5aQ9%j2-;?t%t*p*{f;3e81{oma-N_|17C!6v5EH!YVUUE$KT#7VO-eeKhSx) zo1uX_)q-L_Sv6X4(R#E{VWU#2NX{0MH}}Z0<^gQj9HzmeGpCDbMI;)#_^XLeBKSjE zEJ=c$#RP{dkE1s>12HMw#~58^92|E5ftMBWIp142@9MZ)Zk&d4jvJmTu-AFW@Sj%S zk%a-M@cy_AtMo6Z7>(azJa~$mlD{OuU-R@lUQ$aYbNi4%jGDxe%z5f`O9l1148mdf zvyPp)F%$b!vy9>)`$ZAH*0TH7X8Am!Kek1l!81vk=CQ+`od5Is#C2T~}U|0|$R1c6NNU$jUT9FO{9I>Z=CXlbZ-_WY2sb2<810 z7Zp1TzU>utsvo&wjZH_DO|{)o?(xgg=kJvZ^f-o4lTTbwsQURaF2vhsDCB-(@;*$< z%#aFruD;AWk@VI3sR4ApRO7Yk92BM0+b_FV<_Xn%)H}?o>;yL}g*piLl2+mbihLl9 z&14M73Lw(T?5-1)2wx-e{-8(WY`WKb-3twFAY^x_qI3pk3w{ueAM``7``8|h8TSMQ zk+Uh9DjjlE#j!m53ES29E=9T*=DN)xS2ZT3vdTopb2UAlwB9q#2Ti{U2l z-Bv}kL3z1A%6pcyj-ux~d*ITsYu#BZT_Df%ypu7B0O8OTNMY?uPP4{{cG@M$Qvww z<}FUmiI;rAL3#0QdY1b%?B| zA@^kLr>|Y6L9yEeosjoqA1xXmFBgK^(i61al(AKvR@~1pCwxXn9no+`(wa zGVtf)ask;j>dfC^gy6WRzffy`kzj>0z7W?=Nix$EKr(KZGA4h+v|DVfmpk0&u-!*Z z8xnDl*R*@yq+S$8HpZ~Kfw`=v7-;1Q4x>X|;OaIws+1mTP;I=C3828j3;jDzH+t6I zp~`h_`;B=Pvkx9mc(uTAyiQQtscDW?Vp*LXTr&wvZv8G={CS6dn9ugDTxDaPdaoyE zyNE)(iOBK(&gy$ceI4DU-YlB_v8Sa&LAV@tKg7ze_iFR@1RShFs>*YjVABh(UN`pN z_9C-Cl>JeRiEsXzwY&#P0}CY2Ioz|gHJR@W=^uO|v+)0w}=HI)W68;YC$-~uj<1JE9Rz^uVvk&cj-0fV`OnIZzHVSsN2o<8bABHQ zdqIpRD~5&g-BYadX2aMQax8?2K$D1ySnCU>B;$S*mviNcZw zHv}?7^Tsc_TCc!!k<0pzc&I?H4&YEjj?5LMd{NR)U*{b1#U16Y8&2zH*X~`x51AKV zC|y`$>EFq_1|@`|eu)^yZ=HrfkxC2B3nVbbX{749aca2>&1&Qn!r;<B45si~1OuE?!_^z`IJ2Zt)u8*=d zo8Ujo8`9I`w+i1Me^?8SZ>%couPWOHUC^?~qe(?NxWS}|7{dkiWl+n*Xwth@oLNXq z`+>P39V(XHVZWAs%X&?#3ye*dv|0q8$79}i9=MN=8_QfE<9M6=^US0!HpQWA$SXma zB}Or|kyb~60Z-%WB2I;pb1yn#gb;7{z4Re8syY5-CdOA<-?+DT%iC@9 z+=OQQ_uos z(k$myLO@G$9A$2TBEp#sJ<4URtE1Ah`);|svgRB4p?&jY$-;e%Au*+51!eui^OpsI z&#gJX()~s@i&iEQFLW;gXY$S?&BVg?d6{gvnuE@FWy?H@#Qw&6l`?MM8ifQavz1^J zc7Id^BnF|6_N}w=2HZ~pWdl}2*xGQqXjkxMY5`UowiH$TKw{JZy8ay`mpV+8+EQI1 zJb9Z#wcz-&XIQd;kPxr6O>0VgpQGX{#2(BQsL={eqIfb`aL^V5-Wu>=be{n6phh)j z!%q{`^>vuw3jNBmcnJ&rkJ`S-e3R|(desOk8cM`Gy1Y)wNfaN58nAK(Zgi&p3ODrOqiMA z9i|6SSlZ@XWu+RE1=92PNvzgvxuIj}47}H(xEzB3%_i=@XEJ|dEkvFdCK=Pi`Q*Ln z9h4JGqAhXE6ilr9K{OMD9(h(Am^1@#S zl^>iDLUfl}Ez%^#yX#wlWMP{$#wmWg6AQ=dhnX{B4e*DpVXgf`M|xHQZ2b{pEUH0bU|4Em4Bd#3Zo#5WXr$BM>}`jLq}H zIJ0u1{IDX6VBm_;dUFo=$G+hX=bkvEqO-+1Ih8S#MS~N#9^&2CT0o1Wyuv5=TkO~D%LN;i zD=*gv&DY&g7-+n2)^5!S)noj3q&*XZ&m!bt4~ft+sru0!y5`e(hQCAEP zn`T!8E&>p48ukkoZV(n|%;PhJhoy@GhYL9;yaS_H%A~=8nOu3!`0|Jh5rEqDih>&{O&txlg61nMF12b_@k27C$ zaHnnc?DdO@!~e8NTPYr6TVdmbMuLWCHk%QdZWqca7vm4OR${70UOwY4SA03Gnr!@< z4=EuO)wu6|zRW_~ENgK$Y~{|^IW-)KNSyV?bPCSgO`8@seZnCda;Zr5mY_{EgFEGc zfe^!16B=#>y}x%Dl0d12{(|Hf+WT#K$qS&)A9UIH|8=~C_CsHt zJuS0f`cGzfnFnq{1gy8ewrB<_<%ajaSiY4m0d%FuHAF_BP?UFJ1(8ie-(gcU-S&1Q z{iHc5!ljO_13b^<^2s`v?@o{B8Q9hmA`R$%g!feKT+pO|DuYW;&@vV6? zcLeL#Ri)L6@wbvZ<88H?Y=ZW;T~!|VWV_s<+3COPmxMdlIu0^u^6j5K z!gw?t?=ZIW78DyipnpW;$TYs%D)7SdzWMET0XC>&38OFJN_kTD99pj-YZOPpBZsi4 zLxp4+_J*BeVYf%j^K25-<%QbPd|2PxK6RS=0CP5uKGW=_#XhE{d~Pu{4X90pn(Km z5XR!|nPC3xrdSj^8y1+8!kH=UA9^BMNI5Yt9*`^YajS379Gq}L1i50EM2x>o^1kDc z%+H>uuNN~qe(XFIn&wmuaP%A-M ze^l5W)I^zjl<=hfK*!g1nPhDK^{pLPGG%GU3reaxPucSObwFyitoe6Cfncwnylina zrm3Y^D**?$Cf+=OU~4J)bkS=sX+(+y)3e?cJK7a>%@(*a&)H+$WNRwl#cx!!)&h#T zPE!$uLu&V2vd$|!@^e}kxu0eRWH|dS87pVw#txuKLM*C9Kv7c#E2lhbzMEhd2uHEb zw6KQ$UNiHp%=h*&-2b@f7>%H$L5Yfvgw3jA~e%4a3-Sm{Zf1Ab7b@Np7Hd4EqTN49^(FhWw2qy1smvflQR z{Gj#IXVy{7jZ2I3Sm0|Df{bdz86_VBB zWKeo0Chdp|{0M+>Ay9L5FyurIVyO-3nn?Q+r`=}J+E(q->_ylr#{7%*Cw~-RQl5`W z)2tkJBB3j8rMluFcmHbh^7x48b-;ZjANRfrS+W@;%Z8^cf8>D=x)EeB4KeAN|Hig*! zNjP=6R*T*bu;_Ykr^*ehPTMy=99?$@(I-xzI;G_-wMq-1n5sl41FI00x)9M95eT0k zhU+cSwiFTXb{-lSR=p3m^E1Jdm-EbP4cV0d6rz$pH$n1DanoqsRbB0cFWjoHMYd8`)!& zP%_7qy4vp%t&pl7Qo2JLld`7I1oDA~hd++baG9QcM*VmwRG%r;gONr?KKF0XJJBMJ zU!}ITq{B5@bwG*0Q|ebnu+`NhCniDIY}B-}cx9Xi(hWVqK*Z@(Tq*9`W6AbCM?kco zKb!7;IK>mgO|V?*7ZtCDfbFvvty-&%AEcR_ufcf45I|~rPd2Mzu_x9vPGQ&J*HFUC zBo5-8;>J!z3v%@6OhiukXI)Kolrq6jVs-v$_5Ezd+Vp!bH=Viv?&^fo@&*E-fd8Wx zpZ>Kx?51u%xZ0Z8s#a(H*k1s6+E-t}Qv44Z001B`RO`~W-M%1Re!Rf)F)s?VE7Q>m z>0#dqcxD8_OS|O_7Z3hJtDgVB3i-d`Xh1%0&57DJ^4`b3ukF&E^}*XMKUfh03rDV0RjL404x9i z001xmFaQ7opp1{H%k2-NoV41DvvvS%-E|)pdSg|J=aiZ&)T%ER&vfkCNonx{)z# zn^(rR)--sg2V%$oNTPV?wWo-f1c@@}#uzCR^);#K(G`$s*@d$~1?7}j)5qHAmpU3I S+v@q(h?J|l%iB9t0029YrC+-M literal 0 HcmV?d00001 diff --git a/src/app/layouts/PageLayout/RewardsButton/star_animation_small.gif b/src/app/layouts/PageLayout/RewardsButton/star_animation_small.gif deleted file mode 100644 index 7885a10b37cf829f764ee78a3584b7742d30947f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6885 zcmdU!c|4ox+Q&m13A(8uL8(1xRV}r(W>kr#)mlQLtxlInLffe|30+MIO0{YUEp62j zT2*U;(o%%dg^Db;p-4h$sSvu%NoPJ&=AF)Y=e*}Vf1Jw8`Ib^m_X{X7U~ zM@y^2#sFi$c?kf3^vec4Q;lC_-5k6;?d|qCm>3za5Z?x9e3r%H{f$Bb@n3EMG!|A$ zO9CVSo5Vkf|7i>WNZv|FDr}!zd*?<4_fmN{;CO$Sx?;ppWIQh=)3Cc}i_(kGH(Y1@ zyTvKjPwVRaaJcPi7xiu=^E-CrYzC%Q(-klH3T6yCw-ss4K(B8d%vKUY_5?loS&o!d zpN4*eK7IPSPfJyg88IJpq!r+lL*!Q$#8Otqnebbn`tm~aLP4j(6+9=p+zvRJf_lZ^ z^3$!Ab$iDbSg|R0YukHmyu>;D4!sfp1i%5hV(5f~q&UF%+6_lbxu(7SCV^|D29*4? zkeS$kEO`}7%ql{O6RUm4`$c;Di35#lSC4I9On&NE9!qku+oPHSJf`W%;itY@ZPcLV zL_}TA>l|$2JUm(1AJRMLPAh*qzSVY%<0y!{vjE{ubx4Q%5J#Hl5nF*&9igs3vnr>t z@cRl2dYh9I7rRJq_E`o91W1YTbi{x^B_xr=fbwEM<1c{EN$R*b2s#s&3Y%PfxTSB; z)b7Co+nh0x>!;(DLkzgb#&kQ7ytK-Z?N$Ru&QFY}hMOB}CC*hJ4(?EuvkAh7M=~_i zhTi(!SQEtJ&7DE$6E3{YBS^8Do?!D#qOqbTID}(~_K79>(AhLaoE7gi>Q7wSe}gM) zYL`~F?N9l2qUN)jz*1tLRdR=BF6Y!(?o<5Q5FI3m&a9H^JDtdBC88Y(Tkye@%9uyb zf)+ob8H41=2PJ2jW7{+#-Hg13&=4FruQ9v=MVW~u=If&L8E~s3{$=2qINoOV1$O1dl#CYU|nyHZ@Tray~AFMiS^_r zerk9$8MGHfUU@-w&YCovcIQ}w9wCg6Eq7>1i1@Hk#M-rra=@j?1RZ=h_W9bt+tHQ!t17&=3j5B zQs;D4u2vTrO>EC9tqWGWQi9lOU}-ldT^Q_p%XRpth*bxR_fA$+0AD;dIi4zEhCMd` z-@jSa<je|ytx`-W8Kk)zHB z8ZtYsDfkM{JZQOIF#(Kt^yeI!G3<3ZM*tiNowkNRqlTS^Xs?mB};c zsUG~GT*M)2s9Q$fruUh4yG@U6ze~x!B>y(~g0H>0BuZ`|1@XG8B}huYsc05`r{{j% z=JE+chmuy^P#v*!`vVMSR9;_G1|C)}P>^;_`fj|MmH9 zht`l*5n~6BUB+jeoUGMa9D?%&~;*M5JT39=|RVWPoA5;VlQ3NxzOL0|DX)IO(;It)4CdZ-KH<#N)U ze9z#a+kLBv)ui08W|Yb3a=%+D{eNn4WdL8gRC#%qZg!0SDRp787pX3OFxCa_im-0>Fb(z0rg-Ab za#LiGu6-?(Nb4ueAezHg^rM%C5AO9l$}Tn3lByi~3suQYQA?lpH>`a&wfl)kZQ|jl z(hIxo58d~8D2#F)o$mHJrRE&a4J}KnK(~7eqr)S7-W@|u#Geb$uT4mls6GS_Y6!SL?RTpQ6{ar&LE?<<)XMnW!i;`LArWhPQRVif|GPu}dS;g4Dc9TYwq36}K zosGveNB0uj%_)#^XKSH@JsPJlG2{E#zRX32c{bWbm|D6&zIIng^+}dhP~g1jkHQw_ zsKlQg{rbO|&PSHJ#as)>{(l&r0YL%|zO*Dvo= zDZm$3*AhcSe0BA|J!dq359U48xw=u`oe*JAp)%DIApt7g9n2A~yXo8=2L0rn*Be65 z`W!}jcJc>^AM0fk=ypoZkj1Ei6E&8=1TRq83ex40%gudhOeFu+n22#ROo2^LbeJag zQ7*ODAOfa?8?TmF9@u!WUAwfpZqmXit0GcMu(kgi@gcA6@9;#J|osL!X>H&|i6$Cm} zN2(8}0%J)qJ;KFNyybib)dI{y>2n%`W0!NT5OW&*%9);!lp!9FG{mE}dC6tdw@IN8 zaJ*V!hE_nKo*`+&foB)?*oZ!jG3wt>dp{arV0Nvyce$1$xEQb26<{p2K^gC6&zcvy zg$xY~Eqn4@0|RR3T23;tZl6fBEu;6ghnyQCOMnr4|5h@B^|;DQ*RmBpHlqiFYnkIY z$##V~(J@{N8JaaHT|Flfj1X_>(iKnR@Rzen0#=AmTn6Hr-V`6U#H>eu*v-9!d!jnd zjppd3sUu_bD1L@q-^{HHkAuB?Z5tMcCrZzPJgyelNL;<29yGG5E5`+dBo!N#_jM!T zpYWB#ycB`CI@4e#oE`L*ZL+93S<0J!yT|4y8WE7D(!^!{k#vdwY6N=1A(e$ z`RHZNx|BfSzmb4K8@=ovcPdq!Ks{6YRh3Tu9eW?rw0H9m8=2LcJ)jrTH!!#oj8Ou6 zQwgyaPINGwHY*v&#$8n+#p;tdY%E&ZIrV3}CAHa6K+(yMcQFW?v#!=vHn5S2RGBTf z9$BPMar#ipQ8o)-E)jo=UbVNz@9E2#RRI?DS#!4Wg7bDmSBRFn=PXd}_zR_K9*`V^ zyd$(e@VtuY;lO=4OrMj<>#i!Mx10kMXC=q6Z=@}y<;>Ft*cxUO7-53XZ# z-)#PsP{mEI(jaB0E4YOTc;D)yY58URo{kYaX&E)mhW-Jz4;^ z4_tiJ6U5N-_ORUQM5jVqui|j)1;kbnDu!HWK}Vo7es;j>>+FgFwzf1Yc9~m;EsW?b zY6h}tOiFFFELCMuzg2d3!2JIk{MXL^AC2Sfmj7Z8(|X$I*T%7V(=koz>z}dcw5VK( zf||hD`2=v4sEZGZh6*g(L=?0>ER@m;(@}`9D$g|!0Ijc@E)C}$aFjz9R z&Pq5=``C<%+1$U}H~)0o)_rT+CNXgZnbl^MO7Hh&ea;@8j{JN|nJnKrtp`SWfP0Qv zSaworxT|0i80E}{W`yHm5KDZkP`jv*C<4-w<n& zQi@PoXr9I2map0>a8fWpIw?YAInstsz1%r=dR%#A{32_@dT#$R#gPYP(w<|ZaO$9@>T<_?)ue~t$%HhBNv(d z_SQUOMA8z47>nuJYt?7H|=Wf@8zosqkb3 z2`+5`5zwJP2Dr;y*JrxXF-Jg%88h<*BI6rmqz&)*_Rq z#P@@`#ELpa!{-yT#NikZcu9QmKv^H9$2V7|;rp^_UY2I3uK6{7C}LFXs`br0&WB?+ z-fHA(qChCV-faT=Hk-jFl5wFJXsiD=E0I=ou5?$}95t+JcD|zLSiF8!0G{ldaV381 zb+EvIl%BS{L6&Bg)PFv+bUeG@^j%dc5A=Cr^t{GUv%@M)pQodD`5n8iy%eNC>fFh@ zt|cLa!HK>zj&HtCuY!g=JBX=bmtqfQmrcxue5@@UBaoYEdZKv=EEtt{i!U1KY9WRu z1H&o080I@@!B|S{O8tz283bY+U6mPuKwq``g9a{u>tg^w^F>AQ6EHhlo1OdZaW>wo0m-)y7hLh;FiBe%DxnqM>`| zBsTBhx&2!4!Z&*?hA`=;V=iOxxh2fAP0T}~JIY!f6-L@Pp93j@MGOlf8!Pfj<5h(m zTRE)Be2H^x8==jB^-(QW1bl}1xDGmgg*R?_GcHx|-~2`~p5ywW=Wc6S(_v%g$Bnd? z>%y*YsO9ccC1v;>s-HGE!?h)}_yn2bqIa>IrHJ!EP0>)q)@G=-gV`*&x{KH1wE)X_ XTs=m^ipV;?zq*t}_kY`$ADe#w=z92v From 5ceef6f62dcfe53fd3400a7fb37bb2c7edf7f5c9 Mon Sep 17 00:00:00 2001 From: Inokentii Mazhara Date: Thu, 19 Dec 2024 15:11:02 +0200 Subject: [PATCH 6/6] TW-1599 Fix star animation for Chrome --- .../RewardsButton/firefox-star-animation.tsx | 39 +++++++++++ .../PageLayout/RewardsButton/index.tsx | 42 +++-------- .../RewardsButton/star-animation.tsx | 65 ++++++++++++++++++ .../RewardsButton/star_animation_small.gif | Bin 0 -> 6885 bytes 4 files changed, 114 insertions(+), 32 deletions(-) create mode 100644 src/app/layouts/PageLayout/RewardsButton/firefox-star-animation.tsx create mode 100644 src/app/layouts/PageLayout/RewardsButton/star-animation.tsx create mode 100644 src/app/layouts/PageLayout/RewardsButton/star_animation_small.gif diff --git a/src/app/layouts/PageLayout/RewardsButton/firefox-star-animation.tsx b/src/app/layouts/PageLayout/RewardsButton/firefox-star-animation.tsx new file mode 100644 index 0000000000..40a6e403cc --- /dev/null +++ b/src/app/layouts/PageLayout/RewardsButton/firefox-star-animation.tsx @@ -0,0 +1,39 @@ +import React, { memo, useEffect, useRef } from 'react'; + +const starAnimationVideo = require('./star_animation.webm'); +const starAnimationPoster = require('./star_animation_poster.gif'); + +interface Props { + loop: boolean; +} + +export const FirefoxStarAnimation = memo(({ loop }) => { + const videoRef = useRef(null); + const prevLoopRef = useRef(loop); + + useEffect(() => { + if (loop && !prevLoopRef.current) { + videoRef.current!.play(); + } else if (!loop && prevLoopRef.current) { + videoRef.current!.currentTime = 0; + videoRef.current!.pause(); + } + prevLoopRef.current = loop; + }, [loop]); + + return ( +

diff --git a/src/app/layouts/PageLayout/RewardsButton/star-animation.tsx b/src/app/layouts/PageLayout/RewardsButton/star-animation.tsx new file mode 100644 index 0000000000..7ab2320529 --- /dev/null +++ b/src/app/layouts/PageLayout/RewardsButton/star-animation.tsx @@ -0,0 +1,65 @@ +import React, { memo, useCallback, useEffect, useRef, useState } from 'react'; + +import clsx from 'clsx'; + +import { useWillUnmount } from 'lib/ui/hooks/useWillUnmount'; + +import starAnimation from './star_animation_small.gif'; + +const GIF_DURATION = 3000; +const ORIGINAL_IMG_SIZE = 48; + +interface Props { + loop: boolean; +} + +export const StarAnimation = memo(({ loop }) => { + const prevLoopRef = useRef(loop); + const [loopComplete, setLoopComplete] = useState(false); + const loopTimeoutRef = useRef(); + const animationRef = useRef(null); + const canvasRef = useRef(null); + + useEffect(() => { + if (!prevLoopRef.current && loop) { + animationRef.current!.src = starAnimation; + } + }, [loop]); + + useWillUnmount(() => void (loopTimeoutRef.current !== undefined && clearTimeout(loopTimeoutRef.current))); + const handleAnimationLoad = useCallback(() => { + if (loopComplete) { + return; + } + + loopTimeoutRef.current = setTimeout(() => setLoopComplete(true), GIF_DURATION); + const ctx = canvasRef.current!.getContext('2d')!; + ctx.imageSmoothingEnabled = false; + ctx.drawImage(animationRef.current!, 0, 0, ORIGINAL_IMG_SIZE, ORIGINAL_IMG_SIZE); + }, [loopComplete]); + + const isAnimated = loop || !loopComplete; + + return ( + <> + + + + ); +}); diff --git a/src/app/layouts/PageLayout/RewardsButton/star_animation_small.gif b/src/app/layouts/PageLayout/RewardsButton/star_animation_small.gif new file mode 100644 index 0000000000000000000000000000000000000000..7885a10b37cf829f764ee78a3584b7742d30947f GIT binary patch literal 6885 zcmdU!c|4ox+Q&m13A(8uL8(1xRV}r(W>kr#)mlQLtxlInLffe|30+MIO0{YUEp62j zT2*U;(o%%dg^Db;p-4h$sSvu%NoPJ&=AF)Y=e*}Vf1Jw8`Ib^m_X{X7U~ zM@y^2#sFi$c?kf3^vec4Q;lC_-5k6;?d|qCm>3za5Z?x9e3r%H{f$Bb@n3EMG!|A$ zO9CVSo5Vkf|7i>WNZv|FDr}!zd*?<4_fmN{;CO$Sx?;ppWIQh=)3Cc}i_(kGH(Y1@ zyTvKjPwVRaaJcPi7xiu=^E-CrYzC%Q(-klH3T6yCw-ss4K(B8d%vKUY_5?loS&o!d zpN4*eK7IPSPfJyg88IJpq!r+lL*!Q$#8Otqnebbn`tm~aLP4j(6+9=p+zvRJf_lZ^ z^3$!Ab$iDbSg|R0YukHmyu>;D4!sfp1i%5hV(5f~q&UF%+6_lbxu(7SCV^|D29*4? zkeS$kEO`}7%ql{O6RUm4`$c;Di35#lSC4I9On&NE9!qku+oPHSJf`W%;itY@ZPcLV zL_}TA>l|$2JUm(1AJRMLPAh*qzSVY%<0y!{vjE{ubx4Q%5J#Hl5nF*&9igs3vnr>t z@cRl2dYh9I7rRJq_E`o91W1YTbi{x^B_xr=fbwEM<1c{EN$R*b2s#s&3Y%PfxTSB; z)b7Co+nh0x>!;(DLkzgb#&kQ7ytK-Z?N$Ru&QFY}hMOB}CC*hJ4(?EuvkAh7M=~_i zhTi(!SQEtJ&7DE$6E3{YBS^8Do?!D#qOqbTID}(~_K79>(AhLaoE7gi>Q7wSe}gM) zYL`~F?N9l2qUN)jz*1tLRdR=BF6Y!(?o<5Q5FI3m&a9H^JDtdBC88Y(Tkye@%9uyb zf)+ob8H41=2PJ2jW7{+#-Hg13&=4FruQ9v=MVW~u=If&L8E~s3{$=2qINoOV1$O1dl#CYU|nyHZ@Tray~AFMiS^_r zerk9$8MGHfUU@-w&YCovcIQ}w9wCg6Eq7>1i1@Hk#M-rra=@j?1RZ=h_W9bt+tHQ!t17&=3j5B zQs;D4u2vTrO>EC9tqWGWQi9lOU}-ldT^Q_p%XRpth*bxR_fA$+0AD;dIi4zEhCMd` z-@jSa<je|ytx`-W8Kk)zHB z8ZtYsDfkM{JZQOIF#(Kt^yeI!G3<3ZM*tiNowkNRqlTS^Xs?mB};c zsUG~GT*M)2s9Q$fruUh4yG@U6ze~x!B>y(~g0H>0BuZ`|1@XG8B}huYsc05`r{{j% z=JE+chmuy^P#v*!`vVMSR9;_G1|C)}P>^;_`fj|MmH9 zht`l*5n~6BUB+jeoUGMa9D?%&~;*M5JT39=|RVWPoA5;VlQ3NxzOL0|DX)IO(;It)4CdZ-KH<#N)U ze9z#a+kLBv)ui08W|Yb3a=%+D{eNn4WdL8gRC#%qZg!0SDRp787pX3OFxCa_im-0>Fb(z0rg-Ab za#LiGu6-?(Nb4ueAezHg^rM%C5AO9l$}Tn3lByi~3suQYQA?lpH>`a&wfl)kZQ|jl z(hIxo58d~8D2#F)o$mHJrRE&a4J}KnK(~7eqr)S7-W@|u#Geb$uT4mls6GS_Y6!SL?RTpQ6{ar&LE?<<)XMnW!i;`LArWhPQRVif|GPu}dS;g4Dc9TYwq36}K zosGveNB0uj%_)#^XKSH@JsPJlG2{E#zRX32c{bWbm|D6&zIIng^+}dhP~g1jkHQw_ zsKlQg{rbO|&PSHJ#as)>{(l&r0YL%|zO*Dvo= zDZm$3*AhcSe0BA|J!dq359U48xw=u`oe*JAp)%DIApt7g9n2A~yXo8=2L0rn*Be65 z`W!}jcJc>^AM0fk=ypoZkj1Ei6E&8=1TRq83ex40%gudhOeFu+n22#ROo2^LbeJag zQ7*ODAOfa?8?TmF9@u!WUAwfpZqmXit0GcMu(kgi@gcA6@9;#J|osL!X>H&|i6$Cm} zN2(8}0%J)qJ;KFNyybib)dI{y>2n%`W0!NT5OW&*%9);!lp!9FG{mE}dC6tdw@IN8 zaJ*V!hE_nKo*`+&foB)?*oZ!jG3wt>dp{arV0Nvyce$1$xEQb26<{p2K^gC6&zcvy zg$xY~Eqn4@0|RR3T23;tZl6fBEu;6ghnyQCOMnr4|5h@B^|;DQ*RmBpHlqiFYnkIY z$##V~(J@{N8JaaHT|Flfj1X_>(iKnR@Rzen0#=AmTn6Hr-V`6U#H>eu*v-9!d!jnd zjppd3sUu_bD1L@q-^{HHkAuB?Z5tMcCrZzPJgyelNL;<29yGG5E5`+dBo!N#_jM!T zpYWB#ycB`CI@4e#oE`L*ZL+93S<0J!yT|4y8WE7D(!^!{k#vdwY6N=1A(e$ z`RHZNx|BfSzmb4K8@=ovcPdq!Ks{6YRh3Tu9eW?rw0H9m8=2LcJ)jrTH!!#oj8Ou6 zQwgyaPINGwHY*v&#$8n+#p;tdY%E&ZIrV3}CAHa6K+(yMcQFW?v#!=vHn5S2RGBTf z9$BPMar#ipQ8o)-E)jo=UbVNz@9E2#RRI?DS#!4Wg7bDmSBRFn=PXd}_zR_K9*`V^ zyd$(e@VtuY;lO=4OrMj<>#i!Mx10kMXC=q6Z=@}y<;>Ft*cxUO7-53XZ# z-)#PsP{mEI(jaB0E4YOTc;D)yY58URo{kYaX&E)mhW-Jz4;^ z4_tiJ6U5N-_ORUQM5jVqui|j)1;kbnDu!HWK}Vo7es;j>>+FgFwzf1Yc9~m;EsW?b zY6h}tOiFFFELCMuzg2d3!2JIk{MXL^AC2Sfmj7Z8(|X$I*T%7V(=koz>z}dcw5VK( zf||hD`2=v4sEZGZh6*g(L=?0>ER@m;(@}`9D$g|!0Ijc@E)C}$aFjz9R z&Pq5=``C<%+1$U}H~)0o)_rT+CNXgZnbl^MO7Hh&ea;@8j{JN|nJnKrtp`SWfP0Qv zSaworxT|0i80E}{W`yHm5KDZkP`jv*C<4-w<n& zQi@PoXr9I2map0>a8fWpIw?YAInstsz1%r=dR%#A{32_@dT#$R#gPYP(w<|ZaO$9@>T<_?)ue~t$%HhBNv(d z_SQUOMA8z47>nuJYt?7H|=Wf@8zosqkb3 z2`+5`5zwJP2Dr;y*JrxXF-Jg%88h<*BI6rmqz&)*_Rq z#P@@`#ELpa!{-yT#NikZcu9QmKv^H9$2V7|;rp^_UY2I3uK6{7C}LFXs`br0&WB?+ z-fHA(qChCV-faT=Hk-jFl5wFJXsiD=E0I=ou5?$}95t+JcD|zLSiF8!0G{ldaV381 zb+EvIl%BS{L6&Bg)PFv+bUeG@^j%dc5A=Cr^t{GUv%@M)pQodD`5n8iy%eNC>fFh@ zt|cLa!HK>zj&HtCuY!g=JBX=bmtqfQmrcxue5@@UBaoYEdZKv=EEtt{i!U1KY9WRu z1H&o080I@@!B|S{O8tz283bY+U6mPuKwq``g9a{u>tg^w^F>AQ6EHhlo1OdZaW>wo0m-)y7hLh;FiBe%DxnqM>`| zBsTBhx&2!4!Z&*?hA`=;V=iOxxh2fAP0T}~JIY!f6-L@Pp93j@MGOlf8!Pfj<5h(m zTRE)Be2H^x8==jB^-(QW1bl}1xDGmgg*R?_GcHx|-~2`~p5ywW=Wc6S(_v%g$Bnd? z>%y*YsO9ccC1v;>s-HGE!?h)}_yn2bqIa>IrHJ!EP0>)q)@G=-gV`*&x{KH1wE)X_ XTs=m^ipV;?zq*t}_kY`$ADe#w=z92v literal 0 HcmV?d00001

6|AJu!Ayp{*;q6$AHKcM$}XME3`J)D8d&9 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 z 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