From ce293604636c6f3eabf8707c5de66a0926c238f7 Mon Sep 17 00:00:00 2001 From: Ari Archer Date: Tue, 23 Jan 2024 19:13:34 +0200 Subject: [PATCH] [docx] split commit for file 3600 Signed-off-by: Ari Archer --- .../RecTypeNtabCaretFatiguePredicate.docx | Bin 0 -> 37657 bytes .../RecTypeNtabCaretFatiguePredicate.scala | 87 -- .../pushservice/predicate/package.docx | Bin 0 -> 37053 bytes .../pushservice/predicate/package.scala | 44 - .../OpenOrNtabClickQualityPredicate.docx | Bin 0 -> 37023 bytes .../OpenOrNtabClickQualityPredicate.scala | 27 - .../QualityPredicateCommon.docx | Bin 0 -> 38449 bytes .../QualityPredicateCommon.scala | 165 ---- .../QualityPredicateMap.docx | Bin 0 -> 36977 bytes .../QualityPredicateMap.scala | 21 - .../pushservice/rank/CRTBoostRanker.docx | Bin 0 -> 37343 bytes .../pushservice/rank/CRTBoostRanker.scala | 54 -- .../pushservice/rank/CRTDownRanker.docx | Bin 0 -> 37301 bytes .../pushservice/rank/CRTDownRanker.scala | 45 - .../pushservice/rank/LoggedOutRanker.docx | Bin 0 -> 37377 bytes .../pushservice/rank/LoggedOutRanker.scala | 45 - .../pushservice/rank/ModelBasedRanker.docx | Bin 0 -> 38565 bytes .../pushservice/rank/ModelBasedRanker.scala | 204 ----- .../pushservice/rank/PushserviceRanker.docx | Bin 0 -> 37043 bytes .../pushservice/rank/PushserviceRanker.scala | 31 - .../pushservice/rank/RFPHLightRanker.docx | Bin 0 -> 38324 bytes .../pushservice/rank/RFPHLightRanker.scala | 139 --- .../frigate/pushservice/rank/RFPHRanker.docx | Bin 0 -> 39731 bytes .../frigate/pushservice/rank/RFPHRanker.scala | 297 ------ .../rank/SubscriptionCreatorRanker.docx | Bin 0 -> 37685 bytes .../rank/SubscriptionCreatorRanker.scala | 110 --- .../LoggedOutRefreshForPushHandler.docx | Bin 0 -> 39235 bytes .../LoggedOutRefreshForPushHandler.scala | 259 ------ .../PushCandidateHydrator.docx | Bin 0 -> 39305 bytes .../PushCandidateHydrator.scala | 239 ----- .../refresh_handler/RFPHFeatureHydrator.docx | Bin 0 -> 37573 bytes .../refresh_handler/RFPHFeatureHydrator.scala | 69 -- .../refresh_handler/RFPHPrerankFilter.docx | Bin 0 -> 37727 bytes .../refresh_handler/RFPHPrerankFilter.scala | 104 --- .../refresh_handler/RFPHRestrictStep.docx | Bin 0 -> 37216 bytes .../refresh_handler/RFPHRestrictStep.scala | 34 - .../refresh_handler/RFPHStatsRecorder.docx | Bin 0 -> 37427 bytes .../refresh_handler/RFPHStatsRecorder.scala | 77 -- .../RefreshForPushHandler.docx | Bin 0 -> 39926 bytes .../RefreshForPushHandler.scala | 292 ------ .../RefreshForPushNotifier.docx | Bin 0 -> 38069 bytes .../RefreshForPushNotifier.scala | 128 --- .../cross/BaseCopyFramework.docx | Bin 0 -> 37886 bytes .../cross/BaseCopyFramework.scala | 79 -- .../cross/CandidateCopyExpansion.docx | Bin 0 -> 37490 bytes .../cross/CandidateCopyExpansion.scala | 56 -- .../cross/CandidateCopyPair.docx | Bin 0 -> 36836 bytes .../cross/CandidateCopyPair.scala | 11 - .../cross/CandidateToCopy.docx | Bin 0 -> 38649 bytes .../cross/CandidateToCopy.scala | 263 ------ .../refresh_handler/cross/CopyFilters.docx | Bin 0 -> 37395 bytes .../refresh_handler/cross/CopyFilters.scala | 41 - .../refresh_handler/cross/CopyPredicates.docx | Bin 0 -> 37160 bytes .../cross/CopyPredicates.scala | 36 - .../scriber/MrRequestScribeHandler.docx | Bin 0 -> 40474 bytes .../scriber/MrRequestScribeHandler.scala | 388 -------- .../pushservice/send_handler/SendHandler.docx | Bin 0 -> 39490 bytes .../send_handler/SendHandler.scala | 250 ------ .../SendHandlerPushCandidateHydrator.docx | Bin 0 -> 38347 bytes .../SendHandlerPushCandidateHydrator.scala | 184 ---- .../generator/CandidateGenerator.docx | Bin 0 -> 36873 bytes .../generator/CandidateGenerator.scala | 17 - ...cFanoutCreatorEventCandidateGenerator.docx | Bin 0 -> 37350 bytes ...FanoutCreatorEventCandidateGenerator.scala | 70 -- ...agicFanoutNewsEventCandidateGenerator.docx | Bin 0 -> 37318 bytes ...gicFanoutNewsEventCandidateGenerator.scala | 57 -- ...FanoutProductLaunchCandidateGenerator.docx | Bin 0 -> 37226 bytes ...anoutProductLaunchCandidateGenerator.scala | 54 -- ...icFanoutSportsEventCandidateGenerator.docx | Bin 0 -> 38263 bytes ...cFanoutSportsEventCandidateGenerator.scala | 153 ---- .../generator/PushRequestToCandidate.docx | Bin 0 -> 37254 bytes .../generator/PushRequestToCandidate.scala | 49 - ...heduledSpaceSpeakerCandidateGenerator.docx | Bin 0 -> 37304 bytes ...eduledSpaceSpeakerCandidateGenerator.scala | 55 -- ...uledSpaceSubscriberCandidateGenerator.docx | Bin 0 -> 37308 bytes ...ledSpaceSubscriberCandidateGenerator.scala | 55 -- .../pushservice/store/ContentMixerStore.docx | Bin 0 -> 36916 bytes .../pushservice/store/ContentMixerStore.scala | 17 - .../store/CopySelectionServiceStore.docx | Bin 0 -> 36951 bytes .../store/CopySelectionServiceStore.scala | 15 - .../pushservice/store/CrMixerTweetStore.docx | Bin 0 -> 37307 bytes .../pushservice/store/CrMixerTweetStore.scala | 58 -- .../pushservice/store/ExploreRankerStore.docx | Bin 0 -> 37047 bytes .../store/ExploreRankerStore.scala | 28 - .../store/FollowRecommendationsStore.docx | Bin 0 -> 37248 bytes .../store/FollowRecommendationsStore.scala | 46 - .../frigate/pushservice/store/IbisStore.docx | Bin 0 -> 38589 bytes .../frigate/pushservice/store/IbisStore.scala | 190 ---- .../store/InterestDiscoveryStore.docx | Bin 0 -> 36922 bytes .../store/InterestDiscoveryStore.scala | 16 - .../store/LabeledPushRecsDecideredStore.docx | Bin 0 -> 38396 bytes .../store/LabeledPushRecsDecideredStore.scala | 156 ---- .../pushservice/store/LexServiceStore.docx | Bin 0 -> 36999 bytes .../pushservice/store/LexServiceStore.scala | 26 - .../pushservice/store/NTabHistoryStore.docx | Bin 0 -> 37297 bytes .../pushservice/store/NTabHistoryStore.scala | 45 - .../store/OCFPromptHistoryStore.docx | Bin 0 -> 37646 bytes .../store/OCFPromptHistoryStore.scala | 73 -- .../store/OnlineUserHistoryStore.docx | Bin 0 -> 37569 bytes .../store/OnlineUserHistoryStore.scala | 81 -- .../pushservice/store/OpenAppUserStore.docx | Bin 0 -> 36904 bytes .../pushservice/store/OpenAppUserStore.scala | 13 - .../store/SocialGraphServiceProcessStore.docx | Bin 0 -> 37023 bytes .../SocialGraphServiceProcessStore.scala | 21 - .../store/SoftUserFollowingStore.docx | Bin 0 -> 37511 bytes .../store/SoftUserFollowingStore.scala | 61 -- .../store/TweetImpressionsStore.docx | Bin 0 -> 36981 bytes .../store/TweetImpressionsStore.scala | 19 - .../store/TweetTranslationStore.docx | Bin 0 -> 38722 bytes .../store/TweetTranslationStore.scala | 211 ----- .../store/UttEntityHydrationStore.docx | Bin 0 -> 37675 bytes .../store/UttEntityHydrationStore.scala | 79 -- .../pushservice/take/CandidateNotifier.docx | Bin 0 -> 38301 bytes .../pushservice/take/CandidateNotifier.scala | 160 ---- .../take/LoggedOutRefreshForPushNotifier.docx | Bin 0 -> 38017 bytes .../LoggedOutRefreshForPushNotifier.scala | 118 --- .../pushservice/take/NotificationSender.docx | Bin 0 -> 37766 bytes .../pushservice/take/NotificationSender.scala | 95 -- .../take/NotificationServiceSender.docx | Bin 0 -> 39529 bytes .../take/NotificationServiceSender.scala | 273 ------ .../pushservice/take/SendHandlerNotifier.docx | Bin 0 -> 37749 bytes .../take/SendHandlerNotifier.scala | 86 -- .../CandidateValidator.docx | Bin 0 -> 37687 bytes .../CandidateValidator.scala | 83 -- .../RFPHCandidateValidator.docx | Bin 0 -> 37138 bytes .../RFPHCandidateValidator.scala | 27 - .../SendHandlerPostCandidateValidator.docx | Bin 0 -> 37064 bytes .../SendHandlerPostCandidateValidator.scala | 26 - .../SendHandlerPreCandidateValidator.docx | Bin 0 -> 37047 bytes .../SendHandlerPreCandidateValidator.scala | 24 - .../channel_selection/ChannelCandidate.docx | Bin 0 -> 37052 bytes .../channel_selection/ChannelCandidate.scala | 24 - .../channel_selection/ChannelSelector.docx | Bin 0 -> 36872 bytes .../channel_selection/ChannelSelector.scala | 15 - .../NtabOnlyChannelSelector.docx | Bin 0 -> 37029 bytes .../NtabOnlyChannelSelector.scala | 21 - .../take/history/EventBusWriter.docx | Bin 0 -> 37175 bytes .../take/history/EventBusWriter.scala | 37 - .../take/history/HistoryWriter.docx | Bin 0 -> 37323 bytes .../take/history/HistoryWriter.scala | 49 - .../take/predicates/BasicRFPHPredicates.docx | Bin 0 -> 36778 bytes .../take/predicates/BasicRFPHPredicates.scala | 7 - .../BasicSendHandlerPredicates.docx | Bin 0 -> 36866 bytes .../BasicSendHandlerPredicates.scala | 13 - .../take/predicates/BasicTweetPredicates.docx | Bin 0 -> 37747 bytes .../predicates/BasicTweetPredicates.scala | 104 --- .../BasicTweetPredicatesForRFPH.docx | Bin 0 -> 37110 bytes .../BasicTweetPredicatesForRFPH.scala | 41 - .../OutOfNetworkTweetPredicates.docx | Bin 0 -> 36937 bytes .../OutOfNetworkTweetPredicates.scala | 16 - .../take/predicates/TakeCommonPredicates.docx | Bin 0 -> 37104 bytes .../predicates/TakeCommonPredicates.scala | 36 - .../candidate_map/CandidatePredicatesMap.docx | Bin 0 -> 37457 bytes .../CandidatePredicatesMap.scala | 75 -- .../SendHandlerCandidatePredicatesMap.docx | Bin 0 -> 37231 bytes .../SendHandlerCandidatePredicatesMap.scala | 78 -- .../pushservice/take/sender/Ibis2Sender.docx | Bin 0 -> 38854 bytes .../pushservice/take/sender/Ibis2Sender.scala | 185 ---- .../pushservice/take/sender/NtabSender.docx | Bin 0 -> 39073 bytes .../pushservice/take/sender/NtabSender.scala | 237 ----- .../pushservice/target/CustomFSFields.docx | Bin 0 -> 37943 bytes .../pushservice/target/CustomFSFields.scala | 98 -- .../LoggedOutPushTargetUserBuilder.docx | Bin 0 -> 38979 bytes .../LoggedOutPushTargetUserBuilder.scala | 182 ---- .../target/PushTargetUserBuilder.docx | Bin 0 -> 44250 bytes .../target/PushTargetUserBuilder.scala | 694 -------------- .../target/RFPHTargetPredicateGenerator.docx | Bin 0 -> 37214 bytes .../target/RFPHTargetPredicateGenerator.scala | 37 - .../target/TargetAppPermissions.docx | Bin 0 -> 36769 bytes .../target/TargetAppPermissions.scala | 10 - .../target/TargetScoringDetails.docx | Bin 0 -> 38133 bytes .../target/TargetScoringDetails.scala | 121 --- .../pushservice/util/AdaptorUtils.docx | Bin 0 -> 36872 bytes .../pushservice/util/AdaptorUtils.scala | 15 - .../pushservice/util/AdhocStatsUtil.docx | Bin 0 -> 37702 bytes .../pushservice/util/AdhocStatsUtil.scala | 104 --- .../util/Candidate2FrigateNotification.docx | Bin 0 -> 37594 bytes .../util/Candidate2FrigateNotification.scala | 119 --- .../util/CandidateHydrationUtil.docx | Bin 0 -> 39906 bytes .../util/CandidateHydrationUtil.scala | 439 --------- .../pushservice/util/CandidateUtil.docx | Bin 0 -> 38310 bytes .../pushservice/util/CandidateUtil.scala | 138 --- .../frigate/pushservice/util/CopyUtil.docx | Bin 0 -> 40248 bytes .../frigate/pushservice/util/CopyUtil.scala | 448 ---------- .../util/EmailLandingPageExperimentUtil.docx | Bin 0 -> 37727 bytes .../util/EmailLandingPageExperimentUtil.scala | 92 -- .../pushservice/util/FunctionalUtil.docx | Bin 0 -> 36788 bytes .../pushservice/util/FunctionalUtil.scala | 12 - .../pushservice/util/IbisScribeTargets.docx | Bin 0 -> 37204 bytes .../pushservice/util/IbisScribeTargets.scala | 55 -- .../pushservice/util/InlineActionUtil.docx | Bin 0 -> 39197 bytes .../pushservice/util/InlineActionUtil.scala | 219 ----- .../util/MediaAnnotationsUtil.docx | Bin 0 -> 37345 bytes .../util/MediaAnnotationsUtil.scala | 52 -- .../util/MinDurationModifierCalculator.docx | Bin 0 -> 38422 bytes .../util/MinDurationModifierCalculator.scala | 187 ---- .../pushservice/util/MrUserStateUtil.docx | Bin 0 -> 36882 bytes .../pushservice/util/MrUserStateUtil.scala | 16 - .../util/NsfwPersonalizationUtil.docx | Bin 0 -> 38115 bytes .../util/NsfwPersonalizationUtil.scala | 126 --- .../util/OverrideNotificationUtil.docx | Bin 0 -> 39200 bytes .../util/OverrideNotificationUtil.scala | 230 ----- .../pushservice/util/PushAdaptorUtil.docx | Bin 0 -> 37965 bytes .../pushservice/util/PushAdaptorUtil.scala | 151 ---- .../util/PushAppPermissionUtil.docx | Bin 0 -> 37466 bytes .../util/PushAppPermissionUtil.scala | 49 - .../frigate/pushservice/util/PushCapUtil.docx | Bin 0 -> 38523 bytes .../pushservice/util/PushCapUtil.scala | 184 ---- .../pushservice/util/PushDeviceUtil.docx | Bin 0 -> 37224 bytes .../pushservice/util/PushDeviceUtil.scala | 57 -- .../pushservice/util/PushIbisUtil.docx | Bin 0 -> 37066 bytes .../pushservice/util/PushIbisUtil.scala | 36 - .../pushservice/util/PushToHomeUtil.docx | Bin 0 -> 37075 bytes .../pushservice/util/PushToHomeUtil.scala | 24 - .../pushservice/util/RFPHTakeStepUtil.docx | Bin 0 -> 37790 bytes .../pushservice/util/RFPHTakeStepUtil.scala | 114 --- .../pushservice/util/RelationshipUtil.docx | Bin 0 -> 37374 bytes .../pushservice/util/RelationshipUtil.scala | 66 -- .../util/ResponseStatsTrackUtils.docx | Bin 0 -> 37195 bytes .../util/ResponseStatsTrackUtils.scala | 42 - .../util/SendHandlerPredicateUtil.docx | Bin 0 -> 37844 bytes .../util/SendHandlerPredicateUtil.scala | 129 --- .../frigate/pushservice/util/TopicsUtil.docx | Bin 0 -> 40246 bytes .../frigate/pushservice/util/TopicsUtil.scala | 340 ------- recos-injector/BUILD.bazel | 1 - recos-injector/BUILD.docx | Bin 0 -> 36697 bytes recos-injector/CONFIG.docx | Bin 0 -> 36703 bytes recos-injector/CONFIG.ini | 10 - recos-injector/README.docx | Bin 0 -> 37509 bytes recos-injector/README.md | 40 - recos-injector/server/BUILD | 43 - recos-injector/server/BUILD.docx | Bin 0 -> 36975 bytes recos-injector/server/config/BUILD | 20 - recos-injector/server/config/BUILD.docx | Bin 0 -> 36856 bytes .../server/config/change_log_config.docx | Bin 0 -> 36702 bytes .../server/config/change_log_config.ini | 7 - recos-injector/server/config/decider.docx | Bin 0 -> 36846 bytes recos-injector/server/config/decider.yml | 11 - .../scala/com/twitter/recosinjector/BUILD | 40 - .../com/twitter/recosinjector/BUILD.docx | Bin 0 -> 37118 bytes .../scala/com/twitter/recosinjector/Main.docx | Bin 0 -> 38940 bytes .../com/twitter/recosinjector/Main.scala | 213 ----- .../com/twitter/recosinjector/clients/BUILD | 20 - .../twitter/recosinjector/clients/BUILD.docx | Bin 0 -> 36925 bytes .../recosinjector/clients/Gizmoduck.docx | Bin 0 -> 37037 bytes .../recosinjector/clients/Gizmoduck.scala | 26 - .../clients/RecosHoseEntitiesCache.docx | Bin 0 -> 38444 bytes .../clients/RecosHoseEntitiesCache.scala | 137 --- .../recosinjector/clients/SocialGraph.docx | Bin 0 -> 37601 bytes .../recosinjector/clients/SocialGraph.scala | 80 -- .../recosinjector/clients/Tweetypie.docx | Bin 0 -> 37123 bytes .../recosinjector/clients/Tweetypie.scala | 30 - .../recosinjector/clients/UrlResolver.docx | Bin 0 -> 37877 bytes .../recosinjector/clients/UrlResolver.scala | 105 --- .../com/twitter/recosinjector/config/BUILD | 36 - .../twitter/recosinjector/config/BUILD.docx | Bin 0 -> 37087 bytes .../recosinjector/config/CacheConfig.docx | Bin 0 -> 36949 bytes .../recosinjector/config/CacheConfig.scala | 23 - .../twitter/recosinjector/config/Config.docx | Bin 0 -> 37145 bytes .../twitter/recosinjector/config/Config.scala | 41 - .../recosinjector/config/DeployConfig.docx | Bin 0 -> 39053 bytes .../recosinjector/config/DeployConfig.scala | 215 ----- .../recosinjector/config/ProdConfig.docx | Bin 0 -> 37148 bytes .../recosinjector/config/ProdConfig.scala | 29 - .../recosinjector/config/StagingConfig.docx | Bin 0 -> 37183 bytes .../recosinjector/config/StagingConfig.scala | 33 - .../com/twitter/recosinjector/decider/BUILD | 7 - .../twitter/recosinjector/decider/BUILD.docx | Bin 0 -> 36729 bytes .../decider/RecosInjectorDecider.docx | Bin 0 -> 37153 bytes .../decider/RecosInjectorDecider.scala | 33 - .../com/twitter/recosinjector/edges/BUILD | 23 - .../twitter/recosinjector/edges/BUILD.docx | Bin 0 -> 36965 bytes .../twitter/recosinjector/edges/Edges.docx | Bin 0 -> 37470 bytes .../twitter/recosinjector/edges/Edges.scala | 87 -- .../edges/EventToMessageBuilder.docx | Bin 0 -> 37700 bytes .../edges/EventToMessageBuilder.scala | 82 -- ...ocialWriteEventToUserUserGraphBuilder.docx | Bin 0 -> 37544 bytes ...cialWriteEventToUserUserGraphBuilder.scala | 73 -- ...ineEventToUserTweetEntityGraphBuilder.docx | Bin 0 -> 37362 bytes ...neEventToUserTweetEntityGraphBuilder.scala | 60 -- .../TimelineEventToUserTweetGraphBuilder.docx | Bin 0 -> 37273 bytes ...TimelineEventToUserTweetGraphBuilder.scala | 54 -- ...eetEventToUserTweetEntityGraphBuilder.docx | Bin 0 -> 39631 bytes ...etEventToUserTweetEntityGraphBuilder.scala | 343 ------- .../TweetEventToUserTweetGraphBuilder.docx | Bin 0 -> 37729 bytes .../TweetEventToUserTweetGraphBuilder.scala | 88 -- .../TweetEventToUserUserGraphBuilder.docx | Bin 0 -> 37516 bytes .../TweetEventToUserUserGraphBuilder.scala | 65 -- ...UnifiedUserActionToUserAdGraphBuilder.docx | Bin 0 -> 37230 bytes ...nifiedUserActionToUserAdGraphBuilder.scala | 44 - ...UserActionToUserTweetGraphPlusBuilder.docx | Bin 0 -> 37351 bytes ...serActionToUserTweetGraphPlusBuilder.scala | 51 -- ...fiedUserActionToUserVideoGraphBuilder.docx | Bin 0 -> 37353 bytes ...iedUserActionToUserVideoGraphBuilder.scala | 56 -- .../edges/UserTweetEntityEdgeBuilder.docx | Bin 0 -> 37717 bytes .../edges/UserTweetEntityEdgeBuilder.scala | 80 -- .../recosinjector/event_processors/BUILD | 20 - .../recosinjector/event_processors/BUILD.docx | Bin 0 -> 36902 bytes .../event_processors/EventBusProcessor.docx | Bin 0 -> 37605 bytes .../event_processors/EventBusProcessor.scala | 60 -- .../SocialWriteEventProcessor.docx | Bin 0 -> 37213 bytes .../SocialWriteEventProcessor.scala | 33 - .../TimelineEventProcessor.docx | Bin 0 -> 38325 bytes .../TimelineEventProcessor.scala | 150 ---- .../event_processors/TweetEventProcessor.docx | Bin 0 -> 39510 bytes .../TweetEventProcessor.scala | 256 ------ .../com/twitter/recosinjector/filters/BUILD | 10 - .../twitter/recosinjector/filters/BUILD.docx | Bin 0 -> 36803 bytes .../filters/NullCastTweetFilter.docx | Bin 0 -> 37193 bytes .../filters/NullCastTweetFilter.scala | 34 - .../recosinjector/filters/TweetFilter.docx | Bin 0 -> 37084 bytes .../recosinjector/filters/TweetFilter.scala | 31 - .../recosinjector/filters/UserFilter.docx | Bin 0 -> 37642 bytes .../recosinjector/filters/UserFilter.scala | 69 -- .../twitter/recosinjector/publishers/BUILD | 12 - .../recosinjector/publishers/BUILD.docx | Bin 0 -> 36834 bytes .../publishers/KafkaEventPublisher.docx | Bin 0 -> 37541 bytes .../publishers/KafkaEventPublisher.scala | 54 -- .../com/twitter/recosinjector/util/BUILD | 12 - .../com/twitter/recosinjector/util/BUILD.docx | Bin 0 -> 36837 bytes .../recosinjector/util/EventDetails.docx | Bin 0 -> 38474 bytes .../recosinjector/util/EventDetails.scala | 126 --- .../recosinjector/uua_processors/BUILD | 24 - .../recosinjector/uua_processors/BUILD.docx | Bin 0 -> 36975 bytes .../UnifiedUserActionProcessor.docx | Bin 0 -> 38794 bytes .../UnifiedUserActionProcessor.scala | 181 ---- .../UnifiedUserActionsConsumer.docx | Bin 0 -> 37707 bytes .../UnifiedUserActionsConsumer.scala | 71 -- representation-manager/BUILD.bazel | 1 - representation-manager/BUILD.docx | Bin 0 -> 36686 bytes representation-manager/README.docx | Bin 0 -> 36758 bytes representation-manager/README.md | 4 - representation-manager/bin/deploy.docx | Bin 0 -> 36756 bytes representation-manager/bin/deploy.sh | 4 - .../com/twitter/representation_manager/BUILD | 17 - .../twitter/representation_manager/BUILD.docx | Bin 0 -> 36951 bytes .../representation_manager/StoreBuilder.docx | Bin 0 -> 38106 bytes .../representation_manager/StoreBuilder.scala | 208 ----- .../representation_manager/config/BUILD | 12 - .../representation_manager/config/BUILD.docx | Bin 0 -> 36850 bytes .../config/ClientConfig.docx | Bin 0 -> 37136 bytes .../config/ClientConfig.scala | 25 - .../config/InMemoryCacheConfig.docx | Bin 0 -> 37414 bytes .../config/InMemoryCacheConfig.scala | 53 -- representation-manager/server/BUILD | 21 - representation-manager/server/BUILD.docx | Bin 0 -> 36974 bytes .../server/src/main/resources/BUILD | 7 - .../server/src/main/resources/BUILD.docx | Bin 0 -> 36704 bytes .../src/main/resources/config/decider.docx | Bin 0 -> 38080 bytes .../src/main/resources/config/decider.yml | 219 ----- .../server/src/main/resources/logback.docx | Bin 0 -> 38344 bytes .../server/src/main/resources/logback.xml | 165 ---- .../com/twitter/representation_manager/BUILD | 13 - .../twitter/representation_manager/BUILD.docx | Bin 0 -> 36842 bytes .../RepresentationManagerFedServer.docx | Bin 0 -> 37088 bytes .../RepresentationManagerFedServer.scala | 40 - .../representation_manager/columns/BUILD | 9 - .../representation_manager/columns/BUILD.docx | Bin 0 -> 36774 bytes .../columns/ColumnConfigBase.docx | Bin 0 -> 37047 bytes .../columns/ColumnConfigBase.scala | 26 - .../columns/topic/BUILD | 14 - .../columns/topic/BUILD.docx | Bin 0 -> 36849 bytes ...LocaleEntityIdSimClustersEmbeddingCol.docx | Bin 0 -> 37622 bytes ...ocaleEntityIdSimClustersEmbeddingCol.scala | 77 -- .../topic/TopicIdSimClustersEmbeddingCol.docx | Bin 0 -> 37604 bytes .../TopicIdSimClustersEmbeddingCol.scala | 74 -- .../columns/tweet/BUILD | 14 - .../columns/tweet/BUILD.docx | Bin 0 -> 36849 bytes .../tweet/TweetSimClustersEmbeddingCol.docx | Bin 0 -> 37606 bytes .../tweet/TweetSimClustersEmbeddingCol.scala | 73 -- .../representation_manager/columns/user/BUILD | 14 - .../columns/user/BUILD.docx | Bin 0 -> 36849 bytes .../user/UserSimClustersEmbeddingCol.docx | Bin 0 -> 37603 bytes .../user/UserSimClustersEmbeddingCol.scala | 73 -- .../representation_manager/common/BUILD | 13 - .../representation_manager/common/BUILD.docx | Bin 0 -> 36868 bytes .../common/MemCacheConfig.docx | Bin 0 -> 38432 bytes .../common/MemCacheConfig.scala | 153 ---- .../common/RepresentationManagerDecider.docx | Bin 0 -> 37031 bytes .../common/RepresentationManagerDecider.scala | 25 - .../representation_manager/migration/BUILD | 25 - .../migration/BUILD.docx | Bin 0 -> 37050 bytes .../migration/LegacyRMS.docx | Bin 0 -> 42360 bytes .../migration/LegacyRMS.scala | 846 ------------------ .../representation_manager/modules/BUILD | 18 - .../representation_manager/modules/BUILD.docx | Bin 0 -> 36941 bytes .../modules/CacheModule.docx | Bin 0 -> 37148 bytes .../modules/CacheModule.scala | 34 - .../modules/InterestsThriftClientModule.docx | Bin 0 -> 37222 bytes .../modules/InterestsThriftClientModule.scala | 40 - .../modules/LegacyRMSConfigModule.docx | Bin 0 -> 36882 bytes .../modules/LegacyRMSConfigModule.scala | 18 - .../modules/StoreModule.docx | Bin 0 -> 36944 bytes .../modules/StoreModule.scala | 24 - .../modules/TimerModule.docx | Bin 0 -> 36810 bytes .../modules/TimerModule.scala | 13 - .../modules/UttClientModule.docx | Bin 0 -> 37157 bytes .../modules/UttClientModule.scala | 39 - .../representation_manager/store/BUILD | 16 - .../representation_manager/store/BUILD.docx | Bin 0 -> 36942 bytes 400 files changed, 17736 deletions(-) create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/predicate/ntab_caret_fatigue/RecTypeNtabCaretFatiguePredicate.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/predicate/ntab_caret_fatigue/RecTypeNtabCaretFatiguePredicate.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/predicate/package.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/predicate/package.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/predicate/quality_model_predicate/OpenOrNtabClickQualityPredicate.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/predicate/quality_model_predicate/OpenOrNtabClickQualityPredicate.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/predicate/quality_model_predicate/QualityPredicateCommon.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/predicate/quality_model_predicate/QualityPredicateCommon.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/predicate/quality_model_predicate/QualityPredicateMap.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/predicate/quality_model_predicate/QualityPredicateMap.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/CRTBoostRanker.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/CRTBoostRanker.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/CRTDownRanker.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/CRTDownRanker.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/LoggedOutRanker.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/LoggedOutRanker.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/ModelBasedRanker.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/ModelBasedRanker.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/PushserviceRanker.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/PushserviceRanker.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/RFPHLightRanker.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/RFPHLightRanker.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/RFPHRanker.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/RFPHRanker.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/SubscriptionCreatorRanker.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/SubscriptionCreatorRanker.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/LoggedOutRefreshForPushHandler.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/LoggedOutRefreshForPushHandler.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/PushCandidateHydrator.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/PushCandidateHydrator.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RFPHFeatureHydrator.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RFPHFeatureHydrator.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RFPHPrerankFilter.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RFPHPrerankFilter.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RFPHRestrictStep.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RFPHRestrictStep.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RFPHStatsRecorder.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RFPHStatsRecorder.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RefreshForPushHandler.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RefreshForPushHandler.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RefreshForPushNotifier.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RefreshForPushNotifier.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/cross/BaseCopyFramework.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/cross/BaseCopyFramework.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/cross/CandidateCopyExpansion.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/cross/CandidateCopyExpansion.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/cross/CandidateCopyPair.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/cross/CandidateCopyPair.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/cross/CandidateToCopy.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/cross/CandidateToCopy.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/cross/CopyFilters.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/cross/CopyFilters.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/cross/CopyPredicates.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/cross/CopyPredicates.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/scriber/MrRequestScribeHandler.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/scriber/MrRequestScribeHandler.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/SendHandler.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/SendHandler.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/SendHandlerPushCandidateHydrator.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/SendHandlerPushCandidateHydrator.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/CandidateGenerator.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/CandidateGenerator.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/MagicFanoutCreatorEventCandidateGenerator.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/MagicFanoutCreatorEventCandidateGenerator.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/MagicFanoutNewsEventCandidateGenerator.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/MagicFanoutNewsEventCandidateGenerator.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/MagicFanoutProductLaunchCandidateGenerator.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/MagicFanoutProductLaunchCandidateGenerator.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/MagicFanoutSportsEventCandidateGenerator.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/MagicFanoutSportsEventCandidateGenerator.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/PushRequestToCandidate.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/PushRequestToCandidate.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/ScheduledSpaceSpeakerCandidateGenerator.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/ScheduledSpaceSpeakerCandidateGenerator.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/ScheduledSpaceSubscriberCandidateGenerator.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/ScheduledSpaceSubscriberCandidateGenerator.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/ContentMixerStore.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/ContentMixerStore.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/CopySelectionServiceStore.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/CopySelectionServiceStore.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/CrMixerTweetStore.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/CrMixerTweetStore.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/ExploreRankerStore.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/ExploreRankerStore.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/FollowRecommendationsStore.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/FollowRecommendationsStore.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/IbisStore.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/IbisStore.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/InterestDiscoveryStore.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/InterestDiscoveryStore.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/LabeledPushRecsDecideredStore.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/LabeledPushRecsDecideredStore.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/LexServiceStore.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/LexServiceStore.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/NTabHistoryStore.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/NTabHistoryStore.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/OCFPromptHistoryStore.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/OCFPromptHistoryStore.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/OnlineUserHistoryStore.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/OnlineUserHistoryStore.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/OpenAppUserStore.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/OpenAppUserStore.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/SocialGraphServiceProcessStore.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/SocialGraphServiceProcessStore.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/SoftUserFollowingStore.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/SoftUserFollowingStore.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/TweetImpressionsStore.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/TweetImpressionsStore.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/TweetTranslationStore.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/TweetTranslationStore.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/UttEntityHydrationStore.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/store/UttEntityHydrationStore.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/CandidateNotifier.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/CandidateNotifier.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/LoggedOutRefreshForPushNotifier.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/LoggedOutRefreshForPushNotifier.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/NotificationSender.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/NotificationSender.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/NotificationServiceSender.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/NotificationServiceSender.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/SendHandlerNotifier.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/SendHandlerNotifier.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/candidate_validator/CandidateValidator.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/candidate_validator/CandidateValidator.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/candidate_validator/RFPHCandidateValidator.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/candidate_validator/RFPHCandidateValidator.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/candidate_validator/SendHandlerPostCandidateValidator.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/candidate_validator/SendHandlerPostCandidateValidator.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/candidate_validator/SendHandlerPreCandidateValidator.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/candidate_validator/SendHandlerPreCandidateValidator.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/channel_selection/ChannelCandidate.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/channel_selection/ChannelCandidate.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/channel_selection/ChannelSelector.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/channel_selection/ChannelSelector.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/channel_selection/NtabOnlyChannelSelector.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/channel_selection/NtabOnlyChannelSelector.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/history/EventBusWriter.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/history/EventBusWriter.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/history/HistoryWriter.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/history/HistoryWriter.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/BasicRFPHPredicates.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/BasicRFPHPredicates.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/BasicSendHandlerPredicates.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/BasicSendHandlerPredicates.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/BasicTweetPredicates.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/BasicTweetPredicates.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/BasicTweetPredicatesForRFPH.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/BasicTweetPredicatesForRFPH.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/OutOfNetworkTweetPredicates.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/OutOfNetworkTweetPredicates.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/TakeCommonPredicates.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/TakeCommonPredicates.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/candidate_map/CandidatePredicatesMap.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/candidate_map/CandidatePredicatesMap.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/candidate_map/SendHandlerCandidatePredicatesMap.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/candidate_map/SendHandlerCandidatePredicatesMap.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/sender/Ibis2Sender.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/sender/Ibis2Sender.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/sender/NtabSender.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/take/sender/NtabSender.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/target/CustomFSFields.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/target/CustomFSFields.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/target/LoggedOutPushTargetUserBuilder.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/target/LoggedOutPushTargetUserBuilder.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/target/PushTargetUserBuilder.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/target/PushTargetUserBuilder.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/target/RFPHTargetPredicateGenerator.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/target/RFPHTargetPredicateGenerator.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/target/TargetAppPermissions.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/target/TargetAppPermissions.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/target/TargetScoringDetails.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/target/TargetScoringDetails.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/AdaptorUtils.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/AdaptorUtils.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/AdhocStatsUtil.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/AdhocStatsUtil.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/Candidate2FrigateNotification.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/Candidate2FrigateNotification.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/CandidateHydrationUtil.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/CandidateHydrationUtil.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/CandidateUtil.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/CandidateUtil.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/CopyUtil.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/CopyUtil.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/EmailLandingPageExperimentUtil.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/EmailLandingPageExperimentUtil.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/FunctionalUtil.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/FunctionalUtil.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/IbisScribeTargets.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/IbisScribeTargets.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/InlineActionUtil.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/InlineActionUtil.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/MediaAnnotationsUtil.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/MediaAnnotationsUtil.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/MinDurationModifierCalculator.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/MinDurationModifierCalculator.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/MrUserStateUtil.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/MrUserStateUtil.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/NsfwPersonalizationUtil.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/NsfwPersonalizationUtil.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/OverrideNotificationUtil.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/OverrideNotificationUtil.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushAdaptorUtil.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushAdaptorUtil.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushAppPermissionUtil.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushAppPermissionUtil.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushCapUtil.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushCapUtil.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushDeviceUtil.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushDeviceUtil.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushIbisUtil.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushIbisUtil.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushToHomeUtil.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushToHomeUtil.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/RFPHTakeStepUtil.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/RFPHTakeStepUtil.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/RelationshipUtil.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/RelationshipUtil.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/ResponseStatsTrackUtils.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/ResponseStatsTrackUtils.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/SendHandlerPredicateUtil.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/SendHandlerPredicateUtil.scala create mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/TopicsUtil.docx delete mode 100644 pushservice/src/main/scala/com/twitter/frigate/pushservice/util/TopicsUtil.scala delete mode 100644 recos-injector/BUILD.bazel create mode 100644 recos-injector/BUILD.docx create mode 100644 recos-injector/CONFIG.docx delete mode 100644 recos-injector/CONFIG.ini create mode 100644 recos-injector/README.docx delete mode 100644 recos-injector/README.md delete mode 100644 recos-injector/server/BUILD create mode 100644 recos-injector/server/BUILD.docx delete mode 100644 recos-injector/server/config/BUILD create mode 100644 recos-injector/server/config/BUILD.docx create mode 100644 recos-injector/server/config/change_log_config.docx delete mode 100755 recos-injector/server/config/change_log_config.ini create mode 100644 recos-injector/server/config/decider.docx delete mode 100644 recos-injector/server/config/decider.yml delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/BUILD create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/BUILD.docx create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/Main.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/Main.scala delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/clients/BUILD create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/clients/BUILD.docx create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/clients/Gizmoduck.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/clients/Gizmoduck.scala create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/clients/RecosHoseEntitiesCache.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/clients/RecosHoseEntitiesCache.scala create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/clients/SocialGraph.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/clients/SocialGraph.scala create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/clients/Tweetypie.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/clients/Tweetypie.scala create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/clients/UrlResolver.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/clients/UrlResolver.scala delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/config/BUILD create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/config/BUILD.docx create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/config/CacheConfig.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/config/CacheConfig.scala create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/config/Config.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/config/Config.scala create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/config/DeployConfig.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/config/DeployConfig.scala create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/config/ProdConfig.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/config/ProdConfig.scala create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/config/StagingConfig.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/config/StagingConfig.scala delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/decider/BUILD create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/decider/BUILD.docx create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/decider/RecosInjectorDecider.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/decider/RecosInjectorDecider.scala delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/BUILD create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/BUILD.docx create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/Edges.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/Edges.scala create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/EventToMessageBuilder.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/EventToMessageBuilder.scala create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/SocialWriteEventToUserUserGraphBuilder.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/SocialWriteEventToUserUserGraphBuilder.scala create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/TimelineEventToUserTweetEntityGraphBuilder.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/TimelineEventToUserTweetEntityGraphBuilder.scala create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/TimelineEventToUserTweetGraphBuilder.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/TimelineEventToUserTweetGraphBuilder.scala create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/TweetEventToUserTweetEntityGraphBuilder.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/TweetEventToUserTweetEntityGraphBuilder.scala create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/TweetEventToUserTweetGraphBuilder.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/TweetEventToUserTweetGraphBuilder.scala create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/TweetEventToUserUserGraphBuilder.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/TweetEventToUserUserGraphBuilder.scala create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/UnifiedUserActionToUserAdGraphBuilder.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/UnifiedUserActionToUserAdGraphBuilder.scala create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/UnifiedUserActionToUserTweetGraphPlusBuilder.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/UnifiedUserActionToUserTweetGraphPlusBuilder.scala create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/UnifiedUserActionToUserVideoGraphBuilder.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/UnifiedUserActionToUserVideoGraphBuilder.scala create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/UserTweetEntityEdgeBuilder.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/UserTweetEntityEdgeBuilder.scala delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/event_processors/BUILD create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/event_processors/BUILD.docx create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/event_processors/EventBusProcessor.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/event_processors/EventBusProcessor.scala create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/event_processors/SocialWriteEventProcessor.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/event_processors/SocialWriteEventProcessor.scala create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/event_processors/TimelineEventProcessor.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/event_processors/TimelineEventProcessor.scala create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/event_processors/TweetEventProcessor.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/event_processors/TweetEventProcessor.scala delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/filters/BUILD create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/filters/BUILD.docx create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/filters/NullCastTweetFilter.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/filters/NullCastTweetFilter.scala create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/filters/TweetFilter.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/filters/TweetFilter.scala create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/filters/UserFilter.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/filters/UserFilter.scala delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/publishers/BUILD create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/publishers/BUILD.docx create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/publishers/KafkaEventPublisher.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/publishers/KafkaEventPublisher.scala delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/util/BUILD create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/util/BUILD.docx create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/util/EventDetails.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/util/EventDetails.scala delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/uua_processors/BUILD create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/uua_processors/BUILD.docx create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/uua_processors/UnifiedUserActionProcessor.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/uua_processors/UnifiedUserActionProcessor.scala create mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/uua_processors/UnifiedUserActionsConsumer.docx delete mode 100644 recos-injector/server/src/main/scala/com/twitter/recosinjector/uua_processors/UnifiedUserActionsConsumer.scala delete mode 100644 representation-manager/BUILD.bazel create mode 100644 representation-manager/BUILD.docx create mode 100644 representation-manager/README.docx delete mode 100644 representation-manager/README.md create mode 100644 representation-manager/bin/deploy.docx delete mode 100755 representation-manager/bin/deploy.sh delete mode 100644 representation-manager/client/src/main/scala/com/twitter/representation_manager/BUILD create mode 100644 representation-manager/client/src/main/scala/com/twitter/representation_manager/BUILD.docx create mode 100644 representation-manager/client/src/main/scala/com/twitter/representation_manager/StoreBuilder.docx delete mode 100644 representation-manager/client/src/main/scala/com/twitter/representation_manager/StoreBuilder.scala delete mode 100644 representation-manager/client/src/main/scala/com/twitter/representation_manager/config/BUILD create mode 100644 representation-manager/client/src/main/scala/com/twitter/representation_manager/config/BUILD.docx create mode 100644 representation-manager/client/src/main/scala/com/twitter/representation_manager/config/ClientConfig.docx delete mode 100644 representation-manager/client/src/main/scala/com/twitter/representation_manager/config/ClientConfig.scala create mode 100644 representation-manager/client/src/main/scala/com/twitter/representation_manager/config/InMemoryCacheConfig.docx delete mode 100644 representation-manager/client/src/main/scala/com/twitter/representation_manager/config/InMemoryCacheConfig.scala delete mode 100644 representation-manager/server/BUILD create mode 100644 representation-manager/server/BUILD.docx delete mode 100644 representation-manager/server/src/main/resources/BUILD create mode 100644 representation-manager/server/src/main/resources/BUILD.docx create mode 100644 representation-manager/server/src/main/resources/config/decider.docx delete mode 100644 representation-manager/server/src/main/resources/config/decider.yml create mode 100644 representation-manager/server/src/main/resources/logback.docx delete mode 100644 representation-manager/server/src/main/resources/logback.xml delete mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/BUILD create mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/BUILD.docx create mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/RepresentationManagerFedServer.docx delete mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/RepresentationManagerFedServer.scala delete mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/BUILD create mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/BUILD.docx create mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/ColumnConfigBase.docx delete mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/ColumnConfigBase.scala delete mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/topic/BUILD create mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/topic/BUILD.docx create mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/topic/LocaleEntityIdSimClustersEmbeddingCol.docx delete mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/topic/LocaleEntityIdSimClustersEmbeddingCol.scala create mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/topic/TopicIdSimClustersEmbeddingCol.docx delete mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/topic/TopicIdSimClustersEmbeddingCol.scala delete mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/tweet/BUILD create mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/tweet/BUILD.docx create mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/tweet/TweetSimClustersEmbeddingCol.docx delete mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/tweet/TweetSimClustersEmbeddingCol.scala delete mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/user/BUILD create mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/user/BUILD.docx create mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/user/UserSimClustersEmbeddingCol.docx delete mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/user/UserSimClustersEmbeddingCol.scala delete mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/common/BUILD create mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/common/BUILD.docx create mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/common/MemCacheConfig.docx delete mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/common/MemCacheConfig.scala create mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/common/RepresentationManagerDecider.docx delete mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/common/RepresentationManagerDecider.scala delete mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/migration/BUILD create mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/migration/BUILD.docx create mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/migration/LegacyRMS.docx delete mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/migration/LegacyRMS.scala delete mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/modules/BUILD create mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/modules/BUILD.docx create mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/modules/CacheModule.docx delete mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/modules/CacheModule.scala create mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/modules/InterestsThriftClientModule.docx delete mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/modules/InterestsThriftClientModule.scala create mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/modules/LegacyRMSConfigModule.docx delete mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/modules/LegacyRMSConfigModule.scala create mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/modules/StoreModule.docx delete mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/modules/StoreModule.scala create mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/modules/TimerModule.docx delete mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/modules/TimerModule.scala create mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/modules/UttClientModule.docx delete mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/modules/UttClientModule.scala delete mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/store/BUILD create mode 100644 representation-manager/server/src/main/scala/com/twitter/representation_manager/store/BUILD.docx diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/predicate/ntab_caret_fatigue/RecTypeNtabCaretFatiguePredicate.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/predicate/ntab_caret_fatigue/RecTypeNtabCaretFatiguePredicate.docx new file mode 100644 index 0000000000000000000000000000000000000000..71bd5dd375dbacd24557920e755fa5c239bbd0c5 GIT binary patch literal 37657 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 CommonNtabCaretClickFatiguePredicate -} -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.frigate.pushservice.params.PushParams -import com.twitter.frigate.thriftscala.NotificationDisplayLocation -import com.twitter.frigate.thriftscala.{CommonRecommendationType => CRT} -import com.twitter.hermit.predicate.NamedPredicate -import com.twitter.hermit.predicate.Predicate -import com.twitter.notificationservice.thriftscala.CaretFeedbackDetails -import com.twitter.util.Duration -import com.twitter.util.Future - -object RecTypeNtabCaretClickFatiguePredicate { - val defaultName = "RecTypeNtabCaretClickFatiguePredicateForCandidate" - - private def candidateFatiguePredicate( - genericTypeCategories: Seq[String], - crts: Set[CRT] - )( - implicit stats: StatsReceiver - ): NamedPredicate[ - PushCandidate - ] = { - val name = "f1TriggeredCRTBasedFatiguePredciate" - val scopedStats = stats.scope(s"predicate_$name") - Predicate - .fromAsync { candidate: PushCandidate => - if (candidate.frigateNotification.notificationDisplayLocation == NotificationDisplayLocation.PushToMobileDevice) { - if (candidate.target.params(PushParams.EnableFatigueNtabCaretClickingParam)) { - NtabCaretClickContFnFatiguePredicate - .ntabCaretClickContFnFatiguePredicates( - filterHistory = FatiguePredicate.recTypesOnlyFilter(crts), - filterCaretFeedbackHistory = - CaretFeedbackHistoryFilter.caretFeedbackHistoryFilter(genericTypeCategories), - filterInlineFeedbackHistory = - NtabCaretClickFatigueUtils.feedbackModelFilterByCRT(crts) - ).apply(Seq(candidate)) - .map(_.headOption.getOrElse(false)) - } else Future.True - } else { - Future.True - } - }.withStats(scopedStats) - .withName(name) - } - - def apply( - genericTypeCategories: Seq[String], - crts: Set[CRT], - calculateFatiguePeriod: Seq[CaretFeedbackDetails] => Duration, - useMostRecentDislikeTime: Boolean, - name: String = defaultName - )( - implicit globalStats: StatsReceiver - ): NamedPredicate[PushCandidate] = { - val scopedStats = globalStats.scope(name) - val commonNtabCaretClickFatiguePredicate = CommonNtabCaretClickFatiguePredicate( - filterCaretFeedbackHistory = - CaretFeedbackHistoryFilter.caretFeedbackHistoryFilter(genericTypeCategories), - filterHistory = FatiguePredicate.recTypesOnlyFilter(crts), - calculateFatiguePeriod = calculateFatiguePeriod, - useMostRecentDislikeTime = useMostRecentDislikeTime, - name = name - )(globalStats) - - Predicate - .fromAsync { candidate: PushCandidate => - if (candidate.frigateNotification.notificationDisplayLocation == NotificationDisplayLocation.PushToMobileDevice) { - if (candidate.target.params(PushParams.EnableFatigueNtabCaretClickingParam)) { - commonNtabCaretClickFatiguePredicate - .apply(Seq(candidate.target)) - .map(_.headOption.getOrElse(false)) - } else Future.True - } else { - Future.True - } - }.andThen(candidateFatiguePredicate(genericTypeCategories, crts)) - .withStats(scopedStats) - .withName(name) - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/predicate/package.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/predicate/package.docx new file mode 100644 index 0000000000000000000000000000000000000000..9dba853754f840d7039988027bb9e252ed518979 GIT binary patch literal 37053 zcmagFWmsIxwl<2pdvFQv?k<7g?ruRF2@Z`1cXxMp2<{FcxLc4waQCmXWbd{2Ip^L# zlZUDruZ%HgRrTy@C0R%)EHE%IIIz+*ZmlYnqPQe*Ft9NgFfdF|tFAb}{-kKl7TkN1abz-!(z`@+gD|zN zncnZFxxiU=Yy0^OF@n#;a&-cdv>w2ssjFf%Fi3`i;Zy|2phIg4X1Mb@C>+#Ojz*|= z=|Am_DY?E(__~oli2F%qzbr9PX=K@CAbj=bNewePSC{%?)EGbDT<1DT-{54a?pVLt zTZH01ga|}aX9L4J_{RyrCWxwb_7E~#^Ua<=_jpx<{!@pJ zcC?z0)lr}{zUQ4dO6GA-04;R`nSLTnI$K9fm3Pox|J@yJQOtXxhow-1ySZ6;y9sr_ z5!5f7>cVv@?V>TsqwKugZ;nUevLg4O>TN)Pfgyta8akQVIx{o;M-?F4DtrbpaRpoo}L-EmoHkP6XnU=HfiHk{6gR*Oj((%DI)lm?Y0pkE_?rqOiq zVVniP0HoxaIm1h;+J4x&h2IM|f0j1#6FG`?KvzvuFk{8#DMXQR#Jm=lIhc+vk8R7u z`TE$d^hvkkg6S|&Tv64){rxq}WCz9ok7c7k$xQ3+hkeHP6qA~sQx+~8fy%xP)5O16 z>Qc^hnqroG;6`V3xz7GGL7`s|Rjoj``3xvQ=%56d0Zf&g01nQ~rT{1N-#2+y{J26t z3!3Dex8$6>M%Wb^oTLmL_)+*rX)OPxwp$KPdE4=9uF1{aLOY#YdRO92{^2VJp>^)2 z7D&_J_+XNdxHEsVa71nF*HsgowWn-JI^L?JpuV%7$Jt9NOFq-Fo(N@pB!t>*NSO>) zeYu5DK8k^QPL8=RQ)F4KD#dw+Vyfu!%U?7^;%UB8Ad~K4(f;)JCk{)Xh;KkIYbhoM z%S12D0}o3cFqWG#fSO&ZfDd%qwuN%VuhvoAIo!}?#b0ekUj1DA_0jZ_)fY&lgBmh;o{WTdM}!R``jtljG*JE2Mq}QcDODO7gqBnUm5= zk$^n7HC@*Yz(7&m@Z8+a8ly9%pYUh1R`y!Vm*#OE>J(#O=6W8=u$!P|2z*xJ-SveP zYeu3BR*7gPl+0J@?+jg&`G*a@Zy#RYEfLb+b6-H=9a*9n(9XJvzdrX}68vXfu2)xa zk3n^@g#rUZ`)6H@9UT5Bi`uyTDhpc26Frpv=Wr`nQDwaNfCbSR@pb&#_{^5MG4hXb zP;IO`K%a+DY~C--H(~q@{7;QzPm7`!u#F0z)Un4O@<)^$*Abd(!iV=)ClAP-p~|7l zur&tJ^&JhT$ExOG7~wysX)0BZd674mOk5DdIyfuRPk&xP5!q<;DsESB@c#B}E+YBM zweEi4JV~i(X(LscMKQbr@}=feg-7YMAm@kOn8W^NCMT)`(u8Z|co{qUT!L>Ea5^QivQAGdNt%BHa%l{J=FW+!6tPyODCJ$U3E2 z1;Y(*JZ>OWtuNCIy^K1E?bZ?<&gJEVd=aOK9Q{s_WNi%Sy++T`@?Ud|ZM|(MZNLKd)$wW^kBn0%Pw5OT}2jYu5`U<*H*g2f|=&qF8!N4}~ zJpeUyqKzP)(g## zB%w*o&G-BvnYij+wu*5n1FJH^MT#FfJ2IG`nTgNgGajx8-sW$9k^JY4(ZHGWI0^{{ zrhxzF1M3EGGGhikwJvs`#p(B*aiYBmSmi zEb|BNxhcv@{d$Y$-Zg)lhyQfgu15q}+?ULVXX$!UOT{=rhyOz-h;ztsy#HsA2&tZV zM;gOfhAw&)Nz|8(FJ?uT<*ptw(~F6a#&tF%IyT7;k z4Z}DPJUSL7UW7lqgccY@5ILe%4RK+0H7>LKgfYC}S^S)p@oRsTp3%8U)U-WMKcXE6 z5u;bU_DJxEY4VqpMYahvEDgoB3whxXB1&Y>?ug_MBZOruvfU=H@=LDS(+mGxay?^W zWE_lu^_=Xd6D^Mh)!0@ zVK&O97drk}a}{?)+fvvv4hvRkx7`QQ3}+dVmNzV+(4eHl`AX_Beo>fvXY95Y7!-izr81#w zgx72$baf@oj~S}a7{0B&o^~}Vc!lI=-+gjcDsnOyey%!PI^(8UpRakVh!7F=)9oxh z7e-6Xh+v#q92-e+<#l-}iEgP4Ax^o60iNI5A6_wcW{hY( zOnHmTPceqa&UCqd|ZXv{RpJ)Bs_Y4>z?W!_!9RWHUz?#=KQZq z_cVl|iDLJrZa^Ls8}G#YmqG3sQaC1Ns%b?g*r-p%SuCkg2?-HWJg`M7o=$x4C$`yX2|g)hjwRsCgt*8u8~%NoZFnPu9a$}!bF1fy;|`r^0=isX?Bm9O#B73gRIb8 z(?gWcDj!#WQnfL*H}R6Ufm?Ng+bhsUQ?`9)a9xu7_O1a+D_bsLMKpyKcrHzT>}p$K{hlZ8tl4tGckkk4NA5F@Pr$0u^gESjiki zz!Ej(xTir{UDT$E6rQiPm#cG0Kumt-q%P@G<-x~9`DcW>Hp+o|g!fH(_9AWA)lr3q zQmXM^>bZ3wv?XTZQ;kD%vOjyalV40$w_bKu+H480r#tsCloK<^M97ti^4F3(zwfn>}S6>vKrg9STF^XaO)ON5oar^ z%~ainyewgl5apq)Pgf1H34S+e!()9tlQ`h10RPzw7D9MeD6)ibhnGmpMtNNG!?9rB zc`AlKDYYGr^Gd14zR{X2&&u^o4HWM~;CJT#oMWRZaQGvb!N3gEp}|o9&b9Mr4_kBR zKW12c{e&Hzb_j{iFQvjD?!ctpoMtDlzSzH>hc%)C;`Yy?xyXW(Ka17$ldRPxl{$r0i{vuO7Elyo?`THhQeta+e5`RQC3CDt_S& zjjVsWwrbGvdYWGy_jC&vesj@>p3DmJo~a4Q77rTI*_WsT@xlWc9UcU-RkG z(>?2YxeXP=P04b(hzoAlO<&r>BgJb%^+0ivf<;(u<3 z?>yhYZ%+{hdPJzTd-I=QlGTL8Ue}^R7loW+@J)v_poY{`3%}GF`e+OL@B}k=w8xkS zR=J&>hNN(xW^*eZzxf!P0R^jb>=)lK2fC6Y zTUWYI6b@En06X_T-s*I^rLqaSzUoSGJbTa$saOe0kEOUD$d~zm~sVvo`KR6Ejj%{F>aBm@y_`7nibg#UarxWcJ*DqC$)aLLOG<<_)VEL@`taIv zNgfgOIB*GK<3hHso|pEX3krgWwKpwuZ~v#9(nx@240D!MM{G-Y@S+x-kSR z`b^@X@95sxWVdkNMZJj(X=EacD0mWt&MYd_N7f{s)yQH#N-Im3VyGmtR|GNaVbPPx zGA@3Ei&yyCUFo|?$b7Fc)-jB=P}#wnQ2?%Ndy&)fQih+Z6VCAZv~JbOUwt-ExEx-~ z%DySHq-D30fL6!_`4LVf1A!8%_dvpt>?olih@nYaMJ#sZGc6gM385A6Afu zstCeL2Q4Y0-9}|rfi#>71wBT9Lwt)LY32`o{+Kwl!t9QU;4Ml3xHiwIt_YgKB@S9p zLI?B+qu3=*Y(Q)WbYbrA&QG9DoWDDvw%-H5MgJOK-Gooc1jX!uIMOGx0r5BX2}e9A zloT|M_K#2<5Lz$@_di1aq=G7=KC>os|1W|wWeQLW!XGMf4wtLObc_GDvz5UVr z?fa-rVf~gH36g009j0ZGB)#Y}&N%$HCkG^PMvrMDG={Y@qRh>~HPYKtpzBhm8}i_4 z7nARBjk6S^G*JRSv&4_=9J@uIGpM6 zAEw-hdK;|ruEb`YfqD3wL<;+1*72RDC40N94{v)u%3}y;tj||2zTR$UtqJc@i#D7? zYZq=9Rac4LkA02QTuQ)cx2~s{YHlj(gCkwur5*V8Ai|3Zj>OFSM3>S_UbHpA{LGve^ys!7j?@jePujqSqf5rU-BXL|4<_N~u1>snBm8!Y=NUYkFR#Rb6RUf03Ln^kN~tqcDfDGgW0>>WOmi)RH}4T= z6Bxi1P0XquGwGKt_4o9|DKf|5sruW7ovSDyLz6Bz8EN#O3ZQe1(x^GU1>;`VHjmgC#v>G>xwe!;&GP6_EIk_d;%YNq}*3r(sI0?7%hXUR& zi1MvW9KE0OWVrP{RmLFFI#h!PIwPZbTaDcm(H1kyw{Od0`gp^$5*hRA6c>&?c!p?W zPPUVlV4@HEd@(ug?>6n2vOVYA=M*jAiKG#0& z_IN#f`Fc4t=-K|_=mETYO?q26d7Sg@Pu89Lw^$w)BF+Hmh9cqQMx}tMY3%AEE8u*l$k=i+kTMPudAc% z4#6o+)>;<Xa=QIs^JBnz(K9D2v>zd`dA4 zYtK&39L4MvRLN=*=RR7~jV9@X%V9?=Eu4UjV??~4M{HVFLjk#av5J{*b;~&2?urI; z6r!cx$LbEr+ogV-gfI(edSf){h-?}^9wMxzMjnYa<*(%s@O9IO-q4G>Tz19@I2TK6 z=&-S>%=!ItHwN}%O5M>J2T9ZvU+Pf>H-%r`wTMp%1Frkpl%3`aiuG^V2*)nRmTeE^ zJ1*mUzKt>HsmA=8z;sB;$6wKG(mV_;K`Tv*IG(eQQR`HRx`Eo0{a!2YBRMo$KE!t{ zyiCn7Ly*jVE(^u!A?{eVd{S19n^8xc=dG?C%|y5r?5J`&Q_jp2`yn%0`Al0m%1&slF?GvcEO zMv4;fVoeyBHpr4V^19tN`u?qddb4?zbM@>jelcCWKMCQ>+x_d~0wHdtENUhTPxq2L zN3FUsX90qO+WYcPd^}6#wZ|HRiWhg8w({?5e&&WKvwLny3_lEd7WAioy`95U3SNz* z^ES7+$E;A(F%nPFWRyqULf>4jXCG*Tb;_Vln;sMIsC7tk4)Q;|)h zs=`rN)0_YP`A29O5Md56{g~jlwN!H~QQ&E(dboI=!!~4==oH;R$zU&2 zz(>`qelKy2@U0eSE6L%mlK#gFH4wXK!R<Rb$)hN%Mx%%%u4Z&6 zZp>sZeuXECruGMa7-;P9=I z`M{oXlh!s-b*ka*gU#>KFwoR91T~|(`thB?E<5l8kH8xd9=gyrkIi69>kh#tB@8Dki+%CqgTu?WlF4m% zgeb4+&x43Rr*6MP+*4L?B(5zjLu-sCsaIvkW<$7U*x8-N$v$W*x9MfKzv`Yoic688 z;xY;rB9F2jyUJ*sWUKEQA)g&}^}*y52XM@prrw5hSD_vxMPTn+;v*W?(V4hmH z8xUWfQ$1hJS`c7%9^P5skaneJQ5M)7tV9s$nah+Nyu6-kp3OrBTWn6nJ1Njgv=e?C z5;~V~u7o*cwV=|$yk9|z|0+4=7qrxvu?pP*Zs&>{D_I)FAUiUN_i1O@VC#wZQ+y8l zQ{=i5c46p-mhKkbVN@rkg7Y<(i|wMT`zE#vTqnFYEsV@oQa^_0tYb9pIZPw3fe20> zcRfQMw`orpNznNZF8<IhJLM0q z9zKnEDLFvY5GH@ih<5Jq2zQyS@rjthR#GYQV z$mhQGUrjG)QQndpW_N}7n)HLuZ-WYQF-^Mz7Ml8e%ox7&C(kgVJLC!>Gik&(0&NgB z>(&5bN0_j204B9_Q_Uf=x@h>J-TN;aQdIfeUObM)&LABB1C(5DOCenby^X*CO!vLo zppDO&yPzBaT-2Hv!~ka6Vt{==%<&xPWoW%Y-iF0PWK|H%B(^x9I_z+=Wqr_3)vJB4 z2qm}0NWg_iq1a^`zQajN48S*a0kPr7HH|*J}#d>sH^Zl-PpmXtZaqgM{=M%JH4k2^}S37>Q#4n3;o*c zlN-&YO#4im+3Lh44@gRp-?s28FL_zrot)Q4aF$NJ!^@nB%nPQM*_N!=p5=lRT?)^p zz2J=)Lso^GEx#4~)^3F`a!`gXi(6+mRlckN;Um?8buI?3NRzUUCa70#&?wt1UY~_< zw0Dy(Q()j;@Q&(8e*(7p_!|4><88#Z_GP4z)QT1O z1_p|y97n<2LF984D~pn6#Y(jzG{d@Z$4tvRfEbm@K7D1%iNYBCvl zm^Vc>X|ucRs#$LFDJf1_#OLl21Bzj&G-@2es+{X?^Cj#zr!6U53n@CT`&2 z9iRPIO#4S2cA}|K3b|bSmB%zm;DWrcc-6f6wQkf#{stf^+-(kk%tlulN-a=r7OCQ^ zMQ5B!xV~nR&9q&mF<#nmLzQ%0y37(R?h5?Y#3MB*h|on9=&xgKW6mE&9%k4T@nYb7dMK5`hi^A%^~4 z(Hv7wI5E`+?iRRGS@#Nc!J}Ui3X&pxUjBV#{KAJi5(VU>(1r=UBGi$eKvV&dB<{__ zr`c(ppQ38lEWBUaBt`W5 zbgPb(4|*BYpwt*3j_^>iP}HF2&R?Hc-&x^!ui$`>y2dvr(2lfrokdksSfWPD8O}Gt zNq5cA&Cf0!9MMC>Ph0IcyI_HPgkTnfT=m13!D-d<5-Gg@H=A+zf3fkp{C~31jJW%A zUr;Z`H5_~@sj=39dcXN8>B#Dr^9?rm=mEz?8(+9zM??Coq{zMYBq)jY;3WXVRNJ<)-L$MvLq1r*mh7RM@SRuZ>7b zW%@b@g_lf>P|ZLk6(sfNA9RFPT?sTVCb^`qqZO}?ZI71^wZ4ePb3UDjlr+QyQ6CH( zDcVqmGz0IcLu#h(C=mzVtZ)7aV7#%IG~gy83{nPYb*a_0c;OSSC-U3+CT^Q`8GqZQ=A3{`=o!wKfY^2>o@%`IYI#%M^dv4JKHsq#;$#$6`R+Y1I zcwyJ2>$Xz9j4nJi_mRr7(k{A6XDadNg=X8qMp;cPdKbL}VEQ@L3_wOhx*G%ho6GgP z&nWq;FQ*IWdMbPu#q8%|3XX;~;ii*YP$w%?Df!5?j5jb#16*Nt7^}Z@KE`X?nj2u6 z>||&SQFmEoj(*!s!n0&7r<{_>Y*-}?BbN*%^(0 z+Q|e3P5l|f^FM=Fh%Ci_AIwv+isJ0qox+yYFqDfLvCx%W=yP#Th;L74MGzRvIdc4W3t z=c5uY^C@i)hrlAB1EizEAMMHUW?Zakivl@3)X5iN&iIyW*Y1>4+7Z@&DB&6*ohr*Y zP2#oOV*AoJO5W^o8x-$F=`CMSgVnY*c^0qT%!-cNB>KHVA3kiZcQd@T3wPuME91%N zg`iovt})CqKaMsX-W(i8O(<4Jm(1-w>{}H?TG-Sxvy_x98*q9O!c2YsRd?FoCv*B$ zGKv?r{>A__u}?C>%m7fnWS_D4R5ds3ue2(Y?w498`VJ8v>0iPJZ3V>Ym8}2BQ>k(_ z?$zgI07vil4~-3ON0wZP%o6HHhrEe~kr7x$^v=W}-6+Rr*uGVn>ceoSFb|+? zt$n{3$%+|)BQQW8LaAlK!+>7z&|)l;Q8#O;WsLa`40suOG5U?eepAc-L5%^ThL!!j`<`gqSU^rT`h(il zY#c<*&-EwucS_6%l>dYJqH6%YBP_>o!@KQ6rxE;7Re3Ll{cJV^gTLD^GOd7)=J)N# z!k7^h?xC6}vb6&aTI6Qi_Wki(rX|z010tQfy%@iD*+uVKyylSpBENMR0g8!Q=1A?D7fqEcDHCz4*7-W zA@LGEt8}w9O!?W+V)&&gwMlM;*}{_Y=&v2y991tu^69gUkJu6%$P%+-Ugp|Io%Nx` zE`G)E9PM#APb){ckPw0|r<4|G@(G;X7vIVh(y89vNz8KOTR}9lt6xRUa{MeSFJJ=j z$=h@SvQ9awT%pnBA!iydH~f=5&qVUAh;pqUCcA$ebT#vZ`->=cd(q=d%$iLC1U{E1 z6w3?=&TvG1O7}aFoA=)3koPP9zRytw1ewGvwtC~U&2A+kF2Kdc=a0@XHm7nV1iewN z4_n>aSw1-cZ(XBiguIqaYQ&Pp*3yw?3Yn+hZ}A+&8@n~Ts{FWVXzcXh4z&KJ%nKpj zt387@t2@D~3kL~@;I(9i_JZKK)H)dGh6ccbgDy`O$|3XjoVDzO3HBqIwhV-B34V{m z2ikRPL5327iTQq3w2t3s?xIz&Iw2Ro z(U=`>VJ3&zHJ8R$1`tbI%D>>Y+MUni%v#~h7eg|$U1rquvjjogr0PnlT(_$0>Q5|=FcJALOgMpd)!Jf4QNi? zGNxcn6_(mT$vY_rCGP|dcEsPd73x2eXP2Y*SMq8*ZM#w@ml9b1Qi#xxxOYsrJx)M9 z*#l{9q)MGz=1v3WSw@Hfp-u-2y%j&kDoQHhpe8e*eB$lnhZ_ZGSNjNF`>x-uz_8bn zP@$-#838HiZXh6Zv~NUC(7tvy9C_aB1`hy*!_sB_{Av=lhFvd9Rx~V}PrIJXrE1A# zW;v%DE(iK@7~Vmx)^x7w?3UmZ>}TdTS2tOocK(ZYlyiRSRHTD7pJtIS)GRcmf{Hh_ zu|R?Of;;?uVG-j%Ro|Uo>uz zU)gkv#`9gNO44pQZWsBl{N|wth?SjwFA_Jv zwmZGD>3ren6B3sEP1H4A<64z5^*l!4t$T#r1<*BFq^Qys3`JqMM&^9 zZVfT^f`Z;>z2(zw_1)W`ho)}~9Z_e`&pq3TJ=*_Ws_7ihUn;olRV^dWE5gzuf91~s zwoL!Hn63Nr#pm44XVxM#Te*?eW^JI;c>!9Py3SwpTE_MhTrdW~yX0K6p=5a#a?`sY zg(e4{J}THRTzluzb2{Nr0|T)wgyJUIA^7O#0sfLGz!D0uEY;(mkLC6fvqWt`7sh<` z&6-I`*=K3aN_>-zkq1RX63|=dEgi*Sa>V?yigMa@X#HYEfpUey`8cj0+EwiCiFHi@ zlA**Xm51{~*t_e$PaFxnX=ag=9nC+(6LX z=iz4{0E-ob$B0s|`3B;>D_poXI|E3{V=Azp>26QUb0%e=g+HRJogaJl)MhX5=cDh3hF z#*`CSxta<72XNE?0x%_Erflm2v@o(N6!tS-joV9ym;QOzgQz03a3q(-vT9KSs|d8P zPv>SLZ4LJns8tmac*v_{$easuU01ecd30T{)(`j*>5isfaOXvCTAu+M0sZt3 z66@2;Cr zr^ib;;quLB0D{In3-7B%n>dE`HVCbb!p0!gv2B44V3pu|Uyf#GUy8yS!U~@OA-PP`#{EBa~97Zv( zA{WJp%ZMz|6>`u#1_Je8!G?Q>)iDXrFbQ#mdZV{^dM}vz92e^e$M>PYdM|LMR2@KX z{0ET59M;^uu3@9OizWRc0zU zbXWvNLRj);hY~uGew*WQK%iBazJueAqFm3~V@}Djv~+aE&VMPx=FnzvxR$ zEd{oqLFV_jTLJA6;O+Z^9RD3o3pu=d|8k9kN=W4gf#2N$bn}43iZG0oLDUj}m5xtL zl6udW=TLNd*47z6s#?S)n_T3!k&9hU_n~S_RJPdjJhf<2Ng3bQIX#aq>P6{1Lcxi1 zGYXi7Mdov|*6PB;8P!!bVB5Yv+#uxHj96jF9Mr?QI!TW!4;HEPaGnR_St4KZ{i{XR z`L{^VV@SQDgx)<9sTxM^AxOLwNBh8^&31XO?~#i{-z#>QV7|dA1TvjJhhRWZ)?M;E zVs|Ku=v%c!J3ueCL4$Y17S?b|tB~rgMJIdg6m2ZU*f4iyV%z?=a-R!%@^P=VIVq|tn(M&+<1tBJ9Iu(O8_ zrq;m;g~~`RZCI^kcUwk=TYNl=HwhDSjGvq(YkEfdOpD`V_$(}SY+055Lu1b~-fWft z4m0^syLvX})F{hel1r7klp0jiW8p7$9+gNN`^j4G*yzV^s>kF+P!f~&9%n6JnzYMs z?Xdmn~Ei3&}6G_n%fj)lP%SQg~Zd=WaO**qk&9z5;nj1mDalsQI0w`GmYfq$K*6W zJsSFP7uP8yK9eGYMq@Is+VT&S8pW*iSDih`O9@KN*p>%cX(GQc=#OdW8-`A8C#px- z2)=>JBVEJ0w_hAIzL$PyG!HN`F$WbAfSP>lA>^gXW+P_ng1Rt5@L*d%{#D(?{Iarg zi8OO~Y|E!FEQzdv4P1eIdJJld{GSzt5O(ms4N7}~sRCuT`J-rMC4Z&uY4jR6fhX$| z8s2U6F9$VX|vpA^0u?XfEW{!psxlaofY_wHNuj@YU>XrsD!X141>Sd zj8EC;8)gaRmR%HYHYo@c4RdQ(<+hXorfqLO_pNW`iMQD#`W6E#fF&LM>0duG;WU-4qr}yS2FDsYF{piD+74_7HK zm@5nl8;%Z5jkJ{1x5ox80Qy!Fqf&34N)3(ya5^~%Xi_Lu`hLWSjJ@Tv0Y`TYNyo9- zUI9=di^TIKuRCjSEsbr@LsFx$m8U8dQ4+;1-Foce#+XvK6NC1}K@#MGG~KYyQpzhV zQNgF{A)rH7JA_sH)Fq>^ncKIN!$cTH<<=w~yoPL^E0%{!AqpLUkS+qvd`^{_1>Rtt%`r z7eW+TKQ{n7&ShI~{zxY{?F_d0zG?v;`=e`4NgjmvF|TN_fk-e;Gv*yK-O|)RM%{7o z1P=ATR3M`MsUo=Nib$bCS)DFvA*?y?L>*?iQHI>9O@rskiiq6ag|~cl-l81qY_Pkrl)Cp zm04|Xr8jn)AT(PyEICQS21L9({}4%W_=XFC_q%-tOH>M=xO7*yGQCM4EWbm|T zDy5jTr6)MnsI>P54`xC*U1tiU!H+rG6oo9H@5U|q$@dr33*y8eQ6t=JKeG@_FCkWH zgMd{20>b_cr28)*yWc=_z7w55>AY9V1vuKs^)mAa0bAVIKM({eKy!;Dvn?hq=)E7g z3e7TnniRr$R%{R!9PL~C68o(Ixs?|o=SXa!gFR1pOFS- zVo;swbY>VKZwH}VLW<>dqebFP5_1N}Ve&)-P=d2V0R z>hmW_3k!48&wn1__t8%&kg7jy*e}81yFCUo!my;?Cy9p7<9euPw$;(ygi(~J-!~hwZG&{kFV=rKHZ$Q z*VLe%o#otuj`nYKt_lh;8sfBfcUBTNXRPnfz5-A)Qrt2Wb2L!L-3+-`hux-(czB+> z7f<$$+g2%u_9Jf2BGzBZ+ES1WZI~lMuHIZ=0%b1mtbMF@Z=<L$w`P4`H|yQiai7BO2c|avGoY`BkYPvJ z*IW03k~iKrlX2&S;hdn1kd~A^Pv6!~x79sor~ZtaQ>z=#6Yk}O_yolRDLN9Kt6D?D zknEM*kk!G(AHLPdmus)P7ay3Xhxu#l9eK9!;u^!onceNl09W4B+UGt=$LY2QK#k+o zZU8r+W^qBoy6UC%)yaxp8%APBO>qp4^L#k4Sb}xCocc_n~&x5(Tzmc>bk5^Jd*}RK1%y zdvlY2YO?I1`ufL}$;*ScQ`_t9CQ1EW8t*kL>%%Ls?&Y@s*Gk{r8QZ$UBgLX}n7^jR zW+%?0{oPl0Eh2lf3#)Fqg=VvR)r#o~ERLxq;kS#Lmd_J7fG7D^CW8jIIPNrJTBM`x zw!2aC+wE3dN?Zovmqw5Kdhh32MTL%TVJ$_J*Qa5_=88!!?X}HK#gdXhl4Rxz5{;Oc z@tdco?T5ab*(1k?x9sF&-?QYH#oadolKr=`!H~&SPham`Sy;g{;sRmftPCOONqH?#kr}}(kysoe$_$O+l&wjl?J<3)$E*gk?1o^Zn)j2W#rs@plcvWSI&A* zFsSKp3)F-MYGS{=5%$s|eC>MJmPX?2uD+cfU%9c9uFK56O=~yASsgq$*}3`2v3 z0`h+3wK6y$R~tgC<0HOl2~}?xObHJ5#(AgoMXLgaRqGN^5T^Sh6Qdji!fH(36M1J- zzoRGEc8?FMM{n5(U8BQhYBs#z-_f#fp5~s;I4NndJXJSm;67k>y(gBkUonhysA4p2 z>PbARXD|x4@WEk`ZcswRd#_aoT{+6Q{-*QVwUPzja^HH! z*3oi{vmTFvZo>BV)V#cyU=||w_1>}5u-a{$UnqeI+H3Np5F${qwg^FsVo4Xe65X~Q zVgbud7bq*STJ0wq@S@p+-z&vn6y@+?f6GUWpDl#8oG7gy>m+)@IM(%p{ZI%-t<;tr zycWe81WzTpJ^19kHpD_`v!AEzfG${wXdk0rKmImOk8zX(;@0_CSu+@lsv4++b_LWy zdIIW*1$ER)wL&}m3xaR~t_AERouHd?=l7t$qkj)_pR@xfEH3?x()b(x50rln_$SK$ zt^$v<1==Ase+7a^ZpI#*5XPzn3?(oK1jhLvTK|%?0&&EM4gd{<2Mx3NYgiA!9&w9B zvgtR@Is^~W_un}G9Pkg%wNj1HbGqakpkWxGVZW`R*f>?lJfhrQT}D3z?~(24Qa#tm zBy@lQz2|%xg&AAMZy<+{8L>2`r|FE6caX1*8Xla6?_~UR0|;5YDq^N9Cbx@9g#k#B zHk(Fo2hXP=dwW@9eRr6V1TwA99@ocHzBcc-1Do$hHn*Hr!@JywC2r%WxUcu_ z4{#?=UO!*fvbwMZvf4MEelk_VHn*FFXIB#=?X(HI>>eW%N6u|7?-?ivvY2g7-Viib zyu?J9Rlc?{b#C8W#`ydkJ(zzSfB3O{{cKe?spmu#dKIkNcFL1E<&B>9d}H3`{leSU z?G|h*T(vN+f4gTxm|^$bXXA(8)T~=#3g@ZA&Awd@P~u_sY&wO%ZB6WyVr*@( zYBR-W_3ORjU`y4{(eD6VXVB-@)pX)1-_`VJ)6*D_(+iUCFI&$H)xzN=uuvo`{J*fz z&TvEIcRYF4@n(779YmT5_KVaE1r$yi#SB}pg0=}wtt#xblG^xZ3vR;#Dh|N zR5?P2xZ}Bo@Qjdrui6Di2$uX!U2%KA%lwss>&}U=&_Qm-^UE$@mWQEYZ`W>uz-!$I zvWwHQ_rvpZjHFP;9`H)%Wp;P0{<%@ufQwMBoawoB`HY*HkkK9$a68A57Oj5Kr8w-q z)duu>XkE)Ti7RsK7q?H2uM?oM&m)#ftNL*;$$Ox&T$Me2HHF&*{Y-^;WZbC8tJFD8 z(!#66eq7tLb9vq@>);ZKj{AWH_tMOD3iTlLSl^hN;aBrSQMr>BkrSYbGs|Ym-pmC~ z6^&g%(1Oruf=6)Z{}J{UKyhtbw=nMR?(XivT^e_HcSx|{?(XjH?(PJ);O+!ZAjs>S zbMJlkeE)mzuP!!4RWs%oW9_|quDN^dDgPT)L?pQV5yp7}bsvm$8AjP{Dz;9Q75dRb zHc05RRr?AqzQxYH>PEg{(3rqtmr~Qvk41v}vM-bGvOUFJ2dTNe$*wrxO#AM?t$y+J zX7Jrb^1vO0#kg2%@YEH^^N6{1&_fy>a&G*z?WXr44%k}pIBV}F^L0sR!)DmN%udVW zDS^+RJAUk%^7_#wk=<*dQy-!DTY*vyn zd7Sq6aj}+?5jCTKYh}o81p0-CE}-lnWpMGfxyG4yO)W6hp~O@^2)GZdY0Vu<=<*%Zz^coP@eG)9~eXD!*Q2`Hn547mh2=j|gpny^Hpf_q68h zj@UY{n?sKv&fxub^Im4lCSxAhXZOZ}A+NX`i?5TPEZr3s7?sir4zAbkkkkSI6Zq$= z)L5QUIgkDXKMJ_P^P=$GUwjKm3pjU>-E$O>>+$yFg$88}aQXzB$LSBMsSiCEyK5jL zMF?xV&g%6F@z0Y^?|L-2IUYQ!6V86!tQqyCHYK~b6pG874rH2BUEdycmW{l)>Wn|$ zd;yoIyh=%|IaU)d-eYnl6v{$HPn{|4vg1i_Ua=h5xW8{SaoNsc zVyXJ+;2wK89+$S022VKSX1Toi$-sCMqxMX>?1-o)^LrT)r+w(^L-~eI+`Es5c}by| zBDU6YPEl%Clg%V?ot5t-zv@m-Dtb;P(WCD5d?l^l`TS^Ew@zHF?!~<4!h_A51{x%< z+u0FXQ)ly}yV=5HsK;VQSLN~BGv0wkuTmLT@izma}=Cd<2*!??I!a!vO!)t8fFCFe2yiV`V-viFrdmTPcvUKQkNUL$rP(HQl6GAqKHD7sA)FJEZfqkue z)`W5KRAUqQ+8)dU;+!Lu=(UNst3ZVCq~lV3KX!R{K>Plf{+lvVY^Vi3z9`X}P6%c5 zc7I?`=qZe?v)}J3=1w_($j4d9_N9k^D|fstgKK}nR4W$ zFyS(vNT?3|(;vW5Le0%l#7CQna8+H*$3JJrq=qfZkd)mV3{cw(jr8_J#+qf#D0LrGY- zhMxupGX373O?io$!c5umfHVTRuLi6Gr1NWH%u&smI~Hh^x$3?=EG_;zqvbb`XQz#O zliv~xi52^tcwjhLm9dvNfhc|6AUhV|k`#=egK?3=Dwg!S{nAsrCmyS+d##wunk?0j%L{e4uh$EY&rIufdFbbc+XeRn zR=X)~R_{sYZG*nja5tITy^I#(Yg^wt=$@6-e3|Mjvllu6n4Z#X=6NtuqxOzwlbu?e zDN{lxCtj-4zSCI6bXU@nY|P4j-8l@IZD&kn>%K=`+-HfmH{Z+75}K{_WztH^kR`4r zy*aX|8Y*`r!9;9cUR}dN4;N{nvaSwXbUm=o;{gq$Gq`4(**^POSD%G55@MenbB&LV{g>Ymz%LUbjmswva_~kOKVPowl3eChG(<*h@UgX~V;7B;44>^p2rltb#L`+Rk~%j|iXGp7OB ze*$>}{n`@NHw2b0F!u?RVOVLWeLfBr9Ou1t^ZJL3k{)z(s=t#STP_pB&7Nn+8ditT z-AUQ+ z@LMptz^BS7H}Q???GXlh&N%C0flqoe)YeYbJc%3ZX>h}V+00sy4?_4^O15Xjy_wY@ z( zoT~1#tJL1M79WsX4E64|8GGF4g&y3IZ8rhaA5g3LfRD|riTzI-u;oa?Mh|MfJu0=p6_qEf$0{D}I zle^OIlWmUyJHem-|Lg!9QTKUYHeEQ|xv`MJ1H2F5+qu`_lylr1$yW1_Wed4i6$<^X z6$El$3?`Vg8OZ3H;9Xmhe?na&@|v|M%Qf)VN9zpsfI@AIl5A!f+@JGAch{%aR{=+2 z8#odw*E5P$TfLKIyxE#RO&hIOqGf(Lw51K?#dQcYbq{ppI+k&u$^2aA>`WorAMzVf zesA~qb?4dTDc73g%@wx08Q7k75B9y$nkA)eHkThUE~_nW_3XN;hSFBpP5>OmQaIt0GD*67L#}%4J z$24!-dn4d_7X$TX<NCR&2b9wiQ*}=ZKb$PqhD7Lm$tiws+;qiHQ zhV!fj^Coq+2F|et)=@z)tSuH{3-JV`%)o80M*FPB7zu|D`uo!gNOWpI!Fi2(sno2O zEk?)uUX3}kt$=ICuLpJt=FZC{vG494whCUhz`awdBZIoOgSttIGPUG;9z(P<71;V7 zwi;fx>ENN?0$O`GL5j?c%Drq;*0-Cs@gyq0c-XE_;VBL?-I6upT5p?|5jBnv>DoSY zwFqqAWjF#U?$u0KYON*+_3R;BEk!YPbJF*4PJ@b_2yblT`OmYlsP(i=9zJS2#*n#w z>TbC-k2y)f&hrg5t4Yi8l8!`ntdVi7@o)1XGXzrfu)Tvla4!yW_L-;dI@=sQsh?Mj?>%+#mKcv&?PPB8)e$c@84-7eq0;G7O*G_qiL}E*;g7-mlLOM44*!d4aQ%Oh8*&E z395-SM@X$Vjn7qlPYc#z3$>##rDzMDlGJnyI3Miy3nw9uYa~-fV$Z}YZ`W?e*Iur4 zMNS_{G2+gMNUnnirSC;vewfhe3Nv_5uN7wZ>vyS@isYJr))Ru@_fzc*mZbRPo&(O@ zlb3Tyt}L0w+^NMX`5U?&^`Rirke13O8GYiP?SDRA(Xyz}J!YvIi&xpL0YC|0-WdVL z7)nD3p%2Js#BTkgEyb#&ARuDwEW;R!bBG5tookb;H8Vt402UCKB~e$rBNh$+?wNiN zVF#gc_b?bbxkw8!2nUaVOHL%Lu76_W2Mbg9AeUm>%hP{@SC`;ip-b5$lwNWolfXl*fZHfSGXP(-3s z)0xGMW-&$)9E_pJ#f@&sgOJv`Qr+mpL5!@RLi4@OrIdMqYAeeeuC2a^LI~$$WiHZ$ zHGm!3hr)ok{1&O@7vH@Ng=u{GBnmMa4D&0hXKLChVa5EoP5L)llWwtR1xi3W=)g$O zB8Vsi4C-0|tkW#c7QMz*raB%O3VVU;`T`xxU7bA)s+$?yeF)5D#$fsY;~x(ge9h)S zy;l~=)nUf^t^F2FsAO@kto04yFg~LHe!T32q zuW^gKM=JH3CT&q+GUht$tTAz(SGj^=_}D^tZBez@Ls)}!(+6NswO+^b!Jld=bKp=x za54i(%X9hW8NN}Q^<_>1&xZdVnq?gbkd8-^RYI~GPcaBVQ3$F~nEl(OpR#jD*sl<` zxJ(P3)2~?8h9;k*IG8cXP`F9jJ)H3VCm&fc2oowdCS4s!$@dmS(!f}G<6e}2PpUZV z?IF0)C;=mJ2z*9AbQUU5K>Z7FaZJvw2_y}8+W!og@Bewg0EA?}#_pUSpYDKl-}KE_ zU{=6m;QFQW^qMSy9s;^C1p$R1|Jm0l{+)i`rtg(p)%UGE71DXYI6fR|5GzZHB+($qaR?}#z>lGTA^*GqRN{Afq~BvBLus=cGrEIe_o*A+O^Pmj9No^L*XVT4#6)9Cawckyhw}`c4&07s>s|+{xEHF3p_>M}i(N{f`V1zrr#0%# zluW8L8>x@BrgVb+kUx4+KMZ_jIeN#N>!&&T=5WNeyFJ(tYUAP&69yI?M;FI7FK0G` z$96i$h&zo5Bq-qxo@ji0@4ZkB{JsyxrmyC`Nh2Hdu^M~`5J4X#ny3MepeS3;=rfYm z?@|zC?S9EV6?gk;N8P;aJ#z0qPANu=VrO8bW*lSVnVxR=u;6*v)$J%-+T6VGcKc4x zY)>nAyw!NWDQA0B1118~KEc)PbQ=V(<~`NZA3s`t`t0#G>hTu9pQk8$F4vxdpS)CB zX9lpC(qyA)*rQ)hx_dEa9J~ly-3ec17NW#6G}F|N} z$eY1vIFUabT4$y>d6CuvQ%7vzM{dyfnr!8hU~QaX?OVVa+KWktcOqv!bm2JopD3NH z#G`u@naKqR#&GZzvbZ)0qtq6Qx&=P2F2N!{)s#W1rmGO*7ubBxZli6#vCxXXLI0bNVa>dDBudD-~+ zQd8$?KiF#Qr)(b8^PafSV{RZM0cz;+wmxMA_X`j-&~6rVN6$@DpTTM;iVD0EIA@6B(Eq_@)^_xBFrd7pqs-3Tv`r0 z8*3929b0Ba8dNie$(ImBjnKqP=v(5pU)gW|?BWl)m5a-aC3wBkK5K=AQ&|H!U}}wl}=|$8tuV)sXYiTxQA@x=5Km?BREEJvaq5o zP1vO<(nDmn2^53wBL?5@L<;TDe|;2EJ-P#8Frna;gBlG-F#h1ySS;T9+} zB$k#G{ym7_Z|6sgy3`Vi`6Ja)nSXnU3lV*x=G`T)sfE4qQ?wt}^hg%$n%c0Di zgF>+(&LhyU$Z{OeD_$$5QioXqMHK#p@h=hQ!eShML;zX+zeU6hi#N&j82l}OH6L~! zfxer_Vxx%d9A)M*g!T`u&rE)V{%X_|1U=-4^V0;*z#QXKzi=sOCMcw2ghg+<)o0o- zKt6xsLvfI18i%YFOGcOVjy+Mnf=!cVM(kr0;^O`-#^wJi#!8dpw{=SuZAONHhzb?^ zZyg=}b1kAq-W%*noxJ`$dfOcEo*5lo-0!?E{-$iSElB#c@@e!;TN@rt+dmd~8@#n@ zd=Ed1D1LQP4OjIV*ta95z@}(J%?~)H zV0r(cviu89MdvOU}`FD4~CQ~Z;N8qY&Pzr zC>eZv67dxA#0SNrsUut5ySAK?L`%jNwhF$JbRI-mUmw1cx+>_#BbLdz(?~O(QZwrV`j-{x>3^(v zQu#N;Q#sHI^#6wyqsE6JBZp8YVU0<5Ha--dlT)|rcq6Mey~YS_pL{_+*TlauWZBGR zPTTOxMmO8rcR+OYecSqhVK}}1#<|k~;F3O8PqgC8#S?G@wXp#hzj^NB*2)IiDVy~V zqnO&`oqbmMz-ODam5L$Kc*AiGm0BNH^nvWY;kY@f$s8|bsX6_;BnYV>^tQ8_bKQrZak-fV0mYVwWGPW==>87D z{F`MsCyK4~okEl=p;)8#RH7}#RH)V;)CNfg#yZUA#tV}_sMP^l|3V$XODR783$-CM zVPGLs;2{UgRtEMy7hNTw_;BgWg{Yydkt$C6H&8wHPUgp+hnQI-D~bh7r?t z7;RElguaVuB^(iV7%!Yt$A39anOnD7nHD;*!hr7-#TJJyfD==#lW~PZ=s#SQEyoI~ zo4^~OOb}&ah@ERqr6EbRU1Go_fMQT}=vKm0L>mG%KI>Pb;F%jnT`X$H$yO_s%^G7X7u7%x=TNMU)>A&PSb z8GINI38sZ&#c7GloyImx6lj{5il%z@1&&IKda7O#4Z|=VAUHLW)8vS{CO<_V+jck< z!31#_kFo!JtUQZxr5po!RE?R?Eu1sjpsjS<<$sgK!?1nt)&HcS86aCnLi^6)pr3V? zUATw1;Af|P;&a3EC5Q)_rNSt-o3$cM^>Ail80)A8Q{yi5@@*x!N3ik}@^g!ntNzGf zB~uO8SB8g8pD~S;WH(stqE7J`(&x*>bq@)jSBuaZ=b}VGq@RbG2n&AMNw%B0ZFBG7 zwDrQZnfX#&(%R@4%`D!yu#5zMlD%d%3|>|>Hfk|MUu6#gVp*nINY35let(<_M#_El$Kv?HN5H06I z%(onsucnWH>8g^_tA;R{Y@^&jErAKk0H-3M9hD#XQYGV0XK^DYiHUiPQ(l;$#u{yT zkTLsdz%D=X&-_KFu_`v9DiP^LlOMT0C0%Z^`|Tttaazvdk&H$RGi7>0NrEy6O-*?s z7ek$*o<OWyBLFw2Aj8L{k7Aa3*lC)XItZq=-q| z*bqc#!CXYkgZ(E{>$_BE4pf2EQ=67aDOP2rQB{>5`6p^I>_1USkU}Ymm+Gm~5!L=> zfnGh(f&_T1KNie%MJ7FyJgi0SmV2Qldub|{;Aw}VDq0qL0>%y3vf{A?U)!)R^$|5l`PK7a>(&i5xv!H^U zC&*4Ufs}!@;At6i4xABx0$;$92cFWykr6?VXKpitK6&nS#C#+t*E-rO`SzG)A^M#117wXJ>Mr}Z!U zdNYmuaq9xANhmk&u7Nlu3wDiunU{j0HxB|zf=?_Yr$R@6%J!OZMld<;hGIjqluW%8 zLp_ww;hkKmM!wLg=3*Z3WZp;%&%vA~sJ-TI)oUgQj$+T3@b*o5ohmvf{jC8i7$1iF zMSu>5TU7X>;RoU#)NVo@2BCOSBKNd?io@lEkSyJ{Q4GH1 zsePioJ9udJCv5M9tuKZ*`JR)SmNN}~weVm-u{JR(_n}bLKxzF^M_0n*!-e2Lvy=-iQ~m z#IEJCB_V5(?5(LvMX3$$Q61c&AqnkhLR-KWt>MFl72RcsX+I;NAyH)CnbH0!w<$ul4;{ltQIvPafBFTggn+2iB2B>MWD-T8tuEmvYzCi-b`euHL z_+^@O4}><}$qOmh2@Ck-^I2$yc&Ez>N0}`6u(aqYIi6RaJQ8fc{oi59D#WxCF#Zb5 zmvK<>BZYy^H-J?-Sq0NdztW{r_%~aK3S?$lRTQ0_a5Dm39;h@=PPvy&VKBN>gC<&u z+5gvPevd&byhbq$c|oIqU{l2{YZchAtbfG?NuP-`IiVzoCE&rRa4gMOyrSXSTI9Vu z<((0r@-b^c5`kCo3d={toe`T0-c+GC7k6to;s$#wqUUVaG}rSSktu>yF4{Vx&L~r0 zux^RUJV?lx@2QpX!sgS^awpSrLTF-NfvBi)Wlu#pu~*dQqfc)Loz{YzUs$2t7fxo4j0`E9hh*PBT&#@@sQ`bJvSJO@6@*`GdO+Aly?i4l zuPL05IvTz}icOyPYR6mfCIbu=xA*WF$yMqT=bv}amHZOJ2}`mX)GPlqDjM?({1@&%GGkH|@HU8Sq@U-jK&34CU^bAx>q;)~ zU-7thG5&ZVKSr~UoR9IHlwf#(g}@2u*?&nP5BN0%^S5KduLV`N(A1eD&&eJqA$%X| z5Pv&{BU0OK#Ff`1#6);|UrrYT>oL| z(D+Wk(bz{WH3iC1f_p8A)T#v4Ot)Y z40*)!ZUM4M6;ltbG-KUxvAX;{va`&ChWtXbTMgeEW)Vv*QramKzwsHiWFT-}QI#e> zc-fVABtZ6Ck+21mQ$Z2f5;jG$&Jz8;Y4*@th}TKIF&}@ZBb2bWYC?ts1;xPmt^#j^ zxX1G3qMR=rC>1H2Wqd*kVx^8!@?*#*)aRIKxpG}zW!jQTK z8>YTT>~VZqvnKkjI+k<)e+K&mDC51DAG8i#v+9OZO(?8gjxW|EdmJ0=@sR*mnSy)#vW)z3-ak?h{T8Q{A(8$A zlrvzpA19{)!87yblDV}voCWo21Qe-X)`7?XL|YIZv~IN|!OS^MJkRC^u#1=jcxIe3 zv)nU1Wz+hB#1P6lnE7wrE@Pn0>A|v(eR*dRE@q)GwV==uoHDyEINAard1mzSq>bFygQtQtSAW|#p9xJ_INY1S?S z&>YT~$Zz`Go7cFyvAQm(wiyh-F5}l#7fY$cK7Q^X<95+8h07158`4>Odmvu?@r{Uo z1&#nfx-`cu`Bd*eh#?SI;sdoH%~`14cob}A?=e+0Lai;*GHH*%#hp_b#~|lHi&SGQ zW(l>UxwAJ5ja!t#ZY_UB2-nTpOxQoO6f=@3YW@2CX-^1XaP(UonS#k1#)l^J{lJF= zuEe)To|gIN>yeA|9TUq(jgS4S28Kk!`J{=2b8urnj#}bi$R|}9xW`_X8r4$@vMV_n zO0pR-`m+oTv{Aq`fEubL*il1_F+j&8PiKF+=Q%xR9@{Iz8i`>CNgHQjP|#0sv(RJ# z>Nr1RT%g3Y`l&~8;^*l{F#3h6{L#TO>3)*PYZSC#Z^D+46wJr1#U+G=USA&(ASzN;M-vlNGXefMdX zI4VY*7U4|@(&LAO{$s@v#REC_ZiRqVoC_N=aE||wCYywfkyKJqX^V7y9Ed6Ws7LhfF>lILK8Il-n;QSl+g?7q(Fa0Cv!b@jgym5BsSJjpUy!uu_tM&K!yV#~Bwi=mP9|*MdfzRK!Ucf@w?kR+m99 z3L0vAT56%1&%g0H4xJ)8#S;~>;Ua=H$O5KpWGYlm*Thr0_}ma~g-a9oUDvZdv436l zamf9m?GZ|F)GJe{=>u}rYjLJ@zmm`@!m{g3=P5y@(iXT~PN5z$tNaZ31-wPlk<+e5 zN$>8<>H910XMo;2w2E;-b_l|v9Bma&U@8_91ml&dIxmXq-!FYh5qVCOKesRwlM`B1 z7Foh2Z{t4_GAYa4TM8QwlM9tF#;x~6;}-?7u0eSr|9UN(V;ri1^TzB4=QbLG8rjou z#V@YG2C?k=6+{Ak@RpR1fV$|kqZ~HJwV(9{rVeQscOWCyP47Z%f4iu)&FX8K9F7xA=p{5>~=jWlLOn1H58R{97^LtRz_`ryn04JCOS+gj<$+u0DqsD(P9k z#Bv_$3r9P8jd|RkZwd>rBfd7I^e)Vh{8b@oVqWhj#FtusX?1uTO%sUol>H9ciWw9W&O%ut|*5@#*7Tt}d=DsB^Cw9NGP3mBq` zr3E0cwA)b_8kreX_$Gp`7}#!x>M61a{zIskKifm~sf&DC59F&wg8f6v(@!#~JsOiV z52OE5ha31uofyjhR%eF*RL29;;pEVI)VMKW>l``Zf@2NmVfQDYSGwo`ObsUyHjS=zGng3>MVai zdqz>etw3c5d`JLD<5v*-2ku0K0>vHjjmU{qi}b5Y%)94reZ8*3V~Wh#h@bNjQ%nTm zm;>iQ#A)g2xbEjy%j{l_IapG|BUxyT1o`}NzjnS~9SCw7G1_E+dZADq9r?7kXp|&H z(6;qQbi~6!1lm^cHvFpKMh85&){K@MMr!FONnRPFL5i?lZjL|KuaI5oMe{PYaJbm# z$k46Y>WKb4V0_?p)=es5utgf=LZ!yTIVK5NS26GAemCqPZGQxO{(;$WFnw_~v>Wa6 zQ$@25>!kPuAvu*2CkT5uLoq&5(CIa(Xmt%6r;EP9Ipo-QF8gH~k)JvN%PT*G>cuG= zl6kQ!CO#7b;aF_i!Xqa7g^H5+a*VrJj3>Edr$=)3mQJcE3n@&A|o zWbgdSS$k=jE#~KT*J37rUGP#h=7-`wwW;t^!M?Q0a_aLAIk7qYDG>qy24Qox<-P zocZPCsE{#AIVehgPtL6537A@9jcU1hh82aCNfM2Sph3#~f@>4G=2`DonKy98gV^$a z>9bnh0sZIp%2S;qRS;kcs#f67pGK*FwV?W9Zld~M7ktdzfXxsK0?3?q@8Dsg>Va7_ zt7sw{4q;caNGq}v0VQh-a5L1*%TIP~E}X6hD$+C3ifuo<8KzyCfxkPycUr{Wt^Fuk89m5WITmF zQ3g})9y@iMg)#TbxO*oyOMZ~%2^An}vTs&#?q*mSKTXEf?g3!+oN{tl2QP3LGx#c5 z#Y}D7hB!X^OCjX6_oKTzBO*eVkYd@spKRFQLH^UR-@N&*rohgczu`bY(Ejb11+bB< znz4!9U+p!wQU@Hqvk;8__!>!*mMv?S)PjLZHyYYJg@o@7f=*D6wUKZo+_CWc8^2u~ z%T>Kh*Moh$*A@LV1!y1)uA7)NI4SSP?6b+o!yBPa+ZTpLDseix_8Ix9XVB0@IKzv?wfA*l5UP z`x~R<4u)D9-@avX@miF=`;J19$(E=^vtmaI7b!X&ZsZ@Dc3rFw;K)flcyZBLky>zM z)=*?yDWjNH2HnbL8OfwoF`P!mMrW3Tu2m0wqnm5n`wV$CUE!!1xK!4l9}vQO7NqMi zT8f~W$5vR~W@giaj&T3h9sg_)z~=!fa4%+YsD1-hw)^<~62{%D2eGcULXTUZedwYz zQqv2TJ|-Zi0u=v*6wdtbBYzSEJkgs9(=K+aY)4>}+piaR~Y1_P%V4 z+3-Udo9k&Y(b|KX4!e^XeIake40$MiJHgo9bP!Q^4rJ9l2KEC2ukj#NAmNp?z+p2n_Pyo26HR`7PgUXUo3q^??M z_ib0}^xNU;V6Z)5q}ylf`dg3SQ1xh2+8M)0`^3Qyr#ev0i7@UGV&ss5pc7ZfOKdte z89Y&bW8D;leP7v{huMHZz$kIQ0t0b~Qzx`ES8p@j5TNzynNJV z%363>A~qiik#@L&;l!ovnfsGuE&mM!=tBFi1j5=Tu`9h_pARL?94#M= z)e*hvLG;1CIitNF|7L#oeWCqz@%+Ux*QW(!JgI-j@8z=1uusn)MP~S-F7NGjfBnKy z@Z&y=TB02hDokb*#5+8Q{}kj>Ns-R5nG&y&vH%==pTcd3*!5Hlk}2>pxN6{9o-{zh zA8CQmDR06=H@uzIvz)f&qA@~xEH$+K$P3RTN@by-dJUv48AoPA;q?}*V~qlKEx@Ty zsoH@q*egl+7>{YQ_<~F!#h$DPE;bv&NxdMAO$ASpAYWbKnm?a zGku!1mK2+dHOV9<+jP3}b*`Y;X-J{DPRy)RRHYr3EEC(IKf>RjL1T_wX55};Q&i$} z+4Ks*SO`KXD;dTE!LTRkFQzOTx~;?(XAv{|go-k;^nUM<_>K4l3bUkZcl}ey5ijE% zg+Rf5Z#GquwbDW@!OD|*uhiI(_x)`tHrTg*&Ut&rKos^&IQKu6qdsZBxtt^tBCUh*=zsk>p@%DIjT@nE$~eY+x41Pr*lTp6=Jkk+@H=< zD)y3ZQ^$vtxb7o52B*=>7d-TYW6vU?FY4v1Lq3h2=0`D9_pheH)@@oKLPjcy(b2A1 z+O~=M`Gd?xY4o(P={c1Q)t2|?j$L(5Fd2P#ODO3Q!t>W|X;srwUsMA?&+wEqXZ*8y zIv*$^u`De2JPbg3|HMQfUMwPaILKZ@RsgwzeOU@7&P&@R+7iinct?cXKSxZAthmtl zX|dw+$m~SAacz#()}D6-H*8NBmt8Z>G*;U!{=8nRZA&t_jV6RQbllVx`_#l13gx(B?ygRFiWQj#M7E^*tc;foaR9E%8|e* zJIz#Ysum7BDduBq%D#0!4MH3x)EA~&C?4ah8phl$%8mNW%gPiSE4qE4h$@w2VrCFq@U z(%Zd-s^GY6+k_uKUG4pltJ+1V;^xasD^vVWogSRI&Mnvc98ySHotx<;ScG~)nGt)J9p_%f8J*GEsL=GI|u1U|LylW_^%U5)12)(Vof&Ftp zTe{>G_JD#-fWmS9A^eZzzq;7}HL5xB4Guvp7!qH42k-VLSo0yQFv6ulXl<8e^$9)v zDecHN#A7Poy%qR4O~<~}x?L~x69^pzI~Y~Z(NWJ+QNXBG@fU<BfKoNgtTcHs7cIvO&-pU4rK>37?S!lK(^ zLQ6Jv#-Xa#@0Rl&hb8}k1>9BY@~Y15oN2Bsdf~b-$F_cbDwnRoVZX1hou{bW!r14G zO41B?x$+6wu04#X*&Yf1K0)Xu+M|jvr{IVAgR|9k;DPP(Of93p&uhj-f|B@g;Rf? zH_pnkc`bKkIzwNbBUB#AE|2zkDhAzehxgqF@Cy0s^(H8B8z}38i+9}oLPZij8G_-GX?S8`6AA9d{v%gU{79i2+>dI)e_`Xx$u6>uzh_>U8;SL{s zNZr@ENv=DzpRSnEq$eQvo*h~EOt@>N8L`VMt2)9SVh62Sm0$GA#szn9x8Ru9MQLjAUth!vlO0M2-B_)$F zec^I18dV@3E*CjX%1-1+Yr;l9ixplT$ScRq!+XAxtN_VPDRUL7$knCjzw_-O!{3{e z0G657FC&O%g1*iY;u~bFRV19V46NfS13mB8Ur#f|yqI6M02@M(J5*9!o3U3BJsNtI z=&wkcd-G>23!g^>9E}Q*P-3JMZAT&XP}CDty36vUFAQ3!+oenV8(uq0dbqzRPBk2v z(K3w4VQz@9wH98or|Y!F&M_wZg8xo>=OV3?QG`uJll5(pLO~ig+p9lA@hf*+d=8Qk zXL3{p6`ffI!X3l1D7lUTlX5gI1?B+!i}HwIz=q9x9dHM(73KZeVb(aD%5R2IHmMrp zii=?S5s_0Kz8ygelTyk#aS5$0dlKD?cSlc=jNIFe^}BVC!V~5ZD5?g_n33Gy03J8J z53#7L-z_E=PCre$s2WaUMq-Hq@DX}sq)e!1?}RH;`gYaQYI|ioRv!joZF}bSu6u6e z4a8%5ZbWyW2lO@dM-M~1C77WcaxnS6_n`L8Po8Bb?cK44`4eLw|=nzW3R|-z*LI_X1gKIU#Jc?kFTb)6bsjV zzQ;KKP@FTx`m{5{ch{oN{TrqiipsF(xW*akSefJER5;V;(++OeZHv0)D@-ktd~Ilq zehzO^|JUi?YnX-}nm#*(U-?cdV?TfN!YfE3;N$NhL4zt8=>7E2zjbT5+Y{o`XJAjt zd3W$SuQ`x>K9WMhTkA(~wKXchg|aac zW1r>?S*QLe*#3b3=ZsZ2zGB$}2?7#K0s?{!oUwq7yZ@S|fGaQH_32=2ZO3HeWNvw- zVe5phjv?6P%}r}RgF?fI0X^8o)?dshN)N_m{k=4qtC+FQIaDS|0X>t-_{(A{ASdAk znyMLi9_L7q2bWn9hx^R3j(;ghsZ;7@03GJtrJg`>?J0b8^~!}$KW1_EtnO;WMR{i ziB6|ohs+KsvLf;3M;-YLa25oig7h3G@4!!J z1GxeHqLmElW;tgt#}Jlq@k2b9)Fg0xCV920JN=F?g;|}06F~2h88vX_>KWfgnx~Ow zR;RdcgETo#gBcij`X$SXnZRWH0vSf;Y)KO54VZ}FHjStnl0*7UeoTO zt44M5yl@{styZPqW`{x&cs5b-ijYQOo+F7m>a*J$=T+K)0_YuM%p0~QPb)_H<|%w> zS9UOrPNN*Zw-PbEp$-!A?qHwbIEj%2L>pqB;Gb~}iy5%;=+iPQ?QeN%1Z_+3!q7E4 zCke-!66(;!zR_`7)~doJ^DY0{+^)Y2Kk9#k22a7XkvBo1D3Kgt`fW40)M1ty&8(aw zm+JjS`IO$vNTBpYb}ZQ%iE3#t?>a~MU3Qu0Fc76WX5>)HOK+sPjXi!gXe1gQ0!D;T za0?}P$_R`)IS`T+fy}FWHw;7v;sMU;mi>z`_;;vPUJPI>)JQM$&q6sdRS31pnmqW6 z!O~c)Nj}{t@o;Qu81bSk3D1XuY;hPxE%DR1=@-&EdA07JNxspA8>v<5BBVa9Cu9$M zUG2m5{q9dXsm&zpWU?g9Rdj(C9z+^WSxmavS$%pR7mp@daR1nQ_-e1@-t>NF`OCK# zIDJ0QNv*r}Bb{61aMIGFd zl15kXRcFvf(B^%8({$Tz+vfc?lL`4dr2~3f&~N{ZiK~4M?KfvvtN-;;yQt+N=0#+GaaJY$($V=O zZQMy&R$#BF&-dEz?$`KgBoq~i7umI!e4UzSmsBIv0l+@RY@e)Z3T|xX4Syslcv{@s zsiOK;LL_}U&HZ09Jo|);#iz^LsIy6>!?!7&?ZW#7RW9)*TKCP>K06#z(`T9Sn|od) zyYRNBf(_SI8`jL^jOLrysT{}hV%F2X4&RN&^Aqk;7hUYGhYq{#0$IF(_t9y3y`Mmmt z#iy@LkE=_)y?XuLpVw|%->cl7{d`@&-M!Bz@74ac|NG|j;rOpImQ`!MSKNP@f3D{D z-S2n-XZK3cy&_SfHj`~Qnd4G-{6vCD|P!P2JMqFfave%LIyapH%^MWu(k#9qd( zZtFiEJ$X{%%?*{+-zRYXJXfsz>WK5onZoJce69SwgSB>VJ#_1Ta4K`F>MJY0moj-4 z%IPgX3!ZxMm2BW&*2E^2v7iwv@!z=P+adb^Z$>5&X3+3B2g8b)<`HXymQI`sY@wb4 zj=6!l9Wc-U6k}kBb_Naxr{{zBaFCMkF__BZUA~m7h%B424n-Ub$ijxLhm~w%v#ilY!+%y65SN^ vt`@?SolVeCLFss*>ql=7BJ_u}A!RYt)?t7*D=-Iva+M%MA~1Wn^?-N)0DwkB literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/predicate/package.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/predicate/package.scala deleted file mode 100644 index 61c1f78cc..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/predicate/package.scala +++ /dev/null @@ -1,44 +0,0 @@ -package com.twitter.frigate.pushservice - -import com.twitter.frigate.common.base.Candidate -import com.twitter.frigate.common.base.SocialGraphServiceRelationshipMap -import com.twitter.frigate.common.base.TweetAuthor -import com.twitter.frigate.common.rec_types.RecTypes.isInNetworkTweetType -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.hermit.predicate.Predicate - -package object predicate { - implicit class CandidatesWithAuthorFollowPredicates( - predicate: Predicate[ - PushCandidate with TweetAuthor with SocialGraphServiceRelationshipMap - ]) { - def applyOnlyToAuthorBeingFollowPredicates: Predicate[Candidate] = - predicate.optionalOn[Candidate]( - { - case candidate: PushCandidate with TweetAuthor with SocialGraphServiceRelationshipMap - if isInNetworkTweetType(candidate.commonRecType) => - Some(candidate) - case _ => - None - }, - missingResult = true - ) - } - - implicit class TweetCandidateWithTweetAuthor( - predicate: Predicate[ - PushCandidate with TweetAuthor with SocialGraphServiceRelationshipMap - ]) { - def applyOnlyToBasicTweetPredicates: Predicate[Candidate] = - predicate.optionalOn[Candidate]( - { - case candidate: PushCandidate with TweetAuthor with SocialGraphServiceRelationshipMap - if isInNetworkTweetType(candidate.commonRecType) => - Some(candidate) - case _ => - None - }, - missingResult = true - ) - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/predicate/quality_model_predicate/OpenOrNtabClickQualityPredicate.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/predicate/quality_model_predicate/OpenOrNtabClickQualityPredicate.docx new file mode 100644 index 0000000000000000000000000000000000000000..c87d06d754f0c93df6f61860dc09c4625ea708cf GIT binary patch literal 37023 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 Q0_7?}hD2cY(C7j2007iDIsgCw literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/predicate/quality_model_predicate/OpenOrNtabClickQualityPredicate.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/predicate/quality_model_predicate/OpenOrNtabClickQualityPredicate.scala deleted file mode 100644 index d7f38349b..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/predicate/quality_model_predicate/OpenOrNtabClickQualityPredicate.scala +++ /dev/null @@ -1,27 +0,0 @@ -package com.twitter.frigate.pushservice.predicate.quality_model_predicate - -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.frigate.pushservice.model.PushTypes.Target -import com.twitter.frigate.pushservice.params.PushFeatureSwitchParams -import com.twitter.util.Future - -object ExplicitOONCFilterPredicate extends QualityPredicateBase { - override lazy val name = "open_or_ntab_click_explicit_threshold" - - override lazy val thresholdExtractor = (t: Target) => - Future.value(t.params(PushFeatureSwitchParams.QualityPredicateExplicitThresholdParam)) - - override def scoreExtractor = (candidate: PushCandidate) => - candidate.mrWeightedOpenOrNtabClickRankingProbability -} - -object WeightedOpenOrNtabClickQualityPredicate extends QualityPredicateBase { - override lazy val name = "weighted_open_or_ntab_click_model" - - override lazy val thresholdExtractor = (t: Target) => { - Future.value(0.0) - } - - override def scoreExtractor = - (candidate: PushCandidate) => candidate.mrWeightedOpenOrNtabClickFilteringProbability -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/predicate/quality_model_predicate/QualityPredicateCommon.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/predicate/quality_model_predicate/QualityPredicateCommon.docx new file mode 100644 index 0000000000000000000000000000000000000000..4384d5fd2dc4502f6e2f6662396d0f3b1be42bfe GIT binary patch literal 38449 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 List(0.05, 0.0539, 0.0563, 0.0600, 0.0681, 0.0733, 0.0800, 0.0849, - 0.0912, 0.0975, 0.1032, 0.1092, 0.1134, 0.1191, 0.1252, 0.1324, 0.14), - PDauCohort.cohort3 -> List(0.14, 0.1489, 0.1544, 0.1625, 0.1704, 0.1797, 0.1905, 0.2001, - 0.2120, 0.2248, 0.2363, 0.2500, 0.2650, 0.2801, 0.2958, 0.3119, 0.33), - PDauCohort.cohort4 -> List(0.33, 0.3484, 0.3686, 0.3893, 0.4126, 0.4350, 0.4603, 0.4856, - 0.5092, 0.5348, 0.5602, 0.5850, 0.6087, 0.6319, 0.6548, 0.6779, 0.7), - PDauCohort.cohort5 -> List(0.7, 0.7295, 0.7581, 0.7831, 0.8049, 0.8251, 0.8444, 0.8612, - 0.8786, 0.8936, 0.9043, 0.9175, 0.9290, 0.9383, 0.9498, 0.9587, 0.959) - ) - - def getBucket(targetUser: PushTypes.Target, doImpression: Boolean) = { - implicit val stats = targetUser.stats.scope("PDauCohortUtil") - if (doImpression) targetUser.getBucket _ else targetUser.getBucketWithoutImpression _ - } - - def threshold1(targetUser: PushTypes.Target): Double = dauProbThresholds.threshold1 - - def threshold2(targetUser: PushTypes.Target): Double = dauProbThresholds.threshold2 - - def threshold3(targetUser: PushTypes.Target): Double = dauProbThresholds.threshold3 - - def threshold4(targetUser: PushTypes.Target): Double = dauProbThresholds.threshold4 - - def threshold5(targetUser: PushTypes.Target): Double = dauProbThresholds.threshold5 - - def thresholdForCohort(targetUser: PushTypes.Target, dauCohort: Int): Double = { - if (dauCohort == 0) 0.0 - else if (dauCohort == 1) threshold1(targetUser) - else if (dauCohort == 2) threshold2(targetUser) - else if (dauCohort == 3) threshold3(targetUser) - else if (dauCohort == 4) threshold4(targetUser) - else if (dauCohort == 5) threshold5(targetUser) - else 1.0 - } - - def getPDauCohort(dauProbability: Double, thresholds: DauThreshold): PDauCohort.Value = { - dauProbability match { - case dauProb if dauProb >= 0.0 && dauProb < thresholds.threshold1 => PDauCohort.cohort1 - case dauProb if dauProb >= thresholds.threshold1 && dauProb < thresholds.threshold2 => - PDauCohort.cohort2 - case dauProb if dauProb >= thresholds.threshold2 && dauProb < thresholds.threshold3 => - PDauCohort.cohort3 - case dauProb if dauProb >= thresholds.threshold3 && dauProb < thresholds.threshold4 => - PDauCohort.cohort4 - case dauProb if dauProb >= thresholds.threshold4 && dauProb < thresholds.threshold5 => - PDauCohort.cohort5 - case dauProb if dauProb >= thresholds.threshold5 && dauProb <= 1.0 => PDauCohort.cohort6 - } - } - - def getDauProb(target: TargetScoringDetails): Future[Double] = { - target.dauProbability.map { dauProb => - dauProb.map(_.probability).getOrElse(defaultDAUProb) - } - } - - def getPDauCohort(target: TargetScoringDetails): Future[PDauCohort.Value] = { - getDauProb(target).map { getPDauCohort(_, dauProbThresholds) } - } - - def getPDauCohortWithPDau(target: TargetScoringDetails): Future[(PDauCohort.Value, Double)] = { - getDauProb(target).map { prob => - (getPDauCohort(prob, dauProbThresholds), prob) - } - } - - def updateStats( - target: PushTypes.Target, - modelName: String, - predicateResult: Boolean - )( - implicit statsReceiver: StatsReceiver - ): Unit = { - val dauCohortOp = getPDauCohort(target) - dauCohortOp.map { dauCohort => - val cohortStats = statsReceiver.scope(modelName).scope(dauCohort.toString) - cohortStats.counter(s"filter_$predicateResult").incr() - } - if (target.isNewSignup) { - val newUserModelStats = statsReceiver.scope(modelName) - newUserModelStats.counter(s"new_user_filter_$predicateResult").incr() - } - } -} - -trait QualityPredicateBase { - def name: String - def thresholdExtractor: Target => Future[Double] - def scoreExtractor: PushCandidate => Future[Option[Double]] - def isPredicateEnabled: PushCandidate => Future[Boolean] = _ => Future.True - def comparator: (Double, Double) => Boolean = - (score: Double, threshold: Double) => score >= threshold - def updateCustomStats( - candidate: PushCandidate, - score: Double, - threshold: Double, - result: Boolean - )( - implicit statsReceiver: StatsReceiver - ): Unit = {} - - def apply()(implicit statsReceiver: StatsReceiver): NamedPredicate[PushCandidate] = { - Predicate - .fromAsync { candidate: PushCandidate => - isPredicateEnabled(candidate).flatMap { - case true => - scoreExtractor(candidate).flatMap { scoreOpt => - thresholdExtractor(candidate.target).map { threshold => - val score = scoreOpt.getOrElse(0.0) - val result = comparator(score, threshold) - PDauCohortUtil.updateStats(candidate.target, name, result) - updateCustomStats(candidate, score, threshold, result) - result - } - } - case _ => Future.True - } - } - .withStats(statsReceiver.scope(s"predicate_$name")) - .withName(name) - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/predicate/quality_model_predicate/QualityPredicateMap.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/predicate/quality_model_predicate/QualityPredicateMap.docx new file mode 100644 index 0000000000000000000000000000000000000000..87cfe073815027b57deac662fb9a9a60e12f83bb GIT binary patch literal 36977 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 bNLdWEbr|5y3d}*ETqVem2+SV8x WeightedOpenOrNtabClickQualityPredicate(), - QualityPredicateEnum.ExplicitOpenOrNtabClickFilter -> ExplicitOONCFilterPredicate(), - QualityPredicateEnum.AlwaysTrue -> PredicatesForCandidate.alwaysTruePushCandidatePredicate, - ) - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/CRTBoostRanker.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/CRTBoostRanker.docx new file mode 100644 index 0000000000000000000000000000000000000000..ea220706aa45bd1e2de2250eb8d6a44b3da4ad6a GIT binary patch literal 37343 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 q3=I{Oju*Oq^!6Y^e_1 F2, F1, T3, T1, T2 - */ -case class CRTBoostRanker(statsReceiver: StatsReceiver) { - - private val recsToBoostStat = statsReceiver.stat("recs_to_boost") - private val otherRecsStat = statsReceiver.stat("other_recs") - - private def boostCrtToTop( - inputCandidates: Seq[CandidateDetails[PushCandidate]], - crtToBoost: CommonRecommendationType - ): Seq[CandidateDetails[PushCandidate]] = { - val (upRankedCandidates, otherCandidates) = - inputCandidates.partition(_.candidate.commonRecType == crtToBoost) - recsToBoostStat.add(upRankedCandidates.size) - otherRecsStat.add(otherCandidates.size) - upRankedCandidates ++ otherCandidates - } - - final def boostCrtsToTop( - inputCandidates: Seq[CandidateDetails[PushCandidate]], - crtsToBoost: Seq[CommonRecommendationType] - ): Seq[CandidateDetails[PushCandidate]] = { - crtsToBoost.headOption match { - case Some(crt) => - val upRankedCandidates = boostCrtToTop(inputCandidates, crt) - boostCrtsToTop(upRankedCandidates, crtsToBoost.tail) - case None => inputCandidates - } - } - - final def boostCrtsToTopStableOrder( - inputCandidates: Seq[CandidateDetails[PushCandidate]], - crtsToBoost: Seq[CommonRecommendationType] - ): Seq[CandidateDetails[PushCandidate]] = { - val crtsToBoostSet = crtsToBoost.toSet - val (upRankedCandidates, otherCandidates) = inputCandidates.partition(candidateDetail => - crtsToBoostSet.contains(candidateDetail.candidate.commonRecType)) - - upRankedCandidates ++ otherCandidates - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/CRTDownRanker.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/CRTDownRanker.docx new file mode 100644 index 0000000000000000000000000000000000000000..acd13e3d1bfb6f00ff17837dace490980fd4dc51 GIT binary patch literal 37301 zcmagEWmsIvwm*z(a1HM6?hb(jcbDMWxVr=h?(Xicjk^0=A1Kg?!E8( zW%tunwSKbJ?yB0mOYsvV6ebuL7#vt>8nX*&s8vTCVCQUV=WL+r zVQ=cB$K-Bn)08BququN3A)VZh|jd zZALK^hAA#H?aqg2wO+8xyO~NyT;fDeFH@s{46?+#U_GDd)Qo#iGLBScQF@nfZV;xn zHPie3G#5C_Zf!rG0eZ-pSgv+plI8E>_;&5Ws%n^+8gLrAwNz4*1=S@vxkt`8gF*|xyP&O^cEf3 zTG6ULmPbL-c%FCS$eG7Ifwa^Oq1-V_Ro=mO{dae?MKKgY4@+VCcXP9Hwi9ap zBPd@u)r9Mmfub?VqwKugZw^P|WIi{!!8*&l67oJB5(a`a0U`rl_ZP@d`$o_!xcBb@ zs_&$qJB#;RRs-{mWf_ubbzYJP3(>mcjGnw65lbrGO9=HoFP5zD36I^84Pc$ zqlz9>pG59K)!Tpo149IT8aSHTI59K*zE;IgeuQL2^*@$SA;HqA#`y()g@3ADFk;tGP*g(FinHgG+|* z2q1M=-3ivRNsqW8M;0-qy5llaClR9Gz!=n_Z8)6~trn9optF@mE)6bAK)XhCrqOWm zVVniP0HkD_Ilq=vwf(Sh`+6_j>@02QFLD%XkEW6)Z^DYhQ;00%fN?D@b1)rU9^00Q z-Tnwvw9u)zU^)yES5VP+r?`fh>_8vjF>e$onQ7hqu+K+GKi3j2bnVhOs>@`BxUHpkG_7C#tc|$yXD}Nvl-9kn%vwiwAId~cO}~7AHK2|TIX(R zfiw<@4cyCqfDD9YSq3q)Y~@ zp6o&xANfE%C&%2EDblP~<>I_UF%>kq~nR`yzqm*#OE>J%g2%=J9vVK+hZQ24CGyXy-} z){I0M%o5Q|D4BNY?+jg&`G*aDZy#RYFA>n+b6-H=9+@NS)6TkyzdrX};{UTQ*Q={I z$Dq2{K!Jgw{=F_n_V$02MRnY6l?Aoqi5^PN`Ku+Ys1j~`;DYFk_&Q!~d}hns7}>`- zs5aIeU!R9CEZ#57H{tvZ{7;QzPm7{vu#NH-YFOhB`6G%B>j+IXUx)WsClAP+pvs}k zu+#_9^c)PP$ExOG7~!4MG!(1HyvQ0pPh1ee+B+%GPdl$5i)=J{6$9n%y}v!1ib(!) zt-BvMPf~1J+DKJmQTSQ``BGz1;ZZs*$oXOS=140!2?<#W!svw^YTTp3l4dzf3P+9v zpVhGQe8K|C3en5?rrzWyTCTaR4vxSqxyUgQgZ<^~yZZrzA2`N^TOz*SZlvrhvQBAM z!EnAd9ygGv)R$?5T}GY6c58|b=kjtwzKGLAj(#UkvN8hnUZdq`2CO;6w%#_B@y8;6 zxZNLF^1WWuM<#Q5~aw5J*e2jYv`dh$9^SUH?{Xs(poA--+k zdjM+aL~B7@#SgC9JH&SucrU0-7q+YiTMsURh(~TPJie_B@I)ym@HQ`_k>f-Gtu~t} zNkWqvn-u(^nK)`*HVSbm1FJH^MG7A}J2IG`nTgKfGajz+-{x^>s z@c4iJVBG+YCd{B;t&1&aar%8{>}kn4t#YAu-f0-RhnWmh(Jm|LE~p|qW{r|oeNb0; z9|H?Pip~ko0!A_P^Sav&T$#djxcYON41Zc36e=+g1qFzb>;1T|lAMo~^c9}y7N&Yr zJP`wpl_<1R*z6#bTCk8~A59**#ON%!d?VvRp+piDzJ7vc5stwg3zHWo7P7nRW4*}0yB9qut2rs zYS@V3p=6PY&w}E1koB34>PmLo9`VIsn)XSx9or{m3%TrC_#V!^RfE_MTkb7#!U?VZ z`K+x-&!w4(MUbmobgQi@$6ozk`l&}qnffvJe$2ec#*Lvi8K=I@R;aAvA#ot|7sUpS9ie-4!yls3s;ZE*v>)mG zHZb-RakY{W%eYC|qIVP9bLUWVQ}(?+!kd!(0_J%y8A~EGng#-$DoYU&i0a_9r%Q(z z)ChrgXCJ7@(%W&qu>mK`>YMQ7hk2aImc{4;Res4c5cUWrVj{~GOvB9FeZ>O!y}efl zeCJY(#g8>@EBxYo6geX#)(}j~5n_^yF5_wOT`ccTMPgyC0unPku%JHl!n*F|b?Wdmnh*-A%V*{HH>lXZc1KWb3BdCf>63Uf{ z%Ngt=8Ej3DY%qw=aF>>0>0-y2BjCn{n)F^6j}J2;W|3lu+>`0u&z4nM`s2$3w)8^H3phI5_S zFw%lG9}l!*0AatB+1-@;d>67mU0-IzVAC_M$G^_lYV=eC_J1nbaGRTEYFb_)63*$N z|9Bk|T&G-TfydY7C-nZs+xfIIgQ?K+`ors?MZH}|uuSvKp*sieGO^0l{U!S~b{;z} za*PiY zFR=OuW{vX%;>CLb&vLp^=mt>gcbSm=?DvM2W4mSx#$Xa|-Qp?YY(=%1D%+5kCF~KR zJe2k6D#6wv?ix35a9cQ>&^eLf9kG% znw`A*V)t^IA-p&YczuX@dw5zri!KpvIo{Q~e^|c&rpyDM4rYJe07FA}k33%L1zv66 z+BZU&eOHL}lS|I0`wv1>_O{1Yk6S8U#*Z%>J=ScvON5CldwV(+zVL=c*1ug_HfVc2 z&99Dox_uRXv)2Ulqul{_ul8@;-=9>BSQy-emMr%BHVF~+oBJ+j4|{3Zxh@)gkvGas znLMf$J{8V-#TJrv{BWVTJscWzZ@|3z1QO-8>9=u$GCq9rxbDOA?L}B@Qt(7$1GL+< z_2QHABk~oZ@T2k@d_%ki&R(1zyN&N!H9X*cM1pl+4mR%0If>4AI#0T}bWbPb9>0$8 zb!7B>;q@fHN~qYSb@Ax(SXmR65R35(VSepe>jJh^jwcPW`q={4e7baX&bnT1#2?L+ zQ;7NPe|VeY96{j_tuQhQzbV%J8OsfqNP*fIRoK4&o}UZDZ;)U z5vo9M{u2z+n()}`S`_G_&{K52>Cgt0(3)!Dms$fKEny#?5ateGjA;mt-^=SkznLH0 z%k}z;bGq(xt?zQjrhs6T+u3Po3ioL?x5Dw8kN%mjV0Dh&;v2?5S8`nKkWLWwyT1mf?h@D&%>)oBp4*n?BW;##&aNpHmhO_8golu?tHdW6;jq zo)(R+RB5dS(#-FJ-a7QE7p9+1W*_bE9A1WHZm)z-&V(|Rq?+{R=g#~0udaTc_B&;A z(1)}U6lp}g_3yiv6J=h}s0AS|f7`pK^gAbBRLE#aiLiqD7G_QVwYFT6M+7YnT!P4` zkgcod1=w>zjvul1rfKRO@RU;;3DAgP&a&)?ZTT9qsLAJw^K|lh{?nE|lW6EWnl~2d zE!=leZ$bkanaCn?o&=#YvkJA5HHl|c(wL9ZO46n1%8Be1!3=wt^rW8{7eB(q%eQw| z`fU<0->Z*x3}Y@-cCcm?fGgQt1GC2f?yA@yGuT5#1YxCvmITpu zqcW>N8cvy<9zD=LzQvy;^M@XPOdM)qc1K0X79{{&i)U0v1XcbL8#Oqg1A2r}>=HXR zFt!7_F!y(-1*jAIU!73f6aaA1zs6TL;ZZU{F?%46^vP^M{0sYpBOVk=0vbpAN2oRk zEd+%7kI+A#`6RUGNxF#C zU3|_S!2PuRw22phNj)DCBm+{Y6JtwTo87xM{n{{emTa8}BsAyt9e~Tj<2J7hk%CM* z$rXc>ZF+WtUZT(aixaMS7EA6|I`>1fIW^nvH9zNt6b|mPL|uqt7_w@ZO&6--$DNOdFyytd$XFZVs-I+@AWnE@iqQ4X$=E`3>ht+a5c{ zAGG}%_zI}m38;=iEwk~V5$L;maAY`gc)xPK$-gjb%MD~sIX;NPo*w^U%#EnK!7ArU zWYQUwhqp;6zaMTD-)UU3x6AtQw&$ZXhH%FEeC6Wj?RM6hK!H-U;S^T8aKoswN=Px* z9;vaEfDN>&C!cJ4?Ol%>Qo5y6?RQLC+c-LLU+Er*PQJ@c{C-Kr)9vi0Vljn0iXC=b z-slbqHB6_5yp8xh8=6*p;Y?13kC?4t z*27vf>C?%AU#0}Q21W7QvPr$ij)}p-@nVkH0}5#Vgp>309(f$yeVlzowdzS5*l=*k zxVL?3QTf3n{M^-v@R473aA;@G?-LjH2WCfZY;z%xRZRlDE?Wj)fj2h?-+Z-TYGyY} zV1XeX(Cm2z*ZRvVQP9Nd9-RCKc3;KR8LAZevZyhPc`c^7mcbhe#MuM}aD~q%RganU z%jSA}y5i)S7apkvqo{P2^B$Z0Uar6b2_t9N(=o7;*^3@GBCUNjc#snks<-9XO%ZJ|vm9{y6NZmBJS(9QuXb_a*n?-N7RDryqyz(P*yqdV z)Bf%=l{uf1AKAO70!5pj)&~J)<=g7~_dgvnFlUKdHqXf3Ueo7*({7K~!o!7~S38O8ys|+Rthd4~--b zNPs7-T5S58c$nsoNH(PJmyXf{@GFu(rOz^PmPDDz1Ksw6#eQ8KWp@ZpX|UG12q?d= zB|-*snm&I18QTkep;J&iJ*r&PO-A7DmR*<+&@yhyNutUh8@~_XogxaGaEz1bmAyxub@g+ zl{oj&oNoM_KDZoyw9>)}*f>VS{dvTuX*m>_yBDjF`Bt}#-R-WRKSwTF>V2$cpS)e_ z&q)BYfT}x2la9!y{^KFSN^0bha8vGD76DHujqnYvsLN$%9G`Qsw1y4~v&xj;KX+qb zFQ(KTjd74zRpF%`MQ~I2<$a6zlrZ4BuT9BuzMxp|mW^QSa%|b=P_E-LzUSK*gRV-< zuL%tMqg zae9b5lr5i>mE&a85#@QSX+;J2WgXkG55y`t;gT&9)KBZ>%P|mdFA~yuLurXV(~(2+@0pUU9CR};mh0o>*E3ePUR<*OctK*C3lWmH6zXf1bJ18 zatl75rSjTi^+AP;yG$E7ikhFfp-SwYTN1+$gPsNb>Fu|37>XgQk#syWai#eShp6g< zt#)b*eHUE7md`V+3xhZFW-h&utCEIlqHKdU!R)uy zk$o{4`sj~UJYw}brHJa4e%8r_Cu_>9ZPLw7Kto_L_p*$(qpsB`YdqyJVGG5p6t@h! z{KrWiQMTPeL^B)nhO|P#lA_y8vSp_gXfLbQ?FhM8>`{+9kBaK}W5xIZO-+u^D+(?L zTUC|ht-Je2xLUXfF+HTlC?lx#us@n@&YYLno0%z7_Q)c8s~Ny3<>(O~H5a1`A7Fu9 zxz85L)`#yY(D9^XJ}JAlk$O!rNG+2xR#!e6E;g0)h_0*jY%E#J;odBl5#Aj}-SK9> zl_T2<;+plE71`zUrI``b_wg47b}PAMGMed>K&#jvB@@T$QF@iAK_$ z8S4sSd5Y6h>y|NsrMJyi`Ed;A*Z~yh6Od+RStnjrQFB>28gL_FkUy}e+@!TlRGq4O z`(W`q($mXg6_%FAbS}dxl_@DW+!pt%wm6t_u8dfjltFjwU2aBv>c8wj_&zzI#W!O2 zA%%qWrjePJi#V;=AzXwzB11W!ekKh{GE1UnU>J)#B6ga-cg=b0!Z*}Na$R`sS@Up)r?9T z<9_8`e7oeBfACUc#wv6NxUDNrtYm2v!>5r+T#KD${jDcni})P&r^t0htirGjO`R>= z!>CRSd8cbG7n?;__f0GpxK4O)S{RwFq<(bIS%+wxbC^b6eG%+D?s|qiZsVSC;^6Zi zT>QnoGPhO+Gx+6!m^1j+B|?y$b=<$Kqc?_5=jw5OL7BM0cgh`HJy?u+DcVES5F~%g zh<57m=gytHfT)M-j5CGrOoNoy-Mo{Mwf}5heT&^`L??~bi8Z}smd||~u$o@bqO>JD z%(&5bN4T(2AO^Kl zQ_Ufgn&{UZ^Pmtk_rfB5=$IV9ez03vOegq;sx9*Le6b56mTJwFLv36 z?{L%<1Mp2ksQd+juez(ewXRKy479YLcccqWJhx;)0}BDTOGON z07)rw+h+ddB`>SHlk<8APSUA&xS2DNc_H*N+miKKvs{p(OJB2TFL)!ykW}Di%Wnn0 z0WA?m4$81T;ndkql`pG9_(-*2o{NDi(4_363hI{YH-2gsug^j_+Pg`YDbRN>cu#et zHvwCHe2sPU@iyWcaQWTHaao8QjuHSAj{VL@s`HQV(!avz{vCe!J3NR;th3yQ>)P%+ zX@8S}YM;LMok!Jd}LGyO$JlAR{}6su*q`uYl`97iGC!DMq4 zD~pn6#fr5qf^$~oL8aX0^EMTULIwH=?s@*ybDx~Th?vx_+V$%Rqfb;7nQKzi@oxI? zEzyqDPC^UZ*coFNRU)dH@;5To8W_zUBRy%iLLjmgnI}m-TU9$tQ*1&__$}w2YWnxX zgIsr0a!Ky$`_e?1IBC${voBtuxXf)TexM{_f~7&}^>yQu3L?iZaIy*H;ep@Hr zm=?Q|D5w;VWaYO@{)zMQL;L#C=~`-^T4Pw{=+gVDQ3kUt?DJ&gVcrz!r1kEyt46t* zMN*uSh|k?4IuyfDY1BA`WjWW~=1cg8f>@Qk);X1W+YFgG4V<9EJ3hO147*2dcEYJq za@kzFmB%zm-vv2g@v3>XYn`Z#{0%_TSGPF;5*uA<7_~sPNu;u$CY@0#!TQ?gY^Loh z_3_e%8>*!1(q)zqaaZ4OO*~SAf(TtyK>^xU)~5X7WRd1x0cQpurihSYyUH!wV!R8~ z%1i2|=QSS5b7lt)j%Xk*SEfrM{LgQ%RG}D_GFPS%A`$2y5Mt=x7tJx{d?lj#z}*5@ z`pLaQP4MWKguJ8(pI1O1DZlWcwnPCL3A8~%uLyOd1&AszlGwd@_%u7Mv)mFb_TM~E z6#wFp-<81u-!8dOM5{G)IvQeTp(}->0a;4?{!>)-nuWK$O;SX!Pp9fg>7bWE6-t!> z;s_T76Im5%?)>$M^}Qvw_X;-nsB3(40_{j^*I86Gxj9O-tigOEoOIU=-Tds*!4W+~ z{IunclM5!eM<_-y$W=dl8JuPvHe5uU)88VM-!D55F$Kb;Mm6l$GY>OfJf%B;v2lNdiVkgSHE zaM?eW7fXs$zWNJS=Wqd-iL+A_ zwh6IgV1&B8Q#z{cna)kmIFsJ&C^to~Gg@44EzX?~Qen4N+8f^~mg#9D6kakhLN)s; zD!)^E{y|4z*_A-^@;R5}b+qEuq3!YVq1F%4XwIh-k&=c8Kk9?N19=c!aGU;jV0&BL|KWs>B;5#^z)Wy4;7sM(GK z!P<-i8epaF(%NDR@V5>J4Dp1Y^th1=mc#F~>r;1nj|H$Hg?+O$Wl8aw0x!HLEE}!! zd?9Pd8mX*_P2*i;@!B!X(R#<*4jwJfAhijZ zfdA1jop8B=GJ-anVBDDX{K`0d5VL-JO`m}(Q$B!e1rs6;B2A3M5ljV6;$7I_2qGEw zEEcwS+_JpM0yKmpEW2sUuOs#d(huA{GvR}WUOUDr3{o}huuUecg9T^q3^2Z6M0KfR zT$wNl%b6;(4&RDV!!W-EB!Kb8V$gtp7GaRmN3Bb(uEqU2;Y!xPgc{4QMdr0H{Wp!| z73tba#fy0|zkM$Y{`TD)swwN>b7I1JPTgY($dQ1? zH^{I6LSqufFilwv&3BS!{Bc@1a3eRj6Rtid|3O^k=qQ6K)>yTw(v;n+_PsarE$J={ z@zS2zyA22>EXvOAsaG=8>LLIBZ7Ur!agBmo^neYisbLZ*GsLQVRt_)hx^&%E%9qiF ztLi>dSytLbSLsA09=*_PGuZe^1C!oGH^DdkoN5Ljqb}Wz4*t#M`n@x9{_4x=0-CNe z-$gO|xtP3zLCsg=$t|dp6{?hcq*}%sn56-(a9i}%U)mqzwQNlFF+T5PXbw?#S!RxY z+fBkXXDp|jlF4jXB?;mw@om@G&zv`~DQ}^t1~n$|m@g{F517~*j$74QY(>c&gC*O#_tDsquAejcAy_rN;duOcf~hBJ(yFt8_R6C zqyhW%LIbvw`A0h=rHt$XOtUfdRJf`4PUcYBJ3;+$r-gj&-~B)&wlJro5--y!Ef4#k zB42w*2l+qRljBXeSko2-a(JkdFT$Ph%-OEpDW|j|to~5KH9|5~mUEiKYre;dpZv&* z{~v{Ug!_apBAFPIe=2nSp9(KCuRS2mGVSSO5ZzUZu({sN@CFp_$O%!xmC+4FwRBx$m}Pz( zZ92R;IEr9w;e)pVV|7c`f8;4wxf=EA@iKs;^#_E- zh5(TyS0b~7`q3b7qG4nNRuR2(wC3lK5_31o@ffymm8bg9-N{V@DO+nP79&|PBCrJp z=tC(rKl3o4)!Vli$z;^cnrnW}-Iy^1ZN(b|y;Ll3t)6P3Zq(-u;ak?tu#G$q?qHSXVDcSH3YFCqS5H&y7pVZ$e zF(Q!v59*7q0r-ya9D@z-whx_#@JChUz36tc*$fN;Zof!113Q{2fXBiZ5#;V+8pxk& z2kbS;Ot$U%H9tDW;AMWs9jqr_O6 zU=TiTY7)nTa(!HHdi^aQ>o^D*?f zdS16LR{qPQ_FeJl;NQTmyk<@QF!__C>ZWU`eYSDsUnW249Ca3j|7kKb>9GxYa2XV)4O|B|GZW6|8pX#cwob`&*dFA$EMEFwR%G`@m6~ zsXTaO_Ftk^uVBg|wpQSdBzh#EZH7BIlQcT>2;vdEzTz>$j8O;J6>cA*EOQ3z6{&d> z#rS{3MT!0vhZ}q@c40j-`gx1@S1mDXKT)GEI0^Lc3v4~;0@LgZ&LHjj64;pAwFO;t zGD7SEp&xPYm|%MxpL((f(#lYUI=9T7 z2F|mL03AY&4itx)*PKAUsH7R;UGUvN zVAyEih^(Mp?d(^id9NE>02DS$m(}y@=cqNT`cI@q!@~Kr>&aXy=3FM`b2?vTL4OXz z+pE?Z&sCk>;-7;3%>3r+_Q?mxe*r{3=ci76cd+KuEb@h#g{D+c;ifj$S75%N5AQrI znts)x#A+?uz7xB7s-^d~qX%IL@iOcTZIisKBnmC;EN^Kr}(!ILfL9B&TY zNAMU#*VxA!B zob%TBi5kbXY?f|pJdEbvX9i)oB`o;`74$21ur>6n<9xKRhi#VbIGlSM!)e)LMz-$T zjO225VYNgEBAj0&H-A!LFDL^LK}mp|m`vE}_^r2WzF=Uz8+Ay%MjB;J$k4!B#l7J-xE-eBtO5 z5|;c;)HPk>T9q;NJcjSBbA;3d%7Om_^lsU)J=t6cn{a@rDAI66Xvj5A4H4FYysoqE z^69qP?rrcx(>I2WsI%wip6$dQt^Y37bdKjQWgPaZmXYTbVQG=S@@EfQrgvP-)_wWn zb8hQ1YZjKR)JSW+Hqhy`0Ift_7a)2qV`Bjqf{y<_IoD(;Sx%YE_%2w!$)2Z=3ib=v z-nsOg_E)HZf!G!T@z2?zcxa}90g}kRCFEdPD#t$`%k3m)3EO;K81vOOYbGT>Jxg;| z;(gv2c~CGQ2EB#e(pDHIL(DI$D5qVA)+<&JD3>pskK_8GRmJX}Sl1LN8AgO$c?h4i zU|f;2AWkXt5mj~P*gd=^iQU0j^l=|n5bFW8_EvIV(FqXK8e^4TpQx+n0 zO;B2cqgaMAzohz$-Q`iqg?v(;oqW?OYtpS|E%a#D3cCAJe8uKQe5G{j18pFJFCp`N zlOtw2ll$g#Zb=|iO*AlU&-R=kBxWIeXJqXg1`{4FuhN9$p55Z?U}a z7-8x)-$1-~g$vhaXCQHTOa<06-R)_4&ZG>q@JBS&^JCB6nkWnwm)@t}f}c^TZq|66 zK!OARBRDXp3|jb4!M(o)pZ^wIjeqRo%KD&wY}4fhEv!ncL4Th_JZe)xJSzJauzPP! zQc%plfEC-FO`>rohrqC&uWx)+iaR!Vgt4Aw8SnEBM0`5^5qwLBia|uPG3EG{t|o&2 z0FD|!@J&gWDckx0EsUfBh4qYEQTf;pC zYE?n>J>*q1V9o`(t}ELzKe{eh>j(UZ@^)QM9V9H>S`^(p@&x%Ao=5Pl*6f`w3M2+e zlLMv1xMRbxm-*Z~^a=^)xYdd7{wLP8>bZF8T+qdw%hL03QDDx{zl!<4=Ek+);q#Cd z&DahyD8IP?m(DFvMcJT*0Ur04prbH!st@@%r#l+{A)ObwX?^-^`1I31kQQM0HMiam z2=l@U5wlh4j*159E=HKrI)tTRWPH&LG>ffb5h;;S(?h^jKq=M9zq@WinI13Ugv&Rf z0SFrPEKpR7HgOE=ZV*@=g^xk1VcGcFgH?j>eL0$$kyC>xRqR%S7hM~@I~EtZ?DB5$ zg|`jdg6d_R8lgm$C+UbFS#$i=W6I1%g1Z6pu4P?`#T0NwMzSI1&tVwzDsoYrxQxgW zT_Fq2qc2e34mR97tcF2whCzTM)Em9U(|f_x=df5$Fuo53)_Z|HrD6|y<3E5TX20g{ zbqyQMT{NNJGh<({+Edj7x$H4Go^h8E4=#oxFjcWbLIPtBv> zAo}}VzhtxnDbEJhe*-uu{02A*{{z7O&Mj~kY8VJNe9}V{y|n4hSD7hq-(eOM31QBc z9gZKo)p~Jzh(ZAPnAYjP+d8J|zdP8Ei(pUSjSAU&A=K-zy;1p>0-d0l0YWDT|1Eb! z>)}ugb3PnyxL$|dlNn;3jYKvt@L`9fGO*!@s(3_uf;FnNKj{xR{-Q52HW%1}2ASXA zZUq1%z=8XN9RD3o3pu=d|8k9uLO|sYf!E#P>*fK88DS7BgQzJ0D;=MhBt^lPXJ2%B z*47z6s#3)DDY?jPBNwZj?nBj<=%-@O^VFhAMI}5xr}R9!s29ca2zf`&%_!eAOj4hd zwN@7%&Zw@k0UO}@aD$L%Gh&4Sb8rvq>Lfjm99X2{!+9QzXNg?N_ja?a^KX%!$B?>5 z3B7xtrD_Ecth?lS#OhEI(X(uc zwufG9g9h)2Ev(^`RwmJ1i%#~~DcV?y$4!NQ$FLa3#$E~mi-C*X(+4F*NmR^^as@$e zcm|-Pl9H_~ke$%xiC_h)z&fz1F(s?m*?nx)txk#JG&I~X=F@_Vikqa42w`@tIdQ6A zb|-T0IfPcSzf94Z!2hdBd$tek*Srvj~)Nu&9SjY{E3mJ?%v;b#vWOs#_x@|BUA zTCkeS?lz1Jw|KZ_ZxWwP(SLH5tmzu+F)fad;jysPv1L^T42?a{c(a)UI85ZiZ0p&W zQ=`m(NiJ3DP^wc+k9~cy^{9Nev7fB@o{fI|rg}_P1UWHj?{U@)rb(*|$5s=J9s@T? zGi|EU2J@25wUcpGvDT?lmc%tY$t5u<>iJ^CEC*%8ra-1rmaKC>F(U(=DdpJI6bUy~ zGfjR$#Mm_Zc-1Km8F*He;C|Xr_t$LZ?5bp>G&EwV9|MVZ;9hDvxvx z@7{iK@c3T(o#8yd@UtnXkN}kAV-F!O6*g-z8yA#?5&Q?6`tf$P&!(4^l}jXxfgf|xxbxAZ^l!BA&qZ^i&#i}b-HCK7@$l>F%L&EFN7-`3JZ=7 zRh6Wa#IMI1H4yq%1HDpro=O#t0dP7w2xyWoRs4R$h=jG}vjInU4N1qb39JApl1AeC zk=30wxR%BO^WLe_*vL_piYSWWlx{tCaidSE*@{8?VZRgPf;8T+%2LcLEK$az>%pf( zQ$2)Lwdj(O-^}e>%3&f1r*dl&4_QMp%@xZ-As2-XL`WBbWYdPt=bhHlnWsWt(O~! z73Z?8JAb4dl6D5$d|$NykM+?trz8);`1Id<@XxzK?5RgUO=d%IDEr}0L5;f{t}fu=owYAP_Z6|EednXixi#~Rk;*{w)6zs z3WfH*;K4))yX#DzB;+wii@cBp^xwEyKiU3*T0xu`Bua#vjWY}W^b%sF76?fBFCeVn zKsx^hvi%J-=Qq*mE1mahz5quXxn5=(Az*_O`v-zR1!!(@V79@a1-IylPm@A8 z&x#GkgrlANikWze&=iV!BrLBjT=<6%OsN2N!Unej7B5}gC`>$e%?@%%YhgmY>7X^N zII&Tw5e{X4Krlt2h;*KOVQ#ZpsURp0t>lsPPX~r5)KiHsO}I|%UuUF2nHbb5QG5#T z^dw@c48#0*D_R@};Z00I3N41uqIe44EBZb~{#bG04ij+b?5@6T~ zNO8#_D?12C;V!g)SiB&9L;2^qeM67HSzb;sFsB+AFuZ@B+t;vkwvaS4Gc|Vp^9a9> zUP^&f{mIhFBu66gtF^{`l@i+U>niMa7(6dUgEKN4gf!DSnY0fAo5Gk zpa7!*Hn6+1lBhXjeSh{9fRd5omZ6ZNjxz3Mz`Z)`Hf6}e^W437vTxM3N;$M2adQ^2 z{!-SKf@EOL91(i;<^mHWb9rawW4U`9%~dn*;&?f0_Ef(_?Pn)U-M!@N;q}60dF4`P z;G-*8bL&@Z`;cPh>*x2@tmo%uwYxg*Q`r5$)E02&>*pb4&{5WY>t0au#{2ep+$mu= zCpaUtC1uakueH-{bAUp3O@ z+UxGc2j=Nv{u(<6o-N$C#_(}wcRNzRl{dB4xlht@y3K*F`tfQvfE!S=xS(!T_0sz4 zXi2XHBeB94rF1*vYQ=rEZF!L{o0}4P=KI{SVS_`QlfeJc^O;HV$BWXmN_5ih~&YrP;LKM^0Xz?;i6|3>8<5LmOx=!#M?Uo-kbS=C*ME-pN=0G#)6 zG;3QrF$d0*d9m>kewr38!eR4!s9iNjhOHQ$e*tFRtQ(A~bu(vgZt_n}mOWHo|G4`6 z^5E^*_IkTXTz{9wd(F!F@akLla@+rFrSI;HZQcHnd{HSpKtp}A6Z_HbuH9Xe(9Yz- zvRihc+2mfOV!8s8V`@qG?V_f|c>){oB=^ds-{2Oq)$l>8F zJNek}EIDRz_YI$T|E+8=baK_x&pY=Mtl$|@fiO{W&CmQy-Fp4P{%5Dhii2xvU}T** zKA_^5kq`w_mKgckB3JV0fg2>^1#SGH+)9$orAk%3zOFZ2+;3 zhxn!`RK1};B{c+2DSEN7Jr(ntM9qq@>0CRLzuu`+(W?o=D1W#URqYiqW`@H%BM<%nSu3Tzm}D zbbem5C-JDB!SJh@4>pT*gCZg>g=QUe&)&8P^ zFB&~~y;2N@QT8A9w|rFj*+OZ{3Df#9PogJ`VqHJj4TYlDN^Qx)Ym%=)@KmDNfluCR zK`ewd`+I&G&;bh-?PK)s$J@s4F^aNB+&UjCYX(DBQ3Z9-u7Em7PCy;8ppIIpR%rWw zLl7*$wSc{(<9Ac;{2uhL=--3fCvCwAic5c^H2#MF1Lf}n{*Lm$tH9-KfwoW0UxDC} zov{NafU#@=LktB*qAdVQ(0H9&;pkda34eJ5eA#SlqHvPs~hv0el{Ws3v z2mH-*tyClQoDSIrXc#(Z*l%md){Yf2kI1)Im(fold!&0hRL?as2_0a*-gAD8!i+8B zH;}`}jF{@v({zT(J4n}t4G)gPcQXDufds5x6*1ElliNk5!hm;?)|-ZJ2hXRWdwW@9 zeRmj<_%g!o*uv+i4Sa**!)gik#bA-qV*CWHH&Cyuoj-c!`NHseEl?>fFA$ zjPdz7dNBVu{_tb@`q{E>QrD3%>?%a1?UW~T${Q{1`Np)(`-Qiy+bzUcxN2cs?{@2^ ze>7%XA;b2&&&Ch`sadzg6wXuon|<3HUx|m=v*{H6wl%R+^0BqWs?8Li)%JUZ!Ir9@ zqu&8KPN3)4)pVjMzt!|;rc2R8+BT+qP||VpVLX;;N*Ax9gmH@4M&w z-+O=CEh{ap?ex)mpKHxM=2&~K5%H|J(urdu{w4}mJ0i-4gc*>b5?e7<_7sMoGX1QW z7*h$?E$VcmE;KJFKcITc5r!fE*ihOvB)mwlOhm+2|)I!Mj!O?JWgX3}^6ZS{+%H-qmkk_YY}EXKuB zgQt!_o=42By)M$|kW=HQZCBkFF~HV}$60$fnXhv~8#crCWp-K~PYL|-_Rh@zCcZe%u003uqyL$ji^@#D0|kBhaGjHnsC zTT26WL(nfgbOB`tDT9l*%{5NEYpQ{%_9Z5ALBM@rO>1sYLYGI3%dxe%5*d!Prldy( zXZEDKUZ(WR=OomnnFcSnQ~C8G%Xe%Uy>MJ{ene;s>|L~sT#vUWCp0LdkJBgEJWhX5O?~LW*j)n|DMDD=bylxih<~1R zde@`Q&GFz-opAQ+X3elKwJF)zxll~{bRg4=>iYJmvuxzWMSJ}5<_owS4p-?VTd#CMX^NJaz%}K$OSn5n^mn~0v^NPj5#{GSxvGaBg6HC=kd$-ub@wl{| zGCnye>@ z>nwdI`BipuQqglVi5_*X=PPOb&gVzVy0znCbuQ*T7apwN)X^Y$UC)ltnmU^&-AorA zLp>Hdx+;&~p79RMdlk#Liocojw^*MW@GUn_FfUa=PwoiUy_?+DZzV@w(p{Fpm&VIkE zm^-EXAs;72o0lH`t?Vhq!OOFI?+&78?+*P(uq5887nI@5RW`xncNVgya1uU=$5Why zB9kR#SB}gBVaLt47pI>SV_QGQ+VPWqenvq*@REz3U}c4(%9JH1g$bAbL_&4wpZ)-j z5^83KA~xDggsb9gD)&18!8?hdp78p4KmIv0CN*qPnyf7Aw(&RpxBv#Zt@xWlR zDq}Bk0#WL`L1rw#IVl)F2je1#RW#{$`=zH=Pdrvt_gqcc5SHo7grT!nS7YpX#UzAy zv&PRmc`f`wJJ};|<*IN%%<^C)N9`O;Cp$GcQ>KJYPP|m6eW$UC z>8_+C*qD|4x^oyZ+s>HE)_sq>xX%)AZ@!nEB{W;=NvD;TA&Xy4dUIq^HB|0MfQeYY zyt;&i9xl>CWnCRO>v&+F#{(KhXK+n7vwiln$VCLHbX0AESC1;Kj_#OzSDvqI9YL1#B1oms=*5|Lf@JTj135t~^-o zbgX)7KLNq5pIt8$aHScxY>@Vi5GyTxC?sP2JG>i%R#GDD$nAIJF|y(%uRe1pB*Z>j z<{BSuyDz^XfL|s=8kb8P)Pkw7tle}{n`@NHw2b0 zF!u?RVOVjeeLfBr9Ou1t^ZJLhqAqlEs=uQyTP_pB&7Nn+8ditT-AUQX_u4HSW5qf5sL4c?Z+U=DKP}*&e6uY^g!)TqwCl-^^}9_Pi4X+00sy3qtr=O15Xny_wY@(oT|>pHSC`yrwNmvJL$8(b|JOpimp5B%4|K_vbv(-Sz49Rlt$h29AXC^^8K*R_|mP zZ??uylSZqRXz5?}ZD|8}aUB9p-2)xD4rLr@(m$6uJ5z}Ehx|sA-rGHX-FbF-%C_cs zbA|102DYc&gMDwbVo7P6&E-do%W8{TJ-e=|q4Zi6*`hC4X+g0MCAF6@p&bqQD!)eU z?g0X$144S`b!%D;s4J4wKr~?R);gFd9-+=9t*A7kCSo%hqPAI}rr%}E>p|DoLf6mm zNwp;8&By=7Cf{>9$ltWUKSaRdiqw2n0*b>3F1oB!CD)(xxI)wDkmhZ3ZwOrPVxZov zoVu7qDF}(OIZOdQQ9OmVtrWMZ_v;Aa(ss8{b#p!!uktBtb7ym8dCiBknU}PM@*18J zSZ?TmvuHzwR<@~UCUBHFV4n`?Ki3*drt1vaGup*-lWdfz&X^w zI>-x#wZ$TAA)bJg>AUXLXr0vr^re}7s5iB1hDIImGFm7Mjm!RVOZt1)A?5pe1F z^}tTS+t zNRgRgxtC4K`gYSco_OUK51aKVJcVJVTe3!6t8KF~qQ>zd9h--)7J==%3{%t;F20)4)Hg~WGZpA?kJbMC#J7Tym-k9vXf7WZi zWg>0={+%}B$F)Ih4vVrdng*+veWf0CIdSUB@aZF2fBf}m$UcvkpqfZygw$%&=v>+N zv|t^!P%8>klD6O}NmZwS^TBSva1!#kMj~Y-_DrnucI|e2?d3{GR#mKhcT^=FoXB>T48p-UYBaANUkwxJs}8wKh@4)Ns3SIIpEAKc{zvV%7R(cjasyl zzoFYf4+0F(gcoe^M!p*VyP`ha{!?Akxt zQmjG>0wT)JGK{e}hj>8Kxi-04GedL*U;%+y`s{*t#G>xsJ<|^&Y%etK76wBn8)+^I zfk7#bN;a+^nphZ`jA8bC)`bjzN}KuD!f0t(OnyI)V-34Ol)o+ zLtr=`V$A{=((UrE zkbF;}OAQwP3YiUsLM9yEk0jrpt2|jk3g%)>YlDfiLHihkA`+#N&Mam)i!q8|Zv;gy zW_U{;gtXR`>PjaDVrU5!n(uWksl)?RTUlm*ZTaOhgm6Aq<|0j41K6QmC=7`6Z;@Jl zvEAEHn8ue+pCLwrVSYvROieo`te73QN&QA^(kb?=KnZ9E9T*8(1o;dBgSu7#>o|+E zMX!F9sfI^}!d~FAzCg!vS7!%<>S_vi9|CikF_=EU_{ReVU(-2I@6|*=2n-0qOh1Z> z!VpikSW;9?wb%JktUI+B2!wS3Z;Uezz3{eqI0#7_@nNSZ1o<|~01PP@x+sJ`OV+Hc zwR#+!Z=e_*YrskgS_Et}bCQHyzGsIv#2}PdQ}QjYa5xAl7(WN-HExmjNTpuWqzx)e z#$1Q36(-K}DpxQJA6p2o4XP%42y2i|`Tz{7=IeMq_){%q4jd{7PG$gUc`n~P!#8Tv zzRXGB+3?>(v#bpP((y>LN=SC&DGDL@8GrVNB)9q@xWf@!o<+8W<~Q)Qb}ENdWSztitq_q~#<_`bELLOKl?#fL*p;wQl&PG%)Vpik-~{eBXjBpL)c z4gsYT_%RePTWT^aL>8v} ze)q;8fRFfxK?XTKCK`)c@>ulcYxENBcpF*7B7TZ0V@F!YGs)YS?s4N-H0FTZ8lCo; z=;xS{oQay_;XM7P1J~o(y4Qg!?u9C1=%#`0V&@X5KK+U8Y4ti&MdK=sM(U%jDeYiC zne(Z#XN%bCsKv7OE_;!Yz1aY}go zCmJ8$doNUdzwbk_>8p8fQpoy!tok1UM9>F`#;SlLD9V;I`i!LYyA%W&+g~zI#ofMI zQ8zDpkKFr@QwkBI*cn)<8OPXoCZ`)dEO;KabvsHH);BM_-M-T^+tczMZ#CX;O4%OO zfQi7gPjGcR-TJ|+c~AB9$B!1D+&$h#J>CNN^Au#xW!qEmlb1^COabOo8f-KTd-Ur` zcQ0m)gBM||JK?L$LX>z0rrMh3nFf~81rCcOFcKOkG_pIoZlzFlc|#X}3tQdkUHt*P zg6Xtw8YTB0vsQsj7m1#RyWgv2k?MAE>iqB&%tay?uGH)mm9u&ic{3OdCh~_v>r53U zFVb3I>WKCI$o2bPlP!G`tc)_Od<$4Zdok(oPGqfyE*u8`6Qy&Ncyx~nXZ??obCho1r0(}yQ$d(dPf(ndoB73DUnyObi61L)lAnteMshd5yd`4o zJp%EDFVgbRVwl+&8Q5o-IY#H&J|_(NxXF3E0bNVa>dDBudD-~+Qd8$?H`r?Ar(_n@ z^PafSW2P@84r<`>wmxME_X`j-&~6%ZN6$@DA#X5|t@;%SGl=boPxW#F6EwB?|Dxv{ z=?Gqb;GcRN{BUK-TM;iVD6~%>@6B$Dq_)!@_xBFrd7p z>A3Y471WZY0Ud+~snn`b0z^Fdb)=C^E+vbdjkSr1jxD_+1*#Fl zb{+`QQ3y*q= zT=Uml5Dc1pVR=IIO2;!r_4Z)h)E)$9+(Wi;vp3zn5gfxf8Q9M(P1vO<(@LHU;pUGZ;2EKoP#8FrnNGdh5?Ul!g<4N+;pQkaB$feUE{igA4hqGFIFCTXBExY& zuW+rHN*!hi6jAsW#=k_I3yX665dmcN{}vH5EY>93qyM)6)_mA`1p00w^Nk|5bCj9O z5ZXVq+?o6c{Z*+c2ztm7=cfsrfH}see&JHmOi)OP2=m@_OLy8YKt6xsLvfI18ilMD zOGKCTjy+Mnf=!cVM(kr0;^O`-#`*s$#!`dhw^d6OZAON^h%y!XZ*6Vc~#JjM=YIlr=DgsrJ^5+XPe(00xw_G9fF6` zVKzdU-<^FGbQgHX1;(MMFJ3ydHJchkLBs4nhj8>*L_@&(Twp_gwER=*Jh`niTqgHU zSyd7Ah*8%P?}*W~{u?7b5$Ms8Epak-@*fp3^(vQvNr@Q#sHI^#6wy zqeh1zBZp8YVU0<5);<)TlT)|rcq6OUy+#OapL{{wYvSJ+vaIJar>%KqqMPmPIv~3G zzHR-$FqmF{&laF#C z6m8U+O0=Pv3f26B+91KeSclo%cwzhpwK_oaU#KH^DaGf1p*Dmj3@l^{Jmg^6XyZVI za}uCfOIPoetM4kR)B9_JH-r`|2lA}479#~QbVy`ChjV7bFk;#aqfP3F(04Jdgd^e( zt&r~7w#c0_}QwR_}uV( z3F3ifsW6P~X01q5Ih>go#yYCORKE+od|L_b5v=@#{M;hxqBk;F$yCGjmEmF2XG}dM z*%el+s8cM4^!YMz-9y~x)jYJusVGqp>E~f4!h&CRlFepr+uS=iZM|@9X1*kslomQh zGmAGaEF;06WUpBjgO^p6jan2Dn1RKMQhF;t#P=7Hh$OebM3(pEqDvV=37JwT8N~)r z;Yp)g9FQPAQ>P<}DIJhksEnLPntE1BDJ3ANvU=mn6V`bUM9Vr8^DRf^tLhid9%?R8*u!{)t))`%hF7q) z&98P-^&0Ohl;w1O2g=>5&7LA?lgk1)7SPUDQjFHl(MpGq^M}M14v1yvhaxebxYt7V zi#L>Xgzd5HDU{UvGYX@Ou;%cjHa885Z`wn!Q82hiZED~5Y5mK--b^EZ+&Y755Xz3b zsUuFwfL)_s=A~fh&VzuG;1dhUD$~)Qvb|=U5ll|IqF9qGB~vfOP!HvEcqdn?k}q_s zI-3PNnKjbFb1TUquB8!ynT~er;5%=e`|mW#)sj45uk(N{w#da@B?uV zYB!+{gHWs}k$c)M#r|?aNQQ3PG0DmEIW+G_6?jvK(q&BW(0wGL*{G%zPrT#geL9i^ zc%7+|6I`?i*>a8Wg>r@+qHPJ<)}zn=Xe(PBS&4oFiH*t0P)@7>&g1+!~-{wrp}#8$!d zArdS!8o+a59JtV+q`zVPsSSS}ghqD?iTgIrATJ0)iJ^Zp4aMV%Kunl8`k?_SRG+ zqf`g?s1EMXkc4(Lpv~cn*6?A&itaK*wVn~skSMb6OlkiVa@V6K%lmOCocCawnNr{- z^S@^3@_@}u9Sx##kz~S$&4N&515`EGl?EdQ*W$`H-ynfzeKR{n{4!0t2SOX~=!KN) zhy{G&`z$m=yyInsgLD>rSX%UyEYGV?9tk$!{_n746{1=R7=MN3%Q&d`k-|Xd8^9`+ ztc+=?SLs|S{F^OA88S1iDvHilxEX;i4^)aLr`*fBFc@93K?AMC^#AKKzsH~@UZW_6 zoSS|+XOzh^ShYlD9wcPU_tZ*z zVe_eLx{+x*A~dnDKvdMYu&1J&*ePi7(Wf_rPHV!=FRajR47*l>@a+v62Hur;8=TQf zL7J-B-JFMWRiPIolG(;R`<+ZceDbFbdLS-qvdc$8R>hCC?lDIwTmNpJ_St{$A@($$ ze9qBV^5LbCj0`E9hh*PBT(pf0sQ`bJvSJO@1%zL8dO+A(t$ZUVuPL05SwG}W)`(fI#6)pq}B=mP6fr!*^x6r1#pMmcU z;~ysO#Pho;qM6pv<6&NUULXw@^3NlEH-zZOgc4yfwg{n=0*U$szK@*V-w6=TE#0l!4Kc>MqT=bv}amHZOL z2}`mZ)Ghxs`Z?wo_%GajWX7Z_;B63@NI%b4fl3+j!E7LXmz7-Jzv6N2V*K$!Zj5Fh zIUnOYDZ%gn3xOlhv;UGp9`I`j=5NP@Ukj>kp{X-Ro|8RJLij$^ApUj?N2IpfkSniA zh>7s_zML)w#s%vZdRoi-nBfnxHGh>ql2{0ffU=cO>pocEBvJW;NB^nCC*W65+<%nJ z{}Kfjy`=MbW^aIkg+yNmV4N}I{w(48zWNfWm7p5^84X^W**|h_q46Doqp^=%Y66s_ z2=|79bljAv;Gt>Hy^q|_xsPl<%?t!=U-NyoYT0NCLONUT8nQa#8S;qd-2!BjDx@A- zYQ(zYVs-g@WM`QL4f%y=wHmxP%p#VWr?gWhe&aJ}$w1(|qAE>%@UkuMNPz6OBw-6C zr-CA|A#93dohABx)9j(U5U-tjV>bR!M<{M**@O%S3W|aAT^ZgQagXK6St(yQP!O^# zKn--L+@QXn#TrLKtMAu?@^<~GkYHc@7dOUTnjxjuVWp@22^K?*>d-0#4cyvB2FL2H zFv8iGuTS1-j;Xi@YgQKPkCL~^IS>%n&a<0GT=gJf9kSrCY3sQGs;-%YfU@;~Mc^gH zRpu#(gDB9tcxf7j4q(qV=b8Ds7V&lLmY~g4+<$SCxy~9!7K-shM6ycx$)5$)zLV+lvb=mG%-wOsp;{sfW-Hn;=!jQTK8>YTT>~VZqvm*Mf zGM01ye+K&mDC51DAG8Wxv<+FDR#C+M7oGKptu?~fwI4p7)j2o-m#~~;rAzrSc3+l$ ztLxguO(?8gjxSaudmJ0=@sR)*>4JOwvW)z3-ak?h{T8Q{Ad&t9lrvztA1A90!87yb zoVm3(oCWo22o$MT)`7?XL|YIZv}&~=!OS^MJkRC^u#1=hcxD_kv)nR0WzzbA#1P6l znE7vAFJqw1=)tm&eR*dRE@q)GHKEWE95cHvINAard1mzRqYSf%WeAHo7K3u zvbrp&wCNAPF5}l#7fUL~KDu|1aXV|9z~u+h4Qa2vJrFPc_(sIP0!IKKU7BN-c&hgw z#1IH9@qt>9;w)5aJPJ0o^O!0cq1F;yfk5 z9TUq(jgQ@{I)-?{`J}P9Q*dKHj%wmy$R`zPxW``S8kJKDvMX5{O0pSI`m+pmv{Aq` zfEubL*g;*CF+kfmPkVp5=Q%xR9@{Iz3W;F{NegFTP|#0sv(R_}>Nr1RT%$^|8_)#(9vA9_#7(eh-T?kc$O6Mi|Mt#+KO*M66AMC2tnmh&4-+cc@W>9A@7Tr?G@!g?#S{ zj(xk9rlLx#G+QxwHP~6XeU9g-SW%l?67O~MjwxlH+~A6B^`#t`E=nK+(?vEf7!Ks4 zVuML(j8Wg|?bZ91{QPVfdg{%n#7|3DlhPW==oXi=qn9waO)vz>NmEuTDM|n0#KrE_ z?9WR>?Hq4IT_gz)GM_s?ggg|U!yYqIZ>tC}FLK0afMi-B7vW_U<)x*q)do^p(hT{V zl9(6)iUvT;6&LqNtoSP|@Zd>9{iY1qr+Fgd(wOLr0G=h9ynFh|mj$hgfX>2fi1%^g zde~1*Xe9q+ft8X3bmmCxKh8L#K^I`xyA(9yq#{mA6HHsMw>l4cQP5D^(NYW5xc|oM zICPBY6ibxPhKmSRCkvRemab4SSrbd?;&Vl~6)sKScUjN+#Qt^F$3FLqmPaVTQLl8N zh7ZV9ulbqc{YpZs2+OV$ou@dJa$DebIfYuttkN^!7w{HIM^3vcCB2(3r|+-0p8>k> z(8@*y*&zsvvb0q=fvH$b5R6wQYP={af4}r3MC3S8{@lV$OipN3UStWExQ+iv$fPWD zYbk6zOfFQ!7`NK{9KR@tbq&f3`PXaN4C7E0oHu4aIJeON)X* zDX!3QxTj!E7*M1ofUpjRbpICt&)ufOWHMNRe-WTMg5t%*op9pF@dguDkfSIIu^3NS z%vum7DI+P9kq`m61wS4*Dkn;ZwG?QI03?lc6UF?WrDhTrJ5{^1oMjR$un(IZNyn{- z?{fpQBRgZ+@djAiHvY>rR`Vp9f)2 zE#QA8W+nvAwYHIR;Y$q40vUOadY0M?`q#O1(P~->IW&I4{a6T7oHmXMXMj#V+~N-& z3s`Yq_G0P5N;Xjx%wPlsHA5BV~csHFC6XYHD+;t zz9}rgj`-S;(z`H2@>hkViFv)Blv5B5G^%>4H`y!!V?C{(42U8A6e2ET(OI7(E>UEN z7TrNiz_1VxXigOed|Lgo9-Wm@Q#H%b7z4y18}i`FZRjI1o594_EFP64GfZ%^N^E3E zB$G$eG~N4LKi*p}b(W0L+B7~Fx9R_8On)&jK!$iGW}|humdD4WU=SeQx}edibtr%^ zg!`e}5FidLgMeXarOnbzk-^?$H>hc^LkeI^4iN>O@ig zw>nz{pgJCy9{;y<%>RIy9=^CFxR(75WRHaleZL+p-|=r!Yz%jIen~m6AOEARV3Cl7 zK_55>$O-I!HQ{nGb9J?{xA<$HRg3zT^LHMM-kmbT_C0ghRwuaw+B1s!ZFwqN;6nmH z8oz?rJ#Z%?6e#SFZ$wU{nx|h~V%|M}>+5wH9#de>Ms&|dOfeROV-B1L5u>H2A{o46{bs)%T$Y`Ab>V-mebmY_CqF#~|LEF|J(Gd>^5olAv z+wiM`8y)cAQZrg|7^$hPC~;+k1}VaJxjFt^ze0AU8_mnu!r^R}BTctzqy72k0pkO& zlTK0zgALLk7b-O#&M`^Iy0Td}_q#z4Y5OC<{Rd{l!Suz|&~CKzPi2idtdrssgyd98 zoFMGs42AeeLC4piqSZBQoG$tXr;uZ#x$Ku|M1JZ7EU)|!su#y>Nan?^nD|T#gk#ZZ zbB~zl7b;5P%SA$w6G)saCH`z4kf?-DL z-(r!QGDlnA3iCsz80U+d^IgPc9$MoEttYzmDL+!(0~nUqhF1pT2?eazl-7h67FO`I zB@t7$D!Ag`ZiSH=TP3BoV`2HQf=wD6%KH*A+rg~mXZzv`6wo%F03;DAHCB)cwG$nm zSjOu|vwef`m9|z#l^@m+`k75{^ub7U4`-#K%7OwB!Y?wO^8z`sQ&}t3Rc$JMh=n9Q zR}D~&twzx|vc2Dk%Uq}h?Q-SLloB=&d?z2^01O^dBtlHMI>Es*2Wk0u!$s64o-N;D zu*D=^o|{5(bMM^^NoVC*^t2-;QV52aMjcvby7ip#4XU*LCTbDl%|!IDX&~vIOGZ$) z=Lcj<6y!Nn+<1VtGwpTQwuu z5W&Y_U0*(uiLBgdtklK-&^SI7`%tRSb!FC&HqvvsFvaApwQm-YWasqCS$k=bE$Zib z*J3JnUGP#h=7-`owJHBo-mb)8Vhf7v%6uCQa>{*&oY;*1ln8`nhIVFpu>8obDI zWCC8_8f7N?9+1W9{X3?1D7(??qJS***W1l#dq#xc(f&5DPT_YC&irz6RLB^m6ci=5 zCu>^r1WYZlMm1eM!-~SnB#1^t&>*FM!L^B8^Q`wP&+9wkL2UWI^jWU%fc|rP<*D|O z3J9ZQ{4q;caNGq}< z0VQh-a5L1*%TIPKE}X6hD$+C3ifuo<8Kzz7f+aU_?+54SSV);Q0PQf zu5X1|`&vswv=DRKM#B>;Gsr&K1d6}nc`YJ|$~ZGQAJ@8B$ao5Uq6DVYJ$C9a3uES& zaraJan*1Qe6DmN|WY?_h)XlImewvJ{)dRrlIpyTA3SQtcV(?Y8jG5ZF4RLt(mqf^E z??-oYLPUfvA;q$JKiROmgZ!sszj^arOn@Clf5U-*p#9r1b6^8qRU>2DzuJm!r4HDC zXCWB<@imerEnCJmsRaX-ZZx!c3JKpE1f8HBYa`)GxMSh>H-6hVmaBT{t_Qn#uPgd# z3eZ3pTvt&ka8lln*=OUAhc`m)wl55gRAO{=?LYeQ92o||S&MxR`H5e8rb10(iSnY9bcUK57`)msBXdtj+{iyP>AF}Sz>yVy@ZzGgBsJ&Atf9!ZR6;SS47!!c zGL%lMVmOVAjm|6wU8^4WMmN{C=MH%_UE!b+xK!4l7ZAdG7Nlc8T8f~O$5vR~W@_Do zj&T3h9sjH!z~=!fa4%|psCENZw)^<~62{G|2eGcULYG^hedwYzQo{?DJ}+piaR~Y1_P%V4+2BJ7o9k&Y(aM9H z4!e^XeIake6nQ9qJHg1!WDrq!4rJ9V2KEC2#){mCXB{j0;7w!Fgz7f$a_4V2EqrI!u2$WHOgwX2m1xMndOTN)*j zGm2isE2n;cqpkWOxXad|`Wj*Q%Z0a0d%{+vQv)2@^+*~e=i?Fi@08GEWX}RVeFn-m z%NJoppufYN7BSrvC;4bfMi>0%0xV*p=R|&j%Z6vjbI<%=({Rj+PI`>WJQSA^Kq7oY3Bn ze>1=PzR>=dy$>(c@Spbf`PvJU5>~bm!$rSh)Ts3elM;ajRkF-GOm^Wdp6W-41 zSx(z>(HJ2$mKxfA0ON!0Knq(4{ zX*yl`I#*EaI3(X(Cu-XHS-BmSEEC(lKf+(XL4A%~dfbj?^Ru{n+4Ks*SO`KXD;dTE z!LTRkFQzPOx~;?(ClOP-go-lJ^nUM<_>K4l3e%)(H@#EH5ig@1`9Q&aZ#ET@wbDXO z!OD|*uhiI(_x1l0W2cYlU7IR&X4nI=x9>~9&cbt@{YSglWI4;Ra zZ33gC55R$_B;ZLZz<;L5p_Kp7h4uJK} zsy!DlF3#%JmA&?lz8*R|9Lt70x6w;dK!SYfy zju$CSZi0R2kkW3fE=O)&^Ct954hjtG`9JnD7+{^_c;4#tenI~;7t8hMTP*{A;6VYi zS9IWS6E_!E2RltWTV^X)GrPY&_G+RV;09SRKz{m)Pb5y1@`Yn8Dx*-N7Qod?zkG*E z>`p8;{@4!h+x7V3ICg9&{|-jX!3Ss)mv(W4^S+V*5dXYC7QRObxd;(~&aOqVRI!lM za%=a1Bvk;%rkj|+IM8LqT7pmy2D5OiKs>DphkYA&#AyyhuN(=CveiiSrfT89lVm=& zqU>AuQzyhxM15hZh2k-~s$tCCq712Phs!c`4qjgWAG!o5kCuCYdZ>ZAi2kAL@9wbw zQTJDC*qGS{V1AAQwcDdW+H6^AW9nh8b}2DNmO)Tv-zO(v6Ex5jH@i@B`M_l4&^(k^Nh0txbaBimveBG~N)r_Amk z!cH6iab~*aE;JLKu*dWUj>v&y+%>6Lly`M`HMxo|b)mP_H?V&WXiJxz{2oxSF;F

~hp@y5mja=+S(ecw^zf&&CEpN>seJdA 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 literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/CRTDownRanker.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/CRTDownRanker.scala deleted file mode 100644 index 4a8d74504..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/CRTDownRanker.scala +++ /dev/null @@ -1,45 +0,0 @@ -package com.twitter.frigate.pushservice.rank - -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.base.CandidateDetails -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.frigate.thriftscala.CommonRecommendationType - -/** - * This Ranker re-ranks MR candidates, down ranks input CRTs. - * Relative ranking between input CRTs and rest of the candidates doesn't change - * - * Ex: T: Tweet candidate, F: input CRT candidates - * - * T3, F2, T1, T2, F1 => T3, T1, T2, F2, F1 - */ -case class CRTDownRanker(statsReceiver: StatsReceiver) { - - private val recsToDownRankStat = statsReceiver.stat("recs_to_down_rank") - private val otherRecsStat = statsReceiver.stat("other_recs") - private val downRankerRequests = statsReceiver.counter("down_ranker_requests") - - private def downRank( - inputCandidates: Seq[CandidateDetails[PushCandidate]], - crtToDownRank: CommonRecommendationType - ): Seq[CandidateDetails[PushCandidate]] = { - downRankerRequests.incr() - val (downRankedCandidates, otherCandidates) = - inputCandidates.partition(_.candidate.commonRecType == crtToDownRank) - recsToDownRankStat.add(downRankedCandidates.size) - otherRecsStat.add(otherCandidates.size) - otherCandidates ++ downRankedCandidates - } - - final def downRank( - inputCandidates: Seq[CandidateDetails[PushCandidate]], - crtsToDownRank: Seq[CommonRecommendationType] - ): Seq[CandidateDetails[PushCandidate]] = { - crtsToDownRank.headOption match { - case Some(crt) => - val downRankedCandidates = downRank(inputCandidates, crt) - downRank(downRankedCandidates, crtsToDownRank.tail) - case None => inputCandidates - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/LoggedOutRanker.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/LoggedOutRanker.docx new file mode 100644 index 0000000000000000000000000000000000000000..b68fb73a5974d0afcb50d43bf96ca3c521ac33eb GIT binary patch literal 37377 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 bBV{qv)?t7*D=-Iva+M%MA~1V&^@4Z+qDA9f literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/LoggedOutRanker.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/LoggedOutRanker.scala deleted file mode 100644 index 5ab0c240a..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/LoggedOutRanker.scala +++ /dev/null @@ -1,45 +0,0 @@ -package com.twitter.frigate.pushservice.rank - -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.base.CandidateDetails -import com.twitter.frigate.common.base.TweetCandidate -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.stitch.tweetypie.TweetyPie.TweetyPieResult -import com.twitter.storehaus.ReadableStore -import com.twitter.util.Future - -class LoggedOutRanker(tweetyPieStore: ReadableStore[Long, TweetyPieResult], stats: StatsReceiver) { - private val statsReceiver = stats.scope(this.getClass.getSimpleName) - private val rankedCandidates = statsReceiver.counter("ranked_candidates_count") - - def rank( - candidates: Seq[CandidateDetails[PushCandidate]] - ): Future[Seq[CandidateDetails[PushCandidate]]] = { - val tweetIds = candidates.map { cand => cand.candidate.asInstanceOf[TweetCandidate].tweetId } - val results = tweetyPieStore.multiGet(tweetIds.toSet).values.toSeq - val futureOfResults = Future.traverseSequentially(results)(r => r) - val tweetsFut = futureOfResults.map { tweetyPieResults => - tweetyPieResults.map(_.map(_.tweet)) - } - val sortedTweetsFuture = tweetsFut.map { tweets => - tweets - .map { tweet => - if (tweet.isDefined && tweet.get.counts.isDefined) { - tweet.get.id -> tweet.get.counts.get.favoriteCount.getOrElse(0L) - } else { - 0 -> 0L - } - }.sortBy(_._2)(Ordering[Long].reverse) - } - val finalCandidates = sortedTweetsFuture.map { sortedTweets => - sortedTweets - .map { tweet => - candidates.find(_.candidate.asInstanceOf[TweetCandidate].tweetId == tweet._1).orNull - }.filter { cand => cand != null } - } - finalCandidates.map { fc => - rankedCandidates.incr(fc.size) - } - finalCandidates - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/ModelBasedRanker.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/ModelBasedRanker.docx new file mode 100644 index 0000000000000000000000000000000000000000..29bd9c60e7e821dab4970d9e13dae1107ffdfb42 GIT binary patch literal 38565 zcmagFWmp_t)-H^@dvJFN?(XgyENIZi-6cS95AN>n?jC}>OCZp=%jrDN%)B%6p7VWw zii=&fZdt3k_Nv{xRpcR|u)x5;;J`}LxOJ-3isF;O!NA60z`!s;qo2e9_Aci3E=C%j z4(84V%pP{OP05PNYa(c0fv?ypEJCE-;;7i=yAHGtjPdvqH5s=&y2~tQ3J{O?lY9}H zvnpXQ%<-9N_rAny^@80#&D5X7CC&^CGPMiHAxnG;Hu9OzEw~RPpX(R&{V~0VUP@m!l?<4Lx-QaEU+os81# zF?=}~S8;ot^miwJ6c3QheqCm!*2=QUKxhx-`5s|>p(*v%xG`bSxz25hp~1;g)3JW7 zuL#9s7!iQ>bKkC)*?mHr{RF1IEb2yGZxh2hbpH%s6GB}(cMO@W{cg{nd%C8@@TF5v zH%7zP>LgeO-|Jo+CG)g5h>oU#%peISovkyr$|vN0;QpSjD3(&_aXH-Zetu5TZc;N~ z6!j~orf{8FhiGid7&|ZbyW@#Cx$kXm$fp%v2_@f72_r$;K#@W3hf9>_!_UyGcn?T{ z)%P+lUBw5kYeD&@3XCaqpI(!R3ekJwKR&(LZ=UA06B?rlh7625I9HlC;Z`PD3Trre5RxA|i z{XThKZ0{#iyxQHRDq*05(?@&++%vUU%qSpOW+=7|);7^y2+CXP)7hfCZ0s;vhf9I) z3?%c=*bULOO^>{#KoK#gzUQ*gA{AoT#2orW*Kj^7S}i7FL~kd9QW{d0h<=0ULaXiS z%QOdo0Z1t{bABtSYTLJU|Mno<>>^_vAaWAtfUcgVWX6iiQ-~t#hJlFxL!H&PWJ386L{QZ|Ft zKw&YQk7BT%lVkqtG+9=wT5;a7m^!-R%2zFs1lo2AWYPmHx?h2T#1V-U2@U9FEycuO zndqf?;1MZ-A&2~y z9x_%t%rvL1g<&H+b9;nFLIr0RQB6~GZ`ESk{&wc<ne%Y+OM+?P;zCzdFNbaU?FZ!i5<1pir=o3%CE zQ&3%Op}@e<{=F`r9UT5Di^hcg+DEj`X9g$(mv2_EqN;caL5rfZ;v4w237IYPlXbXkt%1=8vj4ZXh((d>c7jn>r$QhAM|H z!`2!?H*hqX8LwJ^VS;x_(^jb-_a<*JnY<*1b#PW@m~mM}5!r0?F78lr@cHp#E+YBc zt?ps)B3Y$rdGovKN9Au7kgqjgDm+VP1UaSmZclVml95rQAU?mcLrr*ASkbP8OW`V# z60jO~T}*y~vPSfFxve+*g`R6^_X$^EjzZ*=n9<>C4(VYKVISADa9hOh$E}n@MbwRkz8I*$X9XNsIi|E$=06%eK+ViI)Uqsajka^W&Cj{ z@^>guPyAxbFE|qPtKzVFL~)7DX_)?XCUx}j>MPr43s`aW9M+RHWVXc1iBP;J>0VU)r%AZ9lpSBA&Rz@c6Yhz!RsQ!P~x$MNJR~w%Tr` zCJRkzZ&C7xW#Vdj+bYMW4z9@x7b#13b!M=r zZ=iVC7;SSx>2iuz3jF%U>(;%@TX-T58Iz1`pa9wk37>ElfJlCKiiKM>ygEXLHnM}? zuBIti=66HDaKZU>Ni29#zDLRL!O;nJV0+~i3d`+O28Mb7a?mUyi8rzCB= z7Ri6(hCNp;+B_)k)kjN8L?z-eqojq`hUAz)DTh}i0Yx(i<@s{Sl3U8Fg6q>x?J2Mw zX#l1*gL&D%zyhXSv2eH>H191$u4{JT>rh62$G7lKaCR1xl7U$`vK9M`w*c&rnPVcQ zwA@;MuD}C&+H-zvAqWK4SOuTVU(3hlO#OEMWuBx zVoSz&$ae7qJRwH3Pprz;&~)XEBx@d#XUy=d2Gio2(023(O#lIyyMe;UU%)K4Fe0qJ zucMx46;`ZA=!l2`38#HJ4=87)sR+e+)MUkhl*whSG@)VGNYR(Hl*Az_7leYh_dyRK zVuMYzs4>tn7{K5M!6Eui-(5NXzL@E{IIJ)^Ip8h_8&X+$770y=%p4!9v<_MiOOsd- zQlrIcY9JSM_)45wpjc+z@{GCDWIlMb?2qe}Lyqsr-DpPnsN;UIA_{%b$MERKGsxg- zm-&eS>M-}y(5ju3(c&QxY!Y&zvG(4X4=ys!-MpxzKg>DMuMk}ool;jt1+PYqJf)vK zhc^ri&+(y?OZ|E};vt?BB2d!FV%mkH_Gf6FBXee2<#2_2%;^RvCgg)_*Of$_iC_%! z&lj!m#4dD(*K%i{7)cqRW-04ZANfYHV@MVt zv7hFFOFd}i$+RTtPax?tvxp4GgGmh)_7SS&h%x>ai2;)#e<2-~H8ggO#?uLEeh=4Dt+cyd{ zE^CFh&6!NIfoe&!z`k1VTQWrHYptUs9n$m$jfcS|jPGn89>laTbA4QrQOlwzO2@oY zN(6>yv9!Qp;-f_Z*p+;Ppf5cmZdXvhYBLag&?AAmC}Wx}8gylG4jR9EZqgpRcl zqd=7W)NIImQ)UU;3vDiX#F#U{{k(8jA<97p#95B!v}N&-7Gzr4k5 zZnY!F7sQbV=+yGV4)Z8I)jrOceKMTD%7xEB#9+o52r>=;T5*-oGvi4rbbWQQm1gL0 zzsmZrx^NznT?NS;?~de~z*p>jTXEghXv zw(Xw@=PP1{?ey|Dz1k1UBo&@E5`#RGPNC)%{%(2Lo*CNYDp<2?+z$bGF|GHaceN3P>@HiKj~1de#kEP)P!Sf zm2F3noK<6i{j&12UagH@E0s%Y+@qz~hycHHX~%_WIPo{TBAh@@5$l(NIa;*<6S(9m z4VzZtXx|+jqM-%0vHZd(>`>M6ddC%7j*NKeWYkz=W1HZ96QssN>&7Q*OnT8}4Z|$( z()yLq)iXP0r^#r)2?foi6?#Opwc-*CY!W^RCFrW@1guLv#KAH`_E}|4>kcWI00ud;fK(%w>qWRvPo6wwGL5xB6lekEUc_Dxbt*(0|dN&2#PIl)-o?U`)(*Hccwp z&37q&yX-8x7QUykz8R3@l>e+ft9cN_XX8=&UVeWHlh;NB1z8ujz5KGelU7wr&iGoF z}0n_3))Fs&*wSW4>hBV<|X1eY|0ZE*_J*x-or! zX?|FU`RTOgS68JM&EEV{i|{;5_bJxz0CiTg9LM}VUE(!zx+pI?0&tINX>laoVfE;T z_OpR7c>)XvwH}=ej2SN}FxrjdbU}ZKVdSpni0y zy5$990}4(m<6Yp{b&p$D6RWU$N}~TW2^B!i$zl~ z3HKiHRB^VV+D!Ew$g2|eNKqcD`gHXWo6rwaHaylhvq^(qO7Je;un@v~LQy4zySzj? zHmVca(x-y`7vC`gNonkGoL5V=4vp94c~);`YoK@^gMYI8XD=OHfx{ok0tRNN2@Qt& z&s;mZc-opf|J_L&B<@Pp`}XwY7Z|Xqc|tvZe>RQ^-GO#iqK5hFYmR@XEzr-1Bqrnae1m(S2f4fL6Hx29 zWa|971K{_H=fnSac)E)gcF z?Cb4P{>mF3RsVit)u8A7ys$Rm<^E0h-9ZO1fPUYxcYS#4@!_mu^o!AbSjp0WUy~5= zfTiC`_K3Hxz1z~~uS%bDQ>RX9h0lev-f)BzoTM*Rc1FU2ABtQ#Kj za?WBho-dMbuRPL;xF>ER{hXM*UU|JJt`jTv=v+O!Jy+L-CB$O=Ls{Os*SkAfDkqYM zSpDrf)_uG6KLNX6Z^fT1)KZBD9Je-DP`CWPOOp7=WS^0}57s>PnDo_5EKsL3ytwFv z`Jty%;k$IecU^4acccpYc}8k<`0$@$lGQ}S-PEE&7loZ;@XdrZpoY~{3%}MH`RWS$ z@`SQT|-+c{%euC9G z_Dk=WgWV}nt*bp}N=Iw4fZd1v_d2~EsceGo_D@n=k91GHTweFAR5Wi7Ylm*!M~J*- zmqYIz;e^z8CbFJ}ECqNy1X>8`yKwd2_vDa2SD@~cqOz)y^lOrsR0<7B_=eN@gwOf8 zx^>@-oLLRgAQ);qMg+}i_~ma?B&YXPAD4jEqutv|dQJWR?g z!wT6et+|>*;L{hkQ=V1Iy!K4uEZ%UeTqfDXnS7ze62xeJ(yPNT@!?)UUNgfgOcyI~g&xLH=y{{d;mlOn%>+d?|K7r3UrBMLwSe7iS&bXFup-Vb^ zZn)29Zx_Gp7&3{6f1>+flik7n6!jr8qLqy*qTops0$NmPj;>3*XpqIq$*9VdVyGpt zSA;MgU@?%%GcC!%B`CG`RQhibvOH*wcaC5!R(7&x6o9MRUgosCmf?Tb`^Nb8ykXVF zUkw~AT=`bZ%DyGLtYf#Eh*ro2DF>&Pfj|Y-cO>CRc9K{S!q}v%CKk8qLPrK?xrxLz?DW+)a<#L<4) zO^APDpK&CBLPVH-&9a#G(c-IkN+Y7s#1VP5dKn;(g|&r_rE0m z4^*7jRW(jfD(I?z7v@F)(xZk3@`}~C&qRvI^j{L0Na1Ka5#jz)J)h{_gx2}zs(%d? zI*T_>yLEJ98fNoJ=q-?T6KlEp0w2Nsb^Y~77CVxAFh4EZ zITK3g%pW>-tc*<9zA;7#GJi^W0S;|E-@3LL*bjM&z6>l)y5)UY_PGA^Fg%x2v*S_o zYe7i)=-_ZHf9D~3OW2_0R)QqPewTSgBw0TO$Qh6S{_KDx&g3~`jK;WLMwGcVv`%_= z?&r3g>5e?K*3Ilck|Sex>XdNQ_IvOfpk_C)Iu@ctlS;+!3K z2TSVdQ9RDf#J(vvqW&hUq8qVUS8yKw7Ln3ngmprfY01GJ>*M=@uj)7gkoD!-)!)Y* z*qTU*TD0jLUb}e9q`pQ(Io=+ny_|^CVO>u#)%Mo65kIVYN3Sv9l)S!qa^|txGZ>R{ zpPTgaikhd##a;c&G|CuG_-T2g2PD)8y(Z31nbBfK(CgdaMX~bH1ly(yaYU!=c!rwX zM8@_@LOC}yo%kY9QI?N{tzpj7Ml@OeY|%ec0z;d!cz(sK-gDQ?Xz_F@N9++5^!$WV z^!FKk8ryrCdqcDCO&i>Fbj^6Mdu~zRXBK|x?n02`R~Q=JJ@A+3!jWci;>NKQ@?6s) zH0ZWt^b>e@cl68G4549hx9TV`#_zCrnZ>jD`bHc)xpn}jB+c%p@_m*%m7y$p9CJaJ zdA?=nmJ)F;kr7 zq~Nym90RtwnU?_i3O$Y;JKPk$FU6Eg96(9aYTRhnt}pAzEKboEL4w_L?7|}YH~i%15}^)E!ofBI~OS0lHV8tl$Gyj@jv`>%)pu>Y1smj zzrUr=cg(my-HcqlT@4R;b-X%y`rW@Jzb~FW&HZ{garpST^Q~1l>yG7RW(3;n4GeW9 z!?RTg%4n;jC3WPM>`^WLnbUYZq@eWN*%?Jrae{gx=PngRCW@fFQ{y~atxY}{@S}R+ z`31A5$452bl2h+RQ{u6a^br~Gj9rVvaGLRxMLvCwnX@F?OsT{D zFhuP4^+|T8;IuYtt*e0AhgxD3Fz1=mmtS#x(3hVIif6{uih9TiecZDP^8vc1O*zTb z`QsB0p}ff5htrHoPfywK%7*h4qNP5knhq&Dr2(9TFpFsVrn-_gkL|jh))XxZu;9)ofZm;4eryQ?uM&EHj5F%1$NrwgbV$y}U)65XJ`OKID@}_$owtwG=u(Tmg*uS`S*z$P zIXqTA%y%lhLc=&qkivc;55?&z?pU^RR#uLiQAeETqp2Gm=%00J&psHZ>WoLeL|8v# zkgv!{va>`)?*pYP`a+k)>kM%yj}4Gj&bae5AGmh9=jAIt5z_q>%O5Q@qcd40i+G2h zv(db6%tsrF6fNM*nm9OPm?d%IeYa!$^T)u$OW0t6)u%JMIKJj>;^r&>eGm-m^rij+0Ka>G>Fy|yJr9*4XN2GZN_ z<}p=5*P`foX5&lq7mv}jhFa}48T&7}I$BI-Sr>~H79($Jgt=~^$qO> z^akhE|h()4H zbQ2|my-W!oRlk~2;s)VIEzWkb!+j;g{ws|icG05ywJP07_FWa%!Wc^D^(?bzQC5vs z5lMW_*lzr|$$Y{pPZn+MK7Ryg?l5HjcH-7TV`{Cuu%<@6%`gQgX?{m~=<2FFvqxHW z2H%#c($&#)+W>J++o~N%)KJ3 z=cI2v#+pDiLexU}CdDnwt|T|bBg(c{h-hJJ*^pK!SWT`-W3mMv^bh`u8vxpl|gqN zTx~_l4_tL3{G6K9HisM%X_){hAw7LJ&Pe;g`ohjzV z!Kbd(5&vM{m%LoR#I+4vb-9-)Or@}ibmqPqZWdhjHEojW zy}|-^3;LelJ=3WjC8!xa)lVM`_t^cUc?8~x@X&>Jcx;ART6YPys9-o*KiU^RJvzMp zD4E*vK#2C9aT!AVHGTIJ;(@AyBWZnk1zKw?S+goTE*ruv!_MwJUj9*AwM{>}IEZ83^!r^{PZjD>awPVlB|f52O`dN~ z4d%IZhavIR1@+7IoCN`9*YUmeEot}nEUE&Vqt!?veRJ8eqt~|!ZQufAsKwTFf|C-R zLehTG4) zUlMZIpQAQZunWUCbv|w59Y=RzDmmY9x!Nwdd2C_3!gay>(80)VCl6qF%{j*4UcfZ+ z8j9fLao02Eahvu=kc3?9bMY7V$=+ET%@ULcVa*cQln6m~)p7r}iP;=JpRdRL4Q1vI z-=%nT{rF|vTg3sQhA`zvMvQZ30C(=xB}6@3SG+lVR~n>}{?@&ef`f@=^&L*vXL=d* zF6^0Qi+t|8z_s*(7S(Nq5q39-_T+uOfK6)1r8M16SZJDy@z3yGzj#IvJs?*JSx6&) z5a@!iS+@rfJ0pZY2Vv4UH`N>?Yl?n5wxj&IDMg*n?akv@> ze^OL9OK`M3B15viMGBmV2w$ldtP3%4W!lt3G(r7x!$$dL z@%k);lY`rI*#bk4f)CUu29vPWr#INQa(9tGI#!TIPs>6Taa94Ja2zCGsjk1mOaBo* z|F7`lKjFc|VqN9FTsQVVA+NlwU*{y}Ga9U$T_tl=S)e;rdNEImcqLF%%W-cL&f;uK zg1kJtqJNg+ZZ3zb)L8ptbY&0(c4q5QyQ1G7R;JrM&RWjPgR@{=gm_t@%nlTtNOqa= zQ?8Ze8X78>a-4*6hmg-#tS(6ci&bh}1?R2HgG;$B7i=q%gbEB1Jn{l)=H;EkiJ3L8 z+YRf9V$L*FSZY$W@NfGGtk6$1&%z4a*_q;&)FZ2z^EWd!8<;GfKx>oRp%B?BEK_7& ztr}gWskUKe{8sbNH3Nqc!ESr0xuo~?{b?f1oV4g4*q5$RUFWw{q^U@mVQEqO{M`AZ zf(f-Vrbc9nfagXj?;9kWGh){g1(o7ato-&Vzi?mo^=_V=Z=?=sv`5rWu6(W=WwFY_ zO{Sub^QOtBZ1z^%w975NB*&|Y_})KZKrs%NMo&Okm2=&1y+%kE#Hk;&&a2nkWysEJ z;|3q!^Vzp!+CS;B6HSj%DCF9&KBY&_;=UA~aE7KvY3d zBp%Hp=h&*_5YKN zcGM$~`;ulUzTxOgNsYB06y?^J3<>MpXBzFculP0~HPV!zQMKXg72`g^N(`Ib0GU7qA~fEBF-UTl zL9KmgbfaGgMtP&QG;F6qU~Q&>4X{%8X>D-@1lz}h#`wa|2HYqGD-rj4_1|~gMgzmhj(jaJsgrSUF( z^xiek(M95I2ai!=l-hz!B#<*sCt9hXiloaXoG@j*xHgR#!m8g{H)N#FR0`x;#e#^3 zNE0J<0#k>RKnfokMI^_W!^RPhUr{n!gobc}WjBxgeZn3|Ce7VD8!>e3y=$t@C{@D_ z+hoQ%Q~>l~gz*C-uKO;=l?ju$lBquD_@fvt9P3A5A{cKRCM~#$2&0rCTHW{RTD)(Q zZsZNjXmR|ym^EXjHJwF{H4jg7DFXjZ<)PFcmFgsoAe95Ke^f$&*L^n`Y5V2# z@z6{h*A5|22Hf=-ax}2<9Wp$S$dr^RTt`7$2T9U`KVBCXZuItU(#`kme-PI=I?JGn zwb!hxbQBJ%{T?j*N_q-Iz4c}f?gGPzin6nN>s5_)dntbY*iOevTBqa|Jz_&{YMAPf z9cEPnmct9XE#I`2@?~`6X?ToQmX&tXS2|OR$1FD64mHYaV==huC;FvdP|pHnwPboQ zz<;>jd~iX@Uwb`YMAuj2yDVnE5L0qAs`+L*wGDN)N}ZaIT+4I|vpmQZVTZByTTd=Q z*Vfz+(_}Y8XPBnjDs$||UNW8~Q#sYNY-Yn6X)sTTU%U2U=7N!Jc?$y#XfTn-a!D;= z(9F(w;>&I(C}{fcAfEpnlst97bbEL;$Q$8|arB4kdnK~%g<>Y=#KRzOH2VjyPK={U z$)-Q&-3ZLkj^>r`$1@wQXu;%PX~A|g{~Bkal2urQX*Q*qjxhJx%^Xfc5;Tl(Ud-3~ zbG`$aE!_E}#M^vY*V7@m$j<@NQR%Polms&_*0d#o93GmK%Lr$DOST&is%hOw>%Ww6 zjgn56<(wz;S{|?xq&%?_{ExysqC+BAkxa~~zZJUuZ-rNx*I`rfTa{d1s(GSkr5~Ke zoJ#d!uLkpeGL6nv7k*$r@YEO*??dS;U(|rrwKaJWuieUuiQgjnGeaLgZf*21zIOS8bF7K1ckamj8j#FXGND7Z|Z4~+1K?fajvmN_^1TNE(nc6{-uDw2tKV5dwhZgU7q<@g#xsHO! z)nWf4Z(-%YjAZ_Qkk1;+Za>DPZmm20gS_8Z_EAmy0YSS(73*ie%TL&2^|pAHE+fOO zuD~|Iheq~xge;=>_TzE6{M(16-S1t+P$h-Wj5;XaenkW7l7@Ykb4BS_d9~&W{1v;h zs!lH5n-Aj{Ez39O!1PqlniQ0YT-^uOw41t6jq1~XaNZWS3zj)h*p>*TY-oj!4SF!e z1;XEo)y{j9p;4WJQDH7mG76tIHHqUxxjk(#^pjds+xYE$R?pg3U^|b0(m-2z7@97_pC`{gMg7igDoml^Zf-i< zV?;R=7hi_OOZcqP&DJp$=faEOm!~zRxRvG#OUh%~J9jv$UWF9X=Ng}|B{+~J=El9v zbx*qL!;4)5is3mr;&Yx?PjVq41YggoEYK7aIeRXDlqscCf4G;JEj-KQA zRaRcW4B%6==>lY(b5yxOqbowrHePK8rg#BG@~wz+tstg)_K&)o`Mw2;DED|X;7iPz zO#uX4$`gxahXrRjqQ9gEoGC2$>~Sc1m7kPO5Gc*90{6;z6)TKHCFVppsyb84i#Fwx zzv#h!Nf%+4=nZ;L;bZJ~^SWtYs{E%%z5C*^p??Fr_MS8Q%j7SPs@v}2_PNH@f0~s4 zbkbE6@wdsa_Mi;d48lkwS{ z+K~{nqFf)bcCfp0b_CwKPQwIwBbnTYC4;S_C&L`Jz;M{&HH0^QXLemFw`KI%>CwZ_ z`iCkngm|CsEZW?sN#0LzkZ=gz%Vub=2wuyrL&5H704zA@@^qmbvOupn%YK;90FoKY zVCa@mN*q2=*Rc&5P6#Fz5Dxwss+CkWiIk<3hDWsO)+{U@V$u|j;bWIAS2k>RYid&j zjtW2%nZ=0phfiuduy#_Vrc5g!$osAI+Che`gkQJ^!$k>CAF#D5Byqd;R3=v%nOI5 z*S!?ekoMd?V;a^}X}JTGyt8sp^3LF3M+0qJq5d;@b~*b0NM3E1ZTI)7<;0KwP>3*q zcyLO%GeJNz)eC8DtWJ|#=0OYRRYr&bp-B%5y`3=5DoQHhpdmY`dgkLBfEx|y(2xVK z{V?EOVAN+xs8m$ajDQq!KNu7~)<3EsXkR<`4SB))77qZ0^Re6d<;^5|9lKthtY}0y zpKc?COWl&o%yRzIHwDm_!|)CowWjk`z&nC-uwR)!+}!1TJNPd&eMch}jAu#9*W4n*Ig=q`yy4+rKg z4`n=4On)Qaz%zQb zn=3`XFd+6+tPzV~lSs~2ZL6JB?&#hBqW2}}C&V=(b@!2Xzq0J)448xbWKE0y{D z?nH*S^JU{E`L#`tXae80x+LAU<4#fF>K`5kfT(#{OD_5068Ir^*31#bw4ocp_zM&a zbW>|7G0xA~d@l_hNW@u3^Jh(s=r!EKB_I9@uJ2p4`+mO>Xin)O9@D_=BOYCUzzx2r z{KmLNyI3w_w$KB_KQ?WhC}lmC5K~XoTz?&evueS-Z;|cv^V;0bj@V3wsLd?qrOu@d1wjNN_Ds-Nr84P zUKh!I{o0G8d}?=oZPWG2(Jv${`G=@`rpB!*WBO&Bz~|EmayKXk0gupoWv340^Pz0Q zfuf?wBNbtxH@G##*o#W~F8V9yJDPiUA&*Tz7(1hZFE712Nxi!NU8{TtJ zFRQ{bBLB#r18kYWX)#;R)vND?o$s7Qc(!UIoz41Sm-8aDDotIW=#8xH7r0Oif)6RV zX2U6pYUHN(AxcdSJpI(LU%3u0Wajn0K@ASZwGfJ%WQXCSn+F9-qWG0ifMuzl{(366 zmzX1J^K)g&*W9X^l9Ydu;jF|r*&KaTHX;G7LT~FSkB}qgmsOP0Z9p3oD+`n>6)wbc z?dw*tdnDC01xbbzqf{QlXDymmp?4Ei=)FiVzx`;jDE-Yj9P{P#2apezUtisk%~3DX~**S!YeT*Q|$~>{&zi zT#2vR-ioi5ZcEbzA@~uoJTy6Br89eMz2uezk@Od4^E=QIKx$mfEj=ryU3u-jXk4&2 zZHHw;-rhpcKjh(OAovw436B$fzu_B9@TqX++Ug1-DUYqdexbiRFVC5hg%*}W*SI+K z>Z^&y{OH>E{73K$8ujfuuQNz+(EkVy$|-{u{#$V0AHf%Y1XmNBy1KDGYMt74dqWFr zkZ3bJB$JHUR*;M-`~%pduO>M-_MgBi?Jj09xKqPm*e^G?e(J@Yn>@nUFA7W#c}F6? zT>%JwrNhM_qPf^|0xLH&!T$h`9z^g36{ERFh_*Lul%@hTZfTSscQexV>IYfGRecmGk*oMg34ZYPWOi0j z6QWe5M-yIjeeC{JT=O>36R=3mYlkCJa)`hU!Oi zz%@DPrdR-naqOGOWpUC9;>VZ@1!x{af%NlAz|AiXS?;{kqv4D zKE@qAhQFJ?aar-sPD_b~$FM>4&sx7^j3XJ(CiZ^=I4b`EIEnZRz~SCKXb)|G=PWTK@?_ z=eV<3`40u3f@cSboFM|XJrHe1!Z0oQaJk|79QV#c5FH5D zsnh6dm@%^3C z^XQ{rRW2fxoH)0l{nD_=e9zWfU3oa8yUPY`J2pldguI#&D~wn|dRf<|7;qKAqEsF) z@?gA56ia@#TV!4Qi1Ipx)IUk=J1~)|Vd5T!#7lLw5B}9`m-j}ATqH`V+-ZXO4yP2% zeDM;70YO!F#q)&SsVZV%)e_?Xz0?K`-WgX|!zrUis=pqS;<;P2xtxIa9Uh5sDV~kJ z6ap3#52v>uN{WiOm>u;Rg25OFprV#is4P&J)Z>X{?NEnxWYuI&QMb33Yt^q#jpj5q z-ZkaZg^Z4$qKOP;ajH3Uu3zyW_UOK-!eB_WG#?r+7SMtL0^}+up|q$$^JVf_zDlEN zM6%W7cu)lJv6H!VXi}*%N=Fw~XT`&oiSZ5}&*ELe#2n)nXUV$0u>tea#5n%Pk9BNW zm4U zjyg6ot(4QJl(YbST80T%w`n9klOn^$&t%@U<4nsVwXkZh5oFWn6}S1$`Z;gyDZ*nQW7W{;nuCnZ7BoH*xtGHum9}OnU6|#=1vk7 z2sJob>QI%K)<4i5X{QbefsWUeKo1|z6~8^Q%@`tm!k*ONdh6q2L;T)PGE2}jVUP6< zzMKHBWX37PorOB?2Ws38A8EZHcqmLbYBYto=2A;<@Dhpudy&43=K^C|zY15e(1hxA zt5PsPnXF14u1a1gR|FI`96g!_X(_3HuMJud^qn?FrTzl71{@>cd};{Lq*SW%^MnZ* zd)s#tj{XLco@1+{0-!<`h38LR2W)UFjqAum(xA0fq%IXv5ydUte(L7NnAWrtgZ9Tk z66At3-L%e9$tx^T!>8{hphwp@hSm7eEvvMZ+rON{Oc+7!-XtEnj%=PQmWN6q3LS)y zE&|PRL7kc91QJ27f#(TsDGYtBbsB;|6)p5r1$^@$I9H4%R}3+W;0XpB!p0VLxg_bM z_UIA{wiCBTcSLY5gebH@ZV-07>yG}yiC$#m4@(l(1&2?Gel1%J{ z9_zz$2-0}^&-o?612UHKj5rB%AR1g;lA`@C1I8XnUk8k>SZc=Z0fgiXO?3}h*hRtN z{FwJV6x-ARP4=p{`tfz?muM2|;A8C{?_gb6KYGD-qs8(>ZY@TS4Nfx1;0e&UN-+sa z?QpG8i6%jhrx|;-Ib9!>cXpc)G+TEp1xdmNM7+GfFiCOvhD!m;y?(=GY9-J+s$`)` zJuX``*0whpJRO=^DJEU%8ICn7-9y2nnGjAlP>D43DMy#0@FVEEaf<=+!$r-4cri%S zNOxP8j|4Nzh?Tk^Ahmx0VgCX8^e-U0KS1;TlU;r?d2g1BaCA`{W#*9rwzzSBAqZ4} zo-K|nwwQFFbw6@7+7HYJpV!+4CcI)5(x>b_y8T*o5yi2E?%8#NK7v-Gfj? z#k@g!b;5}peG6z8zer91#%Qd}Xvmr0cRG;|ac%6*BPihyZ~ku{p54#BZ5vfwr}tY( z?_3Xu_HBO40@aH-TmIKTqdfr4*8169T{mNx^?OJE#t1nn{=U;61m}=qY@BiLx;O}m|w>IHh*z?HT76|n7 z_Y^YfENj2>C@6X7eK(nKP8`Vz$p~vnJ@E2x?Q&l`aCREVxIMSJ^*ZBTSxiV&K9Zs* z;km9gG78IH%?(={TH5!oM!s5q+q;xznHk})v3KOz#*1%^m|*d+Cj(sj(CA+HCZDF; z9{FjVuJr)80X0jDTGmyst#3|N47xB9t9;R_ce8HR+}Ar+m+1<*sbN6Bm(ERFT#}qb zemSofX370m|M#U0gL(l$d*c3slA*P0zf@vg!nL=0K_Y%)J`#a<*BAcH%KMIvnk^jZQFFxsXy@l5cU>Oaco<+FmAzvySuvu3GVI$clThy-QC^Y z-QC>@?(PyG$ZK-Wz3-m;fA9N852^=UyXTs7?yBmwclGX-7`3$fj*WltUNR6gvFhgK zku3@Nib;XnAhM0q2LbAYz3&t7gT_tabj# zOA~ge-QO#4*^i#ie)yeP>)io>myWgoFJS;)Vt%;ib63N8>wMZ4gJtcie3%;hd2c0F zlb-pI(x!v9I&gTtbAL>?56)hAlKOP@U^n%BPS7{)t$Nd1;X%`2%nr&@n7&FjY~5Vd zCPJUXQ(ApveY2@-NW(oZ_O)WLmwqZNXn*bi@KwQ%-%d|M+NCjB?BDStaf&^=q22b2 z77mMEzx4*;yV5+9g7z5g6)jln*yQZxG}G9^RqBAOV|{v8whB zq*xON4>Q#l9v@-L6H=v5g6ok!F{Zl90wu086g)>Xj|I!!%Aw+N#)M#NrtvmjtmPR+!_y-z;Se@J_ z3=*{(@bVGb^>>Z8&Yv03O^?l&Ozlk%XzQ`?Ncv3gzZ+MU;tYenwm#Z*=v00mda(6FiJK{i zvJ^L^59K^^Trb*L)Os)oxmsjP3R;bL4TPf{$r^a#Q5|G4xY659vR@M@NT8S2yANv{ zty?d`_S4qYXh|awyrL3d2jx$|4uW&Qj%dJ+YLRAe+kZpgEJ8H_y{2M!k?wpn`q#TZ z8o5kZ0pk=Ff1uQV!2dz{&j$aA@;|e{U~K}oP0sxZ!XY(d4U7X})&vCa=MMm5{Rh{- zDg6XFp+&L*G=l~-v-rDNw~h6uEe7F+51e%n4%pcbod0a_ADXL0>cQtVi8cVukO9p; zq`_O*mx({aKiu9#{tnnD+}9*~sS=NC2lDio_oC&aZ5q1=9Xh2&QJI>e(oNifyVI?E zvLE^-?yc#I!{}ZXHB~mTT~N$t0~>C!sr!ETauKw@pE26|>vK4^IG@Xy=Y}(f^YaB) zi^uz+#q5d218c?5F8imV?_&t)Z;vidQ0MmU$FFM{ov1t+Z5zLj=_(-`+YCc9EAe1= zTKJrHPvP*w=QmgOwPn6A7;aA7V>gz)Mui!czqQbHY~SBR{Wu;uTzDRP+FQAMF{_!- zvd0a+4Nz>k;7FhJKuUSJH)`>C&%u{ieaVe7tcBx+1H&1&|?#-8`&-1qn- z)(hMF1FI}gp{KdasU+@}wXYY%qiahQn@K-bTOVZynktS*W^FVb0OQxyRJ=*A)znCX zizwHNYy8>Qtrwa~zR)5_F#Mm~XQ-E#=t0suZXD|vbDWrm;fB0f87MM_yqOt>?x*vD zFuKmAJ!ht1b;Mu?FV7}G!?IbB4!$1CgwgKTh8X@v1oS@jI`C#$XtUO=`QIXMnF8U*=&V)DJq1us$oi}t2 z=gb9X4rHMUqO=OB*mKi|iwVDY&BCIL08iD=r5ve$x6^O=5;3?#;JFHF=f`Y>D%5+c z#H|o`KUAg?u}dyePh2OlizTn`LO`IvwvdP^#`ITL4Y>Uh5enJg@cSW8a*M4P7Q(NB zAe94xOz@~aDT2L?DROa)(AEa^DHTm%GaH;LoQn_p6*Z0Ynl2n1$KRc)`_t-JY?26cp@nkdxsO8 zhbk)-nNzou=ndd6WS>s->Sa0QI>zvuIOUj6tGjn@t{Nq6or00jMH$d<44o$t4uem> z>9NzCHI5gQ+PmZ0+f=Y-SWH?QIzcHSGRu51#<3sg_%bN<8%aRGzxf`@ZUkuugm3{$ z-f=9lN|6!r-bKQX&)Kwj5fj^Z^Hy;+TgPvRXRb}IuJ3XV=eFqk=$k}Ge%o$hW@o$u z#-u^l?c~yTS9coEEqE8qUTBol`5ISEo-CJ$Yilj|!9Kg%FB^_p&q6Zmi!R5_?L?mT zF-_<+8)xZBSsVqQ4u)qMb+v)Dd25bTMt68BQY043<8Z-|+;KbiB8-U+>{a^AJ*?Y2 z1qyGIk!|Yb#P#pTT`o_T6H>w^zFnK@FzW(;=b-W_+D+)4yRNUW<6KtqO|&jBkn#hp z1FKthg5W#br(KAw#1u)fr8Fem*EzN(+;TIdUN|8jFHF^Wz8=f27Ff7pO6i1Qi}J!l zo@H*M{Ng^YI<+ad!s%$;!Hdy*`_rhC-lR^C1NzCSHmA=mD#Q54=ob?w*;!h-q@3N0 zT*4gIO$4V5X@qL5Z7IH932lrn-uhwc z-E#6h7uxm;@K6EV%C_Tbtz7JrxTBj66?T?8m-3k7$E#)CuEe@{d;44=@uQwpBeIL@ z{nny^X9tbp`>XGuQl#ezu@whOLiyWt4!C@o@Xf83XZ4Flq!x!cV?v1&g>9A`$@PmS zJ*&63wfgoO8FUO~zpR}i_lBdAHj_T#PB@w@tbNheTSKWlmM_}Jt4RG>gvV+XxO7*% zsuA_(;bK&fD=3SuwvdsR*j8sgieF{wIm)fLnUVN8BNgvn^J1oy((7bqu&7-lDpK=w z#&!12{8a@RoYV1mAGxlze$>fu_CC;MuBEN?;PnY>*SJ%zh%JB8n7hIJM2BmkeuRF$ z1afqfzv|84x_Ui6Y=i#z7#Vu!MiJLnURvh@9shfa6AP#9o83>JW9Ck4=aELfNlV29 zRrsJ4TZj9CUCZIt8-*cUm-Zx?T0w2slG6wm{4q%vMNiF^hYT?#_6gF5#&5XbHG=i$ zZX{I*-?Tt}R6VIe*}Ez+3H)gG=K!+H5RG+PgWHnEgMHAjFTWi+yV<3DyHEa28YpbE{KD*DuPR`=FgL^%FOs@Cr_}0Az@5#MI`yM2Y zbL<(hKXr+T_u!3zs4kd*OXU6tBPP#a9>I|%b(i0E?e*F2*T~TNC#lH}c?Rh8Pfg%PP86gS{*5hF++8av!_JMVe!>Pu-c-o16N{vVi zniD4~O1rMTEQUaLt98~gQmR4dz*H-@XNp&i(R&gd5FCgKt=a@RYf7uFx|TgORD}*? z&Wcbd4xu2$ty;!Tf&m(TYfdLULrS10ZMlOV0N+sp%mXBItD;PkO&i(ds1!M9KHtsH zJswkX8$~lyM!ia{3kF0AI>+wnjFzQr$Bw{>ozzGS`Pj$#V`re8W-toI{cb*URqu#K zD{G&wDC$Eqd>+xYcWbMSJSiCk6RubNbtA2g-D@Se@2*hh^P?h7G2rY}+40B4?EMqn zie=X46P=Bm+aA-c1V_`ixRa({PcfLQ)QwJBW1;2spDk2Ra!Q_bRVL}Ptum;tVoXL^ zP@;oYHio0EYOD!ke20f_isPQ+X!%sZi;{im_NTb1O@KRQ9`7h@7im+pr1s`)C^8w8m^^#?4%J3 z@RDgNS@}g9HBy&7crLh|a=i1Av69O>O3|i1hn#4s*O705?S^4?N ziAFsx7JA_NC&Ca>{=8e4u^l{ImnD6LhlbVn-(Y|*6T%Nm#rCprhUq<>t#~*TGFXJ( z7V<;eh;O&;uyFHe!lxqy96TVf>n^}7rB!_IaO>o(f|~|!kKf?eBd6`!Yl@YG@1}A- zzuuyEJdU0!-5{x7j=s1r3Vv*0^?YDK4i4S)b@_tHqQ_ zM{~99+Omw+;&F3Wv~Vl1CI0>`8W$h_U`5^SjDoPuPH!lodsPq7bJ_B}m*5B=40UsV zbw#|V@|WI4WRgn4?nNLoaY|Lk?FFn!wz}IpDwJVgfsdphjJj36!WleGUV^QKcTXcD z)KcM6IhSJ}M<`5r>+r(Xni>x**oCy2=jT9o#h8P9?2CzchaXGS?yGrS7jTD~46|(v zmzr$0Hd`BVf-2YzC~cr)#iVQ4y46;&y&cD_Rgr*S^wUvSPgFgO>g}j;#DH2$o0al| z{Z&Y`t;@caR>SAC#_7&(>wdN&=0%;jRwX=^<+i0@YJ>Uv}D>8u^@~8 zT3~HWz}xBb8jyc$c6q#UZF7}u%y4H5+FJ8%PPzs8S!>3S&@`3F4HuQx6t#4GQC30f zwj{7lowL}0XdOssEn+}9=<`E*ncUe02uc%(@Z9a%uw14pPf8U|hsIrfcO-v+Jd?1b z)QB99Nw1IGVwRkGi#Ds{v$pzY?G%qhQ(Vq$>`5l+j-y`gx>@c%90o`D`tt%{3|dgZ z11y%F!5~bQPmsxGOyLtxWlev?YKCNCysdjnZJ z>r?&`mx2a+I!l_{OhA)yK~o^7?h%gZswOCd21H*S^#E$Z7rOlnW zsc4~{T15oc(d`P>;|kQP#Hk7xn+j+fY2KiwNZ56_L!csU$L$LB;|e`^3@*r@4~szI zi9R_e70QL8Q*IV0Ei>B{M)Vdu4lR#&%p~-!XY+zTom?!W-7ElWrxXWzH7$BI<7CAv ziML()C?`tLzqwebxLG8F22T1kcCZ5F8R-_gStP7%)NNo1mwtD#SQ*2T?WemYs>L+h zFe<{U9q!Y#xNB?R*|>is9?nhCQDTqibiS?qD4U7Chu%-N5pmVPa6~ zXc*nQSGS2Ea`@8TaAp*7n1G(;8E9CMl;I{8ieOVAZd2jir2F{^-nsd6b2|~9X7M9ZH{Bm`{AR)<_qv|5v=yO~*ry$o`;@mYp7QNEp z^xTULR%(!>S*B!51pDbLot68qYK_-a_>JGclLoxlR`HFY5oZUJpueS`tAw46968c_ zd5_l~e%bG{&f>%=$5S03G+WasZo@b4A76?neXr_|)9aUWmKP4E8Jrc@}9sSjL@3xwTG zw%J>d;E{PEbLokt&ARuTpw)U9l|lbWA|V~z9JzIkRUTdKg!%R+%84y^5{~<1m3v}0}#~w zR|l+p1{Lr2iEbc%YrbKpASf!yP-8(b6jEU%qG9d8*xbN)6r-o(R#+%HJc`g%%|}F{ z>TjQ`i%P$l1$U>{I%|LrI+xNB2~F>yh%9K2>-s|>5&_{>+tD5?1p{?Y!@@G&vxEw= z8=^ao;GfF`|7S=<;D3cYT{Z!PbUOPJlItOGzQ*M5km(SJMEt?s@Y3Cx3Zn&tAP(k~ z7N{7jl=l&c0%3~D^g_B*D1)%pdJx1yy4S>h@XKw9j#NTGx~33;*={GI@*DuQrA5{k zrr*DU@n@r@&QS!_fb3ZXLIK(T7O3PF+PV&es(t?Q6>QKS>M^WiY}__x(deK_>^E|q zX1;3)qE9n$&w$??&{r@hq~#oF+bN87YL)X;Wh^2@<{XEWSt^E`Dk~@?M?;v~0I0K+ z-sB$I4-aTO4X1(KmttiCpnzZ}x)Bv+`#92t;=(G*-A?u+oymoOz|3>pa?-e3xa7gq)kbht3<(g`U+7o`YaY8hd|fU$B9T~yS8Y6^+E{M z#b0Cc2Llm;aI*kkVCK0GlzyulwLpSOnQpN(L&bPnV)KXMVhZ52KvH84VD!^W?twy5 zdl}9KeW)bOfI$MnNcABs&g7b*nIt#tN*x6p4gc9S3mRZRE%yXVxI|a3f?&K~!N>xk zcCP1tNlfpfzkpq1(#^Jxzo41v=sSn8(4!I|vJ*7B*kb)R9|=J)eKJQnO$~67w+1*u z-$*IFPDGzCiWtnz0hr;4J_Av(T)LMUvn7bY-Z_{U`X^>MBHA3yA06iTKX;f6F45!A zjotmj4Pf3kdF=&|6>w-fd~ZFvAo8IGgRD(}Ma0Q|^3;ufquw#^dLdTyd~Hqyx9ic1 z4u%-Tj)Q?4O^XZpJgOP@`+t+m$F{P5VX4(wcmO0Aa`T+ zm1OoINE?o+Q{q-`5@01PA0;00+db98uAaB=*>~>8WJ3ngQ_vDq4$!d-j#fPwuv{#w zHswvsubw&EJ;x_D#-&|eE8Jh@(_PACMtqaLz*KFvYx^%{JycU4+?#xHc6l9idG+DW zl9f1-Y)-(ApD(O3lrbJtWumCrre2A=c{ZZ$Jq=pg3|^w=BgN7&)KD`{)iDjvv6&-) z5>Y**klfUADuk%Y>O1{Q*wSX_(k0*wrc%GE72Up1TLLhh!+Yp&e=C=SuiC_@^1_le z76_p^SGJZ@Nb8K{Org~o$?gxVGL#)XO=^Iu!q@g9*6w3aA*QciwciU)5ZgWD+TX4Xd7-{MK(Lms zW#_Z~Aazi{zc0avf6A8~$XxsW8jH4l55Vg`P0B)!pl70`VVhn^Go{ZHCG|I}mSg(*qg2zPo)qH%P8Yjm9_wvlwd zv%U9;^Qo^Ej#5_D{JX-W^OiubAIUvI%eA{8ueu}!aPKFeQuPXX&N^0Vv^|TXltmS(Zv_VfK?;tJaK`PaP{5zCSy0eihgsa=f6`eo}Q)5f6^-K zGLvp(cxzc4oA1d6#xSkd-gbCx;801Bs{fG*ghG+cFOB=T)b?0TrP*IAu>;l~bB}4* z=v8Zb07ExQ0{SaM9eN?+I6?AC%Zn3`LPoUhT_lSTvqL{=u<<<*XiA_d1PTUes$Hjs zh&lmUuKEL0urcBULF&Cj0J?$qm(qUdnQ`spuPlD1#)mgcz+z5cduO<35huoxk_b{4 zKw%BBaxvv}<4p%ubyjl9t6*nn+%biiKQNwKdczpI@lb06OpWQK2vY@E>KvXAY~gmB>kOI*8$B#&PTbImVZ6{zAf3 zU~rKT<@) ztf7oDB}H36fsFaLh6eYE8eT2u6?&;gR(BS)MFwccgoY;OPtIp=118D__-~a`Nz`=f zt1fjLm$RHT?rIgD(rtIIuVXuWY3B%ahIZmMW+@EsE7lFenc*@+v$wLx0pmKnXAdcT zJtuYxp;^Un#{Jl|f_e(}HGwtkxIyJ6wpbf}sO~GJ@=7Q=H>-kz7o7b3upr|28U$so z&sAGZxcHRrXG;ri?{6Cs6W@gzzC?p$?Nfn!?KQ+ZZ3)c-SkbL# z#}c0eoummV+vk9a3FpGI(UL^K3D{rc$oeSI4uug^yAfGCA}U|Twd_;N0VTaKs;b;Z zZ$P2^##hvewb~s-Iqk^@0apQ6Y+x*kDx$gV3zIPs1FU6gZ4eITqCW3%|rp;+tB7B{FXml;nW-X|+tT_Gt~PCuynifcN(;@#E3sKUCaM zG2#BD!WG!xSlcqVPh9Ec?dCbOTirI$%9d8c*((yL3R?9^6zmRasRZsUCxPO*Q zRM7tM$BNI%A67gl{0rit7+}Tc|HXz61x<14SMn>8|QVh75xrd*j=JT}1Q<}!M( zu3MOu5`LEQhTZ*$23Aekj;{@>c zg-k2>h|sj;pvKppB1bGo3*`HV<$$ zT5u4|$Ex++-oP47ngp{VT8Q09hdJO1)~b)iT9Awds(ql=h|thhq1M-)>VKe?`>6em zI)IgsfAR;lCNQRFHkIct1IOHPH_TMe`(Fkiu!V~H^z-jAk5 zBn2{j=>TgUW{$RjHMB zk%jNyT;)xMa?0yKYasOD#3S(SDh92uo!9mr}8IQU{u*hFdSRzAy zJ<^2PaA`QgDsd`MzAa?xI*FA-q^&YNS{cTwF9-n$9)YHNZ!kZBW}zg(pkJB<&()6= zD4{F8FlrsfI)MP%j|C6aK(c5%&*ns7k@gi}nxKNJa{4KTLW6RmRvraSKbDMtVkoQr zK6yoU!Z&n_{y zi7EohHx}z}X~*fg+iit6=*>Qt2(6yiDilHZbQZhfBJA;E99UtO7t0I(YcCac z)+;^EVlA_2`VEw_n!hqNTa-;q{WD5EgF7ZPEzU=>SFeP^$*9CcE(iz6z@i07-4*Vl zyK@Ny;v1ksi@P#Ei|Iq~8Is8BMf#9oiGMcPC4he-Plgkc-z6?l95@LzbS)K=kAYQU zbjOs&t#ZK$m$b*{S_sQl`UZ>Yppek11UnjUE?+|~j0#NyqadsvmL2+BChkpTd?hG? zih6)ioExLW7;dtgGWDg$GCTC+`bDL(Bsiid9O_1q9lA0mR;<4@c^DTvE@^#FL?MWp zFg_wDOzMZMBtMdgqD)dvA%<#1>q~VqWdv86+=GCrtdwk!9V((Q;EEAg$N3Aa&W8$c zC2%TL%ZT_Qi%MBr<40vopGV1o{*kG5ohj4%Du8P#jf*GbD>70jDvAyK6Ez?DpQr@z zfu#8J)nv(VN`G6RRSmEp<`de71ru$daZdzy%VAr^ZbBvuBeA;b%8ObfgNP444ZZ7dLVNP>#zL{V&QyApfMykvwH=sXdUY%O)or5k(@4 z%E@bz^B8J0%f&1dsc*nZCyJk*ibh`lVl`H+`nE_~Oy#w!(5_VPDu6t?z=L4|X@4$8 zYi=JdzXv|Ehi_s7S9G!`5b=e5IbbJ$RbG?d8qJzSUZp!FH%t$08cS?#O(*}VIRG6I zg?-SX@@^hvzx%igA)hP|CD$vo6a( z>jLD@BK-SqL*a}D)x(oQmnv#CW#wTPq%ArXy}3F znwdYr^7kGKsc3vAO?N>KkRM*xiMA!!)(YIP9l}9|j|PD*y4uk*V$pfK!cR>ZVkjBdYGDOx>X5F{zGXX z3_vM~5RZpL4hp%43LJ&SZ*1P$Sr0Rum0W>fI*Wy+MZO+f;=#{*ZhP7Ad++$B~@nm-jLqq zsG_x3aDZ8pMn`bp#|gKAD5GuN;4^K}02MB#AZem)&q{2>(>?_yg^x*cym(|0pv&C; z6_%((P(23aPgt&$-IB`$8Y)j8MzMGWRMT&z_NDy4nF18RQ5=@=gkr41P_^qVFSFtCk3~lY&gsb!D;_B1!^N9$C`b1kk>qF)@D^BE!P3@ zJaGBE^?mY`B54}4hOpG#n3S20N^v)IE)_K=A~jpsI_5>Nk_rdrM8rcYS#>Vz7 zHJF*%MatEF$5J4!?Ot8qn*w*8V@fe_LuIS0lVG;8&pEL~mQhb$ha+HLyvhCU@QdoK zvf&Ywup`YojA4sbei|oz_1?aVJc=fsw)GUfd#)uSf)C~(*zpb)Y$Afs!5$1VdB?eNGA#@p(BET7HYES^@ zrfof#7icM%H<__(eitE<|7BaDAM+ZrA0N>xo5lCh5BNHW0)9REl@PbAm}duJ%Oseu zUaIoIZ>HPe_a;1FROxImg9(yXcY1@#B+;AqqaPfH@C)!Y)@iK{gKWk9U5wo-TM4#0ZKr?bRy&GWa#(5%dvr2Z1)O3~(DnBGk+Eg{M@4 zxHla@-(fM6^G`gsEtC&0q=qPV5VBEz65{mtFyPn%Jo^tR#6FLGP=7hb|B_R74N0Cl z@D%TI7{K+e4EC2}7y^~;x@=i>d~~?ix5ZQuP!4FO;;oB(^P}H+B#T4FGcFU|td759(rNUDT}EcM!T+cMy!n=>dSv%brhW4Xbs2 z@W(4{eP;U{eJ;_Q>oVztvWa`9s*#SEXl>pu>1jrOeO>|TjXG~NQ*edG3C*OjlUzCt zDX^^PWQDPJZkEL@G2q>%1Wf+KWDqzOxOJh7Q+U6x>Rq&Eqcsw*jE3*3aD}Z*>kwdo zfl)AiDtt1B+h%yMm(S++tr{q( zMG_P`X(iJ~$uSjIrf9`y4sc4b6}j?a!0|NBof!swmSIje=9u`g9P(r68mGxn*n4h` zzR2~YrStUK4_LVe+K&^Q^a{X(`yzuXBjXzt|*88H=UJ`^<~`1 z1E0vx~~PH3+mVmhWZ++bpZh(V;R9;yJh2MJd_CoF7u) zyynK`!QuZ6l+k0l6D6qv#xe0~pSr%?p9b-w3lRCOs0EG&fHuqDYu0E&fSPd-dy>vB z!z^GV!!co-n&y=1Dv{I;AO>61LeG8ecoqR^L=BRD;K?}=b2fB zoMYk}mKevx18jcroQE1DUk9!f=_krn6J8z1@0}9s29t%GY?B6bSBG=jc8bx%N;)av zGS{*50rl!dG8B6g`ci8iw?-8Xj*JeoicQ)*&whi!eAcg!9w%A`jKxy(m1s1s)KyVywB!wfp{tRxV?C1LW!g4Wm}DZ0s4O zQ8bb+l<*aLf+i4~s+-$WkeGQX%w|&OxG?RE^|;*=^AQ87U(H^AK5X;JXz%|PLLi}Y zhw`9EecSaQfGP0okfNmj^|EhocSFbUUg2T&qJknEb26$gZ0BFwjiD6V8}LO@9Ok~$ zzC!Vcgy>w7f|O`Nkoq`91$j_rT!tK?!QVzjkk&^-KTBh0yyGc3V+P$V#0;Kh6J8x- zwwKq7cP&?c7UCc~WmupxLv~UFDA;;|BzgQ0X^MFzFKrxfkrr8t0^9G0-OtZ&*GjSf zDsKcoD!$#DNl8vrF-AfD5t1AblJhvp9$7Y*fvU{Jr49Nkr;k0zz7VX9F%|i44fFTq zOE_i=LIKW}bT(y9N?0?!4o-Y)c}_D>2RWHNf~C=iSqOedYVsM1WUw|U8=~q;3KwPrZrf6d!x}Fo^H3%Sbf7@L>RKB zAoUp2L^=Cv1&E<`bTMiRa2AQT&taH1Dk)0J)C<$);+OpG6`H3x_VeX5h()np)^6w$ zW{7ppnUFZOG0}hoUB53yb|Sk2Wf<8vohk zY-;cf3bPIhCq8b>OfezuZ%%B?ZuQ=r6y)~N7UX%NpMYjEXZjHOf-{&S2C6OPWQ_A{ zQEI^H7KsHo83j2hDJwMql;+g}{-Pu#goCImBjkvQxi6Ie0~)Y#r67M*klCSlAYxM; z=?VcHC2E}8+VN*OjdC)rx#?hU!}!(EU+Rzv{>cI@Ar9cozRWf;DRXmnt-=LX80h>CwbzKIA( zu_Aul!iMi_1+Brdwm5tbpY?jc3EaRz{7hzQviJ7uEgFaUv8 zavcMuX83I<-ZqAAw3FJUJSM5$kS4PP{73*$?GGTUJN8)E9NA6c)zFbd=F_FOh$@-His*42#%2^&z;Tz6c%&3 zhWrT%8$6uT4PFugEaQAGf($2RpEN=m+(Lo*w@~Ps#QyqZZg#*J?M!}swu7+5U1M~w z`AEAq>3gEH56!}I|6*@6E|2-L{4(F{>>`$iC|tsN30w5*H9vf9qo~+MBs3SAzd?;n zaaSyAGl;qLR994vEb{7u3_*xug&DYPwLfjgh zpTs>ZGQE2wv0x*Pb}-QNe(E0XFd>z(#|t+oOcAkXCx#I0?Atee;%QkX9nEmDB)kEJ zVSDDOP94Wwy^2l0@f!FzQ{h}JY6#k=<6%{-xn9;UOPJ8`!?LJ}1 zV2s&neL<|h3B_vgcXBYM&Sme|lo8B|-!X6Yx>qKW<$o_Rs?cz(3Nb(4Rqo}upedIUb7XIqb;4{UcUpZ`sHm9>oSJL7wcOWLGORGxCn;qU&a<3@pweQ+~jk1 zG~xPQ9)K!eYUEJ^eJCixu8GaX9HxWXSvDbB6T(GfUR^wpilES{FW<&}S35iwc~_{- zc5YOYG|+K2J4WZOzGD;;XJz-oT6t!YF6iZW(_kodk@H+O17~hEc2oH#Px!_8_W&)L$95l~#VC0jwIpRe6txOuL`|pU#zVuqR(;TA2 z$JeXD=9Cbx{hbZKJcZXSDE;%{elBg8ykD5qwxnUf10c0T8&q?24ay5D62Th~Kn53o zglQ7E;8^Kan9;Vw0$cZf?lN841pepp$|H?^MIb;4sz$)yM?vgAXZv>}eZ~Jc;UlJd z%=;K%fu`L%d-q}$cMZcCzs53Q;I_pJG$PpIkTNy^7DG)u|6*2W!)UuBBRnQ7+3>=e zpxYA9`B-ny1fjB%eKv21e;KrHFh~K#4HbcwdIl4JzM8LH3jPfLH8`T5NWX-sR{RhV z@KebnnBmztxXWrdGuTM_C*;=td>QL9xpqXw+GePgFO?K{vk})#6daKfz09L^z}Snf z7XqS4v=gH@0X9$GqOcjw-JhN8;NTz&2+=Iw4p*&i!2jvkZ_aE7 z13(4k-!MQx$p3Q87*H@=Nl)MMPZ{O)#2)LP3^;?AKSC*z(j_e88c>j^1_SHI;IZ9- zKI2rQt;U@5x6J;YEM%;FremI2W;2iFepK+XjLLH zjBT!t%>)vrNZ&HXh=oxrx8PN!VLcjQ{&*%$WBG$2hJ6d{qjL;KEU_G+VhdyDr%(lI z2X3(AVBy9A--9$HbYujgoz=l%YaKO}$;nhUPUFHi&p`+xi2|i?M)XkrJXzbl)$Bck zw$qg!3`yZTH#RC$LSvTH3X*hFc|?O!ziWv!UGbzcnxoLj@YG`9f~z*SY2XtDD&_nj7os=7flXBoIUF=8hRtJrDWjBwDp=G@wX6c3MRs%7aOvpvkknz^u3p|{e1p3NFCMCgm&h|zO0=!N5-23j(T zfPM!<{L;kO#*s^ArYvw;5D`2(oI!3{O=Fs2Ej|rzI@|^GQ~%9@@x7tBOJ}?*i`QBT zHsodMh74Ieqc!Ie9D-RvfjuTgtTN!NC-C-IgyQE{leddCJFgnpvta{oujq|-}M zC)sI{n{=f}>5uFGDj*#%K-4@4s9oPi1q6ipuS3$&)X2(+{?C^2PlYoLX`59xjLu)G zh^>3`&#O+Mt-@!^=Zl4K$W4M#^+KAK6!HYeB%N^QcHQ23>(zZQXN`T;75tyhW?xgS zaU0=}bTBAaLMi0!4+f-vl0psg3dVSE?S8#oo z_j?;y#M%ORh9{X9J#V1gu~@45)(lexh3*O^);v|!-M9~fq(zy~OdCYlB?P)R)`Db& zhjJ4WAqnpX8M{baVBWGuSd)G8D#N`cck2#~`YUJQQcmN^Yh1N3S` zUq+l5bt-}?hkL@4;^TNxyClYPP`=g3E3O*@e^4(7m^~r+PZiFWItfNmapD*hA(~vN z>H9vu3_1Zs3AKgeWfzQF<>&kRu{1NY(o`1kEA6VKbLH7K^6lxy0%7VWlzY#zS#j}b zkO3C(SjVvl`*pFngu+DGx{YH;tW&a7jljZ8**PlqQ*7nW(q9DUD5|AR@>Z=(`-CmLc`AvXSaZD?dTwF?o;(G{f}t$Ihou+yV;2dauGl=34#0;aAs>T(El~Wtu_uC+H;bu69An`RI_h3KnBcL-mSt^}+Qmk6i98mNf630G# zha*97I^TQ$vYrbmLLXso_*q=rtPy?9;ATeGV#bU-EV{M)QzGdEE22D@$e1WFIR{6C9HJM{aMpKA zy)=0lQ4pT)Y*4!zLP!^i@uRfmxX4VjQ9411x}(J((>eLJebV(+f`+YM6`G-mQqiru zL%g+XRHli=hpi~qz6v`RjW6O11;7?E5~1AT^t%#1(xsVGt;aUl2^d<%loSajce@8f zuSU<37{*;VeLDglaMRnA_T}AiXHq0sF3eTqEj_GuON(;PMa@8{7Ri-g!X_NQ0n`=F=UQe&K==bVZ z{?;-lN{6eUnR&MD{!I}kpDFjBuCm;hW+uf&wB-_ImxgXjp%-4aZR;~mQ<{#e*m_@` z2ja6=wQRh#QU{O6R`O;{dG^BSbA710%zws*tA*e&W59!m43Miex6#4oOQBLX^d(!= z_U92~Yi(rF{-Dw+zH2>tMM+GAM`ykJCCY`5qB$S3xG;JUkdu4+LvbfDzP*KNetwa> zK;-YkiI~qaUHf8zR$ROgXPu1YWVnEgANQAiRlmW^> z^0^VT!0AMuiz|5yRNd*V+t8Hs9s^U|i+Vf(8X2>K+940YFrkmE{t@V=~j zPxj4>?Wjmu?YDE>pL9jF>8lraR_tZC!=kL@22h&XG8kZ`9QCxL{*p#*pR_E0rL@l_ zE5)k-)h1Jd0)2hG;uHK`GRT=kzB6Shxu-03w#BHc#-_K;soJa8<~~XvTX+tHrDc`#qH+zt`6kI&HWNN#T?Jr zpe?rby>_DukoRac)E% zW$$t_bj`Y1JOucH2o3d$`3>{1UzbGYa)U>?bx(;zNEV#GHZ99D{E4W88v+UEVV{1q zizyludLn7dbo7sju|_``C36A8;Y&cX&p^qD?Hua!L<@#w_WN0>Nbn$(FfWKgMY*Zl zhnv8g^=}FgduIp=66NRWJ1!X?ur zEbd?n<9;q8ga7OHfd3XT;50x0GQASfRMA9K-Kp6HoKO}NooZwRWmk(4Z5~X;AH>AA z1n#IJ82WYC7Ng$xbLoI@n5Al>J6Qt@mMHy!8EMywmkKV19MUsgB?O1wc?E6eI%z;v zGfbMHz5l|>f9c{K-CyVc=phH_!uyA=zpBIjTiu`1un|)=fczX0Vyi=zu->%P$b=$C z?Ex8N<*O}WS@cw6aKYzRNwJO2Tt!e!rVZTpUk+AY2xZLzWKlE4g{2AJN49r%Y$qnm zUe*Z&jdu0aA`B2;0aNaYTr3^(^x-@Srzp>{8qPa9b_Bhv}*6+mH=7g6@-RSVDUaFqg%q z5Z_d!m8DABRQO((UP1oZp$%*7snNxUi)QTpaC&Bbak^u5yYVu2fnZ{Ocqw|tt4e1?n! zN~w%HCosLeik^I+FhuLYS zm5U?EWEB>xop0({vhoeIU3N$W^)k=r9swJbdm$AY1Htd`?V+b6ce;-}8;tHOwMCj1;gaER;e~&q=ovieY>;bbfAKBf6+Pd`)2S&$c5r2$`RzpY} z3m8j%F2BmR2od6jTOcxw>XWQtMuxQu$#a7V>hcV};!tKOWaqJn&t99HZyqu);Eyj? zez6`Mp~T(N2aPO zqEO@dNq)WjQ!FLik~@Muxc4q`N9`)UYR_uCWI~l1huD2;VAdIT%TP6Bi%~*xfH}Yt zQn4&M?}dpCX7^^+DP3;eK*g@TDwsUDWGnO&OhGHEMF3*e>Yj)lncNOInHnC8s@%-k z;G#;ke2<;tLJlLba<{3dc*^*x{q5JV9HC&z&~ZX$JR3@VCh94);9_4+Np=p-lf`&x zaCTDh^FUd)Hd*h@$-5M9cUBx|dP=VpKZ+6RDig3t@JQ28nE%t(nTJEQ#&LXXV;K!K zhD6ep5fNF!T-j3TN|dC?PNN}N!&sUoI}>ByMXHO;?(K5Qf~iaN6Y z`SrO3+Uau@h>vi)vEJ$a$Cnufmt0EW;>06X-VX)NiQAG+Hr^>VXFE}q{xZLXul`tn zi>4c5)log}p{&ZVKn|N|)|Ad_<=EF;?@=SI!iIJ(1(;js-jqV^&hL7%%hFuB07uWY ziquU>Erh%1WF(cNR6KG;msFpcD%e}@J&~-u3)u|&aDriYbr`!w0sevOrMNuJ%5M`n z$x(f%d8Ep?9iE!i}DWawM$_pxkZb^gG+;jj}coskQEbtNFC~1h(r(35KYYq;@X#aMd=waSaDk*5-YXg9_`1oi6q z#9U{-Rq0^F5Yd0$s>faO!003N64g21{dV9b~^Vi)NwJ0x-@2l zc2w0$FI@A*z4ED}+`Hk9aUn}f_R$TrX35Z%*Z-_+o*1CN?!0HRNmZk@aoaPxXrQ-C zi8K`Ja!{*NKW0#gTf*eRHqKb3ZT%RU00a^(4}nMlGZwIL_m^o3$h?5@>FavIXD`;z z6Ek<(+YezYVb~C^t9z;6BUN#D|cN}XGKmbQcoYl!lBhMK&&-_+qtCHv`B{x*x;9|W1It!o*Bc=LLR zwwM0d=Vo8;Q+IR}rkYI9Zj05bBZC$M*!}B{k0lhNaf- zEIys>L9u#?g}1luMiK~9A^BeFvTki`F`=W=%mX|AGQj`@ex&ojAR(U zkjZw#5%K5_7ha_dg1|n}UvP~t;vn|?Z$!KnwL*;fhM)ub62MZZi8#;8Muo&mQSu2p zJ((xb=92r;BN``DMKrS|QcX2T?^%YLDH1oSsh!d}Y;*f!a`0vOE|qwfQxy)PS#JkP z1rKm@FGc?5(9kI)i>STE!4LmC_tH=hQJc@6Fl4O&Z|`|U zTBXc<%GD4`pA01n2W3+sJl7Z+LmJK2K3lzWJbpKSpyeSQu*ox4c}n`g0yAyEg3J)> zSdgBddEs4N4=j9Da<<&~Bw9B5>A)=anU7{HYYRuGp$7kY{4Z0?6C^v4UY1|6r*C|w zT{&g)PClW@G-8N66#QD|l>DypGIY?zx7qx8Mf>P(t;lPT{3L5KP zX`&O8uxQ0Q3pe8!*HBk!5SY|sn;j?d8iVvFgQ4B-hs74QpajMI+Rx&tQS$r3J$>f> zcymlbxRfU zYp$MWt}mb?+f)0rC1$sZsJ8m6j)fMvT$2>mAco`0&YvgBW*)e(lu^)dyQ?w0f0ob^ewR^`_EUs*>d3#uWsKdikcXlEV@z>*wLTu6y-TwNuj;(AO4jYR_i@U zPBCOI|I3Wz7=4=UXmx%otBBCFDZXJe)yDP#4QcpN8glT z=;io~KUOhX0cS7Oy5Ht1Y2j5saBHIEv}0v#O1DFLn(N@bu<&=O!tc8R6=ohBEYC$? zRxHt07B(sk)RrNxjVE7>;tU!-E$geNfQf$ZH~t$u=$_bZ0(6_#jjKQX;cCUNv=~`i z@bF6TeJ+m+L4MEGJyUh^7AX^mP}_l;+vl|7`-TV3K_CtXfnug$IsCj z7!ZcCFkS^NWde0%*mpIs$MZY{5MN{bFQGkH7#|C>xd2?!3kW}(bKf^S&m?f>|96l3 zrGPJ$Xt4av@URpcko)jMAmZP(z#h+Y1vvA++||$TXLn66G2p2NT)}w{aN{{ZM|^P( z07URb;MspB_r=R>(F7Xr0Gg8B(0C|tFJI(epZrJ2PkVt_Dfw%XIt1cmD*zGOKw<%% z^3|{m3iI*&VpoFu0Q^D8?|M8>fyo9j=<||b4%jDM=WGi3&iTPa0n5S0%etI{`z8n3 zFkk}Mh*&46MSLS{uqD8HaMgHSPmlVh2iK6n2yp(rj;M?IX*Lc9fD_$y04erIz|YcN zFbkYJuCo&3eq?RTB*7GLskX2B7-AcvLu(5GU<7?0RhuEM L!0_0c_W9^PzRf}8 literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/ModelBasedRanker.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/ModelBasedRanker.scala deleted file mode 100644 index 372888a66..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/ModelBasedRanker.scala +++ /dev/null @@ -1,204 +0,0 @@ -package com.twitter.frigate.pushservice.rank - -import com.twitter.frigate.common.base.CandidateDetails -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.util.Future - -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.pushservice.params.MrQualityUprankingPartialTypeEnum -import com.twitter.frigate.common.base.TweetCandidate -import com.twitter.frigate.common.rec_types.RecTypes -import com.twitter.frigate.pushservice.params.PushConstants.OoncQualityCombinedScore - -object ModelBasedRanker { - - def rankBySpecifiedScore( - candidatesDetails: Seq[CandidateDetails[PushCandidate]], - scoreExtractor: PushCandidate => Future[Option[Double]] - ): Future[Seq[CandidateDetails[PushCandidate]]] = { - - val scoredCandidatesFutures = candidatesDetails.map { cand => - scoreExtractor(cand.candidate).map { scoreOp => (cand, scoreOp.getOrElse(0.0)) } - } - - Future.collect(scoredCandidatesFutures).map { scores => - val sorted = scores.sortBy { candidateDetails => -1 * candidateDetails._2 } - sorted.map(_._1) - } - } - - def populatePredictionScoreStats( - candidatesDetails: Seq[CandidateDetails[PushCandidate]], - scoreExtractor: PushCandidate => Future[Option[Double]], - predictionScoreStats: StatsReceiver - ): Unit = { - val scoreScaleFactorForStat = 10000 - val statName = "prediction_scores" - candidatesDetails.map { - case CandidateDetails(candidate, source) => - val crt = candidate.commonRecType - scoreExtractor(candidate).map { scoreOp => - val scaledScore = (scoreOp.getOrElse(0.0) * scoreScaleFactorForStat).toFloat - predictionScoreStats.scope("all_candidates").stat(statName).add(scaledScore) - predictionScoreStats.scope(crt.toString()).stat(statName).add(scaledScore) - } - } - } - - def populateMrWeightedOpenOrNtabClickScoreStats( - candidatesDetails: Seq[CandidateDetails[PushCandidate]], - predictionScoreStats: StatsReceiver - ): Unit = { - populatePredictionScoreStats( - candidatesDetails, - candidate => candidate.mrWeightedOpenOrNtabClickRankingProbability, - predictionScoreStats - ) - } - - def populateMrQualityUprankingScoreStats( - candidatesDetails: Seq[CandidateDetails[PushCandidate]], - predictionScoreStats: StatsReceiver - ): Unit = { - populatePredictionScoreStats( - candidatesDetails, - candidate => candidate.mrQualityUprankingProbability, - predictionScoreStats - ) - } - - def rankByMrWeightedOpenOrNtabClickScore( - candidatesDetails: Seq[CandidateDetails[PushCandidate]] - ): Future[Seq[CandidateDetails[PushCandidate]]] = { - - rankBySpecifiedScore( - candidatesDetails, - candidate => candidate.mrWeightedOpenOrNtabClickRankingProbability - ) - } - - def transformSigmoid( - score: Double, - weight: Double = 1.0, - bias: Double = 0.0 - ): Double = { - val base = -1.0 * (weight * score + bias) - val cappedBase = math.max(math.min(base, 100.0), -100.0) - 1.0 / (1.0 + math.exp(cappedBase)) - } - - def transformLinear( - score: Double, - bar: Double = 1.0 - ): Double = { - val positiveBar = math.abs(bar) - val cappedScore = math.max(math.min(score, positiveBar), -1.0 * positiveBar) - cappedScore / positiveBar - } - - def transformIdentity( - score: Double - ): Double = score - - def rankByQualityOoncCombinedScore( - candidatesDetails: Seq[CandidateDetails[PushCandidate]], - qualityScoreTransform: Double => Double, - qualityScoreBoost: Double = 1.0 - ): Future[Seq[CandidateDetails[PushCandidate]]] = { - - rankBySpecifiedScore( - candidatesDetails, - candidate => { - val ooncScoreFutOpt: Future[Option[Double]] = - candidate.mrWeightedOpenOrNtabClickRankingProbability - val qualityScoreFutOpt: Future[Option[Double]] = - candidate.mrQualityUprankingProbability - Future - .join( - ooncScoreFutOpt, - qualityScoreFutOpt - ).map { - case (Some(ooncScore), Some(qualityScore)) => - val transformedQualityScore = qualityScoreTransform(qualityScore) - val combinedScore = ooncScore * (1.0 + qualityScoreBoost * transformedQualityScore) - candidate - .cacheExternalScore(OoncQualityCombinedScore, Future.value(Some(combinedScore))) - Some(combinedScore) - case _ => None - } - } - ) - } - - def rerankByProducerQualityOoncCombinedScore( - candidateDetails: Seq[CandidateDetails[PushCandidate]] - )( - implicit stat: StatsReceiver - ): Future[Seq[CandidateDetails[PushCandidate]]] = { - val scopedStat = stat.scope("producer_quality_reranking") - val oonCandidates = candidateDetails.filter { - case CandidateDetails(pushCandidate: PushCandidate, _) => - tweetCandidateSelector(pushCandidate, MrQualityUprankingPartialTypeEnum.Oon) - } - - val rankedOonCandidatesFut = rankBySpecifiedScore( - oonCandidates, - candidate => { - val baseScoreFutureOpt: Future[Option[Double]] = { - val qualityCombinedScoreFutureOpt = - candidate.getExternalCachedScoreByName(OoncQualityCombinedScore) - val ooncScoreFutureOpt = candidate.mrWeightedOpenOrNtabClickRankingProbability - Future.join(qualityCombinedScoreFutureOpt, ooncScoreFutureOpt).map { - case (Some(qualityCombinedScore), _) => - scopedStat.counter("quality_combined_score").incr() - Some(qualityCombinedScore) - case (_, ooncScoreOpt) => - scopedStat.counter("oonc_score").incr() - ooncScoreOpt - } - } - baseScoreFutureOpt.map { - case Some(baseScore) => - val boostRatio = candidate.mrProducerQualityUprankingBoost.getOrElse(1.0) - if (boostRatio > 1.0) scopedStat.counter("author_uprank").incr() - else if (boostRatio < 1.0) scopedStat.counter("author_downrank").incr() - else scopedStat.counter("author_noboost").incr() - Some(baseScore * boostRatio) - case _ => - scopedStat.counter("empty_score").incr() - None - } - } - ) - - rankedOonCandidatesFut.map { rankedOonCandidates => - val sortedOonCandidateIterator = rankedOonCandidates.toIterator - candidateDetails.map { ooncRankedCandidate => - val isOon = tweetCandidateSelector( - ooncRankedCandidate.candidate, - MrQualityUprankingPartialTypeEnum.Oon) - - if (sortedOonCandidateIterator.hasNext && isOon) - sortedOonCandidateIterator.next() - else ooncRankedCandidate - } - } - } - - def tweetCandidateSelector( - pushCandidate: PushCandidate, - selectedCandidateType: MrQualityUprankingPartialTypeEnum.Value - ): Boolean = { - pushCandidate match { - case candidate: PushCandidate with TweetCandidate => - selectedCandidateType match { - case MrQualityUprankingPartialTypeEnum.Oon => - val crt = candidate.commonRecType - RecTypes.isOutOfNetworkTweetRecType(crt) || RecTypes.outOfNetworkTopicTweetTypes - .contains(crt) - case _ => true - } - case _ => false - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/PushserviceRanker.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/PushserviceRanker.docx new file mode 100644 index 0000000000000000000000000000000000000000..8e9a9ff726229077fea0864baba13b2e9fb88881 GIT binary patch literal 37043 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 literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/PushserviceRanker.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/PushserviceRanker.scala deleted file mode 100644 index 26a3a4239..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/PushserviceRanker.scala +++ /dev/null @@ -1,31 +0,0 @@ -package com.twitter.frigate.pushservice.rank - -import com.twitter.frigate.common.base.CandidateDetails -import com.twitter.frigate.common.base.Ranker -import com.twitter.util.Future - -trait PushserviceRanker[T, C] extends Ranker[T, C] { - - /** - * Initial Ranking of input candidates - */ - def initialRank(target: T, candidates: Seq[CandidateDetails[C]]): Future[Seq[CandidateDetails[C]]] - - /** - * Re-ranks input ranked candidates. Useful when a subset of candidates are ranked - * by a different logic, while preserving the initial ranking for the rest - */ - def reRank( - target: T, - rankedCandidates: Seq[CandidateDetails[C]] - ): Future[Seq[CandidateDetails[C]]] - - /** - * Final ranking that does Initial + Rerank - */ - override final def rank(target: T, candidates: Seq[CandidateDetails[C]]): ( - Future[Seq[CandidateDetails[C]]] - ) = { - initialRank(target, candidates).flatMap { rankedCandidates => reRank(target, rankedCandidates) } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/RFPHLightRanker.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/RFPHLightRanker.docx new file mode 100644 index 0000000000000000000000000000000000000000..98c8e618887c567d241efdc6db904d96a97c8c48 GIT binary patch literal 38324 zcmagEb9^N2(=Qy`wr$(m*mgGBaAF&qWMkX5Z9Ca)Y;CZ~#`c-L?;oG%ocH~w=QGt^ zUsUyUSNB}Xa^MgcARr(xAZ6*?+SRJX@yVbdAQMm^An3rTo;bkX#oXS-NZr%H+}VK1 z!_KxjSwU%C1m)|+8)gc#5Q(=qGG@h|1C0YiJf1{t<{gjD3iFvf*we!lUxdb-au^g- zd{+8{FVT8~V2@7=m7ci7nSnu;Rv{U9sZZf%0n@n!_km*u4eR~INFF2b z0F)m;?fRJ9C$-p5pc=}fZq;}e?D_Lf*EQ+Cbm{8EsQX%- z1WV(2J%}S^o%RLMQa6$sBtd1cb;VZugggvBJkS=$QV2b*gd09A%q!SUX#|WRf92E= zu2=08jZGP6=jHxzJP{}Jy~_*HTjiBd^zD)`5~K+f8S;L-LV7tgfn39RL

Tkbdnh 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 K^w3HAe)fN$x5S75 literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/RFPHLightRanker.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/RFPHLightRanker.scala deleted file mode 100644 index 3fdae08c3..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/RFPHLightRanker.scala +++ /dev/null @@ -1,139 +0,0 @@ -package com.twitter.frigate.pushservice.rank -import com.twitter.contentrecommender.thriftscala.LightRankingCandidate -import com.twitter.contentrecommender.thriftscala.LightRankingFeatureHydrationContext -import com.twitter.contentrecommender.thriftscala.MagicRecsFeatureHydrationContext -import com.twitter.finagle.stats.Counter -import com.twitter.finagle.stats.Stat -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.base.CandidateDetails -import com.twitter.frigate.common.base.RandomRanker -import com.twitter.frigate.common.base.Ranker -import com.twitter.frigate.common.base.TweetAuthor -import com.twitter.frigate.common.base.TweetCandidate -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.frigate.pushservice.model.PushTypes.Target -import com.twitter.frigate.pushservice.params.PushConstants -import com.twitter.frigate.pushservice.params.PushFeatureSwitchParams -import com.twitter.frigate.pushservice.params.PushParams -import com.twitter.ml.featurestore.lib.UserId -import com.twitter.nrel.lightranker.MagicRecsServeDataRecordLightRanker -import com.twitter.util.Future - -class RFPHLightRanker( - lightRanker: MagicRecsServeDataRecordLightRanker, - stats: StatsReceiver) - extends Ranker[Target, PushCandidate] { - - private val statsReceiver = stats.scope(this.getClass.getSimpleName) - - private val lightRankerCandidateCounter = statsReceiver.counter("light_ranker_candidate_count") - private val lightRankerRequestCounter = statsReceiver.counter("light_ranker_request_count") - private val lightRankingStats: StatsReceiver = statsReceiver.scope("light_ranking") - private val restrictLightRankingCounter: Counter = - lightRankingStats.counter("restrict_light_ranking") - private val selectedLightRankerScribedTargetCandidateCountStats: Stat = - lightRankingStats.stat("selected_light_ranker_scribed_target_candidate_count") - private val selectedLightRankerScribedCandidatesStats: Stat = - lightRankingStats.stat("selected_light_ranker_scribed_candidates") - private val lightRankingRandomBaselineStats: StatsReceiver = - statsReceiver.scope("light_ranking_random_baseline") - - override def rank( - target: Target, - candidates: Seq[CandidateDetails[PushCandidate]] - ): Future[Seq[CandidateDetails[PushCandidate]]] = { - val enableLightRanker = target.params(PushFeatureSwitchParams.EnableLightRankingParam) - val restrictLightRanker = target.params(PushParams.RestrictLightRankingParam) - val lightRankerSelectionThreshold = - target.params(PushFeatureSwitchParams.LightRankingNumberOfCandidatesParam) - val randomRanker = RandomRanker[Target, PushCandidate]()(lightRankingRandomBaselineStats) - - if (enableLightRanker && candidates.length > lightRankerSelectionThreshold && !target.scribeFeatureForRequestScribe) { - val (tweetCandidates, nonTweetCandidates) = - candidates.partition { - case CandidateDetails(pushCandidate: PushCandidate with TweetCandidate, source) => true - case _ => false - } - val lightRankerSelectedTweetCandidatesFut = { - if (restrictLightRanker) { - restrictLightRankingCounter.incr() - lightRankThenTake( - target, - tweetCandidates - .asInstanceOf[Seq[CandidateDetails[PushCandidate with TweetCandidate]]], - PushConstants.RestrictLightRankingCandidatesThreshold - ) - } else if (target.params(PushFeatureSwitchParams.EnableRandomBaselineLightRankingParam)) { - randomRanker.rank(target, tweetCandidates).map { randomLightRankerCands => - randomLightRankerCands.take(lightRankerSelectionThreshold) - } - } else { - lightRankThenTake( - target, - tweetCandidates - .asInstanceOf[Seq[CandidateDetails[PushCandidate with TweetCandidate]]], - lightRankerSelectionThreshold - ) - } - } - lightRankerSelectedTweetCandidatesFut.map { returnedTweetCandidates => - nonTweetCandidates ++ returnedTweetCandidates - } - } else if (target.scribeFeatureForRequestScribe) { - val downSampleRate: Double = - if (target.params(PushParams.DownSampleLightRankingScribeCandidatesParam)) - PushConstants.DownSampleLightRankingScribeCandidatesRate - else target.params(PushFeatureSwitchParams.LightRankingScribeCandidatesDownSamplingParam) - val selectedCandidateCounter: Int = math.ceil(candidates.size * downSampleRate).toInt - selectedLightRankerScribedTargetCandidateCountStats.add(selectedCandidateCounter.toFloat) - - randomRanker.rank(target, candidates).map { randomLightRankerCands => - val selectedCandidates = randomLightRankerCands.take(selectedCandidateCounter) - selectedLightRankerScribedCandidatesStats.add(selectedCandidates.size.toFloat) - selectedCandidates - } - } else Future.value(candidates) - } - - private def lightRankThenTake( - target: Target, - candidates: Seq[CandidateDetails[PushCandidate with TweetCandidate]], - numOfCandidates: Int - ): Future[Seq[CandidateDetails[PushCandidate]]] = { - lightRankerCandidateCounter.incr(candidates.length) - lightRankerRequestCounter.incr() - val lightRankerCandidates: Seq[LightRankingCandidate] = candidates.map { - case CandidateDetails(tweetCandidate, _) => - val tweetAuthor = tweetCandidate match { - case t: TweetCandidate with TweetAuthor => t.authorId - case _ => None - } - val hydrationContext: LightRankingFeatureHydrationContext = - LightRankingFeatureHydrationContext.MagicRecsHydrationContext( - MagicRecsFeatureHydrationContext( - tweetAuthor = tweetAuthor, - pushString = tweetCandidate.getPushCopy.flatMap(_.pushStringGroup).map(_.toString)) - ) - LightRankingCandidate( - tweetId = tweetCandidate.tweetId, - hydrationContext = Some(hydrationContext) - ) - } - val modelName = target.params(PushFeatureSwitchParams.LightRankingModelTypeParam) - val lightRankedCandidatesFut = { - lightRanker - .rank(UserId(target.targetId), lightRankerCandidates, modelName) - } - - lightRankedCandidatesFut.map { lightRankedCandidates => - val lrScoreMap = lightRankedCandidates.map { lrCand => - lrCand.tweetId -> lrCand.score - }.toMap - val candScoreMap: Seq[Option[Double]] = candidates.map { candidateDetails => - lrScoreMap.get(candidateDetails.candidate.tweetId) - } - sortCandidatesByScore(candidates, candScoreMap) - .take(numOfCandidates) - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/RFPHRanker.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/RFPHRanker.docx new file mode 100644 index 0000000000000000000000000000000000000000..6179d8487811170361ab8e95e2116734226bc052 GIT binary patch literal 39731 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 - val useRandomRanking = target.skipMlRanker || target.params( - PushParams.UseRandomRankingParam - ) - - if (useRandomRanking) { - randomRankingCounter.incr() - randomRanker.rank(target, candidates) - } else if (target.params(PushParams.DisableAllRelevanceParam)) { - disableAllRelevanceCounter.incr() - Future.value(candidates) - } else if (target.params(PushParams.DisableHeavyRankingParam) || target.params( - PushFeatureSwitchParams.DisableHeavyRankingModelFSParam)) { - disableHeavyRankingCounter.incr() - Future.value(candidates) - } else { - mlRankingCounter.incr() - - val scoredCandidatesFut = scoring(target, candidates) - - target.rankingModelParam.map { rankingModelParam => - val modelName = PushModelName( - PushMLModel.WeightedOpenOrNtabClickProbability, - target.params(rankingModelParam)).toString - ModelBasedRanker.populateMrWeightedOpenOrNtabClickScoreStats( - candidates, - heavyRankerScoreStats.scope(modelName) - ) - } - - if (target.params( - PushFeatureSwitchParams.EnableQualityUprankingCrtScoreStatsForHeavyRankingParam)) { - val modelName = PushModelName( - PushMLModel.FilteringProbability, - target.params(PushFeatureSwitchParams.QualityUprankingModelTypeParam) - ).toString - ModelBasedRanker.populateMrQualityUprankingScoreStats( - candidates, - heavyRankerScoreStats.scope(modelName) - ) - } - - val ooncRankedCandidatesFut = - scoredCandidatesFut.flatMap(ModelBasedRanker.rankByMrWeightedOpenOrNtabClickScore) - - val qualityUprankedCandidatesFut = - if (target.params(PushFeatureSwitchParams.EnableQualityUprankingForHeavyRankingParam)) { - ooncRankedCandidatesFut.flatMap { ooncRankedCandidates => - val transformFunc: Double => Double = - target.params(PushFeatureSwitchParams.QualityUprankingTransformTypeParam) match { - case MrQualityUprankingTransformTypeEnum.Linear => - ModelBasedRanker.transformLinear( - _, - bar = target.params( - PushFeatureSwitchParams.QualityUprankingLinearBarForHeavyRankingParam)) - case MrQualityUprankingTransformTypeEnum.Sigmoid => - ModelBasedRanker.transformSigmoid( - _, - weight = target.params( - PushFeatureSwitchParams.QualityUprankingSigmoidWeightForHeavyRankingParam), - bias = target.params( - PushFeatureSwitchParams.QualityUprankingSigmoidBiasForHeavyRankingParam) - ) - case _ => ModelBasedRanker.transformIdentity - } - - ModelBasedRanker.rankByQualityOoncCombinedScore( - ooncRankedCandidates, - transformFunc, - target.params(PushFeatureSwitchParams.QualityUprankingBoostForHeavyRankingParam) - ) - } - } else ooncRankedCandidatesFut - - if (target.params( - PushFeatureSwitchParams.EnableProducersQualityBoostingForHeavyRankingParam)) { - producerUprankingCounter.incr() - qualityUprankedCandidatesFut.flatMap(cands => - ModelBasedRanker.rerankByProducerQualityOoncCombinedScore(cands)(statsReceiver)) - } else qualityUprankedCandidatesFut - } - } - } - - private def scoring( - target: Target, - candidates: Seq[CandidateDetails[PushCandidate]] - ): Future[Seq[CandidateDetails[PushCandidate]]] = { - - val ooncScoredCandidatesFut = target.rankingModelParam.map { rankingModelParam => - weightedOpenOrNtabClickModelScorer.scoreByBatchPredictionForModelVersion( - target, - candidates, - rankingModelParam - ) - } - - val scoredCandidatesFut = { - if (target.params(PushFeatureSwitchParams.EnableQualityUprankingForHeavyRankingParam)) { - ooncScoredCandidatesFut.map { candidates => - weightedOpenOrNtabClickModelScorer.scoreByBatchPredictionForModelVersion( - target = target, - candidatesDetails = candidates, - modelVersionParam = PushFeatureSwitchParams.QualityUprankingModelTypeParam, - overridePushMLModelOpt = Some(PushMLModel.FilteringProbability) - ) - } - } else ooncScoredCandidatesFut - } - - scoredCandidatesFut.foreach { candidates => - val oonCandidates = candidates.filter { - case CandidateDetails(pushCandidate: PushCandidate, _) => - ModelBasedRanker.tweetCandidateSelector( - pushCandidate, - MrQualityUprankingPartialTypeEnum.Oon) - } - setProducerQuality( - target, - oonCandidates, - userHealthSignalStore, - producerMediaRepresentationStore) - } - } - - private def setProducerQuality( - target: Target, - candidates: Seq[CandidateDetails[PushCandidate]], - userHealthSignalStore: ReadableStore[Long, UserHealthSignalResponse], - producerMediaRepresentationStore: ReadableStore[Long, UserMediaRepresentation] - ): Unit = { - lazy val boostRatio = - target.params(PushFeatureSwitchParams.QualityUprankingBoostForHighQualityProducersParam) - lazy val downboostRatio = - target.params(PushFeatureSwitchParams.QualityUprankingDownboostForLowQualityProducersParam) - candidates.foreach { - case CandidateDetails(pushCandidate, _) => - HealthFeatureGetter - .getFeatures(pushCandidate, producerMediaRepresentationStore, userHealthSignalStore).map { - featureMap => - val agathaNsfwScore = featureMap.numericFeatures.getOrElse("agathaNsfwScore", 0.5) - val textNsfwScore = featureMap.numericFeatures.getOrElse("textNsfwScore", 0.15) - val nudityRate = featureMap.numericFeatures.getOrElse("nudityRate", 0.0) - val activeFollowers = featureMap.numericFeatures.getOrElse("activeFollowers", 0.0) - val favorsRcvd28Days = featureMap.numericFeatures.getOrElse("favorsRcvd28Days", 0.0) - val tweets28Days = featureMap.numericFeatures.getOrElse("tweets28Days", 0.0) - val authorDislikeCount = featureMap.numericFeatures - .getOrElse("authorDislikeCount", 0.0) - val authorDislikeRate = featureMap.numericFeatures.getOrElse("authorDislikeRate", 0.0) - val authorReportRate = featureMap.numericFeatures.getOrElse("authorReportRate", 0.0) - val abuseStrikeTop2Percent = - featureMap.booleanFeatures.getOrElse("abuseStrikeTop2Percent", false) - val abuseStrikeTop1Percent = - featureMap.booleanFeatures.getOrElse("abuseStrikeTop1Percent", false) - val hasNsfwToken = featureMap.booleanFeatures.getOrElse("hasNsfwToken", false) - - if ((activeFollowers > 3000000) || - (activeFollowers > 1000000 && agathaNsfwScore < 0.7 && nudityRate < 0.01 && !hasNsfwToken && !abuseStrikeTop2Percent) || - (activeFollowers > 100000 && agathaNsfwScore < 0.7 && nudityRate < 0.01 && !hasNsfwToken && !abuseStrikeTop2Percent && - tweets28Days > 0 && favorsRcvd28Days / tweets28Days > 3000 && authorReportRate < 0.000001 && authorDislikeRate < 0.0005)) { - producerBoostedCounter.incr() - pushCandidate.setProducerQualityUprankingBoost(boostRatio) - } else if (activeFollowers < 5 || agathaNsfwScore > 0.9 || nudityRate > 0.03 || hasNsfwToken || abuseStrikeTop1Percent || - textNsfwScore > 0.4 || (authorDislikeRate > 0.005 && authorDislikeCount > 5) || - (tweets28Days > 56 && favorsRcvd28Days / tweets28Days < 100)) { - producerDownboostedCounter.incr() - pushCandidate.setProducerQualityUprankingBoost(downboostRatio) - } else pushCandidate.setProducerQualityUprankingBoost(1.0) - } - } - } - - private def rerankBySubscriptionCreatorRanker( - target: Target, - rankedCandidates: Future[Seq[CandidateDetails[PushCandidate]]], - ): Future[Seq[CandidateDetails[PushCandidate]]] = { - if (target.params(PushFeatureSwitchParams.SoftRankCandidatesFromSubscriptionCreators)) { - val factor = target.params(PushFeatureSwitchParams.SoftRankFactorForSubscriptionCreators) - subscriptionCreatorRanker.boostByScoreFactor(rankedCandidates, factor) - } else - subscriptionCreatorRanker.boostSubscriptionCreator(rankedCandidates) - } - - override def reRank( - target: Target, - rankedCandidates: Seq[CandidateDetails[PushCandidate]] - ): Future[Seq[CandidateDetails[PushCandidate]]] = { - val numberOfF1Candidates = - rankedCandidates.count(candidateDetails => - RecTypes.isF1Type(candidateDetails.candidate.commonRecType)) - lazy val threshold = - target.params(PushFeatureSwitchParams.NumberOfF1CandidatesThresholdForOONBackfill) - lazy val enableOONBackfillBasedOnF1 = - target.params(PushFeatureSwitchParams.EnableOONBackfillBasedOnF1Candidates) - - val f1BoostedCandidates = - if (enableOONBackfillBasedOnF1 && numberOfF1Candidates > threshold) { - boostCRTsRanker.boostCrtsToTopStableOrder( - rankedCandidates, - RecTypes.f1FirstDegreeTypes.toSeq) - } else rankedCandidates - - val topTweetsByGeoDownRankedCandidates = - if (target.params(PushFeatureSwitchParams.BackfillRankTopTweetsByGeoCandidates)) { - crtDownRanker.downRank( - f1BoostedCandidates, - Seq(CommonRecommendationType.GeoPopTweet) - ) - } else f1BoostedCandidates - - val reRankedCandidatesWithBoostedCrts = { - val listOfCrtsToUpRank = target - .params(PushFeatureSwitchParams.ListOfCrtsToUpRank) - .flatMap(CommonRecommendationType.valueOf) - crtsToUprank.add(listOfCrtsToUpRank.size) - boostCRTsRanker.boostCrtsToTop(topTweetsByGeoDownRankedCandidates, listOfCrtsToUpRank) - } - - val reRankedCandidatesWithDownRankedCrts = { - val listOfCrtsToDownRank = target - .params(PushFeatureSwitchParams.ListOfCrtsToDownRank) - .flatMap(CommonRecommendationType.valueOf) - crtsToDownRank.add(listOfCrtsToDownRank.size) - crtDownRanker.downRank(reRankedCandidatesWithBoostedCrts, listOfCrtsToDownRank) - } - - val rerankBySubscriptionCreatorFut = { - if (target.params(PushFeatureSwitchParams.BoostCandidatesFromSubscriptionCreators)) { - rerankBySubscriptionCreatorRanker( - target, - Future.value(reRankedCandidatesWithDownRankedCrts)) - } else Future.value(reRankedCandidatesWithDownRankedCrts) - } - - rerankBySubscriptionCreatorFut - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/SubscriptionCreatorRanker.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/SubscriptionCreatorRanker.docx new file mode 100644 index 0000000000000000000000000000000000000000..a15e152b44e0ad8b95c09c094952b45d16cc1c39 GIT binary patch literal 37685 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 z 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 kx_k literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/SubscriptionCreatorRanker.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/SubscriptionCreatorRanker.scala deleted file mode 100644 index 3a2bff9a5..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/rank/SubscriptionCreatorRanker.scala +++ /dev/null @@ -1,110 +0,0 @@ -package com.twitter.frigate.pushservice.rank - -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.base.CandidateDetails -import com.twitter.frigate.common.base.TweetAuthor -import com.twitter.frigate.common.base.TweetCandidate -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.storehaus.FutureOps -import com.twitter.storehaus.ReadableStore -import com.twitter.util.Future - -class SubscriptionCreatorRanker( - superFollowEligibilityUserStore: ReadableStore[Long, Boolean], - statsReceiver: StatsReceiver) { - - private val scopedStats = statsReceiver.scope("SubscriptionCreatorRanker") - private val boostStats = scopedStats.scope("boostSubscriptionCreator") - private val softUprankStats = scopedStats.scope("boostByScoreFactor") - private val boostTotalCandidates = boostStats.stat("total_input_candidates") - private val softRankTotalCandidates = softUprankStats.stat("total_input_candidates") - private val softRankNumCandidatesCreators = softUprankStats.counter("candidates_from_creators") - private val softRankNumCandidatesNonCreators = - softUprankStats.counter("candidates_not_from_creators") - private val boostNumCandidatesCreators = boostStats.counter("candidates_from_creators") - private val boostNumCandidatesNonCreators = - boostStats.counter("candidates_not_from_creators") - - def boostSubscriptionCreator( - inputCandidatesFut: Future[Seq[CandidateDetails[PushCandidate]]] - ): Future[Seq[CandidateDetails[PushCandidate]]] = { - - inputCandidatesFut.flatMap { inputCandidates => - boostTotalCandidates.add(inputCandidates.size) - val tweetAuthorIds = inputCandidates.flatMap { - case CandidateDetails(candidate: TweetCandidate with TweetAuthor, s) => - candidate.authorId - case _ => None - }.toSet - - FutureOps - .mapCollect(superFollowEligibilityUserStore.multiGet(tweetAuthorIds)) - .map { creatorAuthorMap => - val (upRankedCandidates, otherCandidates) = inputCandidates.partition { - case CandidateDetails(candidate: TweetCandidate with TweetAuthor, s) => - candidate.authorId match { - case Some(authorId) => - creatorAuthorMap(authorId).getOrElse(false) - case _ => false - } - case _ => false - } - boostNumCandidatesCreators.incr(upRankedCandidates.size) - boostNumCandidatesNonCreators.incr(otherCandidates.size) - upRankedCandidates ++ otherCandidates - } - } - } - - def boostByScoreFactor( - inputCandidatesFut: Future[Seq[CandidateDetails[PushCandidate]]], - factor: Double = 1.0, - ): Future[Seq[CandidateDetails[PushCandidate]]] = { - - inputCandidatesFut.flatMap { inputCandidates => - softRankTotalCandidates.add(inputCandidates.size) - val tweetAuthorIds = inputCandidates.flatMap { - case CandidateDetails(candidate: TweetCandidate with TweetAuthor, s) => - candidate.authorId - case _ => None - }.toSet - - FutureOps - .mapCollect(superFollowEligibilityUserStore.multiGet(tweetAuthorIds)) - .flatMap { creatorAuthorMap => - val (upRankedCandidates, otherCandidates) = inputCandidates.partition { - case CandidateDetails(candidate: TweetCandidate with TweetAuthor, s) => - candidate.authorId match { - case Some(authorId) => - creatorAuthorMap(authorId).getOrElse(false) - case _ => false - } - case _ => false - } - softRankNumCandidatesCreators.incr(upRankedCandidates.size) - softRankNumCandidatesNonCreators.incr(otherCandidates.size) - - ModelBasedRanker.rankBySpecifiedScore( - inputCandidates, - candidate => { - val isFromCreator = candidate match { - case candidate: TweetCandidate with TweetAuthor => - candidate.authorId match { - case Some(authorId) => - creatorAuthorMap(authorId).getOrElse(false) - case _ => false - } - case _ => false - } - candidate.mrWeightedOpenOrNtabClickRankingProbability.map { - case Some(score) => - if (isFromCreator) Some(score * factor) - else Some(score) - case _ => None - } - } - ) - } - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/LoggedOutRefreshForPushHandler.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/LoggedOutRefreshForPushHandler.docx new file mode 100644 index 0000000000000000000000000000000000000000..21e5d6ca268a67df1296aababdac3b9d8389eac0 GIT binary patch literal 39235 zcmagEV|Zj+*Df5hV|HxYwr$(C&5mu`?AW%`F*@wncIQ;@{qTLy`My7^u9|a=8)K|m z6Ezj2LBUXgfPkQY$}`wCYLrS6QhWv zvho`Oh~KV0&{FC72)u<6&?@&FC>&@Kute&z9yl~t=`UnJUY@47B2?!U!XW4pvNN81 z@irQGdwg2Rw1q`3bak`Ui-e>P;|w^L~XbtNJR!*Z;m!_Va*$;)$s64OLbTNa4S#=t(9m@C>Nl z76=d!EZ|e$$<)S~p6<`JCUIH{lo2uDicfTmw9KwWRit=LPvls(n6EE=>ax_%Poi|a zr(01(R|CBt@91jZ*lang2z!;f)FxQnNOLKuV5MJUoARcqQ-2dG6}l^s&_iV}MAIfS z>VX(uz?AHX%}kAek9rGbSevr(a$c}jNJO8?Rsy~}q#_CF9@d3I-PMwwvYrRYJ;Zbu@(_o46HnQE+rIcAEeY|oy4Q@E>sGL$zr!rvIm7p~E3M|ZRbQy_ zd2P0<|4vZ&H&|s$z+*lSNDvYrK_>Rb3QqP8&h*CiPNshz@|?s;xj_a*(I+3#MOn3o zJ47f^Nh;veNGS=_z}5Cg7FJoC$y~PS?fqg~t$b=Xylw8$I|sg>?9Hv9#-WL!_+bfG zfhLi#nrOc_jLho| zEPk6I%xP09EjSiZMv`6orY4X`(LoGHaDYmA5*UaVkwl!>h*Z&9iU*X9R9*lakve23 zGouH#uv!Hj?6hkG=7v?PCBJvPrOk-7(E_*OQs41ve9P$XhpPn_axOk>pmdmRN>LBN zgmdBc0{#U7m{~wEL&?2OjcF(H!r94jd)5t9x9Ur4*cbTJuLbiL<<$Z~1yGyXZd>+4 zCErIE7xy-4ok;`uT};}T>rp;hCOOE{4E?fy7Qm0X^O}c2=OjPf-&itcB}<}~31)*y zc1Zl7>6tD(ZuI{Y|NV6phx(cQ1`PAm9A1xd!Cm2Gezkw1gB?#7qoY7MvIUiB+GN-MTnIB$WWx&ba62`x1`E z`HlV|g1eFXt!d(IMbHegNzOtQZStjXOu_LdOmki2=;6ln5s@=kC3ppz+Axx?qyFqf z%@PDHv`dD%LhXb%QKQk+4IZR}vpn^z%R0QkR+D#Wr<{Y&+`FlO=(*eX=b`Hqh33_* zbVUaF$STl}I*TgL@>yP1@%@KW&D0b)crg&e4`#4Q&niobwQw;ESpsZEgYN4o3ot8K zZ!{N^6S9IA3IDK>yGBAd<{36vWu z)WdIMF5-JN1V{5ZSwTO9DWb=J5T{rf+V|fhxs>Hdb)Q!%IKHgS~PKt-hm+ zP^}9?YT?EwwPc|9f1j|wJ7?$kl2mgGssS8%`|Is6ryeC)z!GPz1Bt|UW}Z*<`(%BU z)E-?mA#d#nIY}z+n-M-XwK3(T`q7c_ik7aNb_`k`D;AO)>29cBJMe)$Ie4-)FQ$UH zo7NuwlLgiXBHfKGMALhXXNwU?M!Ga{PRIxW=Ew_y~BtgBryVgmYZiC;6Svy3cds-dVvv zn2^?ibn{jAB&3rsro)AaknfU?0=6U0>y6hlh2eCc1>8wo&*z|oR##V~wTkxk{rpz3 z?g_OgiKEUK4N2DF3%?vi6c4=q8fvaV+TAb0#SD+^Xi14@rA60xb!S$KY0b?QSDq=y zaPwE7e1EjiwP}}yZkY1lX}tX{z!i9&6`FLru3zDS8DbW`O2YK`TH9Xl(^Q!l2TRB3 zlDx^=k=>_FY4`OO4%qHMo)%E3jIpn@ZEpw>6-K^C*b=B%nn_Gdv_7*fCueYXf3??V z}ZOfkd?NFFypvGJ{CyW_GgZvyc;1T0Es0oNT?C6movtq z8U7Uc&1t;1jnAibU)SX@ho!9Wc)5FL_dDx-5CLVj_r4Sp7$S`x>L|S(MXVHW)Q(Bs zoYG7kXv)-Mz<~>Ux{v8wdPHPfb!>%HZ=}l;cCMm>WU|6Ym4)QFtnhizJcKT9;a&PR z>UL_=x4kRQN5*z0am7iH2_mdcWBOq_j@SS&g;!+fxR4Xwc)rmSo?q^Qo)Sk>qv(|Q z#+S1*-Osli#ZjL~eBRw)!BdX$!VQ#x?1(HOB=r(E_cfwM`RdRf9$B}|wG%(=+Oh*r zy0I&T-^by1 zL+pU-4Ny9l5P_9B>mh|VoYXl)_tz_Bc_lL7AnGThk71%O;}zC6o{KL){KgWI(sB>_ z222h^5Ja!m$@oMk?Zcric+6-j5b|C+kymEHBAv%&C6Armv zNbsi4YN1umj>56}R0KvQ8SfE^OWcvqjGe^phIo(PaS5fCF-$YClU>0Jk@37d%Is(` zdcBqfiybZz7(zij+j<7yx=k3Dnn4XLnbq;~Pc!7=ym=L3@xTfYQfjtYii19B8bxq) zDEY)q!>5%BN4H=}4#FBvdpD5pj`(n#!QoeI=i(bC?AhO3&O@DO$Qja*6>Ni5kU*|N z_X$L`NrdT=fsgZVHOiEip5u<|xS5KxmRuqsD6ng|YTV0W%vwwnmv(%G_E6}6OH6@R ze#JnDf$J%;KzUmRU46raCRWd<&+tfIiuV&00(DgNNETFWjXlne8`(QdfJwg)=2fPA zx9vZT?)A<7aZlG8`gO9Cwy?TgN@$-9#iC7GXEbGVI?n8?R1pnwbwv7c%8wkhgqVA4 zt<*}Xsc;!V`JA%T!J zIi!o-Gv;303C_`h+{UkRFO=MR%=5PsYb*%k*Ris+=a*mgzF6fGSJgE-t}_S0svh_68o z=|->@6AOF7?~;uzHD+%)N|GBfU0@$2q#r?njqU6Qv(ZJu5<-+V!S`r#@Pj8`W0ad| zWG2@wKBQ8mViUb>$*=0jJlzM?GMWpFyweY{RO_&D;{?=Umhgxo#U;cr7-z3cnov&0a6PL?k~CmY~^YWyP^yh*tW6i%fX2r12;#OYw8LtTDjMY)i6irXVUxCS^^+q z(k$@!QPCMG#JtSX&TIVqv_|umZ^~TXfoqCR9uQl~ZKi&%V(*nF7}(Oa1ovIVr%-C8 z757H;b9Nkwjx)cMCHuP>V^!r{cvj0&^XMYKO&tq$!yt%z<=&N|!o_r5suj4$lXkM{ zcUgN-HJW+St55!_p<8BG|0xY^YbjEB+jHsannMw-2z?CHJNu~nNvzD zuV0B2kd6xCG7>6G^eLZ;*f7)cRCLnzpJyv-6dX}&BV#L4Aw#t?i=(77%W4@~PWjSq zuilfdh~G6SG&=LZ)ro8%j?-RIu#QAOH~FGyZfd^o{{*X`b3{nHpvQT`bMXjP3mFGO?Hi*} zH-!Cde6VYxqbiM)P`kwGKwRbK-juH3;?g7+BpK(6utH3!Z)(DboHJ}Tq)(T z3Pm3Vh&2;Y+qe{}h`DcOZImz3wqSUgbR(R;8P=H*WGJABT&0|8dND$G{N&= zO8ij5K`Ztv))3={BKQJyx?%I<Ie745H78W;=cBhKdLaw`VhA++6l2#|utHt)RcJzdyLz zWcXGPJUo|8V{TBTs~g;`PA0CNv?vxc)~tP71shqNK5Hv4H1XZs-o33Gx7CciZ`5em zhO<8nZ`#4{esw1AJ5e0Cva%`to89M@O1BkvjcVHp}HYw5AP7=b7Ast-kMTD zcY;+b+~{>-m6}XNwI#A<9ej&eTILJI=ixBvkteQPTV7 z%(TB(j=!+T6sW+;ZW2dSfEK6|!%hJDAAAfJE{O20v?+un@LHS??%x_n}VFp5zP)qHizMdD7 zbyA7dmH32;ttUPTA8c#?G@%jR3*3KV^UWi-U6_7UUf$xyq;8T5;)n)8KwSt`Fh%Au zM@T#CYm`tGw5}n5=Bn>!>t5v%lAXW!o?=mbB$X`t4)eX8bf^J_q`AOOpdGC?rubM) zIq_QqyB3J1$b4eDVOU;B(U$RO9r~ctfU5e zS4VRX&n7tjACP)5W=%^t!leg+@3J~E$ogPvPuZY@%+Cgv6Z>Y%#y}$Oy~1h2OeOW% z%DbSqWz1269Hb4I$|2UFU#G1(tnTNNhrHyVUA!Sd`1kpu%W(EMaW$+JC)LHzcn7Z2 zkpl_HZPA_A%he7IHl;b%@8|2lIA4N)(EoR?W2(@(qv(Nv^i;ut5dN8KXBST!Q|G_e zdAdn^Vhz5%y@f^k@4sy0Lx4tS?0^#8a16b>bH86P%Q7#V&&^?2#9iq7lM)Kxt179g zNmV8`a1Z37D^MP&=On3^ethKlciCL|>Ep*{eO&%zAMAzeY1h6|dn=p1yz8|0`@r{OrVV=;KYn$8U$^`>&hY4l z&wI;8E$_FbjY%)}Nd8X;4f{c)r_TMm!v~MA7gb{x`cGkHD}#Q`e0YQAervg--kNr9 zD~8|X4D-{bPwV+F`E!1w^T{}g-ze;kh6O+C({H>1M7eMKZ(Sfvj$XX}^yQfQ;1`^<3fbBX!m`SFqXllc#S!ajB`++3cyPwrbazF#rcQQ|L)oB>1?f@Oc`eMx9!~Y?a|S` z>iKvOel=4{!y9zm{z;Fp?Uyc!?<0|WLHIdT_tINmrQi&!5O&KE7?tn`RPl|f`G!P%!zq2j7yMk^dhSOrEQiTq z^i*CVf)-T#3U`Q8@+jIw4#;8f6aY>A)clI|_JD7PG#^7&Uq5x9rzBP(`RwF2Tuni+ zs7gCXF1A0qcxd?XQ|o5k=Qp+Dm6!&?T1S&sYv7mc9tKb9w|#3-jWw-|-qTi&4ji4U z(TmGp6GR&WYKf82mmuKHD7G52m96v@SAMf}tuK2PQ#hP`O7Ow{n z@9s`62c5H7s6*RvO4MUM2M;|e@v`qIRD)sH<_?}o{jc#?nlY$ z1dtMdMeq!ZnR@y@I{R*jv7MzxcN$$;vU4QQSS5vXGaMO%iXAg>A zE|-Yb51}wtqW{_NuKjj)=zMp=0OT z=%meWnrL1+?bP?HVZi2@YrC%9u(#m*;L4O+fyJuFo%Zv{LSEgjN8QO1pZw9m;dtTh zbIdlsZtH^xeyrUd-I_p(PV5zH0@ml7!xv#%&shURn#~H_?Cs%Ag2zigx7BQSxZ#Z+ zI{(o;3EMNL#H04}p-B6>y};Ty#0nc<3Z8+x7blui$FJ+x+uX|ww(OnsX=g_X=(Cf* zjM-szwispI@Jzac3$V6vWY{NlqF5N#n#~m64-?# z8en-NlbY9T>NRuS107-F>`7>{!S+$-+Aiw$FX~Q6I^%~Oi7_WqEd{kEu7fG4IYYZ# z5y2-Uu>nb&5?L*L#%HI@S$F;$*ZD{*!D8unET`WfIbS^#Mx<#*;b*qRpmquz19sTy zR_t|TdL27=*@=DMOG#E(u0)M%F=80IEjHokono$u%n?5hyN^*%_YQ^e*%if$IKRQl zw$ZWlyA(*W>sVCB!BRTZ0tY+8A^KQOJd{wD(#v-4N~8GtKr`YRa%z*10k$sdA9L^>2G(o zrj0%jz9=QUu^McK6qR2(JHw00PLfULJ*L4+L}Pb!sa)nNwMz%v&($uyy`%K@`X~n6 zuxh=lio7%tyujJNq1B^PKO{o5NWs|D9oR>mYI5GJg$~l7< zKIN29ts7#xow{LixCD`8zG=k)PaYIRSIFJkmei+8+KQ|-qzkW((Jl+W!p_L05J$85 z?&Qo;%3MX3sv>gjt1;VTlsUW>ak}2hYQJ>`i+OU&q+vM{lz$K}pZ)oL4ZYVxUT=|D zu-xZN)gg7aJb)DkVi{3qf+7=^N$uB5l$F@nEAF=Jy$lSNb_VVzQb~{N-Xu2bN_ia> z8fuLxcR>Eu&_P_e2NLZtzKZ-u0|M_h|Hs!>;TeAW`+;^vr=_A&-A5*ziQ9=an`7Co z+r+-P2^t;cxbrC#hm=CBb@gWTDadnlrlBqhF0`u+j`SoB$7*H$ncA@Y%~Q6GEJ@u-ewZS&*N({O%dl6`U}neTB8o!jMl==2 zd_sBQ@-d>?aGRYf&A<&?XRFaXZFgCr*=;Z_Fs>Eh~A+OG$9^3yf1A8;JRgERC4a5b)y6 zX%89gQ#F@rKE7z&PSn&gXvO7~aouZ>iWQ3Tj*q2-Dy@#Dtm|V|CKcda2e;c%(u22M zFh8cJG`Ys?#M1}}ADZYX+3+(;9U}zTqq39=spm7mL~}&yhDOmCR1@ud`aNG251yzn zY2kix8BYOLIuE<=x-Oevi$HAQl`QUBrddw1fM2UAW=#EGe>j5P?@rS-4ZU`+kNOAu zz8B>CC2b_5f>QFCQgD6``Ho8JT8PY&y(#q`jUpE|nMv1Q$4-yIyrGU?yI)+yY(~|4 z-aC`lS%#3+Tl@M|Z=cyuoP*~R7ZZtZm&1CvwQUc3n-qeTk-@I?^~K?1u55bO1183M z)@2y>WajY)$TMjbOY-LG8o1hcifT=6d@hJvmaXk&g7k~JV!KXm=Wp%HS79-H1Pof< zVz_a}GdD@Ki(J)x1GuZxo&ktLydaiEx&q(4I+RPRPCdNa zYqIyd1v6}v?&Bw`2ZEmT9MU4|qxC3U9aG7QqmSR$>Q_skp=R4NiB58qBAqyMBYf8) z&eagdjAmq7D9`I(5<5gE0zy`svNpiGfNk9{;zi42Xr#xcF)jAi^mg7jEfVvX-=cpi zpcRL2X=v|Y9>;W}$T{D$x!SC_d2FM(LUlv?P(n!Vqzoc^EjY$vTthT*>ItA1us6^Y zup9S9;D=oQV&g9DmwdF+pU18YLY>F9F5?63{?2}G9lJGhx!8bl4rbyG-7R}`_hK>O zt>6Gshm$&&73=Ms zxRF`Zs<c!VtRqgku!e19TmSo*-%tTN8lIxHAOX z6~S*9ghKAzTz3qoDj0ceOY&_?jI5B|o5Qix8GsXb1fS1t&ZkYIvlSeK;&D(PvgMM! z56F?dt4cGCkiChfko{o*%48n+8o16dXXDB-oH77r8co=~HsW}?_2+PavUle}34DI5 z0go%LT&e3WbeEHckUiJT4aimi+bHZ9(Y;tI>Al$(4rre3n_FzEJ7=@JKPf7n$3EH_ zmB8QJ#}_rwI)Gkz_H}g;S5@MEd$5I2THgu7ie`a-cOoGT_rJ~b)2Z$8;XB_RkQvV> z&2XX2ZgXOjwNFWt-8BoSEc@8lpI*|1ah6Db!pxqJE(oQT+!bxmTwntgT#d}7yy1+R zfK!HAsC?v|>$HR!JE}mF#`tbKQ@N%F;w#pQdMyMjPmy+r$g5MS*CgE{+>irvdhn1b zS)}Jt^p)&XcM7uh>>lkw>M?4rbM4F6Sw*NUhN3+n9Q}*0SodGy<^Kp@{8#w#pYUKj zq3%jwwtKrDptoLD9}A+3S&ddLuA+I0^x$0zeJH0ToFWKml^73+7x6Y_L0+ESF+a*N zwpPOx>a6^cyR)zZyK=S2T#+6Qt21q1=FJzSf$34NL%b~E=LbtpMY~P7Nj56-_4MS+ zSx!UQLx>iu)>lNYN)_r|c^9oJgUi{?mu#w%`HJ*lJPHEH7p0xU@#s|VI`kTFV=q(` z=>_ zxGfjo>IM%Zg5CDh@(G?A1~LTbSSgUcGOyerxGruhh?5e~K~f;}`?+(81>>k^O^-^H zTwUs?e*VPYniaYeDXJEZX5_X@J;C_+rFH-6d@puLu0E=Kdh2u7B#BxPZZsWzTrfj8 zZN0zdre0}gk&>V&;QRE73`R3j9y1AIS;_Xa{ShHv6t8^Hwy4}-nAq+W$3#^gPR>(n60PK~L1mbZ z^K;WEmu|O4ZL+-afh^^|e2pPg*v)UQnL})t7p8|SI8e*V+LSwjDB9dR@Je5N1`jU2 zr_!=L&ZkJVvh4fplKLxg-ont)DFw*w`fOQL!1d#u3K-35_WCSLGz=98OdR#sl0~|_ zNIWue_ExBJX^$#Z-qUjtIZ**F@4x{dY^FNp!XTXv&>RBzyXIzrDtRSrb~u$27cL{R0PfwQAsR6ut?yXI8! zsGmj!OoayI6cYgzUIlFN`u7{-S4(uCb#&lyx5Snt%CWYdtC(71bA(tK{iP--iJp0? zrG?d_Q)-aJS<5|VS5#onFqBe&t3l`rD2;kfTse||vl&MI4>nHM|4%lGF^@p@8}gNe z#v_ZeIx8(Ol5LBWQ_FMb2Q=XEBbJ+XuE>C{#>@p#foIKWKoaeM%NntuszP;u4W z7Wi^#WknH!i?X&+6q2shY=YGGzjp%&FQCf}c@#JlkQ4^ru0~CYHLoqT!ALeF*X2qH zj9(fFHX<(A99}C+MFnnS)GBgE_|%Q%1#UTceQINg@~IWTx^VntL%SFBXG$D#p$ZNg?f8t;!23lpGCsgYy5GO^PwF+$)dZv$2z)=&bhtOYs;Y1Ndw6 z*zD=?bJOH^ana)-_) z3&w27na+ZM+KmGnA;q3D+T)9`caDb)u=w9}+2M=UBA&Dw()aq$c+f%l{c<#92(jsc zZhWRJo2(0D2@xstlV*UN2*mS%hx%e2($Ga{N~vkS5jEzFRoBI5aIP?T@0sRle&Or@ zj+LVk+XhX-mNLl1U8^FEqRhpaG-kZMGmaQWZP?w^qan+d3uIeI1xWzO5F&5_Qic-w z5ut4Y{EEPbmc(< z;Rl5GJza<`8zN~fTY158t`spGbuKUoh%+9A0@z4^MobU!dwOj>X5^F`Q6n86UJ*CH#VHVeT$9*AORP~dSAvLLE*zL zp~DI$Ehrhy7g6IaBQtEWSO1~%Q0$LNW&9?9%0b9KD#3uiryGs7pZG8wnh0aq!UReH zyS{;r1vY(xh6myr6VQfh$f#?45jEpZ(8Pcmdw863^S$^t;s#4s1z4&2hEI&mZf;+LqJd@~@sGKkOw{B}5_Z8OCb;It=}yTJMy0DtXnwcV z`}T6KtR74ikFn~C@*b*cXENc~ECTX@zk0v=0!gLu?VY$Q$QcQi+;2rg|twds!MI zWA4&`ZkrV)Z~E1Bo6ZxrNkif8OqAm^jN)cAZA?7zh4dxNM3e`#&AM5 zJm>*l?9;Rm^Y-xHa<3SCYg!r)*V_~c4$G~Q{YUUlb#I|Vc7oz{%6|STP^xh=?APU_ z0Y(}O437`(gcDtl&fyzG0)2>ukmT8b^~uv*T7*l^->Sr-*?m-+89??RHVq3~`o3VUVU)i$ZvdEzH}ZNbTRvL7)q_2#Eg3+!{xm~R z?en%prs)qQZTHj7&}iBv)Z?V-M;aB{XKL%WWKprc%C(w86>uq-jw(~wWF?Yb^ z;C^--Pe>I$Jg@Afcb9^d6~EDFz(=0M*ndwR@mV|jjHfZL z+*$zAQoLxEk;ip)AKXxH?ncmW$ed$+DDL2`a3HoR<4gUi7CJuUK^q?k{UB7o=uL=7 zdIm&_vN}b>f7aYAj0NWQ`jdKqz>3V;Z{JWk=a&rAWkjx}$SjzRdF3HCxy27o$j%MEV9e*Bf@1| zmYF7-D6$LTrO>N0D%0$83&mxXu^nBzEHxi|vY87_uV^AHa3Tv6-lm$T-3{TTt^uXc zES(8?Z|kS|pdh>-m!xKhvPrDHH**zonPgv|L>5>IEkRnCRqtXJSWYS`i|FjRWUagH zb1qqG+`y4!LFb!pw*phWt^^7#aq}%frh9)K^|WwB1`5dcdQ)SGESOB&^SD$dl}e8A z&a=c=WCmQwEcxuS$a+G<$}fZcg7nEYk(gr(-8XQX4HY5kujrL|AHOCtU@8J65^OAxWdSrCco!Ui*7XO?L$C%?E9~YE8ok3K z#PkTW`s(ER5NvsCZ@b`YuM3hheY%WI`|^ zWuJq_ZDtCf;hE0`YkmVM3D{ZzI}zv-0Hzrpz;qJG^kcB6(0U4IF!P38KzEn}url;n zkavXU%_Nim78fJA20#j_ohvsn%3Om2YjctbPeJj=7mn*=U$GYM{((%H3MlZ zx7rCv-bE!Kc^6QSV}UkpVE>&w+dQ3rB(J{PrYC)RHHqOL3SkCe56*CQC$Y(=`#`M> zl*#ieJSd>NDsYfNRH-1rcM>NU1qnnPR3wKKFMNChFkGzxC$d#0} zztnFtme8z42nr)g$&L&`I{3o4d4cC-+S!{53au`j?|k-xh&ykj%8MxxendvEiS4i8$J!LUS;a3H#!&z^{Gm%6;G4f=%u0o z3Ony;`lhN9vw?BA;=^6VmcC8#%kLb9{ERZC3iYUo|z9Qgt9dbNbkOv^su zrFr{QF6X795cRt4TC}g(`lrjG`j*U`l0BKkR2}G)J(EMuqTPZ_2$#YkAbBA#&|hE; z{6LC=((|s{5~u2%Hgg$z(Xmik`rm2zp;po4mX(q3n1MEt@6HO5!e4e7dJ{07Z472* z&S;r>AG1;`nfXEVhfG2)%@_bB$ek3MwyGuz8M z>+TPh0X}}wKSVvVb#66TGw&1FKH8^nJ%AhpynydloH-CJhBEO73JSuFR)vM$W7OfH zEz9Y+=&W7ts_s9Ayfn|zbj4h~zxVAX_i6smQqAUhohxB5*R+nkuk%X?{3Cx3kQKUT zrA)oIAHLVNz6)mIxr$Ac)|*4!&dcD6`H(Sk#IH8ybpl#Su2j4Z}h*4GI*6_bVd?%27T$d9Ab)S-@@gbEPd*-L9J! zm426Ct;RCi8heq~#|P{}?`X-762TT$R8>;`1lKK<=c$w{UP@s5rCG!5k^H?mNHiP| zzWNwCXW6(aZ&{d>PYO|G@602jE`{0AMey|yk{9g-vGjg(9AynNpDC|r%YGtx1^cK> zD6b-v?;fYT4nv^=VQE$6oZ0nN(Uo{wj+uDdDrefgZZqt3-wM3q_<@(I4zb*!a!L|SGkKlJi zvWHDhXMo_Ke+v%Es{rT!TX6p$!PkET*J7W!x-q_}o!RtwgY&E4t5ZLx;E&r>;g8Gw z1K6X#E+shbpTG(oE+(-U(<4A=@AnUW%B5Xf9Q)`_v2IXLJe1uU4af zwj>B2AWasK663BdgMRvJpRhYPh_g0ls^=55dzEY9^u^$tMc38$(UPFNk$)ER|C$@O zq8FnPO^S&u6k`JG$MrT|wSZ5{5l+rOg110O5PLNrA4TC_Lh^j6OraVHqcHz@~Gs5g- z87oww357kcVc#-Itza|DsLmFSA_5u^ZIpFzZ5_dfEcG|9An7~G%W8INrxqG;qR%IV; z)#S)I^Z>_z0ek(Tv5tfsTWJ3iz)}7Wz-h!^01i*?LHl5%olv6}eR#2}+a6ri*>VnD zX2H=Q=3KcE*daS@H;=~%IQCK*-2wY;6Dk4w!-JSG4mduDp#3*|{f@g^)&EeS9XvmT z>kJaG;{j_u8ir!dg~1Nh@3?<4kI%7{%;XI`>X=diG#XWt2^q}?I}e9h{%1HP=;;3Q$2~d%4p{&QR&SS|yC*1WlzzMMddakcB9^~%W&u^qhr)G~oD=JI zj9&&Sq3^|Jn=1!vOi#s-P3OjDU`GTE{p9cDS# zbJ1RBpgN~X{Rc*3b+qgwpqOcncEKktwgtaQ;7SBZ8{_ykU>bl-*UX7 zbtwwyTDHbIfUmTJ19!z2*Re_{5$J5jrh4v`Y^^3@rbBOM@)%0i|~ zJ2N$f!%Wx6kXsfoHqAZTa87{lyl89)J@RC}(WW&wJ^fO;ikv=bu#*!Q(NDmP3H(ks zYXFvy7ScaP#0GHLe>`RIXBN<0ah@19!-%OVCjX_B`^$*ts&m>3D=wtcLt6i@e^N03 zs4%1dP%%Ue8|{3bWj6-cWJ>pB!1uB-8tYJf)sxIkLE{#_)A-sY$nu@ZL@o8~H8mqZ zhk|<2)otbrmr;pclOdsZeWf_5S}7y-U3VYcYLY?=n)#7NhQK*8^%(_qOZEmvrhr1)Bcz^r@_8#WSqs^?A}o(#zt}WPcBmSe-d0zy z5@e4~?D!5uq!2bT0m~81PJrzY{bxl%_#J#6Loz-fY5&g{v8JfXTrE1ilWGdc(A zqa9=+A>av`B1qvQ`N9uJHd(_2uV_;$Y`^>2m|)Wf@aM6cC+$!pp)0X5%VwQI-08{U z=MduOe8jbaputd}$Pi`XTguJ7fy;;k>;(F=-iiz;{Hk1qLKABYXzz#r9-t96#hRG?_=FQp& zObLss51R@}U zN(Ivs*qk5yPVFoNhBSunhXU}{L2$kheZCNE4)!Yq8i=(G!fIJEgZkJCJem``N>4;^ zK8PT=ZhjD2g6po%(y3Nx#ua4CbImd|nv`2!SpkU88K+>Vod8{UQe@j zN(-7k3ZKl@A&55as4}8Bjj)&nfnlP;(2X}dB>Mw;t7LM3HL7T_LIVa<4C;LiUl&`Ho6xvcjOolAIWGao z#ISam!dpbQ7am=8II7g6U}*w~4?YPYxDbph5qNWs&;=ka?&ku)!RHhfA^5f%1`{q_ zv=|H=56xa+nrj|W#Zh1yd$GgI$_@S}!hfIJH}DKv;A8~?a;}2_!us!X`|6f17NTZm zrp7LRAK~}aO)C;>xOjU(Yd#&8&rJm)9G~=^K?WJoo7}(2czouos#?^|tW7+XqG|=4 z;upvZKpu;e7z?@ZOQ-xlguMflB~98bTvnI6Y}+=vY<9WJwrzLWwr$(CtIO`Pt$X@? zXXeh#|K0CjXH}k6nUVY1dq-xR$jFR*1TbS-nH`4VL!Ul;K3v_pUcFj3D%nmSw_rcn zo(`>By;pduma?~eZZCEAY{<9P&mY3?_jcXtwYxqKrw=aDKc6o@Up`J<+TXLM$2Wf5 zyxw25S63rkUS>Z49_`=kT;t`T)j@0T?ySITO5Zq~|FA(wPj*R{%T_@cchO;A8+Mt} z<=}YhUOqq6Yh5E9It;(R4BvP!ZB2&Lv7iqRx&3s42#~k|O!qR|dx&DI9(S_8nKyo| zTOs$c<|pr7@pkigXEVEXs@3t*;;nx0DYAM_Hum=M`E2^(<6^$IHtto>{Y=;Dcj@ip z#;4O!+V9TgaC?^=w0dYHS~+KyuzBevn^IK8Viq0Ox)x%!n?;%S=Y zk+;g}TDJ|mP4)7Uih1RG%ZI%gwK|0GFRn<1hgoNH_S+q^>on<{ruA9Xyu)_8pf#e-|N-pP2JIBOquytv$WT=+bnPH)_s6_4%h)myaA z2<3~_qwl1Z-4)0}{1Z#9e-BxThvdpR4ZnZ}s1wJ?&dR9=7o79#c8*7#W{GyldYd`pM zFUMDjjvl{%ecgHPyPrR?d;ZKyI`z3sieBFP#Ku4TEFBD)TyyvF%#niRy~NAs$4ja{ z&dboM(=OHa8Joh>}~FN-4>NR^V0|bbd$=Ay%xnYEjC{-VlhoG+~F@dtHUgdGdA+ z!0*c5=m`R>`n?TUg#lQ_{BY0jp@#F(^}Hhv%i3M_Fg^b3-b%bSBkLixT?cJ#@aTN^ z{+R9noW1BI?fL4#ZrWvD$Ups~X3JXfLDOK|4$4x5zFIDP!(7!SQlGh6JemXqlVEz#Bs9@)-)AO))S!_1D3w{(%iFXgQ`$6&IQStkaz7Tvjnio>g zUZefuMQa_K-2L1Z8e6z39gq#IFQ00BRh!yVyo0^5p2>YtN;bnvwej#U)BO<%k+wWP ztMy56J+sI$sj+ul<9^m5HE)KlQ=!r|={z0os#!Npvrng=7dM++d^e(DKcaVj!V|Ur zr4wOWNo&x`nXMUkX^epIQ)mp-XmL@kC*h=yMmNmZ3ynd%Uj7RPiCQgq#VGB@r^ZLu zuT1FXr`nvAWNZ5zV1>3nm{3feYC#)SUYGvdXctYwy(xYn}Fbz zlmQzke*rcSoC7w*05;T!wt(CI3j${esu}1#4ZE9k_fMgJ?)|5b>!cMhPEpApl!ia> zf1&()fqzH&pIKnAHiO%yGH{)!V-QP*a(X)-Or=9i;#nZ%(1@5uMyZ1{I28Po6a20FBe>`o}Wh+b0-!Ltd+xi z>|csq#u3mzo?M@y&h0&p-`6v{P?r);Kjz^CcU&f#JSMT1;YA3bqaYJu|lv*!1GNwF{ zQs3^4T0P%6Tf1F?4EQUT#(z9)-}jG3kISW7&3SF^`%cZfBqXz5*xnynWqS)h&tFa_ zbGNR4yC5E0U#{Fr_F8Luk{fKUJRY61(R2V@zpka>P5G>)MHyT~yIox4&%JNI(Nyt= z6+?pI|KdJFy}U#Zk=b?U*ua?Q#5{^H2@whg`2s9#~_iNCBH_Jwwvt}*$5gFtB3T9Sp6I0|@tO_S5N6f=Z z=&CJYW z4P{3!QaTf zoai;kamsg&<2Q54GoRM%EkE&K;guHi^4B&S* zZCS#^Hr~2bTFcQ180ML8m#^=?oX5E>b{YGS>?~;COUmj>aKM-{=)Rp=c5(Bd@!p1a z#q5JdIbEoA)8xr^jl8zjf*Yd_MM=+IuJ-`vx>-CMBeHU-(HL0&@te!}(g zbR{u0eDcS&sSdL)unPy3U-4dI-~4q$r5)#rvVW3wp@DP&U>;cgiW3C?*#YfhR28OZ zsx74<;epPvHQ~0qA@$-30eMlH&dc?9PL1H=4O40t3|q7h9`YP>J0-8jgzEH`&?={+ zbtfN2-|a7>E_#!CJr3w+r@GvJ_vlPxuQ6T|C%HLV`Q+Taixd>)-435Oc{h4tQ~3oK1pqiZoY;Q>b(l`eOKC!O7Jj2+^Y8D z8m&C+llb2^ohs}scdiw&$4^%)y4^|j3HJ7R!Vs>}CX3oFIZ_&yOnTRDZ|n5!H#6xN${($r zqV`9kledz;;7&T4EUxov>#d_y9V-+c;8mvmD#l~A3SPb|S<{IA@N_jQ%oCDBS6j@? zPin6>AH%OU^&aC^+R9A&nwf@ouX!cqln`(gLX@0hvE+Ih5zf67uRQ58O9)z;y@aL;n2?M87J z*R>;AwoXXft@Jd~6@OgHRmoek^&wMSnSGMf`-c+VcK+V>#woZ~Nu18K`le1{(lMD?Kr zT%z~CF=F!#77!d+()I*w*WX|49!G~aE{9vN;~&2ve%*7Iju>TRgdj_kA|`|imEa{H z+xJbm14RrrGC~v{YQV!(vNx1|^@H_@$Em@+c;1b9PK!(mnU^3cPQR|ZEP+6GuXENi zQm#el#8j)WXG&0w)q55j6dH^UtKI@RYfi7LzLq;ORD}*^&W=FTfKsv3$e*Hi}`UjDDBi5DJPC za*o^687oiSi5rCzKdF@*_Op)<#Lh%H&14jce{DH)Q}2vHEAN=8Ebd1$d>PfXcW6k6KPO=ypd7I?z56Q@K7xG^Quf&3OYOe?&x(fcmGVcYMK4@L}xSiw%2q!(b4oH z{-n9jTO8&pZL^EkSa@aQS1Z-Cys|f4wMoWYn=GoEIFnH}l-Q7!jp10E8f)S>|Iv}V z(uDT}S^?F$xF{37f=@>#O14HK zTcRL><}Ys!A;J6elo09Xd-j^H=qE9DscK>)5aLl$+Cr*P4dQ~HB`uKxPsM57)b2R(TG3t^b3V8OlH z*bW}9+mgQ0Q^U&T6%6n&A^eDRTptT(xZd;Gs;5H{gGJbFkpQ%f#7_Gz3pbA@d50&%z^)|iRS>}uic+U~|735oE zNOwO-3eOBLFwKDcR?BQOG$_VL)B44wguE7HLz1tp7E=}-&DD-u>k3+{=gm>^;;rDe z#OIF~TzvS$Rdx3>3c_|fz2U^3H9bV{70b^)g5UUHs9OhXs}j9ck9rqT$tsC^7s1TL zsnwmg7qBKd>h7PYP=@`5eo{g(>Q)7cXYe%niMAHLy-kcz%SFo-T#o%5VK5bKBa7SX zYCN!D7cyqvUxPiAVh;#TLefLc$VlMaA=EF#*`WnWLP<#$@=^kBF3 zINOvCAi$6re-YW}+_A*JfLq75A2H8Q(s$9tYz*`Og>8xyY+-*tT=Yf>A||VLb`aay zRO140izMIPG-Qr;p6kRM+;rqIxP(~Fk^NjxAMJTGmR0XAX=l$k@9*^U5Q0~?TKG$9 zlC8~OQXh+!JGdhHC0O)s%;{ZFE+Py21-3UMz}C|(+2&>2*e`5%Wk4USZJp#_k2YO< zE%_e*|Jlj1gx_YntlP7;u%jV>`g!bqX<=W5QOI<(AzIExkj!IWmdW$Ekm1RC(H^B! zry-)Q|KiYu@Cb1M$7$H8AXUp<6QR-92@J6|M6jN&eS5+Y(NU99Qx2$!O+Za3UQEiB zZ*+|nb7rVM8q}FBMMykZHz)UIN4N6Scl5Sq*%Y%NOFS;Jwk6{2_WKMfe6+Ye-MF>8 zNi}79u!U@|`?n9>PHxE#L_lg+p+FUdo2^HM>xN{=QVCS^w>SqJNL!7`Vk273ley8CQUvvFZ_ zFsJTs9Md&TPzDW%;Id|wR5_m0N(GXyAnT zl`uAy&^9uBA+8*oQJ#oCTLmFmZpdhi%rkiQ<5fFhFoa!)G17l}=~TcEVg?o=Al zTktrvKHV{s(6^l}2>o($wUBYQ0L-0I8tl`w=+lgslc*xzaqXv^EJgp}YN6t8kpdb# z<=5273Y2f8TjFk!xVl-ti6v6z;%c!vjwLrhcTH4>X|`!pj8`|(uW51D-pI3glWGH? zxKlZ5qP85%-?;;Oz7S5=!Ajl9Isq(nB(S!LCn>D%l{qywPnYHud6$58E2PF*M@bP%`w7jB}Onv(evI2CxRgM?=5 zdMAqBzjIfi^VGvp#VB(h;*~XXS?{cN^TxmrD@79rqmG5ku2-%{R$k6E1%KZYqC_9# z5nKfJiQfvoTwrPUw_~ygNWhwZ#3=-d zN-E4)2n>Z(1c_)wJ2);cI041z`M3=hiVlw=EKTzXk*Ma!*P7z8A7-IF8FkJY;6u)3 zbVR~4yC|ZI+7r5gP>4i8xHWdP$I78VJu|SdjQ1>ILhOd|X_|xP`Z`gQ4nPc)x)S1wuWAcaBfk#x5BhHjBR^*J~EIl_L7J0QU|C%maM`gF;%# zg|?l>*q~N9Py3EVgvgxhusTP@a8qpsh2&@ma~lM8mfDxnOZ&$I8gIiHV2|ZE*&rw& z*vTG5CAof%4B`0j$_n?BgD7WmVIVN`T+T>)3~GT*<4_=iX8ip&Au!@i#9k;ukgq~u z+6?K_QsyerFy8*cRE&O0g~&gl8|dRjrE}a`HNg5HgzFQoF$F?_2tl}6fG;rfJqF8u z)Q?#pL8Z>LTAHC^JTJ2aLUAz#aatg$F$XaQXr}Z+A*sEM-Fre0Zf@NHyD>or9zHeY;!BD%`3y+dB2k38L*O+v3Z4+;3 zW;*)L;Vks1M2PGJEv~j$|IJ5I2uz>Mkxo+sT=b(6j?h0!TCWSyk5>tUxg`iQ0?}_U z8kS4H9CW}k-G<;)s|8N5s_f1)U1M~_wv>ja9 zeqRvzQG-F&CBh=&huD|x@SB!S!Y>cxaYjA6&az>THH|NJ_p8UOkq zFoxF$bQlCo#dF#3*YBI%i-i9{4gWek*q=PTHmTVca+|c~Q7>oD#nREh($&J!*&#j_ z5+nsxa=U${@8w}a-^B)=R9_zGHq*e>odXou-0MSa0F_v z^a_>6vCy~3!pzai!+~t=hdsx`>FT%Ma`w4$e8~FVjsp8ah;HrCj0u%$LwWsj)jINn zjd6`YAB4{?q)%;cNtUjWhMEbM?imcB%??*4*sAClxY*u#o1yvP^|Q(Kz~Qa7Vf;2d z91+ql+7A?--nZ^Z+CIPfqf(Z$-^CHMyBW1VdGH|j;`Ehe4A98*7_e zsNJDnjlX#@qU}2kS>6g=rspTc(lOLfGfvYnjmWi`Cx8-FJ))4>(sC+-sLt*`{ae`b zR@d?+;0&fxzp4}4xldmPFrCMH80h$@kbajR%bM4 zAh_C4ZtOI<5vm$r+lN@Y`z^uLGuBKm)yzAWF}Mqr3hPM9tpC)e?_W{cmhp#nNYWB$ zTvzk2UM5dPT;GS8zJ1gFEIdK%@Q&~JxHja2;(dT%EnCkiVDln%P{hA4#YlKAkQ>Ze zcX^LP+qnne4V)%tBS+FR(b6za(z6WBG=Gcj^K_DSeFwOflHQq`e)Y2U_)=NzX4TiE z=c8a0-uV$X*J-59F9NLN`o21D3iBiz(A#1da6`>bQ7WS|nxX6kj~c*qz@>aPiVB?6 z@c+ zk~pwxB%L=dkTR~mJO5PNrcd!JcSgY{)zax%>cSVTqHZ&pCWepJrSXN{9AFI72JIb( z_eKttMCk^vEFct$903{JuVuE!@+vKXT1lO-_L%!jBS!C9JA)Xy(UQ>L80yiB5GM#y zR$JekfD|)hZ1192gqa-%NJEY9fk0D(O(9S)NYm`PG(^=2(DKwDm_m&aCkfK-9fHse ze0j?Tpl2tvQ@*hTm>M75ECY)>ee0X$oVFpzIUrmw)v5ir0LC2XSy<{0Jma-| zrW3@;vmnYpw4CXDaDA1@NpL!e;btdr>;QcX-X4J>!ZcuT(Vxa$DW=YpE&x7%;zO_y zrs)MO7l=j_cMU&~zJW{-rv2PS$-~6_Ta5kxQ;ex9%d1&qIb~|9wxA*z^Q(pi_lX)_ z9p@E#nMQU`Hnl}2Xy>GcCgv~B7heM=%0~DfRnp1SbQ^1~^_!P-oV6ZmmEJP#ckl1x zyZq_r2=#_`5;kV344qdvI(%mjsr|htc8g)zC2+7?x#DN6;6U z{Ei?jj8>yT(wvTr^MD)w8#WLYd2NxR{*CFRND>Nq-x=70`+N!<#^+oM>Vw5c@sot+ zwou8e8%1S#-~(DMQ>+78!+kxx?8_WH|;uPJ}5cu@Qtm4EENoU1`rLbu#TM- zKe3snEyN=6RNgThg2h%xVoqf*L(H_f_D5!Y)=r!Dg-H~|8KDYSk14;ypMP~Dw|m_M zic=g%am4tTNQE~#l!jtPG#0OO4y(rzviBd0GcUji66pUqqv$6})0&H#PE<;RMu+(x^^!v8O>3MRw374@LC5c+Tu zk@$912IAm^>h_T!A^?@lA zTlXARNlb8rR?lw}jwF0Oi(7RS@q9B5uC&XKZFIJf`!elRXnzz?7 zC+tuAMWwPVG^!*L=1!3lwmL3eqQ5GbO89n(J5qwXs={E#LVFk$gwf`AEe4}A}YwD4aQKxO5N zGGHutLc+)uKsi27?7t`zf&3?Bj+AL*OYOllT{d}<$Y>HdR8BsV+@~<3IWA`5D18G? zIx+l=G&J&tH>>d))sH385-OiP#SY~LH$mjFMIHL|ak&?ob$ulSmF8S;T5T5-j`Pl>ORMP#PD*FpqhL$SZ`P(iVO z6F9BCgxi7Gj;%()70!=ipRh`_J{#qiq}sHNw{v?A&b}-Mtq)Q-iwx|)4TCcpQWNKh zu^qcjffog>HdL^Ki4Y`OtQ0s^Otk|4l`LUMJ=3AJsi6m&XJ-BkE6{f=tfKLiG{Y4+ zNMU3{C&rdwM=N;Kb{Gd4J_ZE3_;TB>j{x@R*%ur+ir1}If)vM^iH?5f>edUys`mM> zn6aZ9xfA>F(2&ToZgV4m3k_1ryLAwQm=S8KnKorCg+EGzVE{@=lmSX*<@rEkY`J1- zH^re%P~;>xHT3V%NpQqDl5^SD8AAd=3jmZjUFT?`3Au%P_d(IbIUW{H2@-8vMq4@p z`==kFyG|{^SCyg~uXCeH~=v#uzxE|Kk*$kWGsLfWEk2;Jm|?a6UuSN)}T* zf*Qfjijr8ka^DWw-VHK5|CTDG@t6D+Z0L~un^Yn7XINx-l8hTe%0C0StKnlMJs2eR zJ5UXDiC@HWyi&C|Kqkiz`jFTN(!PXD1CeCNDyuRp^!@Bxi7sA$2M3rnW%L`)WrA=A zh%(039X`tz4Um6j8j>c)_N>%KBK=E9a>Te4$D3z10lMt%-(iVLh16qF{tC;Lx>tIc zNJHiA$0(klh-&(y%)U(El_^LOJT19AoXS$50hTHoSezrX#N9kE@T*v@DsrLW|JP@3 z*FICMIw2HkK3%^+1Gx<|Md*<9f5Zh!nT*yyBE^Zq;Xo<1DN3C`r(oNd=e+sNImtuj zY1jxa_(jn@BnJ+2QfMY{U6I;I*s=D29ppWqnzcpMNXuBww`$jthCaBISKK|N=}`NI;A#vLJekiZi#Yjz_AR7Yo|}w z|EADG=a^C)-0-{A)k!E@`PbYyBFpG!pQBMQUSINnJN)8$s~mU)W$Y;PPGi{O)nCTR z-+XuOqJGB^&)9m4-M!Qi5y6LY5bXMf3N;hK=VA|$maZT<0C5XV^a_}NFImgXt`FrR zIGOp84C8=i7lKBn?6V91@|cv>hY|}Z#SpdvN)hA?H9aJVbJM;N$_KO@%9p~}y|9N6 zCGfVRIDmN#Ie?Golf&Zw6aai3LIJ-K^G=9cUc$4Bux%2`-ymIe7%nW)ptsg0-eW2r}rK1d)mZg+GDrBBazi zPpbdnRs&od%1`j2%O#5B15`MJ|Lse^?GT;TfPFjQ|0*OO1_STXVSFCHCm}Wt-#>f) zDLqs8B!m$XZ`!9-!aMXW@(J__a~FX&z8r8HL^90B?Tx2QlDIDeK;L00i}SB|Y}+V* zypSHI*hR=e`9+8`(93{h3-IjUq!9Z(^+Wybn7~_Z`86bY+Te47>roKb=XbEb9m5c; z>diiC1NyM~-l_c)~aLu|!Y>5n7^+HVnPVy_jS!kHwx(Y2~uy;`KX6=OA&r~j(rHYEWj!Y=io0{SENP7e z?=dA{3M3|jz_Gxs4`ZChd%bFK)tZaZNV+l_xvRz%u`;bkfB^4#T;&j;lW-Z zN5G#Cyx8wMaDRzTO%H=PhNyb?)1BgG%@99dcZ`b@?KVZfLeqf4!|o`9u4+YaIjkyX zRUM6O#YPD3bfnjVN3v}a=H7~#$?Cn>bwVZ>*oFP{`T<)FP)Ms3D0K2_mY=d?8m?^d zs^2`|lwvD(9z9HYxo+c*-*rHex1J9?WDEq^f~}o*1;w7 z5CBvB2d4OMm>;sm&x+%?fA-VNI5a~9%cpeMY+c<61VCfTI^a9&)8B-^xA)bK|N6PZ z;<93f_o_6UdHX+u@yZr+p3e4}1>d%c8+^CgHPq&Ip3|WVe%tM7U znPFych90wvs`+&Yv~3m_GlCtKHRhNwSqF*STkPW0oDt4HQs8{%CltWp{{@uUYq}dP zr2@t=`EH-Ku``ek@umw9`J=cMjs}1>C(visWI}+Nc^G$+!7j@zXe7%qX`7brl;$Rx z+yfv6Tii;|eeHM_328(Pl5yzGIT?F84SA*p@fFrKt^Jgx*$cg$qj?4qAj*51G=lDd2KtTm=R^2RB+krxP_nw^Vl19RES zJJXPu`Kioi(&xA^9gGdQJ(CNOgK6K)-hMso@XKl+yb2?b(0M?4Qlx$Cc@h8;A#_Sp z(m%c(*xTLEF??2fTD_^Dh{T?Z>5JF}*7aa0$MpsADoMcHciC4e{U#wgm!cpgniQfw zPE|o3lAVwxhiDA6Q4yl`)6mb>*q!KnPRX1_cmHVyPqPKDjxpEA=fk(2r#}aAn3Fmp zSd}R^r2!Oby-1QWafCF@yqcdr0cfN}*Q3D>24D{g3Ock>?Y}7)!H-Go^kq?!6IG5= zkpBru4hYG4oNSLQm&ZU=ZsOVw{f*Pl9^^n6*2b8Me6N<-W#tl%*@94zvo(Y5J0~Tq znO-L+zO@3U8K{H2>^{Nr*uxxzfFm{eEJX^~8JI9luu*_L@=*PC#Jd~CX>3kLN^VBN z0tSteEQKW8H%>||(+qn>3g#GMIBjdUWCdB6#83Om_Mj!Bgs-s=q=3a?ZpNK7C+1*$ zC@$Z~@}QqRQALI=z2t+uCI$Hq1zFKq*L}3D<|>L%@PmE(U&;ps3}CoWDYf!AG-@^cZF*; z85exy_S=jGi+^7X+Qakh4jQXJ8v|sd0K9#rCA}4paI+{w_B5m(W4ah;f1MyP)UGZ@ zT_MgA@yqd%%#njNmh!U3`L-yv;B-sGf}D&(oRpMR z8URWQYC(Tf5*EfmRFxHW#Kb%hF7Sc|EZiu_-xXzdDISQ}R7bmi0*(?j&K>Q9v)m?m z*|xk4u#XY^8fe~nWP<->ftDB#aOObxU(VPgL*}B_IONu0B*BeI;7ph>H`({OlTeUb zQIhjlI=^DI?%V!s6ONO~fcY7yLgY7YE>Wsvup*q;&gBSuEl?E8?Xa58%j~u6X`SVw z?i!49&?S+l>Irn-Wqd4uyA<0b$gpik(NF6GQc*8ABM5e0in1KTKM9QvjP~5%J13&j-=80%g3_#re{NyMCB!x<&NGCH zUdMdKrjZsqHRjdrC*;YajF|0wi<##`y8z|{|Le18gtD&;${D#Em{q3(tZPNV7BjyB z9l)^dQ(!!5_JcEuhO@9_5ZGR$1#!P2x)Di0Rz#FZ9X;=-z!b&TQL`OP`~5pI2ka5b zkHe?m{51&K;!e53IC4mC?NGzuZGCT7`rp~Mg+iL*oiL+CJ8r~kpzRVEdlGx2C z!;Pe5W-S{E_K4Yy_~Ud&L}m~67j%F2hah%I@|l`UPKfwt9(|Kp z2p5)?ua!p8f1VWPVTOCFP3)SRB=~EDq@I4Yhme&I892ORyeq*d7G*WLhX{Zn@(?5< zY0_4cDI%J$iyYC4k3%yTBioQ9BFnq%vKo<|T3J3#Qx^%qA?kN!%c||hGnz!jRx211 zBhrm^GK;IDi6fFhRx{lBRx{F7BYvEK(o{b(6TR;Hu1|g1+e-v@ENr2^zmm;GC#T~l z(ln>qroPVu+mHFFRqH1L7zP1BQ%|0z7$>5qzkKJ6F@B(oj zFf{cRM4CE!8bz+rfO8tAtNt32bew+?D&Wp=ReESAp3nmFGLE&nOMG}F65FBBPj=P) zH+7i)f7A&f{$F*LumE)&P@TT-C#e4dGu(f1h;=Of8^{_B6Y_R7LZvo`r_o>imDhW#%Nl&-B}-Ig6==q5YqJ<4N} znoSupOTbG4fa<(}tnS$3U~}cRh}XhKlZ;c&&rolkr@Ffw28QM6GvJ(a;1c!uVCem4 zfrKfksn~93my0dm^jH{@LcP8&iD9Ob!p90f!z_w4h}q98dVD8e^NI0 z{A`VZ0rR&g<*a=wW&bLB=TJFRxF4pbAuoEahYT*rbhbY7T(d-Ut`)&a+sI;Xl_^2B zY@zY(agX+n(@rzKkj4VOj}3_&3*(R=XjRdugZ)FNld$Dp*7*{(c5mYJynj2w{!vl2 z8ttgy2sR;!6e9qAAXP3VjL-HhAb)uU9iyGP)-LE!Zzkhq0*;$J7R@~;i0s8S1Dt-o zJu)T@1@=&A!q_!3;)RS9|7;#t@CY0uU4c7;11LQ9bRGE%6gGGSr#rk91X$+zd?Xo8 z>H%q_47i0N^Q&;!y5zyeR9;TdIPGjfLym)pGA;r5D*dBVrD{T-0t^H~7@Ztb}*wE9|=WKsg^d!bI z6=jRkOW~mS=ki{%;pK4ZI;M{+5y{i<0o!a@lSR0-IKPN{S!Db6N#ejp9qnMC=>ya~ zJz#!T#T_r+pfE+oot+p$u(R*n^h=~?n{>9o#gXs@8HVqhr#W>VbM+}Tzv4CWbEd($ zTGSGB%p}07SaZu}h~{S7lwP?4x6p56jGp!d?Ad+6ki{6c)#62LxCz5*40LiZrp{yU z+>#Z_PS`bX@wxv_Bq#7$YE-G=SpC!dc<*~3#|2Gk4MKuPYianpCiJ?km^^LSH220G zVAd~RqjLYa|gE%cF)D7z*$ z7jw7{YFGKBSnW?P8uOZx!88QLHhqP5?z_5?@u<5ZZMJix+T_8`v$=6P5A|K6pYc|9 zZ>&{kCK*CLjyH{l(igce<-GJAf)^aCJ&Lp1c35B=zAxRT z%Ui(zIlc0?#(@$LAO%$u;O|em_P@AHhCEUL zQRo={Z8HsJea;HLDx&|8(q?GsnRIkl*_i1_%iGpN<&=(%CEP z>0ADl&aKkt}wg=ExoEo&X*mHr_xz{Of%V>u4 z8j1Ehs~Gol>Io8He<(~xA#qSb&d=#*{m;91T#aTInmRIJDyo*t9xPj$K2XL2&wXzE zm(KBE1Iox}L^1!bTd7C~>rM0;^Tre{DoL%GGwrqz>La(eRU98xg2Qu;R{yo}`8YwbVIayM=~B31P*k5{YB%aCL4ak}yU2mor8#j#;^f zt|^b`(TE5nFlibq91b%aSYZD?$6&+~&lN7QFlK%ZQ>1p_20IQFX&UrDOh-aTMj+Z< z8yd0JQB#?kN@L?RF8c5uf*_JCRE}Uo4-?3jv)y0I**9oEUG2q?61j6{qcSBlW=X3g z$uLzwG$;$WmQ2@`NG_-O9TpXlRsy_I(K|&o)4byhem+rZqw2pHZ>i1Ro=(|V`~ zRw)m5ch>^v>~r$u3^ z?$FHH25wG_*eN0^b{aRM9JFq^x3(Z9Bcqxs9Zm;5T1FYxS%b&NJ8Sd(2&dP##l!SE zp9<(~5A$(muIyCkZS-H~vIh+j`eQa@^_&d)-~?uXmW?8zKfw@rn;F|V^2p4-3!WB6 zhR%&-lAG4hm}Xi_%)pzDbi@48|8QXZY;5V)ndr{uvzCVa`8It+hAi>3Vho$XjXP$; z>?Vo7Nqbva*LJ@*>6R}^X}F?h*9IJfezNxR!0YFf(_3;E*=e!6OqFPv*Y$s;H%|~G zY8iq60&1rM0z&=gA?avpWMxGE*OKwC3}+fLHfwAcU5~1WZTkx^YffQpB4;b-OGR+V z%|g))!kU&83IxX_U2x}iJ-&JyHT^JWP5m{M0$e(CHim$l(Jo7QbuToCc>6dabcPGhUoJ4MCN|Bk@`3X`;A8 z3S%Xtz-sgz*PTHiqz?qlo{;>P3g=tBB%_!FaV&~3O`i13eLsIDogkv5+T!twE5_~j zm;3wibThNEG#2nH?ds+8?{n?sJ2Op%BGk_)_ul1m5)v^WgDl{2j^mN`8{+YaMM-k? zo5zk=r(|gw!9`he^Hl7o*x$d(@CwaS)X13RuUVy;VqvBk^T~YPxYt`3n30)k`M-C1 zBBM4Q3(ONBGvw_XGfGL-H7L$j=P!t7INK3LmC&OZ=0V~sE+wBfY(S%|KhgNtTT7nqEf=HL=6yL>+#9aO zd)ET%hJLq0{y2Q4|L}gHd^&x0vB~mm1R9C&+46ZgYu4%3@gCjyN(Hm$4>!+n&x`M122v1KAs9h}~q$|b5 z@AQ@Us4TQGIw8sW-%DOIxdpcUG7Z&2hHc*zTcC;3(5-uZ`fAsz%n(bASW&Eh6LBt{ zSi%_&f-PbsLb<~ka3g%8OE;(5h-Efz}Y@d%1pi5U2jXq zpKsTLNr_;kC{K;A?5M^)DJtk=H?%D}R;}*aM!&%_PK3E}AB+R4LT9k_C{*5na~Ywr zd-{pX3cpJCtzo;=nq}g)JPgwsI#*hpUj;1-6}mEm0=F zX^&rSa@?0@CMCtR6_VwbhVIK@7e2S`8?#Q+nvQGOdf%J}6LQwHY<#uShK|Qq^Jh(Y z_QUD({HVLleb~MM`fPkjP%@Q^m-ToY_$bDQf?|YC|eAP;%xZ15I z%ig(J^E2?_$5`uECx^UZ&`L{*$&Np!o^eGrw>h4Wp$JL0?138c0oSRwOG12n6ALqEg=!)wy z)-LX>*voN8#8}A+ z1@6+#-?70(F1qm!K`FFy`1ajkn9~WU^SijJ5q?Kaa3kt`_pKm9*Q}qzLx3-g)KITn z*fbA+yd*N0ANrkF|C~gGWWo8kWm%CKNJJgl7)-bT`|Q;ru4GW;jifExIWR8H8uM(F z!UYV6FA2>)3neSQd!)}3BlI(CAizpRk_Vxbc~J~1+Fji~!UW!IU`vqLH&aN6s31@8 zVZQY2!0<@CZe@ni!isYVGh{~qlUX&{AWGda^`Ml>7=DX{UY8sql{m_ff&>;XQ$(LW zxJjo~F1cYABs)psP?Hfs=!yjg^{}CB2!Wk=0*6dzBHjFntUtK#$%cqj94}T%joQ ziiqS$xiD1{FTWt-I^qiSKQ}|Ww_ROqhYzh}K0xqUxMZ6}BphsEJkCXB@gHvw1#S_8 zPJ;v?GpZ0xl}yCcomyPM3FSc1sYXXp_Ouw$7Qj>jK}>8*;eJFg5c0QucXb|APuT+fk`*C4_sXRFI{|N2aBBm zJ>&pgc>kg6@9ePuQukMC*vRQxK>r*OV!Kn0u)(y<$b=$S?Ex8N^_wkWdCYWEXyMm3 zDe=v&JS9*}rcK<>M+Yk(gz^?avgp~8qOwHa-?n#lY$qlwKGul@O?C~`q6{a%1uqx* zyuIeFhNl0gt?P_xV(X#->0syxf`|r!^xmQZA|i?ih!jCO7<%tDh7N|_r3j)3NFwhU zcvLAykq#X*)P)kv1ORlE~p z5;e%;%jk$uG8VVV_xWqd8s7V`cCY{Yt21?i`aBwtbt~s$PF`AkrAJPE_^DbaM4N>0 z%Q_Yt#pthDm9lZo(_Ei4dzkhNwGD2R))}ho4(^g49Z+oD4ebfQU~9l|&Lf8ZG+Ecv z&E4x@RP&N5UBe~WuJ|>!tWCa?dPHH*7NZFga{74P?36!3z!@^4jw;&=(uT>|y!AtS zFMT}EqcRoYYWciZSg;SuPjkEcd|^~>{VO?HNE-|dQ+A+KstFf(dsflgciiJ`#d|7o zF#j6wRCd?u>}Wl_vkIc=st`yu)oRZDE>ESa$$LDWLwHP_CC$cz6Z+h&UMsYX7P8C% zyjAMCW1!%XW2dJ^^y=@G9$K2!$}*I7nKZjopreNsd*#8*_wweC#o$Ohnh;xo$HnY} z>*I+08?vX-6BzGNxjjrPC!m37KrZt(;TioF4lIQKvw2wbk}7( z<~pg!*)U$Bnyhgb8=ERiA^WmO)zA#30l}_=pqww}3)-Y4N0+n~ZMsCB=czo4lexj- z+ks*Y8&}#3zPUrWwX+hQf(OU4dC4z@o0g1U7M<4W9Qd;LEpryS@a-1u5DQCp?>}Lx z4*L^(i9OrQBmI;t!kChC#;{?*)lb8k*$t@@GzO`twyTPH*zF)0shDVG*s3Kh1^W>^#bs0K077T0?q z#LwPL|3eR_e1F7o4+Fe`YcH@qM|jvqcWYbpjr7$Dt5RZw2=3CXB5Yjwp7m3KUiB-+ zV=jEA#67owOWFCWBSULL{zWqqI4Wo*9EHo@zNzSacmHzy;x^Wr=>E;R4q7>b!X@zD z=VoZQcGX(2XHB&%{nh8&ndruA{(~DWv`!7Z6H5&%H_X*h4J&Hn)Xio_W^V|QL02TG zT=Upr!wsyB&9O|fzT^x|w)5I1FCXDDnD~2ych{H0_V&RqPsduvD5jPg%AqQMaI6MD zqQ5CUtM2gQ9=S|uK_&a`I3U`M^zegz8J%A2e5g}26g-UbSk~#a;kY>71zW?KDQwd; zQb8>mrYk(CruAfrv#L447st8kR4MAx znrd_D?I!c|VAE3Pi%Z8vC0pxHerjUyaA1qUV@&e|ktCfSZxTCure9_R!oz;L%xh_aS$fb+voERH*OPzF6 zv6z|&xxB;h(=_>FF^oslwN!1^9H^Dw`;41;$v;3}qb~&SSF+vq&h^mkL&9!dQN2pd zM9;?g=B(qY+yyp^W2>WM#k9H+$rjxUV?(=*x$9$IJxW0{u0?N)ELwZlSb}IJ8IIZc zU)p%t*x`yryDOGoUtpK_2F+I2v`m1U$n6>0i~jy#ZBpx8b8Vbn^Z`<~ElM`il`!cjxaj))y|)J63T>n=XxModfmCTOcwK%XPO=)2q6fi; z3NQ)@g%eKJu4Xhx_9%adOz}3Vm_3f}x#@2&7=caC6fO)gX>n9`+#4FT!8_v}_f~Vn z8HWX2S*ydh5hL#wCzYvLs~-}ll?j``(|cK-7s?!uT-7080IP4SR$;dqK=dd2^-teI zNDei`sBtw1eQlz=Ffhf%rz+PW3_y;&+F>c z%U8`E9=k+kLl-aP`GDCN(#n-R%gY&GvsT8pXJu!cumTHdPx>Isw!ldz+Ug-X;h%5m z(0Oc@+L{oJ>JaNcZb9fzv`9~`zSlaPMw_uX2FZ=?*6zfxjzkyVyNBXQzv!@*mRt9< zyFO@O0ofAt99NanFC7%%qrEsOuoXDQ+ibeLj!7eE>U(v}4@C2Z68f-2-k{(wPfPMc zr-x?p!wS7R1~SbgUt-Gz=;i?2LNfzQABkI%Vv z2XBvk+l7ZIhD}UjUYY&aO;p)0@{wvfo~CSX_K6}&AOaF-a-vmU|9fXMmRfo;@~ho(Gv|QuxNm$O$3h=a-jK;h#8*#0NDD}tLv8tA+O=!)k^=Ny0&58(f|{CAQ+ zdI43=aXwxG1Tr_E1Th|ALIQ(yz~to};B0qLt|avV=?5i$;Sppo^&?=C&r6c>kk&~L zdCCKR@%&aqA%&9`UJl{eA^*Zj$}pr1q=kq>hK|sG8IF`CNb#gu<3qeTFu(_1B+Vg{ zQjqHJLkgpqKdNz30#c!SNFWjWJHel1FDVzPc0A-d7xz2YQ6)*rLMpWmSybZx^~w?9 lMT#el2M_VX3BOITqtT(R79}u)e$FapkQFdJI@5lh{SOGmfs+6L literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/LoggedOutRefreshForPushHandler.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/LoggedOutRefreshForPushHandler.scala deleted file mode 100644 index f626d5b08..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/LoggedOutRefreshForPushHandler.scala +++ /dev/null @@ -1,259 +0,0 @@ -package com.twitter.frigate.pushservice.refresh_handler - -import com.twitter.finagle.stats.Counter -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.base.CandidateDetails -import com.twitter.frigate.common.base.CandidateResult -import com.twitter.frigate.common.base.CandidateSource -import com.twitter.frigate.common.base.FetchRankFlowWithHydratedCandidates -import com.twitter.frigate.common.base.Invalid -import com.twitter.frigate.common.base.OK -import com.twitter.frigate.common.base.Response -import com.twitter.frigate.common.base.Result -import com.twitter.frigate.common.base.Stats.track -import com.twitter.frigate.common.base.Stats.trackSeq -import com.twitter.frigate.common.logger.MRLogger -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.frigate.pushservice.model.PushTypes.RawCandidate -import com.twitter.frigate.pushservice.model.PushTypes.Target -import com.twitter.frigate.pushservice.adaptor.LoggedOutPushCandidateSourceGenerator -import com.twitter.frigate.pushservice.predicate.LoggedOutPreRankingPredicates -import com.twitter.frigate.pushservice.predicate.LoggedOutTargetPredicates -import com.twitter.frigate.pushservice.rank.LoggedOutRanker -import com.twitter.frigate.pushservice.take.LoggedOutRefreshForPushNotifier -import com.twitter.frigate.pushservice.scriber.MrRequestScribeHandler -import com.twitter.frigate.pushservice.target.LoggedOutPushTargetUserBuilder -import com.twitter.frigate.pushservice.thriftscala.LoggedOutRequest -import com.twitter.frigate.pushservice.thriftscala.LoggedOutResponse -import com.twitter.frigate.pushservice.thriftscala.PushContext -import com.twitter.hermit.predicate.NamedPredicate -import com.twitter.hermit.predicate.Predicate -import com.twitter.hermit.predicate.SequentialPredicate -import com.twitter.util.Future - -class LoggedOutRefreshForPushHandler( - val loPushTargetUserBuilder: LoggedOutPushTargetUserBuilder, - val loPushCandidateSourceGenerator: LoggedOutPushCandidateSourceGenerator, - candidateHydrator: PushCandidateHydrator, - val loRanker: LoggedOutRanker, - val loRfphNotifier: LoggedOutRefreshForPushNotifier, - loMrRequestScriberNode: String -)( - globalStats: StatsReceiver) - extends FetchRankFlowWithHydratedCandidates[Target, RawCandidate, PushCandidate] { - - val log = MRLogger("LORefreshForPushHandler") - implicit val statsReceiver: StatsReceiver = - globalStats.scope("LORefreshForPushHandler") - private val loggedOutBuildStats = statsReceiver.scope("logged_out_build_target") - private val loggedOutProcessStats = statsReceiver.scope("logged_out_process") - private val loggedOutNotifyStats = statsReceiver.scope("logged_out_notify") - private val loCandidateHydrationStats: StatsReceiver = - statsReceiver.scope("logged_out_candidate_hydration") - val mrLORequestCandidateScribeStats = - statsReceiver.scope("mr_logged_out_request_scribe_candidates") - - val mrRequestScribeHandler = - new MrRequestScribeHandler(loMrRequestScriberNode, statsReceiver.scope("lo_mr_request_scribe")) - val loMrRequestTargetScribeStats = statsReceiver.scope("lo_mr_request_scribe_target") - - lazy val loCandSourceEligibleCounter: Counter = - loCandidateStats.counter("logged_out_cand_source_eligible") - lazy val loCandSourceNotEligibleCounter: Counter = - loCandidateStats.counter("logged_out_cand_source_not_eligible") - lazy val allCandidatesCounter: Counter = statsReceiver.counter("all_logged_out_candidates") - val allCandidatesFilteredPreRank = filterStats.counter("all_logged_out_candidates_filtered") - - override def targetPredicates(target: Target): List[Predicate[Target]] = List( - LoggedOutTargetPredicates.targetFatiguePredicate(), - LoggedOutTargetPredicates.loggedOutRecsHoldbackPredicate() - ) - - override def isTargetValid(target: Target): Future[Result] = { - val resultFut = - if (target.skipFilters) { - Future.value(OK) - } else { - predicateSeq(target).track(Seq(target)).map { resultArr => - trackTargetPredStats(resultArr(0)) - } - } - track(targetStats)(resultFut) - } - - override def rank( - target: Target, - candidateDetails: Seq[CandidateDetails[PushCandidate]] - ): Future[Seq[CandidateDetails[PushCandidate]]] = { - loRanker.rank(candidateDetails) - } - - override def validCandidates( - target: Target, - candidates: Seq[PushCandidate] - ): Future[Seq[Result]] = { - Future.value(candidates.map { c => OK }) - } - - override def desiredCandidateCount(target: Target): Int = 1 - - private val loggedOutPreRankingPredicates = - LoggedOutPreRankingPredicates(filterStats.scope("logged_out_predicates")) - - private val loggedOutPreRankingPredicateChain = - new SequentialPredicate[PushCandidate](loggedOutPreRankingPredicates) - - override def filter( - target: Target, - candidates: Seq[CandidateDetails[PushCandidate]] - ): Future[ - (Seq[CandidateDetails[PushCandidate]], Seq[CandidateResult[PushCandidate, Result]]) - ] = { - val predicateChain = loggedOutPreRankingPredicateChain - predicateChain - .track(candidates.map(_.candidate)) - .map { results => - val resultForPreRankingFiltering = - results - .zip(candidates) - .foldLeft( - ( - Seq.empty[CandidateDetails[PushCandidate]], - Seq.empty[CandidateResult[PushCandidate, Result]] - ) - ) { - case ((goodCandidates, filteredCandidates), (result, candidateDetails)) => - result match { - case None => - (goodCandidates :+ candidateDetails, filteredCandidates) - - case Some(pred: NamedPredicate[_]) => - val r = Invalid(Some(pred.name)) - ( - goodCandidates, - filteredCandidates :+ CandidateResult[PushCandidate, Result]( - candidateDetails.candidate, - candidateDetails.source, - r - ) - ) - case Some(_) => - val r = Invalid(Some("Filtered by un-named predicate")) - ( - goodCandidates, - filteredCandidates :+ CandidateResult[PushCandidate, Result]( - candidateDetails.candidate, - candidateDetails.source, - r - ) - ) - } - } - resultForPreRankingFiltering match { - case (validCandidates, _) if validCandidates.isEmpty && candidates.nonEmpty => - allCandidatesFilteredPreRank.incr() - case _ => () - - } - resultForPreRankingFiltering - - } - - } - - override def candidateSources( - target: Target - ): Future[Seq[CandidateSource[Target, RawCandidate]]] = { - Future - .collect(loPushCandidateSourceGenerator.sources.map { cs => - cs.isCandidateSourceAvailable(target).map { isEligible => - if (isEligible) { - loCandSourceEligibleCounter.incr() - Some(cs) - } else { - loCandSourceNotEligibleCounter.incr() - None - } - } - }).map(_.flatten) - } - - override def process( - target: Target, - externalCandidates: Seq[RawCandidate] = Nil - ): Future[Response[PushCandidate, Result]] = { - isTargetValid(target).flatMap { - case OK => - for { - candidatesFromSources <- trackSeq(fetchStats)(fetchCandidates(target)) - externalCandidateDetails = externalCandidates.map( - CandidateDetails(_, "logged_out_refresh_for_push_handler_external_candidates")) - allCandidates = candidatesFromSources ++ externalCandidateDetails - hydratedCandidatesWithCopy <- - trackSeq(loCandidateHydrationStats)(hydrateCandidates(allCandidates)) - (candidates, preRankingFilteredCandidates) <- - track(filterStats)(filter(target, hydratedCandidatesWithCopy)) - rankedCandidates <- trackSeq(rankingStats)(rank(target, candidates)) - allTakeCandidateResults <- track(takeStats)( - take(target, rankedCandidates, desiredCandidateCount(target)) - ) - _ <- track(mrLORequestCandidateScribeStats)( - mrRequestScribeHandler.scribeForCandidateFiltering( - target, - hydratedCandidatesWithCopy, - preRankingFilteredCandidates, - rankedCandidates, - rankedCandidates, - rankedCandidates, - allTakeCandidateResults - )) - - } yield { - val takeCandidateResults = allTakeCandidateResults.filterNot { candResult => - candResult.result == MoreThanDesiredCandidates - } - val allCandidateResults = takeCandidateResults ++ preRankingFilteredCandidates - allCandidatesCounter.incr(allCandidateResults.size) - Response(OK, allCandidateResults) - } - - case result: Result => - for (_ <- track(loMrRequestTargetScribeStats)( - mrRequestScribeHandler.scribeForTargetFiltering(target, result))) yield { - Response(result, Nil) - } - } - } - - def buildTarget( - guestId: Long, - inputPushContext: Option[PushContext] - ): Future[Target] = - loPushTargetUserBuilder.buildTarget(guestId, inputPushContext) - - /** - * Hydrate candidate by querying downstream services - * - * @param candidates - candidates - * - * @return - hydrated candidates - */ - override def hydrateCandidates( - candidates: Seq[CandidateDetails[RawCandidate]] - ): Future[Seq[CandidateDetails[PushCandidate]]] = candidateHydrator(candidates) - - override def batchForCandidatesCheck(target: Target): Int = 1 - - def refreshAndSend(request: LoggedOutRequest): Future[LoggedOutResponse] = { - for { - target <- track(loggedOutBuildStats)( - loPushTargetUserBuilder.buildTarget(request.guestId, request.context)) - response <- track(loggedOutProcessStats)(process(target, externalCandidates = Seq.empty)) - loggedOutRefreshResponse <- - track(loggedOutNotifyStats)(loRfphNotifier.checkResponseAndNotify(response)) - } yield { - loggedOutRefreshResponse - } - } - -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/PushCandidateHydrator.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/PushCandidateHydrator.docx new file mode 100644 index 0000000000000000000000000000000000000000..e3a7c665c25acc63a4f3942fcb1089d2fce3f948 GIT binary patch literal 39305 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

?TLe?kx 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 JSK7~C{{Y}(wm|>@ literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/PushCandidateHydrator.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/PushCandidateHydrator.scala deleted file mode 100644 index b8bf675bd..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/PushCandidateHydrator.scala +++ /dev/null @@ -1,239 +0,0 @@ -package com.twitter.frigate.pushservice.refresh_handler - -import com.twitter.channels.common.thriftscala.ApiList -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.base._ -import com.twitter.frigate.common.rec_types.RecTypes.isInNetworkTweetType -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.frigate.pushservice.model.PushTypes.RawCandidate -import com.twitter.frigate.pushservice.model.TrendTweetPushCandidate -import com.twitter.frigate.pushservice.ml.PushMLModelScorer -import com.twitter.frigate.pushservice.model.candidate.CopyIds -import com.twitter.frigate.pushservice.refresh_handler.cross.CandidateCopyExpansion -import com.twitter.frigate.pushservice.util.CandidateHydrationUtil._ -import com.twitter.frigate.pushservice.util.MrUserStateUtil -import com.twitter.frigate.pushservice.util.RelationshipUtil -import com.twitter.gizmoduck.thriftscala.User -import com.twitter.hermit.predicate.socialgraph.RelationEdge -import com.twitter.storehaus.ReadableStore -import com.twitter.util.Future - -case class PushCandidateHydrator( - socialGraphServiceProcessStore: ReadableStore[RelationEdge, Boolean], - safeUserStore: ReadableStore[Long, User], - apiListStore: ReadableStore[Long, ApiList], - candidateCopyCross: CandidateCopyExpansion -)( - implicit statsReceiver: StatsReceiver, - implicit val weightedOpenOrNtabClickModelScorer: PushMLModelScorer) { - - lazy val candidateWithCopyNumStat = statsReceiver.stat("candidate_with_copy_num") - lazy val hydratedCandidateStat = statsReceiver.scope("hydrated_candidates") - lazy val mrUserStateStat = statsReceiver.scope("mr_user_state") - - lazy val queryStep = statsReceiver.scope("query_step") - lazy val relationEdgeWithoutDuplicateInQueryStep = - queryStep.counter("number_of_relationEdge_without_duplicate_in_query_step") - lazy val relationEdgeWithoutDuplicateInQueryStepDistribution = - queryStep.stat("number_of_relationEdge_without_duplicate_in_query_step_distribution") - - case class Entities( - users: Set[Long] = Set.empty[Long], - relationshipEdges: Set[RelationEdge] = Set.empty[RelationEdge]) { - def merge(otherEntities: Entities): Entities = { - this.copy( - users = this.users ++ otherEntities.users, - relationshipEdges = - this.relationshipEdges ++ otherEntities.relationshipEdges - ) - } - } - - case class EntitiesMap( - userMap: Map[Long, User] = Map.empty[Long, User], - relationshipMap: Map[RelationEdge, Boolean] = Map.empty[RelationEdge, Boolean]) - - private def updateCandidateAndCrtStats( - candidate: RawCandidate, - candidateType: String, - numEntities: Int = 1 - ): Unit = { - statsReceiver - .scope(candidateType).scope(candidate.commonRecType.name).stat( - "totalEntitiesPerCandidateTypePerCrt").add(numEntities) - statsReceiver.scope(candidateType).stat("totalEntitiesPerCandidateType").add(numEntities) - } - - private def collectEntities( - candidateDetailsSeq: Seq[CandidateDetails[RawCandidate]] - ): Entities = { - candidateDetailsSeq - .map { candidateDetails => - val pushCandidate = candidateDetails.candidate - - val userEntities = pushCandidate match { - case tweetWithSocialContext: RawCandidate with TweetWithSocialContextTraits => - val authorIdOpt = getAuthorIdFromTweetCandidate(tweetWithSocialContext) - val scUserIds = tweetWithSocialContext.socialContextUserIds.toSet - updateCandidateAndCrtStats(pushCandidate, "tweetWithSocialContext", scUserIds.size + 1) - Entities(users = scUserIds ++ authorIdOpt.toSet) - - case _ => Entities() - } - - val relationEntities = { - if (isInNetworkTweetType(pushCandidate.commonRecType)) { - Entities( - relationshipEdges = - RelationshipUtil.getPreCandidateRelationshipsForInNetworkTweets(pushCandidate).toSet - ) - } else Entities() - } - - userEntities.merge(relationEntities) - } - .foldLeft(Entities()) { (e1, e2) => e1.merge(e2) } - - } - - /** - * This method calls Gizmoduck and Social Graph Service, keep the results in EntitiesMap - * and passed onto the update candidate phase in the hydration step - * - * @param entities contains all userIds and relationEdges for all candidates - * @return EntitiesMap contains userMap and relationshipMap - */ - private def queryEntities(entities: Entities): Future[EntitiesMap] = { - - relationEdgeWithoutDuplicateInQueryStep.incr(entities.relationshipEdges.size) - relationEdgeWithoutDuplicateInQueryStepDistribution.add(entities.relationshipEdges.size) - - val relationshipMapFuture = Future - .collect(socialGraphServiceProcessStore.multiGet(entities.relationshipEdges)) - .map { resultMap => - resultMap.collect { - case (relationshipEdge, Some(res)) => relationshipEdge -> res - case (relationshipEdge, None) => relationshipEdge -> false - } - } - - val userMapFuture = Future - .collect(safeUserStore.multiGet(entities.users)) - .map { userMap => - userMap.collect { - case (userId, Some(user)) => - userId -> user - } - } - - Future.join(userMapFuture, relationshipMapFuture).map { - case (uMap, rMap) => EntitiesMap(userMap = uMap, relationshipMap = rMap) - } - } - - /** - * @param candidateDetails: recommendation candidates for a user - * @return sequence of candidates tagged with push and ntab copy id - */ - private def expandCandidatesWithCopy( - candidateDetails: Seq[CandidateDetails[RawCandidate]] - ): Future[Seq[(CandidateDetails[RawCandidate], CopyIds)]] = { - candidateCopyCross.expandCandidatesWithCopyId(candidateDetails) - } - - def updateCandidates( - candidateDetailsWithCopies: Seq[(CandidateDetails[RawCandidate], CopyIds)], - entitiesMaps: EntitiesMap - ): Seq[CandidateDetails[PushCandidate]] = { - candidateDetailsWithCopies.map { - case (candidateDetail, copyIds) => - val pushCandidate = candidateDetail.candidate - val userMap = entitiesMaps.userMap - val relationshipMap = entitiesMaps.relationshipMap - - val hydratedCandidate = pushCandidate match { - - case f1TweetCandidate: F1FirstDegree => - getHydratedCandidateForF1FirstDegreeTweet( - f1TweetCandidate, - userMap, - relationshipMap, - copyIds) - - case tweetRetweet: TweetRetweetCandidate => - getHydratedCandidateForTweetRetweet(tweetRetweet, userMap, copyIds) - - case tweetFavorite: TweetFavoriteCandidate => - getHydratedCandidateForTweetFavorite(tweetFavorite, userMap, copyIds) - - case tripTweetCandidate: OutOfNetworkTweetCandidate with TripCandidate => - getHydratedCandidateForTripTweetCandidate(tripTweetCandidate, userMap, copyIds) - - case outOfNetworkTweetCandidate: OutOfNetworkTweetCandidate with TopicCandidate => - getHydratedCandidateForOutOfNetworkTweetCandidate( - outOfNetworkTweetCandidate, - userMap, - copyIds) - - case topicProofTweetCandidate: TopicProofTweetCandidate => - getHydratedTopicProofTweetCandidate(topicProofTweetCandidate, userMap, copyIds) - - case subscribedSearchTweetCandidate: SubscribedSearchTweetCandidate => - getHydratedSubscribedSearchTweetCandidate( - subscribedSearchTweetCandidate, - userMap, - copyIds) - - case listRecommendation: ListPushCandidate => - getHydratedListCandidate(apiListStore, listRecommendation, copyIds) - - case discoverTwitterCandidate: DiscoverTwitterCandidate => - getHydratedCandidateForDiscoverTwitterCandidate(discoverTwitterCandidate, copyIds) - - case topTweetImpressionsCandidate: TopTweetImpressionsCandidate => - getHydratedCandidateForTopTweetImpressionsCandidate( - topTweetImpressionsCandidate, - copyIds) - - case trendTweetCandidate: TrendTweetCandidate => - new TrendTweetPushCandidate( - trendTweetCandidate, - trendTweetCandidate.authorId.flatMap(userMap.get), - copyIds) - - case unknownCandidate => - throw new IllegalArgumentException( - s"Incorrect candidate for hydration: ${unknownCandidate.commonRecType}") - } - - CandidateDetails( - hydratedCandidate, - source = candidateDetail.source - ) - } - } - - def apply( - candidateDetails: Seq[CandidateDetails[RawCandidate]] - ): Future[Seq[CandidateDetails[PushCandidate]]] = { - val isLoggedOutRequest = - candidateDetails.headOption.exists(_.candidate.target.isLoggedOutUser) - if (!isLoggedOutRequest) { - candidateDetails.headOption.map { cd => - MrUserStateUtil.updateMrUserStateStats(cd.candidate.target)(mrUserStateStat) - } - } - - expandCandidatesWithCopy(candidateDetails).flatMap { candidateDetailsWithCopy => - candidateWithCopyNumStat.add(candidateDetailsWithCopy.size) - val entities = collectEntities(candidateDetailsWithCopy.map(_._1)) - queryEntities(entities).flatMap { entitiesMap => - val updatedCandidates = updateCandidates(candidateDetailsWithCopy, entitiesMap) - updatedCandidates.foreach { cand => - hydratedCandidateStat.counter(cand.candidate.commonRecType.name).incr() - } - Future.value(updatedCandidates) - } - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RFPHFeatureHydrator.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RFPHFeatureHydrator.docx new file mode 100644 index 0000000000000000000000000000000000000000..8ec736d443dcb4f9aac982f5a48f4702123e6f4d GIT binary patch literal 37573 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 WVSqO)Fb9Ehl^{bRFnjp*fp`GpsZpW; literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RFPHFeatureHydrator.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RFPHFeatureHydrator.scala deleted file mode 100644 index 6d1172cb9..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RFPHFeatureHydrator.scala +++ /dev/null @@ -1,69 +0,0 @@ -package com.twitter.frigate.pushservice.refresh_handler - -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.base.CandidateDetails -import com.twitter.frigate.common.base.FeatureMap -import com.twitter.frigate.data_pipeline.features_common.MrRequestContextForFeatureStore -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.frigate.pushservice.ml.HydrationContextBuilder -import com.twitter.frigate.pushservice.params.PushParams -import com.twitter.frigate.pushservice.util.MrUserStateUtil -import com.twitter.nrel.heavyranker.FeatureHydrator -import com.twitter.util.Future - -class RFPHFeatureHydrator( - featureHydrator: FeatureHydrator -)( - implicit globalStats: StatsReceiver) { - - implicit val statsReceiver: StatsReceiver = - globalStats.scope("RefreshForPushHandler") - - //stat for feature hydration - private val featureHydrationEnabledCounter = statsReceiver.counter("featureHydrationEnabled") - private val mrUserStateStat = statsReceiver.scope("mr_user_state") - - private def hydrateFromRelevanceHydrator( - candidateDetails: Seq[CandidateDetails[PushCandidate]], - mrRequestContextForFeatureStore: MrRequestContextForFeatureStore - ): Future[Unit] = { - val pushCandidates = candidateDetails.map(_.candidate) - val candidatesAndContextsFut = Future.collect(pushCandidates.map { pc => - val contextFut = HydrationContextBuilder.build(pc) - contextFut.map { ctx => (pc, ctx) } - }) - candidatesAndContextsFut.flatMap { candidatesAndContexts => - val contexts = candidatesAndContexts.map(_._2) - val resultsFut = featureHydrator.hydrateCandidate(contexts, mrRequestContextForFeatureStore) - resultsFut.map { hydrationResult => - candidatesAndContexts.foreach { - case (pushCandidate, context) => - val resultFeatures = hydrationResult.getOrElse(context, FeatureMap()) - pushCandidate.mergeFeatures(resultFeatures) - } - } - } - } - - def candidateFeatureHydration( - candidateDetails: Seq[CandidateDetails[PushCandidate]], - mrRequestContextForFeatureStore: MrRequestContextForFeatureStore - ): Future[Seq[CandidateDetails[PushCandidate]]] = { - candidateDetails.headOption match { - case Some(cand) => - val target = cand.candidate.target - MrUserStateUtil.updateMrUserStateStats(target)(mrUserStateStat) - if (target.params(PushParams.DisableAllRelevanceParam)) { - Future.value(candidateDetails) - } else { - featureHydrationEnabledCounter.incr() - for { - _ <- hydrateFromRelevanceHydrator(candidateDetails, mrRequestContextForFeatureStore) - } yield { - candidateDetails - } - } - case _ => Future.Nil - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RFPHPrerankFilter.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RFPHPrerankFilter.docx new file mode 100644 index 0000000000000000000000000000000000000000..86c6699c2f0871ddc9dfcb40fe923082c8c0fbd8 GIT binary patch literal 37727 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 bvBZRThc=dLfEBc`suUpZ!1CZ+Uby-n)c&0` literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RFPHPrerankFilter.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RFPHPrerankFilter.scala deleted file mode 100644 index fe52428b3..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RFPHPrerankFilter.scala +++ /dev/null @@ -1,104 +0,0 @@ -package com.twitter.frigate.pushservice.refresh_handler - -import com.twitter.finagle.stats.Counter -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.base._ -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.frigate.pushservice.model.PushTypes.Target -import com.twitter.frigate.pushservice.predicate.PreRankingPredicates -import com.twitter.hermit.predicate.NamedPredicate -import com.twitter.hermit.predicate.SequentialPredicate -import com.twitter.util._ - -class RFPHPrerankFilter( -)( - globalStats: StatsReceiver) { - def filter( - target: Target, - hydratedCandidates: Seq[CandidateDetails[PushCandidate]] - ): Future[ - (Seq[CandidateDetails[PushCandidate]], Seq[CandidateResult[PushCandidate, Result]]) - ] = { - lazy val filterStats: StatsReceiver = globalStats.scope("RefreshForPushHandler/filter") - lazy val okFilterCounter: Counter = filterStats.counter("ok") - lazy val invalidFilterCounter: Counter = filterStats.counter("invalid") - lazy val invalidFilterStat: StatsReceiver = filterStats.scope("invalid") - lazy val invalidFilterReasonStat: StatsReceiver = invalidFilterStat.scope("reason") - val allCandidatesFilteredPreRank = filterStats.counter("all_candidates_filtered") - - lazy val preRankingPredicates = PreRankingPredicates( - filterStats.scope("predicates") - ) - - lazy val preRankingPredicateChain = - new SequentialPredicate[PushCandidate](preRankingPredicates) - - val predicateChain = if (target.pushContext.exists(_.predicatesToEnable.exists(_.nonEmpty))) { - val predicatesToEnable = target.pushContext.flatMap(_.predicatesToEnable).getOrElse(Nil) - new SequentialPredicate[PushCandidate](preRankingPredicates.filter { pred => - predicatesToEnable.contains(pred.name) - }) - } else preRankingPredicateChain - - predicateChain - .track(hydratedCandidates.map(_.candidate)) - .map { results => - val resultForPreRankFiltering = results - .zip(hydratedCandidates) - .foldLeft( - ( - Seq.empty[CandidateDetails[PushCandidate]], - Seq.empty[CandidateResult[PushCandidate, Result]] - ) - ) { - case ((goodCandidates, filteredCandidates), (result, candidateDetails)) => - result match { - case None => - okFilterCounter.incr() - (goodCandidates :+ candidateDetails, filteredCandidates) - - case Some(pred: NamedPredicate[_]) => - invalidFilterCounter.incr() - invalidFilterReasonStat.counter(pred.name).incr() - invalidFilterReasonStat - .scope(candidateDetails.candidate.commonRecType.toString).counter( - pred.name).incr() - - val r = Invalid(Some(pred.name)) - ( - goodCandidates, - filteredCandidates :+ CandidateResult[PushCandidate, Result]( - candidateDetails.candidate, - candidateDetails.source, - r - ) - ) - case Some(_) => - invalidFilterCounter.incr() - invalidFilterReasonStat.counter("unknown").incr() - invalidFilterReasonStat - .scope(candidateDetails.candidate.commonRecType.toString).counter( - "unknown").incr() - - val r = Invalid(Some("Filtered by un-named predicate")) - ( - goodCandidates, - filteredCandidates :+ CandidateResult[PushCandidate, Result]( - candidateDetails.candidate, - candidateDetails.source, - r - ) - ) - } - } - - resultForPreRankFiltering match { - case (validCandidates, _) if validCandidates.isEmpty && hydratedCandidates.nonEmpty => - allCandidatesFilteredPreRank.incr() - case _ => () - } - - resultForPreRankFiltering - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RFPHRestrictStep.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RFPHRestrictStep.docx new file mode 100644 index 0000000000000000000000000000000000000000..615d01461ecd6f28fc126d4284a7c6268eae6502 GIT binary patch literal 37216 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%0DsbF4Y2ba9tqr$AZ#GbdDq!)r@&_+ij1 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 MArY88UiN@^0O`q^?EnA( literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RFPHRestrictStep.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RFPHRestrictStep.scala deleted file mode 100644 index 037479111..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RFPHRestrictStep.scala +++ /dev/null @@ -1,34 +0,0 @@ -package com.twitter.frigate.pushservice.refresh_handler - -import com.twitter.finagle.stats.Stat -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.base.CandidateDetails -import com.twitter.frigate.common.base.TargetUser -import com.twitter.frigate.common.candidate.TargetABDecider -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.frigate.pushservice.params.PushFeatureSwitchParams -import com.twitter.frigate.pushservice.target.TargetScoringDetails - -class RFPHRestrictStep()(implicit stats: StatsReceiver) { - - private val statsReceiver: StatsReceiver = stats.scope("RefreshForPushHandler") - private val restrictStepStats: StatsReceiver = statsReceiver.scope("restrict") - private val restrictStepNumCandidatesDroppedStat: Stat = - restrictStepStats.stat("candidates_dropped") - - /** - * Limit the number of candidates that enter the Take step - */ - def restrict( - target: TargetUser with TargetABDecider with TargetScoringDetails, - candidates: Seq[CandidateDetails[PushCandidate]] - ): (Seq[CandidateDetails[PushCandidate]], Seq[CandidateDetails[PushCandidate]]) = { - if (target.params(PushFeatureSwitchParams.EnableRestrictStep)) { - val restrictSizeParam = PushFeatureSwitchParams.RestrictStepSize - val (newCandidates, filteredCandidates) = candidates.splitAt(target.params(restrictSizeParam)) - val numDropped = candidates.length - newCandidates.length - restrictStepNumCandidatesDroppedStat.add(numDropped) - (newCandidates, filteredCandidates) - } else (candidates, Seq.empty) - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RFPHStatsRecorder.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RFPHStatsRecorder.docx new file mode 100644 index 0000000000000000000000000000000000000000..9579e5ad724cfac0def7fb8d99b43e23294155cf GIT binary patch literal 37427 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 Yt-}CsR$vYSw~OaK4? literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RFPHStatsRecorder.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RFPHStatsRecorder.scala deleted file mode 100644 index c09b4348a..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RFPHStatsRecorder.scala +++ /dev/null @@ -1,77 +0,0 @@ -package com.twitter.frigate.pushservice.refresh_handler - -import com.twitter.finagle.stats.Stat -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.base.CandidateDetails -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.frigate.thriftscala.CommonRecommendationType - -class RFPHStatsRecorder(implicit statsReceiver: StatsReceiver) { - - private val selectedCandidateScoreStats: StatsReceiver = - statsReceiver.scope("score_of_sent_candidate_times_10000") - - private val emptyScoreStats: StatsReceiver = - statsReceiver.scope("score_of_sent_candidate_empty") - - def trackPredictionScoreStats(candidate: PushCandidate): Unit = { - candidate.mrWeightedOpenOrNtabClickRankingProbability.foreach { - case Some(s) => - selectedCandidateScoreStats - .stat("weighted_open_or_ntab_click_ranking") - .add((s * 10000).toFloat) - case None => - emptyScoreStats.counter("weighted_open_or_ntab_click_ranking").incr() - } - candidate.mrWeightedOpenOrNtabClickFilteringProbability.foreach { - case Some(s) => - selectedCandidateScoreStats - .stat("weighted_open_or_ntab_click_filtering") - .add((s * 10000).toFloat) - case None => - emptyScoreStats.counter("weighted_open_or_ntab_click_filtering").incr() - } - candidate.mrWeightedOpenOrNtabClickRankingProbability.foreach { - case Some(s) => - selectedCandidateScoreStats - .scope(candidate.commonRecType.toString) - .stat("weighted_open_or_ntab_click_ranking") - .add((s * 10000).toFloat) - case None => - emptyScoreStats - .scope(candidate.commonRecType.toString) - .counter("weighted_open_or_ntab_click_ranking") - .incr() - } - } - - def refreshRequestExceptionStats( - exception: Throwable, - bStats: StatsReceiver - ): Unit = { - bStats.counter("failures").incr() - bStats.scope("failures").counter(exception.getClass.getCanonicalName).incr() - } - - def loggedOutRequestExceptionStats( - exception: Throwable, - bStats: StatsReceiver - ): Unit = { - bStats.counter("logged_out_failures").incr() - bStats.scope("failures").counter(exception.getClass.getCanonicalName).incr() - } - - def rankDistributionStats( - candidatesDetails: Seq[CandidateDetails[PushCandidate]], - numRecsPerTypeStat: (CommonRecommendationType => Stat) - ): Unit = { - candidatesDetails - .groupBy { c => - c.candidate.commonRecType - } - .mapValues { s => - s.size - } - .foreach { case (crt, numRecs) => numRecsPerTypeStat(crt).add(numRecs) } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RefreshForPushHandler.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RefreshForPushHandler.docx new file mode 100644 index 0000000000000000000000000000000000000000..e8922469c9143f80d57bc5ea16ce3f384f4d9914 GIT binary patch literal 39926 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 - trackTargetPredStats(resultArr(0)) - } - } - track(targetStats)(resultFut) - } - - override def candidateSources( - target: Target - ): Future[Seq[CandidateSource[Target, RawCandidate]]] = { - Future - .collect(candSourceGenerator.sources.map { cs => - cs.isCandidateSourceAvailable(target).map { isEligible => - if (isEligible) { - candSourceEligibleCounter.incr() - Some(cs) - } else { - candSourceNotEligibleCounter.incr() - None - } - } - }).map(_.flatten) - } - - override def updateCandidateCounter( - candidateResults: Seq[CandidateResult[PushCandidate, Result]] - ): Unit = { - candidateResults.foreach { - case candidateResult if candidateResult.result == OK => - okCandidateCounter.incr() - case candidateResult if candidateResult.result.isInstanceOf[Invalid] => - invalidCandidateCounter.incr() - case _ => - } - } - - override def hydrateCandidates( - candidates: Seq[CandidateDetails[RawCandidate]] - ): Future[Seq[CandidateDetails[PushCandidate]]] = candidateHydrator(candidates) - - override def filter( - target: Target, - hydratedCandidates: Seq[CandidateDetails[PushCandidate]] - ): Future[ - (Seq[CandidateDetails[PushCandidate]], Seq[CandidateResult[PushCandidate, Result]]) - ] = rfphPrerankFilter.filter(target, hydratedCandidates) - - def lightRankAndTake( - target: Target, - candidates: Seq[CandidateDetails[PushCandidate]] - ): Future[Seq[CandidateDetails[PushCandidate]]] = { - rfphLightRanker.rank(target, candidates) - } - - override def rank( - target: Target, - candidatesDetails: Seq[CandidateDetails[PushCandidate]] - ): Future[Seq[CandidateDetails[PushCandidate]]] = { - val featureHydratedCandidatesFut = trackSeq(featureHydrationLatency)( - rfphFeatureHydrator - .candidateFeatureHydration(candidatesDetails, target.mrRequestContextForFeatureStore) - ) - featureHydratedCandidatesFut.flatMap { featureHydratedCandidates => - rfphStatsRecorder.rankDistributionStats(featureHydratedCandidates, numRecsPerTypeStat) - rfphRanker.initialRank(target, candidatesDetails) - } - } - - def reRank( - target: Target, - rankedCandidates: Seq[CandidateDetails[PushCandidate]] - ): Future[Seq[CandidateDetails[PushCandidate]]] = { - rfphRanker.reRank(target, rankedCandidates) - } - - override def validCandidates( - target: Target, - candidates: Seq[PushCandidate] - ): Future[Seq[Result]] = { - Future.collect(candidates.map { candidate => - rfphTakeStepUtil.isCandidateValid(candidate, candidateValidator).map(res => res.result) - }) - } - - override def desiredCandidateCount(target: Target): Int = target.desiredCandidateCount - - override def batchForCandidatesCheck(target: Target): Int = { - val fsParam = PushFeatureSwitchParams.NumberOfMaxCandidatesToBatchInRFPHTakeStep - val maxToBatch = target.params(fsParam) - maxCandidatesToBatchInTakeStat.add(maxToBatch) - maxToBatch - } - - override def process( - target: Target, - externalCandidates: Seq[RawCandidate] = Nil - ): Future[Response[PushCandidate, Result]] = { - isTargetValid(target).flatMap { - case OK => - for { - candidatesFromSources <- trackSeq(fetchStats)(fetchCandidates(target)) - externalCandidateDetails = externalCandidates.map( - CandidateDetails(_, "refresh_for_push_handler_external_candidate")) - allCandidates = candidatesFromSources ++ externalCandidateDetails - hydratedCandidatesWithCopy <- - trackSeq(candidateHydrationStats)(hydrateCandidates(allCandidates)) - _ = adhocStatsUtil.getCandidateSourceStats(hydratedCandidatesWithCopy) - (candidates, preRankingFilteredCandidates) <- - track(filterStats)(filter(target, hydratedCandidatesWithCopy)) - _ = adhocStatsUtil.getPreRankingFilterStats(preRankingFilteredCandidates) - lightRankerFilteredCandidates <- - trackSeq(lightRankingStats)(lightRankAndTake(target, candidates)) - _ = adhocStatsUtil.getLightRankingStats(lightRankerFilteredCandidates) - rankedCandidates <- trackSeq(rankingStats)(rank(target, lightRankerFilteredCandidates)) - _ = adhocStatsUtil.getRankingStats(rankedCandidates) - rerankedCandidates <- trackSeq(reRankingStats)(reRank(target, rankedCandidates)) - _ = adhocStatsUtil.getReRankingStats(rerankedCandidates) - (restrictedCandidates, restrictFilteredCandidates) = - rfphRestrictStep.restrict(target, rerankedCandidates) - allTakeCandidateResults <- track(takeStats)( - take(target, restrictedCandidates, desiredCandidateCount(target)) - ) - _ = adhocStatsUtil.getTakeCandidateResultStats(allTakeCandidateResults) - _ <- track(mrRequestCandidateScribeStats)( - mrRequestScribeHandler.scribeForCandidateFiltering( - target, - hydratedCandidatesWithCopy, - preRankingFilteredCandidates, - rankedCandidates, - rerankedCandidates, - restrictFilteredCandidates, - allTakeCandidateResults - )) - } yield { - - /** - * Take processes post restrict step candidates and returns both: - * 1. valid + invalid candidates - * 2. Candidates that are not processed (more than desired) + restricted candidates - * We need #2 only for importance sampling - */ - val takeCandidateResults = - allTakeCandidateResults.filterNot { candResult => - candResult.result == MoreThanDesiredCandidates - } - - val totalInvalidCandidates = { - preRankingFilteredCandidates.size + //pre-ranking filtered candidates - (rerankedCandidates.length - restrictedCandidates.length) + //candidates reject in restrict step - takeCandidateResults.count(_.result != OK) //candidates reject in take step - } - takeInvalidCandidateDist.add( - takeCandidateResults - .count(_.result != OK) - ) // take step invalid candidates - totalInvalidCandidatesStat.add(totalInvalidCandidates) - val allCandidateResults = takeCandidateResults ++ preRankingFilteredCandidates - Response(OK, allCandidateResults) - } - - case result: Result => - for (_ <- track(mrRequestTargetScribeStats)( - mrRequestScribeHandler.scribeForTargetFiltering(target, result))) yield { - mrRequestScribeBuiltStats.incr() - Response(result, Nil) - } - } - } - - def refreshAndSend(request: RefreshRequest): Future[RefreshResponse] = { - rfphRequestCounter.incr() - for { - target <- track(buildTargetStats)( - pushTargetUserBuilder - .buildTarget(request.userId, request.context)) - response <- track(processStats)(process(target, externalCandidates = Seq.empty)) - refreshResponse <- track(notifyStats)(rfphNotifier.checkResponseAndNotify(response, target)) - } yield { - refreshResponse - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RefreshForPushNotifier.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RefreshForPushNotifier.docx new file mode 100644 index 0000000000000000000000000000000000000000..155c68621507c6e4c64008b77232965c7fb55776 GIT binary patch literal 38069 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 ToI&4al{DZ9P7h?#x3m8Phh$BQ literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RefreshForPushNotifier.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RefreshForPushNotifier.scala deleted file mode 100644 index ae68d46ea..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/RefreshForPushNotifier.scala +++ /dev/null @@ -1,128 +0,0 @@ -package com.twitter.frigate.pushservice.refresh_handler - -import com.twitter.finagle.stats.BroadcastStatsReceiver -import com.twitter.finagle.stats.Stat -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.base.Stats.track -import com.twitter.frigate.common.base._ -import com.twitter.frigate.common.config.CommonConstants -import com.twitter.frigate.common.util.PushServiceUtil.FilteredRefreshResponseFut -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.frigate.pushservice.model.PushTypes.Target -import com.twitter.frigate.pushservice.take.CandidateNotifier -import com.twitter.frigate.pushservice.util.ResponseStatsTrackUtils.trackStatsForResponseToRequest -import com.twitter.frigate.pushservice.thriftscala.PushStatus -import com.twitter.frigate.pushservice.thriftscala.RefreshResponse -import com.twitter.util.Future -import com.twitter.util.JavaTimer -import com.twitter.util.Timer - -class RefreshForPushNotifier( - rfphStatsRecorder: RFPHStatsRecorder, - candidateNotifier: CandidateNotifier -)( - globalStats: StatsReceiver) { - - private implicit val statsReceiver: StatsReceiver = - globalStats.scope("RefreshForPushHandler") - - private val pushStats: StatsReceiver = statsReceiver.scope("push") - private val sendLatency: StatsReceiver = statsReceiver.scope("send_handler") - implicit private val timer: Timer = new JavaTimer(true) - - private def notify( - candidatesResult: CandidateResult[PushCandidate, Result], - target: Target, - receivers: Seq[StatsReceiver] - ): Future[RefreshResponse] = { - - val candidate = candidatesResult.candidate - - val predsResult = candidatesResult.result - - if (predsResult != OK) { - val invalidResult = predsResult - invalidResult match { - case Invalid(Some(reason)) => - Future.value(RefreshResponse(PushStatus.Filtered, Some(reason))) - case _ => - Future.value(RefreshResponse(PushStatus.Filtered, None)) - } - } else { - rfphStatsRecorder.trackPredictionScoreStats(candidate) - - val isQualityUprankingCandidate = candidate.mrQualityUprankingBoost.isDefined - val commonRecTypeStats = Seq( - statsReceiver.scope(candidate.commonRecType.toString), - globalStats.scope(candidate.commonRecType.toString) - ) - val qualityUprankingStats = Seq( - statsReceiver.scope("QualityUprankingCandidates").scope(candidate.commonRecType.toString), - globalStats.scope("QualityUprankingCandidates").scope(candidate.commonRecType.toString) - ) - - val receiversWithRecTypeStats = { - if (isQualityUprankingCandidate) { - receivers ++ commonRecTypeStats ++ qualityUprankingStats - } else { - receivers ++ commonRecTypeStats - } - } - track(sendLatency)(candidateNotifier.notify(candidate).map { res => - trackStatsForResponseToRequest( - candidate.commonRecType, - candidate.target, - res, - receiversWithRecTypeStats - )(globalStats) - RefreshResponse(res.status) - }) - } - } - - def checkResponseAndNotify( - response: Response[PushCandidate, Result], - targetUserContext: Target - ): Future[RefreshResponse] = { - val receivers = Seq(statsReceiver) - val refreshResponse = response match { - case Response(OK, processedCandidates) => - // valid rec candidates - val validCandidates = processedCandidates.filter(_.result == OK) - - // top rec candidate - validCandidates.headOption match { - case Some(candidatesResult) => - candidatesResult.result match { - case OK => - notify(candidatesResult, targetUserContext, receivers) - .onSuccess { nr => - pushStats.scope("result").counter(nr.status.name).incr() - } - case _ => - targetUserContext.isTeamMember.flatMap { isTeamMember => - FilteredRefreshResponseFut - } - } - case _ => - FilteredRefreshResponseFut - } - case Response(Invalid(reason), _) => - // invalid target with known reason - FilteredRefreshResponseFut.map(_.copy(targetFilteredBy = reason)) - case _ => - // invalid target - FilteredRefreshResponseFut - } - - val bStats = BroadcastStatsReceiver(receivers) - Stat - .timeFuture(bStats.stat("latency"))( - refreshResponse - .raiseWithin(CommonConstants.maxPushRequestDuration) - ) - .onFailure { exception => - rfphStatsRecorder.refreshRequestExceptionStats(exception, bStats) - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/cross/BaseCopyFramework.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/cross/BaseCopyFramework.docx new file mode 100644 index 0000000000000000000000000000000000000000..cfd9b39339be6f71609dd888695f09b415a88903 GIT binary patch literal 37886 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 literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/cross/BaseCopyFramework.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/cross/BaseCopyFramework.scala deleted file mode 100644 index 47426a386..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/cross/BaseCopyFramework.scala +++ /dev/null @@ -1,79 +0,0 @@ -package com.twitter.frigate.pushservice.refresh_handler.cross - -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.util.MRNtabCopy -import com.twitter.frigate.common.util.MRPushCopy -import com.twitter.frigate.pushservice.model.PushTypes.RawCandidate -import com.twitter.util.Future - -abstract class BaseCopyFramework(statsReceiver: StatsReceiver) { - - private val NoAvailableCopyStat = statsReceiver.scope("no_copy_for_crt") - private val NoAvailableNtabCopyStat = statsReceiver.scope("no_ntab_copy") - - /** - * Instantiate push copy filters - */ - protected final val copyFilters = new CopyFilters(statsReceiver.scope("filters")) - - /** - * - * The following method fetches all the push copies for a [[com.twitter.frigate.thriftscala.CommonRecommendationType]] - * associated with a candidate and then filters the eligible copies based on - * [[PushTypes.PushCandidate]] features. These filters are defined in - * [[CopyFilters]] - * - * @param rawCandidate - [[RawCandidate]] object representing a recommendation candidate - * - * @return - set of eligible push copies for a given candidate - */ - protected[cross] final def getEligiblePushCopiesFromCandidate( - rawCandidate: RawCandidate - ): Future[Seq[MRPushCopy]] = { - val pushCopiesFromRectype = CandidateToCopy.getPushCopiesFromRectype(rawCandidate.commonRecType) - - if (pushCopiesFromRectype.isEmpty) { - NoAvailableCopyStat.counter(rawCandidate.commonRecType.name).incr() - throw new IllegalStateException(s"No Copy defined for CRT: " + rawCandidate.commonRecType) - } - pushCopiesFromRectype - .map(pushCopySet => copyFilters.execute(rawCandidate, pushCopySet.toSeq)) - .getOrElse(Future.value(Seq.empty)) - } - - /** - * - * This method essentially forms the base for cross-step for the MagicRecs Copy Framework. Given - * a recommendation type this returns a set of tuples wherein each tuple is a pair of push and - * ntab copy eligible for the said recommendation type - * - * @param rawCandidate - [[RawCandidate]] object representing a recommendation candidate - * @return - Set of eligible [[MRPushCopy]], Option[[MRNtabCopy]] for a given recommendation type - */ - protected[cross] final def getEligiblePushAndNtabCopiesFromCandidate( - rawCandidate: RawCandidate - ): Future[Seq[(MRPushCopy, Option[MRNtabCopy])]] = { - - val eligiblePushCopies = getEligiblePushCopiesFromCandidate(rawCandidate) - - eligiblePushCopies.map { pushCopies => - val setBuilder = Set.newBuilder[(MRPushCopy, Option[MRNtabCopy])] - pushCopies.foreach { pushCopy => - val ntabCopies = CandidateToCopy.getNtabcopiesFromPushcopy(pushCopy) - val pushNtabCopyPairs = ntabCopies match { - case Some(ntabCopySet) => - if (ntabCopySet.isEmpty) { - NoAvailableNtabCopyStat.counter(s"copy_id: ${pushCopy.copyId}").incr() - Set(pushCopy -> None) - } // push copy only - else ntabCopySet.map(pushCopy -> Some(_)) - - case None => - Set.empty[(MRPushCopy, Option[MRNtabCopy])] // no push or ntab copy - } - setBuilder ++= pushNtabCopyPairs - } - setBuilder.result().toSeq - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/cross/CandidateCopyExpansion.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/cross/CandidateCopyExpansion.docx new file mode 100644 index 0000000000000000000000000000000000000000..910cad6ab5844035926ec4865b391d19ca9ca109 GIT binary patch literal 37490 zcmagEWmsIvwm*!!dvJGmcL)S`m!Lr#cN!1w7Tnz(g1bWq?iM5v-2LB~nRCv}x%a;B zm)%cS)%wX=yQ^yNE@e4LC@e5AFgUQXG#>3L)uQ-ha4@hj7%(tQP^+EM^Vth_3X3qQw*)G7`Hlmv17keCWKG5mug((7i9E!^-2{KQ z#*A_(40C*D+MO@)YQ0dGPcyZigye~VL8ev#Ib?}X!FoRPsRhrTR6LpNqRcMQ+#pPC zYo^b;X>M@V-P(SBBaDzU@m$@&WbFsA7@DeBO$?Hu5I9w#G3c2vUlw((rn`Y*9rEJ@U=vJTJ9`M3t@UOvkbAtU$?&N| zS0_f@*Xk%p2H)#W0wwdfCy36})?- zfa*J$=g#6i*VVv$Q+dV|I=z=WKCkBB7|?<9qLpBGEk_e93-$n&4D6b!+X z|4~IxYB|w+Q1vz-z`zhepGHpRw$3cfzpqsZlOG`2(EQJYrADYq?3*_U1+sj zeVJwfFaT-!X0C{msuz<};uKp@R}+1~6520ysFcm;#*4f8XR;3FC_W ztY}hqK2mcEn&DSya8k1L;71W3WUvC3+HN_y6l}+{xhFSw3+;4s8Qh3B1%|I2gx7hR zS|CkB5<*Bqaxwk?z!ezmUB&f$h08~$oD@~TVi*GJP!Ha{SdE^_d% z_k+f&`s?yZ{aTM;MDPL7+?Zjc5QNG+jAC@JsqW=={g zMFaET*7V#q00TvJ!*g>xYfR2m{vs}BtsJ$OFU{k;G^rnfnd^Bd!|pDcba42iEb8O-tE^}pPYh57E)iC+Vk&qEfeT_Y66^T237IW(W8@#= zq1xDXfW8l5*nFQ^Zo&l`1fCklo)*O{U>g-bX<&~(tHEP~)BzR8g=M$fxtP#CkZtBf`qUT!L>EQ~_QivWCGdf((BHa%l{J=FW+!6(TyODON$U3E6 z1;dSKJZ>OWt1r_EyNo`G>(&+<&gJ8Re377y8vRa@Z2b|?dySr>9kAvY*LvGfCJ=`r zcZ&k`C?LM{j3Y_EA_1#Q6qneXhUr%~2Dtjg!;6$ybqT2r9&!2OX+NtLGfC8naQQ1b zrSH^?uvFc6ZN-Nj=1MZ5>LD7+6rv{+5&{NOx>K!#1Bpdl14X@P>>Mt9bT_K)5MUel z9)Jcq$wmlI`MsO&4$0jo{1-Il3p=)htp`^j#3OeYUSMkjJaOs?yzR?q)HrcKtL%iIF7s-FfzV)J z{A7RrVBG;uW-Opzt*aeqar%8{?CBb)?Q&!Jp4GG_h9Tyfyi z;_qYx6%`s()x8nzW@I109Slo}lZnz?UAE!H^}OwH3f-rKIfiTuRo&Tk4O=yW_p`0~ zmLeVPgmOYlJhIHuC%)B$-(1-BKpgtiuw`+wx)4Kn9=}9@+(+7_0xmTyR7x()$ney) zo#i6?f_}(OQd~6#wM3k1V5!Obsab>NU3}kmDhTt4A=pWr^p&%Fow1|QYq$7K>i19TX3jsV!|1eag$z!apBZ;5 zh-jL{7`gU@_Ml#h$!1a*5!EgF_QWiq&4-1Gw(?nqo2mF*4XZTB*tZh50Fq?PiK44; zPlAm!>R8czWGhW#aZ-yHA)SfQ!&#JfylKdABjimagQJ2p%xuDzt;hpyo|qb9)y%s$ zo>=cJD2W@XAqG!TP}h%iZa;obxYwdA^v5IQupCm}lgCC3&x?_FEi6kXV|_nUme2n+ zij`w%Y1m|uJ99L!T<{tf+<}CR8g>$cE~za%%@Jd0u6HgvLZ~Ija;^l4`-!o7ax9Cfl|4>ZU z{d!a33LnK)#2roOb}ENJN=RaE8PoJ3aS^qKP4&eEAgjHzGhlEz>d;DF;7bo>F_u|k z^XFRR?hpAg5MCGaA?we?>dU0mXJr8Vfo*#e$d@mlkdx`FI1T-hg7s#XyXwSI?SGUj zIy3Z(JkBT+f4V1fP9EeG@1rB;)Z$@t-P*MLzU2FjAemUSp?4cOVJx7>qr*p7Umq(_ zI>0ihwYQ(ReMQn#Dz**Bozb~dxd@*XeKt-RGdx%4$6N#sbUzXvxGX*awW%(}jDTo3 zNdVbL8OR=e?Bp%qIow*XS_TKfv~n1V^g(^La88w6HpJxt6PyGUmTx;Ku10H68 zjx)4F3Ymg;QmGM>w)?f*e4qUl$vDo(1MdlpwtVVNq*3$DUA=0f%zR8K@S$ceNLw^^ zogY808AhAJBG9=g69l=&j!wq~_m^Lrmk3eGTV-+;?z_&|x;_!0A{@j%*cD2u_S&(` z>bK8Z_%|fWUYmL%{zQn%?I1RB8Wl)LkvIXsvWR%ecJwz+VK5)l4AdT(apGR zodTS~>Q#HEx&5T<#|dN=j|s5|3L;)M4YC9cf(QI#r?87+n+OFB;X5pv$-uW9E#Xhc zIQnl%_#%DCdf(THZf>0yC^oIIRkcVSp7g6OmJv{~LSYx~Yi?hRtiZq1YVgrEnmI;= z4l*_P8*|`Zr196!(h&}GQV%J2!F#ixO>R`5|oy)6*=r2 z39MsfzhM&RA}>2LD%$Y9IO2Ve#C9g=gV*G#zrgTg3z8 zqwUa7x_*7$PbYWn&|-W9%jU1n`Fd}Q{pTY8oUHBr2{70}tN1u*6(v~HPl)tN!mY&Krrx?4qr^_Y?j5&p z4vpRHe{FV>JccL^6W+1u&bjB52e)-KG*Z;Lg+}&Bz*Z8nv?C~)lPmfS>1Zs zS!uH+vYzhTyQSEm8Q6yoRkt*6Y(T+9WxR8C@a^W_jL`1|))2v>ah_13crV~tK|dP9 z2ukxV6SAM<-q>nv*J8mGOwzquB2|LDs5Vn=8}hP*BT|f)sywvEcT*85|jzVj~_0i-l`IL<4jn)}9Ua=a_oGc{0r4?*8q z{+a9O3LJq*7BDbF4QMdbf92ZQ#naZ@`S-F2de%zZk*@dc?#?eTdj4S-7YsH$We=9% zM)=XYGrR7LLxE%V*SBxDpJGpp{HVx8Nir|_;uKx z0gXsvGG0#CdHTDNyV~^5G@nW)Pp{emz!y9pfrtH558c!3l+_pem(vW9#bLnfL+snb z)8bi7iAc-wuEG7o`bB%{eEZYE?9ZF_(9qo@&zE|^SG%{b8zC&f6%xaglJn{QgV5By z?eW#)mWr40ZSz~$^=ZykHL#gCsAKjx-R9@UDRie$aw2+KRYzfj&D z4h_0DVp)9xiE`ic+c-fTA3k|p_vQWeA|gI1bfUEZ+N#@m^Go{?1BEI5sQm`t5O3RO zFHVo$$9Jt89`HUO!+IYsTlPQyQLKbVGsY=~VbG?eLxF8~E+1B0$eb^>!bD6HKz2@VM(*ROq76 zQw;v;&<51dnre}kS|eW_5ntXAmX7vV^AKFWm)C=S3qQD*>-86xbp7XA;Bv>Npiq_j z*=cAh&uKP~((#+G;Tce&zT4RfF?C8~9$`$X|zH5RaQ|KqJrw_7@!pzEuiH1`AD zV-L629UB$R>;3A!8_xkEU)jarTYDHG^{t7lry)xLUN?azLi!F|{g>Sj$R8_Ew@Xpk zR7v_YNK7h)2PA#N=zPLvfv#>{*TW}PgER<+>JQ<8v+BV7EsEqE+E&Ru8U$ixP*X31 zh)OL0^lhK_P)@T z;l!mXlzID`{-3p*zSUT!I@Tu7sf!1Dj?R@hg{68uCREboKfIt;28 zrk_q`A06%-UxsCGuS8DHgfms7n+)dX&inVTu6~~OJ7;n-gtQSBX+^*F?|YOJXI{~2 z1R*Ye+qbiXIOxN&K;py{qS?z2}00Aads8?+;=e_A|qPas3Hp9MBy`w z3XPF9$!B%4*bg!)GNl-*NgNfyjC)uNWO7W4AK(%czjjypZ4$EFYmRjcV=Yv6uw@j0 ztJq%Tw7itzf6J+Fx8z@|ksAc2WlwH!c+et(#s4fUC1cdvK&_Ai5%4p84$vpmx z;7o-A)PnGbij)p$v%LQy@jp;;UYFH4fvKQTe;4LP0Met12J(v4_=AZQk?FrAGLgd3 zcp}36p?WUSy$P-3_o#n26*@~aPPw&rVH#%hOX|*(b`fj3`kp<2`|0@Uk}R|*_k2K* z3P`0%iYskx_UPL5Ys1uAvU4Vs)SlaSY+oK8w|!-d5@Oa%c|IFlf4XsPGq4}@7JKer zoN&wgwB&K6cRw_nQ?u<+^K)KU>0obvG=KX(dQ-%pnm>De`FXo6ppn~R4I0ZkSk;l>9$Jtjj>z=fM4M*3Ed%LF=wI9qP&t07e9|YtF zhj#Y-oCu?4Bk*8&L%Q~E18&8J!Ud2TN>=?OHgEv!&CRS4LetN zFtj0QIic&1?te{){`sLfuiDJDKN%})V4FWY=qF{2f8v@j~>cHa*V?$Q=8IoTX~NDTRhB*0Dbvx$M$U=3g72q%0gIZO*skNA~WiV9}=B z`XHdJd|OlC{-&K4QR*|e*mgnhVXs=f=)a4A%R$(Zk&Gwem;Ty6C)%YhahYZ0 zR1}#gg0CIwr`f7)azTJ^)$>o!nBCnzD*hK-y3ZPt4~?V`$bcv8S{#O(1eoRz$hKtf zmX6W`2r5$K(r1~uN}|ma+uiqr#eZELWp@ZoX|dJ13aY-VB}M^ro<4s58P^Map;u5m zJ*ryNO-|_Jo?Vy^&@pYwNv6&p8@~_Xn<5UIaEh-q2sYnLSvA|Ahe@Gn`EoTCsc^*PpXNZBs+=OTnzK+_+iO-E$c{P7TJ zEj{u`w5f0{kASb2M)ZbW)aAM}PQbNTT0@VGRb?*VpSv-z7hCFq&NN7(uJlrmDzqu` z@~%Z8)^vgMPqa@>qM;yfP> zo#+6+tYdqQfjAXsJn}`t`e}oF1xAwXMIw41C>^n9x+Felh0#5B{}>s=vC04{`GbaQ#oWcik^2SzBGT~5KVKi)n0?K?}EF%#bkzUVen?& z!nGH2Rmxan+{eq)TCq~!&|Xk?U`|yojk*d)aZP{zyUUNTGOEv}hh7hkZT!E|ZYoj_ zlgVSh0>MH`*&BP8zzFF`zaD!4&OT+Z&unOImf{*xH*Wsp!U3lx@@|l>N3kvM(;n5c8pmSG<0w6j8I% z&nBhtWKDIoO{Uqo-MGD&XIWO)N#A;uErDv7sD<)Xnn#vH@xvsq82fG^qJ^zxLt3Fw zNzrX4`Lgp0w6}HZcBDca&Zy^|XGL|wv2wzIwl=59ijwQWR#hcM>+b#$o(>*DY!8_! z>Ihmr?2l&KGnXZfW)`Z{J@TmDYDO?B1qQ@N?ZueF2iW$m+~-fKHiz#hG4Q2jQitO|G(<}(< z`veLDyH#8*aM%HhYfuSib(QJwKaXg%j~XX1UX`X_iAB+$nd%E+dr2_R=$A2prMJyi z`Ed^C*aMX36Om_T*(P3A(Q?^18}OoFP~LN--lVlnRGn)2_+kqX+}t&CWkl|gsxU2aCo^-ng%cSn!Mg#3fwbOQ9GbF=+y;Ij6v0KyJM_0v`J zBCC+~JS?~zt6C)0yM+ZD7WCb}x~EdxOHebqs~_JP?s5R%^9sHZ;h_s} z^V$rywC)gWQo(SsvDz0uJ~+I5E1BH(K#2C9b{RzcId%IT;-0F4GihyU8Cr8RS)(dD zE*ruv!_MwBUhY9lrA5gG(%7xh&4lC zQz8u6S;zCsCT3&kbgmxv7nGShe5b;})x)PTZ)FFF8p4!s88OZs{ye#p7ZCMuo$==I zooSGY`kQys@(w1J)wejEAL(V#JF%yiEb@7716I=uT2!{=hdJCJz9#?R_urs~TujsH zfQ6H8fNzi+~Fq6rs!@Mc7Nt@keH?4AuPs#BrqP};J7*LEurP1RM zR^{Axn=j$-3*yxFTIba2?J{KNv~YtC@A&P%V%k6Iau7|8Qpo4puRNwn0T&cRB&y~$ zuJxif@;3m<5$b(LGS#rhOzl$X>^&ucwW zOhDvNSF(Vd6xt}USCl5|6NoA>io~ON_%u7Mv)l?j?%zC6l>g#U+?B-z-!8dOMz1w? zJ{n?Sr7wk}1zAe^{!>i-nw9Tso0Ox@Ip1J|j~;Md zwDCvycQmBWN{Qaa3M6< z;Hz~1XEtd^pt8?Af{sUi21aGH{V&C1jqn$#&fx~IkYuMSZ4=?d!U%W!q;^z0FrS;B zaV5XmQ*DY}XSBH8emZwX_yW7N^0g63xy(Qpq41KK391>Wtcs-Z{DYp*swQ1th-dqU{4Y6QI54JF18hB>c0umK~){5(5qA#fyMd@>5f|;i{7hfBrDrrjKi0aVQ zvT?6aC5Fw8zf6EU5gMQWC?q+|faVWqbfcdLMtLK)H0;NLU~Q%W4Y1O8X>D-@1Y3s# z#`q#n20SPQ%i(vr^+j|FicMSxk_@?-?effqg#R*g1!3S?+>xrtL?PNeU1zz2F_ z98z&48H*VhKa)3Pja1gerSUDYdheL$=pgZZ1&>i=l-`6)B=}&QPPAM>6-k#(IBv>z zeq|ayh*iJ6X2?jLsTjb$f&~!|ktR;+1f~Wji4-;%V8e- z>xd(g>^)DAymHJwC`HV;j4E1dmJ<-YW9 zm1-o7AeH^Fzg0qk*L^V=Zu{xOx^E_dYljdZ1Md0+ITFzL1{oGWWJ<~urY*0fjU;6u z5U+y^H*#}3;pThtAH-G8jxwlXtySwPZTY=w;JpQ~q`NT0TX$yfHXxL!C_B5SUd33a zhvNIUt#quUHA)__19s%5hRJr>AvV>sa(EH9rR%m*{){d>b&rwCveGX4N@r?`n1yEB z!A3bPECyHoL}2GgO{G03bI~SDv)tA!+bbVF+i(-y*aYaX?nh4X$EvSePJXTBaMAr2+16JB-y|x*rmBY|RZZO?EQ0hiJO2GDpAdCgWK$l~Ya0W;U#n2Jw~v zziRDg&Kud5w=mFv8WVXf7gZAm%`Xhto#B@ zvnkC~xVg_x=1>}vkYTve<=RO7&qc2lBo%jm%aTzT?>QR3DV+Md>YHP>0pAHF=h( z-OP%K-z56ILLWYCu6HxOwTpD*gs9-j>W89PxveqIvOJD99o`%qMo%bJ$CS+NJ?vW* zL|NF>v#^$wEE{rp5yDKl{Hir1W^(VKDZFP_+RK(zF}5$qe}zdolVy zhX1CP`-2(-L=7wVd-pxjwy}VmV*CfSo7p&sT7dgc>hDyTktqKM^+neJd`EbW(S}dk z`%Yu{qpI>=4Exz^M#cd5Uu4>W9nF;O$0C@K6dqw(C~~y}4%*~q+xGnl+@>YdwF9D^ zyS*5{ciBbnTD<3w{vyA19RZQ6!Tv$s!p4ai$^3ti<YJ;bDLt~vch-e)ZPpsIC` zpw*&+^}WyKJM5uaTRcmrk>O@%K%3BgBga>SETXrshhrb|Z|)a&zH}Btl@vZPYNJH_ zj0V&t4f!tRiqWs|Y0eh-DRgF49bLFL@5eD(mT%00>8hMG$tw}Ly7#YYHFcsI)u(^s zx+(lBROUcoTOypYt{E~q;K39Z0DmK1JLgS?Ms*BEg}F4rD01A?B!Lg*_PEZ_M`}%N z1Kj0Z(lzOrhYeuiM>Y#5ffeo`)n#_^r~-)-V-j!;0aTrqm~S6lV)d%45EE zY;#t<2rHz|Ha=oYaw1F4j(MBw9Cg-*6}$Qu!*jOB=RB<(;2B0ul5%c})LNf-80x+sTaPvBb$KVzSp*Y(%M%71y(y(=Ca{2SPn z_pI3;CVz5P-E<9ooo!tCmq|Ijqt2r6KTU=v|2D~s_}gTs-T$9SUIm-(>GpljDj>)t zX0g>9zioCa5pe-7Hoibi#z%8%M?%mW<@)f|y`ANg1Mt>08YakVspLj18EkD`8RpP= zhW!?=LAB2c=0ba9~eJ~;ZB-55b&@Ca9IQ*bp#};H5A(*&-82Cr1R#Mp{QkGI0Ua_hh zv(R{m2~#)*)=pdQY}oA9)TVG8Wq<}Ui$i;?#RWvi6YX}02}^^qAc-^gsNO^^tgAfa z?`0BdB!F`kG7Nkh8idyI8_h$k3RXAt;x`(L!!69@5Qo;%_{socX-oNM+*Z5udJpgo znAmf1vR?3L*tSCbGkJD7 z`hO*_w$rxj%j8lb>t6~H`Vsez3Ae`yXeN6gt&P=aa?3nu;k?QSF(5SPVWGDY#@NJ2 zB^}gd2UJdceEo5w0qyD^z-!<2yB8SsS`sQ2l{6zD1>X$>hK=@($P3xm&PE{5d*9#z zpm12bte;;^qSvtN<;aSLMe^y^Q@GVExy>x+^djUze-6VtsMng#Rh``uoPzz#{O0B^ z=i4rD(T;L1K=TFZV9mE#^fL`BZK;sbO>G=daK4}q|2!;)Vb!t3dM(?b6Q_BqrT4a@ z2Vn{EGVBa}lcK968a?bRZ)q^&iDD{(d>zl|$&PD|FNgjEcr2n@++&kH|5e4kxKgJh zJX<#kYxkfrrvop#wOCqCPj0R>{d~XpW3hTHf=wbhf3>YvQn{md-?Q$g!0!-Oh}2yN z-hE246VqT0auYR?(xm&Lrnuu7-p&_|8{}6u-C_y+S87spTaMdB0V}_G7yx4CWi7en z`-|ZFJXzBR6jO$71Y^%oFwjk{rNlVjXY#$&wILB_9L=9J)T38%_ZNKxD!9LF(*6Mc zLZCUO3x7xhvk!l8{RTJito#e(2JL*Qh}l9H5dYA$d8C;2P?nE%-g++8(`2*mvahuv z|4kJ@Ei+LAIRRjI$eOdCl@I1u-UlTw_yHaX(HIC(5cnnMyftB>#%V2^wHpT?v$^+~ zQ3P%YTX8`Rl%hbplBkR1xq9irQ98Cey|U?i;p`I@k@`*4HC^LYl`-`^M&P4& zgxm$nf&T;aZrQN|`CJIQNPw6a@^D3H$Te;aG4_I@zKj0y>9)r1ZSX_WH^z?Wv*+iY z?W7)^|1Q;Zj@K_$T#l-ik>?c=8PUJ;=Kxz~a9qsZefi>hZs$8|5tgmeNN2M)(CNGY ztwK{5Aa*Tl`w1=tgWz3CuGvtEf-1S`U9e)418*NS>}T%1bD25a2&jR9xE4YQlk8A@ zbo0OfDHLD{1z48a@z2L{d&ya%HlQn0zQ$(Fq?FvV3|A$-$;QZok`W2$E%cVI(l9w< zepy91-8!^Ev65i9V&Qx|_Ya*a4v(a|ra-AMVwB25_^bufikt-rD&Y@k>O03C;Wfz| zjxJ)4`>;aT4`{{LYonOUc)9F3T^oS0q(y>*67ig}5aDaW(i&XlGSvAc^A{_0{DgF86{hW&hf z15_*S*x(hxewJst&pQzH?es?gmJStzh-PEU39Q`Ag#G~>J%9jAO`Iv)dJipvtOkYs zj926S(&24z-t{1+1T7N9ZLzFY)W9YRE#lj`nM7B^GX-i@Lj)f3DI2lmf?U^?ZCM^& z7p(OIenk7Yt$!ILD&1NX+dT3D`5B%^09I@FP8S7|fTSsaQexV%Vcg4d?h|^240GJ- zOn?6q`&#{6;>%pn#hmNX^KemM&d|S#`M>7It>D3ANQZW82L+VhT!3rm7O0}^&>{fO z`%BPK7<%=GeB9F=E&q_ti`=w6Lv{j&=^w}oFap|J?*>HpV1-H8tMo_3g7g<7&FLJ& z(l9eV>jzrIRk4beNNN}$;3=V&>gC^EH=$0CmvF)5o6!P%W2x_YP}d5}sia z;tKc1Z1MJ9F!wnw))S8JLxJ^P;7qAGfZq5IAd5S!d3ayL#_$wP81^{oo74AP>;xo0 z^P&jLCv17-Y_*<0utN>Q$GD@%2y_WFE-BpFX)4n28a9aie%CJ*<4DH4f&JeAj!M4) zj>7){aJX|1+=Uu$hZ{cWA&yzv^x&_|RCMUD2#SKR&i+QC`Q8`bUYqdnVE~Ogux7c&U!|K|h=A z@?I&Ci^M3EI!rL%;1q+H&!0mvAgJmtc^|PmR74G|T4Efa7u%r0JK_p!xMWmG_19uj zJa>vVmJ;y3z#}m(#%DNmCIQbD&;9Fc_Z!sHmmoD+}Z&ba^A$+SOnk z*)*6_)a>m)wCY!Y3u?lg z0X|etKxtBg*30D4eC0-!@MNorvB2=NhYse}!3o96C~X~B?PU*JCdONQJc~C;6LXB8 zTqSGz#sJl>tLz&oe&kmHSCGS1XTEH~vl;PTGgE3&@C2OZmRoY@*vb%LMtt!_#SIU#R zg(tfvB}YGBj9BELj@TB+R?3ri?k8nrU@)g1o0}u!ebG)+To5%i&puvtjz?)fX{Zl5 z@Z`AAW3n_qLMmRu_%dv~l@$=)OUi)<{>(gW43&!=+&e z4Npf}38`2BX-H?uIdzeX2v+qbwfD!rs8~T%cu~KpSR)5bw(6#NOhGo;zj(5ec-fka zeARd~l+8}Y7Ld5oe%B$!S;uasnR5J?lIE{Z%P{WhHig7*Qe@cpk<7cc{5_RsF&o2G zXAkmHqH;5~<$-pZ=r0V0V_JrWp;Oz5>JfH=Z=mwX)bQ=?7YC2;rQaFP1B^|~L4^dM zrW|_;d#kbAh}*iNE{qU7*w&AK)i5!?tgKuj%^V)v^6d*xCTm~^S0tYvgW4khdqp8c z9DHtr(_UbzK$&g+AXZr^P-%M_vj$G!#rA}T`8P%{9UVv*YR%$Au5a2ptaq7w?Hn*5 z#>8aktHCH|MgC*W@Z|8?`a?--VeCkwknc6)Q}+2rS;Dzx7sZ=Rih@PMJUUgmEoFdd z+gq2uweRiPb5Y68JV|1LAqEGF?JAN}`g>Z#U#WwGq2qNV(ZhyvC2kIEGX_Z?u_x5I zUwgUP5x?}2%n&q<+haw*mlNQXOgja;vrxxPSm7!jl2Dy)RSE_ulU2^cRn80H4u`^qqeoLGEhY8qu|W%jzSY90)SstT zhhqesP7VT^6ib!AA2A_gZ~1P((O*N-b8fa*0F=q1@chW@&KlfGgt#G1H>|Ui^9oB;@#%XA=+V^=Vbwo%$trH<_ATWw6NXc} zH%Wx7A)Dul=b=)FK?fqFi$b%UQ)gy5fke=&<9UKxia=j!9tR^(MGJpd2H)5V$`xnH z6-Ue>c!a@*u(3s5DoJA18d*facH&X*3J=PK5Q8?z4aAOj-PWH!(hW&FgKfUAT7bv? z;FeR82jO$fCl+ET8iLb|d528DG&PV>cU(MyL-TJHh^T+62ZQmjzXthRQo3OrEa zL)K4gi9o@AbzKs?AQOM4$9lIEj5L=1eQr@`kBp@}BTmx%3=J+WNx^=H0b`e>w;je- zJT+ry4?=31rn;Lf^t@nyZq$1YihXjACVRzO?eMDfQ#1*6(4p41H?U5uZ#`f;(c*cc zHx?s@21glW@C0bwrI-YzcDUB4L=&LtY1&?OR>w#Ajl(7w&DI@DUW%{*5ic(wR7wKA z;X;sdx6g2iS`qY&DpjalkINp7wdG9)Plu*jib+>`f@6(JcVF;eCXCZ{rbrs{n4?2c z$O`&z+@ha+e?g-lUK|oN(%sgDm0)@au~G*Fr1}>S_HQ7)e*@Y52AcDm=mg5-y;?57 z(M7G7nMVrR;>P`fAXovKTO3(zG3h|>{m4~mm*LZ-5ze#Xg0bM}<|43?ZV{S7v5rI( zbwvvQ@PQ>Az(LgDUclJJE}EEJW=Q!LDF z)+iMM#i5rxlKttx7?ox!>7@zJnImFG29$|Gy%Oc8@J=sc=E^Xv54U2)@en>Flw{E2 z2(IMNOO*dS2BIYP*1Y|+Roq$x=9P+Y*fK;ABhlj-rk~h?U zp4&I}44mcT0t0idfdRw+=ed0?E0<4F78d5FE`J{3_ccf@kgh*@dcbZv8dS&drmy^8zzZWHN^`+ncP4Y(v&y^yo%cXej83!vFtJGqU#+1>GMFzkBUpWZvo zczZZ|dwe~1Z-2>|9$z=Oe7ZSpuc<*jJIlER9qr%fTon>zGQw%^?yMwk&RE}{eFdOq zq`GG)#CR5S0^h59T>?K{%Dok88>U5t8J@` zbot!W&@}ugR57-RAN5D)z^92+iG}ugUnh&Ur4!5cd2(-dej>SPks@4n zzlYjYOBC3O;rW;L%$s$iQH^ev?9EMqsmZd3>gyj@CNB>@PHnHZnHFO8n}^*+zFN{SubBHBtQuTR59 z%@vc}I%}JoN+l&hBq=NvB$~0Y<2O%F+Yfy=vqz2(Z`mowerGAMi@R?GB>Qh=gQ1hF zUVc8gaY#04V6DK$UyGxh5Y3;Um)A1e;7Y1*UeBnSW%$4o@1Sn?z&uWt?O+ieA7 z@aG@#%t}Sz3Q!=>9`}DtrSa*Qsla| z79iS$7pS1KvA)?-F|6xdknmD9)W~H?`Q-XAY*-$j!{bg8Ls$yzf%n=g znLj9bG3W~=@nn3Yg6uW_Q8I6D1jzf5*UIRCTx|rgj*s}JEnK}}I3+aL8}F0a7o!Fk zR;x=yL7483N{V(646iYvB=X6odB;Go?U4{(kKVEownmT5+-!8ezoTv6Jk2wmaZ=J^ zd8%Q~$aBErc26vAzhV^SP{m~0#+RcPd}e`)8ZI#gX+A%%-IH`w&uAQB;fup6)1Zuq zN2y&0T{+6M{-*odwUPzja^HH!-qCW4vz~y0Zo>Zd)V#cyXcj8|_1>}5sM>v8Ksb>Z z+I#Y(5F$vawg^F+Vo49W65X~QVgbut4=5+OTJ0|u_@dQ=-z&{%9PRLaf6G^0fIXD1 zoG7gy>m+94W1QQ2`=L;bTInr$cx{R`2;NF`d+^D79f*anW`8fa0X?u#u|6jMe*A5m zo{!NEh+F4lWzAqHYU-d4x)o3d=?SPK4%AUA-3smSZwSH#xE8RNbb@ZGo!^8075#gV z$D|!NVR7kil*Zrif1vz*z~52+cNKVCEzk~M@>d{uJg`+&cBu9a?tp3@`W01d+c4f|~k z#m1>Z_7Uaw>N4gjWRGl5kNUYrHn9T?=riZXB*N4(egipt%!H*mJxy<%vV(kW-0$}5@B9ImF7zb{+@wz>p^0)cC z9oT$7vbp7|8s6nWEO8%4#eKc^cz`=`^8WdI!=)wHs_`{Fo>u0OFNqr}x zu&WTYwo~5BDIfH-=Nt1jpBKKiZubyVk*bApgWIi}{?XWRr3}08z8gRMr)J%gQn^kY zZuaeRfRYchXVa+yZENDE6k}_PRhy~4t6%Sx23x9rj(!K|IfI^GSJR27{8rOrOiyDy zPcKNmzid4-R*OWGz(SF%2>il6JHriC*zw|B$D8GQcMxSJoRfv6XeOMUW#)Z6CxKw> zR^I#n2zv+U%C@arIJRxub_Eq{$F^-$RIzQ_wr!_kRcxo?s-%Lq>zsSR|T2F2rcSe00j(i$M;<b5?e7<_7sMoGX1QW7*h$?E$VcmE;KJFKcITc5r!fE z*ihOvB)mwlOh zm+2|)I!Mj!O?JWgX3}^6ZS{+%H-qmkk_YY}EXKuBgQt!_o=42By)M$|kW=HQZCBkF zF~HV}$60$fnXhv~8#crCWp-K~PYL|-_Rh@zCcZe%u003uqyL$ji^@#D0|kBhaGjHnsCTT26WL(nfgbOB`tDT9l*%{5NE zYpQ{%_9Z5ALBM@rO>1sYLYGI3%dxe%5*d!Prldy(XZEDKUZ(WR=OomnnFcSnQ~C8G z%Xe%Uy>MJ{ene;s>|L~sT#vUW zCp0LdkJBgEJWhX5O?~LW*j)n|DMDD=bylxih<~1Rde@`Q&GFz-opAQ+X3elKwJF)z zxll~{bRg4=>iYJmvuxzWMSJ}5<_owS4p-?VTd#CMX^NJaz%}K$O zSn5n^mn~0v^NPj5#{GSxvGaBg6HC=kd$-ub@wl{|GCnye>@>nwdI`BipuQqglVi5_*X=PPOb z&gVzVy0znCbuQ*T7apwN)X^Y$UC)ltnmU^&-AorALp>Hdx+;&~p79RMdlk#Liocoj zw^*MW@GUn_FfUa=PwoiUy_?+DZzV@w(p{Fpm&VIkEm^-EXAs;72o0lH`t?Vhq!OOFI z?+&78?+*P(uq5887nI@5RW`xncNVgya1uU=$5WhyB9kR#SB}gBVaLt47pI>SV_QGQ z+VPWqenvq*@REz3U}c4(%9JH1g$bAbL_&4wpZ)-j5^83KA~xDggsb9gD)&18!8?hd zp78p4KmIv0CN*qPnyf7Aw(&RpxBv#Zt@xWlRDq}Bk0#WL`L1rw#IVl)F2je1# zRW#{$`=zH=Pdrvt_gqcc5SHo7grT!nS7YpX#UzAyv&PRmc`f`wJJ};|<*IN%%<^C)N9`O;Cp$GcQ>KJYPP|m6eW$UC>8_+C*qD|4x^oyZ+s>HE)_sq> zxX%)AZ@!nEB{W;=NvD;TA&Xy4dUIq^HB|0MfQeYYyt;&i9xl>CWnCRO>v&+F#{(Kh zXK+n7vwiln$VCLHbX0AESC1;Kj_#OzSDvqI9YL1#B1oms=*5|Lf@JTj135t~^-obgX)7KLNq5pIt8$aHScxY>@Vi z5GyTxC?sP2JG>i%R#GDD$nAIJF|y(%uRe1pB*Z>j<{BSuyDz^XfL|s=8kb8P)Pkw7tle}{n`@NHw2b0F!u?RVOVjeeLfBr9Ou1t^ZJLh zqAqlEs=uQyTP_pB&7Nn+8ditT-AUQX_u4HSW5qf5sL4c z?Z+U=DKP}*&e6uY^g!)TqwCl-^^}9_Pi4X+00sy3qtr=O15Xny_wY@(oT|>pHSC`yrwNmvJL$8(b|JO zpimp5B%4|K_vbv(-Sz49Rlt$h29AXC^^8K*R_|mPZ??uylSZqRXz5?}ZD|8}aUB9p z-2)xD4rLr@(m$6uJ5z}Ehx|sA-rGHX-FbF-%C_csbA|102DYc&gMDwbVo7P6&E-do z%W8{TJ-e=|q4Zi6*`hC4X+g0MCAF6@p&bqQD!)eU?g0X$144S`b!%D;s4J4wKr~?R z);gFd9-+=9t*A7kCSo%hqPAI}rr%}E>p|DoLf6mmNwp;8&By=7Cf{>9$ltWUKSaRd ziqw2n0*b>3F1oB!CD)(xxI)wDkmhZ3ZwOrPVxZovoVu7qDF}(OIZOdQQ9OmVtrWMZ z_v;Aa(ss8{b#p!!uktBtb7ym8dCiBknU}PM@*18JSZ?TmvuHzwR<@~UCUBHFV4n`?Ki3*drt1vaGup*-lWdfz&X^wI>-x#wZ$TAA)bJg>AUXLXr0v< zA>r^re}7s5iB1hDIImGFm7Mjm!RVOZt1)A?5pe1F^}tTS+tNRgRgxtC4K`gYSco_OUK51aKV zJcVJVTe3!6t8KF~qQ>zd9h--)7J==%3{%t;F20)4) zHg~WGZpA?kJbMC#J7Tym-k9vXf7WZiWg>0={+%}B$F)Ih4vVrdng*+v zeWf0CIdSUB@aZF2fBf}m$UcvkpqfZygw$%&=v>+Nv|t^!P%8>klD6O}NmZwS^TBSv za1!#kMj~Y-_DrnucI|e2?d3{GR#mKhcT^=FoXB>T48p-UYBaA zNUkwxJs}8wKh@4)Ns3SIIpEAKc{zvV%7R(cjasylzoFYf4+0F(gcoe^M!p*VyP`ha{!?AkxtQmg`el9wnu%P_{`9O3~@=i20I z%?!~MfCU6*>9Y&o5sSKi_e?*Cu)WZ@TNn(TY^1p;1O}xzD%rSxXkuY#GKSgnStkMv z6A?{hrp_-EvU)xA`m#zrtMLBpMt5ziNVm(sLh?O@E;U&ED`Ykl3Ylo!r>sKVEi1Q*SJOABb9nhlQyU@8FL-BR+u=?t6ae_d~6}SHmI8H zA*?|<=>ssRny=&e;7_%bIdG^TIGF*Y<+*(G4Bx0t`!XkiXTyIF&9XKGNXH||Dk0g8 zrznKrX9%iLnEl(OpE7et*sl<`xJ(P3)2~=o2FC7D9L$(xDBL9N9*%hblaGujgfW#X zla4l|#Cr=OX<)3JQ7=lsClws__7L1?lz@>q1U|zb+6xsZp#BB8IL7Bz1QPl@?SBT$ z_y0U#079}~V|PxEPj|q&Z~EpdFe~8EclpwJdQBEU4*}hnf`CGh|LkiR|4zSe-Ss|+{ zxEHF3p_>M}i=9iL`t&EVr`79B6^*Mj8mW)ArnH0okUx4+KlFWNIC{sM>!&&T=5R!} zyFJ(tYUAP&69yI?Mi<96FK0G`$96i$h&zo4#3|wRpJ;r1@4Zm<{k{*yrmyC`Ng?a^ zvFd*a5J4X#8mj`1peS3;=rfYm?@|zCY=6l-6?gk;McusYJ#z0qPANo;VrO8bW*lSV znVfF;u;6*v*6k=+Sl_(xcKc4xY){L3yw!NWDP?<91118~KEc)Pbn6GN<~`NZA3s`r za`$)}^>_>5&r^^&mu*kMPhKjmGXW7dR}Ez({DE(8%uSx|KrJj zyf?colG;vt+}}Hd=Y1Y(M5I;Fu>PX_&3#v7Fo@!jq~q3GR8UKn26PY}q*AL!3A_e1 z{Dj2k_rZz}t$%V**O5jxxs)t+Hr6I4I=1wR6sSfFlP@8NDxtBL(6_{Gzp~%_*~K4p zD;Jj;OYpj-eOB_VEbkpFQ%eK+pg5Mz`g<;KEj;Qea?M|JK`?0Yh2;s+D;>`i)!T!0 zQ+p7caSz$X&E9nPMsN({WMDtDG+~#bOp~Oqcf7iRDCfjGKE!f}vAYaYhMPZvfM2@Pg`15863eBuMk(!Fxhfc!(hFjx(;EU!5deM{SU@V$6yp|KM`hQh^0BR9BHNq zN0ZC*1xPU;>E0=!Rk-(Am|}SoS!Ce z0_GT>`h`nLGeIFGBFuZ!E!}Cq0Qvlh55+;6X%wGSJN88R3N}re8L^L1h>QET z80Y`17)uR~-&QSEv>6%tBFa?kzqPgb&ozk}d2g^Qwe$M(=xuVqduFtCaKH1u_?xiN zwjk-%%B9gWZEbioZU0!{ZSdBt@s;m-czc`L7s|RqZZdU}cCgA|`B=Aa8PAOdj4j+N zoP|sq2wpyA3=Nz+El1{+BbpE6Gm081J2!+ja1(}ATR7rv2Vr`zS1PGu7~E}$ieB>y z3nPF@6Kj)HdA`)`wh37(Y?6xc72#=j9;Rx@> zqwv*HC0xa8VBeOQ0-K@@H9z2(j*Z~jx7C(H#0@l9;?({$)Cq$XT)!1fKPIji;8_LV zaZJlBj;W!zJs47|wEY>gX0vf0MN$9TlZdB?Cq5`1O&!_d-nGS)1X?n-ux0R_gwr6( z`ugyld`MdL_5JQu(OvmpI#lvcfI8k?{;lJEVzZHr?EgW+ ztxzl5Z{+bsF;!Xr>t9x&r~k3yN%`LpPvt->(ElG+j2az=j2uFpgf%AJS^H3UPEOsf zwxI$`?mE1!(e*-jdP~~z$JC8mT1YB zizna!YHbZLdh^`Ht(6I~RWj`#MlrF&J9Ah5z-ODak&Gcyf5UMJm0TZ>zX1FQv(o1~ z9G~~wxM)2TqfnA!g(+D-qg6w?LieP0`n?a5s62(?it|35fn;_p2g8nHF4gEB*+d}f z95|V1T}%)nJQOjf93a8aQGl7;c!3tP7B5m9AXNmZ`G(`xWQLcr)SP}^5` z9LTfET8tFL&>@il9nP5z!-#1!j5etwLf^%-5{`&Fj2F(S?Y|tS#H~}UL<=2Qq0e`U zVuM2$z=^5a$+*HH^dGKD7Gnj~P2des#)#4}#7?y)Qjnxt&M{!(KryJ=bSvR0pBnM z+$UKPt|qMjP~T3p;kNuRo#2$Y5UJi1v-JFiS3st(J~vq##c3=G1q>d8W%y{aG=pWM zD#K!2nTEtSj29|nD8D>uAH_L?3_gs91k*yX;<&`+Mq`up8EBfQvW8mr1&(ryTB>dl z4Z|=VAUHLW)A)$GCO<_F+h#Zv!5DEEkFo!JtUQZxr5po!RF#>~HJmeAzpZrJ`G1qe z!?1bp)%&Eb5g=1XLi^5Pua|X}UATw1;Ag9L;&a3EC5Q)_rNS__o3$cM<#1+V80)A8 zQ~fUV@@*x!N3ik}@^g!%i{8j!B~uO8SB8g8pE326WLH?NqE4|G(&x*>bq{f$SM$&s zr=mnbq@RbG2n&AMNj96gZFBG7wDrQZnfa1jQd;O3%`D!yu#5zMlD%eC3|>}MHfm8s zUrgT7Fp)ztF zY3f-irIdi6%Ib|PPgv(c5H0IW%(onsud0WD>7ty{tBNq0Y^~HlEshDx0H-Xj6_p?P zQYGzAXMQ6pfr)vHQ(l;$${KBPkTLsdz&1bf&-_KFzA8GQA|B~QlOMT0B~@;``|Ttt zaaz{?k&H$ZGi7>0QJgXeO;u?k7ekGro<<7Oj4_bzeAW!HGJOCUS4}nDBtKF@dBhVZ zw2Aj8L{k7Aa3*l8)Xa(bq<~4=*bqc#&Rj&xgZ(E{>$_BA4pfHJRh^bjDOO>nQBjc^ z`6p^I>_1USkU}Ymm+Gm~5mo%y3vf{A=; z)!)R@$|5l`PK7a>(&i5xvY>*TCdf`TfRur?;Av?y4TDM9WY$Ov&%vA~sI}&A*=s5Y zj$+4`@b*n=ohmvf{jC8i7$1iFMSu>5`?K&x!wM2r38IUr3*V9&6I%t-he)u{XaLWJao|FOlJ;Q}%p`uC zo^GyF6;J7p(oi^{QVLa|Qh=f$c)TND0^_z6tObUG%(k}iBQ^zr6i-?K_a@;ygYO(z=qYT?0vV3qR& z1*qOMX~+~E)ow5olr%>%?X(0(vF~Z|j$)ZSC9%L6tubu@^|MUn|0HVZ zd_qYOOTdFs;ZT~fctyjtwa9yS$~z-K~}H& z@yVY$=z+Mb$u1uWSrtFly2l)$Z2h}=+Gqd0huG72@;OIe$%mIlGBTua9+G|kaM3n0 zqyqd=%8E5q7Z85Y=>cJDwepReyrytIlJhyeG&mP5r!XukRlj|tm!GM*gBS_WvMiBn z;4~rbFtei~1b1Cq;esHm;ezR`eM<+(vBIx=%EP#~(8I(ie)$}Mzk)z-!)TDU;@?OK ztI7rTk#{Y^g_`ARkAvp>O@8kn3B^?|gtJ(n`t@hGSbQUU_x}}y$Rqv=dJDbC8u<$t z<$ZJQ)>gnI?T2Z{R=5x_kkH?O1R_$u-9nq{eg?ibjDMK86VLCah-O+tkB52bd4V)s z$Ul$t-4LQ96H0`|*dl~d3MA?m_&#!allzR;A8z%aW#K|3?}mI5sD2=|4S5D^pei!nY{rD77~3OfN{o* z`?G}W`|3-iR)T8uXEbbN6sR>YyBHSAa(s5Iwf`_I(_daqz=RUIe zG&2yeea-jTs%4`o2Iq?B?E!;imEj6!OOP1BLTACl7uaooC=D-hOjA;b(ZM&O|ysYLcDhB zjoJ7^9ih0LWfL+SC@2QbcV&2M#66ZLXQh1MKtaf|05#B|a)bJQ7Hb>{t-fCm%G>p$ zLV|tqU)&gXX@-3I(Ew z)@8e6eJ>aYjSFxgb~k3e3q$G}Y?%5UvB&Xc&5G!^%2>|*{~7EPpp5roe$Xm((Kcjp zT1652Uv$~ULHY)gs0uG5HxW8(kruN@~w1->zfJF z&B>y^lS=%!szC-M;5Kn7q*<#BKyx@_EVt=%Z&u^t%IdP9(xyKEyNq8~T`Z{_`{>?5 z#_gADx_CUP&;~NqG3LF7|bZL%R;;G($5JMoa#0P3YinCCy@hI5T&SR=* zgj!3aWzr6Ti#w+>jzQLg7OBQa)BKcT6lFH9mH)>KNh)=aa_bPQi`+ zII4+*A)i#F;U0UPYgA4t$gX5*D9L6->CZCM(MAE&0BWd~UOJnjAIp6B$O zd2Fu;DTv*;r7cE>C-2uv+V0dS<}EtT4FN} z;%FG*sJOUWH^cd}k{QyZ^xj}DEj3xq6b<#Ckkr7Cyk}|7XbOcabX67}U9g{d1DwH* z#1I_J>8KAH*uSj(KxDTe72)m3=2GLOMX)mJ;U%_L;4tWG{HKnc6jQ_s_+ zLtH|LF@%~0Iirm>-A2E8(p)6uXQvlrCokbJr~qhW5I^(M>RM(yE7P#YlOyWed!{J? z;8H%EYq~;K%#zU)o+yEbG@74p3+IQH#Ynu;o|(rm@#)nI4k_Bo!T zVnuCoNxaw1JEoL*a)T?j)t7Q$x+sAROc&X_U^tMEiVY^EF-Co-w^#35^7FG{=&3iO z5j7US6tj9vEr|=z=J0Z z^_wzapXP~-OJkxh0(h2a^6u#;Ulz0~0y+z`A>PM{>tR1Np^^NP1y)KD(3vB#|2X4} z23>$%?^4i+lZrSgO)zc2-s(K)ML|PtM@ubKsK zsPUqx{Qc6C5Rv0V`Ev_1F*%`Cd66Yt;x_&xA(OJqt);N>Fu70>W87-*bNr$p)-@67Tq>Q9YMnVMO7W{bNsGKMr z)>5D;0+2M)O%(HgmYPXi>{RX2a+XQ3z&>ntBptURzRwNJj_klS`NConOL0GC@fWGe zdu0FYz-&5PNZw@;K#r>A;kKeJN!cDlq;cBchO8s};gbSH_{)&eRB#|4>D8=Yc6Wi8 zjJY*2XKmm(@%Bj5BRRu4SDFG{lDwN>xs#E}Y2d=ZAGf-bT1*UdotCur&wl^fRD-lELbzq9=jwBKp^}~jj4kG&zHqdo*O@M-nSdURGs zP1P(zV+;_7Y{-Kvx1o>7Yz7lwvv^dJ%rL>tDzT9vkxU*<({%51{djM^)LAk{Yt#5# z+@}AVG5y8B02$($n2pxqS{@&hfw-q7)}a8x5blR=Lx4E23<8Fwl{QN=MMisv z8z2rmo1-ofqmpL`jrgOoXHS9>HTtxWk+7_!sI{laB!Ok{CKUvhq^73~@z!}Dk|_%G zP~xnGrppKvR>f@sjHapHegQ*Nv6KJ=mR36oLnAYTGT%hd6$9JNP(4K!!G8!9^Jjag zJav&z>w>Tm=9s1rr`-|B1;fa-W)di>wcG5-T*didg! z;9B-KkUbVI^!<9Ye8;~@u`%4;`6cDNe*BM~h($sY27TZlASbZ@)j`a~%+=M(-r}!) zRxRpV&fj@3dUwhU+xN_2Tb<+%XwN9>x8| ziFx<@t*_T*cuavg8__)|0b_iN|- z)qxVWg(EqQsRE z8l(u@<>vTv{R-KYZZt1r3x~5^jx^n>jrQlC2aFHAPC7{?3^quET&UD|IL9O*>&j-` z-0ucGr0tIY_aB%I2h$fZHqqc=@FAmly^v&~Aabr2W2gu+jwoZ~A#Ie|e~U$K${cNdE6fj>Vw^8-&UX=) zd1#Fvw4UhJr~F8D4`5hc8(tZVCls(=Q(6;RSXjZ+mPAb1s^E%$yA?)iY?YMSj)mpJ z3N~qQDDO+eYzMQJpY4k)P(a&w0+2+g)L20()J}AKVi~U=&Grq#SK3+~Reo4Q=w~*) z(FY^ZJ)D(_Dhmok2*1d9&I{zkPGzlBSGB45Ar_MKTs1&7wi-p>$o76CE_0z4w9Az{ zQ%cxC@SS{s12A|I4VN9Hiyr4Hr?Hc(#0p!4{Kvd2R~D&AoRwB%PIK(bJBY zNFf+v8g*!$>DF_`H>lF~o2W&IHxtprrh%k;E*U}Ho*$4cQIO|QapM8n&b*5=aWNQl z-~^8Yz?pK?{e;qd7m3#r?B-%lU&!6F0}#zi-nVY|dsHJ+5dNqztI>9?i?BXBP#fgA zW~it~PWJAoh}zVF-E@>xWUQR!-+BP<`W0-E>N7_mmKxfUz#jf(a~%#nyoN72;qwa_ zcSp$G)q?L!bqJ_e$O*OggA+DOmk!W5IY*1lOplAY5lXYHj$wy2-$U5lyQb-_#3m>-JU)TaDTdAkyW zi7hCuEAwqM$SL<7a$+<3Qz8)dwUQg-h8avjYVab~?HLh%NBi5rI)&doIP=TNQ6XcLQc#rKo~&uf6EL;J8r5|53@ZvNlOP%q zL4%b31=l8W&9mOGJg@JB2eIY<(r3B41NzVHm8aTADj>iXRIR|DKizHrYC-kI%vj~W zF8G+a0qY?a1duuJ-oe8}l>^gg*3XG-ID}ovBCW`d1eB~Tz|BxIFF)C}xNy22s7TL9 zE4KacW|(%R3;yi4XM-mUkUkw^f^3cn9R6> ztx@^}1^B4s3Eb#>0>U*-f_Z#Y<8x~JV4<8XK%o;^xxN)%3Zi4vGn_t>e!ER307#@#!yY4U>{ba-L4)ULl z{pQVgF#)zi{S5~Kg7$C6%z@p1RgH{o|LTdll{#SmorPfZ$Ja=jv}_sMq!tWRy3x?) zDI|Pv5Ojiitc`>#;f{sh-}r6gSgz`&yB_S~y{_n|DL?~Za9u^Ez)5*OW}l5e9^MGG z+rBU~Qi;*gwg2eHb7U9biw&$|jaizQvK|Mo4Di`TsL-FFme8{J&n zo;&2#bcKUP;8IzGUO))%S&)wXXeok99$R5`o2hjVI>P;1cl@({0G|h_z`dyXq1p{t z+3w@_OBgq=9>luZ3SDl2_MwZ?NDVJo_B<0$H&*;~adju{y9pjf&w_hLu=4Q<9rbRv zqkdhpZ2R1iv$MU8#UbR2+xxOHW`hqUY_6xpL@N(&I_yqn^o6_;Q{jUx2*0`g-QZX!I)T87I zFBjf2?Fn0vP7QEq*CT0^oR3H3zf(ewkv$9e^cg7MEMJ5Xf&LD6l6!m7K2r8XB-trN zdK$ZG@eX<)S;5-{dqJXDlDul6-M3k-(`$#TgTeNMk!qi<>u)`RL)E2CX=e;0?Gpn( zoa#U|Bf_{#h>=AKf=*l^FR|{}Wbj1!jdfEH_I+h*9%cgu0i(q23Jk>MohX60ch{PM zpapiLWhf^}iarxrgU37NS>@MsS+^|CT3E5cX(i*VQ=7=$w^^>=mN*CrWONon!~ z3^9g6xw*$7p&TX=6dBFsvo#N#d$pIx$EhqUtIA9c$Q%8-)ho4yF6zCx))I00XN*VR zss(B3c(4%;$VAtv80Rgiq?FQBg{JK@SG)_VOzqIpT!lqC?hAZ1boo!Bi!}A}7DXF& znU;9CndXA>A9r3&_Qh6Imb!s&Jw9ldEoZ`uBxo#!hvuxZvW?Bk^L0f_QrYfKWU=MU zSf+*0#L6pa7tLF+7;DhRc=@Q!l(q1%L~K43BJFSk!--4TGxsOSn*JLI(1mti352zb zV^?~=J|AqP%??yaGV6bOIa)p#t0Q{Th3JEQb3%JR{>}XE`$GHc;`xh1u1^cdcvAn4 z-^*p2L7%QaiuCYBUEbU6{`!T3;KzL!wRk%sRG9Q8hkGbLUlWdS($ zK85QLvCF9_BvasHaMi%I9BF{KKhgrBW8Q?ZPIx=3XE|-lMPr22SZZkdkr$qEl=4DB z^%_W9GLH0y{Oc`P#~KCfT7YApVzoV8uve1sF&@)q@dcTDiXB-ITx>!dgrbWpask;Z zcr@pStx=W|KoU%#KOfwwffU+s&#x2W)n&ClZQWz#DJV<8BotYjDu1jC-BznHSD>9!JEoJ36R5-Q3> z)BC+c;y2}a2tnLWD_493oHX9i= zmi^xNEZkY;M(c7DHowHRH@qXk7BK7m-BW@8hm}Qn8Dq6f)elpz)yQkV`>w5dw^<$6 z4Sb`|?jy{)VrZe@}1G^T5D<1nG?awS9A zaLWN_p+Ij1FL66p;^Rx70@reT?>7yom}OIAzBvX<_5I;c?y~n;3Jm)j9Du%WTg-Jm zI{Zk%dm#UA-f>c*s!{KX@H8zIr(6{Eaq)cdoxvWIGNm%FTnnp{SEY{9J~)7u~Rt1`F;mK$%Y+Bf?1I{?-@tM**LxHzjX1)k zr}(#=VzjktmbR^ zgz)^eTS~>G)E8AB&@((G#Tox>md*!?NGt=(Jr4tr+CMQCh!>5>9S*Wnmk~g&U|*Jm ziSyEOj$5rJ+C|$`Lna4sA8)P)KW@2g^&W5UeSTSP25~u9qcsiY?-ZG&FudA z*sFYLmSoj_#cWl%2p%Qo2rEaPm=lAin4FrPn{4)5%qY)beBKn7}zq`Z!N8MkoVPj?+fcZHJ)NYRgX|rXe znFURO<`Wv&`e#Sds`%N~@DlV+S*h*bLKSdawr#?XpDuQO$W`qkRB`j=rIjiEr;ZO! zT;~>Re)cIOtxnDK5-jJS#V^-Ip9ZWuOf7FC#6-w&J6OsbY9<&_7}U~9Qm2A>HJMCu z-5RfrE#|U1-xr?yNV}+22qehwjcki?h+wxHoHDzE2s>^3$C>GxyU$w-@yJkpe`Sfd^)f$!&{43xVf7px z^*j{?jA|8sL1=b&A14R-IA1NFpcN!rNCF-4+vCvWXK8RkdEXtnWB1`424Mu2Sb$HEyR&Go{ZL zE(>#P>({5U>FOMI`+8b=3Q8@EeNLz(&48CHpOEd^!-$&gk?;?s?#K&@2g6?i+pOLk zjb)S2zwT4Xe*KSCTKrsCgblDJ69LTb{>N6 z$X~BFL5bT)5g0C9*FidEJE9E7vePRE??2N{sV;vi!>*&DeVc3d6Sn%;dykv_jk>V_ ziAGmfMx)91o%(j|yHrNBEq@Gm_~1k8zUEDG-J#ud#f%0$0lD|=$bviJuBk@EE~|{n z2z!Vvv`STe(JLDl+`-*~TejksiMmsFT{v}k#cm`#TuCRUO$bWe#-W50mEt}ml_szu zxZ?cf=!$y1(twl7asey3TEC^FbjI|B^Zn5G2jE|nMg#*k ztl#T^J8&&2@6Qgi#^IEIGmNrH))-Y>1k;a*obvGP2$~z0QqGBqYi`+*=v=%zc#34? z-fpblt$P%nFpoe{HCV)q<8Yp&3U$tyh8L_`pL}=#+o_n)GS_MYLVn>Lu2%Ec$50SPXAuRH1N>y*&+POcTySa{?Q9BFM)uM zzlQ`3s;IB~(?jppwdHP4h)<7!Jt^ni-s`}&qpm*R#KN!^7i+0sfc>%->gjsy3H5lj z|9ZM!1d)Mds2gvsAHl`OumBgz+EA2znm1&f`lDd`1OA^gR^j-HMGqthNH7Tq2sUuW z0yggcYnlSCynxrIy^)nIleMFn#g)2^Bf1)fV3#*Ht=$X?4I>8hU>93|G2>@?FfOa_ zrO8~yjCD?-(n<2@nN&t!7E=K^2`?azVFErM4H&Af*-nb{fqcs1!jjM^@EACwWY)Kw z0vHD1x0_qVu!_M62H!5X*57)w@3&lLdA(2U3&#o#hUV_jykS`oz|A~F9-4cn>|1Ib zd8%YCF}YkpPTM*L_dsmGEDenK0_4d@rmWKdU&IsG|?u!M^rV!5Qof#WmDt5x0U zcYG<#Y8;#Zdgsijfh!l!_%_l!^)%Bug?($J$#ELYz`)ZlS(eNM#^V>rFw$q+!(XF{ zSWzPCxS@WyRup)F8Y9(gQK#~nbPruMs*&e~`}k?LD*iS-6cWd?j*3@+Gz{|`Nz_)G z-QGB_(h3wn?-*m=urYpGG1N0l;Y+)+g<*6Y<@mjoi0KV=kdSu=`vk{Hj3n^6A?6AG z8ONZQ0V|I_Ewj?@mZwJ0rUWkxU88f7aJ(s@4qfyc9j8UD3QRKJ@~_S9`pfX6{zqu= z6ijP5V-$)Ki4msX){{#erm4})N;$Hr-fxso>Aj2uice(660MP_7XNFxKE)SQZ+Ts{ zc+w=WruXO*_o|qqTecfdINyA(2XCWT>}nojP4>VQti*EW50KH}53h z%ej~J@8c{z{#&Yf!rPmFH{3q?_K_XC@b=lSpV>Y62CTi`tL|Mb{l34keEk*a_0y`@ zUT%Z%UL^CH=Ww>=eX zxUSl;W+rDe-@H!cIF=W)p7wS4ZZw{sxQ}7No}ZPk)|YV4^Ig8^Vs}N{OLL}}djh@x z?n?H?-D~>j&-8}R<+sDOtv~iMaEo6GmJez$xOw36&5HBMZu}pF)Y$n8PDM6sty3_p zPR)6{=|;ZjO+K@A3G-e&cr+(;$wlFWrT^vfvM(rXmu~KS$Ck|1ty$C~7@>Sva^?#; ziSC`BRw?{TOpWOKU{!l+!W9#dHxgVrhYNKcR?JJtJj48gJ?Tk%?`hpjyzx&i^~X=0 zxIOLgvnia@-riN7(|*qP%zEM5?Mu?qdS#~CW`3G7XZNymd#bO!X*yKB=IFLbmyD__ zOMTxyQvFeNSMFf+`_JpAJn;xFKK<%iyIkFqi(6mIRo6UTwtQaQvzyQ7)h{eQeQkPN zUFz-C>-YY=cH8=1<@W67>-z2PeLi`w_P71tH>VHBf0ePUTJyc){>%JxHNWqE|C?TK zQUCDK`u(xL{`TAdUsP&%fOm>rM(hoiHq{p8swnZpX2FdUKRhlfJ=`VsGIn)a|M}?2 zlM-)ksI2}zf%E6NV&zvyoL9~iPXFd>&kZxc+1~dZF#s@d; z(KU9oaR+Atm0SdB6hzVZ94G>>dy?~uz$4M<+P~bsE&dv)J%@#XK>$U2Jx~O$J+Ytw zo2x%9T;Ea$tm>>3(Jh|=3<&Vd0nmujT%g~vY0qnr7BT`_ei~?%42tEhJW%ZrpCcQB zH57VRi&=N;Gcd%3vNG_an6!}>YEp4YWlk!1x)MDM&<~V^>2F}nv_;X3cDy9IIq37G z2y<=~!OTILL_yb%KJkLkexeMj9c>y0-30WB2!sj0%AqEpOiQ5aM;|pt=PH_# zMmGYz|BW!Btr2T)9Nhr)jxNH0xF%!+uyuRU%|h=xBFqYJMm7tzCy8zfdRGf!N?r>z oR8Trz==#yyg9!bc9Y|RWwRITa%?ivxpj;)$kO<5kzk5ME0N!~R{r~^~ literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/cross/CandidateCopyExpansion.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/cross/CandidateCopyExpansion.scala deleted file mode 100644 index 9748c90ff..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/cross/CandidateCopyExpansion.scala +++ /dev/null @@ -1,56 +0,0 @@ -package com.twitter.frigate.pushservice.refresh_handler.cross - -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.base.CandidateDetails -import com.twitter.frigate.common.util.MRNtabCopy -import com.twitter.frigate.common.util.MRPushCopy -import com.twitter.frigate.pushservice.model.PushTypes.RawCandidate -import com.twitter.frigate.pushservice.model.candidate.CopyIds -import com.twitter.util.Future - -/** - * @param statsReceiver - stats receiver object - */ -class CandidateCopyExpansion(statsReceiver: StatsReceiver) - extends BaseCopyFramework(statsReceiver) { - - /** - * - * Given a [[CandidateDetails]] object representing a push recommendation candidate this method - * expands it to multiple candidates, each tagged with a push copy id and ntab copy id to - * represent the eligible copies for the given recommendation candidate - * - * @param candidateDetails - [[CandidateDetails]] objects containing a recommendation candidate - * - * @return - list of tuples of [[PushTypes.RawCandidate]] and [[CopyIds]] - */ - private final def crossCandidateDetailsWithCopyId( - candidateDetails: CandidateDetails[RawCandidate] - ): Future[Seq[(CandidateDetails[RawCandidate], CopyIds)]] = { - val eligibleCopyPairs = getEligiblePushAndNtabCopiesFromCandidate(candidateDetails.candidate) - val copyPairs = eligibleCopyPairs.map(_.map { - case (pushCopy: MRPushCopy, ntabCopy: Option[MRNtabCopy]) => - CopyIds( - pushCopyId = Some(pushCopy.copyId), - ntabCopyId = ntabCopy.map(_.copyId) - ) - }) - - copyPairs.map(_.map((candidateDetails, _))) - } - - /** - * - * This method takes as input a list of [[CandidateDetails]] objects which contain the push - * recommendation candidates for a given target user. It expands each input candidate into - * multiple candidates, each tagged with a push copy id and ntab copy id to represent the eligible - * copies for the given recommendation candidate - * - * @param candidateDetailsSeq - list of fetched candidates for push recommendation - * @return - list of tuples of [[RawCandidate]] and [[CopyIds]] - */ - final def expandCandidatesWithCopyId( - candidateDetailsSeq: Seq[CandidateDetails[RawCandidate]] - ): Future[Seq[(CandidateDetails[RawCandidate], CopyIds)]] = - Future.collect(candidateDetailsSeq.map(crossCandidateDetailsWithCopyId)).map(_.flatten) -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/cross/CandidateCopyPair.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/cross/CandidateCopyPair.docx new file mode 100644 index 0000000000000000000000000000000000000000..a4de38c4d861da7d8f371116b4d52261436ebbdf GIT binary patch literal 36836 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 Set( - MrPushCopyObjects.FirstDegreeJustTweetedBoldTitle - ), - F1FirstdegreePhoto -> Set( - MrPushCopyObjects.FirstDegreePhotoJustTweetedBoldTitle - ), - F1FirstdegreeVideo -> Set( - MrPushCopyObjects.FirstDegreeVideoJustTweetedBoldTitle - ), - TweetRetweet -> Set( - MrPushCopyObjects.TweetRetweetWithOneDisplaySocialContextsWithText, - MrPushCopyObjects.TweetRetweetWithTwoDisplaySocialContextsWithText, - MrPushCopyObjects.TweetRetweetWithOneDisplayAndKOtherSocialContextsWithText - ), - TweetRetweetPhoto -> Set( - MrPushCopyObjects.TweetRetweetPhotoWithOneDisplaySocialContextWithText, - MrPushCopyObjects.TweetRetweetPhotoWithTwoDisplaySocialContextsWithText, - MrPushCopyObjects.TweetRetweetPhotoWithOneDisplayAndKOtherSocialContextsWithText - ), - TweetRetweetVideo -> Set( - MrPushCopyObjects.TweetRetweetVideoWithOneDisplaySocialContextWithText, - MrPushCopyObjects.TweetRetweetVideoWithTwoDisplaySocialContextsWithText, - MrPushCopyObjects.TweetRetweetVideoWithOneDisplayAndKOtherSocialContextsWithText - ), - TweetFavorite -> Set( - MrPushCopyObjects.TweetLikeOneSocialContextWithText, - MrPushCopyObjects.TweetLikeTwoSocialContextWithText, - MrPushCopyObjects.TweetLikeMultipleSocialContextWithText - ), - TweetFavoritePhoto -> Set( - MrPushCopyObjects.TweetLikePhotoOneSocialContextWithText, - MrPushCopyObjects.TweetLikePhotoTwoSocialContextWithText, - MrPushCopyObjects.TweetLikePhotoMultipleSocialContextWithText - ), - TweetFavoriteVideo -> Set( - MrPushCopyObjects.TweetLikeVideoOneSocialContextWithText, - MrPushCopyObjects.TweetLikeVideoTwoSocialContextWithText, - MrPushCopyObjects.TweetLikeVideoMultipleSocialContextWithText - ), - UnreadBadgeCount -> Set(MrPushCopyObjects.UnreadBadgeCount), - InterestBasedTweet -> Set(MrPushCopyObjects.RecommendedForYouTweet), - InterestBasedPhoto -> Set(MrPushCopyObjects.RecommendedForYouPhoto), - InterestBasedVideo -> Set(MrPushCopyObjects.RecommendedForYouVideo), - UserFollow -> Set( - MrPushCopyObjects.UserFollowWithOneSocialContext, - MrPushCopyObjects.UserFollowWithTwoSocialContext, - MrPushCopyObjects.UserFollowOneDisplayAndKOtherSocialContext - ), - HermitUser -> Set( - MrPushCopyObjects.HermitUserWithOneSocialContext, - MrPushCopyObjects.HermitUserWithTwoSocialContext, - MrPushCopyObjects.HermitUserWithOneDisplayAndKOtherSocialContexts - ), - TriangularLoopUser -> Set( - MrPushCopyObjects.TriangularLoopUserWithOneSocialContext, - MrPushCopyObjects.TriangularLoopUserWithTwoSocialContexts, - MrPushCopyObjects.TriangularLoopUserOneDisplayAndKotherSocialContext - ), - ForwardAddressbookUserFollow -> Set(MrPushCopyObjects.ForwardAddressBookUserFollow), - NewsArticleNewsLanding -> Set(MrPushCopyObjects.NewsArticleNewsLandingCopy), - TopicProofTweet -> Set(MrPushCopyObjects.TopicProofTweet), - UserInterestinTweet -> Set(MrPushCopyObjects.RecommendedForYouTweet), - UserInterestinPhoto -> Set(MrPushCopyObjects.RecommendedForYouPhoto), - UserInterestinVideo -> Set(MrPushCopyObjects.RecommendedForYouVideo), - TwistlyTweet -> Set(MrPushCopyObjects.RecommendedForYouTweet), - TwistlyPhoto -> Set(MrPushCopyObjects.RecommendedForYouPhoto), - TwistlyVideo -> Set(MrPushCopyObjects.RecommendedForYouVideo), - ElasticTimelineTweet -> Set(MrPushCopyObjects.RecommendedForYouTweet), - ElasticTimelinePhoto -> Set(MrPushCopyObjects.RecommendedForYouPhoto), - ElasticTimelineVideo -> Set(MrPushCopyObjects.RecommendedForYouVideo), - ExploreVideoTweet -> Set(MrPushCopyObjects.ExploreVideoTweet), - List -> Set(MrPushCopyObjects.ListRecommendation), - InterestBasedUserFollow -> Set(MrPushCopyObjects.UserFollowInterestBasedCopy), - PastEmailEngagementTweet -> Set(MrPushCopyObjects.RecommendedForYouTweet), - PastEmailEngagementPhoto -> Set(MrPushCopyObjects.RecommendedForYouPhoto), - PastEmailEngagementVideo -> Set(MrPushCopyObjects.RecommendedForYouVideo), - ExplorePush -> Set(MrPushCopyObjects.ExplorePush), - ConnectTabPush -> Set(MrPushCopyObjects.ConnectTabPush), - ConnectTabWithUserPush -> Set(MrPushCopyObjects.ConnectTabWithUserPush), - AddressBookUploadPush -> Set(MrPushCopyObjects.AddressBookPush), - InterestPickerPush -> Set(MrPushCopyObjects.InterestPickerPush), - CompleteOnboardingPush -> Set(MrPushCopyObjects.CompleteOnboardingPush), - GeoPopTweet -> Set(MrPushCopyObjects.GeoPopPushCopy), - TagSpaceTweet -> Set(MrPushCopyObjects.RecommendedForYouTweet), - FrsTweet -> Set(MrPushCopyObjects.RecommendedForYouTweet), - TwhinTweet -> Set(MrPushCopyObjects.RecommendedForYouTweet), - MrModelingBasedTweet -> Set(MrPushCopyObjects.RecommendedForYouTweet), - DetopicTweet -> Set(MrPushCopyObjects.RecommendedForYouTweet), - TweetImpressions -> Set(MrPushCopyObjects.TopTweetImpressions), - TrendTweet -> Set(MrPushCopyObjects.TrendTweet), - ReverseAddressbookTweet -> Set(MrPushCopyObjects.RecommendedForYouTweet), - ForwardAddressbookTweet -> Set(MrPushCopyObjects.RecommendedForYouTweet), - SpaceInNetwork -> Set(MrPushCopyObjects.SpaceHost), - SpaceOutOfNetwork -> Set(MrPushCopyObjects.SpaceHost), - SubscribedSearch -> Set(MrPushCopyObjects.SubscribedSearchTweet), - TripGeoTweet -> Set(MrPushCopyObjects.TripGeoTweetPushCopy), - CrowdSearchTweet -> Set(MrPushCopyObjects.RecommendedForYouTweet), - Digest -> Set(MrPushCopyObjects.Digest), - TripHqTweet -> Set(MrPushCopyObjects.TripHqTweetPushCopy) - ) - - // Static map from a push copy to set of eligible ntab copies - private[cross] val pushcopyToNtabcopy: Map[MRPushCopy, Set[MRNtabCopy]] = - Map[MRPushCopy, Set[MRNtabCopy]]( - MrPushCopyObjects.FirstDegreeJustTweetedBoldTitle -> Set( - MrNtabCopyObjects.FirstDegreeTweetRecent), - MrPushCopyObjects.FirstDegreePhotoJustTweetedBoldTitle -> Set( - MrNtabCopyObjects.FirstDegreeTweetRecent - ), - MrPushCopyObjects.FirstDegreeVideoJustTweetedBoldTitle -> Set( - MrNtabCopyObjects.FirstDegreeTweetRecent - ), - MrPushCopyObjects.TweetRetweetWithOneDisplaySocialContextsWithText -> Set( - MrNtabCopyObjects.TweetRetweetWithOneDisplaySocialContext - ), - MrPushCopyObjects.TweetRetweetWithTwoDisplaySocialContextsWithText -> Set( - MrNtabCopyObjects.TweetRetweetWithTwoDisplaySocialContexts - ), - MrPushCopyObjects.TweetRetweetWithOneDisplayAndKOtherSocialContextsWithText -> Set( - MrNtabCopyObjects.TweetRetweetWithOneDisplayAndKOtherSocialContexts - ), - MrPushCopyObjects.TweetRetweetPhotoWithOneDisplaySocialContextWithText -> Set( - MrNtabCopyObjects.TweetRetweetPhotoWithOneDisplaySocialContext - ), - MrPushCopyObjects.TweetRetweetPhotoWithTwoDisplaySocialContextsWithText -> Set( - MrNtabCopyObjects.TweetRetweetPhotoWithTwoDisplaySocialContexts - ), - MrPushCopyObjects.TweetRetweetPhotoWithOneDisplayAndKOtherSocialContextsWithText -> Set( - MrNtabCopyObjects.TweetRetweetPhotoWithOneDisplayAndKOtherSocialContexts - ), - MrPushCopyObjects.TweetRetweetVideoWithOneDisplaySocialContextWithText -> Set( - MrNtabCopyObjects.TweetRetweetVideoWithOneDisplaySocialContext - ), - MrPushCopyObjects.TweetRetweetVideoWithTwoDisplaySocialContextsWithText -> Set( - MrNtabCopyObjects.TweetRetweetVideoWithTwoDisplaySocialContexts - ), - MrPushCopyObjects.TweetRetweetVideoWithOneDisplayAndKOtherSocialContextsWithText -> Set( - MrNtabCopyObjects.TweetRetweetVideoWithOneDisplayAndKOtherSocialContexts - ), - MrPushCopyObjects.TweetLikeOneSocialContextWithText -> Set( - MrNtabCopyObjects.TweetLikeWithOneDisplaySocialContext - ), - MrPushCopyObjects.TweetLikeTwoSocialContextWithText -> Set( - MrNtabCopyObjects.TweetLikeWithTwoDisplaySocialContexts - ), - MrPushCopyObjects.TweetLikeMultipleSocialContextWithText -> Set( - MrNtabCopyObjects.TweetLikeWithOneDisplayAndKOtherSocialContexts - ), - MrPushCopyObjects.TweetLikePhotoOneSocialContextWithText -> Set( - MrNtabCopyObjects.TweetLikePhotoWithOneDisplaySocialContext - ), - MrPushCopyObjects.TweetLikePhotoTwoSocialContextWithText -> Set( - MrNtabCopyObjects.TweetLikePhotoWithTwoDisplaySocialContexts - ), - MrPushCopyObjects.TweetLikePhotoMultipleSocialContextWithText -> Set( - MrNtabCopyObjects.TweetLikePhotoWithOneDisplayAndKOtherSocialContexts - ), - MrPushCopyObjects.TweetLikeVideoOneSocialContextWithText -> Set( - MrNtabCopyObjects.TweetLikeVideoWithOneDisplaySocialContext - ), - MrPushCopyObjects.TweetLikeVideoTwoSocialContextWithText -> Set( - MrNtabCopyObjects.TweetLikeVideoWithTwoDisplaySocialContexts - ), - MrPushCopyObjects.TweetLikeVideoMultipleSocialContextWithText -> Set( - MrNtabCopyObjects.TweetLikeVideoWithOneDisplayAndKOtherSocialContexts - ), - MrPushCopyObjects.UnreadBadgeCount -> Set.empty[MRNtabCopy], - MrPushCopyObjects.RecommendedForYouTweet -> Set(MrNtabCopyObjects.RecommendedForYouCopy), - MrPushCopyObjects.RecommendedForYouPhoto -> Set(MrNtabCopyObjects.RecommendedForYouCopy), - MrPushCopyObjects.RecommendedForYouVideo -> Set(MrNtabCopyObjects.RecommendedForYouCopy), - MrPushCopyObjects.GeoPopPushCopy -> Set(MrNtabCopyObjects.RecommendedForYouCopy), - MrPushCopyObjects.UserFollowWithOneSocialContext -> Set( - MrNtabCopyObjects.UserFollowWithOneDisplaySocialContext - ), - MrPushCopyObjects.UserFollowWithTwoSocialContext -> Set( - MrNtabCopyObjects.UserFollowWithTwoDisplaySocialContexts - ), - MrPushCopyObjects.UserFollowOneDisplayAndKOtherSocialContext -> Set( - MrNtabCopyObjects.UserFollowWithOneDisplayAndKOtherSocialContexts - ), - MrPushCopyObjects.HermitUserWithOneSocialContext -> Set( - MrNtabCopyObjects.UserFollowWithOneDisplaySocialContext - ), - MrPushCopyObjects.HermitUserWithTwoSocialContext -> Set( - MrNtabCopyObjects.UserFollowWithTwoDisplaySocialContexts - ), - MrPushCopyObjects.HermitUserWithOneDisplayAndKOtherSocialContexts -> Set( - MrNtabCopyObjects.UserFollowWithOneDisplayAndKOtherSocialContexts - ), - MrPushCopyObjects.TriangularLoopUserWithOneSocialContext -> Set( - MrNtabCopyObjects.TriangularLoopUserWithOneSocialContext - ), - MrPushCopyObjects.TriangularLoopUserWithTwoSocialContexts -> Set( - MrNtabCopyObjects.TriangularLoopUserWithTwoSocialContexts - ), - MrPushCopyObjects.TriangularLoopUserOneDisplayAndKotherSocialContext -> Set( - MrNtabCopyObjects.TriangularLoopUserOneDisplayAndKOtherSocialContext - ), - MrPushCopyObjects.NewsArticleNewsLandingCopy -> Set( - MrNtabCopyObjects.NewsArticleNewsLandingCopy - ), - MrPushCopyObjects.UserFollowInterestBasedCopy -> Set( - MrNtabCopyObjects.UserFollowInterestBasedCopy - ), - MrPushCopyObjects.ForwardAddressBookUserFollow -> Set( - MrNtabCopyObjects.ForwardAddressBookUserFollow), - MrPushCopyObjects.ConnectTabPush -> Set( - MrNtabCopyObjects.ConnectTabPush - ), - MrPushCopyObjects.ExplorePush -> Set.empty[MRNtabCopy], - MrPushCopyObjects.ConnectTabWithUserPush -> Set( - MrNtabCopyObjects.UserFollowInterestBasedCopy), - MrPushCopyObjects.AddressBookPush -> Set(MrNtabCopyObjects.AddressBook), - MrPushCopyObjects.InterestPickerPush -> Set(MrNtabCopyObjects.InterestPicker), - MrPushCopyObjects.CompleteOnboardingPush -> Set(MrNtabCopyObjects.CompleteOnboarding), - MrPushCopyObjects.TopicProofTweet -> Set(MrNtabCopyObjects.TopicProofTweet), - MrPushCopyObjects.TopTweetImpressions -> Set(MrNtabCopyObjects.TopTweetImpressions), - MrPushCopyObjects.TrendTweet -> Set(MrNtabCopyObjects.TrendTweet), - MrPushCopyObjects.SpaceHost -> Set(MrNtabCopyObjects.SpaceHost), - MrPushCopyObjects.SubscribedSearchTweet -> Set(MrNtabCopyObjects.SubscribedSearchTweet), - MrPushCopyObjects.TripGeoTweetPushCopy -> Set(MrNtabCopyObjects.RecommendedForYouCopy), - MrPushCopyObjects.Digest -> Set(MrNtabCopyObjects.Digest), - MrPushCopyObjects.TripHqTweetPushCopy -> Set(MrNtabCopyObjects.HighQualityTweet), - MrPushCopyObjects.ExploreVideoTweet -> Set(MrNtabCopyObjects.ExploreVideoTweet), - MrPushCopyObjects.ListRecommendation -> Set(MrNtabCopyObjects.ListRecommendation), - MrPushCopyObjects.MagicFanoutCreatorSubscription -> Set( - MrNtabCopyObjects.MagicFanoutCreatorSubscription), - MrPushCopyObjects.MagicFanoutNewCreator -> Set(MrNtabCopyObjects.MagicFanoutNewCreator) - ) - - /** - * - * @param crt - [[CommonRecommendationType]] used for a frigate push notification - * - * @return - Set of [[MRPushCopy]] objects representing push copies eligibile for a - * [[CommonRecommendationType]] - */ - def getPushCopiesFromRectype(crt: CommonRecommendationType): Option[Set[MRPushCopy]] = - rectypeToPushCopy.get(crt) - - /** - * - * @param pushcopy - [[MRPushCopy]] object representing a push notification copy - * @return - Set of [[MRNtabCopy]] objects that can be paired with a given [[MRPushCopy]] - */ - def getNtabcopiesFromPushcopy(pushcopy: MRPushCopy): Option[Set[MRNtabCopy]] = - pushcopyToNtabcopy.get(pushcopy) -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/cross/CopyFilters.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/cross/CopyFilters.docx new file mode 100644 index 0000000000000000000000000000000000000000..75c68fe63049184899b0e3a53752af785baad1b4 GIT binary patch literal 37395 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 - copyPredicates.alwaysTruePredicate - - case _: SocialContextActions => copyPredicates.displaySocialContextPredicate - - case _ => copyPredicates.unrecognizedCandidatePredicate // block unrecognised candidates - } - - // apply predicate to all [[MRPushCopy]] objects - val filterResults: Future[Seq[Boolean]] = compositePredicate(candidateCopyPairs) - filterResults.map { results: Seq[Boolean] => - val seqBuilder = Seq.newBuilder[MRPushCopy] - results.zip(pushCopies).foreach { - case (result, pushCopy) => if (result) seqBuilder += pushCopy - } - seqBuilder.result() - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/cross/CopyPredicates.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/refresh_handler/cross/CopyPredicates.docx new file mode 100644 index 0000000000000000000000000000000000000000..6ea7cae38fac6666902acd36496c4a9b364a8dc3 GIT binary patch literal 37160 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%0DPW`FS?SCq~%)APnir=c__EOCgJ1KqV zJmy?#0DC!@_l;?EuDb9Y$G)e=kVGF!U-_a2tgfBuvqbGyR!saB(eD-d$HUe}593>h zNM}xnDxR!CD4Mm~I^!J6<5<&=o5LT`lgiaGCG-0a2i65qmbUdQtR*EYMqFNmFw>uY z)twIX%bvDNMf1Vd-xz@=_9-TqSpdrC>@!y1s^*4+)mBx~gHoF$zhUAd!%O(!?Z7yL zl8x_qYE^C@`V9FP!O;f-!s0?Ykfm0mvV;fFA#Y+}WChm{eR6ac=8=|G%Kt%q(LD&?8J=Uj>C^VU%LM+Ys=N=wVJ@4IF~I#7 znNDD5GiArI2xcUON0>H>eC?p44!QY`!$1PJS;Y2PDgx2R%$>;Lo(_J?{~JWH3c z(N|3m(OdhEak>1P`=#A4UByr(g-?t+C=oxS0d+~kzRS5{^s9VYa|M2i zU0GE}7w*jmag0{wn{!}#swYhf%0#a218dq%U8u(O>0h~S3fqOs94YKdgi|)OLdFI? znBoH9Z^Ucoy~)t1j=`ufmnRuTj+>e!@S)ruHyHX!ZK!R5dmq%ZzALbwhG$z#&Oq5& zl^+n$eEg=a`QC8TF=7#Dj4>sv_kuv44wG+Wbn16^l5?E-))37cnpe?t zoIlIT3zz}?ind*VtW(Y^H)wQ4$l1or&43iIGtqo&qFif;sh;nL-Ocv3jKw79L^-QEQ_G7s z<&!_^!G25^<&f+Rd`sbH?056JZeObWmq)$3;<2H>fn9meng3z(Cuh}7_i+1M6@~w4GBo+ONnXU?CcEta|4i~K+V;$J9B@_vK_)Sat>5_VvRjFW3vjXV1!6Kj zSWr6=g5D_Chp+ALuACf#x31GLL0(HGH)6?P>*&cahb}N2w0I5Sjo+GIRmyD{e{g>A z0NQ+2<%5vu)15_|)1Tzihl7Me@Lo1YdqMD8ZXF78M+0ENL6@fs=a2<>%~|!sg!q%p zSOr11gizw}gLWO;kYR*i;{IXaAD~)EWs^u*N@;k-s&33f;~^%^;22oD?6|XGvs+V} z!f{jpn#e4U9kG@d5S>r7J0Yel4JLvlF5F}KleMs}3Xs2-NvP2P&N;|1@EvFnTIX*x z53wp(z0ix_Xe^GmFjK=E+RGEGgNUUq<)3j|?a%8yz&BxH&&A1p9p0L=KEDk!ZtwM2m~jE{(XV1 z2VG#Af#8fXZZCn2x!v2)MJHoK!-%Z0WSzZ6Sge=Q!cY1vDXC5EK=3QAg>wk^P%j*o zUiVT=Bid8XirR5G#@=nS@$vc6A9SyK+h5Bdm>~jqMN?vW3UH6x%TYATM~|-~pg;Si5bWUrnRevFqi@ibh28 z={8ch)vdVAt>*P36hL1N!#ir!n$1_8-4dLF{mlI8<}UBsA#l-waxOsg1?h0zw^{Tv z4J&P_kn&A!98hqfpdbG{EQVptsl;YI+p!C$dAg@072 zDC3D@I)Z!y&-lrnYo0HMUJg7K(Jk(=$$|f>;$B?2%L$&X2Zgm~$b{387u`lIEvGj( zSDJodK>V>-BNo9nk(|HUPCKdG$-Dnq?_=OMh$}?u?nCc>W!cFYFh}{xnn-EVgHSWv zi41R-i^fgzE88Bi1pX^^DY|W^ouYu%-#iQeF^jU6T=Ih@@B^N#nL~PnsIhYq$qXJ^~foU$$t!1AigV9MgqAq=7kvKe&E{8+=yz zg>i#+zFfp?sRxLEXxchb%6cfv$2xC4m+Eb@-S~8%y{Yh34L~h3SpzuNp=g z>|uwsCm#3S&SXa6n2EjTHY25+LqszPf*AJ~>CK;1IE!ikL{JhSCuh=Ta1c|8@+fGp zF!8V&XKK83MumHhR6jgDOO7OO9BOkp7=JOoVzOLYIXr|>-zlLyumWqPI#`mTK)aHt zi{!a_>BUh#wm-eH?Rw$t7Z#EFP1HS8<5rb1{X92)jst zm>BX%MQF%1ZVfT^qLRTUgO$@A&Ar>;ho-NLozZ8{&%HZIy}JKhs+k zt0FR@f91~+w#@Ljn7!xn#rNFacg`{_TeXqSc73qRWf5AHrY=D2TGs9(TnGliyOdn> z;S@zRaV?yigLOQXv1PXz=Np($uQeng>l|SIK7R@Sh7A2^J<6<@E9VXoli zvgdSf0>+b;2o6icbIL-5uL(8IjaZqg8WKFr(tcM=$*+BPP zO03%5NUWA_zo!dC01~m>H#uXaGka`3=avML^cQ9eIMNb8YMjq4Jt?MLdhI=HoO3j7 zhh{_G+(6LZ=iz4{0E?AG#)-aM^A9HYRJd|)bp?`?$5voJ)8C$!=S;~$i^!pCoF9Aj z)kI^my7oQ&7W|AxeY4Kz0umhfAHjh+WzZsj3hw(Y`24rvYJy`|H?{|@W4mr|Xb}w( zZHD_~k}mK};E1B#PT| zMZKtjO%z(hw`(hju7+nC)T)jM{K2PU%#sUoU01ekb#z^@J^=V0?c=ubWr(PBdr55T z$P46WWB~zKt1$||2R(Axw@gGDMcU<@IzJ`tADVj9ubuzG^@4eU!NPy-=5mrdp_Q=_8J%3<_8i9{- zM~@Nc7HC{nytUU-qTw}a5c~bEUn<6ljCT|JzX6<-e*+wa{{i55=N`BRHPQh$a?(p2 zv%KZOUzw@o*l8IQ1!2XX9ZnFu-Fk8R1C8M* zvsw9<0{x)bK_V9j|7{OM+mTRAD}G!axIU-7lUWkp%_Mej@DZovGO&@zssuzw!gcDj zKj{xS|DrE3vl85f2AMzDX$5pdf_EGYasGEW9puQ~{mV5DDj~H$1b$B^(A^UfE7CYl z7EwnKRwf}SS(=h5&#~zAtgS0yOudL(KBdTgGZ(v@{(aT9n0&F<`In+86;*scm-IaP z=ogjqNF`^kt!Q8x7MbtKdaElhS9EvTpk2qtNQ1CfGh&4?OK>mS+7tt>B3P8l!+9Qz zSBYZDw|2{{^RH1}$B+g`iGBN~(ltyx!;pBXP7Xmoo9**nDUplBD3v=+G2h^nf|$>r zLopzz>MnU7u{%{o4Xs;Z9HE!mpus!i3TwDz)JP51V^TbKi#C@N@V>w!F)qckbCg2B zV&dWS_CrZi5f^iyUO_OJoB^n)r4=d*6ejg}BiTCCVV&4CnN!pq9OPOJs#Bx6OiXso z_;n$p@P14i?<0n_ix`Bxy^U}mPJ}YY-dsbz@ z@c8qr54#nB(_AskzMh@sOSIK5spU$2DlO`n@rW0D&q}1tgA|>2>T}*2#wJwzkq;BEKu1U$!&ljVXIjEy{1+tY2 zMTF7%nKERK+hmodJKm~3YS zg!hqh;DJ9g&zL~vVh8t)l5>Mx_WhVN`MnEhD*KfXI?aZsE3J%FEPynuyX=y>#6<+F zc9Yuo{a;k9AS%45-&CxTL#EqxGdyM>o9tgaSxLO?Oh?-_AB|+Qld%OPu5{jYigDJl zn`@;UKc=Ml8_+ULxVlXv@tYPIHGUxTt}TC0rB%$vaMjg|yqu`gjBRzOlP3BLgW;H# zp<(#cZnAomo!~2|JTf(W`v=9r6Z`3RCJO))QwvZb0jMd*p2FVh?6%@|uBeNn1P^xg z6YZL&7MGQk%cPkj(J^ zr!ni`1YT@UXqbOv^wQOZgrU|dPUQNkqsw}i$=AUF17b`}hQ1n#a#7+x)(TG!udV+f zNiB>WX&mycW@6eQ-#AM+x9p;Lt4T?)XoN?%Dz~K!Fk^T7sek=jht7OdvI|d=m|%$E z;ZldHYdt|WTcaIVD7p5aW zypkE`V0RYkxUZ;jUwz)|1;RsN!cn6s#5I>%d4rcw_&bR9Wjqy_&;l!5#X}OR)2&Ov z0A;c&dAKThA>83m*l_e{8lGoqc55}~ny*RWV4w4Wz zq}irTmP%e>i5fnAF9AKe#t&GHkKM9LTe6fPmGwP0uCvj;0tpXACPZc4(S42t`s#?`Hu2q4D%6!NMX)O^b*sre3f)`}s&-7UD zmV=ST)4$Cx3GI`ylxM_ATAZQ5#U&{^>@r~Nk@R)I*omiR?CwKI&Cpc$kcFNX9L$e- z&qJ|K?bBqhdaM7qD*YHuLLKx&`|BH67uMHau-$0!JkcA=(I19K8D#JTXxyck1f}-4 zHmF3Cpy_GGL2XXgN9B#fHW0rwkaDlzXqj3G^o%N1s8Wy1 z9*wo_O$JYgrdEncS9*eDgGzT_@L(>C(|x8y8uFNGg%vi}VE^6l*xOwT7;vE+9o#=*sOU}&1hT-MY z&1pwX4eHrh&MoL@|7O>kkRX#WPDf8yC2@1c#=+bx05v1kJwrK13w6TXm}hOoecFVV z_qk{3!+{KNJ-Bv<*PRc~kAYu7Ih;e1vPS^+H4f#QY?JZ?4Y*o0WGR9W`4_Zm1Ot zHDfPSRXvp$5+aj}9SgqBmTk)?RvioE-t7ED@-reuxa@upwQE)=uoWW*zx9(hIF{uG!cgUV(Klw*$Xc`|r-!Hyj@+mQ=$7 zw6(Una2_4*+C6lL9Lz7QdlVL%&F|GKW-72arj7XT5+jx8AVeG{@elRs9@KV>%)jqd3+9!J4p;-DXlu4z%Pr1E0t&h*``c6V%2J|vsCfImQbfAd@`-3UFePreBnh5;J(+Zu|kbA{|9%I(!<%u~od*}gvY zbB%0bCm7IY-j7Lysb%5@a^#o^OKWC^-Xvug`P!u6!Fl9P)?Yu6kj=XycBW!#r>Il} zfD~oBW%73Td>XpHpEcfphZ#j6E8;N$+;ro0dpzZD^Lab8{dQz~%T+b9$AehnK7oq+ zdhhW7cjD~*^JP7&8(T1|WAo`Jb2V&phj~PHH8Ij|n~3Y)F*0$~{MO38k&+Or`PS48 zL371RY@~VRYa4Ud&dp`4@6WNrg~y49?GMswVwoegd^q%e|ZqjK`hk3l-Hn_0=EMA*-1** zZEY(^iM4|~D$xh`x`UR_(89XJ9&6xseZNI(!@af3T}eU@!ewhvc;ut^C3aJI*a-(N zgnSm;k(B<3_f_0e4|%^#npXJlVh{-QC?iNN{W1-Q6L$sA|R>W30Vb&oy_iJ#&oXi=75V?Nbu!1*q)vi6qji4^O6fPt@0|b7t>n zu$v)Yso>9zniO~yyC;cTc@^0&>iYKYZdzm=-NI0@C0VfVOux(^pM+iL8F4dQwoDaQ zIC~K~J5+OK+sxRTy1}TRume7s6F5)td>WDajVdA%)b*CtM!F26}}Xbw$^ z(#DTd?msTplG7un^=>T<*bPCy^3eI09wZMe-ZoV`@vf-`q}Ugm$OQuTfiH+XI&zT1mW0ck$x4zgReJaQf0o}AEtj6P1UVAB}=K^66(J7ZTh zWP}J|P3KviZUO#z;^|$tIyc9IdsY0|ubVZ)-jv29XXgSj>C^rUGpg&`qmI(y7Z>fZ z$D6O1?!~Ag;Canc!F1$xcDf&LDc!xt_0}^*x^-DecmZjnTQ7_gHwaep5$- zjIBzt22$v{qswFQ zf$dnwo$@H5dsix;K~&$P{36<&cv99~#Yd<8DO*aFdz$j8MUN1&UbN}TlcE+`PZ#W4 z?Xw1qvxh31$hWp29uTK&$pp_$#9etJgePt1s{7H)y93(y$F$#+5u$_5@NtC+R&+ur zo45P@dqPj4Y#n{RSJ8J$d4t|giZ(CZ{99R*iUXHt_g?Kp&tC2Nk6?+slP@Sk8LMo9 z$L}m;jbS8w5|5`i@r5Q!$gUh22f~h&dVnt#G5pJ-pOm>57@~bc_~-=f2+<^3BJ5gbNzO`@c7KMZkvmKZm^wy z-*35_>}vU*c-}hTBL#PpvE9RHF1EJyy`An^QPqd3)*@@61Ayrv#b%ZZBROK{U^>yE z$(cMUbaLXUGUYRcRYZ3sCBeq5nld8UAM*>X5`sLLnG~{rR7Ao`Vz*)x~`#cU%KQfJLx|!v@pGhtvNTs7{6SR6% zVRf8UqEwx{%!m8^2wCjvwPaz2_M55EWzP>YpQ(*<-?COOx>2pC9E*~rx)-or_+M@r zSbnb~BX0qd&%5$qIa4v}Eqw$8x4w2gP{5UD=(0iT3?Wu(+F)?_`geFY2Cc*d*x}pn z$fIOMOP;;vPDqHow#?Pu+IC-mLjb=_h%_dbFu=hZY4m)#?(I^-ViR#+A`I&wz1O+V z!7reLl!Y98{DjPHxD2sp?dG^CwQMx)7n8%8KTYqlQ)B&Wm>m^()s>(c!-KaH+q zQq_|Wu0z<#(`&o$uMsTrv^+mBVN3^${bfbrwCswMFOe7ulO1jR`de6GR!df^_*@5h zBH*ez#+G+CH3bkLuH~(K&_ldb;*X2)ucwz>zOB-GZ4~xiBcAB6EOfH`(BX1)*xgnX zRmX3}=meiEquj(dtg}NH=sx4DjR8JX%0NpiMdKuPpu64`2WB&KK`s#CX9?M!A@^ox zy^z}`uNSwY*X6ccAPJ8AT8WbWW#5|GpBvjQ(Ad@Ap5su;fhPTPnX@CAXn)Xm zSn0jZ{nwpGr-y7ywij3E?q)z+>OI)^1}m22*4Z3>#MsQ%*wwS^%4$l_Rgo?F{FP=D z`w&ul2@~28|8MeZ)L+~|V01u8uRL!}s{plyavF#R3|?9X<3+>NIi%$kX4FJ%MuXHg z3)J+xjJe(D`daAv>E0=pguHq9Gi>tRrvvjNqcnI+b#L*^etU z4GyVZHur|W^)3eL&C02ZNu+|1D4WA1;1k7DNb5>bt9qY~ATDiJGgTMobI~fFvNm@X zN2cd|aI1N7YY4C5DS_pN4mgW8R7gdudb)zZMYR$IdT47(ch#-x&i>+ToY;PY3bMz< zUNz@gHResqY&D!iHLQcYU}$R$!WQBQNU6T-UbWU)wGk2yAN2R96_BVD|NQf6wGzo$ zPaBN(`Mqj0W*Y&Q_FoU|6wDo$OQPT1+->ANZGd~HRE7t1YzA}^6{Ks(_uL0*r^~VR z+-=l7ZPLI)X8c>aIYA1|49h%ilGnEzxADX)zPj72PvR*IG2N0i;96~)l@c|K4eHoD zbT$iY-=#YMDehH|TWGGv3w7@yTrEX1b#c;nb54PZo(OMjbk-#?JK#F|AI`_LPc1cBqzisP=31CNlt1bho*KJ#Z@ubl}+&cr1W-n3i!s zbm^Ppooi`@GHgOXpmn(Vv9WBDoce{Q_BzW9J+Y5hlIgG(~FNv-RY7>QNdt^q&^VBQ%4 zMi`2N2q6#1XT+|3Bh5uBq#z)o>?}hVi*twvG#zUbtJTv)R{$0en5EAyct6=49V149>5al+-b{!|a0)+i{ zNEFb2hrC#`0ETqC{3|5iQ^-=i#lJ#kL7|WdhxH-J_vI*06qACvSku~I;%v}9Mx%&C zs-!WC8O~yiAlMs0k&7ALk_RHKb*8w|iGdheLWSgco=Yn60M%BM+Fx6K{R|J1j`1sI$E{Mo(HeD%Jjzl0+d%t= z0~bL)L%^V}<-iISzYCMeiZYCS_}ljI-fV%8HZkY+dK?}q?P!vLllC1 z8>JtH6bxMyLZ2mbR@PcQ7S1O?jE>cRr5G(7wuw1WLN3pvT^nKmN~|&I7FRe7gcOXQ z1N0iV&}+CtuW`Z#6()VI-PQ^d=XsSY2!@X>nAZkXlRcO+O#)g0(dt3_s}eBLx8kDlB^Pv-FS#X2!4j33W3?bUHU0AcZB^4 zaf{2e&@uIjWo2OeC6a>~lMIEMq|MzC?|<@<5rr_Oa%IxdhLm`3MkEc0ku&N+@&BZP z!`>E*8-?OO9E-qb_(OZ490k-b9~Z~?+=@U#pQr85fcgBN2Mj<+_G|Rc>GA0fSocla zd z6T{IbbP|6*2~Q9WfE)*d(h2++^dI!g?MEekr$_odIy{&hd*eiFT}&EPN3^S(ULpwf&jo zZB+NTVKfS}Uv7;~`%Lt6baD20_3==y{?mc$@oepDe^BH}5 z;`&`Of{g7inWv&IAFarnm%T^s{l`g#@Dc2Etd#U)Y&?_G4R01aciY+>B@64D7v3(P zsp;)0dH1(!uQ#PE_bR}6KBi%(zN-$vZu{P}YgWX@&VlJS$4 zN@`63=93z1H1&J*>xp+SW{d+Dp{qM#tIR@_cm}50n&ue>mQnc*izF}-8YeWeJGyQq zP_?;(7k>*|-RW8V0lb3gv~C(C_Z~A>flL>Po`$;Kt7MUCcW`Qb@f6HO!WpjA>=l(W zdlGol84bqshC*sh6(%lHn_+5+^?k|pdtZ|*z2mKn(ye^*Swng->F`cutp+a~2L2PJ zW0iPhk0K+9!F|2(=4JXq-2H8o?ek~-kK%KbE}z7%_ghmzm`_hooE4jSMO@z~U6hF* z%W;yPixh@)Hov|lVC_8u@rEu^bJ3!i*%%qvrtQ$0V&to27TNutu+VL$FC-3X;QqEgX$kiW5ZK>l8hA&~O;av!FrKCQ4GA-l z?TAnHavT#hrRo2o=N#z>UcdjJdK`RlWyxC*FD@vwPap5iZVRQhQy=&D4&iy92OAJ+ z6*R2BD$jh`6&VPmcqD1R^%51-lBEG1fCs72s#XH8Mh!b5@&0|V;!W$96xeyBkwq>g zi=BnFiHVLay&?sw5zXX72%<`8>?t&pu<*k`VJz1{lTMh^YO`fnkA$o=5nWB1IkZwvhf-~+R+nCv#?%pttVXO@7 zXO>3n5|k;DwDtB^HxT9QILC(=4l#C@A<8iGM-cGz5KAZw9Lfx*9&HIN608EPC$=zi zlxdQTN0(r16TeRtL$LEx`e~mz0xiu??p8si+&&M?^Dm%GPobugWGsUtnBo=SDjFtP zj%XOH=U3Gt%rki5in0H}cxfMqWbGruYzVeAXO<()5aDQadAc znLY=FVnduqpka~WIG|U!R!pG|wFHVN_zUA-BF=?HIsS+Mvig6Eh#nGal^uT}7m@i!A=^31^kp#ZA6j3Sd6x}R+#9!lEb!KQ zX;%BlcRswmP3{Y2ULiM{I!QZNrL%mj+c%HpL;*$@?iJ30rwjxypV9~W&z+Vda?23S zhwvFijg+11L+ZH+L#r$t@wNjoz1Ay~R51+hHbh0Qd4+`$z@&+_Nh&>FYIj=+iD|tq zSC>6M-nXNtzlt?~iUZ3%qJ#83Y)*396>)^e&X90~cjHm`=BN^;;@Q7%OH6@H(TbYq ze@w?laP8A#OCjP08YFRQe;VS1!3wV5f~FrGTLkc^gl|8lWfsTOP~08}E>YV4j9Ix4#ibqpRwzzj~F)4wTge`0tbSL37fU>?mbSHV0--SmkoqeaCYBZ^$ zAAx6^*A)yeU)U9lhtqC0Oqth}brpCQaK{D4p{OrjGPpIH5=}wF>^FyS^jJtk!1|nT zLw~gVQ|dgawIfU>=T2Ew5%h>r*AnlD(X?)ck)8S9y()fD{+AAwyc3{~cb9+bcpu+vU?cl~kZ>!|%JLn4d{InM*8ldG73gVy ztawuXH^fsJ&#P$!`ciFelC6dn_kx9fPrtJXb62(6!dK)zJRy)k53 z&t*(m^U6du+1a&2boS0{{lGAoT7To*sRwXL9jhf+^5x(OIDlGP1B~80c5!QD0&SH{ z`-V_V?C{RMD1YFy&Duyt6RE%9xP(ZqkHuX8euP@-^Bs=O`)*vc9EwpWNwLBdub8I1&=H~UWLgPB#2vy5J4La1bl78WSl7KH)^kH#{5G+CO)vQd>`F|J5O;v2#Xkuj8Cp0JPP zoJIy8!b5^-rdV-Y;&P+0$@~m7O;lM!E$aeDxmhhmw~&Tm2oDgH62WPFL|vVitcPtg z6oO!kIE2U8cRpH{$+%L6fjpwhOz0ZM8KvJ^vhDo8$>L$yy!YsRQrGa8sU@L(=djny zJj*KBLtOB+RXg#%;rSZK1IA7jpTw64WhN@d^34S<*#s zc%Xu*n(G_G!>0GBdUBF0tX5%%STyPLWx~3gKN&79V` zcW~M|;hKy*NiHcZbc`kzFI-qgf&-!zGKLZ|rBE`8@u$L*Mz=U1L3*Z6LljdwATL)LK94ZzzJ#O{Rz?NPY0X{+$uD)qdzHN z(l*ow(wQ?C((+*c$<%r;)tCd6A$3)!q?3zOSZP#Lq=x^AS_Jz~R1%~RO5&wDsx(B^ ze_5bg2ecp_9_x<<)148C&m<3Pk-KG{s7an0O2b)8oe^|UX4`72_0&IW3OdB+zhYAU z#rFX65As%L#GMO*>bz714}NfA*jos+O~AS^CZ}KmpIX(7SZZkmM*68RW@GC7p+hEA zpwl?nsRocTuogTeZRQT7oLC_FKPZ!d{gX0J+N`;){&0pNm!f!dEQJClub@T#uL!dR zK6bGfV-sE`N#d*wEb69LyU99@_Z7-AI^P53F4ZOv5wwYA0UQfx=PM~jYv(AXL&*6< zVhabv((^-+=ug~h!TUuUN;<;!SoRc3>V4@2kw#c^cv73221Pe*!PqDm+#@zM@B6fV zrQdF*kUwsnK{W_v$K2ErCuP8{(Jyn8F?8oaKuPe4g=CfK=ug>R)6WPdrd(01NtTkR zm!hc$^EkYcDpbiAI#iv_{GZGkXyG}SQw6ow{49G+1;J75_~PGYq}HjTveVw`p@Q&X zxL*Y5V7NaEU)29V+=JSUuf-q~D@@>?vP-tV92b(I+jdNJ@^}u({ZR?t7_4*|9W;0! zfoL|ODa8}#IB}nbBmrJ)s^kP0B|^4bEqtMzZU^~2Roaw(u1j}Y+X%eC%K8~Wc;HM- zT^pS;%N;FPX>7|N&XHtKH)Pv!lmHDW4h**R$F9==3Bs>uKS;EgPagf!lmzx{Ow4;X z_us(m>Yx9L89%<2KXr%%3ylWwSQrB?G$?5wHo;8d#^~whI#ltL{wNKB11hCZ1u6w7 z3WCQu^2IZ5OTk)TD9CJU8$V)G5J>T)=5uedh6aHb0V(miFEGTC@{9E!f@4YXJS|<2 zBs;c^w{-;#&i;h$xv=rU@FL%HRMm8%p|27i@DEZsKTv?`NtK37)=}*OGeJpp6w^+P zcNF`c8s{jMk(%H*ga{+UlLbYx=UNaE8IKl&KFrFGGjz`U$0;UJhc*)+eJTH-MVA|~ zLYA1d9JWMcO_IGe70F1|fjz2&J2WJr9Svx6_`)@O*wDhebWyEm1T-XytUFWMKZV@& z$ceH(917<>m?oxVc*(qP>AE~%)00O7s9Yo&@S(FH6j=aO4R)o0@PW11(#12HgK0maJS7~NCU^#_iQK|awBfb1g$r-?ihn8iDSOcdC{sJ>QB0_N2xfLb|vKl6s z#@f4dfE*+Ix~DvZdkZ~8jN+Te5%4Pz^fr_RX)ErHl(4c)U>|wcB21`BuI4y!zR%?M z4w6u8#X=a11*&gfRM|4pa1;x?z!S$qBx<6mIJzFpGH1M{{sJoyN}G6SP8rhA`{{3@hVUuLq3oNr0=ql z!~0h}u3d~jUdWBo>?7x4d?zIs>SrNv1bX&gQpo*(4Z{5GnDA?UsY-9k@kc^xzSA-3kH@<$R2VIfeq@@ee{3!Ee> zf6&N3wRrpg3XJ`alKEevz@nFQ9?$FzP_U5bYd?%LX6&COT<vqd%j;Ycu;t z&Mh>)BXBhKkxNW~aung-P>_xr6BOJv?YZ}n`#ATJ&8L`wfNg6&&sNPFje$sK>z#vE zM?8b>alBiAEK-G(LraYqS6r-4KliLmv%o>$V67H|_xf4H67%FX%7hs{gXVMu&MT^t zga=RCvi5k$K1&j|AaW`w0vp1{2-aDm-#1O}x(jjIDK}eJt%M2jR*<$#(i~T+@%>*Y8g^`+8<{z z)Tj!nM9{#kX<%@y+6pC{jsEuJmFk#+d$49@vHmD|o0JU!aqT?2dBjx*651{c4x753 za_g@5FQe34Tf;fl*EsK|?q38hiEOVaeZ)@S-MsEpPO~w5dH82E*0B%obo|9E^ra>gI)Y z^b(?HcEt8p&9j+M@rkj&ReJ7Q;F;##1;*S|3 z{uMX^0O`^kv&2)K-vEX{K(RN}f)rgX3EHrLmI=hwJ6(L*~YZGDL^iuS2#%HV7?@xO|0R5xiV#pLsUNGJ?8Se+) zByhz(-Ey?dKVOfWo$i=eKB~R#Uez(g0_f|~`# z3sA>->0=@_*$Ok-AYt~)6lqf@sI%pNm^nv7UF0K;i#ynOE=y5vyvIog!JA( z4lOlV^&}1TpODnRki2K9&S(k+EOeC??wzoodHtQij>Hfg%;~5P>e;`p{Xk^5Ar;|m z&*DgFZ3SK_q-cTof!lB`ZVEkFso(o@gVq(NLlh%tni1v;aRG~PzNdC*+M z=VhhkXC*D+FsJ}%WDq~|(&}1fIV;n!$B`rI+k2!c0pOB9oU1#7SIm;o(M;8k+J-t&%Loq}3p2<+eGVqasCZa!I_`%{!*#d2)j*w$+z1 zV7e%Q3``fEd;5Nb# zBqdH-sU#=ZC;~bPvLN2ai0fcKHKLLHlLc0CBG8#5vHv*Zj0T;LUFVYDfRlnaAx$u4!QSFL z;7LJ4ZAVKjRQ=^QUi+bAc!yYmd=^}IkUE+Fq_uRpipiQ-awnfF!mV&gJip6&<|p=V ztKRlGU$xvr2#$KB3pBhzu6oSR6z^B!TSQoPo#;Hosgzp-w#z8gf@hVU0l$E^NZPa8 zR4M7*d^ml6#s2iyeTP;y%FhZ$Sd^u$#0f~jVuE12GEw72QTh9&Cm|xoiSp+bW*%Vrpds^GlQ`$0Jk2B3y^ zG+c3uYp{VVyS_!{<5qgSF$}!LWy7G(+HEL@O|i|W!T@mzHZAOeaN!vm^l_^_T<60F zDi{1Q+OhHkr8pJB!==~)$D!{0HDN%ZmH@&!7}EV;1Uz;d50l7X1^z{V>IjM#6L;K+ zBijp1TtSYaG}vM+elc@Fl%$lTR7OGs;1=|F;HaD+9on3)DFTo*(oGQadzP9`SnN>k z)N+=Ix4=GZawHwIBEHWF$ckvkHTlY75<_u6Y4I1SihE?gtbi;!Tu9z!5kR)8<>9uX zElKGfLxgea--fIs{Na-fMEJ{)k`!h+fj?$-C$*Rm;5sE~?U(ibt<$rLv^Z3Dsl5!IDWf+oF0z3t<9c(3 z8iDM}`K>E;YJMJsJtd$2m6(|jIM>=n$b~I2C<~&2eP+vLP(5ua2|9n$efF1F*KDlRMn&htvNh9-mA1S9G8fawIWKWV=JjQxz9~lrs z{3%#m#-gJxTU?^h5G|^mn1Ep+4$zb$4*0bCbv-IGy}ELip&=TGLpJEnl~dnKWHyb7 zuURxANoE-DW|h#ukU%DnrfItOxo)hdPUa4naQ zNx{Hhyk$Y7L+elgVG#F2x87eISOx*Z(n_7BnIxmV!}S*jp3RY$h>=Otghu?4S+ggB z2^zgx$VgaLQqm65Rent|LS|?V&>{W7?Pccusy2QMDp6Tsz85&h!&O-c>hnQ?E z2*(^S4gdS3ty#S| zF`TxwFT6bt4kEy&oVWg0IX61s!KHen_%K3KTT$Z52n|w%?Q(PMxo(B*N;is^v6;i! zE?b&z)kgdC&jZE>UMHQzVg?(e0WMT(Je*^a;B{rQF79`OZql|#z?UDG^#@ZISA)Az z&OenkYOzj=P7sn(C~*R@htd_|A_N^@0}EHzuyH!+>z#s+jpnjmrV#n5qh6>ei7yukMNS}bGL`tVct9fKFE-KOVelcNcs-G1p&+ua z7Ne;M(vK*k=imtqr$6J5U?oxn?M@Lr(H)FOS^Rf!%bJRAj7} z<==V$?)nvMmg+S}AeI{3lE5DNWpf<{J+y`|I_~`o8FxqMi>n3S*Q#Jlr3y3ede{?D z32q&HKK4ih%$~|=$@*|U2J5=A;S6Nu4r8TG{)dLK$(V-{eXc9B`qbg>%Y{iMFRgvE z@I*VOSI(MCi!4!J*Sls@x$FFw%28hwx5-WUpYnFa2IE^$Tvz7XXpoa%cF2j%=ue42 z*w>10jO(W{1*yRcEr-Y9^{r8+v+eJI2Xw^yEOAE|%6I2dN zqgX#Du;CDPCW*8lI}%W`HUl?9O~3qP*W$wIe4rvdBQ4+d#hYf@mCpaO-<}OheLwGV z$&~m<=$6R{4Gcd_G*-qXT+-D>k$wf_3)1JX=pi!Wa<&HP6BOX1lE-nQ@(2jmGzsSM zQH{^3?Sq7}w*UoBWM%qRm^H68G(-#0x2-fhF){<}6OEwwD<0P(lBkT+6Z5exn+1%g z&?ib@N?oI;4zn<3zUg=G#HL9PQam97M2&V$%1&JjD`TfgxLVx+tnO1z4y&LAE+YmX zMa$^PjoV;{XFo}V?6y91Hz!0y=webVoA;9qyF18#I`*44&&34T#Pc^C2ngE09Ww{^ ztW`BKw*9M<=T=I;{dX3Eksse8Xi~FeY!jO?Q0YcOnkJF(y+F_j>aaHAuY}tde$VjR z#sdz~H)yN`aH|e#|}_e>}VqYPWu6XrL0Kqig%ohv&#J0M1(E zeaKJz(mfesLL2>zA{l_bla6|{*}|;7Xin3np3U_w?AVhU*Mxq(TNjMjFo*oI(*5HEg5f%v}iWjFrCWW)d*S(WW!4?xx$r`;p zVdojPp*m*7ATFH5rem&jJj!xpgMWI3!-^-BFIHw_&i)*sOz*-EaTX@tG8}N6iHePe zOt!xwXwrGH-j5?I{@}?)XGv<# zkx@;NWvPT>QW1D7lW8cOTFG!45fhbB2D(<&KSMXyy7vY0YO35pBVehtUe7<6_bgDy zexw9JC6}$Bs@2rG8y(^Ptt;+X-=EJNRN!9J{7~%%taSJB`z4HlzPh7NK|~g{U1F{ zlSIhcMu6>;JLy0`F#ml@x>}mqnKA!$Wc{ndnYKKzT_sM>PYslg!=;xEw}=k$%eAYO z5=69C(by(29a|bDk~4}P#4D#hKclU>LAcA7!MbW;_{)X2412;Bq*DVN+Vuz;CFkQ| z`R|m_qh!wl-n|COH_I2HM4-RJoaEk~w2zcM5J`4Qke)`bn!N(whga}+!CsIkmL#v5 zY4>ebYxUaTYGJTFV5Hh+Yx`P`;81mGliL_WNqfb>4=3AE&4@7W;-h7e0-+OD$cwGp zHyJ!oeq-I_hkjq#nupndLBJ?>y8;7oc_)e|?%B0wAZUi&XdcW?l%mf-*5L6%4PE||=ps#>yhY)LU4|tdZicy_{KuVVqkWMTm8EXL zTemkFX7icwA_*Ex!J#>;tZYM*@_cRKl2q0gC$g9_W-QYJXkz7+)QhGqSd2AjW4t`n zCdwLkSRyuW3XwLr{-K1Wtm*rcBu&2!1n2_0Zv?_x#xW~B-<}UPQfK=sC7Ja(0L;m#^tbL6FcFo_h zSFy^TF32-c_!y6Av*?0MKG}|}5H2P@7DCa*6*-^m6+DXb!`3KM2_Ok3(3c19R8I=+ zPBV3yxt17{gEhe;U?c&QzMbrAcg5x&g7AQ;;uif-cA%{JU zcH{#D_r2IuNY+XUGzBY8>O50og5USUI%4BB8$NFhnyeB;S(^{QxnL@Fhsce?6byZ- zAT{^QJpZ~Tq~3dP+9|tXoBRf7iC^6jeCy-e3TZMjYAF4^@maW|(v8;TCUky@Yj0>r zg3W){>$`^n{|_sRvQow>naUrgo~sepzW1G5^KP>`t{eD9pT7(z)tyzjQaFx+RIJQF zn&;uKD}yuC=%N9+?3crIg%l}T`9?e|>P9rQ!!j0m$Y+79S?4GX=PV-BjyaK0t<*Z7 z;x8?QWh~{Xb3dC3s=H{u4+J=rZAGkbW4Z1J2DUVBmvJ!|4(8cK9}-IXJc6|oYgD5q z)bF&|_Aks^UqX)ljJN;o=2B1!UTv$LV)K+$gT4S26)8Wq6~?2R+`@E=SW>}tK0#U8 ztY)>Wy`-J|Q!Vmz9A(dv<8up(goiO*vm1vAU8gG<%7$AuI12@O3wW{Hxe^~=+9bG^ z+k2m>fB7t%8uQIDSc=aNhccJF&r)F6GjIU<-fc10^{B8T1+V_RyLrb6iOL4OE5h$g zr43md*AI5wm4suGoYW>TI{E+{hzg!2#)%+Vvrc$j+n?!Oi)pG!>L3kiwBR70-)@9N zf0vK&rc&?E+R7fP$zATU8ftPG?Xd;53{P!;*ssbgyXV2cuh}Nb1y6ndtVP3;W)b#; zid$y9t!m%k$L|1G@2K2!0psGVT3y*|`{?aPTiH1(S5(RONeJEboL8fBLeUXov{Trh z%2h1#lxtPPhZMi=B{~MD(ajS)^nhc}B%v?t;j2YHjhW&{F;MfXqQcf`Tp&V5Dvs9H zs$SZ*j{Nz9%vy2ew4m`hg$&h(_vemnRdx^=eOPk{=@P>8w=O9alM)|PeL(lnq!ee| zvsoG+C?c^8EcZMNKx+TQSRhU`JZC7-PF+R-xtx7j5+>GD%Q?yd$!cgvgxoJ%RFtf! z!02hQ{PM{3M5tnAvsvd5D1q0-#kN9}PcnMz^ z#-cI`HEKRwjr7ZRsD!SBBIA$ku-;wwua2X~cJl9F#2kEpR&i+;M>wx52>|iW`(xpI zl;DeC5$LQM6iXEgNiDZFcSuqNaBRBqaf}09R;(om^&l_{$8yBe>M+>1F-M%H0Q8FC zfJj@76fde~4m?TbV=KzubzgNt97WU@rWz<7qpNDhoGr@W+BUdMQ|F-N_5YzuaN=mW z8>ojGsEgz?j`M{Rw0le zzc;ci!Xbj)u6N4l3MA~X@f%~NYwAQZ;R$_AtLKR5KgL~?nnih6msgW3?^G9hTYUrj z=YTeM%E|8m1sel}fxG>2);tJHj4&w>TAO7V zJwkUsN?Y;`vFM6-FL^#rlhLm=uGh=_1VTqa_J&n+bky@y6fmll{P`hSUA>$f0%3K%XbJM>dk`v| zy7SyIR+i0c*(;N2`l@W9vIurLv@es<=)OC=@7{n{$X~BFfeG74;TSGl*MT~vJE9E7 zvQsMu?>|#dsV;vi!>*&D&CIp=3R`{by~ob}M%`F|M5C)MrP1X3PJO%fT`E1wmOq+1 zY~UefU-KrZ_Rwysd|HE^fZS_#c;O4-uBk@&E~|{nFnh2qv`S@O;VT;#+`-*~TbAOM ziMmr)Z5VY}`ECR}TyY1cO)yIB#-W50mEt}ml_n8~hT{C?$clQMQoobRay~1$TA!t) zbo$hV^Zn<@e6cXuh$&KbA_rPyHu_ntu(AMNS#BQQ^OYodNN!5$s}KdQP6fZ6nTK>g zFHQnjW?J9$K$>y-S__C7$Qa8AI45aXhgAl8-fzF2ri*wnzit6GgdlgQB)K+YuEM+3 zbt}+cku>(^&sG+`3=23I79gQSODfomKQ zKQg6d7?#D{5MgU6xMWY$Zi$&=jQ<7yo%GIGN-@0-SpV4qQvh`?JH$F*xPl3?pok z)kftPLG;5Sr#yT+g6760lyhR@np<`xIv4K_9wO;Ew;Sts>+S_7%)?Mr^%l{?Illos zuDTzhkypQ)jV~O38h29FpF|JG5c%UHbW2MbQ_tQBS0wlDs;1WTNV~5-48YoS&+T1z z-^l5UMR(tP-huAd)6g3^4E7RdhO*Dbwu9gYM&MC#Yj3j*C;_4DU}nxShAnY8J0BHAr$b zA<=r-yor6^rhczs8n|nC?+||DJE@5I^3ek?FM)uMzlQ`3s;IB~(_Qb@wfSyOh)<7! zJu&;;-t)k=y|ymT#KN!!7i+0cfc>%t>gjs)3H5lj?|Q0E1d)MdunTXk55dL8FdrAn z+EA2ziZ^(j`Xhh)1OA^gR>9bcMK>e}NDv7K2sUuW0yggcYnlSCynxrIy^)nIleMFn z#g)2^Bf1)fV5b*1t=%*V4I>8hKqp&Y5#wiiFfOa_B}rUGjI~Z7(uwlu8B|7J7gGS) z@h>2cp#t6?^%$zISx$=c0es5h!jjM^@EABFWY)Kw0vHD1x0_ou)_- z_ggNryj~~v1)~K9gL8LiUa%|(;AZY34^2Ij_RTepJe4w+m|U(Pr>*S+dmuJomIxCC zjZ4Pb9k%V#JMauq0UTo?9H}~R*t`Uoeu36|9ZqL3EEvcN#G4@2K1|D5~!=iocmun|CNhJTq|j= zda7xy!oD@q#25``K)~tOOiN}0L6etSI5N+)zJU%kw=!jghLis8e`N zx(2Tr)W~zgynQuW6n~o@3W?)cN5&~Y8isldCupn9Zf~4dY6S?Ow~sP!*cd;p80wiN z^QB(d!Z13HaQxm%!1RJTh|j%)eS+g8MiTg3AN>UXjAKy5fR#(1no(hQ%Tq0AQ;Zji zuF)|;IMx_ni!M4t$7xZc0+YnI{A+W&?lSDC?-3e28Pi(M7=@x(VwmZ-^~6%UX-X8c zQnqZ0*Bj+iS`Q3vKrifF;@WAEXcouXUg`<=xv zpC0Jk?$`040HOZep-SusmR7$6CGu?_N@QBvz(c%_+m!y`S;3{?1XqpfQ^cBCfV(Ai zP;+uBUH&)i0c%0)_w`MaZQE_@_uC96x^g?LVJq)>1I1&RrY^v z-BJG2A0*$udXT+x7x3b%g^?>Af~;g(u3mrh|3;2c+Y_PRrn|Q_ynDLCDgCnO>#hS! zX0Ot|^7Pdy&Hm@hXE*J0s=2l9R_QzG5CxT$lU~nR_r_{h_{%qHN7WmF_Y@o1W~^QK zA?srN`^mnQX`gd~1?yI^OtyV7&+zOME*76IZ==p8l@8ygbhZoc7gV{#muTHLSNrU6 zNKKz*#&7OBVY6;pV_*Ec`qJ3niIO@qHw~}|8jZR7ZkQjH+Q~c zOXlj=k-&bcmx-pes!%~uI|ajt*_;(YaTCK zKCkZC&FAy#7Z#tsHa)H`_4exZdw*WLZGEqDd-n5n{dV_0pS)N5+y3vH(}&}~%2-yd z`Cf7VW&XLE-*> z4O%*JDzJrm3OMEl>UO|D15k{CA=()@7@V3{5+71okXjrIYMr4QP^sqa@B^sy9&j9) z8>SmbH!vOp8UbnJgPZo~8avv!gEN6jE&??QqG)^$6oJ=0$@xX#k!W=7UvA$Pe+|^0 z!@|HIfTFz~C<51>SWtk?)kljNW|;uhMFHzMRLf@o0|GpA05qaB7wC6v+VdKug^Ylf zp9UHsgJL;oC>^XF;&Ws}u!chKYBB3>eFlcOP*w(h6qC| - true - }.withStats(statsReceiver.scope("always_true_copy_predicate")) - - val unrecognizedCandidatePredicate = alwaysTruePredicate.flip - .withStats(statsReceiver.scope("unrecognized_candidate")) - - val displaySocialContextPredicate = Predicate - .from { candidateCopyPair: CandidateCopyPair => - candidateCopyPair.candidate match { - case candidateWithScActions: RawCandidate with SocialContextActions => - val socialContextUserIds = candidateWithScActions.socialContextActions.map(_.userId) - val countSocialContext = socialContextUserIds.size - val pushCopy = candidateCopyPair.pushCopy - - countSocialContext match { - case 1 => pushCopy.hasOneDisplaySocialContext && !pushCopy.hasOtherSocialContext - case 2 => pushCopy.hasTwoDisplayContext && !pushCopy.hasOtherSocialContext - case c if c > 2 => - pushCopy.hasOneDisplaySocialContext && pushCopy.hasOtherSocialContext - case _ => false - } - - case _ => false - } - }.withStats(statsReceiver.scope("display_social_context_predicate")) -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/scriber/MrRequestScribeHandler.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/scriber/MrRequestScribeHandler.docx new file mode 100644 index 0000000000000000000000000000000000000000..6e2ed147c7c37afe6e1dcfb22dd9d43dfd5350ff GIT binary patch literal 40474 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 literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/scriber/MrRequestScribeHandler.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/scriber/MrRequestScribeHandler.scala deleted file mode 100644 index 90095056a..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/scriber/MrRequestScribeHandler.scala +++ /dev/null @@ -1,388 +0,0 @@ -package com.twitter.frigate.pushservice.scriber - -import com.twitter.bijection.Base64String -import com.twitter.bijection.Injection -import com.twitter.bijection.scrooge.BinaryScalaCodec -import com.twitter.core_workflows.user_model.thriftscala.{UserState => ThriftUserState} -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.finagle.tracing.Trace -import com.twitter.frigate.common.base.CandidateDetails -import com.twitter.frigate.common.base.CandidateResult -import com.twitter.frigate.common.base.Invalid -import com.twitter.frigate.common.base.OK -import com.twitter.frigate.common.base.Result -import com.twitter.frigate.common.rec_types.RecTypes -import com.twitter.frigate.data_pipeline.features_common.PushQualityModelFeatureContext -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.frigate.pushservice.model.PushTypes.Target -import com.twitter.frigate.pushservice.params.PushFeatureSwitchParams -import com.twitter.frigate.pushservice.params.PushParams -import com.twitter.frigate.scribe.thriftscala.CandidateFilteredOutStep -import com.twitter.frigate.scribe.thriftscala.CandidateRequestInfo -import com.twitter.frigate.scribe.thriftscala.MrRequestScribe -import com.twitter.frigate.scribe.thriftscala.TargetUserInfo -import com.twitter.frigate.thriftscala.FrigateNotification -import com.twitter.frigate.thriftscala.TweetNotification -import com.twitter.frigate.thriftscala.{SocialContextAction => TSocialContextAction} -import com.twitter.logging.Logger -import com.twitter.ml.api.DataRecord -import com.twitter.ml.api.Feature -import com.twitter.ml.api.FeatureType -import com.twitter.ml.api.util.SRichDataRecord -import com.twitter.ml.api.util.ScalaToJavaDataRecordConversions -import com.twitter.nrel.heavyranker.PushPredictionHelper -import com.twitter.util.Future -import com.twitter.util.Time -import java.util.UUID -import scala.collection.mutable - -class MrRequestScribeHandler(mrRequestScriberNode: String, stats: StatsReceiver) { - - private val mrRequestScribeLogger = Logger(mrRequestScriberNode) - - private val mrRequestScribeTargetFilteringStats = - stats.counter("MrRequestScribeHandler_target_filtering") - private val mrRequestScribeCandidateFilteringStats = - stats.counter("MrRequestScribeHandler_candidate_filtering") - private val mrRequestScribeInvalidStats = - stats.counter("MrRequestScribeHandler_invalid_filtering") - private val mrRequestScribeUnsupportedFeatureTypeStats = - stats.counter("MrRequestScribeHandler_unsupported_feature_type") - private val mrRequestScribeNotIncludedFeatureStats = - stats.counter("MrRequestScribeHandler_not_included_features") - - private final val MrRequestScribeInjection: Injection[MrRequestScribe, String] = BinaryScalaCodec( - MrRequestScribe - ) andThen Injection.connect[Array[Byte], Base64String, String] - - /** - * - * @param target : Target user id - * @param result : Result for target filtering - * - * @return - */ - def scribeForTargetFiltering(target: Target, result: Result): Future[Option[MrRequestScribe]] = { - if (target.isLoggedOutUser || !enableTargetFilteringScribing(target)) { - Future.None - } else { - val predicate = result match { - case Invalid(reason) => reason - case _ => - mrRequestScribeInvalidStats.incr() - throw new IllegalStateException("Invalid reason for Target Filtering " + result) - } - buildScribeThrift(target, predicate, None).map { targetFilteredScribe => - writeAtTargetFilteringStep(target, targetFilteredScribe) - Some(targetFilteredScribe) - } - } - } - - /** - * - * @param target : Target user id - * @param hydratedCandidates : Candidates hydrated with details: impressionId, frigateNotification and source - * @param preRankingFilteredCandidates : Candidates result filtered out at preRanking filtering step - * @param rankedCandidates : Sorted candidates details ranked by ranking step - * @param rerankedCandidates : Sorted candidates details ranked by reranking step - * @param restrictFilteredCandidates : Candidates details filtered out at restrict step - * @param allTakeCandidateResults : Candidates results at take step, include the candidates we take and the candidates filtered out at take step [with different result] - * - * @return - */ - def scribeForCandidateFiltering( - target: Target, - hydratedCandidates: Seq[CandidateDetails[PushCandidate]], - preRankingFilteredCandidates: Seq[CandidateResult[PushCandidate, Result]], - rankedCandidates: Seq[CandidateDetails[PushCandidate]], - rerankedCandidates: Seq[CandidateDetails[PushCandidate]], - restrictFilteredCandidates: Seq[CandidateDetails[PushCandidate]], - allTakeCandidateResults: Seq[CandidateResult[PushCandidate, Result]] - ): Future[Seq[MrRequestScribe]] = { - if (target.isLoggedOutUser || target.isEmailUser) { - Future.Nil - } else if (enableCandidateFilteringScribing(target)) { - val hydrateFeature = - target.params(PushFeatureSwitchParams.EnableMrRequestScribingWithFeatureHydrating) || - target.scribeFeatureForRequestScribe - - val candidateRequestInfoSeq = generateCandidatesScribeInfo( - hydratedCandidates, - preRankingFilteredCandidates, - rankedCandidates, - rerankedCandidates, - restrictFilteredCandidates, - allTakeCandidateResults, - isFeatureHydratingEnabled = hydrateFeature - ) - val flattenStructure = - target.params(PushFeatureSwitchParams.EnableFlattenMrRequestScribing) || hydrateFeature - candidateRequestInfoSeq.flatMap { candidateRequestInfos => - if (flattenStructure) { - Future.collect { - candidateRequestInfos.map { candidateRequestInfo => - buildScribeThrift(target, None, Some(Seq(candidateRequestInfo))) - .map { mrRequestScribe => - writeAtCandidateFilteringStep(target, mrRequestScribe) - mrRequestScribe - } - } - } - } else { - buildScribeThrift(target, None, Some(candidateRequestInfos)) - .map { mrRequestScribe => - writeAtCandidateFilteringStep(target, mrRequestScribe) - Seq(mrRequestScribe) - } - } - } - } else Future.Nil - - } - - private def buildScribeThrift( - target: Target, - targetFilteredOutPredicate: Option[String], - candidatesRequestInfo: Option[Seq[CandidateRequestInfo]] - ): Future[MrRequestScribe] = { - Future - .join( - target.targetUserState, - generateTargetFeatureScribeInfo(target), - target.targetUser).map { - case (userStateOption, targetFeatureOption, gizmoduckUserOpt) => - val userState = userStateOption.map(userState => ThriftUserState(userState.id)) - val targetFeatures = - targetFeatureOption.map(ScalaToJavaDataRecordConversions.javaDataRecord2ScalaDataRecord) - val traceId = Trace.id.traceId.toLong - - MrRequestScribe( - requestId = UUID.randomUUID.toString.replaceAll("-", ""), - scribedTimeMs = Time.now.inMilliseconds, - targetUserId = target.targetId, - targetUserInfo = Some( - TargetUserInfo( - userState, - features = targetFeatures, - userType = gizmoduckUserOpt.map(_.userType)) - ), - targetFilteredOutPredicate = targetFilteredOutPredicate, - candidates = candidatesRequestInfo, - traceId = Some(traceId) - ) - } - } - - private def generateTargetFeatureScribeInfo( - target: Target - ): Future[Option[DataRecord]] = { - val featureList = - target.params(PushFeatureSwitchParams.TargetLevelFeatureListForMrRequestScribing) - if (featureList.nonEmpty) { - PushPredictionHelper - .getDataRecordFromTargetFeatureMap( - target.targetId, - target.featureMap, - stats - ).map { dataRecord => - val richRecord = - new SRichDataRecord(dataRecord, PushQualityModelFeatureContext.featureContext) - - val selectedRecord = - SRichDataRecord(new DataRecord(), PushQualityModelFeatureContext.featureContext) - featureList.map { featureName => - val feature: Feature[_] = { - try { - PushQualityModelFeatureContext.featureContext.getFeature(featureName) - } catch { - case _: Exception => - mrRequestScribeNotIncludedFeatureStats.incr() - throw new IllegalStateException( - "Scribing features not included in FeatureContext: " + featureName) - } - } - - richRecord.getFeatureValueOpt(feature).foreach { featureVal => - feature.getFeatureType() match { - case FeatureType.BINARY => - selectedRecord.setFeatureValue( - feature.asInstanceOf[Feature[Boolean]], - featureVal.asInstanceOf[Boolean]) - case FeatureType.CONTINUOUS => - selectedRecord.setFeatureValue( - feature.asInstanceOf[Feature[Double]], - featureVal.asInstanceOf[Double]) - case FeatureType.STRING => - selectedRecord.setFeatureValue( - feature.asInstanceOf[Feature[String]], - featureVal.asInstanceOf[String]) - case FeatureType.DISCRETE => - selectedRecord.setFeatureValue( - feature.asInstanceOf[Feature[Long]], - featureVal.asInstanceOf[Long]) - case _ => - mrRequestScribeUnsupportedFeatureTypeStats.incr() - } - } - } - Some(selectedRecord.getRecord) - } - } else Future.None - } - - private def generateCandidatesScribeInfo( - hydratedCandidates: Seq[CandidateDetails[PushCandidate]], - preRankingFilteredCandidates: Seq[CandidateResult[PushCandidate, Result]], - rankedCandidates: Seq[CandidateDetails[PushCandidate]], - rerankedCandidates: Seq[CandidateDetails[PushCandidate]], - restrictFilteredCandidates: Seq[CandidateDetails[PushCandidate]], - allTakeCandidateResults: Seq[CandidateResult[PushCandidate, Result]], - isFeatureHydratingEnabled: Boolean - ): Future[Seq[CandidateRequestInfo]] = { - val candidatesMap = new mutable.HashMap[String, CandidateRequestInfo] - - hydratedCandidates.foreach { hydratedCandidate => - val frgNotif = hydratedCandidate.candidate.frigateNotification - val simplifiedTweetNotificationOpt = frgNotif.tweetNotification.map { tweetNotification => - TweetNotification( - tweetNotification.tweetId, - Seq.empty[TSocialContextAction], - tweetNotification.tweetAuthorId) - } - val simplifiedFrigateNotification = FrigateNotification( - frgNotif.commonRecommendationType, - frgNotif.notificationDisplayLocation, - tweetNotification = simplifiedTweetNotificationOpt - ) - candidatesMap(hydratedCandidate.candidate.impressionId) = CandidateRequestInfo( - candidateId = "", - candidateSource = hydratedCandidate.source.substring( - 0, - Math.min(6, hydratedCandidate.source.length) - ), - frigateNotification = Some(simplifiedFrigateNotification), - modelScore = None, - rankPosition = None, - rerankPosition = None, - features = None, - isSent = Some(false) - ) - } - - preRankingFilteredCandidates.foreach { preRankingFilteredCandidateResult => - candidatesMap(preRankingFilteredCandidateResult.candidate.impressionId) = - candidatesMap(preRankingFilteredCandidateResult.candidate.impressionId) - .copy( - candidateFilteredOutPredicate = preRankingFilteredCandidateResult.result match { - case Invalid(reason) => reason - case _ => { - mrRequestScribeInvalidStats.incr() - throw new IllegalStateException( - "Invalid reason for Candidate Filtering " + preRankingFilteredCandidateResult.result) - } - }, - candidateFilteredOutStep = Some(CandidateFilteredOutStep.PreRankFiltering) - ) - } - - for { - _ <- Future.collectToTry { - rankedCandidates.zipWithIndex.map { - case (rankedCandidateDetail, index) => - val modelScoresFut = { - val crt = rankedCandidateDetail.candidate.commonRecType - if (RecTypes.notEligibleForModelScoreTracking.contains(crt)) Future.None - else rankedCandidateDetail.candidate.modelScores.map(Some(_)) - } - - modelScoresFut.map { modelScores => - candidatesMap(rankedCandidateDetail.candidate.impressionId) = - candidatesMap(rankedCandidateDetail.candidate.impressionId).copy( - rankPosition = Some(index), - modelScore = modelScores - ) - } - } - } - - _ = rerankedCandidates.zipWithIndex.foreach { - case (rerankedCandidateDetail, index) => { - candidatesMap(rerankedCandidateDetail.candidate.impressionId) = - candidatesMap(rerankedCandidateDetail.candidate.impressionId).copy( - rerankPosition = Some(index) - ) - } - } - - _ <- Future.collectToTry { - rerankedCandidates.map { rerankedCandidateDetail => - if (isFeatureHydratingEnabled) { - PushPredictionHelper - .getDataRecord( - rerankedCandidateDetail.candidate.target.targetHydrationContext, - rerankedCandidateDetail.candidate.target.featureMap, - rerankedCandidateDetail.candidate.candidateHydrationContext, - rerankedCandidateDetail.candidate.candidateFeatureMap(), - stats - ).map { features => - candidatesMap(rerankedCandidateDetail.candidate.impressionId) = - candidatesMap(rerankedCandidateDetail.candidate.impressionId).copy( - features = Some( - ScalaToJavaDataRecordConversions.javaDataRecord2ScalaDataRecord(features)) - ) - } - } else Future.Unit - } - } - - _ = restrictFilteredCandidates.foreach { restrictFilteredCandidateDetatil => - candidatesMap(restrictFilteredCandidateDetatil.candidate.impressionId) = - candidatesMap(restrictFilteredCandidateDetatil.candidate.impressionId) - .copy(candidateFilteredOutStep = Some(CandidateFilteredOutStep.Restrict)) - } - - _ = allTakeCandidateResults.foreach { allTakeCandidateResult => - allTakeCandidateResult.result match { - case OK => - candidatesMap(allTakeCandidateResult.candidate.impressionId) = - candidatesMap(allTakeCandidateResult.candidate.impressionId).copy(isSent = Some(true)) - case Invalid(reason) => - candidatesMap(allTakeCandidateResult.candidate.impressionId) = - candidatesMap(allTakeCandidateResult.candidate.impressionId).copy( - candidateFilteredOutPredicate = reason, - candidateFilteredOutStep = Some(CandidateFilteredOutStep.PostRankFiltering)) - case _ => - mrRequestScribeInvalidStats.incr() - throw new IllegalStateException( - "Invalid reason for Candidate Filtering " + allTakeCandidateResult.result) - } - } - } yield candidatesMap.values.toSeq - } - - private def enableTargetFilteringScribing(target: Target): Boolean = { - target.params(PushParams.EnableMrRequestScribing) && target.params( - PushFeatureSwitchParams.EnableMrRequestScribingForTargetFiltering) - } - - private def enableCandidateFilteringScribing(target: Target): Boolean = { - target.params(PushParams.EnableMrRequestScribing) && target.params( - PushFeatureSwitchParams.EnableMrRequestScribingForCandidateFiltering) - } - - private def writeAtTargetFilteringStep(target: Target, mrRequestScribe: MrRequestScribe) = { - logToScribe(mrRequestScribe) - mrRequestScribeTargetFilteringStats.incr() - } - - private def writeAtCandidateFilteringStep(target: Target, mrRequestScribe: MrRequestScribe) = { - logToScribe(mrRequestScribe) - mrRequestScribeCandidateFilteringStats.incr() - } - - private def logToScribe(mrRequestScribe: MrRequestScribe): Unit = { - val logEntry: String = MrRequestScribeInjection(mrRequestScribe) - mrRequestScribeLogger.info(logEntry) - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/SendHandler.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/SendHandler.docx new file mode 100644 index 0000000000000000000000000000000000000000..c608431b0bbe3949a35febbe560fad52ee3e30d8 GIT binary patch literal 39490 zcmagFV|Zm-w=Epowr$%^#kOtRsw5TLwr$(0*s7qCiml3BwfD<&?)|<$Gf&2ty|va` zpKA`Sr6>amh6V%#1O-%)!KqoJT#}Fi3IG|dyKwxAde!H|%h z@#IIa*~s7P+e)D$Dt4i#m#tAm0$S!Y0h~ho3`?1DAp`K%t1=AVCl^$t$ttRo+usLzqrNMoMw#nH-&8cy7paj8l6xIRh z`wzQ*29GHX)-#C4is*Y4?Hv^Bupbu=HlY;ti>IKu8lU#O`RAMJw3gl4TCu8rR%ann zINnd92-)ZT!PJyZ#CpjPnJnFLHNK%wLr+iCC2?c|FKZF{PfLq(cGGHsBo^KG|j*Y-Ku%6+9YM-RudrFVo zHiHXIWa(0=bv{z?i;?>hjNW`+Vauwp#RLZ4SIf4K1Sg+J3g6J=^nn!rtBPI}GD6RQ z>g|940l@5PW=thw7xh*E KkQ9hO{f~mbf)P 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 i - trackStatsForResponseToRequest( - rawCandidate.commonRecType, - rawCandidate.target, - pushResp, - receivers)(statsReceiver) - if (!request.context.exists(_.darkWrite.contains(true))) { - config.requestScribe(PushRequestScribe(request, pushResp)) - } - } - .onFailure { ex => - bStats.counter("failures").incr() - bStats.scope("failures").counter(ex.getClass.getCanonicalName).incr() - } - .map { - case (pushResp, _) => pushResp - } - } - - private def process(request: PushRequest): Future[(PushResponse, RawCandidate)] = { - val recType = request.notification.commonRecommendationType - - track(buildTargetStats)( - pushTargetUserBuilder - .buildTarget( - request.userId, - request.context - ) - ).flatMap { targetUser => - val responseWithScribedInfo = request.context.exists { context => - context.responseWithScribedInfo.contains(true) - } - val newRequest = - if (request.notification.commonRecommendationType == CommonRecommendationType.MagicFanoutNewsEvent && - targetUser.params(EnableMagicFanoutNewsForYouNtabCopy)) { - val newNotification = request.notification.copy(ntabCopyId = - Some(MrNtabCopyObjects.MagicFanoutNewsForYouCopy.copyId)) - request.copy(notification = newNotification) - } else request - - if (RecTypes.isSendHandlerType(recType) || newRequest.context.exists( - _.allowCRT.contains(true))) { - - val rawCandidateFut = PushRequestToCandidate.generatePushCandidate( - newRequest.notification, - targetUser - ) - - rawCandidateFut.flatMap { rawCandidate => - val pushResponse = process(targetUser, Seq(rawCandidate)).flatMap { - sendHandlerNotifier.checkResponseAndNotify(_, responseWithScribedInfo) - } - - pushResponse.map { pushResponse => - (pushResponse, rawCandidate) - } - } - } else { - Future.exception(InvalidRequestException(s"${recType.name} not supported in SendHandler")) - } - } - } - - private def hydrateFeatures( - candidateDetails: Seq[CandidateDetails[PushCandidate]], - target: Target, - ): Future[Seq[CandidateDetails[PushCandidate]]] = { - - candidateDetails.headOption match { - case Some(candidateDetail) - if RecTypes.notEligibleForModelScoreTracking(candidateDetail.candidate.commonRecType) => - Future.value(candidateDetails) - - case Some(candidateDetail) => - val hydrationContextFut = HydrationContextBuilder.build(candidateDetail.candidate) - hydrationContextFut.flatMap { hc => - featureHydrator - .hydrateCandidate(Seq(hc), target.mrRequestContextForFeatureStore) - .map { hydrationResult => - val features = hydrationResult.getOrElse(hc, FeatureMap()) - candidateDetail.candidate.mergeFeatures(features) - candidateDetails - } - } - case _ => Future.Nil - } - } - - override def process( - target: Target, - externalCandidates: Seq[RawCandidate] - ): Future[Response[PushCandidate, Result]] = { - val candidate = externalCandidates.map(CandidateDetails(_, "realtime")) - - for { - hydratedCandidatesWithCopy <- hydrateCandidates(candidate) - - (candidates, preHydrationFilteredCandidates) <- track(filterStats)( - filter(target, hydratedCandidatesWithCopy) - ) - - featureHydratedCandidates <- - track(featureHydrationLatency)(hydrateFeatures(candidates, target)) - - allTakeCandidateResults <- track(takeStats)( - take(target, featureHydratedCandidates, desiredCandidateCount(target)) - ) - - _ <- mrRequestScribeHandler.scribeForCandidateFiltering( - target = target, - hydratedCandidates = hydratedCandidatesWithCopy, - preRankingFilteredCandidates = preHydrationFilteredCandidates, - rankedCandidates = featureHydratedCandidates, - rerankedCandidates = Seq.empty, - restrictFilteredCandidates = Seq.empty, // no restrict step - allTakeCandidateResults = allTakeCandidateResults - ) - } yield { - - /** - * We combine the results for all filtering steps and pass on in sequence to next step - * - * This is done to ensure the filtering reason for the candidate from multiple levels of - * filtering is carried all the way until [[PushResponse]] is built and returned from - * frigate-pushservice-send - */ - Response(OK, allTakeCandidateResults ++ preHydrationFilteredCandidates) - } - } - - override def hydrateCandidates( - candidates: Seq[CandidateDetails[RawCandidate]] - ): Future[Seq[CandidateDetails[PushCandidate]]] = { - Stat.timeFuture(candidateHydrationLatency)(candidateHydrator(candidates)) - } - - // Filter Step - pre-predicates and app specific predicates - override def filter( - target: Target, - hydratedCandidatesDetails: Seq[CandidateDetails[PushCandidate]] - ): Future[ - (Seq[CandidateDetails[PushCandidate]], Seq[CandidateResult[PushCandidate, Result]]) - ] = { - Stat.timeFuture(candidatePreValidatorLatency)( - sendHandlerPredicateUtil.preValidationForCandidate( - hydratedCandidatesDetails, - preCandidateValidator - )) - } - - // Post Validation - Take step - override def validCandidates( - target: Target, - candidates: Seq[PushCandidate] - ): Future[Seq[Result]] = { - Stat.timeFuture(candidatePostValidatorLatency)(Future.collect(candidates.map { candidate => - sendHandlerPredicateUtil - .postValidationForCandidate(candidate, postCandidateValidator) - .map(res => res.result) - })) - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/SendHandlerPushCandidateHydrator.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/SendHandlerPushCandidateHydrator.docx new file mode 100644 index 0000000000000000000000000000000000000000..de9279050030663319483264d1711c0439f2917f GIT binary patch literal 38347 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

IApH{3Tcx9g-%(^_EUCB$CE8t^IHI% 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 literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/SendHandlerPushCandidateHydrator.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/SendHandlerPushCandidateHydrator.scala deleted file mode 100644 index f8f102790..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/SendHandlerPushCandidateHydrator.scala +++ /dev/null @@ -1,184 +0,0 @@ -package com.twitter.frigate.pushservice.send_handler - -import com.twitter.escherbird.metadata.thriftscala.EntityMegadata -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.base._ -import com.twitter.frigate.common.store.interests.InterestsLookupRequestWithContext -import com.twitter.frigate.common.util.MrNtabCopyObjects -import com.twitter.frigate.common.util.MrPushCopyObjects -import com.twitter.frigate.magic_events.thriftscala.FanoutEvent -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.frigate.pushservice.model.PushTypes.RawCandidate -import com.twitter.frigate.pushservice.ml.PushMLModelScorer -import com.twitter.frigate.pushservice.model.candidate.CopyIds -import com.twitter.frigate.pushservice.store.EventRequest -import com.twitter.frigate.pushservice.store.UttEntityHydrationStore -import com.twitter.frigate.pushservice.util.CandidateHydrationUtil._ -import com.twitter.frigate.thriftscala.CommonRecommendationType -import com.twitter.gizmoduck.thriftscala.User -import com.twitter.hermit.store.semantic_core.SemanticEntityForQuery -import com.twitter.interests.thriftscala.UserInterests -import com.twitter.livevideo.timeline.domain.v2.{Event => LiveEvent} -import com.twitter.simclusters_v2.thriftscala.SimClustersInferredEntities -import com.twitter.storehaus.ReadableStore -import com.twitter.strato.client.UserId -import com.twitter.ubs.thriftscala.AudioSpace -import com.twitter.util.Future - -case class SendHandlerPushCandidateHydrator( - lexServiceStore: ReadableStore[EventRequest, LiveEvent], - fanoutMetadataStore: ReadableStore[(Long, Long), FanoutEvent], - semanticCoreMegadataStore: ReadableStore[SemanticEntityForQuery, EntityMegadata], - safeUserStore: ReadableStore[Long, User], - simClusterToEntityStore: ReadableStore[Int, SimClustersInferredEntities], - audioSpaceStore: ReadableStore[String, AudioSpace], - interestsLookupStore: ReadableStore[InterestsLookupRequestWithContext, UserInterests], - uttEntityHydrationStore: UttEntityHydrationStore, - superFollowCreatorTweetCountStore: ReadableStore[UserId, Int] -)( - implicit statsReceiver: StatsReceiver, - implicit val weightedOpenOrNtabClickModelScorer: PushMLModelScorer) { - - lazy val candidateWithCopyNumStat = statsReceiver.stat("candidate_with_copy_num") - lazy val hydratedCandidateStat = statsReceiver.scope("hydrated_candidates") - - def updateCandidates( - candidateDetails: Seq[CandidateDetails[RawCandidate]], - ): Future[Seq[CandidateDetails[PushCandidate]]] = { - - Future.collect { - candidateDetails.map { candidateDetail => - val pushCandidate = candidateDetail.candidate - - val copyIds = getCopyIdsByCRT(pushCandidate.commonRecType) - - val hydratedCandidateFut = pushCandidate match { - case magicFanoutNewsEventCandidate: MagicFanoutNewsEventCandidate => - getHydratedCandidateForMagicFanoutNewsEvent( - magicFanoutNewsEventCandidate, - copyIds, - lexServiceStore, - fanoutMetadataStore, - semanticCoreMegadataStore, - simClusterToEntityStore, - interestsLookupStore, - uttEntityHydrationStore - ) - - case scheduledSpaceSubscriberCandidate: ScheduledSpaceSubscriberCandidate => - getHydratedCandidateForScheduledSpaceSubscriber( - scheduledSpaceSubscriberCandidate, - safeUserStore, - copyIds, - audioSpaceStore - ) - case scheduledSpaceSpeakerCandidate: ScheduledSpaceSpeakerCandidate => - getHydratedCandidateForScheduledSpaceSpeaker( - scheduledSpaceSpeakerCandidate, - safeUserStore, - copyIds, - audioSpaceStore - ) - case magicFanoutSportsEventCandidate: MagicFanoutSportsEventCandidate with MagicFanoutSportsScoreInformation => - getHydratedCandidateForMagicFanoutSportsEvent( - magicFanoutSportsEventCandidate, - copyIds, - lexServiceStore, - fanoutMetadataStore, - semanticCoreMegadataStore, - interestsLookupStore, - uttEntityHydrationStore - ) - case magicFanoutProductLaunchCandidate: MagicFanoutProductLaunchCandidate => - getHydratedCandidateForMagicFanoutProductLaunch( - magicFanoutProductLaunchCandidate, - copyIds) - case creatorEventCandidate: MagicFanoutCreatorEventCandidate => - getHydratedCandidateForMagicFanoutCreatorEvent( - creatorEventCandidate, - safeUserStore, - copyIds, - superFollowCreatorTweetCountStore) - case _ => - throw new IllegalArgumentException("Incorrect candidate type when update candidates") - } - - hydratedCandidateFut.map { hydratedCandidate => - hydratedCandidateStat.counter(hydratedCandidate.commonRecType.name).incr() - CandidateDetails( - hydratedCandidate, - source = candidateDetail.source - ) - } - } - } - } - - private def getCopyIdsByCRT(crt: CommonRecommendationType): CopyIds = { - crt match { - case CommonRecommendationType.MagicFanoutNewsEvent => - CopyIds( - pushCopyId = Some(MrPushCopyObjects.MagicFanoutNewsPushCopy.copyId), - ntabCopyId = Some(MrNtabCopyObjects.MagicFanoutNewsForYouCopy.copyId), - aggregationId = None - ) - - case CommonRecommendationType.ScheduledSpaceSubscriber => - CopyIds( - pushCopyId = Some(MrPushCopyObjects.ScheduledSpaceSubscriber.copyId), - ntabCopyId = Some(MrNtabCopyObjects.ScheduledSpaceSubscriber.copyId), - aggregationId = None - ) - case CommonRecommendationType.ScheduledSpaceSpeaker => - CopyIds( - pushCopyId = Some(MrPushCopyObjects.ScheduledSpaceSpeaker.copyId), - ntabCopyId = Some(MrNtabCopyObjects.ScheduledSpaceSpeakerNow.copyId), - aggregationId = None - ) - case CommonRecommendationType.SpaceSpeaker => - CopyIds( - pushCopyId = Some(MrPushCopyObjects.SpaceSpeaker.copyId), - ntabCopyId = Some(MrNtabCopyObjects.SpaceSpeaker.copyId), - aggregationId = None - ) - case CommonRecommendationType.SpaceHost => - CopyIds( - pushCopyId = Some(MrPushCopyObjects.SpaceHost.copyId), - ntabCopyId = Some(MrNtabCopyObjects.SpaceHost.copyId), - aggregationId = None - ) - case CommonRecommendationType.MagicFanoutSportsEvent => - CopyIds( - pushCopyId = Some(MrPushCopyObjects.MagicFanoutSportsPushCopy.copyId), - ntabCopyId = Some(MrNtabCopyObjects.MagicFanoutSportsCopy.copyId), - aggregationId = None - ) - case CommonRecommendationType.MagicFanoutProductLaunch => - CopyIds( - pushCopyId = Some(MrPushCopyObjects.MagicFanoutProductLaunch.copyId), - ntabCopyId = Some(MrNtabCopyObjects.ProductLaunch.copyId), - aggregationId = None - ) - case CommonRecommendationType.CreatorSubscriber => - CopyIds( - pushCopyId = Some(MrPushCopyObjects.MagicFanoutCreatorSubscription.copyId), - ntabCopyId = Some(MrNtabCopyObjects.MagicFanoutCreatorSubscription.copyId), - aggregationId = None - ) - case CommonRecommendationType.NewCreator => - CopyIds( - pushCopyId = Some(MrPushCopyObjects.MagicFanoutNewCreator.copyId), - ntabCopyId = Some(MrNtabCopyObjects.MagicFanoutNewCreator.copyId), - aggregationId = None - ) - case _ => - throw new IllegalArgumentException("Incorrect candidate type when fetch copy ids") - } - } - - def apply( - candidateDetails: Seq[CandidateDetails[RawCandidate]] - ): Future[Seq[CandidateDetails[PushCandidate]]] = { - updateCandidates(candidateDetails) - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/CandidateGenerator.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/CandidateGenerator.docx new file mode 100644 index 0000000000000000000000000000000000000000..e82a60b658240f6349e243243e9e0c99ec1aca22 GIT binary patch literal 36873 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 J$E0o$4*(e<*5v>I literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/CandidateGenerator.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/CandidateGenerator.scala deleted file mode 100644 index 45907fa8e..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/CandidateGenerator.scala +++ /dev/null @@ -1,17 +0,0 @@ -package com.twitter.frigate.pushservice.send_handler.generator - -import com.twitter.frigate.pushservice.model.PushTypes.RawCandidate -import com.twitter.frigate.pushservice.model.PushTypes.Target -import com.twitter.frigate.thriftscala.FrigateNotification -import com.twitter.util.Future - -trait CandidateGenerator { - - /** - * Build RawCandidate from FrigateNotification - * @param target - * @param frigateNotification - * @return RawCandidate - */ - def getCandidate(target: Target, frigateNotification: FrigateNotification): Future[RawCandidate] -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/MagicFanoutCreatorEventCandidateGenerator.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/MagicFanoutCreatorEventCandidateGenerator.docx new file mode 100644 index 0000000000000000000000000000000000000000..8f72a326354599d08ce1646b625cd6e01ec2aa62 GIT binary patch literal 37350 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 literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/MagicFanoutCreatorEventCandidateGenerator.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/MagicFanoutCreatorEventCandidateGenerator.scala deleted file mode 100644 index 10a7acb89..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/MagicFanoutCreatorEventCandidateGenerator.scala +++ /dev/null @@ -1,70 +0,0 @@ -package com.twitter.frigate.pushservice.send_handler.generator - -import com.twitter.frigate.common.base.MagicFanoutCreatorEventCandidate -import com.twitter.frigate.magic_events.thriftscala.CreatorFanoutType -import com.twitter.frigate.magic_events.thriftscala.MagicEventsReason -import com.twitter.frigate.pushservice.model.PushTypes.RawCandidate -import com.twitter.frigate.pushservice.model.PushTypes.Target -import com.twitter.frigate.pushservice.model.PushTypes -import com.twitter.frigate.thriftscala.CommonRecommendationType -import com.twitter.frigate.thriftscala.FrigateNotification -import com.twitter.util.Future - -object MagicFanoutCreatorEventCandidateGenerator extends CandidateGenerator { - override def getCandidate( - targetUser: PushTypes.Target, - notification: FrigateNotification - ): Future[PushTypes.RawCandidate] = { - - require( - notification.commonRecommendationType == CommonRecommendationType.CreatorSubscriber || notification.commonRecommendationType == CommonRecommendationType.NewCreator, - "MagicFanoutCreatorEvent: unexpected CRT " + notification.commonRecommendationType - ) - require( - notification.creatorSubscriptionNotification.isDefined, - "MagicFanoutCreatorEvent: creatorSubscriptionNotification is not defined") - require( - notification.creatorSubscriptionNotification.exists(_.magicFanoutPushId.isDefined), - "MagicFanoutCreatorEvent: magicFanoutPushId is not defined") - require( - notification.creatorSubscriptionNotification.exists(_.fanoutReasons.isDefined), - "MagicFanoutCreatorEvent: fanoutReasons is not defined") - require( - notification.creatorSubscriptionNotification.exists(_.creatorId.isDefined), - "MagicFanoutCreatorEvent: creatorId is not defined") - if (notification.commonRecommendationType == CommonRecommendationType.CreatorSubscriber) { - require( - notification.creatorSubscriptionNotification - .exists(_.subscriberId.isDefined), - "MagicFanoutCreatorEvent: subscriber id is not defined" - ) - } - - val creatorSubscriptionNotification = notification.creatorSubscriptionNotification.get - - val candidate = new RawCandidate with MagicFanoutCreatorEventCandidate { - - override val target: Target = targetUser - - override val pushId: Long = - creatorSubscriptionNotification.magicFanoutPushId.get - - override val candidateMagicEventsReasons: Seq[MagicEventsReason] = - creatorSubscriptionNotification.fanoutReasons.get - - override val creatorFanoutType: CreatorFanoutType = - creatorSubscriptionNotification.creatorFanoutType - - override val commonRecType: CommonRecommendationType = - notification.commonRecommendationType - - override val frigateNotification: FrigateNotification = notification - - override val subscriberId: Option[Long] = creatorSubscriptionNotification.subscriberId - - override val creatorId: Long = creatorSubscriptionNotification.creatorId.get - } - - Future.value(candidate) - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/MagicFanoutNewsEventCandidateGenerator.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/MagicFanoutNewsEventCandidateGenerator.docx new file mode 100644 index 0000000000000000000000000000000000000000..686c1346c036fb05ef07d2fc1ddfe9ccb1df7b20 GIT binary patch literal 37318 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 Bn+*T} literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/MagicFanoutSportsEventCandidateGenerator.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/MagicFanoutSportsEventCandidateGenerator.scala deleted file mode 100644 index cdd37833e..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/MagicFanoutSportsEventCandidateGenerator.scala +++ /dev/null @@ -1,153 +0,0 @@ -package com.twitter.frigate.pushservice.send_handler.generator - -import com.twitter.datatools.entityservice.entities.sports.thriftscala.BaseballGameLiveUpdate -import com.twitter.datatools.entityservice.entities.sports.thriftscala.BasketballGameLiveUpdate -import com.twitter.datatools.entityservice.entities.sports.thriftscala.CricketMatchLiveUpdate -import com.twitter.datatools.entityservice.entities.sports.thriftscala.NflFootballGameLiveUpdate -import com.twitter.datatools.entityservice.entities.sports.thriftscala.SoccerMatchLiveUpdate -import com.twitter.escherbird.common.thriftscala.Domains -import com.twitter.escherbird.common.thriftscala.QualifiedId -import com.twitter.escherbird.metadata.thriftscala.EntityMegadata -import com.twitter.frigate.common.base.BaseGameScore -import com.twitter.frigate.common.base.MagicFanoutSportsEventCandidate -import com.twitter.frigate.common.base.MagicFanoutSportsScoreInformation -import com.twitter.frigate.common.base.TeamInfo -import com.twitter.frigate.magic_events.thriftscala.MagicEventsReason -import com.twitter.frigate.pushservice.exception.InvalidSportDomainException -import com.twitter.frigate.pushservice.model.PushTypes.RawCandidate -import com.twitter.frigate.pushservice.model.PushTypes.Target -import com.twitter.frigate.pushservice.params.PushConstants -import com.twitter.frigate.pushservice.predicate.magic_fanout.MagicFanoutSportsUtil -import com.twitter.frigate.thriftscala.CommonRecommendationType -import com.twitter.frigate.thriftscala.FrigateNotification -import com.twitter.frigate.thriftscala.MagicFanoutEventNotificationDetails -import com.twitter.hermit.store.semantic_core.SemanticEntityForQuery -import com.twitter.storehaus.ReadableStore -import com.twitter.util.Future - -object MagicFanoutSportsEventCandidateGenerator { - - final def getCandidate( - targetUser: Target, - notification: FrigateNotification, - basketballGameScoreStore: ReadableStore[QualifiedId, BasketballGameLiveUpdate], - baseballGameScoreStore: ReadableStore[QualifiedId, BaseballGameLiveUpdate], - cricketMatchScoreStore: ReadableStore[QualifiedId, CricketMatchLiveUpdate], - soccerMatchScoreStore: ReadableStore[QualifiedId, SoccerMatchLiveUpdate], - nflGameScoreStore: ReadableStore[QualifiedId, NflFootballGameLiveUpdate], - semanticCoreMegadataStore: ReadableStore[SemanticEntityForQuery, EntityMegadata], - ): Future[RawCandidate] = { - - /** - * frigateNotification recommendation type should be [[CommonRecommendationType.MagicFanoutSportsEvent]] - * AND pushId field should be set - * - * */ - require( - notification.commonRecommendationType == CommonRecommendationType.MagicFanoutSportsEvent, - "MagicFanoutSports: unexpected CRT " + notification.commonRecommendationType - ) - - require( - notification.magicFanoutEventNotification.exists(_.pushId.isDefined), - "MagicFanoutSportsEvent: pushId is not defined") - - val magicFanoutEventNotification = notification.magicFanoutEventNotification.get - val eventId = magicFanoutEventNotification.eventId - val _isScoreUpdate = magicFanoutEventNotification.isScoreUpdate.getOrElse(false) - - val gameScoresFut: Future[Option[BaseGameScore]] = { - if (_isScoreUpdate) { - semanticCoreMegadataStore - .get(SemanticEntityForQuery(PushConstants.SportsEventDomainId, eventId)) - .flatMap { - case Some(megadata) => - if (megadata.domains.contains(Domains.BasketballGame)) { - basketballGameScoreStore - .get(QualifiedId(Domains.BasketballGame.value, eventId)).map { - case Some(game) if game.status.isDefined => - val status = game.status.get - MagicFanoutSportsUtil.transformToGameScore(game.score, status) - case _ => None - } - } else if (megadata.domains.contains(Domains.BaseballGame)) { - baseballGameScoreStore - .get(QualifiedId(Domains.BaseballGame.value, eventId)).map { - case Some(game) if game.status.isDefined => - val status = game.status.get - MagicFanoutSportsUtil.transformToGameScore(game.runs, status) - case _ => None - } - } else if (megadata.domains.contains(Domains.NflFootballGame)) { - nflGameScoreStore - .get(QualifiedId(Domains.NflFootballGame.value, eventId)).map { - case Some(game) if game.status.isDefined => - val nflScore = MagicFanoutSportsUtil.transformNFLGameScore(game) - nflScore - case _ => None - } - } else if (megadata.domains.contains(Domains.SoccerMatch)) { - soccerMatchScoreStore - .get(QualifiedId(Domains.SoccerMatch.value, eventId)).map { - case Some(game) if game.status.isDefined => - val soccerScore = MagicFanoutSportsUtil.transformSoccerGameScore(game) - soccerScore - case _ => None - } - } else { - // The domains are not in our list of supported sports - throw new InvalidSportDomainException( - s"Domain for entity ${eventId} is not supported") - } - case _ => Future.None - } - } else Future.None - } - - val homeTeamInfoFut: Future[Option[TeamInfo]] = gameScoresFut.flatMap { - case Some(gameScore) => - MagicFanoutSportsUtil.getTeamInfo(gameScore.home, semanticCoreMegadataStore) - case _ => Future.None - } - - val awayTeamInfoFut: Future[Option[TeamInfo]] = gameScoresFut.flatMap { - case Some(gameScore) => - MagicFanoutSportsUtil.getTeamInfo(gameScore.away, semanticCoreMegadataStore) - case _ => Future.None - } - - val candidate = new RawCandidate - with MagicFanoutSportsEventCandidate - with MagicFanoutSportsScoreInformation { - - override val target: Target = targetUser - - override val eventId: Long = magicFanoutEventNotification.eventId - - override val pushId: Long = magicFanoutEventNotification.pushId.get - - override val candidateMagicEventsReasons: Seq[MagicEventsReason] = - magicFanoutEventNotification.eventReasons.getOrElse(Seq.empty) - - override val momentId: Option[Long] = magicFanoutEventNotification.momentId - - override val eventLanguage: Option[String] = magicFanoutEventNotification.eventLanguage - - override val details: Option[MagicFanoutEventNotificationDetails] = - magicFanoutEventNotification.details - - override val frigateNotification: FrigateNotification = notification - - override val homeTeamInfo: Future[Option[TeamInfo]] = homeTeamInfoFut - - override val awayTeamInfo: Future[Option[TeamInfo]] = awayTeamInfoFut - - override val gameScores: Future[Option[BaseGameScore]] = gameScoresFut - - override val isScoreUpdate: Boolean = _isScoreUpdate - } - - Future.value(candidate) - - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/PushRequestToCandidate.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/PushRequestToCandidate.docx new file mode 100644 index 0000000000000000000000000000000000000000..91421985804bfecd784acd97556fac34f1af784f GIT binary patch literal 37254 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 literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/PushRequestToCandidate.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/PushRequestToCandidate.scala deleted file mode 100644 index 8d7e81d3f..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/PushRequestToCandidate.scala +++ /dev/null @@ -1,49 +0,0 @@ -package com.twitter.frigate.pushservice.send_handler.generator - -import com.twitter.frigate.pushservice.model.PushTypes.RawCandidate -import com.twitter.frigate.pushservice.model.PushTypes.Target -import com.twitter.frigate.pushservice.config.Config -import com.twitter.frigate.pushservice.exception.UnsupportedCrtException -import com.twitter.frigate.thriftscala.FrigateNotification -import com.twitter.frigate.thriftscala.{CommonRecommendationType => CRT} -import com.twitter.util.Future - -object PushRequestToCandidate { - final def generatePushCandidate( - frigateNotification: FrigateNotification, - target: Target - )( - implicit config: Config - ): Future[RawCandidate] = { - - val candidateGenerator: (Target, FrigateNotification) => Future[RawCandidate] = { - frigateNotification.commonRecommendationType match { - case CRT.MagicFanoutNewsEvent => MagicFanoutNewsEventCandidateGenerator.getCandidate - case CRT.ScheduledSpaceSubscriber => ScheduledSpaceSubscriberCandidateGenerator.getCandidate - case CRT.ScheduledSpaceSpeaker => ScheduledSpaceSpeakerCandidateGenerator.getCandidate - case CRT.MagicFanoutSportsEvent => - MagicFanoutSportsEventCandidateGenerator.getCandidate( - _, - _, - config.basketballGameScoreStore, - config.baseballGameScoreStore, - config.cricketMatchScoreStore, - config.soccerMatchScoreStore, - config.nflGameScoreStore, - config.semanticCoreMegadataStore - ) - case CRT.MagicFanoutProductLaunch => - MagicFanoutProductLaunchCandidateGenerator.getCandidate - case CRT.NewCreator => - MagicFanoutCreatorEventCandidateGenerator.getCandidate - case CRT.CreatorSubscriber => - MagicFanoutCreatorEventCandidateGenerator.getCandidate - case _ => - throw new UnsupportedCrtException( - "UnsupportedCrtException for SendHandler: " + frigateNotification.commonRecommendationType) - } - } - - candidateGenerator(target, frigateNotification) - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/ScheduledSpaceSpeakerCandidateGenerator.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/ScheduledSpaceSpeakerCandidateGenerator.docx new file mode 100644 index 0000000000000000000000000000000000000000..f8bc3bddacc8e74547a2328dc6ca82bc12964b2e GIT binary patch literal 37304 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 OCCHEn%pQ)tARYh?6uqPX literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/ScheduledSpaceSpeakerCandidateGenerator.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/ScheduledSpaceSpeakerCandidateGenerator.scala deleted file mode 100644 index e7821db76..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/ScheduledSpaceSpeakerCandidateGenerator.scala +++ /dev/null @@ -1,55 +0,0 @@ -package com.twitter.frigate.pushservice.send_handler.generator - -import com.twitter.frigate.common.base.ScheduledSpaceSpeakerCandidate -import com.twitter.frigate.pushservice.model.PushTypes.RawCandidate -import com.twitter.frigate.pushservice.model.PushTypes.Target -import com.twitter.frigate.thriftscala.CommonRecommendationType -import com.twitter.frigate.thriftscala.FrigateNotification -import com.twitter.util.Future - -object ScheduledSpaceSpeakerCandidateGenerator extends CandidateGenerator { - - override def getCandidate( - targetUser: Target, - notification: FrigateNotification - ): Future[RawCandidate] = { - - /** - * frigateNotification recommendation type should be [[CommonRecommendationType.ScheduledSpaceSpeaker]] - * - **/ - require( - notification.commonRecommendationType == CommonRecommendationType.ScheduledSpaceSpeaker, - "ScheduledSpaceSpeaker: unexpected CRT " + notification.commonRecommendationType - ) - - val spaceNotification = notification.spaceNotification.getOrElse( - throw new IllegalStateException("ScheduledSpaceSpeaker notification object not defined")) - - require( - spaceNotification.hostUserId.isDefined, - "ScheduledSpaceSpeaker notification - hostUserId not defined" - ) - - val spaceHostId = spaceNotification.hostUserId - - require( - spaceNotification.scheduledStartTime.isDefined, - "ScheduledSpaceSpeaker notification - scheduledStartTime not defined" - ) - - val scheduledStartTime = spaceNotification.scheduledStartTime.get - - val candidate = new RawCandidate with ScheduledSpaceSpeakerCandidate { - override val target: Target = targetUser - override val frigateNotification: FrigateNotification = notification - override val spaceId: String = spaceNotification.broadcastId - override val hostId: Option[Long] = spaceHostId - override val startTime: Long = scheduledStartTime - override val speakerIds: Option[Seq[Long]] = spaceNotification.speakers - override val listenerIds: Option[Seq[Long]] = spaceNotification.listeners - } - - Future.value(candidate) - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/ScheduledSpaceSubscriberCandidateGenerator.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/ScheduledSpaceSubscriberCandidateGenerator.docx new file mode 100644 index 0000000000000000000000000000000000000000..e6506bc77d766de95849394a5311f00c472b7f59 GIT binary patch literal 37308 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 H_JVi->$1n$ literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/ScheduledSpaceSubscriberCandidateGenerator.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/ScheduledSpaceSubscriberCandidateGenerator.scala deleted file mode 100644 index 484f17b2a..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/send_handler/generator/ScheduledSpaceSubscriberCandidateGenerator.scala +++ /dev/null @@ -1,55 +0,0 @@ -package com.twitter.frigate.pushservice.send_handler.generator - -import com.twitter.frigate.common.base.ScheduledSpaceSubscriberCandidate -import com.twitter.frigate.pushservice.model.PushTypes.RawCandidate -import com.twitter.frigate.pushservice.model.PushTypes.Target -import com.twitter.frigate.thriftscala.CommonRecommendationType -import com.twitter.frigate.thriftscala.FrigateNotification -import com.twitter.util.Future - -object ScheduledSpaceSubscriberCandidateGenerator extends CandidateGenerator { - - override def getCandidate( - targetUser: Target, - notification: FrigateNotification - ): Future[RawCandidate] = { - - /** - * frigateNotification recommendation type should be [[CommonRecommendationType.ScheduledSpaceSubscriber]] - * - **/ - require( - notification.commonRecommendationType == CommonRecommendationType.ScheduledSpaceSubscriber, - "ScheduledSpaceSubscriber: unexpected CRT " + notification.commonRecommendationType - ) - - val spaceNotification = notification.spaceNotification.getOrElse( - throw new IllegalStateException("ScheduledSpaceSubscriber notification object not defined")) - - require( - spaceNotification.hostUserId.isDefined, - "ScheduledSpaceSubscriber notification - hostUserId not defined" - ) - - val spaceHostId = spaceNotification.hostUserId - - require( - spaceNotification.scheduledStartTime.isDefined, - "ScheduledSpaceSubscriber notification - scheduledStartTime not defined" - ) - - val scheduledStartTime = spaceNotification.scheduledStartTime.get - - val candidate = new RawCandidate with ScheduledSpaceSubscriberCandidate { - override val target: Target = targetUser - override val frigateNotification: FrigateNotification = notification - override val spaceId: String = spaceNotification.broadcastId - override val hostId: Option[Long] = spaceHostId - override val startTime: Long = scheduledStartTime - override val speakerIds: Option[Seq[Long]] = spaceNotification.speakers - override val listenerIds: Option[Seq[Long]] = spaceNotification.listeners - } - - Future.value(candidate) - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/ContentMixerStore.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/ContentMixerStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..6f5f52c14645c46970bd94b5db91b6f7f39c08ef GIT binary patch literal 36916 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 E03V(7(f|Me literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/ContentMixerStore.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/ContentMixerStore.scala deleted file mode 100644 index 1f4171030..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/ContentMixerStore.scala +++ /dev/null @@ -1,17 +0,0 @@ -package com.twitter.frigate.pushservice.store - -import com.twitter.content_mixer.thriftscala.ContentMixer -import com.twitter.content_mixer.thriftscala.ContentMixerRequest -import com.twitter.content_mixer.thriftscala.ContentMixerResponse -import com.twitter.storehaus.ReadableStore -import com.twitter.util.Future - -case class ContentMixerStore(contentMixer: ContentMixer.MethodPerEndpoint) - extends ReadableStore[ContentMixerRequest, ContentMixerResponse] { - - override def get(request: ContentMixerRequest): Future[Option[ContentMixerResponse]] = { - contentMixer.getCandidates(request).map { response => - Some(response) - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/CopySelectionServiceStore.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/CopySelectionServiceStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..0a53433c763843ad4b7f5a006a04e7e8b0cd9b5a GIT binary patch literal 36951 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 u3t>ud6Esv%I$r4d(c6Ov{qI_lvKVUXFu - Some(response.selectedCopy) - case _ => throw CopyServiceException(CopyServiceErrorCode.VersionNotFound) - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/CrMixerTweetStore.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/CrMixerTweetStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..eda440ab486080b61c80e0f6b0231ae71de6cc41 GIT binary patch literal 37307 zcmagFWmsIvwm*!!dvJGmcL?t8PS8ezy9IZ5cXxO95Zo<50>Rz?otZi3%$$4g`+nIx zRMq;)TDz-i@2*yo1&6=@0Re#lsYvJ2s#YnEPX+}6nScTTK?k<#iUI6Do7;ajRP%5! zch+Zgx3g_dmRDRCM)`97ikZSBNbDtsj9IbgK^L%7}`(Bs`gsVgRas;{4=Sx5?A>Rq^5z<6fCbs!N>BE2lNPp~iyRo9l~ z{b809lzG2ykk=3`+6)C8|kB%zeLXK3L~XPwoN8nM*w$PxY32Wx^YXx1U$PXRW;ly&nzz;iU;?fLRf)-~upb?Iow zsQFkO2T9?2-isk+o%99LP&Jb1CqZSfcEwhE2j36g-_sPwk_$ergc;l~%*)$Nsr!#1 zf8kIUs#ob0iA@=2a4`xSE^*Kr(0QEUkj_B@aTNs)M6>K5O0O9#5PFNM0+tXf4N_4o942q({KYO1-2`I z#9eJKSlc!u@|Fxq*qrj7(?Ww-kZucoSeK^pY)+&`RNRo(P70|kxI7W{2L3a(ri%~5 zJOBzHDc8agQCi*p-PSGQL8#@kl###iahwCHYPy0M3pRHVlC&fGjhOV&Y)nO5dlpv5 zQ>W4=-O5YGA3 z#J#t~g1kofH42P`G%e_Hgp3qMz)JfaJBPgOWDe)__I{C_P9B{r;WppswS(X$S92@4 zX-Gl{QE2>mfLR2*Hs;&93D(AQjsz`Fb#m~)dEe9g6{RJw=|o?oGA;sKT@JW(CX2q@ zQW!7UPy+}1!j~D6>^7B>{2!vKsPd~{G=vkVJID};4=`wc1_Tg>Cz2&JqL#Oo5Q1c( zmgR$nrwkd(%@{z;uT;VYIqlj)xZ>96DDM5((q+M2Z$VuDT-Whrdd1@BOQ3@o{OjYe zk;-9~IdvTrEB>kLBP0ScD4Vcyx{6zy2J245sk4*g_N*(oekDR{C<0Q-hy1zIvMS-g ze3%Vg*Db(MasBAR!rlghGljp?4f| zhEeq$4QD5+7oiwnKc{Od)l7JiHkwRb5<)vTE7Hw=UPBVzYVs=SRB-VA`eH6D@yoUT zVdx@Rsd;59O_^CSq7wYI_EV)t*{lG^$Nk%5?UZChBuOyiS2l=Ak4h`*)i6nHd15>k zqwb5TPY~AdUY~Cp%zmQgS=#Ah^UsqBpAgbJT+Jgq48eWJHZ9r__WgP*=}?({M!gP# z9no~sNUYjWt{HX}eHz!RB{G`F!vX#(MjbW&jV#&P7|?%%nyVGC;TYF;*I3RMha`K4 z1o6Zty7Gc0PP--stwRu(*piO!S3d!`{>8F|ezLAoW{&Xnd%^XN!ySw~+%HySgS0~ghmVmHLM9rOS| z1({?cfTQ%$RcDXr{uAyi3ge|6%hArGivaww8x*&1TO%xC>M5-4>v+^8VL+Shc51TV zwB|NBUuYJ#x|gkDeCp7;v{13)$L_97rWYo{3)sxZYrOZx+h0WgyfM;dQ8h+^Hw85D zpC4E^fRh;$@Kftz2V9(f-x;Ucvd-(AC_VR@M($E-z5P7cTQ8>*Cv z0U~jt@?g{;GRka^=lT~U${Kc)Dbxo_1mgTy+rE+d^uiZ=r_1ajsuk?$UE9YUzVONl z;$!X`fL9MbUO@nf9W$~cDfemXp<3$}l5a;EWInOBOuLAGp9^zh(Yahye878&^hi)eScQoh@s+iMqjGO?PC64#J-M6>EZu?brfMq-8g-t&=?rFTI6 zjFi+wJ{ubCFjNKY7t~|H#8H2mdSf?wV+;FwPxv&e?QslbnW%k8WIjp|uzq%VTI0(k zTahMjHL?Xt@<@`@gQTMyehGA9`nDYA_N>LE6Q zeYFr|5(6LS!}R^YW3|GD!{n)}j;qoZf&h0N<>iX@U7H&{nxu)c>@5Uq(7wHWf#Mfv zRo_0k%-^`0jiA#TgBFuNpg8AW=z~QWjl@SwS%R$oR0wu{PI}yKZiwxL$$(VNy2<7P z?LR|g?2<5ivxGuR^ukw#z}I6l9Z@=vj2K=~(zNg_D9-?6(ZtIyBd~WuQ5Wu(%D<0b zfs{^>$)AGzSkP1Siw%cheSKID4m8x4R%W-m&U7wEsSfqrdrn58o~X0SGx^tp#g^3GP8WB+#Xx2arns6fNA+)#uJG9mII&l~}?V%VO5e1V|;&t`8 zaXjxqU}fO}pw@>bCoID@osWL{wx`BHwFE+I2c4zQX+#s{$89tzuFtgEXB4f`5;E(_ zBNnN5_msPSUtPF5J{&O;nGmw#p~3^ivT6)GY9!7Ey~YP67?>XkY;fO*x`ixm4p)LU z89?R3+ck(Q+2H|CG3T*gx(yXSDlC4kwk_Pg_9`8$a6|~YTAFV(XifE#Nw|C<`jLH` zeKtOx4xpe?dON_MFd%UVsU{>NZ_0Jq{%%B{lV*-th8xd#0vm1JjUFKeXS61%kH$Q!+y0pcIL)Rn|$Q=cSj4>agWRAvfiJW@U z*C?efVpB~F%Ujpa*}cLqDnEBxpZuxnNG3`C1+KoGVyFR*ygA=qxE-@5y6A_bYQmQW zE*&s!@wtRF} zAI$LmUZD-(ESeVa#YzqWUgY(n(F`Fp?z6xL*&d9nCiX3sOhLrmdc{)3Sc~hjRCmFz zO4%YsxG5SkRD*3oK1|ziTi?tj4S6cSe)fU}6WSMyD#hR9A<(i>p49w!A~0}~h893f zWryXwR;F=iv?0sAb~9HC!SfjO?Z0vzU5UjP$pivopbiOw{I6U)fA+97cm892(brGh zlWg$m?JX!YeEDt{7Ys5wV-J$xif`=Iol}3#CeJqi>+4tSPqC+leiS6aMCvN)8Zs3L z4SWMRSV}Ypn%RkJ=C7~0eqFZbzJ^3GnXhM?T!X!cJ?*;Z8qcNEXV;wo-&Y)OzQ@Be zcb&7Gl=WBp*RxEa;PH6nwQ(u>)_qtMiY-O2Tn*2>q(ldC3=4O^~KA)>1OzHY@YJYi7{?>APB zI$qC<>yw^t5kl_{T7W^+`_BFA!&~TwR_@cdc=ULzZ3u~r#`=XYz4dJLbhcJaCJ(dt*>!IC^yulH_q^VU zJz1!v5)L|UZ!#fo`=&_{c}wM-lDrSqKK7dQ*G?`{rZm2M)(Q1R&7i>j+zH!#v4z{2 zD&*@Csn+SucZyC@8ymFp~rOY!90$Kc#opeEOT`5k?zCnc(Ft@l*n zXgwCN_wfC_UZ+g{3u(3R^5o~QhB_`Nd>pYqN`+QWdU z5T_SU11@6^rXg)#2GO_@dAAIiMTKZUoyeq0a7f%IjK(``-q*#o=VtWOYM2VnKN@@jK&|YEP#T*Qmwxomn zbo;f7pI(S4rFPbBZbK(dg>@jbbu@9M8fnq~cJOE2woeU)skXJrOX~8`funO3R#Dkg zEb2x3^Rn@^8jbZ(y5&RAdzXIA((Lo;{FB4I_4UuQ zLFX)Xx{!AKV$JCH!9({7!mMj*^&t4wuLlnleiuZ`ikYpck=77j!))jx>MA6-g;C={ z#R-jzSbO?jJNqul@FF+fwamQ(o^#8h0GhE(*;ZX~tq~#1TD-2<&!=w}KkewU2uHr5 zdSjB@!F&_(CNQLyjw&YOP82-1s8k=@5Pwl4iItI3mMTM2Nn)!Era!=-BavlTmVrr7 z=;*ET+s0>l(3t2N#aOE9V#zE7Rkpp%ZGA1rP1A{>e|z4v>gKCCA1YdnsAFNaXXTl-8y0%N&_(Ps#AUE+@s?4c?Qx7I~N z3~#qpm0c(Wqe4c97U+=B>Q9{YU7s&D9;GO!t1@JV0syMbJ+3Q^qHu+U5}eotImRG* zg%uYV*9BRW_q+2GuoLTFoe;a^08o*?#@96CQZPa=dBBeiNN<7t3;UEk0T@aQ97pp< zs16V<1c>{O&_Agl%Bjw+N!w(kfvLbze;4M8 z2h^j20`!W}^qqkip5ebFG7!U1dBDT`p?V?Ftr?~3_o#n26*-GF&A4{)Q`|iM$LhPr2rQT5-SDeHfX~t=)C6{kbTpcyw?$Uaw9`|7QG%@*S<(pi}b3*72$PTJKOy%6(qaw<}8S-p_8TpJtH8 zvBFL&n%u!5MrqZtcFPTyG6P@VhAv7Jk0x2SJ`;v_Nl#>|$V_JLyd+d`LDGmVoy$w} z60tVUd)SC1%bqUzWr?F{l9w#3nl*UrnHesfEa!?oA_M177%R1% zEk~Ek2fOE1)$fc#FFoCGGJJBwBYOvavYc2SnVh(=ECoH*wea@-`yO23)F+D znB1&73yp9)EnenuY`(k^22HIWz$koV^HoZlqfDhMkDfqZ)Mi|09lj-ppHHL*RWvcH ze#)X-wbVb*6C=x-gryv8A9b$jqH9OcbVAh|KkP_|{wdRvUt{Jnn2eDGWy-=gYAJvvJp3n^5*0)648Aq~{w5@@l3>n;?YYc4uqq=q<^k zO8hg2(ME7#*_pF5l7##ujUS*1G#ylfOX|$O_r`ut$=&$SJoGyVGO_n+r zew7b(gh(LHvnMY<{XlMf+0GlXGNPVrUx z!RFg3>t=_GP>Gfs*4#)`fq{$#e64MXed-jgXgWjsNSfH~@<_{EEWApw^cycu&g>;@ zm6R!J;uk(zvrQ%$!>i%PYpooBtrK{hpU13PRwIFV2XTs7@Aa!#z3z$z3uGc?-Y4n~ zDZ6F<9QaU6D0&mr8Stzc-yb8bCC8o!w&ic+;Ba-*3EokQdtCM=@i>;tYH2Yss?GWQ z^R|W#V$0l78HS0}6ki*V1-6A=KeUR?2mx*e+LfIa3rqCxSn(&WCRS~K$ah^O^nIP6 z*HexCHHGewT!6c#*{t~^tQ4gzJ@RD1K31(;CHfZPK=xamypP1lc*O|siO?z){TyBj z+l4FyhliMB`RZwT1$JgVVZOJzc65MW_K7{)P@J+e4(T#}!>oRRJU!9wG6AhOgto{F zO%jhY*r6;YKw2^L&cl50+UcH$x8zt*TQ`<3T5?uvs#+TU4mWqRWy6Sz?(B8y#vFxk z3TosPpLn@fD(X%&h7~XGvux$bYk%g2Dzka+h>t!Fdln96blfeVD}}5_(Q?nlmlZ7i zK+za(vsb4dxa90?HJM{s8oph$aOnqMmoQSF^!D_yR;bc5u;w?O*w9=2 z_W65QImH*#AD)kn?YzIzZ!1%OB$LK=_=1F#u{QOufZ)>*cbvEb&Oc?c{~8JyI_ z+i;6wG7P=gGF}BQ-6KFBVf;SDXKShESgOF?N%?sBvVdvGB;GBug_Oxwu7HcIS3@p- z1NXHKYbV*^zKZVqE0r&1@siuMGR<+$T{Y+8I8xX39HU2ZcCAJ+QGD(AUi^f~Lc$t% zHg(;1zHs2$VZa!1?Al6YYOT1qu0pv(Hw`0Uen))h;-WpfPh5TE*w&veuHed0oMYH7 zkn_Gib|@-M7b8>6E!wbG2Cq@&XOmKNx}mb(F4f}PY1CQ5wJNRSq-Q1Exv8z~=$HSTfmQCX94qLeVCrNwTt zrs#6CQ(Z;Ywtskxqm2U>+ec!GJciN${k_HZ{PPN13ll}^0cli!4Lt~jJRSU#)^beI zBXnm^-peNyn;##@(QqZDWmR0;NxWw0C09upYO0=$mYYlaL^f6XwpMK9ac)=33GRPH z-}B_WS0LF5;8^rq6x$c@rd!}Q4Db~N_A0wrV6g(0Hy{$u>#H(8ei>8m95+g!zb?zT z7Kx%gH`Nos^c16`(ko{G$!MRi_G2H-wFf9ICL+$wvrN6NqvWx$H{wJ=A$?>^y-jbQ zsy@^3_QB+HqN9_;EGnyr?OugeE>~7`yek=0Yjrf|SR1o8D~IelxY~}C9lYv-`!+qL z%{ylQF_oC)wuy;`lPJB!F`pT_4Lx=zZXSYYjL zEJe=jt$F%ju+QfEk(>XW00&iYm)mBzwQUb?n*xf1h1tI3>Cxf!Yw7f^J6yEa?B`+l zpEGygz#b?n*^@R_Rv|UUlhvzp;&Q-TGwtlo;$Epg!uYx8|_YthfFI}Hf0E+}8F z=PmHiyMNqU-xBwvWm6Q|9IZtX=$T8GAHBX^Xr3>EhgfXSBseM1hW5@u1@ zmX_`g&X4GBbOq-dP8Zu{SNCm97np8XZyG4+o#a6@&w0lf>2#-Su3*Y+|-X&K4T5e?geJ!FJ0ZT|a)B@KSOB ztHn?Gni=EV<eL+KoB8Vo|_#7qFgD z*s8oEH_GM;){*?3*MEx=d^uga3mTH@V!{}<`zQA(ygT?BJ`-`|S3GSXHp|Wsd{?-T zaUeRCb93zvM0JsfA9mzlwj?PFxV*R>OPql?0Y^xAT$X~m^mY~fST|h)2*As{;FP`2gOKvtw#JV z1PUcCyRcnOTA~2nnM<%Of6h_(G142!6p9-Q1a4UV?aM1X+G}Tv+}|lGn!`KV8I>a1 z*e8-O(m8-#e(-Vm{83$n@A=jaN@Z;)6gP?;>BWhhBFyh9!&k4S$6N5%_JG`Y9!2_R znyfY_PI*9bs{F2ne?{r*`u_ByKAf{u+C5IzTvUDto%F6mgZ4ZpxX4OG4$UP`=2C1$5=;P`aSr9#&=8JQWUw0TZ5X79SDKXWi zYT(`u;8~#_tDlAzy0J0DEvrV>FcxfOsW&oMJVklZ?1X^jC^1cwc($o^m!;Zf;GjdR)eqdX^Ms``)R{BUm%m_`5-0$ngD;b2ZnK?ZwReXMC znDV|!v^6VwEnZk97RAD6pYjv?^}Ei^lk<(_A(iH+>hYELb(1tkd6>y`)Q|ibl4+a$ zRaeali%-e%%ECVPPiPSIBW2N(U{)2J_uH@G9}DAD584(~8|*Tr7c{Yhe%$lgcc9xp z>97&ZjFZXb*{?mNOZYCy3yD=Ps^92FZxw6-k|W#}0En!#WnonOHD*yNep$=09UW7HU9HWQM*3geU8_ORuVk&w!bQQ+g2BboeJEaF%#9$V z{K(Y`Qzq+PsV;E*OI$%hnAa;{fP_!zhmLq5DKVsBV!tp|)F&WSU=)#i%jj87dUu5t zYTUnhAjtp4qp&ZH4Z2%;sf1c*)db5}>O=*m4-HIvxTA^8c_INBkEXkIVlj8}*ob0M{kea(v^_ zr_x$$9SHL6PszttznpI|LC25SFWY$|{JR=6<|Tw5w5Nedvj<;#NXc8hkz=2P!=*v*taUUYD3$B$z!hCF zGC;KWDybl-zkH{~x9Ulxel^J>ejBfRb8LUQdaUzw zKowd$b58+ZltJ^v(F7B_p=)@rQPWM5(w`@$t}YS`?#>eCn+}@QvxGnaptj<;oEk`~ zLsI;bm|*51%E8l4uR@#>IHodky=v4iP=#i*=Pwl?M}WfPKMqa`HKg$!64mf0oMHZ$ zEfwoYAV|AuKqIu|eR_LbA>Pi9AtPL&XMHZD!qxD5orbi%{u6#Ia3SApEjbcA#=uMO zDXS)%e0dTSn!Lmr5GUe~xu8RRF%GF%;`AkS^j}CDv&X7xG6+^HDI#fd@Fz`KF0M_(hcOySmLS2LpxMl0e;u<$l6>Uqn+qTQ;k9R~N-tT<2HkANGF*7>P7mb^ zLRgsS0ZM&ZO&w0elq+c?BT5{fHmTR4 z)Za9cRc7cYmn`Q?|MtBq@Y{EPsFs|g*91->gM{-3@j#(|K)3rn33%eTO=;m;w% zN@gwS>CLB+<1HgIobu;?Q+X))Tcs*d6Hw(K^lz0Ap!I1cqwPPvnGemxurMtn(grz~$Pp`IbK`WU^azW}c?GPH>&i`g z8E<9}j+*;eRe4ztZIv^nSjoBSYm})4h; zpU7&wq6U$Dr3Tr{`lFqJLRxMKs>PIQCfwY6FKZ+nLBJr~d8t6>cYh}$YnbzKsh9bT zwueJdv9ANTqrxBUDG6qrEa}Vqx!hDKm*LL1maI4K6f@e9)_*AB93!47&pk`#u{>bG zOL=0!`;WqWfqqLZSW<)5wl#SXtJ}_wiQgvpy+Z$Z+}`Y^fA19P$_-J*k=6@Ev2xv@ zpJ#d+Z~k$6^dovou_mT;;o$MmsxZpJrh$pMv~<;g!xJBB=JT)mv%vxBvkr-99_WT! z1K`9y%>XqAK>Ct%&g@g&(s;Pmrc8WTW}W0WLU^oy1sl8*7^hdd`8{8y+SRyUpNAe4 zbub_-E~FDtVl66La1a&zHU>(Xe;wXCS9@^*F)44W0+)XGPGx2Q&7I6VkfN=Qd^w5* zJraw5h%S^u%Y>UAwZWm)SUR(Q-crjXZ)?s7xD{^{@KUw9vwp6FxYbxRf^FTjz)I=! zvO}Zq520xH)lb)I+9fgIq3=fa6x=>6@1=E@K$I3e(`z9`{EP@&+0+ObA981i3xK^9ty}OSL7_MS zp+H}mq8B=8ZWhCZaDCdO8z8o(wDH|HR?Yq{$9fi?VGmtIE1N_nj^ z%r?;F=fg^1S7y|vxfJG$N-JVIx^~&CUj^ke=9``{#n}}w< zu~)l7qRNBMHC=55qiQM@Ia{7DD;Q-&~`cwgXq z3NQVDtLII}a@D^)>fD!%5C0A9+H2nI50gLHt8aToI_8_!{$)~D_qe+_{7;ji$-hl< z!~ZtfZTJ6Yl3U)UceeA8z1kOO61~Lgo!2&}jexKa8xxl=CezrQ(h(o{M!6w;{a|nP z^a!+VgNgzCMk2WhLkd$%M~X3Yk?ye7a~Nmh&g{BMX4}x%>CxTS`l~Vzm{`B|9Ll`z z6pt)H2(mSV9E%sY>(~Jg z!v_)d4+AxZXd{+RB4#S1;ufjCH4BXgn=*x=WA3))%z@5nOKlFvQUa(WGC6d{T3mv4 zJyY+7m@qXO@e?_7j_XdIM98)Ir zHHl?2`Q(4ZMT`6vhZB4udTBE@ZnDGktB#0ekg&-Ylo;~&1-b!vfokyurI&Jj4Q$Hm z*?}xR9VZxpXO1Q5>NCJ#zLFGt)@4dbZSL>|z1CQ~0CNlV#A51mD?>M+K6A^Qfi_iG z=>#V4v;vsCQyA#60NXZ*e+91b=rDk7~LP+}cQ$ zDzDs~8pg969}P^M78-IVVS+`3SlmHPdPw=y+s7X}8qldG16ucC(5=w0-x6P;xU>Zh zA^3hMFl>BaOisYQZaxBW(d!lm0D;BaWBu}G61{=hAWKp_DpWwTnZl`R$!TV}pc^3v z{Bju9L9Nboq5Av|?+oN;)>l_IS)We6%TA;VKB_c?qYa-H;V)Fo)MWySw{>y8{ELMH zxEEnDbnA|#)*Cqv-B>L%t^IdheQ+!AS7GO<+hjeZ(WqhP`76Vj&tx+Zq?<-+h)*|V-eR+A3w2OnHPbF%xa5jmg zyfwC(NfnM>11~zC0>6P>!&CMgc?~E^PtAfj$WGNpN)jK2nqp68dO2S^SZg2dw?(p#zARm$&AT9xj6(a%ImRk}ErvC2x3y$i9Cj2oS#6JAdTC# z_OU|tV|f9_Mcai$U$f2T=R?gcxvwe!N~x(@@F@VRL-vCGyj(D^(jhQ;!H=*A@J7C1 zg@I|g7i|eswN4v3%)MB+=q>#(^g=KzmPcXP*uRKx|D?iNQUSmNlK?(7n?8#LpGuHVMtzNrgV8iw>!~#+*n6yO z{QM$5n!I_W$zgApW_ZnDvA%kA1f{xLN`7bw(nfK(EJ22HEmj}Nb^Y3hrFdd@c5T!B z%03_{B=MW5XSUY0I&#okQ?k;Ld+!v zz0Z29XS?eAcfpU%U+KG|&tG2pc9Z(F|GQMPxt_mNu-U3x$6nTiq=f&=OmaeTQOyGbB#?Yd$w0DIPkugC*o)5-wEMa+6sT|4PD{wX zNO4r*nrw|dDjE_2-$L)`D2|fC7nE04&}>5LmniaAC=@NmbAH#ZW^+%fZw{0QBSfnD z0h_&KTA8~fMj> ziGt7sLD~)PP=a@*3+HxsAW=nZCFTq5-C0HMv^1oU46542iD!RpG&-|O|MPFbFDR6^ z8$8ZH!GZq~9GF`UDfFk{{@;QxehaR_J8^MkdDJ+u?eT&XQX|r&dq^f4x2+@^m-`FY zy}vd&DE42#N*$lgVz8%2Krml!Zhcity0*B5Fkj>t9`cWbeY*YOe9J~kfJF1L6?j&z zW&-~Jjvj*ZO--CD-}wkBgs2LE`GQjmJZ0;pf6?2fD?YfyZOi;G7EV6y<3G_3%2}sF4HZzziCFEoh;>m zDKMi32pIP*k=KYcvybX+;aeStPk^gq+WIQ#po*%-e+5fi-X z@ox2nwF}&V=x3Q3qd-w0?usPdaQf9}&csTLvjv6Fx~a@;4!9;I-V*g^H;R1|zAQ;v zg=dbbl!N3p;BV*v8SNicN5?-$$Hx}zkJ;hwzhoS6TyDUhJcI!0zr>nRbpXEcA3_v$ z*l_o{fsWxSo-*ij)HA2;yW9&%faFFJluOug&)sRecw~hbg^h7Tjp6IzYg&=Nv(r$Z z;x=d$`Tee6BF2$~dkgcw0UQ;71009{0pM`&7Pt>F+6gmy+D90(vhB`Wm8Ia&Wf2qw zX33iqju*Vsc6s*$86O~%-tE8NHlgOfKRk#7=Ya2x0^WZq*zdTzRrQww-JrQ40%tJ) z9d~$}(NJ_tUTiLye#iaOIU??@BvvobQOD$RkkQEM1b7Gh4a)RC>5tg|qAxYIkSq%KBYexZf}>bn+G^Xq+y&iycR#SR6GBNmI0D|VTnzr!d5F=QYq`@N4FUPa8m4QK{<6!j-KuA&$marjT zgV7nC11KmZ<*EwhrgXR?Svpmr9a+>FQ&jEkW!m&=QlmMHjP^`P=Cn4D@) zof}r&3Eg`xs?q2YEzO5VO87OP&H*x2QxF=I!1XeDyg;c*IXu~FY9cWF{IQF%ZFowd zDoRTmT5HwamVy2b7sujV+{7I1Cr9aqo{>J|^5g_AGjly_c2&U0#LJvFt0jQlOg_x6 zft4vO+VYpgN|i2!2IcHT#H*c06~fkGiq;2Ky2;y`2{~b;q~wFAc?+m!?Q(28Ef6|% zoMf%^nJQb1D^}NThIOSn=PEg3*YISQq~z$A%Q1^wqD0adp)a}M#{-kO1i%uHQl6( z>kI;~NwGnbF^N}Q#YYN_5*E7a?monoM5Pu?%OkCH;a_NUC)9L}BWJc#HDj!JUxDS3 zs^vL2ED4@G$hbFJ1Q?l^0}Ba2PC4-q^ipND5w&$eUK+!Dv~8H|P&YBZs;XKc&KjNA z@fiqDCTU~^RUn<6fY>4Zdqu&79K7#>(_f*gfthWQ5vi);tFk?d*#O1!WO+tG{~M#H zwl+8vrAA32$5$CE40`G}Ncyf4M!w+#vLCi?QkZ-kRT-w!nt>u7O+q=&L8{ay$7NU}!xspWqL-dc9JC(&}^bRyfJ1B#L zA>*~hQNu>^#BPslGlz+vFsIZw-}*UO;nN0)=J1*)?J*)?EAVhiXPtuGm?-1EBFBC8 z{-_fO3xN(pi6R%*QfBD|T1w_`FWjH`Txdk?Tj?Sil2DUjRR#hmmsZNhR>}|I42Qsk zp+!+6E+h8qvq1@jywgOh(p#idgP{kUO%DT_70Q&p9Wx+e?)YrM(B6R4vTt`*0+dLi zaQsN?&l_FK;yUvY)TnLcDa(YFM6kx2&_3@{3AUaB2JS zXi?REK&yS~kyhBw8(7I@#1E%*YZeRHKs3)2%||8^feeJp5Qb#Bpv=m40*atj!|?#M z6oS0gI0=TMh!*^&1iEz)lqbrRCkmg9_XLFrW@C%IQkul9Ikt?1>BObh6CRWYCIYFS z7l;|}va7dvtP_%c4&Cxly#$LXz?eve4IGBcD}e^N4qMfGnL z@W_9v2<;H$KOKq`L$ zVg3fv{Wp-^Z=eOgscv7X{5Q)b7@DZfa`Q-jTkN<$5cn&BbBiOBEjkVGy&tIx^(t(- zB-}-ITrdU<%|Zl5(j8oLD8{jnf{swpA3iW71K0=}-3pn#^l+jvaNV`K$iQuc2=r%z zHZbEw$0f(uRr~?LCz3xM7$H;5B)vA{II~5}NdYr4tXrz| z9Nz6o$XFGIA#*2E5)bB0L{0)J3g#VIsK0nXB10L<) z>RuP%XE4O-?Cq{1Y{}d_oPPr#XQsMkD&}e+Pr4a$t&h6R7;$sI^e&$s8n>@gj2uSZ zo=0xJmba%O8rm>LhF-tBKm|!(-CO%u?cc?4)=s)OUCmoOH>^ePz zyVM){=n2%``IXo`rds&=`MtO3`?*=~uTT0E^*%DT2b}x*c?cSIm3Q2^7nZ*Byqioq zCywR@XNI<>9(ek-b-S$}I6Dny-kw?AdY*EvE+r%?9!b&?abMRN8iwYq<%O;fFMs!| zLA=^{+rRwCG&{;yYwyUtgA?BrKFQ>6PXf61rqaIfNj}N2J@VB!S?>jK0cw|*G_0#% z+uoe4=(M54*Lb6q@8(>sxvqDuE;HovQbW&uU%Iwzv59gM`D8p_7$v^H`n@l2>NoHU z*b@#Mln$?7`=%1|;IF?m2oUfQ@)GgCyS(siRo!=X)^0PnB3CZfj=xe=_g0~a2~90^ zF8VlGw6C06b}o{7vGNkg&I%P{v-&;Oty>~NSB@^ec4pmf8jh>?GUaS<^UX|`Ki1rQ zzczV&^mb~0yW1vexKHP~VPScE^R0iq8~n94aDUFa>F`9htQ;Posj=OS^<;nF;jTqs zZ+2i1hY6YS>aa&8fYyy{%YU8bp-BR7s=}8#{UX{Ji@(a65nO z`1qcaa^iQM61%+rjz@I(UOpT;z3%DfohJ(|a86h#M3_?hvmi^a!JugH#rdi7=!U8@ zs$L8aP+^hpVcYlcMR684nvUN?|=pW^F0H5Tm#- zlU9}utIVf5?0T0ON~Y3i*QT12yD1!VZpj6+|GbKr_u%UqMAVbJ*%tzA`mqCS!T~n1 z-Q5a#Y2m;1Jnl*%aP-#P%}%b}+DX-C<=mxr8e**vAD!;q{$xCW0xRgt3)is#T2KwAKVfn{fNeYj16Cw^okocoinRR*wuY%|?bE%pU@e z3U)ucJdPSv#OHFk5yjw_`S!tj9+WN~mA>i^gc5nsKT&}9n}07|v^NCgf6s5DcR;K$ z1lz=gf7cSM*)o_B819evP92C*1&pfJCnCYk4n`$KJMf3snvfHC=TLp1!`pRF2yZ}b z-3r^F#bj(Td^p_GvTvE?n$0{dZM8g8H>c-1Vsd>Tl(b(njB==EFm30_)eSzkKt>K1 zn*cXoT-54II&Pphim>p(VwP%Dg2y4(s)wu^XV`q#dFxrrhHZUlJ7?``y~El}KteTP zeSdCQT~0I$743L%>^7`%o8%KrWQ6pZJ}m+ZQmiY6(;{2Zg{(rgZ2()saMSgb6<@FM z7YTgT?8EJsq&JFo_;|SEqsGS?N>f3QK8SG|Gi4m-`q6$Q6s=BjM-EntYy*tD3e_HT z`av6PDXhicQ+7xfBvfR8!G92U7pu=W+5vv&VxqhS1W8p5*g>-f>>xe`cEkZY>LlAB z9sUi0zXa0?@|uCyOR@KR(7&R84|1Qj1H~^X`;F4{8~zWJzYq93%KxqchocqJA+2By zj9YHb9uyzSsuct&C>RLF@ei$kNm>ItWgcoAw<|~7joG@K_rY?*j_y_P!M1?+n&C~YpHyVjWnxzYiI1< zy}gR{`8j^H_%!+Wef8$Ws(xC}i6HDcM78~lJ8Q-pHT~t*yxseir@hxL#8jwyX;S}g z=XP*Bc2Y6Z?wilncmJ7rx1>~#Gl$zlyIf!K$NBTwRKE5N(KE7%jpgd?RG;;Z2gTvm z>YwA^0J_e==hyWN!WqByj2P3iSdX(yqHnJ|FZ4A+5v9-&L~DG%Fwf7iL*@58xi@j< zc|IIPnF;1*VcNCt8E@?;4zrkD%u9O%7566bYkh7)W~ z%oNaMh-8(E_0686NIyEx^%=sd6cASuP^yWjs7S^yK;mv7ZDmP(vWB>-eum7p!(Z{` zT8b>|qfcm~rC^qG-DiF-!H9YMU+(zxV2ia-6}6~kzS{x3tVCrSHa3;SgqlI_Rj5Pz zJwYqyC}G_qPqi?6KHs7>Vct7ruEimTU~<&R+zU|q6MM+qZ3P1tL%xXYic5aN`6}w6 zgLqIbNv-(*2zv+U%C@arIJRxub_Eq{$F^-$RIzQ_wr!_kRcxo?s-%Lq>zsSUQm8O^_C+HL;kU$v}?$1`5xfDefJh>v=I~^O_e6cYCU^G!8+HriD;4~?QL_TC zV$T$D8?Pe!MScJN-A${kqgyyCwj>MoovHgb)~T>UKYGXn3AtOgui)aF z@7$|wx-VjYtrd^6_HHs?=Y%$FhV9Gjv^<^?_~Y^URzrPI zeZhuP^~rsKnhcqh>Lfx)RByuG!x(e2V`udtYajbAUy;)LbTo%%MQP*5X^$TlYbhB~ zGkUj{2JD8QUwG&O$_`Qn7jK(uoOst%15@owOyq)q`@ovk+@ORmj~JI@YjGtq9BEBS zj||T2Nq46gz*s7o^qUT&xI>qVCD*fM(IxZ?bX&=%OcXg_&RYs~J5uJgLu_Xy$) z-hVgiWwvNC;(>j3Yb+S@ipw$oI{C@MO<{piF|FX>dhHHLH2^Syf4)kM0Ubhhc zJn8hVN1dDF!J|6i?AOhjVP9%fva@rcnDpsDrWw`s?NMjh$cu~i_~XqNa5>7Wl*F22 zRk7kdCKp1XT%`6++soz^GfJD2f+?}onbIy>p7iDwi-C>%`$l8u?HneSs-O05v4`Vv zX*+4~gfp%d%bTC{jW#iA&y>oJh-xywml1K=g|0r7Z)nH8`*@g@6pAWfYcA&$rFJ!0 zPZHNz`cCqz?Bt}P=VTH+>RiuP()yjxkCt_7$HnSg%zG|8Sih;GLGrqu9icUKHcz^l zEMEOvBN9=|=~9hmnjmT?t-Gv{xyJ~!Z7Zk}LXs(_x{5w3eTxvk$yj@o8EJ41ur zzf&O$RFXHi#wPyK;l{!1`0n&Q;EcW3-hHA~=$oxdiUv~Hx}(cu$${;7=biExp+|Qb zpixxcv*IGggLq2TL&aC8<0(f*>s9LYqlO~hS!B7`Sx=j!{h%ew>G_s8_#l#!xCE%5P0iB@z%D4VzY1A9VGVQiiK zepfMfO8G-RPKq`!J^WkQQ;LI^XZPM6M9d-&^ z0URaN%nU_rw3!H3#o1KucL0KS5x?6=4Qw`Wq_PiM7@(3DA!n!s5G&qpy_x5bc zOVku*%8m!55y*X2U>zWxUjt)~YR=4|K)uXG=jCB(@z)tGzgavxZQPsOmS{+ z2=Qi(pLgrni zv3_}V2@5@3q=m}5I&jwUz&?)$G>p#Rnr>$M>}QdS2vX^&+61p2RazZqmnzkyEc4-h zKSCC}dM#b}M*G#&=(6{RneX&Qg3FUn&giAidYM&%rOCgOrUNa{PqM zZMY1#npN|q$E%mO4si~$J9%5!h?=qQuq{y*sh`gM>UNje^D<{n9kTxf@&@{~C9H1< zEL~vk6DY&5;!gW~94t7_d+X-)4{1eR=;l;^M_smDCWf0m&yF>$4xhV|vgLb`UFi?K zctT>N<8>{sOB&KHC!?{H{tY7(-!}Rca9Vc7%9ltCMJbLp{sXP7Fsr4j)qJi)JdtqKo#V^9o0Qu(fe{+ zE{Ft2e(FVht7p%a_!@B&-+A1+DAo9jA#O{sH#kCTj7U58+wrn5MhH1oox6+V-nJ$m zkXsD(?zSm=oclr#?#Q;QfXNT2)qKFmX4XXiPji4)UwIdI_SH~NfVU`;mfg}{Qd1or z{*wB$bhVo=dPthX=+2t?3&wR!$&m2wb~MChmMzyJpp*OBabF(%$==aT@%PEL$AGQi z&;NgR0FJ2pyf2&1obB9L$lw9q2k`CO>u^drt`20YdB`$_+^h11e%JB>xi9(?Oj-E-e|>=(l(pRj~JKL7PoqKT~$NrwJNejU$D}GVjoIsFJVGE8t_$q zjoRG<1V#sh^vdhjv>H%XB&UIBz~HTQFi|{0ol9C#X+}-NW;8@?vp`M1%b3@LuCIlz zpW%~gNywXz|BX$)=X8+2X@P%;fW;N5`KkmIhY?(KS*J>_Kj(3UrqLnI+veU7xZcG; zy;(VRF^N(T5@mCk0(_!)3T;~{Zd32q5yYkKZlUVtd@f$)Q`Y9r=E(Az4{0+mX$$2w zJSDK)&;e)Bh6=50Q_oNkxTsO0Ko4t6?Ww+1-PvE9jThT*R6+Kf+^gX{tHHcUovnd$ zsDX8m7Yu8QMc6_-0V&gW-K)_$t1&{t;e-DEv;q>H8c=XvqgE<8>t%z{F~3)1#%v?t z((&toor1aZa!K^Nn}?0Omkn_5l*-7Uj?JJ>l7e(C`JTrR?Mwx>o`;RPmrXi&=(m8@ z9!`)VGsAK(o0RqKrfod&$}b)^>r;3N!%Vkijks3ZW@SW;<3l<&4_z$++jkibK#F@c z6Be4Q2|_)42vLHJ)F~^q9?)|+j#!-Y%HohEt7|jS`IN}E}yzvF3n<2Qn2%U zLrrVaa=fG>ksWHJ9cujBe8>!d6g_P2U=Q4igB*DF1Re|F9cE-45MBD`c;{N%pbVQ4 z5NI8)erzn8q@=m?)Lmzrp(pk8it@duF5VL3F{_@;ExtP7WroRG<;r%%a9_MJ*?Ir0 z*M7@H+W!4JZN!gjgV-DvWnnZ8RxkTXJ?e7e)Rp1WN3#C->(P*X9xp*Pk;VwA)uz$8 zvhQiZI&7g<6s9C?!Bdi|P66kG-G1RD)Smo{7?fBZum5#{iBPmAQ84<~K z@SxPa$jc97S{-2q@9DL|?0&s2)l!jMW6*j+5d40soxze6pWJi6nOpL54#|}Tv#1-j zXeEC`w}T!OL>kgk*(9S+{IlK9$17SEWxB^K6(g}K+cf|v0n9rizz9Qe2qE+V`Ha}L zf3&4og%kutl$~W5V{s1gfTnY8aQXG|RTt76iFfz0 z+&+fHvi`JTFboPA2w}YwN+q3H%y1TC6v5sI zid@X_mOKb)tt-`)P7K7*5-K#`>s(Ta2dK8P%>LT)%V!ATe5}kxny?12L%UEI5a-__ zwfthcx1lhNFP}a`j0VH}it3q~c1&0?J8qNujn<@7>{)>l&<;8<60`{N83G1%tpL_> z7H5lI{VG!pj|_#qz-4`bj^(b-4hGfL6z)C*<}zb2eSqjK^wXB>LrZS!ytk~ZSQPEiQ*ZIl5RQZRH;2z{2U zSy^lKI5^)xF*??Ol@hcF*kH8O5MCQpP4*DhAf5C97*x&I@qF;7TFM+aR1loZ0MhbYzIldk z)TVuzlfbj#zlUa78v>-`kz|#S?8Z|RLhv&LRVd8VbM^CrZWLStS zO!@upjX?k(@ehLxa(qlQ7PaKD=*!pWCED>evWP|e6jjEKw2o(zw=v!0#<6J30l76g z?K9EOF(o+@HOIqw`cDV0$Fp^>16AA$Rm9Lu1Kq{WB~X3(6WP=1b*75ORT_=dM_W_c z!G6dey{I4hzA_xW*qTAgbYzVb+@rVfniw>iUW1E*Vo55o{onyqEMg-!N z@cK_QKEC%}sQP~2hho!L^WLP8_4`=$KLm)N4-$=40Y^}jEobx@N$Ynh2r{<6WS)w< zeYK))UiKcj_aCPeB1W+@uu?OQvGGh!H+)#|JZ$TBlq{@oUU<8Gr)RdOUO&IgIDvO>gkUkEk3z>yp4Li1@Px7$ehczr{E_qmDZU8%%?QiXd3qD z*OTsE%oqnR!d7>}SDA$<@eEA0HO(^(ETan?7D-?vG)`z_cXZuKq3ZI6F8&s_y3@P* z19%0~Y27qR?mcF$0+}unJq>riSIZ*R?cmh;;VGDlL@->b*()k%^(OLWFd9tc4~N#7 zDokFawZPO7>-&-G_q`@t`XpExWmx$Zu!icmvDri`LQU2z>D>4{F z@kr8f>n$p%B})T32oF-JRigx6gBpH9;`94p#fR2EIjHMMBb!`G7CRej6B8X-O@fQ`Bs+qj+LpUfqYOL%VzyOm$w!k z^%S}0uel%?H2K2vgy@xyXNv0W!MdqE2+p{NY~yBcx_cuyhH)~mpIMr)OHrmt($_m) z-9VIc;vFAiImFmqhAG3%A3?w~LM@>%a40jKdbK6ANU#dEp4h_8QD#UoA6-JQP5eJq z4#Un*>!*L_2(mOkxmyL5a{D|u&%b~&GmV-?lDQ0yV2W3Wt7w>PIjUi>UQk_!FwfwP zE5`l@e`vWg`4Rf7Qd1E0kR#4d6F32Lj8FZ-rKFjlkP;E*z3GTPD@wS67z1J(1R51+hHbh0Qd4+`$z@&+_Nvb?w>UP@*iD|trSC_p$-nV0BzKFGa ziU-R(qJ#81Y)N+86>)^e&XjP3cjHm`>ZlT~;x({uOH6@H(T18Ia7@QWaP8Y_OCjP0 z8Z2>Ye;Vq9!3wV5il!eER}Ap1g6}w{WfsTOP~092DOKA3j9IhUxR0W!|LsY{Q^XS= z6pyBkY;o_}VoCxn8C%#g_)fxU5M_OR_)hYwpc{`^I_FM3&1gzRKN8P2zdHn8zNk9{ z52wRygfhQ7`zq)z@Qw?NLs4J6bZBcfHHLzQ*?$h<=&^`~fc3e+hW=>zr__0JTW7dT z?wzu#BIpsLt|i_PqiOv&MtUO9qa$15WbEWWD(>jm2>({$2^ws!ZyP=&t@`?Y_p0cw z{4X6U`6oaf?=Jt=@jkKH$VT@6AmLW1mF+k3_@bDqtpD{dE6~&bSn;I%Z-}RIpcUx< z4=YBE4nsx`p-#dYlkTj2C_E>pZrAZfR;_!D5ZXTZg1FbjzcFN4&t*8U5)DfZYVp<7D z#2v;9=hXIJj#J{+saB$e4y@4UJ4Lah%3O$4?}=G@e#0vu z(^sFHtc~I{7KH)^kHIp0G+CO#vQd>`F|JHQ;v2>bl`)iGp0tnRoIwU3#zTT>p;&QT z;&P+0$@&a5O;lM!E&BpTxkW8iw}^&e7!MGf8p&yVL|v1gqK9oW9ExC!IE=^Ge?C^8 z#kf+Afjp|pOz0ZU8Li(|y6ybG$>L$yy!YyTQr8HOsUx9%=djnyI?FEHLtOB)RXg#y z;rSB81ICMbbrYWU!K{hU+WC!=}%e zdP=e@tX5H{SPbd&W#YPrxX-J3XpK`*q9D@G!%Tz)zw9KN&D^%RcW~Nz;o8i6NiHcZ zbc|*eZ(LYLf!Ag@pvIgd2;tdvqpKu~4%#+4_m^B{=cnL%?)V zPU%%em`t`-YM>U!gk^wJ7T1c(k9?_;_NOzy5tYEiJjN+6Oi*Qwwm8U`{WM^kANgng zqElZLolp^v^rFd+T%VFEH{Shrl9V_tYyU__BZ`?aJ)tO08HA>)G?9y;Mo~{Ag=xkZ zNOwMKhFF#i4)qy`xBxmfDSklxK(QA#C%e~q-|^nqBCbMqUFK< zld1Jxsxb#DL+YwdOQ#g8u+pfgNR9jxwHWrFs3b_Cl*CK*ROyJS|FS^09%w-VJk}oz zX1XGio=G0oqIS!@P?Nnhlt!|bx+3YI%(m538>oNQ7Iuoyf5D{ui|+yCALOmB$U7GV z)p@B(9{iA^@V8KCo4|EpOisZ>KDFv^VrgZO7#XL+m`!Q(hYnd#K~587ry4-Yz*_LM zw3!Exa#Eq>|Da3;_D{+@>9gjx`XiZ!T#Di`aTE%eyn+@5zaq^R_}Il_jZJu&B#E;# zv8bD0?WXEA-d8Bg>HH3qyH%S#MbIXf1#m2&ov)-At(~Kl4k70ci7gxu%gzr)Vm@)N zh3pq^DCr2>W7$(EsrP3TMj2tv;Yn?78Wi8OhhU>%aF5#5zVFlemwmmNM*g^U2Gt;x z9d}bloRR^%M!(EU!O)!t0VTmF7Lrw_qd#SP%{U{NoOVUACRs|RUW%a}%IEM-u2dyo z=u~w!3wSbXq=n~TP7~Bx^SA6Z6$D4I<4bt^Cbdo#os<6702Pc6!~G&a2gChY_@dzl z;vUp)LLCO7SWzPPv|Wn*<%Ez7-L_+rljn12-j6EqrVypenBbxNNJO(yO(~vu$I1J2 zBnj|3Qza+3Xc4mI8sQ7&3_Hm0Y0{?jbKSbz+D71oR@To5!h>gG>e}d(*&b*iO5Wx}n>SV+3eO@nEoJKX#o4Nf3TL`$M9|e)1fUrX;XuV`ARBx&I1g*YNyT%!G-p zg6TsfSZFkW=fXH}p+QOeunA@oKTc0K*Qtu9^haqZ98f8RDo`mvQ4l=dkuQO9TME_! zLqTR++xQWifs06fF^buBmoZ)lkKTa`;I<%Vr=}QF!FS^`_6|uyw<+3FqYm)4( zsYpht4(?GM+@T=}?Px%o!xydL!-f^zWr%7$BcLHsWZ#+6{wd_HM@^RZ<4`#7!89|a zz)R+T&Culmo0&QqMCBsMgb$kqp~wcPYOpH}MhvdSm2JL30?qnnc8d6Ansg6@Hr~+- zDc2DT_}uqdXoh&l%L)hSEcmdr=qXvASD!o*Y{32BVaX~)wGuG?3d@&qQ1K&$fzCI8 zRVrB-(^9X}xl;HyTZl4bW?EGgovm;)0$m=c6i-gMmvvzBDg)J*(*s!dB#RW;9i8DT-B#0&8!KiR3%~-sm;o4f{y*uTd5uoxhZ9x)& zSN00aN5q{GoeSPnrZ*FFZ8+ivdn=;nY}YW;^&F8df>bKnI-<@flV`AMiOM`k$e8b` zmG;8sQ`dAO({w~=Vqbx%sBvLWMLDrk(Bh*{ZwQ^%gqvSjq1_mEtpwrQ8#D~OEAcis zqm_a*RkOP}59g{vFGwV_jeGVxnSl7@PaX6?T-IclkA$p>A8XxXj!?G#-8}8H|K3CF zX*~Iyqp#${OCuQ>QaBIEzJIuA8yQjo{wQU|8mbEjzv%RUu(ewGMowN+I3LORoL(B7 z3zkzD7L}^sKGMt2)Z9Ug1ZY{7$Te`95OuB~uEkkxR(bk@G51LRoY*FEK7 z+*{~jVido8j=*0*ptoT(NL%r5q=Z%F0{h6j7U4q8a<#`n^Zh2jcaVhQDi^|8EKvRW zvs)~_k-hu>3PR)&e+9jTUSy5@1&s2(xpr$SV3PL3v|}q=2pCA{??3_(so!p)O?5v5 z-y6n1Ox%g*cT+?&t)a)my!5<48ZP9YNBV9E(UA!y!eVR@LMa6j^$UC-Ilak!M(Yo^ zdeE|PA(D4PJ_%Gmkdis#&+tQzqfENP&RxL2Yf=4JOnfWGhy?98#xx9bHTXO284dz^&ueW*eF?HG7 zC`S?Q4F&1ADN(^g)1G@Dxu0_%*?gKA2-v>n`)t*+(G-Mqw%#>lb;L8|5zo5?$R<@t zJ+#z_b;ZT%^7qKjG7B2=3(;ydcyE|REHzJQr%e3DXV8*?z6e0 z7EDeBMPNhN6v;YE^!ujSLw6xwJN3qF{GpCe+|IHI84eT_1LwOkyfxw;%agNGzHp!* zWLbb3=uo*qeLssej)Ydj8_v zONy(^QxFGHpmp)mGz=ZUo^8%E^K~ua>)0(po2j_};wE#M=Xpo(#cdEMz~xKMF%YKg z4@}wLFnWNpXXPovKmVtbeQbpSQAF#q-LbwG41~r7xDdM=Gv9?FbqzL5eUI4V__Ah2 z^jl>t=l=f;_6bnNdoe#~6}o5}vN)}xi2W}*>k(UPgt2Qsd_1djZ~!i0Imb$u@?-42 zEd5s3wTqijSi2lwtVs4aHrV4M0WQ)7_xNQQ`QyBQq#*h&PAfqo{Rb##z;ZuMRvm(8 z=FK^CYi~FU>eUb^Qm?E7kpYOdAUtT*YC(dTbDVgd%?)4|F$3_-IA&(KWqQh_^#h3^ zlyxxk-@0DLK%3EnWgq+U&LmvSLSJe^p(8kEc3p6^1wiu5=;2B6%se3!moNHgLJRc} z%2C48ZdeE!xPIxC*)sW7y2JI&gz4sFQQt`=eq7Zc0}^nXxD?W?RR*9roH3T$^tm^y zadBmJSx{-yAAnuPud6PWRE~Xg?;zuL);59552PE?UVD2WUi|Tmh<^o+06@Al$1L$w z?>~qk5Ln^^wIIb=sMdHCY-;B*RWw4aCDJl!hrq?1QyIq~>p_cDV+ZH~e> zZIE#LWs3Ca6VzGu^`fk4;3O@v83%DRjBr$3+^w78{8`BiX;OM`Fqf8^tY(Ua`cFt| zU`XDxG-ou0LKeCz3y&_?&%6Q7U`JvI4(4>!2Mz3B)_x$e+mMRzc4Tv@@zNq#8TIfI z+bi)}fx9RI4oOxgpBA8mUFoUkY0@DsA;cI$&4QfKMw@P<-#lq967sXt3$l}!a2Qko zG%|>vd1-Ymvz?V`*yG6&_3b^=lmKukAI>#hAuDFd=m}4hz{7Dt_JbTR?nqKNq2T!H zNPsh0b+#k3%#)%H4Yi&UKw{qG5NoHcmL?qX=+ODQ>QOOEamd$qpLX%1V#H|?-h?1s zen{v)Rvb}0kaO==2w28BvmpcL_zx+vN!S<(MP=m%Ir9ASYM7XO#{wt3fN*?{@(+2n{+WpB^uO`wMtqwMQKlA5zTj z>zp=6;9xw~)ARiv7H1$A3v`Syl5>qMvmJ<7n*>YVEVL18mL%^`qX;?7z9CLy3Bd~a z-W44Cb}dasl~!rCV)AORvvT_!&rz|WHn}9;>*gI($~?Kj72E1dIWS$6KnA9ZY+f)N z$VbHnlhPQYzSG;Q_bvJP*)a6fn^B3MmarzJHImUSE@wwCVQ`yZ2$GYgtW;8x{>6!l z-K*K3mxkIo-iEqJ5*}necYX+YC_INfW~AO$5nx{Ah|vJav_dYz%PPuCOIxcAq_m_N z@;45t(H8+cOEh`+^ph_OS``7Eh1n4A zcI>B?;)vk=TEnaYlnKz^->GXv9fHoRlV*wqS2{9`vH1p|+!?7OHXo zjn{GL7||(~D4z`%5v)!YFl8-Wp<=QomeR%Nif}7jn!xX}p7n|S>#C1^?iVeOP=cdg z=|T-3kgHzvGsXLrgjNxjT_-wEaVq7u!0mDhwUAk*XTUGuEs~C$c2!DxH(yTQUvWPJ zbl;(sjS8|u5Ef-=t8fBSv6vtjuT0cra%dTIs z`Gl1oZ!80EN%;t+BCM^k*UFs-@XUgo0kB@4k%DmqEMvXvr<^0y2Ha$NN z!k${d|4PhE2%KweBjv)E7?cGv@*edpwHNfSbLpbhv=nk^{Dk|l5T-b792L$0oqV{( zA3PSY;=amTVoDp}6?0OL;NX3T*jiaK1W=l z$Pg{MgP4F}As*12Dh~Lx`ei*jE2E}rmZ32Qh(k8y!Ij(4M`SjGiLY5aDoJLT;AWNB z$dE`TkEUt5_ql$&w_fTj8Kbpnd@gR&|IL{GVqky_@l4D{>u@cPk4eEGK)iK9qf_fp z0AUFCL$@J799RYc!_rEdrI{k5y~7O<2cFGQmxxixGlWL`QQ5O6L5UiDTF6LPR#Md3 zQ)H6BGI)~;0!vcUQ-*l!JP^qg1$roP)(aY=A3`y0p}3m5u+JzBow-=x?W?(Y1Oa$Z0FM{~g< zAqj&%a1f9a*#Bz9oPp1z?_Zfo{yMfEC|OOI1eI5OHapj zKfhXL`)b6&k{TY#LTf0<=a2if^Zn{TkkgRSIs?=Th3e?Yr@ckJBq@Tntv{k89u6YV zrh>QOR|PjZ;K8M4wB#^SQ(IBu$_Ncogza*3{JDOG>`FJ9m$8Mz*)B(#Zq-Kn^Unju z2VN(gq!I=jq(LrJYCN1{l8|*}vu^HpgC5fMM}Yee%!Y&Mi>smCXy>2G8g*DF#U}{K zsgyWD*uxnL@sWa#uR%qtYuGql^bJlS$3}D6FVl$p)CpK#`5{yk**qXo2^X7a@G$t0(Y#(rvQQ8?SBo)J1Q|z^G4hZ$ z%Iv?zA~$7@w!RhShfFcf7dPj-h|4^*#t&Lgbn8=oq`C(%EUyi(48{`*Sg$Fq2`wzF z;Au-DrfgMk#lPJOBQ>^4N^Qr&@?iy=G&q#^C1SRNSo8IVyk?0=IN=20g1tNrBWIX2ua$={lR;sJoRQwPN zNqVjtpc-3^qHkn-zY&+YPz&1S%AF}CY#{hfKEMGOJfuj3m~eH1gJllV^6`d?s7*Xu zzQbUPNxVEah2rMkyBm_u%CqQcM@*y;3^9#5w9a(vIpZ5tY5PsoBE*}C=wZ`9(mj`q zpl;6($d)L`bEvrS0BvX9#hJJm3_5Uv#{u9>IqH5wX}*iZYYBF9F{dx&?%4r|<|Xf2 zxBES+ktqm&RG8IhyVgZmpB<cDO~N-8o|&hl?P0C)Wgwn+7v zBM?gsZAoAc|FXFbhaO(T7oG6=g^ar+oI-rvdgvRDxRvpN~Dt0JFDh zMzSG-kHNaWd?XWDxzkvwi~pf6Nqg(jr^b z&-JdwRPMUqrE1I%#cgU+{-?ZMiNVAc6xWscHX7uV`wls=8T}~{2>V*ejd8;arXV$V zk>$t)yuLNcO!hq>i_`meOzlv1qt`_NS?aI1o6+`+2*0EKZD5_k?;f1_<>aW4F-j>Y zN^VcqwB!kxT4IfAx_X8cg_TJVjfkK@O8{?tnT@O^GXQUO|et0uXyV3=J_S>^Tsqg1sE}0Vl2-`9lrGepx ziNVUegiF5KDAuopd_npg9y3g4T*1~TeS!jfRPqFFbUp#$nkKa0NF#6+bBu!ejjBQd21}fcXX!8^jzBdRuK|R(+!j*8x!tZbVws9<1_0nArcJW?U z^wSiefiSqPqEg_bydSgA#vc!FgxYOi7#gX>=;+#i^y4`)41%*3`yBEUzw}Inn$X5P zqeup#?_{7JZMHINFPhV|tEYD4R8hhEcvrh^y6Ry@!wywa84t$bz)jS1r8yt6F$huJ znvrNma}v&lpJzmYv^Toodxl5Bh~mX-kV)a}@%8MaP_V@YRWwNF^CH% zv+0;C9gndb+2EgE;jrRK6^NDFn6p1eD$~30L!5<+w~hoJXQ5)FA(QQIjE>tIXsUnv zmdV9yUi$7k3PmPUq8iPL9VuL-;CQ%^e`wNmu|9w!EB@fcMQ2HB&XHL|k!`7jVp17& zE0bj?omRzg8W|g%Sq{2ZJ@Acgu5Hg9@@l%mK_hUftU)gzg!e2+$9}XFK_!o^u)56@ z*pCh2{;fOySwDc!161H%)cjEG2CQuN@%tr=n^zBFU2TOfw?O;QMQNml7c6_8iKiPY ze!952llI*N52I(ny(3up_=Jvnx7$&_u35Hy?#S8M-p1k(^2P0a*%-6IhY~i|(_*5P z2R9vdCo}p&-iRskQ2cg+k(@IV8*RKDh73?=Gw#E$w{<(|vh@_Hqajud{blXwnhYllUy2{P9~>cd0_H`n#%z zj)w!O_kyV^W7YNh4v=8XGYvnEzD9g=drj-5x+wFKua&6$diy`xswRt&wT}WjI(N~5 zfMEXnlytQ;vomA<>&W_7hcj(?hYcet)B_`XRW>)}i_uVff31w@iD&R-{t{9NP6r8YSoB5&7?w&|_rJ0zQ2P z$~VgwVML(6!=2>bp0tmYJrPNEN|Bz%u3Ef<-bYsOcEMhdD3&CzT4?ueR_pZI;p$+p zJz=EUXY2Y~kKj;sX;a!6!$|wYzz?T7P|b)i?h;~Tk%FKTSIA4OJ2n|SQGR3H6oh?W z*_wyhfI+}0ak~Noad{_7Anx6@W*}&R-DnxgNs^+^MAqQ(PI*@OHC@&%i?bG1Y&Y>n z=*1!&HV6jcOiKM-o%gj#hE-CUJOM+Dp-^t_aY!hKNd!ekbNOt|1Lt1tLZ?3gOoc#97A(dZv@u>jYBOamJS-8L4~0lO z+`w?+QufUKNwTK@1_E@U-B$u(E#ugg-mlLG8)>rxRg%p5pI(lZ560?<-gF`QVBeh3 z-j9DXzx%$>{yIKmd{LM8cDuiR;UM^NA4VjkNa;d05XV6TE*GO3aj=fLeIz;SpDhkOI_!wL@a4km~AnuQ}KUHLj!Q0zD)-&`kZ+WA?z9hNK;+rB@-U%x?pj$C@&j%M?-xO>_33c*+iLMba5 z#sk5yC+RPyENi;0#1bOz-Qou_XYsi{cVoDV-G z`G_%emLgV`Cyzr43h%$F?58GochD^@tx%UpT-{k!C`I5XNX5wP)L=cm2bkcqHaP%J1l3BhkO>uo^_7aaLy(|?VJ-C(@LxNEpcxxDrc!koBP>Z zSkq1OeK63Wd@FK=8_RV+D5$k%yPS)`a46p{=8#a*_YtgvSfd6tv0B(H>iH>&W!>hyAL|vPV7){F-f&T*&nI&ssDr=@#KnsJP|E+p6}B{`?Mr z_0Fn27cef)>eZFK_K&_Ew3VHs3PqIy-^8$8uX!~(ClnnaMmvT5={&_^FS#}~d`R)@ zKB8lA8r^)sLr*yNEE4*nUcNfy)7WW#6azK?YAS4>nIt(v86>!_bU$gCAd zPYau#Q^`?9^ohkSo}iC1K*cw49?YkgSGxM9BSfL`BJp3yq!@D=v>rPox^x z=2&g)cvo=4_JncSHPTFCwOlifD(K9Sb|{z)si88+V@+u&5QuWbjhRDR4LTIkn&-jt zQZhyj=|1%fM_2*kH1AgE^ z0kcm=D_1kSzdrVAq8s1_Suj9;`if5^PL%S6V=OA8P@@*W)k?p7 zhf3^DEH?hw4)5Fb_~JNrY$yK?M$EwnXcL!qafI`}k^m6@ygwGcM+vzI5rNLGMX^+| zkkoQ(_kbi-0LP}An7}yDWyM;8P!9&PaI8Q)tqF&H8+XKM4n(gU35>GUNcE;_;lPt* zKDMIlTlZ5Z#8E_jVXB4VF}kW@%-y04scVPJGIb7KUjHAu1SgM{dw_bVfx3wPq3iGN zu>Vo_S8Ldq*#=;KjsmsYqd?khS!rfLQ=s{T2Dbj$k+dp)wl%y2y;D|dySGpU9G7jI z@Z+b8ogZ>ly9ia>e0gbQivOwOgA>=e#hRae3Q4O|Gra`MIcV|Abkd=P+Xyic zGTaW9GKZQ8Mid6MbduDmU|vlolU%pPYh#PKtj_m^=RVRdY83(r@_QrOVjLpa?FOgJ z?jXWW8~<@;y5=r46P~cg^ahT|fn(e?saceFb$Kw3M+Pat#@Y;RaSM@KzRMFFE)#a|Gb-QCB@K|an`%O_|B$=eY`IY!3g z>b~PNRZRhd88-Hhgz{XP#)&rX?ef`o2ML=p!CM{}XDx?YR~dCNTr6;Azm-Z(4E=C$mV z$qapUj!=0dyBwPPR1CV`4)41U;1%-M>rGJNHc|wJ3)gj!PT7tq!?Eo2%E9~3v{S0f zpUSZ7XlUQ&+WmyBKK9<@W`Cn@EI^{s)s@j`@_nbiUHdMT5pByK!yP{Okh-sVlU#Rb zH(fEKK~F&LJv*}CPPl8T5wXiEqcXxCVhgQOm0$GA#szn9x8RnoxMia5)Lj=&9bT~; z2@hA&iD?spQnzs^;Y6jl4@sp-#G#=$e>u9MUavIZq_SMVO0L##DJh*Xec^onIjTS` zTsCr=l%2?d)|icc7Aw3wkXM$QhxdFXSss#`Qu-=XfvZcwf9KmnhQBu_0W34EUq%qk z1bv+a#5c%T%SbpUX;_C<272DFzn*4_c`?6i0XBpncc>(}He;_Mden6*(O;1?_U6x4 z7TiY!91IJQP+}w%Y(^n=Pad|QG`uJll5(pLS70t+p9lA;VXAsd=8Q!XL3{p6`g4Y z!X3l%XL4n;Q<=+gWY?3ub6&JzuBO<3f zd^>{X#-)^VV&a-xb|g9%?+%_K8M(I`>v!uOg(u7-P*e>TF(bLZ0X(j{AEHrLzgvti z9Df>jQ8k>zjKmTJ;3M=%OBz$p-U(Nx^zEvq)%HqztUe6F+VsrrUH9C`>5Ikm+ZsoIjF^LNQDCcK^fg{R63)IKnub zC#gc6Gp6AM>((b99>8`gX7yqY#$J)vfT!pln_;N$NhL4zvl>;Cl6yLD~3+Y{o`V_;9pdAIjEuK9WMhTkA(~u`w*bg|apjWuN8^S*QLe z*#3b3=ZsZ2zGBe>2?7#K0s?{!oUwq7yZ@S|fGaQH^=WTpWy@skXl8MxZsUlqh9TJH z%}r}JgF?fI0X^8o)?du{nI4SG>U(K2S21IqQ>b*3JbEUT(U-+kKu*F7$YYp*&qo7> zs%y5B;(Q>VvbeA$GzvTh&M2AnEvEp60r>6aRxzw%aDu_N%dPdd-t7A=mswu#6Z^uk zLW7~XJ2Y=t76foJ50QuF-YNT*T1TELnM+JASCG@Tj=?<;8!$_R$-<^3W9?4c4(T0u zhUh?!@lcL59XM=W0!;rP>%C5=GZ+>OWCh~Qk2>-h;4BD21?f3X-hrRc266-XMKc-H z)nZP6jv*}J;)hr+sd3==O!8_~clsS)3bPsqCxG5LGiu<<#WTK*G*3Ovv`%5)8fkKz z1~V}5^h=f{GlB8=1u~5E+4k_)s3KOBh&pblAFdSzUZBQEHCxoFye8d4SB+}qdEq{O znyrezO%H{{@vNib6(9}6JVz3>)n>Oh&a1Qn1<*Ujm^W;UpH>X@%u@K$u54i#9Y;BS zZzW=SLmedK-N8P=aS|g5d~S$&f`7&_C}zOQqfg7Mw7cc05wt163q#lFoFp7?N~l8@ z{YJ-WQL6%z%(wh&bG!aB{HXsC8axHlTFw}SqC{eZ>9_UdQio}3G_z8UY^wJg3re8>D=heEolYFBKH&m_EK}daEPskqjy4r{9``w>( zQkzNG$z(yAtKbYRJcu-$vY2$Sv-c{I^u|gts^UZn%B&?ISyO;q9|uKeK!C4On}>SKYf> z`h9<6`T8r;>!($*z23^e*nHIBmchY*9Et21DJwjV7^g@U@us$EzL2#2aBtFe?{!D{ zPk)en|LQ^Z%3Z*VuNFqGbO^GNX}Nm+&Ho!YMr}`oew*&z*6{A>4yW|XqOZFSESbGZ z`^wW-r!@PYFQ47C&#C6tx?831q(c-`R!(|7XWbjCUEwd^s2x>r1m06@WSg;e;fJh? z@$V=5R;GQ<2^Oqd#WLCU#XQ5aPqaV#%pJ?-o8-Do^NaUa8kJwGd7tuNu8=evB- z#qNr@m*z|{_XK+X-IeT(yVvy5pXm*s%WsEmTYv0j;1<6WEFaWhaPz?Bn-%Ai-S|HU zsj>4HoQiDNTBl%GotpD@(~W%5n|x;L66U>l@Muoxl8eF#OaIH|WnWO(F5TSujxCw1 zTeGM~FhcpTSXd!K(JugexW@ZzQ;M4j1Y?teBUOd4~A~d(xBk z-qX65c;la3>W`l~aeLa~XHz(*y}heEr~RDonf1cA+n1!J^~y}O&HOZF&hBOB_EcYc z({!kM&CzX>E*Vuzet29| zdbmsMW$fy<{`1k3Cnet8P+9$b0_V?j#mcXaIIo;3oc_(%%HKO!YxmYexBdsGGPkO} zvf_IwlV_ov-tx2HsTW_#2L5GDY*HBu8nF`pjXS;_vJdcPWD;Qp4Ucm$teR;au{LPw z#Hqj*>M7uu8>rg>0}Vhi28L*7;9ziSUP*jNWkG6jEU0ycZa}4)x5E#h(tE&hWNw&l zAl<-t3}^(TjSp_xqigJF;||UQD!B;MD2Sr*IZy;%_ax^Rfk&dzwST#NTl_UpdkzZ& zg8+*5dY}kgdtyNWHdoI$FBoXcsJlYDb%fK{o+?A_8H8b2-!mlxYcc z{ph2{2>sV8q59FskkO4m?|&nVINyM^H;!%qdPf&w!16|91F&^_(al2dJ0i?l(1dIj zYEKf~6!fkZ!j$dJ&`?3?c%kb@Zx15$2el(*G1S&!fHx~J2Z3^xAVVTBd${z1cmTQI By)pm* literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/CrMixerTweetStore.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/CrMixerTweetStore.scala deleted file mode 100644 index dba016e6c..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/CrMixerTweetStore.scala +++ /dev/null @@ -1,58 +0,0 @@ -package com.twitter.frigate.pushservice.store - -import com.twitter.cr_mixer.thriftscala.CrMixer -import com.twitter.cr_mixer.thriftscala.CrMixerTweetRequest -import com.twitter.cr_mixer.thriftscala.CrMixerTweetResponse -import com.twitter.cr_mixer.thriftscala.FrsTweetRequest -import com.twitter.cr_mixer.thriftscala.FrsTweetResponse -import com.twitter.finagle.stats.NullStatsReceiver -import com.twitter.finagle.stats.Stat -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.util.Future - -/** - * Store to get content recs from content recommender. - */ -case class CrMixerTweetStore( - crMixer: CrMixer.MethodPerEndpoint -)( - implicit statsReceiver: StatsReceiver = NullStatsReceiver) { - - private val requestsCounter = statsReceiver.counter("requests") - private val successCounter = statsReceiver.counter("success") - private val failuresCounter = statsReceiver.counter("failures") - private val nonEmptyCounter = statsReceiver.counter("non_empty") - private val emptyCounter = statsReceiver.counter("empty") - private val failuresScope = statsReceiver.scope("failures") - private val latencyStat = statsReceiver.stat("latency") - - private def updateStats[T](f: => Future[Option[T]]): Future[Option[T]] = { - requestsCounter.incr() - Stat - .timeFuture(latencyStat)(f) - .onSuccess { r => - if (r.isDefined) nonEmptyCounter.incr() else emptyCounter.incr() - successCounter.incr() - } - .onFailure { e => - { - failuresCounter.incr() - failuresScope.counter(e.getClass.getName).incr() - } - } - } - - def getTweetRecommendations( - request: CrMixerTweetRequest - ): Future[Option[CrMixerTweetResponse]] = { - updateStats(crMixer.getTweetRecommendations(request).map { response => - Some(response) - }) - } - - def getFRSTweetCandidates(request: FrsTweetRequest): Future[Option[FrsTweetResponse]] = { - updateStats(crMixer.getFrsBasedTweetRecommendations(request).map { response => - Some(response) - }) - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/ExploreRankerStore.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/ExploreRankerStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..945d6005caf6c3f1b3827b3723a9138f2990c5bc GIT binary patch literal 37047 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 literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/ExploreRankerStore.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/ExploreRankerStore.scala deleted file mode 100644 index eeeb62d27..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/ExploreRankerStore.scala +++ /dev/null @@ -1,28 +0,0 @@ -package com.twitter.frigate.pushservice.store - -import com.twitter.explore_ranker.thriftscala.ExploreRanker -import com.twitter.explore_ranker.thriftscala.ExploreRankerResponse -import com.twitter.explore_ranker.thriftscala.ExploreRankerRequest -import com.twitter.storehaus.ReadableStore -import com.twitter.util.Future - -/** A Store for Video Tweet Recommendations from Explore - * - * @param exploreRankerService - */ -case class ExploreRankerStore(exploreRankerService: ExploreRanker.MethodPerEndpoint) - extends ReadableStore[ExploreRankerRequest, ExploreRankerResponse] { - - /** Method to get video recommendations - * - * @param request explore ranker request object - * @return - */ - override def get( - request: ExploreRankerRequest - ): Future[Option[ExploreRankerResponse]] = { - exploreRankerService.getRankedResults(request).map { response => - Some(response) - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/FollowRecommendationsStore.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/FollowRecommendationsStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..491824ed16e0b95063ead33987d91f5787264044 GIT binary patch literal 37248 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 - numTotalResults.add(response.recommendations.size) - val validRecs = response.recommendations.filter { - case Recommendation.User(_: UserRecommendation) => - valid.incr() - true - case _ => - invalid.incr() - false - } - - numValidResults.add(validRecs.size) - Some( - RecommendationResponse( - recommendations = validRecs - )) - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/IbisStore.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/IbisStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..198bef1bda0f1c6e4d10cd2cd2bcd072266a36df GIT binary patch literal 38589 zcmagFWmp|swl0ioa1HM6?he7--5nP0EIc^D3GS}J-CaX)w;+Mw?ssMH?mpdp?)|<$ z#lx%`uZ&SuQ)(_{IY=l>FfcGUu!?kU?P}HHgcNWvuyGhLFbq(uo;bkK&BD>mNZs4X z!qtGu%fY@WML}sz1oiXzD^@DA5Q(oi3RcCg6O9u?0-i)|<}HuTGV`fC#N+)WU!=yY zaySfALRR{{KhavfV7Fg0m7ci7sewV3Rv{T=sbAqn0n?c!_r7ETsmzk}9^w2DOkHc1 z-^Up)aF)Hg0X`%2uye6I-QX1MN3b~R>Mxq;#KU25s)FOt5w(T0-1(j4PU@=1qttu! z*8Ahi9;%-?LjCnsMIibaV3{zhobEBraiEbPA^AungN>w*^1ev4t?#Q2avZhII-Knb+ zr|xfa93qY9b1#mZbE{FZ6!k{+_n@3x&|*a)jai{G5Wrq(P$bm* zb@Hsl5hz`<+TEohVW5rOM|60;XJ)yWS%|+(Ut%AkWva6foWInky+wQ3*kQB|mkQq* zMCzr!8>(ZU5q(RJEMh@*&t<7eB1FH5F{DS^a5gJiBPL-)=OB$-7FwQ!c7y0fqvh_; zI0t|MNXa*IMwM2#{j~RtdJt}QlQs?%IgWQiQ%hGgXT{+uLY8sHxDl5*oQbQ5Z_C1N zf9g=S)~mc^Itme2QZw|TxPh7KL?7g_Y7{7)ZQc8Hz(_$prR6hi>Ao4F65upL^qb{d z+PQAimt}vru~|K?^Z!gx#Aie`8_;b&3rY|gC_&}`Gi4WmlPj|sz{TRvO`e@Np*X;T zDtYfGIj^7@d5sDuDMJT-93?A_8MNGX$HA#!Kas;VwY68|pqoeULA1p`a_uCv!QIpX zX%?0kMjW1S9%LScsDt&kW{SQ3oFhrcTb&Zxf8P5vcSU8zXExp&t%COfp)LnfCX>}b zeldcNe6XIAWB&6rX?Ck>N&b>5MKtf%l(BGei zj8zY^ENJRr*a%KN9-%*=fU}FJq^o+iYO-xdow~X>Z_Ri>8dQF03IBkc`Z0g@w5&=b zI3I3Z&tnrXSp02detvhI(Ume#*v-6^y$<8Gd4h*J%>?fmfH9)iOU$CYu1& z#<~mie~iH5{mgtD$=|^L+&KQcBx(uUsA#Q$HSt(5s_eXh&{P{Wa!<)-D$uPQ7`QI(Ldwbqs1Wix`DpZ0E#by8E1kfk6@UfH20yen;JRwATu6iDz{ zjk_);t)XlYecf*B&3~cgSvlz82+Wa-oDeZMUCn)X7)1DqV^*{+0{ng}w)}!ELANRnt4kQ4)SQkH@NFD${hOQTLsIn>q&9fe)z9aH>^h8O5gUS)b~FnA z=~*GkZxeNuvb#)Gq=GfW)D)?N&!)uq^k%eYT8D??OS%S%da+o!oOoy+lsjR-Ht>A_ zHFUC_Ag=N!58YkjduzN`RHjP@*2C>bcR|EsPZ%CxYXdw{+9|yK>sZVLQBbS>R$7YC zl-3pne|Q#-hOfO+LfYV(jBv5ir>@RS<`-t73;4{(Yy9_x+uy|hd1H*()60#)gMpD6 z{r$jt0$j|QK~Jr_1E_QQb7!3DI{?<2vEP6J&{mk-T=CU_CkB>;!0Gi^s8o^gA=%kE${oxB4Tb=jDnuKa<&w6?_?c?AE`TR~M^WK>lZ3ZqR8iPr-YFk}?2mX?2CPysyqvlN%mHNhUH}Z*NO?b9`UES|J zn^kBJ)d|s z-)OvYIJ;&?Zau~~7yN@rACkLeKd#hL5yM&v41D~M$AO?!8iVMU0!FsY^8;^%7vjWi zXix7oGd%!D?EOVp?D_(adSDt0*5aJF>u70dQrJCt=ZG)|9SRqMvs4xhO&%)SR5F+$ zja_Dt6AZCvH~45I<(CAefj@fRo0WiCV3Eymn5|jS2PKSHIlCjdK4$`x^5Lf&&PX_D zjCY<^`b43bq(NZ~W=uKGz~v*p=o@Hvk?TMfxU`nuvi%OB-HRZ<4DT;*JxIH>?My^ z?S8&V0$5_A5jP`qT_s5y*#?l}nl3*ENnXV5Az`Z(D6;IeL3sa+M3CjFg-^}mg-E8) zfTC_2=f>%x4JsE4L$`(v9F2v5q*2-XJdSw2)C)!E9FE?v3m4BW+DIdP2$%m=J|3#x z!1iMZ>Pm?Tj%11voXUj4jhOnyMfE91fKm9QkfSUEDwFtft}*RY2bbv)UvjYJ8%=)R zE#-+^18No;=iVhWTCH}Lb9)Y4{^5Wmq|dr0r=GHv|ykw_w*C zjclT|Ch@pZBB@~KdX(@6oP}&)9o#>BN>GL~9DWj%4pJi8OGt49mQxmpNC}W{#4V0Y zoV?1JMe!Muc6Aa4RWmtjc-6QSauXEP`8v=X6!oiZ>>&Msx?-+tKoO}pyP&QX_@VK2 zKVlr82=S;v;gPy5s~OIUkF>qk>$VuFY)epEa}K*~m+peAG_^8s%>~Q9@^$c>N@@<< zyK0Z4l;|pm}6l7jV<`It-ch7 zTd;1r1k0=j7U9kdgCS+2n?g$Q+6go(_Bjx1UcK*YfAUxjI`6Mr0@siELmJL4kaF*_ zW5j2XdHsuRgf-at zdAi>|iRe(YJ3cNVOxU4L=zr>UW825k!Z1=lvi0pIqChsMi$HJLC;|JncE#UuWZZ(; zaUzOS#3OzVuCxP~z35T96+SHa87HeXKjml2R7nhIH~(FcqFoJP?`iYUNV-WPJT zBp{_J(vFKP`z^|HdH@CE{FrPnm^Z>$|KdWc!g7RS7C8t#QphW?=$%N!ZJJR4_}Mb7 z3}T)T|C-}~wjAsDo1%-mje+BF_3eDedkfI~^%X$ddM3R6yNE_GP>GZ~^O8#Qb|B4W zZUwh3QreR0uD4rERmxGf=>W|#YZk7SG+RHL@_t;DGfCIF>#|%!*&xP3@8vi+c#W;M z+n{_xrL+8FZx21&u`NLi8GF!XM#Y_K20ekuvd024{Jq#sgGybCoaTqt+UTauPJ|Vz z#VBy2gv?0D81m-wdx1yn%o3e34I)MKs%iP-c@Cdw4F-aOcu5v=9wzl+GZ6>GQb8IW z=MpWnJ6RR179AXj#iNEVf%Sx{1+LTU&nEYzX}$=+wmVKniSj zA@%uT+8U09`yOh4mCFmgqmyFs3B^+Vmy1p%OswDg_o{(UH~8Yzd54QaGg8r0<*<~C zRb*mL22xv$Rx;DQFgxY0OYfWu*iWyf2{I{_g^w|Hl0slXWCn1m_AtK1(0lQ6?Yk;f z{?2sA3!Zna2KCf0%*UMTgui-W%i4iGrWu#h*yQ1uYn-*Z39pl%F%htig0r)uG$Ivd zGB7SOH0`|%rhaH}IusU=&r5M9&{CmvS|Fc3I@v)NH&vk5Jx(GtJ0YzXxJMRLi0k$H zM&0>UE8TP>m(?+Y-z4bC1$1xs{yahO<>4U_HTyAH&2x{Kx!g{kQQH{m!P8SR(`>&+ zmE9h(Y)I+gY+@rizyIA}q<1w+@ZNa5^oibVs@YdmwMKdlb#oQ|vx#?C0@VWj|g&8907HU>b!j0_tP{5eC7>lbNK`K6FOG#hJPYb+NdslJsk!kPZ zZ1?G{rp-1jdbGL+e7%nE;V96bstkZg-{BSYM_BJmi{-#mCR#pl%^5;g)hr-&<)|4t z2DDyLGD6#w(4;)(DH~T7rXaU8&VM2a06nVq)~^murw-aRg>M}~T-LOKlxNjB zAK&{&)_Q*R>6!(`E|c=3JS;&~&q3*Az1qgc|MHEs$)HGRM|G-==Ku=+{s2Q=IB<@l z$fq$E_B}Rapl_$I%$8t4yySL!WoI-0anyy2@Eu<3aA11#?X4lG+ZASHODKE~=sfUo z(G7DZ?{#I5yZit%k1mJn5I$X7>$buL!n%8ndqatbM$VOQDutJEOj01>yDoyr zmRW`w(JLI4*1f{VwmdqBWZ3YKL{Vt&Nt4TkBjC03b79Ya&14+|@zL2p6M_lQgn$4v zA^2P$l|oo>KcBxL^oJ#3mN-U#{9QoRK_^vP>=!1rns_I^zooZf z&LF-Uw0FF-V=%`CD`R9)V5QZ(E4;D*njaAJ&1(b0o!%8O!L5aU5;n< zX0{fJ_c7!L^M8)9V=J-wqnW|L3^ky^Q2v=~S2u5a3)jC!*aikkyHfT3Jv{}5MlU}d z;zPkkrX9f&JqS#EyK=srvn#OA{r>(P$NI~uQ2-^W2(gB$hNf&qVm*I<4z@DwzE*aU zy2a~jZa}B~InanWF7x$lgL|L{sk=?@T=Thf>g>7$0DQ&u<9|Fj^U^)bNnLw&d_Bt) zUK#yWTj+Q`ocnd#5gxvG?EP9V@aFK|z8S_0TqQP4 zExni-I1EqQ-+Mqd%o`C?|9)fBpzHg*ur}f2872Jg zqzxEAyYJY$KDhPzcv?AXZFC=Ax-(G|5YwI<6Bw6V86a z7Ls@Qbg8^E5+3qk#Ju(l66LuSuz89yF>?B};m`B^Rak6F@KkFPH0yWp<&z2^0t!(C zPz4OVBi?n)U7nqIPVCt>JmShC!FsKPnsw!##$`TVq}*P4We{>t+(ZLi7=2!OeaNqq zD)(sJy}P|v*M%j-z669Zzjd#7ceGSZqzthJICQN0ckAn&cfa0>KUu1#5e+zRZ7`#3 z0l!KT`$^}VlD-etKK7XQ)lMu>r8c~{>4pQ*GAQxfI^er5Ht{;rgn{1C>K%Ukrx>KQ zk?}WmDA2{>XXt!0;SDI^wKc-8bw>U=!u~vA%$*%yEW&UCUf&J}ECb+PZ#G`tGW1{S zfGeF_0)o|^=V#$*+-Eu5N+<9BhUY-Rnq0@FcZ|XA)R@-Qo>RrcwJ(6(hoA4?bbF+7 z@Vndfq_`ewpL)4`?pZ0R-yYTuJh%@LdCM<{-a8@)sP0Tc8&E zBAHa8?3AIfsuK5W5SvyB4NCY&(E3Hp0o^^iZ$?gShNuw?)gL2+=hT4(+vF*^G_4Z* z)Cfe%pr$^0VU;=n=)VJo*FoEl?*$>r(Z2jRaBT38E$P13Q1HbCF{A)1HbZkvu(v}YQon5Q2i^`t9pk1^*FPU7c)7lQE zTRnulcN)|z&OD#aJvrSwzmCYZ~$t-I->?WZWaY4$$sb(Tj zLiHU=IFlYH6^1f2>8Oguue#Ba!dY!%_8P%mmjq&ldaH>btaj3pAUbSTWfw}rsgl#9 z2RkLU1d?R^G~oY|fLfH(SsAuX2>{pO8PgL%RlLGR4NdBV9%U4}!j2D)?}RSO`*YG7 zbQ1fYC!uyI0N|qkxW1+dkCF+B*&A`RUuF~HpV+4yiJ(vt&~>zbh3bOP!a%tH5&Ab3 zR5|szEveUk5uB@#gIW;&QjyvTZJz(XB>oRnyw6n)c5oW#s(%;efe+H7iVE_I+4z%@ z1d;K-Br=k~QF|l8{iS+7$+HQy^UqcPYASLSZ=Ck%=*BS2;gir^An7L3boW1h1P{;& z&?R2%Na>YDkPJ$rPL3~YZT9Nk3TVU7TXt|IkkFn#aPC+cnXrFjh!JGcOMN*X+IYTo zZ!>Tl@)dmxj;HI;C=7Ym?i`q{n z;g{|%1X+Ihq2b;A068w~Ps}dd*j7T`YuW?`-3|;ufp<@5V1Y&`HM6HpN1-uZhvmyG zuHEN1qL9h8eK^HW>_FwOvs7vH<+0-!3pz~mEkm~yh;vB{;7X?E)lXUUD^>>k`r_nS z6Yx|6Z6mHVo%C%Vv|P~i#}3*PV}Hpu=hv9K52Rpb5AN_qhWw(43rt#<&TJMkJ2__0 zybf5q$U|ESk@`x+ar_yU_sL6nSdL)?d3s9^rh5CBXb%c4mdmv8Ct@5dm_cNkGD-%bbTfPjpzID|XL|UgB z@DNudR6m>X+hW=hW`&L&IShY4cveCaUfq(S@kgI<9gL|Cl2Qz`5&zGoX9GRwYV-c3 zKXdlZ1d6xhHiiJ@6+4>z55JrFU>zg~`=SWG(KT7|Rkm|tc_pncxJP*yU%TZN#EwmMqUMs7(TRTG{$jn_j9%g$U~ zktG!-s3vmn(vYQN@Y_4p&vI1TkpRzFb=dT` zi7?HwNcN;3mya`o@GDd0GUk{#OJmIyJ3J3U#eQEO=X45AYq8e33#fjqBSHpqojG~= z72gMasaIGsGp1VHLq_1|nNw5%&@pSuO`$3npLhu4ohFKybV;Z(2({QsT{AyefJw4i zx8*^m4i082;BRS7>eZlZLDwBLK-R)(Q$SwgX5~}uCNUP+azE^*lf;g-UUJOZ9xI^jE7aku;K1U~0dSuGtFX0-)>VBY57{+BW@G{zxf zb*0yO6u~Xw*N-jY)53t8{x%htg~AepJ2ryxtML{4BZbbZ#NO}Y4EkzceotaJr4-<; zYBgycMU%U5zNq@(wRKUQi+d$L*v@eVI{qj}w!k0$Ixtbi|T(%_6?w#2dT-H!2( z?*lVi&1;-%=jVw_85#pA2%p~{-kuf-aH`}`vRHU}mc2OYG)y=P5fs%aDy;c4Qf@3ZU`C~AM@g{!dpY)gzh4*3)gWVGMSV!jvr+iPrpXFq z=`JD0Fw@UTetRo*=Tb$U4ywn?mw7BBW{ED*P2^1Waz#88{Td318-(w5*xM;i_f_;i zU#Wpu#fzTTDzwKrchy`AW5}J?vrM2_YprH6aYF6bZo;_feBvrkHcj16{zy>YVaOD9 z?9oDPW~;QYrb@L(Gc#q{K3Pm(4FedZ0zKlB_EKEYBWy=^-ix)W-O)!1 zbUY~;IaQA~Qr~F?sTESjnyM$`rKZwe(G9iU&1E|U+}o9M!uzAxd)}P)3S>Y&O8sI#lBMx2lX!pGP%1#*7mguFEp6MPumB&GZGae8lOg z^~)K-GTP><12{%<9RbPVpHu8!K8mqT~%Uu{Lp4P131{Fs{5;Tv`Qltw~&+sI7I zMVwyZ94W#bovB(tKbsCEnJrN}ID*BZk?82x=l!Ize@}{Hcm&+9KfThco2O&JELjdAor-H(x#u&@uqk7BrZjag2O0Sgfzx_;vu7XnxnC2jC6k7 z-49bh6wEPi_Vq5jryAujB^v9%3J=k!Hs3$D7URse!;t9eg6idZ&JrJ^>*(J0mZbY@ zHf5pR;c7IYzJ*Nr;p^Ll*7*WtnB~@VqKhJ}L@4~ z;3gI1Qo2qjEHw4SxCwmMFP;%ZFUVB_W|HXd_&OkL*6l&W&PZXCU<_*4rrIMU4biA0 z2a3;|Qd9-pzC6w)t{|MCL*zVeD=G(DfjGWhEEZ|P4SmM3|-|3<)2H=~% zgxCz^8bKT-yOBzzys`Yi123?3d4*4R?P{6(Cq+fG_=npg(!}d~#FECk`|wK-{_bv{ zG*tPYZyjJ%SGU9QVmOdrTqr0b0NqLw8jtT%2j{U)3s_U=tvVVln|113HPk0ECSXYHV*Nx*3$SWV)*Ez}g z%m&+Lcgb88X6R1kUX0^nUI~=63Y^=-(|G&RU?1*qhK5RI9LHhYp=9%wt4osSCCYW~ zg7dZ&A!XcF3-*=CLWPD1UipF4^Kz~cL`)jj?S}P)ai{9a%(ZEnc(?udHfYBhr{RU3 z?2PeCYSA@J1)EtK4UCpgF+Q~0VGudW%u}R3t?FH6Y4+jf{5JE?wF3u{As%~ac_jDs z{pli1oHS@3*_WEHKT(n}!P21g0X_MoLI|`nr$(fU&(Dlf-#3UiXT+{03ai9p zSos}Of8o6T)V+Cfy^%Vg)*4YezVf?nl))^IFrA7y%AY2kvfEqn0DTs*PDxM^@xOmU zhhi8mi=BY5so=WbdX4;47_YY9IPB=YAE}!SP`jjpS zTvQMiuU^o&(Tm+I*aW0RdCmin*yze4s0C`wV^jmQ=}f*7Y^kB?`$%ppBCHM5tq|K~%vp#9qxKXF2Iz6*g$`|Kfq7_$QCzo(vB7 zPU)pGTAi`$@h~$BT^Sq=$Wro;U!v+aEWGV)k|GBEdez4&hkXp{Q0fd2$G9k%$m&q@ z7jMt3A8oMxRXYi)I*D7LIqj%|Ls z-eQ4|9dcZ@@kIr8He}36iah8{fs*J5UfO_H`6=uc3X@RFV@@cWQ9%+Vq%d;}LpkX} z(>_>p?^_p$@D#qxL_nEG8BKZM`FzB@Naw;v4~k+v9-#O$$wWG(WP%jv12L{j7` zRU2#ld+DDXv%39 znw36qVboaQYqbB*Y|@NE<(zwkoQ(boj>&BMzZ8!pDp0s4mkYp5oRg-sLx}waMySUx zt+U37>B8ciGv(cpa!d3kv&G}i`ob0AE9~}ad*cV?asyq2qAMmwsAizD>IaRNpL7H^ z-AOdBrgqGx~*Kls{@u&2|zD)@Bye04sH$ z-WFeozkM`lj3@kTz>QqE5_zv%|8=+TL;xF77?`asPm0eJeCao7(`c8kK#EG6moyFL zLh>mWe6TmpDGghKp@g2{Gg(9SXjN@|I`0yT@2*9z&IjIh@Hj;VsV&GPd|BfR!j($O zXxbct2{YDmLk6lW#UQR#Oo#-CbTJYaFf}-d4-rG7h-BDvSlHqTD~jfe z&=4-L>=s{sAG1f3e&X((jT}1i-8EBVkg8>eZ8B#aDm?dMfB}LLefuiLl?9WulBG81 z{JjJ<0`q%N5*Tkh1`W8W2!oU%>bI{ob+}QJ9%KznsPX(dWWEQ||E7_=GDBCTWGP?f zkM9-1Kfe3IwdI}tPt92`2t2q5{`M_727&|~SnK>*e*{MixrGfWn>S;mH=Rb0H4jg7 zDV+bC$^)rCD%FS^K`IAe|EPol|Mt~%r0tg<%YnH#jsrrFG`RaSu)|TI|0X|p)OM8mKe068{?}EY! zi*s^%>s5?(ddYu$-_F2HUZ>y|J!C^_YMAPf8D>>IuYec!SiWg1T2f6MGj$ z7XRwzhJ)2s6_SH8+vI>@qGN+A_|Wa(c>U6ipZTiQ9wvPTybR!I13?k-VI4@4t1;O^ z189)9aWFChYlwciIt%ki$$6U4+raTO2 z^-e7&GMV4zth7z@HfN1NL-7VdUp1RM+vhr{Tg?Sy_?8Vz?9^Ug2XuzMFv>QdLArM1 z4yhq8Lm&EpN#q}Dxxc8R5sm!+puX%L zgzt>ZHQMxR`_yF&e_UPBhweC+!@v;a`I}TbxU-p}<3t!En%pZw3t6si&`F!je8+Jh zk;|-frfyKAYp)Oe&nUb2V~g+nhkuaYxsQU#)nNZ3Z(-%Yh-UhKkk1;+Y(K`OZLPcf zgS_8Z=22Da0YR%p1@lM0+Yi_ywYCK2E+fOOuAnx-heq~xglxk1_M>sxg4>6s-LG9G zP^CrB4BE(1zhVL3l8615^F--Zc{S$>0~ETltB)@|n-Ag{tSUC=z;snko8*-U-8~1^ zw3@n5jOsJKbKVxU3zj>P+m{NZZfJ&$4SF%g2f^Qp)y?~oqEeoKQDQ7lG6UlF@xdAj^O$ zu)#9=T7LhTG-DAwgX;UbDDcd#(hLgj=BC3lPLxAo@nu-Nl+Px^d>un!E}{f}d0Ksn zTXC+av?8v(bBCk)RY)OYuJH*=f&)onZrs;G=eVmrqQpJ01fHWKA@_OpI1ds+@b!$+ z5>+9Iv*+@Axnc&@$9su6jshEqW_FG1*g1}0&%^F!zNjD(r5;~;Jc&8;DS&`mMN)~(u;465taV1d@upmgwJxl6h6uYvZ}596A49)~&rSPM)jvJz z-j|FG{TtY|@0|HxCVz2M-*ykT&o!?8)1;ikf;y`3y(i8)5Lsf6(GHggbs`eqANIWn|*==moU>uEGl;-lsE*I;S_us|N=Ohv2(xj{1t= zv)noq;)x2tgoCcg5XvPD@|m;hhY1TLp0NsnZV98n<^zp7wjm=3z{CP0z)hf9No0~q zn9HbnM5}Mj!xJDT&EV)+y6m}fU~^j2nj*240UAimP90w?FCjXgX?DU)nH!7+h+VnH z^d{?I-Q^+wbdyk{K^$|C5#T$}AhgauXkMb#u)5)wf6$nn?qH^d*|nA@RtFKwS}H!{ zv^reWdx3Ale7O)K{e5_6%DVG=u`%5Qr4JF67PS*B0kRhnm6fCu42L2T=O^?nG&2q7 z-Y*uzK<^Jb(045cIfql&{f3KFh9X@WoSnU=BgsRE7eM(?oG68d;4%B@e0XH`-=fuT zV5%Yxw%{%#1|*Wp5e_4=d?D@Z zHN<4Ok`j8>V@^$LY6pT}Yc5$30uI<=g{@(+aw1Bm-41UnP>)Kk5Xw#I7IdF5U-a6aV(=nxuo zu+ZCyDzegDR(f{((5LfDUz8@Vbu!o`ptzRs@R0rOgN*LhlEIBgXniUC!G)#rEk zXJEgwzI%Ae`FHSNb|7EyQ-A$%xbEL9@|l{2rc6-jwk{qhuu#~KcM%aszvf(OyPo6J zh21>e(s$R{i?ED%6>*NXMc!Q+ixzR7zdV%rOgP!-)sYRx~}gH!n|$Zec*|sYLw?f?X0BUyZ$1a)q;R|BJ45 z@DGST$r&&wxyjmSDUyS5Gn|P`U)RgVO|omd9??X;Yc)yQZRefhpw&M- z^Z-$d@|HZZgC+0-?(CUE@@Yd4{P7nk80ealA$2TOkZ zm0Vx9Xnq2JBT%2vMn0y4IYvIZe}@}z4lAf%EoCL5rWzRd#$%pbOAAph<`Uw94(HIC(82mN&qBU`{)@411 zr3V`iqq*;eK^SfsOL0*R{hA$Y9sT;G04?HihovV0=fU21M*f76t>-Q?wSrw(BN>7S z=Qqji-&EL(ssKb#5+EmM(r2&{(+Km)X|6GFF&k%UeY8h~dX800o?j$JQZ^2?I310? z8eKD5uB{v%!l><(QXE);wNf4|Ns^;pi+_vezJBe+RyuJwySD3k<>(g@mi$B1JyYvZ zojLt7j_;>;jMNRvLEt0wUipa=*?btAaFD1d(nw`^*bPoC5!RxjzMKBa*^b8EUFc)e zcZSZ`^Ou+2o#bAf|1Q-`uFr2(9QNv#(U(boaik+mu8&TgVl2e5)zkEkU#>th%zxOr^3-J5{%Eo7TQ7N~ z!NmPVIs8sE_>k%sb4$+(=~q5`FX|WUP21r)khixGbPxG>nFzoVMd5M6uQz;yiGG#t zTw7hi#1&sEv0muz&MI=JWT1s*(bO+aeEMo*F<9LDp8p7bL8ZD~=XC`M4*nm(!MWwo z!hZ|y`y=?`kKh{o6L$~RN6i!aZeM6&bz&|0hZN#5`%2<5`F{X=_0^_?eEBD^a=V*( z9M04*7}m?pEl{nbbCX9H>qVaNA^%Xszbg;{ST?|G5@c*@hE&W9oC^4-$e%HHxJ<6 zwGFB$8?-RM`{4?-6^2gzu>j|6S1T~A>oPCB-;fQTeAA`HLw_QyeCURWVwwrc$` z(GdNmXbW2Bh;)q1&-%fZ@zpFMr4kwj2)IfpWqJkoH%%xr6Q!JR1?DsWL6hD^iW<=- zjuHJ$0-NK=aYzj;d!Q3o75M(=(#yOMn zY-0U4fV0vcfaA!&0G#eUgZH3DI^af5dx_$fx4ihOvJ{;q;C`E9R0* zE%w~Z!>XYBRJ|=KSK@Q=wRlQd1uwugBcCqzRrw-X(S>s>7MPAn>VLZ4>dwO%+g(0r z-?1^$Amr1GSZTx@+RM5&MUSHZ7Nh)lkq_fjs!;l)-7@>)dyLNsr2cVI-@d6-EhG0Z zByO6sW5};&hx|7Rq+(GDrA||fcR0lmri+(wbO_3CS3FNxohl**HZ5^Z&`WL5;GOYB zwVcwbB>L-dsouNAo6Cu~U*SJ6EG4k9mqEZ{;9~doLrGB*m9V2+L(m(a11PDa$CWn1-Y(qcJ{jd#uXbRc6Brl_OCm|bd5UF%o8h`hQls?q6_ ztSp9xO9V7w&H=JjlTeyep#CyttU$R@B{Ickay&Tl{IQd%b!bwtDn?reR(r+Eo{`}W z57+Wt!qfu&7ia0ZzOez*(!@9(3(GgQ?5d#Q@t0XYHY)&!xk7|PJsb1aSgYTX%T;=m znp896QLhf(RUbAFQnf#_(NEmgjLVB4C#UQ`%~`@U>6GI*XoJyX;HGG&PgmJvUa@&} zF|H}sxmL-OctobSC#S@|T#j1iqKw)X%2dgdbsZ#UW}-8tomf~P;eORlS6mb^v&cDF zb4@_*IBlp8JM?D1)MK==IQ~$wjQ(}Rcsn~NvX6uv7yN~3#uzFOE3|Kvj0@zl?`YEa z&nTd&{C8sbG%K!-l+uS1{tv@C%dTlloP@Bdw`qMp|4GFHqQZ^&L&Xw3WV-!rhT9Be zlkKZF3$c&A>1eyglc7vb3KqZkwf4tOQI2nH=9;M|PpRpF`ZV+t?jF-0_)Lop8%;=k z>nc7`YL>9lUw8E)Ehi~AV_6+)r;GeXr$3>gZx}wapR5^W!~YH{k8~~X{y|CT#D2!T z@dCiu)B;pU07~kKw~((Io1K`wJIdlH{-b^UM7xHm#Z^_+GD+6R__lw4WD02m8@M9b z%sA9G*}qp5LfFagE;RiWrW%ylW?9jyD*h__v$%C|d>__lRE&RP^wH6QgrU+bN#gvj zt;2Gk#oNIS17b`{fxaG!aaH6y(Tq%qtgAngpc2B0HVXSuJ2CB8V3aMCSAJQt)ubp; zJi@J0o!3$hn6bZe>tFxTp*w*YDiCIHxYVH{F|EI^HPTKM8Va4DBY_q%oF{&J zXrDPm@`N?1&h^&E#fJE`pLiC(X~GdR3cdm#w{*rO)RUPi{yR$icfU`%!SGNRa8#)B z@y%sczTl);B0CL(4<(V{NtDr32WPb6OQf%l8$4mqY|J@8iN}^_U*jEqb$B7 z|ARV>y#iI4h_Wb7+4fU6H~O@OgBWxG_6I>ONV84bY~}o-QdK;uwpv zt-Su_Tqc4@D$geIuyrJhJh6Nfa#84DgbWdA<_oHfMncc@Uz|26@3)3GO@k3&*-) z>F2P`57mqCSh60urTGwkC%mFzh9Y6u%^3Gcbj#C&ncq%ICb6mir2-MFLan6mqR~{XZ)C765Jm+usBDBi%(W? z+@(j~Bkt>fu@_6r+}($eoT0AiAq~GMJeVKzorhwZ+NaK0^;J8%F0+m$rV2UI`u+~q zh55Y~Y&TXcU*y(u^vK{ilN25wm8%Q`zsv#07KLyU^m>|cRGriDQ+{W+3q`f}#FUpL zXh6ix4+@tQhi|wPpxEm-T&7Y4%~2(blHIgVML61+jdF`<0ehVIzYqi}LGKo4W_t`;(7GR)D$NRfx)j1ic6=x%9PNA* zX7U|EQ#j_au%fPT(O*6=rGnTA8$1hHeD!f-G4Z^#JINvKgb591Le{Yo#KxpXIaC7y zp%g_T()o%-dCeMSf}l9G(kIft9T=lfPba@N;kvR%%}RqZF{D?j{2bZkL&Q`Sfhl_@ zT9N?aM@&HqEr#Gu2Hlh`b_$C7vM~p8@IHx03ccll!$!yyBZYt@z_1&X=AKJdei)R- zUF7t*bV>Y<@}K+mjlF~CcsaqqTx(&#@cwh(zLt%fwWOt`g_+ymTloDA(h8;OPoE#L znvRE*a#F!a$0q!z(IJKnC-yGW?;eCIE9VU|Y7&oS=~_U$_(gI9(MP{XkA|KCztW0) zjBjIi9YKzGcnf&*^6q~2Z`-KmI=SEa@Xqyc;MfLS7N}Xw-3quqH`)VGZ>^u+Mc?l2 zdN&w$zaPx(pJl#3p1(i6op^S<=FUuP7+gKyo^{mLqMV=S-hsCEZ+5K-3NRXBcl2~s z5jAIS9L&7|P%_gzGnH~RQ6@Z%xYtHJr;T}dUV4^J4@}zDD2ETCZ_lGQUd!9kkc{k@ zqr97zG!e$+Y_{wXIJ_J=^tleHcIH=uTDQPZ~iwe`)#hF%9oVwEpe z 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ǎma*OVtQ0 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 nmc$FJ2gie(ddtM0hS=8V(AFCR6g literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/IbisStore.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/IbisStore.scala deleted file mode 100644 index 6c355c505..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/IbisStore.scala +++ /dev/null @@ -1,190 +0,0 @@ -package com.twitter.frigate.pushservice.store - -import com.twitter.finagle.stats.BroadcastStatsReceiver -import com.twitter.finagle.stats.NullStatsReceiver -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.logger.MRLogger -import com.twitter.frigate.common.store -import com.twitter.frigate.common.store.Fail -import com.twitter.frigate.common.store.IbisRequestInfo -import com.twitter.frigate.common.store.IbisResponse -import com.twitter.frigate.common.store.Sent -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.frigate.thriftscala.CommonRecommendationType -import com.twitter.ibis2.service.thriftscala.Flags -import com.twitter.ibis2.service.thriftscala.FlowControl -import com.twitter.ibis2.service.thriftscala.Ibis2Request -import com.twitter.ibis2.service.thriftscala.Ibis2Response -import com.twitter.ibis2.service.thriftscala.Ibis2ResponseStatus -import com.twitter.ibis2.service.thriftscala.Ibis2Service -import com.twitter.ibis2.service.thriftscala.NotificationNotSentCode -import com.twitter.ibis2.service.thriftscala.TargetFanoutResult.NotSentReason -import com.twitter.util.Future - -trait Ibis2Store extends store.Ibis2Store { - def send(ibis2Request: Ibis2Request, candidate: PushCandidate): Future[IbisResponse] -} - -case class PushIbis2Store( - ibisClient: Ibis2Service.MethodPerEndpoint -)( - implicit val statsReceiver: StatsReceiver = NullStatsReceiver) - extends Ibis2Store { - private val log = MRLogger(this.getClass.getSimpleName) - private val stats = statsReceiver.scope("ibis_v2_store") - private val statsByCrt = stats.scope("byCrt") - private val requestsByCrt = statsByCrt.scope("requests") - private val failuresByCrt = statsByCrt.scope("failures") - private val successByCrt = statsByCrt.scope("success") - - private val statsByIbisModel = stats.scope("byIbisModel") - private val requestsByIbisModel = statsByIbisModel.scope("requests") - private val failuresByIbisModel = statsByIbisModel.scope("failures") - private val successByIbisModel = statsByIbisModel.scope("success") - - private[this] def ibisSend( - ibis2Request: Ibis2Request, - commonRecommendationType: CommonRecommendationType - ): Future[IbisResponse] = { - val ibisModel = ibis2Request.modelName - - val bStats = if (ibis2Request.flags.getOrElse(Flags()).darkWrite.contains(true)) { - BroadcastStatsReceiver( - Seq( - stats, - stats.scope("dark_write") - ) - ) - } else BroadcastStatsReceiver(Seq(stats)) - - bStats.counter("requests").incr() - requestsByCrt.counter(commonRecommendationType.name).incr() - requestsByIbisModel.counter(ibisModel).incr() - - retry(ibisClient, ibis2Request, 3, bStats) - .map { response => - bStats.counter(response.status.status.name).incr() - successByCrt.counter(response.status.status.name, commonRecommendationType.name).incr() - successByIbisModel.counter(response.status.status.name, ibisModel).incr() - response.status.status match { - case Ibis2ResponseStatus.SuccessWithDeliveries | - Ibis2ResponseStatus.SuccessNoDeliveries => - IbisResponse(Sent, Some(response)) - case _ => - IbisResponse(Fail, Some(response)) - } - } - .onFailure { ex => - bStats.counter("failures").incr() - val exceptionName = ex.getClass.getCanonicalName - bStats.scope("failures").counter(exceptionName).incr() - failuresByCrt.counter(exceptionName, commonRecommendationType.name).incr() - failuresByIbisModel.counter(exceptionName, ibisModel).incr() - } - } - - private def getNotifNotSentReason( - ibis2Response: Ibis2Response - ): Option[NotificationNotSentCode] = { - ibis2Response.status.fanoutResults match { - case Some(fanoutResult) => - fanoutResult.pushResult.flatMap { pushResult => - pushResult.results.headOption match { - case Some(NotSentReason(notSentInfo)) => Some(notSentInfo.notSentCode) - case _ => None - } - } - case _ => None - } - } - - def send(ibis2Request: Ibis2Request, candidate: PushCandidate): Future[IbisResponse] = { - val requestWithIID = if (ibis2Request.flowControl.exists(_.externalIid.isDefined)) { - ibis2Request - } else { - ibis2Request.copy( - flowControl = Some( - ibis2Request.flowControl - .getOrElse(FlowControl()) - .copy(externalIid = Some(candidate.impressionId)) - ) - ) - } - - val commonRecommendationType = candidate.frigateNotification.commonRecommendationType - - ibisSend(requestWithIID, commonRecommendationType) - .onSuccess { response => - response.ibis2Response.foreach { ibis2Response => - getNotifNotSentReason(ibis2Response).foreach { notifNotSentCode => - stats.scope(ibis2Response.status.status.name).counter(s"$notifNotSentCode").incr() - } - if (ibis2Response.status.status != Ibis2ResponseStatus.SuccessWithDeliveries) { - log.warning( - s"Request dropped on ibis for ${ibis2Request.recipientSelector.recipientId}: $ibis2Response") - } - } - } - .onFailure { ex => - log.warning( - s"Ibis Request failure: ${ex.getClass.getCanonicalName} \n For IbisRequest: $ibis2Request") - log.error(ex, ex.getMessage) - } - } - - // retry request when Ibis2ResponseStatus is PreFanoutError - def retry( - ibisClient: Ibis2Service.MethodPerEndpoint, - request: Ibis2Request, - retryCount: Int, - bStats: StatsReceiver - ): Future[Ibis2Response] = { - ibisClient.sendNotification(request).flatMap { response => - response.status.status match { - case Ibis2ResponseStatus.PreFanoutError if retryCount > 0 => - bStats.scope("requests").counter("retry").incr() - bStats.counter(response.status.status.name).incr() - retry(ibisClient, request, retryCount - 1, bStats) - case _ => - Future.value(response) - } - } - } - - override def send( - ibis2Request: Ibis2Request, - requestInfo: IbisRequestInfo - ): Future[IbisResponse] = { - ibisSend(ibis2Request, requestInfo.commonRecommendationType) - } -} - -case class StagingIbis2Store(remoteIbis2Store: PushIbis2Store) extends Ibis2Store { - - final def addDarkWriteFlagIbis2Request( - isTeamMember: Boolean, - ibis2Request: Ibis2Request - ): Ibis2Request = { - val flags = - ibis2Request.flags.getOrElse(Flags()) - val darkWrite: Boolean = !isTeamMember || flags.darkWrite.getOrElse(false) - ibis2Request.copy(flags = Some(flags.copy(darkWrite = Some(darkWrite)))) - } - - override def send(ibis2Request: Ibis2Request, candidate: PushCandidate): Future[IbisResponse] = { - candidate.target.isTeamMember.flatMap { isTeamMember => - val ibis2Req = addDarkWriteFlagIbis2Request(isTeamMember, ibis2Request) - remoteIbis2Store.send(ibis2Req, candidate) - } - } - - override def send( - ibis2Request: Ibis2Request, - requestInfo: IbisRequestInfo - ): Future[IbisResponse] = { - requestInfo.isTeamMember.flatMap { isTeamMember => - val ibis2Req = addDarkWriteFlagIbis2Request(isTeamMember, ibis2Request) - remoteIbis2Store.send(ibis2Req, requestInfo) - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/InterestDiscoveryStore.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/InterestDiscoveryStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..51d5bc1a8836eebefb72e6a7bf7161e231f3e64b GIT binary patch literal 36922 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 J$Kh@e4*<0@_=5ld literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/InterestDiscoveryStore.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/InterestDiscoveryStore.scala deleted file mode 100644 index 80fc0ea7e..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/InterestDiscoveryStore.scala +++ /dev/null @@ -1,16 +0,0 @@ -package com.twitter.frigate.pushservice.store - -import com.twitter.interests_discovery.thriftscala.InterestsDiscoveryService -import com.twitter.interests_discovery.thriftscala.RecommendedListsRequest -import com.twitter.interests_discovery.thriftscala.RecommendedListsResponse -import com.twitter.storehaus.ReadableStore -import com.twitter.util.Future - -case class InterestDiscoveryStore( - client: InterestsDiscoveryService.MethodPerEndpoint) - extends ReadableStore[RecommendedListsRequest, RecommendedListsResponse] { - - override def get(request: RecommendedListsRequest): Future[Option[RecommendedListsResponse]] = { - client.getListRecos(request).map(Some(_)) - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/LabeledPushRecsDecideredStore.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/LabeledPushRecsDecideredStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..3a5dc30383d32a3f03f983b361d9122b602e0827 GIT binary patch literal 38396 zcmagEWmp|cw=RmidvJGmcL)S`m*75eXW{{ZLvVMO;O_1OcMB2-?tW(0`gHGe?)}p| zRQGsgjGkSix=UFO5(*0p3=9seJdH=YO0_6H2^LY=QUB2r`>&O_7FIkgu%d4}@aw-q;ct61(p)so* z2E!bmnRf3-yjCaF<=aH9Cn0%iV34U*Kn_{rTdkHlaUH0k$F3wR1<1*;?-o0=Xw^nhaJQx;ioH ze%8mqGWg#25-6D`JwbFd^<)O$VA9z;Vyk>Z?)&fW>55`0g&&v04e#gY6znH70!C23 zaA}BqS8W%IO&;ao<9T;FmLT`L%?;68;geMK>yR`Oq74)s@OijIc|Q0Iy^8mM6j*&P z^U_(o@3t0{Zz|82OsDsnL{y009sl{+=LxZ-;)A4c@5@rj#=gkdJ$e2!mVzOe@_$v) zi&{?f0aU$B2rw{2&|f2Gb2}Fn=0C@(gvn2kY-j=J!crqtB@Rs*l7%aVl1B=K!ab=I zXT=Ucnc~&1P8CT5ZJb`>!}C2;i^Yrrf@OwcyI?I7orR#hrC#kVy32-kqjk7s_>Mp_ zPxajp9lP|%TM86WbLx9;3r$jChE2>tJ-Yg{S+QzyNh5lD8I;nHvPAS7L|0lZH$SF1 z01QA{zKQE=Nmc7lJCCmqB2BI`#sQ+oagOL}X^LiSxV(iZvQC&c60(QWG39ZsnK*4v z?aEeq6_?CM!4gVphMtr+Fq0h^1H6_Ef+e#pdmj&&C@Chjyr(SOHiK3C9jA$ZvwlxG z*KLel_JbRp)#E<@?*xT^K~%E_-R85P1fhcxWCk!*b_O`Qu$Tgz&HvowSqbBc{j6wG z_r6l|3YrnuXmC=p^x(%|KgnPPF1Oxsaw*u2XLC<(?G@VV<}$bwZwU-vI|^^`G&Vz; zh9-oPgvFl+nteso!G2pa!C8OKmZImYN($*a?|GWLqPFBW9qWly!AC-<&4!fCU^9?k z4Ckj9sN>?C|1w3E)uLLQcOHyrQM@VJvRKcCge5O+O{XtD>i>1kuGw`?~jAV zst1|ow6!qogs1M0&`7A@9HJ^|sva$x?Au>YU7Ve^rrjY8Dv+APkWi98Ci8=_Ycl_+-v9mM+lOUBh6kQYD7<4!6hpc>4~e&zzAJ+NuFK8Z8tw_G zE_P60U}*nYm(Pxlf0adj++mFst>c*i%E0xjHLRElUP92K*sR0`er-Z#^ZXe3r+BDV zwq2m#V>mY77na)yfqH@GhOy@*F$>rRMJo;L@yGlTWv2~<#+t9g2Wyju=(rtHPRgC0rU;fs}yF zxbtGd3d#o2$Mv?(>=$~jrM(`m;2eeM2{EJN)g02p0K!jP)52|0;LNSGV@1{(?HU;F z*M^gNQnk7=t?;Yp)3|PJvEf`kF3492+NjYV6iGIp0lhcqIog5iPH`=F^<@HaC~|iw zP)`El%P%;R^s5rExS>!YE8J(hEC}> zH7hLjeZ02f(=Kx*nNal*4P`RXvk3_SgDKsa*5RSVlCFWGUNm+N7e2Z>)lMj|6?`8+ z1O3fb2v7N=yY4Q@y%qi|8uO(++u`=3n-Jo$2MjN;r5>I*j1{2H`5yTHX59EzyCg! z7}^Vzl@XVRU?1=zVUp=6?d_vReh=h-n`@WFyQWowSA)|vX3sQJsbN#4M-(9X z5H0i7Jnn~#<0veBxaaClFnF|#WuMf#*M`thdV%~!xD5PHMOFgSmD-1I)yTMTtdGizI|E$8ga zoQHss5|+q5vTohjfzO|f@eFX2MrtWCjU#u&kivr<$j4Z5AFi3|1!ol0#YYoWySgV3 zb*v~Hl|U#N^8g$P9-J;!)3HW)nmuPW#L3$tRtVNaOXnEl)sp~Myo>5-0_)Mu-Ei5K z*NaCERer|z^-VqKzDjzU(hJq28$CB4c_AS`6sbcn*~9sz`?AJY&wwUw#&{t8G4DB!|`GL?28jqC%Cz1s+F)+ z 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%0DAMH;FlZ9qKQquVVj3 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 literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/LabeledPushRecsDecideredStore.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/LabeledPushRecsDecideredStore.scala deleted file mode 100644 index 73fc28837..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/LabeledPushRecsDecideredStore.scala +++ /dev/null @@ -1,156 +0,0 @@ -package com.twitter.frigate.pushservice.store - -import com.twitter.conversions.DurationOps._ -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.candidate.TargetDecider -import com.twitter.frigate.common.history.History -import com.twitter.frigate.common.history.HistoryStoreKeyContext -import com.twitter.frigate.common.history.PushServiceHistoryStore -import com.twitter.frigate.data_pipeline.thriftscala._ -import com.twitter.frigate.thriftscala.FrigateNotification -import com.twitter.hermit.store.labeled_push_recs.LabeledPushRecsJoinedWithNotificationHistoryStore -import com.twitter.logging.Logger -import com.twitter.storehaus.ReadableStore -import com.twitter.util.Future -import com.twitter.util.Time - -case class LabeledPushRecsVerifyingStoreKey( - historyStoreKey: HistoryStoreKeyContext, - useHydratedDataset: Boolean, - verifyHydratedDatasetResults: Boolean) { - def userId: Long = historyStoreKey.targetUserId -} - -case class LabeledPushRecsVerifyingStoreResponse( - userHistory: UserHistoryValue, - unequalNotificationsUnhydratedToHydrated: Option[ - Map[(Time, FrigateNotification), FrigateNotification] - ], - missingFromHydrated: Option[Map[Time, FrigateNotification]]) - -case class LabeledPushRecsVerifyingStore( - labeledPushRecsStore: ReadableStore[UserHistoryKey, UserHistoryValue], - historyStore: PushServiceHistoryStore -)( - implicit stats: StatsReceiver) - extends ReadableStore[LabeledPushRecsVerifyingStoreKey, LabeledPushRecsVerifyingStoreResponse] { - - private def getByJoiningWithRealHistory( - key: HistoryStoreKeyContext - ): Future[Option[UserHistoryValue]] = { - val historyFut = historyStore.get(key, Some(365.days)) - val toJoinWithRealHistoryFut = labeledPushRecsStore.get(UserHistoryKey.UserId(key.targetUserId)) - Future.join(historyFut, toJoinWithRealHistoryFut).map { - case (_, None) => None - case (History(realtimeHistoryMap), Some(uhValue)) => - Some( - LabeledPushRecsJoinedWithNotificationHistoryStore - .joinLabeledPushRecsSentWithNotificationHistory(uhValue, realtimeHistoryMap, stats) - ) - } - } - - private def processUserHistoryValue(uhValue: UserHistoryValue): Map[Time, FrigateNotification] = { - uhValue.events - .getOrElse(Nil) - .collect { - case Event( - EventType.LabeledPushRecSend, - Some(tsMillis), - Some(EventUnion.LabeledPushRecSendEvent(lprs: LabeledPushRecSendEvent)) - ) if lprs.pushRecSendEvent.frigateNotification.isDefined => - Time.fromMilliseconds(tsMillis) -> lprs.pushRecSendEvent.frigateNotification.get - } - .toMap - } - - override def get( - key: LabeledPushRecsVerifyingStoreKey - ): Future[Option[LabeledPushRecsVerifyingStoreResponse]] = { - val uhKey = UserHistoryKey.UserId(key.userId) - if (!key.useHydratedDataset) { - getByJoiningWithRealHistory(key.historyStoreKey).map { uhValueOpt => - uhValueOpt.map { uhValue => LabeledPushRecsVerifyingStoreResponse(uhValue, None, None) } - } - } else { - labeledPushRecsStore.get(uhKey).flatMap { hydratedValueOpt: Option[UserHistoryValue] => - if (!key.verifyHydratedDatasetResults) { - Future.value(hydratedValueOpt.map { uhValue => - LabeledPushRecsVerifyingStoreResponse(uhValue, None, None) - }) - } else { - getByJoiningWithRealHistory(key.historyStoreKey).map { - joinedWithRealHistoryOpt: Option[UserHistoryValue] => - val joinedWithRealHistoryMap = - joinedWithRealHistoryOpt.map(processUserHistoryValue).getOrElse(Map.empty) - val hydratedMap = hydratedValueOpt.map(processUserHistoryValue).getOrElse(Map.empty) - val unequal = joinedWithRealHistoryMap.flatMap { - case (time, frigateNotif) => - hydratedMap.get(time).collect { - case n if n != frigateNotif => ((time, frigateNotif), n) - } - } - val missing = joinedWithRealHistoryMap.filter { - case (time, frigateNotif) => !hydratedMap.contains(time) - } - hydratedValueOpt.map { hydratedValue => - LabeledPushRecsVerifyingStoreResponse(hydratedValue, Some(unequal), Some(missing)) - } - } - } - } - } - } -} - -case class LabeledPushRecsStoreKey(target: TargetDecider, historyStoreKey: HistoryStoreKeyContext) { - def userId: Long = historyStoreKey.targetUserId -} - -case class LabeledPushRecsDecideredStore( - verifyingStore: ReadableStore[ - LabeledPushRecsVerifyingStoreKey, - LabeledPushRecsVerifyingStoreResponse - ], - useHydratedLabeledSendsDatasetDeciderKey: String, - verifyHydratedLabeledSendsForHistoryDeciderKey: String -)( - implicit globalStats: StatsReceiver) - extends ReadableStore[LabeledPushRecsStoreKey, UserHistoryValue] { - private val log = Logger() - private val stats = globalStats.scope("LabeledPushRecsDecideredStore") - private val numComparisons = stats.counter("num_comparisons") - private val numMissingStat = stats.stat("num_missing") - private val numUnequalStat = stats.stat("num_unequal") - - override def get(key: LabeledPushRecsStoreKey): Future[Option[UserHistoryValue]] = { - val useHydrated = key.target.isDeciderEnabled( - useHydratedLabeledSendsDatasetDeciderKey, - stats, - useRandomRecipient = true - ) - - val verifyHydrated = if (useHydrated) { - key.target.isDeciderEnabled( - verifyHydratedLabeledSendsForHistoryDeciderKey, - stats, - useRandomRecipient = true - ) - } else false - - val newKey = LabeledPushRecsVerifyingStoreKey(key.historyStoreKey, useHydrated, verifyHydrated) - verifyingStore.get(newKey).map { - case None => None - case Some(LabeledPushRecsVerifyingStoreResponse(uhValue, unequalOpt, missingOpt)) => - (unequalOpt, missingOpt) match { - case (Some(unequal), Some(missing)) => - numComparisons.incr() - numMissingStat.add(missing.size) - numUnequalStat.add(unequal.size) - case _ => //no-op - } - Some(uhValue) - } - } - -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/LexServiceStore.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/LexServiceStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..b13730bebd314f7871df03dde1cac0552481b147 GIT binary patch literal 36999 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 - liveVideoTimelineClient.getEvent( - EventId(eventRequest.eventId), - eventRequest.lookupContext) rescue { - case NotFound => Stitch.NotFound - } - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/NTabHistoryStore.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/NTabHistoryStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..56055ce85f7e01d21ffa09e9df056da6ac30956b GIT binary patch literal 37297 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 tQ`R;^Lj|Sdg{~jHJ&4fn(T - optionMhValue.map(_.contents) - } - } - - override def put(keyValue: ((Long, String), GenericNotificationOverrideKey)): Future[Unit] = { - val ((userId, impressionId), genericNotifOverrideKey) = keyValue - val mhKey = keyDesc.withDataset(dataset).withPkey(userId).withLkey(impressionId) - val mhVal = genericNotifKeyValDesc.withValue(genericNotifOverrideKey) - Stitch.run(mhEndpoint.insert(mhKey, mhVal)) - } - -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/OCFPromptHistoryStore.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/OCFPromptHistoryStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..d528f3635499eb0e9b5261e843fbd3e6dad0fd7c GIT binary patch literal 37646 zcmagEWmsIvwm*!!dvFQvZowrG+}$l`<4)tj-GaNjySsgyXU|?e~U|^V_Q5`XWowJ#pvw^CI zy_u69le?`=W0IW0sxaD@vlr}SWhv2PttI9YS%`MEL71AB z4DWZ-T;MFbHT`@B7{O(4p1&Gu*iy6!xmhM}6kT5?eBH<&#QY?(UY3}s)HAKq5!(EDzJ?i|t4V$_Y=|Fls&$>DuXnUibEsSG zEkto2LIj|F|6$w1;M-?gVMsq($6Npa`2$-Eo<#lM2#rU=Hfg)}PLZREdfk(Ai3%lmwL~pkE_8(`dN( zFwO#C0FtszoZ-cltv_ts!taHeoTUu?gpXqF(N$9AO<8ey3Q(jSFt5d=52mBbVp}tC z+8)~#KkJlVFdYVpDX8eXzrTi=?7$e{v1s^EJkzrKai8%$#iWMkl)1}BppvisH1RK% z+LSZx#+W4^xX~FMuCsp@DD(@WiY4eWp8*vJ9aJDwfQh0bz}|`31mI})`y$VbAD8cE zL6f-imY9=M54%ExlaQtZKMMaOh2_80ddtBnXEUC~HMzN4V5^-&?@GMMKYV2`xX#_! z3~3S^A50Pwcjj*zj;MwGx@wHG_LL<-$6J{c)OXhNID1KD!Dlko6QP8UgiwP8z@)&Ds6?G!wnr){M9DpRp*+vN0UodUm%e-a?r1j zgNDlc8D=y!Fl>Y;t`E>isNn3vN~y|jE$VDr;U`Xx4x7`ikb31v%^^rA$?tM!PD(0- z19IWkbX+$81BJE2b8|auj82q(Le8cw>@}D#P2)V&DMrAI^<0!;Hvx+f_{_w+>kCWP z^h9Z_Vv!6e={BkF3|*6XhxNX1A79@s5z^mtUqIm11+C+W9!k$S+!9tq2`@fiL1ad39ls_%qj_$O{8JoM zE9(x>=OGlE_Y3n)7=JzgQ^VNPqKG+cgZyVT?D2=Z5k-e}gvRRd;r-Rg19B&*GU!rl z^+9w!2ZQOc%6S+@c;{3N#i}tc@_OTm3u0J%Ck6Ux=M@y;jRvoxc6od6Z_j4J62Dw) z?+4D46dRW|zACXOgqK6URDUk_D47=E{J48_q?Me6j3NnP^ui7`?on<@vm7dkD@RJe zYS?)`@fper(aZU!&h#gGj)kob?uS_l;bUS3`^#CR`vHU>xF!W#!oY7glJ@19r!=cz zxZw@Q^`t6wr5d4^Q75t8nj*tFyqu6PVl;&dxwu-Zhi2~DY(zO`e3t6$taNC}mfkecA(mp`8NGixvtg)Iq}+tA

    UE;Yx zxZ2iC-?!5|kZilP{Q}0Ap&*G|y`W^Bdx#j?s#q;d(xFfUHQ_PX@S1`d-n3 z5!zkGk9%V(?#~nc9u)VI0n*veODr^6S+*HSUjzBRM3|gu%6u|uOc-#fbDv~vaJJHP zs$cCbLiHR%2B3fcVc)~zF|N&d1Xo`cb)~MifoT)^;{;$ELQ^|?2%W9{>L8eVysE|c zu|rQcM#IngC|H)j`&JS)^SCF7p0=w0A-6;x;j;*40UjONe)1}W|j*X1%ykC#dg8krn>V%d5gU|oAl?6?Z#^e zDTp0`mzt_Ohs@A!UgeSIDk( z+HQW#vj8}Nj6yT_=aQ9!H9>hCyB z@{6r56{Ob`yX1#3I-}16`e%Z|KOw7IgKzU0aDp(v2{H$msW<~1U0BTk&KAFK@~nh$ zrG7Sa>04jvIYq6AOLPQjIR?n1&+lci1DD!vxVRPV#P{ANj3$CFC9hJ zd7E0G%|a7GNyFknf##o)b#Y!+O>x&Av!xmMtCB{10{u=BPZj5|TKp7PG&hCVyNYBS2JYwgzuvkP{AAh8}w z$gg*UCTjbc7Id|697HGX_poo!AUVZU)6_g#wK%pupSU_QzN>T2G~S&Q}DJkCd(`T>}^o`*W@A#4?fn3Z&U zb#Bd`ktBy*BAy8&_f_^gQ`cnvVT1qcyO+01M2vU5=P>w3R;WhwvmTN!Pkk4J|E$Z^ z>MGtbxGr`u5D@5pugeEV$3M!VG48O+hTieW2xI8_*&1G46+a?>-!d{}bzVgkXcK4qPQh|qtZuBobmho5f!I(q^6qB!~3g~2NW(a z<*;QqT7wvdPR7$?Rr7Gnh^}ecD%E2?6b+^m=OplsF3OD4t}Ccw8;w52?MjZm-<~YQ zq<^{B-3^>2t28Zbd{Jdn{#*h5T=TKQt8`kJ``zyKk#0&d3aSj$hi6Whajyz%y5(>g zJVi1>c9YJtiH|Tg$Ud&u_2xe@a;@z3@q}h6#g0js94}_y+zlZ8z%wh{5(9p_mT|1e zI;C5M!28^I+(4#YU#1;?5q%QZts_31%g+t{EJ+tN`kgY_<^!Pj3L{4+aLp;M^`@ar zFb-Az1{LN(P-5u`SBhap5?+ruF0nZc%fD_6aQTau?@eOW1+)(2=ZhbY`&qSENn+MS z%U?05{HA6^r0d3OE8g$0RFVr<57APk5I>rd5;B_6pK2c*NG|FbD(Oe#0JN}4w!-)-@7(ovNN+z9JfpLm+p`~R-Ma}RA9=v>0b3goNm5S`?Vd-Y#z_KO z?KV@BMJBa3sRY9^@icwxl;cweR^>#Cl;3rBWUxN5lAIxC++PyD&R_o`{pXEALfA?{ z0=_8%z>CuFAFKz!*_;*pt97#nFHXPjj7c4NmsKA0u3K#r&(cCUMYZ~h*2*HHB!)@y zsv&3Zb59PoRw~s*7^ncXHKkV{yh14sv+?AjZ?lnSFE^|3?&5|W_X$PjusmAxew zK^P-x2wo)0-lR4AvESZ31aNt+wca41V*SZ!5>B6Y@#UX5pK1O+b8Imle%%um6wU_ItpB-yu9Zi)`G zPuoU?MTLYA;Zf#s*f^G&3gw+5c?Eq*AOMc5JDf5vw0_c6%#_&ch1)IM|1b?BOQvJ- z)4jpd1|aP^Yo}c5C#&^t!$HC5`z3avtj-UC?fSaaypOG4?8LJ*T8n<^p-#uRJm^a= zE^!4senYE})YW76CvZ9hZDSy-<}8KvEpoIdtn{{sOmNxn4h=8gWMPKdeY^)Uv?eMO8Vpo@2CXNmygI}y{W6xcaJ^w=BXpx77ViP)GAPMTR_=4*dE}w%w z=N?iYUOb?Q^U%QO37=W!d8vS8@sj9HBO$vEJ7usg|IGr>Jio(tI=#~?MRLBBl{|?& z#=K606Oy@|;NZnp@V$z;uGGUfx1Q1)u{0{~|vqCPZ`7O<5UZDCiiQ*7OgPhZ!NZyl|WiHmg&Z>j`}TuHatecp1TZ z3Hr(lH_u6_z}V(d^@pwJ0pZ*SC6^5^`Y{3#Ji6G~E4H!8doy}cqQmyNN=YKdG)POb z%FL^e8{&SX%CgT#&QE}3WO9m(AcQ8kMa~O98zAb4HuXWV@o|iYA9@^vsNpNiN&n4P ztw(Qn7nfkTpBL4MhFxN9H<-po-0CRyk9wn0F}#~vb1Wd)LFH!aGFckga_Q^&ig(;S z*7UB4(5@vyUQ&8+92$A|2G#z(2Tl(dw!EYU#54V&7ez9q#LV9;cZ|TI<$>-x{dKDN73!api9-M(CI@(x z83#`&ME{yh{@f$|eM=60(S3XTUgG^14Z>Y>l!j0tK zrvAD)ljKg|?k$gB4z2y{e{FW>XE3L@*Kq4aH^vV4`tL7KGpN;LFr1(Bz*Z0 zmXq!3-A-{nS>1ZkS!uf^x}NURyQS2i71W0TQ@1p4Vo1qNZL$M8_;!6~PUQa#Z-ivo zI8P*5ychVSXb_EQ45M|M3Ej_mXJS3JYq?+sA?496nJURqRGX>34Si9<87a<3U7xNV zVjKE)(w5KWY9?vGTM5zC2OdgvS0t*0XosIz$5wS*``xi{-`N+;Kr&i;T$hznt$mX< zdA^manHm`W`{3`a|IBrC1+HKuD+Gj*CM*QnzjE#3>Sbr)@_X6_KMN%8$kh9Fcjp%v zKmD+e3xOD(a)3y1C;H&inOz6sROFof_3azp$Ji5Ne`<0uQcX2Yt@q^#^@4rbxGMB} z+F6Mj7SGQ){vCE8pfPDo#`EbqZ+|yRSDQXa>#=0=^s*fQe8%?`yx%|d)H}^iS$%eR zKFtta90t7H$G+Y_E`nl8L|cw`4e##P&)ZYy+aC{Re_pqTh3y`BJ=Y7p*uQ?=2xSGX zkQ$|woK5#1gr)9nkFOrLR6LI#Uo?8H+3}W$l2-QibSi)1509#Uy|Ql5^LdrE9ILy`^$Id63=TzJ1NF%RnF0^?WV)V5yc$((kmn z&Wg4P{31>2E1P{n{yI=|-)-7kGd@p~((vS}7Y4*grzUW1N9;V?AZSk&1$sqlwEGI4 zV3F5E#9h^*!4`#`VhT)$HK2vnREs{>8vE&r`tgObcC^P@gyQ)>zZ~>i`XfAFtv|b_ z8$8tlmpe9vgsVJ2r(vnQr`f#9$FF`yAfRw{j>Fm!h$&k@jhlnpTPoNcn}+`-aZ~-Q2sbhEJ>qX_1UH?jwR`HGuhBl*u`C ztx|imNF*xYrd~!-)mi}f+dk9tfX&-i!@CLDC3q1BrByczC<2D!uT&?S&mBTcqNFJ` z(;hQxdU0wTePJ!biAzx-37mP7*;P#Kc37!INmxv56j(Lik^T(GF4@o4Cm+0`u8s{f1dWcWO6ZvwhBQJm3yQB6$BVAO^Xi1HT?vPH7ZCJC-%ex+AXTbLgUufIHsf$;;VKd&W$Xq3;;JIOI17-^G22 zjp^i~iYWOKML?Dnnj>pcPa5R0?`2hGOEJ}wI4eS!_OKbr<(U`XBP1w&?XL9SBx1eO z8tWLwUa0I~&nSRYwL8ygc`hUPqW78U<#FA*Q?ME|P`LcLmYs7`Zb`>}ClS4n2l_pN zS_Tp|Oz(k|6ZuhMK?qZmu9`&LiYq-ig4G6gk1@h!aR7FRm%13zN(Vg|vi(M7R)H*n z8YLrUkYhqi09ob_L&4a1^up|piqI`;0HiM8sJu*fg*?(Hw*mDp>=Uj8a3~pg9Q_}mdSJ9rFz!D> z|D=K`qXpTJd;S*zNR<-Yg7k-qlnz+)y#FEbKTvVr7uC2yso+t67v@d~)}w|F_KMy3 zgP9DO`M)GGlOfQ0AtU^udM?qU3BBX@sDC#Vx=1!oxwm&=8D$Gd>CKaMk!ZR3f$kyw zb^Y~77uu71-Xlo|rqU+Gm9{o}c5V8%Vd*c~yAVm~%~$yS#U1I&ylua<(bBFl*1-&YF6B5RW@O{=Y=I`qPYE7gPibmFJ70c>Y9C^!FWk7~OrCeL=VBNgLR3a?7~0e{50z z!6N$9)rs_8P+@RrXU|`r2lpMTGcT@{h}WtPkztoT6Hw^Y!wHzL8A8kIVclL}LeOsc zG=p#Z>4hYCVs#He=^ZCf<;x6BDq~sn7}mTl%UsLgH5Kw~A`_&tsd?2yCgZY|;hupc zW#%{{O@G_4OLYfh+Z%0X41>}AuL;pV-#6z~o4fTVV`mL)3q%C}q>2ehT$9ac7BM?M z;>@`8Up>pkSPYi=Lc(?Q37-GKQ)Nh=X&7~CQwCux&naMwmt_%PpwR8qzRgSN_f$-^ z$OV!%tHz6F@BFxi!s;A-Mq!2iyx)0SFdZH9IwI0%2;H2 z$7;x67Zh|~>#^%1`eIha_HB7AKVL+4;t%|K#f4+{-eI~}lkH?BSQx{8pG;5tyFu!6 zekDJ$cTa_iHs#j`0cGXeT7q{!oieazNn18S6t6GobM4a}4_Ct%FBe0D-tEs$UclRz zmWupkcc4(YttF_4o1HM(yKR#h~cl)XaoOA0vX-eHUlHH>K9&u`M z8Lt!In%|??k-uF!N)IHgNRdyUW#KM~Hdku**bkBTb$OKCAv~qcUh5{L_O_M;6~blu z_~~a{FYLK~LGkpcT2VIzk*`N~VLm|DtSKj%CVy=FE|h^$8?Q|fb&;1{KqZ!G?aA4NtC+KbCPhQ)%ui>! z(KLN8GK=M#h>Vt_+6m(<#7OV z${9Ca7X6pbxBLRdMfDXa>zFXIqS`9CIWP!Z=!{K*b@h)jk2VUd~UW) zzJKeV-fUjwUIl>?7SlERlaW5X-n~355aCtIqh+%3buW2x)oOm=EBQ+xw8gR@MD0L`G9O6m&fTP^NZvg2(f zcFYBH%&^(ow+F6xJ@|wb#-K4LXI)! zeHEWX{Z1*eR;9mfO5w?x+G?9@vrD^4dok~_oSw6R%_w^U^)PV@)r$tiuUoH*>V#vJgaI8LF4Gldw}Y*!O3K#V z{Udx`e5BYOax=6M^m_Oo&2}KyCC+A6>eM}osNQNO2x>(}cZ|WaQ-4+}p@~rkG@w$(gGwA50dTN_xcC)q6IUY!&gZm&=H652J7SvtP?m?S=6z zdo7C`@&(c?iR$|V3xm2<-7IlA0E=rd381>l^mm^|G}}i_5|}Pa(=WxN7(iwQ!Z_ZN zjI;)2%n<2qvsM0F!#NHBmH9-JnOXLU=T-DvcCH5eC^*!2oT=AoZ4*_eTE2cbg3gSL z3OI$O<*}X1@Tz61%1$@M{TeM!7ThZ%Hs)op9eWp>k@Ec)9Z26NCv*iy9NwjpkzY5m z(({m}6+1duxTbZ`1X1|sP5e|;4`EA5HOnnKj~a=KN-5N zy)A&UM^*cH**wYhGXwIWl5Wbv|KYn6^wstxOXI*p=gP2uu-{W&E--O52^*ST#Db2$ zE~E~d+ASZGD|7ArQxuj`*myciZw)Ui9_OkyY4vVl0jDKH_pk1$)b^=feWqOpk$+Cze22QDuHZ^q zTUv(I8co)$%8tv1a?h~0KaH2a*H&#a$ZmhpKYfstAw|Pu7A`~?Wj}V8(>lr4+%-V~ z9d-4=<&y+)&6$0<3G1#xJ4lYi*|#DDC>nb>f;Tt;oTlk03omfgP zS3GWZi|(GAIBp1?h`#i2a$Cv$nBKEaF?eTijr>MpxOu$wOnJO!JrSfKXFqrZi+km6 zY>a0J%Y(3I2yIJ5pgZe$f7!-t44ux^s4IpGbZwVZ+C*;;aq-U2 z&Gnt8n&9KLJ)GLgRv1AP7wVHU6?M4(MLN)+y31GO*Jhu>XfAb{D}83GGmj!5IaP7n zGN8QVd3ASk-Vn(}_RB4P=1f#xD5KoAbiM8@548Bw=WP0O{>U*Db%fdS8{u#5)<`1< zWjOM9b@o%`%UV!=GA-C=5|GMtsr%@{2IWSL^39Udukg8lhadh94YYEB-K75gm2+ZuJIzvxK1(_D~hwJg`jNV$~jD3mvZVyXHywOCRK~zx{uHr<4E%) ztiXelIc`xsvYI7-BU7`1+43REn|>=4DqDqhlH9vhqq8*CF3eoedhW5Ne?KDFeK$3i z?6$ryO^k(`4&yE7;w75f+@{JqYBCmhI<#J(hk#5lk#@%9uxt_N)HvmJopfVb;!>)h zQZkBN&>`g~-t!N=s|S}WnSEOAVfCX6-^)fh?6Ppv$*9A;De_6%-DP*}a?6j&@v35e zw-1;wOhcv7<51S+Jhz+A5$_7()c0EF)a>XJm_%}PmNM4e<*@2u4suS@{HljNeU>pu}~RTerpf7HF22)J@N8 zKTzh(4jdfOL0zm&mqZ4f-CSzGFfC=SOd~}hF+d^3GQKUEW6AkULi3Kd1))^lvqDq& z=$Dj|w3vWTU>~`l=%Joe0Rm3(2 zY)G##tYWaMe#9~aomzfkC940hefa!eZ2WHjpKNp^o`JmQw2Sc#2OmpnZ1iBLHa{jG zS^sjm#(^9?;5u&;_#DvDkUlFdcBeZDPND;3NdrN}yU=SGY+`NqS&=MeMQOC)f{aZp zmBceGyCALIx=t|R31aC7Ar(Fq43+*z(6D)-?wPed4ArXKic&F|*?j}qYQzbT<3o9| zwAe+oR$2Cth_;!s*ag3^Z*>esE~5%e2N6&~S}cTujM$L*-{z2rn-rycV(^3~q8%JC zR8r5hD!dUwX>lM|>Hp7c(v84mgFJ(eM}7uHWwiY-#bf&%AX=Tn17Ic1PF3C}#*Kv& z>Gnk)?~I%%+fawJgYRg=YNl?fkqgu5 zAGjM4V%PMIZ?&pB$y0iBB{en0L!dp`!+~j#nOzHSr~!1=+~*U0NwuiTpAr+yy(GB# z+nChIQi4X*hAx*)dW9=7ZFd4>0~LtT`2$9wDc}aQe!yZF|3os*8?mG1I1YknGYf2h zm$^-Aiz^`9Ivg+|5PdY{MJ-s4xYeuwveSDkgbOVS%+gUHCu9ja_nokAw9Qi_N2kwC zoPuyBdzS+_&=cdBiYvub%*gbKq9JRfvL-H#f04~+$0A4f4gXij7$qi|P3T0z_a^DY z%N5j-^w~t?X6$E|W)Xwf_1kMkOf;EFfjleNQ1MV{5@gO0>IhPA!Uso?DR5_Ta3$lH zmCP4lp`774En!}tm z=E?o`y)69OcW;=Ef|K8gIr|xrI}g#HzNJUOkl+h@tsndMpzuN0&_NaRW~{WPlgQEL zp(!3k(BD+<%luZUPTB}o*$@9)B@ATU7t`UkpT2DS=8|~!NP)7DZjaC-fsL=w;eo_v zWX$0@3fekvq%8&Gb@32Ju5TvX{Z9UaxXRU022-rPYEz}7uvZPdvjmoO7l!)i&FtL- zh7lKKXZO^rn&|dWe*dM6O*hE=j)z7pV9?fuMoW4rPeMp|%VBA?ZwTEc+2y~+5;olJ1h)Sp3o|1&6ga*z3X z|6+hY!Ugl-H`SL)6uUFUOsw&{0sd&tx85C?2bI!Izx&+@&Cw6$lyAo}8!qS|;+a8s_o>Q4LnA835|1 zY!I7YRdd7sN~{yYwLIaFp)HSnEUOmjD8Ou$?524Np{>l>TLT9|9Cc@xBzbxYio9v^#5rruEMHlSge zPUAMY5kFHeX8(tX-_-JdP-B9r;pKntz9-r?7En@5{-Aa@9|uzl^888tof<0=_5Ywg z?;1eth{!SC@NIk7X@YoERo;u~Fq_T96zK7bTqmfbnX3I*6f2U_Gh7>0zIMP-hr)c@ zp+AAgtYo@&K&*4O7xVWnyXb9;&)l28$Zy<6z~t)ie~`DZb74iY{2$~qCURT%F{ztt z&VP~jnaJI%Y2P7fx2R%&?{obQf2iIT&)R8hwAmThCVbb(`4uUP`1R}I*!%qJyTzR^ zoy9OEg^x@+sGomE1L~57{FZXX8CLkUW()ikJF}{e&OMs<$SZC}bv!SsC?tW0u`k}ya8j)=+H4S5DRlZM1`|-QF<~zd;$IlBuW6Vi8y=Nqf zbhvzL9OEx#x1Y$<7a-GVzO9J^Pi-sAU=XgZ+C5^#xfB;4b%M`GxCIm=a<#|jJgyw&LPH5Z zpHf?*D<*PxpMNV;N~d{yD>ciNZw=MVsd*Va%k{IYynqEDplI6($U5b!a)-rGgq~@< z*a%GV28rcc6X#k(O?Lk{=xP@D94MyT?ZZeQHETWz5OOU~ES4J*p5coAm>zJVFz>s| zrRZILR60(mG`j-YE#p_LFcz1Z72~SvNG&hgkWc=o2mdi$j8m#7=ru)vsn6Z}>g!_V zzdY*Q7LN}84eZiq*8C5XKe?)|yN15bHm>~3q`dx7XHmqTCc~0{o8&|OZL-t;|IZ|! zqHXtd`#x6{5Nr~w*!oq#F1wYOqyP_xKrklbg9VKf5%`UAeZ=bC&hp6tWa}C&GxU{o zawE1Zj*gxzOV~W)ev9`Y{@9KAW##)#;}6dFo@&imO znOqVXYbh@OrZid(&c=eK3jJXS6_LB-W|P-O+P0oHU4h22=>a`>c2uG-@}MhltAg zOT6j@LQTxx2GW_#kPN)d@PuTM#bg~pK0-87IYyfK&;fCY--oQgngM@FZq-CJ{vUDC z;=je=hnz{A+m4KyZt?%BC1vj?X#_%&!T!F$*Ml!`%|J*dS@-9l#@wzg*rJnB;vriEF-#8kBljJGo__=aPm&d!O1&8 zfFB98YlZn|^6YaA{z_hLr(M^V$)!ZLzZ4?%Bkvs(ZI2VuPWC|Cn5fg{mU+@4c$X1j zLTNIi*k+BM!o*1qlcC@}7|B2p?UX-0Yzayt+dKH4{; zAnZ^(`x#~4=NcaXgUi-s^YmgGy@pdSPhK=Enoqx;!lQ1*V{SF4|5*Y2=P;t9My=Ug z73hZW6yj&*H+K(tzjnd%cGNRL+AnVo*8G~qKGCw#l?p3g*Tw;b<_r1=&cb6DSDi|1 z*0LQtahs=FdT%;-ffx_S|#)ISlV1W0BqC z9-15kE-UUNlslae*}GBMx(7|T9QiP8#M5$ma&u)E=KCcciZx=9Y!fL2s_nFs%AI`r zp7cHjeTTY4rs+EH=~I@Qn1*napQwqHA=?i#!yC`=aXD|?pt!W{7EchkRF|gTa@sBm zT=~tz2oSd@Yssb9UxeJ}&6+--oHBAJ9D9O+gKcUpCBgkZlkcse1C2c6Wbvq}5xt7H zzvwGi!SiL4?g#J}674a4#C;lsL&Uw?H-v#Fm0y_G=x0ksES7qJ`1_{KBc-hSvV82b z)-&mzCfjw_eeDf}Z)yM<*@+tH2>^#<)||tvLWqFMJ~(+H_lR$hO@L4ZL0@vtS`#K} zoY%71x^W4xntPv^L=l#7lor%6FF7IBFfWhuF~aY+*}CKL?(9sa6^@xXx^FU4$~i?f zlb}fOevw`ONrk(h20#WU0eWIOZ5kIjl{k-*?h*?hyK%b4TW3V1`$+Y}EA?M z(>3l@8BdL9IMQ%vvz3$XSr2 z7I}}Zv2*MhQIpK+!k6wJWHj1^3pUaWcwE-AQS|mIuk;o|v6}ciRt-(_% zLz`dH_{Hh=pz20Bsl-XSX_GbSQL`3yv}*&~eIdDGcP+V6y7i7e2nk5cde`KPozCL9 z`IK7{MA}!FE$B!`2(588yZES>cHzDIq;baCv=x>OeSHnZaF<7rfdnj85*;J{awRa3 z;9KFwv)LI$S{_@0^Tcp-TAnj02P^s>L*wk&ySFA9i_NX~@web7beiimeiyLdp#KOC z$|-{t{Znx7Z^3831y>UuyScO9YaQEl`M`>5kZLpDC6kWYRgjJ<`~~dUTaz3d`!8UX zude1Xc#}gAI8RsCK=tB|4L(tvCk5uayaO@6&HyA}=}M%G@_%$BS9X^I=e*W!M6Wa862{%H%IUPXwL(c+L zwRjWPu)zkA^-;tav?h)n&=H~%a_`g8%#5NYRH;h0CZhP-=KPniiG2ur_U993~$kd zQIC^>1w+sIPGABoAF7B#!j@;wR_ob42h1>Hj0Z-HV3%OylH!fMmJ%(WQG@vJcm2{a zPUL(WIR6dcr2HG;DB=$Q$6Jq}U6|o^gyEAOl9;7UPl3uzCC3iS;3z07f$RvvkgeA9 zn?p1r!27h$fZf(Hjey<3etaZHB42dq-gA*&r|pf(zZB>P&kPW|Km}}hBHIp!VOa^_ z@gnp(?Vik#@@*t>_&^RjC6_@AM^+^uI})wYr2R>M!1Wh>iJ6tq7A)BO{&p*%Jrc5g ze~|0H!|9=ickiCBaM6fp0-y-GJAfWu(Abg2adOByLh!N)Ny#!)%z2JQr=YgZgi-Y( z9{H3akBwZMa)x(RTjKJ?-e+HmCRJ1k{9V%X7^0t5&LWkZxi_PMY1rg`Cu^;4eB9Ap zWdnBY>%$Eq-p$Ar#;hSd?5mTEc#05FD)(o3aNZ?~CEveVW}SVD@;-((I7;l@GnJ`f z<{g5@Pjzw#{@HAw_dNv701Bb?*W_&rU09@vZ;r8_$tY4z7en~G? z>QigcOpkqjw)d)hv$3C|^Ol2g{JMHfK@2r1dGBG?60S+N49{K%f)NWpSto6((hmEA z!@ZMvRi)OYQi04pBH1k|Ir`~*#4-nM#I8WDQh}m#KPe*vlO^@o!U6^Vi%y!-f|!{_ z_VKDqJZk$%Lw)Fh7w5S?vz5iso8l$RFT*BVS%DF~WSsbrPb||WFu6D(y(1JnV3)mz z6DGfR0ZnDU62hj~@pWaC-xLeJ8PZ*HNnPY7hF7~z?fvmDDmE|`e$;O&w#Y%#t-5Jm zGq6pLFJ5e<-gc%VUo{_$r5rz`qy-qzF^;>rPrVT^Ei!8S zK<-mp{*GF!n4R&mvj=4Odz=>=!2EF&$&W(5c--^#}*yH*k4mYxwu}i$liu z(r-=X0Vbvv;6eh>QjWbueAGE?CG6bL7Dfo~?dr$BYMNSHR8}sLWe$&R`SnF4lQ(cc zDp5?2!E90dy`oT}j=nb`Y0q#~;LJ9^7q6@oth76gS%W0>W`9J-`WvISt}ZkjjaG3Y z_ct9~w%bhpc1}1jV`4JwcU(MyOZ#sX$Y_762<^Ef zR;p0ds7pfc{V3GvmJ!orkj}E=La-6& z=RRX6-5@oEVIPSq>4_Hp;R9PHkdwH{4JTe=RAz)r zEdUTgRVXH#r&O5RtXV1yj>9N^-EM9BRaiFSSrJ@ z-`|KA$3yv&Qjx<-Ah}V%Hf2eifa7AC-_J0$K&JlW z@gAq?Xizyj1%iBZ+;0jKYRG7O_dM<9PNbq@&M>_?;pja>3-}bjSWW=uNUZEg$O-TZ zz1Z8hHcppe)bP6({})fMu1CMN^(vm@+s!wxJa_vJZNMd=>V=$5|4WeZE`WA(?c^r% zdUwaG!KmwXe|qmU(f*t>J-%*u@pygOUQ>ex0_EI*kM?hLt_lk=8{@Wj zcUF=#XRPnfz5viNQav)1bF|RLJ&bu*hdriD`1qc>7f<#-w5?JP?MGgNBG;eG+EP)B zZCNA3E??c?g5@r5ZTzfvZ(?|A#@(DRW-TAy2kY$t(Y>>9|Yca85`@SWD`j zw|{G=$LgMobAQJ5sr9w@3GebkLZb443R3n#TA z5UqMM<8H%yxov%(u8^A=1_C~HY}nzE<|GQf_kLoL{_*Vpy0~swFC^?h(zjPKxOxdp zCE+JpeW@2F79 zr|{trAeNsNEyCmQzpq`jLWQpwo_}u7yk0jR)$C@?-rN+Nnk>7ozWQ-#`h4%}-1c&_ zNm_rK#(%}me*Xfjd%o%awbFMB;#hZlpj=dq2-Mcv?8JR=xc%y>L+oIFZr!c0&}@FE zUNK#P%{8?o`g&f|;yQr~cvO60F>3IL=S?G_e{;0mb~{ROv)zhEjmISV+~{>z@B37% ztklshs-ukh@;GeVTrtU`ySBNhTv8HDn!;K^sudeMe*O5kecyLId*pQgnw@g&4@!w$ z++|hZhEs6o`_f)cnlPG^jT!?0<53s5rQyZI7yxBm`6(GZUj> zE0ChTyf&>KXx>YM5Dm1}$1y3FjGw02|M)xm?4o$H@0d$7F4N9p%xH%`+Yvywp>FSVNvYB&03 z<4y>6(yTSgk?S_vfM`=bprY=^`esYTu%1sr!gJM7AM12v*xu|u_^4p#quc$kQF(k0 zuLo%iQ7Nzo(R;6C{-EU9urG|%i|K(Hy4T`I$-ILxAn!+BE0ZHiwK3E>0rIPkNcD!% zl<;70yl-k>j5=Ugy)F?IX}UiuDcVseqQ;bp*f*Q@EhFK!XF^0hM$1O{8UqeXv+>>j zj*dg~H1BlANlA;g)8A1<40g9JWS&2 zol~cAwa2)iNFocY&*VuVRIqYw5t0t&l0IxDhFv|>0=9=fP+n@aIzT+=S-XdzSBA+X z+VS1~mY;?oM;LuMaauq2NzBBDIQMrBLt&V;GFu9WI+SZre3cjukdt@1Pz&MB0p9Wh z`Ve8_ear#<1lzbhAEF(Rx6a1OnjuitHNYM8E8q^Y6L3cyxT99471r_J5JU?IEfCM? zgx%CTzX$y*`u8BuNqb15;?mzJjlbdlK>7QCzoY!`D)6~mU>(2YuR!rB%s4<2!CALJ zpazG4!MOjS^)E>)P)E!d0PrwG@G#rIhV=j(khj>Rn||Z0L-D=&{u}4-1ODc@R;Cel zPM=}}JPZ>&?6);kTjvV72h^L(irgD09pBHT3W?Gq%?B zG=oXX4$75D!@cwHtz3Y95D~jiMeKCN(A&;8+4pw0L7!1nu*?G1O;@GdWMiN`n^-pifmJ;I5z&(G(ztS%g(toDt^pDfkz z&F$u&v#Uwo?6irx?H;3$M9pn3?-?lxvzc#BUK2J~JjX_wSH85dbZ%c?#QOalJ(zzO zzyGm(^<-T)Y2Zv8ei^FXcFLDI<%^N_bZyb*`^?|g?Gb7wTD354c(ZlgKN>r(oMHdn zZ{tV6)T~ERD)*`5^}c-$Q0jgbG@UBgwkB~(IkvV~wVCR-`t?qEu%+tf=y!m=3;6kU zHJxP2e>FYE>@?Qv^qlnj^VSnnwdm&(co@dEXY^`8;wz|b8x>q za2Faz$GJbkSeF3eiUUiuQIwS_g@nmHjpVGY$c|S~mNie&IJbn#KV8aFX1?{*F1u-g^91VRt*6o05e z*zx-wt&Q;d_5Gz3>;OWx2Bl{{MsH#lrKg=p(0u48@og!YkNDpty!24^%4F!2A5r%r z?o}4P;@e6;OF~r-N^+p$1g5FSl#Q3%guPLpxK~MtE=TH+bUM=#oe@#&)i~!0!&bbm zD{k+1o4-_Y-#HN#Impd;dfpYt@-kNL?b=NgdZ`;hadTewy?=U&l@`g^177Mq&+d-Z zKQ)RP@enDLvplsfgLqkqm>tjnH*;KRF`DOH%EO*pZ9t#<*0pTY_#&r%Nr#k#Iw2Z| zJQA6-svifF|BtY@0FGnHx`f5d%*@PefyLBfW@eUbk;Tl+%*@Qp%(9qS7Tb~q+kS6m z_Iva1?jIdp5gpNe?l~u`vTkN|=H)$6U$4%Yy`RBuhJ2-hKR0Sp;8pCNByQzZWWT8E z+rPVMk#%$nL&cV4!M-#7GJ|{)cA;m)&2ZT=Rb1ihMd<8M&6#a8V{hsPqk_T?_+(Dt zJjL^AMD91Lh)7V|BaG8H>OL6hGK`YzWK69JEA*qgOrX#g%eECmrQ|IyHRScGZ0m18l9hpS5+7`8db7Vl!-CW~Jux6vH2n&9@lpgX#;`pQ=yn3sk4e ztW+fuLZW&R_8dl=lN~#&4_bTMclwBw+^3;AG$~3OKTf&-xL8Y0kDS)KwKQNi1pUfG z=U;k|Jg|7%RPDsOrW%l9Uu+^52wVr&xaI~Wba}+M98-fUk?u%qN_u2)W>327X-dC* zPC{LhVeoQ0nO7&We8-mF1IHEXON6$--bwq(Yf58wM|7Rn)xKL0XW;(3Sr4;CqY)46 zvs**{pl58h`L~Hr7H$d)jEbrG2iI$NNUHvTas2aDYAg@Q>_ANkzixsmv8FFpmN z`J6k*ZrSq4b$EMnLIX1TIK6^RWAq1A)Q9ejUDc2gB7`-aXLY&-_~(hIcirmT91reQ z@n^qo)(m@78k3xz3&f;P`!md_u5XVzN{3%uw8tKAzJkk9UL_|~AFGNL?J>C!3gsZR zb=Y1ut(Z~Toa9f6rA(J}+VZ3|tyuJL+}}4CJ8x$*u~h!FcZ)e3i%s20g(sYLwOHQ# zq;Ir|QFEqLdPG#6@x7FY(=KH7p=?7t_TAgvthhi_0b6r9yD+7*(RzZo*3xH!Uu7pd z1wA{1=uzi-zJk{Ge14>~OFK43=VIPt;lcV%9SxG#_3Q|(v7>3i&2-^0#C@^7v*P&e z8SlWnN3oQvXvUns+4|goZ@Fold8r(FVn?|4-Q>1zD=BiD`Roi0cK=R=FhEJ(;2N9w zYr7i4mQKb6((5G388G>?)UErJ%zG$^!Z*z-znt{dOIoF zyma$#Wlbs$T%O%~wG%yiwd+5ECGt+bpbTZKvI!o)vye50k?=`8p5nw8nk*r^a%3C` zJ8r(cIQ<+S-TE=whM)NJGYa~Fr(D!HD=QRLhAcTLOqld15~@SLvUWo*CgxAmeanBjiDWQwfWTlz64L{1Duss{T=$fh4BX{F!RyngJX~Y{n zOAd<;$41odfL*p`Hq_oKoS16BhOp;GE0=}SP!iUz;itlZOue^dQC^}ZGgG!dAPqzA zs{-c%()cwn=BR+1BIK)=y6C(-EG_;zqvbb?W2cRMliLyvjuHKma9}V|nZB1Wjwp3r zFEi@zoEU_kjd799Dw_Da?b1W5I}WR|Yp%L<5XP(g3%L_HvZ`TWt&rIvKx#;Hx+xhqXmb=NWmhXw@tph$%a5ov-J&fjJ zYg^yj>7Er;eVA%3vKBf3m>yDWX1OquBX$m^6CIkI$&*4SC!Q)(K2umlbXQUmY|Ki& zUD*s7t!GT7>pn-G+-C{5H{VOo;+rh>q*F^uk;Shjyf`wc>MM36z(lNHUR^>%4i{;m zGOrGtb=F4ZxeYxSZV)q2XYC|Rm|0o#TD<(7fv_c}827BKm|D-V`46{FtLM?i4v zYu5t>9BGCw8>G$;Sw*=z2EgxG7#TV4uYi#%zXl77*gD6 zn~#MB$9Zqry#67rs0-bc;^(N#mcztwv**#ihSlzUcT&21FS0BBp%+I;jC8!N<#|a% z+UaC8n%uWxgyOSi`!PUrN(_OybF{H8-Cy(5=sG4sr(Z;X8g%xJCWVMRVb&w|luBu~fd3RG&00H7!-pU6(#7iaq zxCsAxddcP6D!tc6Ved8Ki4My`C(92VE=PymZADRa{AP?!@X0dDO?<;TJA{GmGtSx= z;Pz1lT3RU@C$R(F^{zNDo0$u8fe1fK$o34mH#6&n+%|c=xE;MNx8(v!aO5Xn#J9Tl zY>BTCH}RdvtP4|&zZ&8;2YG=bv_y-valaie`(Ol+L zrZZ<7Hx@Fuzt;hL8}~Y#QnsrD*=jDbOab?*e1Y$^yg<&2{y38s0~viIyh{u6PpE4| zUejhJ*?RuEDD8o6P^gU&lFdy0`*WVCuDZ0kN?=QD16xA*dRn1!t7oE=H%sHENrTl& zl=LtA*3|yo*mi-&uKxBMhf)qS>7UD-9mz!dgTBK`?``hC?mRj@WLvVmxI%X~1KLvW z!M-uA0%LLMQXY#2E}0n7hTq=lwa%)IkZ|~*zdx;jM5XxWpI57uNX~lNV6@NgRhu!}2)MNWdSItu?zmhM z{qE*&BkySgTsx&QJfLGUpp&Q|T|>U-K1e%Vj;-fzqwZ;w1|Blw-_p$qQfOva=4q3> zzTLQuCtmT@-DZ6fPhp7ZmaGBSYTK-os9|hS$L684Sz!Av-2q5(uX@}SM#M=^hq*yu1|<*b!xV!R0Og^ zwX{REU#mBn0g$4*%^mE4TT!3`&z`_z0ldSsj02)e-yH8;ODmLN69NLQ!_|+CWs~I8 zFFdu^S!U>oeY~Q4?Aq496xns`1FyaKlXYwXrIeVP(`FMOlq}hbgt}kn!gTPpcRQJ zNt^$asH&6C`CzwSFadd7Es;DNb0$`CyLLOa_Hv~oa{5S$5qm~Navd}vbuaSr!a-{0TE?q z8NyhcLp-4ASesa_o+i2iuzp*~EBBF`N(D{WzR;PzvS6ZQG71o#4@I@PPiNVm(sLh?O@EY(~5 zD`XZF3YlaUN zeTEnbg83EMJvrqVzhZXWD)k$!QK!hG9L2v4w0}5o5#%!j4C-1wtm7=s7QOmah8i9j z3VXiG`T`xxU9BAqs;ep7eK5>r`aoJg;~x(gd`#y+y;c(d!7v~Q(|sr^3WGdZVu_K} zRi5WZF<+>~Kp?F1d83_i=!LhUJ5 zxjW+hHy;^M2xBT&CLL`^iT7qi(tsE_qaGChPbxUhM@ zag5Kc2qg4*+Ws_{&;Pl>0EA?}M(>;+pYDM3zG<7Uz^s5r-{ot^={1=@Jp^<^G6D)g z-m{Nk+&lfgb?+;=iqBhH3ZzrNQCt|*1b!kM;zVX*IQoQ6;_oNn38Ddz<6uxafggkZ zgMPXFsKoE|NWVvi2UBM^rga8F?^8Cs8Wo)RIJ%lRdfGU;yQC&UgJogL?ssnt{P~D~ z7^IWqW1_LBC5=X1zD6z4jK-?YMq&2LteV05no_SdRWz>DXrMmYn$!;RMgHhP{m}Q3 z;piD_s+;2Iox>5`?s8{CsELh3jPGA`7+DgBx%WiX z_x(N?leU`sCWWlu%c}n&Km>h|V5|x_f}(6bqfbv5Kc@i2IvAf3AYexolf9e$rA&ttr5KQiF}Aevf`V@$SWpao{3! zbti0D#6@Z|Of9j# zFS&m2Ym%jRyp>V9l}|ovNDn3*-ifT$;Dy7$f1-4(5|8XrWF#@TuNU6DOkaq*zm2ke z{;dB|e2&uPli2lsYbpry=?RLnVl%IZ>l>wuGVx*x3ZZ#OyjH=t{2nceA`H!mAMU#e?8>;_tle3i^1yWbNQy3O>3 z#6b<*-_|EB;eG)E``b(d@94Q{%H<8lvsAw!VFt1t@u^;pV}hnM{a^H)BOSr(_y1Fm zgDwMh10t=0hV@tFnJ>E{1A!EeB<;6eqJmno zG@t|UAQf8GO5oL~VJ9TszYkWtY5kG{JC8K7$fablv#>TX(Xpjhq(C*InS2OAR0)ke zg=P}AeM^7yXBBF>F`HS?$^%Qbz=0l}cj z6P71LuW&q5RBsE?P3cB(#yw;kGkeqB8^$q=m4W@t(uiGxGDVWM-u~(aqMRM)_z=S( z#_lpi8D{u4x-THqEV9kS_N1*Q_GT$gkE@F zp`R)>1wl7C;`|hW6EMg4)F)g*ngI$a5pLd-X8DEoE0E8h_)r|A8AidYMG{e^J)=*Q zuV7Q88R7dF1-Q6>i*f$Him}w-_-)l(Nt>RoFQQDv{##p{|6G%(f%gWxLOZuFm)<5D zyn9+(2lqSgi=PP_Z8MTyja(`{)7FN2L{ZYv=%t=Hx1vggP9cJ%aDvF1;4V7W(hkiLh_ zNp8C$j_}wS5{~e0JPO|&Rl-y}`}b{$DX=M8QSDUOaeOhcOMBG4wBu?#5L!2;J z!S!3v^rK^o03Ma_?Z>pt;+PtW+XKNRO52|?t2Z0=Q55xOo+RcV3^SZLG z0`CIuxWG6R^~FmDw`NnKDQKAe<`9k^3uy>gpYv_#kCuN*ohP++gvsRGDXS`i9x>`# z;vF%X*3B@|6M-Hb*%BvVC;d@zN5@9^w+au?Aai}&ut90n*Y~?u#V^YL(xH-f0@U&D z@^2mQcq#*0f&TxnV#Me$c=!Q%-q{!B4}7*+8_8%Q^*0=s z5XtqixC_9KP%C}D!?Ahajf<8;F$yIqR+!@TGg>vID|8QPr{DV^3Cfcgt~l>g=}2bB zaxm;D=28t`A{q%qodYHktcwVOg$Kjul>H?b+Ve4!8ZOYH*WyHq{G|#ZHQ#XD8qM&M zmzvVfivyAJLvA~&IM==T8JC+_5KwG*NR|>b2k-9?%w{aYI8kh*?&Kp~2t^yTCKGHZ zCPOs;pw>$;FxFx=HC!0~L9O!F{1@slUUJd-U#RsV@%;-K0uR|(HrhB)VVndg*3wmb zW$L?%>hyk^;PoLz$^ks9tVKwH4DAx>&|#ceFpQWsLueB^BJ`b1D`AMZLwI4F+J4Ki zO58eCO0>`c<@$W5C^k5B{+yVq9gHg+LjU2aWHFjw)d*e>WsE2tP3%--A_YmRT?q{k(|b& zP{82PScZ=#OVe03sxmCb6{$#kLwF%FhVsi3_K}>^$lybGNHEP5D~?NCZZtNTpMj={ zDr=}^UEnA;tEK1`(l89+0fJH@IE{~}tMiieux*Ay5R4Ir@EH5fN6Ru9SIRJuM^u>! zUBft|^jk}|o&PskJPe!n9=%WM8vZi1B((1w_IjCTSp|ED3%<5$C*C(aUjuodS;`G# zx>(CoRSu`ehp>*SG1c!vF5gyyx&(>nJKPFp8jlaVLMC8dRq(Zu3~3(H9G zC)sOK#o%RCWuq2F1ZH4yqLg0B4{?13BqB-8FcD?FIp|WxP(r2@N=7mMRCvZ_vTD&i5I zG0s* zxN53tCV3GO%EKNwA&tC0AsYSZfIWd*g=Tj2Ck0H}hWbD{bLK)?9_&AvTJNPAbAU3W zuIiL@a*+xvjf#rY@IO(DVE>6qf)qkYyi`Y(hN${43v}y%7R1A2{jp%WGa~VsE*4{K!pkH{oRxt^-SlcVS*P*7 zLRm)Vd!XE<+Tym84A?dL zWo|Nt?mP%62|lrqtTG+_DcfuM8NtMqD~dJAQWEu2H1%K}hgVXCD)~Z(sxFO<{mAit+do6^s9>27Nqffra=KO+baoQbJxqf=(NqXjFCZ5hNllI-b*Y&(t; zpdrP9!Iu8mbs8W+`1R}ui5Bz8qhFemz@CkXdGF@_8<<`F^ItLJ$G7sQ4v}D?(EuI` zW59t1CGEo|m`U6iJ>6V~DxT6Gr6F)Yr4*__r2s`i@Hj`lc*bohSPKjVnQd+3M{EiL zDW24P?oHOvAn+m}C0_RhhFDU5vHnAFEGeF+r3;c|$F}jduAsr$pRhd_Ha-|$^) znoczIRl)=QK`Q453Q#?%(vZnIs$F0vD5;KO+Ntr5V&7Ba9K|wH6C8&SVPtr+ph)&y z3nC)p(PGetS^05>&YAx>#U$#`W&)%yx!g&v-i76RgGVfcuE)UrB zlU1=bEU@f+E^9>Sc){NOH;@2tCJrLSBM^B_2M=aoW>a)-c zagLYe4$_(Mp{Y@mvOKTexg^+t`@h4Im5XY{WBe7CFa4nWM=}GQk3Xwak}{^HUWIdo z@Nc$YWyp-w%1Am};U)ySTu>>V>@rX5f*^FsdJVK<)Bmr}{O$vmcnzW$a)O5bK_&`Y zR?4uUng5Clk~SS{d_qYOL%@Sk?og7xctyjtwa9yS$~!GUVAUL%aS)$A-(4f^iOr|3=|-mM zh|tKs0#RP=!k&V1VyB?RN1s+7GNlPOzpz5PG2~hS!nZeI7;snYWpG9-1!<~gcXJ-b zRf(RTKxP~J?0Yf}@yU-m@PW9r(Jl`OSrtFVy4xI~bp5+|>Sw>bhnUki@;OHz$%mH) zGBTtv9+G{(Fws^rqgnI^@nNuR+tblkkH?O1j18hZlO(eKLfuT%0EQhf#-Wu zNHe9O$HTnzyg(WzY!OT;1rqrSd>=Wj@yoQ{C|mZ@%a7u<)3fQ75@^&2~D&d&@KBk z@;Uk!_%GajWX8lw;A0S(2w#s^feIP&fh-_>mz5mezv6N2V*K$!Zj@#pIS=DIDZx-b z3xOlhv;QH5-2c}g%-@a)zvfroLQ`i9KPS1L1oM5ULHz9)jz~?HAy;mr5EJ3;eHmRe zj0@H+^puv@F~c8XYkn$!B(V?{0%a?o)_$!KxBsue*#9V*|0N2X^peiw znY{rD77~5!hjGS?{WFB?{pLfYR*Y)&r!{zOX8*{!g~oRTw#Ghki3w1SBHSAa(s5&g zg1e?Y_daqT=RUIe6f+R8ZO!M|s(GU^5b12abI|IDXV5*4cMFh3s*rMMsS)Ffi`D7p zo|S19IOrR!)nf2oKZ{smp4>*6FvDlioQ}YGMOBjU;Avad9uL`PNx~LHP6b6^L)aL> zI!pBXrpaA*Ax=Bx#%%1NmQdWzvJn{$6chvJyE42r;vUPBvr?XLfFNY4zZ&RZnL%A2 zi#3jfR`0I|p@g&1-=4fu z9aC@*)~qbnA0=;-vLPU@oo6?XxavSc+hxIFQ`d9+Rb4X(0j2Byi@-~YtJFgf2T`D9 z@zOLD9l)Mt&NKaOE&SW)EkUcPxZmO?bE(I9d(XvfASl4)YxXe^rt}X?>EAGVfYN8> zNy0zB)5$uvLV+lxb=huT-wOgl;{sfWzZf&$g(7th)K7j7-{bhYW<~T{Wi^>}gR@XI)n^0K0 z9AB+S_Bb}!<01eq()suJrRjNNynm!1`Yui>K_dMJD7)WsKUP*9f@k{8Ib&;YC==?{ z5GYcwv>lNFh_)a+VAWzlf|-4saGu2tU>7k1@Ju^qWV&T|$fWiGi6NA>GxOiNUPeQk z(Sv0j`|wW3U(7;ZYC@qSIA(NSaJ2eE@=WXDN%2fSArzG@dTT-pbrZ@_!qaY82pYJ4 z?UC6snJL-fnlWLzIa$iX@d|9>27caXV|9z~u$d4Qj8wJrFPcm?7d{fg=ErF3mAZJk|LPUhdqXWq zaTcgG90i%$xla}jQ)`JdPuL-Fac5V=GRV5qB2^oST0re+?Ci}#;})i~TghD!!gaAW z5%x_lMGt3uwtD^kv?m16Kl&|(Ou^&@<4u$Ce&9_4SM1X*N6Y;4^~l-jj)~=?+S~3` z9YZ|+e8O1VDX5_jM>Sy}_>+n>++&Y(waO_4*_A8}CE2tn{aLy?+6Z6@Kn>L#Xb)1(zCQ_5FFry6;X1`34Hg$qJ z%f4QiIR)&bB{pLrj)oA9ii)~))15ynnITO`?+xV8Qj=9r(op{iNev9idzR{qrcl5_ zS83ti3HzDX-x=&k48g&ij{2aU{p;EfM0Oie5#IJJE;U|S1S_L%USfMCUMp}HMZh7+ z>crCml&~v3^*l`)#3h6nLx@?RGulYwZPc3w%|(1(R$6{m(h?4X3V=oi@iQ;2u4R_9 zG7WniIikM3N2(G4F8RZ`x-)piED1gSi4u4?&d+*~MK%E&EupBaTrWqSS5^fRo#&YEgy$cI&rpLJMuWnJ=MQ`c13cW% z!FZOS@+c8B2H(AQCe6VFae`foj}xImN9WPw`E!2-@2zsLrQ$=1-hG|Z<_H*w!+LtY z-^1bz;9`M}7DjTewq>>h5o?uT$(@BZV$GD~9c&OGhuJs8X(%RGA>X@#W8bc!DX-Kj z$x=*O4RTg)o8vhuQq(4w#CzSmV@jSUH@IS3eJKN`ixSAdbdk*yh6DMi$Y4SmW5j1_ zd-c9KFE0y*o_aGf;nNbXlMR-|7d1+~Dw1JeCG=u-9Bqm0Hq5%+d z#l<}mEBXctJb2JhzbOOuX`aZqG{$?wfoF*(@1B0rWqykyprarQ;(d&`4)#+c8p%Id zU?nF4ojDTwk2B6_(D~SPF8K{ODTou&1XC95EzSd;6g1R!wA4b?Uw-4YA3BD2h$YBp z!G#B@llf0tOP8ydtcfLe^0^}13YWz5yR2t^V*j@4ZJ+a1%RPkPs7Ja$!yDwP$NWt3 zekHy|gk{%>&O@9^xiw(Bj6yAVR_Ph=3;2knJ-bbnlHSdS)8|+0Pk-HaXl0}PtYCyi zS=vgRfD|ky2*xWDHC_~zzh8P1B66H4e;#2bB*nKVFS3M5+{S&xXHb^9H5W7-CKV`R zj9Kk{j$0JOx(4Ni{Oh%BhHx7x#XK762Z!5^a?D^F00Qz1NDiY;&)>ds#i z1{7)uAgqHS-Ty_vW4G}zi40cYUj(R*pm;HH$DKH`y}-m3pZY$c7llj_H)p63$gZ5Bd+=Rw$0^7&thnF)b? zt!;!{*b;-XKzi<@o~8DJ{&fyrl$w@8HjS@v9~QzSr;Ve+8K8p?x9Ee%0#@8dc}q-b z1H61rY^DfsR-7cA-G>j49l-q*%q>GbSC`ETmG~@RY%ve@m7@*4+AQ|ZKZOO@5nt<* zdlsfi{+c0aWM1zhwOB5QSMYR(XFf7CY zno`68pH{!FM`fm0SI#mtL<4ci2Hm-G>U)XIrZMp~i$)~L4CCFb5*ip1$mG#9P4_<6 zjrG(?oh4zkG>*;1Zu-3$(_i%WlOdjo*=QZE`7pPMz0n!5|)(|we}>LBybwMQ3Zh| zvGFNgyk#DUWQqbkm@sRh=`sw3Rel=}qiL$QpU)6kBqacWrPYSQ(7?=~%r_o*#lUtm zSVxgb@E<}&{8{cQPo3mbx**@ohx*Prvb+`e4)QO_}Z*{f^Ky^GY z-F|Q9nEwGYJ$!MAcP;%J$Q}z9`hGo1zWv{%*ck5ad=s-@KmMy`U!jnMK`%H6$O-KK zsBqH26{nqh*bs)%T$Y`Ao>WM;ibmZOEtX`ZLPTSfS-W~@B5nxl!TmP$^8y)cA zQaw_97@?`HC~;+k1}VaJxjFV+w?cNM8^z1m%;9X8Elsy-qy72k0pkO&lTKnWgALLE z7b-O#&M`^wy0Tdp_q#ziY1<><%MZ-@gQ<(F!QCk5pUN7wSSLj%2uUfFIDyzh=?ZZX zf{w3&g{y1WIGyzMPQk}Ub6GD_i2T&?Se|*oR4fV&o=CD#5ZPCY(NqNKN0ia>kT%Nfzr`XpWsbIH z3i5&{8Rv_d@?6Aa9$MlCtjD|bDL+!a_%kf84Xq5s5eitZDXj@DEUe&ZOClz3m2<_t z-3lW$v`9*A$H4Mo1)0=4l=UWHwt-p8&-TXVE1+#W0Z77Cs;wXuYR20?v5eJ?WcdW* zD{ZZgC_k(r^f8;>=!22y9?nWdmIekOgk7XR=LT?Mr?6J2tJ;+R5DQLxuI#58U5%t~ zV0*t2m$^_2+~vxdE+MQZ_)gx>0T?)>NPrl3b%KLs4%G7Yf(x%nI9tBMV2e(;JU4~n z=H9y-l+Mhx=x#$ypb!i;jXbo@aO*zf8&GNeP1G#Jn}O(VQ%}-0mxQ2h&kx9w$j@~s zzi|g`W8TFXzZeKSaDvAH;7mH|enM%wi@<9Ra&s}KFW~Op0f^=%?OV6`KB|!^2!E8D zRcpJ}hFhN9yCd|))q?M9RWPPfg_(Cf?1`uZw+=oZd!zwoPvx{^eK;S3bzRwT z2C{O8u~H}hL&Ml)%tMJj*Ogg)>Tvhv!X%TI*1lPIqMg$#XU(NWmZ-1mU9+j&b^c4` zs4t4!EAwqM$jL7|)kM_5L^Ax`K;LI;4M+JkX4ORweX4(LCZSDtDgsek}WP_+Qx zf2yzkRnP9LnX$_MxZtDb`mG095J2XT=>0~bS0 zzx-s^;=<{CpdvjZE#LOVn`YXT&i}LCo()QUKkstMl=w&JmdOYW3_naXR>mb<($z+h zeg)(U(&w<~Au{7~wg%}F6yR3L)G56D2UEuF+G6Sr{|l^t*Rr)1(I} zo)7_|M!P0ur!Iz-vC|}6t!@BT_bDfbRnP*L5rdDSW%T66ZLq_$pCm$dTOYcc6CxsX zF)5bK`^kpg9ppb9`^}r@VgfAJ`5O)d1nu9BnFFiSsu~&F{#CPcE2ZE5I}5?ck8cq) zsaZ0%iOm?ObR!{6lSuepAm{{jSR3(I!tD#cXZUSnS+44&J0I-gJg?}dC_n>Xa9u^E zz)5*OW}l5e9^MGGTfZ_iP>Ipewf*SBb7U9*XD#wRV#SUSE>v(l+{imL>AYC)$B`9(@Z_SiBsJ&AsHVuWR6;SS2)vcaG?Y%QWH^n8 ziOMJgU90M!p_^;n`vQ42Rqmh>uvA*F=O4^_7N}!CQi7n8%T`d;YHHn$j&T3h75A*~ z&*u&*a4%|psCENZy8HP362{H58?m;gT$fv*ZSbNbLc}+piaS-|9_P%tK+2BJ7o9k&Y!OESR4!eUHeIa+) z6nQXiJKo66WB^fk4rJ9V8ukMM#){o}4UW2LLTtRy|gz(qdJ1R8k@Tv)X77zZoEvvf}p%(pJRYS+a{*-&c6qV7c zx_t*oFy`s{A4lK9XWU*>d#El-J>_d8D!$$RSGCe45wf-sV4>trIuH=df1i@BmS%Ql z%zqtO|Eh4NE$^_wg##>1iPCYn^s?a=(II}hcC}K1h}J3^+a#uAOQS?`M$v{-CO*FgDZ`684E^mmw( z+}o4(k+KIO$xaE<)96*RSK#~b3f?Z*3lhbW35 zzpL}UHp;L{N|VQ9h%pq%%{>kZWiyGO$Y?H~t-0getGzrvPG(wJRb+5L-ssn^Ua2i~ zQt!>R6pPb8V?6p)E=Wtqfemv&Cb&*UJ8wxPCYPirG;W`{;$2W>Xor;KC@j)(U*M~u z%YPDGq^Xm)DBQ5iu*Ad7Fc*~nxbtkZFS4St)D3v+_C~{OJ`-LfL1QU6G-s8SZD>-S zuPt1X%KG9&7E{KIWm*7Dth|zX(X<7Nu?B67mxtO!SpyGC#O6&Q(gxQ*l(3XFeSeaq z>9>IZU10Z(Kv>H-W~Jxb^T9^yY=5OBv;L=-qveCqTB0{yh+fz?C$#tD-^}kmFSNfd zp1(TecsGNLCHC$3zFf8%^y>PdNDp1q=DywTuU|L_e%yyri?<;{g-UONc!dS>pMqQ} zD$p4;QQ|dF=7VGJQ@9QiyPS$bG6g&aRrX)Yk@}1KAuSL(=8hZdgtf7Hl+iX{G=xiy zri8Q|dEyyIDlg<$t%0;A;Ye@DzutniuTj9R`8)P1R@u`9c_s=U<1uX(U69Eq+mRK* z#l*)#D7v^J=aapHM{$1G8f7X0B*6sw^1z+yNuk|orcN{05@T|(CYVHJ8c$cg&E*$4 z4$3#xikfzOR&IkO%fPnp3-{BnSDz!79y7V90~?7gMG+ z-Bv=glZdHZe0iy8TAx>N+(z62g=yloo8Bqpu&2?Ee1PD-7n=&nT1kPXV8uzDXG%=) z`+itQY`kW}=dD4LRe~sM^8q*)Or`D+xpA0+p)VDr=AN17U)O}xd+$v^MkZ z62sJ*ZJkUAMRJ(*&4Xz+4MT+_dAi%VjNj-C${spS-!M{Akgz!)eoFEYW9Te}uPjd- z2j>^ue^c2{N$P5+TUuJ7E|$2uvnp2#$5D`ql{rZBJp6TKaE2OPG$5D#a+t1=B1J3T zh-XFJh=z7p#v%{-ERZ$p9Hrr$MTFWhCo-y)TIW;zrKPZpr95@+XH!9S7tQy90Ee=z zh!t)u*Zsi2mgem;E(XKFJiF*aLP?)Tuy$gNYSe`Kofg~vg?Z~s$kCti_P^a+3QEDN zZM9Qup0aAt7oegd<;S+dcyyCnm~IhED!9%kC@Y)Qtd_Nxw3C0TMV^kM>{)VrZefw| zFs5sE<1nG?bR|RCaLWc~p+Ii|FLpau;^Rx31lMwV?=$r;pJh{HzBvX<@%iCU=Cb!$ z3JiM&4nW_#E#|r&6?UZH)t`4a?>He**`Rkt_?@Y=A#3CM!H&Cbu+5|>NAAkc< z!PCSz5hQEY39oDWGremuO*Kg!q#=zK9OU!cjgaW?@)6!t>it<;*+VtC%UxDOO)jH7 zwxE{bsqGK@Rheb?JQ(;j+eEqGsqde)XjsxL!k$oZ%Z#^G?Hl~~9RTYcm3uB=T%1*_ zD|>Apz1?UlJ4fY;D)~MMp}U^*YIII0Izo(g3j0&JibbAst!ns?;@7=I$KW)&d4h)? zaO{~R^o2cqwaBM2Q~W3fYJOEz*gB01M94_R(b`(oOWW3wKYx%}D~_BNG(M-0q1y2N z+_A074kDuuYYrh@LU{hxC8c6g;)ALW=pLGs;*5JXOXCAYB$k2Yo`(TQ?VlJ6#EFLI z3@qg^4Gr&5>^1RjR{eu2yE|%lRw^|Ck;XwhjS71SA5EC~S zR|h*yJ6mQeS2Mf6ZhO^H^>70$7$84=#K#lHOZdVt7L`$`QS;$yq+h;6C3Gbe8Gmet z_3pZVbsRmmlYa*z=HLUgic7mV!g*au0EmCy9}C~31YZP;KxfsUSgKe^YPq$!Ly{_h zW7Ca~V;tzRVl6?a2Z32QmLr~4hrzy$IpQ=0pjQkBMA~Ykcu_TT;7KwcTT%9|`>GS- zD5AbF)j;tWT~#yYY*7Z+w!vkZItMMU|CcVoiKFFipdM26$?pLL8v}*o{6qL3$%@Vn zjxK+-YIa<`eIN^l_}89+yZv$2JP1pSFewmPn`Ie2LU%t(Tk;LD=!$nQc|J~)(XTbG z*US6_LPtUNhE;QP)bmsnFshaO`5{?dy__86V|+Dyf>w~c?SYh|WIV24cAQ457onJt zDDH@k(x-1vH@hsRTF9mBxjmtd2KDjBvxTPnTz4X|=(d>9l1!X%sH*h3WPQe9$$wx0 zSCu-ys&PAIm??d}a9NmRTfaV)O;hKv+t<^|RZwbX>~%sVX#%`lc?WOT9EMkK4~Kmq zbwylIJQ)5G*k<+OXegb4{&k;1_Upe!X>oI*;WofInQ&ls_n$F`y_=n}nKN)!=I^rO zTlV`rINdv?!toNi&Ebh05FAYf!s>d_66DSIAXGSY=ec97ESuM|S0>Z+RoOyi5$tkk zUnZl`eRp`@y#cR~zg}+w6Sk4UFZ1{r&bQ$f2N*NUH(*tT}MNknQQYE zw))t6kDdLEy0HL>Mps)(qsjN3`gZNRRC<&xe>8X4z(dNu=1o%Vq1{yZv<5u^x!3IQ z!WY6_Q;qOlRvDFH_F!9RmCC%rS2ixVgS!Q{EX6Gob*HY{FzT@K-3WNN;toukV3gX8 zLkTA;#eGOBO(G5r#reyT745%f4z$K> z^s`uDWdXdh+&sMJD@pQ@+?3K+Aqrfb3Vu5?59xkhoCL7Uw7%(qG~@KO77#O#F_sZ< zPSUUrs|@tK-+nz!7x7|#-2!X~LGDmVa&5+3g?Fp#R-nHkY3$9Ptt@;Q7H}{uKthR@ zRInL=)J0K?SMDm!mAcSxrf!oe_N#yGDDLL|sxVo9WJ=30EQ`4z!q!r7$)2X&5;Mmb z{|o**>7BEbVtOGq6;0;MB89vZZkA_Xy23Z^*tl#YL(Zhgaw?*k<%B8?!NiF1KqEup*M0E>?O_& zWuJ}7_q`jvr#~Ep;|mxS-}eusCgO18FrLJ6b4(Cc3D&2bX}-H=J?`Hy zJy28z-N)5VP{&Ff7pKA*-k)}GJ8zrSEM8%1kmPDYqV=+Q6Z^hR{a(W~aM$qOA^gU7 zQW5jzqX%AI0s$X?4+$DnQD66`yWXv9^WB~hpB@8yV)nbe=Yef|ZC##;g<%aY)>5AU z`(+K()Ai^R>hWsd^;De*A_L1{7v5SQf{Tq|J}#8Cp(y(lZ}2+xNB;H){6B9&1!F4~ z-H;$4K_nm`*uWkOSh)MIZVEW^0$!i?Mpm{=){bTtSL!y7=xP{(onG9ucGD;{j2O@Z zooszYjGyVjxU9aHBykln);fhqC(5H|P#Jw)OaWxazkoc33V46iW2m}jIVsKu@F|N6 zOG2Z-W8jRCS>JLBU>JbkZf+I9Dh9wzd!Kf!KgqB1{xCE*Wcg*tSdWz%xVzaEyg;r0T$7 z^AceC1zPWQIGw?;U?3|HZ+_I0PXl{F5GqKIG4gi&_*Re`(65?Fpsp5k`g07S@fSbD za!8E>#-@{2E4$L}_>!5`I5+|H&KZ&YS1ulLt)#i?siw6G`_@PkV>Fln0jFOxEtv_7 z$1adzq|dg8zC{+YqJ-CSL;Y|q&-Vm1MylSTPT@7_8oX*yBhL-<_SI}r{B3$DB#vht z8K(eg80s;cpshB$y>VWt6(E4#KFYjdWBjyYsArbUmwIIj!{|7|@p~%)(+lb#KKBmx z367H(N#JvR^b`CujzJLvRxW*NMupuiPqm;;F_hgEN|Jr3WI-#TIIz6mO_p2H2Wfy9bJh~qol!uzZfKi#hU2dbrJ{1mWmPgnI-=D zP>?Maqp&${3ODUSN;|j4?F-2aU6`S2g$_c><9dA7kmuDtT<`C`#FLr~!VV@2(i{b6 zXyE~*q2$HHi=EY{_c5_3q6N2)y@zjhif)bXcNV{VdZ2T=U&n(2g!*%bDzPJ2TKy7~ z$hUnck!fiI5Aix~Q~HBv1($*oTs5js5o=}v?v~U+&B>{B`QNk$tOc##*EdbJZMUu8 zZ!?&Xzf;4yW|XqOZFSESbGZ`^wW-r!@PYFQ47C&#C6tx?831 zq(c-`R!(|7XWbjCUEwd^s2x>r1m06@WSg;e;fJh?@$V=5R;GQ<2^Oqd#WLCU#XQ5a zPqaV#%pJ?-o8-Do^NaUa8kJwGd7tuNu8=evB-#qNr@m*z|{_XK+X-IeT(yVvy5 zpXm*s%WsEmTYv0j;1<6WEFaWhaPz?Bn-%Ai-S|HUsj>4HoQiDNTBl%GotpD@(~W%5 zn|x;L66U>l@Muoxl8eF#OaIH|WnWO(F5TSujxCw1TeGM~FhcpTSXd!K(JugexW@ZzQ;M4j1Y?teBUOd4~A~d(xBk-qX65c;la3>W`l~aeLa~XHz(* zy}heEr~RDonf1cA+n1!J^~y}O&HOZF&hBOB_EcYc({!kM&CzX>E*Vuzet29|dbmsMW$fy<{`1k3Cnet8P+9$b z0_V?j#mcXaIIo;3oc_(%%HKO!YxmYexBdsGGPkO}vf_IwlV_ov-tx2HsTW_#2L5GD zY*HBu8nF`pjXS;_vJdcPWD;Qp4Ucm$te$Beu{LPw#Hqj*>M7uu8>rg>0}Vhi28L*7 z;9ziSUP*jNWkG6jEU0ycZa}4)x5E#h(tE&hWNw&lAl<-t3}^(TjSp_xqigJF;||UQ zD!B;MD2Sr*IZy;%_ax^Rfk&dzwST#NTl_UpdkzZ&g8+*5dY}kgdtyNWHdo6@?@*Eh zs%rrH8P)O`z<>bH8~}|d%?0`$oA$g0X(1z^<)?v0$e>vM6gZR))(-JGvLRSQp?9^I zb+@m9s!~+1t?P!_+ literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/candidate_validator/RFPHCandidateValidator.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/candidate_validator/RFPHCandidateValidator.scala deleted file mode 100644 index ecc99cc9e..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/candidate_validator/RFPHCandidateValidator.scala +++ /dev/null @@ -1,27 +0,0 @@ -package com.twitter.frigate.pushservice.take.candidate_validator - -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.frigate.pushservice.config.Config -import com.twitter.frigate.pushservice.take.predicates.candidate_map.CandidatePredicatesMap -import com.twitter.hermit.predicate.Predicate -import com.twitter.util.Future - -class RFPHCandidateValidator(override val config: Config) extends CandidateValidator { - private val rFPHCandidateValidatorStats = statsReceiver.scope(this.getClass.getSimpleName) - private val concurrentPredicateCount = rFPHCandidateValidatorStats.counter("concurrent") - private val sequentialPredicateCount = rFPHCandidateValidatorStats.counter("sequential") - - override protected val candidatePredicatesMap = CandidatePredicatesMap(config) - - override def validateCandidate[C <: PushCandidate](candidate: C): Future[Option[Predicate[C]]] = { - val candidatePredicates = getCRTPredicates(candidate.commonRecType) - val predicates = rfphPrePredicates ++ candidatePredicates ++ postPredicates - if (candidate.target.isEmailUser) { - concurrentPredicateCount.incr() - executeConcurrentPredicates(candidate, predicates).map(_.headOption) - } else { - sequentialPredicateCount.incr() - executeSequentialPredicates(candidate, predicates) - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/candidate_validator/SendHandlerPostCandidateValidator.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/candidate_validator/SendHandlerPostCandidateValidator.docx new file mode 100644 index 0000000000000000000000000000000000000000..d9aa7e36407bb05949825d5aada19e3bd505d444 GIT binary patch literal 37064 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 F0|0Y9N*4eC literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/candidate_validator/SendHandlerPostCandidateValidator.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/candidate_validator/SendHandlerPostCandidateValidator.scala deleted file mode 100644 index 096e9f102..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/candidate_validator/SendHandlerPostCandidateValidator.scala +++ /dev/null @@ -1,26 +0,0 @@ -package com.twitter.frigate.pushservice.take.candidate_validator - -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.frigate.pushservice.config.Config -import com.twitter.frigate.pushservice.take.predicates.candidate_map.SendHandlerCandidatePredicatesMap -import com.twitter.hermit.predicate.Predicate -import com.twitter.util.Future - -class SendHandlerPostCandidateValidator(override val config: Config) extends CandidateValidator { - - override protected val candidatePredicatesMap = - SendHandlerCandidatePredicatesMap.postCandidatePredicates(config) - - private val sendHandlerPostCandidateValidatorStats = - statsReceiver.counter("sendHandlerPostCandidateValidator_stats") - - override def validateCandidate[C <: PushCandidate](candidate: C): Future[Option[Predicate[C]]] = { - val candidatePredicates = getCRTPredicates(candidate.commonRecType) - val predicates = candidatePredicates ++ postPredicates - - sendHandlerPostCandidateValidatorStats.incr() - - executeConcurrentPredicates(candidate, predicates) - .map(_.headOption) - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/candidate_validator/SendHandlerPreCandidateValidator.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/candidate_validator/SendHandlerPreCandidateValidator.docx new file mode 100644 index 0000000000000000000000000000000000000000..155e9ba589f3e14318007053d432f40da1a8f4c2 GIT binary patch literal 37047 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℘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 - - // Cache of channel selection result - private[this] val selectedChannels: concurrent.Map[String, Future[Seq[ChannelName]]] = - new ConcurrentHashMap[String, Future[Seq[ChannelName]]]().asScala - - // Returns the channel information from all ChannelSelectors. - def getChannels(): Future[Seq[ChannelName]] = { - Future.collect(selectedChannels.values.toSeq).map { c => c.flatten } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/channel_selection/ChannelSelector.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/channel_selection/ChannelSelector.docx new file mode 100644 index 0000000000000000000000000000000000000000..57c9856d9d1ebb07bad444c27aec8a1cf769718c GIT binary patch literal 36872 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 literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/channel_selection/NtabOnlyChannelSelector.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/channel_selection/NtabOnlyChannelSelector.scala deleted file mode 100644 index e999da9be..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/channel_selection/NtabOnlyChannelSelector.scala +++ /dev/null @@ -1,21 +0,0 @@ -package com.twitter.frigate.pushservice.take - -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.frigate.thriftscala.ChannelName -import com.twitter.util.Future - -class NtabOnlyChannelSelector extends ChannelSelector { - val SELECTOR_NAME = "NtabOnlyChannelSelector" - - def getSelectorName(): String = SELECTOR_NAME - - // Returns a map of channel name, and the candidates that can be sent on that channel - def selectChannel( - candidate: PushCandidate - ): Future[Seq[ChannelName]] = { - // Check candidate channel eligible (based on setting, push cap etc - // Decide which candidate can be sent on what channel - val channelName: Future[ChannelName] = Future.value(ChannelName.PushNtab) - channelName.map(channel => Seq(channel)) - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/history/EventBusWriter.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/history/EventBusWriter.docx new file mode 100644 index 0000000000000000000000000000000000000000..2bf15dabf1813ba045b03007a82763c358e209c0 GIT binary patch literal 37175 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 stats.counter("push_send_eventbus_failure").incr() } - } - } - - def writeToEventBus( - candidate: PushCandidate, - frigateNotificationForPersistence: FrigateNotification - ): Unit = { - val notificationScribe = NotificationScribeUtil.getNotificationScribe( - targetId = candidate.target.targetId, - impressionId = candidate.impressionId, - frigateNotification = frigateNotificationForPersistence, - createdAt = candidate.createdAt - ) - writeSendEventToEventBus(candidate.target, notificationScribe) - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/history/HistoryWriter.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/history/HistoryWriter.docx new file mode 100644 index 0000000000000000000000000000000000000000..1e10e799ecdbbe4ef295e3c69f34235084dd5855 GIT binary patch literal 37323 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 YTZaMOtiT)u%F==iiNNe(+zsLZ0KC(?DgXcg literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/BasicRFPHPredicates.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/BasicRFPHPredicates.scala deleted file mode 100644 index 99719af99..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/BasicRFPHPredicates.scala +++ /dev/null @@ -1,7 +0,0 @@ -package com.twitter.frigate.pushservice.take.predicates -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.hermit.predicate.NamedPredicate - -trait BasicRFPHPredicates[C <: PushCandidate] { - val predicates: List[NamedPredicate[C]] -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/BasicSendHandlerPredicates.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/BasicSendHandlerPredicates.docx new file mode 100644 index 0000000000000000000000000000000000000000..d9e07dea4c7a3257e507a400831d3d2e9bcc6d25 GIT binary patch literal 36866 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 yB-jEDwfL5cS6605An*e7;Qb(!6kZ literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/BasicTweetPredicates.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/BasicTweetPredicates.scala deleted file mode 100644 index 0750abd6e..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/BasicTweetPredicates.scala +++ /dev/null @@ -1,104 +0,0 @@ -package com.twitter.frigate.pushservice.take.predicates - -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.pushservice.config.Config -import com.twitter.frigate.pushservice.predicate.BqmlHealthModelPredicates -import com.twitter.frigate.pushservice.predicate.BqmlQualityModelPredicates -import com.twitter.frigate.pushservice.predicate.HealthPredicates -import com.twitter.frigate.pushservice.predicate.OONSpreadControlPredicate -import com.twitter.frigate.pushservice.predicate.OONTweetNegativeFeedbackBasedPredicate -import com.twitter.frigate.pushservice.predicate.OutOfNetworkCandidatesQualityPredicates -import com.twitter.frigate.pushservice.predicate.PredicatesForCandidate -import com.twitter.frigate.pushservice.predicate.PNegMultimodalPredicates -import com.twitter.frigate.pushservice.predicate.TargetEngagementPredicate -import com.twitter.frigate.pushservice.predicate.TweetEngagementRatioPredicate -import com.twitter.frigate.pushservice.predicate.TweetLanguagePredicate -import com.twitter.frigate.pushservice.predicate.TweetWithheldContentPredicate - -trait BasicTweetPredicates { - - def config: Config - - implicit def statsReceiver: StatsReceiver - - final lazy val basicTweetPredicates = - List( - HealthPredicates.sensitiveMediaCategoryPredicate(), - HealthPredicates.profanityPredicate(), - PredicatesForCandidate.disableOutNetworkTweetPredicate(config.edgeStore), - TweetEngagementRatioPredicate.QTtoNtabClickBasedPredicate(), - TweetLanguagePredicate.oonTweeetLanguageMatch(), - HealthPredicates.userHealthSignalsPredicate(config.userHealthSignalStore), - HealthPredicates.authorSensitiveMediaPredicate(config.producerMediaRepresentationStore), - HealthPredicates.authorProfileBasedPredicate(), - PNegMultimodalPredicates.healthSignalScorePNegMultimodalPredicate( - config.tweetHealthScoreStore), - BqmlHealthModelPredicates.healthModelOonPredicate( - config.filteringModelScorer, - config.producerMediaRepresentationStore, - config.userHealthSignalStore, - config.tweetHealthScoreStore), - BqmlQualityModelPredicates.BqmlQualityModelOonPredicate(config.filteringModelScorer), - HealthPredicates.tweetHealthSignalScorePredicate(config.tweetHealthScoreStore), - HealthPredicates - .tweetHealthSignalScorePredicate(config.tweetHealthScoreStore, applyToQuoteTweet = true), - PredicatesForCandidate.nullCastF1ProtectedExperientPredicate( - config.cachedTweetyPieStoreV2 - ), - OONTweetNegativeFeedbackBasedPredicate.ntabDislikeBasedPredicate(), - OONSpreadControlPredicate.oonTweetSpreadControlPredicate(), - OONSpreadControlPredicate.oonAuthorSpreadControlPredicate(), - HealthPredicates.healthSignalScoreMultilingualPnsfwTweetTextPredicate( - config.tweetHealthScoreStore), - PredicatesForCandidate - .recommendedTweetAuthorAcceptableToTargetUser(config.edgeStore), - HealthPredicates.healthSignalScorePnsfwTweetTextPredicate(config.tweetHealthScoreStore), - HealthPredicates.healthSignalScoreSpammyTweetPredicate(config.tweetHealthScoreStore), - OutOfNetworkCandidatesQualityPredicates.NegativeKeywordsPredicate( - config.postRankingFeatureStoreClient), - PredicatesForCandidate.authorNotBeingDeviceFollowed(config.edgeStore), - TweetWithheldContentPredicate(), - PredicatesForCandidate.noOptoutFreeFormInterestPredicate, - PredicatesForCandidate.disableInNetworkTweetPredicate(config.edgeStore), - TweetEngagementRatioPredicate.TweetReplyLikeRatioPredicate(), - TargetEngagementPredicate( - config.userTweetPerspectiveStore, - defaultForMissing = true - ), - ) -} - -/** - * This trait is a new version of BasicTweetPredicates - * Difference from old version is that basicTweetPredicates are different - * basicTweetPredicates here don't include Social Graph Service related predicates - */ -trait BasicTweetPredicatesWithoutSGSPredicates { - - def config: Config - - implicit def statsReceiver: StatsReceiver - - final lazy val basicTweetPredicates = { - List( - HealthPredicates.healthSignalScoreSpammyTweetPredicate(config.tweetHealthScoreStore), - PredicatesForCandidate.nullCastF1ProtectedExperientPredicate( - config.cachedTweetyPieStoreV2 - ), - TweetWithheldContentPredicate(), - TargetEngagementPredicate( - config.userTweetPerspectiveStore, - defaultForMissing = true - ), - PredicatesForCandidate.noOptoutFreeFormInterestPredicate, - HealthPredicates.userHealthSignalsPredicate(config.userHealthSignalStore), - HealthPredicates.tweetHealthSignalScorePredicate(config.tweetHealthScoreStore), - BqmlQualityModelPredicates.BqmlQualityModelOonPredicate(config.filteringModelScorer), - BqmlHealthModelPredicates.healthModelOonPredicate( - config.filteringModelScorer, - config.producerMediaRepresentationStore, - config.userHealthSignalStore, - config.tweetHealthScoreStore), - ) - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/BasicTweetPredicatesForRFPH.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/BasicTweetPredicatesForRFPH.docx new file mode 100644 index 0000000000000000000000000000000000000000..04dcff8a710f67169db32adaba46fa48754e92d4 GIT binary patch literal 37110 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 DQzT*a literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/BasicTweetPredicatesForRFPH.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/BasicTweetPredicatesForRFPH.scala deleted file mode 100644 index 7d660632a..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/BasicTweetPredicatesForRFPH.scala +++ /dev/null @@ -1,41 +0,0 @@ -package com.twitter.frigate.pushservice.take.predicates - -import com.twitter.frigate.common.base.TweetCandidate -import com.twitter.frigate.common.base.TweetDetails -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.hermit.predicate.NamedPredicate - -trait BasicTweetPredicatesForRFPH[C <: PushCandidate with TweetCandidate with TweetDetails] - extends BasicTweetPredicates - with BasicRFPHPredicates[C] { - - // specific predicates per candidate type before basic tweet predicates - def preCandidateSpecificPredicates: List[NamedPredicate[C]] = List.empty - - // specific predicates per candidate type after basic tweet predicates - def postCandidateSpecificPredicates: List[NamedPredicate[C]] = List.empty - - override lazy val predicates: List[NamedPredicate[C]] = - preCandidateSpecificPredicates ++ basicTweetPredicates ++ postCandidateSpecificPredicates -} - -/** - * This trait is a new version of BasicTweetPredicatesForRFPH - * Difference from old version is that basicTweetPredicates are different - * basicTweetPredicates here don't include Social Graph Service related predicates - */ -trait BasicTweetPredicatesForRFPHWithoutSGSPredicates[ - C <: PushCandidate with TweetCandidate with TweetDetails] - extends BasicTweetPredicatesWithoutSGSPredicates - with BasicRFPHPredicates[C] { - - // specific predicates per candidate type before basic tweet predicates - def preCandidateSpecificPredicates: List[NamedPredicate[C]] = List.empty - - // specific predicates per candidate type after basic tweet predicates - def postCandidateSpecificPredicates: List[NamedPredicate[C]] = List.empty - - override lazy val predicates: List[NamedPredicate[C]] = - preCandidateSpecificPredicates ++ basicTweetPredicates ++ postCandidateSpecificPredicates - -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/OutOfNetworkTweetPredicates.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/OutOfNetworkTweetPredicates.docx new file mode 100644 index 0000000000000000000000000000000000000000..6f14d83854d419200cc2a5814f37e1759f220668 GIT binary patch literal 36937 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 literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/TakeCommonPredicates.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/TakeCommonPredicates.scala deleted file mode 100644 index e921f3fcf..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/TakeCommonPredicates.scala +++ /dev/null @@ -1,36 +0,0 @@ -package com.twitter.frigate.pushservice.take.predicates - -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.frigate.pushservice.config.Config -import com.twitter.frigate.pushservice.predicate.CrtDeciderPredicate -import com.twitter.frigate.pushservice.predicate.PredicatesForCandidate -import com.twitter.frigate.pushservice.predicate.ScarecrowPredicate -import com.twitter.frigate.pushservice.predicate.ntab_caret_fatigue.NtabCaretClickFatiguePredicate -import com.twitter.hermit.predicate.NamedPredicate - -trait TakeCommonPredicates { - def config: Config - - implicit def statsReceiver: StatsReceiver - - lazy val rfphPrePredicates: List[NamedPredicate[PushCandidate]] = List( - CrtDeciderPredicate(config.decider), - PredicatesForCandidate.isChannelValidPredicate, - ) - - lazy val sendHandlerPrePredicates: List[NamedPredicate[PushCandidate]] = List( - CrtDeciderPredicate(config.decider), - PredicatesForCandidate.enableSendHandlerCandidates, - PredicatesForCandidate.mrWebHoldbackPredicate, - PredicatesForCandidate.targetUserExists, - PredicatesForCandidate.authorInSocialContext, - PredicatesForCandidate.recommendedTweetIsAuthoredBySelf, - PredicatesForCandidate.selfInSocialContext, - NtabCaretClickFatiguePredicate() - ) - - lazy val postPredicates: List[NamedPredicate[PushCandidate]] = List( - ScarecrowPredicate(config.scarecrowCheckEventStore) - ) -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/candidate_map/CandidatePredicatesMap.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/candidate_map/CandidatePredicatesMap.docx new file mode 100644 index 0000000000000000000000000000000000000000..910e78cbaf32270d95c4bc65d55da5297cdf2aac GIT binary patch literal 37457 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 f1TweetCandidatePredicates, - F1FirstdegreePhoto -> f1TweetCandidatePredicates, - F1FirstdegreeVideo -> f1TweetCandidatePredicates, - ElasticTimelineTweet -> oonTweetCandidatePredicates, - ElasticTimelinePhoto -> oonTweetCandidatePredicates, - ElasticTimelineVideo -> oonTweetCandidatePredicates, - TwistlyTweet -> oonTweetCandidatePredicates, - TwistlyPhoto -> oonTweetCandidatePredicates, - TwistlyVideo -> oonTweetCandidatePredicates, - ExploreVideoTweet -> oonTweetCandidatePredicates, - UserInterestinTweet -> oonTweetCandidatePredicates, - UserInterestinPhoto -> oonTweetCandidatePredicates, - UserInterestinVideo -> oonTweetCandidatePredicates, - PastEmailEngagementTweet -> oonTweetCandidatePredicates, - PastEmailEngagementPhoto -> oonTweetCandidatePredicates, - PastEmailEngagementVideo -> oonTweetCandidatePredicates, - TagSpaceTweet -> oonTweetCandidatePredicates, - TwhinTweet -> oonTweetCandidatePredicates, - FrsTweet -> oonTweetCandidatePredicates, - MrModelingBasedTweet -> oonTweetCandidatePredicates, - TrendTweet -> trendTweetCandidatePredicates, - ReverseAddressbookTweet -> oonTweetCandidatePredicates, - ForwardAddressbookTweet -> oonTweetCandidatePredicates, - TripGeoTweet -> oonTweetCandidatePredicates, - TripHqTweet -> tripTweetCandidatePredicates, - DetopicTweet -> oonTweetCandidatePredicates, - CrowdSearchTweet -> oonTweetCandidatePredicates, - TweetFavorite -> tweetActionCandidatePredicates, - TweetFavoritePhoto -> tweetActionCandidatePredicates, - TweetFavoriteVideo -> tweetActionCandidatePredicates, - TweetRetweet -> tweetActionCandidatePredicates, - TweetRetweetPhoto -> tweetActionCandidatePredicates, - TweetRetweetVideo -> tweetActionCandidatePredicates, - TopicProofTweet -> topicProofTweetCandidatePredicates, - SubscribedSearch -> subscribedSearchTweetCandidatePredicates, - AddressBookUploadPush -> addressBookPushPredicates, - CompleteOnboardingPush -> completeOnboardingPushPredicates, - List -> listCandidatePredicates, - GeoPopTweet -> popGeoTweetCandidatePredicate, - TweetImpressions -> topTweetImpressionsCandidatePredicates - ) - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/candidate_map/SendHandlerCandidatePredicatesMap.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/candidate_map/SendHandlerCandidatePredicatesMap.docx new file mode 100644 index 0000000000000000000000000000000000000000..dc9db91ddbc7b7d4c6b3d704e1e14abb49017b43 GIT binary patch literal 37231 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 YwhjZlS%EnSl&b_85`o#{M-PYx0J*!6mjD0& literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/candidate_map/SendHandlerCandidatePredicatesMap.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/candidate_map/SendHandlerCandidatePredicatesMap.scala deleted file mode 100644 index e37a91044..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/predicates/candidate_map/SendHandlerCandidatePredicatesMap.scala +++ /dev/null @@ -1,78 +0,0 @@ -package com.twitter.frigate.pushservice.take.predicates.candidate_map - -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.frigate.pushservice.model._ -import com.twitter.frigate.pushservice.config.Config -import com.twitter.frigate.thriftscala.CommonRecommendationType -import com.twitter.frigate.thriftscala.CommonRecommendationType._ -import com.twitter.hermit.predicate.NamedPredicate - -object SendHandlerCandidatePredicatesMap { - - def preCandidatePredicates( - implicit config: Config - ): Map[CommonRecommendationType, List[NamedPredicate[_ <: PushCandidate]]] = { - val magicFanoutNewsEventCandidatePredicates = - MagicFanoutNewsEventCandidatePredicates(config).preCandidateSpecificPredicates - - val scheduledSpaceSubscriberPredicates = ScheduledSpaceSubscriberCandidatePredicates( - config).preCandidateSpecificPredicates - - val scheduledSpaceSpeakerPredicates = ScheduledSpaceSpeakerCandidatePredicates( - config).preCandidateSpecificPredicates - - val magicFanoutSportsEventCandidatePredicates = - MagicFanoutSportsEventCandidatePredicates(config).preCandidateSpecificPredicates - - val magicFanoutProductLaunchPredicates = MagicFanoutProductLaunchPushCandidatePredicates( - config).preCandidateSpecificPredicates - - val creatorSubscriptionFanoutPredicates = MagicFanouCreatorSubscriptionEventPushPredicates( - config).preCandidateSpecificPredicates - - val newCreatorFanoutPredicates = MagicFanoutNewCreatorEventPushPredicates( - config).preCandidateSpecificPredicates - - Map( - MagicFanoutNewsEvent -> magicFanoutNewsEventCandidatePredicates, - ScheduledSpaceSubscriber -> scheduledSpaceSubscriberPredicates, - ScheduledSpaceSpeaker -> scheduledSpaceSpeakerPredicates, - MagicFanoutSportsEvent -> magicFanoutSportsEventCandidatePredicates, - MagicFanoutProductLaunch -> magicFanoutProductLaunchPredicates, - NewCreator -> newCreatorFanoutPredicates, - CreatorSubscriber -> creatorSubscriptionFanoutPredicates - ) - } - - def postCandidatePredicates( - implicit config: Config - ): Map[CommonRecommendationType, List[NamedPredicate[_ <: PushCandidate]]] = { - val magicFanoutNewsEventCandidatePredicates = - MagicFanoutNewsEventCandidatePredicates(config).postCandidateSpecificPredicates - - val scheduledSpaceSubscriberPredicates = ScheduledSpaceSubscriberCandidatePredicates( - config).postCandidateSpecificPredicates - - val scheduledSpaceSpeakerPredicates = ScheduledSpaceSpeakerCandidatePredicates( - config).postCandidateSpecificPredicates - - val magicFanoutSportsEventCandidatePredicates = - MagicFanoutSportsEventCandidatePredicates(config).postCandidateSpecificPredicates - val magicFanoutProductLaunchPredicates = MagicFanoutProductLaunchPushCandidatePredicates( - config).postCandidateSpecificPredicates - val creatorSubscriptionFanoutPredicates = MagicFanouCreatorSubscriptionEventPushPredicates( - config).postCandidateSpecificPredicates - val newCreatorFanoutPredicates = MagicFanoutNewCreatorEventPushPredicates( - config).postCandidateSpecificPredicates - - Map( - MagicFanoutNewsEvent -> magicFanoutNewsEventCandidatePredicates, - ScheduledSpaceSubscriber -> scheduledSpaceSubscriberPredicates, - ScheduledSpaceSpeaker -> scheduledSpaceSpeakerPredicates, - MagicFanoutSportsEvent -> magicFanoutSportsEventCandidatePredicates, - MagicFanoutProductLaunch -> magicFanoutProductLaunchPredicates, - NewCreator -> newCreatorFanoutPredicates, - CreatorSubscriber -> creatorSubscriptionFanoutPredicates - ) - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/sender/Ibis2Sender.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/sender/Ibis2Sender.docx new file mode 100644 index 0000000000000000000000000000000000000000..229f83d531e31affa8a6cc51590e85afc3e566c0 GIT binary patch literal 38854 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 b$;1wNhbD$hfCYWCDsGSiU>@+aZ)g7lN;1E6 literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/sender/Ibis2Sender.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/sender/Ibis2Sender.scala deleted file mode 100644 index a17d7fe1e..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/sender/Ibis2Sender.scala +++ /dev/null @@ -1,185 +0,0 @@ -package com.twitter.frigate.pushservice.take.sender - -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.base.TweetCandidate -import com.twitter.frigate.common.base.TweetDetails -import com.twitter.frigate.common.store.IbisResponse -import com.twitter.frigate.common.store.InvalidConfiguration -import com.twitter.frigate.common.store.NoRequest -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.frigate.pushservice.params.{PushFeatureSwitchParams => FS} -import com.twitter.frigate.pushservice.store.Ibis2Store -import com.twitter.frigate.pushservice.store.TweetTranslationStore -import com.twitter.frigate.pushservice.util.CopyUtil -import com.twitter.frigate.pushservice.util.FunctionalUtil -import com.twitter.frigate.pushservice.util.InlineActionUtil -import com.twitter.frigate.pushservice.util.OverrideNotificationUtil -import com.twitter.frigate.pushservice.util.PushDeviceUtil -import com.twitter.frigate.scribe.thriftscala.NotificationScribe -import com.twitter.frigate.thriftscala.ChannelName -import com.twitter.frigate.thriftscala.NotificationDisplayLocation -import com.twitter.ibis2.service.thriftscala.Ibis2Request -import com.twitter.notificationservice.thriftscala.CreateGenericNotificationResponse -import com.twitter.storehaus.ReadableStore -import com.twitter.util.Future - -class Ibis2Sender( - pushIbisV2Store: Ibis2Store, - tweetTranslationStore: ReadableStore[TweetTranslationStore.Key, TweetTranslationStore.Value], - statsReceiver: StatsReceiver) { - - private val stats = statsReceiver.scope(getClass.getSimpleName) - private val silentPushCounter = stats.counter("silent_push") - private val ibisSendFailureCounter = stats.scope("ibis_send_failure").counter("failures") - private val buggyAndroidReleaseCounter = stats.counter("is_buggy_android_release") - private val androidPrimaryCounter = stats.counter("android_primary_device") - private val addTranslationModelValuesCounter = stats.counter("with_translation_model_values") - private val patchNtabResponseEnabled = stats.scope("with_ntab_response") - private val noIbisPushStats = stats.counter("no_ibis_push") - - private def ibisSend( - candidate: PushCandidate, - translationModelValues: Option[Map[String, String]] = None, - ntabResponse: Option[CreateGenericNotificationResponse] = None - ): Future[IbisResponse] = { - if (candidate.frigateNotification.notificationDisplayLocation != NotificationDisplayLocation.PushToMobileDevice) { - Future.value(IbisResponse(InvalidConfiguration)) - } else { - candidate.ibis2Request.flatMap { - case Some(request) => - val requestWithTranslationMV = - addTranslationModelValues(request, translationModelValues) - val patchedIbisRequest = { - if (candidate.target.isLoggedOutUser) { - requestWithTranslationMV - } else { - patchNtabResponseToIbisRequest(requestWithTranslationMV, candidate, ntabResponse) - } - } - pushIbisV2Store.send(patchedIbisRequest, candidate) - case _ => - noIbisPushStats.incr() - Future.value(IbisResponse(sendStatus = NoRequest, ibis2Response = None)) - } - } - } - - def sendAsDarkWrite( - candidate: PushCandidate - ): Future[IbisResponse] = { - ibisSend(candidate) - } - - def send( - channels: Seq[ChannelName], - pushCandidate: PushCandidate, - notificationScribe: NotificationScribe => Unit, - ntabResponse: Option[CreateGenericNotificationResponse], - ): Future[IbisResponse] = pushCandidate.target.isSilentPush.flatMap { isSilentPush: Boolean => - if (isSilentPush) silentPushCounter.incr() - pushCandidate.target.deviceInfo.flatMap { deviceInfo => - if (deviceInfo.exists(_.isSim40AndroidVersion)) buggyAndroidReleaseCounter.incr() - if (PushDeviceUtil.isPrimaryDeviceAndroid(deviceInfo)) androidPrimaryCounter.incr() - Future - .join( - OverrideNotificationUtil - .getOverrideInfo(pushCandidate, stats), - CopyUtil.getCopyFeatures(pushCandidate, stats), - getTranslationModelValues(pushCandidate) - ).flatMap { - case (overrideInfoOpt, copyFeaturesMap, translationModelValues) => - ibisSend(pushCandidate, translationModelValues, ntabResponse) - .onSuccess { ibisResponse => - pushCandidate - .scribeData( - ibis2Response = ibisResponse.ibis2Response, - isSilentPush = isSilentPush, - overrideInfoOpt = overrideInfoOpt, - copyFeaturesList = copyFeaturesMap.keySet, - channels = channels - ).foreach(notificationScribe) - }.onFailure { _ => - pushCandidate - .scribeData(channels = channels).foreach { data => - ibisSendFailureCounter.incr() - notificationScribe(data) - } - } - } - } - } - - private def getTranslationModelValues( - candidate: PushCandidate - ): Future[Option[Map[String, String]]] = { - candidate match { - case tweetCandidate: TweetCandidate with TweetDetails => - val key = TweetTranslationStore.Key( - target = candidate.target, - tweetId = tweetCandidate.tweetId, - tweet = tweetCandidate.tweet, - crt = candidate.commonRecType - ) - - tweetTranslationStore - .get(key) - .map { - case Some(value) => - Some( - Map( - "translated_tweet_text" -> value.translatedTweetText, - "localized_source_language" -> value.localizedSourceLanguage - )) - case None => None - } - case _ => Future.None - } - } - - private def addTranslationModelValues( - ibisRequest: Ibis2Request, - translationModelValues: Option[Map[String, String]] - ): Ibis2Request = { - (translationModelValues, ibisRequest.modelValues) match { - case (Some(translationModelVal), Some(existingModelValues)) => - addTranslationModelValuesCounter.incr() - ibisRequest.copy(modelValues = Some(translationModelVal ++ existingModelValues)) - case (Some(translationModelVal), None) => - addTranslationModelValuesCounter.incr() - ibisRequest.copy(modelValues = Some(translationModelVal)) - case (None, _) => ibisRequest - } - } - - private def patchNtabResponseToIbisRequest( - ibis2Req: Ibis2Request, - candidate: PushCandidate, - ntabResponse: Option[CreateGenericNotificationResponse] - ): Ibis2Request = { - if (candidate.target.params(FS.EnableInlineFeedbackOnPush)) { - patchNtabResponseEnabled.counter().incr() - val dislikePosition = candidate.target.params(FS.InlineFeedbackSubstitutePosition) - val dislikeActionOption = ntabResponse - .map(FunctionalUtil.incr(patchNtabResponseEnabled.counter("ntab_response_exist"))) - .flatMap(response => InlineActionUtil.getDislikeInlineAction(candidate, response)) - .map(FunctionalUtil.incr(patchNtabResponseEnabled.counter("dislike_action_generated"))) - - // Only generate patch serialized inline action when original request has existing serialized_inline_actions_v2 - val patchedSerializedActionOption = ibis2Req.modelValues - .flatMap(model => model.get("serialized_inline_actions_v2")) - .map(FunctionalUtil.incr(patchNtabResponseEnabled.counter("inline_action_v2_exists"))) - .map(serialized => - InlineActionUtil - .patchInlineActionAtPosition(serialized, dislikeActionOption, dislikePosition)) - .map(FunctionalUtil.incr(patchNtabResponseEnabled.counter("patch_inline_action_generated"))) - - (ibis2Req.modelValues, patchedSerializedActionOption) match { - case (Some(existingModelValue), Some(patchedActionV2)) => - patchNtabResponseEnabled.scope("patch_applied").counter().incr() - ibis2Req.copy(modelValues = - Some(existingModelValue ++ Map("serialized_inline_actions_v2" -> patchedActionV2))) - case _ => ibis2Req - } - } else ibis2Req - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/sender/NtabSender.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/sender/NtabSender.docx new file mode 100644 index 0000000000000000000000000000000000000000..44022a0c94ddcb6f65d9c9286a9d4ccb12676aa8 GIT binary patch literal 39073 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 literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/sender/NtabSender.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/sender/NtabSender.scala deleted file mode 100644 index 5019aa040..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/sender/NtabSender.scala +++ /dev/null @@ -1,237 +0,0 @@ -package com.twitter.frigate.pushservice.take.sender - -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.history.History -import com.twitter.frigate.common.rec_types.RecTypes -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.frigate.pushservice.model.ibis.PushOverrideInfo -import com.twitter.frigate.pushservice.params.PushConstants -import com.twitter.frigate.pushservice.params.{PushFeatureSwitchParams => FSParams} -import com.twitter.frigate.pushservice.take.NotificationServiceRequest -import com.twitter.frigate.thriftscala.FrigateNotification -import com.twitter.hermit.store.common.ReadableWritableStore -import com.twitter.notificationservice.api.thriftscala.DeleteCurrentTimelineForUserRequest -import com.twitter.notificationservice.thriftscala.CreateGenericNotificationResponse -import com.twitter.notificationservice.thriftscala.DeleteGenericNotificationRequest -import com.twitter.notificationservice.thriftscala.GenericNotificationKey -import com.twitter.notificationservice.thriftscala.GenericNotificationOverrideKey -import com.twitter.storehaus.ReadableStore -import com.twitter.util.Future - -object OverrideCandidate extends Enumeration { - val One: String = "overrideEntry1" -} - -class NtabSender( - notificationServiceSender: ReadableStore[ - NotificationServiceRequest, - CreateGenericNotificationResponse - ], - nTabHistoryStore: ReadableWritableStore[(Long, String), GenericNotificationOverrideKey], - nTabDelete: DeleteGenericNotificationRequest => Future[Unit], - nTabDeleteTimeline: DeleteCurrentTimelineForUserRequest => Future[Unit] -)( - implicit statsReceiver: StatsReceiver) { - - private[this] val nTabDeleteRequests = statsReceiver.counter("ntab_delete_request") - private[this] val nTabDeleteTimelineRequests = - statsReceiver.counter("ntab_delete_timeline_request") - private[this] val ntabOverrideImpressionNotFound = - statsReceiver.counter("ntab_impression_not_found") - private[this] val nTabOverrideOverriddenStat = - statsReceiver.counter("ntab_override_overridden") - private[this] val storeGenericNotifOverrideKey = - statsReceiver.counter("ntab_store_generic_notif_key") - private[this] val prevGenericNotifKeyNotFound = - statsReceiver.counter("ntab_prev_generic_notif_key_not_found") - - private[this] val ntabOverride = - statsReceiver.scope("ntab_override") - private[this] val ntabRequestWithOverrideId = - ntabOverride.counter("request") - private[this] val storeGenericNotifOverrideKeyWithOverrideId = - ntabOverride.counter("store_override_key") - - def send( - candidate: PushCandidate, - isNtabOnlyNotification: Boolean - ): Future[Option[CreateGenericNotificationResponse]] = { - if (candidate.target.params(FSParams.EnableOverrideIdNTabRequest)) { - ntabRequestWithOverrideId.incr() - overridePreviousEntry(candidate).flatMap { _ => - if (shouldDisableNtabOverride(candidate)) { - sendNewEntry(candidate, isNtabOnlyNotification, None) - } else { - sendNewEntry(candidate, isNtabOnlyNotification, Some(OverrideCandidate.One)) - } - } - } else { - for { - notificationOverwritten <- overrideNSlot(candidate) - _ <- deleteCachedApiTimeline(candidate, notificationOverwritten) - gnResponse <- sendNewEntry(candidate, isNtabOnlyNotification) - } yield gnResponse - } - } - - private def sendNewEntry( - candidate: PushCandidate, - isNtabOnlyNotif: Boolean, - overrideId: Option[String] = None - ): Future[Option[CreateGenericNotificationResponse]] = { - notificationServiceSender - .get( - NotificationServiceRequest( - candidate, - impressionId = candidate.impressionId, - isBadgeUpdate = isNtabOnlyNotif, - overrideId = overrideId - )).flatMap { - case Some(response) => - storeGenericNotifKey(candidate, response, overrideId).map { _ => Some(response) } - case _ => Future.None - } - } - - private def storeGenericNotifKey( - candidate: PushCandidate, - createGenericNotificationResponse: CreateGenericNotificationResponse, - overrideId: Option[String] - ): Future[Unit] = { - if (candidate.target.params(FSParams.EnableStoringNtabGenericNotifKey)) { - createGenericNotificationResponse.successKey match { - case Some(genericNotificationKey) => - val userId = genericNotificationKey.userId - if (overrideId.nonEmpty) { - storeGenericNotifOverrideKeyWithOverrideId.incr() - } - val gnOverrideKey = GenericNotificationOverrideKey( - userId = userId, - hashKey = genericNotificationKey.hashKey, - timestampMillis = genericNotificationKey.timestampMillis, - overrideId = overrideId - ) - val mhKeyVal = - ((userId, candidate.impressionId), gnOverrideKey) - storeGenericNotifOverrideKey.incr() - nTabHistoryStore.put(mhKeyVal) - case _ => Future.Unit - } - } else Future.Unit - } - - private def candidateEligibleForOverride( - targetHistory: History, - targetEntries: Seq[FrigateNotification], - ): FrigateNotification = { - val timestampToEntriesMap = - targetEntries.map { entry => - PushOverrideInfo - .getTimestampInMillisForFrigateNotification(entry, targetHistory, statsReceiver) - .getOrElse(PushConstants.DefaultLookBackForHistory.ago.inMilliseconds) -> entry - }.toMap - - PushOverrideInfo.getOldestFrigateNotification(timestampToEntriesMap) - } - - private def overrideNSlot(candidate: PushCandidate): Future[Boolean] = { - if (candidate.target.params(FSParams.EnableNslotsForOverrideOnNtab)) { - val targetHistoryFut = candidate.target.history - targetHistoryFut.flatMap { targetHistory => - val nonEligibleOverrideTypes = - Seq(RecTypes.RecommendedSpaceFanoutTypes ++ RecTypes.ScheduledSpaceReminderTypes) - - val overrideNotifs = PushOverrideInfo - .getOverrideEligiblePushNotifications( - targetHistory, - candidate.target.params(FSParams.OverrideNotificationsLookbackDurationForNTab), - statsReceiver - ).filterNot { - case notification => - nonEligibleOverrideTypes.contains(notification.commonRecommendationType) - } - - val maxNumUnreadEntries = - candidate.target.params(FSParams.OverrideNotificationsMaxCountForNTab) - if (overrideNotifs.nonEmpty && overrideNotifs.size >= maxNumUnreadEntries) { - val eligibleOverrideCandidateOpt = candidateEligibleForOverride( - targetHistory, - overrideNotifs - ) - eligibleOverrideCandidateOpt match { - case overrideCandidate if overrideCandidate.impressionId.nonEmpty => - deleteNTabEntryFromGenericNotificationStore( - candidate.target.targetId, - eligibleOverrideCandidateOpt.impressionId.head) - case _ => - ntabOverrideImpressionNotFound.incr() - Future.False - } - } else Future.False - } - } else { - Future.False - } - } - - private def shouldDisableNtabOverride(candidate: PushCandidate): Boolean = - RecTypes.isSendHandlerType(candidate.commonRecType) - - private def overridePreviousEntry(candidate: PushCandidate): Future[Boolean] = { - - if (shouldDisableNtabOverride(candidate)) { - nTabOverrideOverriddenStat.incr() - Future.False - } else { - val targetHistoryFut = candidate.target.history - targetHistoryFut.flatMap { targetHistory => - val impressionIds = PushOverrideInfo.getImpressionIdsOfPrevEligiblePushNotif( - targetHistory, - candidate.target.params(FSParams.OverrideNotificationsLookbackDurationForImpressionId), - statsReceiver) - - if (impressionIds.nonEmpty) { - deleteNTabEntryFromGenericNotificationStore(candidate.target.targetId, impressionIds.head) - } else { - ntabOverrideImpressionNotFound.incr() - Future.False // no deletes issued - } - } - } - } - - private def deleteCachedApiTimeline( - candidate: PushCandidate, - isNotificationOverridden: Boolean - ): Future[Unit] = { - if (isNotificationOverridden && candidate.target.params(FSParams.EnableDeletingNtabTimeline)) { - val deleteTimelineRequest = DeleteCurrentTimelineForUserRequest(candidate.target.targetId) - nTabDeleteTimelineRequests.incr() - nTabDeleteTimeline(deleteTimelineRequest) - } else { - Future.Unit - } - } - - private def deleteNTabEntryFromGenericNotificationStore( - targetUserId: Long, - targetImpressionId: String - ): Future[Boolean] = { - val mhKey = (targetUserId, targetImpressionId) - val genericNotificationKeyFut = nTabHistoryStore.get(mhKey) - genericNotificationKeyFut.flatMap { - case Some(genericNotifOverrideKey) => - val gnKey = GenericNotificationKey( - userId = genericNotifOverrideKey.userId, - hashKey = genericNotifOverrideKey.hashKey, - timestampMillis = genericNotifOverrideKey.timestampMillis - ) - val deleteEntryRequest = DeleteGenericNotificationRequest(gnKey) - nTabDeleteRequests.incr() - nTabDelete(deleteEntryRequest).map(_ => true) - case _ => - prevGenericNotifKeyNotFound.incr() - Future.False - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/target/CustomFSFields.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/target/CustomFSFields.docx new file mode 100644 index 0000000000000000000000000000000000000000..d1a2a6510d39976d6e355e1daa87e9eccdb7f5f5 GIT binary patch literal 37943 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 literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/target/CustomFSFields.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/target/CustomFSFields.scala deleted file mode 100644 index 9690e9bad..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/target/CustomFSFields.scala +++ /dev/null @@ -1,98 +0,0 @@ -package com.twitter.frigate.pushservice.target - -import com.twitter.featureswitches.FSCustomMapInput -import com.twitter.featureswitches.parsing.DynMap -import com.twitter.frigate.common.store.deviceinfo.DeviceInfo -import com.twitter.frigate.pushservice.util.NsfwInfo -import com.twitter.gizmoduck.thriftscala.User - -object CustomFSFields { - private val IsReturningUser = "is_returning_user" - private val DaysSinceSignup = "days_since_signup" - private val DaysSinceLogin = "days_since_login" - private val DaysSinceReactivation = "days_since_reactivation" - private val ReactivationDate = "reactivation_date" - private val FollowGraphSize = "follow_graph_size" - private val GizmoduckUserType = "gizmoduck_user_type" - private val UserAge = "mr_user_age" - private val SensitiveOptIn = "sensitive_opt_in" - private val NsfwFollowRatio = "nsfw_follow_ratio" - private val TotalFollows = "follow_count" - private val NsfwRealGraphScore = "nsfw_real_graph_score" - private val NsfwProfileVisit = "nsfw_profile_visit" - private val TotalSearches = "total_searches" - private val NsfwSearchScore = "nsfw_search_score" - private val HasReportedNsfw = "nsfw_reported" - private val HasDislikedNsfw = "nsfw_disliked" - private val UserState = "user_state" - private val MrUserState = "mr_user_state" - private val NumDaysReceivedPushInLast30Days = - "num_days_received_push_in_last_30_days" - private val RecommendationsSetting = "recommendations_setting" - private val TopicsSetting = "topics_setting" - private val SpacesSetting = "spaces_setting" - private val NewsSetting = "news_setting" - private val LiveVideoSetting = "live_video_setting" - private val HasRecentPushableRebDevice = "has_recent_pushable_rweb_device" - private val RequestSource = "request_source" -} - -case class CustomFSFields( - isReactivatedUser: Boolean, - daysSinceSignup: Int, - numDaysReceivedPushInLast30Days: Int, - daysSinceLogin: Option[Int], - daysSinceReactivation: Option[Int], - user: Option[User], - userState: Option[String], - mrUserState: Option[String], - reactivationDate: Option[String], - requestSource: Option[String], - userAge: Option[Int], - nsfwInfo: Option[NsfwInfo], - deviceInfo: Option[DeviceInfo]) { - - import CustomFSFields._ - - private val keyValMap: Map[String, Any] = Map( - IsReturningUser -> isReactivatedUser, - DaysSinceSignup -> daysSinceSignup, - DaysSinceLogin -> daysSinceLogin, - NumDaysReceivedPushInLast30Days -> numDaysReceivedPushInLast30Days - ) ++ - daysSinceReactivation.map(DaysSinceReactivation -> _) ++ - reactivationDate.map(ReactivationDate -> _) ++ - user.flatMap(_.counts.map(counts => FollowGraphSize -> counts.following)) ++ - user.map(u => GizmoduckUserType -> u.userType.name) ++ - userState.map(UserState -> _) ++ - mrUserState.map(MrUserState -> _) ++ - requestSource.map(RequestSource -> _) ++ - userAge.map(UserAge -> _) ++ - nsfwInfo.flatMap(_.senstiveOptIn).map(SensitiveOptIn -> _) ++ - nsfwInfo - .map { nsInfo => - Map[String, Any]( - NsfwFollowRatio -> nsInfo.nsfwFollowRatio, - TotalFollows -> nsInfo.totalFollowCount, - NsfwRealGraphScore -> nsInfo.realGraphScore, - NsfwProfileVisit -> nsInfo.nsfwProfileVisits, - TotalSearches -> nsInfo.totalSearches, - NsfwSearchScore -> nsInfo.searchNsfwScore, - HasReportedNsfw -> nsInfo.hasReported, - HasDislikedNsfw -> nsInfo.hasDisliked - ) - }.getOrElse(Map.empty[String, Any]) ++ - deviceInfo - .map { deviceInfo => - Map[String, Boolean]( - RecommendationsSetting -> deviceInfo.isRecommendationsEligible, - TopicsSetting -> deviceInfo.isTopicsEligible, - SpacesSetting -> deviceInfo.isSpacesEligible, - LiveVideoSetting -> deviceInfo.isBroadcastsEligible, - NewsSetting -> deviceInfo.isNewsEligible, - HasRecentPushableRebDevice -> deviceInfo.hasRecentPushableRWebDevice - ) - }.getOrElse(Map.empty[String, Boolean]) - - val fsMap = FSCustomMapInput(DynMap(keyValMap)) -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/target/LoggedOutPushTargetUserBuilder.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/target/LoggedOutPushTargetUserBuilder.docx new file mode 100644 index 0000000000000000000000000000000000000000..f68a21b80ad289ed8ae234ea890293d1206f3f56 GIT binary patch literal 38979 zcmagEb9`i7+AbX1wr$($q+{Fa*iI_$*tTsa9otE#W2=KsI<`;s^UTaUGw(Uy_s_0h zt-bFH_q}VWmXa(u1O^BQ2n|6bJ}9uvJ&w!QR!}-qlde%hB9L zpUKnCwk1Vgaa{!E>%|*pDzgxYk2o@B<(?yrBSQk7L|xV$kM;`lnH<>D!xUeH`kYc2 z6jMTW#)BWxdZS>EZ!49qxWt*hezs;28F-m*(Pkmjxdr!uWCE$ovh+UT!Z1{Qd$up` zEEg!te*GYyAzJ8#SiVkBiq;cIEOkws1{(25D2$5W1Y~$!(HwU{7rCRF%E=h@KK+-2 z2_^TpDSr>LC-DHu+_x1bDvcbQEVyrhJn0cem+DeqjhYjOTpHY`>6@G_)twsG`%92K zN8lY$e*CoSWAd2PWIuswtcbo<)!9O`4*hxNU=u=BKYt9KtNCHipMScpLI0&oM>|%{ z&*~&t8qfPd94Y&>FNl`9iBvxsDwC}%uEsayVesLBwj_>1=xHU~;9+52-fl`gU<~;y zr@C;1N~dUC>Nqx;sT@Npt?pY2VKHiNg7J&bGkjSUu7ptk>vGxVf$+owS>X$Yya9;Pe^k+n zN>=0%SiLPU5D<9ar=hdCtqU{LpKDFx^k;BZlz>vV^`CRzK0v#lES28j^;7W%L*ZPWRjXswupA)TExQh7*466!6yD~+a`ALG0O zl!KI9D`#X`O~+4LkH|;iR#$1G0Fje;M^x1e1v6G`o?;{!C-hr!nWNd*%J`0KtZ&bq zN?&xVu9%L4#T8WzJSlFWrn}IFcr2R*%I4blKOHhskWXuR&sex^1uOeI&Jz7*X-K=! zX^C6$gBhRG<+}LK1ciTvSG5AZ=5xRVp#l?R=3uJi?BM9aZ0g`_{^upnNt{#|WI>U9 z@ReMU*NC`5fsvG<13iiSER7Mk(s9qhDQ`QO%Qd~dUu>t7Pw!5&%|CkMD74Al(gtoC znixtPmT(bh774G7`Mz#~wegZGNyl505;Abn_dI`1Wyxnc(HEtRhX7Zf3oetzsxP+` z&PP7f$jPzrb%r#jU8S_(SWFdFe)X${NFvQQazv5?4BB6TfkY8WX(NAlazp z1)veBL&kD51`zWrRj|R%yS5PSc(po;d&gV4ta$6Ki0iKP-=0mcS^WWoI*1{^KMfnH z9A=x-)I+fmoVhA!(elgA8xO#ShJF4 zFv>);A!NQu|6u5uEKdyFx(!$bAKYb7F~PKs)at{{A{}jsKr@xm{n!J_Xjr z76JqW<=^XK?CAJcS=1)&*I7`yUg#n8T_dfaMU`<9gO)_+#5eKk6SLbECdfV~Ky%pFSdUfvAM6z|Aca3JhQ1dPAbg>2I$wf|y7#y$X5gv!&eqx&z?}z}t-$^-E<($*3gJ4HC zpEi-GHdbhcU&oxq_iBlb=JRrbzlqaCkN+S~u{L(-zeUZ{3fyptZ@+J<;EzX=y+?w0 z<`-Le#gd>~6NlCzj8AIKK=*H$aJc!+&4Z9sa}BNq8hQQmrKicyB07S9YvNJ5O$c@FyNnJb?BlSfaEuSlhSp=t-i$cH8Z=6rpL& zZ3_OdY;1KOTg8O5p>-MI62(v5U0KYp%tV*4Sx-0kAB%UtiU0G(@bu1jRs?osb!LD6 zU_Bh1&6t6|S~ol3;PmIsIMCm8ndigu-|ihq3Zu*c<%YCp&Z6uFXAGTbZJx*QG)j*) znT%y>EukMrG(UR3@G%>Y&EY9&P9U(jiGNf*Dl59Nll6KUZR5DAWyKD$DEj2{zLOBv z6!4WI>QkJM9-*+;)fhUOIqBywUq8j!*L&WM_6r-#gpnd%V_5zO#$sd5ZZcZPk{SQn z*-4hZivcT430f8;^#l3KH`$_a2u}|Mul5($dTyFloH9@>urb2I-*^$ZR!k)xHjI*@ z9Z#+-o}e!jRcl(361X!vW)fbJ6u+-=&UXx5?jhF9q!Vdn!n>61&NQd>;=Flhzm~>O zVj;hRV@`eLIu931}|DdlXV=FAUi1 zflr(uHH%hn-{f-Tm0f63>)*JqxV7Yr>gPk_$3Tp3^fhq4=@{OU=~R z7u^zA!9L6ggYtkLp}PCEvM@rlO+8NrOIgXG#S1LU9^_{t1;CtM7?qbFTK}kiKmMI| zVvk^Bh89sNNVt!5a!8zFE(G-}dZMxLk3%Urgi>}u#K%NKycBjEEjQM9r~p^PI4*Sp zMj!T1e~=3sjD7OY&MzX@GM~k>IYbBwUW4Xoe?$bC!`#J-iz{>OoqRRkHMApvc%lVy zW1_*aXSizw31Gnzpz%g_ilw|}eL_N*4X&dHVL;6`&P9WTO5mi4tz%+p7(>^!rDFM- z|BUi`p&~cEh`NBX5jO>b%r~bO??iwdSmf-h}WSK1MZK#TwB=MmJ zhFt>V2x*f^8H@O}m!>SGPm7^w&leN=oz|ntIFV%4dF7}ebqhNK^dn4_vJA%M3`8v2 zvY_Eo;GxdRjj|vUD9HxvsTeRaW-P%J5^q{Xpxs#odLkQPVkw{2U9ZG~U{qoJ5(Pq= z8#u0D&8m5_MJ@$1_J0)@gijj_e}t4>*p$s01*mly!PZe&p@zbwoJoPCqIx91!Ve|1 z@c4?xne(U+sT^?b;&lz3`)|u+ek0?Yk8H^H_mO)A+}48-SV3$X7dg3xdocES8Lo$f z69W)8Te0NfxSSL2(k_^%;5z!(2)BUVv^kk+X8attue0Czp*VJR!mA#s4ztCDG~Cs+ zXZfAkv5`oza27U6*7 zieXLP?9JP0H^0$|0_7&_6nyjI#IWPn z`TDdz$TG0hxr8=jTkL^_Fuc8V&>%=oOEI4w!emy*80$h7sG+;9HN4Mt_~fsWxO$H@ z{jFbdg?0ViTt9LX<;x_F`zr?P>E}H!$u}5`_HtAln>Wun{}Mh*WRb8B+)01kFoHaG)F8<-Y81#`_My{Xb! zWfO{j8t+Z4IkRUJN9tyIB2SV)EG4z}t0bk%^h{=KM(|9u9!LwEo;o7I2sK1{@V6gI?TdI@fe_(cVdHUi*pi20p7}k{qkAa4bD+-ApU#0DSo3+;5fY#mgOtjtI}48Xa3s>^&3KIFE z3Z18Ng_%!@m3C%ciS6iBOmH@YuqicS>l))~x;^=M%gmn|4t$&?33TzexJ$rH=hXW1 z$8NyPhjYG8=2HD;A);M9OQgC?mp+j75qwFheGc2l`L+hSo0-N?%-8(fsD%H<0CqMB zCJER<-cV7DpJ-E8J5IM}T{{0&s^z=}Yo6LCNnLOp@<@>6N#&%KnQX5FK|l_2^*I-o zz%?kK-hM2SHKHjy$5p%srJG$1%|m)!xzL;}IHCgnold4U^r+^*lC#`Y*t4vJLEXWf zX~{1>v%E7>NdDWEd5g8aV#qhTr!pI=7a@Ft0(@mRlg(_S;}mjCtIJwxT>d?+Gu|aE zp`X??a-7VLyqMNm{EsD61v7Hr>Fm|=R4G#fxh?eUVD}(kpUzKi$x$T?5-{K+R9Z8A z?GeLL%#zX9>C+DaG1*%{)m=_#!ad`T_zZBp>uBX!R2samu5~oITC;gI@pg`1TU24|!T5_EHhd{LW2z zm)q5$bPpx52adToe*GxMCak-Xo=wu9C2&|MxrGg&Shyz3iyQ)YNs}(KyVS>i5t6@b z#lhko)ygeCamEB3m%w0wRit)h2o! z&g9l*JMprsw6-Czo3Vq{Bb&jUAyEL_#270qWPU|tcMvPYTiHhvFDlpBr~+%(x|oz= z@b-_eV{mICYl&&nC4+;_+=B?i=G(&do~|yEcl?Gm0{<+`e+`n=yd!7Uw?Bz z37hIvSFK%7*%xZI=2Z*fasVc*3#OLl0zxo-Al4hP=ZdPsX(z&{71$(n{=HY>W`{m? zvQKk5HLweFYR24=ND{10TCxLgBy~q3ss&zWdBVj)P`BbC>y%#Let?B()(UWbt6Q0@ z-=W^la6|wNw}R?frfVR04)__-&ak_u^hteP*;oaBC0Yh+XA+OU>WCucz1=rxX`p*x zv4^g{Ti08A+D#P}TyWt3NSHZL(`26<5y)3pR{l~8NlfpN{Yw+i|h zI*Xj4&qLp_Jry3!Al5s$|7!QWH<$2XLL6I~|S;_*KI*X-Lq03VGFxGb9lF3Sjj%d)>_-+yl^{QDgI?+u1zQN>^uoUa$}a08)9 z7^U`6xW5ajI_ae9N_<15))Mc<54LqT%^1Y@0{0)d{PL*n=BMvfm$vwE=$k(W@kE0m zW6XytnWG6MrTL4iK)Wkk75P^F;IsDLH=j1 zU0l6v&0YSibAX#?NqbU_e!abgMTW0G?czf~MrZ6n65R=meY$fSF4*PS=YN0yj{PO> z%+Q~bRD@VvMP1`_Wnv@$KrWUN?SW=alA8J3Tb_TH?FGP)I5z9;e3N^y7qO>9_d?^P zZ2J7B(*f{?W9@ctC{@$|BM5nCqQcDk?s__TS|nYP&Z zay0+zt}`rb|HSL9QQ+O~ZSwTG*=xg=yG)q4 zy1%bm@hfk5bmPaZRg;d-%i{W^w@0M#hohFmAnHTs{>|Z?C+=C**cZcxu(IVrK#LI3 zpe0~6chpDQ-hJ8ltAcTU+Vn}i@VRi#JC=}~^QSAN-O;e%M?>cI7oaGQZU3z^T=ls?AsmJ8Lb<-2hXGCbv)ezI} zytCM>m&=s9YtKwV?#bIIfHR}_8?QI{O;Xi9t(#Ym*V=}#gjk$^DD!*IMo(v3^<>I0 ztG`|6hF_1K?nTero%pkbN*d9i)AlAa@-`q{lGs-|_l)#osP3uPq`z)*kt((6)m0}9 zfSO5(=h_L|eYu6#nI;VIic;(JL2z)0N_SqJ8e;@_t~Yq<()~KXm6lg6FNc z8vf`EC!o4Fk?}HMF2d=>*MQ61gK13P|BPr{g}hsi%&I~>piXR3Ei@$I7f$ONJ`Zqn z@3|d4vl^y`Gf;bq2%1*|6z-6x4lZ+9f02s8QzAhaX<7Qr=(Y) zh3pm9-OR!8=t{p)oNd2#2`~r~r`FAS%x&nztFR4(wT&jN)F3U|-wpn%-}bA;Fx9p; zc}-hBI&gBS#wspY@(4LsJ@t__b@+1eF+U|WTH#Rd6I-KEUMJUHY8rvNaH?BD@&K7sU)*k zg)kgo(38qCE`NqeRQT3g?Y~XH{HQU}HHxuR-Nl+!1gdO%mDl!GftRim$?*QNY1PeN zdofhJ8d=ZEzAdw&Ww)1vQp^SZ8Ac@wjuN8(NWzKqB&jHbp+#FoEPlsCTmnjQZdX<44y6OAHqW@O z2#Ufr7D`A`7vvbD*fmysP<$6;asHp1Uw}8U{&^E(m%;&5^dHaHw%}1RK`?v4j}6Fd zf&CNvj3W^kN&R(O8 zF5=BI?wvj82Dy9^I*TMdL>g{>7f+!6+WtDkOPwiwpW!3})2Nf<%iCK$d$#>M&~;br zTnHqz77m>{S4Ssp-x;C>nRHWMFNQZ??%X=`?T39tUk8_`+zY;}c;4tfj?CxP?RwVz zS`<<|Iyf9J+PjHA)I(4kw3d5zWpttv-%TmRoNwzIlqKGb;i7b`R zlUX~jiIv=twBkz_@-lqHY)$iCHliuAXG{Ls5@?zfr3l}{F*LR}esr3UGg-`4NrSv(fH2R8|3G_v6 zriHfQI|}&uBnD7L6SJD-V4 z$UfdP7dmG>o^MC5->*l8y*uBWyZ{gHDIZH`&-1@tPaIi{yWZP{bMBd6XGbBu-$9U9 zv%K1cAPl!V+tNnwNS{;^UO0_5LW;`IU0jeP1#RhM{bCV4`1c)_g4qQ6UoYW<98ONzU4k{O6!l`5M#&%{|4W2VsQ zaTp@@`{pFKOK?V$wcbrY1-G6E3B+ag^z~PKKjf8eQR(csN=Yvnfv-nyaiN2@X-i%T zRpG?sV<_(oQTUW|LbZN~`F85M+2JBolI4aq4-$1y5K|$4TYFNUI%ON0&X7KmCU%EB z(lR$IpHdvd#;danM=5(1RjQiArJvSpvq|RgYQ)J}8>hq8DLl@v6E-cYk)Zs8c*X3G zhE=RyPep?Ta?x_%Q+3DG-SPlV0;nYvy$PC3cs7lnPf^xVW6y-!^0#tuc)A&cAE+fg zZhMpXoXh2PbeI@5=KKNqTSEtN<({aF!^CQeZ;i-;+rn?SZQ?V+4z~jx%Fc^LrTX`5 z1QXX2tG37TUDt_y-zOOKRO5b6p*yA&;;m`6XdZ``p_FGtoi5nNsdcNw+(8`3{-~Gt zlN=eZ9N{|^UZrN3!%tf+XAzu&8b#$7KAx4z`csWz#jA>X~AQU-@Cm?A|*Pqff)$MT42& z?ibLNLf50|c;*ty3zv>jG=|&l)fon^xH{WR=2(}8?-niG`oY&FjnpT7y}hgzs`U)) z1$2fMRAe)#YOoYG^cH`({tU06{Azma{p8fa_dDaRD(yIhEbbcsB($8Zxqk(OfR^Oj zsi(umm+X3`E&Q*8lbZM&9?{H(VV7IRtKemOgyzq&PlQ)Bk*<24I#fdE6+|p5)%wa4n7_b=}M{d6neU zX_OEr)Q#^YOqeVruJPp1)c@p<0FE67OpzzrAM0a>VlwoxpKEx;8u!ZKHLCq>Qj5+-H-mx~xI^Shw#+$;V@j zdp&qn)h3=QB@St6ahR+rx*hG*RFk*wAD-Z7ujxBzI?(E5b{i0%Xj7x!rCnY1R;@&~(Gs7UYO3GMU{cN<{Qr0KB zsoJ--Vk3`pw^~8?a2)f%oBL6TWG9GY(Qi>=U&xnXLC`qBUmVn{>}G+*=CHg0k$BNi zo%!kOn0n{9Q6j@ldFG91G~I=%o*<^TI6bvq1tUmi$9#=H$7r6tgVJIW;@mvz)Z02r zJ}XBPPBawKC-$_vjEA95 z$gYFy?I_v7>n^w-(^J}fWA>lYNJ#IRnQ6I*GfJHzM7X1}R0`?mG9V;#Bbo|O+C=x`VjfAX150arSAyRZ7L8@NSac1S8;Zd#`~er16^SJTXx`#=A10>9mz zW@;XK?p_=95B7U4$Oj~?Cu4xq3YpXJHiR@_P`VYOab$0NevL*~2%F4g>aXKw#%5pF zB(B{rE@HQ!>;2t3lh#>=oYh@^`&%VQX1$EI<P5&JiU znFnmQ{L#(RmkA#wN3c4A)bClbE?oiK`O{ZmjWFE_=CIuv;0k)%4^ncDCYH7LSlz~S z(x}~-vnv*b-1mX&nMG~NJ94A!?qJ_ie)0uuQGqXKXm>$FQeRFO!*>7T8HM)*Un5{9 ziTaMO4a8>M8G`SM5H=1%r*>(nJ4RF&jXbua__`%URmknb<5cPb#0fk?%ICHe(q+)w z3JyZ|Jg5)Za?Rcc=E%WKt%X6%!Ax7s;V=MwG7oYUQg4{IY55pY6$mqpDeh1kaXj6& zIUJzs(|J&Wl;36~;6|uW>b48p<*X&l14fQu*;8rZmyryRrp`-?4VTEcEa$YIgnnRDJaAJuQLI9 zwLQKq|+a8vge`;Lg{68B^$Np zxxhtNB6Df4c%vo|Rbl2U?*+eiTEUGSRba|uH`vWou4;h!Nwr~Iih(N9q#dFN>Qx#v z%eIO)=D?jC+-1rX8F&`qQl02eLD!z%V%~kekNV!ZiZFIs5h{;MeMLhzI7{wuuv zAK?rC3P1i69!w+P^O1M&;wLe;S7Jgt?t`3zO>fK>=rrpz=<$^3IGsb0zw-wUdV9AMO zw;4ahdPTm0fnqtwNho&+*+SLYvgAdnQoWntf^}tZIk)AaZB?>RkpY}%K>+oFtV=i% zllsj!gGR#GGc_gVx-<>Ey8(PF)D!iyup$q3#`tB`s9L7Nt!(usMvLcYZ`z$uuv{hP zX;SZYweIpX+b}bJtA&@k!NZ7P_x-edl845D3=t+y8dO~N9uzlq5{hG|2q` z4?d}20?n-HQR$M4bHmh+P2#Otu^Wk^YVl}Re*4s4*l#~|Zl7Ilr4FezM^#U*eQ%m& zFe<`LrlXGwW=N-P_E+6CD=ogHBq)pcJv^g9FpQMPOoCZeay@LnMSLoXS3PK7P;Io! zl3CEi4nBV1v;T%}|E$AKI5SQzmv6uJoFNHVk{1@QSyaE(joB*Pa!85vSa3jOqbm=m z7N|9gR`J)OGfpSi+%U;y+O5%;EN{A_O1UjxWeF8`2Yhegks20+>!At`)UmcP=Z_$Z zw)6?SF#I$_gc#pbY1I+uTcloD)-b!M`AnWSKXi0L19rVOTNV{?d4Hn@!LX9OHVYRG zM+XKMM~_>wz?2tBMD>Zg4W?Yyvr1j?9vycpxbL$)m6@gAKY{cBO<`Z{%_^!puTf4nqU9l>FnDsM;+H z@3#&~5&Z$(niJ)teg-uNH3qN~9Ape6HHd}F_ZL=ND=gnNEYNZH#MUI*vG$&em|Aj6 z? zPd1t{&p_@g>g9x{qc3H3);bUr+h0;ntbV)PVS^`qV_S9&yIy_*_{kDRLd7QIR_$q-m-sa?LB~TN_K3Pp<^gMF5bK z6bT_CA=GF5mpM4X7J13OSZu+m7<+qErL;?pDsPxjYD~~|+W%)ZX~rOOFFb=!$9@Gx zXLbBvipLTeAY7Zr<-kmwo2Ix+h!qDV)a#qpRqM!fX@0?(@?lT8Eqa^P=6?U>(giLZ zdS~rhGlEiuz7AaRH4`I5D?mvFLH+e79f4I(63v@QKFRxd)w@&2^Yv4`KfLjRUpG7@ z4H16KCj%$)4x|yy;797Px|s(`_~K03XU=ArxD8#y2aVcp($xNZadmak5O7b{a6krV zcFz(5r2~x>=hf6eay^pb*Q7)VqpOC1Azu*iD#%!tCPJ=)?Oaq&sr5-Xm;*0Qij)#o!gkSWzk&0F$9&{Sh_xeu- zu)u`@Ia+e0_)I}pzEf7sHU;veD75)WGa$|+pYlM5`eGf^up}5t=^4I~HRX&|*TrY> zF0=UTndfOE@O}f0RbY_X22aBOY?Mj3T16Q}n@cch%6fTY8ZnH~xVvG%K$Wc!$hC$6 zmH?I^M&b;j3L}9KK0F3bhBc3gC7!UVV73Ga<_yhl9{2l%J&N=bci&vZ@UhRHsVak1 z9XoW38S8M-g(m|P0EDO^U5qOmDrq%ab>8WFDM~oT_rN3&-gtBxP!kabDFc*-^xAry z$SHTSCMJ}4er+iPJU-*td|7tTm*mnmK+B{ z0xzufeyl%&!iQZ$hn37)(KA}kqQ+ZCX1L@p{!Qhf)E||q#LYmJgV29eLVz};n~Zk+ z@?|+R6UVlL3zPl!V&gId6&1)!|AIMhdH?%+N!jIbm(x35vzNV|{x$M>B~jN}apZqXw)#FnP% zPMHx_m5WMPVfU5Wj&i=N9vn5#vFeKQ9=d85D)HE*R@>obSxpRjH@zf4<|WmfgN%lB zFB<4~w_99Sq{8*L^CeV06~3!d_DeAZC&Ri()9D?Evo)%;Ld1H;JE)Z*t_VA{_1`+5 z6SZy44bV;Yvb091d#tj@zwf8uSTa^p&d6jpt&;@vlmWhJ9%e5Z+E%vFQv(~5cr2Gy z5{Jy}j3&SAWdnm|{tn{#-$5zU2aI=z*F(G!E@(%8sM4zuZ7=1s(I+2=cw^Xcy}Qtk zswG?g+;_(}LpfSde3-~?x~2h;|KAF)vv0zt6Sk|lyp;>+>>zq7DXz$A@+zO0Grc2o0iw-^D`72&}{V=4mf3ASUN;RpK%1-mAVGY@7>0L zlZ+t?_Ei7x~L~ z=hU2Bd9)tJGgww`&4cJDpS8#-61sT|u4}e*BO5kme&@U^{w7%ANN!sul)9-AIzHsd z7#|3GCsx1ULyAIq3POp#GQ}W#+R`G92jTv_Nk2ehO=SbvH&)I0DaUpWJm@Gf3t?+n zd5BN_<%g>JC;ctQ$R&Uw+O&+$8ys0CRG}57VS2^GSJKQS&`hfD8=`=7n<`TXnA_V< zk62L-`K8wp@iIQEOtTGi`T6it*p(TzX>Nu2;7C@L{8!co(eR#~zo zoAN~m`b(w=yF_2mM=Bq~fV=nYx8>@8denI+9UuNTup6Iwv%gIK;;6an8TmHfy!KC% zvbrbTB@us{3`_ZAk_Y~e$!@#e&%!`vx^5_^o70Gln##mX0)2*dqO5oA)rz#J$-~_2+FvW9KJN zfc1A}UNG@~?KzZr-6>vO7;qRkpA|EdH#qN=_TgX;6bB3#$jVHiJkmh#dCLK)&;a6D z%V5a1Pzo$Q;H+Z@Je&YTEFc`z7^0m-CYgk}oSH|p=FTiE0c^??hMuL{mMa%Jw>_;T z0!zt39g*3wGtS})tm}nlH`Ii=$w+|Mg=<`Qsvg=+4*btB2{9JPF%KRNx(f+J>-vM{ zDOv-q6L$3njoI-YYI=lSb7gXE2)?|n@+)?`-DRUE=oVDmr5Ne&qk9w9-QP>i8OF%{ z@F=t>T_6eIeefu(BwZlb6cN}zA@3lWX*lO9MM)$a)nta0&wTv?uwxuL)josP z;|_Wh8TMNeD3p}7!Xbn_35`v19pPxhuT|tL zH49C-pyFM9JV0QvXaMgrJeGdlsmyvK*RdO`b*8QVzN-&z1^znx0(G0brz{3F{GwoG zIO~OcCX#Fu$MD6DbAdOH?lWi{ynFm}i#^{>)uWhVw-YRDFA_`dun~tN5303jMqXcj zz7*Z!pxAS%S{$5B5*c5ut!8qilh44b&X=GcU^nnoJx4wRiZWBPAda$Abx~3zhhe7J zlUY74SIt{wH#WVZiF`MzlC(QcyCs2Ze|YE}M9nMO^2rXDK@YieW{=2c4BYW2ULl|$ zTiVNsuzt)HdaG%H!_PUHzo@IltYaT8`|?+DrEk;x1pJ1hKBbL#$^fyCcyjv=GxVzT z8|@C|a;1dHLdPNDsb%{_A?K;05aY7_QnIhbX4Cahb4%{KiUXDOR2}$~1Dj*cg8jT) z2%pj+FnJ+Qun6!*0I;H<^t{XV#Hl*xja-&qEIjnq{#OQJm=#QgB~`Q=c90FUo6|zn z@TXmt-URGNTccUIQ%1Jl`>fPTc475oFe2>VBzJ#PVJ)dRzyp&2J~f*$iv^!XSU^s5 zgN}pIJX`0jH73-1qHO%~DlwX}d8El{ZMZQ%ACeP&VN} zQBlOvs<6;o>^dUMB?UcKz18zw_5J&hrOLo8P6K-@HY5u5vT2&Bjo-%MzqAbwi-&t&Hs#m{2r)+|+!t zkyLpVGSi0;g%(Gi0V?RPTnCrZ3p$YyLqqXx1mY&SVR)$KL4lG;fHHEB9M#ib&z1HP z^MoA$H^xHs?Ye16*;i@KYCMyzu_r}CV&E?Hj*j9e8GKSNfPCDW?BC2>lj&nRkpr=AgYDeO+JqR)rWf|ySzrMDa7=&LyS zYgE*vYr8bEZA&Ho{K!ts#4_ z#n)`_#MjDqKG6oj0SK8NTbwa6nLM{&^UH#W2a0p~9cl2v)h_3kU*t2cz4u?$F4

    6{-9f~aaaEYFbob|#dDAkG!kFGt z>tfJZ-1=Ys2!2JOy4&D&0SXTKAHhL+6_CPz3-13T`0|h7TKrQtch)D3Q`;UNNMSW% zP5Q?a;&Iz5;&Hiu0DJb=r3A+KytwX|!CM;P-}j`6YJNW`x@ z01i+-QVJxRkE_JDayJwF58#*~I6zv`T*b~ONMS@(2+UWUI*+$5AN|XoCs9R6;b<<4 zRn?LvRuM>HzwYg1+B)tTV5=%T;Fwp*kU1adx}jpn^5nK?W6Vn&a&wC zi8s*C=pr1TR;z!uB#0O&O&*vM)2=O}e&$Qxup30E({>lS$6uJYYM0{a3&B?lZY!^& zB|&*3|19SJH8<`>PbMSUG!uJB!2ISrxOMLUE6N5b?BMly4Lk}%r}k8ceZHp|5ZZl} zpD|#-hEG5H6LATOUuy?tmwx0!>PE?b&qcw0M;&O2cn;KW{eU=fut*nWW)J)pE)xd3Cc(q5jw%p8hMQ0jK3gg2_V& zkp3&I8C6H%j{gv%nB#`0&n$$Uv;*EW0ys6G?*n{ZUlbFPW#pUF*1R}=Zx-v{q_m9fc@b?95_b;Ulj2EE1`a; z-L2|>D9{a_8zOW83)u05w;2sXx8%d-hUs_OKbs@w*-B>f0UdQpsQ?*`s!4=*B-o(J z_?!NS;~(^8rj`ObkU;Z?yX_90QJ|fN!yNw|P76M||M+%`g-k#d0EXAw1@Q0!$A~hF zmx0$3fR;{7PLZNuEO0D2zv$>r99J#jl1(k~*viMOr2AB}BPv_!eVJY|t)z_S?~++S z7xSic8KvONxg7(@z##QI+h}*=;f(327_#l$9BmTvZiTNhWDe$g9IbSwQ2M#m&aJxn}=JXiL-;yiUx|AAJvlEeTc3#y8TZgGyxNP*3ceN98B1p+8 z2hZ~sP%YXO*mhbV^yoM#S{XCdwiwrJ?%j;*O7$+)awP5%DQ?LrF|Su+7J0~HwnZ}4 za%A0y$yr%wOlha)=7>1yS{VvUBBtiKr|T{WNS$X*jiE{q&smgXl2r7LLZqeeS9 zff4;A>^PvWOtVH1`IsU7V`N-Fm;J|6Mt^1jEfv2L!)91C5BmncUA zo0&%H>2qpEfF2F~q?`K;0-s5VL9;QbPkrSlN{v!h`kU@P#FZqaR!qwytqhUhX!NHv z^i3n@wo|oZZ1~@S<&m!AJvb~4nLNmRFj{mlGBF1h(g8X3)Jw=mmCZ)X)(v@S4FAct zaq^qGiTQPP^$JP$=){iSKtu{@6C0=k+3WplmdA(9POgOcd8MQ5>elH zEI}oN8D$vyqi%A>zR)m7D8J&Wbh|}Cpk$O=yC%P_!eQ3--gRK(N2k_8bczdivZz3) z{?T%$vc!zuf#&Eps*n)K1Z@e_@R5A+yCd7IVUlOeDK)P5el9ln^a0{I{FX_3j7Zo@ ze4Mgb=MWEOs`&57@!x$v=>)+-puOkq6j|^k=;k8PNc$+{8i?Ycs9N zK^!V%lnStw3PQOeATVL*P}E4uN&Ne4P=X-uHPNc|7OB)=7#z;0haFlJ%9VbcFd|~^ z_-(<^-Gb9`Y(nUG`W|@cNQS1(b&pUm5V5eVwdkc_i&@lsN0D_`ePvo za)Fy}S?4Gf6ql*s(e>fep{gB2t9|K_QP|EOSjl4|h@kRl5f9x!G|v|+KqeQ341&uP zfn>g<%Fb~Hil9@&@dC9JhP=@@4S}PK5&EG7x^)noFUFiN2A_lf42211V~e~}mdv6# zwv2@7%&pcF5u6Vu3aOtTgqh&BtG9Tf6Pj@W-TGLw1dI9EJ+G_)%=eU6G}J&O6sr~e z0g-NHW+FVVOj8il({l1Uc&qW1tvaO-hPiBZJ)Tm6UtUBEo<)pOmddGwwE;QvgmMO z+-CuTZTf&Zcg;uj_@?|z3^7&kvF7&=kZz3ceIR==Vg(|17GuZyCt0Mh_$XZE==kM! z*w)B|Q^4+N)?Q^^+gIs>-6jOZ)&oOMlAsA5rywv)QXIDFN`PX2z+i<+0k}q$ELLj7 zW{bht@gaq!MNuh7r!7CjvPPzTEP65%!s@wDAPIfW(JMa4lgNC&CIk!o`32z>o@LCv5U4V)4<# ziNV10)aoJ!w-F}PpAFu?Ob{EF8skt2a0sC&7LhJcD9&$HFBb&Hp_V<9{_VgBnR+Jq ztp&%0J#tPOn2BNCGNqS@Zf_!{>TrzD_oAfy58Ze)-xIbvtPxVX)Epo5Po zJW|MQcWgF7rf4ZRL;;4qz%;i!vWla?H11-@r{yc+59I$mw{PSXG|$Tk0^(8!1%mgV z=k_(NT)#+KSeTo-{(XesPd}|ls`2dQ3A5#7STQ#hgmiq;Zw3u)#9(s&D&zi9sH$o~ zKeIORhCr-3}_VaUBc>M>)) z!}Hp^e0FHuu}(R17+EOY%}?Ps-rAInuY>E?VrZ}HN& zLhWxaOx?Qz@bY=%vbu3=F!a+Cth@IwwR=jl0QmcVwCekNSnsb-`W5#+F?9r90Q|j# z47)16-Fp_5eeiymOu8hE=7nU1wWS?+`~M%p-T}OlZS5A0)p5tRZKGqe$=q_Z{r}((W(J?%mJX zR~BRAaAB29w*M~do3?6Hy#&0&xg}1 z_eS|+TU*s8tusQ|Le8#vJn6HV%x$`d*hbnbCb3OA`d1mT&XGk0(2(t=jv4x zc*wG$g}1i!`*od>?_Knno15H|6D7};cYC+`Z_l3gE$* z{E>O5)2?%gVNb!Mggx1Ac^n~n*ltEAMW^9^t9N^<^?a?ClWp(fSCfN(|1+f1ST@0? zzP7n3S5)MWpGaSZuM!nCcK_$k_H*z3+=<=uM`q%w_hn+#((VT~{=rAdK=8z>ySHby z6eRB@ULHSQV%2eOx>l`re&4IZOWENad0Tjm5VlR(DJ?DniZnj_`$ygSc1zxGr|d3r|v?uO95CT;_!Q(%!2#trZ_M4aV%CEJf(6V|gTFIqS( zdi&8EjPFMCLJHbrv{$rXtz(n3m(xsR3s&7YeskHN=CXLc9K<@!t761G?#{`I4!<=>cs$79L5T>Elo1%2J$R@VC|{yAGX7moaX>I682T ziSv9Af4S-c7&YQ$P4IFg%UX~{6ch&N&SKVs!N}F3Thh>K#A_fN5pu0~55f#8*t0UIcP12zzx12#khHdKo?gWLWG0%sAb3Fs{qyNh(^v(Ufy{w(A= zVFip+Sp11n{|WyW%6}L5Z`DvTR?m>r6X;Dz?h0 z9wmG<{cspP%A%&qCbkQT`E6jsEjD#O4qq>V_xCeKdmq1sV@vS6j(Kf3b2z_TaJ6`T z99qntSUj*+4DGUiDRLP@K!1O7eTF)>_c(rA%jiVq$!Od7b4*tW+1O?nnpuelyVJt& zw0jDN7e2qavac=6%V4-UagW_t_7)XpSpMEZ*Rg$n6ZP|Wt(^Nq8m%O%i&zhZIh$HUfr-$>M$T$iFX898%c&&pmbGse#G`9V6`M&vS6iRt2AV34M`mp_9RSy_tEqUC-m9sR1{YCo z7uWc+Z(FZ4mHeSakYM<~xzA89FVTZ#cHBAEG3Gci55o=lvNBL)4f!%N3_VWggviDGve0I&S@VBHL_7ZhGb^%* zF7z!@g_Dyb=HVrD)s`?bAvpaFxAOf0fq9FkH0V~GI9=>#aGeQXx6+~$jQnA;jFBcPj@tTE283CTEziT;C|8A%M@+D$Ohu}*U)XvY@2vw+$R>@mo z@P4RFWn$M{q@K7=VpmH(zlFdc!EIqtQ;g|vZW?g=C888^f8h6jJt>GcF&cPE+sn|Q5;5<}W zsmPqVokVW{e=M-^3};d|KVTb92=wW$P4zgf7N_eq-o7iEtQl`a_SM z=B#nNpw!+2*WRXrHN#@k+RzC~36WWr*BHlsoP&2z`VW$zU_kRdl-&r@4hZ1_l!D_} zWR(&l3ofwCQp`Y#I>~+{9vD5E$@b-){C(0`l9P`b32ijeM}QN z&Bj@JQWi(SmxJM%MqO=SZN8c#mC+rZiWJGk@;F>@BoExqy$EBX1ACP|b5H9wFTujw zWMrFqc?tddao5Y!<%E>5i67UdI?TGjE*w<8MY{>TbJz71cAU$~eu>rv2Gah3d0=(R zP7wTO`?L#@m6)O_wv>j1`#Q(ggj?>0)C(sBZABb|u!u+uP>~OC0s28j)RG@3$5W zyf|nK-(R_aN|T-^#8w z>1tGvDAJs7TGz8MoOx z^EVY_a8AeLedM~<`cWst+4~^Zxt6xlgSTg_UE@yqBDVZVW9|m?6CJLF`Vsp163Ed_ zfvR_d>+1FRunqd-V`S)^8zo#n1sR=UF9jX!X~YlQ00-ASqt zerSRGta?_3vUgKv68za5zyV~JAr|Yt2Dc@H2m7F5Uw%7ucC$aKw8+S`lW~;{_J-1bd|^G}aH?@Ho_C_3QzH_C=Ol=V z(ynVSiy_e6Yn`=>lxq+=FxATKnc`Jr^q$2Aga)EQt2RN-n$l{kuH_C5RiT5Jvmz9W ze^HR)RxM*E!2pfFH>Z=HAtlh0w%oxFfbS>+#sQMKRZ*tNrj2ZJREiulU+(7To{lNG zjiQ+;qu!*~g#sgmoMU%&M$1yRV@Ke`PiiEGeC^``urp9jGZ=;9{xqMtsdq%9m9P9E6vGDTx?-r_Od1WuUDwFitR#{XxaVDcID6v5+ z8^h67HP(bN{=-9erE#xuw0x>_aZx6E1@HC@n$)Iax}p`YeRuZb*z2p`MaMDqravT- z3X2d#&PP31(#UE`H$_1N&0k&}f`j(vC?V3$ckMM@(NCgfYX&DU4cF2=chZOj`N%Yt zEdrMIOU(|_3l%C77Pv5f?;{AGzZT9;QvNj5JL|kO@)}<)@h)!ipc+zt$TTUOuYLj9 z`tszIisth=IQZr__Piwnk~to!(%6lIbM0-_2?4m$3|`Pln#4s*O708%wetIm6ODRY zEcC$jZ-gPD{CW2-V>@`bE=&3fPYo-VKVX1|3E_vOV|!UR!}OldRy-XF87x9?3k9HU zB(~djSh#sK;nNWU4;~QMbr)ck(kfg!+&ej|;HJUb<2MBK$Z5OwnqsBkyQ!Sduea#k z&N8M|z`GB@uOMF=g1h=al6j_ifob~XH=Adopg}R-8`mx_CFHdr>l1x!wU{#LXs)*1 zT9(mTJZ}z*7H$Q%BtCvbFQ4u1NG$ zKI&aWCaEOsUIZ}{r&M*^Ucj1UtGj=oLK*fI_(}=Es9WVLp25@PCD>Z{^fWR;Efp@6 zb2;{Lgu;}!4liu2sqw&qUC5YueGT$ZiaE%~zL=PI__;*wv6|O)0e7g$Fx$p(smW$* zv$Y{Fq=Mam(gr$KOuB}xTWtl~+i}cV6$yCXqK>+HqUvE(Z%2(I2Gm;Gth7JuV738{jhmnqP~kRW3Q{%P)!`bw9l#K)g9K}7+P5bh;qBGQ z)n$O1*Z|ao;>Cnq*?Q+_5ofyUqd~3NVz|VUbyHGLR#Xd5U3*VUrcDtGvc%&8Yik1D zPM`OH!h5sp(~Vo3n^a?l2V3ygnqPC$Ey(X$GlqnwsZ4ITsI;c2rQ?gT3R3qa!FB4K z#Rf#{AVOG~s&G0q9_qUz`2*ycge9d$WwEa`)jdIKtPT7XV|>f(k8YmPvPK z+%Hnp+9Y{c-0A|ZcTte87LObZ!sPgcm~6&mc}X6Enilh$RJt|!Fe%#`$l6(-^Ov|3 zHQ3Wx(%fePn~V#Zf;e@La7)uEQMy6=^$eSEwIX=)q%fLH>SN1PV{|%{i&~ zUMM!@Zh_J=vt40CZ^7fx@^r^cLf?8eFZA2V)k4PI0x)+t-T7?xZ=-8E4yrrCy35nko~B`p}^_}md^|mgK|g1=-$1$ zO$3nxZ+pX;QN&>adX`s^VMS7gyLc#qO@)L_g-??wkq&^OtHllUu2a6h4aYXmeeM^V z2}v6`hwf?4>Bc4q-FjG9N}Kb`)dhouBxjDQi*%!}aowCkTjJbfBqy5c(bkI8$%<`4kkhWNIzEzI~zH2q~ZOD*B*Y| z@3YS0#3{#99UwGY(>qc0I?7pr&Q%XX6{E~~h*Q?gVZF23$sGkhs1QvUh&&c9yOM_LPq@r-Sr!-v z>YY|r4@JHYHs}uF7~ipbupwWG5C}+!nV}zLZW?ZvqIG$6sbT`}T$TX{YW|x8);@!Z zPy0kSkbpJ+uv0J;l~ky)5Eu%n2olk-c2I0?P&|s!^KmOI6dfK#XsYHDB2o2^uhm7R zKg>e9(`%hIzz3a6>4=1 zBM=3{l#=O%b*E4UVXgHbh=p~piT&Z1+Y%kAgn@KTA%e2qPs9{B0BTE%tS?MmzJUp3 zqovMK1lNG+5Zu&hMOuYC?rQinAHMm>BveW;mkS9L=8<=JkKBFj-upr=c6W`-dCA zxNq{>E1*}vq3z((dUQeLOAQ8Dn*fW5ll|jtmO69oCt2$qZb_lF^U}r z12>u$_v`DZX560#fl<6(po2hQDxS+e-#(wL9whvCYWP1x1AR$Ts}q{N!MBO49(8i| zTrBPNES=3P9qr=1-{XhE&tAjlDTkYge$8PgDATqi zwLBBN4QU`W6Umw#5@J9IPMEcP7l4R)|uCE?v>6*q6+GuxWf~|~-hKuQ$vl*Nl zT05Iq3mDpL9l~$b!x162>Rlr0xB?FEV*4>rEU%yNgl#g9i_CH&$O+b{~SY z;g~ulZsjHcR?_lG@*%(7OFiuBW&56e=YCA?*C2WdT4KrpI+nrFswV@Mt7X-uf{FRn z3un96_{7GzjO$y4$D2aBYq{)*UlK1&)n>bPz*5#jHTA*039qy3+o0>4FL#!lLG>H zrj}D7L{(Pb>EFVZHanLt0cS9k`cBBYw22cKHE=H z2Sxn*5{&rge7S+lHJ7(owC#HUUjJ!Q7IFkV6D;Er$PT=>yX!rb6kBv8`6mcWm=_!fE(fzH_b)NV}(*4f%-WSg2 zzFIg+IaPBP#YyKa!CrrodxDm04X06$+pgNFj#=o_}^1Jt=+S{oD3c z(}~5U(9_Y@P`{!}EQ$lGM$mcT0x9F_yYo-RZg>~{;ZD#0pjtdVOPT+oRoG=F)5!4N zvN$&1lMRevTCctB@YcYgk|16GGZP4fB3nQP_iL%`vAjxifL3A$tUcx))3DK-*7g8~ zZj>bSH-K9 z2c{5X#0i4bdxt=D10UYfe(0HT?c{GP{-(x}b7@x%1zGAGo=<`Dxd^w9aLq!D z4??66Cr*GNnBZn$DHtSKcB$nq&^cI18lwq~%QKjq9UKPJ+`x3^y~5V+ZJC@OBFn5~c!!i~ch1 zOg43ZfObr1Xkz~6eDN`0qHKWwQ7N57O}D=4TDNgI z%UR>0R^cVncK7x+w!@!xj!CwBY{nz7a9uBHX|m4U)A_1@67q5bv}lX!`{{Rn+#26NlVSTcr>s_nsX~d=hk$ zCZufN11ct*3$I2?5ZCm#ge1l_QKu_&sD=C&_P#zc|h(FIHcZba>R5m#3FZ^X`X+OhB@GHz6o z^v0C5L$NHg+XKJIqsM=$xS?Xg{ab|_ zaDcJ4Wk{cd^6UG}tGu(~zjP>N9|Cl|JN#S6`^Z`?6Vd;Jgj241y7$2Si+rM@_Rqhp z_?rA_#e?F%As&hWR($<`STU%#7dWs7aTr`1cVq5J;x;;Vy@EBcWZtO<+r;Yy6vF7b8DJ4DI0)ur z)%tF4V2vhCLRb+k#BXH69B_qd)yHBjNXCNHK2d8#X=tlZ>uXQ-KT*ql)&7M#fR&Jc z@)v4NP)yHkD$iX8nuP`iLz;5@SBRKTV5h3SP3_s7h zQ7un#7)GhXahhH;VTiDcX5-W#DTV;B*GK^JU2m%m10!{bcV15G4LRpeQzcdM+s~;;!QdeeS z)H;lH0s*ui3m&S0WYKn>&56Py?Hj-}Aw|{i>8BWq4c`;B@+fHfv19`hLs|9r$t$uG zexO_Q2f^yY^<&X?p9~eJ(JmIFAPg$g<2r`0hHEz!ZrJ~CvREh<@0~w*RaAW?s|YCH zS*(Ag9jE7R!_9hIen0fQ;&AcjfMh7qjcjKuNmAOI80kmbuRv9~2|9aQ4Cvr1}b5XLJheHDl`p@qKJA}cIZo)gb$VRm5?YZ>H$V^ zZj3TxxXEtH6mO4ZcIapOMWwPNG@>LD>Q0dzx-uqStiLsR7#BM(WqnUXA%vPRJ|Ztd z>W{3fFp`P#ouryV9My={kLqN~2(C1_2LbcDaH zh~Sk&rL3*-r!uC`qvSyU?5TB~eW&+R1lLj?mq^H0Vx&+~5+C>{YCiNoQ3>FKNb%>Z z$&%re|7C$zHNb+HFKC|@Otgi@Jrmq5hiw(RBgMO`Dh#C0w}nzc7;Su4t|5P{%xx8! zaX}^hi|;P@C-Qn*=#2xc@{D*X2Xm$}ML(~`5k9W%fmLy(hMiR4#w0;5zMf?zplHni0TW>3^GhjGQ6DkArX1spjyocn z6U@hx&qt8=WwUt1mnsv_wkq2j`92ucQhs5fPvTQw_A%`=^s9*;ZE=aUcA#kdgVg>#?Ny3nNx?O8SLk~39%={Tv zp!Zl)opuUn4dYYh(nv8$VqN!=-;E0;D~c1<*=_Y1_yxV11NF2&eB8?atrtDfuf0X zJj|aGB-l2OG`9!zO+7+)o?3XJco1*fDy!L1P?rnz`UWVS?8-rOCP{!NXezgZ7$7Fu z3Tq_A*b4tninbL_O^UVchl7&jNQWTUcFYY8i$RY3I>5+{(SJh!=@gxiO|t=jzPN9| zoWqrH9z*1ECQ}@O8o~Cml318>?>5=)4Kh6crYfZIm%L?c=-|AY6e0CzSY&vT^czFU z&w<>Pu+idf3=;cosCv4DFJjq0Q?xihCdT%Ak=O`QzXVSKk)+Eit1>I}{_0(hDq4F3 z2beW!bOh%zPPh$38ExwhpJ|H*$Uia#NfT{*R$?QO_9Zwed`ybt)ia9#UH10xutX(7 z>MnmMRNaoFk*y-8?to zt5}UHa)IIh*Jp0mUQ?`EArxsoUEcr$xpgx|=-{+}#RW>9h|)hK#fik>Kq;{)Oqn~U zU|XN#ygA~W;34xgY=9U1qUau+4Tm`)G##*}NNptSShLR#@|H)<+N^4%uOHavnd zcBFZSF>KMwZ{wtIKHGPZN72O7wq9a)FSSHO@F5%oJ3b*oO+@fH*n^}c%SaAD+(P3$ z0_NX~S2MEeLbwP{rhg>CIH1`Dqme0l@4&x2CT8}c#6U_hgf4?p1Uf@a4GQAiw5^Bm z0WF2_B{O!-?;=DBylyM@V_rk{<0E=!v-myv178PIz^_NY5#p8=^XwpOnS}7yOIIHF z&vYC7*@WkhDxD2sFhTO}PH!-oBzpIG@`vLPc?G_PoMQ}q0z`RVTfVmBF-W>JY*`QC z2L$5(I}p#W#K~(&L#=OsvccT__^nvpS9uiUsy{gB=bvW@L->8N2;X(VT2dhd8T3s8 zNyUM}ogSNbI;Gx(*;jL7{PI-y;{Y*gWn>aK%X#o5NPAd0JlLTL%rQzc}gXTd(#2* z9Tqb=|BA=9h4Sfz^bo}kLN>~8LY)2{1{_;}Xa6OI*!QUq>TkycUUSN>A<0t*p5t8) z1GzrFgZ=FohG1p8E?ZU|KOOG%Z822@lmpr|HFj#^&cfOPeOn}FNti9sVjhBexcVMD0|eX&r7(jpI&(13y}0aYlG8b z>Ql}&B(^P}Hg*sS4FGcFVcrno59(s&T-B`EcM!T+cMy!n=>dSv%U;iB4Xbtj@W(4{ zeP;U{eXh}*>$2&Da*2DUs*#SEXl*{O>1js(ecplUjXLi&Q*edG3C*OjlUzCtDX^^P zWQDPJ?v}+ZG2q>%1WWRq*Fqcsw*jE3*3a7C<4>kwdofl)Ai zD}FJD+h%yMSI8Fd;{z}9{SMq$tW(|1V2&ZG-t}~+xKTaG&({_0;zYYe(WlVZukf%l z!l0{K9#jUaidk7pV_Uu+j5`(a^T8v@HW71o+010+UhFzP0}SlKerj!>tr{q}MG6!; zX(iKF*)bJYwrIt74sc4b6}j-GvPI8|W4NFDX{H~TA%f*mI&8G8YzF|KF=ZX_o%QK& zg5leGYsP;6+GcTCHpBa)G?a1se+J`~E#f?#=`{&v*2%a@*R zvB%PeRl z%Q0b_n&y=1CYjU?AO>61LeG8ecoqR^L=BRD;Kex+b2fRoMYk# zmN>`618jcroTnNje+RBK=@-gX6FwbBmrlubgUP~8wn+oJtHU{MJEiDhWt|jo+3VQ( zzb7w>$i~ z%Sk-$MHn1e!ue@>(T8fEUKAd`0#Arpan{`Lwfg~vR<2`t1LW$04Wm}DZ0s4OQ8ZGn zl<*aLLM9NKs+-$WkeGQX%x2Q(xG?RE^|;*=^AQ87-^^ZrKWy{MYVZFMMj)Z{fbyhB zec$yYfGP0mkfx-6eBHOVyP;$FsPMFURY4JnIT_U#u?wi}#!!y!4dhjlfVuCquTVN7 zAv%|$ASId*qCQShK^~MHmnDa22(VERqV?6#&(hc#?|4qmm_c{{Wd={P39pVZ+so(8 zx0b6v3vrO0GAvk`AvdW36k@$Vl01HhG{wA1z+NFAQsAOhvw1!|bwr3CC3CM;jTO&Gx9b{fjP5Q#$pr!Mg3wJm-cDu5N_LSzIF88RZ9 z8q1g61+=T&wTg@jK4R;2T7$)}HyZ8X`F0zP)sKw7oeHUnLdQRkPPOCfoe;6S>rrglp1il zMPfltMj=j0%1R9YrFpf$zbOd|;~=Wa3OizA?hEJtga$0!D9GOwWp^kZh}cv|x_$wU z5;e|k?fA2tMtRxR+;p(_Vf<=n-a2H0f3iSJhyysYFZ>^8?2#dJ(5oGCYB3VwMkR2@ zO_&?)d)-MW$gL>J`750NV72Vo{%RGDl}U&B6`(@oJ7z9XqGYfvoY2PQ2zxD17{l$b zlE%yYbIH>>(?#7i2xq@jB3IQD=)BYTSpIe~rcsb#%Z|!TgiNu?Z=;yxd*GD9v+NV# z7D-D+voa~QlNYPkQ`Doc);px4UQT)-?3@&38HQgX8XXwzxxsf%M5Vt!KSTwkSrI>P zVaCSCG%C(9gos{8f5fDc7CANK*6zjU%A*XMZGVfN<3qau<^=!ivtWd>rwqy&u@jJ4 zs{^cSMZp$5w+!viu;ra^JYx2PGm?h0pm+e-UZWXtuRf{)NkCRalt~>u_m{vV#n%zD zZA|;UJ2D6CVanl>ScPaM+`ajzT-*MRoMi#oJarz}6%hE_zX-T()$PR-LG%2J0NFkS zCo1NM9ZQA>h=`mtNl~E5aLioVtPnvFL6M}WpsZ8C{jRNItVD1_j+&sXn4VUwu+Ovj zMC@Fva+|unWQ+;=UcD{huo?bsreAt!3#Ne!gFz(8?U>15q)KlQeA4~WsW8Dg7X)Q9 zluh?G_&Vp*3WTV%-kpa{b!qdIblJt)O<_v7rNB0=;*Lo zveb*UNpe`CbNjdUr16;I_bZxMv=HlNksXmgcV&Mp2(n3iB|-z1Adj&Q1{gH9}HHztT;}%7+XbRzB7lZxn;F zlGIHEzz}%|6p=J(tjWHrIz%Y275-dYp-9w5<;|u`F5D~I3cFIJ}VE_WH1tg7bpn4gUY)7Zw{2s%_80A zZDZ(0JLz4@W0L9(88S=2O9Fsue*#(EvB$#Z$ZZm@hK?i}C!e38-aJosbvpD9$_!~8?o_(W0+fAszox#&|4Nq!BXU7K+S&ghSUP_tz(LvjfLyXY%W_9YiGW8l!v7N7}VXKN6jN zX%?3I7ki^|dCZp;micFA7qK+N;1bqL*rMOA1>kEN#l$xvp}Eik3~FqOyJAtBLCj^Q zx}tLAkXIjM34SS6n1RbxjkP29sG+q*{+ z3pV0t2Lny-ukPsq^Q$uUc;NKJgkZ}w`{s-PL@r{l`C*F{T9Z^X|MmT-4_g5j4@j+Uc~yF zP^^XkCkJEdT=tGlS)r`>9rI@I`|m_@0v{zt6&j9Jzs!$!zxQ%n(3Dgo#Cx=qgso{p zui1*p)0R$guipV?{qi-4cNxRti}$UIqW3>pT!cXOFJlXhcs?OuZt^=jnsB+42cjyJ z8hO@09}0=GYhrUThv}epmQ9G&{Nkc9uPz=)MNn+jS7_tDs~sMTyergZJ2$FH8t6Ei z9i#J5-!b|XXJz-wT6t!YF68Za(_kolk@HeEbY&vfN~rJ!;#(pUPg6Fy?P$GndL7HHa| zvv)66Y1c5E@mnkt25wutU?YMp4k=>;U^3Li%OkTo8%En58R0Qu$%Z%91l^WI&gXo4 zCJ2?C?6Y}8{LA2VgFy-?Zm0;f)H9g)^VNLqQt%h}Zy^!=MEWI6wGxMjfLA4tV1{So z;4Z7-%wQwwpO9Mz@Mo;c=GqYzYn!1~zE)D;%|=`|QE)^`_A-yw0b?(^T?mRH(N2uc zL^ZDE(jGw`Du5`o4;|S|K^b|c+`Qu(#@~r^1o7b2S=B4rwbLvPAH`#;cgUi39I>*P z1k%p3;_A9|G)qN zA^+PkV?a80Wj%e%zmi<9C-zwXX22P|{25A-lrCu**MNdVH5gPs29NCl^cANXZ8hdx zpk?;YB)4T0!+Ett+nrUk`#JSE39ug&rlXKJC?V&^)U*D_-5ah(lM78PnJ^Vq^JO=d zEln>dW4`AeH~vemW(p8FPEQ$zgx>F-8ysN_;`DD zt`Fh#`nG6@Ugtvro$X;R*36Zi3cZ#7>ulD5AwpmDMvR`5K`)%ZG|-Y!1oQ_OB5xC8 z8%Hjg*>}Oyf{2jW;S6%qY8ulFYl&%i)8Q_d-}>(kj2{inT{`1kS$x*gu)kiXZpe@& zewB}6Gq`a_ubbT@@;7R4DeKzq^(5Z%B`OV-SMS(>gV0aZT<-t;HR<%4)Jb+)4@vjVL8ZtJkY#5!7s)((7^DnDT zp{*ik%jb)QaL7$UQT4)_mJ|vE$0VI_=XTvbdh6AFFlUW@)fEC?&Su|It#KRSk9067 zS3)Ti><9*jIFeBiJm2e;7J%@bG^hSj5@_ zd4VUH7dvmD+_6}y`q2zi1%>VgCEh$$)!n!cgQP{7&`cXl*d+|QH`an=gokny6Cnlf z4;i~iTwva^M&pL~2kj~+`1j)a4Ad$VEJ}gXIS7!$J6;Ta=axAQP6PC6LtjRmICUz5 zDu+kHv(nReQM(kza&W%Y$Q!OZgFtXE2$($~`EM1@*E&f?F$v-r6k(cN>FN7E{tP-n zL`k)U<7HQj+wU*;_hV^hW~Het;8)sJOXuHb+sL=48w*6JpHc3;%4Q`bqCo~&z+)Z9 zBJ9`2;}QxJ+nQIZ8#Q~BS2=z-7{vClB%s&oTEWY#8+HQI;~%a zMp=f`$I3>kC$0PfjmP9kBG?Sm(;qvZK5=^(ujaD~3z=*66GuQ@KXS42=kxAr(o|2G z7`-;{%l^XdP!-;r7FZYbn;r7|!5{i}uNTUv(`Of(OwR_O;kfQi@0YVCoh~gOM2Y^> zs;sx`ot0A?zK`2ra*<{@h+v5|Ade7#?jxWxc{wVbdQz-f(i~9q9TLYre1{_;a5}&H zfU=$oX+mESANW~Z+pH0N&5&kBw_?hM)7oF+Ly1An`|eo!VT!Xk<;y@#@fZ@TGOyPl zEz2a(%f7Z<^5xc40q$`E2Uv7#`KLrO306dTFp)7)VDb)*2suQrpy8|^mU?LlvSJ`S z-PxdaHH46^6yrx}%W;vJXrpvOl66OmKc{o@ZTn>EtAq?&zbQ6D6Q!bCcmMLyu2GpL zmKe68SoDOe863AQ^t>P$Ad|UV7V|?jj!~u+C4Ec@O>wwH7Z7}_S<@&!4gimxp6Oy1FAwt zkn{*tZohLWp|N|~iOVv-O4qGno7Adh!kcVk%+e;`TQ}EwP`#dBZPB0AZvw4lPLvK; z!87x0+x?rOOukbdzun}xFU?Gfi)hOw%PtMwmqIVRZ`;;qoTfA#SF!cJIS<5VuWH%& zXr&GwkFDg*nDXp}(dYV7cbWf=4_Etz!;AqBB04~>*4#!1n=g$@-O!h8QQMzKkgc_m zMf;OVr}(b*=nW+?5gwiO?oo^jA4PNi*W$wHL10eq?N6nh#Q63Ws`>dv@&eKG8?zFH zUl?-YQIfmK?t4$?I>$&6`MuH^FMBC+iQ<$pby#NPb;!tj#SAjw&phc<_Tj4b>3B%3 z(}F|lN!4Bj&W(A+3?)g^kM+3~?G(Rz{cMWYLl@c69C!Tv8yhx?*=Th8vaKTaaK*gt zL0a%tE0AJqHXAK_W@pULz=s}Vtp7MU>=n?TTOMPst!>68X-QrPSVc>9Z|HT{SknZKi<6f$@zG>m|tr*KDXS%a(D{f#biw zsZ%f{n}j?dVHWFeC|lS1aNEePw3clX+{ex&PB}NZ2?SX)g*&Rb;p$b5-MZ(O%i%ta)=b- zNJ9z|SiB4oefpqAoff&I`WcX{MAd^iQiH1iPb&DNE3>nKtJka%?SkDL-D>WS?Gzel z`zVgLsvl2~|Llup`fx230eA!fRl98Bl;8 zy+lT0M+&(@Q05d7$&qqkDkWZiL&Ubn=IeiKgmi7Wy4VgKSjoJD;InYaHi<|$*ur?6 zi^}3Z-W~|tA_krY3PPq=BAP0hh^ad@yMhzSfud85jG*jlF`~_bsRV$S*p|Q@RfIsl z4clVW`+Y4P@C&n4P4pmZV8IfjKQJThTJcuF#gIpOp{s=8&^xc7&0Hr9tZIfyGqev_ zSot5i_(t~^Iskge0lM)1q3iGLu>Vo_S8CXZsTx5491&uxLyoZCwA9FiB1i238D!;~ zEn!*oRAWfN*H$Ub{GD{q9dWtDixM3^lMMK%>9w1_m{lL->X0yx#^3^JW+FZ4~O(^}tW zpSuX#$dzzJiEs5R^D*$CH)`xs+x>A{EqsRQsp{L14LE}DlWSN)dk!#{#itP8Rb;+P zm$a$yzb(Ci{IfzE+N5Q+0fO}b!ZH3K{8O^Ly^XEIU$vSMU1ROffFk13*?Y4y!k7(a ziV`9YL}{@g`2*M0ht!gIRXC#b-9v_p)nLe_((z(}8;5^Cz*@I_nu>gej08%#j5{YN zy}gT-g?N~&l8es_oU_HBbcl$<(RtHusA3L+4xZ!&Z$D+?`e?1)WW14B+?w4TV!uxt zdnAK@qT6vZ42^1?4msYy4ukA}wRPT6O=N8t4@eJ&jv|O?BuJCqvI>Z(AVNT-2-3kI zO{$boVrT)3^eROVWdTWK*T71XVqBzy3IY-YBQ10g(IELoKV2lp{E?iQGtckN+?;#o zect!X+=q4zMv?8D&?RBusZ#$f3k|$V>Anbh3hI9{fkdiDx2AzhV4^>K-=r5)}pl(+_h?SC{^)UKrX zcF}0TrCau4fzF?aDi`=~bm9b}#5>=Lnu3D4IhzOc{5^=d&}z&oCdaaJ!{f> zIfFp)?kexLk`;rZdPxH}4!(1>N_eMq-khWo>&0$fdH3FyvO3rM)q$XV(=iuIzXk$U z3S0gz5zKYJPRKKsmoQ2>>jyKPWQAFat6G`%&p#iud}P+*Xa2fa32M>oe$Ftri|W6o zmsG5eHA?I{tRjA0+F4n)R~Y*zM$1S;Q)_N8!Cg6S@2hIj;}N$!bMxZgiJw2?dXtjOwtC!_KL{y}gjoXnCbVU<+b3 z(LXylaD#N>x?>517k3Wf`JD9%uSM#`hO#09sy$KaAA|eo>aDu_jT*s-&gu`Y(sCpt zq0v*yH6`;ZIW{%7`{YwM!6S!P{S8cW@9l#fyVLXXsIh@aepquZB0?iMr2yinmXTBr zlX1=EUX^>T2emOiZgxxhs89>|iy289SWkYN06c-~F1a>Kxzo;dktX+C`COG#IW zbZSNuKCXS$`GI7g{u%2rZwXuK_Vv(HxrHmE!>hv~CDRHdHdr+hM=GS5Xa-)PpH5n! z5uK^NpPcJq)zdiAZSk9;+>M6koTYkKbt^KTzPpr-Z!!!ST5sj_Z0ws@Y+Sxzua9e7 z)*EMUv9q#!PKiaGQDE~a5Q2|13N*DO@T%Tm=5BVKGq!nrmz2eOv{&Zq+EUau9rE~4 zf-_b#z1&g_SN%nJCHyYfM0rO4+Lx=$D&aK@YJcTZh}}vcadkomZYQUbUa;*G_TK9W z;n7_eq$6HL_*L@>m3chd#^S#ld{aZsi(QXS?Uhq(YdG+xnLEJKu~>x7!|}9Amsaes z6up>C2k)M-O4q<>pd(Jy~Y;Yad{mR*<&g+Tc zI9To$MzuXoHQSbJpO%;qI@)8R&Tp1OQIH35=q;T9?FME+5R5gn9r{ExwHCC@6l|Tr z6o~Az?~{v9r7r0g9(KmGcV`S$Hsq|rGZidU)l6jl^O9N?0zy-24;NWxyAlwS9*~aq zV?r3rOz<6d1u^G#Di4R@EcsbP(mf^K1cC}m2-nj?GWUIUNvq5{CU4ashn_;Y<6CS_ljnfw&(o=@d8$L9S7V0P9+GO z?vYVL;>|fS;IB8|k{``uKQw=2-;*iialx7Q=>4;#<1~+sS5I8CZYh`*7-gZpN^ayd z$%~n89GN;>lgNkkz7WtSIdcBBCI!R$5J#e%3%f#kT&t4O8%??eX5lz>Pv*ZcmOJa?aBBXuu!Tvkr?lqu zX?)(ny5q>hg$RFk-B!r6%$MoZ@u7|FcKuu813~nO^$2g%pue|Qk(-fC>_v@RFJdq{ zEk(~N_a!RUqSMTvXbHR1GsxHNj6rBE+yX#CcF|Q zWQDO&i6EwElH!PBi>cRs&m7l34W6mEiumt!i<6!aIk`+u8#2O^csiFwmge4hme&Cb zUlm_2*S!cAi+MdXPk-a397o}&snyq@7eD-?hkPkSO>8c`Qz856!(4}S@^sl9Op{*t z2!14JQS_3;(egBEK7JlvXEi$yBT3x^)+ts#>0VX5?9uPAlx`e)bsz`Trtc6aGp+$!(`|(*u;kFdg_qd{YCiCxha}Mtb2)7x zg$Yo5mYKW{x3R|6Dn(9Bpp=Hsp>u>laG`NoNqg@z&Oc*nw- zca!-RrTqeq_vzw3o_!LvqR|P9Y%W|$(*C#jtf6fpxijMXlb)IlUM|7mT zQWc!v&n4I9CpQsN=yB6YufX=~e`$)IZNhgR4pteNeS-Z-(23mtl7T!j z_@^59MKe7I5dV+yzlZjWLTnt^{2FjbKOp4WC7cHK{CDqhx$gfx6U``JA06FC1>{~V zAQ0~^c@(hcKe>~y@9)k!BrNv}0ytfQD`Vq1Ku3J98~}(QZ{XU0C-*^%@+$+4cLGg` z?P^>Yh-tse|9|DbLVnu|xJuzak`zE7dka<&&n^-M_&dIn0s=$5+`gA98T)|og_1w@ zXeRjSU1EmUOEPj8>!drJ%8;L&Uy3Ml~TjyyN~hn%4d!$@E(MC=ecBYqHel_ePU zj9KFyy*>Jeo-v2ah+y>JI|!@z-@0)|0He{}0VrU91^mwTGO`%G;|}Xs!mq5|PLh$r wXtj1II*C7eWtZ_{)HB9|JNgmaFGFm1bZBbC3XGs{qlypY1PqU^^lw}L0~!t65dZ)H literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/target/LoggedOutPushTargetUserBuilder.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/target/LoggedOutPushTargetUserBuilder.scala deleted file mode 100644 index facbaede0..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/target/LoggedOutPushTargetUserBuilder.scala +++ /dev/null @@ -1,182 +0,0 @@ -package com.twitter.frigate.pushservice.target - -import com.twitter.abdecider.LoggingABDecider -import com.twitter.conversions.DurationOps._ -import com.twitter.decider.Decider -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.base.FeatureMap -import com.twitter.frigate.common.history.History -import com.twitter.frigate.common.history.HistoryStoreKeyContext -import com.twitter.frigate.common.history.MagicFanoutReasonHistory -import com.twitter.frigate.common.history.PushServiceHistoryStore -import com.twitter.frigate.common.history.RecItems -import com.twitter.frigate.common.store.deviceinfo.DeviceInfo -import com.twitter.frigate.common.util.ABDeciderWithOverride -import com.twitter.frigate.common.util.LanguageLocaleUtil -import com.twitter.frigate.data_pipeline.features_common.MrRequestContextForFeatureStore -import com.twitter.frigate.data_pipeline.thriftscala.UserHistoryValue -import com.twitter.frigate.dau_model.thriftscala.DauProbability -import com.twitter.frigate.pushservice.model.PushTypes.Target -import com.twitter.frigate.pushservice.thriftscala.PushContext -import com.twitter.frigate.thriftscala.UserForPushTargeting -import com.twitter.gizmoduck.thriftscala.User -import com.twitter.hermit.stp.thriftscala.STPResult -import com.twitter.interests.thriftscala.InterestId -import com.twitter.notificationservice.genericfeedbackstore.FeedbackPromptValue -import com.twitter.notificationservice.thriftscala.CaretFeedbackDetails -import com.twitter.nrel.hydration.push.HydrationContext -import com.twitter.permissions_storage.thriftscala.AppPermission -import com.twitter.service.metastore.gen.thriftscala.Location -import com.twitter.service.metastore.gen.thriftscala.UserLanguages -import com.twitter.stitch.Stitch -import com.twitter.storehaus.ReadableStore -import com.twitter.strato.columns.frigate.logged_out_web_notifications.thriftscala.LOWebNotificationMetadata -import com.twitter.timelines.configapi -import com.twitter.timelines.configapi.Params -import com.twitter.timelines.real_graph.v1.thriftscala.RealGraphFeatures -import com.twitter.util.Duration -import com.twitter.util.Future -import com.twitter.wtf.scalding.common.thriftscala.UserFeatures - -case class LoggedOutPushTargetUserBuilder( - historyStore: PushServiceHistoryStore, - inputDecider: Decider, - inputAbDecider: LoggingABDecider, - loggedOutPushInfoStore: ReadableStore[Long, LOWebNotificationMetadata] -)( - globalStatsReceiver: StatsReceiver) { - private val stats = globalStatsReceiver.scope("LORefreshForPushHandler") - private val noHistoryCounter = stats.counter("no_logged_out_history") - private val historyFoundCounter = stats.counter("logged_out_history_counter") - private val noLoggedOutUserCounter = stats.counter("no_logged_out_user") - private val countryCodeCounter = stats.counter("country_counter") - private val noCountryCodeCounter = stats.counter("no_country_counter") - private val noLanguageCodeCounter = stats.counter("no_language_counter") - - def buildTarget( - guestId: Long, - inputPushContext: Option[PushContext] - ): Future[Target] = { - - val historyStoreKeyContext = HistoryStoreKeyContext( - guestId, - inputPushContext.flatMap(_.useMemcacheForHistory).getOrElse(false) - ) - if (historyStore.get(historyStoreKeyContext, Some(30.days)) == Future.None) { - noHistoryCounter.incr() - } else { - historyFoundCounter.incr() - - } - if (loggedOutPushInfoStore.get(guestId) == Future.None) { - noLoggedOutUserCounter.incr() - } - Future - .join( - historyStore.get(historyStoreKeyContext, Some(30.days)), - loggedOutPushInfoStore.get(guestId) - ).map { - case (loNotifHistory, loggedOutUserPushInfo) => - new Target { - override lazy val stats: StatsReceiver = globalStatsReceiver - override val targetId: Long = guestId - override val targetGuestId = Some(guestId) - override lazy val decider: Decider = inputDecider - override lazy val loggedOutMetadata = Future.value(loggedOutUserPushInfo) - val rawLanguageFut = loggedOutMetadata.map { metadata => metadata.map(_.language) } - override val targetLanguage: Future[Option[String]] = rawLanguageFut.map { rawLang => - if (rawLang.isDefined) { - val lang = LanguageLocaleUtil.getStandardLanguageCode(rawLang.get) - if (lang.isEmpty) { - noLanguageCodeCounter.incr() - None - } else { - Option(lang) - } - } else None - } - val country = loggedOutMetadata.map(_.map(_.countryCode)) - if (country.isDefined) { - countryCodeCounter.incr() - } else { - noCountryCodeCounter.incr() - } - if (loNotifHistory == null) { - noHistoryCounter.incr() - } else { - historyFoundCounter.incr() - } - override lazy val location: Future[Option[Location]] = country.map { - case Some(code) => - Some( - Location( - city = "", - region = "", - countryCode = code, - confidence = 0.0, - lat = None, - lon = None, - metro = None, - placeIds = None, - weightedLocations = None, - createdAtMsec = None, - ip = None, - isSignupIp = None, - placeMap = None - )) - case _ => None - } - - override lazy val pushContext: Option[PushContext] = inputPushContext - override lazy val history: Future[History] = Future.value(loNotifHistory) - override lazy val magicFanoutReasonHistory30Days: Future[MagicFanoutReasonHistory] = - Future.value(null) - override lazy val globalStats: StatsReceiver = globalStatsReceiver - override lazy val pushTargeting: Future[Option[UserForPushTargeting]] = Future.None - override lazy val appPermissions: Future[Option[AppPermission]] = Future.None - override lazy val lastHTLVisitTimestamp: Future[Option[Long]] = Future.None - override lazy val pushRecItems: Future[RecItems] = Future.value(null) - - override lazy val isNewSignup: Boolean = false - override lazy val metastoreLanguages: Future[Option[UserLanguages]] = Future.None - override lazy val optOutUserInterests: Future[Option[Seq[InterestId]]] = Future.None - override lazy val mrRequestContextForFeatureStore: MrRequestContextForFeatureStore = - null - override lazy val targetUser: Future[Option[User]] = Future.None - override lazy val notificationFeedbacks: Future[Option[Seq[FeedbackPromptValue]]] = - Future.None - override lazy val promptFeedbacks: Stitch[Seq[FeedbackPromptValue]] = null - override lazy val seedsWithWeight: Future[Option[Map[Long, Double]]] = Future.None - override lazy val tweetImpressionResults: Future[Seq[Long]] = Future.Nil - override lazy val params: configapi.Params = Params.Empty - override lazy val deviceInfo: Future[Option[DeviceInfo]] = Future.None - override lazy val userFeatures: Future[Option[UserFeatures]] = Future.None - override lazy val isOpenAppExperimentUser: Future[Boolean] = Future.False - override lazy val featureMap: Future[FeatureMap] = Future.value(null) - override lazy val dauProbability: Future[Option[DauProbability]] = Future.None - override lazy val labeledPushRecsHydrated: Future[Option[UserHistoryValue]] = - Future.None - override lazy val onlineLabeledPushRecs: Future[Option[UserHistoryValue]] = Future.None - override lazy val realGraphFeatures: Future[Option[RealGraphFeatures]] = Future.None - override lazy val stpResult: Future[Option[STPResult]] = Future.None - override lazy val globalOptoutProbabilities: Seq[Future[Option[Double]]] = Seq.empty - override lazy val bucketOptoutProbability: Future[Option[Double]] = Future.None - override lazy val utcOffset: Future[Option[Duration]] = Future.None - override lazy val abDecider: ABDeciderWithOverride = - ABDeciderWithOverride(inputAbDecider, ddgOverrideOption)(globalStatsReceiver) - override lazy val resurrectionDate: Future[Option[String]] = Future.None - override lazy val isResurrectedUser: Boolean = false - override lazy val timeSinceResurrection: Option[Duration] = None - override lazy val inlineActionHistory: Future[Seq[(Long, String)]] = Future.Nil - override lazy val caretFeedbacks: Future[Option[Seq[CaretFeedbackDetails]]] = - Future.None - - override def targetHydrationContext: Future[HydrationContext] = Future.value(null) - override def isBlueVerified: Future[Option[Boolean]] = Future.None - override def isVerified: Future[Option[Boolean]] = Future.None - override def isSuperFollowCreator: Future[Option[Boolean]] = Future.None - } - } - } - -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/target/PushTargetUserBuilder.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/target/PushTargetUserBuilder.docx new file mode 100644 index 0000000000000000000000000000000000000000..bb2c2c9aa1be2b4f503cbb7bc2b658d4f63fb686 GIT binary patch literal 44250 zcmaI6W0+;l(k)sxyKLLGZQHhO+f`k*ZQHi(E_d0!_3r)goO|z|xt1^uNip2@ZfB*m!U;qF}KUOUvJ6mTHTW39G4|@|Q9a?uA>*iz` zxlMkA(Cbf>6gpmfFClo8iUWIcd+G#C;o8hcc8xWm6Moh-FNLf}&G!tDauD^s>3kpu#XRq;cdrD3qTwk&UqSyn*$!@5CE zy^_vohoa$YtsTv*4R2&*M`-|b+N1*Kx7XH}u z(Yj5lF`a`olt(`(Y3}^84Eb|uXBA9Zw|EMiqxNmfm3OhJN@d=qsS&H}V{slNj_LU< z1ebNu7f3*W^i{n!9>1N{XipypZpqr2qDWiznA zNSZo@LhCabrwFk(!QkEN4Z5@vLzuV!W3_bqh;QPVu;3k8Mi)T-e|6D=REq!Qr+Yg< z007WGpL&ia)=qS^|6HpRrzL?I5d5!sMaD= ziQxE6NS|3vRq=VLc94d(C>pQk1!@F^^(bw`;mU%`lMo-EoypZ)d}tQ!!0be&TUa7X ztK0uryG6e6wK$9G`}3d2+aoHa%NjGFu@}KfI3PU;Nu12aR>Zewp?17=%A0Fd-qM~1 z3CStxx)VQuO?UkoVmE8zE}d^X6g#FNCYo0BoH2FT2~zO0pT+%4U!Qud*&Mg#12I0Y z#d`g}3lts-tz_}D%;$d!g!oe+V>=^xM>~5bIwLzrlYbU@cH*S$AU%S}v$x2SjB3O^ z0)&VJCE$6aq&RZGTKf|-i;VST4(s&pVUdky9+fNZF4yS2J?}PKb1Se>NMZehRX2qi~#a`3=)-`nCHsTrryL|>EwCJa~%zCIQeMIxt4; zOV?LW7Jw>DMAy~s-^M~B^6S74n=nAR{DxD<^1`OC5@{=j^QEiKm_yP@Lx z(WRw>EgB~he?Dj9Hl{kH&z4DcvQz`#tnGZbQ8ym5Fv#rR&kwg244JN;n9yT}8E`IuA4FUjw@IU)v zU~m7gwkS{9Zqg%ky;FhcI7eE53n-u`2CfLq3vFZ8C1$lQO%O^ZfV49l`1-ttqi}@M zJw|Xfa=kZAysrwFf;Y*UtDsE27L3U|Y(q8IMvfkDPM;7ufmDE&qo@ue>Nx1lPE;?0 z(Lg$D8 zc+cjTp9r+KHVh|wuP!{$=Wbx^zHN<=xT%+r)}Q0ilehtG*1M_6ywhsC#9U!nXewUT zatWzJn-YA*a$?064eMs-XiWEW z*SgsJY)=2Ij7uFGr%m?6FW=t4qmGV*QtpPNDPpf4mlo_^;+kfp)FWd{E2^Uc3Gsn6 z!Zr{KvGwe4-)#W#K)S^2A#+Kld2p=*EL>L1?U*ak!&<+0=BO^M6iM2HZoC{AH{Tm| z?C|)}q;9+&J>2hyR6OqVSBFzELQ^lksq~M1JG$?STDQ)8h&zlZCionL$?ZqDvqAo;mSOiP;1(aU1^f52nIxP?8VQlUqTpk=kC&BHtYZhJ z+q%-}kGz*RXR{N!o6ON8rj2mn0Yi2U)U&DCJu}V#u7ynQSIC_77mVIx#M$GQs*@ul z+h^80<{g&Vm-3;2=f6Py+nXB7+SDmJl>r%k!#HO`{O4M5u;VCQm%l{-)Q21=k|J&O z-kI4sXmA@ILaI}{rE)$#Y_fgR-rR0#J@76QOMHQV%~Aj6NE;@+ zts>$BMS6`TV9^P1>O|Scej`1ea1ZB`<@gI+rI*U$TiSAM|{{iQ>G1LC3I+|$7nXSX>K)PLYn6lkrBmD*f-x8rSuq5 zqTnsW%56&B1(xpF|CP*i7VXiI!3*vHOYNLkpZ>v>sl={rM&npskj^6XSss>PuzN0n;J!3gqJ+`_E9e1Rw;_EX%(pXdJ_uo4v%6(%aBA5Fas&NL{aFf}iYBr+ve?Yo z{Bf$R#K4i3{45>v2$oERIeo-%ztrr#%gt|eAUEWw zPKQ6c^kIoc1Hx(GY{S}xtc*mv>+a+kmzZ&-gz|z|MaqPRXD~qD+>7`bh5ZUaN=qQ= z3>s8dSRJ?z&n;3R{HBlTgQs`cZ|rf}kiNdt7eZQR>FmIhe-TQ4*J#pYgSak|9hWhc z3Q#lh9((>lF0{1X5@sO|xfUn51MbQ}SO^}5k&Xk>*v~S&l=}LU$FA2<3C=Q zzLiOf^w52L>K_+y!YSvn`9bi6yG#Mcu5Z0cHrgF29$vp9_^i)iB7>P;M*Av-ai(lx*k zgqke#vEe<17|Q&u>=BbNL-St1+$gXEXlTYOgkjGRZNTbX+{~M)A1w788FO}d`l4n6 zq>k1Ws2q-9i^8I;zep$Bw02VR!Px zR(hODc)c{sFmV=^CcUQ^W$ImW0Nem|!D$CsVmZG|{Fr3n0|t4G)jcvOx+lq$WR2s8 z2VB~jq3n9l<+E_(!;HW&kf=8qdQB9m4t2oJSg~;QP}q4ZMel2;-CTB5t;nRNImIk8 z72d8aIN>M%C$7!mx5gjYq+ z;>7zcO(wr$oL=? zJMXc|I|Y3=}ipIkTnC#_SqdHB~2-sJjU07g0!GB34>3y z^}5=*c^*xk0;GDT9`X`=+b;{d!h$9)vIq|x63t8z$7{@b*zN4UJFFYpc}Gn)E%sTI z%2VzXiF^P4&7#JdF!NPZ46`QXHeAum9^!Jv{Y#sW`9&Y`MWO(>%jR%Oe!BLMliyzUQ zvmc`b#<4``vpEZbv=;7%gUw{6GSBi$Sm~sWyvR(w;sj=K|0Q zMD5YGW(m5LioA8>%X0Lrk2lB`9h;6QHEBZIQ{e{Zs!r{b)8hMcYxDPVepbkVL#Xm` zI=GvcBc!uk?Zv0+Uz^0=yM|ZHJ<`Oa{_X1cTx+K=`Zm@b%mmcTES2geTU3cFmp}DW%p!#75U0@9Ul8{)|&dwSlWVDZoW0h0> zBt#2quAAg)v5CrJXNkHrKj*mDN(qlu6e%Tv(I|#atXqi>UW%10l{8Eldui_AT#u`;^CQo}$g zp4b4=eMaXIh|UflC?J4Zf8S9ok}%CvET zE0mNjr*dxqnAG6*#y~t=W;e;$7cPZ!PL?|y+%waD?F*8_#Q}Wdi_#yMG|30ct2dq+x(HTct7VGd{Y(N zUo!XVtxW43zv_a(GCWvyehw&ef}8F%v+*q!TIyvfoyDUmY(S5k?k!9(pY2=304ozL zxSXpwZ;kwtm<*vG<+9yC0TrNOUYhP1Z*{!bllum5%r`QvT#(M zD;(^t1+Y1K;f|vfNPLu?dM+$$h*~M~@_hHP+Pil}n&y`7W|bq|nV#*4fT;jQLD(Bv zIB~HYQGyZ-x@FAX%cu*PMfINFN!`1IxI}>Rhd)0HQqye9b)e0ioY;jZ_CQ(Vl3;1! zyN7bFekVg~uHzY49(yKyd+3VPZ_HD*4>(lLpbfaqvy?|k&~}BS@Lqu8eI6cd%}Hx4 zTcTzWoDU9aWfh}#m@j*)K<~y$9VIN%nFIZe4Kmgvk?Km%1yuq{DtIG56vS{`(BCtX z^Lu=H>eAe9%y(73aGB6}BL`LQfjCLF&`NJJj`2I(u;OHuqeKlt-2Btw;tu^FrFjN@ zk+wPas$0BpUupb@5&BgvM1^Hc-TGqqXYm*B!F~5-LcE9(@ z3B(us4&g%7^B0@tL4B%Bdb?ppq&FjrZvq#(kL5f(dQW3;_~~UpL0^+-Rue!dUbz#yHWdje15XC}th^ut!+^dma6A^@mNpP3p78mJj;!M7gpEZcO^5}2b z-%o*@hT@u8ebHMZE6@&_Ad(oU2nG&iYU!FFTnGu{d5Js>YU9Q#WKW_^U~o~gW`t8j zrt@P~ITt8RtARm2vE}JJ(wCZZ^4?36ndg*xH%9U4bf4h~Z)Osh)A6GMoOw+$8+h`O zB<;>;O-Xff!cR+WY6H}g^O_;DUhm|~^}RKpqvShJEHuyav_6@=YWJbKLl@@`K6qVU zof(74E#=Qij!QZUJ-j#<3e8QZIirqH7Tn-Rf9ln>H=}Xa`nyze*4@04CIHOU%8FE+ zqZWpjpysI|)@#tF2SvNX2O2-gGZTLGN*Sx>vTBr4M~jZrPG{J-My_fqG)sn?FDzFG z%x&^l6!RjbgP1bFHRTiTH2tzlC>8C)jGpgtORqM+c-|74PNscXjZWSD2!5txd$YdHUB%Qpuy08ygIJAmqcaCDkg#=P$PE9t&Ij7zUjN%N#LS;@|8U(ESoX@Ko7+AEF`pF~_ z6sT@<%#0i`?OY2bG8*9KUx1y^if>NNzIy2mA}aV2erq&J0y#~I-2Nb)XQd_|LU6a_ za998o1koP9>zgPErE2j-^OUukU0PF6cD5~7dWy+MR*5wjsvbxMQ!AiE`G&au{Cc+L zG;+`dXR$WIW^jeN?{Pbf9uD47>`3WwGf+v%L`>QRw$Tdh&IP!wdbzGC|4C_Tgj>&>ZCsBqXxn{X#$<8ZqO%MHcPlZQ0j`w!G!STv^xoP zxq*mz^v=oMvdsce$8qQ?Iwnk2L=jEh7v5@f{X6D4D|M#;FFXOA&{{SZU2>4&0uQsQ zCZ?MqIuV7XlA?IHJ+xG_l-Cse+sqh6s~+})4Ki<2zaI8*o5e%tTDpLcY0@LbDe##Z zI%47^m1`LnS1SxIF70JPqJRZ7wc0B+dsI^R-;7eGFM(yME?NSqZVgmnItn&cuC#Fo za$REUY1!r2l{P<8cD)>wC>c~KNhT}+1=|o1lT4{1Ip2%jN0x@>c9|Fi%S9m>!t3;& zkhWHJHToirn=L6&|47Uf8Sit9apQ@KJJ`V+Z|9n?c%mzIC*Jxv;L(J5A^L!3cR<%G zi%~m=qA=a^O3>fYD10O+O4dHBbSj}7w)B9xQvclMl6{XyM?NwC3Nd*nw;59~`QBvBC5$%#TQDVTZuJ|X;n)}_bP0iAxmkB4Ub)lax!<^J;|4B9(<$MN6Nu1vc~(KK#6clC zuID=htQhRGt7fAQi_(k@mh|@8^qOYu_K5=9k5OW%#7QGK<8c=qa{&=e1cP{8!!qZU z-~2FFVd0Maya=bLaX*sk7R2hil4{yiZaF?CEoUg=o}$RTS&OUs3XUahv01J$_bvEK zjV=l{$?#CoJdy30&T|ynygX`ulaJv|0#3ys1SfiLPjGfcU)WFIct%8XcnmoWwyGCU zU9bn9a$qUznTI(Yo(^kLXN*VzGQj}_VTR9zH!J1vH=jFnJc+*?0$jkx>FgDEBvSDd z1J#oW*K2|$DpZ4@dEeckvqYb0{+Qc`isZ2~gyWTw z+lxRKyvTQjl!|%Creb;}0Plr5SBKdHN84gt0sGN-J6)jS3t0}-Cw!O zKpi>RFGs@l-L8~<3TjGoiuFlLM-;->(U?2Ay3xpZZUlCfqS`GbA5Xu*O}Lv-giUD{ zx+Xa{YsT??t5cGkp&1%1v~j;N33}>mU+Tt&5FPY=(W0e#wy_eJQ!c`&uU>+1cZ)H@ z`Se|V1RFBA1{F1{HTY#i|4={?U+?~M_Jxp2lOUF0j_LX5z+vn#-scTPC=%F6O~hO+ z!PZg7o=;Ie(}k;POWVaT;X^R9GoMdyjMH?_YD8ee<{%LqS^LkLjS$6sBZ0l*02o#e zqJmmz1y&}fP)>2s?TDWmxYvfVE~NJ2F3Bc^MB-dn_M;f6d-ycS$H$J+q~Ay%&c0Pm zstG9uG>L8U6V+joMI{Jp+D(PveadQ_S^7@uW9A;iWmZGgLhW(qf1JnFvGCHmmm-8% zA7O>xEwk!0B&Qckt<3z5e2c0wXll2toF_AHW|!jr(8m$t9bZDy` zZ+c#=?Q)~*x8gJt-IB?2#JgK>klyttp@;rvjKT~F^d0=Qq%IKOl7O$8FaL$O17Z@4 zx)!~$rR+olsh`015Y0}k0z!jN-Tm_~5;XM}DF1mB_3a)6j5ezxH1zbtxrm>BwT)UO zBDkwZ)+={PkR`loTMKw*7u+r1_q-U)ZDcNLe>vci)5vLe9Y*(^D1O3H zvrpecn9G3@pQn>T^YQC@GhxK)GoBx)1Nq)b#&@ONch-K^*`&N_r>AUZ|i1U zVe}{DJV|EIw1rb1bWhJCj4aLB-Q6OmxK?;p8CT?FHJ)&77u~-I4Sl7>4Pn4pR(`?M z^!W}CFPm;SQi5=+gGfsz*lOM>n1oh?=2vHXnB; zLhF-ryb?5tD(LEC8S20(b6yOu`X**IBD28^P6KBCGT!Btq7%Zl}uV>BBiFUyJU4`+4F}y?1h6?JDamy zJT1>(6^_bhP+uj$iGxvk)LTT$UflyisNwptLwOUGcLVhTY{{?mCVR&SaLnsz%(FwE zBdvsT-ct{%%Ihb!+^-Wgg&AJ|SC(TNs=T^BPp5F+yegkh*cD?kRGGI&qE6M~)(a79 zs{w`ygOYrqZg7f0PLWD}FO7W8$d}*?l(0t$i0UI@0y3S}{kzvn(%n|Sk9iUnzlRwm zhbSY7%LZtnvzc74^qW5Wd&3byRL@Z&m0Xqk^6{3Z!?~c*?H8obVI4EvxNcxB>Ae=$ zi?|Yo*}o`-l#`?fvBig7RhM9WA5-@(vGE$&r)NhIx8aU{`P#fT;AUG>jWi40JTdP12+DGTyU;DM{KS;zsi0y5{4~& z6mF7Mq6?vbQ^RxEV(C4r7oE1un+UmcmlJsGIs_O=TPD3RTI=_;*)T3QKZ_E|0ju`B zhxjZV&BSFEvnb&yU+GA5b{6E+0?02xsQ)%nC^k9;2@rd__8~Cbg73m&$RVf$?;JOi zw*9~w5Xj4c)Y~JW?6QE6PQig(w*}0*CWnBT1;{B zYNM7e(PZ|~{;P2PSrm8hi|TqkR8`PL?;aaS?I+@sEWc5b7phTCVFg_$03hHJrn&BEvCaW9ucgowh$ATy3McSpo!mRn zv#j87PuoCrwA!^v%y9Q{1~!!~70R#G=!*lgh`dflQm=LUbqe8VrO9Mf2!EIq$if~& z(mRYeLRt;{19`X&`)zoNCZluln8zYXcMrMTIptVr5zc!T(iF`MDHLp1JjYYwE6b=* zubf`bK(lu-_%>1~6=VHS6*S<(Ks*miH@4Co6P_&vr7j$tZ%bBoE6j|a*F`mJX-f{* zqjO6E;U>IHJ2cO>!L9>@Un2OHU_+#7rsbwpA~u{tu`^bx%Q4C+ZfB=@ll^7ZU{=pb zE!lQ@gyr6nF|5@(-j3YT&B{7#tW}an_@#eJ0%H$gKaJ4enNBb?{8$A%Dp~7%zwvop zr9GiX3KR@=1X;wpLt*9*_^Md3h>jzTy{o)?f`b?Y6;l(-P)*#NM?VegYW$<# zRc${1_B3~3yX@*(naZpg6Ws_bCa17mw(%%FQ!N{=9j}#Y0&QTvE5oWi%0^%|5d)|s zxe)O0RM3EvcQzw{HVH(st0e=~1)}sWR}RV=M(-n=SSed42E(|j&exGEI1L^zpa+qb zL~)_kNz<5WaCA!g*&q1LC{h^m9ps`Ap)3z1avRw}y8(d7fH&9Z&7&1a6aUp1Vm;Vq zj@e;?h}g}N|NBJlEc23E!yt$wS=01hKWNF3-!kf7@@gszi9?0*7HA%yQa%GRUERp` zz>xEKcbg@W2)gb8wOW!GhUSIE#We~(`~AFrE9!8{JsiX}>z2dEMGhCcN9yvhK0BMs zy(>R0E1J9icY9|fsZ`Eyr=P0y<}*|U@IcDknRuDi-=k8eA} zseezlQ8jP?5u|=?Szm{Ug+%}0`eg3$#TeV~6I>U{v}qYzsN^W%Lqqj1dkYHnKK|Im2Lp`G*a9TFVjFmM=hR;_ z$uKScotr~5kGs_KBO&0&Q&Ch=m8?i?;2Ow5m8UpT%T7`@`TWfF>$1M~)x(R;{Jh#` z8|;PcY1g_|eJ`E9y6?2}{Y3ZXdOf~!*SyL}+5EKqyvpQT9ku&j7=>y``U2#;>~ez0iN^mskZYY3A6Fy6!pXPdw84&3wN}e!O$fz+szwi1Kx$@%-fQB)U(kJfv{(=<(Rt;u98(^9!N- z>e=e)Y^|D19%k^f>D=<^(bl@|`Fs?5GgVB*9dy{;ri0)0O%uWM7SFjP_#Uc#?KSML zom?hOY5Z{34D&_IAi;F*gzUcA!R$=s^Yw^Q?)2umL?Wn-h<~Vq2Q3b}`o%dL)(9U~ zTf_HRr{|-==ffUC*VP$k5`yOU`E@dA>Id=pu>I+rq5V zck%6`d+p0plWV*BjWpDg65Y1ZdntRe8E1F!^5?r=vsW|+tEWRtl=YS3t&i37nSq4t z>t*xUmF)zYqx^RGyE7b{^vO`dLzk`)y%$RrD&qj6A?;8S)}Ru8zYLy15pO^R&#;Pj zNZ2Qw!aID?*TuExVf4~sm<&o+`86VNQQ5a(k0?2pyiNFs3<_8N$J9^7r%-42^X-`W zbI20oTjym;d<~q}R(8|H1PGI|q=Wc!_p^(enh!6fcGhivOEX@PaUiU9G-<6GZrS#6 z@T_jvrv}+b!_x30b@k-P!Kn(hsO&8c@uvNK)!<&4!g46x>?P>COQ&XK_Wg44&HmZp zb5!E#p6~LSH%mdZS!a3aX7Kp_{_JYdDT|pZq#e6hE#`ah*u4Tb>z-UC2zq_)=!L}Z z25(g^vo$r!5@asiiYl_MLWG?kF#%8**Pw{8r|+|~@0JKFYU^9w#5>?Uw=CLDEsieR zqAR{NGGtYq(-rOg^6TczhAInpWC76|<>xi{f`B)U9=SwxF%f$b@3m>A%Gj3hhcZE& zq_~23*)PT4OqIdZN61tJQZ%cQ5Q(xKy;Xj@*mN(d6J4XoD^*<#nT3D~*0;H>pXHco znvv9B@7osLTs7B2MeC7u3{1NcYw9)!NeD%(z>*M(nNTDk{U^c>1m{VG!PLzfih}VQ z&J+X?W;@7zdJy*|{>Z@|O8ih8T@?7xHak_>h2jv3L{z^5?Gs!5@w5KuaK$Ac6yU>%UAzPC`vHuAMzdx;dP}n#=e-xT-Eb*ROzn8h)C1E1k)Gl29T6sbs(7 z%i3Dpdv^WWk+jxqoUnz}myR7e*GDI z-0!tsMiz5x_uXsHmU-n)j*iC*_FrOl`E*(zh4Er-4`|oM*4|-|am6+64$8;e#gRRZuuSYWDm^-6c>O-| zQJ8?bX85>w@$+`OZc8GDFWzwquUmPfQQE{Ip6G~HTT4Riv}_=nZvX1vP8d;mqEsGq zOy1f#zjWW|9g0nP&ilP^N6Oyo?51Qs12>Kueo@in4h%9%se-y+uD6mI`1v(-QzCaV z$++W;8_^{(k*O#-nYs6oSiuHLA+&NWBf*Ks*tqCnC6Fw2x#E{4{7a3vWNF>F!Q;SK zZ{=b&SMU}7=lKaCfm8v{u0%=);cBysvkr;Y0i5gJO(75_7i)!6W=SW+KC~Fdubg+HYsiupn9Y)O& zQG5KjBQfSovL(O9*kv#oIeTcIGa~4WIMzRDOFXlM*XZJ$Df8ZM^Ck~*HAplKm-##t zoa4=1eng6T6mDi$6k;#m!GDj9cGXT>y4Rs|pN+`pql9>s`C7!N1}%o6+k6X_&N1eO z&bgifY& zUkb^`8+Ut-_gBVJ=d9b?!|2`D-N>+K=cj{*@AFsk_sZql;@QW!J-tEKR~ujU z6Wzz`D5&Qb0Q`EUM;kAQ-fm}W>gXfEt75`Ci~d${VcC_F6P$?5BPyvyHt?fT+QT0a$IT8N=%l=Nqjob~_i)=x67Q z>J}q`c}MYbS>N^RsJ-rTx=Ta?W!@Jm_9^>i{w&yFD+t;XsLv6GO?eDW|Eymx%&;4C@k)zFIL ziV>YvpQ@ICe)@TN*s`V1Nge_d!|lb8G&HN5Eqw0vw6DJ~H#oc7vdOY}eVw?Pp)!~Z z75e@1^|peIRwV_WMbF;5=FVKFV!%=eC96zaVb00ER#A7MIxKhloMkOTTzi%mroiO6 zCp`K(>{&RN(ebo|Bpe3IqDWb13 z>Fw!ZDO;tjYs;-Uw4^ANPFjsByQRIn;QS}NoFvrf)brJ$o%3({V`b`TGGSbYFF;5c zV^jYc05%1F$A!DywRu(@?G9Gx;G`PXmRmHPUf9i!!8&m10S?j#?Vl+wYcpksQd#y+ z(%0LMB@{h6;ckH)xJ;&USxk8C8e-uGsJS}Sy=436Dyl!9WWFfHD{l7+6z4fl)vU|o za9#KFv>wITwW`H<3AN(~2@{4(i5u+MMEkP!{c*w4RoluJ^~~7F@y&2KP}eR z&TC99bR?-qgwg#q)Bq$hRM2ngtFc9|;GI2rALfcyrx?V)FhwP#6kXd1yk@9H*9mB9 zs^0Whn@jryww3yJ)~saEAJ@xqo=;<*IdZ-$;B0u%P5VuYZ3{TlO|csWxQYUM6dKQRr0?ZN2+F-V~0WDbZj{hV|j_dj%;w=fEUY~U2l?^~vs&oTkus>o+d z{N5HEfFJg!X`6=Lx;IAsf_y&m^L&#wec(gDr7RH?ETw2liFDdpV?dUhM{}N*`HN6b~MahNlR2oZ-S%LiI97q%Cb`z_wI)D<9^W;3#t3`+42#;CoP+#(CTC(3P;;SqWt9Z>qhN* z892mrcP7zMmO{7_dv1jHM%bwe?3BTjR1@iC117OUWWqmqttoR8vUj$z8%^y~-l75LNOTBrlia_LfEUQvp;O=_1zgDq3 zBUeieXn#SB-5|SVPVQgLC%okCfoic+<}zcQy8PMlrf-27Ai5JwAiL9nWwm#oMWyWx z&1#-dyA3GC5xY@l*Gvo8o&q*A3R@NSq(_-tfjW}^aQg3%0MXkLP6o}-0R2RJCoOSq9BRd!6W@#aT>6k?Z}@2262dFAOu98ScZ8 zm?YfqF2h&5rpKH2@9u!~cpgc*GeuULBdd&Ea;nU}seeW3=jP$`vJRA!c-k|1)_in+ z2$jUXNQ1^AE3m*?WDdnGN7MwY62xM~6VF_y1=QF{If@ioz0FL;x+;*5Xe;uKAfOz1 z>M;V3c7<+}REtnUHq`miV}?Ybu6rQ{>AB7nc+JHF%A@2{)LiE}%-BVFhzy#7-47fU z#z(aKU+}X3fG_(fr{(9O$WmsbWs8eQt^yrsmwX@6c`=7D zd};;SW8!7Jb!nidM|aFZ8QRWTxO}ap->>dWtbnc@O;Q)c$K$FDo7Z`>B`H8UFnV@vBNvHM9jgSt^Y*rf<=n z6nh~+Ir4PV1fFfm-DRoPVa8k*OYgOV#}PrUhpBn^&kY0V{Io3Oh!{+(_wX)DyYgZr z__W~U@cq7SoT5S4YMIlc;>FijdMV%AcssL#_rir$LeUIdwkc<5pMNwT-kcspkIB?V zmCo1e0i}=f+SB}cj~ z*}*bWmW7jX*BD1D`l(YIq+xGw8RpRLSF28zH9nFiKa{Q0hX}d)&NZ`(4)Z|ukOl>4 zT3VTKMG!`tc?DeSiOt}`#`jcMw8wcDs#KKL&n~OI5#=rpot%>c-EGX4M)}`7-7AAo zuVrn_LPbMS0zt)5VH7XX=0@U@im|mqlu5Z)s_>lu6_yp@=ky8~AmHLV)f6ry#0S+& z>gOkmHvb6~7>(!NGJ2Jh-d$mV82?{!K#2b{j_jcX8sL8Etvq6#zSH>#9X(|k1o=-& zzZcE~lpp9hI@(3}bq2Jm&lOJksg*&Lse#VX;gR8#L6&a5-Wf0~P`x)$0moevTaqZo z+Ip^IYKY9>W2N<$n;^t{<|&sK*G|rl-)Q7x?g4DKWUC2{C+4NKmYN{MyXMK~7Jr={Q2@tJm~Y!TBmKJ?GZsbo zUo@tFif9X1+K5>x7V-#!jHBkd$eT?gBLW{(n7NB2pLC;Y9jJO(-~AKt60*#ITb^AW zQGW3Kdepc`{rPHgS?%cXa#H2?aZuyHczeB5yK3xdZ%nRPlD}<9b_E_X zTV0>bZ=9gg!1p#fnqcJ1bu^)h?r3R1T72adVN^c;P-0v3B$0m_=HY*hSAIFPzumpo z`9T{j`E)~*kmF*-i0L{IwZo051-+1k)y_PVKo@0Dysg!`rgX7#MVkl2x1u-r}!{H}wO3r$Ki_7G&@Xs1@hPYE1T9JycD@8_xdWp&^$ z9w3c_z~Mg*Ob9ll`UezI?+i*Wf6SVU@gfkQ-6)_DT=Y4;J-!fY?{r8XlkZ)J4X$uK z;#spH?V$gH8x@$(H(Onr0E;&8)_cmL$tqul0D&SeX$HU%Uo01Js4vz&6;+tJgo-+p zurYhAsy05IW0l_Pz$8}#hNA;8R+d_H7dQz^Qa=M{y^pcJD-5;hd?cj51%y5J4 z%8LE(yhX-;T>e}b>Ug)$Lx$yzTaeP5FQdj=MrK%LuKx$iW6^(DD&aN#up9*c zhb0JLeVXBD`^@diUe-fdj^+_; zZHP6(=GW$5P02(JYZF~0!-Guq5waeOtns^JiZ&^h;aIK@=vI=Dp>0qnJlEq zmm!WACJfK6Unf-}&Hs$MVi_ZxEXh4jWHsKA14w<60~}=i%T7ZgA-w|DVnj9*Vd8y| zHIfd)qZ{G0QlRr9>8sqi>|`mo5l)z9 zj1TT4Ga6Br|6;;AhCfrDdzH*#cEo^{^2UJm-wg9{j&WT0vyi6$&CvD#W_Xu%A2yw^ zTgB?BkS}mqhT%BwSf&krHY2}Pqu9>!>1VhMeSxX0ifn#|C@TA3^fYjf1$qa9)#}vmaD(z z)AqH?0Q#h=ybr~0A%~VW(EW^9BdD|aOUJ1IY80tQggSzB?Vy7OiOH_rKmxmQ$xQ8_ zVAp;h%4aXT2)o655$+%I2iH*mxiaKmh^}yKji%el21zN zk1*;jifHrwF7uGTmD}POy7cw7y8_$z9vfNOVY2Z*+JBEr{kVTz*-Psx1}iCiq18Z$ zJdU=nOB(iF%@d;j$)&bX;4j;iU3GHp-h3EGYhJ#!0HmdO-XtTB@9I9VuHMvzs9&Ek z%XVMb&R6C@YE#0WvZ)q2Ht0bY7YKbXT)XH^j6`+{M25OLNh@&L)Fgrf=Jvcv(@$hY zZtb^ksGR*vhWX-Kj-}`fn2mY)Auff*yt3+7-7Sa6Wj}qCDM_t27?KQ#AC~C)X=Q)H zh%=UfGstH*g#0e7D~!RQ?(RC=V}w{`mtTiPO1LdEOg2zu7b1$GSEp5`IOG-zOUh%~ zJ9k;D-uPuR78;+?MOooR7skC!HBY+gBZ^%EilJFM;&Weqp5%do@V#A-nIXw0vh`fg zmdRz1WB(CdVEthU(#)cI8@<4KTvlE{Z_h1j-DRJB!CK`8jw}m0*LbrPnBsLQ_`?!E z&k|&+=hsnpGk0X5pnQ)v4UXu7$&@{>OL=0k)(cYks6mHsnH?O<)mCAp4)cR9AHuP^` zx84gTf0;aHt-9|XZeM8p`7e{w+9zE_-~Kikp8RQ&6ZX?&m+k+{B&V!(&rHW5Yn30s zBxzFnCMo7YuGduVV)^0uM+yAOhGBtd&SIiHM<;f>WsK z-XuI8WYQRlhOx_rJqI$UHMQv*hJw8+JcC0=tl2e4=L_X-s1ZYh0WYC5`inBY-vk*7-p;ORlNuB z7DVioF!9;ZgAvp2*>YpLAz~ja5*1P>P&{ZaED{q@ClKbBZk`J%v-4Im1q%TdaOq8HP;ATVnI3FBAVqT(r=qIINH>;cM&B zF{2%>vsyx?0fI(9U?T9(17tnm0MYCROe^8`7Sx#6y#ro!K88OG%NR@C*{g@fcq7jL zqRo(!+SKj`e5zp=g~8D4UW%$mdEuTp4QVX5+5rgfyc`hTITYk*piL{-e}-q9 ztMgBIwOuydX;Z6-jQ=Qv8Gt=F#oL|0rI_jkwK7nq$Sd=pgz_rGLjh5xh6LY97-te9 z5_M3K98^5_@eRO?w(n4p0x_X6lRYu3$O z+P8z}x&z^ghawH`Xv4QzFpPqcvXoE$zBbN}cd4Ks=PDwGX5F#GY9q&?3!{0urSGA$ z7iJaqCgKu#o3y(m8ad)Je|0GHg>*WSWD`sO#g=W6E0%at6pjda@=;oaivz7;_@i+xfb2i{#e2M<{{&R#}W{$8onP@aHEFjlGa*SxX+t z;R^5}NA}DS>9n33?)WPh1b9KtkO|>dI0S?j@&pYBYv2b`5R{gC)tWF_rJO}TH3@_O^Ni^JZz_ys zC3{#v2%wWQ=`$FxsrdP%l((o@XpJ*9UK*qPJtvBWFR!8_$(u*&YuX0x z5X!qHUk=TITFDMq#7L2DMe3qBZr^$_8+t zO@ji(5d2C=fwGlPkDtr!L>KVe{9NgNsBYIxiAldouvOw1ZH+$3>k|TIp?9?8M@V3Q zlvR{dZG!6-%k!4Y6)wfI|I(~t@kpv`3KEMTK&bo;oxN;ak-IEH#xI4WvUlq7ttOep z(M9O_5Rwo5390yQV+?f-D~~z1d&_=2X$AMFL^!uBl>ZK|v<6e53~^~y<&4GkS<#hr zN{)qe+bVm?y=Ei)WZw$B=SJkG&ArIa(w(nVK`?&!43AAtXc_b#+pl>gL4^HgvYyq;_i4?F}xVLa0vjm`pfkQ$aW;^AE5`Urlmw?7x5&+FeXyFsFur&|mNF z{gjJ4w>SmRUuEbX^N$35y8>YRN{5R9L<_OyxR!1veE$I)JqY8MnmAXs^A%hGUKtGi z6|2Vmt%EvK{l2 zyMm1Y`(M#MZkuUC_@z55Lfa=^06!y3Fn-kfJlrxw+#9iu6)98;UP|2 zov9y>(eG5QMA8<6uNPfcUq_09a)pCyJUym7=X66_CG6avt4)&k`7bHI+bCu4RP_WKQlqr>C zL^^6_m`;#cTot2WiKwbB43<1%srHXQcTI>h6D4d=KTIg?`3!rPzf=n~v5x3$;aQ%1 z8wXWIxAAiTssug=JDHo4RRt+k=uw3h+8FzDD#Cx$?bG51Z5y-$*2gqGN`@py)EPyz z;dIt(%D_y7wFLp!vZ=^uYJW>Yv?UzCY7qM_cwL;d2Fn;zAp_2-$6MbHG}1Ssii&rM ziigSH7qi3JcTL~#xKfWdaR>&~ca1Tv>;RbYAA}cn*zoYagN)%Qn$+uc)G?**z1|B< z0Ov&Dmr2<1$lYnZdSV6}fsS!Uj^XL%X>-EELL_B+`^sa#Y z)^U}9{hwmwU3Up-u z@$C)+5sy3o1gEFd&)pLgElNL55>|s3QX(NKS^NuKzC+Q)Wm{Lmm~s)jbV`x?Rvvme z_1CH$A?aeTtF)pi1w|Zx=Zt*n=r@I{C^;v#?P$MrG-BWLjaFAqw&?D%L7R@vkp_OR zX4ndShLB#S^(h)mS)lIeUa}pLj8b}3#Pw%4MzbXtGnTRM(E81F3z)FLLqg{z-W+?@MM8(4B?FSPlBPeD;yak~#xU?rD7ni9lkeSrt1Z=pV z4C%Z9`=-cH}Cw=SCq+I294NXXmH4hs)+6Npgvky@t zQ5_gXaY^h$hW4Oj`{g8dR)gjr8eC8?+l{w=TMMg<9uI z86vlD$*xJs(XZE|X1R!?HU*NEG9+DxNtu}_^r@$&rtny48tHP&g2tvfr|Zt~2p#7Q z^`S?eEZ5p}=B6ib#j7Z3BL+L!f#3RwSg?R!>1PbU^3X&2MoHKKF8h8@8hrKwn##@+ z!l#+AG{xoNih1CMHCLTeSJ?0&mF`pfe*KGz5kQ6Y{ga9@YRG7(Zid4cV3Rq`labKN z#%Q!%^;u6cCmEebW_Q;4;W*+ebn^f@IxK!=iM!qsgWj@zh6uhEd$ySDr*nOZRu z&23jN{A!{?GrIYaM!Mh`3e71cO~deo&1Cf`Gwv*)dL(MN4i1Y$CJr+G7%bTv7?}bp z(jGD8)RW&^nb}&{#uagS6!*!dexhB~$n>VNa+N4+WPHcB|64L~12eE3$;>#|4#~gQ zD2RZA&qGN18$=Z#*=8xB%1WL}n~RtYU|cVz7bMhwWAxJ01ce}1D^6sa)zD=8lf~7+ z0s&x5Oa{Ll`tB^peX8~?`CD!MZ&7l7^eFw%`I?DoyC3@5{CQ>9#oJACyhS4%npJr% zW%e^R4=(*1^Bo$C-;0g$m3=a<7R!nY6U@qp+b=($;366ntKD6 zkOtTZ_GP{l7*P6ExC)0RRA*S00@;^ID&%7-{gju@t+|7Y9t!gU_?vDY-#|~<|WtFXvUs$4qL*0u@jjZw;QpKWMQf@o1e>ImL z?;E*$lSt?WylI|rJ|d|Qco0m6AUMMnc~-U)Km@f4mM5^e0QjxiX$TBiH2=H;@YX?a zo-jk6Fl;vNGXy$_wGHBGNfM*_=n4Y56NgIox8OVwA#mNiAoO_GU7e*9tnp-?@+P>g2OKk(G6(}S6Hr^S;P6#u0H7V&Qtp}n{Gauted)mE-m zK}Ygj@H*)&kqGGTuB*J)#KN!CXxOVEaN`;Ciz|Ew#0=$`aiXS|NKkP}vUYnkDEowc z9S}CcshN8RAYwBV)jh=FR|SWQW8RBk%u@#xIX}IXf8Ul`L=%z+|5l&<0O~@U?FHJ4 z7S0#EHyiz}dy+{Ejf=!yii%rmi)n?3KM81_X6%#}G<_64Sgb>kY~0ag#PAwmvGN1M z#YCVRu6e)g_v@{a%K^ryVucFzn9R{=JKn_5R7gsts8prr7*>c>j|ERA{21Mrazvre zxtgSfjDTn3W&icGyX%w#wX53#0ycK}9#gV}Vl?pKLN1{Zz2AwVrbCn$zf(Avk7>Snj0MitX zb|N6BB~bX64>a*W7W@YH0!D8gtY|bG4~7*`VTrflJJzab_X1O0b4kjM0#i8(9iCRM z3IF?VBn&)*7P#1efShX}fN=hE-M+e|i-nk(nW?eM-%I#?byEw(>(5`F(3?(%;++TFm)F577<~{(H_HT8q^YPN@V|4U%RT4C3ZXPbY z+aqSCx@XGgsv%Ce>vOD+xKA5!a=!MgoF5vtt&`4QeLn0V!z(}KUOw%>v{R?2>K67hSqQWQVF>5*5B*- z@OcQh33)$UUwO7F|8#WJY}2_RRxH(wy^&S*RHBFoOfGjU`8t`kt)82AERlFKbK^_T z2ozy5`#;sLnPDxAM1TyYvtuSdjvG( z5#C=$^qVWD*flq{x8+Mpf(cU?DhSnLV<+xkUUr}Q?-x!SpFVO@PW>-aVpsM*a0w4T z%7((H*1i0F@}wd8E(r<*2vTZ}e`M*@>lF^XIzLw&-BEOWuM@$wuQ;W{M?{k$M0o#b z*xYR^7?}!4)msN_wzKb+8$_L&T{&-7QxlAXSN{;&L2S_k-QeUMEY*bfc<>Mgx#zM;N& zpVa;sW&083xC%!$Z_-IUtwE%j zF9xGTg90qp7mYgb$}zgl53Tp^pV`nYkFA%?oh=U-n+XWWM$8{C&1)-(CgH;EkB(jX z)$S8K{E777-c#p=Ai?srMKBtqtJ>g|$TsyL%V_S}e$t}r)d505Z|c1`ed4qR(GFh^ zcYIZNn8T^c@zV#;&SNGGL2_p$EhV+T^b_l8K!_em;x-bOLlO6ZfDar*vp)Gc(i% zDSPmD1`SV6BYz|Vw1e=Nyend7DyDXeN(JoUzFTh_d>p-AgdZGakN5vU{f;Xs;4$I1 z<;Lmue8Ju3^KoQ7e`5W>RyDHE0bAlefr$D3=R#K4cXjb z0@z`Q0B)~Mz;*u=p5Xi9_S%7-93P{}_S8LYbH!V1lu6}#8-3UA{Y|Xz@z~MQ^TgAy zwYyi#x+xte{D|97<+cmXtZ5(Q^w)dSHlH`HwjTFTV}YvW3EhXC`+>383HeOhdEc#H z0n-caNvUiX4)=$)xqhNg3zsvgJZ&4o7o_7GD^=U6zU%Fe@v{&k zwEucWjPXUR=fySQ{M*heZM8sT2_zWdPo6XM%S+5~**!1LO{@hj?4$1{{JGg^awhya z*(Tnniy|-vZsmPv7GMpeV27{I=0KzJxsc95KC8rW-q$8rA*MtOfsOhImbn=7c5H>Z z(Q$4sV3sBJam9fp>hSXNq`Z8@9(t0N=0vAI;n!3z5LtG3%foIZNVC5BhBuh=XF1op z@N)1+F5sPc;4OeG)j*WjAeZ`W2XZqLmTp*ER}c}X2YXZ^5AJsduU;ZWbO}AzK<)X? zN2^19v`gKJf)7IFsE~U6K<-QICiSr44_XQh6WSFOx4@be_SAwuC=;iYe?d6-_N1`f zj%6+OCIV7DB*Kh<9+<8iQ#MiZ5Duq2`J|8#T@KSJ;&`PdFvl<3r*h32jwX9wSKKk+ zx^ye&ws$VTf0UQ``nJ!V?Wr%{*S(*}`(8H+@9MPX^Yr=}E5@IB;CHL_wy-~5|Jo>^ z$BrjcPXF4vcFDnjM`wp<|FFoK9;15QEkEM1)8^;>)Vh&l6kp^xAYzx2P{&Jdmro#` zUiIr}it9*ittw~cb{ew@{FNN`#IRAGOQCCmu!T#3<+QeU@8+sm+QBsf8S^V6=8cKl zG~!XjsjeXh?OF3=QMr>hzLR|wTekJIorx=yG7^g%pBbLhBq!gn%nP!RP)O@Nl;ark z9tiOgl%mT-OpP)VoPX3+4imSdY*pp2=79NLc_r20^V(j`}n(5S7FC~ zN=|o@GuE_m&+YVzyQep;-wuKYc0V-Q>0+IyHgB#+^tGK1!tj7&J>Qm#&aUQU1}VxcOI4T$B$R520bYaNls2bL?wUs zWtfs*TpzTT3_Uw*jox3mgUXPdCnr=Ls)!cu(mUe|73{Moz8v6)rmg$ zQsWrIVj1N4wqVV>@pbKHQq&g1@i7YY-imlxq1;j&$82K55fs)4`n~?wufv96^<#ghh|-T z@H&ykbFVKoh`Kr;zBNzkP)?pI%tF4cA)G*t*IoGNce&TjUp-tW_1 z$Rb4snqcD!5-h0&kT$OO`gR2#!kOE9{m-Ls6!Qjr92KmeyLdLUCKUS5j&Hr&2%fy# z^zK0txh9^G1~XOwyDGmkk~BmRaf{#o#)>a6UPN?Z&Da-o*m!$({4+MPc{$RGoA^f< z33cB~=KB~E69jpNG$}Dugd`sk`LBSqJ5Z!BQ&S|-;YI>%WhWDvmq0l0M7&!3i>JM~ zr;O;7@C8YdlFaM+%TfqTuX;BfQOXDylaHP`Y- zChE{(EV zN-&$|LVX>!wKo}W*I-MY5I8#WQl9ji#3-abmk?)WQ1tK2rp;(MrY~9ZJMiK-PPo4M zS#liTXrU{aT3muCc0TUSnn_+)zAX+SWcB>&93J*-feIq?eBVji1M?(Ku5Ne=+hill zXD^dfh@V_r#X4l=pd7GQRk31K@)9@p&jUo!^Vj0}X)0e6!?W&7Q@_deGXK&RZ|V`v zhaB_b#oA|(9oR?L42*!+;o-NSiKiV|ketaFwdP(tyla2kZV13gGki%ubs8VA`RG9C zx3!8BwIoO* z^isQ>U+*w@o@LLff%hJPUqQY$h4&1Ar18%30n-jDY`4zELW5$xH*Z{AN-F3;Hl_qP z=rHHd(_Za*wyk2c`P>|pEZqw2NPg(X;S(Ypu4#ImQ4)7J8jd9Qt{Woxt=fF_6a6Lx zL*G7FUz6;s{$qF%ld6`ye-Xw)nqJd&djV&jr|I>94rMY>6eukMqiI{HbcR4%knCU` z(AUfawNkuN$?Y=083|L_KDxBCp}`9Wb|Gu&hZ^Rs9Di7ddoi`>?7KqayN|ZP64vTP7^AZu4E(Lt8Gq#+MK)d2$~cnPa_w z%;YqCN;^2R&Ih^zy+sf-Z5RKtn&M#pm(@STE1lfm2P9byZ>$*H(JrEk1_XDuzJqOK z+ORLkwR2oJ?8$;Y*g3c=yc}(L^x5$L`G2dEV~x7ab>DDeYvsT|1P%1whi&CpgHgcnMdQ`XA$Z%jNHqk9IAoeYvr1ybYawZ8`QO ztSFLyme|^p3HAp3hZNsiJsxj7J3OVEv%T5FcQ%4rQ*S|j)>|?rx6I`5z{h5`#I77) zR8*09tq5(>S?0trTe5<;B)2SPBY7P{qE;!nCBV5V{}1iJTC&q zq5~CK(yox{&AwlzthZ0~w!Sq0jCawHuaE_=t_{kl1rb)>qLwbtds?OV1vR`SrK|E< zWqWU7CQfv(UK!DIe7B12xC;F$Wu^+oz6#o2mOs2D25uAn2&hEQWw%Q6xXKU#iyQLi z!!pqKl)(IxD%IkzGhWtcZF9R-rVQ4+&TWr(EMFMf&lW{~x_Vg4dRYU0JEc6-uWjA0 zohUC^O}gtbKs8l{sq0~_=4G7*8a5r++{Fe|U}{k6Wu3gX)v$#lR_^X$y*7a(KS+N~ zQjcx9Wm-Z|KRTdoeb>>%yLFRp50JQ9HD<1{5--rT3wOR4Mc>Ir)5SIkEOI2czJ(Jo z$IPhG)inO=Uei9B#F?+N>C80xC>b-?FU+JWHQP%f64Aa&(!MI7#fL;6AkoA6272GM zFxZ}Rm-qe$to@XfJ-l=8EZ1yv3xq)<92}MX`Q`eOadN5~XU#>HDQaRbmk9TJ%EC1v z4ui_k?82)(PDZ%2WsY=PG{@;1y{-43TCKMXgsqpC)FFTNbwV>}r1{}gXx*%HwWzbP z-!8O#A4z(nuLlEmxm+Hhf1+fjuCJz zJ`ip%`F4L%vQN&5+_7uYQZ~`KIfIBRg-AJ1U8lV+1XwDsa_yKJAqNxa42f&NHY;IG%_({l2N^|gdbr^Xr@oc?Ql@^1eB2( z+K)&iwYsRaCFQ!75xrUUZd%~OZsqhOqO*Hw;!Apy1|d*LBtZDJj&#Q=5kS4OaBxib ztdSxdCYUZ`gy(V*|4xYn{4dJWRdWEP>)BtF+z(-kb>{z2WTW?SU`m3d7XS!%)`i7pbW1A`DGgh1?2Q1RLvv0a~%d%|I8;0HXH)=7}Yf~=@7qcde|cI zg3_Q}=vjso*b3Y?6ubZ=3QsDx((yj$WZCCZ8nzZSWheLAyC}Rp%~7(vj>>3VAt66^X-$b7?%1*Zc(fZ=p;xSM6DhUIR9Obln9s+xeL9v7P$C( z6FhNHjErG7QXro)7E5a=_IISfp;$O>gG;UXG9=)Dd~7VE6H7dCJ@$pufEdS3gn=K=O#FsAuATVuAUICY4|Es`OwD^a5I7K!+lNf}PJ{3=GBl7nvp%KW zAAXy%?%g2o#Le2-$lBe?+SMsB9v&(UReHN~r60&mc&VRGii?iIsG2nL{p|JoBGqUM z$+rdEWEHx$)V3!gz&^2u^&{WW`(#$BwT?xEql>b~styNp^&a+J4rgj!`zko*D+nPQ z`Z^1piXeLQ#h&<`eee=M z?k5I`e{a8J@4Lg?A=eue;dY3$4E&(#KbZFz3#(^ z<6%>?t!Qp_^~}}jH#xO6DeLi8<^86Z{dQ?uQv7qXK3P)l=oZ_elD@iy%7 z7RZw;FLff_nv9#YSX^TwXEveEOj)-}vzB=CY)aRE8osg}vBDrghNEwyrD2w#Z}C0f zet`%|T>XerdRxb}7@{V3;Ph`}E8E>Gmw-<&wdPg**WLTf6@bzOf``G*_eyDmnr*Ba ze;j!;p>MS3s&)!WncWFo>2&&Id4pj!Ci3H_sZCHdgnIs@dOfd67C!NohUu1m`AlKm z=+rnz(v}0K_Wl3G(!N4Cy!$01iPmGS;OcqmRLtXTgjrZv@1y7hsnaj9^ZnX{AByh* zf~|ZbuaMoB%vp)>z6>krsZf3>XT$w10b}FED&&YGBA=K2 zWgn`5q~MMN^(;~eY0NB)4RlmY$z=&(^=NuOd>|EkBQJsJgf0J)7oM!b59;O9v-Cw+ zo#Gx#*=EM~w&jV%zC2(oi$=X&=eH(KwPcw_-y9$`$~-|?eAIG>V+FO=5S^4RI4A61 z%%i4nI=e$y2C-7m!i)`=#YmGxX=`n-u0TrJaSnGetfDN=gJcnA_duZOVHOZ*SY#QF z-CE+BL>NCbADAP|kfw+-?wvz1jRW|~2chRC_0oh{gDuRCZdQOLT!s7Rc;=C&CXrK# zGL}H$OmKc+D;OkM46Ey}MWG%QP6^cbbJ8l{-MsCqD!$afV^&N}>4olJ1cQvR9Bv;*4*5Xg{#A|2E_FznZa7 zXMM43s-Q|w*Ar4AXL-@m;yKYEsOP%EEZ55I&84x<2JM>C(#HPD^&DW#Ox1*-TP>4H zL%+H1(Xe$n&sFEGQROGwargE%u_usuj@V%0C~0q*&iJur*EE{*U2bIlR{l72QlJ0q zA$_3l#BnJyw-nxN5SLEGP|2w-td0XeywcnOXDb-pd#zki1x^2ET}0%9OHdFFM3PX8 zsKWEPW~T+8kjndPWy$N~eJgs(U9^cW4kY)08r=U^Q(YyrpbQ7`BZkWMTKhd_o*02~*G_ zhJabPgZlzXJf^37z`OXC{z#l8wX{b_<=iN#C;%VO=~&<#(3#Xu)6ozB9~{^aCSfLh zy11cc#{b)eCvb?Fo=wDnq{{32&8vc&(my_w^Ns*M-ktyD<9%$So|)wTBEt2DW|sfZ z{j)-flAiBhQJ|)MM)9EZFNlXyKoqF|mnen}e}xYHf;bAVPrR}6`QkY~alM8!v|`n5 z2-m{r2jo^2_ePs(HJdSM#U=H<(bl#NtfOao^Ab&ea_x<6yH1W>;!rigf;$I?*B;o) zO3v`ja|gRxD%eKRq<0X>*cRv5P3Z%ddB*x{G=bV1mUGzGwb8g!xyx`%J?>wlbN=h6 z&A&vyC`vFv6|EgpsUn=CdQv#P>;WYxO`y48y-%him>$YNu^^dA)VoDC;E6Z|jVD+Y z;)Mzhe4AAY6sK*=M^CChMTuUG6DkapC;-=Z!*Xpf#YtXlOgkwGM#vAlZm(op^WmXe zYGi~%vgRaOOwbs(y@4~GHjiLKvX;1!jdI2psn?uHu>LX;rtyhdCr(ROgWgzwYV?U( z8L06O>JUzH;mKd9bz$*+^BKH%*%;PZSP&6xct}=~mAj>CI|^zv0UDrnVTDRToGVO) z2*I>%;^~kPY*|or=+=WM90$46+vWazwIlU67iaZY44< z^QWUmpbEkQyJn37rBN8=E|*#2WybEFy5a}*lA#QYFkmBi$Pg_QYfkDxt|at5qGiEK z;xajk>#-K>rc0ACHmOsg%3Vz477{hP8?mqfvP( z0{0+Jn3RF+(zsm|+Y}<`APxdl)0bt3MRr$8>r7!lXd+7Ls#&L4N=>RMIt7%pgE(>_ zDUobO2NYF#$-0=-TP5 zJ~j0~sTv}xcUC*y%;T&dyYTb=HmXNHSDfy_oRExV1~HvXWvR-)rp5*_4yw@AZo7&GiNol)# z5=s&DSErDyfMs_rxJUUf=S-C$NC{j=Wl}P^P??ERSy^J}KT!*z z{}Yu6A&iW0v6egyUge(%bZP++#KU5IMljV8nfOF>w;Hum>V=%-rLH)Xwb&6!4Pm;a zs!~Vsr}{^`*ql2$*!@%6t+CIR_R$((63W;S|583ybM zV$rc*zE_ioAJiE*5u4?cTQXm(oXSvB}I&(n4M7V?k(n{1c zznNdtkMYJQU68DZ7LzCzqbUaRSiO_VRY>RCRh&!%A5811U|AVb`88JqEV@njL6K~^ z{Z)?LEyLhQuXpy7)aByddHCfl8j2}n_IIV3uI zK8598R)98yDxO7$4BSS-n+|J8aK<@|-=-mmgVvZRI>LMxB3Y^uJXK1!1^<~UX+ksG zsk5bJ2>Qd)>IqJ;|5#K_3zaO(10_^(bW=ahfoNAJY|CK;4+S9(1iIvM$FZLX?(r!A z93_U&vrm!?&yJa%VfX6R7sR&i=`YUsvCaI+UkK2UC~}_jqkw@18P(keh;iH~4fSlh z3XbBZ(=Zr-(=RFjr*aDXpm7e|@pM}f(B^3JQd?R^_n2SsBsf#^IX0NWLqH1wlDItP zX=90bMEib$Vn}d4ES?f2JG73qc7_bh{DJO1we~~vCf#*V(Qu@ssTAxF3{gJWmxt(1 zl>|@LR_O#WMoM)M)k=+b5dE1N=OCJqn&2=94<*H!1wpjy@*^@T9wi2Kh=~Vl@Py$r zDS8q6R%3vCiNKHr=PS_y#+cO{=0rpdqTN;HuTd)fyX5;fCX2rz1*^Ew;RQG8 zBAQQdCJc1x!?4nLyrr}DW;Q-gbvJ6&M<;;?TbYv^9 z$xV}17dEK@GdI6XwLa)l4#d6NZxD1-`@tYI}7O!CrxypFm<0`{aK#2F4da z5qw8j(qNm1fT)5SW7TB_SF-lgELAvQ_b%pl9Oi&(gC+k0My%i5C4jrF_G}(T|{y*n5a{i4}myAX1V3 zp0B*+Ql$M^0Qt_#Ib477vG1ULW+5{|xrdmC_LCTIu#XYX0g&0hSs@L49Dw>eF~QgT zifc%UjG?C_kE2lT4^^37WsBg|K1o{-`H^x_lv7##awPUap(0Fz#ld7Lv>0K)0H}>U#A0KB9R-*-B!t6;1bGh)JB~fXUba0%vq=U3VC$;i zlV#I-LomYeTE~Fp0q1~69M`5?7O{NFFAMb;7i^4<0FSIp)8GOBP|arj_qrMQVzcB{ zvV>`F{ibv{wsZ30ggY;r(zbZ;UJD}T5K?joJZt=hNTwNrm#an(o%uMelq=KGyBd5k zTZ;xn7+_#Dte;A-R`9!w4^E1Cf8e!vg$0aqg~k zJCp;8&4Y>$dt;0S>Xl&?aO&9A^|TI^o8kB~(Y_DfsSYXF`>U4bYxiHTld{3UE}UjI z4%lmf!rP=lp;Om#0##fx@a0O@0v7-uDfSXiek^$2=7lqpa8x;#EHln2-_>uvBiDE> zCSm~#8w@3$CvDxQ*TKMY&hFWV0GN_bn3BI?bmdB(lqT>$@6*mYv_t|cpmN@7TiXo* zKx4}}6S^5O+=L@^^w&-N{I<*LzG_MEqCAp)`#*#6$(3-O&h=Y{E!c!EOe!m2{v&7Y z+vX~M%<83&XJs~)oO5{gq2ihB2#X(MujNJc!UhD!4y(H*(Jt#cOI)O!vt<4)Zb^FH zDA%VIc>je-MR0`w0?O{Q*o&1`1LK@}bIRD<9n6GyH2|2@Eopa|sVw}e6m##^M#ABwWek%S zL_MIj`gTXSa5+uDvkZeLN4z-8ApTGr(2vF&ROACOFTwUhwf-Q)#MWb?V2DCfsA=35 zj-4aBJeF44g9@R_P{bT!TYY4-ZzvzijQ4#XBA6n-E*UC@Kd%Q)jyLp-A5}iKuWD#w@h9U(VvZs8y;v#<{h@ry zk}&t(PF2dkzmS|uQ<9NPiO?LUtDy|bP0CR~G=aV8Rcs2O?Ew{WzS)HeX~TM z-A2&Fn(ycL=im5YG!Jo@mp&>~oh?7D1r%Yo^d)Wb2ziEOtsrv}&`67K#DX0R!W|SA zcIu=%2`ic+j7#qJ=TK3QR83G)d{R;XD7lVPolxX|Fj7~Tdvrhxa|Jqq9Eif%n^9Bj z*Ri;-Uc$3j6AN**WwEPrQNdXnc5xBfDRNnYIxEQiB3c=Ln1>K_p`nR=vFanph8aaXzi5Vvl@DK)YxSfUaDn{m1#A^t>dF@D=g$iK< zxeyy8K!J?TqrnN}a0l(F^r#`{Mu^^doz-Fu>W{;Cc)H!iU<+brgp3wMaH_Ilumuur z5ogSufiz^w{K_>@FGLEpXMj~-gttt(dk(|0RZUq|p;?@zkhBuwq|`dgc~GdJMfw%z zb>oIUd5%>7oO$KB6wqB1M+9^inZ2M`5f2LW$0gB*{U*0oZkzJ*vY==vHlh;v7BR*p z)ss-o&t`_tps*XD@RAZIER~ZJ|Ix(G;?)?yMM>clXH8M?6&7eNXKny-AmaaP>nfn) zNSg5C?(XjH8r)ri26uN79D)R0T!Kq*f(CaF1ef5R#exJ28sOjLE_WB+zx#IP?Y#ZI zsj8XouBzUi%H{$N)HtZASiN(>u7zQpqY@Y3kQ88GsL}_EG^-o-mq=1l#OOLIQXT{Z z+fs%82;hx3J>9*A$`<`4C9lqKS0wl@(G}Prm9r2d zL$xVikJ!nVX__xcrL+lpAfJjACkVMOWuqyjDuB6*i%MqjC+NB5BEPeon*W8Nd^89e4HG-~mp<6kO*Sc}9_; z0zWtvmlc}j$XrVRUGuNEp^Uf^5Bkq3%*5n`MvWQv2$|FP$Ak=;63>Q$I#6UYA zelt3#KCS^nOhsCTQxC5oQf!rOPpFjSVP9F>y25L0=l zCycxZiF*D^0Pl?tpkzt};lBl--G&vwAsBY$&h~|rR#l=d39}wbn8}=$BrhQcS6LKS z@eKX`#YH1gKD;4cS6oHb)F4qR=tgcVai;Zoo1U9Of;Aqf-i2bwmh3zyI4i1!!2A`v zc`Wt$i1ja_%Foe)vVyZ1319?1i>qWmw*jrGIgpoZGDn%E{bi6vN7VPN{?f|Q#+_&N!6$TOk3A-a`YfUP8ZHq3seppae5i%m3SdnPxN80;}B zYZsLD;NRx+o}wsRakixti8Z4uK0dmRHsg3@oDP}t$nCy8ZFFi1z?GUW^n;9z1l-p; zL@7ngGHVE@=YBV|(VsRt&S8wv(o@Z*4;1UhMIPa?cTwF}X%!?WeB`%AkPgsTl~P}Z zDw~uVFI3qtN|w*=CPKms=DQ5zQ=pry$rgZ3x)CDWk^1-Ep}7zh+slQzaQyLwoJfYOzWlub4Xu?Nh?^l)?`b|yfeX!X(1zKo{m?k zPnA}AHveidCNsUVVuHC22a3C5PsVQiFfVeEe%eC zK;r79P0)`}GMo{-mImL=(T6C}$zvp@LeW_hyCI1>U3zG!xVCb1`XiLG;57ILO=R|@ z50~lEjZcR>LFy9fXP z#y<ysOi_|D!5f7Rt*!loT@&M7H25fD{80Bk%dte2K#kQ*QRu zh$waj6A{560{_;Bqc0*nCM7Bwu}`5ufrD4M^ky!?h!`(^atsBa_2?Mg$Z8h5vF7dbhV20sL^KV3CG zO2p+y$h-LkJp4AMTGy~0)5)ycQ4}G%1YDoIFxp#}EEu+#Heh@PHu8?-sFfEm=9ZR* z>~Mxed=~~kQ(Y*F9}t~zu!4yMPXrSq;Df3N3!Qy51EeKR-=+a7!`N$Z-AP5QC~U8e z7vzPFuuK)!=ebKOTr|e_+6}iG(LAQUe9ioMp?|J7o*WUlnutQiVKHv(gquwQ9KK8T(MpU{*i~ zk^1WVpvJ`layOgBi4i2Z0cb)lx+EkRIpQGwCO4P|FO{QQ`?-DDH>t3sn~EOVkMq$? zb({|;(h3J!Asf6oW5p!3#7k5?+$y~w>O|;a4_8D4wh%o(U&P3&#Qo1_*qp$`!><;w ze0-Z{ee#*P)*a0#iPR!t7SSNP49|{z!CuX#JJJSGfeaKc`&#n$$z)`0Cn1$AnfzSm zvJ)?eX0{Fd;e+0gFRn=VD)=KV2G7vz&!Pw$LOtEBmR~Pleg@e1HWrgs){|9 zSyt+MR7cwFf6?mYKV~kgK}+^+DT`itfw1BttHx43A+&k{UiB-|AlGGuOeWX2DudU5 zZGRjA*S|m{IqY|hMzAjW(!*Nt)%!3U^>RzUT7+Fm8NL@pf?UzYIGq(^vbB+d%yu=U z0~u%<@fH)?M{54{e_%Z)tx5ku_Dj?Kxq!xAG2WEy%uwubL0i!wbO!aWf7PlaH1Qjmlwe zQ6(aP{gh^9oOSZM=-@{s4->@X5tA(F5>F9fn0=*l3Kh*>RVi?#EH$#lsrpexPdW`e zZKCIoRp{mV^Z|ls&ihzg7K3H%(^OpJN&(9r+^#yLdi%#c=LvYr!1S{RGK=I3IsP}o zq#qpXHC)@7=Z5x@3G_Nta69&RxNSqHc}gWvq4=+m+k z9FiKaF&GEm)Q_MN`2w(rYjBqnj>KA~@5Y53;@FRB<)A18 z9w% zSkX6Yr?zBQ&?5QyzV}@5FvN*L=qsl+>jmN?4%hIexq&#DMQKkh$#r9RNG2n`rbh#s z>)eUFBckCY3FCDrIDnr&Ir>B_KOZt>mKICqd|{=&^O1eqo@nm~ zpMy{?U#isJit8pygUMY8dOt$CaUggn69W$ujdE*waLCD6S9^RsgIB<+_#t2rmQtbU zc?<_$l-N5}7tnGZ$h_@fu?JsK`of2o(T2i`JEM|1%SIjDygcMoA=5-Yt%7+kDmEsg z6k_3h&p6{`)8M^yxsUt|~L&6K?K1D2~$cLEy?Y_x9uDD;w5y?tlea zU;J8vsi%1_ir6Gz-V%uL2#x-%iKC6bfYw$^{GbRJF+G$`XH&y$lkFrwiE1;{g}7w) z;Lh>b(A;G_+LbHfq=X##W8#b!Q$F(jCn9!lq4-tXvsBSWqmAb#E})*&bCFcdkMC=? zoM9l@#%jN9`$vv@{z&VjJt*-}u97MDKPCF}mP{6>Y#xLK0NNM<0G!{qq=${Aqb1v~ zEyu44XZp&{%e?rVS32mepxN7H&!|@E!-b={Vie3K$+&u{7Y_95TWv&%1bnGA1QBy{kn`bPCg%mlS14@xGLRW z>Thd!qmZu`qh5YIYVZwt7?>m6fV@Seo|QdnVA!&suQqH(tcJ()hL>xesP1muM#L~+ zNNHvXr|6P`0*$m_SdwC&B>)vsL*NqUsEX`bR+zof?{H7@!|)`)kkD=vbW7R- zKRzgM$jVbCU`sIBX6o2(nO zj0{)c=ua%BXBIox>3{QOIc=h+LYB?w+3oh{FCVK(?+u{45bj+uA9n889s+I|t`BZr zIp_E_0EUvf*8^`4n~b{*g3#sr52|zTPq!8ioJAhb!|9}(QDDR6R{*{dAwqkALp4=K z<9ZsxI+}baye(>vJ~H<`Nf_4P@1Yev$4V5hrGrqXNnCP=&0a(_b9k3BG#u1L%6&|I z)4c6NXcnz8o&SCT(3FfXzpVV@6tZQ38e!qJOPAVvC&o~pB(WVr)|J8oO63$s%6Evd z331SB?jC6Qls}+icpe>0Gu2gOA%(m1pj>My;JoNZ_c9lfVsmgmu}Ug@*qig8%rA85 zQ?9R;v}l#kXhxvSz;o)33^J$t28Fe zuZ!Gw3$DJYH#My*xm%VHYpw8Pa6bv3n&sW>Uzg#0J>k3Ltt#}**1EKW<-J11Hw&Nn zsN=x%w$&-mi5DKrM5Yoi2a@xa4V;4vG6wfY7T-83SKjH*)1i<=tdHA;iE#z z4AAK|x3MA@D&a6S^u4vO>wia{XRwyb;?HPYdeORfkDZ!|ipO(tB`ZjV{bDw9?(?Ue zu>68^f6cAbvH{;ATgY@OF%oOn8y$M4r|b@4K3*j_-Fdnflt5KF z=%?CWW>sNL!^T7_53NS<8>BR{o}v_&^M3tAQ_-Mh`&oZhKjlg*dT$tg(}r83kzK~y zjIqI!+nlk@gA#q&GaHJX8mkei$n&eZpy1mPC_T@IZj0At6P#LXCp(a-0pFZU-8UuV zAo0c#RhYWgq&ya5BDPh1d-BevTt3NE)EOR;EU}i)T~&n)v~V;Tt|vT8ysfFGN`!RkucS)e3!-nzV>uq>sBuccADE@zl4b~#P+;s6XIm5%-qIiC0%%eR6MC}aug>$Wn4g6D zF`}lO*d7j?{Ky?PD*BRdQX}-Zna+&h7RP^IZFmj$=fIZ}BsgCJ9`Inn-YXV(Z|>>t z;q0jE=)h*{Vd?m5*sF}GMeJqA23!S54<`;63r1kiXrR+!wkH;vJ+4J` zZFs$M`MBe#`~XSDEvV8YE${Av=zAoiLUwh&BX*7+b`T~GmsN#sqiHRx=h^H9L!kq7_Di}Vk@{;Cf9k9NOG!vZI2 z!Tvcq>_&$wMZHbAr8RxN?jrR}QnF zGi$viPaO#r&}B8x@vJ*Gv!2XseVD%KqG+SjB$lB%H+3k)Cq-DRbY)JNa7Vl<3P161uTE?RTkti|M;rP zvFLWFlgax@M!G3lYWU|BLium9+PiqTsfGlr1VwCN1X@C9K2q{~yj*wvSUCgB zib{P(x}83Dy0_A9J=#bm=fvj&yWM9*G@LCu*6pz#jmx;oikWQgickCAuw5}=2!ZMw zE_hX`+Yc>1*9=Q_i39iPNzTRNJ;k@$+>Tp@dbz6V4J=)*807UTw?}?qYgM4g%C&)r zN7VMH1L_NtYvDBxU+%h+PjJ`gsg&1GqO|zQ@JM@bP9_rU-Tf1DIC(mnS-OFIT%tQ&SdvSRaS#IXMf6^zZt0#RSA!f!%f@t=h^c%h z2Bu$Yi+A~XS)m+=Py*h#}qHH4y39+aZ$36_b zdKo0+N~^X7L#s>5t)n(|I5?+Wqu%4H`8l71N~_yORz7|7!0lWjI$tV6F=~{8i`1FH zjFV{sH=;CHK#`AM;OktnG7KM${Lvd#-Zs^s_3?}JAYUG01U81i^bq=CrfO^GahO<} zC`4Cz1m}5XCISEJ%dtWMoL8$V%c3yrw6eS_u}6^|+6LuVKTvfxr}pQjUk(U6n-rj; z17%h12Vo4*wGuSiOLFB7j2h^g<%)u8f3y~L@V!zUsol0;D!Sr+GPEI8zPtKS$q z$&zr5v_x^{Ca0GE4v&^Tb9{zcS&ksfr#oHMpD!*x8`Xp-Il7FN(IOrBjQO(!mA*2o zdJF?KP7l(p`hdvmWxI!J@CsZTn)7{7<`AOB9rGZkY^7=0K`7IJ_#VIDx`>roG0miu zwC<`S`HO=GXK(TJoYUpSvqi6hUA6&O+FEPiK+c^CzlXu2Wc1NpgV}-0m025Y?JjU2 zmh?3da)-RE8QsL0Sb0j<#`CnQPI<5Si(Ul#j>*mAjuRy#DPYHm#5!D$p^o7oD9l%y z4b~|eM{ubFtFtE(o%LZ-EbwsP$x#W)b{JW!gNz+FRUH zzdR%r&OIsHTPsMevfNsn=TTs9H_Y`F?U$9EqtQ&&ftljv4TgMo z@SU)<#vMDAuCP1m+y{GN8Gg^!3EEB@w5)%?SD`9Zy#X3#3nX>>kKQfd7<=jXt&{i* z?v}^CeC$M0mO&;W+C+teP%|>P@-jU2XgJ#x6*Oe#O3Hq4^7-P>QeBg0Zf#OUfIHhQ z%yn1=dwKlv5@Tn+`*^fQ9EF*^ubptA8`<67B%c7*&P0-HR3L1T?lFJu5$Vq!t6*r( zx&sCP2qgyq@W4G5xN!HcZVDWEf!n8(sjUO6or|UQk+!`HmKL^1n=c=O;}|+U3pQMD z8)tVRiv$xSukBKCGH)SEwd))CBxS4&TGLlEsVdnCw}9{A!hVmn*v~z(T-Bz61vR9_ zWZ}?}u<-{e?M``wv5lclS5^xV)It-C#}8K*?>n>3SKTKBe0QA+J{B1FO`c);BCsPv zS$c_I)OU_JHB`CqS126f@Ol9Dnp%1{0rrqK$e#*6%$n)9I<&~IBQeJWa}T}YPJ4lf zCqRr76k@m8>beilj*X^Dw(?j_H3sel0kkmQLsTt92~B_#h*!GF5FXZ(Mw86p2?yV# zawyD#hsKiUE85?l38t`Var3A!xn)H69JzbPH&Ntjr&(01ZrP!J8luMu4&Hl}X~RZr zHgtdnFTcOm?;rh+13j{u5B8f!S-ua18EWM!U8;b2d*4x=7FBM9U!ZQI+MNYRRGQE( zI$jmVB;0!-QD19fZTV}3Ua&A$%SX0ld$Y?q6GO`s!L%a>covsI?z`1Q9ADTk3Atwo zmxw%MsKOGpz)PeXeB(l9++3!#jB>|Q{z?)1BEoPioz_nzLmv{Vu_VVCd9156;gbbF zU$3my97b$+e}{ug!Ld^^L#Hm18DPD$`!w5Pks8CMo~@Ybdrx!uwv&Ze?UHgwrZEb` z+EK}Ul4eQaGe0O8{XK91B9@E`=K9WBF1v8(4u{rLMzIG!rU^%aP>Qz8jConT8!N!Jcpf z65)))e%BB`O7QkTPCvKG^CkH>V}!}`@)yXd-xm|I`hAYJ5WDWWlXj~zNLpE~DRNZZ z;KX`S`%`9;4%X){ABLo2NT)p?H!u7h)jU5uoLOH7bi(C!{1^@m7VXLHufU69Zwg9O zr&==Az#cRJAVLP% zm)LvM9PsVmT9nH5b6F6$p;*3Q*dus$vX(fnST%q)azgO!>xO+>tt&(7guNDdv1;Q<;BaH)Z@SN!i=#+(8o~pd32s*`ydl(7fnIv?%1ST8Lb^xHe696dO!#%+wCd77a2=?E`Sb0VpXp!YJi zVchhoia$XPiY;-YS!vy^XCbt->iR zlcGmbC;LhACZdqYV_0*IzUywJ)DNSyM_ z_AEK8t$4iMckVE_*Z2KEW8yTYueYc2(H70M&njupi*M)E$sjpR_mQu2;iLhesfGhm zU%xNKB{=~*i@Q02`R*fgX+{B-%N5lfH*?EEYu-)vyH#-_Yv;pj{&%AHha-K)--!i$ z-d}mG?>mqC-K}2TTL*LjYopAES z&9g5Gci*t$P29wbq(sxj8gJjLc!ZmAcdD=bl4a>w)|bkHs*0M7Z4JFkkD8WHVKiR_ zQTK_R_^GTzZ(Oz&P(5nUii2SZZSr3K-_0Xe#AUCjnj!=wHq_7bI6R;tolmz?qbMN- z?4f=F=iGjV9lu{e;9~&53rTP?*wV?v__?=>rMuxz@9ZgoH?5-BHTb7%;5;(YZ!~xx z1ThGv_{+!t<=Q_5M!Z4Nv<3fU3Jm-?IrsY&1hES~^3T{~?(Fs}6a5r^vAm3T0ERn2 z0|4m1vEY3WL?HOcKX6kQm;Wbq%E4Xf4jFi;GlF<>^0#0^ymEH4U;|TlI)Zioe{iQD zB1}&3$w$DaBL3s#m9&4u|I+-wB>&e6zzSTUXf^=ANDBsl_6HLI{ohRP9^MX?zosjn z+TiH}C4b|CAf|Nw06%%W`k>pdBr=ixrEOR-3Tjh_y>nZ-JKlm@+wctNZ>`(7dO%Vp%f_^q> O41g)Pd6<{}{PsT%lVE)S literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/target/PushTargetUserBuilder.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/target/PushTargetUserBuilder.scala deleted file mode 100644 index 8378500af..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/target/PushTargetUserBuilder.scala +++ /dev/null @@ -1,694 +0,0 @@ -package com.twitter.frigate.pushservice.target - -import com.twitter.abdecider.LoggingABDecider -import com.twitter.conversions.DurationOps._ -import com.twitter.decider.Decider -import com.twitter.discovery.common.configapi.ConfigParamsBuilder -import com.twitter.discovery.common.configapi.ExperimentOverride -import com.twitter.featureswitches.Recipient -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.base._ -import com.twitter.frigate.common.history._ -import com.twitter.frigate.common.logger.MRLogger -import com.twitter.frigate.common.store.FeedbackRequest -import com.twitter.frigate.common.store.PushRecItemsKey -import com.twitter.frigate.common.store.deviceinfo.DeviceInfo -import com.twitter.frigate.common.store.interests.UserId -import com.twitter.frigate.common.util._ -import com.twitter.frigate.data_pipeline.features_common.MrRequestContextForFeatureStore -import com.twitter.frigate.data_pipeline.thriftscala.UserHistoryValue -import com.twitter.frigate.dau_model.thriftscala.DauProbability -import com.twitter.frigate.pushcap.thriftscala.PushcapInfo -import com.twitter.frigate.pushcap.thriftscala.PushcapUserHistory -import com.twitter.frigate.pushservice.model.PushTypes.Target -import com.twitter.frigate.pushservice.ml.HydrationContextBuilder -import com.twitter.frigate.pushservice.ml.PushMLModelScorer -import com.twitter.frigate.pushservice.params.PushFeatureSwitchParams -import com.twitter.frigate.pushservice.params.PushParams -import com.twitter.frigate.pushservice.store.LabeledPushRecsStoreKey -import com.twitter.frigate.pushservice.store.OnlineUserHistoryKey -import com.twitter.frigate.pushservice.util.NsfwInfo -import com.twitter.frigate.pushservice.util.NsfwPersonalizationUtil -import com.twitter.frigate.pushservice.util.PushAppPermissionUtil -import com.twitter.frigate.pushservice.util.PushCapUtil.getMinimumRestrictedPushcapInfo -import com.twitter.frigate.pushservice.thriftscala.PushContext -import com.twitter.frigate.pushservice.thriftscala.RequestSource -import com.twitter.frigate.thriftscala.SecondaryAccountsByUserState -import com.twitter.frigate.thriftscala.UserForPushTargeting -import com.twitter.frigate.user_states.thriftscala.MRUserHmmState -import com.twitter.frigate.user_states.thriftscala.{UserState => MrUserState} -import com.twitter.frontpage.stream.util.SnowflakeUtil -import com.twitter.geoduck.common.thriftscala.Place -import com.twitter.geoduck.service.thriftscala.LocationResponse -import com.twitter.gizmoduck.thriftscala.User -import com.twitter.hermit.model.user_state.UserState -import com.twitter.hermit.model.user_state.UserState.UserState -import com.twitter.hermit.stp.thriftscala.STPResult -import com.twitter.ibis.thriftscala.ContentRecData -import com.twitter.interests.thriftscala.InterestId -import com.twitter.notificationservice.feedback.thriftscala.FeedbackInteraction -import com.twitter.notificationservice.genericfeedbackstore.FeedbackPromptValue -import com.twitter.notificationservice.genericfeedbackstore.GenericFeedbackStore -import com.twitter.notificationservice.genericfeedbackstore.GenericFeedbackStoreException -import com.twitter.notificationservice.model.service.DismissMenuFeedbackAction -import com.twitter.notificationservice.scribe.manhattan.GenericNotificationsFeedbackRequest -import com.twitter.notificationservice.thriftscala.CaretFeedbackDetails -import com.twitter.nrel.heavyranker.FeatureHydrator -import com.twitter.nrel.hydration.push.HydrationContext -import com.twitter.permissions_storage.thriftscala.AppPermission -import com.twitter.rux.common.strato.thriftscala.UserTargetingProperty -import com.twitter.scio.nsfw_user_segmentation.thriftscala.NSFWUserSegmentation -import com.twitter.service.metastore.gen.thriftscala.Location -import com.twitter.service.metastore.gen.thriftscala.UserLanguages -import com.twitter.stitch.Stitch -import com.twitter.stitch.tweetypie.TweetyPie.TweetyPieResult -import com.twitter.storehaus.ReadableStore -import com.twitter.timelines.configapi -import com.twitter.timelines.real_graph.thriftscala.{RealGraphFeatures => RealGraphFeaturesUnion} -import com.twitter.timelines.real_graph.v1.thriftscala.RealGraphFeatures -import com.twitter.ubs.thriftscala.SellerApplicationState -import com.twitter.ubs.thriftscala.SellerTrack -import com.twitter.user_session_store.thriftscala.UserSession -import com.twitter.util.Duration -import com.twitter.util.Future -import com.twitter.util.Time -import com.twitter.wtf.scalding.common.thriftscala.UserFeatures - -case class PushTargetUserBuilder( - historyStore: PushServiceHistoryStore, - emailHistoryStore: PushServiceHistoryStore, - labeledPushRecsStore: ReadableStore[LabeledPushRecsStoreKey, UserHistoryValue], - onlineUserHistoryStore: ReadableStore[OnlineUserHistoryKey, UserHistoryValue], - pushRecItemsStore: ReadableStore[PushRecItemsKey, RecItems], - userStore: ReadableStore[Long, User], - pushInfoStore: ReadableStore[Long, UserForPushTargeting], - userCountryStore: ReadableStore[Long, Location], - userUtcOffsetStore: ReadableStore[Long, Duration], - dauProbabilityStore: ReadableStore[Long, DauProbability], - nsfwConsumerStore: ReadableStore[Long, NSFWUserSegmentation], - userFeatureStore: ReadableStore[Long, UserFeatures], - userTargetingPropertyStore: ReadableStore[Long, UserTargetingProperty], - mrUserStateStore: ReadableStore[Long, MRUserHmmState], - tweetImpressionStore: ReadableStore[Long, Seq[Long]], - ntabCaretFeedbackStore: ReadableStore[GenericNotificationsFeedbackRequest, Seq[ - CaretFeedbackDetails - ]], - genericFeedbackStore: ReadableStore[FeedbackRequest, Seq[FeedbackPromptValue]], - genericNotificationFeedbackStore: GenericFeedbackStore, - timelinesUserSessionStore: ReadableStore[Long, UserSession], - cachedTweetyPieStore: ReadableStore[Long, TweetyPieResult], - strongTiesStore: ReadableStore[Long, STPResult], - userHTLLastVisitStore: ReadableStore[Long, Seq[Long]], - userLanguagesStore: ReadableStore[Long, UserLanguages], - inputDecider: Decider, - inputAbDecider: LoggingABDecider, - realGraphScoresTop500InStore: ReadableStore[Long, Map[Long, Double]], - recentFollowsStore: ReadableStore[Long, Seq[Long]], - resurrectedUserStore: ReadableStore[Long, String], - configParamsBuilder: ConfigParamsBuilder, - optOutUserInterestsStore: ReadableStore[UserId, Seq[InterestId]], - deviceInfoStore: ReadableStore[Long, DeviceInfo], - pushcapDynamicPredictionStore: ReadableStore[Long, PushcapUserHistory], - appPermissionStore: ReadableStore[(Long, (String, String)), AppPermission], - optoutModelScorer: PushMLModelScorer, - inlineActionHistoryStore: ReadableStore[Long, Seq[(Long, String)]], - featureHydrator: FeatureHydrator, - openAppUserStore: ReadableStore[Long, Boolean], - openedPushByHourAggregatedStore: ReadableStore[Long, Map[Int, Int]], - geoduckStoreV2: ReadableStore[Long, LocationResponse], - superFollowEligibilityUserStore: ReadableStore[Long, Boolean], - superFollowApplicationStatusStore: ReadableStore[(Long, SellerTrack), SellerApplicationState] -)( - globalStatsReceiver: StatsReceiver) { - - implicit val statsReceiver: StatsReceiver = globalStatsReceiver - - private val log = MRLogger("PushTargetUserBuilder") - private val recentFollowscounter = statsReceiver.counter("query_recent_follows") - private val isModelTrainingDataCounter = - statsReceiver.scope("TargetUserBuilder").counter("is_model_training") - private val feedbackStoreGenerationErr = statsReceiver.counter("feedback_store_generation_error") - private val newSignUpUserStats = statsReceiver.counter("new_signup_user") - private val pushcapSelectionStat = statsReceiver.scope("pushcap_modeling") - private val dormantUserCount = statsReceiver.counter("dormant_user_counter") - private val optoutModelStat = statsReceiver.scope("optout_modeling") - private val placeFoundStat = statsReceiver.scope("geoduck_v2").stat("places_found") - private val placesNotFound = statsReceiver.scope("geoduck_v2").counter("places_not_found") - // Email history store stats - private val emailHistoryStats = statsReceiver.scope("email_tweet_history") - private val emptyEmailHistoryCounter = emailHistoryStats.counter("empty") - private val nonEmptyEmailHistoryCounter = emailHistoryStats.counter("non_empty") - - private val MagicRecsCategory = "MagicRecs" - private val MomentsViaMagicRecsCategory = "MomentsViaMagicRecs" - private val MomentsCategory = "Moments" - - def buildTarget( - userId: Long, - inputPushContext: Option[PushContext], - forcedFeatureValues: Option[Map[String, configapi.FeatureValue]] = None - ): Future[Target] = { - val historyStoreKeyContext = HistoryStoreKeyContext( - userId, - inputPushContext.flatMap(_.useMemcacheForHistory).getOrElse(false) - ) - Future - .join( - userStore.get(userId), - deviceInfoStore.get(userId), - pushInfoStore.get(userId), - historyStore.get(historyStoreKeyContext, Some(30.days)), - emailHistoryStore.get( - HistoryStoreKeyContext(userId, useStoreB = false), - Some(7.days) // we only keep 7 days of email tweet history - ) - ).flatMap { - case (userOpt, deviceInfoOpt, userForPushTargetingInfoOpt, notifHistory, emailHistory) => - getCustomFSFields( - userId, - userOpt, - deviceInfoOpt, - userForPushTargetingInfoOpt, - notifHistory, - inputPushContext.flatMap(_.requestSource)).map { customFSField => - new Target { - - override lazy val stats: StatsReceiver = statsReceiver - - override val targetId: Long = userId - - override val targetUser: Future[Option[User]] = Future.value(userOpt) - - override val isEmailUser: Boolean = - inputPushContext.flatMap(_.requestSource) match { - case Some(source) if source == RequestSource.Email => true - case _ => false - } - - override val pushContext = inputPushContext - - override def globalStats: StatsReceiver = globalStatsReceiver - - override lazy val abDecider: ABDeciderWithOverride = - ABDeciderWithOverride(inputAbDecider, ddgOverrideOption) - - override lazy val pushRecItems: Future[RecItems] = - pushRecItemsStore - .get(PushRecItemsKey(historyStoreKeyContext, history)) - .map(_.getOrElse(RecItems.empty)) - - // List of past tweet candidates sent in the past through email with timestamp - override lazy val emailRecItems: Future[Seq[(Time, Long)]] = { - Future.value { - emailHistory.sortedEmailHistory.flatMap { - case (timeStamp, notification) => - notification.contentRecsNotification - .map { notification => - notification.recommendations.contentRecCollections.flatMap { - contentRecs => - contentRecs.contentRecModules.flatMap { contentRecModule => - contentRecModule.recData match { - case ContentRecData.TweetRec(tweetRec) => - nonEmptyEmailHistoryCounter.incr() - Seq(tweetRec.tweetId) - case _ => - emptyEmailHistoryCounter.incr() - Nil - } - } - } - }.getOrElse { - emptyEmailHistoryCounter.incr() - Nil - }.map(timeStamp -> _) - } - } - } - - override lazy val history: Future[History] = Future.value(notifHistory) - - override lazy val pushTargeting: Future[Option[UserForPushTargeting]] = - Future.value(userForPushTargetingInfoOpt) - - override lazy val decider: Decider = inputDecider - - override lazy val location: Future[Option[Location]] = - userCountryStore.get(userId) - - override lazy val deviceInfo: Future[Option[DeviceInfo]] = - Future.value(deviceInfoOpt) - - override lazy val targetLanguage: Future[Option[String]] = targetUser map { userOpt => - userOpt.flatMap(_.account.map(_.language)) - } - - override lazy val targetAgeInYears: Future[Option[Int]] = - Future.value(customFSField.userAge) - - override lazy val metastoreLanguages: Future[Option[UserLanguages]] = - userLanguagesStore.get(targetId) - - override lazy val utcOffset: Future[Option[Duration]] = - userUtcOffsetStore.get(targetId) - - override lazy val userFeatures: Future[Option[UserFeatures]] = - userFeatureStore.get(targetId) - - override lazy val targetUserState: Future[Option[UserState]] = - Future.value( - customFSField.userState - .flatMap(userState => UserState.valueOf(userState))) - - override lazy val targetMrUserState: Future[Option[MrUserState]] = - Future.value( - customFSField.mrUserState - .flatMap(mrUserState => MrUserState.valueOf(mrUserState))) - - override lazy val accountStateWithDeviceInfo: Future[ - Option[SecondaryAccountsByUserState] - ] = Future.None - - override lazy val dauProbability: Future[Option[DauProbability]] = { - dauProbabilityStore.get(targetId) - } - - override lazy val labeledPushRecsHydrated: Future[Option[UserHistoryValue]] = - labeledPushRecsStore.get(LabeledPushRecsStoreKey(this, historyStoreKeyContext)) - - override lazy val onlineLabeledPushRecs: Future[Option[UserHistoryValue]] = - labeledPushRecsHydrated.flatMap { labeledPushRecs => - history.flatMap { history => - onlineUserHistoryStore.get( - OnlineUserHistoryKey(targetId, labeledPushRecs, Some(history)) - ) - } - } - - override lazy val tweetImpressionResults: Future[Seq[Long]] = - tweetImpressionStore.get(targetId).map { - case Some(impressionList) => - impressionList - case _ => Nil - } - - override lazy val realGraphFeatures: Future[Option[RealGraphFeatures]] = - timelinesUserSessionStore.get(targetId).map { userSessionOpt => - userSessionOpt.flatMap { userSession => - userSession.realGraphFeatures.collect { - case RealGraphFeaturesUnion.V1(rGFeatures) => - rGFeatures - } - } - } - - override lazy val stpResult: Future[Option[STPResult]] = - strongTiesStore.get(targetId) - - override lazy val lastHTLVisitTimestamp: Future[Option[Long]] = - userHTLLastVisitStore.get(targetId).map { - case Some(lastVisitTimestamps) if lastVisitTimestamps.nonEmpty => - Some(lastVisitTimestamps.max) - case _ => None - } - - override lazy val caretFeedbacks: Future[Option[Seq[CaretFeedbackDetails]]] = { - val scribeHistoryLookbackPeriod = 365.days - val now = Time.now - val request = GenericNotificationsFeedbackRequest( - userId = targetId, - eventStartTimestamp = now - scribeHistoryLookbackPeriod, - eventEndTimestamp = now, - filterCategory = - Some(Set(MagicRecsCategory, MomentsViaMagicRecsCategory, MomentsCategory)), - filterFeedbackActionText = - Some(Set(DismissMenuFeedbackAction.FeedbackActionTextSeeLessOften)) - ) - ntabCaretFeedbackStore.get(request) - } - - override lazy val notificationFeedbacks: Future[ - Option[Seq[FeedbackPromptValue]] - ] = { - val scribeHistoryLookbackPeriod = 30.days - val now = Time.now - val request = FeedbackRequest( - userId = targetId, - oldestTimestamp = scribeHistoryLookbackPeriod.ago, - newestTimestamp = Time.now, - feedbackInteraction = FeedbackInteraction.Feedback - ) - genericFeedbackStore.get(request) - } - - // DEPRECATED: Use notificationFeedbacks instead. - // This method will increase latency dramatically. - override lazy val promptFeedbacks: Stitch[Seq[FeedbackPromptValue]] = { - val scribeHistoryLookbackPeriod = 7.days - - genericNotificationFeedbackStore - .getAll( - userId = targetId, - oldestTimestamp = scribeHistoryLookbackPeriod.ago, - newestTimestamp = Time.now, - feedbackInteraction = FeedbackInteraction.Feedback - ).handle { - case _: GenericFeedbackStoreException => { - feedbackStoreGenerationErr.incr() - Seq.empty[FeedbackPromptValue] - } - } - } - - override lazy val optOutUserInterests: Future[Option[Seq[InterestId]]] = { - optOutUserInterestsStore.get(targetId) - } - - private val experimentOverride = ddgOverrideOption.map { - case DDGOverride(Some(exp), Some(bucket)) => - Set(ExperimentOverride(exp, bucket)) - case _ => Set.empty[ExperimentOverride] - } - - override val signupCountryCode = - Future.value(userOpt.flatMap(_.safety.flatMap(_.signupCountryCode))) - - override lazy val params: configapi.Params = { - val fsRecipient = Recipient( - userId = Some(targetId), - userRoles = userOpt.flatMap(_.roles.map(_.roles.toSet)), - clientApplicationId = deviceInfoOpt.flatMap(_.guessedPrimaryClientAppId), - userAgent = deviceInfoOpt.flatMap(_.guessedPrimaryDeviceUserAgent), - countryCode = - userOpt.flatMap(_.account.flatMap(_.countryCode.map(_.toUpperCase))), - customFields = Some(customFSField.fsMap), - signupCountryCode = - userOpt.flatMap(_.safety.flatMap(_.signupCountryCode.map(_.toUpperCase))), - languageCode = deviceInfoOpt.flatMap { - _.deviceLanguages.flatMap(IbisAppPushDeviceSettingsUtil.inferredDeviceLanguage) - } - ) - - configParamsBuilder.build( - userId = Some(targetId), - experimentOverrides = experimentOverride, - featureRecipient = Some(fsRecipient), - forcedFeatureValues = forcedFeatureValues.getOrElse(Map.empty), - ) - } - - override lazy val mrRequestContextForFeatureStore = - MrRequestContextForFeatureStore(targetId, params, isModelTrainingData) - - override lazy val dynamicPushcap: Future[Option[PushcapInfo]] = { - // Get the pushcap from the pushcap model prediction store - if (params(PushParams.EnableModelBasedPushcapAssignments)) { - val originalPushcapInfoFut = - PushCapUtil.getPushcapFromUserHistory( - userId, - pushcapDynamicPredictionStore, - params(FeatureSwitchParams.PushcapModelType), - params(FeatureSwitchParams.PushcapModelPredictionVersion), - pushcapSelectionStat - ) - // Modify the push cap info if there is a restricted min value for predicted push caps. - val restrictedPushcap = params(PushFeatureSwitchParams.RestrictedMinModelPushcap) - originalPushcapInfoFut.map { - case Some(originalPushcapInfo) => - Some( - getMinimumRestrictedPushcapInfo( - restrictedPushcap, - originalPushcapInfo, - pushcapSelectionStat)) - case _ => None - } - } else Future.value(None) - } - - override lazy val targetHydrationContext: Future[HydrationContext] = - HydrationContextBuilder.build(this) - - override lazy val featureMap: Future[FeatureMap] = - targetHydrationContext.flatMap { hydrationContext => - featureHydrator.hydrateTarget( - hydrationContext, - this.params, - this.mrRequestContextForFeatureStore) - } - - override lazy val globalOptoutProbabilities: Seq[Future[Option[Double]]] = { - params(PushFeatureSwitchParams.GlobalOptoutModelParam).map { model_id => - optoutModelScorer - .singlePredictionForTargetLevel(model_id, targetId, featureMap) - } - } - - override lazy val bucketOptoutProbability: Future[Option[Double]] = { - Future - .collect(globalOptoutProbabilities).map { - _.zip(params(PushFeatureSwitchParams.GlobalOptoutThresholdParam)) - .exists { - case (Some(score), threshold) => score >= threshold - case _ => false - } - }.flatMap { - case true => - optoutModelScorer.singlePredictionForTargetLevel( - params(PushFeatureSwitchParams.BucketOptoutModelParam), - targetId, - featureMap) - case _ => Future.None - } - } - - override lazy val optoutAdjustedPushcap: Future[Option[Short]] = { - if (params(PushFeatureSwitchParams.EnableOptoutAdjustedPushcap)) { - bucketOptoutProbability.map { - case Some(score) => - val idx = params(PushFeatureSwitchParams.BucketOptoutSlotThresholdParam) - .indexWhere(score <= _) - if (idx >= 0) { - val pushcap = - params(PushFeatureSwitchParams.BucketOptoutSlotPushcapParam)(idx).toShort - optoutModelStat.scope("adjusted_pushcap").counter(f"$pushcap").incr() - if (pushcap >= 0) Some(pushcap) - else None - } else None - case _ => None - } - } else Future.None - } - - override lazy val seedsWithWeight: Future[Option[Map[Long, Double]]] = { - Future - .join( - realGraphScoresTop500InStore.get(userId), - targetUserState, - targetUser - ) - .flatMap { - case (seedSetOpt, userState, gizmoduckUser) => - val seedSet = seedSetOpt.getOrElse(Map.empty[Long, Double]) - - //If new sign_up or New user, combine recent_follows with real graph seedset - val isNewUserEnabled = { - val isNewerThan7days = customFSField.daysSinceSignup <= 7 - val isNewUserState = userState.contains(UserState.New) - isNewUserState || isNewSignup || isNewerThan7days - } - - val nonSeedSetFollowsFut = gizmoduckUser match { - case Some(user) if isNewUserEnabled => - recentFollowscounter.incr() - recentFollowsStore.get(user.id) - - case Some(user) if this.isModelTrainingData => - recentFollowscounter.incr() - isModelTrainingDataCounter.incr() - recentFollowsStore.get(user.id) - - case _ => Future.None - } - nonSeedSetFollowsFut.map { nonSeedSetFollows => - Some( - SeedsetUtil.combineRecentFollowsWithWeightedSeedset( - seedSet, - nonSeedSetFollows.getOrElse(Nil) - ) - ) - } - } - } - - override def magicFanoutReasonHistory30Days: Future[MagicFanoutReasonHistory] = - history.map(history => MagicFanoutReasonHistory(history)) - - override val isNewSignup: Boolean = - pushContext.flatMap(_.isFromNewUserLoopProcessor).getOrElse(false) - - override lazy val resurrectionDate: Future[Option[String]] = - Future.value(customFSField.reactivationDate) - - override lazy val isResurrectedUser: Boolean = - customFSField.daysSinceReactivation.isDefined - - override lazy val timeSinceResurrection: Option[Duration] = - customFSField.daysSinceReactivation.map(Duration.fromDays) - - override lazy val appPermissions: Future[Option[AppPermission]] = - PushAppPermissionUtil.getAppPermission( - userId, - PushAppPermissionUtil.AddressBookPermissionKey, - deviceInfo, - appPermissionStore) - - override lazy val inlineActionHistory: Future[Seq[(Long, String)]] = { - inlineActionHistoryStore - .get(userId).map { - case Some(sortedInlineActionHistory) => sortedInlineActionHistory - case _ => Seq.empty - } - } - - lazy val isOpenAppExperimentUser: Future[Boolean] = - openAppUserStore.get(userId).map(_.contains(true)) - - override lazy val openedPushByHourAggregated: Future[Option[Map[Int, Int]]] = - openedPushByHourAggregatedStore.get(userId) - - override lazy val places: Future[Seq[Place]] = { - geoduckStoreV2 - .get(targetId) - .map(_.flatMap(_.places)) - .map { - case Some(placeSeq) if placeSeq.nonEmpty => - placeFoundStat.add(placeSeq.size) - placeSeq - case _ => - placesNotFound.incr() - Seq.empty - } - } - - override val isBlueVerified: Future[Option[Boolean]] = - Future.value(userOpt.flatMap(_.safety.flatMap(_.isBlueVerified))) - - override val isVerified: Future[Option[Boolean]] = - Future.value(userOpt.flatMap(_.safety.map(_.verified))) - - override lazy val isSuperFollowCreator: Future[Option[Boolean]] = - superFollowEligibilityUserStore.get(targetId) - } - } - } - } - - /** - * Provide general way to add needed FS for target user, and package them in CustomFSFields. - * Custom Fields is a powerful feature that allows Feature Switch library users to define and - * match against any arbitrary fields. - **/ - private def getCustomFSFields( - userId: Long, - userOpt: Option[User], - deviceInfo: Option[DeviceInfo], - userForPushTargetingInfo: Option[UserForPushTargeting], - notifHistory: History, - requestSource: Option[RequestSource] - ): Future[CustomFSFields] = { - val reactivationDateFutOpt: Future[Option[String]] = resurrectedUserStore.get(userId) - val reactivationTimeFutOpt: Future[Option[Time]] = - reactivationDateFutOpt.map(_.map(dateStr => DateUtil.dateStrToTime(dateStr))) - - val isReactivatedUserFut: Future[Boolean] = reactivationTimeFutOpt.map { timeOpt => - timeOpt - .exists { time => Time.now - time < 30.days } - } - - val daysSinceReactivationFut: Future[Option[Int]] = - reactivationTimeFutOpt.map(_.map(time => Time.now.since(time).inDays)) - - val daysSinceSignup: Int = (Time.now - SnowflakeUtil.timeFromId(userId)).inDays - if (daysSinceSignup < 14) newSignUpUserStats.incr() - - val targetAgeInYears = userOpt.flatMap(_.extendedProfile.flatMap(_.ageInYears)) - - val lastLoginFut: Future[Option[Long]] = - userHTLLastVisitStore.get(userId).map { - case Some(lastHTLVisitTimes) => - val latestHTLVisitTime = lastHTLVisitTimes.max - userForPushTargetingInfo.flatMap( - _.lastActiveOnAppTimestamp - .map(_.max(latestHTLVisitTime)).orElse(Some(latestHTLVisitTime))) - case None => - userForPushTargetingInfo.flatMap(_.lastActiveOnAppTimestamp) - } - - val daysSinceLoginFut = lastLoginFut.map { - _.map { lastLoginTimestamp => - val timeSinceLogin = Time.now - Time.fromMilliseconds(lastLoginTimestamp) - if (timeSinceLogin.inDays > 21) { - dormantUserCount.incr() - } - timeSinceLogin.inDays - } - } - - /* Could add more custom FS here */ - val userNSFWInfoFut: Future[Option[NsfwInfo]] = - nsfwConsumerStore - .get(userId).map(_.map(nsfwUserSegmentation => NsfwInfo(nsfwUserSegmentation))) - - val userStateFut: Future[Option[String]] = userFeatureStore.get(userId).map { userFeaturesOpt => - userFeaturesOpt.flatMap { uFeats => - uFeats.userState.map(uState => uState.name) - } - } - - val mrUserStateFut: Future[Option[String]] = - mrUserStateStore.get(userId).map { mrUserStateOpt => - mrUserStateOpt.flatMap { mrUserState => - mrUserState.userState.map(_.name) - } - } - - Future - .join( - reactivationDateFutOpt, - isReactivatedUserFut, - userStateFut, - mrUserStateFut, - daysSinceLoginFut, - daysSinceReactivationFut, - userNSFWInfoFut - ).map { - case ( - reactivationDate, - isReactivatedUser, - userState, - mrUserState, - daysSinceLogin, - daysSinceReactivation, - userNSFWInfo) => - val numDaysReceivedPushInLast30Days: Int = - notifHistory.history.keys.map(_.inDays).toSet.size - - NsfwPersonalizationUtil.computeNsfwUserStats(userNSFWInfo) - - CustomFSFields( - isReactivatedUser, - daysSinceSignup, - numDaysReceivedPushInLast30Days, - daysSinceLogin, - daysSinceReactivation, - userOpt, - userState, - mrUserState, - reactivationDate, - requestSource.map(_.name), - targetAgeInYears, - userNSFWInfo, - deviceInfo - ) - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/target/RFPHTargetPredicateGenerator.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/target/RFPHTargetPredicateGenerator.docx new file mode 100644 index 0000000000000000000000000000000000000000..232974401fa71aaa8f625465b1d0630078248684 GIT binary patch literal 37214 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 QfpV1~Ln1JHJnsSV03WuO1ONa4 literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/target/RFPHTargetPredicateGenerator.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/target/RFPHTargetPredicateGenerator.scala deleted file mode 100644 index 745e061fb..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/target/RFPHTargetPredicateGenerator.scala +++ /dev/null @@ -1,37 +0,0 @@ -package com.twitter.frigate.pushservice.target - -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.predicate.TargetPromptFeedbackFatiguePredicate -import com.twitter.frigate.common.predicate.TargetUserPredicates -import com.twitter.frigate.pushservice.model.PushTypes.Target -import com.twitter.frigate.pushservice.params.PushConstants -import com.twitter.frigate.pushservice.params.PushFeatureSwitchParams -import com.twitter.frigate.pushservice.params.PushParams -import com.twitter.frigate.pushservice.predicate.TargetNtabCaretClickFatiguePredicate -import com.twitter.frigate.pushservice.predicate.TargetPredicates -import com.twitter.hermit.predicate.NamedPredicate - -class RFPHTargetPredicateGenerator(implicit statsReceiver: StatsReceiver) { - val predicates: List[NamedPredicate[Target]] = List( - TargetPredicates.magicRecsMinDurationSinceSent(), - TargetPredicates.targetHTLVisitPredicate(), - TargetPredicates.inlineActionFatiguePredicate(), - TargetPredicates.targetFatiguePredicate(), - TargetUserPredicates.secondaryDormantAccountPredicate(), - TargetPredicates.targetValidMobileSDKPredicate, - TargetPredicates.targetPushBitEnabledPredicate, - TargetUserPredicates.targetUserExists(), - TargetPredicates.paramPredicate(PushFeatureSwitchParams.EnablePushRecommendationsParam), - TargetPromptFeedbackFatiguePredicate.responseNoPredicate( - PushParams.EnablePromptFeedbackFatigueResponseNoPredicate, - PushConstants.AcceptableTimeSinceLastNegativeResponse), - TargetPredicates.teamExceptedPredicate(TargetNtabCaretClickFatiguePredicate.apply()), - TargetPredicates.optoutProbPredicate(), - TargetPredicates.webNotifsHoldback() - ) -} - -object RFPHTargetPredicates { - def apply(implicit statsReceiver: StatsReceiver): List[NamedPredicate[Target]] = - new RFPHTargetPredicateGenerator().predicates -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/target/TargetAppPermissions.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/target/TargetAppPermissions.docx new file mode 100644 index 0000000000000000000000000000000000000000..ecf38082ef750373428d88c725bb594e5817aec9 GIT binary patch literal 36769 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Πch( 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 L1ZIzk-5?$S{B7sB literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/AdaptorUtils.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/AdaptorUtils.scala deleted file mode 100644 index dad918023..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/AdaptorUtils.scala +++ /dev/null @@ -1,15 +0,0 @@ -package com.twitter.frigate.pushservice.util - -import com.twitter.stitch.tweetypie.TweetyPie.TweetyPieResult -import com.twitter.storehaus.FutureOps -import com.twitter.storehaus.ReadableStore -import com.twitter.util.Future - -object AdaptorUtils { - def getTweetyPieResults( - tweetIds: Set[Long], - tweetyPieStore: ReadableStore[Long, TweetyPieResult], - ): Future[Map[Long, Option[TweetyPieResult]]] = - FutureOps - .mapCollect(tweetyPieStore.multiGet(tweetIds)) -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/AdhocStatsUtil.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/AdhocStatsUtil.docx new file mode 100644 index 0000000000000000000000000000000000000000..4c6b96016ebdaf26d796e58070e54a428eb9c475 GIT binary patch literal 37702 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 literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/AdhocStatsUtil.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/AdhocStatsUtil.scala deleted file mode 100644 index 1d3ff461e..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/AdhocStatsUtil.scala +++ /dev/null @@ -1,104 +0,0 @@ -package com.twitter.frigate.pushservice.util - -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.base.CandidateDetails -import com.twitter.frigate.common.base.CandidateResult -import com.twitter.frigate.common.base.Invalid -import com.twitter.frigate.common.base.OK -import com.twitter.frigate.common.base.Result -import com.twitter.frigate.common.base.TweetAuthor -import com.twitter.frigate.common.base.TweetCandidate -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.frigate.pushservice.model.PushTypes.RawCandidate -import com.twitter.frigate.pushservice.params.PushFeatureSwitchParams.ListOfAdhocIdsForStatsTracking - -class AdhocStatsUtil(stats: StatsReceiver) { - - private def getAdhocIds(candidate: PushCandidate): Set[Long] = - candidate.target.params(ListOfAdhocIdsForStatsTracking) - - private def isAdhocTweetCandidate(candidate: PushCandidate): Boolean = { - candidate match { - case tweetCandidate: RawCandidate with TweetCandidate with TweetAuthor => - tweetCandidate.authorId.exists(id => getAdhocIds(candidate).contains(id)) - case _ => false - } - } - - def getCandidateSourceStats(hydratedCandidates: Seq[CandidateDetails[PushCandidate]]): Unit = { - hydratedCandidates.foreach { hydratedCandidate => - if (isAdhocTweetCandidate(hydratedCandidate.candidate)) { - stats.scope("candidate_source").counter(hydratedCandidate.source).incr() - } - } - } - - def getPreRankingFilterStats( - preRankingFilteredCandidates: Seq[CandidateResult[PushCandidate, Result]] - ): Unit = { - preRankingFilteredCandidates.foreach { filteredCandidate => - if (isAdhocTweetCandidate(filteredCandidate.candidate)) { - filteredCandidate.result match { - case Invalid(reason) => - stats.scope("preranking_filter").counter(reason.getOrElse("unknown_reason")).incr() - case _ => - } - } - } - } - - def getLightRankingStats(lightRankedCandidates: Seq[CandidateDetails[PushCandidate]]): Unit = { - lightRankedCandidates.foreach { lightRankedCandidate => - if (isAdhocTweetCandidate(lightRankedCandidate.candidate)) { - stats.scope("light_ranker").counter("passed_light_ranking").incr() - } - } - } - - def getRankingStats(rankedCandidates: Seq[CandidateDetails[PushCandidate]]): Unit = { - rankedCandidates.zipWithIndex.foreach { - case (rankedCandidate, index) => - val rankerStats = stats.scope("heavy_ranker") - if (isAdhocTweetCandidate(rankedCandidate.candidate)) { - rankerStats.counter("ranked_candidates").incr() - rankerStats.stat("rank").add(index.toFloat) - rankedCandidate.candidate.modelScores.map { modelScores => - modelScores.foreach { - case (modelName, score) => - // mutiply score by 1000 to not lose precision while converting to Float - val precisionScore = (score * 100000).toFloat - rankerStats.stat(modelName).add(precisionScore) - } - } - } - } - } - def getReRankingStats(rankedCandidates: Seq[CandidateDetails[PushCandidate]]): Unit = { - rankedCandidates.zipWithIndex.foreach { - case (rankedCandidate, index) => - val rankerStats = stats.scope("re_ranking") - if (isAdhocTweetCandidate(rankedCandidate.candidate)) { - rankerStats.counter("re_ranked_candidates").incr() - rankerStats.stat("re_rank").add(index.toFloat) - } - } - } - - def getTakeCandidateResultStats( - allTakeCandidateResults: Seq[CandidateResult[PushCandidate, Result]] - ): Unit = { - val takeStats = stats.scope("take_step") - allTakeCandidateResults.foreach { candidateResult => - if (isAdhocTweetCandidate(candidateResult.candidate)) { - candidateResult.result match { - case OK => - takeStats.counter("sent").incr() - case Invalid(reason) => - takeStats.counter(reason.getOrElse("unknown_reason")).incr() - case _ => - takeStats.counter("unknown_filter").incr() - } - } - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/Candidate2FrigateNotification.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/Candidate2FrigateNotification.docx new file mode 100644 index 0000000000000000000000000000000000000000..0ce6c8bb6cbe158e74a6a0a8351612f914b5993d GIT binary patch literal 37594 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γ-ks`faY=Psr+H?>%nzH_FBWBr0uP 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 literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/Candidate2FrigateNotification.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/Candidate2FrigateNotification.scala deleted file mode 100644 index 6fa0bc288..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/Candidate2FrigateNotification.scala +++ /dev/null @@ -1,119 +0,0 @@ -package com.twitter.frigate.pushservice.util - -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.base._ -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.frigate.thriftscala.FrigateNotification -import com.twitter.frigate.thriftscala.NotificationDisplayLocation - -object Candidate2FrigateNotification { - - def getFrigateNotification( - candidate: PushCandidate - )( - implicit statsReceiver: StatsReceiver - ): FrigateNotification = { - candidate match { - - case topicTweetCandidate: PushCandidate with BaseTopicTweetCandidate => - PushAdaptorUtil.getFrigateNotificationForTweet( - crt = topicTweetCandidate.commonRecType, - tweetId = topicTweetCandidate.tweetId, - scActions = Nil, - authorIdOpt = topicTweetCandidate.authorId, - pushCopyId = topicTweetCandidate.pushCopyId, - ntabCopyId = topicTweetCandidate.ntabCopyId, - simclusterId = None, - semanticCoreEntityIds = topicTweetCandidate.semanticCoreEntityId.map(List(_)), - candidateContent = topicTweetCandidate.content, - trendId = None - ) - - case trendTweetCandidate: PushCandidate with TrendTweetCandidate => - PushAdaptorUtil.getFrigateNotificationForTweet( - trendTweetCandidate.commonRecType, - trendTweetCandidate.tweetId, - Nil, - trendTweetCandidate.authorId, - trendTweetCandidate.pushCopyId, - trendTweetCandidate.ntabCopyId, - None, - None, - trendTweetCandidate.content, - Some(trendTweetCandidate.trendId) - ) - - case tripTweetCandidate: PushCandidate with OutOfNetworkTweetCandidate with TripCandidate => - PushAdaptorUtil.getFrigateNotificationForTweet( - crt = tripTweetCandidate.commonRecType, - tweetId = tripTweetCandidate.tweetId, - scActions = Nil, - authorIdOpt = tripTweetCandidate.authorId, - pushCopyId = tripTweetCandidate.pushCopyId, - ntabCopyId = tripTweetCandidate.ntabCopyId, - simclusterId = None, - semanticCoreEntityIds = None, - candidateContent = tripTweetCandidate.content, - trendId = None, - tweetTripDomain = tripTweetCandidate.tripDomain - ) - - case outOfNetworkTweetCandidate: PushCandidate with OutOfNetworkTweetCandidate => - PushAdaptorUtil.getFrigateNotificationForTweet( - crt = outOfNetworkTweetCandidate.commonRecType, - tweetId = outOfNetworkTweetCandidate.tweetId, - scActions = Nil, - authorIdOpt = outOfNetworkTweetCandidate.authorId, - pushCopyId = outOfNetworkTweetCandidate.pushCopyId, - ntabCopyId = outOfNetworkTweetCandidate.ntabCopyId, - simclusterId = None, - semanticCoreEntityIds = None, - candidateContent = outOfNetworkTweetCandidate.content, - trendId = None - ) - - case userCandidate: PushCandidate with UserCandidate with SocialContextActions => - PushAdaptorUtil.getFrigateNotificationForUser( - userCandidate.commonRecType, - userCandidate.userId, - userCandidate.socialContextActions, - userCandidate.pushCopyId, - userCandidate.ntabCopyId - ) - - case userCandidate: PushCandidate with UserCandidate => - PushAdaptorUtil.getFrigateNotificationForUser( - userCandidate.commonRecType, - userCandidate.userId, - Nil, - userCandidate.pushCopyId, - userCandidate.ntabCopyId - ) - - case tweetCandidate: PushCandidate with TweetCandidate with TweetDetails with SocialContextActions => - PushAdaptorUtil.getFrigateNotificationForTweetWithSocialContextActions( - tweetCandidate.commonRecType, - tweetCandidate.tweetId, - tweetCandidate.socialContextActions, - tweetCandidate.authorId, - tweetCandidate.pushCopyId, - tweetCandidate.ntabCopyId, - candidateContent = tweetCandidate.content, - semanticCoreEntityIds = None, - trendId = None - ) - case pushCandidate: PushCandidate => - FrigateNotification( - commonRecommendationType = pushCandidate.commonRecType, - notificationDisplayLocation = NotificationDisplayLocation.PushToMobileDevice, - pushCopyId = pushCandidate.pushCopyId, - ntabCopyId = pushCandidate.ntabCopyId - ) - - case _ => - statsReceiver - .scope(s"${candidate.commonRecType}").counter("frigate_notification_error").incr() - throw new IllegalStateException("Incorrect candidate type when create FrigateNotification") - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/CandidateHydrationUtil.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/CandidateHydrationUtil.docx new file mode 100644 index 0000000000000000000000000000000000000000..92c39b257a240886096849c267d18f94e45ffc6c GIT binary patch literal 39906 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 literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/CandidateHydrationUtil.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/CandidateHydrationUtil.scala deleted file mode 100644 index 8b737fe67..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/CandidateHydrationUtil.scala +++ /dev/null @@ -1,439 +0,0 @@ -package com.twitter.frigate.pushservice.util - -import com.twitter.channels.common.thriftscala.ApiList -import com.twitter.escherbird.common.thriftscala.Domains -import com.twitter.escherbird.metadata.thriftscala.EntityMegadata -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.base._ -import com.twitter.frigate.common.store.interests.InterestsLookupRequestWithContext -import com.twitter.frigate.magic_events.thriftscala.FanoutEvent -import com.twitter.frigate.magic_events.thriftscala.MagicEventsReason -import com.twitter.frigate.magic_events.thriftscala.TargetID -import com.twitter.frigate.pushservice.model.PushTypes.RawCandidate -import com.twitter.frigate.pushservice.model._ -import com.twitter.frigate.pushservice.model.FanoutReasonEntities -import com.twitter.frigate.pushservice.ml.PushMLModelScorer -import com.twitter.frigate.pushservice.model.candidate.CopyIds -import com.twitter.frigate.pushservice.store.EventRequest -import com.twitter.frigate.pushservice.store.UttEntityHydrationStore -import com.twitter.gizmoduck.thriftscala.User -import com.twitter.hermit.predicate.socialgraph.RelationEdge -import com.twitter.hermit.store.semantic_core.SemanticEntityForQuery -import com.twitter.interests.thriftscala.UserInterests -import com.twitter.livevideo.timeline.domain.v2.{Event => LiveEvent} -import com.twitter.simclusters_v2.thriftscala.SimClustersInferredEntities -import com.twitter.storehaus.FutureOps -import com.twitter.storehaus.ReadableStore -import com.twitter.strato.client.UserId -import com.twitter.ubs.thriftscala.AudioSpace -import com.twitter.util.Future - -object CandidateHydrationUtil { - - def getAuthorIdFromTweetCandidate(tweetCandidate: TweetCandidate): Option[Long] = { - tweetCandidate match { - case candidate: TweetCandidate with TweetAuthor => - candidate.authorId - case _ => None - } - } - - private def getCandidateAuthorFromUserMap( - tweetCandidate: TweetCandidate, - userMap: Map[Long, User] - ): Option[User] = { - getAuthorIdFromTweetCandidate(tweetCandidate) match { - case Some(id) => - userMap.get(id) - case _ => - None - } - } - - private def getRelationshipMapForInNetworkCandidate( - candidate: RawCandidate with TweetAuthor, - relationshipMap: Map[RelationEdge, Boolean] - ): Map[RelationEdge, Boolean] = { - val relationEdges = - RelationshipUtil.getPreCandidateRelationshipsForInNetworkTweets(candidate).toSet - relationEdges.map { relationEdge => - (relationEdge, relationshipMap(relationEdge)) - }.toMap - } - - private def getTweetCandidateSocialContextUsers( - candidate: RawCandidate with SocialContextActions, - userMap: Map[Long, User] - ): Map[Long, Option[User]] = { - candidate.socialContextUserIds.map { userId => userId -> userMap.get(userId) }.toMap - } - - type TweetWithSocialContextTraits = TweetCandidate with TweetDetails with SocialContextActions - - def getHydratedCandidateForTweetRetweet( - candidate: RawCandidate with TweetWithSocialContextTraits, - userMap: Map[Long, User], - copyIds: CopyIds - )( - implicit stats: StatsReceiver, - pushModelScorer: PushMLModelScorer - ): TweetRetweetPushCandidate = { - new TweetRetweetPushCandidate( - candidate = candidate, - socialContextUserMap = Future.value(getTweetCandidateSocialContextUsers(candidate, userMap)), - author = Future.value(getCandidateAuthorFromUserMap(candidate, userMap)), - copyIds: CopyIds - ) - } - - def getHydratedCandidateForTweetFavorite( - candidate: RawCandidate with TweetWithSocialContextTraits, - userMap: Map[Long, User], - copyIds: CopyIds - )( - implicit stats: StatsReceiver, - pushModelScorer: PushMLModelScorer - ): TweetFavoritePushCandidate = { - new TweetFavoritePushCandidate( - candidate = candidate, - socialContextUserMap = Future.value(getTweetCandidateSocialContextUsers(candidate, userMap)), - author = Future.value(getCandidateAuthorFromUserMap(candidate, userMap)), - copyIds = copyIds - ) - } - - def getHydratedCandidateForF1FirstDegreeTweet( - candidate: RawCandidate with F1FirstDegree, - userMap: Map[Long, User], - relationshipMap: Map[RelationEdge, Boolean], - copyIds: CopyIds - )( - implicit stats: StatsReceiver, - pushModelScorer: PushMLModelScorer - ): F1TweetPushCandidate = { - new F1TweetPushCandidate( - candidate = candidate, - author = Future.value(getCandidateAuthorFromUserMap(candidate, userMap)), - socialGraphServiceResultMap = - getRelationshipMapForInNetworkCandidate(candidate, relationshipMap), - copyIds = copyIds - ) - } - def getHydratedTopicProofTweetCandidate( - candidate: RawCandidate with TopicProofTweetCandidate, - userMap: Map[Long, User], - copyIds: CopyIds - )( - implicit stats: StatsReceiver, - pushMLModelScorer: PushMLModelScorer - ): TopicProofTweetPushCandidate = - new TopicProofTweetPushCandidate( - candidate, - getCandidateAuthorFromUserMap(candidate, userMap), - copyIds - ) - - def getHydratedSubscribedSearchTweetCandidate( - candidate: RawCandidate with SubscribedSearchTweetCandidate, - userMap: Map[Long, User], - copyIds: CopyIds - )( - implicit stats: StatsReceiver, - pushMLModelScorer: PushMLModelScorer - ): SubscribedSearchTweetPushCandidate = - new SubscribedSearchTweetPushCandidate( - candidate, - getCandidateAuthorFromUserMap(candidate, userMap), - copyIds) - - def getHydratedListCandidate( - apiListStore: ReadableStore[Long, ApiList], - candidate: RawCandidate with ListPushCandidate, - copyIds: CopyIds - )( - implicit stats: StatsReceiver, - pushMLModelScorer: PushMLModelScorer - ): ListRecommendationPushCandidate = { - new ListRecommendationPushCandidate(apiListStore, candidate, copyIds) - } - - def getHydratedCandidateForOutOfNetworkTweetCandidate( - candidate: RawCandidate with OutOfNetworkTweetCandidate with TopicCandidate, - userMap: Map[Long, User], - copyIds: CopyIds - )( - implicit stats: StatsReceiver, - pushModelScorer: PushMLModelScorer - ): OutOfNetworkTweetPushCandidate = { - new OutOfNetworkTweetPushCandidate( - candidate: RawCandidate with OutOfNetworkTweetCandidate with TopicCandidate, - author = Future.value(getCandidateAuthorFromUserMap(candidate, userMap)), - copyIds: CopyIds - ) - } - - def getHydratedCandidateForTripTweetCandidate( - candidate: RawCandidate with OutOfNetworkTweetCandidate with TripCandidate, - userMap: Map[Long, User], - copyIds: CopyIds - )( - implicit stats: StatsReceiver, - pushModelScorer: PushMLModelScorer - ): TripTweetPushCandidate = { - new TripTweetPushCandidate( - candidate: RawCandidate with OutOfNetworkTweetCandidate with TripCandidate, - author = Future.value(getCandidateAuthorFromUserMap(candidate, userMap)), - copyIds: CopyIds - ) - } - - def getHydratedCandidateForDiscoverTwitterCandidate( - candidate: RawCandidate with DiscoverTwitterCandidate, - copyIds: CopyIds - )( - implicit stats: StatsReceiver, - pushModelScorer: PushMLModelScorer - ): DiscoverTwitterPushCandidate = { - new DiscoverTwitterPushCandidate( - candidate = candidate, - copyIds = copyIds - ) - } - - /** - * /* - * This method can be reusable for hydrating event candidates - **/ - * @param candidate - * @param fanoutMetadataStore - * @param semanticCoreMegadataStore - * @return (hydratedEvent, hydratedFanoutEvent, hydratedSemanticEntityResults, hydratedSemanticCoreMegadata) - */ - private def hydrateMagicFanoutEventCandidate( - candidate: RawCandidate with MagicFanoutEventCandidate, - fanoutMetadataStore: ReadableStore[(Long, Long), FanoutEvent], - semanticCoreMegadataStore: ReadableStore[SemanticEntityForQuery, EntityMegadata] - ): Future[MagicFanoutEventHydratedInfo] = { - - val fanoutEventFut = fanoutMetadataStore.get((candidate.eventId, candidate.pushId)) - - val semanticEntityForQueries: Seq[SemanticEntityForQuery] = { - val semanticCoreEntityIdQueries = candidate.candidateMagicEventsReasons match { - case magicEventsReasons: Seq[MagicEventsReason] => - magicEventsReasons.map(_.reason).collect { - case TargetID.SemanticCoreID(scInterest) => - SemanticEntityForQuery(domainId = scInterest.domainId, entityId = scInterest.entityId) - } - case _ => Seq.empty - } - val eventEntityQuery = SemanticEntityForQuery( - domainId = Domains.EventsEntityService.value, - entityId = candidate.eventId) - semanticCoreEntityIdQueries :+ eventEntityQuery - } - - val semanticEntityResultsFut = FutureOps.mapCollect( - semanticCoreMegadataStore.multiGet(semanticEntityForQueries.toSet) - ) - - Future - .join(fanoutEventFut, semanticEntityResultsFut).map { - case (fanoutEvent, semanticEntityResults) => - MagicFanoutEventHydratedInfo( - fanoutEvent, - semanticEntityResults - ) - case _ => - throw new IllegalArgumentException( - "event candidate hydration errors" + candidate.frigateNotification.toString) - } - } - - def getHydratedCandidateForMagicFanoutNewsEvent( - candidate: RawCandidate with MagicFanoutNewsEventCandidate, - copyIds: CopyIds, - lexServiceStore: ReadableStore[EventRequest, LiveEvent], - fanoutMetadataStore: ReadableStore[(Long, Long), FanoutEvent], - semanticCoreMegadataStore: ReadableStore[SemanticEntityForQuery, EntityMegadata], - simClusterToEntityStore: ReadableStore[Int, SimClustersInferredEntities], - interestsLookupStore: ReadableStore[InterestsLookupRequestWithContext, UserInterests], - uttEntityHydrationStore: UttEntityHydrationStore - )( - implicit stats: StatsReceiver, - pushModelScorer: PushMLModelScorer - ): Future[MagicFanoutNewsEventPushCandidate] = { - val magicFanoutEventHydratedInfoFut = hydrateMagicFanoutEventCandidate( - candidate, - fanoutMetadataStore, - semanticCoreMegadataStore - ) - - lazy val simClusterToEntityMappingFut: Future[Map[Int, Option[SimClustersInferredEntities]]] = - Future.collect { - simClusterToEntityStore.multiGet( - FanoutReasonEntities - .from(candidate.candidateMagicEventsReasons.map(_.reason)).simclusterIds.map( - _.clusterId) - ) - } - - Future - .join( - magicFanoutEventHydratedInfoFut, - simClusterToEntityMappingFut - ).map { - case (magicFanoutEventHydratedInfo, simClusterToEntityMapping) => - new MagicFanoutNewsEventPushCandidate( - candidate = candidate, - copyIds = copyIds, - fanoutEvent = magicFanoutEventHydratedInfo.fanoutEvent, - semanticEntityResults = magicFanoutEventHydratedInfo.semanticEntityResults, - simClusterToEntities = simClusterToEntityMapping, - lexServiceStore = lexServiceStore, - interestsLookupStore = interestsLookupStore, - uttEntityHydrationStore = uttEntityHydrationStore - ) - } - } - - def getHydratedCandidateForMagicFanoutSportsEvent( - candidate: RawCandidate - with MagicFanoutSportsEventCandidate - with MagicFanoutSportsScoreInformation, - copyIds: CopyIds, - lexServiceStore: ReadableStore[EventRequest, LiveEvent], - fanoutMetadataStore: ReadableStore[(Long, Long), FanoutEvent], - semanticCoreMegadataStore: ReadableStore[SemanticEntityForQuery, EntityMegadata], - interestsLookupStore: ReadableStore[InterestsLookupRequestWithContext, UserInterests], - uttEntityHydrationStore: UttEntityHydrationStore - )( - implicit stats: StatsReceiver, - pushModelScorer: PushMLModelScorer - ): Future[MagicFanoutSportsPushCandidate] = { - val magicFanoutEventHydratedInfoFut = hydrateMagicFanoutEventCandidate( - candidate, - fanoutMetadataStore, - semanticCoreMegadataStore - ) - - magicFanoutEventHydratedInfoFut.map { magicFanoutEventHydratedInfo => - new MagicFanoutSportsPushCandidate( - candidate = candidate, - copyIds = copyIds, - fanoutEvent = magicFanoutEventHydratedInfo.fanoutEvent, - semanticEntityResults = magicFanoutEventHydratedInfo.semanticEntityResults, - simClusterToEntities = Map.empty, - lexServiceStore = lexServiceStore, - interestsLookupStore = interestsLookupStore, - uttEntityHydrationStore = uttEntityHydrationStore - ) - } - } - - def getHydratedCandidateForMagicFanoutProductLaunch( - candidate: RawCandidate with MagicFanoutProductLaunchCandidate, - copyIds: CopyIds - )( - implicit stats: StatsReceiver, - pushModelScorer: PushMLModelScorer - ): Future[MagicFanoutProductLaunchPushCandidate] = - Future.value(new MagicFanoutProductLaunchPushCandidate(candidate, copyIds)) - - def getHydratedCandidateForMagicFanoutCreatorEvent( - candidate: RawCandidate with MagicFanoutCreatorEventCandidate, - safeUserStore: ReadableStore[Long, User], - copyIds: CopyIds, - creatorTweetCountStore: ReadableStore[UserId, Int] - )( - implicit stats: StatsReceiver, - pushModelScorer: PushMLModelScorer - ): Future[MagicFanoutCreatorEventPushCandidate] = { - safeUserStore.get(candidate.creatorId).map { hydratedCreatorUser => - new MagicFanoutCreatorEventPushCandidate( - candidate, - hydratedCreatorUser, - copyIds, - creatorTweetCountStore) - } - } - - def getHydratedCandidateForScheduledSpaceSubscriber( - candidate: RawCandidate with ScheduledSpaceSubscriberCandidate, - safeUserStore: ReadableStore[Long, User], - copyIds: CopyIds, - audioSpaceStore: ReadableStore[String, AudioSpace] - )( - implicit stats: StatsReceiver, - pushModelScorer: PushMLModelScorer - ): Future[ScheduledSpaceSubscriberPushCandidate] = { - - candidate.hostId match { - case Some(spaceHostId) => - safeUserStore.get(spaceHostId).map { hydratedHost => - new ScheduledSpaceSubscriberPushCandidate( - candidate = candidate, - hostUser = hydratedHost, - copyIds = copyIds, - audioSpaceStore = audioSpaceStore - ) - } - case _ => - Future.exception( - new IllegalStateException( - "Missing Space Host Id for hydrating ScheduledSpaceSubscriberCandidate")) - } - } - - def getHydratedCandidateForScheduledSpaceSpeaker( - candidate: RawCandidate with ScheduledSpaceSpeakerCandidate, - safeUserStore: ReadableStore[Long, User], - copyIds: CopyIds, - audioSpaceStore: ReadableStore[String, AudioSpace] - )( - implicit stats: StatsReceiver, - pushModelScorer: PushMLModelScorer - ): Future[ScheduledSpaceSpeakerPushCandidate] = { - - candidate.hostId match { - case Some(spaceHostId) => - safeUserStore.get(spaceHostId).map { hydratedHost => - new ScheduledSpaceSpeakerPushCandidate( - candidate = candidate, - hostUser = hydratedHost, - copyIds = copyIds, - audioSpaceStore = audioSpaceStore - ) - } - case _ => - Future.exception( - new RuntimeException( - "Missing Space Host Id for hydrating ScheduledSpaceSpeakerCandidate")) - } - } - - def getHydratedCandidateForTopTweetImpressionsCandidate( - candidate: RawCandidate with TopTweetImpressionsCandidate, - copyIds: CopyIds - )( - implicit stats: StatsReceiver, - pushModelScorer: PushMLModelScorer - ): TopTweetImpressionsPushCandidate = { - new TopTweetImpressionsPushCandidate( - candidate = candidate, - copyIds = copyIds - ) - } - - def isNsfwAccount(user: User, nsfwTokens: Seq[String]): Boolean = { - def hasNsfwToken(str: String): Boolean = nsfwTokens.exists(str.toLowerCase().contains(_)) - - val name = user.profile.map(_.name).getOrElse("") - val screenName = user.profile.map(_.screenName).getOrElse("") - val location = user.profile.map(_.location).getOrElse("") - val description = user.profile.map(_.description).getOrElse("") - val hasNsfwFlag = - user.safety.map(safety => safety.nsfwUser || safety.nsfwAdmin).getOrElse(false) - hasNsfwToken(name) || hasNsfwToken(screenName) || hasNsfwToken(location) || hasNsfwToken( - description) || hasNsfwFlag - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/CandidateUtil.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/CandidateUtil.docx new file mode 100644 index 0000000000000000000000000000000000000000..72f709d0abd91c7e688772017108269148f31233 GIT binary patch literal 38310 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 literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/CandidateUtil.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/CandidateUtil.scala deleted file mode 100644 index a4802da45..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/CandidateUtil.scala +++ /dev/null @@ -1,138 +0,0 @@ -package com.twitter.frigate.pushservice.util - -import com.twitter.contentrecommender.thriftscala.MetricTag -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.base.OutOfNetworkTweetCandidate -import com.twitter.frigate.common.base.SocialContextAction -import com.twitter.frigate.common.base.SocialContextActions -import com.twitter.frigate.common.base.TargetInfo -import com.twitter.frigate.common.base.TargetUser -import com.twitter.frigate.common.base.TopicProofTweetCandidate -import com.twitter.frigate.common.base.TweetAuthorDetails -import com.twitter.frigate.common.candidate.TargetABDecider -import com.twitter.frigate.common.rec_types.RecTypes -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.frigate.pushservice.model.PushTypes.RawCandidate -import com.twitter.frigate.pushservice.params.CrtGroupEnum -import com.twitter.frigate.pushservice.params.PushFeatureSwitchParams -import com.twitter.frigate.thriftscala.CommonRecommendationType -import com.twitter.frigate.thriftscala.CommonRecommendationType.TripGeoTweet -import com.twitter.frigate.thriftscala.CommonRecommendationType.TripHqTweet -import com.twitter.frigate.thriftscala.{SocialContextAction => TSocialContextAction} -import com.twitter.util.Future - -object CandidateUtil { - private val mrTwistlyMetricTags = - Seq(MetricTag.PushOpenOrNtabClick, MetricTag.RequestHealthFilterPushOpenBasedTweetEmbedding) - - def getSocialContextActionsFromCandidate(candidate: RawCandidate): Seq[TSocialContextAction] = { - candidate match { - case candidateWithSocialContex: RawCandidate with SocialContextActions => - candidateWithSocialContex.socialContextActions.map { scAction => - TSocialContextAction( - scAction.userId, - scAction.timestampInMillis, - scAction.tweetId - ) - } - case _ => Seq.empty - } - } - - /** - * Ranking Social Context based on the Real Graph weight - * @param socialContextActions Sequence of Social Context Actions - * @param seedsWithWeight Real Graph map consisting of User ID as key and RG weight as the value - * @param defaultToRecency Boolean to represent if we should use the timestamp of the SC to rank - * @return Returns the ranked sequence of SC Actions - */ - def getRankedSocialContext( - socialContextActions: Seq[SocialContextAction], - seedsWithWeight: Future[Option[Map[Long, Double]]], - defaultToRecency: Boolean - ): Future[Seq[SocialContextAction]] = { - seedsWithWeight.map { - case Some(followingsMap) => - socialContextActions.sortBy { action => -followingsMap.getOrElse(action.userId, 0.0) } - case _ => - if (defaultToRecency) socialContextActions.sortBy(-_.timestampInMillis) - else socialContextActions - } - } - - def shouldApplyHealthQualityFiltersForPrerankingPredicates( - candidate: TweetAuthorDetails with TargetInfo[TargetUser with TargetABDecider] - )( - implicit stats: StatsReceiver - ): Future[Boolean] = { - candidate.tweetAuthor.map { - case Some(user) => - val numFollowers: Double = user.counts.map(_.followers.toDouble).getOrElse(0.0) - numFollowers < candidate.target - .params(PushFeatureSwitchParams.NumFollowerThresholdForHealthAndQualityFiltersPreranking) - case _ => true - } - } - - def shouldApplyHealthQualityFilters( - candidate: PushCandidate - )( - implicit stats: StatsReceiver - ): Boolean = { - val numFollowers = - candidate.numericFeatures.getOrElse("RecTweetAuthor.User.ActiveFollowers", 0.0) - numFollowers < candidate.target - .params(PushFeatureSwitchParams.NumFollowerThresholdForHealthAndQualityFilters) - } - - def useAggressiveHealthThresholds(cand: PushCandidate): Boolean = - isMrTwistlyCandidate(cand) || - (cand.commonRecType == CommonRecommendationType.GeoPopTweet && cand.target.params( - PushFeatureSwitchParams.PopGeoTweetEnableAggressiveThresholds)) - - def isMrTwistlyCandidate(cand: PushCandidate): Boolean = - cand match { - case oonCandidate: PushCandidate with OutOfNetworkTweetCandidate => - oonCandidate.tagsCR - .getOrElse(Seq.empty).intersect(mrTwistlyMetricTags).nonEmpty && oonCandidate.tagsCR - .map(_.toSet.size).getOrElse(0) == 1 - case oonCandidate: PushCandidate with TopicProofTweetCandidate - if cand.target.params(PushFeatureSwitchParams.EnableHealthFiltersForTopicProofTweet) => - oonCandidate.tagsCR - .getOrElse(Seq.empty).intersect(mrTwistlyMetricTags).nonEmpty && oonCandidate.tagsCR - .map(_.toSet.size).getOrElse(0) == 1 - case _ => false - } - - def getTagsCRCount(cand: PushCandidate): Double = - cand match { - case oonCandidate: PushCandidate with OutOfNetworkTweetCandidate => - oonCandidate.tagsCR.map(_.toSet.size).getOrElse(0).toDouble - case oonCandidate: PushCandidate with TopicProofTweetCandidate - if cand.target.params(PushFeatureSwitchParams.EnableHealthFiltersForTopicProofTweet) => - oonCandidate.tagsCR.map(_.toSet.size).getOrElse(0).toDouble - case _ => 0.0 - } - - def isRelatedToMrTwistlyCandidate(cand: PushCandidate): Boolean = - cand match { - case oonCandidate: PushCandidate with OutOfNetworkTweetCandidate => - oonCandidate.tagsCR.getOrElse(Seq.empty).intersect(mrTwistlyMetricTags).nonEmpty - case oonCandidate: PushCandidate with TopicProofTweetCandidate - if cand.target.params(PushFeatureSwitchParams.EnableHealthFiltersForTopicProofTweet) => - oonCandidate.tagsCR.getOrElse(Seq.empty).intersect(mrTwistlyMetricTags).nonEmpty - case _ => false - } - - def getCrtGroup(commonRecType: CommonRecommendationType): CrtGroupEnum.Value = { - commonRecType match { - case crt if RecTypes.twistlyTweets(crt) => CrtGroupEnum.Twistly - case crt if RecTypes.frsTypes(crt) => CrtGroupEnum.Frs - case crt if RecTypes.f1RecTypes(crt) => CrtGroupEnum.F1 - case crt if crt == TripGeoTweet || crt == TripHqTweet => CrtGroupEnum.Trip - case crt if RecTypes.TopicTweetTypes(crt) => CrtGroupEnum.Topic - case crt if RecTypes.isGeoPopTweetType(crt) => CrtGroupEnum.GeoPop - case _ => CrtGroupEnum.Other - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/CopyUtil.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/CopyUtil.docx new file mode 100644 index 0000000000000000000000000000000000000000..a161d65f462a6602b8fc4407506c1bb51f3bc0f7 GIT binary patch literal 40248 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 FS} -import com.twitter.ibis2.lib.util.JsonMarshal -import com.twitter.util.Future -import com.twitter.util.Time - -object CopyUtil { - - /** - * Get a list of history feature copy alone with metadata in the look back period, the metadata - * can be used to calculate number of copy pushed after the current feature copy - * @param candidate the candidate to be pushed to the user - * @return Future[Seq((..,))], which is a seq of the history FEATURE copy along with - * metadata within the look back period. In the tuple, the 4 elements represents: - * 1. Timestamp of the past feature copy - * 2. Option[Seq()] of copy feature names of the past copy - * 3. Index of the particular feature copy in look back history if normal copy presents - */ - private def getPastCopyFeaturesList( - candidate: PushCandidate - ): Future[Seq[(Time, Option[Seq[String]], Int)]] = { - val target = candidate.target - - target.history.map { targetHistory => - val historyLookbackDuration = target.params(FS.CopyFeaturesHistoryLookbackDuration) - val notificationHistoryInLookbackDuration = targetHistory.sortedHistory - .takeWhile { - case (notifTimestamp, _) => historyLookbackDuration.ago < notifTimestamp - } - notificationHistoryInLookbackDuration.zipWithIndex - .filter { - case ((_, notification), _) => - notification.copyFeatures match { - case Some(copyFeatures) => copyFeatures.nonEmpty - case _ => false - } - } - .collect { - case ((timestamp, notification), notificationIndex) => - (timestamp, notification.copyFeatures, notificationIndex) - } - } - } - - private def getPastCopyFeaturesListForF1( - candidate: PushCandidate - ): Future[Seq[(Time, Option[Seq[String]], Int)]] = { - val target = candidate.target - target.history.map { targetHistory => - val historyLookbackDuration = target.params(FS.CopyFeaturesHistoryLookbackDuration) - val notificationHistoryInLookbackDuration = targetHistory.sortedHistory - .takeWhile { - case (notifTimestamp, _) => historyLookbackDuration.ago < notifTimestamp - } - notificationHistoryInLookbackDuration.zipWithIndex - .filter { - case ((_, notification), _) => - notification.copyFeatures match { - case Some(copyFeatures) => - RecTypes.isF1Type(notification.commonRecommendationType) && copyFeatures.nonEmpty - case _ => false - } - } - .collect { - case ((timestamp, notification), notificationIndex) => - (timestamp, notification.copyFeatures, notificationIndex) - } - } - } - - private def getPastCopyFeaturesListForOON( - candidate: PushCandidate - ): Future[Seq[(Time, Option[Seq[String]], Int)]] = { - val target = candidate.target - target.history.map { targetHistory => - val historyLookbackDuration = target.params(FS.CopyFeaturesHistoryLookbackDuration) - val notificationHistoryInLookbackDuration = targetHistory.sortedHistory - .takeWhile { - case (notifTimestamp, _) => historyLookbackDuration.ago < notifTimestamp - } - notificationHistoryInLookbackDuration.zipWithIndex - .filter { - case ((_, notification), _) => - notification.copyFeatures match { - case Some(copyFeatures) => - !RecTypes.isF1Type(notification.commonRecommendationType) && copyFeatures.nonEmpty - - case _ => false - } - } - .collect { - case ((timestamp, notification), notificationIndex) => - (timestamp, notification.copyFeatures, notificationIndex) - } - } - } - private def getEmojiFeaturesMap( - candidate: PushCandidate, - copyFeatureHistory: Seq[(Time, Option[Seq[String]], Int)], - lastHTLVisitTimestamp: Option[Long], - stats: StatsReceiver - ): Map[String, String] = { - val (emojiFatigueDuration, emojiFatigueNumOfPushes) = { - if (RecTypes.isF1Type(candidate.commonRecType)) { - ( - candidate.target.params(FS.F1EmojiCopyFatigueDuration), - candidate.target.params(FS.F1EmojiCopyNumOfPushesFatigue)) - } else { - ( - candidate.target.params(FS.OonEmojiCopyFatigueDuration), - candidate.target.params(FS.OonEmojiCopyNumOfPushesFatigue)) - } - } - - val scopedStats = stats - .scope("getEmojiFeaturesMap").scope(candidate.commonRecType.toString).scope( - emojiFatigueDuration.toString) - val addedEmojiCopyFeature = scopedStats.counter("added_emoji") - val fatiguedEmojiCopyFeature = scopedStats.counter("no_emoji") - - val copyFeatureType = PushConstants.EmojiFeatureNameForIbis2ModelValues - - val durationFatigueCarryFunc = () => - isUnderDurationFatigue(copyFeatureHistory, copyFeatureType, emojiFatigueDuration) - - val enableHTLBasedFatigueBasicRule = candidate.target.params(FS.EnableHTLBasedFatigueBasicRule) - val minDuration = candidate.target.params(FS.MinFatigueDurationSinceLastHTLVisit) - val lastHTLVisitBasedNonFatigueWindow = - candidate.target.params(FS.LastHTLVisitBasedNonFatigueWindow) - val htlBasedCopyFatigueCarryFunc = () => - isUnderHTLBasedFatigue(lastHTLVisitTimestamp, minDuration, lastHTLVisitBasedNonFatigueWindow) - - val isUnderFatigue = getIsUnderFatigue( - Seq( - (durationFatigueCarryFunc, true), - (htlBasedCopyFatigueCarryFunc, enableHTLBasedFatigueBasicRule), - ), - scopedStats - ) - - if (!isUnderFatigue) { - addedEmojiCopyFeature.incr() - Map(PushConstants.EmojiFeatureNameForIbis2ModelValues -> "true") - } else { - fatiguedEmojiCopyFeature.incr() - Map.empty[String, String] - } - } - - private def getTargetFeaturesMap( - candidate: PushCandidate, - copyFeatureHistory: Seq[(Time, Option[Seq[String]], Int)], - lastHTLVisitTimestamp: Option[Long], - stats: StatsReceiver - ): Map[String, String] = { - val targetFatigueDuration = { - if (RecTypes.isF1Type(candidate.commonRecType)) { - candidate.target.params(FS.F1TargetCopyFatigueDuration) - } else { - candidate.target.params(FS.OonTargetCopyFatigueDuration) - } - } - - val scopedStats = stats - .scope("getTargetFeaturesMap").scope(candidate.commonRecType.toString).scope( - targetFatigueDuration.toString) - val addedTargetCopyFeature = scopedStats.counter("added_target") - val fatiguedTargetCopyFeature = scopedStats.counter("no_target") - - val featureCopyType = PushConstants.TargetFeatureNameForIbis2ModelValues - val durationFatigueCarryFunc = () => - isUnderDurationFatigue(copyFeatureHistory, featureCopyType, targetFatigueDuration) - - val enableHTLBasedFatigueBasicRule = candidate.target.params(FS.EnableHTLBasedFatigueBasicRule) - val minDuration = candidate.target.params(FS.MinFatigueDurationSinceLastHTLVisit) - val lastHTLVisitBasedNonFatigueWindow = - candidate.target.params(FS.LastHTLVisitBasedNonFatigueWindow) - val htlBasedCopyFatigueCarryFunc = () => - isUnderHTLBasedFatigue(lastHTLVisitTimestamp, minDuration, lastHTLVisitBasedNonFatigueWindow) - - val isUnderFatigue = getIsUnderFatigue( - Seq( - (durationFatigueCarryFunc, true), - (htlBasedCopyFatigueCarryFunc, enableHTLBasedFatigueBasicRule), - ), - scopedStats - ) - - if (!isUnderFatigue) { - addedTargetCopyFeature.incr() - Map(PushConstants.TargetFeatureNameForIbis2ModelValues -> "true") - } else { - - fatiguedTargetCopyFeature.incr() - Map.empty[String, String] - } - } - - type FatigueRuleFlag = Boolean - type FatigueRuleFunc = () => Boolean - - def getIsUnderFatigue( - fatigueRulesWithFlags: Seq[(FatigueRuleFunc, FatigueRuleFlag)], - statsReceiver: StatsReceiver, - ): Boolean = { - val defaultFatigue = true - val finalFatigueRes = - fatigueRulesWithFlags.zipWithIndex.foldLeft(defaultFatigue)( - (fatigueSoFar, fatigueRuleFuncWithFlagAndIndex) => { - val ((fatigueRuleFunc, flag), index) = fatigueRuleFuncWithFlagAndIndex - val funcScopedStats = statsReceiver.scope(s"fatigueFunction${index}") - if (flag) { - val shouldFatigueForTheRule = fatigueRuleFunc() - funcScopedStats.scope(s"eval_${shouldFatigueForTheRule}").counter().incr() - val f = fatigueSoFar && shouldFatigueForTheRule - f - } else { - fatigueSoFar - } - }) - statsReceiver.scope(s"final_fatigue_${finalFatigueRes}").counter().incr() - finalFatigueRes - } - - private def isUnderDurationFatigue( - copyFeatureHistory: Seq[(Time, Option[Seq[String]], Int)], - copyFeatureType: String, - fatigueDuration: com.twitter.util.Duration, - ): Boolean = { - copyFeatureHistory.exists { - case (notifTimestamp, Some(copyFeatures), _) if copyFeatures.contains(copyFeatureType) => - notifTimestamp > fatigueDuration.ago - case _ => false - } - } - - private def isUnderHTLBasedFatigue( - lastHTLVisitTimestamp: Option[Long], - minDurationSinceLastHTLVisit: com.twitter.util.Duration, - lastHTLVisitBasedNonFatigueWindow: com.twitter.util.Duration, - ): Boolean = { - val lastHTLVisit = lastHTLVisitTimestamp.map(t => Time.fromMilliseconds(t)).getOrElse(Time.now) - val first = Time.now < (lastHTLVisit + minDurationSinceLastHTLVisit) - val second = - Time.now > (lastHTLVisit + minDurationSinceLastHTLVisit + lastHTLVisitBasedNonFatigueWindow) - first || second - } - - def getOONCBasedFeature( - candidate: PushCandidate, - stats: StatsReceiver - ): Future[Map[String, String]] = { - val target = candidate.target - val metric = stats.scope("getOONCBasedFeature") - if (target.params(FS.EnableOONCBasedCopy)) { - candidate.mrWeightedOpenOrNtabClickRankingProbability.map { - case Some(score) if score >= target.params(FS.HighOONCThresholdForCopy) => - metric.counter("high_OONC").incr() - metric.counter(FS.HighOONCTweetFormat.toString).incr() - Map( - "whole_template" -> JsonMarshal.toJson( - Map( - target.params(FS.HighOONCTweetFormat).toString -> true - ))) - case Some(score) if score <= target.params(FS.LowOONCThresholdForCopy) => - metric.counter("low_OONC").incr() - metric.counter(FS.LowOONCThresholdForCopy.toString).incr() - Map( - "whole_template" -> JsonMarshal.toJson( - Map( - target.params(FS.LowOONCTweetFormat).toString -> true - ))) - case _ => - metric.counter("not_in_OONC_range").incr() - Map.empty[String, String] - } - } else { - Future.value(Map.empty[String, String]) - } - } - - def getCopyFeatures( - candidate: PushCandidate, - stats: StatsReceiver, - ): Future[Map[String, String]] = { - if (candidate.target.isLoggedOutUser) { - Future.value(Map.empty[String, String]) - } else { - val featureMaps = getCopyBodyFeatures(candidate, stats) - for { - titleFeat <- getCopyTitleFeatures(candidate, stats) - nsfwFeat <- getNsfwCopyFeatures(candidate, stats) - ooncBasedFeature <- getOONCBasedFeature(candidate, stats) - } yield { - titleFeat ++ featureMaps ++ nsfwFeat ++ ooncBasedFeature - } - } - } - - private def getCopyTitleFeatures( - candidate: PushCandidate, - stats: StatsReceiver - ): Future[Map[String, String]] = { - val scopedStats = stats.scope("CopyUtil").scope("getCopyTitleFeatures") - - val target = candidate.target - - if ((RecTypes.isSimClusterBasedType(candidate.commonRecType) && target.params( - FS.EnableCopyFeaturesForOon)) || (RecTypes.isF1Type(candidate.commonRecType) && target - .params(FS.EnableCopyFeaturesForF1))) { - - val enableTargetAndEmojiSplitFatigue = target.params(FS.EnableTargetAndEmojiSplitFatigue) - val isTargetF1Type = RecTypes.isF1Type(candidate.commonRecType) - - val copyFeatureHistoryFuture = if (enableTargetAndEmojiSplitFatigue && isTargetF1Type) { - getPastCopyFeaturesListForF1(candidate) - } else if (enableTargetAndEmojiSplitFatigue && !isTargetF1Type) { - getPastCopyFeaturesListForOON(candidate) - } else { - getPastCopyFeaturesList(candidate) - } - - Future - .join( - copyFeatureHistoryFuture, - target.lastHTLVisitTimestamp, - ).map { - case (copyFeatureHistory, lastHTLVisitTimestamp) => - val emojiFeatures = { - if ((RecTypes.isF1Type(candidate.commonRecType) && target.params( - FS.EnableEmojiInF1Copy)) - || RecTypes.isSimClusterBasedType(candidate.commonRecType) && target.params( - FS.EnableEmojiInOonCopy)) { - getEmojiFeaturesMap( - candidate, - copyFeatureHistory, - lastHTLVisitTimestamp, - scopedStats) - } else Map.empty[String, String] - } - - val targetFeatures = { - if ((RecTypes.isF1Type(candidate.commonRecType) && target.params( - FS.EnableTargetInF1Copy)) || (RecTypes.isSimClusterBasedType( - candidate.commonRecType) && target.params(FS.EnableTargetInOonCopy))) { - getTargetFeaturesMap( - candidate, - copyFeatureHistory, - lastHTLVisitTimestamp, - scopedStats) - } else Map.empty[String, String] - } - - val baseCopyFeaturesMap = - if (emojiFeatures.nonEmpty || targetFeatures.nonEmpty) - Map(PushConstants.EnableCopyFeaturesForIbis2ModelValues -> "true") - else Map.empty[String, String] - baseCopyFeaturesMap ++ emojiFeatures ++ targetFeatures - case _ => - Map.empty[String, String] - } - } else Future.value(Map.empty[String, String]) - } - - private def getCopyBodyTruncateFeatures( - candidate: PushCandidate, - ): Map[String, String] = { - if (candidate.target.params(FS.EnableIosCopyBodyTruncate)) { - Map("enable_body_truncate_ios" -> "true") - } else { - Map.empty[String, String] - } - } - - private def getNsfwCopyFeatures( - candidate: PushCandidate, - stats: StatsReceiver - ): Future[Map[String, String]] = { - val scopedStats = stats.scope("CopyUtil").scope("getNsfwCopyBodyFeatures") - val hasNsfwScoreF1Counter = scopedStats.counter("f1_has_nsfw_score") - val hasNsfwScoreOonCounter = scopedStats.counter("oon_has_nsfw_score") - val noNsfwScoreCounter = scopedStats.counter("no_nsfw_score") - val nsfwScoreF1 = scopedStats.stat("f1_nsfw_score") - val nsfwScoreOon = scopedStats.stat("oon_nsfw_score") - val isNsfwF1Counter = scopedStats.counter("is_f1_nsfw") - val isNsfwOonCounter = scopedStats.counter("is_oon_nsfw") - - val target = candidate.target - val nsfwScoreFut = if (target.params(FS.EnableNsfwCopy)) { - candidate.mrNsfwScore - } else Future.None - - nsfwScoreFut.map { - case Some(nsfwScore) => - if (RecTypes.isF1Type(candidate.commonRecType)) { - hasNsfwScoreF1Counter.incr() - nsfwScoreF1.add(nsfwScore.toFloat * 10000) - if (nsfwScore > target.params(FS.NsfwScoreThresholdForF1Copy)) { - isNsfwF1Counter.incr() - Map("is_f1_nsfw" -> "true") - } else { - Map.empty[String, String] - } - } else if (RecTypes.isOutOfNetworkTweetRecType(candidate.commonRecType)) { - nsfwScoreOon.add(nsfwScore.toFloat * 10000) - hasNsfwScoreOonCounter.incr() - if (nsfwScore > target.params(FS.NsfwScoreThresholdForOONCopy)) { - isNsfwOonCounter.incr() - Map("is_oon_nsfw" -> "true") - } else { - Map.empty[String, String] - } - } else { - Map.empty[String, String] - } - case _ => - noNsfwScoreCounter.incr() - Map.empty[String, String] - } - } - - private def getCopyBodyFeatures( - candidate: PushCandidate, - stats: StatsReceiver - ): Map[String, String] = { - val target = candidate.target - val scopedStats = stats.scope("CopyUtil").scope("getCopyBodyFeatures") - - val copyBodyFeatures = { - if (RecTypes.isF1Type(candidate.commonRecType) && target.params(FS.EnableF1CopyBody)) { - scopedStats.counter("f1BodyExpEnabled").incr() - Map(PushConstants.CopyBodyExpIbisModelValues -> "true") - } else if (RecTypes.isOutOfNetworkTweetRecType(candidate.commonRecType) && target.params( - FS.EnableOONCopyBody)) { - scopedStats.counter("oonBodyExpEnabled").incr() - Map(PushConstants.CopyBodyExpIbisModelValues -> "true") - } else - Map.empty[String, String] - } - val copyBodyTruncateFeatures = getCopyBodyTruncateFeatures(candidate) - copyBodyFeatures ++ copyBodyTruncateFeatures - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/EmailLandingPageExperimentUtil.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/EmailLandingPageExperimentUtil.docx new file mode 100644 index 0000000000000000000000000000000000000000..62e73e95560beac0617986e8b37f2f6d89c1d74b GIT binary patch literal 37727 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 literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/EmailLandingPageExperimentUtil.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/EmailLandingPageExperimentUtil.scala deleted file mode 100644 index 34d5b9bae..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/EmailLandingPageExperimentUtil.scala +++ /dev/null @@ -1,92 +0,0 @@ -package com.twitter.frigate.pushservice.util - -import com.twitter.frigate.common.store.deviceinfo.DeviceInfo -import com.twitter.frigate.pushservice.model.PushTypes.Target -import com.twitter.frigate.pushservice.params.PushFeatureSwitchParams.EnableRuxLandingPage -import com.twitter.frigate.pushservice.params.PushParams.EnableRuxLandingPageAndroidParam -import com.twitter.frigate.pushservice.params.PushParams.EnableRuxLandingPageIOSParam -import com.twitter.frigate.pushservice.params.PushParams.RuxLandingPageExperimentKeyAndroidParam -import com.twitter.frigate.pushservice.params.PushParams.RuxLandingPageExperimentKeyIOSParam -import com.twitter.frigate.pushservice.params.PushParams.ShowRuxLandingPageAsModalOnIOS -import com.twitter.rux.common.context.thriftscala.MagicRecsNTabTweet -import com.twitter.rux.common.context.thriftscala.MagicRecsPushTweet -import com.twitter.rux.common.context.thriftscala.RuxContext -import com.twitter.rux.common.context.thriftscala.Source -import com.twitter.rux.common.encode.RuxContextEncoder - -/** - * This class provides utility functions for email landing page for push - */ -object EmailLandingPageExperimentUtil { - val ruxCxtEncoder = new RuxContextEncoder() - - def getIbis2ModelValue( - deviceInfoOpt: Option[DeviceInfo], - target: Target, - tweetId: Long - ): Map[String, String] = { - val enable = enablePushEmailLanding(deviceInfoOpt, target) - if (enable) { - val ruxCxt = if (deviceInfoOpt.exists(_.isRuxLandingPageEligible)) { - val encodedCxt = getRuxContext(tweetId, target, deviceInfoOpt) - Map("rux_cxt" -> encodedCxt) - } else Map.empty[String, String] - val enableModal = if (showModalForIOS(deviceInfoOpt, target)) { - Map("enable_modal" -> "true") - } else Map.empty[String, String] - - Map("land_on_email_landing_page" -> "true") ++ ruxCxt ++ enableModal - } else Map.empty[String, String] - } - - def createNTabRuxLandingURI(screenName: String, tweetId: Long): String = { - val encodedCxt = - ruxCxtEncoder.encode(RuxContext(Some(Source.MagicRecsNTabTweet(MagicRecsNTabTweet(tweetId))))) - s"$screenName/status/${tweetId.toString}?cxt=$encodedCxt" - } - - private def getRuxContext( - tweetId: Long, - target: Target, - deviceInfoOpt: Option[DeviceInfo] - ): String = { - val isDeviceIOS = PushDeviceUtil.isPrimaryDeviceIOS(deviceInfoOpt) - val isDeviceAndroid = PushDeviceUtil.isPrimaryDeviceAndroid(deviceInfoOpt) - val keyOpt = if (isDeviceIOS) { - target.params(RuxLandingPageExperimentKeyIOSParam) - } else if (isDeviceAndroid) { - target.params(RuxLandingPageExperimentKeyAndroidParam) - } else None - val context = RuxContext(Some(Source.MagicRecsTweet(MagicRecsPushTweet(tweetId))), None, keyOpt) - ruxCxtEncoder.encode(context) - } - - private def enablePushEmailLanding( - deviceInfoOpt: Option[DeviceInfo], - target: Target - ): Boolean = - deviceInfoOpt.exists(deviceInfo => - if (deviceInfo.isEmailLandingPageEligible) { - val isRuxLandingPageEnabled = target.params(EnableRuxLandingPage) - isRuxLandingPageEnabled && isRuxLandingEnabledBasedOnDeviceInfo(deviceInfoOpt, target) - } else false) - - private def showModalForIOS(deviceInfoOpt: Option[DeviceInfo], target: Target): Boolean = { - deviceInfoOpt.exists { deviceInfo => - deviceInfo.isRuxLandingPageAsModalEligible && target.params(ShowRuxLandingPageAsModalOnIOS) - } - } - - private def isRuxLandingEnabledBasedOnDeviceInfo( - deviceInfoOpt: Option[DeviceInfo], - target: Target - ): Boolean = { - val isDeviceIOS = PushDeviceUtil.isPrimaryDeviceIOS(deviceInfoOpt) - val isDeviceAndroid = PushDeviceUtil.isPrimaryDeviceAndroid(deviceInfoOpt) - if (isDeviceIOS) { - target.params(EnableRuxLandingPageIOSParam) - } else if (isDeviceAndroid) { - target.params(EnableRuxLandingPageAndroidParam) - } else true - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/FunctionalUtil.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/FunctionalUtil.docx new file mode 100644 index 0000000000000000000000000000000000000000..bf5ec84b95caa57182c32533477e3475ad27cc2b GIT binary patch literal 36788 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 T = { x => - { - counter.incr() - x - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/IbisScribeTargets.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/IbisScribeTargets.docx new file mode 100644 index 0000000000000000000000000000000000000000..71cabc82e4f9a9c1347a5a66e9d7e74d5fbb7a6d GIT binary patch literal 37204 zcmagEWmsIvwm*!!dvFQv?k<4@cZcBKNN{L8KyU~U+}+*XJp^}`K%jA#e`jXSIWy

    w>^ijaFtqT`lsJJLBa#SuzXrCsysEV7=+L*3tw z3xsP-D~H0d#HFX)`jW2H3U~T6(&$M_ofsITYvoZw7y0C^<+7Yw@a{>+QOGUG?vTt5 zz*RS=`@EUrfn?jM?h`P=3IR!E>joxj-$O*xR>Wvxkqw3*s0xq5hE?TF^X9ZuIjXB3 z4b$#0TJ4Q0yFHKlxl`Ut`b%d%FS5{RX4s}7wFdBg3pYN~kojy}AK&j%<2J!q=WMCr zRJ+nsfaWoX48ZuYYv0Y{KBmQa1Xo)Ud8MYij%5?FdjhZxrm3DegwE7@br8%xUeRQ< zYS-0?R`<0&3X&!Cx|KvrKkg2sr>&zf_zIWG(H>Lb6MWludrMys^H$`3G0gCGc1FQ| zT*H4D{WG_QXpL%{cudj=CqM72(~%^l?{#*t-V(o*qHnvDkuY6=Sikq(Iojj?N7!Y8 zJCuORTiK_M!adiOz+6*#rX+g3=R}fx%&xePkKPZ+MP+ZKM0%bUiq`f-M{g-}A8`~6 zA(a17MNgU!Vt3%`twTXTAcH@RoXzcASXq8wE8-{KL$hP}gG8i$M6dvl^!8&%S5!X~`V&*irJQkYdB8=iGC_OfWj!6gZpSID2} zv|N3eX8>>j8Tm%;FGUqCyLRqh?nE0u$r}5M9mP6gs--BJvE%dQqscj8UrEXxOhuQ* zwxr{=KC~%Y>6M+c90o}$sTq2_y@H!)$Li;^tQRVpZr*vf&-|8ZLd$E?!gW1J#m{ky z^cP!AGDx=}X3-a6WLl30^v?u^eMVNZ2H)n>-~?fU6J!Q3RdxnAy0Dr8oXvmVt-{$k!}bMT{?=a z@isI;n})=PkcGy90?fW3>)^hunBc8GW=b>gS0o1ag1R4OE@&(TOh>yTR0vU!sxzVG z(%22;=fec3`fItlWVJa+r))b4UYo$UZ-@~E*84y4ko@wVkVF?X z_}9AuW7Yk1bGm9c4&oEHdsq~7NKP@86jk?TO^(ekCoaxT8&hu324yHsp(tocZ*rzj zip#|Ua}ZYb+|~j81vNvnv)il8F4X>_pUj#$tFfOO$M|TIKLXR&a?pm{g)Ku7Grrzl zom;b~eU-y05>JPbYnA=M)H#uRSm*cp?&ZxQG2+;dj@sF~ok2$QcVYELo!Wew|Vht~@LJ%J~FFq}~Mpzx6-ZVQ( z`92P&g?$_7dmo0&|C#kVT(C~?v3~S%LEHkqUeQVeckDiQSlMX}siEr2(EiHA0i_E} zDQpR@<^ZOFlhM>@#T*-FA+ZHkUQ-=ECI zq<^{9-1VO&DmN^ye^X&o`cek{TxC_}Sv)1o{ch*_NGB-~6-@@}<1;7Bm}i+a-BOqg zz5+QByK%?axD|{IviGO!TC<;+*_QTt_(C&OV#lORju$g1cl}7a_@?=rV!-d$GLB^# zr*tb2_+RRe>&Vq=OSHl+qE2GFw8e+A`MIH=CFvqZeo!Uad<67dVPj$aLrJK(fYyfmaL zz!u0o04?lSTVVp_cW%1dWVcp?&loJ{_Us3n_pZXoNA7TZz~(wc(&Q6FyXTR}G17o$ zyN%>TkqNDhw}PSR_!{1JN^!~kD{`U*O7A+_(^#KaNzV||?k|a6=dOQ|{qx4qC6MDc z2HzA@q<{Wk-2u*Ktl(d*t37ye`h8~%=qLbocrZF{wJ-!`PbiXh`4n?y4DIU99Q^Uv zOaN7I3Q^P!Z&k_Z%YF{|fn;m#Xq^J>h-*T%w_|-k6OMPd2EKQkA4Ukj?yCk1cY&@E z5NN1awySSlMfh6|G3|@PtQcT}JG{Slpzn}Xj*`ch4~r25B1piSPfF0T)1d2X)xmI- zKEAPhZ_~ozOT(#EshJ+2_a3(edg}J5NnZ|5muih0*S0hRRiDNvG)ZN?6HN#NHKuRJ zp2-l;k5H~Jm#7jXjcbbTsvl_;H1JzJEfkSRiORAF6FUr2kto`ms-Tl zzbcN5JEOK<<%J^`)L|mU5N02wimDY!$NSD!5D-;;+D}|9L$T=f=QZ?x3_V3|v4Kg2}d(Y~R>}^oy$bIp% z9zTmj$z<-SrUYRr1$*3)NCF#%%FdGY|@2PaCkAqzJ6mQyO4_RNT7Dx7YjX$q4 zwPdmnB(oJUz~zl>fH0C6+MuK8gGatG7CXbHvr{aF`waZ>5AGka8efut)WfmTMIlD+ z?}P5|s|-J&_V?VaEwNjB)K^1CS6MlK_=Rzuf_pS3Ih(9m>=~S;=1BeD622i!n>-e3QTtB7CQjvMD5LC3-dD^{hVhTC6 zuZnbOCUGrBGDOHVsI>luCQ<>PE%pP&G8Xy|_Q^yKohN!z`y zQ_EIEY?nSln4QviTnOs^H1p)7&e_P^^pCAAnlhVGkeyrMZlCSPTSXQo)Qx@BC5ovo zkiW19mKo?rSwKojZ{z#RL!M7U0B7M=p$xtX>r#e1-V2$cg$k$788*j19d~1nlqfxg z9+7RwzMsPf>0o8A_bG&=}E?U)7s^P08RU%{2=8RON<~<~F72 zo!9@`U^(~`VR3-hsWI@BL=0Z1{+N#b+-3cJQu=ep^;KLch>hSg=mn`aBmt+;A>z%i zT$(lpnW_Sx5Siup8_B&5y)`o?$?brhTOQvmTKk!a8@2g$K?275_knzoQ0O=_A*Jv<$YLJ|toCpC#yU6a&=!+uG2ys5@+Ele*+mJUCwtO~M(_j0&6cImp!$XPgh(s0KIjMQKd1hvGCaWuRtN|~4Oj^Df92Zclc$}z z%kPOF{4|lUEmP~;)s>rP^t5Xq8w@ct=>QS$M*PvcBeMp?slYk&>-%?ntC$lbKWYjw zG7VJ?&G)78wSv8wc*^v9S{VuI=FiVre(iQ3pb=Sg+VkleZ(kQ`XNw+4^RZ~+^s)^A zd?xS_yx%|d&^^seT6uPOK1~x{7y`W9$GqM@E`XwoM4OIx4DRmN&fAjb+8z&PeqOhQ zhVC4BKGzDp*uS=}hp+;d$qbW<&ZhbfLX-El##WA-%AUuLFX}y4?Rbks$;x}WJCr{2 zheg)DURl@adOyysjCr|#5q)*k2J~Uxw(VT*UwgbcDI2yjx(zK_=mR#0koH*umokUE zbsXFlK7LmGn4LUvR4sZcn(=}sBJcd}TzP9KH0aKVb>$H(%6-Fc{RDk%=;UF|m+$+t zsKkWuiPk!JGivWGAmc|06nX1M<2Ue%eA6~_etPUawqsLwPw*ZU-eW1)v?J>zI_>c+ z@%q9em4tWfDgx-t?Dfp=MRl1_wnOjg+3C5wDk>!r;}^pE(z)8%)>J;0IKb{_-?r-8 zsjmm>e7=@^uux4V?Q_~#V@2Npev>Bik$HuBXG_2mm;ZEuS) z55f0)emUr~@I!dMT6_MKs{d3CTx#DC60UFuorWg!o@VkY9l!b-f`G!6Sq=-Y*!`VJ zk?Z#(Z%KbE0y6{EAOlJ#nknUst4OZkS;`-IH^UEMmbhEA*p zXps!n@52LU)PcF1REb%1%~E@`NTkZ(rXEI7m1+R^+dk8Czs;LhgS&CrMR*Yh#T8d` zC_;w9*0(1c&+S4?qGU-`Q|{BNy0NMpy`fD*35ykIa}L*iKdU!LJP8?@c1tRkO~#J1?dkJN$s#^IsZfAf1qN$E-LW? zlfk3@F3gPxtVb0C>=mbemzf-y`M)GGlOxc2A|w2vdN#qm0i*r*sDC%*yGYhgy0vv; z8)gbf>CTaNl4`p8g6<*xbo_M5=Gzjx-y=x}B-4J4EpBe~=-lvY!PZ-}cOjP2p51q9 zTN)a(dtr(cX3!ev#F(;XnE;biyKtAVNmaLPF!6-I`LTU>W@yk&Hno1f`+f_ zle?PLB-#jG*l}sS2QX9v=ILHU8f?LEH_Jb3R|oq6#rMLbuui48jKnSesC z?oPm5jbK_>XCCsI1OWXOxy0&-)#RI7i$2l4QIp@ACLR zBP%qsaP@r3k>l03Dvv>?cdUdAazVxLu^zoHpf6-qXxsXL?dyZcPV$jow=jS7-YZlG zd!miJ2peBy1oWBW_9XvPie)6@{G*9!#tQkrM82#nE2 zTT}ATHO0MZ+#|Q~YH(ihsf!Dmw89w8Sk_H4nrtLdYrFbsrfSQFAi(#^xyL8$t}Y)H z|8s8LCk?6ldh&Zzz$0!o9^-X9T;qFGJBl}pN2visWl0}WXIQw4qRbTA-1mbeeqA1A zwhK>cu~)kaslKTuMT2meI)3^Y+XH*9msdD7qFT^JN$lgEnV$>LF>T07q{$r}y9?o; zBn=yPjw?3^Hs45EG25SmOR!wE;X|Vh3}nd_Y-&#E)}U^}((N}u)5332KwIEt7f_C2 zT77bM;VR@Tqe)ViI`h?@sy9g;SPDN{ZsG>4A0rd|JmS!{9t_Ohi&aX0ty#kB@=!9I zr4ldpIo5DY+A8+vCWf2G&>y8sMdr}ly^pYw8GazyP`HvuBGgMEdBrT~bln~!;$A4O zV!*|zFcS&_ARfIKU9vk= zXupW>{yxg2uNL!b9NRH5mvC9DLF+KA2%|V9;&|2}M!iEd>KbP6!;fkOU+KY-(m{b^ z(Ir}@X`&>~vkx%bo{~-_OD83z_-QqyIX)UXQ2~A##}1tRu_`VElncbQQwF&TOk`UN zBn&<_c)z9ou6;7{BsiFG;ue`q0)|**u<&c#~ z2EOUI;@tT|49$UN2Mwm)bDp*)lWF$(f$KR7*B9NEy=#ga|3-sP9>XAf_j8J@x>AtkSDl z)`>p%jcF0Bx<|4ag`TZ{T!JpzCcz$L*&P?Ovs8B~Qsir+xj%oJ#WiA;>JVQ?OXDn2 zBt+M*d@FT@^t~EyGtu$3oN@P=7KmFg?|!L5f0TJs!8134)_yt7;#rVUrCC50S2eO7 zH)=8)zs#3GSG_A34qiJ9S-u>(HPM>dD9x>?(rhwLAV{0vkng*?>P+pBR~$Gs_oPTE zx-l1I8np;#zOD@KOUN-szpvnvsNF6`)-3n4P0Bx6Rb6S3ZFFffZY$(nlGAn8w;5rN zrye3{dix^7E61t$eu7V&V<#Wk!p^cTC11Fx;3l1N$z>VV+opLdLLnA!#Pim(tTO&s zIlf<8o6BTb$@O5fqMWLEXa9&mhX5(2o5B=*7^4<`x6uytX_2#$l{$HkGP0+V34&UI z5&1!TAv*sazO6I+$x7As@XcE+LK(Ras%|Y5-jhr+OBBqN#-#o(vmNCuFpzA&zrBqObU2{S}$%S?qI*HD%NKzS|!b$W(<{CNcZ2R8DM#P7{ zi*}?R6XQAp!w&C~$tkYuS?PJmQVN~I#dssqRC5`pQ(&Ysq^kOdaM?8C9ejE`A5`{k z83>qBcLhwx!B0BZTTcd`R^Q}7*`ujiT{cc|{Y-;=D5sk=_j~x^1bwwN!BXG<(6Kz^ z7v%etlMPH*`HBNgFJex|UlUw|L+zT2#g)GL{wWe$F?1}IrKgIQ6`ylOi>z`dKabOb zq3c)IWO7>(dRkZI!yCgLPT)H}p;rpr)c~$xO#p=F}xh! zTBaOc)9!Gx;ImyG!NMN78yll(qS8Q|X(HPq5$KK@-e0!S>w~AWwfMha%-j(>6b>%$ ztwz0-9igg-lfI`#yR`fBW>1_$)gpAnnIm?jKr8BR+{(y1npjre;B|atkj3o4om#ZW z<-G}5NzH3g*_0pRbc1S5+!gR&r-5Eb(P@W=r9B({h}iLyZwT1~dYPD&JmNc%4j7w# zvmd!VT=ZigHmyrT)gh{e_?JWbx1ZN#XmWYI`J4(}z&HU1XxY4$B6>{v>p_9o9(&cn z>z~qhz&QfAsy8r60L*kG0Q>&fV_C3Eu=)f1bqj~6YG9ZNTuDG>_~As;+JL{BciUb8 zT6UAMkSmE|q3af6yR)_gKw$D5YTch_2zi+DN+yZ=$^wNCQE21*f{5YL#Ukr>it?w4 z4mO8m$yRsBq>Xj=5Et%zT|d3kP!)W@`L)q2 zKax$I@`*mZ*_lTHkeIBnW#M01^t`e&F=v3}BKz%@AbmPACxlUMOS)EPh6h@F@k=KC zIe)|`sv5#f>5cIBHfyBegA&{i_%-&ErAwMnzA{ZXXA+P~bjkY|!uq9#^&c7~Ycr6J z_O4Uq@(exl-q0KwjKfzRU*TTAzlr$XwuCZ#ToR&yuL1yv!s{8#wwzrzoI zhX;{Lbd>t?Tsi!JzVNbno{^qStFvizmCjOOg>6^v#y%?GmqJf2#lMa}iM1;V^z!V8 z`caI(z8I!lW#fm{kwz5Io~cXYig~?Xo@#$TZ8`e^k`?DH*vlGiy073!y2DKH?Mg|u zp`lVS*HH*>Fy(C7@`5y|P`TPwc-E#gsF>Gs&aUjMNS+~*M~*-3><5=HQWlNNR>NA7 z=o58i)~aMp!s}ilYs@2!lh8bOPUhGJwTMcV-1T&gI%bQ9NH6-$5U5OL)(Hx)X7!HZ zWV=u^LF?Jas=od3Ah(_5Z1UUM-V`wwZaU02oC}xeuCp7;@2JUH;OWqNfbIe^LBv{V z6GO5Epi`ry*EO>BDTzy|ymHA%c0q@vpZL$ax>pY_S2FvwT0?3_7e1HuayTVnCKHi| zIg=C}O_dQt1S>wv^B?y~??4u;||TA@m_NL4>= zhL7Kf*H%q3S+*)P$BOH&X%erBm)Jri-GJX4_+$ozkveID0(5O`%>~0LBQ3oHKt}H- zNl{}vORZaCeDX9(i)yCkv>vFkX8I3~=%6l^r-~x{&u%W&VVD-vm#2^-kr<$mVi?~P z%(7&CA*Ff8+k{a3!J|w=_~@6EqO_QRcR(+Npy;8lR30TctWiRb7;U5#m?|)m%%gGW zG&7~6)EYDP-#jpH|HY%YBZm*URdlY5S#9icG|0-vP>etaw)FMKPjU4tHvZNYX)%Ld zy^151gB~Vz7JF@ms%&&&-fmbW9$Ei#xyFSYIp8{P5%}WYUY9x}Eq13f0ZyU=WKkVq*}ITy z7#tEUw;7QPW(8^VpuDsVY~_SAO}jwNoth3X;R#~#M<5$LTRy!D9w`0K@lxeC9w;BVV}xq%4|kun08{IytG&_B{_)! z^S{j@ku)escSqw3k4HH;U@9k{X_k2*gwWzbuF(IV*`ynW$pm=>9S{Euj7)3!Uy8@} z#b2~CiwD3;mYJ-yMS>RtC(`AU++OL(a%K+VPJDHs-Vnb^YjV4>I&(q#2EV!7T92Y! zVxWtZf5E~G(+E^nMbUWLWgxchOrU!<$tHgpDSL5hdAPW*_Cx+S>)U}$O-D);_0G_V zss(LOE9j0kv}*E}8aY3e{(-w5A!b$2=vK3`gCeOXTT(+qJQ&)8Jq(xvncg{%LJgp^ z<~|?q{aTHt^f@8k%u|A!zlBMaJSlKkb?|b@xJS4g%XZseHb9;PgWrDyni8&Ga~BrV z=qHj<&afRV$8jJ;i)la|yv%J%OKcv|=3&1vq3ELlFIwJG_^od3x9y%|Av|bNV1~9l z1rbZ&xzD(Dy={&H1qOX~!X$(<`MWI0{_beUWIQRRLPn;~lyw=yj1 z)DWal!Ul$sDe-1-@g(Dx6wT&gp`774&0~HYaYj(QIc z19>pP0U=0hzDe+;!zC=GtIarlFT@DL`5uq}!5@oF2WcY4Bx8tC^R2R);LErhWgQDf zte_61_rC1kG*XqN>Z%kj0jo2v-ClMo!gOfZ8puefym-($yjjSH5vJd{ZN*KtRZze-6KYiHt%_Q;d zkpg5PT_2%`1L|L)!vaW5$(h5n<+Zd?q%8#Fbnp>|uW!cPd{6#^xWd(50#m59VpE|l zzgG#ovj7%#<%f9dPVe0Wgpw3wW_H)A80&OX{rJ9_it}~#EwA_i2WmszM4Q|oyDF#@ zQPgems-;*Ut&>3AW4OGexRasWg+?-ZzR_-={(}|{qpN-bF!hXP8X%`B+l2-B-Sz6t zC$!v^=hJyieN}<;Le4V@MJJ=GFQyZlFel42$+@W2%-3*>{XF6JSS!DD-^c6NnHyr8 zY^P}t(so*>k9^-rB(P*IrJj^auUjDx;wu8SYVD`b8QGOKG17t?6Zk9_RO9>2?2X5) zw$s5ulYa*B{m-Dpi9P1){fmD7a2KqD-&EhqQSHtY(y__U?=*I!W@!)5?8Tw?1?`Wy8Tau7wMOw6LA~mJYFg};wQy#oJX9C_2Do2 zbAB)n&s65W;oS37ACT-p>nWXAhu5()d6KN&$cT>HAo;yQAKq`QbuqoRiMD5js1V5M zhhkW}tuoE9K8!RRULPDrjVo0~7tQY7?_1|ZTG-aIvK19A8FG6O!%cqrRdd?cD|gx| z9mNk{du<4w*e96brU7W5GeK;=6^(WK%grj}`^7e2{RT;o3@#9ZHv?n!i`I5?R4d#* z_89OpL1Oj=gvExmp-L}DW{C7*LSIM2$qB6>`()|N&7ywIUN0qN+PYDl?8Wk+G7qF~ zu70}^$&MX?C)CdvO08|e$Anqy*z{2@t!Bnj+a!B^+8DeQuM_rGv%ax;tcJPPoHIsj zTC>1Q>h`wBV(JN@ZUGvkXxDF181ggqVD)_r|4sej4{9thHT;L)yYKOq^?B4J<3Fg~ z%*Mdff;@jx|DeW>K>I(a&pZ1O+rzVr)_q#ubr>TaRh0H%Im~1-F$K8)qR;- z*txJHSpE<4X=Ay~`{?A2Rp-CRdyVDpRkiMrw3<|Ke)N9&0e`60635zMWVq20&?0{-xrRy^gx+*6P@=7GG?tLp-4ISu4wW;5^uk%}lOB|`}ibRsuG($%EJ(yzy5U(Yw zXT2#fsE;A2u@}dgM2{O9Bne^M9@ZFp$!%zCfjb}7GIr%TPQx>;rKVu)EKB!^Xsv#z zX}mL7clu;UL?Lyi{sC8t3sq`n)Z1L=sG~Nl z(AB>Xk*h5(>v8!g8yZUZ`IOoMLm`2?>->9(Vk*s>Td5hYTx+OCPL0c`8LpotrFkp> z0R`I*K*lLog&QoU0`zqK#d<)J7f3AEnk3sAYNBiRptDinOMsYCmp3D!)Qs5#KX-jz@`K({M?v_X zCPNc{o8&|OZL-7u|IZ|!f^FAS+dfwX5Nr~=(E3%tF0+}0G!Gw_P%t{}qdAQeG5C#g zZTQOG_R`4#Wb-O5GxU{oVm*#5uC}f$OXwWqev{V#!RU?IW%>IJqmRz_9zdJ#D*RBA zJv!4EGkW9vdI-=6NZyNP7|%#vi_HT;?ic_Z1lZD4kt~V;uNli;xDbD`Da#<(rjWOI z0^nW8CUh7vgoJ+>a^-rU;B|9d-YbEx)5x~&is);eP$G8di^z42;zS9$2)%OuQj0M`t37~~c#7_I#`numA=yl&|E zZ!}iN8@P!fz<(Q#zYBW}%Sy++^OMcc-xFmE_NK`o^I!t6*KnT3P^?3PyS@8l=<5LT z8BjhL|BJ$1;E3I14k8-oFY$^O2vsqA8%Sqz19I>-!vm5<7K?Ql`3TWa`50;XV>`qp zK`*jAYa09|g=NFrvHysR68|lZAoxt;+;(`xWRw3_H5q#!X+02<9QOAGz7~9eYXm|v z$+|rU)@OHa!WNv2kPITT#Za_&8{)8C$cQ}Zu_h%qv;rY7HRsNt+(W(aSi9Yeu?^`? z-P0!FO%)g0z{xu)1t;$W0e(2Zt{LW^$+OSW|0{Xb9d@1HCKeOe{!)n4hrD-8yfsEd zJJAhoW2{D-UE)E9;8jA51*O3N54#yZ$}UbW<)|*#uX5t!>yIA=Xj6X=S^cKZJeZ&R6`&iUQ;47G-`(6l__hh2x1pU0(tblZSoLib`%KG5S1hb_ zT^$P)n#=1YJPV6vTyZM0SbYs}Mp{I^2m@hmP<0kXVTOTn76;NEsV2Wr zt`QhL+H=qHXED5oj6rsbeQ0nHxGcMqQ0j0(WbZ;_>l!fTa^%Cb5l_kL&d!!$nCp{x zC{&L@vQ3~AsI=4iTI%H8`=o0X_yg(^nWpo=yH`nWdt(dZKl9Be~#F)7}U z>0B>$ZD{0aC-X-Q^{5s6{RJPvGM;Z6bi2S`NVLcF;rA&J4&nE%-x2zslz(AeW1KA( zuvq8<;_e$ZjubQQOLB3}n$M)W8*JA;?Q5;ee^&+2$c|S*j{`UyGiDuTiF1%AsqYmOhUa$e13>%t?%ZtQtt5=B_VRh(DDy5xjd#kxGs#SFXOV(W^- zzq2!*l0RnV=(cbeGr!IQ3Ii zUfRPVT}LV(AD^U#64ws2xE+kX8C^14tSlWIz^QE&z1_EjXr|s@kfy@8l&p#1y?pM* zQ#!Uky|nFk=IRv@mHtiCIaTFWkv91>O5~$=gxU$tf&V@1PRX$&QGr| z$Q6DSDekZ>*Cq>%-(m#A}mv-p5At~zr$r7R)w}EK>SM1&I%y}i|9>Kw%K5kf-0ry zZLng4BVR8K{AZrMGuc_)FEIW6u}#F1CYhmxnC5{2(rCaUDu@iVRbnm zeqA6sD3Zu32@$y>F0R5?E-UHKE8!wPBMn;a;^GdbDE$+jSwiY?J`f2=!g|->jFZaZvGJ5$6iC*apDE}_M+B{YHnZ@kkaFR*^Q3;p*{~U!34MJH z#c-EHn1%!_R1_U0`F17HAMaD<%CpfCNLCtChWo^Db6T1;AqOk^9#j47*sG^13Y*Qf z=kd4TCk&eFRel$+;K2U~4$LZn75!6i&u_tJzXewk9lN@*-)kP*b$Y{!s*`Ck-X)Ta z*p-ou$o~cG(NmQe6!R}&<&x&3CY(sA@2{PXtx&&+Xm@XPx)rO0c4lJQho81$FFV zu%f;l8(-&s0Gm8CaSEI3=d->&88-XFj2qsBp*4E(~`+aj(?RB)`oDozJ>1J`EKFW)1$U znEz{T-16>C26gC0x6#1)%?7x3Y=SGw0V@jdyt@D&g<(*?&&5C8*76VOIL}V$HRK>- zoZ3a5hZEG^eA6$=4=+N-QK3H~9;CkzVNUN9mV%x3SwGMswt`KpNJ_&1i9iXxSTFbX zssVj!tcV*S*NhGz{IPrfZKZev*O2}?vGq~-D6|Hy9ncY?9CGjT(e$)}22`d5V}q{v05PZJQ)K5!GJhkbIG8bgu1J%W7I`B%3&D+f8jIvh&VnhKja;F6MjUBaKs zIOav{yzuK1GFx<+JS?A~P;D#3P|uJCHZcgB7+<6(dXul`oTb-kp_X`T9|of59B)$1 z5&Xu#A63F})x-M=KAN{++_2k8-<+ZQd^;c>mJdxtK7P|9YqR<6o&#nGG1?t7TCh{F zeo^7ZUQ>~l&#+GX_q%@SXeSE3b=?03a8mjWa1{Orfa9%u;10}C8^X{@H)-_ZhKE3T zx}sydMNlM^r9fslQSfH-`OP6ZG2nelhyPCVsJj2oKpz2;Be4$#bkDg+kJHwA`Ckh3 zf~NaPT%i0nJ&oOVv8$@td4a(F`yIVF}r3`JDLBRdkW(xm)Jf57z@ zeUYi9&?YR{{Qg!mpe+KjZGV94zr*RFhj#9sukg@`Y5buGyV`;7p3pcEMzM0p+CuQM z@m~{V-ZJMn7My}wI^svv3V1#w6}YcwHHRVUS@|qN z(V2TA3YdaJ;d`>$?8?U-)mhSS*S0oPC*swJTxP@?+|9l+!HBN_5vhECmILQiq)_yu z)gt5Ud!*MfwEj^-&z^})6*KQ3G(obHL(tDg`<$1zs0HG0mD)|PUlA08Sk9h8v7o4H zF8CgB+f~F2tec`8VHa9pA=_i~tGH!V$@N#GlRUQz))(Umz9FJ8EyQtf7DK^f6X13C z!pKmQ7ILCrLNOYH0Ms-x^5uE*}_iBPV5>iNoo!b@0;~2lcTtejkiq&bfBZ+ zCTJrg*Txyp*NIg2wDzF$6EX@Z73xzb{K!Eq<<1m^u;PoJTR_U9;vMZuf619$INs?NMP|QWnzx?le=hD-`IdCUlaEpW-Q2@$3UFo{-;0-*3zplRMz2B= zd9goYVE>KLOGgJ9jz+UEf&06*4%=-ye;X$pm@y#{_HrQ7MN!~bGdwZ8y7o|tMg%v) zDC9@g*rY?QQHDr%$$8;MgQ8Hu5U)-}c2fyp%I@Y<@9K{>?b*mg7v8VpLLmkR3vDV= zllpsFL#;Hy!LV^UQkY?b*^<`>c4-6T54hv%JTE;w9LV2#$)<@K#vE|IAeIsl6iqn? zyR*{7en*e}?(`o4p`$b%RguT(iD%YQ*QAc0`oK6e?8Wf9_e;hHR;%@q`BQRV+ zGjMIRl>w9~A_@E`Ye02w#j$NUDC%@}3N*!H%HsINn-875Sd$v|60m-FD8f9@rt3Bt z$~pN(s)P*PL=2efhw$oFopOpB*}aQdEX3h7?hTS5tElGL5;^Ep;;?~8sba9KXEf;< z&R`J?>I9yUmZGqin#aLN)KMZolp)vmg0dx8vn7x-h#uf@p=|BY7mL2KX$>!+;X3oG zcZLULLy5y0WC!BLxo+vt9qERofZ!YND&`S!-@9cMY!yXD6LhHc{S~4E=X*EAc9cYp*tNy*p}|oa1tJj!Pcb%8u|2*GI>|VA zdYW=jozd}8e&w_c#;|k8k(VZ}Lng=x2$hyZtUDKayVGm9NTUdTMwQN2uEpnw!rAnu zK%~b|EykuVKEbm=r@za)Hxt3@1Syh-JY?xm<+FkR8@K4A+@IITi<5vxk8rp9#6~o= zh+M7%22%YC2=_OT-oJtDe*?|>jduWLb6zax5$Ge=O3WjK?C@j%KoBYe&n-@@cG&db z_kNVBbW4aSGDv3`vB5Y9^s`@ZzTO};gyI~DD(Z^n|KS5iCV-Qq&OMLKTc02bhtNa2 zoeJ7kl*C{vXcae3Vnk+`OVu9`{5D@qHb*f(yHTT97#xRL^g!{a17mdB$*<211TLIk zre(pI7|<(HehlyMB4sHL!+C!rUKj`EL-v*eRszYD61E{j;shKQvo-^E@H$RN0lVRb z&q2ZxDT9P6#Izld?3zVcauATro9}qPa8CA${?Bv!#-4#Q{M--_E>&<4g#SFZuVwwo zO4`E0-1O6*NBDgWlJjJ0Paf}a8;%B)GLs-EM#g+6v7iPG$9B$BZtg_N%4Q8xE8~ye zGc=Tb5!XB0o^^(uulrMbr)jVEpx1|&WB0b_tf{dzgNw)O)3&NA zbPy=(27I)Cy<)U|N3 z|FLC-dT>AD8WgeiT+)(^YGlhA5qkOR3Kt}Iackpiy>k=IQ#I!5d@*D3Si4B;=O9Yk zwFva|e&(^hbgeP+)fcY1@hh~yPqqO1`Mow8__^Ectc>~QcipqJ1b~2ko+3u=C9O9e zc}1`MuO?$I2}4=IX`xNYdtQFc9quc8F3x>v*QeIkUMIXu^YIBv2Qmy~e3#WmMxmL@ z*`X@~3%h=ms28g*JLm6Mr-lTp9Gv(z3F7L*$5=faC;*o}v^rW|Bh!qD8M}Ub z+`8|*o;h;5f6Yuf_5&rwEbP1zk?p^h41`Xsc=`Ece}ESTk>-h#CRP2+P1mnA%@M0o{VgIak zo8Tq_a1-avwWzl?@k{6ZmMjW)SLMyr*z&c#Y)yLRO-h>)-pati$@cY6mOWVB!lTst zvm2)=_Zi8+w3q4)2h|%r(=jImJ89M`rHC~fEkKkBA5cMOeQl$uY)IETFaEh=u$Ofz zB6M$NAAD4>JGOX8DB`-YKd z%OgI#7PDzRY?T3*rP1hae_Pw3af){;?WCy5@>Ii|iT8lj?T%E&Vc96sv4YvOg+EI# z7-WHt9xgcwZ9X@r-Tn2bmdW^wg)bhPY@ISP!CUPb*zytPwO8Gj&gBfmrn_bkM|;x^ z-da2wrU}REW8>07f?23U>zz}FQKkEsphyA>toOu8K2(rWbpet#)uJA3Ii_7L)I5&6 z9`J+IN~OPe;ImdYVUG-xag^h`{Y_tWL5@)RQj(NDoRjGBkFjp=90o(Ns%19i5w)pS zq4>%%9Uv#}bfD(L8vVUK^y@){iuW@6_YrR4b$^U6Q&R_b&@Y2K$WOo> zvEYtsnPynWe?t(@BQ!xgrxJBhZ~q?jujt={JSOZRi3^K=qtyR~{{!Xk1OATkzpEhN zZi03Emb(naCqL}~NepM*1c4S53My*v1{m|V`d!9sVN5Iq;1qI%r4$=-yt&Xzwj{B$1q`#~5(kjnD1jRG`J@^}zPWk?jq4#n28fa*_KOI{wR@$34P{ zv-i*E)r?MDp^Ucm$Db^f@QrO|UotC6QMOw|U3ZRANh4=Bmi7!4h1twDCa#GZ%bsH* z%*tO{SUR?@FJgRujvUNAjNR`pT|HUXOz1n4gk6THwVd*$Px@e{JYAc&_&oEsbh(F^ zidM{z8Qg4M_l?AiDW%!}@Lk{apPX_3n#_Ibc)f3*1(dp<0ZkDEcgo-1i}wh z*!JREBbecTa}a4Jl9hp@XeN@GVdi~2D~V+6R@(E+3Z{+3*IHrXOSY- z``nBm*qod-pxy}0It%ZI19!ebRIJ-0jCBzpwlJVb3sp&pN=TT(!%)uJlKglXbxGqC zopV#D^z)@GRr)*M&^k+zbeHN+LcAhhW{7`z5YIr(Rl${3VHN{70t7h7idSuI%g9N! zf;`GG`*%8n7C{(c9pVpF2;06tqO=fRTi;(w!S*9$s#AI7V)i6-QhC^k1kQzg7T=PR zu_E{`;i-$dS0Y2F^oX_>ey=>=N?2#(kIxV8mqkhg6ilcB{Q`pw$I(Mn)wtXTha*&<&^t>aG;c2AQ)47u%^ing7>gv4Y zbN}=dBQ27)2fX}$guMk&T-(+yjJvzLyL*t}*0{U7OR(VX?(XjH?(PJ4CwKw@@;c|- zd*40Z|K9tni%n70j5)?wd#|2r?p}Lpzb_q5Hoi3r>2ndtRWiM`Z+z!wCSbHjc6eUq z$cRs1)@*z551ereyzHBKmT8WOcnO>7XLvM(T#$f!9wo#8!I->Au*dzi&;fqbKa zzc6Z6;8pCIB5vbVWWTKMKe)ebm34FrN5z(8!M-KL zvV9d7-+cE$Wi#I(XiQ+KOR;I_`x3!J*_X)=nV#aV!_?f~WEY%SlfH-9wJ)CD48D6v z9=L-Ty+_Po$!g0m<5uq)zchP?Gp4OP#72V)< zweJzc8GQI=*2`?sWW)pe;?`I&!-8p~5M z=gFVodjU6iUKGCDt8XD`0p~8VTaG+(J>I^Y(4dSyPM=`&IQ?NY^^pf-cMW8u2w`p4 zdA)8S{zcN+eUCaf$D>De!uikJb;G{YretU5LNV#HflM>1o4e!AvXNI8?eVAEFW_>N z*C~lLC#qt_`%Er`Lb*uoowirat7eoorv+1DsWYWrwmj+0s}=*B4-bvT&O13wELA`3 z-C~c%bJwHZk z>TI5LGhKWN^;qiYsyumr!8-gdHE#REJ*WP`iRcO{$B}D@%Y{SvzspQahyz^dp zjL@Sy4bUj6?^$sf<3T(n>!ISS)A5`mrOG`+`P`~U2-zUoeC?y^;tMdo%4x$(D4*e&vB;Ki4l;O-ZHo=n*7P6*r z53lqDyH377sv zLUrVy{s@i|YG#HaHrh;ttKw`b_bULwJBgs4@aE+p{v|UeHEcWW-P!tDHuNo<1&X;H0f9Sm8VuuJXTfrd`;O9mg(z+p|e+4 zW9&u6B!qag#*ce>E&M?{*<)|zs(`OGSt=n{mujwGZx)|km^N(l&@T*j3LXY5_flLf zKawum27RUAZZmg!8O_Dkx4(7Jy(p^sGSyjRFLnYjJ*C*p@?a!K?Ho)eJ2g2|ri4yU zy;P=sr?HCZuB9Z{n3epxa~Lw)&Y8+Ke2=}j&lB%%zm=UQG+XLPradS=1n)I^_*)_x?KMXwg>;yEfdTCZFKZK zaO!1G9xQh{R=u^KfZ)#0t``cp(hOTMNSh_ZN=qLKiP-oC@5Z2&ln6U=_YHZBta#b0 z&)f+KvCo#d#z))k%P$DvmkE)^!$8&Na%9knIOBK6a`U*GL9dtT+tt3&pmLf%5Z zwS@Hzfu#$~e*$F~R@`l0h=T>k`Dop``7W)f3*DUR@2Ja`%fxWI@7b}A)!}o0TDI~a zvM2ppFP@MX>10F8>xzc7%gJagrGL{1#dqEI_aMm`F$CuB@#co~K}Hus1kDYm7)c_xs6;FGdJCRh_$w z;N254|!j(7ybs~qxi{dHa$FtA*7A^L3c1(h3;k~71#(~Y zCz!Mt$mpBkU0RWUK;0nnnzks(Ht^R+YY+B-LT!$cY-Q;`T<}D9*QeK40Y_p7I1u{oYggTeBqSB0-h|Oq-+GdfOevdJ) z2VGwaT|dJo)sm1mAAgojzUOR^ziE+wh=9cvsrkAD6o(O9bVa91u0Q8#m8Q`l&D-X| z5V+pOK)qc(b1{ih5E5l`m;!vFcn)n_EpAiq*Ac{}?QWs!=6oq$<5Sk=&gRJSS_o+~ zFKG+qH9RA*+|&VQ(S{1GY*Wur5V)*SqCgL8OYNz?Q{6pSnu`}ZXjDP=oZPSBJg>pL zO`WTObEtuJkQWSVi$&N*JOwG!cipeiIs`X0_{P|;K2%^f`d1vVDdo|eg@CoP8t#V~MVz@8g zne4oO)N8+IBJKS8l{VtXwMlFai?TSH2CJ8StsZqXapubK>36dJ_}lT2eI74CHIc>$ zsnwRzg|hEi!3J!hRurZrZNYPrs!jptquoK_B;-krM9N6)xme}h`rY{Y>$Q%^*%K*7 z+&K}+P4J-9gUIW5V_F?y2Jh+h!t8#%F4aM3kLn7-MN3@sOr-eR8d4hUgl=0s^!A*#+;IMcu!9rXNJuUTEAc z42DiN(p(e*gHjxoY+OGyu`o0l!|dg}69I;ah$b>q=O+qTy&igfS*4y;cz<@IyEf#g zdnFT@*!%&8#ESm3VK58|83@*R``7*a5F zQ3!pOtT|b0^*A`+KruSjfYlPT2-s%kBni2E&kk*fK`61NIh zO1-8@8&sH#`3_qvOq`cBu3#8Gwh&$$R895})*zkq0T@)xxAA=N=UU1fI8+dv%mC8z zT)qW{S!&b1%t_$c@ZUqTq74Dk@kFvlNOtQf3L*Fzf+`f|;BNVc%=|I-8^j$h(_-iJ z8vX$y^*W`bheJ)`C&3|3W+g?SPwFK7 zdKR7}8U#5B0i_f8J`^zIpErO?{6UZOYiwjFZEkZ$XE5v`beu^q%M_R`V$@`e@N#j^F z=78Kfo%Xrt=a`b5iJFt)JpJcG*OR%rw}C3|#VTUxrh)Ea=Mtzs{fX>p^*U2U<0_3t z>f`Mx?O;FT-@T~6^?hYHddHjVr#brOaYT2zJ=hRxX?%PiyioQ1z755uujRci-rXf<8<%Rs|eGQMR1ZXC!Uhry$7K z{*-wx?)KG+x_#Y$;y!qqQivGE&cI5|IKjp zukn6Y%J!%ROa!KVf~(u@)(>9Gd#GzqybN304PRpxqQo;W)z&o6G_Z^=a9ARNk zkv|+-XR0uHnbrbRN38EhuHW~TZ0VC=Wt3s%TfiFHi%ExfDr+@#=`i@8D4lD>qx%$@ z$qXJFMYpdrm*O7pV{D&4>;EpfKi)Ph6@>Zp48>Wwm0!&DmC{9-_^ARX`K4H4 zBzNn}dm`5U6A*9sGA$1+hMA3#fqjOVV|2dlbHbpHo1Dix(6#ieo{X&9*UcZVHFchL zgRMq>N@h_#ABl@SX8JXgV>JwRIes5 zK~tOmFM2MJj^XtO{;9{o4_B7F74hP5XBQo$DOyRpq4BR=pZ~urB;m+cnxa!DT&Xo!&M(z|Ky;qV~uQbDOv1ntSwA* zZ0S`gP>mQSUqTR7LSrwX*~A^cvS0k!#lPuRFRwC|;dM*Up9F&j_`I!oZ=-bn4ZX&?3Pq)OuzMH%FNv$$WAN z!8Y;#R5=X0Fs+~dnIp*3{PcbeRLbr1-~#_5%FHxs8cF5~ID#o&A+DlfvgN3T!A3!K z9l`>GH?A1_AB@+I!6?>#BFx4ROLJy9(o7MKCYP5>kYYa4{WC(VaPyOJS(KRzP$)LU z1q2!v8ID7Gg&W0G>M%>7h{C@x{w3l9E^7#`V zii0%MC}gczBD$=1?3wZnY??GP;sB!%7x!;5&i_|2mKq$ttXisQGcxo=l&RQ%X>0Re zXc9H@-eOm3=k@2&+vI@v%xLT2e&c=hH({e~LDH+0OQUDn-t=hN`M${8;H_EXE8q3_ z{yudely!~VWa=dCV3oo0d&9nEJU1FJw)miM9x`npc=enyG;rax5}8+yXg-Y3C~Bna z+z{HpO&C^f;fS{rgz3FesicZwaK9-kdc!L$i~uH0tW8qo`C7NvMo3KSeYLjY_4{Kd zX6B1n%cpp-ykj~@zoV99w>=R@cyH zt+o^*ZlJ*uXZB~IP8h7<`mJdCF>%EJ&nozi6Iy0*Obx}I!H`m=ozIvxTa5=Oiu$w9 zBAz0i_@H<+b!1EXHx^S8Xvx^ZmcjQDPJ<{L8^iaK*9F~p#L_wU>S;z(D*BOlw)x#5 z@bX37A$T|)W+RmO-PzYc_ks6ZU>u72;-y2|bEz>DG|c|<2**!FGz6?K1vd1@D?g+z zlG{4NWpeM8RTV*x8Fel3ju}nsXBp{i{HCc?!c7=VLkp$?QZ9h8@LRs?j~Ni9pmja5B-lm>@)WC}LhYK!Ty805iGq5-nyu zUZglcst8i^9mlQ73@>H5IsKv}2&o|SuCtnR!-t=7rI`f*#fFDuIZ<=y;U2+k)*_q} z#YXC0KFWnqv{7p+(S~9wRPzsNg9HO(9cFXmrSTus>Hy7up^o6C6kq&>+7OyBu$U?E zn1f}bjRO_VNq}N4UA;j1>2aMW zU1jO*YbbrzC>zPd3I#Prgbvn5v*Do|=1s;tAXyczCanNa-%YgPwtP38;FP%(sooc} z^qj>jAk$Z$pRA4IG!}&d29Loqd@@;{!Lm`6VKJ^uL*g683zadHUzxOz;+#PSAI3w1 zX`xtkT;_74vB~-jG)+`lLoNFfN4Z5URkw(SVHgh(oEph#d`w-FpQ49tGaQOwj5v(P z*ncrrp2fIYj)6R?%1r1Q&Ka%WR=VT-zscfZ*nITreNxv5kf|e~{ot_I%R0|4+(%sW zvsF9wx#js1!~@MzVHn%ZT9Kx5G&3=bbzFm~ejj@Ez8c&kSosP0rA5+3Z)C8NsfOz- z!{e6En0iXGE38&gr&tW>%T?lrhq%w1d1#GOQKBHykE2Y4MZfGMo2}fo`44c~dg0p4 zd`T`TEp&`#7H?cwMuI=dUb89&FRLmWwJ0Jm1B(}>^j3b1?=K_~Np69OEbq%jmokPD zGNn*5iVdK`lSa2VBtd$iPDd0|IwY@98M%lw^{kXqNrs2AqY@(=QM zSLD45g6e`)B@cc`QTTf(v`yfKFeay9BA;6ItXNuEBu2)WFlJNQ!jVH3RFKmI*_j5A zGO!jrEp6rjq?}YJ`9CO=f&G&*Px_p>t^P=+A(x_fOdN#*Ca<7H!OuvuMLu@1SYs1j zCQ0J#Of2f=H@m5NjgM8zayq|5mdiln@T#u_E`25O6vU?g;7RW^LSEQTL#6q?IGAG7~G>awI2tx{$*cpr;&f( zIfH5t%8t9KBTmVH-JoCPrC{hTfPj+V6AQ^I)6t)?y=9yeOisI^Sd%O#Q!mF*59M=s zCs(SHFLtUrn*}_ZHPXU!FsBJ>t@~T{nhJuW*zqO2&q{4jMdzfyH$VmB!*IU}(7|wj z7QSrwj<^rCmr#d6C{~onJ#Cj_e>EW_L$~9YE?R_arAGKtIl~U}Tbi^f{d~9Xj7BLA)c$zHaD_;}`)NQal)J+4nuCK@xwH{z)+Cc(KddpJ?w6 z9-8|B+k0u_i{VYa@2INjL_=RKJQxtHa&f2t)te>_nWCfG4Q7Ip<|w9}mf$G%EiK+r zEHf?9aTpOsh9?_}WZ$(gGAaQr7JY=3A7}W2`Hxdfq7LmQK>AVv!AmZ;Vnr;m>$z-6 z$eJYk>nf5_s)PGfhxcemLc1E!=I}-9_^@F`_ZgyEF9>Kz6xsKtw0{b@8&Q+x{WuiP z`!LN+De#i{Uo&)hz-Fe72T{35GU3DKKq#^Ssv7J{gAs%4ab;WYkU+C$&CU?NOq1?| z(8fD@A>}$^0UyXd2h9-gcvaybodqA37Cj})^X8LBf(>~1J1kj+s8#~TUt#$&4lBN= zFwpr1uu3H>V_ND}I#&w+Vhd4*%uK6_qO%olMxe_BmEy@M_p&YwMwe{RKr1o*|N6}D zF=&a`D2gE`Xc!P|qOfhH3>%j9uec!TGjYbJlmxK^JQx)Yr5Q`tG+f(Dy!U6kGXhjT zrY%S!@XB6c`G~kPqVvI9%JgPpt_{cBVDClrob4KBx}GD_MUYBG+sD)yW%3MGEm4_= z2^kALwbEYLeCnERWSWi$P3)@>6*VsGsVJv*3R-;h=?$UNns5t?tF)WLu9YBs`-6so z_a)v2=d@CgrfPP#7vWr0=mm*nws9|hrxOsL{HcQ;iOZVo@{y2L@nfxf%n`~qzL}?e z_TPVuJ&Pxwcl4Efd~GBnLkj01Iq(k`Z6iY}z#pZoSVwgM;TN4A5Vlq;-^|Ht3g;ua znAb~#bHQ>7!=h64J3xBlDs5f)>M5K1YKsGr~m$mvb) zGg^PR)q|FW3z2*n@=2ijft1V>e}*4&9A(lScJ2cHU5o0+V&YpdMl2BUQx>3p8KTcBVe(YFB@XUw=iOSrzTzC>yzs78NAgV$#6kDNPbd`IAD z93YpP0Ocscy`vzVG$kr{XxeihAop_~Ae&D!0|DFDeP66vHk*Qw&NsS-td4nxJmPt` z0okMqsYjL?v97pSUH%@~S!O{)ej!?|1|JP`h^6K!?UaeLdt;q!&@WnvphR1 zIkw4D+M+&0f(zFsJ(tm(*1}qQa zWYr;fX5O7MxA%v$pxz9DBK68T5E+1Ii^79etrjGhIVXu1+1vnj5i zT0f8&LRkkh|DEeq473?NSoVo8?@Yqw9Q2hY6gq-qX4fT0TL2`_j2@m8&&)GIaru&u zCbUowp&TVV?WTpGf$NuEnQfEV(p|1u6Q z%jdzY#>JJ@Wl^O~e*ks`zplDiQaSd?y@QO~S=$6IKag%nd;R^9c}6#-hU87Ah5&-YEg=_P_6Me*woHrs%V5-OQdDe4uOk1r!tN~)`J$Q#z@oxYFA@- ze-0YAD1+Tf?wSy;o3)v+e`YymB=fV?+qdU^A%OnzFEL~aCT|!Yn#_+w9}>6{-yS(y z<{xjz&QAACEWc}f?B3Kd#1k$ijm4dU8~bro69+>+sYt^;^*Yz6oKcWn%hFJi&4|*U zXQ-o%0;U1fP%Xg@>Y|JR+Qxa>2h%+-={XD7UJ+JE47*5LIE#aVeu7(t#*0uV`5EIP zwK)p2+92WfD-`L|r>Jx68%0^uz)4zSD-Pm#7~#0MxLY^F`LmK4(xmkMU@k2+SvJ>Y0hX0g)DSc79L%&pLqkE!H&fc9L(vc4;$FOtba#jw;>hb?a1a*u*Z`l>f3v!DFNV8emmE6g{+z-qbEF50uLtz*^hF(xFbp7 zgo5L1BLU82)!B~BGS7-SG}L-Z0Eq>UBdp!FTAFak<0I#9s>j7F#UWomeA>m2ixH z)S`ydps?Wu0B^zo4-fM&UZto!N(4f}u-sZJA0te%|V|OyfoC#@ix>&lJFo4xeG(cL*Y5>F(dW1iU9K>M~ntYrd4tgURF_FTH0D| zAf;u^kiRL3i4mY^0K{BzagW7{zrq3!o;1|&%76o!XEH90iM|NnS)$3iub+HX(5eXN zEX;=Z7$>fW{nUg;@=q36DM>(Qj>Z1tj58W^0d~DhK_gBo;-oaev;}*s^Pm?64YeID zwNQ=wFT9Q;$B0g`MEPvEh+uWHfGKO~3Kf%ev6L=8SA;v^(gc2&jjT`XU)Ox>bH8YL zgc2P0N*8MQfL!;QpDRABCbWvM>^aeSic=}K1@4qnsD;cay#Rg!Z;^E5w5w9myZLhZ z{*3z(p!)%>Y*dgPg0Lh@TZI#tip2!Mcx|G_i=y)POHV>XjuYk2EzHE^gjVGxmT-x? z_}>Yclx1!$g^fqag^C#CR{NjhmjtnHKzSkmdaamY9I1ly#vBCaHX48$+R<>uFRjA{ zvF!O3n@?Ej@y0UnmXwcxI%~J195u(apb7)TCD^pE3nPSQY0xLE_Hmt$9;saL$7#na z5|!dr2#=QI3LS@g3f6@IMOp#~8(>Hee-ZH9YdT6MgBAD}0jgstUQFBxCypF%FmVMr zin0)k@r0$UMNyJ6k}??y5rA9p)1jksqI6hGfu;yR(nvQ^%>PAdCUL1#wM)xcCcy&x zsM(Qp+=}=iH!wT01J~pWi%BfS!<5Beq$(ef{j&qJ>2M)=S403gs+LDPinb(W`wWrB zX@48Cf$)b<3J~EhLrPP@fqbObvVz&&1!6Mh*TtN*f#by6BTbLw4Ch>F3Uo>GeuCv* zMkc3$3j=@L>RxIoG0=5d(%L`!<7<~!HEBth>~cprJX2<0e0)?RRp!msEHwhzwex#- z+VsK#2zzP){~IwgA#kp>jg$*tW>6N$$a~VW)LzuT$)$@{(^ANx@e}UHLYU&Taa1@5 zbn@XA|K_oP757!%7E{^;ub3B`Ee4#IBunS?aT$xw z`W$hIB15$34q^g^#dtt-syN`&+Lw*!tc;qfIfljF?WQ^9P@%gwd|94~h%Ygwh#B(tlt)ulkJ|+c&0P)sE zjZUp20fZsk-?|L};=nQp7?xJr9L*FN?LBUQIPh$axrg{ej3{k~W0uWeQ z?I;Y5%nZtW6G7JuY_~)86j=oSAymwt?V2b2g%TK4OZoARKex0*Dwb zJssD>!djW_n-K>~YIr0It)U>FKknDgkLyE0PD4iP3{Wo=s^epy_7?S$qzKx!{)mov zIEX--3f_jF72N26N0*w>lA}mXZAFP|BQ!`6wyUl2m-$xoo-ND|nPOZhZq9cRmw9ZBAGDt6)~EcP>K?$bvOc^z7*8l*y{@z_ zw79s6r!9$?vR%Oy|9&To)YvL1wG#`=hZStn;85O|h}jNiEkD;6SD=8l`3xY5P^qzk zRH&Wk_{1_^Kbq|ugs-%{Hmdx%j?m9+daDmcqI)za6;&1#h!B36@sbzFiJi(?sjg~M z@m(w=>7{CbYHTfvzLD+YR$S&%EohG`cczrEf#4hY00&_3h$0bU!qo{5mN`hv#~Uu9 zHt~Gr9)m3=@#?}9iko}?en>hi&!VRtF_A(r#5C&2I@7J^oNrL2?H5st5N{@;hfM=X z_k1#fx;;N2TcRM(q2ks9w4HemXX0`&=+Frs2Y@r>sQU?}`92b_CD_fyoW78|XBQxv zmwaH|?)RidrXc*g!mLKywJyT?{7`L>=Z2x89y!^&qatcc2X@O*QjxK8j(__Rxa(K2 zMXJvnfmmv2TLOFdr_D_`^zb^q=!DNtWZYdLcUKF(FV!KKN|k0l4X~%865KlYeC$yM zn7vgqk_{1j4A%AKBbms`oyJOC{Ev;}Q?ZYw`drs$4QV4iSBq0j-dYD{5lMDVZ=AJP z7TKbHuJ*MWcgcy(=+B5i*w;&LjT>e# z1*yS{EJr5b^{r86vL66hoZi1;YKO8Ly)FyLQh&bRj<#n+_#GeY0P7Tf58%wNr^khi zQA$Bka{IETCC|Xr5^Ge`)ibOptW1JvL<9{|`X^kQ$PLd%zw&~<6CT92|7)M++Aion zw^yENAFF@>TTrzEfBy7u{i_Al7c*m(|GMB~<_D~YSP($wy?Y0b5>*aOqgg*Evf&VR zC5yBoI}%W`wg5Ln&Ak3#*W$wIdZZ#fC#~4=!<%8+lP>tP-<}Oh{UHBp*_8Nu*tW?i z4Gcd_3|8h9T=Mm1v3@1wE7Irim|-&G3bsb+QxxE%k|%JZ^9cyoH3=5*QH?LC?SqAK zwgH7sWaau+n6+=UG(?LrcWpF0u`+|~lTD!btDZL^lBkR`lM8XJTZN2g(5FgZO5I~; z4s$SOei`>4#HPuQQaqsoL``ajKxu7x`mf6emS#<5)2OLslm z#d}@TPg8&f!r;1!N`aH|{+@d={{8q)sNMF3p^-|Aj;{TCKb|AQAUJEW&k;ZIYtK}u z32n>^iew=AZU*Y{Rx7jik~vMgdTK{b6&1XXceUG=s~%=F>`*0@@n8%N+(bQBn)4AG zgAmo78Hr{zC*gefMMe}zd!q}!XLuBhC|H4Oq@7pzrs}v6 zgSc=qn~u5C$r#JA4gT3R4lABifmpeXIr~ebGQA5w#Cf=Q>qy{97AiIxGTFiA=(xRs zruyt`CKs=H>4)zq6q!tkYBVc$q;Qdfl@UM&NQ;gI+)g?|G1p{b(tIN*-Hb zb(^Vm4?4obdw2YcegK~bsKA4$`H|W!SlQmww<{PouO7s@+6rB6f%c)x(nt+2SoS;< zPd8Tlba8bj?fVHHM$du=N3ino2_5xrx8r_Yvuyj^k@NHY&7~pa%e#lNF=m6`O4wY_ zONmw<+;rHT%;<}GBc{kh@jD4dZYG0>!t)?&W-+k8Ay7WGv3BtkQdy~qT$aRyFOKI> zTh=pJ=GaTmBUz63!F@CSaAE!3(%xq<-Iph5FNYBEHg`{jCLK{diO=H6AHQvNpDNU< zzo%;Gcr=juAegE$R$YJK013uC)A0THYs9SETUsyGWto?JtwiP5yZ_PeG+BhKeH7Sg zxr+`21oPjgq^qTwof-3AN7lbOoN3EDY;xiB0$W>l9xcCaxDbaJk(^WXB3?W7`x|Z755Zlv4%OEP!(T1FXWA3CBAprF&~8N1C^?^u$bX}R9wU1Z z@aZ#9zFoNtBLe*u?j-mAtbMHPiAb_riu62o-QpeeF|vxc2lk3Yu`GGrLVIAdR;Skv zR|kXb2_w}$SJ&Tq42P;qo6^o0M%pI^el*pAYDR={pAaL96a<~PN?u~!vBltt@(b&> zAne=f_5#c%3<5@p+cg-7%Lh>caqpfr13?SyX3J1ck`#R=vIdWL%8Sa+>9THFob|9` zyNP!~FBajjK`;nsQtEH&yl+i1tdi2?2^eAwg>v&xLqa)BA}BJNE9dJTI1g&CPft@> zR#ugn9FVvAb!*pZi(SUf?J_O#a5K#X<$vFMHQ5(iQCaE+zW4Z`VYZwL zFOi_J6dswg%E~r2D=*X)ElXv)JCVhfGh>++LK7>mrd>8~!(yyM8{_4pHdEHZ!xFLi zP>8g{4GbqPXU{yGCTsd{B0v|~eI*dqGLBvC{rYmanKn02CCRM+>GgQ!aIB8#T^FJc z_T35XyMC`%Z3cb1{wUJJmvwpXcLy7n4uZcQ!l=dD z5uw7Qw?MqZgZR%tt`rsM44NtN8Yv6Fu@5L*hlpLyL?M|1pMt9fZsbS<#Ql*L2_5q$ zjCI1>Sv|{XTP_4LqI zgir98wu&#wmDFGzG1p4#Aof=4?J!q!SveuJg zbFn6wL}i-JR=>^{6gv*dH`j@pc79fFhb7Czw(pPd*KbgtCzl?#quKf_?p`*%N-!3J zP|8Y%@klW2N&1s1%bIRGvBgQm)Gnc-OfBdd(406QFXjeW^@W7i* zg=D?7P*bq-wB9QPpI4kOyRJ5C8@br*2R}~ zA@#lo(=ORf+mv@eYr@*D;Cnycc4)JaQDfP!&CkM}Rc^E{w_yv*T>Hbj5^Mo;-rqbG z_`h3Ol$SA9%T#?g^;(O(@q6gnUT~Y!aoxl>`s_ZEoWH5-;IErGdOo#Lv|uT46vbQ^ zK;LKmEjd~0U=auMN&o zV~Pjma$b)z6jG&V<(u%VsGHExj>=i&AzuWt=bWQ8oU@5gJLg5lw9@K*OWa$F%2_JX z=6^I7)^r0~k_I}IZ%3|jW4Rs#1+}*9lyfl{4&~d$91%+TK7n-*Yt*17Hte?A4lFKM zUqO!jNU;Cq=2BP&USq4BYV(|3i@pdI9VI`$9nPbh(#mv)SX#+-F-cj~qGq+Cy{w(` zLoMoT0%hNl<8v#Egr_lGiyMatU6(5v%BEWmI12@OD|m_9g%TfM`V_d9+eg1?K*b!J z8uRT5SgP-LhjN$w&r)F6vv2_Vz8x{wjp*=W1@D3U`vu2IiK<4uYr=0#WsTXJH;;DQ zRfOY`oYW>TI{E+{h)SMj#>rq=vo3gD+aDR-OX;e~>L88jwBR70-*1IPe^rd~rcocv z*~%WN$zAQS8ftPG?Xv~9j!f_TwqKK3@yLgPU$;$?3z`1*S&N1x-6H%M6}Q}YN7cU3 zpWgwn(OI?c0>;Hzy|%jF{=2USZFTp!LQ$o_H!*C_Ye9|92}MVU(N5uDI#03KORh}~ zA5#3LkLU!PMmJyZ$P-XFWR)j7dr^x-X`q{|2|U%RDLOiF!G^#MJ@Q&ODqFJ|d{poqjW zu-pqU0I7phV}W?lh}_{IJ9QZWn)Fc~%=c-c{VNePLX7jWm;3E!T|W3OaM7T?%GHYN!nISW_Ab1fm>qW9HCSgARqX z<^{04RE?7*N|W1QA3CJ8TdS*)+qb+4{gT51!+QST`xy+d&T%~Nb$UOc|Cx*B`tz-o z0YC7dfY~cL@VAMZi>rg3rkyRbm8+TEUmtrl(G75eEEpg^e8ndcCrbIkF_x53s8I{x zYNcPlK_zx4790QG3GdtU_~JNrVkiFrM$EwnXcL!qafI`}mH-g{csLP$Knb}F5rNLG zMX^+|kkoQ(_kbi-0LP}An7}yHWyM;CP!9&PaI8Q)s|kmFA9uuQ4n(gU35>GUNcE;_ z;lPt*KCzVo_S8LdqxdvchfxG67}uTjm3Z?F$y!4Ut_J9vLE!I}?Yi4iUZLTj@kqetlBPiafO zDHc=t;VsX{X)^Yu*7atEpFrq1*xs;uo{oBfiULNpioYN za*T|})qU4#tY!&{35nvK=s08M?rf{uV!D-F%AVT`>Uc;WeK~H=S!ExdA5z4Gud=?4!Z+AtvmREj&RFY=E z>$OkFPVG@d&CW>pZ=~+XONvLsp8`9q-W-i(lh8jOQptY)k5yXyd{~4HuqG1$%UuE}%R5~d)CQ!(g%ySyJhfH%mWZ?{2-J4g{2E?hT3I%T_}3@5VFtA`&y z($1)^ekj9kprOsqxBCfO{oenGoBM^jxd@3yS64=($@h)=ZvC57Mzk$|40rh8W9otC zZF1d_-E_r_20a0}_uR;$JK>(GM#LVgjLHamh%K~AResSM8yDQ+{i0j8;IBs^S6C#FpZO5Ns>gcFtG0VI_s5r>B2!qw=idcD$slgdf~E4f;~rKEJm^riE| z=cod)aM{RdQg$K-T4Of)Ijr#VKwepH9^Q-9WO+z#O6luR1+Fdy|J~Wg41aG<0$65R zzlJipya7 z5s@<%dpI})AC4+l??jNH4;jr$Fc!c*oED5?gFn33FH03KJ}-=b01 zzgmnh9e)^iQ8k>#jKmTJ;3M=%OBz$p-3wQy^zEsp)%HqztUV6G+Vsrt-}Kzd>5Ikm z+ zafER=Pf~?CXH3H@)}2p2Jb>*?%<9z~jJ+bS0aG;+nC*r*eW5zsI=P(lNG-+hZ7_b-@UC@O=VlNu+e6D5wzGvQ31PrJBXcP(lbZ!on;aeltz#N^X!z_Be&su@jCKFr3okE$fRDeA1P!XFulvJ8@6NU5eqV@BkAXcY=fmFX z(6*zlKHtQ`uof3Zx?Tj4fn}&0Z@nME#m2Az7s}dDlzo~v zWP|#5!Om~^f6iEiNbw( zY8ZlD-rTfyGbl8S7|?@VZ2iTIpXtH4tiF{da}_hzIfY6m$)jgd8GTtw1>_{Wf;@!@ z`223bP<73AQd|h+Qx+GNghqkKz!@d8zT*_YFaW>X+AfAw3{EhZz1rS*@6CSLcA4Y# zKD93#D>N9Izen?iWkCQp^ALG#?wzu4sdeP3lDWdloYzu>rG0m@I5sHrDR6 z?U3GuXNV5u7!T!0(}Bb0CBXC#vfl4>I)`DwKvp2$`dvpp1Dpjxs31MZ$vf~9+CXkW zzi1|dx?0TZ&ohK2Tz(hJB{dElpGjV;>Q2AsOJP>y-~`Y+XGRTNyLiU8k>;tVnbs*B zSR+l2(_jV$o_)!(WF{~kzeI+SKHnMs8db!K5>dwu_1(3izzftEsb-rxmDi+u=(yaJ?QnCD2Mw%Xjz=0%lOpa6Qu81tr$@$;&oo>>ZC+O;hV zqvI&YukA!kZ>YnBynEPZI8I_DfzJ&w&+soe2E`0mdGu+Sm3DVLHG(!Jcwy)oos)#) zO$l}AqO)|I7PTrc$$Tq6w|45U!jJo(putlxt>uhSC`u$on0{GLE_axwMl&nr$fkO~ zQ$DBnG7>00lbuMkMxt8S$+^r^ev?_@ISNFnju|D$ zo-zcZP7Z`*MIiI)-U|cKhIoXtykq|&4E_yjjTZyh3N_Np%v~rarV61}NrMM}DOd`N zHOZ&@G#-vE4I}MAX^+pQA_+ZZu+H^c3!QUJIO3vxS?vL4npeFMnd+m*YyEh z->?3p)7nhJP9_V|Tm@%n;X$O~l%=H0-L>bBaj|HkMYrGkk6-N+-I_k`Eq?m;Lg)3o zO#}xD4de}1VMnsG`6nuo@Ay(8)6xbV;dS1n4us4JE{7z#YSf$|*3JPuEUANAQqt%O zzG@Fz3tE3{Y?7QzVOcQ`{+an*Gn0&u-f1RC8~_}3)Zb-nQZ%Fp5fUiTr56a-bS5GDjmK}>1-F?FQ{^fFVVVhuJ+mCkeWWr zjNjbzBH4wvJr!)YuG+9>CTBF?yiVmfmKU?0_I3DfG@hThk72@|pOvrHmvGPXUB2jI zcSYPwbEcSk0=@t4O7_OxYx?NV^oGynx5KurKlUZ-c_E{e$MyIdg0scOVZMMWv1F@ews38_p)<)s;|9i zI#j*p=(b6hjH)Y3ecwJ({ZVyS?qKx$&+Df=@dz$H{pwn~T-}q4TVKmn*F0Xfd|utN zo6qOfFDyQNZF*c?>h0C*_x`+g+xlMR_Uz~D`t9z0K6$V9xBcHYrw_+}m9eZ^^S$E! z%lvaSzwdtkn_h2G|M1cJ{jtCP_S^qoRBCvDcZyv`>WPpH%vE> zZeTnHGy>Ab2RH4}HFmUd2WJA6Tm)(qMA7&hC<3p0lJkqeBhl#Ezudkp{u-z~hlPPb z07ZK}Pz0_$v7i8(tD_`5Efaw1&I7w7sFu$F1_XHK0BA&MF3|7TwC6QQ3mE||KMgcO z2E}r9U>Jb4Lwt^G2-Z;OT`gwatAFhD<05~ja_ z(c1<^GurWz=;ol$lOoL7QwTE$X%YopJNm>6Li?&xsCKkz7<3cRCn69g+$n>afHEzC zt{;8W7@n=B^!_)(h>QlTy>WB{&^x*a0~{KW4ZzmzMK=q*?}#wVvI*HN z)Se`|Dd=4-ged{d&`?3?c%kb@Zx15$zivayVyLad0B=@c4g%#WL54(N_PE;v;sF4< C6`d^r literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/IbisScribeTargets.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/IbisScribeTargets.scala deleted file mode 100644 index de1108f56..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/IbisScribeTargets.scala +++ /dev/null @@ -1,55 +0,0 @@ -package com.twitter.frigate.pushservice.util - -import com.twitter.frigate.thriftscala.CommonRecommendationType -import com.twitter.frigate.thriftscala.CommonRecommendationType._ - -object IbisScribeTargets { - val User2 = "magic_rec_user_2" - val User4 = "magic_rec_user_4" - val Tweet2 = "magic_rec_tweet_2" - val Tweet4 = "magic_rec_tweet_4" - val Tweet5 = "magic_rec_tweet_5" - val Tweet9 = "magic_rec_tweet_9" - val Tweet10 = "magic_rec_tweet_10" - val Tweet11 = "magic_rec_tweet_11" - val Tweet12 = "magic_rec_tweet_12" - val Tweet16 = "magic_rec_tweet_16" - val Hashtag = "magic_rec_hashtag" - val UnreadBadgeCount17 = "magic_rec_unread_badge_count_17" - val Highlights = "highlights" - val TweetAnalytics = "magic_rec_tweet_analytics" - val Untracked = "untracked" - - def crtToScribeTarget(crt: CommonRecommendationType): String = crt match { - case UserFollow => - User2 - case HermitUser => - User4 - case TweetRetweet | TweetFavorite => - Tweet2 - case TweetRetweetPhoto | TweetFavoritePhoto => - Tweet4 - case TweetRetweetVideo | TweetFavoriteVideo => - Tweet5 - case UrlTweetLanding => - Tweet9 - case F1FirstdegreeTweet | F1FirstdegreePhoto | F1FirstdegreeVideo => - Tweet10 - case AuthorTargetingTweet => - Tweet11 - case PeriscopeShare => - Tweet12 - case CommonRecommendationType.Highlights => - Highlights - case HashtagTweet | HashtagTweetRetweet => - Hashtag - case PinnedTweet => - Tweet16 - case UnreadBadgeCount => - UnreadBadgeCount17 - case TweetImpressions => - TweetAnalytics - case _ => - Untracked - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/InlineActionUtil.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/InlineActionUtil.docx new file mode 100644 index 0000000000000000000000000000000000000000..6e48d9bded70d683f23aedc5c48acbbcf580310b GIT binary patch literal 39197 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

    3k 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 uDA$$ycq>m*yhFZ!awe%!p?f9 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 AE&u=k literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/InlineActionUtil.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/InlineActionUtil.scala deleted file mode 100644 index 2900b7418..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/InlineActionUtil.scala +++ /dev/null @@ -1,219 +0,0 @@ -package com.twitter.frigate.pushservice.util - -import com.google.common.io.BaseEncoding -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.frigate.pushservice.model.PushTypes.Target -import com.twitter.frigate.pushservice.params.InlineActionsEnum -import com.twitter.frigate.pushservice.params.PushParams -import com.twitter.frigate.pushservice.params.PushFeatureSwitchParams -import com.twitter.ibis2.lib.util.JsonMarshal -import com.twitter.notifications.platform.thriftscala._ -import com.twitter.notificationservice.thriftscala.CreateGenericNotificationResponse -import com.twitter.scrooge.BinaryThriftStructSerializer -import com.twitter.util.Future - -/** - * This class provides utility functions for inline action for push - */ -object InlineActionUtil { - - def scopedStats(statsReceiver: StatsReceiver): StatsReceiver = - statsReceiver.scope(getClass.getSimpleName) - - /** - * Util function to build web inline actions for Ibis - * @param actions list of inline actions to be hydrated depending on the CRT - * @param enableForDesktopWeb if web inline actions should be shown on desktop RWeb, for experimentation purpose - * @param enableForMobileWeb if web inline actions should be shwon on mobile RWeb, for experimentation purpose - * @return Params for web inline actions to be consumed by `smart.inline.actions.web.mustache` in Ibis - */ - def getGeneratedTweetInlineActionsForWeb( - actions: Seq[InlineActionsEnum.Value], - enableForDesktopWeb: Boolean, - enableForMobileWeb: Boolean - ): Map[String, String] = { - if (!enableForDesktopWeb && !enableForMobileWeb) { - Map.empty - } else { - val inlineActions = buildEnrichedInlineActionsMap(actions) ++ Map( - "enable_for_desktop_web" -> enableForDesktopWeb.toString, - "enable_for_mobile_web" -> enableForMobileWeb.toString - ) - Map( - "inline_action_details_web" -> JsonMarshal.toJson(inlineActions), - ) - } - } - - def getGeneratedTweetInlineActionsV1( - actions: Seq[InlineActionsEnum.Value] - ): Map[String, String] = { - val inlineActions = buildEnrichedInlineActionsMap(actions) - Map( - "inline_action_details" -> JsonMarshal.toJson(inlineActions) - ) - } - - private def buildEnrichedInlineActionsMap( - actions: Seq[InlineActionsEnum.Value] - ): Map[String, Seq[Map[String, Any]]] = { - Map( - "actions" -> actions - .map(_.toString.toLowerCase) - .zipWithIndex - .map { - case (a: String, i: Int) => - Map("action" -> a) ++ Map( - s"use_${a}_stringcenter_key" -> true, - "last" -> (i == (actions.length - 1)) - ) - }.seq - ) - } - - def getGeneratedTweetInlineActionsV2( - actions: Seq[InlineActionsEnum.Value] - ): Map[String, String] = { - val v2CustomActions = actions - .map { - case InlineActionsEnum.Favorite => - NotificationCustomAction( - Some("mr_inline_favorite_title"), - CustomActionData.LegacyAction(LegacyAction(ActionIdentifier.Favorite)) - ) - case InlineActionsEnum.Follow => - NotificationCustomAction( - Some("mr_inline_follow_title"), - CustomActionData.LegacyAction(LegacyAction(ActionIdentifier.Follow))) - case InlineActionsEnum.Reply => - NotificationCustomAction( - Some("mr_inline_reply_title"), - CustomActionData.LegacyAction(LegacyAction(ActionIdentifier.Reply))) - case InlineActionsEnum.Retweet => - NotificationCustomAction( - Some("mr_inline_retweet_title"), - CustomActionData.LegacyAction(LegacyAction(ActionIdentifier.Retweet))) - case _ => - NotificationCustomAction( - Some("mr_inline_favorite_title"), - CustomActionData.LegacyAction(LegacyAction(ActionIdentifier.Favorite)) - ) - } - val notifications = NotificationCustomActions(v2CustomActions) - Map("serialized_inline_actions_v2" -> serializeActionsToBase64(notifications)) - } - - def getDislikeInlineAction( - candidate: PushCandidate, - ntabResponse: CreateGenericNotificationResponse - ): Option[NotificationCustomAction] = { - ntabResponse.successKey.map(successKey => { - val urlParams = Map[String, String]( - "answer" -> "dislike", - "notification_hash" -> successKey.hashKey.toString, - "upstream_uid" -> candidate.impressionId, - "notification_timestamp" -> successKey.timestampMillis.toString - ) - val urlParamsString = urlParams.map(kvp => f"${kvp._1}=${kvp._2}").mkString("&") - - val httpPostRequest = HttpRequest.PostRequest( - PostRequest(url = f"/2/notifications/feedback.json?$urlParamsString", bodyParams = None)) - val httpRequestAction = HttpRequestAction( - httpRequest = httpPostRequest, - scribeAction = Option("dislike_scribe_action"), - isAuthorizationRequired = Option(true), - isDestructive = Option(false), - undoable = None - ) - val dislikeAction = CustomActionData.HttpRequestAction(httpRequestAction) - NotificationCustomAction(title = Option("mr_inline_dislike_title"), action = dislikeAction) - }) - } - - /** - * Given a serialized inline action v2, update the action at index to the given new action. - * If given index is bigger than current action length, append the given inline action at the end. - * @param serialized_inline_actions_v2 the original action in serialized version - * @param actionOption an Option of the new action to replace the old one - * @param index the position where the old action will be replaced - * @return a new serialized inline action v2 - */ - def patchInlineActionAtPosition( - serialized_inline_actions_v2: String, - actionOption: Option[NotificationCustomAction], - index: Int - ): String = { - val originalActions: Seq[NotificationCustomAction] = deserializeActionsFromString( - serialized_inline_actions_v2).actions - val newActions = actionOption match { - case Some(action) if index >= originalActions.size => originalActions ++ Seq(action) - case Some(action) => originalActions.updated(index, action) - case _ => originalActions - } - serializeActionsToBase64(NotificationCustomActions(newActions)) - } - - /** - * Return list of available inline actions for ibis2 model - */ - def getGeneratedTweetInlineActions( - target: Target, - statsReceiver: StatsReceiver, - actions: Seq[InlineActionsEnum.Value], - ): Map[String, String] = { - val scopedStatsReceiver = scopedStats(statsReceiver) - val useV1 = target.params(PushFeatureSwitchParams.UseInlineActionsV1) - val useV2 = target.params(PushFeatureSwitchParams.UseInlineActionsV2) - if (useV1 && useV2) { - scopedStatsReceiver.counter("use_v1_and_use_v2").incr() - getGeneratedTweetInlineActionsV1(actions) ++ getGeneratedTweetInlineActionsV2(actions) - } else if (useV1 && !useV2) { - scopedStatsReceiver.counter("only_use_v1").incr() - getGeneratedTweetInlineActionsV1(actions) - } else if (!useV1 && useV2) { - scopedStatsReceiver.counter("only_use_v2").incr() - getGeneratedTweetInlineActionsV2(actions) - } else { - scopedStatsReceiver.counter("use_neither_v1_nor_v2").incr() - Map.empty[String, String] - } - } - - /** - * Return Tweet inline action ibis2 model values after applying experiment logic - */ - def getTweetInlineActionValue(target: Target): Future[Map[String, String]] = { - if (target.isLoggedOutUser) { - Future( - Map( - "show_inline_action" -> "false" - ) - ) - } else { - val showInlineAction: Boolean = target.params(PushParams.MRAndroidInlineActionOnPushCopyParam) - Future( - Map( - "show_inline_action" -> s"$showInlineAction" - ) - ) - } - } - - private val binaryThriftStructSerializer: BinaryThriftStructSerializer[ - NotificationCustomActions - ] = BinaryThriftStructSerializer.apply(NotificationCustomActions) - private val base64Encoding = BaseEncoding.base64() - - def serializeActionsToBase64(notificationCustomActions: NotificationCustomActions): String = { - val actionsAsByteArray: Array[Byte] = - binaryThriftStructSerializer.toBytes(notificationCustomActions) - base64Encoding.encode(actionsAsByteArray) - } - - def deserializeActionsFromString(serializedInlineActionV2: String): NotificationCustomActions = { - val actionAsByteArray = base64Encoding.decode(serializedInlineActionV2) - binaryThriftStructSerializer.fromBytes(actionAsByteArray) - } - -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/MediaAnnotationsUtil.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/MediaAnnotationsUtil.docx new file mode 100644 index 0000000000000000000000000000000000000000..bea25ea1c041c6659ce4f0b1f74060b9d0b3e3d1 GIT binary patch literal 37345 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 z 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 "0") - - val nudityCategoryId = "0" - val beautyCategoryId = "0" - val singlePersonCategoryId = "0" - val sensitiveMediaCategoryFeatureName = - "tweet.mediaunderstanding.tweet_annotations.sensitive_category_probabilities" - - def updateMediaCategoryStats( - candidates: Seq[CandidateDetails[PushCandidate]] - )( - implicit statsReceiver: StatsReceiver - ) = { - - val statScope = statsReceiver.scope("mediaStats") - val filteredCandidates = candidates.filter { candidate => - !candidate.candidate.sparseContinuousFeatures - .getOrElse(sensitiveMediaCategoryFeatureName, Map.empty[String, Double]).contains( - nudityCategoryId) - } - - if (filteredCandidates.isEmpty) - statScope.counter("emptyCandidateListAfterNudityFilter").incr() - else - statScope.counter("nonEmptyCandidateListAfterNudityFilter").incr() - candidates.foreach { candidate => - statScope.counter("totalCandidates").incr() - val mediaFeature = candidate.candidate.sparseContinuousFeatures - .getOrElse(sensitiveMediaCategoryFeatureName, Map.empty[String, Double]) - if (mediaFeature.nonEmpty) { - val mediaCategoryByMaxScore = mediaFeature.maxBy(_._2)._1 - statScope - .scope("mediaCategoryByMaxScore").counter(mediaIdToCategoryMapping - .getOrElse(mediaCategoryByMaxScore, "undefined")).incr() - - mediaFeature.keys.map { feature => - statScope - .scope("mediaCategory").counter(mediaIdToCategoryMapping - .getOrElse(feature, "undefined")).incr() - } - } - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/MinDurationModifierCalculator.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/MinDurationModifierCalculator.docx new file mode 100644 index 0000000000000000000000000000000000000000..6ddd9bf636185c22fcc04d12239f92080f903628 GIT binary patch literal 38422 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 FSParams} -import com.twitter.util.Future -import com.twitter.util.Time -import java.util.Calendar -import java.util.TimeZone - -case class MinDurationModifierCalculator() { - - private def mapCountryCodeToTimeZone( - countryCode: String, - stats: StatsReceiver - ): Option[Calendar] = { - PushConstants.countryCodeToTimeZoneMap - .get(countryCode.toUpperCase).map(timezone => - Calendar.getInstance(TimeZone.getTimeZone(timezone))) - } - - private def transformToHour( - dayOfHour: Int - ): Int = { - if (dayOfHour < 0) dayOfHour + 24 - else dayOfHour - } - - private def getMinDurationByHourOfDay( - hourOfDay: Int, - startTimeList: Seq[Int], - endTimeList: Seq[Int], - minDurationTimeModifierConst: Seq[Int], - stats: StatsReceiver - ): Option[Int] = { - val scopedStats = stats.scope("getMinDurationByHourOfDay") - scopedStats.counter("request").incr() - val durationOpt = (startTimeList, endTimeList, minDurationTimeModifierConst).zipped.toList - .filter { - case (startTime, endTime, _) => - if (startTime <= endTime) hourOfDay >= startTime && hourOfDay < endTime - else (hourOfDay >= startTime) || hourOfDay < endTime - case _ => false - }.map { - case (_, _, modifier) => modifier - }.headOption - durationOpt match { - case Some(duration) => scopedStats.counter(s"$duration.minutes").incr() - case _ => scopedStats.counter("none").incr() - } - durationOpt - } - - def getMinDurationModifier( - target: Target, - calendar: Calendar, - stats: StatsReceiver - ): Option[Int] = { - val startTimeList = target.params(FSParams.MinDurationModifierStartHourList) - val endTimeList = target.params(FSParams.MinDurationModifierEndHourList) - val minDurationTimeModifierConst = target.params(FSParams.MinDurationTimeModifierConst) - if (startTimeList.length != endTimeList.length || minDurationTimeModifierConst.length != startTimeList.length) { - None - } else { - val hourOfDay = calendar.get(Calendar.HOUR_OF_DAY) - getMinDurationByHourOfDay( - hourOfDay, - startTimeList, - endTimeList, - minDurationTimeModifierConst, - stats) - } - } - - def getMinDurationModifier( - target: Target, - countryCodeOpt: Option[String], - stats: StatsReceiver - ): Option[Int] = { - val scopedStats = stats - .scope("getMinDurationModifier") - scopedStats.counter("total_requests").incr() - - countryCodeOpt match { - case Some(countryCode) => - scopedStats - .counter("country_code_exists").incr() - val calendarOpt = mapCountryCodeToTimeZone(countryCode, scopedStats) - calendarOpt.flatMap(calendar => getMinDurationModifier(target, calendar, scopedStats)) - case _ => None - } - } - - def getMinDurationModifier(target: Target, stats: StatsReceiver): Future[Option[Int]] = { - val scopedStats = stats - .scope("getMinDurationModifier") - scopedStats.counter("total_requests").incr() - - val startTimeList = target.params(FSParams.MinDurationModifierStartHourList) - val endTimeList = target.params(FSParams.MinDurationModifierEndHourList) - val minDurationTimeModifierConst = target.params(FSParams.MinDurationTimeModifierConst) - if (startTimeList.length != endTimeList.length || minDurationTimeModifierConst.length != startTimeList.length) { - Future.value(None) - } else { - target.localTimeInHHMM.map { - case (hourOfDay, _) => - getMinDurationByHourOfDay( - hourOfDay, - startTimeList, - endTimeList, - minDurationTimeModifierConst, - scopedStats) - case _ => None - } - } - } - - def getMinDurationModifierByUserOpenedHistory( - target: Target, - openedPushByHourAggregatedOpt: Option[Map[Int, Int]], - stats: StatsReceiver - ): Option[Int] = { - val scopedStats = stats - .scope("getMinDurationModifierByUserOpenedHistory") - scopedStats.counter("total_requests").incr() - openedPushByHourAggregatedOpt match { - case Some(openedPushByHourAggregated) => - if (openedPushByHourAggregated.isEmpty) { - scopedStats.counter("openedPushByHourAggregated_empty").incr() - None - } else { - val currentUTCHour = TimeUtil.hourOfDay(Time.now) - val utcHourWithMaxOpened = if (target.params(FSParams.EnableRandomHourForQuickSend)) { - (target.targetId % 24).toInt - } else { - openedPushByHourAggregated.maxBy(_._2)._1 - } - val numOfMaxOpened = openedPushByHourAggregated.maxBy(_._2)._2 - if (numOfMaxOpened >= target.params(FSParams.SendTimeByUserHistoryMaxOpenedThreshold)) { - scopedStats.counter("pass_experiment_bucket_threshold").incr() - if (numOfMaxOpened >= target - .params(FSParams.SendTimeByUserHistoryMaxOpenedThreshold)) { // only update if number of opened pushes meet threshold - scopedStats.counter("pass_max_threshold").incr() - val quickSendBeforeHours = - target.params(FSParams.SendTimeByUserHistoryQuickSendBeforeHours) - val quickSendAfterHours = - target.params(FSParams.SendTimeByUserHistoryQuickSendAfterHours) - - val hoursToLessSend = target.params(FSParams.SendTimeByUserHistoryNoSendsHours) - - val quickSendTimeMinDurationInMinute = - target.params(FSParams.SendTimeByUserHistoryQuickSendMinDurationInMinute) - val noSendTimeMinDuration = - target.params(FSParams.SendTimeByUserHistoryNoSendMinDuration) - - val startTimeForNoSend = transformToHour( - utcHourWithMaxOpened - quickSendBeforeHours - hoursToLessSend) - val startTimeForQuickSend = transformToHour( - utcHourWithMaxOpened - quickSendBeforeHours) - val endTimeForNoSend = - transformToHour(utcHourWithMaxOpened - quickSendBeforeHours) - val endTimeForQuickSend = - transformToHour(utcHourWithMaxOpened + quickSendAfterHours) + 1 - - val startTimeList = Seq(startTimeForNoSend, startTimeForQuickSend) - val endTimeList = Seq(endTimeForNoSend, endTimeForQuickSend) - val minDurationTimeModifierConst = - Seq(noSendTimeMinDuration, quickSendTimeMinDurationInMinute) - - getMinDurationByHourOfDay( - currentUTCHour, - startTimeList, - endTimeList, - minDurationTimeModifierConst, - scopedStats) - - } else None - } else None - } - case _ => - None - } - } - -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/MrUserStateUtil.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/MrUserStateUtil.docx new file mode 100644 index 0000000000000000000000000000000000000000..34f037d54e37bee04a51dc1c123b204b3677051d GIT binary patch literal 36882 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 U%?ivxpj;)$kO<5kv%5h&0BN}52mk;8 literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/MrUserStateUtil.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/MrUserStateUtil.scala deleted file mode 100644 index 33333c4c4..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/MrUserStateUtil.scala +++ /dev/null @@ -1,16 +0,0 @@ -package com.twitter.frigate.pushservice.util - -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.base.TargetUser - -object MrUserStateUtil { - def updateMrUserStateStats(target: TargetUser)(implicit statsReceiver: StatsReceiver) = { - statsReceiver.counter("AllUserStates").incr() - target.targetMrUserState.map { - case Some(state) => - statsReceiver.counter(state.name).incr() - case _ => - statsReceiver.counter("UnknownUserState").incr() - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/NsfwPersonalizationUtil.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/NsfwPersonalizationUtil.docx new file mode 100644 index 0000000000000000000000000000000000000000..278a8cfbf75fdebe171c5608936be1f9ce9450ac GIT binary patch literal 38115 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 F{|D+sW1|27 literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/NsfwPersonalizationUtil.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/NsfwPersonalizationUtil.scala deleted file mode 100644 index 01c8d0a72..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/NsfwPersonalizationUtil.scala +++ /dev/null @@ -1,126 +0,0 @@ -package com.twitter.frigate.pushservice.util - -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.scio.nsfw_user_segmentation.thriftscala.NSFWUserSegmentation - -object NsfwPersonalizationUtil { - def computeNsfwUserStats( - targetNsfwInfo: Option[NsfwInfo] - )( - implicit statsReceiver: StatsReceiver - ): Unit = { - - def computeNsfwProfileVisitStats(sReceiver: StatsReceiver, nsfwProfileVisits: Long): Unit = { - if (nsfwProfileVisits >= 1) - sReceiver.counter("nsfwProfileVisits_gt_1").incr() - if (nsfwProfileVisits >= 2) - sReceiver.counter("nsfwProfileVisits_gt_2").incr() - if (nsfwProfileVisits >= 3) - sReceiver.counter("nsfwProfileVisits_gt_3").incr() - if (nsfwProfileVisits >= 5) - sReceiver.counter("nsfwProfileVisits_gt_5").incr() - if (nsfwProfileVisits >= 8) - sReceiver.counter("nsfwProfileVisits_gt_8").incr() - } - - def computeRatioStats( - sReceiver: StatsReceiver, - ratio: Int, - statName: String, - intervals: List[Double] = List(0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9) - ): Unit = { - intervals.foreach { i => - if (ratio > i * 10000) - sReceiver.counter(f"${statName}_greater_than_${i}").incr() - } - } - val sReceiver = statsReceiver.scope("nsfw_personalization") - sReceiver.counter("AllUsers").incr() - - (targetNsfwInfo) match { - case (Some(nsfwInfo)) => - val sensitive = nsfwInfo.senstiveOptIn.getOrElse(false) - val nsfwFollowRatio = - nsfwInfo.nsfwFollowRatio - val totalFollows = nsfwInfo.totalFollowCount - val numNsfwProfileVisits = nsfwInfo.nsfwProfileVisits - val nsfwRealGraphScore = nsfwInfo.realGraphScore - val nsfwSearchScore = nsfwInfo.searchNsfwScore - val totalSearches = nsfwInfo.totalSearches - val realGraphScore = nsfwInfo.realGraphScore - val searchScore = nsfwInfo.searchNsfwScore - - if (sensitive) - sReceiver.counter("sensitiveOptInEnabled").incr() - else - sReceiver.counter("sensitiveOptInDisabled").incr() - - computeRatioStats(sReceiver, nsfwFollowRatio, "nsfwRatio") - computeNsfwProfileVisitStats(sReceiver, numNsfwProfileVisits) - computeRatioStats(sReceiver, nsfwRealGraphScore.toInt, "nsfwRealGraphScore") - - if (totalSearches >= 10) - computeRatioStats(sReceiver, nsfwSearchScore.toInt, "nsfwSearchScore") - if (searchScore == 0) - sReceiver.counter("lowSearchScore").incr() - if (realGraphScore < 500) - sReceiver.counter("lowRealScore").incr() - if (numNsfwProfileVisits == 0) - sReceiver.counter("lowProfileVisit").incr() - if (nsfwFollowRatio == 0) - sReceiver.counter("lowFollowScore").incr() - - if (totalSearches > 10 && searchScore > 5000) - sReceiver.counter("highSearchScore").incr() - if (realGraphScore > 7000) - sReceiver.counter("highRealScore").incr() - if (numNsfwProfileVisits > 5) - sReceiver.counter("highProfileVisit").incr() - if (totalFollows > 10 && nsfwFollowRatio > 7000) - sReceiver.counter("highFollowScore").incr() - - if (searchScore == 0 && realGraphScore <= 500 && numNsfwProfileVisits == 0 && nsfwFollowRatio == 0) - sReceiver.counter("lowIntent").incr() - if ((totalSearches > 10 && searchScore > 5000) || realGraphScore > 7000 || numNsfwProfileVisits > 5 || (totalFollows > 10 && nsfwFollowRatio > 7000)) - sReceiver.counter("highIntent").incr() - case _ => - } - } -} - -case class NsfwInfo(nsfwUserSegmentation: NSFWUserSegmentation) { - - val scalingFactor = 10000 // to convert float to int as custom fields cannot be float - val senstiveOptIn: Option[Boolean] = nsfwUserSegmentation.nsfwView - val totalFollowCount: Long = nsfwUserSegmentation.totalFollowCnt.getOrElse(0L) - val nsfwFollowCnt: Long = - nsfwUserSegmentation.nsfwAdminOrHighprecOrAgathaGtP98FollowsCnt.getOrElse(0L) - val nsfwFollowRatio: Int = { - if (totalFollowCount != 0) { - (nsfwFollowCnt * scalingFactor / totalFollowCount).toInt - } else 0 - } - val nsfwProfileVisits: Long = - nsfwUserSegmentation.nsfwAdminOrHighPrecOrAgathaGtP98Visits - .map(_.numProfilesInLast14Days).getOrElse(0L) - val realGraphScore: Int = - nsfwUserSegmentation.realGraphMetrics - .map { rm => - if (rm.totalOutboundRGScore != 0) - rm.totalNsfwAdmHPAgthGtP98OutboundRGScore * scalingFactor / rm.totalOutboundRGScore - else 0d - }.getOrElse(0d).toInt - val totalSearches: Long = - nsfwUserSegmentation.searchMetrics.map(_.numNonTrndSrchInLast14Days).getOrElse(0L) - val searchNsfwScore: Int = nsfwUserSegmentation.searchMetrics - .map { sm => - if (sm.numNonTrndNonHshtgSrchInLast14Days != 0) - sm.numNonTrndNonHshtgGlobalNsfwSrchInLast14Days.toDouble * scalingFactor / sm.numNonTrndNonHshtgSrchInLast14Days - else 0 - }.getOrElse(0d).toInt - val hasReported: Boolean = - nsfwUserSegmentation.notifFeedbackMetrics.exists(_.notifReportMetrics.exists(_.countTotal != 0)) - val hasDisliked: Boolean = - nsfwUserSegmentation.notifFeedbackMetrics - .exists(_.notifDislikeMetrics.exists(_.countTotal != 0)) -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/OverrideNotificationUtil.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/OverrideNotificationUtil.docx new file mode 100644 index 0000000000000000000000000000000000000000..e347ef3b4272f4511edd319943418b20ee2d11c8 GIT binary patch literal 39200 zcmagFb9^OT+AbX1?%1~Nq+{E*Z5tiiHafO#+v%WV8z=odGxN^Od(QX$Q~708-Iwm# zRkhZxEhh;Kf&u^l00B^$#->)KP!yL02mmk!1^|HkHL59OYvW{WFoXin7-(2c!7N)|2a%nU!pR8PK9$+Qn4HV| zgs&^%vyh)i_WKGgsY;e*22`6rduq7em9l7vUPJtV<4>1Ks(J@gW&67I-Xb`+A!u8K zxnI^jw65c-OebJ>o1X-V zVR}3Y!DXKI1W=IG6KE%br89QKRCxtG_CG#S6vYtpKCgu7JTA;jTTdwajlhSnDD(YP zXcve{9%bTS`?Nn1BJ{q`4boiY5SH=o5Z2`(_vat*e7c5vJ=6zX!+3)6uYMGJ>nuKS zUJuAOl%h_i(0otADMaj!(|`4Rfi9`|Cd}LWwp_A#z&G|tnE#3*tpgzUA6;}OmE?c= z>fRO*008vYUtI@dD@QuoKijJKNeN&E1iwpOkr9#-nxOpS4TxmO4u1kSrM)0^ ztMtfwA~=3y(nnSk6?|T*E#yH>iu#LLfoefvT}o>)xYD4q1jIXNCvsJ1Z<={qFk4Zn zCYFejs@7jtt`SdsO-^EZe*7n~c8H2;GDZyO?1gaR_Q-ca;z!dz%41tI(b`_x<;*lI zu4#`0g=7_V+=%bMCOeP@*i9R_OJ-a4zaP>N6HTgmOqn=u1d^6LIe7V81=>0<2vD(;Nx|m;5bn_Pn%`KOhfcL(^r; zcA)6z@WR6028|<$AD@#^3sWufd(${OS&F_-=4Kw;uq%&gC}dXRgQ-nFVfILQgz>>hM&?aVWd}i~)7@#~3ec!P|YGV1tq{)n9YCRAfh#PH$z&duw!QB3 zSk)pJ4Wv_=s$BJ$CtT_B)P_w ztyFn>*@z0@_ZqVb_tI$|mhb!bC+f*buyCS4`tM92phq;E*5fPI zm8pi^M4!iYs|gI}aSQH=hXlYi^`DVLiOlKXjwyBMl%{UhXoVSg=9C_rxozPmJBq}k_SWX zyNkvi-lG}jI|A*sHN(-)vojC$i7ObpPfI-{Zpt~N)%$4FIIe$-)pkk}@1*KBF;{3N zy0WL0Y+TB~x;S5v?Dx)&47xWu+$+e8=Uc4L#rre7|2#2lG`DxCVE_Oc-TwZ-y4pGz z(S3btovpuaPJhmfbL~&ZHBO|@_YWu>$9aA_2IBLBd$ZAYR&x!LHB!a79L6;6LA2bV zrZ-~5^seR4ca?Z+tDYcMu^GB-ar!1|?}jz)Di_tm)ytfGgiQom@<=Ytb{$LTxD`{t zXz;8mc++7n*{0Z7b~w8cgSpi<5`)vnKwoaGX5hmZLL^BLmVta8nKv10a^pE0)?hwj zL^K^??sT}m&`NX zuI*erd+v}J@!;_u_z59-vsk)n`{u@huu{q!vSfcb8zvzIqps`bxMH!5-gmRthN|0v*k6{O^X?^>JSAz!9L#9{j-M2VniNP@_*(k856S=84Fk3R|SYZv0nF&U?k$ ziz0iV!uCYbuM=EzCEDzbFuCMlh|prkS$(LR&fbR>3+TIUF~e8@{qEy>ov94$fW1e| zc9U?BhwKuq0B1<_SVfYADCvBpYCqV23z+-5mDjX`->8BjEx6Oi%FfzPd%YWcOT%_p zOX(XXcz{#K*b{Eii*l%!F!v7$k_EDaG;X3qTm^s_RIezpK=Qb72%GS)rF0zR!le+^ z(uc;ohGkXueVXCXNZ}Z$=0(!YkBYcVE!5*Wxqb&&nbEZbDz@5e0tiHsnh!!Q!V)_N z$UE#0rNRg-Uz-)Wix7)T0H&xGtaTD_fG{}^b8Iw!rj<>nfUyUhAS2I>ah0D`rGY*O@uQ61-E9cc8nM8>#}^ zv)Vh?9x`UK25>@W^4B4-V8ra-M&ad}^uGa1i0`Z>Q``-XRG%=Tek;-)8WTXmX3DN# z2_lXTIj9EijFd2$yJ^xN3_;&5^eOvHF}keN|CT|Tlo8ij65Z{fonq%vK)SDVlmvF1 zGNsu%MK!nVKNUC}JL@#F&~Q_~R>v4>b*eBQy)Yh%8+7wq#)HNYPy-C%S9O!aX)mR= zU8K_+4T(NIQ8U<}OB(MwXhT}xd-z>utBoZI7TPWtCl*0e;nLpzMuh(cEFtg7N;>uFZ&*7d{-)`=Rr z2{S8$F(xKc^>kUODV4PfT)(?}1uXzYaK@XKot(xqZdNd;=@e1(B`mdEK&?VH&+AqT zTbbvSrUk{fxanHl`d98zC%%0rs;0wc(jivw=hZlMAuBf;fsphy^OoK-Oil8jCUkCb zRLrkV-!buGX#J@(rxVF#3dlG;E*wL2m83%wbN4~(f(gt^xw$X^f&5>EzEbYx z`o*b^G!FYgsEKyj#wf=_w&oZLfR3X-!_Co2mZF35LAeq8P}z{`(4^xai&=f2B-M}? zCDqxs5P$E>lP@lO0u}pU6r<#Xf=?9uK1R$L^as9Hxeg27t9mn2W}Vc08=ZjU0n&TK z?KUBzz3T+?0H}OY`gG)fC>qc$dDt+duFRl3Nwq9XG{Ji1jteQ*a#H$JOCfvZCx5W$hCK`zc~@q{GiuI##V#&bdf|?-WXaWNtyHm!SDR=p z;S@V^z;#&!XTDM0vMk zfk*6*)$C9@7oRv*7cogn_ZijuZ69>Hfdfc@pIKpWA%qR20Eem~=_;*Ox@k>A)y?R( zk5yf74;(^_TXz38B01rBbC!AOB1noCjuht<4AgeVLxGQ)l`|nso~?eH z^(2mOdh%JMUmk634pM!|dhh-qG_@(ZoSc;gJ6LKV&cw^xh`BoDRkvmLsW?&Xo%PBPe!&G!x@+s#rZFeZiC2C%^Rzu~M8@=jL zPq#||gSc`yps>}v#qjpS!|~kqhb$}iG)`{nwl&A!2?-zW_GC1eiX6g8jE=jA1<2U` z&b!x??NF>Dky&?<5)=CI{d8IPRh;9X^)~6gWaxPmnscobMejd~jzb=Pp^1z|s=qNx z{HjtE*YyPxZ5&!n4qA%sX-g(Zq6*jo#Pi$QxgS4zfUr95Q<(rxMH0W6S`P&L^Vt? zD0=1(`v^rDq6u5+9EG7^S_*C3YKqmz!<34Y{+T6k11M1Xu`IE6vd*OZ26{Mx53h=L za9?II@eGZkCLC|neLnGQUF?&rQ{5bL{&sBnVl4W853}NytFF5MPSzMYX_GnbkJ_Bj z!nJJFP|>1qJF_cC_aQ&;s7&`75}}tzvG>XZT)wwx;bJS8IiMPTO(BgQH*y6nxO`vcUPdCKfB4m(I(t+HVr;A%ASzv8muC;>b zJqfB|NJ!Sjaw^u6MT`?dBX1CY!GcJm6V%5XR3a1)@?bk%)5SO~^xjX?+-WM{hw<&~ zYB!JBM8ZA%Z4DQ3-V~=Z81)0Tm7cbqsheO-t?h>VA@Qs(v zF(q%pg$}E!8C}&>YcN?Ndcw$U`SL~u4V>M!i&w`D%`2uM9l=w&-MTq)q(FyBpAFi* ziNkczrQ^q_`fyu1zbiw{QN5Z0W~7J6M`wT42a|22PRH2v>lJb}4P~pufdto1dHEz} zmP{j3YR-Ho??c@N_Cz$rr^*}VB)3cUTK{$A&wHe*dbRMrK94wdD=oI8K_=mIUB?%I zr3B#1(aaEE!e!w$2M*Ql5=Z$~pR{^iCkyS_+Ouz;rVm`MxTuOQ_161!bIj!8TR4%O zqrB^=xjbq(=#YEkig3oQxxKG4Rg0Xw8=sd2`x-946DuOC-j_ZK`p*pDapzR=c(%4T zm-)QXU_5emFIp7WH`hHk6i7ntK61$HwwOV;3>JSFL2CJSyk=BK!G$>7pyo=TNq2=7 z>b7tZv*Y_6HuGqE=P;;0abk$Svsh1==J{3pjxA?=ap-wdrPnC8!AwwO!Ev^TdC;Wr zhhe!ZdnTDa`~@Bg{{jDBQwu*VB*w2f=lIv06Z>n<`PbCq?-i4OpJ4pGdXgw08%U24 za`^$(7o31nY!mtIET6QUQnaSXD_C?b{z2$qTXWNhT4>LI|B=-@hs=6@@Oj*FP3LlcQwwJYYg=&LqVyZo&sLIw zIw<1CJRAO2)avNMV^PKUkUBOEAa&u{_*DJSoNOnLcEan)>Xw_%O3NL-&2-1!9hrKS zfIdW!pDT-c+C(fQdV7~gGxtwM*uL-JI#4DJi`YWN2mWu;TG2?lAS#cU!2L{5dgf#M zCQF6@!miyyDME}zwV8^$z&9mKkpk=_b?J&hmcid9E!i#ZW)lZIWFVb9!GZYpd810O z_c(CWEak^lzn}8-U8N%V)0TG;VBz{co%Ga&(7?hmrT-3^JgnJy1pa?{CLU=$|@4&@pW8%*=TYU2dY^KO2+T+IldiMmp;09KQi7gHre{SVY^y2 zFI8SkCNFN=ZGGM`yttkZFWfXPvXj@}ZQd_3_?CxlKb~VgpI?_Rf0XbwpYCfvJ#SvO zr!2O=9?k#0Zx0RKKXHGr(VcfptSfyOK4@cmkDcQ`cgNtbT@^-GlNw(r(C z{P^(s%ceK`%sZdpB+t3(*4M(4wI`>jFRl+Su`j9b;3xD$`~3CAsq6T@Mg22|1T47Q zYLH=P&iRjw*Q=!a8@F^Ew(+}29|szbcMcDt+k}dJ3TO8&_q7c^VZj*RV7ia4jjs0Q z%JHN@24Cy;4eu^3&C9O$d!ZK-g%sR=`|V9S_-&t55j-!k>~n(8ftu%TgWj6)MbhN@ zHz$oyAH;MLOs96p&Z{lV_7pxJ_eiC7FRpWBf|~HyyIOeAqR_88+}bl>-nqka=#i1)kAcc*l%w_2aoj%{w9D%Z=4&=j_dY&O}`Pj8(| zAD-$Qo8?dBfv)7JmbLD4nWOa>+r6h>pFcIaMYFNG+B8L3pDA8?SUnyYNXR~()(>6S zj-WZpt_MHc!>~yo48+}a=n62pu~eYa_aN$0_a$KUE8ura;TaV0`jqhuDtQNly~8NH z!sdOPUApdu&&>zPpmda;!vp4(eDZgQl5)sfgb&D|aOJ*+da3y2Yi+;&JEVReu=w_= z{WKxA0?unAv+isRgh^T4Mtr{g-oZ`HhnHM4?K-=m5v#!17ur0Wuu=uLXmj8HyLQ{V z8pTlE!r(1s`RKsju@bGY^d$!Is`YhQ|5k~@Vj#`*De$vHyLxH*^?d%t?$Q2zSp4CZ z@BETCQ(m-DdvW2a|M2$q_eH;BCNouVD|V4;^k@H}TRCp#ExB?a^y0WTa~a`C7lBK8E{OOp!akqzNDC4v|UF?q34 zB!xt#iXiF(6e)yc$v2DO5bg4x+j&fj$xFg$_|E%0zi4I>zwBIGR#zs2dS$`)reXKrfu;RHS4_ughEze2?&J@C=!s~BVl`jlZ1jG>PB@1!Pqq?3IYhz zEtDQzh}&X6lpuFSeyFt$3Vdkmt;(zdF$e`BDx?6r_+~%+%wO7EF>wfm*&P+ZJ0!M% z>g=PM{0K5PXb3?G9iSsLf;VWf0kIvRg}Hxrntkm=`{z!OU1D26fqxud-H1s-3qt1( zJ<=z>1@uqsbLRN3Qv9#uDE=zd_(BW*!u^lZzo|gV$Sy4i-2RK;Ql98*1nMsp$sM3Z zdH+k||3Jlh+*G3lqwvOu4joA?svw3TrIlcj2lydtW{S`l|bC;4QT$^+-U8_@|I1#+J4;xpi&( zwjyh;SUX}1t1TSbx33P5TYXSR@z81}zg-S)zTP{xYTFEY3cU3%Pq^fnt+?H4J`K(1 z)a<&|{9fdhJvulX&EI{B-saP8z8A*(VY5fO%Ach5uqt3uQ%xxT*!*GlEPQ#LeeTL`H18?~;s7r>o zTW4P{*UOd!V)&vh$FSO^dm6=c9OALIDAkn&w04U+qRG~e-p#ln`3Fj+eut!ut&?-N zweEo*$&a~-b2p^y-A=BGW>avZXkn-24Q{|7!<5QsyJfmd83FGf16ReeN8^lJPPpM6 z;$s;K65|;=Z}H`9pcFz&m(t>#c#QS)?v?^clIKglnZih_#KjA%Ms@CcM!HL<%Q=G2 z@L$(Y2x(uhk(bf^m-!C_i=MQBEqmvTC+pW{#b301Z(W^G5?oS)Lwg6llB{Uo=^WV5 zOnKec)v&d@tf_stKV9v8@|AX)3-mDCP2OfPEJHqU11HuGAY{HX`N*ZtlBQ6V zMUNpbs?#ns58e|)&nHj=${H9|y<}3Ynra_t2@z$ELz4El4m(zNP_@FSIv{F|9=63t z|CVUVt2T1(PeREW*yRil{7wABFJVJ0qlwq>^n@wn)_46X7jZdIG!>WmBm|t}#Z7KV zl6n|!YFiXyC(qt*hmCgGR!geezI~UC$os9Bc$xW9#IPDYnxWHd1D4Jq`ijsL;r+1l z80BQ|PzaAr{(AvO2()wyEpx9^o;aJ9S!E0~g7S2NsOctLcx+nZB{?+Kn2;$B(wHi8ODFB~1=M5M<_$8#Q1;KZV^+B%djvK3k- z18rxj7hm6yySu&Q{jOOw-js!(8}OfDZC_Dq(Wvg@!I~sstq8uYoTU3>RU}KM&(pG$ zL>tMpyB-D!p52~gckoQ9GSoVAD}1ZPg#&P$K7IQg+Y5TFSx`JZs!-HTi0$Q?U6^mH zZrGTUM4CS~{uInHg&Q{E5Lc-kWW1fcZgjW^mSDPJ!45|j5I~#H)!dTMqfF9_q%oik zr;6Sx4Y$n3z$q6)z47MY$Xv`+L7J>2eC4e+-C&SDxEg-4*34qNbqbB~`-D-=d?+CI zAXYZ>^XDpBx0|fa0+B$e*Qv5y@@}ag3pUsig4P&$Iy9roujfb$(UBLNZRtBHC``>X zoKM7}F6X^*ESBZc8cI}@Dq}9c+^vCwm{K=Hnn64z+4nklo^8JOZ_Pqee71Let?~|w z1;yGAjM!s0W2;uj(j7PPJu_p}T8c4e6UcT+`Iu{}jjG3CB?zTyk*5nbF-n~Z(f1$+ zl5@4v-XcSzVE?n3rutLJ6q=ovq8^SqSRqy2rePHmV5V&xq% z2$!+zrnU2>squD~aVWh&)CJxs5;+`!4kb}-#bq-d+>QHh9UeJ2i%)pfHDkDGomFmpDWHuN~jgJGh%JsA=PrggG}Pdp!X_2y>!r?;EdS=KKveDGkNR?4?hoj z6!fRJJuD#01+Pa@vd_kq<}V#1s0_B)C{y=cv$i)I%rYzu-Y=Rs_X4kr=qZnTdAM81 zRBGwiaBB=KC`hJ}R-wskXf4h;{R%512{AnOc(!llJWIQ;NI6a-jA`=$2rgx8=v@K8 zroeAIb+f%R%dDl{!V2jhSH;?JjiS>Hz1q@W1uogcK^~(0HNjSO?b#WA~<93$T zy(p_jr3f#sW^^xZ%wQpYjXjIJ_7_+9*S$lBHsZvknat2ac5z*SbcbpZLd5t1|Ipc4 zeR?0i>d3yOH%(Z^g{CN5x0NURbA9AcP@L+AL>0SW-CilQN~N!5a^d-g!g{M%lViJH zdokOpxQ2t4#VA8O$uLec@rNjzIFpRTB)b6Pej&7pm1%uiAx}xsLnh&>;~J=^Mayoa zbS&Da`=fhBb^NJZ{D7Jov%#9I^U+RKB~i=%;R%L122@NBfg$_|LLK<8CaX)Q6{aRS zl9U6&sNQO701{~`=ohu+ABE50?OnNVW(tI3&323S-U-Xt6 zOL_!06??W;ETu8-SIcl7kE0(svOmk=ta&g@dQFOK@;TE?uJOVO}`b0qP#TJ;z9Kgq9W5OqX9^7ov-p`9?r3`m0L`JotsC52j8S{~E63NBwJFKho$+^^JZZ_Khb zVqsJU+Hr8R9Vyv=(*ZR%Iib!uV)H!(pWwcMj)E00t=K-CpDi*&A)jhC4MZeMxMpA& zm0mgC#;e!;MgHKC5`zZz7pLLG*G%Vr_f6Yr<68lcHJpOkZPO(4?+n0~O7baV-2pnv( zJr(aDLm}LbJu}36CG1!UcFbTxs)78p1{2>VGUgYw(vYzZ+5u?of*vbU8ci)ZGKpcf zx2m)A%3&6t!}J=pDTi7Zwxy=IgK-?)i7exI$Legg?BceK>I~5d=|ur1zLV6CK7|laj*D;h3+g?c>u~RmSqVqaOY39Gs_=aLl+Bm z=w~2Cu8^J5N4L*rW1ez$KsDIOGZ{Y|JN(#kC$E9(AUflWAv@E6Wwf>*MWyTvOsgNz zI`t{V5Ia$)S4{HR9{ktS3!3G3q=uPXfZCFNar$kM0xzejcYuSEU5)8OcK&7`hIRv9 z!=}TJoWWB6!e-bRfbIzA(+@xbLtvs%a3&!dW7&!G@0bi1cn`wd;9tZ zi}KddBkJHujl8~b=7dKw3i%TM0UPT!RkxL)tA!4%eZLNTM5;ocmGNy2<@ z(tWh5yS#YMw)><;b4k*iC^B0dSfy=~QlxiH{K`w-*Y_tEwV@ovQXergXQT3hsl<0h z>eT01fdy6~vMH`PBFA7AA?C{;cxKwop+=6%P$kiST2Ga)ssMS5Hlth#0?Lx793t>& zmFqM}HVM^bL7g1jr;8WpxD|XOJ<*;3uRgs)y_a~1oM~T$896NrmPVJi{VGR;@fPj; ztGx6dI5LF$Zne^{Ar{XA>BAPGo^auwuZ4maCh zbRyDe#6`SbmaC&9TgrSA%oaqrP_ecwa#<`_>&&xYQ65;zX1Zuqk;q%11Lcw%m6Td|GgF z_+B4ZPSHSY)r`quv7*Zh-Q>?rysc@$Tj7FAp(q9}o8;f<@4qzeUL5a456M)A6;E!w zZX3i=%EAmLqmJ{Y2qrD}S6x)gP0W(w&tWFQ}pi9zSy0v?1HPXfWYSjS@-a+N`~#iTEr@^9fZgD&J{FZ{=^Ckp}u}SXdf! zg%d`Zdir1LexJgHjqNHoZ;kOPP%ba|IlZX*LXH66tsKaH|ADy^^^$ z4HX4N2?P~G^{r@uHYWm?^gCNKM5&}(g)+~{nXrrqKc}aE9|0HNv4(H~AwH;XLN7mA zl-U~ovy_YTD@P|(K=IS&dydX1fbOBl#b2)aAA&5};c&m8Yj0Y{IRuUk1I{5tB>=SBFR)F;0} zv;i!s$E^4sd=G+xqv|rxn?)ln0v}kAv5hR3aHV1uptAq7^Na8tvQ(d2j$IB>uK)FN z*r-tb%3KqKcwKx=rWoJwxgLK#{G8S9rMy^#|0Y_cEPIGo)lioIhJ(ke`Uhbyl^jS1 zwvUtue-I%)jyBD|%t7HaN{jUTKKZ!3I=*fgpkU01LpI|Qj;RUq7AtAnlNv$%#$WSpvX;_0&u|po&z}0^TRF$O_;iviaLa_K5L}1 zCN_;@ncj2HI7c0ZqYdzf47KPsZ~~TuUOLWd1xX}DHukt7!_}=}_#jH%?uHIEX{L-n z>lzAB98j7dz5{?FgfL9l;0QD!+B_0r2K>~bItV{g zt7|bLCR_;XX%S+%)CoNg#r{nrQAN6jeDQLg_#fY^Jb!%mhN?-~d!HLITw%MgV*l-1 zWb_O2Yr|0M%`g`bHs};QC}-4!oYr_AIodQd#VURIZz>N(|EN^NYxq*x5B^6b2;k3D zgW=ZSUi61XLg>~|{$ha6ufQYz4WGba{y2vCG+}B|s%kJICR}mq=ny0K4-+ol=l_Ga z&fHN3QmndeQKcqzQ0?<%;#1OH80@Jrd+^{Nic^%G-BTy8r`|&}H?xzDlDI+4CUC?E z+gLx@Ekp|#S)^H0_Sxx)0Lo%y>3l};p7g;`5I|TK5Q+`J=n?sYq&Mi z`k97AytNwn zj}D}xN|DAt`(3b%5RMjPAICE5Z^!{8-^l^?GXENnaod%w9`bnt z=cV5qMjcAEz;6cf=4eLds|&v|9k?qE3iZPEmM&OX~#}L;FMKE{Spq{6D8ErhiKRS+{kgfhvvT*QxXkHLyVp&H=UsAHF!{UJr zHsy5o^P;~`{Gv@HnghJfT_IRv+y&wT4{+9S-VVq<;PIKh%H- z`krXrT7pg1`-|GeX#9(si}i2nITGYZxc>+Bb=Lr7M|h6zmRIZdPCdwzs`6eWoB3>N zYJb-=0=0mSCgS!}KIBLuw=h*W$=U%sHA16ZoBnuK!;gJM zxpr+jjHNa$-%9;Z5FD z2_7AAqlxv0yceup@FYMWIRzj=UYVfgJ8f(f!US=7*`(^jw;;9j+1FRh`X$A95uR-> zJPl%HT7HN{W;Um&{9Sv?E@H_?7im&l;~k1H9W37*RX4TlF@zv}2{4^>W<$W|!m`2; z1mfGb)A7gS+p zSmF6GPh<6y&bqK-XTM@d=JvRp*R_*eU?86N3lb9q=>(SU>zOi{bkc8+!t>1e=0HtM z%D2(;%)iUZ3utXQr7b&cvo4scTtE?}foB_Tw)~SlF8TA#adORpCcA$fbv1ED`18wl zds1Nv&l^qJayykL6pIh>%rZxtrTd*rEqd)UOM8@`l#XM`%&%SUmvKl}=n4qW^D|d< zq?8wJNhX}cN<+);n@DAm%(lQw6ieQTZ0a~8Un?vC5F>l%j z7VL*NZ5jyL988SH`SsMX10048Am|qcs1MSDFP?}`S4ze%P<3w<8V59C2th^PX~mii zp52nt7>*`qs|-tL*B)bX4b<^Uz8h>nSFgv7=g2y$IZ+GlECu}MHVHD~&pZzt2Dl6Q zh1T&0%}t;RTqE@Q4;r1_1K8vclj_R&+5mKEb9o4Qi}h8V8{igL%#|R)+0lam!|vHq zLz+H(FEj!LLI*$`a1S&B1AYepI&nDqFVK5XI&zl%-}E|u?l8Nc56#-yN0VrMI!mNF z{GG}y9X;p6iG$ErK2kyG5zL8Q`}Brj5ko|06D1;Eyu{|K+P)2b_VawUQO z9}1!Rp$|^6cgL~FCVPM_^c2Z*%iPEzJj$?#>G|AyPfO09qx*YEEVQx z!@G$;gp8iNlt=cyHr9uGv7it0D(nZ??Xoq)C%-X*d^jNQCCSc zV%TNg%3#JT(NqNCCWh{-HOm4=4y6QO475w^OQQ|vZN-zIY^OaWLpL0K_n;oL9Xq0h zKw3^uZmuZhV!z-^u~H0_Wdb2*wUugOxxHuKn}%7y9MCN^Y1ffwpRD-AG=QDtL`|e9 z{$Z#g`gn$?<8{Lp;jLx2Ks@KIq6o!~{ce%}+8-V&TLI&;=3K(VWxzwWtmz}7DIFKA zu{RJf(8iWhT(r5_d=DixVCY$U<5y*+=ymkNWiPG@*3@nCUp{A0WTzD2&uIWQ;m^)9 z5Cd;=XGr%5S1U!dCK|SJ&yCwBGFi`M`6yQ{S0X))mYYt8s#{Vs3bv$T6E(mSwv2XJ z3pVpoL7Z}jU*QEkL&8Ao`2ZCJq~=_;#81>XY-H1SqhTU9^}bQ_L9C$4EGZ)0G68HL z-Ja$nhCT1ncgLYWS?NtnozgINKV&4AGw~@W0^y>c;otvFg|?(%3;h)W@Wgc5G#YdY zP972YEiwj5!*q>@+6Zs=iM;;noA7Yb=8-Ckjc%&$Ese?g>d_IH;%*7?p(#KM$>FjH z5yGv|&q%i0_Z~FaQ|pUc%g%S^K3+bNKSW*AH7->dQ*UEfUYaMcU0)gaJ%jF-o!SvD z1T*sa3kbjtSA+)Nq1WJ|F3D&)X{}!DD(^o8JvYu!cSK*lz4h!S_Nf1NtEO{2&J@s@ zs+vdM*7(Hu|B;^^c$xNTF=O}5yZ4o~_q<71wtNGH<;Fm#;}WPm*-w9gJ8>&Bh+rhF zZ^^kvL&?$#gocknGL3fZeWc(atOr+O3mOq10|T+m*g^)`p_quq0sbOzJ|#o|S&FB> zU&?KS=W$wnoN4lvw`(RvB;UkXDlrYVMxJGL@xE4}cQj;&38C}LD#|G~LA8rzxyxk= z7voresaG+%CH`y-5DCMDt2~CxS~9H2SrQ`Ql|WG1J9P`MNn)~h5_mZT=Rti&D8Abm zMP9|oWz6Z?vK>oY#yTny%qa`zy~8f8L6<9oUtCc-V{(3xcP5&YVItbL$eMJm*$6$^ zw*c+F5n8jl7g{Ub`A!i4<%2`_)aZbcPV2V)mRk~l*H@U$Wk-$$taLTM{3@Mx{TN8~;@7(+PNAMd0>HP+W&c@FHK0b?WTG@T_ub z)#VAwr-Y|U^^}A+YE^+ZD)kRwx89nhz?gpm%e6Tf{Xm}_0ziGcyZ2En?$~1ILw%E? zdCEKD_wMwA@+loE{vw)>DaSH*G2;0T;OGG;pOl2zvYqdse6WfjsBaiGuJ0Y5+E-oA z0@Uu z3xU@Q&MR-jMFBZO|7_;}H5-?LXM-Vi^07U*uY7ZDojZ5FI?4#jXY2lS^YtnWrP6ag z`o*5AUvTGjZd#uXBNo;4FW4n8F14L+1AH9dym*XNTB8DiTFa5f6!u|h$QdD80Vc6k z^!z2l%GyvEvhbyv`Hy#v@YCZZED-rdl_!|yqJ;rp5_!wJY zFwL9t^v1Tgg!o&6e$09?AN<$FiL21`KPsd^*>$+<+5m=ohn11BFOjj)d3%5Cu=ifm z_SrAjVUHhz0Q6p?O)1)at@sbX3fgVBdESBlU@Mx?>9N-`rtG=i^N$B*hvSus-*L;? zX}Nl41Q~|>;fnZ!tBb2)Mf$;7MTU%Br(WRCTEEB-djj??)c*#sm;D2968;x}-J@&3 zKFDx8#PE3!?vIsiH_pmT8M_XXz$hS7&g^ikpq-ZMhhunbTZyzzzx|dmCBOZ_eher( zY%c`h-fP}o``xX|e<;uloE^Y%1oGQ)gSH$FMKn4B4hAnJ~2s@m?qDz=;E@qGk#RDh*dJV$aO0hwVd*M)sBEn;O{2uybog7A^~FA z4g=&*2$?|ItG7@jAd;Uq>@TPt^8DK7%|Glwms>#rJ7NoKSi}_YwKjevyYCfkt;A!b zLc&ll$1yUM0)ZoAp!M{Dh?3wIGr`{iQR!XUl8}l@RTfB1Xs|~zv@3$!Gbqz0E85sd zv}jeQM6>AW?HO{a14qYAl0^p7In#sb1GpF3z<1}9`Hqtw*F)mGiCXs91BF-$&%4UCa~vy^OT>1oq0 zkB?!})Bj}5s`MWkdzh! z0#m$#lsc@pljR@Yi_e4s_(nUe2a<~#)H_1R`sK3sctY>bQ$Smnj%dgCd;4vsK-Ao3erNO=aZ@e&+Dlj(1;p5MPkM34zK=u1c$m9~*#J9t^Jt$p6OZp{@=LMygVrz%rwzPXCz6(ar?+#h8!;dOH~9 zD8qTG5}p)ZTX!r>%8MGQ8$4GtK4p`yo5h=3c3r&PD8pSe%%)zI+gxTlZS~;Pw=vhQ zwh)!%$d)L;9jtw{+%7LXrFEb>+(sG{1RAF#Lf)YUqzZBoM#}Xj`^g$J=QfrY^34+@8Vsg;7 zQKnRG?t}&wb;o-Pg7OZSl6kwm!d8wT3d5K1=ViT1X>5BQj1sw(G-)ZnoB(?1&Px{? z(v-5bAgC`I3=b=?;g&^~TwY;`0w!e-7A2z6F}RXhm$=M!Zr@4{Ep|AmYok!`2CQ+e zU>-b?0B8VIIzK4g6=`Oc!R|4p^+Ka|_En2LyEG8L`5~mk1ECiPAQER7m@Hz3pIDf+-n$2S6gz zWYygSp;rZm3!|P3AdHg-WZ7$;ipRI5X3==0fyb&dp8%aGGd%!%(SmvW_a-C9+9w$V zkXQ(;rN~&N*60@SI1^u&r)e97d37(jPbSMC1S?k*DG}^?XpB7nP!S=>`fG0D{XU%) zQkkzgsz{++9Xew)%8n-iBn5&(DKbUrIhqAL#Z$qv5ieTTr3`-XOO85GA^q2P<0k!t zhfB%@ae~0`k*-!w^jOm?(3R?6Knni=Lj41z`7a>rKR^q<6P-R{c^{@r5EN0HWyX=* zR_L*RA#hiGU0dwwtdJ?b*8K<-$X6lLM4_&-VuMg1C>A165+9%%Ls3rnWHk5+|MGz% z>d%Bz?^;0bsf7`Zg6XE#K?H2choe0mxPclcI4U~Atl(!GL|n)(mM2q~+oW8|^Hqmf z@Gvd%ji9*40Q}6kwIOhrQ71}*7U*moL*KZ{B+ymx0 zSO5SVYrp_7|MR_lRdXjZ5fc+*L#MxA;rG@~DG;qYe|<)6JQ0vgg8 z-@i_Kc;c<7SkO+djz5v0Z2o$SpFhVBX(UE$Bt+?}>EkxcC+pLpO{>rUA?zKXENRki;j+5iW!tvVWwXm&wr#u1wr$(CU0t@VF5lDd zJ2Q7?{_lSOI;--m%8cC4-a9hmL`G)hv%*ugl)dG1ccrsuL%y|s@fiNFx9e7~-Sv4m zeQ=rn`F!>H@^R+U{+>NOzVYMs_2II;x*Fl?D*F-eX#ZyC8ZQs64qAJ6X9ZqU`o`h> zhYdn{vP-&LwhF?yiw^tRu*;M#2gh6Y^2MQE>l*3MVfe#U_{Mu_YciaU1$}tP-KP^o zfW+;SxtH1AV-#EUxRd?uyzy(@3b~IpKY90xx0}a1o7tUHt&W!#Z}p>3k=1juvA2)U zXVVWK7xTTfaj$~zXS!CuD{mh+KAn!zwnx|e;!n;`{c(r*;q1WlkmlqAcb}F{m$d^2 z`~LKYOS1>}3-;BexOllEQ7U|nyBZyxkgQ)hA!~!n`#x20x9cB!H)8bD!`#)@b{yLn zu?;`R>0PY}ZSFkD)vvu0&(bW9yj9NDx^38Ps+X5k%q!npKJ3k?)ggp`aYZUT&N`d3 z-|d*)q)F!_hg^BTb!=Lq<7dZnOS-?&iR{1od@gVNsN>UHksnfBviQ>56H?_Jw#^;isRf%2p@Zi}h2Rs~WDg;f-0h^iq@IZ>93-auk-S z75>kg>So6YG@DnM4?697mss{xJWANpoz|yOqQ{*UbW(I0{`UsA-*ujEHFB~Y-TZ2D z@E@=lh{qz#7**yuLHq~^oK<|e`mQF04YDJ7ZE3fxMA&X4IK#ESJ+ zElOG08v;>RChSmqud8r5zrCFU@Vl}%dV&C}j<*4;FaWEVA0PNV)Nnq!o_EAyS-Yzq zr^kOiSc%tWWId*~>!7U-9$oA{oX{PBvlpGFJzqcCO}oqs`KN!>Y*{NlY8s5&L0O8> zSIdQOn5)`E>T`I@sBdm;HJ1--c;v^uR}S^jPltyb%pU?C73_Rcz z@$P|kKPX;2Dt`ab7lQ9b^Fj*RYqVdyXsu(DyPw-aV+&WM1G0hjJ_EYjkFaz z-1buDW(uJ!!%gi+xrmz3i*XjS9tuIO5#5%CRwG^q;iy2e2A=$_4zd*5pduW+3>0 zKmZu)e{lT=rC%VYv`999V$gtM7XK*LV`Kegn?a=U56%V%2khJ*oPRIyZ<=dF8^9Md zi8cYnkO9U1NQ1YqFPC_Mf4sYmdJQ@tJkTV2tCooG0P^-+@S)|WZ61FB9X_K)QJJ2m z(oNchyVtFMwjX|y@YVFkVe}}Eo-UuiKzOF?VY5$XYqP$Nr_*WgG$hc2oI#bhu%~M=M?D&ckiA*U9M7;>-B+ z{_6dkS?#2jJ#Oe-kW%X&ul}$zE%1zvTv-D^Et}Y&0DJ*RN}7 zcvC)WX;B83(QcPF_;c^uZ!}f>Va1SO_`kT%QLnDhLu7W{IW{onIWdnS4EeG%QDhDI zvN8=l&K87Vbe+q3&rQMViNOxvUQB>S+Zq6fC$SENY4|^UX~I?x0kZLhcp*;ODda zQX7Va$h#0o)u0d)JgQ%+QdH@9@nZ+SEieeTyNK2JkLk%2%MAss^|0DTeJvY`hoYI#{2xqskLQ;4EdAI*yM7_-q_|ohGV5GC z(bUTQqe;#qmDS3u>ANZPM({VXFQ-^2}#7J-fHpO;WZ_p-AXr4CuFp z&Ql0Sp=Uqz*lEt2CJM{!J#g)9Dp@lvrmPK}pp+1qWqFNp>?b&QhooPT1O)?I9-!<- zk#<1{7oij!$D^v17$F~AB?I`KO-86Z!T_bO-wcv;P?do_p9kpJBWjB^w zPg**NyzOI~(P=i%Gm^783cnnV%r@z218eiu9;=M)@>HfuE>*6%XB_J{OTA?;f3L>@~(~;v_dm zE1#UZce!#4uk0r~iha6Fj^-wo`QVFlmCFvA9ggkv;+;pB%esZ&lqrKygS8{g-zTY! z(aqN|LcLc(zVAxgQ3)OKV%w%$5Q)rms!0bXU=uVOq_ ztKjAPk~NL!4^LO4!aN~4bhX9I{G|4J^D+EtQ|~curLD}QubF9h51N;=Wt2XrvqQxl z8qrajXR~f|_vY^^$l#ogCkM#&Z4F~ihI0?WuJf(!Wry$2SbN4@^2KZgQ^wql=BGMb ziw&dn3#E`_TLRS|1~)Yu3E`XcCnw0zySGZX{t7ZWm+1H|txhbQwjXxC{7#s=ter=j z_@^wD5>??tR&5;~3im8W+HMtxaa}u-W$T2r-Ad0QUGc}IT$Q{vTOTvUmDwjrADe#Q zg4YT)T)2}|BmB?;@v44Sg|c^3W)k#j3FH8>%M^=qUx(Y4!GnF&u&=lqKEK_g{CG%t zB@GkmZ~PLIA7@6zkGOub+q=X67{b)n<8u*ttB}+0X(w;-(#gG%F)rVCesbs0iudf% zs{H^G&pG~rIFPo?#CQ0?KvW+}z$N-{j1ik}uz=vmlC~#cyZ-)S_cS`ZaW&k69sl$V z@#~(ubi^nlBLrER6fq%Gs01$o*}iYeJt$(ZkrATsPy-&OlD(nys~@aKJWdVn<@0XL zb6R9l$h-tmar#Z&RS5*Td!4hEk#a3UC#G73JyU{etlqQOpwM7+SoIdjd2@PQ^^M$- zp(=DRb9SU+$xjMW-0BtVWEh}{kCqJ5bEHIi($;(ULGWE=z&Jn(w<^jE*^H4*u1c|k z=F9!U{O=P=Zlf4x%IJ6L4WXbYA?LU~ow4%Now!jr@zYw#VL$u$K^>{00}sV=Kd;JkrJ(b(?~Y!V za}UpStCrbcPjxnP?|MzQ6CF)I;!m6Vyv1Rz(>A+kjfGb>ezj6P%PV`+RhwkYwaKEo zi8C2xLx~Mp*%*$ssj()G^B*0#D@}M$pcPPEh>J4OEBJI|(xf$?&=s$GAGouh#NAx~ zDn5yAF#REsTvUu8axvz?l1^4zwj~N8X#Vo%5E8sUPYIEJv1hO8ihdd+TRSv~X}F%@ zxtmTb$VaBBY!SG8P-b?RQKV3rxX6Y1>i|Lc;;m?Iiqgwa@4V~E$a`X~)TgA`gKAj) zG0UWAq2>i-`^#^qG&JA0p`myG@#k$BkgSO)m8KpXoEsmjE(pMtX2_yW@)Rywa!P;D z&(&XFoM_bJXj;F#l91PeY)JC8 z)ndw`qq*L3Yh6KW^}IbQUc3|BmiYV;gNqM;xT@}cPC?jir#GC~v!;jWy<+*P7iilkMm9G00In|@fVSe&K*nqOSpAx`w{c}Bz+fM%*H?u zP}rtO!4~%S!$ohDAY!s=X9uyJO*Jk6w@C8sO+)5r=ebVI!A(aVgDZ&T9NEwH^wFLt zV_Eg?l6Llti~deO4#T z+IOcM5gj!tHRXVs*aXys;^m}V`9{}RF=vMAlR=%?QiQ~B>*nO%?C4gW`i|b#ESq8$ zWQnIm*0w~v-F}}zg^w23-?wh;5gtcObv&%oq}zr?a@>qSKqBmrpLs zD@om#1vjX3ml_eRg9)ug4Je2Fyku6$on3*TG=T^&+;0pkWUKR~RpE4KJk<9_3kJ!v z2usV1$nlu;`pGTk$f>t!vpc_PtAEu_^-MCw<;=mJVv^}R?&GeX@G1-jE@{&9TH!l@5tMq8{VN!N9 zl69~?7c6rrYOrUpq`S`sH5(T;2XpEkU$u7t6vgtn343u%sm-GDm+D%N(~sZ>9y)Pu+1g8cQk z1Qe0vmwQ_Iy+~}@-2$a`cBj&a-h#)W_4hq934Po7g3vD~R|^?;3&7kdrNKT;i$2YG zIf*Lb9oK%!$x`$mt`;ip7Ac^?Q+`dItU&ojx+U%wiL0CSn^+=cF0K}<<5+S7bT>qG zm}Z+s#dvii{hAi{?TtK}x2ZM&iaV8~CTh#E{GB_n7YpHZ9jw%ytP{XOM*?e`SiZAN z49cC2WBU*4HjzXQyd90_Mv+H}=-J-EhLy>g?&4txHkA@KmA=iML^=S9t`@h@drk!b zHXJ)V4|!i~CM9j)9C~IrXPTNJbQ@q{DQzyU))oyClbt!LFEfn3#`kavaeXAs-{51> zD<93wzu91=g-DrYNwr3@pS{yrc|6rnd^=(o=1#Hqkj9V9ec*E?18KF(c*&QlLZ6{F03j91poWxcoB%^L$htQ1Wg zj5-l6yIHvzS$Vn86g++)M2SAZBe)Fg6TcIDxzeZ96rk~#Sjo%i`O&UiB$%ZST!RaQ z-9xt3SD5ITbt-$}l(3jdaA86(LFc8 zPq^H2MHUzb>VsBR4@JHoHuxUl1mCe|sIfqa5C}+!nPC8Begl6dfK#SeoW< zM53A>Uu%lXewc;!WYjrpfDbvB(GdyH?4pP+YES3}LLm|X;nvvEo+yU`^~}J+GCr_` z39%cZJC5RC$cFxVNJQX&hCEv_0fclq|0^WdWAH+)$v;A7Kp+wcg!aJ8^kgZH6%v9t zm{VGyVysarSH#!CLD<5DV+x5C_1ov?n=I2?ObxLImfypNc7P0MwQh zTVI;Gd;=56K}(yb2&o0xw+e;=vVRq<;uhY%35KeB;r#|S6bSV@ymNfQHg?JAuvz>S zxn8rttrXF(1-N%GU>@ij7!=YW_h|>Z|jX8)hKr^Km z3Q6s4BnR}diZl}j2?!(2kFX?*YnEn;+^{=s3~)63d(|vzfC05W5G>;oUAqZ^@qGg$ z3x?XgS$LA1IY55{yTPQJYnymOGt<#`4rif9B|>B;XmPd0`fomxLSXu2j&zzD;G!Rm zaD@I*(t2Hpe!NN;%q>Bf5r}?+(Xd>)R~mDrh`_$Nm>Bw}W;mkS94&t;%=>??Fj-up z-@~_d50AHiao?2nH$bm|L)*cn?f8<&j~WcJE)f*&G^?xfib*3pu-?wDxRx;zkc8BUL^bvYWUaT!T#jwwMoss zkh`Qck9s+KE|!i4maZ0-&JOXhkRU0jlDq9|9X~GoE1gtgY*b{1?+L>Z=Wh`Ulq1bV zKj*O%m1$d(Tb~KuhqVsth9gjWrB|plPK3Ti7G{oC9u8z{KkhjmPFKJ6mb1^5<3rZ> zb`;nbLUe17W=yD58_MgKtJaYpY>aCJ`XGFEA$@9lOR{v0G}KJ6bkAT2ZFaaa!B$1b zz{U2?+YHSQub)q@2M%ww4db`z;fRoa(SD@x^uBXP()Rh)ACJf$1mX=cyM0Ixm+26vJx4M?E0B10j`gNVy&O`b#fayHm<3Ptpg%o`C7DlxX zmYlKRPnwJG*7Az!U2&YLv^t|X1HsjXa${%7jZoG2+CIeE-ERq|p0Q?nsb=1}jKN)~ zR9Ht+X8mV2egBHmwv0ctLz0$2pQ@;l=RNj^y`Y{yI2HIaPBP#VO})!M*^J2ZGic48N}jJ=ox71s9(_~mc)ToBk8FBuY1UWdWg3-kymL6)Jp1vwa46N z8Zmm;+8M;qjh2M|#!!!5gg8NvvfBFQ1f-Z5V|yRPBFyYCKpJZN00f#EYzl#bL7HaQ zr6H093{_Z;Hn1X40V z+9D{dAyyuyyl#T&kgCpVZbdchER6@IF!LXbm)5>;#vVM>x*$_ydTGKmL6&-l=QE%J zF2bE-T(eN)!%!*2$x~nmCb(Hx3I<7*J!-j2`6TiXQ-FxPzcBtG;#5G0<&OvetN&d@ z$Z+JcH?%&!_6+^1@Ib)47eWg6K%+0+)9pq-N%nwY;hUwjRiC>!B_R7odO z(`~G|)^A?Tan^dMReH;`-@m_)@A9W#Ak-V$N!XaBGJLLDH;!aQ$PUll$(;mE=tzY(`GH2siS^fMg#~f&1(?COB;i+I~S#6Se)~#3AQps}!o_ z-n(mwPl8U;jFjVdNX3M6>D^>WBIpDhD0*yt9BhZe2&&zLtQ{F$AnR8CrS*`KUIbND zezPyANMZ9EYUO&}E~32l)T5xApc^(Y7DYAD{LZDxxF~W0x`1imt*Bie;_B+at=L6w z2Nu3W=B-My-nf!>7?x#DN6;6U{Ei?jj8>yT(wvTri-24ITQ(3Dd2NxR{*CFRND>Nq z-x=70hkObg#^+oM>Vw56@zaFnwou8eTSaAg-~(DMQ>+78!m4EENoU1`rLbuuhy6Ke3snEyN=6RNgThg2h%xV$Ni*Ld>+e_D5!Y*3O#t zg-H~|8KDYSPbj~`Uwm~Vw|m_Mic=g%am4tTNQE~#l!jtPG#0OO4y(rzviBd0GcUji z66pUqqv$6})0&H#PkYcypN%8FeQOhXF>)`x=()Ihf2pc>#zK;0!+5~v_7 zl_kF!ZN_Z8G8|=gEEbBzN7oNt z6;(gUY68j+7V97BCmDG=aC1JE-;X@6Ia~rbAQ?(^qdFK%la=--M+eXjDp6H#gU{cW z0z3K2coCi(#TqGDxk|^j!`H^8sd^Oo4fPW@WffH8PBQ8}MJPk8+D-&0U zg;i$sz?8wQcEyR1vd8CI49`*i0gLLOnAoKZJC8W*}f2a3X1lLlYkVq_0Vx&+~5+D3e)B@=L zL?wU^CdFT74- zLrFarK&?-n-M2}H2(TL^I#vZx28;zyNEo>SD97iC{TF2-kpHC2kuq&;sXdsc%O)=p z8BHRG%E@Pv`#a2Nj*D41O5cE!P7FUI4UN3v&1$?x^<#;&gvw`6u|v7RO%Qo(kq5&B z(*8o6*4#cqVIO>UAK%0VuK09cFp`&jC1|%`O+iz@8qJzSL8T`(FI*3821|T>U8mr> zB?ui6g?-4P>SLGEx7h1?0^#$<9#|DuYQ#weZd?-N^6PnaB8t{55HJBYKEISA748_H9px7m`eZ)!6<^aXLq1SME3Vl0 zDe+aZh|HAtT8KbwDE1c~Dk%1E0%x^Xa61s&vDGNJ!ufIR6IO}V=cD|RRGYT(c5ctX z*;nPD^+5{fk%9epVQ@x6YT_I*wqtiG@S>pAh6;8t5rRaEl>%pqsaD{>k|hkOXF9Yt zHS|F9%*>x*1^P~eRW!bmX1F2;DU59B#Mlz-Xa#TD4&xxh$ACZ=Uv1m<5y1X__60|d z;&tnlAjPp}qNCrrzViaHs(t<|X6)!j?!-PkG$gXD+uR7?LW7j@ejUUhW`vq*rcD`3 z;g8Z_7=Tg|Wq?vyc|On>Tdr8zO>t-w6gkOF4gCjn5*%@km;Ff<)Vv(Uy+D{^=*^t}_d76c6GZTV*vn3hD}hKEFVv(>*zeu4D=D zL`~%m5Cgq9his+_yuvcZ&?qzoiOk{3U+{8#*NaHdRRd z85S9yB;(eQ^3Oo-YWP@54+e?-4pakO;uoQO4N1!)Mu|0g|gsL(;_9o|oE4q<;xXju@BXc=OCA zK$pGyJ1kMDka{f2UtzgY_e!r4X{fyY7{wD5QB8l8*_R2tG6gAurzMw%Q&|c$z*1!c zi*sa_xSQt%eif@#MJ_b_|N6}B+GmPYCxjx+r|TDJAh%(r2py9CkGMc7lhOJ|q&QJH z94MtWMXB=_6l@#woVUlElRRXehK=xoUliR#a^Ns0g=PZR6{(Gc9cvHRLEiJJSzA<% zwA=zS9pN-G_hlMs)r@kmMGT-9Ls>XcKUSvZwoziPAJ8}4ZmAmpN6uPf6a{}vW$NAIT{7y^(7Cu z$1kq8%7I5v#*Q-YG=?o+{bii|&3ETM>NtjY#@1Wx{-utH2tJg9VAnTPsF?^p7kh}b zbOp%)h+Al)SHS#x$y#Q1eJB^f>CBI07zZ@F5HvDnpI!Kur=+Ytlvqe9hOiY-iXdmG z=^;U!+xCr6KA`1Lz7)ppg*}8QfwvvS0n8i70enQC92WoI0l+sQ6!04{?}WJJB|N(b z+a{s>4boMI0kb^@uUqi^(PeX?3?@iEJsFKAQ$!!WzXRYnMBadJAmtgqZy z@)#sv8MbbO@&f|#{~d_uXVTOSq@mU~K-m!P0sJ;BpX+>z3DqAQ^b5~(grWSt*@Pdu zV6ABof(-g5L8Rh9;lDw55mM@%C)NLOs{t+!f)DLqs8TL>d0-n37vgm>s$V6?b&o@uKg3pimHtR# zz|9B9Ry?l$WPlMv;tm}8Pc5E)zXPKGrDXQE5Ma*M5H)vVcf5qem65sWA30e~$l z-p^)@YxM!}C#&uKW(OSot}&b&vKfSON&BX%QI42s?Y^!V=|%zlK0)eDIv=&ua7D(6 zEu?W%Tsn=Zu&ftkMRE7;mL;vR;60`UOo7B?5I7dN^XyKznH`AFg)5TSye}4Td@&>J00ou=#gxjgt@n3X0rMqc9W0^26kyb zy?($}0~FFK1qz+Kn&qeLn1(A`yy`a(IHlN%-S{xzc$((V4MV=lGG`cbOnR;S^cudw zX*Lw`onNOfb~|nDI=cw~mUVE+JOscL|A8s~8|H^>@w4JM?w|cMGY-uV!SX2`Hd|MB z0s+vNvJUvp`t-LU@a=uInEZhy&N2B2TTn9ZsRqg4i7QR|g>ub=Psh=vOLD_ts%VRC%7E_rXkOb+ zDP}}jCly@wCT=09LA_X(Vt-O!dfoHRsM5ia(P2)hS-Tf{5xcsgKuj^}!MT-)-Cn~0 zCdZ$uUt{I{9)JF73XgjU21k}~VTNAxvBtL#g~z|p6Jk!BHSc@fL7<_P>v;Ykxw>HE zm=!D=duCZQjg%`Te5Ia{3B;D_*3L8}W_~KOne+uNOb25FZqMXGxd!7U^h2EXgl=M$;2ljTibPS)Bo>p%vC?c_^WBMX?fpt9?%5i-` zyh;)<4_)?^O2;Hb7g7|YM3X|)C#fpPL$VXHzm)$2=9($aF5OAa>pQT6vI|mb{ z2{sC_M;@xbiFkLTIE&56NXgAeSiqoBlBJM@`^HJBWtw5HNWmOK45w}FmaHHPllW<0 z*&eiHl<+n7krc2v%+0u$=ENL~55?shSswJWC#uM>rI&n^*Q6l-p&%$;D&)m%jp z3VyI}|4aFxfT1AB>%+4} zQdC}1u~wQmr=$WZGRHR84$ChTo2CjWlmd|n%MWl92C%rBfpRZG;!wb;54wG8PndxU zWCght8O1|}jLf0N@?&=a?XGaGCgXyS+eklQT7ex^O-9;vMC>Df+0-Z4llp*hl&E>nsoSY0OYV!5)INk-c zF$vX#uO{cyL+4PK^-wqo@#AJniShs7#K!F2;LAxtZXaVoo-g(VXf|uMAE7@qlR0v* z#!_C^INuhf7MyO0Sdf!Zh?A1CN&`S?K`rQSO2Wc8h^n%}j+mGS!UbN?fQ1_c`MaX* zF2y4eo9bxyPry;4#<`=NaGu*FFWZ)v0roM1Ujxlsk4*5NEYK3;0nQu<|H~PBWXN3f z8i(9Ej3l@*37iQN<|g|-cM=M6D@tF>`EQ9)@|#6Pz%;}T+<6z3U2MQ>t0W79~Bof`A%_7n2tQAW&mzQxS*pi5VQ(%hX>!{fdrv3gsnFIC+jh&1l+dk z_Y;VqdHz9w>;Qrj6?4>%CDQ{$L{6HdILKrqc0PShh@hCDSW;9_)+z8|&sH%`BBU`_ zO;A=$Pb*H?_gQ>0ZoW;qUEN+X)&zaO!Ip5u4F4|6KO?La)4+wnAd2K}+~hA(Wp@a^ z8U7hmnBbg?g0h*)ru&=nmITE+G-3M5e;cw2`-e{=0O2n~ijqJ9d?c3B1DTz9B2#Bp zgzYr|^~BjJK@D#YV_#+na7pZTl;KuVGP9Nq1$)HoR(w9r-*H0B+&AOHtKGeVurNew zp|#`-U0QccOn4nx+U5EbIV{nI{d-69#Oy2(b5bt%8$LZQpslqGlMY>=QRGR@e)wUk zF{gc*MHTT~T`rTtN1z7{cAVA1R_;W$jSI8jlfwjB#9MJgSYZvcbVhipK=!0CK_asU z`wO~1`(qHhB>7BDCMQJvGmpN>EQAY7%hyVy=s!;i^Dx7`)h2e$O%nVyLQ+q^+C#|7 zhYTEEG2WG66pON&+(QJw5P1v|ku+(m$rKUI*F}zK#mAwUi;-I+?}Q(ZmtSAgdYfe5)Dhsu4d)KxwKUnTcNa zeb=Wx>+L0iI}x@}-(Sh*qLb6{6KR@LZByUpf$hiq)T;Fp0StqHps6QMQ;ZW)-eUTR z0FLJHbGYz?NnAbd@QmrBfH>7|bp&`cGjVc_aUwCmFnGNZEJJ+#W2#8gEC9(65wbsS z+C~^Tf}Q&qe;do7w4$A z&r{u94gvp~X>)KqMDv&+SnZ+a{YNugm3l)8LezL;KZ9~XOk zth%)3sle`tWCsVHEsZLL@joe>dw#aYz<~K%lycVoE@l5Jd+$&=RJb3erXeqSp@$4E z$aKCw@?5h-bfFc&N!!R`Zy5MUkomf`HI2{|J>XXmWCKy;zlW3%=?W1d|i{6_+}I|7h0e} ztxZXH9BK=Qxy*ETbgmro+M_JNPo+vTaJj0{R$hjYnxPEu0BnVgN=*6YZ1w_?*ZFvS(8P$ zwK%_sds$@r_DSNvMjh>7py>nDJw0H4R>hqx-l8x?#+{!ULa?*%-1bYPXPb1kz{Qd9 z1sR6#o2NN-o^bUkHNWCD@^hxaxmwf`bj&2cs#tT&W{Boy+mv3r0=Lj_V~n2l1?<^< z!H~rmx7FfBY`6`>Y7BI8Fs9C9@7$6V%1+odZ}EBfP9!JrS!z_N;aL6C{ABNYAIBw4 zX$?YxM{8;Lx+e6xt(ZJ**);dYJz&-^U!!=pF)Y4#|Ar{~z;BDoP{@H5Y@t!l-w2pn z{LYRhTrL$ss0w99p0&_NLZa-N*j&uvI;dUclVY_$xoFI5N(R#q6x;L_+PUxRM#iJ= zi?rD;jB1kyJJ09F={(eTjef>k*}bt=ottC``8eJ-8cJX0zLXF9AUch&%RI?g73z#` zK(JjHZz6+_J8u!=8&MzQ0Wq%>UhCIRqVkc0=9>B|X%@WXSnW}q)waU|+wgtqHeKEV{?D{X#~KGpK!6lfO@O~Yx!C_oLFHnkuk>#x zeB?~8c|QXz(2Pe{-+r9Zo?!&zw>TyY-1Y>)CInj?QpQHWWT?rPCuVgvjP`pn!V|*M zO&_dDx^0QvKlAOGAXIj9&KC^vuR=BqhA5!8p(4@J&S4TR)(W)Cz+d3Mg+>k#>6bFq zNgN>pUX?tG8Igm7yP}3Oi;bjzN^Tvb3sGfHQRE6-JSqA!!-kh=N2l6x=Wl zkL>~U6{iMmE%rj7b?$YF+cKKrqDG?q-YUlZf_j1k*dGehQAiw=kn?l;S^x9?9ap2- zg{F>7n2M_9st3!KrVo^{z;mA)|D|(0*nl$f8Bxst>sBh#!Fm(D#=J2_i%L>!W;xjx zPmcvtH%0_%5v;f~p{J?gKrM9+*lwZWP(oNS zszl-#J6xSxi6l%>{^g93i(^*qp=-(`dNd*e2~3*C3WviC2Nu}J7Z{9K;<>^l7RJoa zVT#la++Zi6B29z-hv`V@$OuHcYeOT}I%+CYQ)z6R#zi0ALl8ugg~}0(=wSl+a<=6Y*eO%#w=--BpId(hz4Z=H$6-+sX(hlb6}?kbGtE2B z;1?66Hmd#$#kD{Df;dkCG_8kcN8S6x-A#m>{xe^wNx>JH7EZQ$m_h@B#$VyAIC%0cUvduIz$GBT>E(&2Q_ zqh*v~oi%uJva>edk8pN#S3FFw^QnN&_BbDB=E_cm-bVj*E_=`rp+9CbR?o?x4^ChP zXxS(d`V$P1x0$h>Bah7NyWm-2Wa!*TCb?-1jcKN}#0%pKsH*WXKXfE5@)H+_+;l%x;tTo3yu;b#3>1lkWJEl!hy6c5T2x=qGEh4!nL& zIlU!!k)0L0%T$S$dENY1?(zgdqLv{DAfR?CARyF#9+HlxMpj1je=QmR%5bJ3W3$GF z(e)eoEOB=ILYf!K#g-#bBKn@>xvG`rv<}^5s z&})tTnepP(X$Yzu9*NINzbA@2q%c-O3am!oaorgNLi#|!>=^59)Q zCm|67GROiR=Qti|zabupmj8RFCo*c|iNHJoGDF_JF{6}JU4!Cmb^d~QhO-?}R0%zr zVICyD;!^Ti!v-|U3Zy<(4pIYY)fZ?yCQlN<7MR|FxP^?#yQ2g(-!)jsJS#680d@VT zr7o}My|v`&-f}T|ZQhrI#l7Kbymu|IZs>PAD=vXEuDFcOm2=EpQMa66-)7p#j{-Ki`bGWwIqxzbmEsSm@l#OR~KgEZWf?E#UvGl_g=W;7n zfSMC9B-Ui!Za`XBNT65zY`f(vtf>Os;{^_}=++C)h-4D2i1J~gVxz(29UKvIiQYgX zSU)ZG(iLRIKzMp`K<#P?AzdjZj?-7-qq5M(=!7KekC(h=atmzxWg4o54BNgbwm=i5 zpG3v4?BTcS*U(;mOvP6t~cjY{3v zpJGurkWY}KwV6%pMWs`6-*)_tl9U9G&U*hO#)Xffx$tvoaqKWCH}B3%X*VgMqm^o5 zVTrs@^y1d6RN*IvoOrb4UW)tv?+cw1q{xCk>CBh?RJkN^N||~rGxB<5}Za=0Rc^onC zy8Ss;k^8t}-VY$H_^OpiakX1bmc4Vc=I7wUPqEgoP7Zm+pp}*yNfwV8RbS^IBEn@x zHbObH5}W95;EKxFPRB^g8^4<^YAk3ZK79{A9!1D`gy1-RYyp(64lw={x=PAxM(h4Wp$JL0? z138c0oZDI3G12n69~Zd4=!)wy)-La@*voN8#8}A+1@6+#-?70(F1zs#K`FFy`1ajkn9~WU^SijJ5ssrK zxDj=}`&N*lYu3-baX1`{s8 zK6`bDD;X4dBWcTa4vdSl#ylIPZ~?>NOG2~HLdlBn9_jPM2>r|&2(VI-DMm_7y+peJvU(YVnfu27VDMMQF>T$n0}mtPQZ9dQNvpPQlG+paFQ!-rNfA0YTF zT(Zp~5)QU79v7mr_)m9-0(Xc(XF-CH8C8g;N+x3JPA#tBgmR$hRHLIPds>WW3t%dN zASSk@aL1LQ(C;I*7!Cek%Le_!Eme~|$QoI&#OM#rNV`{kRB$omkzVMkAUO0cDrvJe zNQ0_dVA2ik0~c5SOBdhR!D1&s4>>>=-hb%&J3H*Z)cutjHgdWa&_73n*zS}gY%nb| zGNH&-dqf6V{boy89y8q(TKKh1N_?{`PYD#0X%qMJ$-&A8p}a+qEPA%2s4UU<*!JFz z?bKw&$2yUq$*zG~l;IS(;N>!(x7WPY(Dde~upkj;D?_nO9_Syl9kiS$8*=x&vtD~!&qetcyKI-m%>tnSqb5i#I#oD zz^C1>8MDxZuQ%z3*x0&z{|!@f+?&`<=-FZ&>8EBB!<3vhfenkSejL`!df;*nrHE|# zoIYu?l8Pa^c9wP-i}OQ*dT{-|$H(oAW5=bh8{lN4Txbo-A3ffdQDFGA*6)+6H)d<( zQIA22AWO&N7#W__aymz`U`B{nJfM1$)KC)vIb*%Ph1UZ{&-9x;3_cV}Lkyc7u3pRP zBzdl@#}{fKwc6s!gpZd~GpWSD{W9LFoRRg$R=8 zrZX3^5XazgjsD)Cgt&6Z=0;bsGN<2|&WI{C0eV$o^xq`nWNfuaI;Vs^+mT$vAv+%~Mk^>oGUA#F|G+`y(R-4Mlu#5}N- zd}@3tRLm}mX-(pTI>c1_to{R0Aw%`J)7GFL0D zOG%O9xQnw&FoMcmo2SCP8kbGRTm{WYyY~VvX63Jr46P0M7tKiGXrNVa6fS>DN6Gun z-lh1(Evya6{i{tKv}y*0dnj<9kE!9>RU46>HMO#|m*clG(2dvp2S2yaJ2&)BEH$j$ zu+Ts?tf&)co6U{QUlXH(E=$t5<#ED>8`vA0V_D>UDVdt==Cw_qKfs=mfZ_uLpzPR>tkL$ z%0V-3MQ@5MTYJ~og6O4~j@bKO{QSJJ!wrjeS1P~0z^UL3nyq=!G68a?bYN;P`sclk zX|2nPYXnA#2jOyU(Q+AP4BX26oQMdgiCT|2Iw=lj-4mmG7)Tee3WA{20d0^Md`UH+ z6$(F-R0?l+uSKs!OcH5XBmbmLcw1NMV0nG!8Z1rHP)=S)+%r4AdC@B%vF2ofQHC8x zchU*m-gcTZJbczK$3c?crj5i*cWn;;DkT1~G)pW-k!IPuv@npu23$ENlCEr9-@5p> zA*28q9A;9jw`E6Ey?o3mK2ew2DkcDzY--qpADJ(|9e$qu#T&^HXPb=yD|7oaSjM6Y z-5K}Sa$94`oIy07k_y)7HyGqkfX}N}p*9%5@mLm1a21GWWS6SF?l%JfG!pGVRID!Yymmd^o90F8mH3@8y2A_S8!*yoZ8>NuuFd+sh_8n z9<(F8k=b~LUvJ~o^p)y3R=Dd8uU_Hd>mQVe;Vcy>9Pw)49o+L8*~Fd*+yh1`x{JqE z##kadtSCiN!>Og2P6gJF$AC&CU){>k~B>V&_2F`-C{_qTV-ZU>0gGDa$f~5 zPBOgQYD$?wXCJRU3qP5!>q)ED0)CbDE`>xG+}Lf?cp%X4vp4ZM#8uDdpWQY1W@saA zLBsaj$Z*x>f>-6-aZ)viWPJ!eRG3**G=g}nb~U{@sz>F0RI;~mnhH}2; zg!_J&_k5W2KpGMjL=l0L8kTC-bK!B$wEIi*m8>1F=TZA;(OKRLEBNF=Ei{g~V}*Bl ze%!gV7TEZz@OG)%O&EXVhrxxtk1jINM7AyYx@yGI)W7QRcbufSrsAA3@%K~n?V<@Y zB{|`Z>cPY4VV@ z5Lf|il|MT^nQK_w$8PmxPr%K&SFnaJB6f+!mLXo$^8u>~q?I>oR)8n|#afx*uC=|% z!xdOad*XXJjs+eDiB=DZ3IBX6$Ic_Ov^K;TRL7bAqn5<}1k1Ffn!Byjsr2cKW02gK zZtYGC`$$aj-Mc9MvzGuc zrh!+-{6LIAD6tPq5(oDbb4qeKdjKJV<5vK)PAHK)9`Izkd3jDQsdA^V0nLPJ-%Qk&krK(Nq-&^N&=~ z!jX_bQ|?v;gZoJ#5Gs-6}FCC8B; z>2W$xMV6vT<;^EaX+VV94&>Z^$c|q>1keTonOy>s!S-(6mbU`j?Y+!@L}%m#0Z=Wq zP2f^IkVj_xg$Di+6t4k_|Ht_Ip*=Ye8O>Fs41Rt9W z(0K>Y75|~m*MXRJAO3&Ke<%6lD4@!@&c#cDKo*A7Am&3%mcS(KGkJLjxY+NPE6K-z z{DYFe@CXWSjYD9v&r6c?kk?5Mc#r|Vcz!FQki*FfF9&enke_g}G7LEbc_HF};jhr2 z42Q}R FSParams} -import com.twitter.frigate.thriftscala.CollapseInfo -import com.twitter.frigate.thriftscala.CommonRecommendationType -import com.twitter.frigate.thriftscala.CommonRecommendationType.MagicFanoutSportsEvent -import com.twitter.frigate.thriftscala.OverrideInfo -import com.twitter.util.Future -import java.util.UUID - -object OverrideNotificationUtil { - - /** - * Gets Override Info for the current notification. - * @param candidate [[PushCandidate]] object representing the recommendation candidate - * @param stats StatsReceiver to track stats for this function as well as the subsequent funcs. called - * @return Returns OverrideInfo if CollapseInfo exists, else None - */ - - def getOverrideInfo( - candidate: PushCandidate, - stats: StatsReceiver - ): Future[Option[OverrideInfo]] = { - if (candidate.target.isLoggedOutUser) { - Future.None - } else if (isOverrideEnabledForCandidate(candidate)) - getCollapseInfo(candidate, stats).map(_.map(OverrideInfo(_))) - else Future.None - } - - private def getCollapseInfo( - candidate: PushCandidate, - stats: StatsReceiver - ): Future[Option[CollapseInfo]] = { - val target = candidate.target - for { - targetHistory <- target.history - deviceInfo <- target.deviceInfo - } yield getCollapseInfo(target, targetHistory, deviceInfo, stats) - } - - /** - * Get Collapse Info for the current notification. - * @param target Push Target - recipient of the notification - * @param targetHistory Target's History - * @param deviceInfoOpt `Option` of the Target's Device Info - * @param stats StatsReceiver to track stats for this function as well as the subsequent funcs. called - * @return Returns CollapseInfo if the Target is eligible for Override Notifs, else None - */ - def getCollapseInfo( - target: PushTypes.Target, - targetHistory: History, - deviceInfoOpt: Option[DeviceInfo], - stats: StatsReceiver - ): Option[CollapseInfo] = { - val overrideInfoOfLastNotif = - PushOverrideInfo.getOverrideInfoOfLastEligiblePushNotif( - targetHistory, - target.params(FSParams.OverrideNotificationsLookbackDurationForOverrideInfo), - stats) - overrideInfoOfLastNotif match { - case Some(prevOverrideInfo) if isOverrideEnabled(target, deviceInfoOpt, stats) => - val notifsInLastOverrideChain = - PushOverrideInfo.getMrPushNotificationsInOverrideChain( - targetHistory, - prevOverrideInfo.collapseInfo.overrideChainId, - stats) - val numNotifsInLastOverrideChain = notifsInLastOverrideChain.size - val timestampOfFirstNotifInOverrideChain = - PushOverrideInfo - .getTimestampInMillisForFrigateNotification( - notifsInLastOverrideChain.last, - targetHistory, - stats).getOrElse(PushConstants.DefaultLookBackForHistory.ago.inMilliseconds) - if (numNotifsInLastOverrideChain < target.params(FSParams.MaxMrPushSends24HoursParam) && - timestampOfFirstNotifInOverrideChain > PushConstants.DefaultLookBackForHistory.ago.inMilliseconds) { - Some(prevOverrideInfo.collapseInfo) - } else { - val prevCollapseId = prevOverrideInfo.collapseInfo.collapseId - val newOverrideChainId = UUID.randomUUID.toString.replaceAll("-", "") - Some(CollapseInfo(prevCollapseId, newOverrideChainId)) - } - case None if isOverrideEnabled(target, deviceInfoOpt, stats) => - val newOverrideChainId = UUID.randomUUID.toString.replaceAll("-", "") - Some(CollapseInfo("", newOverrideChainId)) - case _ => None // Override is disabled for everything else - } - } - - /** - * Gets the collapse and impression identifier for the current override notification - * @param target Push Target - recipient of the notification - * @param stats StatsReceiver to track stats for this function as well as the subsequent funcs. called - * @return A Future of Collapse ID as well as the Impression ID. - */ - def getCollapseAndImpressionIdForOverride( - candidate: PushCandidate - ): Future[Option[(String, Seq[String])]] = { - if (isOverrideEnabledForCandidate(candidate)) { - val target = candidate.target - val stats = candidate.statsReceiver - Future.join(target.history, target.deviceInfo).map { - case (targetHistory, deviceInfoOpt) => - val collapseInfoOpt = getCollapseInfo(target, targetHistory, deviceInfoOpt, stats) - - val impressionIds = candidate.commonRecType match { - case MagicFanoutSportsEvent - if target.params(FSParams.EnableEventIdBasedOverrideForSportsCandidates) => - PushOverrideInfo.getImpressionIdsForPrevEligibleMagicFanoutEventCandidates( - targetHistory, - target.params(FSParams.OverrideNotificationsLookbackDurationForImpressionId), - stats, - MagicFanoutSportsEvent, - candidate - .asInstanceOf[RawCandidate with MagicFanoutEventCandidate].eventId - ) - case _ => - PushOverrideInfo.getImpressionIdsOfPrevEligiblePushNotif( - targetHistory, - target.params(FSParams.OverrideNotificationsLookbackDurationForImpressionId), - stats) - } - - collapseInfoOpt match { - case Some(collapseInfo) if impressionIds.nonEmpty => - val notifsInLastOverrideChain = - PushOverrideInfo.getMrPushNotificationsInOverrideChain( - targetHistory, - collapseInfo.overrideChainId, - stats) - stats - .scope("OverrideNotificationUtil").stat("number_of_notifications_sent").add( - notifsInLastOverrideChain.size + 1) - Some((collapseInfo.collapseId, impressionIds)) - case _ => None - } - case _ => None - } - } else Future.None - } - - /** - * Checks to see if override notifications are enabled based on the Target's Device Info and Params - * @param target Push Target - recipient of the notification - * @param deviceInfoOpt `Option` of the Target's Device Info - * @param stats StatsReceiver to track stats for this function - * @return Returns True if Override Notifications are enabled for the provided - * Target, else False. - */ - private def isOverrideEnabled( - target: PushTypes.Target, - deviceInfoOpt: Option[DeviceInfo], - stats: StatsReceiver - ): Boolean = { - val scopedStats = stats.scope("OverrideNotificationUtil").scope("isOverrideEnabled") - val enabledForAndroidCounter = scopedStats.counter("android_enabled") - val disabledForAndroidCounter = scopedStats.counter("android_disabled") - val enabledForIosCounter = scopedStats.counter("ios_enabled") - val disabledForIosCounter = scopedStats.counter("ios_disabled") - val disabledForOtherDevicesCounter = scopedStats.counter("other_disabled") - - val isPrimaryDeviceAndroid = PushDeviceUtil.isPrimaryDeviceAndroid(deviceInfoOpt) - val isPrimaryDeviceIos = PushDeviceUtil.isPrimaryDeviceIOS(deviceInfoOpt) - - lazy val validAndroidDevice = - isPrimaryDeviceAndroid && target.params(FSParams.EnableOverrideNotificationsForAndroid) - lazy val validIosDevice = - isPrimaryDeviceIos && target.params(FSParams.EnableOverrideNotificationsForIos) - - if (isPrimaryDeviceAndroid) { - if (validAndroidDevice) enabledForAndroidCounter.incr() else disabledForAndroidCounter.incr() - } else if (isPrimaryDeviceIos) { - if (validIosDevice) enabledForIosCounter.incr() else disabledForIosCounter.incr() - } else { - disabledForOtherDevicesCounter.incr() - } - - validAndroidDevice || validIosDevice - } - - /** - * Checks if override is enabled for the currently supported types for SendHandler or not. - * This method is package private for unit testing. - * @param candidate [[PushCandidate]] - * @param stats StatsReceiver to track statistics for this function - * @return Returns True if override notifications are enabled for the current type, otherwise False. - */ - private def isOverrideEnabledForSendHandlerCandidate( - candidate: PushCandidate - ): Boolean = { - val scopedStats = candidate.statsReceiver - .scope("OverrideNotificationUtil").scope("isOverrideEnabledForSendHandlerType") - - val overrideSupportedTypesForSpaces: Set[CommonRecommendationType] = Set( - CommonRecommendationType.SpaceSpeaker, - CommonRecommendationType.SpaceHost - ) - - val isOverrideSupportedForSpaces = { - overrideSupportedTypesForSpaces.contains(candidate.commonRecType) && - candidate.target.params(FSParams.EnableOverrideForSpaces) - } - - val isOverrideSupportedForSports = { - candidate.commonRecType == CommonRecommendationType.MagicFanoutSportsEvent && - candidate.target - .params(PushFeatureSwitchParams.EnableOverrideForSportsCandidates) - } - - val isOverrideSupported = isOverrideSupportedForSpaces || isOverrideSupportedForSports - - scopedStats.counter(s"$isOverrideSupported").incr() - isOverrideSupported - } - - private[util] def isOverrideEnabledForCandidate(candidate: PushCandidate) = - !RecTypes.isSendHandlerType( - candidate.commonRecType) || isOverrideEnabledForSendHandlerCandidate(candidate) -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushAdaptorUtil.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushAdaptorUtil.docx new file mode 100644 index 0000000000000000000000000000000000000000..e94d87b0739a3c71e08bdc4eff5b5076f628ef38 GIT binary patch literal 37965 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 O3BV1U9{tJdNB;n)xDx&V literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushAdaptorUtil.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushAdaptorUtil.scala deleted file mode 100644 index 7bc29cf01..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushAdaptorUtil.scala +++ /dev/null @@ -1,151 +0,0 @@ -package com.twitter.frigate.pushservice.util - -import com.twitter.contentrecommender.thriftscala.MetricTag -import com.twitter.frigate.common.base.AlgorithmScore -import com.twitter.frigate.common.base.OutOfNetworkTweetCandidate -import com.twitter.frigate.common.base.SocialContextAction -import com.twitter.frigate.common.base.TopicCandidate -import com.twitter.frigate.common.base.TripCandidate -import com.twitter.frigate.pushservice.model.PushTypes.RawCandidate -import com.twitter.frigate.pushservice.model.PushTypes.Target -import com.twitter.frigate.thriftscala.{SocialContextAction => TSocialContextAction} -import com.twitter.frigate.thriftscala.{CommonRecommendationType => CRT} -import com.twitter.frigate.thriftscala._ -import com.twitter.stitch.tweetypie.TweetyPie.TweetyPieResult -import com.twitter.topiclisting.utt.LocalizedEntity -import com.twitter.trends.trip_v1.trip_tweets.thriftscala.TripDomain -import scala.collection.Seq - -case class MediaCRT( - crt: CRT, - photoCRT: CRT, - videoCRT: CRT) - -object PushAdaptorUtil { - - def getFrigateNotificationForUser( - crt: CRT, - userId: Long, - scActions: Seq[SocialContextAction], - pushCopyId: Option[Int], - ntabCopyId: Option[Int] - ): FrigateNotification = { - - val thriftSCActions = scActions.map { scAction => - TSocialContextAction( - scAction.userId, - scAction.timestampInMillis, - scAction.tweetId - ) - } - FrigateNotification( - crt, - NotificationDisplayLocation.PushToMobileDevice, - userNotification = Some(UserNotification(userId, thriftSCActions)), - pushCopyId = pushCopyId, - ntabCopyId = ntabCopyId - ) - } - - def getFrigateNotificationForTweet( - crt: CRT, - tweetId: Long, - scActions: Seq[TSocialContextAction], - authorIdOpt: Option[Long], - pushCopyId: Option[Int], - ntabCopyId: Option[Int], - simclusterId: Option[Int], - semanticCoreEntityIds: Option[List[Long]], - candidateContent: Option[CandidateContent], - trendId: Option[String], - tweetTripDomain: Option[scala.collection.Set[TripDomain]] = None - ): FrigateNotification = { - FrigateNotification( - crt, - NotificationDisplayLocation.PushToMobileDevice, - tweetNotification = Some( - TweetNotification( - tweetId, - scActions, - authorIdOpt, - simclusterId, - semanticCoreEntityIds, - trendId, - tripDomain = tweetTripDomain) - ), - pushCopyId = pushCopyId, - ntabCopyId = ntabCopyId, - candidateContent = candidateContent - ) - } - - def getFrigateNotificationForTweetWithSocialContextActions( - crt: CRT, - tweetId: Long, - scActions: Seq[SocialContextAction], - authorIdOpt: Option[Long], - pushCopyId: Option[Int], - ntabCopyId: Option[Int], - candidateContent: Option[CandidateContent], - semanticCoreEntityIds: Option[List[Long]], - trendId: Option[String] - ): FrigateNotification = { - - val thriftSCActions = scActions.map { scAction => - TSocialContextAction( - scAction.userId, - scAction.timestampInMillis, - scAction.tweetId - ) - } - - getFrigateNotificationForTweet( - crt = crt, - tweetId = tweetId, - scActions = thriftSCActions, - authorIdOpt = authorIdOpt, - pushCopyId = pushCopyId, - ntabCopyId = ntabCopyId, - simclusterId = None, - candidateContent = candidateContent, - semanticCoreEntityIds = semanticCoreEntityIds, - trendId = trendId - ) - } - - def generateOutOfNetworkTweetCandidates( - inputTarget: Target, - id: Long, - mediaCRT: MediaCRT, - result: Option[TweetyPieResult], - localizedEntity: Option[LocalizedEntity] = None, - isMrBackfillFromCR: Option[Boolean] = None, - tagsFromCR: Option[Seq[MetricTag]] = None, - score: Option[Double] = None, - algorithmTypeCR: Option[String] = None, - tripTweetDomain: Option[scala.collection.Set[TripDomain]] = None - ): RawCandidate - with OutOfNetworkTweetCandidate - with TopicCandidate - with TripCandidate - with AlgorithmScore = { - new RawCandidate - with OutOfNetworkTweetCandidate - with TopicCandidate - with TripCandidate - with AlgorithmScore { - override val tweetId: Long = id - override val target: Target = inputTarget - override val tweetyPieResult: Option[TweetyPieResult] = result - override val localizedUttEntity: Option[LocalizedEntity] = localizedEntity - override val semanticCoreEntityId: Option[Long] = localizedEntity.map(_.entityId) - override def commonRecType: CRT = - getMediaBasedCRT(mediaCRT.crt, mediaCRT.photoCRT, mediaCRT.videoCRT) - override def isMrBackfillCR: Option[Boolean] = isMrBackfillFromCR - override def tagsCR: Option[Seq[MetricTag]] = tagsFromCR - override def algorithmScore: Option[Double] = score - override def algorithmCR: Option[String] = algorithmTypeCR - override def tripDomain: Option[collection.Set[TripDomain]] = tripTweetDomain - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushAppPermissionUtil.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushAppPermissionUtil.docx new file mode 100644 index 0000000000000000000000000000000000000000..750eef53584eca757c77c33a9579b76405174fd3 GIT binary patch literal 37466 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 Pt`cNO1ZI!Ny&xU{K)M*Q literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushAppPermissionUtil.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushAppPermissionUtil.scala deleted file mode 100644 index 0afa90fed..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushAppPermissionUtil.scala +++ /dev/null @@ -1,49 +0,0 @@ -package com.twitter.frigate.pushservice.util - -import com.twitter.frigate.common.store.deviceinfo.DeviceInfo -import com.twitter.onboarding.task.service.models.external.PermissionState -import com.twitter.permissions_storage.thriftscala.AppPermission -import com.twitter.storehaus.ReadableStore -import com.twitter.util.Future - -object PushAppPermissionUtil { - - final val AddressBookPermissionKey = "addressBook" - final val SyncStateKey = "syncState" - final val SyncStateOnValue = "on" - - /** - * Obtains the specified target's App Permissions, based on their primary device. - * @param targetId Target's Identifier - * @param permissionName The permission type we are querying for (address book, geolocation, etc.) - * @param deviceInfoFut Device info of the Target, presented as a Future - * @param appPermissionStore Readable Store which allows us to query the App Permission Strato Column - * @return Returns the AppPermission of the Target, presented as a Future - */ - def getAppPermission( - targetId: Long, - permissionName: String, - deviceInfoFut: Future[Option[DeviceInfo]], - appPermissionStore: ReadableStore[(Long, (String, String)), AppPermission] - ): Future[Option[AppPermission]] = { - deviceInfoFut.flatMap { deviceInfoOpt => - val primaryDeviceIdOpt = deviceInfoOpt.flatMap(_.primaryDeviceId) - primaryDeviceIdOpt match { - case Some(primaryDeviceId) => - val queryKey = (targetId, (primaryDeviceId, permissionName)) - appPermissionStore.get(queryKey) - case _ => Future.None - } - } - } - - def hasTargetUploadedAddressBook( - appPermissionOpt: Option[AppPermission] - ): Boolean = { - appPermissionOpt.exists { appPermission => - val syncState = appPermission.metadata.get(SyncStateKey) - appPermission.systemPermissionState == PermissionState.On && syncState - .exists(_.equalsIgnoreCase(SyncStateOnValue)) - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushCapUtil.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushCapUtil.docx new file mode 100644 index 0000000000000000000000000000000000000000..73824247b3052d8480893794b5ab2e6c4db05b29 GIT binary patch literal 38523 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 - val pushCap: Int = dynamicPushcapOpt match { - case Some(pushcapInfo) => pushcapInfo.pushcap - case _ => target.params(PushFeatureSwitchParams.MaxMrPushSends24HoursParam) - } - - pushCapStats.stat("pushCapValueStats").add(pushCap) - pushCapStats - .scope("pushCapValueCount").counter(f"num_users_with_pushcap_$pushCap").incr() - - target.finalPushcapAndFatigue += "pushPushCap" -> PushCapInfo("pushPushCap", pushCap.toByte) - - PushCapFatigueInfo(pushCap, 24.hours) - } - } - - def getMinDurationsSincePushWithoutUsingPushCap( - target: TargetUser - with TargetABDecider - with FrigateHistory - with UserDetails - with ResurrectedUserDetails - )( - implicit statsReceiver: StatsReceiver - ): Duration = { - val minDurationSincePush = - if (target.params(PushFeatureSwitchParams.EnableGraduallyRampUpNotification)) { - val daysInterval = - target.params(PushFeatureSwitchParams.GraduallyRampUpPhaseDurationDays).inDays.toDouble - val daysSinceActivation = - if (target.isResurrectedUser && target.timeSinceResurrection.isDefined) { - target.timeSinceResurrection.map(_.inDays.toDouble).get - } else { - target.timeElapsedAfterSignup.inDays.toDouble - } - val phaseInterval = - Math.max( - 1, - Math.ceil(daysSinceActivation / daysInterval).toInt - ) - val minDuration = 24 / phaseInterval - val finalMinDuration = - Math.max(4, minDuration).hours - statsReceiver - .scope("GraduallyRampUpFinalMinDuration").counter(s"$finalMinDuration.hours").incr() - finalMinDuration - } else { - target.params(PushFeatureSwitchParams.MinDurationSincePushParam) - } - statsReceiver - .scope("minDurationsSincePushWithoutUsingPushCap").counter( - s"$minDurationSincePush.hours").incr() - minDurationSincePush - } - - def getMinDurationSincePush( - target: Target, - statsReceiver: StatsReceiver - ): Future[Duration] = { - val minDurationStats: StatsReceiver = statsReceiver.scope("pushcapMinDuration_stats") - val minDurationModifierCalculator = - MinDurationModifierCalculator() - val openedPushByHourAggregatedFut = - if (target.params(PushFeatureSwitchParams.EnableQueryUserOpenedHistory)) - target.openedPushByHourAggregated - else Future.None - Future - .join( - target.dynamicPushcap, - target.accountCountryCode, - openedPushByHourAggregatedFut - ) - .map { - case (dynamicPushcapOpt, countryCodeOpt, openedPushByHourAggregated) => - val minDurationSincePush: Duration = { - val isGraduallyRampingUpResurrected = target.isResurrectedUser && target.params( - PushFeatureSwitchParams.EnableGraduallyRampUpNotification) - if (isGraduallyRampingUpResurrected || target.params( - PushFeatureSwitchParams.EnableExplicitPushCap)) { - getMinDurationsSincePushWithoutUsingPushCap(target)(minDurationStats) - } else { - dynamicPushcapOpt match { - case Some(pushcapInfo) => - pushcapInfo.fatigueMinutes match { - case Some(fatigueMinutes) => (fatigueMinutes / 60).hours - case _ if pushcapInfo.pushcap > 0 => (24 / pushcapInfo.pushcap).hours - case _ => getMinDurationsSincePushWithoutUsingPushCap(target)(minDurationStats) - } - case _ => - getMinDurationsSincePushWithoutUsingPushCap(target)(minDurationStats) - } - } - } - - val modifiedMinDurationSincePush = - if (target.params(PushFeatureSwitchParams.EnableMinDurationModifier)) { - val modifierHourOpt = - minDurationModifierCalculator.getMinDurationModifier( - target, - countryCodeOpt, - statsReceiver.scope("MinDuration")) - modifierHourOpt match { - case Some(modifierHour) => modifierHour.hours - case _ => minDurationSincePush - } - } else if (target.params( - PushFeatureSwitchParams.EnableMinDurationModifierByUserHistory)) { - val modifierMinuteOpt = - minDurationModifierCalculator.getMinDurationModifierByUserOpenedHistory( - target, - openedPushByHourAggregated, - statsReceiver.scope("MinDuration")) - - modifierMinuteOpt match { - case Some(modifierMinute) => modifierMinute.minutes - case _ => minDurationSincePush - } - } else minDurationSincePush - - target.finalPushcapAndFatigue += "pushFatigue" -> PushCapInfo( - "pushFatigue", - modifiedMinDurationSincePush.inHours.toByte) - - minDurationStats - .stat("minDurationSincePushValueStats").add(modifiedMinDurationSincePush.inHours) - minDurationStats - .scope("minDurationSincePushValueCount").counter( - s"$modifiedMinDurationSincePush").incr() - - modifiedMinDurationSincePush - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushDeviceUtil.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushDeviceUtil.docx new file mode 100644 index 0000000000000000000000000000000000000000..0d4d5d18041dab5f8eb108a430dd535b74003732 GIT binary patch literal 37224 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%0DVnG`1BWD9#%$ly@okmqBX>xCl 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 Vc(Vd?5GYp(G9&`C$HyKJ4*-y=q{jdN literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushDeviceUtil.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushDeviceUtil.scala deleted file mode 100644 index d191d742a..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushDeviceUtil.scala +++ /dev/null @@ -1,57 +0,0 @@ -package com.twitter.frigate.pushservice.util - -import com.twitter.frigate.common.store.deviceinfo.DeviceInfo -import com.twitter.frigate.common.store.deviceinfo.MobileClientType -import com.twitter.frigate.pushservice.model.PushTypes.Target -import com.twitter.util.Future -import com.twitter.finagle.stats.NullStatsReceiver -import com.twitter.finagle.stats.StatsReceiver - -object PushDeviceUtil { - - def isPrimaryDeviceAndroid(deviceInfoOpt: Option[DeviceInfo]): Boolean = { - deviceInfoOpt.exists { - _.guessedPrimaryClient.exists { clientType => - (clientType == MobileClientType.Android) || (clientType == MobileClientType.AndroidLite) - } - } - } - - def isPrimaryDeviceIOS(deviceInfoOpt: Option[DeviceInfo]): Boolean = { - deviceInfoOpt.exists { - _.guessedPrimaryClient.exists { clientType => - (clientType == MobileClientType.Iphone) || (clientType == MobileClientType.Ipad) - } - } - } - - def isPushRecommendationsEligible(target: Target): Future[Boolean] = - target.deviceInfo.map(_.exists(_.isRecommendationsEligible)) - - def isTopicsEligible( - target: Target, - statsReceiver: StatsReceiver = NullStatsReceiver - ): Future[Boolean] = { - val isTopicsSkipFatigue = Future.True - - Future.join(isTopicsSkipFatigue, target.deviceInfo.map(_.exists(_.isTopicsEligible))).map { - case (isTopicsNotFatigue, isTopicsEligibleSetting) => - isTopicsNotFatigue && isTopicsEligibleSetting - } - } - - def isSpacesEligible(target: Target): Future[Boolean] = - target.deviceInfo.map(_.exists(_.isSpacesEligible)) - - def isNtabOnlyEligible: Future[Boolean] = { - Future.False - } - - def isRecommendationsEligible(target: Target): Future[Boolean] = { - Future.join(isPushRecommendationsEligible(target), isNtabOnlyEligible).map { - case (isPushRecommendation, isNtabOnly) => isPushRecommendation || isNtabOnly - case _ => false - } - } - -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushIbisUtil.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushIbisUtil.docx new file mode 100644 index 0000000000000000000000000000000000000000..10265f8109abae2e1a84a9fa86750858af4eba48 GIT binary patch literal 37066 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 Zp|%bKyjg)c2$ZV?84`inBe(~|0|0)BQcwT@ literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushIbisUtil.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushIbisUtil.scala deleted file mode 100644 index 7567726bf..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushIbisUtil.scala +++ /dev/null @@ -1,36 +0,0 @@ -package com.twitter.frigate.pushservice.util - -import com.twitter.util.Future - -object PushIbisUtil { - - def getSocialContextModelValues(socialContextUserIds: Seq[Long]): Map[String, String] = { - - val socialContextSize = socialContextUserIds.size - - val (displaySocialContexts, otherCount) = { - if (socialContextSize < 3) (socialContextUserIds, 0) - else (socialContextUserIds.take(1), socialContextSize - 1) - } - - val usersValue = displaySocialContexts.map(_.toString).mkString(",") - - if (otherCount > 0) Map("social_users" -> s"$usersValue+$otherCount") - else Map("social_users" -> usersValue) - } - - def mergeFutModelValues( - mvFut1: Future[Map[String, String]], - mvFut2: Future[Map[String, String]] - ): Future[Map[String, String]] = { - Future.join(mvFut1, mvFut2).map { - case (mv1, mv2) => mv1 ++ mv2 - } - } - - def mergeModelValues( - mvFut1: Future[Map[String, String]], - mv2: Map[String, String] - ): Future[Map[String, String]] = - mvFut1.map { mv1 => mv1 ++ mv2 } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushToHomeUtil.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/PushToHomeUtil.docx new file mode 100644 index 0000000000000000000000000000000000000000..7ccb9eb2d84380b3fdc724bcf1be8697f177ed29 GIT binary patch literal 37075 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 z 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 - val isAndroidEnabled = deviceInfo.isLandOnHomeAndroid && target.params( - PushFeatureSwitchParams.EnableTweetPushToHomeAndroid) - val isIOSEnabled = deviceInfo.isLandOnHomeiOS && target.params( - PushFeatureSwitchParams.EnableTweetPushToHomeiOS) - if (isAndroidEnabled || isIOSEnabled) { - stats.counter("enable_push_to_home").incr() - Some(Map("is_land_on_home" -> "true")) - } else None - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/RFPHTakeStepUtil.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/RFPHTakeStepUtil.docx new file mode 100644 index 0000000000000000000000000000000000000000..b70028515cebf0cc3427644cd15137e07a0b0df7 GIT binary patch literal 37790 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 literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/RFPHTakeStepUtil.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/RFPHTakeStepUtil.scala deleted file mode 100644 index 015e065ec..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/RFPHTakeStepUtil.scala +++ /dev/null @@ -1,114 +0,0 @@ -package com.twitter.frigate.pushservice.util - -import com.twitter.finagle.stats.Counter -import com.twitter.finagle.stats.Stat -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.base.Invalid -import com.twitter.frigate.common.base.OK -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.frigate.pushservice.refresh_handler.ResultWithDebugInfo -import com.twitter.frigate.pushservice.predicate.BigFilteringEpsilonGreedyExplorationPredicate -import com.twitter.frigate.pushservice.predicate.MlModelsHoldbackExperimentPredicate -import com.twitter.frigate.pushservice.take.candidate_validator.RFPHCandidateValidator -import com.twitter.frigate.pushservice.thriftscala.PushStatus -import com.twitter.hermit.predicate.NamedPredicate -import com.twitter.util.Future - -class RFPHTakeStepUtil()(globalStats: StatsReceiver) { - - implicit val statsReceiver: StatsReceiver = - globalStats.scope("RefreshForPushHandler") - private val takeStats: StatsReceiver = statsReceiver.scope("take") - private val notifierStats = takeStats.scope("notifier") - private val validatorStats = takeStats.scope("validator") - private val validatorLatency: Stat = validatorStats.stat("latency") - - private val executedPredicatesInTandem: Counter = - takeStats.counter("predicates_executed_in_tandem") - - private val bigFilteringEpsGreedyPredicate: NamedPredicate[PushCandidate] = - BigFilteringEpsilonGreedyExplorationPredicate()(takeStats) - private val bigFilteringEpsGreedyStats: StatsReceiver = - takeStats.scope("big_filtering_eps_greedy_predicate") - - private val modelPredicate: NamedPredicate[PushCandidate] = - MlModelsHoldbackExperimentPredicate()(takeStats) - private val mlPredicateStats: StatsReceiver = takeStats.scope("ml_predicate") - - private def updateFilteredStatusExptStats(candidate: PushCandidate, predName: String): Unit = { - - val recTypeStat = globalStats.scope( - candidate.commonRecType.toString - ) - - recTypeStat.counter(PushStatus.Filtered.toString).incr() - recTypeStat - .scope(PushStatus.Filtered.toString) - .counter(predName) - .incr() - } - - def isCandidateValid( - candidate: PushCandidate, - candidateValidator: RFPHCandidateValidator - ): Future[ResultWithDebugInfo] = { - val predResultFuture = Stat.timeFuture(validatorLatency) { - Future - .join( - bigFilteringEpsGreedyPredicate.apply(Seq(candidate)), - modelPredicate.apply(Seq(candidate)) - ).flatMap { - case (Seq(true), Seq(true)) => - executedPredicatesInTandem.incr() - - bigFilteringEpsGreedyStats - .scope(candidate.commonRecType.toString) - .counter("passed") - .incr() - - mlPredicateStats - .scope(candidate.commonRecType.toString) - .counter("passed") - .incr() - candidateValidator.validateCandidate(candidate).map((_, Nil)) - case (Seq(false), _) => - bigFilteringEpsGreedyStats - .scope(candidate.commonRecType.toString) - .counter("filtered") - .incr() - Future.value((Some(bigFilteringEpsGreedyPredicate), Nil)) - case (_, _) => - mlPredicateStats - .scope(candidate.commonRecType.toString) - .counter("filtered") - .incr() - Future.value((Some(modelPredicate), Nil)) - } - } - - predResultFuture.map { - case (Some(pred: NamedPredicate[_]), candPredicateResults) => - takeStats.counter("filtered_by_named_general_predicate").incr() - updateFilteredStatusExptStats(candidate, pred.name) - ResultWithDebugInfo( - Invalid(Some(pred.name)), - candPredicateResults - ) - - case (Some(_), candPredicateResults) => - takeStats.counter("filtered_by_unnamed_general_predicate").incr() - updateFilteredStatusExptStats(candidate, predName = "unk") - ResultWithDebugInfo( - Invalid(Some("unnamed_candidate_predicate")), - candPredicateResults - ) - - case (None, candPredicateResults) => - takeStats.counter("accepted_push_ok").incr() - ResultWithDebugInfo( - OK, - candPredicateResults - ) - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/RelationshipUtil.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/RelationshipUtil.docx new file mode 100644 index 0000000000000000000000000000000000000000..79629f59ae6085fee1949c5cd6d1f24dc344aa81 GIT binary patch literal 37374 zcmagEWmsIvwm*z(a1HM6?hb+A?h-U;<4)tj-5r9vySqaO?iM5v-2LB~nRCv}x%a;B zm(4@fT0dE9cUAT7tt1Nxg$V`*1_xG|#;sMUQW%#64hA*`0|tfx8r2mC*g2coIUA~Z z*qb@&Gr8N^G$zR_u8N?3IeWoMW)>px5=X%*+p(vyXNbd-sLr_I(OzOck%M@+o8Svm zpHT{dVT#L4yYnGhtrP6>Zlcl^mpIYa&(zE(gDm#WU;oN_;$lrIFXFIveO#!9Pv_)F0ERO=E@jUOuku#5b0%)o0N%a$9(%CvjuCvae5=@&;f^ z|LCFzm8{4;sCyd_U|@)#zlM%xHcre;zps_?lOG{jQT@(@Bu6NV?V8jj3YHBd4&@7k zdQvA&i|l~XMJrvM$`blo*u6vtXS*im3mN(NOY}uHfttqJ^8tB_y;_^J7Y*%(YjDZ% z9sZ>5YCA#NHt7*Jl$R$Cg324`d&NP}X zK8&*f7=V;q6K8mFW$OC z)TW&2G{!9Xz>Uu6a-IFNK%rj{RV_ic`3$H)XrKa_0!)+~0rpPJCICmX-#2+y{J26t z3##Oux8$6>M%Wc9oTLmL_)+*rX-xm6)>{rvd7JTUuF1{a0$ZJ2dRL-N{^2Wop>^)Y zW=NCZ_+a9YxHEs#a71ma*HvTewWn-JI^N2ppuV%7$Jt9N3qF&vo(N^UcL+7vkTMyp z`f>}QeB=XloE&psrbx3|REqKr#Z=Mcm%nI;#M88qBa!T3(*E@KCkjg-kFQ57Z7w1L z%S0>50}o3c_#`)F05!W*4j<^aZ3E?sSEZx4bGV_)inrQ?wCY^b_Gog+>I)>)K??fy zVbDlrKhun+28NB`#PtFC9SS(Rh;o{WTZ;zUR``jNqr>L3E2Mt;yXKI0$jR^XW=={f zL;~{Q)^uGr00V`!!*g>xYm82me!|YCE$lTIFHPe-)G42Und^DT!)}5WA@Es=ch?t| ztQm@O-x<0lzaG~6zI}LozeGTP&wT-fdt`xZKs)Ou{`%Z^iT}^OT(7R; z9E18|0|f?#`uDzkvbX=EEo$R-t1PG;PxMgw&f%7@qRP1O0Slrt;_G-d@tMtYV`LxW zpjugXfIbhQSiE1DZ^HQN`JWobo)$&TVH*@at7DBnd>v78SVw5A4j5CL;OE zwf27CJV~i>X(LscMKQb_@}>H7xkt&gAm@kOnf#8@l8YP@G1y_muq6Wgb|Yn9o^?vI z3WgKja9mHKT34zWdKq;R+pQ%!oXg7z`65meIr^PE$?6lJ_Zlrn%YV%ww&k|Ils^_( z_7)lHkzZ`-8C!yGMI2U#FgBqn4a2u~3~=>}o9A6ZyOdNGD8^ySkfmIpdLd6fA9U08e%tYt#84p+ZZ}T_5i2r$G{8Bh&M}P(c zlcxCd1M3EGG-U>TYF%tWo73+*<3wi@u*!uB+%y!u&r_I{h)oiFjH}edpwEW zZA6m|%N0O+xqT|{eRaU6jZzIaiDT;)G%0&&ds~;;$PbW1PquES4083 zE|L*2WFXSf1!H8sB6P%x9ZbH8cSM{{Vu0x(Q%9S|?hw?#6NuawBjRW=x5;*iUT}JB z9pKf&hS2m^jF6YnBk|QT9@gz8my&2S!Gas-JCHu=O%aYx=WE^eTLays|jt3|L>XzR3PRuiyjJ5Xg zQn-%MGT6XL4Vd;dCdf$fvbrad5De!HX#aSY=&wBNq)BiJd^|pKrtrwc>Se7`%V;yo ztf}O2adXS*aZF(IM3|z?w9j1`cyE0(!_*euB1SRvkyQGfszRFBzLwa7R4)Z(G6a+i z{ybvgMM#!uszeEbe1Shrv1rSwDwIF2uc<_STi|Bk;Ncl#>phW)a(?!Qttarrow3TH z!ZK|iVRNk=s5m-3xd5-Rj$4oQ8xjM&B>`*k^h*+>?+rgpX{$1*KCmGXF4PG(!5z{@ zulRgtA1xk27=tkRq@sA$?Lesi={=iZ0YF73af5W-^7|5Wt)LonqgNDNWr!ilOJCCK zi}{SGQUMu9e1Jme>o=1018y)}MQ@SUHeLty6*O;3Ke6u>T=|N%Pu}`U`qp=`ZwzzQ zcv5P+J-ucnfY8YBSlPImtk%l|e74o+Ue^IR>TPli06!vKgFM)tne?3!G=RKEZebnj zg$ps)q88ZLoruKs^${c80b5l~_>zB!&`a7bz#QMp7jxS@A*MfGZaP_2X_rUHmTb>v zevFDyPxY32g>9Fo>&CX^^ZbyOgR%9ez%#h@4ZC2l=xSI{y^(TG|K$&AzmfX2M!euJWqns1ffnh>-&wTZW|2k(VKo20# znqOQWW&N6_>e@SzA(#ApXJ&}CBjYnk=dywEe09ux>zXbfntZ@hHxCoeu;_;j@6u%S zecx6NyX;sb%%M0_tX|nKqR#JT4b!HAJDP%3ZTGSi0{ObD$b9JuHE)`iBRf7iT@!S= zU$}HUln=_x-dy09@@u%h{R~erhKh%%ND7}t?B4STtUpBw30&~DqL?gLylD%uxEhsR zGPOX7Y0Ij5VdO((ehVmW-8>>7An-6ZgSy)!?(fuPa1V(hVq{AdKI&-bbI1KTh?;8^ z$1uc-Xr)O0g%*;78KvT01Wq6S3x;h-As?ABbbTS@1RlRUvNsdeB>?THe=MATo(KQFeExYhOcYfNWWoJ% z_KMIKoPb$m7xDhrSE_b8sp>-SV5yb(Tk*Y3-E~t2@g4u&J1(CbYTMb#Th)aPeq8#7 zj{!W95Ga_l!AfT60v0GK$36AZ>Y~<_B=CGSy#}=ippRglU=hNN&HQ(_0hiz;S*zlAcSiCF2C$G-z+B0@}_Ss+G zzTte1IWhF5Bo!f6S5epaSQcN$->I7bG-`X~UnSm?B2Fb&3ieGp`BkSI-E$el>p5|A_J>9~E-|V#j{b+aXyI1=+?(a{^M?M?gg%mIL z0~>{i`YnLV*~4DicCL$`z9@XkO_@BZ5k3{pdc_u!bNq0jv^^XWcyGwO`UDc?w&}ZZ zf-*jQ^0@B9^X)}gY*O$yzVLdIUnP|9(z7I4H+=xG#tE3S1J8Z5qqih0GC5gSIvrkCh2C5&rjeD!d=c$tG zpPh9=fN1HIc+Tzco#z{P?J2@Qj|jDPZ~hYu((16->lzg3!jMyRzUh#9l#uEw;g=di zA8lbDo?zyV_87BZ9N(AMgMM>gxR>ko7w2@n=NjO0$EJW_rQ6wQNDB99Hn-yOn~%X6 zP_Qb;Zt)Fcpes4DWu^N>;b1ieuyg<8tyZU7DjUD6O;?KRf%dV7%kz$vlKS<2b>Efy z0Fk%!V(_g!lz{5iSjNMEIUlzhUjre12d*x4_aoA$a+K{76jl}DK6PT_3ZVfBpHN!w z&{?31YuEMgiRBiwJk z{e<)qtdO0;s*4!}9$irz#mVMNhX8{xadP#v+sv9ytO{FSNb_*QQYG@d-A(_`noXZ7 zOcQM@_NHa#?f;Zh5(&_ZVa~Gbh;0rJ zUew}q#d$h;J^yJ-pGh?I9nBky^cL>Bs5hY@jZ9=AIZuMnnR&VT$eP5n8fnZ&X=UjW zbd^N*@*sviOnOpT#>J0t@d|C-6~3DU%=a2&9mALl6&z1ATRc8YQ%i%Sw?3*%6TDCh0s0Cb*AK_Fo5GbK~4Cpr1r-Xu%-df296N1yxFYW<~1$Uj%2$D!8- zyJYJ`AfYw4@6f(HJZ|&K5Glx{oBVt>xc+qG(yDJa=q38xzc}HV_j$?vO80(fHm7>q zz53_8kmAAK{^-~3`>0J}{pK49;%K`are%>Nz34N}IJ~zf`*-4u9@9ps3~Qx?nVW-a zB)6wP*QHE1q`}oLCg0&4Y1?DR_=DD81L1(`9sjBr)KVKC8iBs62S_jXwy-u8Ty#}Lj~pRZhe zz1_}Q5-3m#H=IIi7H$|-R|zS`+9EZV60qB?>c}TsUwhZ%hLmsV)cPHh);5k#+*i5> zqLc4(6Te?l@pL=8seYb99>oqlE^Baygc_z($KEbAT*wG`c^x<}Qal)E+i)fd>yR1C zQ298XvGp8Z#tls?zHlZl!$-_kKkH#Fnk0L&;F~Fdu1Qfew`^MHv14kuaJ-l!_J9If zKjGwky+9iz_4EKpzeI}b6B zcJ{@Ixs^ZU^L{~;Z(-u-b>xgz9ZMc2h`O#4O*wEsNpf4bMvW ziC3qnVC=y&L>ptWoun88ZP@3F@o9hend+QR@sI4?Q-Q)w+4Vs{Y1y_0|NT#g49r>L z=FKy*x7YN!_G!1r>*34S%b`Kf_7?{a;N5G|+rr7??9b;TdzMcfuPwq^x6IGe!_c0u zU?|HO9xXyphMVopDZ@9U4=Qm_oJMOw`6Z`LPRNq-<5c50w<*Zdk@#&LYNy#Mt+IiD zZ&mY8&lug^-pYO#oI20y5)Ta|4@iI~tQu_kn|PR}k4QG8@0X6!{qf6_Wz%PwIE$l9 z724hQgT#Ja9c6b2PHD2%xCp4cuOUJPbDBPW{u$c~eW9CQG(D zn3F{Hb!_}Tn0JaObiy&NLO;lCGkMi?e;y{mV$F&NnK~eV=_`M8OG1x2Wiz_YfIhM& zPOCifA~!3aQVhe|v!fG75qmjRvYN!XkJfa9ar)qL*wIQeCt%|k5%=d2o0jEJK<-|w zV&+@zGIqDSqQM-wXo>f+x_$C?i618c%mS+37)?4No5qia2rH?PN5W0{YdHiw-88~C zw8AczopF55#gb||EX+zXe!tv}fxVa#cQnR9Vl~B=IuyZ8;g|Q#;#0za>%LZH$NBss z{aZGIvCFY#n?w1I%lMveV+?w#F~24-?32FYt!OrC9)=d9mZU`-&)LPOb*e<&K<&wX zuaWnW92zYf;yV^zre>JIPi8-th2r!OcPL#xDJ{dvs3pqtR@aX5_su%CV;_iBcETlF zB&eI#|0>TwyuCjbeciv^HT%((S1>%Vfme*TRV!C>N62h0a``5<> z0-Oq2luQ<$?j?7Q8ud?{`3MSX6lI_Jc$Ug)jx`1qFYYpJ2 z_ouhr&S5A8uSU}G%*2&^T{uM57;LdqXXv}&YHv24VO z&@-?T&>5Ihkxiqj#8z0-oB!_oBeazAi^-wqgF`Fdue6);l*1&lm^L6-a0y#O?-CdR zElJz4JK*edW)0H@{+Ir7P5d>tNM^&3^Nml-ki|QM7(+}yCirbE)EtTxc-pBRE}rMG z44EZ5MK_Q$*h>}gQ1q%OB(4#@)nIQW+22*r|9GJWVihj9T`AKZW#3kE&5t5?T+J|f z6lPUx6cWc(kM6{c8PCP9@MO`{{NN7*?HvY8;YY5`)FxJn^Q$UUTlAA~l4iFg`z|ip z)4L><2M#U0X%Y&qjD^{Tt%BKat0VhjGW5|OD|y7~c1jR6DtxVz3r^NlR$HZ;oZ5}r zi@29%bR6}pMp@%2hY6c0UZuEY*cCob@`$qS79g72Sk$K#2o@LKW|A#Ctw4KOwQNVo z$6}9q+~JVsB!m zOxYug?5$z|qm-vdeAHTuE_i@#@5+7ttYUrmo&p_DN=8=2wUyLsia~0bl(DMf(P*); zxJPtdwP$0=S|0aixs>qkFzSvs`>hPwRuI>`*Syf~D_@#9L0unzK|r^%i#awMU~vs9 z{;akl{lk|L_4ZMtc!sNz^efRwx-%0!K`c*kdTPB=MzHkO*-BrI;T$`F(tHBa%q;7~ z%PMLvD@Q$UBnMTgs>ezj%?GtQL} zE7MZwj=jsx2-*J24utQM6WV+ub{|qmNN*aLX}O5giX6g3xFa%DzS7U6K}lvwR1XYe zv8cz}dG~reD(~IV;W8rq;4_&3ebc$we%5zhd!G+si>&hbs%etrX9oCV1&yg4kA>-*xz17^z zIP9yM#8tZm`RwL&-M_l0Qre4AGPq^#;BQjGaI&)4 z6+J%KzkDm6+;&HZ@|t!YMEp5*`yJw*vYaDvZD|==V>C&$&FHJY=x> z=2X0+0i5mt~jxhB~c8rBa^tF zca{ydo_IgU=deFTt}9^`gl=f*Zs8tAbz&$uU30nEEV{aHV!6O|!h6%g$ZRF`qkGOe zMB|*pH1HaTVCQkyG30TZ^n?)yo&VtCFY1-KwKAN+FAKn&!M83Jg6yp2{$(A#F?2dt zhw}@{)D6B<{^082^O%>CJw!D@^0$m=rw%{v+{p`wI=Id_Gx*LlNCmykJ1IGPV~eU= z?9NYg(rBGn(@W-Gxo`bf)AO5^x8#P|T_M_%e(?EiP(d!HX?MUvQ=gB0g75svGmPjC zxkA8967daR8-&feHGtR=Cj2P?gW9RF`VdK7H2lz(;>(5<)mLsW9)}_)5RU%=axS-p zkS>GXMqmJj`(91ZhI8gFs73%6wMGUpfT^|^VBZg8JO_FiT5piIe(?}V6$CShB@Ue$qq&r6&a{~=j$HD9q!jsWbHB3Um(|_Ld3^*Y>C`*i%$dl%V0xKt z$vW*>E=bX(@NC)(-iR?IRk+!*TfuMbmIxyUrC72!wYF1b%Nh_qQq7p>V&IB2Df_5` zdSwO;vQ6T3SqMjaH|a9@2JZRqsgCp~V5^R=v2H%zMto~uem8Pl8Z3{a3;?BLzw?pm z{3E^Ouk^Wpryu@K41p*cD>;`@Z`I@?nWM}M-J#Tjaa71Ffs#^& za}$3OYf~KH>CqYWy#!}tDO9Q2$``#e1K+uyRe$z5Gvng|mo4cdG5#VZt-xlN@Hlq5{B zG$_45H$JIA0?mxcVd=uNQ^Vx9b>fX_u`7xE3h_u*e!JwKI4?hRt{chgFX* zy{{T%FiS&?CnFE@rbs8Pcb8o?%gjF~#VL#U+&!X0F$|SNjYC+Laougcgnh`5Ro!cu zQ?0YjkeSoO2|T>xvune!d(>ekoEjyU%e7m1Op^pI$P0^C&Z}SRMs0lE03?OG%>j_u z=t@GV1*%LVReZJRKBW?@uNh}EZC7fHm(<@-C0&;+vjmH~0>3r#NDT@ibWsKR>sVQv z@rRK`T6p=N8Ge`|LW=Dwvuus=&Q~uhuAQFOd?e4A9XL3mfw)|mE{^a!zr9j}Vpz&t znMR02po2h&p?_aE$CMLJMD>BY8LmXuywFdRX`-Md(-e~c3NkdC0gvid7vo%#iOt*g9E-@e4&I^W8`!+#LPlh0!IU~l=%Ip zsM<9PZ(FORh<=}L<&pA1FM}GC8Uw@;E(#{H8r0nR>l5pHOKk5IZ17Rn_@)Hfk(REr zs48*`lxR7_`35-Yt{J-d*`czPFgU`j)Ryt4=o1c@8EPpxOV1bVwa9p(Vh5L2Xr_V}?+-pyQ zif9L3T#r}&A@~LglTg!jRw#>6UJ@lRKVuU^DdAkhCO~7iwi85n0$=h;K#4~QO{xFs zY}m9w``l6&iegn}MWKkqZv3;ORt6Q4m5I7e>p-_ zUcXUDGME94AJAxqKM@S`Mr^3rjsw72P5kR&rS8&NWApL14hM|zgrD@ek@J_s?sV!> zcY2QnupxzkSz2G$)_L-zsI<8WQ(%rHA9BD4dZO)9uq7CZ=o!9{)n|=V zRL7?AF0y#-nB{1{<81?vR$!3YgiOHyXp~O4TuvE5n@uoo!g_vX5;llgx4mY-K$WTB z&$WUH5eJbbM&byj3McU{bZ`Wb40{#}TRd)A!E^x{!V#9;Eauk{dj#nR?w*;j!9%Yd z6IBMOYIfL0Q`W)!Gj|3UAQ(|?su))$Ou}-e>a4@JBGgdKZ~h5jys;QG;Km{hQU<8C zsZ}+&;S;W8^-QR-{Muw*`_g~YNM4?bFW&;s%h)e%RkCp}=cX zjfY!*db8}CisRTK_)CMkJVB25H@rcH`V*RvFotT$X==TbH0O`g#(^8Txt(zJIr$Ib zDn~~tRFUSYRi&2PUKQ}(99Z045bUKhvv=zsLRgrc-BYJ*q}@aQ{o7VLX5tzJx99;I zQe*vOyUY-)%2^q_u2gB-clgTZplNG9zuShkFH!w>BTw%88 ztG{$U#%tS{8DJRiWM~ahcUfkRe%npLwO}lxoRZ0`UnL3TDF(J_?q|*$+LSfZQ-cN* zcq|rG;s;D^jmAIkWP*~W{!HTepGirRdyF^xmjk?EPUr`}sZuMDY|iB~F~;u)c%#_g zdv>57R7f`do_EDJMLn2Pyc^4`zoY?^eW3x{$^2uSky1u(0j9}>dMeD!dna=!?VX@O znA5^no!|5ANNk}_N5x)dQ`#Q(frUVONC$;K#*^bsxmeQ{1#)<(lP|)Y@GRJ_-6^NE zBdq>V!ZkuNRhn~}#A~s~il6+*ivJ&ld4&6fE+Uy2lYc67{htaiGp|A><2Ea}JeBiA zPfFf9jyjg;!CnsJeP z0%G-w*MH=xRJwlZ)#qgZN9*?wjSX%`l3a<*66!~TyorX95m-g^&e5KqLrTouD8pme zzEzp(Lw6@P3!rSNp;(M$#fZQb7@!ZK)H3E_K&!KF{v?x8J8Pk3oVzh&1Uib>3wo(q z-da7?K;3A}8^JfPn`0;Uc-f*e^afM50`=3h8n#Idco}-p`#**Krk4GK8XZIpEBpKO zJ<+rd+Mlo%1n{|EI&*8qG+SdQU_ck72vBlx4rvR-t%*=z;| zf45(xS^*tR6z#{t7!l;|p_<6DH3RlqWTxA8{qbBT#nUwdBAvUv=)X_dh3}ia=HC59 ze(N#@{ENKLNajIB^BzI7SsC+tpYwOvL)F$e z=1xO{%})PT!TSdGHiRs~x3WimU2buR(LgL z^L^zzvnr1++?w`d87#^+X2EonPa5SE30>U!S2Y_uQ4H(Szj59avv9t) zxa;e7w`frg`Gw~p@nSy9bkj8q`PtAS_@ybeNp6MNg5t91wvKI%$`>K|^x1|-EC~)I ziP0+9RPXO3W;woELNu|f zUq#Jw{46cYX9DoaTXzDoPB|)Fq0!_aXBsXy{F6P;M7~-Q=2}8bcKhkfh%xc@Te_?6m#=Gsz=w-96pD&rt~knZziveB-mpZXqPf$HBtm zkIwjHM&&>NdZJtxwz{{od~yKZvPR7ac`cdLfGLfor6bK0GEcwX>^X=#c58Z7@p04e zljDOs(CV8qFNAon_6+K*?gXzc93&iq*ODpf3xelT%V3}zDgYA>x-4BNht%J5)}jw4 z*pGPHA`rScm;##*bn4iG3?%>)^9u$41l2+!lSsl`Ld_#ud1D$92Qgs+N6*q}!<7x2 z-ICH6hOGopM`E^bk1@Z1=y;;p4mM`4HxeLr;u_VRsDX8ngZ#ZsLXG%y%tD5OZ$pF7 zI)0aFObFmBSkx}C<-d{Duto=j{KyVW1 z-xt_A&;_Om2+knw`V!EP+qDHjgvb&@+Rfmfq>A_z7aV=yPDZ>q=EKQq6%y2<*q^IxX5#jm*+LXvAU9gJva~ zmeZ4)D@8ZoFZNiZ7K31&K*m>PqnTLd;MMo6^Eu!<#1$e{*MV1`qRhlJn7!;ob%Yej zeuxRqc!rnLMZ*T!m36mhJl~b7B<+^NcA@{uZytJps99-qF4_Jf_&#^m^a1&lfh+#l zGZYMTV@nAU_V<~uo@!ct2q0M-u&fUshc!EfWHu^k7>gm(!lJ(9$db` z4LmFTLcc*hUn*oW*8#*mG;SU#WIdFA#XN60m+Wb@UU%Nt+>raG0-%zfsD_*Xu-RwL z+0DuY@hRG%;YXeq0yeFj|%n+*WS7GoK85@z(8y>fw*yY2p*bQfWIU%u$UYyOZE8Y zW0{@AEMY6qh4HKUX7!|`?6Wjy1)lN7$b+IGG3Y7umX6{u8RFN{@-o_WX#FBZfii`H z`8cj0+Li3?iM5RZlA%P%6^HOy3nt|`3*wYQA5qnIj@`qmlh_@cMIZNJ1+gAbi>}v3 zF_v+2*>buz0Aq=Z_y@&eIi5K)y`)ZpXAdnJ$Ikg z&eKb!XMGp z&W}BNtD`VjTza2=3w}nWx>@6O0tpWIkKlluQfT2n1^50IeEwT-75=e{E9-;Cu}zm3 zw6GenCjEU9@u*EX@u=Ki!0x@(Nr5r{0#<5sHjT!a90J37zP8+AplE;iaD)}Dt>&HrjjAF74|$agnR7v|YfHB*j;{09`T;+pyj|B*2MJ5I z7DYFYJVAbj=MjKaTD{YS0mL9_@}QEKbZi*)GM{^gTp__6w>Z(=|HQghI~Px#3%rYEF2>D&T!lnq)K;BkKmdKHFF?cpoV>5isf zaOXvCTAu+MKK=9$qy-p$t*!S1!o09T#B7y%qoRR&ixFnD4xwon8DI1Q%wsEAM2aQU z^$~CtQA%{b-d#7MOph0H!hJQR0SJETS)iyAZR8l%+aRz!3LAq|$Fc$1gH?dvSX!yv#B>W$vw>Ahg;b6Bh+ z7~h8i>%G99Qnd#?@gG1EvtM)fx`vJBE}SsvanLiP>$%wRkB8<#7LtqKa?janIe%b- z8itQ{LyP9`;%``zzqQp+pyn~C7ybRLUozT(lxG9$zX2Q+e*+wa{Q+Qq=N7OFHQWw2 ze9}V{y|n4hSCOe;-(emY31PvP9flvY)pBurh(ZAPnAYjH+cKu+w>#L6i(pUSjSAU& zA=K-zy;1R(0^Puw0YWDTzb$t}>){X#3qBlfxL$|dlNn;3jYKvt@L`9fQn2BO%6LS3 zf;FnNKj{xR{-Q57u@KmT2ASXAZUMAMfVb}ta{PBXE#&a-{mV5r3IUZL1YUOs(9Hu9 zGr}-d22o1@Rysa0Ns59o&%W^VthFtYa`kxg;hpQKr70|kn3!cBuR6scx1ZG41s`~@U+6Mgm>s<jA>#tM>^+t6MPIH@pY_g?#un>FN7>~56KN`qnCt>l6UunJX z5ap<4Gu22weoRjD)1#pucX6G1$7ft<(C~@WtETJ&rA84e{Z(fV(o%v_6PCq+R+`8! zboyf&`ud?$n~ACsHvDg(_DEOr?(G)^jqj!38O;NXjLkre1fV1zdkA@{vRRASxS%YI z;6K>Zjkl>An_X5^ERkdmk8Sz%g(Z>Jvw}>Qu|`-@ zSWVrb1eFk0gkkXa>hUSNuZCGdxuq9Hn~e$rg~Qz1mATEOfN7gs=f1V??OJn@Nlx5} zq5{GC2aD~>5>tA6n!{~WK|#=Q+7f7?L%HHN2R0dlB#&4VYFw|qTx^J`eZ({PjpKHh z;qYbnxW&_sL2k@cvENW)zj=Sq34n*ffTKc{i)|{g@B%L;_p=k}&3MW;q5+n>hy}-2 zrCXMO0ZL_*@^F;$g1N$=u;A!W)ksQ6e0!`>1E6m;(JS=ksnp;Y0H>3KfJTK9rSC_K zNLX7w8*p^jkaQfI?d1R^(nwrivf8tH*OJ)wymx9eHu6*@B1)n-C0mbO+~`y4wqnq} z*zW|nAWb%`vXt@)idFFFdhqGc)DB_QK6l9|Z07bYd<@XBjK|LaFo_~m>IDGwu0L5;f!4j1M=sT)p zfl?g~TNLJ&7b!d~s!9n4ZOI9?6$eOKxn61(Az*_O`v-zR zIcRNhV79@a1wHp8Q=wUgPm@A8&x#Gggrl7c$4tCMXbizT5?0U=F8IR-rj$QBVZB>E ziZ!z+MqDTM@EK`PB?fhim7c;nJ&BkqLNPzyiWbE|coS2QLW?1|kU=+QiJgG*V%BFt z4&Em4NTD}fao7l%BBcSwQ(SV$N)P-~xC`tb7B7h3Q2zPezL7`3EH5V*m{Thnw=~eMZAL*JwZ}E%d_@R%)NRI@a08?p2-p97GI}Ia;-oN_3x_fjz`LwQAavk4o zzI)@k-?wW8E(ugE zI%1xy8bia7?3LV*)xpIdzEwzJ>1Bh?ijXwN8+bpNNlG;LYWkf1~2Ay}f#q z(G{h9zIyb9va-7ZU0ir#p?%)R(Y$r(#G-wk%!`eWP=%Y(OL>+9_%aot@S?=>sy!z-}%<+lIVO5fcX+q(TD z`J!@|zoy1!C-$S=U7NcWp`Gc4Ww+cylj*%``E)rZ$JCPW+eLM=^8_~FN&c0|px!Nx zJB^6;-O+aI-6+}Zb_)(A4ukMZgU5ZH_j8S+LPxi-mLl@&)39Mv`6QS2+UBNWad9AV zGIKexMoi53&C}ENL*LEpk;B7VcJi_BS#r$c?i)Vw{#)r_$mFW0uXnC2tl$|@zA#a8 z_0O-FdUXZ`{m)L1!^1vQJa17qh;4L%{`rQQrv8Ds&2->eZcH`Pb6ix zVi;*($!OBbo1+_aW{!dqCO!sfHb1Y`lXz6eU=(idgUupcuY`z8p;ZfAG0M39rt{jh zk_F#<-*U#*(R_=&9*>M>%=Y%ww7i&L8Y0$q@6c&jW{Tfa#_Sl$BVm@)Hes(d@zNm0~c8vj4EZ<)g;W7D8J_nAVSZ5zpZJ+ve1%gLz#txhS#@M zx~EI^TrHE(0S5G*^JNrfY#zUX96n~m)R>;8GfLh;x;CnRa2&pq@zV_;VD&1GnJ%B) zE-VoSyoE`4OepC5NOoVC0Yb#Ud_RVFC&(G0=`N#2xAIsOzmbH_5j)b9C!K$sNJegD8Xlc(k zX06^Yysh1C!6w3$3*-8?TQ~iqG2@CEw%>g=e)vtzx+SJ?p4#8++vWfz9%j#`Q}|og z#7@b_))p%_Q+!t2?iB}{D}RoD2k1J1zQ3-f6HWQ9rbnBc#(11w5PyH!dS<8+4ljm< zB3|MDg>`m@6C%Ik$+M0-%lrNy(o`rX3sb>VC_Bs4>v&Ea!N|3&_t$5rdUB}!=SK^$ z5yc!>rvUFI(pawxQ`{gk5@!DfLuAVw?C*A*1^Q93u1`>w#emo%|6)xfMMZJ}K~i@E z8A}V2;}xW3^-~n~ErGHxSJLE}AACaUErc?iYMceQg~DeEez_COLd;jglvSgZ05|>l z{vTm)0TkD^bqnL}?(Xg$+@*1McZUQE?(XjH?(R--3+_(v1cJQIIrrXo&-cIg{_0{= zR5fFcG1lIz=bF3Mo@~VBo3^%9Bt)7)9@VJB2faaSKTyJZL|*D(_P;K~Xu^DS%HE4Z z4#VWCk$V)P4kY!Gd)NsEE{BAQ?1@WS;mnD8>L4CfNYW_&MmmakR$A%Av6Xle1FIbo zV?)9W$WV=~m@0b;Lr|T5R!WSigzFY_zR?hx7gQKfyX6SOP1dA4N-`#o(;h!A)>1N}X7q2Z4B3r9zwponlpUlDF5WiRIPMUVQtr0yydD7`!j|Ml#gGY73*{_>5qrTLpWEYo0ahcPBOmnL1+oR61 zkr!8;@yDAl;PRALDTy`5YU0IvOs<4Nxk&Auc9+d7=9IQ41ykawGo@X2Jn79VmIE92 z_l+hl+c``uRX-ivV-LsU(st6|31{3amp4Bd7;j?Ko++0d5!GaVFC*f#4_$pI-_VJB z_wg__UfO6_X0nIx{W@}1;Y-N{Ks&&ecu)V-dsr1d+WA1&+FiHp^}nD<D~Ezz!`h5!{>=sp>KAoDVj)O z>rSqZB?ornop&l@gdW{#fJQL`&x(r}58^2~4^>~?j;9=HHSQV8r&fJJ$Of_ID=&&V zWPLrbuXWFwFfN{IY$9LVgLy!lbEFczHW7Cfh!CE1T&nNKF7FO#-yhR|Q$~snwZO+0 zC0f%7p={pn59|p&g|T(^`(4G{Dd!LQI4jw{^zd(GPbm#vp51$Q5IuW$7(9X{@lL&< z3}>#g2_C<*kTr#q@JT+N;v^KAE+M;dWF81RZN9xY|C|`x`Z3mypY&4{1^vKFK6-+c z6^bfTj+_)GT;>xA)uDg-12{^kxjBmXXfqM6s*9QY?*IhvB!YUv>*xLW=ggSYutgcN zvaH+2ALUTkUX7pi%+(r@dvLX?UD%Q}6O5mwM#M(qBI|a*F59vi>uwcK%rs#`+4Evl z$|Gnf3G3GI)8Ig+-`le(FHuvNDLWpJMj-dqfOUX$eoc%ysyTDV0*x|P-Is@@#b0N% z{O0lOv~h3pTVf%xVxJQa3@58H_7W!$rOz8=#{yiEg7I@OE^=7Kl76>edTRH?V^wv} z)sziknY~OHxp;Lo#-3M9LP#`g{=8Gr#vinoJMvbk3iw)+r5bX1q3-tedg1YzY27Xl z{oHW7;C{erH^t5BJ?Xq{&{rDnCUd)&(L#J}>w5>?vyz%GQ=Mh@LMH&zQ<}{@4@PR# z-qCEbQ;RcYO6cUoOLf|J8mpM@N?MYQS=p~Uhat1=jHzth_sEO;Eb;c{d)Zk+vz5L~ zT4@=w#MPuXM;28><&Gqnh|SBZYgp*vA}v(b)q#ty2ljb9pkZ_d*K9M}XFrQvM372X z%{F-TsM7j4yHvR*Wtk86`w_DE)oba(H`=de#+SW6%zdXfD*VdZyy?cYpK>irm+D`@ zcHw`yXJYxkj*h+sPCf4`faOldYP9wf5ZwCN_d)?znqkX^Y2OI3($a@QBG$jdyEAAf zCBlx}en%c7D_-*Ivv5X2?6YI8@zJsW@*4v9WkRHJ`NTmE-YDbe%XJ^uQWo3D`%+<8 zN145@eGYyBU8HQ}kmDz0Zlh(m)vTH?Jzl-Mb%=A2-O1a+#?*{`hi!>+Nd0u5uWoml zJuh?SG$8v=Aa9^wTf+K=z|sZgK7ld}EA6z;$H9W*yti&%|BzAAgKkdschY0aWn#G5 z^Xyo|>hQTcDOEAF$@m;g~7$i9*hQQo8+E|wv zsQqbt9h;_+a&R5WPM%TMbAOFsnXm2jfeB+aR1zR32B&Rbta6FOP?X|i>p#%S3bR_e zTFvJ+#1jcu-8sIzyQw9B0CBBg?Ta4jt(tILjDJ0|4{(^BGQ!*sHyB!U&nPtbd23uikw7BYB%_W^u6_d1+%j+-OdY96v| zA@{06q2INFK<HSfl>z0Rp27LVD$OYgP@YE0WhlG-UABKA0#Tq0S|(s5GZ0 zVly71wq2m6-(}3}K{wDwH^}fwwIbxr$N$Er&~rM--?YF#M8M*P)O=L}io*ylwyawv z-=FiiLeuD&=52d#1YGZ8px&&Ux|&8Q3W>2fP60kqJcYKc6t`*g>k8u1cDGPXLDqE&4;vEl(dEN8l4hYZRmot=s<;5wrON23S87EQ=o^nrS??cs_pDA&c=)H zH>x6gPVUukp4DL9q|VmBIo7~BDhP(P#UgAWo`94Yxb4+wpVb&6;qXC!e_8>FP7NqH zuTd|Rn)R~9=$PNDF=w_FaP9c@z)r#3dATI^-QB}h!OIr7cS?0+P}g=)H%U>ZmVD1+ zh<2s|Ti?T0!^<`uJoH;YYY!(#k-1U1mu<@WcGEVVMCBI`+x00t#bKsfvPN9%ZSyjs z#_=It+lQ_ef$h5tMJD5h>s`X0_{P_Yx?jcq*tc{Ucco|ehO zM{UO#GS^StEtlpoCn?x@zM*C{X*pifk;slUGLAL=Z9Zg%K#Cr=cd!TU#X*iddjgMz z@QyRGj)<=PbG&n{ZBRzd2ne)}S3fqEO;gf7^VD5uo1-W7^NR7kr!L+S<1wq9%q_k; z;$?=(S?9`i#Bg7{G1+_ntk-$VMB4uSJ8i^|YlGMV7G+^H4OTzWX*7 zqT$~?(+?u-AT;hC216$oX(0xIK`DVsHf|7_SQwg&Vg7v9i2%byL=%~*`wNAvULU=_ ztWw`Pyg$3~vkv6w=Sn6r@wt5r$z_9SqhJ^mG7!RgXT~$NaFG5v1O(Pcjz}?XGiAx48?ens_6O*;)E|3+)lE%vNH z31|l$7ztVg5ru$3T`Pcfn#I|o*SN}5$0I{wFK}I7pkukKvxh--GlRPifw{~WOdnwU z;{k)O*&L|%Y9b&61_WWIA4OGhh$mY-DXOO0>-;G8GqpGfgiQf&j0+CE@U}%b2uU09 zVW$`b`8LV`3@I487=!^!)~uY3MjV`Ppg0|Cz)A^P1Z*>NlB9gTXNL~NAe4Ah@-41# zI0z{iKL_YFZjtv$rGC?-Ehv%r+ zQ!Ql<94ZJ-W&mk5#y^^c?zO|=9Iu97fheJ)` zC&3|3W+g?SPwFQ9eiEJ}8U#5G0i_f8F%&T5pErO?{7#Sbdu(JVZFXZucQEWeb;G+! z(S?tryP2c6ouj8)dNM3T4yOEm_r@@QkNAgS201<^8jE`JSoGy<^b+lO8(G96eu^4n zM_R`-$=jITapPDt=79Vfoz9tp&IvLKQJ|(?EBzO9@n; z!9@17MxB|GNtI?J_0iUpPOu;HM=$D!fv+q_?|5_lG)LbYj@Wj$2OC0dTs&gJz@p>m z;@IZp%x3V|PUjeLr!j#9CA`5CjgRlW7pj5Z_o3MI)x0-pWP?6dgAV~B=z~NPHNX)R zWy=|TM$-CS3WBWNFWIN!ZeQ)Fo0q*u?)}Fp#fVYt46M|QV{AOr(+wXMJP*6N9c4?K zn-|`0-|3m{X$6nB8t*sdY>#TdL}1z{xVoKggW%P?r+WJ1N6Sy2J>Et=-U9gZ6lKrl z+Eeh8mrCo*02Wi4Y%~pf^y^7?FXoJc7h$VA;j7F-lz4__I$9Q)hE~x9j*BEPlA0$p zayxqNrBHQwLl=JwTixkh{Q9lVerS=}PR)I_xiJpeL->c=2>UMDI{O}YlL?Rfj z)E$&mvU(GFGZ+mg@`pp~%oHat(pq5Zhz>%)#|oU}=VHZ?+|4gOAcSTaEpc&7*qW6Bl~S4TK~>4L#o0r>x+90fGkF&4TXexoIjC3@5VH zz9L};u^sWLT~1(vrZ)dy^qeCd!5a+xQ;(w`t{izQ;>87p>X5`E8N(cG~0q-XT2i z^H3uqt)iyQ7nN_HcSQz+C>}{VZoS0>wdH6)2jM{~wQH2YYf!^aNPK=DtoYFSCkJ&M zX=am4%VB3@ZDOKh%dAL)YQ`}65`w4^ns^C)OWgJ=`^}$S{6V*Jahb6MuUFb{L9W7TZ1=la&dqmd%t{52N@gC<{Cfe^jY=}bwZJyb`m z$0$w~R+Oa)yA)-bBz?W()g447C*J8HmP4G~b(k{T;t>QqBh(5C1BWuxxmQP0n*^&+ z`-v^w0%e9I^U*Z~+tmM4R zu98u*)u^W7dO>v^!aRdFt~mQ2jF*nVDAs-=%*GHa3ubxJOc9PI*XIk6Vm{KnQ$p)- zi{o%Pl$mo-C^p1-1R54ujstqdYo%1`Fe{*l!oM*7CE{FIjN^|8Aglkkh?rsVCb=Gi zzXh=7!_FhncN1A`6tSJ7%v^@h{-O1m$&b)qjhcd>ha7Q!n!p*DV|?ltE+x$bg_Ml2 z=uNl!O#21M=TCen4$@5Hkkw+z=(66iC(2i_Y0}JyeT+g}+`q-R{9nabX>$CwZmFWp z$S@F5p<@57qr-o$MbyZ9gI%eU*Plmkn*-i6qoa%ao%hAxl#R9pNxxP;jh<<1!=q{Y z#{zGIw^og>Lf6CF+tj{L))jJ-nX`49WZF>h@+o6z;M{pR zGOrxbVi=!M%vi;xA+&*;Fs$0r32!?H(|f&ASq;PRZbMA$npapD0ZfKihos8$rEa&4 zkeJr{a&_73<9$13=8JgCr+BcuBRWXG!`X}~cy}JfuTHArs$K*8cEl9e z6m6*a0mpP~1lPW;b`&D+puv)-4yU2c7_8t1t!M@@am4`7D)^3LT4o7MO{ML@kW%Gs zQOugn#(fkegKtkFo+6(3pm;QOWQ%*(mQ#{w$=JeH!FQ6*gDC6k!*^0w1>JbWGC6k| zX~t8k29bDn`Q0J#3Ps%^csL#ABb52w*;he#fp=VB97+Zfr9)e@sWB8Z%>Hu-M~_7` z1gy^mw)98KKc&x;+d9K#bMI8tlt7Od^{nuY7|rUxG13!(9v#^cCu1l7QE^AdM)9q$vHjcjE94-)Q$+Sz_1k1tB8Dh6Nw zvI0H*j}=cU|Au%f2U>yt|FB}z_%LMT5b7kXG3n06hr)Am>UJG(WYwnE7@_TxFUaSb z_&0_uo4L$s8(!JyW_$Y%h_1eGTR$)ir`O*&cNzd((#PtFR(!d50*;_IHUQ%{&t2SF z*&sV*v;JWeQ+vF#&nh4IY_qmfF+>_~IIf{m>*MhkfFEJj27HI(^L`r_t%u?i%F?Vb zCF^Ij>PT1Up4862_dya>rZC)a-lsE=%#Y<^*ikH`8$U-j5s0}2PA1wE6NCs4Ma-!L zNHTO3U?w+SpvA1kixdY)7eQ*h;kY-M?&!{`)h$Wgchp=@~pBJBLy*ZNM=BX zb7sRZV%iR)P3nr!cQLJmBjOI@g>&loFUKi!>sBk%LI+kD@SURA;?M{d)($oS6F)c8cLru%SJM>LP1Rsp@VhMYL`AP(a(_MeZHXECmnV<3;JF%!Clb4DAqm2SKIZ?bq8w(q_ApENWBWa~(1 z-#Hxgv(B;$_YfES?9@+uZg{=~@j$aw7{zw8R-~yO&P)tr9o1lJ+=X7gtpxW7R(?W$ zZjo};9~rDs3C5nAJ1lqiVw^Dq-(!7n?> zb~Cqa?j4-AUbr?hUy4gw8y%yW#Tyrvk>F3V*Q|!Y%c{mkErtlpz~aRyy;UCK`wK}# zl3QRR%lmTCrA?rO%qWzNV*{x0WY8@SNRXbX(-Fm$56CN2N6sV7JS(M@6A;u`y>S%? z>pTdeqb(0IWL@kE>Cn^b2C?)Yy zJyklQ+P^H&s|Q+;0FU*@f|;(!q-Tlkx#w)n|NATBu2)mFlJNQ z{GnqORFLxo*{LRwGO!jrEo1Hhq?}YJ^*<<+f&G&*Px`Edoxw<^5tougOdN$GCa<7n z!LLa31wMB1SQArTCMn|VOf2f=SNo}Y&G!|`ayq{Qm2S0WPZ6}qWdR&ZXqPK#MjMxC zb9mC5n})?V?IGAG7~G?_ zweS11{$*cprjb8xT|hMn<;LAL5T|6puF)^^QZV%9K|o3HiG}1;=;%+`UNg=JCa2v{ zY)F=psh47?hw?eRlPlH87dq8k%mbdx8)@M=n9~Hc*Zi$|%>=?Ttf$)GTQ?!M0tG6Fy4t|PcL-aX^a33DIN^A?8mP2APK^+XMaev*iW7VGL!@k zY)s61H}_w`>>Hl{ikUF6RWN;s1PhG@@LU)NE;J}aCVg##+3 zPy;FjC<%hcJMkqjZcD>jVkpXP>zF)ZQxHh=q!n;)vW5kN7XvBrdMq%+k@AZV9D-v> z^E@qGkfb=ZPqcRj56%9B?Y*$|#qcKIb5hfCrlGGE9t;RpJwH%{>P?e@Owm>A1~WxT za}w7{OK=kZo)+&Uo|%^DG>ix%%aaX7vgcM98I^z*i$222k28GE{KqLKF~@dOAbsh8 z;6>LP@gkPkwOqC&WG#}tHC3r7wZT2AgF7@Np&d}$@0UsSd3(XMkbXnmjlLa4^7Cj}$^XijFf(^L;J1kj+ zn05ljUt#$&4k~`6Fwpr1uu3PZU|Q){x>O4PW(!e)%uK6_qO%ijMxe_BmFCGQ_p&Jr zMwe>PL@P1-|N6}DF=&O?D25>~XcQ1^s<>sX0vnd~uec!TGjS#-lmxK^JQx*@r5TG? zG+bMYymzO(GXhjTW-Uk}@G4$m`G~kPVspWpD)i>!ZVgA=U~fhAob8(CdY&UPMUcux zTSwFxWeN<|Em4^V2^sS}wK87Vd>UHrWLi!LP3$WW6*aExsVFD*irRei=?$UNT5$6V zE3_NKZj~T>dxJ)ScO~A2XSC9gX6p7g=iyvc=mm*nc5%;sCle5#{HcQ;h|8Mn^O2C% z@MCRyED*}pzgwh<`tLo&p2m~UIr&OGyfl)LA%*jh?E8m{wUHqe;Ez&Ptf9Js@QY0k z2-~QaZ{*}Ph4Yb|&*`VZxnenoVNt31?IXSXOwAp{NPw1OiChDx3Hb~&J1RnO*R>Tc z2(lV3n9ka_bbuTy{JN(yjC%_`OpM}}&k^`52=q3L25Bq)jg+veTwou0*D_qFS-$o- zXujX{_YRU!T;)PIizTXGe|C%IH?nvCUqOgG60e}Q(2J~*zkpHRH`i|M1WeO@n00K0 z3jqTO{T)akBK6xXw3(hL@V#OD!^E9sek9@j3$A1~y`X!eowF}{-$3=gmnH~~HTFDc{!zlLD`c1-xSpz0QyI&0)49v2LNKwY`rS{t#R9SN$W2g|G-HTjjLw zg9T0sl|Oj&pIUqZeg(z-N6GvzF<{Y4CZA{a1}Ioa>~#Rf1vBo?60Yy7FOhl)s_~!E z;I*CoBj*+x-w8Mx`^crHKsicqZzxE|O^J#gS`OU%$o-uA$QIMgK*07j-)HNVjiw-^ zv-Pea>m!~ak9giKKsKpj>YWZyYh|%$bKslwqSB9C<0r;rbyOVqTe^o9(oJ$I;l72;}3O&682V2$Z(*b z7&zZm;B651Se{&z^MwNiA>-$-3a3r<+em$sc*N+Mb_Qij3XWXS3Qf?hq ze%ha4G19CKtwPYmt!-p*s@@7CoQ?VV`e_+b~hS3L|<*bh$33o?T+=mU?4Ouz?Jy3 z3G-bTQrBR^)c1%zjxTH0M88$Xa_;}nV4nbGychF>)}f1bA&b+hO4$FRvmUXvMi{&H z!^g8a2M6F9mUFCpsW8Uw%hGRsUAwpmg|*A^#hPS~V}m_D65uLRaF1V>kw4D+M+&0f z;iq{X1OiKZpcbS#3)LHsg3atbriw{NP_GY1Ri!#`)<*x|gx>=hE`)8J7MlwaMU%x-?2>}d_ev2bhFnPoH z&}6jPr`1Z)tGXH!%a&f+6V)>}?v47RTkVrV6G?8!)ZtTZVOB@XOq$&gV*y~cG zdP+fdB}YR^HX}xVmZ5<*3YZ2^L$w4uYKSog=$Pc`>`(VRr{~OLdqr3yG3+2|<17pc z`U!3pnk+ya=Vy$I)aEFD(*X&0Sf)syK0%#jUoXm<22RqFn{g0F!w5&k#oc-tE~3ij zNRu*qgSoWSWHnPX)PF)!14HtjrMaLf7P8P)S$cHAit+}yfE|e=I9kwAA2hIkS^I&= zZc8e{+mX$s&P$76ZQR34?4ZnR4eqK0I3!t}d|H4KcB7}Br%8vngb-&4H4kz@8*RFc ze)FWcNXXAlFUU?_!eLMa(8wZ+^3v*AWxJ@*u*Z`l8aQ~SDFfhAK3r<4*X+>xYkLc#IXkpLI6>TD-w*(W7k8ftxIfaJW#A=XY?EloJ&(V@$CwWDH| z;*hWJKJ5}m#fZ})ya_>i{E*OptT>{0Am`q#5U`4KVM7Ma@gLG;ldv(8N-8Q1^5psD z)i5#nP6f_*0pa)zwW#4VC~SBEz?(3@!~GnLS1BrwGC@8O?OK|OD(%v2rR3FM7nSxoo}*$V9daqW*UdYolzDQ) zE4I~_a$veBi405^*}PylkdKNDCuJ~3eW$lq?_2Wovtj6|H=`0iEn!W{XeOguUe1nQ z!r(T+5F{r}S*xZb{fiS9yH~S6FAcRzye)N+6g8Q3$r2K$BFAEmZUQH(tk~Q$(kDqCz%YM6d=~z?6+lg{tYAcuE(a8^Wz{X#&6N zde$fQud6-|xnHzBLJ5v~WePQYK(2Z%&Xn#~5?V!AcAe=wC8$)|0=LU4)I(;Kp8>ys zw@5m2+SMrO-F-QIf5rU_(0hkgF)qjsL0FWdt-=XR#bSbByfRhiMN$3xr7tNW&x!Kq z7G`2{LaWLmOSt51{6|72Wtn?RVdG(Pp%TWp^`2<_q9E2aC@(X|SO|Zm1Y<40Ywi;0shf@q*o)lX-HCtc;qfS%$_KAP(7(2Ul)G zACdVCCcakjs1%t|g1dEMBSRvY0-BcDo@o7eZ@u(cGDd6D_*~qk|CM9>uj+s#ltMHaz-2o>{Zd#FBjkx%P^e6>ihe@J=y zNhY;NW0K}!^k3?51OKQKL;2t8>=1zJcwl<`-_9}r17>#k;+o)A_BW6N7B2MtdbC2v zze%w%+}-&l<-C6UkN$*3LXw7k;2aM~%hlY?&Dz28uYFc68e1;kc`$l+%8c6g zEMQxm@yQ3S$4jorqANxI?}XIgx6Seszg?_x!D|*L8SIkvSXj zb3S5*pEj=CA{rqZ~-K#MNOKNx|3$2kLpFi%`&iAVWK~5t^n+#Ad6sn^m zpY|4wlB5XQw*H8YcsPha+X~)>UlrWwfCpD#L#M+?EgdDvD`PZB5w^?C@#p##vMar4 zUd9#<7yBF;x>Z{p(Vqv554_I0NhJ)nNP}Fc)Oa|@Bq8f6=H1-yhCQV1kATlVFdGi0 zFRq4mqg{TgXx3q!6rUg@r&8hsVGn00#zzV|y#^Jnu3_VJ(Kk4U92?JNzf2?YQzu|~ z<%dwcIAudJFLuSmXJQ~6i%na2#6-VPQ4(J+5{jHa;$$iFXY+tWC0uNx!NcG~M)P_h z$w5KnTrI{>5o8=u#wbAAs<8hSkKB|!+WJzMWiXylz-CQ(O=w|Z1y4r`F=eZQEB@_P7^$&UN_smMmJch~w862wFA=jH%tm3h zFRnllZQ}_*5}{gS4XIc=(ea68ynZy>Hwa&OYjsrRVGW_5+3dyuj70BnRywLIC=en1 zBI7wPkP|zVwNgXPw&I6)NYZoF0M*!P6n!Jx`;CO`g?i8~SME$HVFST;@&OLO;2}jK z#DtqO94vE?wvRVlL~Y{P@*M_SOycFa85B47-rbN)R-R=~J7OY*V2D}Np-rZH&l%sK zYTIw379rkDL=W2rlJ2==1Pup%K(=H-o@2$02WUITfyQ3m%Qx|sA zNlJ;aa+ZJV0l4c|utmDh0)be1XiE}%_?PWNQ%kH-EjQ1wqOdYaq7e}^NSR-7Z6en^>-{S8 z2F`d8TmCP7R;xRp|J+`As&k|Y0&GFm3jF!gY4)!cRA0Ine*-) zJWNzQFpFjtO=QC%>`E4CMRp>fWNiU%hMIZ#$*#?X)Ac|_dPZ8Y?T0tRv@28aXTLog zl*WGk<&qikkFYJ%Q5qP2m>8_gOSt5#jbejJ$QLBh@R(sTlM1#*nG+P?qmn0Zqw@&} z*R%-c@lj3AsU3oaa<%}4&Sd2V)|j=gwKPNvF}H0rJh8Ha?2}EP_$!{*B2uV~Gn4ai zt(%36r_d+LV9MQNr;f8Q=6)G>@5E-w57IoL0z^&r%_`2_3@hWO$++4*0IZ%jgq-$%ba!V&MCcMyEZg^!4f{LDe>(P?H{aD1*qZb=90&;7 zza6sxcH&htHnIDwKj~KLfWvndg3%veBWcpIW$lt$Fi`16Lz}0N@V!CM3F@&n60U?h z7Jh%@w~J%Bs+Z|{u#fk;qMxP!4TQmU6O#rf<^7m_Hu-pXBh+d8!q7-1PDj`NqaV+S zVGx|P*yoU+_@!qm)RZ>n8AU1(eJ2C;XtR}BXVHSDT_d$4r-};R$Gh5n(@h^U8g{6X z%49GG2X3OCE6wGQjX{X&)|^Bunv-xY{5&HHq`lD<-!nW4Mhq`rlS~?CkFRGZg@P?M zu!=QidD7l1d_!&Am_b4~nN8P1`FM=w$QJ+f3WpU>x`37vMW@4!{6o{Oi}e8Va=`b8UN{A+M$@95n-%${O?o zLU_-DbR9-Z5mfWo3ai`9Y=*40+% zaSOB$U6e*@dcm^inR>dj;-^b!IP2U^@GyE7+&h7lk5A}obh{t*>zQXe$INg^g=pc^}@j81)g(eeG zJ&Dia$sfOEeU~cKYOt$jA*lg^QfCnCvCDbmx}Rf~7f`^XC3F4zka z#gf!j3+=w`YMp*NTpbLyCyaFaY+Zlr5ge)>ZAv?17-^q4_~BFssyPwHT|$f;QV?|F z3VDf5$0ma(%5SWjg0Sx^Tk|j*FbEhW?pI(SuJ1$%#J#&V3`WG0&WvSN2u-ZAl6KL&1&gr; zZGxAN+Duss4@<=6Lm|=*H!z&Ils$8QlC0&wfdE}-|CK;k+az|S_v`b)M%wH^l@znV zrA?IOh7afQ%>g@A$o3wi)*6`J>1TU)1Hj z-R`enI0}B;hfzzkBSMAAY=U@)2l1bRTq-Hj88%bmHBuIUWA9VA4H3JZia|03J_c6} zT+5RNNcbZy5IW^enCOPLvwD`(wp=tuNROq4wjX)nnMA296jZN)v?b%nY$&|mf_1D> zz^(;2^(j?5&;@%X2_NGzZ5CgUDWuqw6~Vky@E$`e%KjjDFdXy1p4#A zof}A@J!qy+v(}PgbFn6w#AKUJSH8{_6gv$mG}nolb&9IA!;)oUJM>5R8#HLlk;{zR z(`<@Ld@h?_As7omC}kzXcpw<|B>lydWka`>*y1c=W}i?|CYIjs9TLA0zd&J@bnUKx z3OV9syrU2(xbMxTO0rg3s3ll=Qty=-8}hy%-Wivm)hN0(WV%WaZDTPA=ZdM^6DmIe zQ#ky&lGMU0>-@`_kVfCVS(n^~UCJAvHDPr}@U5S3E410zxUuZ_hNy67l{>BLP1yVr z*WU1sBwN6&_jgZ4{vXzs(Y`S4SUj~GLDDPm=L@;IcR@cygnerj@e2i?-r3U!I()tz;Pas-Z| zbe!x#y4T^aE5kF?nBqbCoR`B4#Z+lpg(f^}>LxU_!*Uh{$Y+7l#ht^HuFH)KWy3uOoP`3t6}-g#T$ztA zeF|LL{k`8TpkkIyo%!Y%EYj!)8D#CFoPHIyaT>}6PL?ur%<7BX$c^AB%-Or5f#dNh~4UookT5u52 zw;Lg`-xZ_0Y1I3(c5;X6@|U};Mp|6Pdu+k2Bh%X-4y&@u9{DivYj#QUA=BSQwP{$= zEyJHsam!7%)f^iA`5gi4omG3TU|gKlt1El$AALP&D?3LON~#6EiDA25^XhcYD7r$7 z_KN${c}m4z@@?w)kP_E@M91JXdijEfo^b40B=kkSe09jDvD5r0hU)&+RM@&r3q;6B zB{4eMHA~wzQ9pl>*(i;k7B)SnlA+r2{@k&v&Iu-?4{r%2T|#*N+AXbWTI!2x0O%Q> zlIDzmHc#gRMI@Gm<(`KDNbjGR2*is;^MWSYM9Zyyi_9lpGWo)$@PsWiY_H#PPh< z>HmWMXD*iO&$n6z{J?_(X0PbL-=^-aZjSa^_IAwHZszuXeeBglH^2?DV1WGem6%AJ zDCG;sSX4owMlFD=m3jFNmDrtFZ1S-k-nZ-V#cAx=Uf~^#n1c_{CL!bM1m}Gv2_XJ? ze=K~D5^@nD0-arpVx?*+rS0DC0ZFO|j!ic)fpMV6inRox5e#PORDpO}6At?}?u64E zh+a7o7-grK>P^+cfhWa$Y)#p>?x#VBqlEgxR13vpd{x7kyG0pN*AACu<`TTT{y%gH zP981y0QFDy1!}iPk+j*W(%h1!Kt|8Zuz<}Nf-p0LOC29C&qW85|AS(JAT1$Fs~E)Ai# z)isOH2sI0Ug^NPOuXyxX5(&4;kU2$u$- zwOy9gC-m^Av?JdTkEwk3R^a0_9s5%2cD>9`AaoS$U{pOvM?FtP0i#yMUl5wz-N(s6 zKF(LmCuj}H+Yv-LM#kgzdB=IIW)X@BiQo2 z7GVpl$wUCNyZ@{?9Ng_q%w2$0nLpXxjMkRJJ`YaMPML6mq+Uxz5(flFbD^+?evBk} z%RLAcPW^e_I4jHMwcM5I41INuP>Ii#?9kgmye$gu%7u>-n=z4Cyw>T&@q zxq82qluX9-h0DEYRDpQ7T;wz#>SG%7?wiIGyY9fj0GQBP3mF3Xd?FleD}moD*dc%Dul@|h zuiSC*IY>sF$x#(lbY>X{cMQv--H$|HgS8#eECz#X_&l=o+cS>tdj zzZpi^q-u;SE`sStL{545b_6XP?;nJ^h_$_ zFN>*woP-yU$1nk(j|L1iw`^yn`9MAu31KN{6nG4rQ8JrbP5}%<@Y~I;Vpyf%1jBEa zTkCJV+4oznv%KCX4uxZdhC_3AXx^|a2;k-(A`i{IQw}Y)PCQkzmzZ2`Ag65|gL@#h zU{(l|g-uH)I-PbMGCS}L(SaP}p&V(taM-*AnEpXFd!5c_Ff16zio}~Ab>uU^SrCK@ z(sP`=13#e+r|_j+*}*V6jdJ|nO2qVrI!MU7gMEVIBt{YtZHRe-f5tH^X28m$Ps^;dzvZbB zv@O94L)Yw_Bph!_s6!X~M#pJcs|u6MxBP2!yZ$o#sQ(cfJO$H6-UNlBL~?}bx6R~I zhgoVgvvQ7Hs`ne^Q+h8WfzlJ%v1Dr`s-?ZW>m22G*=3%?K$Pm3kwYmjy^-cN_W0SL zk!W}b7!g9jEtKFXBQWaZKuA^uGOzC4Fc2Mx2RN%+_AkQV-=S7{F@UX5BfZQ&3+2RA zA=D~s^58E9OJlJn`E;Me!?C4d#EY^dJRb_O#bFe+#82aCpmg)UPw7AE_OZ|3`{!g!ll{T@M^=k>8EkKu6sUZ!PL*F%v-yeCu8-3Www|}U z(mJUmeC-R~b?5ymGSpkPPMxl`ur}&YmR;7rn|G4$<=o5q_i>gU|1H%#;qA@88*ZO` z`^b)6c>CT}Rrjuze&63%zW$2z`e{{cueUNVHXk*(WpFScM(u?pEnL=@12#m6Kl2S@*_j zSNO{}YDd)@f%g;}*=DR=_#x|J{QJqim1&=If(7eVu}rpoG0*Vq6D}5?E^njGCY27~ zrgXLo?-x|L#FuE@H&^@Ya7ay`WyWvrd6DeG+nx$GTvu&aGm|r#Z(gTz9LtMYPy0H2 zHyY1R+{Z9s&(F$N>r1%j`7U2{vAZJfr8!f~J%QeTcO`q{?lpb%XL`fu^4nqC)*pKr zxWz98%Lg?W+&pmkX2tnrH~tSoYV7<4ry?7+)+rcPr{=ufbR%E%CZE~5gn2I>Jem`_ z_q6UM-uNe%`s1fg+@5y$*%Z!cZ|^G4X+P(CX1(z3 z_9ba)y)sj6Ge1q4vwPXOJ=NFVG##p5b9CFJOGed|rM_<;ss5K7KDzBWCsF7@{6^?QF_yKQ~1a(njkb^Uht zKA*f-``iBSo70Emzsguvt@&PY|7HHUn%{T7|4pyAsDJoq{r=crfBWtKFDf-Wz&ph* zBlZSMn`(=4Rh0N)v*5;wA08K#9_|u*8N0fz|9tf1Nr^W%R91hV!1?oBvGS`U&MRjM zr+@Rc^7jtb+P(GAt^dKP%&n@gtoUBacv;Gfqz*On^eYvMy$kt;t?RnM9aD!{ZzbYiF8AtPNT^aVoHddI~t^2I_XeKm$;Wfg#!%I2fFoR}vpmS&&*B z3u>LA8&Ij{?eGJr^d4{=nH#1XNH;JZ0~!Ho)+T&DC%G-WhWNt2z%AbjxP|0|GpA z05qaB7wC6v+VdKug^Ylfp9WebgJStbU>Jb4Lwt^G2-Z;OT`gwatL+)9ev^jp*^Gw zsvT__2Hgboi3o%VZRJoCP^Kl&^`nm(BlJsFLG`1LA)_0C-v34zA=HSqH;!%qdPf&w zz$+93uyuRU%|h=xBFuW+gzgwbPZHe}^sW}dlwZxzP(kTW&i*H literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/RelationshipUtil.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/RelationshipUtil.scala deleted file mode 100644 index 8f24756ae..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/RelationshipUtil.scala +++ /dev/null @@ -1,66 +0,0 @@ -package com.twitter.frigate.pushservice.util - -import com.twitter.frigate.common.base.TweetAuthor -import com.twitter.frigate.pushservice.model.PushTypes.RawCandidate -import com.twitter.hermit.predicate.socialgraph.Edge -import com.twitter.hermit.predicate.socialgraph.RelationEdge -import com.twitter.socialgraph.thriftscala.RelationshipType - -/** - * This class provides utility functions for relationshipEdge for each Candidate type. - */ -object RelationshipUtil { - - /** - * Form relationEdges - * @param candidate PushCandidate - * @param relationship relationshipTypes for different candidate types - * @return relationEdges for different candidate types - */ - private def formRelationEdgeWithTargetIdAndAuthorId( - candidate: RawCandidate, - relationship: List[RelationshipType with Product] - ): List[RelationEdge] = { - candidate match { - case candidate: RawCandidate with TweetAuthor => - candidate.authorId match { - case Some(authorId) => - val edge = Edge(candidate.target.targetId, authorId) - for { - r <- relationship - } yield RelationEdge(edge, r) - case _ => List.empty[RelationEdge] - } - case _ => List.empty[RelationEdge] - } - } - - /** - * Form all relationshipEdges for basicTweetRelationShips - * @param candidate PushCandidate - * @return List of relationEdges for basicTweetRelationShips - */ - def getBasicTweetRelationships(candidate: RawCandidate): List[RelationEdge] = { - val relationship = List( - RelationshipType.DeviceFollowing, - RelationshipType.Blocking, - RelationshipType.BlockedBy, - RelationshipType.HideRecommendations, - RelationshipType.Muting) - formRelationEdgeWithTargetIdAndAuthorId(candidate, relationship) - } - - /** - * Form all relationshipEdges for F1tweetsRelationships - * @param candidate PushCandidate - * @return List of relationEdges for F1tweetsRelationships - */ - def getPreCandidateRelationshipsForInNetworkTweets( - candidate: RawCandidate - ): List[RelationEdge] = { - val relationship = List(RelationshipType.Following) - getBasicTweetRelationships(candidate) ++ formRelationEdgeWithTargetIdAndAuthorId( - candidate, - relationship) - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/ResponseStatsTrackUtils.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/ResponseStatsTrackUtils.docx new file mode 100644 index 0000000000000000000000000000000000000000..9a4c0a4ec884b75502c0cfc707f759194ec6105b GIT binary patch literal 37195 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

    =*gV0991=^whQcf25bX)ps8ar#et)|e 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 z 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 z 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 - candidateValidator.validateCandidate(hydratedCandidate.candidate)) - ) - - predResultFuture.map { results => - results - .zip(hydratedCandidates) - .foldLeft( - ( - Seq.empty[CandidateDetails[PushCandidate]], - Seq.empty[CandidateResult[PushCandidate, Result]] - ) - ) { - case ((goodCandidates, filteredCandidates), (result, candidateDetails)) => - result match { - case None => - (goodCandidates :+ candidateDetails, filteredCandidates) - case Some(pred: NamedPredicate[_]) => - val r = Invalid(Some(pred.name)) - ( - goodCandidates, - filteredCandidates :+ CandidateResult[PushCandidate, Result]( - candidateDetails.candidate, - candidateDetails.source, - r - ) - ) - case Some(_) => - val r = Invalid(Some("Filtered by un-named predicate")) - ( - goodCandidates, - filteredCandidates :+ CandidateResult[PushCandidate, Result]( - candidateDetails.candidate, - candidateDetails.source, - r - ) - ) - } - } - } - } - - /** - * Parsing the candidateValidtor result into desired format for postValidation including and after ml filtering - * @param candidate - * @param candidateValidator - * @return - */ - def postValidationForCandidate( - candidate: PushCandidate, - candidateValidator: SendHandlerPostCandidateValidator - ): Future[ResultWithDebugInfo] = { - val predResultFuture = - candidateValidator.validateCandidate(candidate) - - predResultFuture.map { - case (Some(pred: NamedPredicate[_])) => - validateStats.counter("filtered_by_named_general_predicate").incr() - updateFilteredStatusExptStats(candidate, pred.name) - ResultWithDebugInfo( - Invalid(Some(pred.name)), - Nil - ) - - case Some(_) => - validateStats.counter("filtered_by_unnamed_general_predicate").incr() - updateFilteredStatusExptStats(candidate, predName = "unk") - ResultWithDebugInfo( - Invalid(Some("unnamed_candidate_predicate")), - Nil - ) - - case _ => - validateStats.counter("accepted_push_ok").incr() - ResultWithDebugInfo( - OK, - Nil - ) - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/TopicsUtil.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/TopicsUtil.docx new file mode 100644 index 0000000000000000000000000000000000000000..942e914db6f06705969157162fda276c924777ab GIT binary patch literal 40246 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

    |>OjD_Cr@1B`q64dV(qS2)H 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 O)F3Nhd9-H!{PjQBEsWLx literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/TopicsUtil.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/TopicsUtil.scala deleted file mode 100644 index a5b7cf2c5..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/TopicsUtil.scala +++ /dev/null @@ -1,340 +0,0 @@ -package com.twitter.frigate.pushservice.util - -import com.twitter.contentrecommender.thriftscala.DisplayLocation -import com.twitter.finagle.stats.Stat -import com.twitter.frigate.common.base.TargetUser -import com.twitter.frigate.common.predicate.CommonOutNetworkTweetCandidatesSourcePredicates.authorNotBeingFollowedPredicate -import com.twitter.frigate.common.store.interests.InterestsLookupRequestWithContext -import com.twitter.frigate.pushservice.model.PushTypes.Target -import com.twitter.frigate.pushservice.model.PushTypes -import com.twitter.frigate.pushservice.store.UttEntityHydrationQuery -import com.twitter.frigate.pushservice.store.UttEntityHydrationStore -import com.twitter.hermit.predicate.Predicate -import com.twitter.hermit.predicate.socialgraph.RelationEdge -import com.twitter.interests.thriftscala.InterestRelationType -import com.twitter.interests.thriftscala.InterestRelationship -import com.twitter.interests.thriftscala.InterestedInInterestLookupContext -import com.twitter.interests.thriftscala.InterestedInInterestModel -import com.twitter.interests.thriftscala.ProductId -import com.twitter.interests.thriftscala.UserInterest -import com.twitter.interests.thriftscala.UserInterestData -import com.twitter.interests.thriftscala.UserInterests -import com.twitter.interests.thriftscala.{TopicListingViewerContext => TopicListingViewerContextCR} -import com.twitter.stitch.tweetypie.TweetyPie.TweetyPieResult -import com.twitter.storehaus.ReadableStore -import com.twitter.timelines.configapi.Param -import com.twitter.topiclisting.TopicListingViewerContext -import com.twitter.topiclisting.utt.LocalizedEntity -import com.twitter.tsp.thriftscala.TopicListingSetting -import com.twitter.tsp.thriftscala.TopicSocialProofRequest -import com.twitter.tsp.thriftscala.TopicSocialProofResponse -import com.twitter.tsp.thriftscala.TopicWithScore -import com.twitter.util.Future -import scala.collection.Map - -case class TweetWithTopicProof( - tweetId: Long, - topicId: Long, - authorId: Option[Long], - score: Double, - tweetyPieResult: TweetyPieResult, - topicListingSetting: String, - algorithmCR: Option[String], - isOON: Boolean) - -object TopicsUtil { - - /** - * Obtains the Localized Entities for the provided SC Entity IDs - * @param target The target user for which we're obtaining candidates - * @param semanticCoreEntityIds The seq. of entity ids for which we would like to obtain the Localized Entities - * @param uttEntityHydrationStore Store to query the actual LocalizedEntities - * @return A Future Map consisting of the entity id as the key and LocalizedEntity as the value - */ - def getLocalizedEntityMap( - target: Target, - semanticCoreEntityIds: Set[Long], - uttEntityHydrationStore: UttEntityHydrationStore - ): Future[Map[Long, LocalizedEntity]] = { - buildTopicListingViewerContext(target) - .flatMap { topicListingViewerContext => - val query = UttEntityHydrationQuery(topicListingViewerContext, semanticCoreEntityIds.toSeq) - val localizedTopicEntitiesFut = - uttEntityHydrationStore.getLocalizedTopicEntities(query).map(_.flatten) - localizedTopicEntitiesFut.map { localizedTopicEntities => - localizedTopicEntities.map { localizedTopicEntity => - localizedTopicEntity.entityId -> localizedTopicEntity - }.toMap - } - } - } - - /** - * Fetch explict followed interests i.e Topics for targetUser - * - * @param targetUser: [[Target]] object representing a user eligible for MagicRecs notification - * @return: list of all Topics(Interests) Followed by targetUser - */ - def getTopicsFollowedByUser( - targetUser: Target, - interestsWithLookupContextStore: ReadableStore[ - InterestsLookupRequestWithContext, - UserInterests - ], - followedTopicsStats: Stat - ): Future[Option[Seq[UserInterest]]] = { - buildTopicListingViewerContext(targetUser).flatMap { topicListingViewerContext => - // explicit interests relation query - val explicitInterestsLookupRequest = InterestsLookupRequestWithContext( - targetUser.targetId, - Some( - InterestedInInterestLookupContext( - explicitContext = None, - inferredContext = None, - productId = Some(ProductId.Followable), - topicListingViewerContext = Some(topicListingViewerContext.toThrift), - disableExplicit = None, - disableImplicit = Some(true) - ) - ) - ) - - // filter explicit follow relationships from response - interestsWithLookupContextStore.get(explicitInterestsLookupRequest).map { - _.flatMap { userInterests => - val followedTopics = userInterests.interests.map { - _.filter { - case UserInterest(_, Some(interestData)) => - interestData match { - case UserInterestData.InterestedIn(interestedIn) => - interestedIn.exists { - case InterestedInInterestModel.ExplicitModel(explicitModel) => - explicitModel match { - case InterestRelationship.V1(v1) => - v1.relation == InterestRelationType.Followed - - case _ => false - } - - case _ => false - } - - case _ => false - } - - case _ => false // interestData unavailable - } - } - followedTopicsStats.add(followedTopics.getOrElse(Seq.empty[UserInterest]).size) - followedTopics - } - } - } - } - - /** - * - * @param target : [[Target]] object respresenting MagicRecs user - * - * @return: [[TopicListingViewerContext]] for querying topics - */ - def buildTopicListingViewerContext(target: Target): Future[TopicListingViewerContext] = { - Future.join(target.inferredUserDeviceLanguage, target.countryCode, target.targetUser).map { - case (inferredLanguage, countryCode, userInfo) => - TopicListingViewerContext( - userId = Some(target.targetId), - guestId = None, - deviceId = None, - clientApplicationId = None, - userAgent = None, - languageCode = inferredLanguage, - countryCode = countryCode, - userRoles = userInfo.flatMap(_.roles.map(_.roles.toSet)) - ) - } - } - - /** - * - * @param target : [[Target]] object respresenting MagicRecs user - * - * @return: [[TopicListingViewerContext]] for querying topics - */ - def buildTopicListingViewerContextForCR(target: Target): Future[TopicListingViewerContextCR] = { - TopicsUtil.buildTopicListingViewerContext(target).map(_.toThrift) - } - - /** - * - * @param target : [[Target]] object respresenting MagicRecs user - * @param tweets : [[Seq[TweetyPieResult]]] object representing Tweets to get TSP for - * @param topicSocialProofServiceStore: [[ReadableStore[TopicSocialProofRequest, TopicSocialProofResponse]]] - * @param edgeStore: [[ReadableStore[RelationEdge, Boolean]]]] - * - * @return: [[Future[Seq[TweetWithTopicProof]]]] Tweets with topic proof - */ - def getTopicSocialProofs( - inputTarget: Target, - tweets: Seq[TweetyPieResult], - topicSocialProofServiceStore: ReadableStore[TopicSocialProofRequest, TopicSocialProofResponse], - edgeStore: ReadableStore[RelationEdge, Boolean], - scoreThresholdParam: Param[Double] - ): Future[Seq[TweetWithTopicProof]] = { - buildTopicListingViewerContextForCR(inputTarget).flatMap { topicListingContext => - val tweetIds: Set[Long] = tweets.map(_.tweet.id).toSet - val tweetIdsToTweetyPie = tweets.map(tp => tp.tweet.id -> tp).toMap - val topicSocialProofRequest = - TopicSocialProofRequest( - inputTarget.targetId, - tweetIds, - DisplayLocation.MagicRecsRecommendTopicTweets, - TopicListingSetting.Followable, - topicListingContext) - - topicSocialProofServiceStore - .get(topicSocialProofRequest).flatMap { - case Some(topicSocialProofResponse) => - val topicProofCandidates = topicSocialProofResponse.socialProofs.collect { - case (tweetId, topicsWithScore) - if topicsWithScore.nonEmpty && topicsWithScore - .maxBy(_.score).score >= inputTarget - .params(scoreThresholdParam) => - // Get the topic with max score if there are any topics returned - val topicWithScore = topicsWithScore.maxBy(_.score) - TweetWithTopicProof( - tweetId, - topicWithScore.topicId, - tweetIdsToTweetyPie(tweetId).tweet.coreData.map(_.userId), - topicWithScore.score, - tweetIdsToTweetyPie(tweetId), - topicWithScore.topicFollowType.map(_.name).getOrElse(""), - topicWithScore.algorithmType.map(_.name), - isOON = true - ) - }.toSeq - - hydrateTopicProofCandidatesWithEdgeStore(inputTarget, topicProofCandidates, edgeStore) - case _ => Future.value(Seq.empty[TweetWithTopicProof]) - } - } - } - - /** - * Obtain TopicWithScores for provided tweet candidates and target - * @param target target user - * @param Tweets tweet candidates represented in a (tweetId, TweetyPieResult) map - * @param topicSocialProofServiceStore store to query topic social proof - * @param enableTopicAnnotation whether to enable topic annotation - * @param topicScoreThreshold threshold for topic score - * @return a (tweetId, TopicWithScore) map where the topic with highest topic score (if exists) is chosen - */ - def getTopicsWithScoreMap( - target: PushTypes.Target, - Tweets: Map[Long, Option[TweetyPieResult]], - topicSocialProofServiceStore: ReadableStore[TopicSocialProofRequest, TopicSocialProofResponse], - enableTopicAnnotation: Boolean, - topicScoreThreshold: Double - ): Future[Option[Map[Long, TopicWithScore]]] = { - - if (enableTopicAnnotation) { - TopicsUtil - .buildTopicListingViewerContextForCR(target).flatMap { topicListingContext => - val tweetIds = Tweets.keySet - val topicSocialProofRequest = - TopicSocialProofRequest( - target.targetId, - tweetIds, - DisplayLocation.MagicRecsRecommendTopicTweets, - TopicListingSetting.Followable, - topicListingContext) - - topicSocialProofServiceStore - .get(topicSocialProofRequest).map { - _.map { topicSocialProofResponse => - topicSocialProofResponse.socialProofs - .collect { - case (tweetId, topicsWithScore) - if topicsWithScore.nonEmpty && Tweets(tweetId).nonEmpty - && topicsWithScore.maxBy(_.score).score >= topicScoreThreshold => - tweetId -> topicsWithScore.maxBy(_.score) - } - - } - } - } - } else { - Future.None - } - - } - - /** - * Obtain LocalizedEntities for provided tweet candidates and target - * @param target target user - * @param Tweets tweet candidates represented in a (tweetId, TweetyPieResult) map - * @param uttEntityHydrationStore store to query the actual LocalizedEntities - * @param topicSocialProofServiceStore store to query topic social proof - * @param enableTopicAnnotation whether to enable topic annotation - * @param topicScoreThreshold threshold for topic score - * @return a (tweetId, LocalizedEntity Option) Future map that stores Localized Entity (can be empty) for given tweetId - */ - def getTweetIdLocalizedEntityMap( - target: PushTypes.Target, - Tweets: Map[Long, Option[TweetyPieResult]], - uttEntityHydrationStore: UttEntityHydrationStore, - topicSocialProofServiceStore: ReadableStore[TopicSocialProofRequest, TopicSocialProofResponse], - enableTopicAnnotation: Boolean, - topicScoreThreshold: Double - ): Future[Map[Long, Option[LocalizedEntity]]] = { - - val topicWithScoreMap = getTopicsWithScoreMap( - target, - Tweets, - topicSocialProofServiceStore, - enableTopicAnnotation, - topicScoreThreshold) - - topicWithScoreMap.flatMap { topicWithScores => - topicWithScores match { - case Some(topics) => - val topicIds = topics.collect { case (_, topic) => topic.topicId }.toSet - val LocalizedEntityMapFut = - getLocalizedEntityMap(target, topicIds, uttEntityHydrationStore) - - LocalizedEntityMapFut.map { LocalizedEntityMap => - topics.map { - case (tweetId, topic) => - tweetId -> LocalizedEntityMap.get(topic.topicId) - } - } - case _ => Future.value(Map[Long, Option[LocalizedEntity]]()) - } - } - - } - - /** - * Hydrate TweetWithTopicProof candidates with isOON field info, - * based on the following relationship between target user and candidate author in edgeStore - * @return TweetWithTopicProof candidates with isOON field populated - */ - def hydrateTopicProofCandidatesWithEdgeStore( - inputTarget: TargetUser, - topicProofCandidates: Seq[TweetWithTopicProof], - edgeStore: ReadableStore[RelationEdge, Boolean], - ): Future[Seq[TweetWithTopicProof]] = { - // IDs of all authors of TopicProof candidates that are OON with respect to inputTarget - val validOONAuthorIdsFut = - Predicate.filter( - topicProofCandidates.flatMap(_.authorId).distinct, - authorNotBeingFollowedPredicate(inputTarget, edgeStore)) - - validOONAuthorIdsFut.map { validOONAuthorIds => - topicProofCandidates.map(candidate => { - candidate.copy(isOON = - candidate.authorId.isDefined && validOONAuthorIds.contains(candidate.authorId.get)) - }) - } - } - -} diff --git a/recos-injector/BUILD.bazel b/recos-injector/BUILD.bazel deleted file mode 100644 index dbd3d0619..000000000 --- a/recos-injector/BUILD.bazel +++ /dev/null @@ -1 +0,0 @@ -# This prevents SQ query from grabbing //:all since it traverses up once to find a BUILD (DPB-14048) diff --git a/recos-injector/BUILD.docx b/recos-injector/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..8841c8c66888bbfac90002cacc23d3f788c03e2e GIT binary patch literal 36697 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%0AfNDxtt@zL^ZQ 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 z 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

    BjWXw8Yb!~sAcP*r;CaD88 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 Jd+_yvcmU@KHQ@jN literal 0 HcmV?d00001 diff --git a/recos-injector/README.md b/recos-injector/README.md deleted file mode 100644 index a391578c2..000000000 --- a/recos-injector/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# Recos-Injector - -Recos-Injector is a streaming event processor used to build input streams for GraphJet-based services. It is a general-purpose tool that consumes arbitrary incoming event streams (e.g., Fav, RT, Follow, client_events, etc.), applies filtering, and combines and publishes cleaned up events to corresponding GraphJet services. Each GraphJet-based service subscribes to a dedicated Kafka topic, and Recos-Injector enables GraphJet-based services to consume any event they want. - -## How to run Recos-Injector server tests - -You can run tests by using the following command from your project's root directory: - - $ bazel build recos-injector/... - $ bazel test recos-injector/... - -## How to run recos-injector-server in development on a local machine - -The simplest way to stand up a service is to run it locally. To run -recos-injector-server in development mode, compile the project and then -execute it with `bazel run`: - - $ bazel build recos-injector/server:bin - $ bazel run recos-injector/server:bin - -A tunnel can be set up in order for downstream queries to work properly. -Upon successful server startup, try to `curl` its admin endpoint in another -terminal: - - $ curl -s localhost:9990/admin/ping - pong - -Run `curl -s localhost:9990/admin` to see a list of all available admin endpoints. - -## Querying Recos-Injector server from a Scala console - -Recos-Injector does not have a Thrift endpoint. Instead, it reads Event Bus and Kafka queues and writes to the Recos-Injector Kafka. - -## Generating a package for deployment - -To package your service into a zip file for deployment, run: - - $ bazel bundle recos-injector/server:bin --bundle-jvm-archive=zip - -If the command is successful, a file named `dist/recos-injector-server.zip` will be created. diff --git a/recos-injector/server/BUILD b/recos-injector/server/BUILD deleted file mode 100644 index 55e2ab35b..000000000 --- a/recos-injector/server/BUILD +++ /dev/null @@ -1,43 +0,0 @@ -target( - name = "server", - tags = ["bazel-compatible"], - dependencies = [ - "recos-injector/server/src/main/scala/com/twitter/recosinjector", - ], -) - -test_suite( - name = "tests", - tags = ["bazel-compatible"], - dependencies = [ - "recos-injector/server/src/test/scala/com/twitter/recosinjector", - ], -) - -jvm_binary( - name = "bin", - basename = "recos-injector-server", - main = "com.twitter.recosinjector.Main", - platform = "java11", - runtime_platform = "java11", - tags = [ - "bazel-compatible:migrated", - ], - dependencies = [ - ":server", - "3rdparty/jvm/org/slf4j:slf4j-jdk14", - ], -) - -jvm_app( - name = "bundle", - basename = "recos-injector", - binary = ":bin", - bundles = [bundle( - fileset = ["config/*"], - owning_target = "recos-injector/server/config:files", - )], - tags = [ - "bazel-compatible:migrated", - ], -) diff --git a/recos-injector/server/BUILD.docx b/recos-injector/server/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..743e970fdf450c8b5f175d69cd1e6cc3b3990a8d GIT binary patch literal 36975 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 T6_|rSxk`{B5tu!Gbc1*Rnm#63 literal 0 HcmV?d00001 diff --git a/recos-injector/server/config/BUILD b/recos-injector/server/config/BUILD deleted file mode 100644 index 68161409f..000000000 --- a/recos-injector/server/config/BUILD +++ /dev/null @@ -1,20 +0,0 @@ -resources( - sources = [ - "!*.pyc", - "!BUILD*", - "*", - ], - tags = ["bazel-compatible"], -) - -# Created for Bazel compatibility. -# In Bazel, loose files must be part of a target to be included into a bundle. -# See also http://go/bazel-compatibility/bundle_does_not_match_any_files -files( - name = "files", - sources = [ - "!BUILD", - "**/*", - ], - tags = ["bazel-compatible"], -) diff --git a/recos-injector/server/config/BUILD.docx b/recos-injector/server/config/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..b2bd85d50a37c9a9e0d2cdbc054a1023e9fd14af GIT binary patch literal 36856 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 literal 0 HcmV?d00001 diff --git a/recos-injector/server/config/change_log_config.ini b/recos-injector/server/config/change_log_config.ini deleted file mode 100755 index 6a708e921..000000000 --- a/recos-injector/server/config/change_log_config.ini +++ /dev/null @@ -1,7 +0,0 @@ -[Configs] -DCS = all -ROLE = recos-injector -JOB = recos-injector -ENV = prod -PACKAGE = recos-injector-release -PATH = recos-injector diff --git a/recos-injector/server/config/decider.docx b/recos-injector/server/config/decider.docx new file mode 100644 index 0000000000000000000000000000000000000000..50058708cc2de24dabaa5d5ef687407c339eabc0 GIT binary patch literal 36846 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 xe=Z$ptf2kIw( zgzs{EU9}>5Q60^``#*zy0+jNe&kb0GEZ7DwOsOhi|BKFA_~t5M%<4~XkE(1OfJ4ddfZ&;abI#b@9m<4yH3W+MT-uJv07RP?9N&N;u2n2C$2m0eGezGcw&W zJY-Y*fW#0=+nM=qTrZ-b&FI0hj(m8hDse(jOnH2Ge#&Gp@c>H2s<-$^xYOwAx25^$5S7~G^?3ZOZd zHkRM;zB8+KabzSX9GQa23&xu!<9*+o1g_Yp zTb`Er*XyCP(=8LrN42-zs|JQd{Mm%Dgi}yMAC6kWK=3D38MucY=W5jx3bIQ%8cMQh zG5XVV4YU!!6o4A4ImkgnjL~1mI9F$Hs{1J|dk)((+zN?d8%Y~yen8MyaHGI@9_lDB zeN3b#Tk*RNNSOT+McULc>J0l@VdfNYl9t?vg*Y5SI4mma(o1(1RW?JKkl7u`p`|9P zo}{7v6OtMjlJ_*#8BMW(g|5=Vy%ScH*WVfJP#nR*oQ`_Gp8f0UPegVbQW4(vEG~6k zS_CVjZeC)0WnL?A7bU;}$;!mzJe062J@p(-8pH*JI75h8pflP?<4x3?2hDkWURGLu zR?;F4gDQYV7EzR!R?jlaS%ro@jvP_n-Xm2R0GIsXT-_PGY?g!`|40cu9OY--%k$z6 zCx#IUj;##)JCjvqIWo&WD(TWte^v%a&bc38ZMW9Ygh3u2IR8*PEMh4N{`T(OCUIDV zI3>axAE?I<3H`^4LyCKH?wxW0%UEYNWZ)eCAx$;`8!f4%qEatUo>x`{6P@Rn?}X?=P&>!jP!~$UgUsd34I&SQWwS>Q*V!ro%nKbc>LHny$whcs#dv9H zYjl8=7PW%^rX(&-fT9Tycg4j$6fgP)3p{wxP`{}F_Gli-xHQLm!+~ds7VoZp(nWrY z5}>0X3*vo@xDNJHBO1v+Szsk60-ZS&|Bo}yXwdoCbuRf0I4Ot|G6Yi=>@Cg%o)k3H zcC^$&)n8ul+7BGVJH!(dvf#plG|2oXt!2tpO;*K|JNaA@ZiGwX`CZmBKe2yX@wU(T zs_h;^aM&YLpy>^A*<*gHbhjMeBEqucMCTzvrP3O(RYsv6Jfr*s_zk>8(w^O>MoI7H z!|C%o_LsljJG6>XepWETf*frnPCyD469nU>i8?Qe>ff)=k|Oe)D1UBYCM3nTs4TFA zN#4YL#Ai^Jx-}Ox93&MeVT@VripDJnVqJmqLjLtyGQ&7f1Luw23(9FQ05!Cu;fh;W zg$-oc@hvhRxBAQ*!@yfyHVo>l(}r@;6x)m{43Lmy)5b0c7yeFzK5n&(>wIue<$^y( zJ64{c9H&Znuozq5IMkiLDhw#p7C=}7L%REmfX7bbK@u6Pz`qDk9YXP9;*L9UWP5>0 zD9Tfm23w59FJ#V(k(82@%1Vj=+=3qV9aR!!LYwooL;zAodI{owPtwx~3ms~m+Rn1^ z7T5<(j-+E&#CJIXSrP5HCSO@hVkqt=E&d`^afj@e6_7=T3(31A0?1agJlImQB`Muy zh%iq5+mJPcKYWsb2!9z;k^&CoBeRkj#QsGfI(>Fk+*t=WPQ2YR^hnNd&K0IWm!xjT zS#D)zv+KDq@W-rfr56$cT&JY0{j%P_b$V8j7Kh3$wwJ*(W%S0yMK(}nTy1=(Mj*R% ze(Oq|nwtY*Ps!(hC1xfB&b77?@?nb%Dgx=b51%b{=Jl^~=%UoM6|-r4h5N7&COK^! z6;A;je7Hp)JQlDLJ}R5y%Io0ev*O>20H?)CGTD9j@Yn&|kHOrs)U$Qjyikcx0>&0| zP+vLP(5ua2|9n$efF1F*KDlRpn&htvNh9-GA1S9G8fawIWKWV=JjPmT9~lrs;xSl4 z)}o^>TSBtX5G|^mn1EqE4$zb$0r<4?buB70y}ELSp&=TGLpJEnl~dnKWHyb7uT?Z6 zMP?Z9W|h#ukU*w@re(S-S~u2HCw-cP(b70J8@u86W=wzH-%o~kDsH2Fu$s%qq-fwT z(K4^up?x5LFo^r1SMM(YEQ5eyX{XN6Op?*w;`&Pf&*sPr#K@#+LL>gjteNA$1kGM; zWF#yrX=JVq}Uj4Z+#Q9 zUqAjwKe|F8NrPT+5RhZo|LWf4V&>{8$T5RN%u z4n&-mo{sBoZl%=r)rf;7B`ku4)=-eo5BFQg`{lkMry-+tI;bZK)#0IcTeC)SVmNJU zUwC^Q97KRkIdA>%a&C0My-W2-@j--^j*{f15gMcj+r`G%Q{6JzrCt;-V>5@dUA7F} zij9uwuYJaQUMJneVg?(e0WMT(Je(tv;58MqF79`OZql{~z?Ywx_4`xjmxDV|&c9SN zYq5@tjuDblC~*R@htd_}A_N^@0}EGHv2i-->z#s+jApZ*rx5w6M z(hn)46(DU?*k8mWHe?SszZc{MPcqIGHRZWT$lkZa4OowN=~I5BeDP;kS{+&*h$9rR zUR7Qdnx9|B(~&|<-Yn;ed%F=vYG{#?-im?c!wNE~cPQ&kz-$AvR+#CH%~wQQe*}<( zt5#b-@x{MEg^fZ9=OAmGhIShPw<1hp93&(K#>43?&<^w%N(ff z?FAQJlW@9pi@_G1aB*e|#m&8YJ1CQxYth|?m_Q*IY#MoBo#EDf$~U0e`a;w!#G8TW zZc|UvHJgN>Vb2f9lFZL_D8F_GZDZcS89yHg+;@V<0pLtJ>U~0Kx{bhV4svrbr!U~{ z-Uf)}Chb|b`97$VDGGm-n^o($)`nZ3?yC>*Trrf_At!mYmq%{s!frT9DKS>e@NeD& zcl`=BOZS>15K9kkN@5TFwz&#}9$Lj08~6T=jJqxL#npoEYgI6&a)p_9J?ycVB)2X; zAA6($W>4j`RDC!fgLPfma0aqUhp}=e|9!*QWXyeuKG&sLed=)c#r!0bm-e1nc%q%t zD`(AxMV6Sa>us~C{8j#Q<)|-;+vJAAF9o||gYiu$u1oVRG|0&>+vLP%^e03h?5oAs z#`V*fg4E!Jmc!%l`qn7ZS$BX;POq2fn!&6F&+~k;l;3aHBW>y7zK45Tz&eHR9XRvz z@nHdDq;g=S{H~m7@gp#`#2V3Z^$0BtEtMo17D0oQ`3=`9a>cXOr!uGSga@(d_uOl_ zvJLvr?Ug4whpHgJ7E~?3pFf>N|LWED)y!D+zb^Rb*?#Lm76g!4ubzQ}1l4`hC|1z~ zHXOpvB#{RLX5eP1>E~bU+FUrD_f({(q~%+_c+*TfGWmb@+p|Gw?B!i7niBsE z-831Yf#HXV#>%*WOS)Vy(yxGgMiLE+9wIX?XKRo-Mgcx5c^o$?kAQGhi(n2P)%c9s zK1e8g6HwqpR;F)-S@T*$Lo^?K(@Mh=BRjx8(Flsa>~SR`g~~WRF&EpiQNVZteXIOSG*unL;zGGg#ivW%Ww zzX^7D@{>ZyZtFvLb3#OfE+)mYc|TsayM_FxV=ugUE+)Y4b}w)sAZY(~%pBNxRn5rQ z_OE`Fn<@SFKUfGxetwIfNzIbAO>D+Mr5g!pnnc3)0zoIJ!&;BO6mFk?`Oa?}%W_#K z(|K&RI_lv@3$xCGIZc~JN_%!C6}-1smD`5vXUr(r!3rwlfoL4K@j9+l z=L0qdA*vfQ60Ims!r8F1^hl7l1{Zvfut*p&yf{rVX`EfY?(Jj>wwQoQ*65`PJI}Cn zwJ{?G3E?C*U32B5QI;{wLbvm3Ftrd*F(pl$HHBtp{@ zmOan-05!8GSx?*c5p%ZY$o%&13*kcot;EEE@I$0_9UHYbQ?um6f{4d2w{u z{8%=%WgUZMw!O?OlI2)0+z;b-7uJvFwqAp&-dsU@d4%xSnOiC}neeI!d=?M>xJ|3u z6rmRV9W_J8gZ`8|!4%ces=7S~NHFH<`k#m2!oRz{ruI;smwGDHNLGBi`5&D)lSIhc zMu1I#JLy0`F#ml@x>}mqnKA!$Wc{ndnT~?PIu}mQFHMw=gT?1{w}=jji`C2J5=69C zvDhYYU0WJul2eKv#7n0>KcmgMLAZ;S!MbW;_>1|s412;Bq!R-i+O-H8W#^+|g&&mA zqhwD4-n|AY*GuQ2M4&HWPV#S$I)^GAh$P!3NROkJ&0c};!^?O(V9!Vti&B@(w0kxy zwV&JIYGJTFV5Hk-YWrFa;ZXHxliL_WNqfb?4<_4D&4@5=0E2KQrT(G8``ReWDkVc6k0H)bAV2#sD3r}4f+DN6bh_$}bEp3N z@GzNaWmS>E0eP)oyK<>M-$}hY+fpn+|Ag`2Q#mgq69+cT0h!=B8ST6&otRvbqS&}~ z>WX(xm7x<-lB2jl$9;~kj;`=YY=Ndu!J=^8F2fQJH^W>|;p5h`(Z0xv%2F@jt=k(7 zv-wnbfdq}E;J}Uq;9EXFFdF zbj%$$)(vZ8^(dolK5qz@9!&{pJM_dej#Qb?uUZ9ZO~R2`S9rYvYhR^+UG;bDRjRV5 z3-U}9KEh+#C^{!oNVX#@go}xfg-~*FMb0OC1&`wVursueTs5LIb|CCk9J?+f?Suh*C*ml?C8*$|cZQaZIv zFdB?d!b*m5PcY;``kN`!nr<_p*-6CIF21}}EUnKgIBq>|p29To%I)(BopS58$!~y`_?2zJw?4kjkR~IehSHaHQQ?kCH(HnL(78pf-JxwsHvbu~ zA0CSQKdmgvN*SwUD}S1Lu0&k<-gR!yxy|UhuHzetei=^6Ti0{&)5{n+om?xNvlKXp zWG?Wh@3sDs6r~kTz>b3iCOJ&4)z-;`P$Z8@-#nOR(=b#>lBc(o%lM7XpzOZm}l%%e9y2Zt1>SD>uTdQ*Aa2!SHSlRtF&x7BW z2B)aeMFaBL&j;y>DblnGjd)hnjc8~GWh@GiPXbvp&QY4qSwyHEvm&F~sdYZZUs?*w zSjtmpe>D|UchUS92yiIdj9BKza@`9IY-!#q<6x`T!h=3Z5p$i6A+%PIx`rU+G;7X=+ItAPs4>;2@%J*Fs`1>K>}9RO<`mAfurT%1)a%e!qKz1?Wb+lS>!s`)+%p*x;)>U2&hxV8#J*t(7LM94_R(K_1Ii(A%_ zzkZTgD~+5KG(M$}q1y2N+P1CA4kDuuYYrh@M0onvC9P^w;)ALW=pLGs=8StXOXCAY zB$kEco`V5M?;RTp#EFIH3}RG+Su_f^1Ri4{tf-lTr9_r zZ>1FYfd>W5UeSTSP25~u9qhF1Y?-ZG&FudA*sG4JhZ|tQ0Qu!3F`h79!WV|Ipn^h; znh#ea^ZWxUp(~-t_+u-qcgOv!X|ONcavV_&ity zI;#f7Qq@9A+pWzVl2j2Kn{Ip@V_%OIYY{>t2+YE<9Py+&4EAlz5vM5ty<#{Z(pEFY zi>jFePm1}-in4djSA!5o3H6z&28ze%vYIhxlQOur4KCBvIcRC^f9MjNI9%!m>Y)be zBKn7}zq`Z!N8MkoVWVg2f%!QK)K0e|X_IAznFUS0)*~9&ny4dbW!y|lSTTBsob*;t zfhssI+ZN%+FBdysI zrj|G1;v!_Y?JT7Z)#HpP4C-klDU(6GT1+N6ZVgw)7PFZh@AFT+q@C2N1d`-;Mz%#b zM6g@+P8nT+gdH}1W6X3-ooFUJp$}>G91;CTxU14LDDN5y>hk5C8bWU?Z(#o%(B@8g zgqko`KuFan?KtON=mS5L%lh+0TUTew4Q4 z>*CQB?_LUgoF=1RYh16E_z8p#gX|5fX6dNss3>66D*5w6vbuUXImpNOYWM`LAbHyZ zDM!h8T)%8PjaDx}F(Fah5*?;b-<)i8SxmK%OWSjMLLCn3inwC?UZ4rEPC!TKg+gubt0Fh!C|-eSvyxzxtX!o36-P? z@O_*-C$)r+H{bOQSKT?*On|FKGon+*-O0oG)~f!W=E z)*SY3cE)DTz^crj>~30X(|(T!r+d3pI9^h(IXsaAf}^QGSmSfFBzf~42o+AU7eK;6=9F@__#spb9m zU#TZl7r#_s*U-?u&$jsrTYc=l$IiTOw_ zj5@4*CjuU>xC7HB7^QaoK+=gyX%CW0i-<#0Y3^cVS))$5-$`{TpOsv_&r(Vzed^r# zPBb!KJWMWPiji+C}=ZUWYYAh)TcxHe)g!@D)~D$rk% zG9>3pf}SAfZG{DcX!c>Y=E|t8|s-N}uaDQ@2SM`_;d86nArfRh+CpG^J%2 zmcv{ZVQVS4U{BL&iJ4`L{|*0x^wwEgDZLPziYD{>0)>J!ZkA_Xy5cwP*tl#YL(Zhg zawfsbK?@qS#b%iO*<0Z^LGaik@TFK^|jkI_kv^QVJND4i|FB;7XXi|-iKJ^ zE@|pGOXYy(E~S?6WcXesrVv^oOHxd;vq~Gd)w#Y04W;L7|wTd%OGT`~HE{ zL>z7$#*5Ip>PVU6{6sjz`_ndV=S{P^#Vbq=l6*}_^yh5e z#J+D+FRPda?wa1)gx~m%D`LKU^uQ}fBH-iiB0+;H>FfP+|9s=xe7h^e_nCn`G5g)# zbKkbTwl2@a!mtJxYq3v&{h|iy@oMxD^=PHg+w zH+YTuBY*1y{+}~e!Pv4zHzWv15D5qfHgLuQHtzmwngXu8fY+zJk(DizwWFEErG||o zx;lnnrx!P^-82dfBL?(9CtF_;qbNNXm(`DwB(5UHTBi`1L7`3^ms*C#AUnJ{1XJDQFaU44e@%>l;o13QO+AzL%{7iZm9iI@T&^G|t?dK5AU0r@2onX3i^e(~ zw(T<8@C;D_9AhCIsk(63yabqjf!4bnPNy&|7|4pm8y~gg)4*8}gbLDQjJzE`z7^ye z^s819sH?@S{wzai{P|Du98%+evFW6h%C59qzGP-~4o(2Qb4FzUrHe;gD`~Dqs%fp_ zo;A|M7!77Xz{%H4OJ)M&v2$b?nbWPIZ;^$pDB-o-P(NME^F2Y0k*YVTQ+Q3f1}_`b z$#cWJeYIMYUQ7>!B=D>w;}jtcLp_EQbkt|I*3T-n0|e09N14}cj31W`Kbs}? zFglKKylf_5dO_{S=ib6T!f_HK35eE5Kf*uZ7!)yJ<6@kpNYbO*$2jU*i@`nAZF!&Fs6X)EQzU4!SOiLShfY))8(jPn{xEP$^s#$%4STh4~x1CH~J? z|F5-+__ZmXQ0L7cpn=0IKUn&eY;kPTOv|K)*iCVr5zRtqPjEk7ZzZhA)eIv~UgQ2e z+p#I{05-nL*De=U;UfrITDkaGwPg!AKzrfrZ1KA~Y!kIuz&wxWE6S{(UpzdUpp88) z%?#)f_5M-w!|e)RjfA2+;XJG6g0DmK^nz-b+8@}bnC+8gb^f*WoWajT1rPH(TUAt_ z3W&r{CpoOs2XGMb5przd0Tf{h0TxiRKl41r4P5EAxvB1i2dJ1K(q7k4pIG9 zDE+F^VReym!pZd^PBIQ-!W8P+bB%gH;<}zZ&T3uZa}-Jo<|5toPr1SLwoszqH*ur& zw*qby!7h-*UxZtle|LkxW6!G+tN5|3^)0Nq&zMLeU!ze$BRfuL`!)NJuzH!c zV6Gu?)fncS?CfQ!7tNs?7Jm@g+su-*;s=IbL7Bis(mF?>YLO4(rk@buM7G~nkh~k2 zX~q1neXy!MHQ|bh$QubRox_DX4=d&+WS(Ju!JhP_z4x^4CEoZam-^$UPTZb$_}LWB zX>ac;&uKsBduF}x?e-;UX}vO2Z8JYjnX`M@xjog_-ZUMmUUPKYq)SHCm8HIKAF2MR zx+`}u`u*qiQ=WJP7oUE0tzE9}$;GX&<*I8QFIzsZ?%B=f^XeBCpT0Idt}gZV>h*hn zUb}65uX20#^L71p_dcJzSNq%k@0-(ynpcb!J z0j)^_IvLgS8Nh%5&l~`aD9r`>9h>&N25BK9pyj85R>`1Peh@g-2-XhqIkF*GL!o!I zn02>414CRWD+51@NxDF%flVqdsmw_QPgkOc0s4WGF#QdTPpwciqa81aZVvi9DZ-qv z0+=~SlPKug(I;LI+FeSZ+R>(A&`m&}h(MT7Rthx%Wm*DVKl-RKLO*8(R6qI{GP)7y z{cnU3O!ZiM0=A1Kg?!E8( zW%E$A)=$>jUAuaBDSm>4!UO{Yg9EEf<<_iJE{sb82Ll_00RzJTjp~R4?3~T)oDEbx z?9H6?nA~k`8k6J{Rz*<1oV{QrGYgS;iKAeZ?by@UGsNLZRHxtYXe}|H$U;2ajq`=6 z%_xSzFvVr0-uV!%)(LicH&N+`OPuKGWoYD+K^A-GujetHnse_-#*xY_O79ZR4Zzg2 zWO%=y;sR&ct?A=4Ko33>%h3)<(tH4mrml=pM<*T(hEoj_}Q&=WCeZxti1$!-n{Nr&`wu`g%tTHHW&@ zo_;$lrIFVv+8gLr!9Pv_)1&=-CrO-?HfU_;NHLU zuey_d?kL)GSq;cDk!47x)pybmiL4yrw^w1 zk1l#peG<6`b#DU#3=9$U*TB)t#)+Bf_q8&9;v*z0s^6KAQ0cBO(+4{rAE&N`%$ywUaPvj`p9!(`x-jo%GrvO>T0pnU+=3pwiEVeZR z``cri;%A-m3#P+BaRn89cZzG6iFWjU9*YKn;+dA+5BrQ1n#VToXuDk*Tm*-fvt89y(`fs|In4a&^mWx zGo(pyd@ylH+?l^=IHDHT>#8yK+EbP!9dBh)Q14myI)>)Mhg1% zVZcy%Kf{cs28NB`#PtFC9SS(Rh*GMuTZ=l|R``jNqr>KuE2LieyXKI0$jR?>XHH5g zL;`Z*)^uDq0R4rvLvwRGYm82me!|YCE$lTIFHK`S)G0>5jP+dPAvZyb5ctf*yXy-} z*7QUf%wo|DD4B24-x)e5@($~L-#)y)Um~Et=e~f#J+eU7r=4{Ze|_$~#Q$esu2)xa zjzN8~fdT_V{d-@G?Ct+(i|Ux&Dhq1+6FrokbGRj}s1j~`z=G(E_&Q!qd`9!!DA~t2 zs8-e;pwB}n7Vj74n=t-*{-=h~r$te7*arE}YFJ|rdBchh>j;h2;Y0hY69;5YP-W1i zSn304dJYCtqm}b8jPTB>8j4k;US##g;}=A*_D%})Q_d^MA{z}}MQ!r--qX)!B9gyc zYw!EdlN1}5HohvcD1?_ozEpoM_b8bXwVf4ZdHRe%nNwXX(g(F9T z&uZ9lKK>cX3en5?rq1*yT8@RS4vxSqxyUgQgZ<^~yZe5GA2=ojTOz>e8!7wp%u||G zFr4s)<9ZU6x>AkM%czssE=|#)99~Yy7jc@%k?-V5Rz`rHYqV@l|22o$mfQML{#fKs zx5!YB{9;Sb*b;Or;;`C;u?bD77{0ZmfU95JJns@JFCjI-!!Lh4?Pu0tB#KxPEPq3z z@R^(ulB^x8DgU^`R6#0OHAqd7O!#C>j8AVud#Z78Aik)rC$AHQmCcEV=1RF83~UA8 z15iUJS_|STesI;^A-?;J_kzlFVas~3_243ic;p7d18k{>CrUYiw|N+a@?Rc2nNV;P<>7#!J)z~~ z&vz@I55=XM=+5|3yga2rjBixuE7c z!3pvN!H50Yegteq$#|6DSiE8aT>qgDOk{!3rp2n})_3Z!7dh+JGE#DNz1~Cx=mCU` zc1oKE#I8ng`}bk>swN$;%QrgAg*wY;ADqeMBYUCX=;V;*>G2q(&Q)qW^`xWr^9{o^ zc%lOh6s)E-CqjKjOV|vrh@8X~tfzN+wI1D-$xm?#?t?Fdf}K2#6<(dR-M^C3u`PXh zPdMzmSkqGT#Rt$@hMFL)XuTNbD=+>D%H2h>Pt{7(Yw#RZ9x6Ew!|OrEoaxFKm65it z(7aX7u&}9+v}GFWSF)uo>h`;j;$O#8yP=CoF_NwPdCM5Mhd=M!;r*D!a)h7d8V`Uw z!qn!~T}2ON+nIu|&OR%=pU?jZ?qN4B9zNSp?12nnxA;1$aFDZ&9?KiD&9$m}Q%o9Z z{jtCwS5Miv@U$1XSNTT;Pxgyoc|ZO2<%uJaX49_+2mK+XY{%wY z_BRE@QfB|UGL=bL8Rh^RyNBHczFQ2&%R~RO!WjF%$l`~XYKy%tXP+E(!xA_bOy_6G$UyJ0B7m0 z8Msa}#lowD{EA_&3G+7AF~5_tD>AJ<)Qz?+8d$-_@Z>}!G4rzi>+bl;aP~S!&x9kw ze9IWCz*R~|nY*|DhB;Ax!U%_BJY}M9n?IWs^lSHIbP~c!@dZB0VEA{t za*_E_E1d(5&7X|4U!3j)+}SVATN7Q2wdWQz_?;viAuHDjc;0Vj$Xx2zj~n%I-F7p8 zCok5QI4K?@8Q1`-XKodm1}y%$aM=0bqqBjYC}W_-g8=kI`D5Yub3gR=<>Sx2QKG0q zAPer7vsZ-P-~`MfyNLI{@~GPAq^b+OgQZsDZ^idEb=FN8#CQC6@3?%jscmN`ZdDdG z_;KkQJ_hhaLZD#I1}mDO3s|6}9Cz1CtBG1ylECxT^l)`735dzfoYW?Lt~mIZDEEv| z+e+DAhd|MoYbVl*RTWimD5VnrrH)%0LQ7&M{;N?)c9yee8`;G~Rm){Zh4q&3dYV(u zmVCW>Krb3p?b5uV9yuqa;m+B?^v%5~f$s~fK7x6}Jb`%8p8vC)ZWOu!l=@u;WFPyz zq2=hV`GN_Ugj<(*ia1+gO@_)gtNNvLhHomNWJ_YK!R@vL0WR73GT1b%1!XRV{kvH2sI z!NBy@putf7Rcj|_4;wS5-%B)T-=DA}Rp-;ym6vbu{KGaj2yAH54lLf4z{sm3tM-gt zj(zsm^fb=rm=gnEN>UMGHDxvRk7e<7{JmM&inMzgnF*?9FE81??KWpX1LElPm(z9b zzAmKBR-H5Tr{amzt2O}e1=pMZVgJ-!`!p+g^~LVxG+lUc2=Mw4^Y-wxcotnO+9MjVEFl)-8_fLL zxz^d%Trrk3!0Kz;w&v5Rt8>=*awGm|uAD;D=diiXjIs&*DoN}uopnO`)?fY5W!zIe zHcypY|Lm+C0z^xr#B*+g?>OJUYfBLZdPJzUdGnuOkXDDqUe};N7lxdo^G$`+ql8pf z3BS}B_-G0H@B}lrx5bzR}!o6Itzc{DqKGy)3+cyOSE8WgcLsGa;v$z$G z-+c7XfPz)oc8hNq{hi5?Eh}9o@&~IifSvmvZ?)Q8Qd#(&-*lw79%vuCxjgS!DXCxY zSNC1H4-k1vF9zP)LJ6pDjb%Lane%bG@YNC0cHrv1?tVlvDo5EaL19%U?o}f;t`O>% z@Cl{$4xI(MxOQF-omdV~Bj~F>gayp10`s=Wld@@AB=)Egh!jCXJ@mp#H2~0m`wTDr zR`1{R?#HEBXJ>QA+}4}5Fat6G?PI+=a6zjJsQ zlDWMSJ~Hc~_13rVUPhF0MWYsoxIDdgPw9J3 zyr_`goDyLLH63bAA6`=?$s>Xm2QEQmRKV8R{nFNbL5?4>_NHm(?f;Zr5(&_VVa~K{ zk8KVQUex4s#d$h;J^yJ-pFuSE9nBky^cL>Bs5hYjjZ9=AIZuMnnR&U|@S4Q4Drw9| zX(j0rbmc_$@*sviOnTB!jEf)P;^n_}RrqcaFyE_>whv)0RJ60E=YuQRTx2)Dl;VBW z4rh3MTDR=ruR7~5SPrjYW#5!p(zM-4KrP^c{0OIfAgjGR zc#9GMuEjH=BZ4Y_iH#bR&<;J!D0Yb*8xY$LU6Av8@-t`>`(Kk#+Y|tB(ZAxW8u2KZ zpqM=nhkIo~0J{*kH;LJJ1r{v-8IDyUNGGb>W}{~|b3A_t8i{GlSb z9ojVae@OffRIKM^6?Q-hDC+ORT=7AAluxIa|SCAc-B zw*QX$_fUb8c*CS?TPKEo7N3OnJV_^!x{J@*1Gul2uQu^QTT=H&1WErC>crTRmL~Vk zP2W}woh4f*0twBzeTTN?p)s3RhDbpso#f}Uf%T^wmsUNy0WZ<#zQu9Z+|NtyS338D zv)R?#?$tl%g%l3<_DAxz@1r(_^_p)ah@- zZ}Kn9+H$usryL)|VNZ?yFyThj-C&h-B{J;@%*ERzl;01titjKf-rHq;c-!+)8bvr` zeZF$>^>#aJNuWR}+;9r5S-4?TStXh+=r`qS3w6<|{ z;=a<=ADw)cllc9Til@ujP37|>@(6b5aan^qB-9X{8uoUn!9se#%WMC6k;1_k+lDhy zSi8(w^%G9c*L(PJWcP9Q71gRcwSU9GCH>y^safR*lkjtA2f{~w*@3~GJ>O4U*dLf3 zxv?#TJXSRc^g3-BfC6uB4!}IMAZlhe%eH(&yf*Xa8C>fxuS9|4t9x+rAJ~D4UuURN z=u4wUG3K?H=9&j?C=h287{C>bO)DQW=$9?@_H@O`GsfVl`dWvas@myW-)T6a>5lAw zi;w#Gu_?F8)TJ*8GqZo2FD&pUMYLbSnsj=Tkje28d-|2{>Uj>@VxZJlB95aku)L4% zii4jRhL9&WrQo)59sIVqnHB-MvRw{s+uYr|e$t+M` z_B#$Sk9PLOiMf?NBZTq_>5W$Jw9HNA@g6?XNAunYYZ( zQ$x_6uV5(4=^iaYPzIZA%_&1Sqz}q*Pn?EpLHQ-8PEN>@a${6u*|#ak(vkSz+Eq`p zlv_Uq0;a3xpPn(gy1bSAE;zNH)g&GoNFI;?PgphB^f&P^O&^hLNZ&6VrTOERCx1$t zW#TN3GL>(0+Yb`^b#;{0E;y;dTH_+1{Jw?=8O&+w`1xmS5A=mje$mv3a$y%4fwx;$ zK^{QMq%k{*DsOb`KA3lsD0JL0u0k)!Y%_V)bblTu!D7vd2bnq`fGLl^xh0`njj|bC zyI&7k1E*CEd6AoyPcepJ?b*?ZqlmqnDp^(H+(&b&!8mPTIqYbqnG>*ajEMX5h)vUS zFd%0yRw3i9b{V_NT|s}2T(rddSj|3pyTp%^0A>MIca$a#kxl)_Lxh#o@FU@-+_fwM zo=z&^8(Lwf%gz`+=VD1U9TsM#8NXl7M*m(+i8~tO0I{mVOC5^frtr)AX7Nd3z;$n{ zlH+`Sk=`vE!RY1avdy7f`(=Fh^eBU_O3bfu4Ev-!ycLZ`jlqcc-)rQ2BnL;z2KkPKm#GE+2W5N|IM(s@H^i9XXN@;X86f5HODD5T$dnDt#b-tqDk9SLda#PCN+ zO=*r-${^n2Wv@4_8S>Etzl##^Vom6u($ADQ^19tN{65_`wb``Fxq5aMznG@hmxS=; z?f&&~fdHrC6G{dPPuG$=M~#{hXFh_wDn;36KAxqrnq&0=g^Rlk8##*VpE)5)?4DZ^ zLk|O<`F&~MZs#x*gI6QzcxK{C@)izJ)dyPa)EIg%xZ0YHXIK{oZsyHhdLUON4b{fH zJw2@CD|Gek1ho6-ls~0XRbtDp>CS(5{t;SA`NibW^TDB&?^o(gdCFlDSCV;cBtZjsCeA?F)L%aFx8gcyTNKgRiOEL0te<$2nu z9xk5eund?bIz%^+)7eYq@lbTDC?u{CrfaablI-s)=zqLW1F;Gh+^&>pkFstnx#mZZ z+plJrJPI?b)eDK^sz-L>MvdpOHdT2s3ul?M(jJ*g7%u8f6Q2CafwZ>z)mVlwp6A1isp>UK&H)hm3hlM7DPlvi7& zo1EGV+lsiCWwaf2twvbmDTfG~DPE-e!<3JFP%_ zS+#6O$i-rhc-(oESH&MI#`kM#au}~DxEyR%R*<*s?jPZ5;UdIzlbWCmqt?OxXtFtT zUSe-zrcBu*i|nal0Hc(nM|{*=j4pV9ZR^Z={;X_$_?`kCPfF&KvTG};*Cd0~GAUzK z#iQY3V{y0Wx=Q!PlC>P}&2lN>-C@)nZ`NBGvaKMld5?LaT^?VmIYC`7e?dT(l8ZSu z8(?t_D*mjtBJIPMVYRjq!+3_PlC&$)NV+ouj`VX>&i+j;kRJSy$o(cv;8{opeh2Yu7I*?!h@UVEPpVT-K%`KoDx<7YbfV+GBm zneXFw2gvK~38ser$BvaD-$0+|+#F!SY9b~it&kZFZ*5R5CZ$UrI!DIZ$LB~4`H-|dsfC$`-YqP(V@2M~Ww-hPL;r!414Tw7X(Rv$@HtIUecf^bc@wLOjd z^q`^Cs+-mJs&o1%E=7!j!zfsQG{So9Dx-dqrM7E`bavF)3zJ6_z%gg?^){rd66GK% z0&Cv_57D4H*C)FgiKHc93P|O@XqRnr1NVgWxn;nN(7;zu z**s*h`Q~K2qdcud8^QFT(7A+D1aK}!wktI+M>wyrp_k|j|L zpN1!JKkqE-Z$0sTj?ZR)id_su~~F=-^6l(>wx#Bg^}4x z>O=ROb%@3}hiTx|7s1Zuu4BmMHt7x{4m$tA#b4ATb8BTVgI^YaIfHLqECkt6%l*qb zdSmc(t`6rHl&Kqhhup!{!{<>iMSF;9g5>G+Xs32R?wpAWh&s5AI5YT;R7iQ<%{wVs zdt-~LTkH-aI%%{Htf?jQJnmcn)wKL(r7hVZc2|gRNk91fHmD#MQ?=S*p{dVDjo>?e z@(dxmL#_}olSEA8Yk{y?xB3y=!-S0jFsPjxs}GUXM8gklDZXq-QRQ)a@i-JYfpGi} zkaM^#gmf5mHv$7N-1lmNHk>ndK{W!ns5UZ)0Zg^T0Q-IzW7*Kl(7FS>^^1o{Dj=8% zEO9_p*x^L;`hcH`SKD48a!#|MfD55~k;^uGyQ8KUfN$~wV#AMX2yvL~S}K|H+WZ|4 zyujwgB|hDilX>><5*5tgA8ZXt6R+(OOB!nL!7twXxHx}MQ|5oVv4v4y*$Tmn4OQ)@d}wyX}}Bh`#~E(WeZ zld_L0s9UDr@Tp0>E)(Hs?S)t$fit(((PnoIS90hX+k5>dsJw~?V%&uIP_ z=}Eg443VYCJVEN&qS{fCViRJ@Z#nl=-M1eW=(?MdLvmNwn<~P@NrU#Deenv#Wo}dP z10@L)EDcHz(2Y+jkU%4SVo191?9?FnZJl^yO6*D^zd}5cmESJ;C(g?c?dwOUYpH!| zjUknzOYf@&8O+j9)mBnjWYAkNpVUdK6j7kPz-}5QDYF6Wn6cgFJT|@ zV^#KA=2Yrz(`Du~Z~_nS`0T!6*ga~q6Hbnh%jVdvJf=zl7vzM+E9cd&b)q)%HULTC zZgT)6HoB5fYJn=#NM&D5I-{=y>ubhYOxu;}VztcIO%**}&QNs3%Xsh4IA3Tc=qh+OgtdRIl0 z<9|7{L|uu)F3I~qrDJj%`vO)=$Mz1$Nnm>LUwmG=LvCe1KZ z)|q?Y@$k=p$n@6#rFksje!^ARTmWX`tQ3W9LhKkAp)T)~_9}a(bF(wfq&GXtP0{Q0 zX4l)#=S~P;VYgPkHM~60snS_K~vzE@n-~;7+}&gEYA(M_f%! zGzik2H58Z%p3%ARjuJp)$$2r}n^=Ra@FgMM)I*Gux0OMeBspMMdGKo4ut%^0-FnAQ z+FzCsmDg_sk_@I_{RcFf!A}H(++iDPw&MV>RulhvSgE_z*4TXft;2ppJmDujZsh#s zusiL#uRA@*0@#qkz)Ve9QhcU>3-58u2J2ioQdHWUgh?<*k`LM7{oT>_DcBMWMf40` z$m%nPE2?8tc^6r{cFeN1-tm3|kCtbU+JsEN|7e&-xLi&dL7PP|X2N=YWfC@kS+~8W z&p?$S@6WY@2@wa8Dn{Z6rUEDNE_7fRkqmnl3tK#HS>AL38p08l-7MzU5qkvb2k!2f zuz^Fb9TOD>scLrEMpM>-{4;k37$6u??N>3b448!F43$}j=_1rn%xV7wFy2@U8gOF~ z1}S~i+OJhLxZ&fjWc5s_vHV(OUi;F2(@0*Prma-8m@D(!_p;z`-#sCkvJO5crmW`# zu3Q9v`j#94L4q!T~iR#8r;=Qm7)0RjW!(*}W>@y*aSBt034*duH#}KZLL_E33Os$xy4C{QLA)8fM}e z1-Iw{8&YHaM4QYYtMXYHys+!ib!!PI~ky)$v=~L{%2Cs#2(|#{$)RJm=pTJZ>p~qNH*tk85m>t z{k&1^?>*bm4=N-Zf6u$(o1z}fDcp@_)L+toeR`n*+sXK2oRLySb^)fzgnBZ}%zGze zF!i0Fewfojp7!tgHYB!Cr=wyovq>!v`@lk=J*0#DALGgKrd+J4ivrm^)X5iNPIwk< z*Y1>)S`k)%DB&6=nJmpdP2#oKW5rK?WX1oF!d$|ALKl$?jEO%Ly8cgvml;eq^ zK780*?_zjs6K>BAR>GCh4MDYZU1OMKejI5$yg4|G8ds=_E}q+a*tg7&G`Fr}W+^US z*5~vjfSGjuReRdkD|7lyGKv?r?nWQ9uum|;%m9$TWSz12R5sP`ue2zU?3Y+2`VJBu z>0QDHZ3V>Y7O(%vRjzb3>e1t607vWd4~-3OLy}yH%oOTFgS?4`kr7x$^v>3rpF>K_ z*(k$f*uGVs>_vAcHw&O_si9bmWW|WU7U-uBq0}_yVL+?1Z#I%iubs8fG|t(WF$8VJ z>jk}3EN`uzYM^e^=MCYT*Uhn$yS;4D8G3>#TY-A1nho2e`n(K1=zT_Ezo|d{L5&Wg zhW+$=_dVXav4E6p_y@JC=@^KbpX*QR@01u3$o~iRMQ1;Jdsw!?hIi|S4nz2(%Ca7G zyV)!T27k9-q?!TkO%!d%!Wa?c?x7mUpKAK;HOWl3?fT-mOp2#!`b9c+d(eOHvJ2lg zd(FN3i~QDQ7(}iD`v-Y5D+fjd)Biy}V<@xr5S_BQ=J*$Ruc6F?vc^4vMza#;_g?4k zu!kzGam*bC`kNj8t%COr?B5VF3E#dQj(*I$xnJD*+ED~mT=2x8i5&hj3Q(Ik=(Cg~ zO1HwRKAZ0=*O6Iybm7*tAIo4-wlNE)t#r~Tt3c@D*0-wB*nwhDmp09LQ}9i&)Sld? zSSWd2J$R(woiWxQ{zj~3&WjY4@)(Q~V`-d0__(oA91qI%ah<-G#EQxqxND@6`9qfN zG%U+fVhYN}qHG_Z`tx@cwGVn5_TdXa1M~?Q?H2^HG?+X~EQ7D5cV9@;7QoY}rq@J) zr`F{rP;l4RZEn$`9C8cKgW|<}mT9JI7;>|rMes|LsuSGuvjxRv(cjv)IVxX-OgQIojf~pH_}?ARz=_PASb%=adC}uZ%$iOB1f0tfiev@_XE>rhr}>@8&U^22$a$6>m5kxb&#s*9mh#G#8;DBG zif~l6r<4_Ld`kMP4f{Dwgk7RL;4PVtq1V;(`rBf~zdUN+6^#u14eZKm*7OgPKRGII zItRbaHmv;151%O@<`>Hpzqd+hm9B|DQ=7IqR;ewtbFDAjl*}k>wkoO;!sb zQ9ce99)EPYkr|Z(0qBi#UD)d0&hp6tc*`0!BjmMYQUj(mmZr8eQ^-91ezWHQ?&z)Q zRmDfpSs}*I;JBQp-S~8!7-34!SH&D4W#Z zbJn64CfJX7$|4ZDIhX>Q547vpf(#`96Y~oNH-c&*kx3+BE}`ZTt-LV}iGvt7fum>X zu;I#r&1y+$48v9gs39@ix5b!WK(s&6YzG@N*Bc5DJ8_NZjMu=r$U^>pOhOI&bId}9 zf^S2E(As~axrMq{?Wg_#&+*H{``=|?PSF8hMhVtZca4!!{sb1p{u>)_Uy zb^F&sL#h!<4nc{VfhR=v?f=dU(Wmi}zOzF>4=D z0}z}9`u7F44s?NO0)jJ0yS@Z8BQT| z4<`!Hruq@Q=6#=AzCn)#fqY?c6T-WoyZ(UCk=|ihLA#pSaHM&!8(aVsHcO|~^Q&>x z8dlvW(!wF(JlgeSE)@$dQ;RvBa9Plg!|?X1H70YFXSevLU_UdaUEMzUwDDiGA)oV8 ze|>kb=F=qdg_?z?L{QQHR8mSx|8-89+UbKBmHu!MLSdWN=1 z-dP-l7J8PuG?4y8J{eB7j%)B_%Q?rJP4^Kz2GKS4vC)q2s{CF|p~C^5wF{Z0Yrv4h zo(IiJG&Q?BCr65IzEAA2NHqq*I)RL@%0?rx%)zVoS^IOqcZe%Qs?GziUIm%)DKPs_ zN#IIAiHvP8SUuWLMT*qVarJDw4EY4%>zPE5CW@0itH5%{gTIi{Sg*nNtVk zllrdsqt8$<(2Xr6MA+YF@;p^FArWUB%%0R#qgHYD7rpt*xxQ}F`~dz!pgyJzdq@Sd z3wv;xhUk5@yE z1K8{{=j>)>gZLEpLB$JtfPaT*2!zNF_?ms*5N)bq?B47Y?Ozo3GC z#SXTHes!FO7W%Nw(iMkuZ(}$md(6nzb(@}C#xAUu2tkDNi{$1{D(nSi03xUekmFOS zQ`m?pgt_E2R~WdM4O7*gn!`d}M@mLd&k{pP>jxT~b_QP!t{BZ%mk$nLRJMyL_AS6# zDEAj7$x*MwYa_U?Ub?Xrj%`n`tUF#fdWD1~e-m|1Rl8QEPd<<0d+Qt_b%JW(_W-?H zdTdWN7tAK?FDi;OR2~w1jZ;m8wIHwSth;==t+sm`^w2oX&>nU6{M@~r*sb;7t(waA z{H2V;UfDeSydo?u@>l)rVN3Oni`cp@UwqDOeP+!=vy>WWt=IZHoED&!sB8U2uVrjL z!v&+`zfaCF9ZZ%}CNsGUl5e!<>7|1G!nJoUJ*OQG)!!f6OdxKY6@rIm7T_<53@j!G z%Tzi3`B-KrF-zDAbYaX>+pM0D{PZl%S%GJ~G5nxlKn!{dy``-%M247GT3$xG4y{+D zAW$Y>FdxVDL#vYAJ+ZbiKr)mFx#AE$bHSuMdqJF1=p(A?&arz~brQRSv*_bKtRU6{ zYSH!D2*xsQ4qJBT24FOC5&xiAEW0#V=$fFU8b`4dWqwKZ7rV=&k_-8SJUjWORpx|S z^;*c$t`&6GrTB`?jrdB*)(6@E1Rx>veWN308k76xb53ypac@Buzda2;r0V(X;*(tJ zrRVOm>N$JkR!A1)%?$+IeJ)-)0!A< zer(g}1ud*ftU-UDL_A_sPCO#}7qELzby8r=zkn6LIh#h~ObmiyJzw7dRf^g-c!aT@ zWf|{t4@7)A{1AX8gGC^s*_bkXOIK6De*j1IBLGtpW=gj{Kno+OKw&-OR=d5ld+D8b zK8Pwn3rBL9FRK*Rvx-0q`*dt3(pGa%f<{#kfrq?`2Fy7i*R`cv7Dw0lYkhzpQQofW zUk3y>Fn6z&g_AsA&hg>1S9Je^p-T%b8Ry`O0 zIv02`=d$!XR2Yyw_^)REueEW_e=r`@q8Z&m2GutQ;L@=L>L?quFu>#f5_A-XPW2%V z=X6KIFSz3(C$(3f4WEAM2hsuzzvkBaeqml%A!4>l-4W41-NgtqT8Ge7jPx(M0p_ul zEF#4cYI+E`3MeHyd3V>1C{ts_oN#%jGyp-P?gfe}(MFCT-35$(rM@ZZl>!65I`# zcg^ccEM|Z!GLj83KMuo~SCNaN#AQU5=yF+T9({qjZ(u_`LuwcVXBY%HLOs!2JUtgo zy$*|Y1Y`S9U_BSulPdP0H~#%dV)kq9Ue~bE+=b)%-442Dbln#_{_)T}$U?I5TkhFg zE$0txP($$1ZfMc`o%{_;a<{hX^3*)~^`gJu^-D%Okn(I`{WpMv!f$}1us;Co@7w}* zp@!PvhEBSPqL((^`6@Ex?c2=*BOxsKvcm9#wpuQ34^apJA5%O0c3VbO{dNcXa1rbY zyip;0E`)j-{s+bw{$2=KQ30gnGpr-dBay??pJMj@c`gTU)* z2fBGcVn!Im${=bAz)Hs_CP`5+=GqsYp0#$wkEj%KeM&BL+sMHxqx(>~CHkqz^ZaY! zgrX9juTxqsUDS)>d4#+p=VlZz6_eEGWUa-8hcl|PwBM#}eW+f@vk9@>fH|m}b#;Os zM-D7f@!>od#=uoOtO^t@X*m_jF+t^Rme9uNd zc2hMfD}tPuwD&k`4%4Vriesw@MvsA;q?tNdVS{0ORWnt7LBzx?>v+{E4!P~5zApH{gZ)B>(ZcNL zUC|Qy*CE5LO#iSR5_VkhXQnAbs2r@Io?$XBkjtLKal_xcfX32a@gb9}xLQ&Q?~3@} z4Qeepr7Ut1!YbdS^!)f26$^+8H}W?XOT>WjR_zqG3CJefR}U6qPaEUmZ)%VFGFeGj z{Nh)d@7qN=YS~QHlaC*hQ~h*l=*L`KC*ScI7wR_{k$TmXeV|k?Vx_<8=tf#fP;A1o zIM7TL`Grn@OhaEkcxp3VHOz)T4Qh{cHSgYjQP9|4+MVG%z|hzX)JOnI^09}ImkOJ; zn2ig{!Z7}WP2JcxHDj~Oii#zYjG@sjpWd(}(t0*$4MaN0 z^Bt>)C56@09ZFCMVMQ1Of3F^!w97Nd6v`>RDB5h47bqO!)~d{DE(J{4+&cHJeQ(p8 zi%fFjP81ag);m~iQ<9j}-P0KQMimqU9j7IM7CM+Cesf@xK0xw_HLl9_+QY?$__ddK z2ETF44l^9S3?H|6$}z}|nJRV~C3f2TgLVKs6b2j>s%&giiG>$bL$289JjhpI|aLgL$PjT!)btASpjJ5Qww#{f8;7yvZN zmneQeVno8)^4Wl+yN0CW*la5YD3V6v`jXY2)w`C&w&lK4rLmEtDiKi>#VOf(?BqtD zRI?R>_QifD$OUP#VU?+vTTrZwN7s!{ho*W6tNOW9Mt(D=cPX2RAdJebQ9O7J$t*`K z7lm9DIshR}1e*DrDkIYoB!W&A*8|)_82U>6I0%6H_{Lsfju>-}7-A;=BMcUV zwGGNraUzSx@FFsnBe!a2SYQr>D70Qq09KsKw(k6qc5vz$Y}0+^0zB47*X-h42=8NF z(O`X%VC*K0J0!ZL$^P`(VK<1MEO%iaQ79Ve7TZ(m6c0nz<~lUl5T2qI5O6& z%aXtasn|0e=KH0fccW?F=N1L`NSVvhVr*e3R&j)Rt`DLds^EpNp)cIzNi8#hc@NrHMr++6<vdy5g`AGDS)uAPF$+_@}sJla(I$r*Ie8KP+AlzoGo|+`gelz$`B( z7?@Kv3>e-&&+ThiI)9clH#akJ{__aGk6uc?RNcwb16JeFfI?O>80pBE&m=m;p#IqI zMe6OnPBURqWB(MP&w&?$bAY(Mnj80q1l6W~``k@vB!>`p_-q4%%8ukIe5Pd=^d zm0ZVnoA2JZ?)U9lflC5a3)!2#S7!#h0P4-PliP@!-5rm5{m!@jslC(mw}-R0$Jb-G zwwLUwv30%6r<>EZ>S~m;v+P^Y(f*B&RY3tp1MIf0jtZit^!5GOR{%o^I>ni2oe#FgL#QIBVYYLKqHFHGB)td`Upv>i+m5=4_Z8TT) zn2Y1(toc*j61A_LFm=}w(8KG6%ks*l*1$(su=>`w$o3({9O&!&)}-g_X0^LI=2Ou1 zz|`u02K4n1GH5UTcI%#B{KorcJm!=zlpT~F(wwsA>D$ubwz}u!*q45DYI);%!o9o@ zpP+CcMMunYRbyZflC_c(vO2K%!?z0Qa_x2Z;sf*45P!9u1J4$2TtnCxv%4KB;L4j? z>)a>lIL+n&sD8ZK1>go$FD|HCRlc;mI$F|e!APv|MJe6RxLR>vZChTX$>yYloB^NP zH*9c-vlI9~dOkBr{&?|yTU^(x6A-i`>fI|ISiJ(K5b+YMzSap6@)Pk93%t2J^KVq# zwY61mGP+tp~>`KrF^O!lVfs8`0b*)*?Alr@Fe%j zq+jnA$DK+<`|fDF^=^dhcDn_K5{E(frNQIA&ilDWLB739SW^M{^=ZhUseFPJkEi3uh_bfSParX_Mc>k?*AY@|I)7Lxa6RhAF zQNA!ya`n%=4Ba~Yg1%>`$MS<~>bA&QaeP4eF(V-grYte?>s$T$c5D8qtRN%K&nh48 zibgKVhJ6-%9KaBz)eyOrg~VL6!rbK7l1z9dew6{&+w>4}<$Bu|m8|S_k?1oEZn)j2 zWu%;Yplcv;XZCt`Flgv-3p9ia8e+e_5%$s~c9kAJBg>}8&c2-%z62OSmccyf6d(l3k4=5`~FCMW@R!+Y)(&mR=O==FvW zdoVmwLiU*bD4w@70ObD2ZDFuSsxp9B$3uM66sp?LpA;PEiSthBjaC5+snjMQBTV&0 zCPvu{gjE|;5PD}(zo*CFc8?FMLu=j$U8BQdYBIRr-_f*dn&O^HKPhguI8`%a;67k> zy(f~gTQP{VuVgf7<;~U!Ix|N>2@@ZMG@GB->`pwYV=xRi_rYe7u2)3FrO>Q}t{7ol zf75>LT*-uQzHd2WYj3{AUXMpcGiG~xYFb`QFbxs=cJI((P~|qpFOy01>EA zQ;48RzN7?h$5Vu$)8-L@hL-4%&{u}4-0e|ycBh>&sr$e>@3PT5l{kDc|?N~1Jh z8T}NzN4lp&^;|8J&<+Olp7UiCW^5k2fgCz!#8jV}qBBh1LAo}qe{dYSlkw9DAYk<> zkC`f;*e)y)2E2>3-ZXqWcs>o;+shp7y~Bvaml1X!18%tTxIUipwR*oDSbsmVzU8bO z+T}(pb{j*%dA)akfID&Y`uVb!*@-2P*|zcYlc@@}sm(MztBUB|POGrX?lBTk9*f}Hh%a`&blS0aGu)V?AvAoB_3wa zrc(G@*ThcAN7oiBH&c98zuhYgG*|u{`3}%=0)2m7O(UB0T}_KNIgRl+y&(Snvh~bR zB^+K13q`!b{|oEv3@1cx$CGCrcb514L8Pfrb|$90sZds?sn_wGID(;TS{|k5U#_IdGd}o))LRH;IMp}{a0`Xc68v%}n1z_HhAFE? zD*um}?{)?*ouP(yh(1=s?f86;(tvyW_VG#rx*sk}mE1iK zttX+A+}%bfU_SVZ=(dE^XWVHq4{fBqQYjjRC*-}b2gQYNxYm*{;t*8>;%vxR{;4X_ zrDMgnA@5Yi9~9%G$`IPc9nRH-XN2T>R4+I}Fy(G)i`x2J=C9;kcTR+b4sz0;Uv~L2 zJq#3jI(HKUUTcSuTpX9ZAD*9MB!$xVfLGctv%8~p&ke%*Tm-UZOwTRLXWYyLjCLr1 z+c}QZXtj$@g(3H?R-o5I%UYIkT%kjsxLtC5tpJr>E|FAf<&T32-UIdJ%B-oYNt{OL zXDY-aqXvclN7y?+SGH~4!m(}JwktMvY}-af729?ywryJ#t71D9S0xp^UFY0;-#y>| z-uv5bS!ro)r;pzITx;$z$J%oZUZtKX;x=9-_KW)d{kxl1IVblBRBS00>^n1$Z^$PR z7y8EB4419bC6z8dgf5OXoVm8&9L(HdR8iOgpDYMmrg=V%%Kt_c5eaF3gmIog-3KFG zhEaB#imOv)g?{vu4HojSYG1*{x7fK?-N-i#9urvXQfeCdu}E-V_IdJMwx_u3Anj{! ziYv}H)4uy}tDn7m82omTJaGqMF)o%GymSTfJY#Pi^pHk}oEtxFyXn1%1GZK?&)U1m z{9F>-uo<>5bJFv8O5l&j=Ua^oKn(;NPBkX?1!^*7SE`c+YGOLxTuMy2$E zgX^_BB(*@m1pfIdHI|oD?qdMKj{O)V)?i$D_5yIN8vwFQk{PX0~yB-a0jt9@`#Is*FYes!(O(`xeh2k=&16k%& z*SANVWg{=HI^&NwpTXrRuTqn0j@87A_n2G>g}x%SciLSxub5NXo)k=pr_Gdh+3{pF zuUHOj+}}5vxNPS#u~hwZaF072k5Au8hbNqIvs~W%WMI6BQG2Fbc0^Q@^}URU(>`qV zp?pIp{@vHpyrfV}5nF3Hw~-E848%yY4$tMd5m8SlWNSE-Dv_?rcPi_N(q-*WQ= z^HK%$9|zik6qp!(7r!r{HBZ& z8)|`1C`z)X6GGX%-5=N!dJ1Rj?DxNly;IH~@^x0Sed*!f%9&Ccyga-2=^%Rc=`eT% zOXi(=K^e|kWfMGpXCZ5fAmNjIJjF>YGF?J;^n|abg}x2ZobXnR`hSh|=c`vSWcR$szc;7#F#$V#&YTFTJ#T z60oYe=W5D^u*_a2j9k3C8sp9@CLtu6HGkeIXyXss%N_ZsR0V#i$yN=$yij-ha=q~Q z%(QNohkkCjU2s2OwVUc@^`3m*Hs~h}cayc<%V;6Kw)MS(?paCAkEzZwXQ2~-=_So( zo(Cf}YVT+^*{Q{uIwf>+;;lOEH;q+HcO@;!#;ok$oy(BbcE(h;?sw$PeU@~4^S$gW zvDr#rCcU%_S>kHaha;P+p>jtOOvL8p)ipfqaFG@&`|7|&*Ax3Z0njiygKM^#x9^1lt~A4!4b#67Vx?ycg+{J_ zhj(YtPELXyx&4kjMpnG!-Dly9gxF`tT;r=_|M@or@XLfqZhSlMFcT%=|FS0B1p`SoVjC8!N?R`l@+U0CKmfF8zjN-Ru_c2IvN(_Oy zbF{H8Gf?}}_&P3KBlX}qjGa8QuIK(5!7^Xl`vVikY^WqqP7F@lzF6fFiJ>Uf$u?l1 zl@(^SbhVn#ZHOlduDWx4d3RGw00H7!!P*Z!%ttlxxETL>X36!-D!tD}QQtM2Zp#Og;3!PJNNn}&*%4nOZsNO)+Z3gld^W;u3Go3( zXpI$V=YBh0_QMDzr>gUCmD=0Z;sbJvrQY2(V~_V(=)oP?b`voD0kxVB_}I*z=>KT} z(C#bm;?B7m>Iw7_L(;Zi`b%n>ljC1ff0nLx^TiCwa2Vg&Fn`9ljx8Ay-rbIY*vz)$ zS_E`*Upwt9fIm4nxhwrX+4dZ;6a4xA&kn#5eV_Mv(}lC08w(jc(B}ZYoqHWlIoHjR zY&8#Awvc;Oq0s+YLE!6)!32{w0~vi2ylX4+PpE4|Ub7Zuxd#6F7@ff$P^gVjlFe*` z`*WU{?)r@SD&Rg8{Ht&H_eKWHy{5Sn?ld&Ab-;W{}2I-8&dOC2`COD zxY)98m3)8h;|fiqW4e#+y%BJ|i-CHxa_VXtttceM<~RlTMDY~Xwo=@t(XT6rOWWN- z)y?@_yvnDd!=1yC?L8mbW>L}>#%pv+V6~wO&Y}YqR@tVJsVHz!qfCJw-j>!=eXF*! zzc`y9zTc>d>@~Sp!+BPNd6PC<1Ls%+>!=_Y-WG?jg?Iu|X5hA0qkUFmjD*7n{rzbL zBqlAe;Jik?RBG1S7NcW+ug09&R=~C6*8@8RbLZuf*mrkNTLo`h;NB_KkwIPCLEU6U znOgEa&mr2G3T%B(TMcj94DhgTfvr89AVuaz<=(cb>)TD+coLPLJ#E*g@DzucZpj*P zt+&m~h#JR-bZsBHS_HQ5G97^w_i83AwN?{_diD^mmZF)uIq7>ir$NO|gg3VF0_NFR z)OuPb4f_u#3!&M`+%?&lTbdrw=uCB|b` zJDFR2b;QdGm$UvV*AdHo@y2BD^Rr&(EemP;_wV!(f36K;3s{te(R5h-oGXp!%ZXDr zhEE?U2IH?sLk@Yo1l2^EBc#@w#^)-2rv>Y()S`SKTK$Kg&BON*9vp`^}EzcMZTJV))Ru@ z_fzc*mZbWAJqMh*r!41^Tv;-Uxl@Z(@;7ul>O(=KBQ2FpGWsSw+y8vLqGeH`d(2if z7O%2f1Ar31yfXrfF_eZ7!XA*%h~4@}TZ&alK|sXVS%xtd=MWEQI@cywYi5Y904yLd zOQNoLM=Tlv-820l!VW^??%^&q(jtt0w#8a;F%M?ET;$i(ONF(j7_rj0^iP{=?C>zx_T)FMFo=MWHBA337L zxXrNLCWx;95&s<$1@zw`FV-x9A>A+k3d#2rw$xzxuaG%VC}hGB{YVP^UsWbcNWolf zXl*fZHfSGXQADCuGnmDVW-&$)9E_pJ#f@&sgOS#{(%k68L5!@R!t%Y(rIdMqYAeee zuB|?cLI~$$Wi8T#H-H`5hrxij{1&O@7vH@NgK2#EBnmMa0`n`nXKLChamD<&P5L)l zlWwtB1xjE$=)g$uB8Vsi4C-0|tkW#c7QMz*mO3683VVU;`T`xxU7bA)s+$?yeJIRj z=3vGE;~x(g{LJP+eO8kIp)eo_GyN#4ibFg(;>po9)!yevaURs-AP_bMys<7g^upT~ z5g;UO#D|??5ain^12Cju=wc8CEZMViHX8A8enH}Ntbr>fXpykZ%*m4S`Cc755Q9+S zO)0my!Vw^(VEi1Q*SJMKBbEA1leVZZnR6X>)|fcYt6U*4d~Bh-wy0X{p{&8W83Qn= zTCd~z;7_%bxp1f;I9Y+Di5>32I)Lt zoDcyuiJuIIIGLRsi9V^D{QF6Gl4ua*I24pl;KxwlP(a=QD)Bo#((kd6q4e2}8QsC~ z`?L+8CPf!Mj_ziT-gb_jZt2PJP&t_L``sJEKtAFhhMDB}m}o5ODPu90uQ5xs<85S- zi}_K=#GS?j5|r=;Pc*)M_ui-m{@;h&B!SPeb|h@cOW zOw<5JP?Rla^qI-)cc}=ncE4nwio5-^qiUNYZZEjw8yZxqTwx<<5-)el`lyf|*0TV&#pWy0tx(z~B^PcMIj~^{Rd3e5!dcFnn z=PAmb%eANCr!1A$nE@=OG}&kx_UPA>?_SIq2QR``cOq7qg(&e1&2+RZvJ9+`$Cg=<2GxvZ@*@OMBQ)_A`j)iqU-p|nr}%?z<>E4P30|+X z&sw3C<-KENYH1)J6vwLBV9)ifg-0V*zWK{n5Dc1pVFg0;N~bd=jrI_|v>pT(+(Wi; z^EbV{5gemOtt^=3NwY*anp~eRK#KWD z_f83|BP@<1a|Z<`C=Goz!6`Q1%salbN%Oqje_B$GSty_}3V~*uuTyS?IK(;N?^1 z(7?I#a#UV9qQx*iqnNRZOG8)#H(_|Sr4!zEFs9FXrLr1^;oXLq*fp=PFanqiu?|U< z*Gt`Q8zC{R&*kc}_s9Eo?96BJmQM*_c}H}R{)a6o?zmBUHTy z_U(u%uqoP5^8=6R*a)uuTJ0!A+(APmPaRIfoH1Cz4O-C*V&jVeURCfN$F$56n3_u4 zgQ2C$+oG5?n~nP@N(SGaM7%`2@Imot>c|%Nt}Uk|(NeI5twQc3od;3Y*N5+dsN>!B-#XqWHXGT<{vRaV3$=6nM;>34 z(o_t-{AC4t#vd!5RQ?U|R1UNP{r_RbsPSRw$RX58cw_RNjW31Q zZ(h5&wX(r>%4Yq;D5my!XC5ja_-wPbQn5rDZ#b@DQtRUh7l0q()&_isyfFELS{!(I$08=)0I!A`o$h@gg{N0+!>Ixpk|RX`zEE4ERn_Y;ouUIWg5b z8CN)j{=-$-a;%`b3A_Qy1W_iI*tynJ8j@7oB^FEqC`~tL%$jopY4yL zW{@i4B8OJ3B9(DC)gHGw(iN88zJ}5#&9ad!tT0d$MCcG5G+Q3JVcrzXeUcU7YSIb- z_3cC(Zp#m|2~ODyk?K8hE3a>O1!M*qbCb2voF-yWz~Hf1MvtaTGg!82vMeT*=}3IT zcww?e3d@rY(VR2L;KO)GFf9}-PD@4lxA!$*Z zCP&mY`KkKYw!>ivCWym$jQ!_h<=KoY?RP-y5FK!936`6-II0tQG01hcgqySVuLO8h2rrZz~}^ zf|Z|;pIf9{^+yIPnQFMcFg$Gfj%lQ(xWQ@{b&AK5K3^uSdrJ7eT7=a&7bOWI{XEP< zSn$tDw%z>NHunxrTQ6Ljl`q95t&NV+%;JL!%SiAi*=ttA;AK@~qZUI1W?%_ols+mC z3H^m6A}K8}QRRJK(WOnGgv=}4@i)nsWTA8l@G`(R7cLE%)Bb4l@k%v zSbcC62G_EN;Xk zF)@#E$_o?KSYs>?GG{*x*yTt4nZM{XR>dY%C8E4(@}t(Lq{~fqznvr}P0KkvlF^7^ zrcO^NNl*r(sVPr<#ZafHr;)}qXAGh{pEXCU%osq%RaeU}&5x2)8S%miYvTP0(G*Ar zoC(}3wQ^%WDPqz#HU!gIFc;DCVE@U~`YzR(gH#~()TU)pi&a@^R8^%%{)t))`%hF7 zq%cb2rFyCiM74iepjQvHAQ2wxj|DSbQOVCF4{Oo8<=&_%-kQoIIZItpbWrBo>S_(t zKWhs+CFVb4QvSvF0P+v=R#()WD}vg*bR`ddXi>yl7_@EBx-cfEU=p8t^*8bKvM7wq zQ(?@e^!Y=_Y^Y%839?g7AZ1`Jcv{BX6G%C^Q0jkBCIkB?WuA;#3p<06EF&%@iP(4w zMND2n%Yt7~<_mo6;&CRXyi8KWIayfL&9C-T^_uT1l;w2(2P)la&0ZpClgk1)me4L& z(u_7PG0KOK^M}Nij)-OFha$0`xYt7Wi#L>Yg&nXQD3mq&GYg}QvF7lkH#ZH7Z`wn# zQ82hiZEN56X#>i>+)N{X+`52j63UIcYamX^f?cCu=A~lj&4YlF;1dhUsnF4%vb|=W z5ll|Iq1cctrBE-$QV->G_@q>-kuP+rxtIq&nK#nHb1To$BBulsLlxbb(zUQQ-^jT}t$(V^ZIiVzoBjCZP za4gMSyrSXSTI9Vu<((0r@-=Hg5`kCo4$nu#oe`T0*;Ju77k6to;s$#wqUUVaG}rSQ zktu>yF4{Vx&MZ@4ux^RYI!Mf%@2QpX#^%$|awpSrLTF-NfvBi)Wluvnu~*dQqt9pv zo7RGxUs$2t7fxo4j0`D)hh#q>LadDpsQ`bJvSJO@ z6@*`GdO+Aly?i4#uPK6$Xm;Q6^;D`{tI^>nK8KvcpF4E%HQi% zpi-86Fb7EAb>%DXU-7thG5&ZVKSr~UoR9IHlwf#(g}@2u*?&nP5BxO*^S5KduLV`N z(9~HY&nccKp?n|e5Pv&{BU0OK#Ff`1#6);|UrrYbwNi2j# zK-ns%bssEnQmFhPqyN<68~7_Y{y$3Qe~AH$UNZSSvo}D&LSnB2FfN$!f0l54U;K#F zOHhsfj0Ugm>>oL|(D+Wk(bz{WH3iC1f_p8Bb}{x4Ot)Y40$H-ZUJ&g71Iu_G~?WGvAP00bF$5Yhx|jeTMgeEW)Vv*Qrjt$ zzVR8hWFl~0QI#e=c-xhCBtrIEk+6l3Q$Z2f5;jG#&Jz8;Y4+4xNYF{UF&}@ZBb2bW zYC?ts1;xPmt^#j^xX1G3qMR=rBnVj+s17<*Zdl*XVuK^8-S_K3WxIY~9!-K-sg(6ycx$)6F@yMu8}zb=~e*-wOdk z;{sfXJxrMI!jZZL8>YTT?s0rxvnKkjI+lC?e+K&mDC51DAG8izv+9OZO(?8gj?dO4dmJ0=2~hx7nSy)#vdsK( z-ak?h{THW|A(8$AlsjOxA1|i?!87yblC`xroDKDA1Qe-X)`7?XL|YIZv~IN|!OT5Q zI?v$-u#1=jcxIfkvfZ=1WYhbB#1P6lnE7wrE@Pq1>A`Z2{di{*FJ_@HwV==uoU*zu zINAasd1mzSq>bFygQteP;c zW|#>HxJ_CLZPqRW&>YT~$Zz`Io7cFyvAQm(wiyh-F5}l#7fY$cJ$iJIal7c4!sQ3i z4e6}CJrFPc_(sIP0!IKKU7BN-e5wx^#1IH7@r7ED<}6fiJPI+h_naykq1F~@nY2gX z;?Av%XOQ!xMXE6tvxM5w+}WFj#x2TZx0b&mgzIK)ChVVCiXF)kwSN8nv?l~GIQlJ) zOu^&><4cqEe&9<2SK`+rPs{xC^~lBfj)~=?#@GH;14AP5e9}b1Ii#^4M=fbE^pmO# z++(jxjp``{*_9j(CE1J^{aL04+9+TeKn>Lr;;13U7^q{Cr?WrZ^PG`8kL?|4jl{5n zq>ZyMDCjS^S!l8Vb)26$E>fGT_)P~S!eN;rWBLSjmVLb_dm1=NOK!$P91SBJ6&H8w zWx9weng3Y`l&~8;^*l`m#3h6{LzsE6 z3)*PYZOoe&%|&8C#Z^D+46wJrA*V+G=ScAde1R zzN;M-vlNGZdG~FXI4VY*7U4|{*5ikS{$s@v#REC_ZiRqVybBvLaE||wCYywfl~htu zX^V7yCFd6Ws7LhoL?Qs!VnIKi$Z zCWz3WWAo|p0=Ykf_f>n=QSl+g?!M0Ha0Cq|U_CwG?_qHUaj`(h3M0AH*fHCKh_^|y z24mFC9!|WU3G?oyokndf=v2WMXR8(n~<|w7ChPbG-&+!};E9sC+;k|C& zF{RFv8(y)kzLW#gMM-2}y2$1Y!-0HMY&a={G3qzHy?Wo0pPvImPrVtP^l1reQbscc z-STpF^b!WQ35FmgdCFQfHThqhxY)g$19)kuT@q}mi=^N|=D*GlArD35vd50p+bIDo zikvVSAemOkMR-}ocxh>Cb%2zXv_k);BrZ;Xq6rXp!^J%kFa81xJb2Mizo`KBX`aZq zG$;BZfoF*p@18-*WkIVFptCRs;(eUB9`;ic8p%IdV5KGlojDT!k25Z4&;{7_t_6)a zX^4|D1k;x6tuBM!6g1TKwA4a19>4KA4xJ)9#gi0r;37jb$O5NqWGYlm*Thr1_}ma~ zg-a9pUDvZev42_hb@=*O+cS*ds8^;?(--8b*Wyg+ekHM0gk{&6&P#$yr7dW?oI*Wx zR{0t53wVp9Bez|RlHT2q)9+XO&p^F*XcgmvoKS>CIoc|mpfoHd2*xW@bzT(JzhC;2 zBJ!Lle{NwWr6jhhEV4vM-X?q`W>J>8w-h!WrW7h+j9c%CCM*hKU4!yM{`Fcm$2e32 z=Z)PD`Pyg*YGhBtm9V%58_crnUu-d9t--0R(kdS24#x9H$ z{zij7VZDdza`-^yia$;}UXi4nph|eS6kq5x+*7b73@FkTKv)Muy8nxS*KX5c3K^`x zzX(trLGfbZPB?Sq`hZC&%2SkuT8<|!W-o}5l#!IlN{Rs7Lmm&DRFY)ETMD#908++! zN#X&|(lbemooZd$F0zT1*oVzdq~q4a_g{l@qB?L*KeL#|QQS{i{zarS7Zp9f)2E8u@6W+nvAwRTbR5lajz0-1S_`c^s%2G?Kd zV$`)2b7}mA`>_zFIBlI2&j6i#xWyklmar0jDqG^p8{idl;@^q^XC)~zx&8R?*g@P+ zq1>|6bM?8rP|42%CYJM1pE=smYs};Sd{bC}9r3jxwRd5L!{LbAvREvAE*fMFp4(3~a#__X?YJtjM|rfQa_I;oK%iA(`a%WO}ye!RC{`YZ*bwP}1Vely_Bg#Kb+ zfDG|W+*bQ=Esu{$(J)Y=bwRUJ`%nO32=_y;Ay5KX1_8s;PM@WjBBQ;-4U_<$&C!>L z(J3>8#{AJavnRnxntj^HNLbd=)H+jSQou5JlPUsBa??|$MC&{d$qWU0C~4MG%XI__ ztKv2hM$1fpzkngSSXuxAOS>I~p^=$Eg>NGGih=EBsGcI5;6H?l`Exu~pSsAW^+3K@ zB-%fuKK&$<+M_W^_cZ!1b+|!))QO?|Z*_JEKy^GYJppg$nEwGYJA83XbSwKC$N>u% z`hGn|q2u4A*ck5a{F8HEKmJF5z9Jz>!#;2jkQ3Pd>SpC??&fCgVENZRs}_wdm+w3n zy*p(_?Ryrmtv&gu*#Jqd{*4OJg zJf_H;gXocum}(*j#~d^dB2G(B$8|ryT4wiZ%)yct5ye7lB*+(l`=#^!>Ohdwh|wk! z)EkBB=*YLdMWZA+lD4fsvLgWwBFMIax8YX>H#*?KwPv*BFiJ~DN%G1V4N`>da&!E- zeueBxFNT+~g~P=@SB7rYR!8*b0pkO&vu<(;gDuh^7b-O#&M`^ox{7%>_q$;aY5OC< z;|FHL!Suz|&~A*&PZiBNtdrssgp@Q&oM7zXOvQvKL8sT?qSZBQoG$tX=g?#0xty12 zM1JZ-EbshKsu!mmNan?^*n}($gk!O33(we?7b;5P%SA$w6G)tFW&RuNLv;5-{Mi5vPWCr3iCs!80U+d^IaumA6gRzZ6>-6 zC_mCX0vVRqhF1m?2nB4`l-Gn77FO_dq!3fLD!3BfZiSH=TcxD8<6!x)LQESR%lncr z+rexUX8Ym`6wx-G03?yBHP(=dwG$nmSjOu|bNqtwmA6($RUXz5`kBpc48TbA4risK z%YuUtA}%tY^MW|B(^xAt)NCt$h=(RWR}D~&twz%~vc2C($X=)i?{a;eDJ5(m_)b2+ z0T?`_NP?JfbB2Ru4%YVdfs3q7I$OTOV2e$}f|#q7V!3g8&qxkP1GX9n}z6U+d$Gimx7?-zz@igEXZ@LxbXySXWqq`xEKsRaE8YL;7mE` zeL`uzi^6LOad)+#FXZmo0f^pHVh{hay^eq$Uc(og@co61yCdY`X36)t zIuuj6(%iQJ_C!pQTNj^?J=zenw`xYJA(D^5roMb63t6SpM7fLqp>cdF?xECx>&m<# zeWd4dVT#E|d*3`V+1~k;v-Z+5N6g>tuEk9Ly5Oa1%pb*lYE$8-f_;hM#1<6SmBlt1 z4G z=2`DonKy98gV+jq>9bnh0sZIp%2S;qRS;kcs#f67pH8cPwV?WJZld~M7kup8fXxsK z0?3?C@8DsQ>Va7dt7sA%4q;b{NGq}v0VQh-a5L1*%TIP~E}X6hD$+C3ifwxkPx)zZ_ zWt^Fuk8j;9WITmFQ3g})9y@iMg)#Tfyn81$OL>sy2@@b{vTs&#?q*mSKTW~a?g3!+ zoN{tlhb(XzGx#Z4#ZGP9hB`h6NFn65_oKTzBO*eVkYd@spKRFQLH^UR-@N&*roh&m zzu`bY(Ejb11+WvXnz4!9U;R0^(gqy9vk;8__!32vo+E3Q+=78hHyYMFg@o?|f=*D6 zwUKxw+_CWc8^2vV%T>Kh*Moh6_Z9s#1!xcquA7)NI4SSP?6b+o!yBPa+h>MGDseix z_8mGvCk+{LFhY~s7ITv%sPt}H0>H`9l2Fh@V-9P?wfA< zm@%+Jl~g8!u{dxO^<3#LhinW&RJZ0NS}~l2a}np6(ID-OuJ~RN(J*3o37TZmID33O zJE;_GaY0qAvCEV8-VqyWzM)llSEDWjNH2H(nN8_A?sF`P!l#blL(u2m0wqnm5n^MJgXu5i>0 zS}JSM4-Dl!3)XcQEk#hxV=Js~GqdSIN4S6MPIxv5}+piaR~Y1_P%V4+3-Udo9k&Y$=Z{f4!e^XeIake40$MFJJHzPbP!Q^4rJ9l7WM-I zTzcrLY7J%d%QgUlR~)p#G=cawKl){mCukj#Ru5Np?z+p2n_Pe1hLc zR`7PgUXUo3q^??M_ib0}^xNU;V6eSlq}ylf`dg3SQ1xh2+Zn@2`^3Qyr#ev0i7@UG zW95*7p_5j~OKdte8N5(_W8D;le_z>}huMHZz$kIQ0t0b~ODC-KtKuRZ_XWN>y22;1MVfjA%c2eYEGsp@j5TNzynNJV%363>A~s(Nk#@L&;iRRUnfsFzt$+;#=tBE11j5=TaVx!Fo)0$C zX9udJm<>L?94#M=)e*hvLG;1CIitNF|7L#od!hYx@%-8Gt8WX)cyj-a|I1~YVV_T7> z28}s#nQ?oXO;HJtvgs9qu~39kRx*qSf?+SxUrgCHbX!R+&LU>^i4|pH8T~$?2^$Fu z6lTfS?)s;YBi_b43PFPVK5VKaYo&!+f|V!r-f3~6@B0y*@rhcEqFY0zs{}DN7K3oE zn94n2@)IzH!yc8S7T($CpVx#m`tHrTg*&U< zXq!>-|bRT8qkAD$?hEHW$`((|jKcaxCA9TH(fW+Yb(IZP_m8VlW!Yw~sv} zl=6E7>mb&wK}~AdX|)?zn76rv9Q&E*@Y~(BunfG$PAARwDW?{F0V*b1VSFosM=!ON z=@zlHlIwhuvZ_VhdRb>lC-tX#^yvi3o)w2^D~qI;30;djhbdi`8yU)mdoDN&1$rxZ ziTk-SA7924xVHOyzgb|#ESoy>%`sS--w(%f*F8~bFzjz|0Q$adakurDh$BUxf&9C9 zr%B1GM*S6}q?g&6G>_owreioNCA)bSxDuKS3N!D;mJ1rNR8*t1FKi+cI$kWb^L`B4nj1FEU8 zb(W5@Oi?_k6ne1J9y8CNGb zpDRfK@z48X;d_+Oi%=2hoLUqsRZA&t_jXT6QbllVx`_#l13gx(B?yfWFiWQj#M7Dx z*tc;foaP|(%8{UGJIyp7sum7BDduBq%D#1f4MH3x)EA~&C?4ah8pf|%l%aL)aM@-q zA(Q*$^4>eF1(LZ$k-5vHn>i%jC8#~(o%+FDvc6$^_o2@F%Eoln0p3uP7 zMV&~i5@uT?O3*vyq_=wuRl#xDwh2Fey4w3ASG9{!#m|?QR;C7=Iz2dZom;N?JEW4d zIycixvYdk!zg!o68nEdwv$~BG7a_y#U@3E~nP5a=P|qMqn+oC8Vlw^e-gs?dIhWn} zzVO^f+C{BOAW432Y*&m!1iRhfoYfsn*l8Ou&P>l!?+=K>)U=|FC&%J|p`xC7B z5LOrw(jc_9%d+}}o&l70uXKqh7yDg_%$)z2*y`heV z4Dcs%g=YHQcA~N9wwTaTOr3G4s`b0&{KjF)e_#Q3mAbsDb3135D~n#ZF3hp5U!Tfl zXmHr?>ucvJDz`B9Iir#^175CtL$_-WBWt!tB0iA1qb?{OjD87hv-)r}mQ6zcx=$nf z^*>f=33K6*w!oT9Brv=C&zi%*-QL991z45&likf|Z8_}o;PmX22`5VGwL~U!KyWk{ z3Tx=cN|LwSgHYkrpXZIUvTR<c#>j8eLr(jTYZ` z>f5#N(wQ-K{IT2-gAZx@S~n?mhxXGIGn(`S*knbQ|8_oC4S;t_ID)1>S~j|m` zVTxQ`iUB*{9x?-bI0;~xY5g;UX(s6FEFr!@##u$dIm^I0t}@W`e);t@Q_PF`c?+;1 z1i3>c#kCoC71^VqSBd_Lq`5bLwzA+cBH(CLh=dX=rD!_}sfVJTsM1}QCw*biLftN1 z643D4S<=J(S#hf2$c&a@L=JO9gsrvkl08GGHExbE@fZAe(mNMvrOYC1Dw^zXixdjd zxH;banTlVy;}dd`j5t%GE2!wqG7;_=mPN^R6quA_XelrU;9rzS1Oqp0-s^xnaIGls z&knQ4;Z%MzjIv497*||`(2t0m^6>2lT9}kl&WTHCZP}CPUc5VciDZ7g-B`a{_bfbN z9)Y52u#6q~`WwLGruQKhef7J=in7NVDtEDI$N=D-S>N}^AE*2Q>;%rGkkX~`rN-^dZDNcdyZ?Ip^lX~E>4BBd_V2r zcHOq9TfV~7BFWc=#p>tsCij1t{=J52=&9+uL->X7q%zLqqZeL55&<874+$Dn$w2R? zr~a*5%iW$3pFRV7a_+l>_kmqUU46c(rBN*|)>6L!`(-WE)AiUB>hWs-^>n=mA_L1% zH{M!5f~&1j0WOq{kr?|lZ|FMpN5S?7{6A-`!toW$9!L<75E2j&Y~YLqY~20VGzDCF z0k2O7V{1Dm8z*ziD-ByGbaf2DE+1}M`xz7(Mhxh|F1G$+Mp1e&F6-~5DO|;jb3}tn_I=O zN+F4c-!8Y--+FWIw_Im=eNG$-#|jOH=I+pZU|A5r%{@gPntP`lT56qms$?%Qx!gcb z+d2mKKy1OR5GD(omP~Xy?K)(3;2C0qIL5;`(skjmc?mEBf^GIXozGxcFpw3AH$Upg zXMnRH2o1K6``!-0E<20B-L8qUyt(XZ+#xIazWX`sSzeE?YqD0nlL;Y~8 zDDVa~L8{rJPUAK09=d8&C(n!U_19`u`fYY7B!OoWouCM56z(;Wq@zB&y>VWp9VCF> zF~+=MYx1;Wq;H_DX)(;oxpHYfZ3!_VTWCl;35Sc@Be6s$)kErM&e< zn%meDW`jp!;2~f{2nDxLLZ*zss8fOIxSp6Z?0vNl*Y~?W`J^_Bu#?G>^sAx^wD2I(aOz_6#m?%}`?z=v(SrNO z-oqDrCHJQHJIh~wz0i3*uM;6bLIZijRoGE1Z2?Kjmeh2*f-gFQHi9zk(AcH1`Zw^>Zc-zgo?+k$@wY)oA33qqr} zWnUZ%9zFp-y?;>lRN?=K5ByxWgkP8D4Rz510vbHR@||Ts$qvUh!>n9-nB5H51<^c= z_7wNi&34kNT zPU)9LUw0i?GJBQwm8Y*xY4$%~KD%k3Q_Zb)w@TkhhbXA5ob-Cmx;Iw4!e72oJF4CY zyrC=4_O!E-%s|fO#7S@ELgXSWwPyyd4^}7aIyGwc^h>$sdV@@rL$dlzo5z` zzC`Q3x!PxkLu&dgGk$Z=i)0tx_EfOpx@yCknVivl^E#E|SYFI}+SlQ`(RhC1K86W< zepbF(U&1}lcln}=-4$^!&6#5E3H1KEE7==&uj!*d(;GgQ-wxZh{@BaFEq*CjKB&Rq z=7GyME6yjo@qZ9fW9Kh871^-0PQkD`HRtW78~LI)`OMZO%zN?R(VWmF7ljj+{+G+k zzM!yOy1DZmTQXO-W>Jq|gz{m@nJ?rdx_5qBrSLB?HKOl>Rqd$>S4>3SNO0*KF4TEg zF)tzW4D$>2q$lmYr*$v!#y`2#A3t^C_O!##rf^Psdslf*`#Ik;>xFN(FG)-5m6>Xr z`Dx0W-OJAHslN86=}`5WquVB3GODgD^?mzD^+(lRxr5Q~Kd+zi#3Q))^s8&_a&=EG zZhb9RUGsR^@_BX7Za$w^zp(i9wdrwnskc|J-~030ZR>lL+q0jq>$ki2`Q*LY-}Zms zoIV`?RmQSv&G(A?FZ0jU{J#7BZ+g8&{liD=_s9PF+i(AWQK{hp-YIq&u{T)SR9lp* zqQnoI1vgIo@VKb-aF^K2*wt70 zyas6@BcSD{fkw!nSbh;Wln&Mo@j0>~SVN(AwU~9cJ_AEsC@TX$ib=LSP?L&FDsxi7 z)0OC9fPSDPOn(F8S8Ei_Xva&Un}a@2iZCaw5M~b2BnrBA^obXQ_K;GjcC=|2bQ91g zA`m9Dl|fBFnU+A;k3MRQ&@WjD)sH@gjBW&a{~KY1Py^Q9IJyDo9bJS0uTTuY*6l?% z3%&1%Fzaz6x?>PMNpw@tyIKfSel@x@+qR90ZQHhOCly;2R8p~hc0EsbzuoBTzV=*e z+!$l+sXgVtfr6m{0Rce)Ri|^PS1T6BCj$ckO+Wwvp#oa9MC@#xO>CX@ls)WCoOI~j zZLFJoxhpWuXheFWD zXQe;-;BPeW^?0|CYl(=S>*!>u6%vD%dKYdL&|jEx9E!ygNv=p7;4KbA)U{=Kf0<Mhos#A@ie<>pb33bG^16i+&>Xc-Tb{hL4OJTRE=`RXWgm;v zAPH>GM-haqv%Wwoibf)xB!~>=uGnht;K#woN2=mjQvT=FFx|(+1sR(u75_2B?`$dp z^@^QBu_@y$TpXVcry|5Y_j$ouYh0qTK3$@Ee3Su#LtanU2(L#5;OkgVZ~--s5^vol zhb|j|1xC`eDO6hT$#_M`z3~RGUN5kvm0v{p``=bdw+;m+9*GNH(PVUiTN=$Kz9WYxhwAn zYglJQ-jg5*nvg%To2nA>(`=&-Yf&{`%nQ{Bi|SF^NFbC2mnS0M!8%i_x%kj6*g@Ed zOSiB^lvcO@w04Vl5@>Oj(DxTSjk8BqN|!Ze!sIMMkaR%36OlZgjj4!h&%)?<>6ACu zs=TH@2@;W0(sd`jgP86@8R9f+;w_zTJNSA;M@llS<~d{PvK^%0XFrSoo3TFiQnNXB z)dy;PUW@(mKNA%89ahN#@S4v95`+v$kg=VSyrZ4H6N8bRqsgC_JUd}hc90QC?9p3n zQARcV770pBk{b9lLP`QHV72{$l}*NaGKYP7=b*?&GmpjcAH{J{)w;>vdr3dRlx+x4ib36Lo}*i0Ri~oi6jY)$mOji_&{06W%_}7i%ye zAf$hUyOC({YZlfD}@|N(fvQnitu^u1m;jU7R46iU(_F+V}N& z4nybq&Tt>j)5!DMH1WD3WD40NYp#Mm`CKq2@2~~aTpKZZv@v~5>;zT;UXHFhjI86J zH#FfZjv%<*+ywam=mXGc0!TqU5N-{ixIEcYJ3)rMbr3K|$m^h{kAr6y%_tlg+ zm?f;2^L>NyFXTKk8!b%U1rotCd|LaP1-Pdnn4g$NMZ1E&bNAx*mDv}R8$g&5O=pdS zN)6>|VK>p|alPt7qj_9xpzk7-QR6>Ik}VDF`tOi))dMyi;@Tb>%X#7uzC9p-z3>RH zzF~+`uZuux;>9Jlq@()PPuSi5=HP@&tiAzN2adS;`FfOHhngg4fxFg$OzJZ;&o5R# zSyw5wPhUmES2IFEnu7OgNPt6QM0KHdd@Qn}sUxcujh@SfjqFOc7vkFvd}v1jo@B*` zCI8h`bD!YR9Qz%K{@RA=c=y?b5BAgzg44IH5gI@B9NPMQJZcg@pv`(GHJN`}ZHJU6 zGz(M3%UUizb!bCUpjhr}cULCE8w36obmsFd&gatoZ-W1PF@QDU1}OnuS%mf9KUggNZt;m4 z=7O{0KR)tncl*A1BSMEC0EN<$zjyNxKlt*0Oh#%j==);Fs}r9PVRUQkKW2v~N!BhP ze*}xFyCdIop<0vj<%;34V=Lr3n?^xqQ)~^^d?ec+p%VFTLdTSA`$Ge> z@x8`ri1(y}FW$*`HJ}2F(FJpay}hG@7uX~P9h90?p!u>aUlq}N)>`XJCN{54yL<*U zGLpLIr#*RM?IL;vk-cT~*059vWUL`f8T+B7^TsZ-V~s|x8No#R9EwPPa6z228uw?v z$li^DtLYK=u%5{{th#-N3+{G$D^S{8Ah_Y||A5Cw1;gUyDpW+daM))de2ITba99#O z{l3ZiNllz>XKv&_PidgNY`;f(tsCmz^`)qIE7m+}l<0bq)1$X6)QC1b;Ry<#HJSBpW?=qR z<0<3&5A3xJK`&p4fcgP15dkq;iT6zLa@~p_dTE4ajBN=h4uL{MtS|{>%jLlNJtcRZQU1Hb-*JznD{VtD6GXY=Mt^GAu zuQYo2-uk~wspPw*jf8DVp+JHx9U%oqO3J9DB}_z#=f)H6jg4)`;ERIyc@p>Y|KfpO zVF~6Og#x}5IaLbJWBUOdhF>8@D8GYdM?qZg@&;Y1L>vB{KtEhg&>ZTL2tD`ZQP2@9 z_Op*9YWIhWWA|=Q5L9y(=uiDGhW9=&Ht`m}f7=O_t@LO1w;K~_0H=wdhcHJ<5G@s1 zq?uhigG-^vRTAb4EnxW#&Qq(7$QMT_vRNP;f!*%%QVOM8^)0BxEuwP^*ucqViD#5h z0-=)u{X!yqPZ1ZH1GYBKgJm_u9fwBe8pRo;=96+l=jBBr%MpeAZkZzmzDhB zo;snSQv9rq&@vYl+Q59|FrHp^F%cA(I7e%LyThMu~^f6?3-&Bn5YI6z^{QCi+gCfP? zH@DLO%-JYA%W>C<*B%z_$LHv}a^ zZca5$#`=%G-z9hY8i~QbFGTe;S_xciFbsalRVj&%jRq1@ngt|=z|!xwdKkOe+MaiM zdKjxYN~sH4S2aq12+9hUkWMinOhp$nX7)oKB=5ze&X`h?vpBn+C5m#1*4Xn8aWG{L zH#@ussOwUe`E5Ym&|dltZqrF`%R*)cMSgXV5J1L)OPJOVJ^(7;jeGcMp*zgEm=FMo zqf{S#esVbHY&~%R2I*$oB3WtQ_Ij=q5K`Stn~gA~ORw@YV#Si4#lK`oK`6$QD*oa%hf=RsO6aFXNph4g82~4P2bP-D zE{0Pi^D4*U!p|A3+J+$Ixm7GC%*!7asuQ4DD1Judf=yMmzmMWCYv@jfqiZ=mce*v@ z7XVsqBed%4u=;_F2VYW{WC1oKsGsoZ)p1u3cg{n+7Hm{5tyu11Ka6s!XU|;F+UX`^ zO_GM_(>kyA{rNfuDnDUWkFD5AH2px?^umM^=FrH)S&FBF`g&ojl}|&#r*;{Y{~J_W zwpD*)4}@Lrl;ttWBzXEa@pr|TD60ln@#^#Xo|SF-UJEz8L;9rN`}CtG`FeExQ_Cln z&-;Fu4W{YLif|ePqdfNB4mOE|x zorkKqwZ2+KrZ_^=`1K?e9HtojhcjN5`}Mxw94hY>@_?sMDc-4$Nh?JNV58H@=z;_} zcpI%1cJ$*3>mc>67Y%t!90|?)#Jd8cYwD>G+h5!9T;dOqFpz#%ygKpJA7cUmyK1My&50#(pp_Yy0URtAfH?JR%_!`zZ%STph>qXW-iLz z`Z1FSi76s?ow_}7qXxB>()VCqemSw8y7#8ys=H!6HNdbwrr|bQ3hk{?=7qkX3lZ&L zZEIvy4Ieks)l7`tnIfQ}Y>mGo1wmiclUcoYc-m2ofUuhN#%4b$Eqk5A*=m`GfG>O0 z#E zZQNsOsjMvUqo4ZjLS)F?`1Bxv1ln!9mC#noLWOb z`t}>O$A!c4)6VnV+VhgfYU^9{cZD+D00#G?Yo&8 z{Dg-38o3m;Ji>oJKxhF~GH@;)212Czly3O=INm*$)@FB|1Xd1QC_JA0lGNq&7w@?H z)mS)4^1fo7aJ`GVnSGxiQW>sioAz(h`ydZ2td8I?6F3|zbhRL0%GssDi^3%bM+Jr17CpXcql zIE`i8mhYD#FuOqY8L@i(`Cl6aw*ELM%z*XQBw)RT3s`UcHLd=8x8UC=*MILEBnim{ zF=Bnc{D2tR2jC<_)I4 zoouK9hO{}~RXN<=2^*RI{^jx9{gW}S-#er(jA_#nu1LvYz?+PAG>RUW>SGq@Aj^}! z#l(T>vJsG|Tdzo}2y<~=meL;RO({#H5GPqfhElLq$d_p=PRqObq#;jPXlE}-5P<{! zs8Za0Et(7(`kUW4*YD8Bxps2)ur_h}djX@9xG&z|)7x86sQ32MCN3CgbjB7a!4=oQt2?Lul0}AP z;rHAerg`kSo*x;JAc2aaimFsaLIcl04u(9{p;~sLvdQ~K=7RO*O zd{4X9rRrQd+H@xrhB&d|_!@bFkv)0P@$+Md# zk4{X_Ud+n$d8=|w@3HxU(PGX%=I2a zOIHScoB8nv&3xB#M!hs_T~`dg%NpdRPM_8ZTnJ=;VDL*je!Z688x0M5(qq_o1&DIn z@!LK}oE$xW+4A9>dlwL%<~vv025hR>cyWvS;rsHF`jPt$f5JX=E?i%nxlJBeHa=rX z!9%(O#>(#8^O(%ntK|C|_Y6Fa$-78jM>@}UE>Du%#L5FI7mpr~^-Td$;aI;AhL4`j zp3c^)$>d=sKby`?pB`9+VHr$Iz;f|&2fsxTS*Pz`AZQt$?qh3%)L{J$Iw$7Q+-Uy2{VtfeXsM1-m54xs+|9hZHdQ@_?p(8UckmJHWRi+V>&L zFP}P3QxdC?{I;?iE+!z@)FmCH=R5CRytD!YDYdh1^P8G+ip&F{t)q#n)d)+r_k+Lc zc6@5kj5I6_-%?kO4;`GUFpA1vVv(=fUsnunm8mR;(#@WNKD%^kmSn4j#Ez;Ah=ZsszEV%^g0G`CSpL z$Yr*sMp}Z+g;~)=)K!Ra3L?h?i{cv;G57SnclKSA;6!eIs+)KRyylig*{Q`cWLtE_ zwMK-jsB^nwzMg+v{j#CS!XNp8?2S(J0QE!28&8i?GOCz_Gm-z&v{GekQ}j)lC{{{B zL81&rF^Q!znD!8jhUgpJiWF3WY)5aE-wrOrlj=m*DB5yW7gJ^-u!8k&{$j^wJk&3+FM>-25V|&m&E^piu1gw!3azRJoWFwTyX$;6p;X4(VBkJ5yH~_mqa>3C<+f)sJ~P%Cb~5v zb^UqjUrj|$B26={ojs_!IozU}ON2f6sxCg4&%k~fewqZ!oymPtFk%6z6iIPqZ7uFS zJAUn`TB|lrxT5NdM-H89qm$Mjv{8KYS}AXr!&|TSF6}zD!(KvfgDX?6`R1$cw^~ml z3%Rv>?zO*`_~nidkH!o3o}zaIbXxC431V#b>DL64wPP;X;;}zp?cqe|JZANgXgAC8 zvUY|y2_G(eU01W*;D0}>C2Y5B#91jYBBeuPnauY4hZ% zH099~s7o63i><@=q_7K#w7_zP#?>!bG;3x$huR_}S(DJ@gYBbEHC;6AaB7ao+T%wZ z3DLi#TJmd*T?UiUvWND#!-Ia2#`q_0N@TY18=al9WZwF1T;(CJ1c|5Nvz~s35mp>19j3rl5R103W8kK}DJabHYT!XVSR_YKv@ z8=48vfJ?KaXyVy3R0DOoldu#OdDQ2-;l*I@rP88L>Cc>l3*O?LZ(GB5=oOKbOy67Jj{*+A|t-eY6Q=KQO$_ zj)HrB03ohrdbII_>Fsp3rjFhdJuAk)vgvOI7nWT(IU$J2Op;ILKBOW@MB#LFDPQC$ zwtowu z0`m^z`&sbt(4VLqoY-u@c8F#4;{vqxg*mJ6DZ5QHz4xu2)uu36`2vRyBla% za9k=Z(RpCTow%7;vp$jOx=HApo1oQJiv2x>YM)$yy{^`*b`n;KRF)ojwrCrx+^raW z4|e$NN1cq1*vNRr2=|%58U^h$qZ|HWCa+wbvCWE(*k6hd(r~DdPu{_b@ zv+7gTlCTfhxmzup`rMQuaM8S8Oo>CYy4j+qUJrZvKjsE!cUm^sHZCs{Rx(rulVQGp zK7G6_<6>5QL(F32>|J$dty3{zD}<3%Cao~%=3K3)J5wE&yMD~FmLaYEl^3eO;<+n2 z`aJAeIGEA#u!t%jvJpkiIUiqEuzZ4~I^1TfLOXEH-q~t6&$K*zzhvst54s_yuQKWF z>0v2brLAkrt2wl&_${5h8bfwdd+CSs&#-c`??xw{&kpU}ztit4Q%{nKV>^6-Lduw% z`d5K)sR%pH-0d#Sv+C%#alQ{us^M(9MKS1wUTqt!ftK#$p^ni1oZ_)IQ+6nojn)6W2zBG=| zbvsY*QJh_?T1*gMJH8)3VYryE&Y4YF_md|aFm~wDN1VF0QW#mvEo~^0@6t>|iJ3eQ z9=W(^%pMR{A3L=5r;EzE(iP|Ewe#hCZj2oXOVY$hRdWhA?3cl+R{2?_6rFD>ZnR6Z zICbiGmT;^|YC39Ljx!~YjpDVEeu#5OvdBtJa|$sZ6v3KWn>D5v@s$=oWD&19t%G}6 zw(UjA#9@qkJbF~tB%H}745_QL8m`N^9Pd_Fk+dBgonmQV!Nm3v86l1#H9-DsvA%R( zWocm`OFblx>aU>%B9ozkeNkVDDSC$N?8$pGSF}3$LW+VdF8NK-wVlXohE{xyh_0sU zMSrEav`=VDsc(DLN(SqGtsL+1B>Isn=d%LAh7ZfM-?Z4afIHn3w_$*%D6m(-#T0|t zZePsVSK6FnJ8Vc=lI-rd9g=#<6(Og?Q`K3ho z`30t__YI^xCe}u*C3Vyx?p}xPib(E*?vtWB)V^6pkgOTFL4MLQ z_wvI5^lopOzG>*CdwtX|$mcCT&o^-+2@RBr--ME@KDZu@%%uQ@HEUDqEecgObTWg! zzm|gmlVwAVpyr^ckj0d`_jm71YG)~8W^c{Q7u^FE->;m!pLkfv{Ck{M!>w)mI6Gtz zY)p){B`?qR?{lTod+spNUbD`_u)k&=etB=fvfJxMteeT*QBS zR#Rx#&guNnx_A*0CqTrc<12z6XF7A0R6Wm8Inal{Jnb2PD8LV7T{KF22<@##JWh^8 zKQhCH)vL|-$*o1buuzqulRyInBFLG3CcH zHjQPzzoxtU%4MFA%kmnvC68VdwymzUi**v+jVkMO$L?ai;_AMG?gG^f?M($CxtlzQ z;1&V%sP1?Z=V0mle= z9A^AlwA$N2fvE0>b-~-tSqFd|*|{h;(+b-eYY5vN`J+zeg0F#V4|6rHoWLsqV5ZSU z>}tYKrdzj${gu2r4~r4^lzB;HZv7#svth%t!P)mz;cwS zM@W3y6}nB|T0|PMVNMV4Gb9Uj-3z~vpXy9O)|}m;-%CA2&ULQAjh&T;$Y3hi0m3oh ze8ju|3NQOd_~O69PyU1l;R|Tg+^=Ev2uMy?6O3@&V_H$vLdLA!)(dAGKs%X7sfr` zpJMTwQy4zI%58^k176IzvOGg=sw(#V0FDLnsmgh1p&JWb+=^0U4Sm6OmP#X?=}VL+ z)out#jy%IOk!PE7cUh`+s4?h zg!GV>0rKkmGTe=Uqt zI&521YOu+aTvWphI(g)_?Lf7C(PY7!87Gm>vt55l7xP_~5fG_fQn}NL-Y(d-OO9|` zw1a1+E(@dJtuc;L^i!ucNWBlc2-20(B)9-bzFF|r2oTa z5b{|ZY10YKWDdpsVET>yopvV&l%xYGm;a$;o|eIi6PFT zkq7I-^_3PA3??ST)1mv9IT*ZV8L_??OungTTU%uL)GO6WPpA+Ibl?rD|7SKS$G~zf z-Gk1?eg#Hlw*Oy>#~9%+P?O7U$3T#iDz}G+5evcJ>z&$FV^4o&a>vbeGxc z`e1(L1d|52yWY_RCtt3k2~%`KPY2fGE3XKr^7fM&*PHvy1F$AA4Y4~+tj5c z&yo#bUq=Ip2T2zubOcg@5`_yJ9)l&uSU|@RiC>d7UIqtogk&*^{e8+3N%WPYZ$5nZ z#B1M3iB`Op1+v+gX}Ivxofg6u2){l}m^}+3aV<+}!C|fhDGY5cAQ6Zw4wVwvP>@z! z7pXq2rVcA&%9Xg09x0ATgV^gx;@>oqRAy)@l&s`S{_(xW_s4gCsJgU+&$%(v6|O5g z?%%$}#sQFk3sapB(~rQgVds!xdE*w;^yc%(@s^PpcA3k6Q+Xu*N2L-$6F}u4*`&58Fyw6ma_X;Re4ztb(IsjNX&AJ^>EWSH8dI*?L^;< zEAn|eNmYqn6yQ0RyD!cN1sm@d%gEY_+}9;6SHiLmdbJTo)4O2j>*T2g@O5rv%#1`m3FeOj3FoqQ!_}Cfvk(KWii% zj!!q-X}Li2&;3q#<}jzzQZJJk4G;UEVqbeu2id>cQxc5XnbKEyb2%weuEU+M&6w}p z$!0VnE&o!&K1MiGo_mqZWp>Dflk&oZ^FIpn@s99Z1hY`5|5oVwzZKqO-G)xb?^LmS zD&z~Dmwj;@cP!I}ycx>>K{vKgQ}l)9&_j7xq#vQbVp$nd!`kpoq;4lWCVmI+&j@|; zytCCy``Ibbl^ddfC8-^XWZ}9=yTI@=-h6U@d=fn+R})jZc=&u|Q5a=v)xf}5TDqpo z=7|e2JQxrb7t#qYwjPzuKZp!^9|IxDy8-K+tFg2QpOm*< zfla&jpg1#t;!a``NY++Ix)Q~N8i~O>L=#G;ZpcZC++g2oAemXeV5V-Ew>_^9n2I;@ zc_~>uSiaVQ-K#F?L$_|3Vx;tW*`Uz&hmf`V>ZGeT?Gfp6(e|SZ8ifC${`MC&3V<5& z+n?F@RQvWae2V^G)UL*p0BRogzo~zap++M7Kd7&JhM>E`bM>~p+rM_}L!VYx^rP4= zawW*W$Xl6MQ6uU9ALR4;lDp3_sXLpF{~#aGmwZ-KdxBAGRY3bO;QRyf zM5#TVp<7RPr#qmX@2QEU111~qv*Tn!s^I=enYTmbaFaNVL85fa%M5E<&~6s^EnbF&CGnCr_H%>bb#xs~sMfl~HQY37UY z91GD|Fl)1lBOD6zA4)1;b++vzmVNb5rX@AsVTdyz3M|m|(#jvd6J;y|XOPcr3i)1G zRT_ao-Q9J%#R##=EWeG2lyX~S7;mD=EQFOnug)k>bI2|fl~%-bbnUTLzw^svEHu5K zi?YItE=+itXqhjb32=RbEj@Z^tcT)oqu3!CLJKjw}N@-*mGbkm7kMSYUydX8|(Z`}4S`g*zfZ zP_EaD23vH&c-oHFxgxPda)fW5HQGGG|6F>>`+!x(v*NUD5=VAn{qmrkOQup!NOVDv zwYn>{qImmTvbiRtd4?d1XkXxG3ODV5tLI(EO4UC-YCe{X5C0q3t=EF_UnYOCR^RuG zbSyNj|I_3*t<&z}@V`xlCjT+X3H!%nx6S{bNlqE7-r3G0)@omXNz@XHPj2g+Haz@7 zOmu9Xm`no`atB<%j&eiz#^L_j`7vsxi_#jOS|GaF8349U2sPMFxK^QGn-y z*#Ja{Kf$b75O`|{DF!!S*0Bp3h6^O@9|mjy)b^Sfy_P`%nb#jiUF$Q#( z$#n(0RoJ@v&PS7mVXu6pgE1pyo&v|MXY!#DSbhste*h^8+E@ZR66z2FrWx+Q^b#lx zW3Z>ty7Ff*^9Ef&w^#$P(hQl9w?t;mq?7+6E?Vf1IIQ3+;cKh0al>7%-*p5`gZNFp zz=Ys`E|3j?3q*@AFs+2^dtg&u&n|fJ`8eJPEMqKDSD!8#$3+2Ap@szCO_*R3A{4b(mK;(z_xAC} zjJE4kmIAK(GU!&Q*KdX^TU^=#0~h=_6c{!>Fec4sTelDazvOj~We0}A*kk$jVHmxM z-tdj6cvPT(YAc0Z$&B6DY*8yh8t~^Zw7qhj(PH)G1I`7|udF#&w{Je3JlCBFS3DGH zaL1cIErQ=E7%9v6Y)7P)e%rGR5$UE^MwZMknNpM>SQ9iW+d5g2=i^;zvX zku8PNbNll0#Hp7Cg#dc+`^Lg9D5DONlwiI*?*g= zjT9$53N^x<%=B`)ZrUckwdxg0;J#H7quO=YD-Kxy!$V^yWK!OmM|`vbe8iDGdrUH; z>xwh+1_lA%+*XE<@ngQgQ&}ApcHY6{RYf^^1M_Ibo2QaJZHMxw?{652Gpg|CbRgUC zXO}ssp*Q*8DECNLtHt!Dns)Ke%{!;E+0W$#Xjg4lVtvh4Th2#n+tPE2cH|OMwV+dW z%=X!fwhPk1-10|&(5G`(J}WvWTsTG2&g21;A8$Ky#JdDV_DG-7LWwcsoC^d z4A@k>d=koAR4lZn*;-HaG5+3D1%uZ&(b43sV>LEgy)?aBI@67{<6{V=y;9O6GoUuI zqZKg{q+5~tNRHe0J`A}tn~Phk?swJ!egUyRL_M>$uGN_{ZxcA)TBq*5act%W6AouU+h^96SU+H_y>_MPI(X_3b6~Y5aGoW^+A% zD`K)#w~oE73rGn5BY*ag zAt*RsQu2&PQe+f~jUIz#o9#IV$RWS8A6`i;YDRz!4aK$MiWugEVk4Ub28bc}mXZKv zE1ms%sjwAYz-#w)p({|?sht-4_9nqrg>AS!_AIAI0N91z)s!10hAk+stf1Ng*C~RNovZ7KV>dbpoBeY*d-MEJDUFg`~WH<{n;~%;MlI^l}8rhyILI za<@5-x`vgTyj{u>+-QD{tm2_=$3ZTD9 z(>>)M3;J~X!}ykslmLhpVk>YgT#fnu12}pJ#y2%_zI^v9xB$Eo82TGlt=oH-m(Eqs zvydFPKoq;_no@BilOVW&Pxnp|RV~L1pj8Rh_k>Gck0B4>y1snZ?DVd1bI|T*w72V4 z+Av<(?uyXPsVBhC=n{-?je7rVaUcOenhYQ%MqS(b{R~&$p||i5XKhZ@PruObl&?h6 z7K5%AT~^;livx2<{#nfbYi?W%pAAPeC@1z20Qt?cbLrj%RFoN9z|Q0825=OHTKTyE z^I~7kKcxFQFMU9l8HZ-}C;T!5kNWPHAptH(egfud?Qx+X?UhIqDu=Li)XeYNfu?cQ zjDn@2DmpM&a)@PG1&?>lh_jQWY)}Qply-aueaoaZLd~qB+S|Amr{NQzD(Kd}_CQs@ zhu=@<=Veqt%H(@hpoKQaAJ0ViZ+g62eW7gvcftCZX2!^nWC^<>2{#>o_n9y-6Jl*c zz_o5EFq+ui5)*C<`?KoDeh6NdB(1?R##Bm!bL#RobO4R^kE)>JUZUb+^7qH=a`s=- z4>+te;7%Ta0rg*F%qZCdcKnCnh3z-pz3w1mIEtrq`y8}QsQa$>0}{YF5%{GOcHMJ# z+peCO!A7BD+>m2vWgcu)Whppy8-@Pt^^3(g5OHp!|2Kex+#i6`@V@};AKd~E zz(zZvM$h~3V^(+ExvR2d?Ym5aqCm{JbHZ_gciXNXP7rbJq|&?n585V_{SSr*v0&_R zy^%osulf5O_O`43p+GBWehAMA#DCWv)@n2q)r=dH1FGNQ;C!Bdb32LI3wYEaxg2OT zvN{3Q9(R*G{crkX)_>5K8kzC#f&=#C|aamoFuF|FQi05QnENHUA}$s#btYU!njf~`?r*0x9vRi3hJ-byF%YeJg?G< zr{xu}{hTuLsiWWJuOej~*><9R)6s~0&Ntg!IN73m%7?5ww?-TJJzHQa^%#Qtm^P+q zFlB(E#vbB|J z)2>O4X4BW-H{#X+jgFtDhzwzHtUY&XSaZjB@42c*p-D6|86GL&RfV{;ld75mQzZwC zm&xM=@=Xfi$re)+f#H|WUG#0kQ?gZ2>Kc&hYwp%`v=7)=rk|pQCMdtyN;kFjb?8?n zC$JeA>zT8w0!Aj@=DnHC>{yLu!fYCt8PcN7ev7SEX_2Xt&rU?V+jvyLZ6Bqme_^JX zysw#%7DPx&K73g)g=p3&$FxxgqCv$+DA0uW5xa>cf(*H9HXfFSq5IVzzr6Dc{SHc4~ zqOt0fy26GBsd%5-|MQ+q-~c=9mgQGdx!-_Qh5NIS%oGY@_*C1xvO zYZt`jF`Q@XhRF^ULzA1Ts#U_Q(TQE3f$(IaMrL4H;@JtXUE+VQD2RZ)_d{^{J47`g zvn^6WRaHDy))z6Gz&M^vuSlr>#^|Y`0SZB`T9U{%r>?>Hn8nq}0s&x5Oa{Llj&hRa zK2r@(4zFuC5hdqGkJJnKQ9C(fTcDTCpI3fevePWfTRh64QJvRXZZ~WF;5@MTqf>n` zD%pu6Nr*Q@=Xj-4L3Bp@P;In>JUAFUUPBZ)Y$Q+Q{@6NmnD7OCN}2tmpPd;tZGd1N zr+LyAEdsg%2di|}G1!fPJZ=s#ZqECwW*{^eDik@AbX-fBnHO*=iNCF2f97kUKBaG^ zi*QInO@>7okX^Z?d_Japeh7Ow7&;U+k}_c#pyRKjQk!M%S{q&U`p!N^2SNGC_GE%(C5=9uAZl z6&qo2KMXiNc2J{j%WV1lqEba{>OLH5WaSe`W%C|M*`2(B)m(bqaB{b1k&sPzlRV*k zL=qwJK$r|caE2@LtZYYs2x?_44`4F^@LSchU>LG!{vYzd+lN7U!VG!Bu-P~-5a=LQ z)`+X6NsMY^D+uV09Lhc6L3toT;5vDM=q__vCXzFR!mN(I##OPA`vV>vE(?ex|N1oRJ= zRo-hN;WuiuFRQ_D6B$1iSNINz7%DR3L`^P{pyHBbZ1-tU4hZ@?A*_W{GxrZc#AYdK zdWk}>3Xc}Yy%xckrw=J|*1eQYZp+N03CM#^)aE{cy3ywPfcB$>^9Aos$4+!kGl`&a zkl4#mams8kEfMji0NvB9t>S`)xBMrIRWOpZ8=ABjZX+yKen6<02z28$FX_R6?kc$~ zV2vtPB;SC^9F4Z?MFdTSq*#VZRd$YHiAeQS_-xFN(Q_$F81j; zr7&I?6fx4x+L;k&b``ct0|2D>44*{3dm{-6#eA`O+0`F zuhFfL(MuaE8V%cBy^93YN&ru1HfR$)UU*!5j8)O!E||1PP$FNpD6d7Oj1LfpT>3)v zw*!4dikYPMW-KR`hCWf_2U%lE+++uXnfLV1_fk9ckrQU%Z#m?sWL*)IzzDJ{O&*#zX;YH@>^X2Eu$C+E_ zd+zMymd?%V{Y7VOE#l>6?gQXx|91BVA1|FAMrUt#6@E+R*3rU;9b#sxTc%vDD&nM@ z9>>P0+l)RZ=UeZ}`H?~U2HD6_1)F(g`ceeMenMwhu1s1#jQ)do{u(P?So&5&2y@$ubsot|E3&U#+x#_<0k>>a=>+1761SRHq4+g1l1+fK)}-LX2hZQHi(bZpz{ z;I8a_&beoQ|GoEr){|OKs%DLMj4`X`nl-Cty-R!Em2fv}@4MHc^ixCJRn~SKTNp9* zzsBfYtqE;zJ;~LtekPozS{{0-oUV4+u-jBEEvlGTyfweun^CJn2>s@YkbjtQHfO)x zHoH!h%1#Qt^m=XIutdktisP1Wf29-Nd-MKSTK`eY^UWHscfV+0_0}s1j}vG0z4jX} zHy#&0&xg}1_eS|+TU*s8tusQ|Le8#vLN61V%x$`d*hbnbCb3OA`d1mT*)cE z0(2(t=jv4xc*wG$g}1i!`*ocW z{~6M0ESq3cU)$W2Eh_TIPoyuySBZ)myZ`fN`?>di?!@l-BQx>T`!X?VY4-yg|KOu! zAb4Wc-Pl`re&4IZOWENad0TjmAhu1}DJ?DniWENl`$ygS zc1zx<)Hho6Iv4{5=~3UyY^ zikVsK{E?R?>`=RZR^YOqyqx{(=Nl?`cl9&TE`}5FQ=Kt7OqkUWF70vhZ=9?hW6yQfu0!8 zq~1tHn<2%TICz+;zVP@6Tb^H4`XsoXndF$%*xRnLziN@1HbT~@PyzGSo(^`@tQ)7; zr_#=gnoKT~jcC{p>7AeOM67@7gxglo8nkd`X$D*xBOv?|90fI6SWxSZKdGhB4K@CW z#voQF_XUGQtp>b&gm(QyLXP0X9(n25cZW2W*H2Y^WA#2DkkW1kNH<6VO{Kb{FZ+ zXQ6-Z{aMI$!U`Ctu=o?D{uBN$l>aX9-zfiQ78tBe;I_%Rzd<;pW~_m6Ak3P8;Qa#t zV66Y(`Y%eqK~89qYyice0mUr-Rjk{_`pXuBaKk6gItT~s>?h8D7x*vD)gtxa^O{5( zfMUpiVxQ9BE$qw0U*I2ZZzBH$?i227lD$@m$F&1_dCq&&^3gVp-GdID(xRwLO;PD4 z?!evY);-$~J&OBi`r$BoltoRIO>7qw^Vz_LTWson9KK!z@9$@f_C9_M#}?;v9rN07 z=5T(w;A-*wIJB5Ov3Ovu7}{n3Qsgp*fd2mE`V4h$?{WOLmeGmIlhL;E=a{Y%va!uD zG_w*9cBh5UY4;QkFMNJ;WnWw78-wBI#65On*;`bYVflLtUB~wQP1Mihk;8?TvFE*& zyH~TC2`zivklR4TmJ5#bNl&Dd*L$ND&o|DNE|)+9zKX@M9}ipieIrq0vT0VcKR5P# zCg)t@lUOfo?+>i9yo8?TE~k>XTh_i`5Ra}cRct2xTy1@l9cZdJ9+|b#bO2nxuBPHm zdatHN8eBxVU0mbOzHPnIRPu!uL4x7`<~~EcyhIO{-f`zx$C%^9JPbGF&B{QLG33q6 zF!VT`7lhGuF6}up1*;Jy3n^s6;4)`nCBaztG2kA3Bl=axE19K1m-QC(x6*0;&joU!F49Q=?>M7 zJnX!ob2w+NICCHiRS>0BNX1^8zFbWB#cLK8WdwMt{;uUn{kxt1%a@2D9Re>^P&+?o zBUGV2S|x6U!26*xm55z)k$U1fiCryu{T2d)1h$1lOfjavyJ^7fmxxfv{(;~B^(?p8 zieVxACJ0hFAjkxd>YJh%Su$4i5Dcq0{wx<8Q3}&8Xm_Q;H^VF4qjb#@j3RwsQ`pw$ zv~VlqymQXSdzhW}`nJoJ;ie-7QLu-v-^Dxhn5~+OMDLdr4)#Byx+`N{lA5&o0Cup4*Tf;+Uor5Qm zQn7b9!Fi~%Qjs}zJBi)^{z~@cM6X_!Q?6qSzll?h`Lw!w=jN(W($*;i30;%{{l?IF z65%l9^oJfh%~|7kL8-k5uDwkKYlg+7wV@M~A|kWQH)9<8agJ|;Qh$&H1Ol4xq3lMG zc0dRhpyVCLBC8Y`A@5x!{P~07@c?7~6iTeO?dJ9k}QVaK_w;%DgwokhdS&1ogMx+*pIb%YJ6NPP- z9Le>ICOxaSx3&8A8yR#AWslZQk$b~YNt;Pua3>s17S_IL>#d5yf`)>E!_n5iU+Iggr zZ_-jRK@~oD#n$1zVApcE^+sU`*R?%KrdCkft>iSq6@N_9RnbecDlIc2xe;S_CAlekEK>ZACv1nJHGX3!F%>- z(Y^`z@{;yrk0AgT)?;1an%!idQ;m`8AAN!{hQU3+`6dmI^BzZ`1Dj(hx$ z_;uG^Dtv^I5rQmLl9&)GMEn~8*`81G9VlXukrATMU_BnDqP?NiA75CHIGk$Si|3u_ z=hTSA;5l)kqO|MU%VG$0_gZHyBc&RI4otOjd!~5R7`MKfN_9iZdH_NvS}lm9F-ym z&6m6Rxu;`FZlh>s%BVM~b-}<$LFd?Aozb$C?bs1Gv6C8!Az%Br0PGBu(+ozzxIfKj zZt5M;Xl3ow6-9k$hA$(!_U>)9ktZdiV8ZpPk2lil*u7Sg`yL8qzCSC{6a&vrl^uUx z%-%oKtypG#J<-|7x$QCCN^mrNk2`7V^%8@*O5NzBH5OW4|J_3MET`l}S7nku+bVYfy#&>w=t~l;Bj+Re#E+)c6FYn!+L6h2aOjoqxweQY;9D9BB zyXZKk-t>ofQehE-@cF0*OBz{C>81#XfceX-LvYaE93@2B`L4aDEBZ;aOwHf~rr}z; z=S~{2056%Ql10GMeyQ0(dZBzp!U7lO?|lTJ^Vh=JNy?vwdS{)NMqcBqCEmqN9#li> z51A%~^VKgPTVI}>Qqg=~2M6E$#-6vNK{Cf9RT{f-aIU?rIw1g8n!yV?Nt3u}Ny&YI zzgB*KaiUR=i-jJz{*5q1lt1s@Wo!oz*JVjx;i+Ne@&^p?Fd_V~RBSH`XPDme*@~w_ zA%jKeZ6QCjjrexk4huJrCVVcO_r|r0OK~|Z$ofPd zTP>zcI-09(x0YqJ7SEf*qJ>+5E%A>Z(YW~V2P^9CXB32Oc6vhz-K%t1IF?m5+KCkx42EyB9&s#3@xBw->M`+3M~es8EJ|1-_DkFzQzM3TN;%c?q@_ zK0S?$P)mhNDM6USESe6k`tZu`ed(9eyrRd#vVlUBDe` zGR(FyTxzn}+H7se394W>ptOOG6_c)E>sDLA_I4bzRz(6{q^P5=o~U{l)!R|yhyk^h zHY?>1`&dY{t;@caR>SAC#_7Rs>v6UrmdlQZZ-dx)I?jGzob4EF12%o_ldLU-I&w6pj<>0^zmL9^d zn)dApM|gX6a&;M?CN=;yp>Q!FTejXgTEv;I`e;yVwiqt{WZjh1lNHs%Q`g?pl4(=K zf-L^Hz}lLCx6|i6AphR%`gG&g<|f&g;lUQXwdU8HbPMvk){G&cX)2Q&E-I}lYU%i* ztb){iNno8iXR!g%I*8C(#DH?p_owtSxw9(}lqL}2x%;(YxlC1_lq#GKjfeW~Nd5qM zCSggb5jh@{ULU!|EIIWSZC1xuZS}9(DV~X@xSZM8lT6YbN4?y2v)p|+436;i=LNtR zw4j0unq^Ym8TX46wKho}7Pq>9>s=J2tHmP+gD_b>K_;6qnQtTyK~0PKO)A}*yqJ{j z4P@=C&-qJS3L5O`ENSjDflbB*O+lQxM>wXdnxG6C5J9C)Dk-u&rxo%fUxS+xJIb$> zHh1QxqJ?&96%pJM%Oxm%#L%xqT}(Od91v^?E0lhC)G%?ti^af&m#GKMAFPj^jJ zi)prDRD@SM+^1=A*Ve$Zag$;LptxNzVxqPb!`HD5dp;jV*Un1a!8#5sc*wuHf#oy9 z#GusCFuHfIZWBS|@U6Y!%qZe80X@qr$gm0P(Qym~QThlvH@H)y_fzDMALlvdWd5BZe%wfH=+Q}USKd2B% z7>GO;D!pF59$tPq*AzIqCq#)l#v`~0=oPyac)8T4)a0k}7+=m!@BY!IR49=eI{L2zzDFX%)rSjt_~Zu0{IED3(TXq477`q}F7{+yCQf$Ba@ zQBSDMa#;o#2kMsry;TYesd$1v2kq`(-keQ($Wo{a7m!frfbg5zj?_7of z2x|Vj1J*u+ickAQHxR!y->_3K6qRJCu^<=mg{q#^hfi(;*Ov_(QtkrMoi~Mhgf* z9Ly;#P%&01?;{We!W5I~g>xn9UA}|yXQQRgQ3Th3>{$gt0onf%sN@#fx(efjnsY%l=oDXe2`+%{&>=%7jL z4|1JmzFP^RZ!>Vufd3rOcQ7cV@leM zH;hAo2%7NsS_Q#~HxPTE2tmFIf@w3PO-Y)oM8SCZ2~jcnE*2pFg082J6OqbxYtaDf zg%GNXzsBSb0U`w9W&ysy%<~v1{ZTh+fdrK@-C}8mit)U}768S?6v%0Tq{bY`=&zaF z1BImaI-CvqP)V8rg9L<;>PuLh$u&bWNp9GcItn-%{<~@xG{Asb?g^G~iLTrP!Fa!e zkp)5RT+csBOz)$=f?Z?M&9;ueqM7OFJBP8*qY@#q6EwTpV*O7(5`tj*WR7&28sH-D z4RC~hky3h{h`!$xF_@bJF~bpk2clrPbT2h#OAvv5axgLUPt0&cv^knTE6nTvTwyY} zL{CFEcJ~iAfN|gCwO2r|fJ58CrS<57$d?)nvNi!05hwfEOE>zRddIx$l~~d1tvM0g zu17CA1Y#6B4hC*CE$-LXQO&qN5B#Hey+8+nz*Ib!eZGA@Sv^Sj@6_;rh6ehQrdB63 zdxLKiS3T-v?YUUm>sdORSvuOqMuP(-p^9&}u5^64@Go^zh_O+T8IuJxoFM#OM9!VcpsWOz)FH@~0-(Mfo2=GSu=tTO^_L5-f9Ime(XX%>85Zq{YWrD4Y ziiV5nnX?(38(KS?SPK~1Y#qXH)x!}c{i6Lq;puhjj->7VyDu_%DeFxPLA#4l`-2A$ zayM3ANoF5{wBeXKC2r*=0an8DN#Y^D-Ag^}>Sg<$edm5m_SYbK3R+^y0Xmk!(W)l{ zmaApero4&y)eC34*Z9Q7xU}nAg~ywGx@)=2h+on-n5xZo?SQ4MhidABdy{X@u5W{` zZ@%1FvJxkf%?a4?^MzH0GR9-7OcXWS)GKi}FGjSzr@>2`Axrdpq*ywJ8fwO=I;P<{ zHgg0}BC3ZJlABsig%DL)eW!m5TiWbgx&)lTRO(l?qTBarO8};Gcn|&U@8y#4Rht-9 z-dM860>5a^m96Cz(mG=~Q)qQYvipOo3}r`8lNz9^@U^{(wYy&9O+91G^is^cau|a; zQK_&FCC&OyZF>I`rF98^aGNAGp2l@0@9JgZRM_=xi0S)x?T>;J#CET^_V;T;UZ`&m z5UizZ+4*cgNgWjM?@KV^pYvr0GS^(*V$rtm0eJnVNm$twHjG4kb$@up)8~Wc+ zvs08v>x`r;{e(yLXWHjdIvYU+POSgG=sAJk|DxUVPdzr?n3BYeaHppv8b|lHM%Q^_ z8%g&&+k0O)pZjXzC}ma6T@)srw*-3qN$v?+t~~^K)g>u_d%pmcs#nN^Rv?8O5_taE zUG${%iT7{YS4}4tlSEHPTSNVdF1{!RtQtY*g$tyFtMAS?8N1Qkhf0D}{m)Dw6pCzqY22@+w#RZR%>i189kBM8 zdrZSdZ(7>}7`jms(BB#A&Rh zi-_nKs*~){{#yWJHuMZEbvvH%Y97-G;>1}X<@mtf7oDB}H36fsFZ&h6eYE8eT2u6?&;gR(BS)MFwccgoY;OZ_XDV118D__#c&0 zNz`=ftFCn$m$RHT9%>a{(rtHdZ(}=rY3B%ahIZmMW+@CGE7lFenc*@+v$wLxf#W*7 zXAdcTJtuYxp;^Un#{Jl|f_e(}H9-kz7o7b3upr|2 z8U$r-FI8JjxcHPFXG;t2AMYCx6D~px-=aaX_NlqniOd@XB{|@IS}jwoeOklnNm^<=;Qf6|{CM>E zPZc**Ot^oma03o7*0v1k6IXhDzj>8&R`{0=#q2|Xj(3ND>v$hot7Rhke~@s>RZsUG zxPOsLRM7tUmla==KdpFB_&3BuF~Ewi{|_q$_4Wb>_8<;}YvXRrJxSa~$F5hf2A0e_ z^y_BM8DCbnNO#Vn{!Hp*IQY&fVFi^u3w_)jIX@0Zq~@Ki5)1%nsQ}g@z?;H zo6G3Exou%qO88sK8+P|28dzZ+J1cx(Gfi2DM&PNuVK@Ydt_(+?%3KDUX>;uj&v>t% zHtq?L$cr&T6|5XnD#M?DbtAX?vjY^XFoxoY@jjjcZ*(99#f)eyR_h#Eha+h3HyUf6 zj}yq>_iI|gSA?b|2Q|L-6ggr!S|Hz7EDv1m4a2F<2rFT}KKZ1;A3i7Oy0x5j#gm(M zp`HO2(Sn0uK31*o_6F8y(jir~_CD`6qv&)&#}$%%<|(WuRGTU_gYh;vkxfmv0xVY{{um`>27|1m!FEaV#OrXbpruoOlGjU8R8-IH9_I1c)#|43Y-bVo1XG8b1~1ALU5c zOrMJCfy(gntQ*zx6oz3GI~=D87a2OcY6>4ziw08Bf`IkmAOkdzEjXz9Ipa}x2p0Lv z2}@+iuSc3N8!in;SS3yc%D06~-6pYeh_qFvM=Qfv^#vgS!6VRg?+xZB&@7ZB81ze% z;JNy-f+TdM7e=kaSSJub`?27m8b}sx=h>VnEYiLMOcPX4RZc&}P-sw2)XJlv>Bo`@ zNDO7w-zTrgPWXXt(H{h>57&=H+kG-roJPA?jDj$zM33tj!WypKRJdXPzsX{uSiE=s z_@<)jD^W#2`OaefBkedncN=cj+fw<^^NPd8p97MiL^raXu_Q@xZ(^h$ZNCCl>R(an89XqdX>mR~d-X~voQz6L zsfWT{bayU+KzsvKXmMBOS22AEK0^|Dy+~g&Eb*@7{g6=Q>MQ4SZ0TQwqH~#OM)Yc!lCXI*`X_AV#WGflZSD!r9#6PXSy@X@|Q~H+$TGapxV!oh#S}@TT8uv_aw;Z-r?2Z)gt|~u}KHnBf1!1(I z40r+hV`Xlu@Qe#8>0f+z!9S7L+d^*~V3lUXN;$9t^FrQ&AT9h>_)%GTW4V;eCxw!V zLQztV_)+VUX7+5-ApGq{h>lbNlmTPGqW^<35y(F&b0kk0TWSxa>axiR zM?{gxqH^+@KUzOM7w??xjkyq(X$qmy(o5m7bThqzE zY7Rt4L}4GasC?g{^eOszHIDFcZ4a!9D>>|>0yicBa`E*nD*;7o1_+n{8=p^7fr|Qw z={4mTXLQ^V(VSpDo_s!nyf2%@BfeCLc(zr^-pKdCsFv~z3w;u=`m&E{ry(yWq7_%n z+oaeES$IbBTMa}2HWd2{4;2*qcmC6wOSo-_t(YnlT%o*J_HnBO>$4F)391d-I6JrJ zpsdR>(7HhRvxtDc+fX>8K{YXsXxq`-WOxzKDnofYm~a82g$n*tg%m6B-$~+z)YI)+ z8yb3`xn}0iu>8HpLMj?xNz+}C1LcR;b)szvwzYybY=>}=;iEyIi!Qh9dI?~ko_)ZP zBfq)zh?C-2Gttp+U)}x$v8s9gD`w2ddd~PBJTxS-jN9xm;6j6x@@@^pAbOaZYPwYk zOa4=75DY*mi4s7mj2tg$v@KT*?S>e%35u-5hKBwDM5m5^GI`hK;P6Obmyss7m5e*wylzy9R+ncf3I(V;>oToL}!vX zc!H)U+kQAG3669Kf^Em#(6AWf$gcy8+!*~Q^q)@A z3EDIp0O*VP2Fy8J3FR?FE@v{uA*c~-FDr_MDfMoX?cN~6^KGg^8h^=K#)b~gyGapL ze}+YdCrQ6Cr2HJnT?rd4?#3Xo--fEEOZXz1{WC?217u=szZZ#(AoWY|6c9f`{l--ic1R5$YUq-Qb1ys`?rS_%#f0zOlz*CdT!l*3y>tU&~ zfW>zJ>)U3^_ zMp|wI;(6fmdF%V+DMivWW({GfyD=#<9hKtl=v*plPDE<9uyxFfU?mj}%!!DHR(e^;D*XpS0^ECWnXh*i7ca@y$?sgzWI>* z-{BY4S!Kf`C}BsMcNoJKt^77l`tGxR7kLy-JZ zYHCmb=ca8vgcoQjgg2S7Ykn6YlK*vEp&#=avL7GOJDbJt$shPSm;!!1`i&5`te9s9 zVap_huU@M1z<;LO;Lj#JUsUOA2!jcdcXxV&$t2Oc&yznKhwv-#HRK#)=o28y``Yrg zC67VUrD4l@2p=F2-`|0FekD#`LmFy*2b2xw?#FM%^1jNW7+3wlK|lXIOBllElSTNh z3)YefA;6$-5=bfr6!rwVgOFV3JfZ%{ts1x}gpc4|mrDf68>nC!|NECd+d(?5e)~4S z|CLDI3>y;L{3gWd?_t2P1$g#fQiy$@`k?-HjQ=&K z>>83hb>KPP^)Qg@LmBLE$1nsc+jZHp>iFnzuWyT~BA^`5t|7&3*II8+!fDuLF4jBBW7Ej+N|ET{cnRyZf40?%Yb4*YL4i>XgJ*O1t@fZEtWC^P`bk%M_dgg>Z@m339KX5T^RX5B$B9;XKYHZOZU zn>DP~`NJQtwDp7nvK>-yfPZTtHKqw zGOa^^0R~3F_^t589B!N8!CpR_-;Wo($X6M-uUMzLo537IM7`_jPGO^ZkdL=3+Qo@> zi=t1yv0wgSXM{mlwLGW{Ru!|dmd3VxJs5W?;^%`$l5Ha9?y{N5%Dw1ydgv#em~!oI5iN{wl+qZp<<9bNScLp=+Eb zLt&q}HTojAla|iYYky!F2bYWk08G&*Owr#kKV*uY6~=Hs_tQ*2Fhc~(qjcD4S=kN% zKx4`{;5+Nn-vq5Z&bemmN&aFY9ZLzqR5p1)pGDnBXIEd%mVi%=k z4|9G>f%Bdlmj{Rc4^T#r=}wfS3K+-4n|6A!TY#dDr&kbE7uQlwufS50_z99=pk)(s{LH`yi)=&lauwCxn5 zhm~|vz-6vu=L752i)1MFCiJD&Ja3IE92^-PW)+*Xd!QGvtIG356(aAQTZq{0H4I>~ z{iymhmf!C1=PoDlxEEn?WC-V{=|vu@eR@%N{0clFX2n=@m239{46R(p@&?G&1sX=J zVAHHdQybryw!&Qkc!8&T(Pd8S8PoC*~stQoozM{(jizlhNM) zBZNRg=KwLGU8sDqr$9>LP+!z={9BQ^O9MKahKm=H~n zk-t6iVBK~2n;XSxOm=#5PI~-2292T&g#_GpPD(A)bbAE~=4fI#ZELqAc^R055BrL? zz(u3@uQ3m#fW<*h`kfRf=0IEsF7NQtfUiAKdAcpV#DknB1^Ewo8Ic*+J+#fHN{SHh z{XP5NO8fZ?`GG&*J)4F1^Wnw?IAi>^xWOSmt=K2IBWB+!;W3S}XF>q9@gHJDqtFo| zataDHQpDNC$C=oUvD(p!}IMn8mk{017rk0ynTfwy%ms9 zlL$lB6r>(wnkZ*qtpG99jxI)R0nQ@v_BjmmMkPf_nR;QmT>Mgiy+ZRe$9}$?2C*pC z>)H)n!VIy_In&ZhF`&CBf&l0)GPy&sAnfPsjEbWSdW~-^-8N)rr$bSbuZ6{an@1ZJ zSB?K_ayB)128CG%g%ck)W~P`B_b*Ot%wDJd&80F>s{0{^BYB!q*gDkJ2GiMcP7{}URpaHAl9Q;^xA zcpzd^9qIZ7I7-wwx3%NXavJ4iT65FE-iPt4p}*B36a13}T0$JanSG)EIAf0tnS);K zkW-712sbK@Gj77%Xy5BjLP2gtNzPZ{{0FOL&-PcVP^@%1%&!0yBHuA{@e)OYWub&N zE=SmF{=yh;hn2K%%s-brtutNJU4wA;JH>NVJ%P?UjgRGS7h@U)7`E)F+=R&#n*273 zNt6Spb#J&2c1|)tNVG$;E z^xR+klN4V^%(gM@_wL9Xu!kv!OJe1t6><0GqjGKgJ93u!W%AT{U{^rkZ~r3TwpF(m zPXx{LF9Kxy5S*x(BX%qq9w5T9QY1xzCc`mvX|sX^MFd3>A_6i_0r$JM3bEqB4LNE8 zGNO7~u|hu2ViU1*tx9d`_7X8B=zI0Hgu`a|x0!zFp)HsOE(`{dB)4NGe~~J^Mes@Y zOQ*sF=Ufnw$xt%g+mN#)DB7k8)ld4{kQLZZJ_!JXzYHl%1O@OBUrGyLcIJslnO+vM z*8tQLXNNd7ygiJ4sUg56(VG#58wrVw8a5Q{VY3^txmZ8PaZz)h^!J}_?&X99!IJYW z#b4-ByP~7RYROVB)+WheiO%ic+LOj-W`LLzbGTpe>2U#Vt!1cG$UKb#PfFJP4^xd< z?TbvRaAkGb3<_`lZZz02RtsC%W0_Vi%=`}y6KG*Cg>@nMRnU@Yp~-xi^L5!v2J)eYR%_O zpZc_?hY0Ri$U=Q@Ig5)xPkaaOfeeUAsW5A#E-##b0H3<83to-{=C^f?$J2^CA`C>d^XzI;~G_~|J3S1-p=QK=LebppsIR7D(&z(Rl;(b3G>7S^L`hA>c003FWcjMc!jKpe%0Q{h%jJXlv-SOamzPzS z);tB+9g%E*-?OuQGQI6@vwPp=ug(BIkO@-~vo% zYs1ggi$v#I;heM$EcR9z;#5l(8s8sxY414gG~)_rEZ}?DkjSwx4hRBQ6pY&0-*q|& zo9|_uFHviD$4}4uw!-Zn6;!Lx4)YIT;}c0S{L%YUWTQiQZD0NKmX^^m+Nf*n0uS`2 z(_hBnxXEMC+_MA8UTo9B>F3%aqEk^|4+O`JT_eI@$Vl zkiS4-gNJjv!%ISdWt`7Nkm024lSW8`TPQI95ei+C*k7N_%?=!+oyo7yb`X}hYmDwS zA8FSn{YZ57rCC_+U+j&>Wa#dMP7Z7A^4?OVFoT+InwftVYqrQ-OC?aetl_B;cgkWo8ItB8-ze> zZ%Qnz$lnh(HSJr;#Apxi!F1a5Vr>B zH*pV(Oz$2^EZB&n9Sk(Rzq+Rf%&*GWVRcJU?{W3q^Rqo}upedIUb7XIqb;4{UcUp(`sHm9>oSJL7wcOWLGORExCnvlU&a<3@q9wS+~jk1 zG~se74@8wOHS(;1J`@yT*Tm*x4%0#HESnIm`Nc(JUR^wpilES{FW<&}S35iwc~_{- zc5YOYG|+K2J4WZBzGL(&&dTnUwerj)UC`U{rom9^BIl)S$Q#jVY)$%6+NwZjWF3O- z+;{^Se9U>17~hEc2oH#Px!_8_W&)L$95l~#VC0LoIpRe6txOuL$DfGGzVur6(;TA2 zr?;!Y=9FLF`#T$eaSHESQ2Lj{{ao5GdH*n}ZArs|2SC>nZBWh8EjTZ@NCa;{02y5T z38qQlf@7syVMf~y3vAuzrOR|_6ZoIgD~~kx6@dULs2Tx(pLxjtN=w%+Q1IAu- zyATjXqMaC>iE3QSr9FZ?ln0S-A3Cy`f->?>xp~JojK34(2;#x3v#M9HYo}QpK8nXw z?~p<3IAUcn3z%ioqw$h6jTl?K4zzjp5rxfY?*8gz2L}gPK!|4Xezf6MHjNp8z1hVyFiwmYk6_jBrT5@0_lOh-X6P(sd+sb~FU`PtzxwBE35*o9lR*?=>53EQ$zgx>F z-8ysN_;`DDt`Fh#`nG6@Ugtv|o$X;R*36Zi3cZ#7>ulD5AwpmDMvR`5K`$KtG|-Y! z1oQ_O;A#)8Q_d-}>(kj2{inT{`1kS-jR# zu)kiXZpe_uf0d77Gq`a_ubbT@@-=F2De2no^(5Z%CMphgV0aZT<-t;HR<%4 z)Jb+)4@vjVL8qzkaY#5!7 zs)((7^DnDTp{>Ga%jb)QaL7%9QT0NamK5>?$0VI_=XTvbdh6AFFlUW@)fN0-&Su|I zt#KRSk9067S3)V|?GFZ|f0IHE5k2#GcIhZwEu0490sjfHlX`p5*jI3aBiJm2e;7J% z@bG^hSj5@_d4VUH7d>yF+_6}y`q2zi1%>VgCDuGu)!n!cgQP{7&`cXl*d+wIH`an= zgokny6Cnxj4;i~iTwva^M&pL~2kj~+`1j)a4Ad$VEJ}gXIS7!$J6;Ta=axAQP6PC6 zLtjRm7`}Lv(i)+@GI@ArE}%kHuCN1#sXpLXOw%dvRQHQ zXpjLG@L0#O2>W%hxP-z)*}9EmN32t_RE?m*OxZaq_ET)-uhQQH=P0VBP4ZT)QcbZi zQ;m70KW^OXtn9dPXre_1ta9sDM_sdz6 zPM4MsqImylRo2_}&dR9`@5gO0xo|TaM6mc8kVl9=_Yu&UoGg`2JtDOzJmSqy?WnbGaxpHf&0QWfl11!3={8J+71S_IEn8=tYFgXWDgdCz*&~Vld zOT9FC8Bq|P?rc!I8bU}{it(eg<+#X9v{5=iiMpf3pVK+{wtdp|Rf2}C-xZpniBi$6 zyMOs;*QiVriw|2-tbG@DE*f9N8483gWF$hl!|8V;e4)&T;Z3G7W@(f6t($8-s9sO6w&>65 zcmCEgCrXE_;F)>0?fy*>Cf_NK-)^$pmu4o#MYQD-WtWETOQ9Fuw{7b)PE(qWtJr$q zod@ExSG8<>v{DC;$5!%YOnLUg=yQFkyUc&bhpYX9?~nn&O(HTNe{1w zaA+ko(p|$9ma?6Ul9n|nn=NR}Ya~1>haHU|Zkw`vZ)6a0)2C{1VlkjuJ{E1lninvk?%}dO71C3oozAdsq&xqpJgXadW>!PBF(T zHh9Z@Mw!YEQIn6>N_J;FOD^ACs!16eT==33?*NoSE1P%E4Td?5fI6>}s|w*La-17c zN7<*G3|+Hs77qcwAVNdEVt&Is?D3MwTyF3vx9&NS2+4x;anrIqBY=oHq#=lK9`^ZX zyO^Rup%;?2Oh^Bi7;E&iQ8E`W9KHlJ`wWzf*v_FoPqg5#%zl3>6$u`M66OU_s3>=J z`*0I@v;Iv1VxJ5_L8AOzy@$Dyvwg!uvD)QnMhh#>MaM;j|OD@%GaMwj#7bZxo1*bW_7Nxy^OvvA2Y z35z?}!g!pE$lyQT9`N5H2A&2AK&DqBnkt%zsyj8if)mPuqEn5GpzLZfqRoS;1b~>> zmcSiVgh0Oy+hWxFeJvgE3$s*B^dM_s!4joEFeB|+@m9gbkVAT*tAyatJFlS4Tqg~z zYKBQOv=3NV`5(G?NB0*x0D8y)y72y?>+kHa|55i>YS@UW8bJRX5n`)DmayKm)X0P) zN9_R_WaYapVOjK4V@Sc*R!Omq&Rj)MOr{Ook4Fb9Z-laD0kWu>;=Qf=0V~Y7vGL;QW`1yl*|`ErzDozk~#cFk2XkY$`@*5owf@2@=NwIMwJ3GM#EK z^i8JITHj}%y9nFJ6>&s}Z}lwmG4P-_YV1f4YFID+q!Ygj^i4ltL+ zrV!s%q?M&g+En=7mfk@AS)mPWQqtQ1!TJE<82=FdDOt|m#@6AlTFr>AvG!*`5q9b9 zz1bOI%my<>2@wOLv{;b%f$Qo+YDv5*6jA!_AOofDMa-o?s7Jj_+e#cKx6+2T(+M8x6fylFR7F$X~hPjZ8|pE7ZMwAOAi-bgHF z&F&7d-=~c|lEF98?YJ3+Mzv0d9B*KUL00~wUD9h9n)nh8Fss!5Rhiu`)kyyPsl)6v z)5^t>WU>m2)y@y~ELr&m+Ace!|JBxcM>UbPVLTu`7)q#uh$2CX(py#m5fwy=B7*d4 zkS0}1Kw@YCjC2sC2!bpiiL3@z+ER>*bWlM+f8!KJ12#wU0I zIhh0?y8F*__y+s9xCa1PneWkEm-VRcgqBFdSgBs>89PEkx*Chxvm(9A_SiF0gf$RM zA-9Hmm&-35tz(S+Ow6`Kmzp`$AU5-v8K@tQ4H5Q|7OUF(r zOdEF&Om2P3o`o%Zy2v@i&)?nqca+{W`uJ9I4~=i6pOs$@UwXtEJ}k5HZrCvAw)Y=c zO-##r)`azP2A=HGS=MDGFD`}bA@<+c|G~{F;e+xy3!-YQH@ii}gNI*LG`J>L`-5}M zM_n)b*W)oVn6eLvV6Ku{L9bX|{0RAsKg@iB6=p4=W@X;D@N(etlMBuM7HHJn#=(59zfz^8Gfhi!_Co zDrYO5%P2AO#FMjH@G+gME{~*p4NhB+`bgSRwyuYr%*kIF8Co3*Et*jzvcaklSYkfS zR4d4iekzGdBe+ofKDpGvs%EgnI}*3VxEqYly2$jb>Xm2y^Wjo9uF)uTaJ_}otD$#% zv0?eVg8{Z-S$~YZ+1|?jB{>#(T9M5+PY^!b0Bvke;8nZ9%-!TRZ({T80WpjBaF5)# zwWX*nI^@}b1Q(1}df8=lY}FT`m52vmQ+v zv!bDhVXXg>S+A?miLoyDD#2cp#?i3Lhe;gjCa@lPJOBAjrdLT{Rmt1jT!HWvTg;F}(7TI_ssa<76?YyG}=P27QAPKBau zo=&G!JGEnnWaxz?I(YYrRn#_sXkZ0_VkAKzVPM4qHtybDrU2&!%uiqEYu?8^{oE1M z%U*s^O97oaq^7J-7w?gy0_-hyDow>l_2rp0t_?rR&?r8N_m4A5H-X-RIfuN?GR;f< z0{R$#Jc3>&a49I)-@FeEzj#{jEITh)K;-2i&lUCK0*-rD-j5b@n#ZI%b}x($eQV5J z8x8EyM$Y&a{afVN+Plh+^HmT=g zsWqTwrV#54rXWPGL$5-7DrLza|DX%Htt(@&qW6JsWc0Ls8tNjl#oWG)H<7new-qns z8D}BCNpIY3JSuL!acKHXbs`_a=X_wV^zga2T4XfuV=R$;Hr$T*tVT7ZCz^O0%))VU zzs@LcOotP*Oa_`&nfp+9{fBsv4a+*0$BJr*-kxE$L2UtGE7Zhr_Zzx-*a~jk1uHGF z*D;1d%IOjHGbvmu*#as0N~xd8Ix5Km4+$xqqIW5VHU+rg8jg9{hA`6|s4< zk-ebd>#G>FZgatl3gJYh8dTZ^Dbh`89$DFF^1j-YtmfDroj0**K~|NsdvQIcp&l|Z zgv@NY!bqDIPaV&#q4%yNZ<6QM%DrPe!_vOcnrIqoUPs10gZlVEu-Q#3uMNce~(guxjM4pai z(WUthUS+kw##e<`%JeS6#be$MF3{h3tHhD{Y3g;=sKu$j^%1WHDTz(R_siwqOwG5; zCeM`KM>pz64C97_7sW0~9xh9xZ7q@S40SMDNnv7ApdR!Kk~#+aZHY`sel!VMgQuz%qMp>JG-FO0~eb5tLH@Icy#u1kN`pE$T}Ob(qs+wj=Rkw?;*= z4kYx78S?_ffTmYX*lYlSh5IcITtq1iHN74R?QuQBv&;`;=kaU5f+F0MR7SdcQ~!E* zU2q7Zfpf~A{V_Jmay+)wbhK=x<}ph$bkiP3-U3sI;~#?85V3posixPAC+jfU0TCu zkPR&YJLU)CC2o@Y2owoq#N?yW{F~E5Gx<@4fgJ!&yU3yWla?{=n9S{3= zEOF8?QsFkjtr`}$QkN$Kf?E@X=Ikrtl6!2^)0~H%gdsnraDMI%l$w8Wsw@YJ*f4>c z8C%HJ5n6`n7VdjurRU+0IdNYtDMZX?zo~POpeH{P4@J}`HiDG&QApRfYZ-@4bLQEXk;u>&BA0Xu0C7c0T{=4_MUJuyLL^I0Q zM@EDxfZUq}1mfK#j{;i$lRNwQ{qC%pY`9yG0H>Si&Di-}U?8?D2LK}22e|g%$$e2` z{3<}_9Y9y&yEpJSU87!>C1zFn?l z90SG&O8(TNn4qV2i5VU*$;e@>lkRY0LVt38DWWjS84E8v@_>jRa)vStBZ09Hu|p`1 z{6W}NmSEH~W{r3Bny4Ro#vC#ug3*8PAe7>N>&6)Yj7E0{z=8P{@H^Yf$YS)4J1nMz zUs=1IBqN2 JDK14Logging} -import com.twitter.server.Deciderable -import com.twitter.server.TwitterServer -import com.twitter.socialgraph.thriftscala.WriteEvent -import com.twitter.timelineservice.thriftscala.{Event => TimelineEvent} -import com.twitter.tweetypie.thriftscala.TweetEvent -import com.twitter.util.Await -import com.twitter.util.Duration -import java.util.concurrent.TimeUnit - -object Main extends TwitterServer with JDK14Logging with Deciderable { self => - - implicit val stats: StatsReceiver = statsReceiver - - private val dataCenter: Flag[String] = flag("service.cluster", "atla", "Data Center") - private val serviceRole: Flag[String] = flag("service.role", "Service Role") - private val serviceEnv: Flag[String] = flag("service.env", "Service Env") - private val serviceName: Flag[String] = flag("service.name", "Service Name") - private val shardId = flag("shardId", 0, "Shard ID") - private val numShards = flag("numShards", 1, "Number of shards for this service") - private val truststoreLocation = - flag[String]("truststore_location", "", "Truststore file location") - - def main(): Unit = { - val serviceIdentifier = ServiceIdentifier( - role = serviceRole(), - service = serviceName(), - environment = serviceEnv(), - zone = dataCenter() - ) - println("ServiceIdentifier = " + serviceIdentifier.toString) - log.info("ServiceIdentifier = " + serviceIdentifier.toString) - - val shard = shardId() - val numOfShards = numShards() - val environment = serviceEnv() - - implicit val config: DeployConfig = { - environment match { - case "prod" => ProdConfig(serviceIdentifier)(stats) - case "staging" | "devel" => StagingConfig(serviceIdentifier) - case env => throw new Exception(s"Unknown environment $env") - } - } - - // Initialize the config and wait for initialization to finish - Await.ready(config.init()) - - log.info( - "Starting Recos Injector: environment %s, clientId %s", - environment, - config.recosInjectorThriftClientId - ) - log.info("Starting shard Id: %d of %d shards...".format(shard, numOfShards)) - - // Client wrappers - val cache = new RecosHoseEntitiesCache(config.recosInjectorCoreSvcsCacheClient) - val gizmoduck = new Gizmoduck(config.userStore) - val socialGraph = new SocialGraph(config.socialGraphIdStore) - val tweetypie = new Tweetypie(config.tweetyPieStore) - val urlResolver = new UrlResolver(config.urlInfoStore) - - // Edge builders - val userTweetEntityEdgeBuilder = new UserTweetEntityEdgeBuilder(cache, urlResolver) - - // Publishers - val kafkaEventPublisher = KafkaEventPublisher( - "/s/kafka/recommendations:kafka-tls", - config.outputKafkaTopicPrefix, - config.recosInjectorThriftClientId, - truststoreLocation()) - - // Message Builders - val socialWriteToUserUserMessageBuilder = - new SocialWriteEventToUserUserGraphBuilder()( - statsReceiver.scope("SocialWriteEventToUserUserGraphBuilder") - ) - - val timelineToUserTweetEntityMessageBuilder = new TimelineEventToUserTweetEntityGraphBuilder( - userTweetEntityEdgeBuilder = userTweetEntityEdgeBuilder - )(statsReceiver.scope("TimelineEventToUserTweetEntityGraphBuilder")) - - val tweetEventToUserTweetEntityGraphBuilder = new TweetEventToUserTweetEntityGraphBuilder( - userTweetEntityEdgeBuilder = userTweetEntityEdgeBuilder, - tweetCreationStore = config.tweetCreationStore, - decider = config.recosInjectorDecider - )(statsReceiver.scope("TweetEventToUserTweetEntityGraphBuilder")) - - val socialWriteEventProcessor = new SocialWriteEventProcessor( - eventBusStreamName = s"recos_injector_social_write_event_$environment", - thriftStruct = WriteEvent, - serviceIdentifier = serviceIdentifier, - kafkaEventPublisher = kafkaEventPublisher, - userUserGraphTopic = KafkaEventPublisher.UserUserTopic, - userUserGraphMessageBuilder = socialWriteToUserUserMessageBuilder - )(statsReceiver.scope("SocialWriteEventProcessor")) - - val tweetToUserUserMessageBuilder = new TweetEventToUserUserGraphBuilder()( - statsReceiver.scope("TweetEventToUserUserGraphBuilder") - ) - - val unifiedUserActionToUserVideoGraphBuilder = new UnifiedUserActionToUserVideoGraphBuilder( - userTweetEntityEdgeBuilder = userTweetEntityEdgeBuilder - )(statsReceiver.scope("UnifiedUserActionToUserVideoGraphBuilder")) - - val unifiedUserActionToUserAdGraphBuilder = new UnifiedUserActionToUserAdGraphBuilder( - userTweetEntityEdgeBuilder = userTweetEntityEdgeBuilder - )(statsReceiver.scope("UnifiedUserActionToUserAdGraphBuilder")) - - val unifiedUserActionToUserTweetGraphPlusBuilder = - new UnifiedUserActionToUserTweetGraphPlusBuilder( - userTweetEntityEdgeBuilder = userTweetEntityEdgeBuilder - )(statsReceiver.scope("UnifiedUserActionToUserTweetGraphPlusBuilder")) - - // Processors - val tweetEventProcessor = new TweetEventProcessor( - eventBusStreamName = s"recos_injector_tweet_events_$environment", - thriftStruct = TweetEvent, - serviceIdentifier = serviceIdentifier, - userUserGraphMessageBuilder = tweetToUserUserMessageBuilder, - userUserGraphTopic = KafkaEventPublisher.UserUserTopic, - userTweetEntityGraphMessageBuilder = tweetEventToUserTweetEntityGraphBuilder, - userTweetEntityGraphTopic = KafkaEventPublisher.UserTweetEntityTopic, - kafkaEventPublisher = kafkaEventPublisher, - socialGraph = socialGraph, - tweetypie = tweetypie, - gizmoduck = gizmoduck - )(statsReceiver.scope("TweetEventProcessor")) - - val timelineEventProcessor = new TimelineEventProcessor( - eventBusStreamName = s"recos_injector_timeline_events_prototype_$environment", - thriftStruct = TimelineEvent, - serviceIdentifier = serviceIdentifier, - kafkaEventPublisher = kafkaEventPublisher, - userTweetEntityGraphTopic = KafkaEventPublisher.UserTweetEntityTopic, - userTweetEntityGraphMessageBuilder = timelineToUserTweetEntityMessageBuilder, - decider = config.recosInjectorDecider, - gizmoduck = gizmoduck, - tweetypie = tweetypie - )(statsReceiver.scope("TimelineEventProcessor")) - - val eventBusProcessors = Seq( - timelineEventProcessor, - socialWriteEventProcessor, - tweetEventProcessor - ) - - val uuaProcessor = new UnifiedUserActionProcessor( - gizmoduck = gizmoduck, - tweetypie = tweetypie, - kafkaEventPublisher = kafkaEventPublisher, - userVideoGraphTopic = KafkaEventPublisher.UserVideoTopic, - userVideoGraphBuilder = unifiedUserActionToUserVideoGraphBuilder, - userAdGraphTopic = KafkaEventPublisher.UserAdTopic, - userAdGraphBuilder = unifiedUserActionToUserAdGraphBuilder, - userTweetGraphPlusTopic = KafkaEventPublisher.UserTweetPlusTopic, - userTweetGraphPlusBuilder = unifiedUserActionToUserTweetGraphPlusBuilder)( - statsReceiver.scope("UnifiedUserActionProcessor")) - - val uuaConsumer = new UnifiedUserActionsConsumer(uuaProcessor, truststoreLocation()) - - // Start-up init and graceful shutdown setup - - // wait a bit for services to be ready - Thread.sleep(5000L) - - log.info("Starting the event processors") - eventBusProcessors.foreach(_.start()) - - log.info("Starting the uua processors") - uuaConsumer.atLeastOnceProcessor.start() - - this.addAdminRoute(ElfOwlFilter.getPostbackRoute()) - - onExit { - log.info("Shutting down the event processors") - eventBusProcessors.foreach(_.stop()) - log.info("Shutting down the uua processors") - uuaConsumer.atLeastOnceProcessor.close() - log.info("done exit") - } - - // Wait on the thriftServer so that shutdownTimeout is respected. - Await.result(adminHttpServer) - } -} diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/clients/BUILD b/recos-injector/server/src/main/scala/com/twitter/recosinjector/clients/BUILD deleted file mode 100644 index 9b0d8be74..000000000 --- a/recos-injector/server/src/main/scala/com/twitter/recosinjector/clients/BUILD +++ /dev/null @@ -1,20 +0,0 @@ -scala_library( - platform = "java11", - strict_deps = False, - tags = ["bazel-compatible"], - dependencies = [ - "3rdparty/jvm/com/twitter/storehaus:core", - "finagle/finagle-memcached/src/main/scala", - "finagle/finagle-stats", - "frigate/frigate-common/src/main/scala/com/twitter/frigate/common/base", - "frigate/frigate-common/src/main/scala/com/twitter/frigate/common/util", - "servo/repo/src/main/scala", - "src/thrift/com/twitter/gizmoduck:thrift-scala", - "src/thrift/com/twitter/gizmoduck:user-thrift-scala", - "src/thrift/com/twitter/recos:recos-internal-scala", - "src/thrift/com/twitter/socialgraph:thrift-scala", - "src/thrift/com/twitter/tweetypie:service-scala", - "stitch/stitch-tweetypie/src/main/scala", - "util/util-logging/src/main/scala", - ], -) diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/clients/BUILD.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/clients/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..2750e55a2c5f483a30ecef7cbe562c97d8221c8d GIT binary patch literal 36925 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 literal 0 HcmV?d00001 diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/clients/Gizmoduck.scala b/recos-injector/server/src/main/scala/com/twitter/recosinjector/clients/Gizmoduck.scala deleted file mode 100644 index f6806a7f5..000000000 --- a/recos-injector/server/src/main/scala/com/twitter/recosinjector/clients/Gizmoduck.scala +++ /dev/null @@ -1,26 +0,0 @@ -package com.twitter.recosinjector.clients - -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.gizmoduck.thriftscala.User -import com.twitter.logging.Logger -import com.twitter.storehaus.ReadableStore -import com.twitter.util.Future - -class Gizmoduck( - userStore: ReadableStore[Long, User] -)( - implicit statsReceiver: StatsReceiver) { - private val log = Logger() - private val stats = statsReceiver.scope(this.getClass.getSimpleName) - - def getUser(userId: Long): Future[Option[User]] = { - userStore - .get(userId) - .rescue { - case e => - stats.scope("getUserFailure").counter(e.getClass.getSimpleName).incr() - log.error(s"Failed with message ${e.toString}") - Future.None - } - } -} diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/clients/RecosHoseEntitiesCache.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/clients/RecosHoseEntitiesCache.docx new file mode 100644 index 0000000000000000000000000000000000000000..6190ac73e0f6918929af59d461a63596f4c33dd0 GIT binary patch literal 38444 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 j56%a-@U01dOtJ0Rp|Qa(U entity) mapping in this cache. The actual entity values can be recovered - * by the graph service at serving time using this cache. - */ -class RecosHoseEntitiesCache(client: Client) { - import RecosHoseEntitiesCache._ - - private def isEntityWithinTTL(entity: RecosHoseEntity, ttlInMillis: Long): Boolean = { - entity.timestamp.exists(timestamp => Time.now.inMilliseconds - timestamp <= ttlInMillis) - } - - /** - * Add a new RecosHoseEntity into RecosHoseEntities - */ - private def updateRecosHoseEntities( - existingEntitiesOpt: Option[RecosHoseEntities], - newEntityString: String, - stats: StatsReceiver - ): RecosHoseEntities = { - val existingEntities = existingEntitiesOpt.map(_.entities).getOrElse(Nil) - - // Discard expired and duplicate existing entities - val validExistingEntities = existingEntities - .filter(entity => isEntityWithinTTL(entity, EntityTTL.inMillis)) - .filter(_.entity != newEntityString) - - val newRecosHoseEntity = RecosHoseEntity(newEntityString, Some(Time.now.inMilliseconds)) - RecosHoseEntities(validExistingEntities :+ newRecosHoseEntity) - } - - private def getRecosHoseEntitiesCache( - cacheEntries: Seq[CacheEntityEntry], - stats: StatsReceiver - ): Future[Map[String, Option[RecosHoseEntities]]] = { - client - .get(cacheEntries.map(_.fullKey)) - .map(_.map { - case (cacheKey, buf) => - val recosHoseEntitiesTry = EntitiesSerializer.from(Buf.ByteArray.Owned.extract(buf)) - if (recosHoseEntitiesTry.isThrow) { - stats.counter("cache_get_deserialization_failure").incr() - } - cacheKey -> recosHoseEntitiesTry.toOption - }) - .onSuccess { _ => stats.counter("get_cache_success").incr() } - .onFailure { ex => - stats.scope("get_cache_failure").counter(ex.getClass.getSimpleName).incr() - } - } - - private def putRecosHoseEntitiesCache( - cacheKey: String, - recosHoseEntities: RecosHoseEntities, - stats: StatsReceiver - ): Unit = { - val serialized = EntitiesSerializer.to(recosHoseEntities) - if (serialized.isThrow) { - stats.counter("cache_put_serialization_failure").incr() - } - serialized.toOption.map { bytes => - client - .set(cacheKey, 0, EntityTTL.fromNow, Buf.ByteArray.Owned(bytes)) - .onSuccess { _ => stats.counter("put_cache_success").incr() } - .onFailure { ex => - stats.scope("put_cache_failure").counter(ex.getClass.getSimpleName).incr() - } - } - } - - /** - * Store a list of new entities into the cache by their cacheKeys, and remove expired/invalid - * values in the existing cache entries at the same time - */ - def updateEntitiesCache( - newCacheEntries: Seq[CacheEntityEntry], - stats: StatsReceiver - ): Future[Unit] = { - stats.counter("update_cache_request").incr() - getRecosHoseEntitiesCache(newCacheEntries, stats) - .map { existingCacheEntries => - newCacheEntries.foreach { newCacheEntry => - val fullKey = newCacheEntry.fullKey - val existingRecosHoseEntities = existingCacheEntries.get(fullKey).flatten - stats.stat("num_existing_entities").add(existingRecosHoseEntities.size) - if (existingRecosHoseEntities.isEmpty) { - stats.counter("existing_entities_empty").incr() - } - - val updatedRecosHoseEntities = updateRecosHoseEntities( - existingRecosHoseEntities, - newCacheEntry.entity, - stats - ) - stats.stat("num_updated_entities").add(updatedRecosHoseEntities.entities.size) - - if (updatedRecosHoseEntities.entities.nonEmpty) { - putRecosHoseEntitiesCache(fullKey, updatedRecosHoseEntities, stats) - } - } - } - .onSuccess { _ => stats.counter("update_cache_success").incr() } - .onFailure { ex => - stats.scope("update_cache_failure").counter(ex.getClass.getSimpleName).incr() - } - } -} diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/clients/SocialGraph.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/clients/SocialGraph.docx new file mode 100644 index 0000000000000000000000000000000000000000..a3729e03f1a8039abf88283d97539a735f2fe0ea GIT binary patch literal 37601 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 - SrcRelationship( - source = userId, - relationshipType = relationshipType, - hasRelationship = hasRelationship, - targets = Some(ids) - ) - }.toSeq - val idsRequest = IdsRequest( - relationships = relationships, - pageRequest = SelectAllPageRequest, - context = lookupContext - ) - socialGraphIdStore - .get(idsRequest) - .map { _.map(_.ids).getOrElse(Nil) } - .rescue { - case e => - stats.scope("fetchIdsFailure").counter(e.getClass.getSimpleName).incr() - log.error(s"Failed with message ${e.toString}") - Future.Nil - } - } - } - - // which of the users in candidates follow userId and have not muted userId - def followedByNotMutedBy(userId: Long, candidates: Seq[Long]): Future[Seq[Long]] = { - fetchIdsFromSocialGraph( - userId, - candidates, - FollowedByNotMutedRelationships, - IncludeInactiveLookupContext, - followedByNotMutedByStats - ) - } - -} - -object SocialGraph { - val SelectAllPageRequest = Some(PageRequest(selectAll = Some(true))) - - val IncludeInactiveLookupContext = Some(LookupContext(includeInactive = true)) - val IncludeInactiveUnionLookupContext = Some( - LookupContext(includeInactive = true, performUnion = Some(true)) - ) - - val FollowedByNotMutedRelationships: Map[RelationshipType, Boolean] = Map( - RelationshipType.FollowedBy -> true, - RelationshipType.MutedBy -> false - ) -} diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/clients/Tweetypie.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/clients/Tweetypie.docx new file mode 100644 index 0000000000000000000000000000000000000000..d1a180e60fced3f2302afe8229bca07bd58ea9ed GIT binary patch literal 37123 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 RL7-eE$dCxk9z8uE9stJ>Zj%52 literal 0 HcmV?d00001 diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/clients/Tweetypie.scala b/recos-injector/server/src/main/scala/com/twitter/recosinjector/clients/Tweetypie.scala deleted file mode 100644 index 9e81f6121..000000000 --- a/recos-injector/server/src/main/scala/com/twitter/recosinjector/clients/Tweetypie.scala +++ /dev/null @@ -1,30 +0,0 @@ -package com.twitter.recosinjector.clients - -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.stitch.tweetypie.TweetyPie.{TweetyPieException, TweetyPieResult} -import com.twitter.storehaus.ReadableStore -import com.twitter.tweetypie.thriftscala.Tweet -import com.twitter.util.Future - -class Tweetypie( - tweetyPieStore: ReadableStore[Long, TweetyPieResult] -)( - implicit statsReceiver: StatsReceiver) { - private val stats = statsReceiver.scope(this.getClass.getSimpleName) - private val failureStats = stats.scope("getTweetFailure") - - def getTweet(tweetId: Long): Future[Option[Tweet]] = { - tweetyPieStore - .get(tweetId) - .map { _.map(_.tweet) } - .rescue { - case e: TweetyPieException => - // Usually results from trying to query a protected or unsafe tweet - failureStats.scope("TweetyPieException").counter(e.result.tweetState.toString).incr() - Future.None - case e => - failureStats.counter(e.getClass.getSimpleName).incr() - Future.None - } - } -} diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/clients/UrlResolver.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/clients/UrlResolver.docx new file mode 100644 index 0000000000000000000000000000000000000000..bf2147a3b92efae84e2918979286232ca25b7c45 GIT binary patch literal 37877 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 z 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 literal 0 HcmV?d00001 diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/clients/UrlResolver.scala b/recos-injector/server/src/main/scala/com/twitter/recosinjector/clients/UrlResolver.scala deleted file mode 100644 index 95817181d..000000000 --- a/recos-injector/server/src/main/scala/com/twitter/recosinjector/clients/UrlResolver.scala +++ /dev/null @@ -1,105 +0,0 @@ -package com.twitter.recosinjector.clients - -import com.twitter.conversions.DurationOps._ -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.finagle.util.DefaultTimer -import com.twitter.frigate.common.util.{SnowflakeUtils, UrlInfo} -import com.twitter.storehaus.{FutureOps, ReadableStore} -import com.twitter.util.{Duration, Future, Timer} - -class UrlResolver( - urlInfoStore: ReadableStore[String, UrlInfo] -)( - implicit statsReceiver: StatsReceiver) { - private val EmptyFutureMap = Future.value(Map.empty[String, String]) - private val stats = statsReceiver.scope(this.getClass.getSimpleName) - private val twitterResolvedUrlCounter = stats.counter("twitterResolvedUrl") - private val resolvedUrlCounter = stats.counter("resolvedUrl") - private val noResolvedUrlCounter = stats.counter("noResolvedUrl") - - private val numNoDelayCounter = stats.counter("urlResolver_no_delay") - private val numDelayCounter = stats.counter("urlResolver_delay") - - implicit val timer: Timer = DefaultTimer - - /** - * Get the resolved URL map of the input raw URLs - * - * @param rawUrls list of raw URLs to query - * @return map of raw URL to resolved URL - */ - def getResolvedUrls(rawUrls: Set[String]): Future[Map[String, String]] = { - FutureOps - .mapCollect(urlInfoStore.multiGet[String](rawUrls)) - .map { resolvedUrlsMap => - resolvedUrlsMap.flatMap { - case ( - url, - Some( - UrlInfo( - Some(resolvedUrl), - Some(_), - Some(domain), - _, - _, - _, - _, - Some(_), - _, - _, - _, - _))) => - if (domain == "Twitter") { // Filter out Twitter based URLs - twitterResolvedUrlCounter.incr() - None - } else { - resolvedUrlCounter.incr() - Some(url -> resolvedUrl) - } - case _ => - noResolvedUrlCounter.incr() - None - } - } - } - - /** - * Get resolved url maps given a list of urls, grouping urls that point to the same webpage - */ - def getResolvedUrls(urls: Seq[String], tweetId: Long): Future[Map[String, String]] = { - if (urls.isEmpty) { - EmptyFutureMap - } else { - Future - .sleep(getUrlResolverDelayDuration(tweetId)) - .before(getResolvedUrls(urls.toSet)) - } - } - - /** - * Given a tweet, return the amount of delay needed before attempting to resolve the Urls - */ - private def getUrlResolverDelayDuration( - tweetId: Long - ): Duration = { - val urlResolverDelaySinceCreation = 12.seconds - val urlResolverDelayDuration = 4.seconds - val noDelay = 0.seconds - - // Check whether the tweet was created more than the specified delay duration before now. - // If the tweet ID is not based on Snowflake, this is false, and the delay is applied. - val isCreatedBeforeDelayThreshold = SnowflakeUtils - .tweetCreationTime(tweetId) - .map(_.untilNow) - .exists(_ > urlResolverDelaySinceCreation) - - if (isCreatedBeforeDelayThreshold) { - numNoDelayCounter.incr() - noDelay - } else { - numDelayCounter.incr() - urlResolverDelayDuration - } - } - -} diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/config/BUILD b/recos-injector/server/src/main/scala/com/twitter/recosinjector/config/BUILD deleted file mode 100644 index 90dfe6868..000000000 --- a/recos-injector/server/src/main/scala/com/twitter/recosinjector/config/BUILD +++ /dev/null @@ -1,36 +0,0 @@ -scala_library( - platform = "java11", - strict_deps = False, - tags = ["bazel-compatible"], - dependencies = [ - "3rdparty/jvm/com/twitter/bijection:scrooge", - "3rdparty/jvm/com/twitter/storehaus:core", - "abdecider", - "decider/src/main/scala", - "finagle/finagle-memcached/src/main/scala", - "finagle/finagle-stats", - "frigate/frigate-common/src/main/scala/com/twitter/frigate/common/store", - "frigate/frigate-common/src/main/scala/com/twitter/frigate/common/util", - "hermit/hermit-core:store", - "hermit/hermit-core/src/main/scala/com/twitter/hermit/store/common", - "hermit/hermit-core/src/main/scala/com/twitter/hermit/store/gizmoduck", - "hermit/hermit-core/src/main/scala/com/twitter/hermit/store/tweetypie", - "recos-injector/server/src/main/scala/com/twitter/recosinjector/decider", - "scribelib/validators/src/main/scala/com/twitter/scribelib/validators", - "src/scala/com/twitter/storehaus_internal/memcache", - "src/scala/com/twitter/storehaus_internal/memcache/config", - "src/scala/com/twitter/storehaus_internal/util", - "src/thrift/com/twitter/gizmoduck:thrift-java", - "src/thrift/com/twitter/gizmoduck:thrift-scala", - "src/thrift/com/twitter/gizmoduck:user-thrift-scala", - "src/thrift/com/twitter/socialgraph:thrift-scala", - "src/thrift/com/twitter/spam/rtf:safety-level-scala", - "src/thrift/com/twitter/tweetypie:service-scala", - "stitch/stitch-core", - "stitch/stitch-socialgraph", - "stitch/stitch-storehaus/src/main/scala", - "stitch/stitch-tweetypie/src/main/scala", - "util/util-hashing/src/main/scala", - "util/util-logging/src/main/scala", - ], -) diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/config/BUILD.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/config/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..e4d1a9e6311a04d83dbb4580fd21f9fa53128fc1 GIT binary patch literal 37087 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

    )+B0^-&by%IFVz{lg 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 K2Uq&{t^WbiDK%^W literal 0 HcmV?d00001 diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/config/DeployConfig.scala b/recos-injector/server/src/main/scala/com/twitter/recosinjector/config/DeployConfig.scala deleted file mode 100644 index 1e547681b..000000000 --- a/recos-injector/server/src/main/scala/com/twitter/recosinjector/config/DeployConfig.scala +++ /dev/null @@ -1,215 +0,0 @@ -package com.twitter.recosinjector.config - -import com.twitter.bijection.scrooge.BinaryScalaCodec -import com.twitter.conversions.DurationOps._ -import com.twitter.finagle.client.ClientRegistry -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.store.TweetCreationTimeMHStore -import com.twitter.frigate.common.util.Finagle._ -import com.twitter.frigate.common.util.{UrlInfo, UrlInfoInjection, UrlResolver} -import com.twitter.gizmoduck.thriftscala.{LookupContext, QueryFields, User, UserService} -import com.twitter.hermit.store.common.{ObservedCachedReadableStore, ObservedMemcachedReadableStore} -import com.twitter.hermit.store.gizmoduck.GizmoduckUserStore -import com.twitter.hermit.store.tweetypie.TweetyPieStore -import com.twitter.logging.Logger -import com.twitter.pink_floyd.thriftscala.{ClientIdentifier, Storer} -import com.twitter.socialgraph.thriftscala.{IdsRequest, SocialGraphService} -import com.twitter.spam.rtf.thriftscala.SafetyLevel -import com.twitter.stitch.socialgraph.SocialGraph -import com.twitter.stitch.storehaus.ReadableStoreOfStitch -import com.twitter.stitch.tweetypie.TweetyPie.TweetyPieResult -import com.twitter.storage.client.manhattan.kv.{ - ManhattanKVClient, - ManhattanKVClientMtlsParams, - ManhattanKVEndpointBuilder -} -import com.twitter.storehaus.ReadableStore -import com.twitter.tweetypie.thriftscala.{GetTweetOptions, TweetService} -import com.twitter.util.Future - -/* - * Any finagle clients should not be defined as lazy. If defined lazy, - * ClientRegistry.expAllRegisteredClientsResolved() call in init will not ensure that the clients - * are active before thrift endpoint is active. We want the clients to be active, because zookeeper - * resolution triggered by first request(s) might result in the request(s) failing. - */ -trait DeployConfig extends Config with CacheConfig { - implicit def statsReceiver: StatsReceiver - - def log: Logger - - // Clients - val gizmoduckClient = new UserService.FinagledClient( - readOnlyThriftService( - "gizmoduck", - "/s/gizmoduck/gizmoduck", - statsReceiver, - recosInjectorThriftClientId, - requestTimeout = 450.milliseconds, - mTLSServiceIdentifier = Some(serviceIdentifier) - ) - ) - val tweetyPieClient = new TweetService.FinagledClient( - readOnlyThriftService( - "tweetypie", - "/s/tweetypie/tweetypie", - statsReceiver, - recosInjectorThriftClientId, - requestTimeout = 450.milliseconds, - mTLSServiceIdentifier = Some(serviceIdentifier) - ) - ) - - val sgsClient = new SocialGraphService.FinagledClient( - readOnlyThriftService( - "socialgraph", - "/s/socialgraph/socialgraph", - statsReceiver, - recosInjectorThriftClientId, - requestTimeout = 450.milliseconds, - mTLSServiceIdentifier = Some(serviceIdentifier) - ) - ) - - val pinkStoreClient = new Storer.FinagledClient( - readOnlyThriftService( - "pink_store", - "/s/spiderduck/pink-store", - statsReceiver, - recosInjectorThriftClientId, - requestTimeout = 450.milliseconds, - mTLSServiceIdentifier = Some(serviceIdentifier) - ) - ) - - // Stores - private val _gizmoduckStore = { - val queryFields: Set[QueryFields] = Set( - QueryFields.Discoverability, - QueryFields.Labels, - QueryFields.Safety - ) - val context: LookupContext = LookupContext( - includeDeactivated = true, - safetyLevel = Some(SafetyLevel.Recommendations) - ) - - GizmoduckUserStore( - client = gizmoduckClient, - queryFields = queryFields, - context = context, - statsReceiver = statsReceiver - ) - } - - override val userStore: ReadableStore[Long, User] = { - // memcache based cache - ObservedMemcachedReadableStore.fromCacheClient( - backingStore = _gizmoduckStore, - cacheClient = recosInjectorCoreSvcsCacheClient, - ttl = 2.hours - )( - valueInjection = BinaryScalaCodec(User), - statsReceiver = statsReceiver.scope("UserStore"), - keyToString = { k: Long => - s"usri/$k" - } - ) - } - - /** - * TweetyPie store, used to fetch tweet objects when unavailable, and also as a source of - * tweet SafetyLevel filtering. - * Note: we do NOT cache TweetyPie calls, as it makes tweet SafetyLevel filtering less accurate. - * TweetyPie QPS is < 20K/cluster. - * More info is here: - * https://cgit.twitter.biz/source/tree/src/thrift/com/twitter/spam/rtf/safety_level.thrift - */ - override val tweetyPieStore: ReadableStore[Long, TweetyPieResult] = { - val getTweetOptions = Some( - GetTweetOptions( - includeCards = true, - safetyLevel = Some(SafetyLevel.RecosWritePath) - ) - ) - TweetyPieStore( - tweetyPieClient, - getTweetOptions, - convertExceptionsToNotFound = false // Do not suppress TweetyPie errors. Leave it to caller - ) - } - - private val _urlInfoStore = { - //Initialize pink store client, for parsing url - UrlResolver( - pinkStoreClient, - statsReceiver.scope("urlFetcher"), - clientId = ClientIdentifier.Recoshose - ) - } - - override val urlInfoStore: ReadableStore[String, UrlInfo] = { - // memcache based cache - val memcachedStore = ObservedMemcachedReadableStore.fromCacheClient( - backingStore = _urlInfoStore, - cacheClient = recosInjectorCoreSvcsCacheClient, - ttl = 2.hours - )( - valueInjection = UrlInfoInjection, - statsReceiver = statsReceiver.scope("UrlInfoStore"), - keyToString = { k: String => - s"uisri/$k" - } - ) - - ObservedCachedReadableStore.from( - memcachedStore, - ttl = 1.minutes, - maxKeys = 1e5.toInt, - windowSize = 10000L, - cacheName = "url_store_in_proc_cache" - )(statsReceiver.scope("url_store_in_proc_cache")) - } - - override val socialGraphIdStore = ReadableStoreOfStitch { idsRequest: IdsRequest => - SocialGraph(sgsClient).ids(idsRequest) - } - - /** - * MH Store for updating the last time user created a tweet - */ - val tweetCreationStore: TweetCreationTimeMHStore = { - val client = ManhattanKVClient( - appId = "recos_tweet_creation_info", - dest = "/s/manhattan/omega.native-thrift", - mtlsParams = ManhattanKVClientMtlsParams(serviceIdentifier) - ) - - val endpoint = ManhattanKVEndpointBuilder(client) - .defaultMaxTimeout(700.milliseconds) - .statsReceiver( - statsReceiver - .scope(serviceIdentifier.zone) - .scope(serviceIdentifier.environment) - .scope("recos_injector_tweet_creation_info_store") - ) - .build() - - val dataset = if (serviceIdentifier.environment == "prod") { - "recos_injector_tweet_creation_info" - } else { - "recos_injector_tweet_creation_info_staging" - } - - new TweetCreationTimeMHStore( - cluster = serviceIdentifier.zone, - endpoint = endpoint, - dataset = dataset, - writeTtl = Some(14.days), - statsReceiver.scope("recos_injector_tweet_creation_info_store") - ) - } - - // wait for all serversets to populate - override def init(): Future[Unit] = ClientRegistry.expAllRegisteredClientsResolved().unit -} diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/config/ProdConfig.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/config/ProdConfig.docx new file mode 100644 index 0000000000000000000000000000000000000000..1dac7217bac82765fa56f46f0e51cf81a71afd33 GIT binary patch literal 37148 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 xe=??RC}2kIxkhwpKGU9%$k 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 literal 0 HcmV?d00001 diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/config/ProdConfig.scala b/recos-injector/server/src/main/scala/com/twitter/recosinjector/config/ProdConfig.scala deleted file mode 100644 index 7ead5c34d..000000000 --- a/recos-injector/server/src/main/scala/com/twitter/recosinjector/config/ProdConfig.scala +++ /dev/null @@ -1,29 +0,0 @@ -package com.twitter.recosinjector.config - -import com.twitter.finagle.mtls.authentication.ServiceIdentifier -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.finagle.thrift.ClientId -import com.twitter.logging.Logger -import com.twitter.recosinjector.decider.RecosInjectorDecider - -case class ProdConfig( - override val serviceIdentifier: ServiceIdentifier -)(implicit val statsReceiver: StatsReceiver) extends { - // Due to trait initialization logic in Scala, any abstract members declared in Config or - // DeployConfig should be declared in this block. Otherwise the abstract member might initialize - // to null if invoked before before object creation finishing. - - val recosInjectorThriftClientId = ClientId("recos-injector.prod") - - val outputKafkaTopicPrefix = "recos_injector" - - val log = Logger("ProdConfig") - - val recosInjectorCoreSvcsCacheDest = "/srv#/prod/local/cache/recos_metadata" - - val recosInjectorDecider = RecosInjectorDecider( - isProd = true, - dataCenter = serviceIdentifier.zone - ) - -} with DeployConfig diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/config/StagingConfig.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/config/StagingConfig.docx new file mode 100644 index 0000000000000000000000000000000000000000..bf5c1529e866c417ebd5ab48d49083d350b6f0e1 GIT binary patch literal 37183 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 literal 0 HcmV?d00001 diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/config/StagingConfig.scala b/recos-injector/server/src/main/scala/com/twitter/recosinjector/config/StagingConfig.scala deleted file mode 100644 index 1caabea8e..000000000 --- a/recos-injector/server/src/main/scala/com/twitter/recosinjector/config/StagingConfig.scala +++ /dev/null @@ -1,33 +0,0 @@ -package com.twitter.recosinjector.config - -import com.twitter.finagle.mtls.authentication.ServiceIdentifier -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.finagle.thrift.ClientId -import com.twitter.logging.Logger -import com.twitter.recosinjector.decider.RecosInjectorDecider - -case class StagingConfig( - override val serviceIdentifier: ServiceIdentifier -)( - implicit val statsReceiver: StatsReceiver) - extends { - // Due to trait initialization logic in Scala, any abstract members declared in Config or - // DeployConfig should be declared in this block. Otherwise the abstract member might initialize - // to null if invoked before before object creation finishing. - - val recosInjectorThriftClientId = ClientId("recos-injector.staging") - - val outputKafkaTopicPrefix = "staging_recos_injector" - - val log = Logger("StagingConfig") - - val recosInjectorCoreSvcsCacheDest = "/srv#/test/local/cache/twemcache_recos" - - val recosInjectorDecider = RecosInjectorDecider( - isProd = false, - dataCenter = serviceIdentifier.zone - ) - - val abDeciderLoggerNode = "staging_abdecider_scribe" - -} with DeployConfig diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/decider/BUILD b/recos-injector/server/src/main/scala/com/twitter/recosinjector/decider/BUILD deleted file mode 100644 index 0a728c357..000000000 --- a/recos-injector/server/src/main/scala/com/twitter/recosinjector/decider/BUILD +++ /dev/null @@ -1,7 +0,0 @@ -scala_library( - platform = "java11", - tags = ["bazel-compatible"], - dependencies = [ - "decider/src/main/scala", - ], -) diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/decider/BUILD.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/decider/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..caa8bb615e0457e4d1fa6fa1d0eca96320b22af2 GIT binary patch literal 36729 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 literal 0 HcmV?d00001 diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/decider/RecosInjectorDecider.scala b/recos-injector/server/src/main/scala/com/twitter/recosinjector/decider/RecosInjectorDecider.scala deleted file mode 100644 index d9bb86bf1..000000000 --- a/recos-injector/server/src/main/scala/com/twitter/recosinjector/decider/RecosInjectorDecider.scala +++ /dev/null @@ -1,33 +0,0 @@ -package com.twitter.recosinjector.decider - -import com.twitter.decider.{Decider, DeciderFactory, RandomRecipient, Recipient} - -case class RecosInjectorDecider(isProd: Boolean, dataCenter: String) { - lazy val decider: Decider = DeciderFactory( - Some("config/decider.yml"), - Some(getOverlayPath(isProd, dataCenter)) - )() - - private def getOverlayPath(isProd: Boolean, dataCenter: String): String = { - if (isProd) { - s"/usr/local/config/overlays/recos-injector/recos-injector/prod/$dataCenter/decider_overlay.yml" - } else { - s"/usr/local/config/overlays/recos-injector/recos-injector/staging/$dataCenter/decider_overlay.yml" - } - } - - def getDecider: Decider = decider - - def isAvailable(feature: String, recipient: Option[Recipient]): Boolean = { - decider.isAvailable(feature, recipient) - } - - def isAvailable(feature: String): Boolean = isAvailable(feature, Some(RandomRecipient)) -} - -object RecosInjectorDeciderConstants { - val TweetEventTransformerUserTweetEntityEdgesDecider = - "tweet_event_transformer_user_tweet_entity_edges" - val EnableEmitTweetEdgeFromReply = "enable_emit_tweet_edge_from_reply" - val EnableUnfavoriteEdge = "enable_unfavorite_edge" -} diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/BUILD b/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/BUILD deleted file mode 100644 index c19b2d96e..000000000 --- a/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/BUILD +++ /dev/null @@ -1,23 +0,0 @@ -scala_library( - platform = "java11", - strict_deps = False, - tags = ["bazel-compatible"], - dependencies = [ - "3rdparty/jvm/com/twitter/storehaus:core", - "finagle/finagle-stats", - "frigate/frigate-common/src/main/scala/com/twitter/frigate/common/store", - "hermit/hermit-core/src/main/scala/com/twitter/hermit/predicate/socialgraph", - "recos-injector/server/src/main/scala/com/twitter/recosinjector/clients", - "recos-injector/server/src/main/scala/com/twitter/recosinjector/decider", - "recos-injector/server/src/main/scala/com/twitter/recosinjector/filters", - "recos-injector/server/src/main/scala/com/twitter/recosinjector/publishers", - "recos-injector/server/src/main/scala/com/twitter/recosinjector/util", - "src/scala/com/twitter/recos/util:recos-util", - "src/thrift/com/twitter/recos:recos-injector-scala", - "src/thrift/com/twitter/recos:recos-internal-scala", - "src/thrift/com/twitter/socialgraph:thrift-scala", - "src/thrift/com/twitter/timelineservice/server/internal:thrift-scala", - "src/thrift/com/twitter/tweetypie:events-scala", - "src/thrift/com/twitter/tweetypie:tweet-scala", - ], -) diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/BUILD.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..658148858e9df6cef17c0b5025969ce11293cccf GIT binary patch literal 36965 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%0D84t}e&hT-;BTI5Wg21U^eHyLVVK~s-_}rVoh#%X zP;V|TVje^G$oKSVo@(S0J0O5QbAHUC%q`>B(8EW}*jm%m3?|7tC|4#8_s+w&a{l^( zMC{%bvC|ck+eM|KfHzULn1$1S{OIH*}Co@jU89cu>a<}@!fxF*8NKg_le{6zI_f* z>VEcgIz_N;P2z-dY;Cb>GsSnc{Z4tXrRwMCH-Nqi`1y4;on*>yH9f}cB-Zofob=oC z))P~;XhaD-4C#vCFPzg;yimm*FTQpBS^l>NQRX5!S=dVEBH3By-bZtiNG5LOy}v%f zG*H6qKRsAMj40>8y9D|yk;i$To8t#tkg*0d8lzh0;C^%9E;Njeb9;obE&;?92b5@| zC@WJ636pym$yr;G9j%}&Yo4HSZV8otzLcfReCHe5U?r02Qu|4WS0rMV=$8l4EYy4r zTzL&fDR47DfP=Jj&DOSpj6^%gqY`6aw<~Dr6g{j{{GkS6$M;*bHo|NB`%5X<0fcM~ zN{@Vu-o!3S4?B^-`H;`z+fp(g@xMxV>Y?nF$yhvbAhAsUA~5}CBB?+26o2U^Qj+0&O( zculZRG{}b^8kPA~I>$*{_*FQMYI}Ar&YI;NUBfW&-m&3bn7d7(9fTbje&A*L)jUyD z?(9wM45;GHvYm1;cSTS~=Ts85ByyhM6CP4{#1Iz`ZoNiu8pYUwBA-W4{WKm^qs|V0 z?eRWH)a_&I!dpVi%}e#wT;rf&p;?ehL;vY4(PfGI*vtFQLeOq#ms1nEM~BnnVFfHC5xGvWw9;Z@xAYR`|kU9 z_m2s+LJ^~^%sky^>Qv9^+Cg&1?T5uUU#RoY707XqzOmOs8Xj<}|Fq?*_bd+BTyj5c z?IiPYj%&eY*t*C}$>Ax2KN_8FHq-~z7pyzc7~d19N|RlxOdy0r^&;#(h&CrXa@H8I z_O|cv5h=b)MRRCWk}-ambpLt2l9U!X_4&rqfZY)ED-WH2$$nD*{7qw(6Yq*zK(c+2 ziF_b%A6UbR8-orYFx=QM_Nf&^R=bMS#T9L(DwzO_I zt{7h;v^n+;+D~4Sn$z22tGurEU4l6McWY+d%oYtsJg`r0^?3uHF&8DInM4?aB-F%j)Cw z2sVz=?^jYExHEQEK}LuWR(G7%>gD5~C7j%LX>fDgyI01Y{=Qx@>`87&bau`cmpSQ6 zH>0|`IczT(dUnwneYpM#E>C%x6km0uCSJJ9IU^qYaGeQ{|FFqN?<@5+Y8! zkmdW*b)A@ZZ+Ekzd@)6At;MW@ge)Nv~N4weycJ<=-!zEs29`sC_9gKC!UaVSM||td(4tnEU9?U4a6MpCncNbF8t#=q9?C5 z{RglF-ic?F!SrP|!J~H;vW74cKFNm@oVWs$1!Px_^nGE+jkjl~Ut=SiKSx^e6Ml)J zpznLiM~$(vLQ$p5k(0uN$$TQAI`B)q2S*7pGeZ#{ZY080bvBiM@kj7VAgCq0dfJP9 zN{>zsotGgi$+)TiSqg>iS^q`POsx*N3s≥MNNgx3qGlWHq9vog=0@?@ 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 literal 0 HcmV?d00001 diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/Edges.scala b/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/Edges.scala deleted file mode 100644 index e7ccd4fb0..000000000 --- a/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/Edges.scala +++ /dev/null @@ -1,87 +0,0 @@ -package com.twitter.recosinjector.edges - -import com.twitter.recos.internal.thriftscala.RecosHoseMessage -import com.twitter.recos.recos_injector.thriftscala.{Features, UserTweetAuthorGraphMessage} -import com.twitter.recos.util.Action.Action -import com.twitter.recosinjector.util.TweetDetails -import scala.collection.Map - -trait Edge { - // RecosHoseMessage is the thrift struct that the graphs consume. - def convertToRecosHoseMessage: RecosHoseMessage - - // UserTweetAuthorGraphMessage is the thrift struct that user_tweet_author_graph consumes. - def convertToUserTweetAuthorGraphMessage: UserTweetAuthorGraphMessage -} - -/** - * Edge corresponding to UserTweetEntityEdge. - * It captures user-tweet interactions: Create, Like, Retweet, Reply etc. - */ -case class UserTweetEntityEdge( - sourceUser: Long, - targetTweet: Long, - action: Action, - cardInfo: Option[Byte], - metadata: Option[Long], - entitiesMap: Option[Map[Byte, Seq[Int]]], - tweetDetails: Option[TweetDetails]) - extends Edge { - - override def convertToRecosHoseMessage: RecosHoseMessage = { - RecosHoseMessage( - leftId = sourceUser, - rightId = targetTweet, - action = action.id.toByte, - card = cardInfo, - entities = entitiesMap, - edgeMetadata = metadata - ) - } - - private def getFeatures(tweetDetails: TweetDetails): Features = { - Features( - hasPhoto = Some(tweetDetails.hasPhoto), - hasVideo = Some(tweetDetails.hasVideo), - hasUrl = Some(tweetDetails.hasUrl), - hasHashtag = Some(tweetDetails.hasHashtag) - ) - } - - override def convertToUserTweetAuthorGraphMessage: UserTweetAuthorGraphMessage = { - UserTweetAuthorGraphMessage( - leftId = sourceUser, - rightId = targetTweet, - action = action.id.toByte, - card = cardInfo, - authorId = tweetDetails.flatMap(_.authorId), - features = tweetDetails.map(getFeatures) - ) - } -} - -/** - * Edge corresponding to UserUserGraph. - * It captures user-user interactions: Follow, Mention, Mediatag. - */ -case class UserUserEdge( - sourceUser: Long, - targetUser: Long, - action: Action, - metadata: Option[Long]) - extends Edge { - override def convertToRecosHoseMessage: RecosHoseMessage = { - RecosHoseMessage( - leftId = sourceUser, - rightId = targetUser, - action = action.id.toByte, - edgeMetadata = metadata - ) - } - - override def convertToUserTweetAuthorGraphMessage: UserTweetAuthorGraphMessage = { - throw new RuntimeException( - "convertToUserTweetAuthorGraphMessage not implemented in UserUserEdge.") - } - -} diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/EventToMessageBuilder.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/EventToMessageBuilder.docx new file mode 100644 index 0000000000000000000000000000000000000000..325ff5bfe3a01a441154cfa3c55cd226107cbdb8 GIT binary patch literal 37700 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⪚tmM3T5S4WDMEc9vP9$NZZIit=AP3cE76;M>I) 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 update event stats -> build edges -> filter edges - * - * Top-level statistics are provided for each step, such as latency and number of events - */ -trait EventToMessageBuilder[Event, E <: Edge] { - implicit val statsReceiver: StatsReceiver - - private lazy val processEventStats = statsReceiver.scope("process_event") - private lazy val numEventsStats = statsReceiver.counter("num_process_event") - private lazy val rejectEventStats = statsReceiver.counter("num_reject_event") - private lazy val buildEdgesStats = statsReceiver.scope("build") - private lazy val numAllEdgesStats = buildEdgesStats.counter("num_all_edges") - private lazy val filterEdgesStats = statsReceiver.scope("filter") - private lazy val numValidEdgesStats = statsReceiver.counter("num_valid_edges") - private lazy val numRecosHoseMessageStats = statsReceiver.counter("num_RecosHoseMessage") - - /** - * Given an incoming event, process and convert it into a sequence of RecosHoseMessages - * @param event - * @return - */ - def processEvent(event: Event): Future[Seq[Edge]] = { - track(processEventStats) { - shouldProcessEvent(event).flatMap { - case true => - numEventsStats.incr() - updateEventStatus(event) - for { - allEdges <- track(buildEdgesStats)(buildEdges(event)) - filteredEdges <- track(filterEdgesStats)(filterEdges(event, allEdges)) - } yield { - numAllEdgesStats.incr(allEdges.size) - numValidEdgesStats.incr(filteredEdges.size) - numRecosHoseMessageStats.incr(filteredEdges.size) - filteredEdges - } - case false => - rejectEventStats.incr() - Future.Nil - } - } - } - - /** - * Pre-process filter that determines whether the given event should be used to build edges. - * @param event - * @return - */ - def shouldProcessEvent(event: Event): Future[Boolean] - - /** - * Update cache/event logging related to the specific event. - * By default, no action will be taken. Override when necessary - * @param event - */ - def updateEventStatus(event: Event): Unit = {} - - /** - * Given an event, extract info and build a sequence of edges - * @param event - * @return - */ - def buildEdges(event: Event): Future[Seq[E]] - - /** - * Given a sequence of edges, filter and return the valid edges - * @param event - * @param edges - * @return - */ - def filterEdges(event: Event, edges: Seq[E]): Future[Seq[E]] -} diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/SocialWriteEventToUserUserGraphBuilder.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/SocialWriteEventToUserUserGraphBuilder.docx new file mode 100644 index 0000000000000000000000000000000000000000..237d327d67b8a50d1b05b41dba0b82c942c69de0 GIT binary patch literal 37544 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 literal 0 HcmV?d00001 diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/SocialWriteEventToUserUserGraphBuilder.scala b/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/SocialWriteEventToUserUserGraphBuilder.scala deleted file mode 100644 index edebbada1..000000000 --- a/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/SocialWriteEventToUserUserGraphBuilder.scala +++ /dev/null @@ -1,73 +0,0 @@ -package com.twitter.recosinjector.edges - -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.recos.util.Action -import com.twitter.socialgraph.thriftscala.{ - Action => SocialGraphAction, - FollowGraphEvent, - FollowType, - WriteEvent -} -import com.twitter.util.Future - -/** - * Converts a WriteEvent to UserUserGraph's messages, including Mention and Mediatag messages - */ -class SocialWriteEventToUserUserGraphBuilder()(override implicit val statsReceiver: StatsReceiver) - extends EventToMessageBuilder[WriteEvent, UserUserEdge] { - private val followOrFrictionlessFollowCounter = - statsReceiver.counter("num_follow_or_frictionless") - private val notFollowOrFrictionlessFollowCounter = - statsReceiver.counter("num_not_follow_or_frictionless") - private val followEdgeCounter = statsReceiver.counter("num_follow_edge") - - /** - * For now, we are only interested in Follow events - */ - override def shouldProcessEvent(event: WriteEvent): Future[Boolean] = { - event.action match { - case SocialGraphAction.Follow | SocialGraphAction.FrictionlessFollow => - followOrFrictionlessFollowCounter.incr() - Future(true) - case _ => - notFollowOrFrictionlessFollowCounter.incr() - Future(false) - } - } - - /** - * Determine whether a Follow event is valid/error free. - */ - private def isValidFollowEvent(followEvent: FollowGraphEvent): Boolean = { - followEvent.followType match { - case Some(FollowType.NormalFollow) | Some(FollowType.FrictionlessFollow) => - followEvent.result.validationError.isEmpty - case _ => - false - } - } - - override def buildEdges(event: WriteEvent): Future[Seq[UserUserEdge]] = { - val userUserEdges = event.follow - .map(_.collect { - case followEvent if isValidFollowEvent(followEvent) => - val sourceUserId = followEvent.result.request.source - val targetUserId = followEvent.result.request.target - followEdgeCounter.incr() - UserUserEdge( - sourceUserId, - targetUserId, - Action.Follow, - Some(System.currentTimeMillis()) - ) - }).getOrElse(Nil) - Future(userUserEdges) - } - - override def filterEdges( - event: WriteEvent, - edges: Seq[UserUserEdge] - ): Future[Seq[UserUserEdge]] = { - Future(edges) - } -} diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/TimelineEventToUserTweetEntityGraphBuilder.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/TimelineEventToUserTweetEntityGraphBuilder.docx new file mode 100644 index 0000000000000000000000000000000000000000..e7c03dbc2778b379da3ebf4250190d8c35310908 GIT binary patch literal 37362 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 G;sF3%E7#Nj literal 0 HcmV?d00001 diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/TimelineEventToUserTweetEntityGraphBuilder.scala b/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/TimelineEventToUserTweetEntityGraphBuilder.scala deleted file mode 100644 index 73411b510..000000000 --- a/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/TimelineEventToUserTweetEntityGraphBuilder.scala +++ /dev/null @@ -1,60 +0,0 @@ -package com.twitter.recosinjector.edges - -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.recos.util.Action -import com.twitter.recosinjector.util.TweetFavoriteEventDetails -import com.twitter.util.Future - -class TimelineEventToUserTweetEntityGraphBuilder( - userTweetEntityEdgeBuilder: UserTweetEntityEdgeBuilder -)( - override implicit val statsReceiver: StatsReceiver) - extends EventToMessageBuilder[TweetFavoriteEventDetails, UserTweetEntityEdge] { - - private val numFavEdgeCounter = statsReceiver.counter("num_favorite_edge") - private val numUnfavEdgeCounter = statsReceiver.counter("num_unfavorite_edge") - - override def shouldProcessEvent(event: TweetFavoriteEventDetails): Future[Boolean] = { - Future(true) - } - - override def buildEdges(details: TweetFavoriteEventDetails): Future[Seq[UserTweetEntityEdge]] = { - val engagement = details.userTweetEngagement - val tweetDetails = engagement.tweetDetails - - val entitiesMapFut = userTweetEntityEdgeBuilder.getEntitiesMapAndUpdateCache( - tweetId = engagement.tweetId, - tweetDetails = tweetDetails - ) - - entitiesMapFut - .map { entitiesMap => - UserTweetEntityEdge( - sourceUser = engagement.engageUserId, - targetTweet = engagement.tweetId, - action = engagement.action, - metadata = engagement.engagementTimeMillis, - cardInfo = engagement.tweetDetails.map(_.cardInfo.toByte), - entitiesMap = entitiesMap, - tweetDetails = tweetDetails - ) - } - .map { edge => - edge match { - case fav if fav.action == Action.Favorite => - numFavEdgeCounter.incr() - case unfav if unfav.action == Action.Unfavorite => - numUnfavEdgeCounter.incr() - case _ => - } - Seq(edge) - } - } - - override def filterEdges( - event: TweetFavoriteEventDetails, - edges: Seq[UserTweetEntityEdge] - ): Future[Seq[UserTweetEntityEdge]] = { - Future(edges) - } -} diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/TimelineEventToUserTweetGraphBuilder.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/TimelineEventToUserTweetGraphBuilder.docx new file mode 100644 index 0000000000000000000000000000000000000000..f693a1e6744e547306734ba1cb44e97947501f4e GIT binary patch literal 37273 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 - val tweetDetails = engagement.tweetDetails - - val entitiesMapFut = userTweetEntityEdgeBuilder.getEntitiesMapAndUpdateCache( - tweetId = engagement.tweetId, - tweetDetails = tweetDetails - ) - - entitiesMapFut - .map { entitiesMap => - UserTweetEntityEdge( - sourceUser = engagement.engageUserId, - targetTweet = engagement.tweetId, - action = engagement.action, - metadata = engagement.engagementTimeMillis, - cardInfo = engagement.tweetDetails.map(_.cardInfo.toByte), - entitiesMap = entitiesMap, - tweetDetails = tweetDetails - ) - } - .map(Seq(_)) - - case _ => Future.Nil - } - } - - override def filterEdges( - event: TweetFavoriteEventDetails, - edges: Seq[UserTweetEntityEdge] - ): Future[Seq[UserTweetEntityEdge]] = { - Future(edges) - } -} diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/TweetEventToUserTweetEntityGraphBuilder.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/TweetEventToUserTweetEntityGraphBuilder.docx new file mode 100644 index 0000000000000000000000000000000000000000..6e10fea9d4c02bf8523372005a3bc5685b369643 GIT binary patch literal 39631 zcmagFV|XRq)-D{|?%1}`F*>$wCo8tmNjkP|+qP}1gHAfOPx^WGemCB8zVA=v%B&jW z#;8?u&arCAOM!x+0RaI)0ac}Ps8=c$#wG#-0gXWb0ik}5Y6$~uolI<<^pxH0OdNIS z-E6EI6J_Mq1(3d9yrCyC@DX|nBchk>*-_fj#$t<9r{8gEtT3EOgFHP z2WH%_>F3r%3BC}@(F{mbe*%i4sEk%cAs7mVQsf;253SCh<;d+Iu~Sw&8KKyxF+UiS zcX^xebtQfh_7lx|TcIac&9q8~Y4hhy3Ddt+5&N#+5I5jh>oQ4G?_j24U$@>{h~PE^ z3qYFtY12dRIm@IX}q2f1!_?=CK zzgDqbFgj_Jg^T0E{zRDA`z|L)Yn4kx*1JPQkC)P4V8HY73gP9@0DKMW5zfErLHxC| z=)ieBAkRpeHi=5>EfKE(xjWY2#q$}qxcrLl*aLCi3!02Bkou*iBUl`DnIK2eqi`&u0azghceHZNw2uf=c6&Z(*G%)ttTQ<^d1@ zG3h3@AH|ieKdoJVJn}a=iR=3boW$56E2YXBGhuQTAV}Dw-U>?`O-Gf*v}RzmJ-5r7 zYn5No9|sD{De1bA-a<@vpbT)DHGD0eZQ1{JNJmOCspc_d>bw=G;A=OH|C_Nk`9iZX zdc_-RbXJS~;y(=v{SK>S@p+riej0@QX^=6%NZtWp=g43La4`9ElV`?_%l0!Oi9UFV zF36~c-5^1UN>Brz{E!q!^IvJbXJwPI9?xQ*+}VeDEC-M30Y?KyQ)AOWg7`R;Q<=eFMoghuy~TVdgRjPB7C3>XgGZhrl5ueaW3YE2$6&$c5U_ za@hh56xI$eEbML2Iguz(a)z={i45}Xy@#IA|UXkHj2mW%~!W!m%c zehNkB`p$3{##7Jp(lGY2ENBYZAZxCIKK_(9B5%J5(^&mu_;7vlh}aRV47?Owbr4y{ zUT=D=auI?K+9_2{zG}>qxZZH$3LnzWQI2NXX$?VOtHHCVUDnQP=G8<%^tVgxHE;yXS#RmE&Oc^mcN0Ml10O-9%&Q|x|u#aiEuP^0^L6Evf0DI;U zT6x6~p1gN4nHToN6@t^Jr5+kT`3&0nZ8TyW-@nCrJ2{bWQf-@* zCnN(?#nW0YHhExOg1=DiTW3c)!z%;+C3O1J4bI2n-EV^byfN&)2h*>^0|9N6{QZG- z1vnTpe12-3Z9XTbKX=BN&Zgr!JBn|2H%NX+eFk^J+0TuvDhCSt-wQ1EX+!r)MftfB z;zGh8a6ppw^RE}pK#x=kQFzcfY2t|N`~o{6gNClP?S#JX2S&KLREGhK+$&s{_pV4q zz_8GGh%QytQ}`bZfkC$x$KN9MdZ*|xc)D>vPLDMBjRmodsF4>0M17OM0;fdA3bs$f z^aG6a+?b#_QLRZk{RVm2v15TAOd~=%``-e+y%X#(^oep>QL|;eXGhDzSKlnd-w64? zZft)*PeIe2sEZ7sNbeqoUachCjSXLd`DT+x=S~eI|NJf@vQ^d=^~16#PNO;6gY~AR6C?FPUa#E^a_l=FclM=e4nRr!B zE=jmwb!=wz?0g|U#$YZ$`B@PMV+DO&BOzZNu#i6Yg4~o^5~Jk5KC!r@-3GKEcNLrd_Yhs5uT5X##($)fr)cC6>(R&AbvUZ z_i5en&-!lJ-CaxrO+G8}V>{VmF?wD+9_iZ4eZ&rj5p+BZV*x|RO@$_;c;Z6BVZWh5 z#@Qo=7||{SD)LXskRe)@J)loxxsl3ZC9^q^2))?{@gmLjq$i(TXyNLEFnhBljBEWg z{w-B8L}iMGZHnuu#u9M=J*-Kr6N{zy>QQRj(ixW4($%8qhR|s8{+KT0P+aF!XNO z`L(;tU2y9Pw;$?En0}pj`B!#=HZ~WQ8}|xX)Xwiz||&VSMN>{ z7-BuB{)4uCwTcv=V℘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 WK!*mHK|f{{Gsp^<9;Qh@e*GUrm`!p3 literal 0 HcmV?d00001 diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/TweetEventToUserTweetEntityGraphBuilder.scala b/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/TweetEventToUserTweetEntityGraphBuilder.scala deleted file mode 100644 index ef4a200ab..000000000 --- a/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/TweetEventToUserTweetEntityGraphBuilder.scala +++ /dev/null @@ -1,343 +0,0 @@ -package com.twitter.recosinjector.edges - -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.store.TweetCreationTimeMHStore -import com.twitter.frigate.common.util.SnowflakeUtils -import com.twitter.recos.internal.thriftscala.{RecosUserTweetInfo, TweetType} -import com.twitter.recos.util.Action -import com.twitter.recosinjector.decider.RecosInjectorDecider -import com.twitter.recosinjector.decider.RecosInjectorDeciderConstants -import com.twitter.recosinjector.util.TweetCreateEventDetails -import com.twitter.util.{Future, Time} - -class TweetEventToUserTweetEntityGraphBuilder( - userTweetEntityEdgeBuilder: UserTweetEntityEdgeBuilder, - tweetCreationStore: TweetCreationTimeMHStore, - decider: RecosInjectorDecider -)( - override implicit val statsReceiver: StatsReceiver) - extends EventToMessageBuilder[TweetCreateEventDetails, UserTweetEntityEdge] { - - // TweetCreationStore counters - private val lastTweetTimeNotInMh = statsReceiver.counter("last_tweet_time_not_in_mh") - private val tweetCreationStoreInserts = statsReceiver.counter("tweet_creation_store_inserts") - - private val numInvalidActionCounter = statsReceiver.counter("num_invalid_tweet_action") - - private val numTweetEdgesCounter = statsReceiver.counter("num_tweet_edge") - private val numRetweetEdgesCounter = statsReceiver.counter("num_retweet_edge") - private val numReplyEdgesCounter = statsReceiver.counter("num_reply_edge") - private val numQuoteEdgesCounter = statsReceiver.counter("num_quote_edge") - private val numIsMentionedEdgesCounter = statsReceiver.counter("num_isMentioned_edge") - private val numIsMediataggedEdgesCounter = statsReceiver.counter("num_isMediatagged_edge") - - private val numIsDecider = statsReceiver.counter("num_decider_enabled") - private val numIsNotDecider = statsReceiver.counter("num_decider_not_enabled") - - override def shouldProcessEvent(event: TweetCreateEventDetails): Future[Boolean] = { - val isDecider = decider.isAvailable( - RecosInjectorDeciderConstants.TweetEventTransformerUserTweetEntityEdgesDecider - ) - if (isDecider) { - numIsDecider.incr() - Future(true) - } else { - numIsNotDecider.incr() - Future(false) - } - } - - /** - * Build edges Reply event. Reply event emits 2 edges: - * author -> Reply -> SourceTweetId - * author -> Tweet -> ReplyId - * Do not associate entities in reply tweet to the source tweet - */ - private def buildReplyEdge(event: TweetCreateEventDetails) = { - val userTweetEngagement = event.userTweetEngagement - val authorId = userTweetEngagement.engageUserId - - val replyEdgeFut = event.sourceTweetDetails - .map { sourceTweetDetails => - val sourceTweetId = sourceTweetDetails.tweet.id - val sourceTweetEntitiesMapFut = userTweetEntityEdgeBuilder.getEntitiesMapAndUpdateCache( - tweetId = sourceTweetId, - tweetDetails = Some(sourceTweetDetails) - ) - - sourceTweetEntitiesMapFut.map { sourceTweetEntitiesMap => - val replyEdge = UserTweetEntityEdge( - sourceUser = authorId, - targetTweet = sourceTweetId, - action = Action.Reply, - metadata = Some(userTweetEngagement.tweetId), - cardInfo = Some(sourceTweetDetails.cardInfo.toByte), - entitiesMap = sourceTweetEntitiesMap, - tweetDetails = Some(sourceTweetDetails) - ) - numReplyEdgesCounter.incr() - Some(replyEdge) - } - }.getOrElse(Future.None) - - val tweetCreationEdgeFut = - if (decider.isAvailable(RecosInjectorDeciderConstants.EnableEmitTweetEdgeFromReply)) { - getAndUpdateLastTweetCreationTime( - authorId = authorId, - tweetId = userTweetEngagement.tweetId, - tweetType = TweetType.Reply - ).map { lastTweetTime => - val edge = UserTweetEntityEdge( - sourceUser = authorId, - targetTweet = userTweetEngagement.tweetId, - action = Action.Tweet, - metadata = lastTweetTime, - cardInfo = userTweetEngagement.tweetDetails.map(_.cardInfo.toByte), - entitiesMap = None, - tweetDetails = userTweetEngagement.tweetDetails - ) - numTweetEdgesCounter.incr() - Some(edge) - } - } else { - Future.None - } - - Future.join(replyEdgeFut, tweetCreationEdgeFut).map { - case (replyEdgeOpt, tweetCreationEdgeOpt) => - tweetCreationEdgeOpt.toSeq ++ replyEdgeOpt.toSeq - } - } - - /** - * Build a Retweet UTEG edge: author -> RT -> SourceTweetId. - */ - private def buildRetweetEdge(event: TweetCreateEventDetails) = { - val userTweetEngagement = event.userTweetEngagement - val tweetId = userTweetEngagement.tweetId - - event.sourceTweetDetails - .map { sourceTweetDetails => - val sourceTweetId = sourceTweetDetails.tweet.id // Id of the tweet being Retweeted - val sourceTweetEntitiesMapFut = userTweetEntityEdgeBuilder.getEntitiesMapAndUpdateCache( - tweetId = sourceTweetId, - tweetDetails = Some(sourceTweetDetails) - ) - - sourceTweetEntitiesMapFut.map { sourceTweetEntitiesMap => - val edge = UserTweetEntityEdge( - sourceUser = userTweetEngagement.engageUserId, - targetTweet = sourceTweetId, - action = Action.Retweet, - metadata = Some(tweetId), // metadata is the tweetId - cardInfo = Some(sourceTweetDetails.cardInfo.toByte), - entitiesMap = sourceTweetEntitiesMap, - tweetDetails = Some(sourceTweetDetails) - ) - numRetweetEdgesCounter.incr() - Seq(edge) - } - }.getOrElse(Future.Nil) - } - - /** - * Build edges for a Quote event. Quote tweet emits 2 edges: - * 1. A quote social proof: author -> Quote -> SourceTweetId - * 2. A tweet creation edge: author -> Tweet -> QuoteTweetId - */ - private def buildQuoteEdges( - event: TweetCreateEventDetails - ): Future[Seq[UserTweetEntityEdge]] = { - val userTweetEngagement = event.userTweetEngagement - val tweetId = userTweetEngagement.tweetId - val authorId = userTweetEngagement.engageUserId - - // do not associate entities in quote tweet to the source tweet, - // but associate entities to quote tweet in tweet creation event - val quoteTweetEdgeFut = event.sourceTweetDetails - .map { sourceTweetDetails => - val sourceTweetId = sourceTweetDetails.tweet.id // Id of the tweet being quoted - val sourceTweetEntitiesMapFut = userTweetEntityEdgeBuilder.getEntitiesMapAndUpdateCache( - tweetId = sourceTweetId, - tweetDetails = event.sourceTweetDetails - ) - - sourceTweetEntitiesMapFut.map { sourceTweetEntitiesMap => - val edge = UserTweetEntityEdge( - sourceUser = authorId, - targetTweet = sourceTweetId, - action = Action.Quote, - metadata = Some(tweetId), // metadata is tweetId - cardInfo = Some(sourceTweetDetails.cardInfo.toByte), // cardInfo of the source tweet - entitiesMap = sourceTweetEntitiesMap, - tweetDetails = Some(sourceTweetDetails) - ) - numQuoteEdgesCounter.incr() - Seq(edge) - } - }.getOrElse(Future.Nil) - - val tweetCreationEdgeFut = getAndUpdateLastTweetCreationTime( - authorId = authorId, - tweetId = tweetId, - tweetType = TweetType.Quote - ).map { lastTweetTime => - val metadata = lastTweetTime - val cardInfo = userTweetEngagement.tweetDetails.map(_.cardInfo.toByte) - val edge = UserTweetEntityEdge( - sourceUser = authorId, - targetTweet = tweetId, - action = Action.Tweet, - metadata = metadata, - cardInfo = cardInfo, - entitiesMap = None, - tweetDetails = userTweetEngagement.tweetDetails - ) - numTweetEdgesCounter.incr() - Seq(edge) - } - - Future.join(quoteTweetEdgeFut, tweetCreationEdgeFut).map { - case (quoteEdge, creationEdge) => - quoteEdge ++ creationEdge - } - } - - /** - * Build edges for a Tweet event. A Tweet emits 3 tyes edges: - * 1. A tweet creation edge: author -> Tweet -> TweetId - * 2. IsMentioned edges: mentionedUserId -> IsMentioned -> TweetId - * 3. IsMediatagged edges: mediataggedUserId -> IsMediatagged -> TweetId - */ - private def buildTweetEdges(event: TweetCreateEventDetails): Future[Seq[UserTweetEntityEdge]] = { - val userTweetEngagement = event.userTweetEngagement - val tweetDetails = userTweetEngagement.tweetDetails - val tweetId = userTweetEngagement.tweetId - val authorId = userTweetEngagement.engageUserId - - val cardInfo = tweetDetails.map(_.cardInfo.toByte) - - val entitiesMapFut = userTweetEntityEdgeBuilder.getEntitiesMapAndUpdateCache( - tweetId = tweetId, - tweetDetails = tweetDetails - ) - - val lastTweetTimeFut = getAndUpdateLastTweetCreationTime( - authorId = authorId, - tweetId = tweetId, - tweetType = TweetType.Tweet - ) - - Future.join(entitiesMapFut, lastTweetTimeFut).map { - case (entitiesMap, lastTweetTime) => - val tweetCreationEdge = UserTweetEntityEdge( - sourceUser = authorId, - targetTweet = tweetId, - action = Action.Tweet, - metadata = lastTweetTime, - cardInfo = cardInfo, - entitiesMap = entitiesMap, - tweetDetails = userTweetEngagement.tweetDetails - ) - numTweetEdgesCounter.incr() - - val isMentionedEdges = event.validMentionUserIds - .map(_.map { mentionedUserId => - UserTweetEntityEdge( - sourceUser = mentionedUserId, - targetTweet = tweetId, - action = Action.IsMentioned, - metadata = Some(tweetId), - cardInfo = cardInfo, - entitiesMap = entitiesMap, - tweetDetails = userTweetEngagement.tweetDetails - ) - }).getOrElse(Nil) - numIsMentionedEdgesCounter.incr(isMentionedEdges.size) - - val isMediataggedEdges = event.validMediatagUserIds - .map(_.map { mediataggedUserId => - UserTweetEntityEdge( - sourceUser = mediataggedUserId, - targetTweet = tweetId, - action = Action.IsMediaTagged, - metadata = Some(tweetId), - cardInfo = cardInfo, - entitiesMap = entitiesMap, - tweetDetails = userTweetEngagement.tweetDetails - ) - }).getOrElse(Nil) - numIsMediataggedEdgesCounter.incr(isMediataggedEdges.size) - - Seq(tweetCreationEdge) ++ isMentionedEdges ++ isMediataggedEdges - } - } - - /** - * For a given user, read the user's last time tweeted from the MH store, and - * write the new tweet time into the MH store before returning. - * Note this function is async, so the MH write operations will continue to execute on its own. - * This might create a read/write race condition, but it's expected. - */ - private def getAndUpdateLastTweetCreationTime( - authorId: Long, - tweetId: Long, - tweetType: TweetType - ): Future[Option[Long]] = { - val newTweetInfo = RecosUserTweetInfo( - authorId, - tweetId, - tweetType, - SnowflakeUtils.tweetCreationTime(tweetId).map(_.inMillis).getOrElse(Time.now.inMillis) - ) - - tweetCreationStore - .get(authorId) - .map(_.map { previousTweetInfoSeq => - val lastTweetTime = previousTweetInfoSeq - .filter(info => info.tweetType == TweetType.Tweet || info.tweetType == TweetType.Quote) - .map(_.tweetTimestamp) - .sortBy(-_) - .headOption // Fetch the latest time user Tweeted or Quoted - .getOrElse( - Time.Bottom.inMillis - ) // Last tweet time never recorded in MH, default to oldest point in time - - if (lastTweetTime == Time.Bottom.inMillis) lastTweetTimeNotInMh.incr() - lastTweetTime - }) - .ensure { - tweetCreationStore - .put(authorId, newTweetInfo) - .onSuccess(_ => tweetCreationStoreInserts.incr()) - .onFailure { e => - statsReceiver.counter("write_failed_with_ex:" + e.getClass.getName).incr() - } - } - } - - override def buildEdges(event: TweetCreateEventDetails): Future[Seq[UserTweetEntityEdge]] = { - val userTweetEngagement = event.userTweetEngagement - userTweetEngagement.action match { - case Action.Reply => - buildReplyEdge(event) - case Action.Retweet => - buildRetweetEdge(event) - case Action.Tweet => - buildTweetEdges(event) - case Action.Quote => - buildQuoteEdges(event) - case _ => - numInvalidActionCounter.incr() - Future.Nil - } - - } - - override def filterEdges( - event: TweetCreateEventDetails, - edges: Seq[UserTweetEntityEdge] - ): Future[Seq[UserTweetEntityEdge]] = { - Future(edges) // No filtering for now. Add more if needed - } -} diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/TweetEventToUserTweetGraphBuilder.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/TweetEventToUserTweetGraphBuilder.docx new file mode 100644 index 0000000000000000000000000000000000000000..f29a38ca88224a748dee69427c46fe7cf1263096 GIT binary patch literal 37729 zcmagEWmsIvwm*z(a1HM6?hb+A?ruRFcN!1w!9BRUyE}y7Zb1UU-T$4LIp@rrd++;x zX&$Q9`pH_mch%lqO0tkpm|$RFa9~ww+**|?h4D$?U|?e~U|<-aQC)F>y^FcMi=mpQ zgSoRllZTycW0Jh$stD@mvlpynW+4)9aTKhw9S0f*hIl-Q>Wmv6?Iq?DIf#e53BGXk z8KqDdrufXXJ71#JI>9cVCMsQVi4%SOOwD{U$YP)T^{-5)7TkN1@uV_~(z}FngD^EM znLh8QxxiU=Yx?;N(L>I}a&-cev>w1>s4HVN(20ja;8X<1pu?*3XSnk^$Q{&Fjz*|= z=|Am_DY?B&__>oki2F-szbr9PX=K@CAhZSWq=p-vt4n=0YDgGxu63KFuXnOkcdT3O zEkyPhLIj|G|6$j|L^GW&+AScIrF$Dke0fhRR0T1I$K9R-Q29a-GsXT z2+C(pb>Ui-cG1}6QFdPLH^(D!GT)orVBKY22?gH{2}41e0FeRj`wQf!ePieq-1~O{ zRd>?Qoke@DtASrl(V2A2%q z5kTspwiB#vn;v;Xjx1tMb;o6)K_W!Ifib8{TYowuS|ui7NM|RFToPQGh<1(WLZj*G z%Qy>w0Z7R;aYhtZw*IhnkGL0Za*;Oj7deV^KvPXqFk{8xDL|HS#JCohIhc+qi)+oq zZhLH3`lMTa!E_iTuBd9@L2(T;*?~U5W7!~3JkzrKVV{wLd{WbE%EEOcNZHR}n&=lx zZOWNWW9*VI+~|xh*V#V{6!sZW)e3Z(&wvVq1}cylz*NZz;NZ+`3UD(2eUWD+j4SlB zpi18PNY2S?gkPb;Ny^ZHA4PnW#tc|$z2)GPw;j*sn%vwiu+zzX&UFDPB8{%uIC{Sy9-)|!e@QCyS}hu z&G;gNSuC0fCDSJTouO;;>tVg$+lSZpO9b@y+!s)|N0!J2w6pHwug`s#`2Xz7_3A3l zF{m%LP+(xFfA5R2gTo(fQ5&~kWkKzDqKDFViLindRmM#STo9cRU&pIS$ZVb)Bl{Q+ z)yld9^nD1!;{D8g6V6}H|I{${v?yu;+o14C9c%pI>xh!$IznT0#PI&=(2w95*z$VP*AQM-bJ&$nlD5y@X} zwf6((NlJ}N8>z}HiV@|IFV&yQJxitqIX~>)9BC&fAt6ga7{9PXjeC|`(JY5a;mDKV zvl?}tPke&1M)Y>MsWbbDmTPIJiz6^gE^O`&l&@Uqq}3mfO%M ze5YoFBx}cO%0KQfRgel+4N+4h6F!*`Gzc}siUj9%7Y2qG|U_AN9P+vPASv}h=)4;yc9_xJ)ir@ z(kIl^xRjuokXV=Xa^_9JAFi5!nLe@wJG`)$sd&INc(&m;$<78K{sG zBJdNSXP9N*xlZy?m1suJ;SjJEwBq4+KHjd38eTIIU=xVhf*>WibXK5)6L40}5|T;B zY?+7oabN{e@-&jig7lu8l-#eldA(jS1e25|Ce2_AX2a~A1*JLHKMbTK2`SxxcQ)O<7ed86wuh%r$iP-oUqxv>;W zVJ?GCJa5iMd@H?5*2$ibOj3?gXIpri8fr6QLkqY9Ll4_N|q1IkM@iKEGFw(5lr5FbEGP_WRNxE&PQ+T-|-K z2ABu|8R7}Uu0aaE{4UQ~M4H#aqmNS~mpawLx(dA2VCim!lx+RoPp(v0Gv!qG@O-x} z{}!h=`4lg#)G$gi%1?Li5!0xoKbKf!Bag_fY`BDdM!hc!_z*GY28@Bm%1WI*fR5k0 z5x{sB>k>@tX426oT}F-9g}-9!hO+5{Dd$5k98D<@ruSkXvGr~a+69<#ZV%0Q5T;n) zBOj)fReJJvtf1NZX9RLv<7`vsMV=n)?R2S;DC6@{hHVmSgeH8P>lS^s4HGM`|hw&p}h_paA3LYfGN(9!T z7O`O!7inL~6&sYb*K$oJ^M{BfzAz<~6yyOl2=Kf@g%AqeZmLHVCr@?ZcM`PXC0tMO z2bd|FVny7o=L-zo%3Lor7)=THc>MWLvg%Jc;yGGo8<|1}9xjEB11zEKns;3+!=#NJ zb8{Ap?w@KHkiB>rN4PKJn1A9^J56+|q+0Wpl^PKHmp1IzhTRMGvXW8pg?ya-fsLy; zga)oL_iL7PbtgQ4uNaytNxS^%l%q%1;xqB(VO!WY%h*q;e9Wkmg$JYe3{IYWEd5?4 zy11FnheB!%#|_<17e9NhCL6zH6FpkycT*Bq%54Q-)e~R;kl^#h0Qc zZfxYavz}+dW0y1=oA{K|wuzkeQ`;#-j{T^Up)`k^FRqgQ)imDf@~3ngus0X^dzb0) zJ&W1z+>{fBmr(AL>(+=Tz9wnouAL2xrxVKs>#^DyUe{?9D}4u^p*JT4DqRJgD;)#| z)D4+OEUv(FOcm%&^QmOIvWF*+#qHjzyP`r$h5R5@4Q57x4h{kKZ90qh`<-+Kyz^t1 zMu$xUwZ#6=X3CkaBTtl25084Q2*$IRJ2?`SZqCx^h%zm>oKy*ca&wkTHH+MByO0m8-% z3BBD*{73Fh?ryhU7G@FC-JOG$-FOZPNW_c?wwtR!)9_k~`B}~2GD#udX%hSEA`x;C z4uBiOgBIMnhx|u7LmRie9vvWuhW~rh401H!0G!b$c4VA)>^9x??VIJ$YBK#o8k=U1 zvx>tgudx4Io9zAZ(b+(omT}Ogg#ff^`D1PRbIbkr73$CJ_ZLycAQs%uXRio-A&Hnp z_L1*@eWhxrld3NC36WY!xE0^q)Ll1Y5Z?*dz2oxDp|+cyyj5M;;K!wJ_!!6&1%ZM& z8=_>6E?|k0a@*>zDTMG3WfqiIDwM+9x z`sAFHMmuK*-)`>B2>f1P4G=6E<_W}$_5z;e^`g-Yp)~F?A^X|yjjYCYEf!3{B;32j zQ^eT{Ycf^0Auo&BBSm>A>(W(&Z9?8p+VEIk&wLs1Qh;~yhJ_H`6^be**x@DAvQZw_ z{BSJTcbJlQw_!Y5cHk-pS6xI$L5b@1_LuthXzCWSFN30 zJZ;ULfA0c7kCur$Qgy!F-Cy$!pMTiJ1%nMw*@Gpx5g2=SX4jsv%d^k^`t}XyQ|yVM zA0?>>vAT-7#>cXRI{v?qCcYilhSF7%s##8a+ z=~X)b_=4-h|FD1Rp>vv@y!vAQa+)E$I1G4wh<$r_T0Dy>7H&S?)xUpOzi3aHZ+|+N z{dvE_ZSosfI{Iuhu_==H+uMShi7zDw)s+2y&iCM+Qq>lecO+O^iz-dr)BG|1{_ z*S_Z4rKfw=^>QQrXrYoq)bF^t&Wy4NOqC?|kFi5Mzrq0htAt-_41KkQeR)Ed zJKAH-LvZ|FUJv>${NP@$*I!)H^`2{h%N?5nf|c%Pr=cm_r`gL(u={j z_AmmfTN4>i1Ll0(ZhQ@d^c}dm)ZLFr#^os6B`B;a#C__-CKW;h624)yK4G&!SGTU~ z;S;MtY6Jtdhw#8zHQ?7R@}wM^7KuG-1R^ESP%pi(at#3V-#)|3fc5(~{rd^&C0HSQ zg;iH`2t2x?Hj0zYmkt32VdCWKY4@2moj4V?zR>33#HC8)dHb9GpEaAlRhXvQ)+Wy> ziwAp-&K1}NC6BRa=dDkR##d^z)&psl_d#zR`c(_lPbagF4tI_(!!oy5!Y5}!naWa) z`tx(={rgu}KTrFeGdbu(S_uj@qu=`XJ<5nOuV~bR5SPF0-BbFV6E7-eG^a#bLwyUg zp^vC3ljIRWiwBn=GA>~2>UnAJxgf`nTzk_p_X&8)DTxAT#xiGFb;LDCge+?Dx#2vW zyq^EGqt7H7`i|y}Txdz*EH^NF4B@Vd z{4s+)RYee1I%r7{?KUd1@}=Qa$m!7o9TJ-TNiu)v^T)=c7G!snhip*-z_ocsbwyAW zF0oOA6FZWJwj|wWtD`vwFMiNBE|B}c^0!QtM2=|BTxkUFy)Q;a#{~juE7H^nx zYwyA^$mWyKnJ4KY(s1=XdjR*-_R}F=Xiw_-h#(n|Lj5JKq@~HDYtye4LwCu}nLt8o zZr`zed3fCRl_5%yNjLfVY;gVQ#fiwnz2Pc_GDv zz5UUz+xO9%!uriO62vj~J50+WNqRA7obh;XPY&TR&fyAhdn2Ib*x5-RM6TPJjy7Vqt{KD_PuDvu$Yu|8k9`uVt@wIouY z6mB?&)hygFs;&}JjI~8+E+t~OTi20Kw!ZeR#}6sr(y8@3C9Q27op`Kt55y$j<$n2o zNyXFc;;#B>3V9Se?6|DK0}^VOP91x@)Nmmq@a1*jyh!n2oNdE}D7-^vEJNkvc*fRq zLK!zSt@y&3ybK>PTm7u3jcAhW$%0>|1iB_g(cH3Go#&33;llA^j@SbV=>7>O@8>h} zIJ)~d`-*DalQyv7=$dhF_tdQVgGu5nj8+^9-)d=U1YjiPb$gg%9jNrPLX!6#CNWF^qX_rn%<9 z8w$kPLCavu>H6r-z}vUcpe7Gdx>_ zpbR(Ln^T5wNFP+-<;SVUb8b_RrK9lMI@C_HRa#|(0N<+SpPn(g zyM2`XFF19c)g>MpNFI;?PgphB^fw7GO&^hLN#8FWr3c`bC(EYKGI171n<=!r?+1(h zx;o145S-Fvt#K7ld0#_>4CXw2{QNVn7y3dszi4_?rLdcfz{fqi;447ev@s`%>g(9} zeF*OqQP_l2e1(3n`DXH}+5S9CqUD-34>EONAk$a==9a`Bb;@RRodJDhO`KMF6L29xx`V|9n*?Gk@Z0+B_3#ugT!izFLfw_o5C;eo5iPu0oQ%4%1-n7Mf$gF1Y?(D z%eIH|9hV6`-^Lj9RAYZlU^paw#aq#A)I1C;MlDH;Jf5?URqIrVzJc14{az#QD>*b; zHpF)5iAL=txLgHuBFK4}J z&4`aCYZMa4 zSC8(*kD1IRtng&f)coKN2dy0jOc6(J&D5sWiu0=~R9p0uaFXV?B>S$e+S9uvl?RS3 zy=f8(Zj6Q5hOL6xZ>uBwVlwnGA1isp>UK&HH7fjUk_%4OR90K1o1EK?+KafCWpteM ztVdZBD2EA~DPEQurcBu*i|Van z0Hc(rM|{*;j4614ZSTr`{-k1a_?`kCPfA8s#jTapdx}A7nUt}r;?ZcavA9QcUA1Rp z$wnUcX1SE`?lAg}H~Xy&*-jAGqSvC({wrUa1wmaOe?efkva1C)8(?t_D&efQBK^bX z5%u;_qXdSllJqOlD7rIKJwYrlae8XKQbw@!*4auwj^P}8fYN*-(#$OD#LFsbE-Obp zZWIji2lkYkwAP8rQw<+qEPf|?dO56ulCs#&Wmx4>Wktu^qJFhzM{~}V5o@zj=#IV1 z%}Ck)%MOI^lM~u}BlaIsNJwuQm}$9)(~2C!MYtm~RKC*Bq(Mn$NmLIEW3i|w*!%Q) zJ}U3s(cv;8{opg506pp4Y(ML}ti8{NutQe)bk#J;@iPPbv4UpG-0$(bBjok=BvZq{ zW9Q1SUy$!}UM?_k^$R8>t&lklZ*6cbCZ+3FbdJomkIzvU3ZdiaOug0I%sA|;n#5JR z1^Mh2bltzYr&8LBQ8K!#9^V`6vI9Tx2)q&Eq6uyD*bFwe?BH)w!f>*(*cUxMIJ|r- zp4|38i1wa#8ASX!b^9ISp0b?d%i7X1w8m(XdS!N8HiTP-o!x1??1QFqt6p~dtM2Ke zxD+u84x?ZJ(kSb(n~cUuw)(CS(%Dg0AIw*xK#n=n)Z5VRN|b}7NUVKJJVe9lJl~vZ zj8p4&1ER}ws^_a&3w(^u!#nF6lCIP&%6yxHl}JK8bD7eEm)CR6vw6r6i_NJ7Ck0xG zc7kt1Lgy0B6)=aa7F0SI_bcxb+9b#PgO?gIR-rqxB2Ag^}4x>PPpQb&SC|hiTw7 z5W&vlu4BmKHth)~4nF_E#b4Abb8BrlgI^YiIfHLgECktE%l*qHW@G4dt`6rHl$kqx zr~JXy!>2KCB?pLVg5+-*G0q+S+_{q%5Or{!@#gTIX^;wfn|D%j4kngWx7eM=bkb;@ zSkp@uU%77sR@3vFmAB-E+1()8l78^{Z%{!lrfGM;LQ|iQ8N+w}F7fHEoGo&G zm#AO{|6prans{xOSkg#m4}S69*VW~Nx(ff(jU9~2%2p^|6bJIN69r|M-(@;bud2&O z=+|bS+-NRknhR}aixZbTASp$D+rq!B_+@o>a$X<7SvvI&H*+Q`FN9uZTe41jmJ3pJ zDI%Npf;VyuNfmCk>{jqwyA{I7K`E9jPOaTk*|G+NuT(SUxfr-2P0Bv1pkA3lgKU#{ zT^7R8-c7npzJW*nd#WS-3D~ORYpk1(w~^o4m*0&XmxjpWC<8$0*zbI$I{!#7`73?y z-|2_H(}Re_I?H^yuI;}=UV2%-%u3E>)LS>XO6DjtLw6|kU>p_lN}!~a;oKyg#Mu@H zdU@?%2 zSS`&pFi^i6C+i$W#H4=J zW>7~MbE2liT%DqUchiS&g?6NV5}NPM&KS3-8d=5kbt6-~p3&kl%8Pa@1R`6Bd6Lwt zMXj?W#WvK8-)ioux_>`B$Za)fW&2TBqqSQ?aGpgW&b z5P@dKawAhtIeua1xE5Cj6Pn?$@I@gcR*HZh`n!~C`mp)ewGMJ@d zCX-Qzc~hj5HoMDinq?NBlH!#`eD5C7p%{irqQ@bu%DC<}U&24+$EohM%&FGdWys8F z;shPu@!7Xw*gxv96Hbki%jMdyJf=wk7vzP-E9cd(b)z@FZUB-Z+~)vDY;+}I)B;sz zQ7V2~bjGO!>uV<2Oxu+j<0bVsR7uw*%Pb+{ZoqGiJW_*#2whY`0Xo(;=KSGgQI_5T zXNDi9h>+sC%B)&ree%`IifgCmH6O`yW(N+AXdo_Eri&x}&u_2Ppcs}iSEdo75a=Kf zV(H%(&N1ag5K(>LZiXw7^(a>tJo+V}ASuG<9neS0FMOyYkxxbfZJ5|ALLK!9L=_lC z?9nuQnw{2JW`!2_ZyqR$fAJ{n%HV)+7hfo$)fhP+4KcIOmB7(}EPeU@Q&jDmg}1F$ zQbfN`xAI8&pqD`nN{s>H2p0ttSq*CL{Pl_Ty%o043O4wtTS8MJ?MO@4S#%Y-B}$B( z;d}#}bk_{s{Or=f5j{l0wAGHYD<-&SC`J*;RX=A|7{L|uu)#JCk97wBHG>_O)2GEqudKFgc=KcmG=LvCd~*`_L)b}@yO4>sEpSC zrFkq7{=!u`TmWX`>=eaqLhM)=p>Cg)jw%PHbMrIKq&IuYP0{O&X1Ci<=gtVJuv;r_ z4eyjn^>q*mE}0mint)0w@6?}v&=FX5CDOc@T zqXf`cab8UHeW^iK{G6Cz<|)R>+sdFqk{mdqGIX_U)GJtlZnNVr9Uw=D%IiN0Nd_~Z z@dFyo@F#*{-iR$V+i@URt7$+ztkhjvYg|75*5QB=p74`CH*)@R_?=E&>Q3*m05+sB zFiT606rU;Z!e_#&!6r|h6qPnNaSF_d$cYn7^pH80=QN%A>tv@ z#7LaLRN*Avg$<4%l3~wcVT;EvE0`@nLpZ^*o5%h-Vvi*Kz}+(wK6vQ8W2(v^Rm~3D zXvR92f9Ame0|XzHgh^b^RGoGFR)iXc`7Iz3j5iL02HZr1LCOHNHnpk-H)6t# ztey!qj$fP1dtdr*8p+Gkb(D)1^JISeUKafAyEjxz&e8Y8jP;zrjf>z<-;$#sNYDps zjW6r>z_3A=kU=H0CXBSklgQDgp(!r;v%jg_m-?+zmAC<pFS-6 zX5u(@2m#XIu1}C70S#}EVF84uB#dENa++H2BrW*kwQ=A^Zf+;sd{6#^xXRH{3RR@J zYF()%w^s$cw*VG*7le50%HY?nMyonp~-fzK~@u!-c>IVn0`(*1CY^>?nVdy z=6e0!1^Mgh%jp7|o(kVZ5&OBAf}>$|gz4lK)X54}%2%Ws#v7QW0j_X6^wnQF9}~1~ z%?&V2b~3bvsJpB(N5AbR;aW15QBKKZ)~}KT@e~8wH1{*-4Q8U}3i9D8zDhUH- zc1Gi$b}~UpQ-3D${LiGM$vwuK{mTK~aA)*`-&Cm;NVezlnHb~u1H94f@4Y(E4=N-Z zf6u$&o1q@eDc+4`)?d*N<9^B?z59Ql=e>0Al!N3tIqHF zb|khi=c8h8^C@jlhoC~B1EizEALGdhW?Zakivl@3)X5j&&Ult=*B+Ep+L6|ODB&6* znJUdWP2#oOW5rK?WX1oF!aTx#LRXPYjLAP0y8Taumzh_glkuAsTwcm~q9-NqokpEX z^k6Rs^1d^U%vKe=XW#Qw8x-$F?k!tTgVnY*c^0qP%!-NMB>cTXA3kiZcQd@T3wPv% zDC5fLg`!%ytuf3pKaMsY-W(i8PbgN!6wmEF>|5nWS=iJuvlJIE8*q9Nz)ZRPsy*%R zlR0gZjOK-{yD0iPJZw1Eb6|euu zQ>k<_?$zgI07vT&2#X78N0MBL$`a~FgS?4>kr7x$^vThlpF{eRyHSS6uzjmC)ramu zZXQV4QbVyA#flM$EigbIN~vYS!+=)j&}=M|Q9Em?WsLWa4R{%P(ff_Ve^bl;L5&WghL!!j`<`gsSU^fP z`h(idY#c<*&-EwucS?*%EqH6%YBRt1&!>9E_rxE;7Wmzw}{cJV^LxB4)Qmw#_ zCW`iBVT?#}k1$PS*_r_dEi$uh`~Czj)8grx0g=w#Ui9C)?85iW-gEE%BENMV0ggp3Y&FvbPI z--y-Bd6S}29)nS0EKM*7A2&9N<3YJSuG9CCSX0>mca2rEe#o(%hG$zzOhegPmhIzH zfBLSf{y~4kAz}e&h(0N!^MXK@4)fIt%P_U{?lWon0(d&rw>44VsZF^l6x{W7yL*f% zhy23xka#hlRl3<4hWu<;5&Y7W+9bEaY(a5ZOk2k`N9BurirTd@A&HLT# zf&G*&!YO%C@yBEsn^QRw zfZizAg|F`IET0^Jx2#b!LS9QIHDF3(Y3WEah0fFOH+v1@j@_DFReanuGPXBE?XeaY5FJl6+aV^*^+p23&RnCq6E(1|a*)55NvM$kj#_J3jCFuaep$NzM0eu6_OvAbRlf}T_^W8S|ZL@y%!6bH{!2*?mNT)hyN6*Rd zmqEmHpjOd63{lo1Dr`3op}WD2;M;H7-7b^ z1MCX74^fUe1NMs4vXNr^KjNZAe~ZHnJ{P;N85uR%;{8=a%-T=X00bw2{`~=42l{|% z0)jJ0yS)T9d)!Mf z3}{Z>Gp1lo6_(mT#XBhj74HNNb|k>I1?r#0v&+%@t9Uh?wq2={ONlIhDMaW;+&d=N z9>=Gi?18j4Ql-u<^`L?CDkVUNP^W{1-bxr_6(x~yP?H%@KJoGO$B72Ct9=BodEf7z zZ`f-|pio%cgzzr-ZXhshv~NUC(7t9i0%_j+1{VN@&C+H4{Av=thE*p^S~x8Hm3BRu zOVyIg%yLdQLJsufFua3Wjp0Ho2Ht3Z##MrmJlz)&d@f=yNaXH!p`!R1~Z<> zry|JKaSfmBIOlkC=stqSBD%#rHrn%DmEVggb~?hdb|bTN4;pbe@Ss_XrseeH=1S4c z_lrFisl_7LB$Dw}*=l|%bM)?e*7+3p9pVa+s_VeJPf=!K8q7gHFWIxmtXFS8( z`J!Qi?8>HFG=c9*Rg!kgal0^J=_CMy0N8% z2>biYS1&a!NW>XO^Cxw+=vAEkMIZihuGCGMAHZJ-)W@{p4{2cb;Sa9g;0B(Rexcu> zo-Y+LS?B=b9~w806tW&lzha)ZoJ;mJ+N`_mYi`JWQvpy(PgFxr0N5O|=Im$Xg87v8 zLB$JxfPaT*1cb;BOwBoONtmd1TFYkX#>T^F>V0MqhFii?SWrd3Vh3A8zdHVk7WS~s z(jAX;Z)-Fycg)DveVdV7#xAV>1%e3Y7s<_^RM-nD07Os`ASb5Nrm+!I2=mBkt}t*h z8>Xwhv_^!wkCcs{o+XBp)(mk$nLRJV&M_AS9$DEAj7$x*MwYa_X@ zUV5+z4`+du8*;^NO&v z$Y1qyfGyQOE@JDxeDOWE^PRN_%T{inwOJeJbY6f~rmhVTy_T{41Q&vi|2{d_Y$#b? zh0OFWSfSB@r;iHuGuPg^^qfuv)WASoGl95Cb|@a2d0>DfGO(B&EKBwH=VO_@#4KSe z(3SD4`eyZ{r0laaX9b?g#>j)BAu;GJ^p=j|Fd5?4((*Feb!hz}MS(Jfg86u^AKI1d z9$#u310}qRcO;{bF~0RCXnwRA49Hw9cAzuU-p1+O>x6z7$`v zy%Aq2+4?{mhyWyHzHfBGOlR`ge9kQnB{YHZFU9{m&KN2J=5KumgP*!Kns6FQ#(KQ>aC8( zU~%nz`YrewmFi}V*BK-@@IQhBb4sCw{}kN&Tk!dB!BzOju5PRk8ppO>-q6Bo#G3T? zNyMYJ<;0_Me*t^+Rwo6;{tH;C&BZJRXL1M(>-qWys9Myq!6S_IEXR1CcOc^1>5l*` z87cx1&Bm7DTe+DD{sTCA00EeiI8(ay0a_SI6$p@fzS~!Z!Vp+AY zo>c@|*tc`@3vD&`6lhcx5qQX}WXPNga$Q@xWqEX+zt#`<5$)r)o;pZavb89>dE^E1 zGdzy~tkUY8E(|0FNs|Ya#I$3>sF(TNC-e#l=D5X~?*1p%wc5FO>Riypoa@r_aA9E1 z(7&4bzt+Yr|G{KPn`UeW8C2g~fNSR#sH1Gq!T`_vOVCjmI<<$dIHxWzv9=`BW@(>jKwVPt&P3$%!R;0%KRN2oVui>LR3sn2n-j$nKr3as}6 zdrH*-^u~VxNz7r*!}}UGhP!aWpvO_qoUZ3$Cm;cu2U$oiVap?DtL6NG4Qd!Z#vLt& zzl*cQOwe& z2VX^|fM^+{vIuNW;rTs~N z!0{J-v8koN7BtBG{&owXJrcZqe~{z9(`g}xckf@Wu~7)9{2}nVJAm$wjj`q^Zc_ez0OC`zH&VS@1nrx3(+{v3)9 zL0Nmr^N7`eIx>XWsrtmZZrOv#qwBm9oj%dhd~m2pKm+Cs@Udb7N`nftUM7uxRccTUPqLaA z3k*Md=wNCYoKUEU($a?2TK2GIWVpq{wRn>-F-QN&S-hraq|dZCK8DA_Qp=WA5im6N zJmbS=3E(i353{RdV@{2>{3W?mp-ZVjH9Z#bV&_@$Zeu@L>pdI&_)XQAoCxxlq`k*k z3z$ajQXD%iFnSE!B(1cm3R}!eHn&d3Rizr|3ON$D@FdqSNzu<2BNjO*BewZ66>?;q z`(H9L(3w(>&CQW;Q?=3*7DP>gz%dJlQXF87<9^-W4sOrw$u!Wd(%y zlCa}~KQm1mLFHlv_l}Tpfn4?;P8j{(1vHlaN(h}|#nqNld{@N(Zb*B{Ic1TP5LV?T zrT53bs8~Q$xKY2USRw~awrZ!jO+hxCiSi<`#`Bt#7ckF*@Lu{sMLgId7zah@(Z2*n1;T7 z=+t(iYJ?5{8>l_f)x3NAMZx2H>32r+03#D~P$K~-$;X~T-l}XiVz#a*3nTaswsqre z>L%uw6%|V)nZsjSzJ1|Ir1fmz3S`q`P+Mew?JE~tqlo7rBRf~`Atiko)lhFcPK$6 zgcWHR^1XU|%KocimQZf#MbT!XfKIjC(Lt(&Cp~}TIl~{U%7nA$ji}YqZ+kN_in%;ZRs`bf{`1B_w`5HmHHnx0>h`dh=9ja14Oc$w5G)LW$D%BSs{wE#D0| zx@$-}j?MORfD&mGt{++LS-o3HTzlR-H5yxasuB?;QJj*k$1ZO4DRnzBXg}qlLaJfp6>u<%%)qiXmp==$2EQ2jO$fD;i=T5`x`?afd{= zG&PV>dt5YuP5o~bh$w%m2ZR47;0sIqpg3_MWeMbb-ajzGqGbzKs;AQgM2!+gIK z{BA7$``n`79w~EKMx2EC87f@d7kT>~dh}i5-gX#Uv6PIRJqXEZ>Z)$i(DVHLxl!*q zD7MKx>g*M7)x)cjPtn9wL5G^(-oQFBzx9CaM2qE#+*php>K|p0!sDZIm0;kP*x^{C z5Ke$@Pt*1)v)VpNZ|pX~sJ8Bya*_n~h`4zHp_1b8^%nvZyL|>rR0^PHRLKIRIvloW z%q?$Hcv@7I5)9gs6Krb~+WY(mGa>A*GX;{6#~f|)0v6D3;}-p7`wQy%@nVoDk?yuG zEcnw)h!xr(AeFy>uzmyS{u{{dH_)8lL?=)>@6~bvjy7t&)I3ta7ANix1c7qUy~UB) z7K0Y_-j7U$W*I(B3gJ8}E*KMzb}j<*%Pm4Cvx z@jSFT$RTZn3H7Ig*0AEmMx{nLRQv(K6a^yEc?t!&P3k3rpggqVN76qX7@<&4eR*lb zb!Ly4kp@*_P`6m=DZJB*h^ZnB^W&{(Q9OhXF$F2K7=kMqbYqs-2`DdieHP^4Z32%J zdeaSujgToy3IR!gVJ9HPHHWP9ARvXiz~N!>g7^*PpXc_CJOgKWIl;i3t6{+K{&{X+ z)5_(Oq=kjKsmq^7_JA%+abcQ4Xz?}f_C=k(L7 z5{^F7HG@v^i{$vDkHkuk1fKv?X+_@0wX!=8BZu9;`n`I1c0KvFu2*s$-)+8okYcz_NVtwGu|G~-X33%-P>PsrpMRyFQ0Bs z+pDWl&dzdfK}Y*HI#&e+7!9%8yE`k0nlje+XI}v*87b}=ia8o6QupS$($>bP$~_XAUFz!}ibQ^>HR zwC&a-zxa*!&1Bp;aX2S9BeXeX&&#i+(|vW%*{MI{=G5xO>x6rGAt6!mK#Go-=c>lg zFf@B5H*|Gy@rPd((&gIg?!^b@>0$nAdq*v~_jR&pT{^LBpC|KX<0F)v7B0kL^LwaSwM2$3AD(|{&%9YT998dT z&feVQpPDRvsJi}fW%Bai93G&l zvDu0JXn)t{p+#tKc45^mx6ovEuUbA`j>$2#B>Z+!-Rv@f4S14&WiqIDkLOM!qJ4L? z-Fi1lcDvnzLy5y6{LgDH?D+?=lMwBm1lwAGuYo=bE zK|%ks^JDqJHFbMbtvEiQ{Fspt1yha~`Sq=SeY-V(Oiqvy=Vz5KcSR!?Wy3xTJ`P}* z(t4QO+EQXJMsaQ`wImB(nO}9#?KUHnT&3QwMKwETT_onrk{fRKX&EW^9_SWC+?BK5 z69O7K+yV{Zf`-^{Z-l+I2wuA$wx!>3c30g_kFVU=N!Mm(-=?)2Vy_M!ob25EWZHw~ zE;>qoIKOqAcApgw%y_NYv{$*+H63?^vz277R*YP?)&xYG@BrntH`X_s%ZGKm^Albw zhx(YOBSZIQ_d!PmJD*%1h7HQ%bGY4!V+cxsJ@8(8#q$TnFZz9<#GVX~l#spVKZ@t= z4FP#S@>&=ikg5zJ*6|SEw1lcQ45kDJd*gjl`eIZ8!>YB3$OzN@QD34R1j4ILC*{>KzIaD&5 zw({oa2A^4=poEK$L7LCcYxR6Ns$(#Uu<*rZk*-%l#HG-xg{~N7Tz}Jf?OMr#Z@zCi zW9w+X#a>T9Ml)f1dum!YrA*sG^}zT=NC$3g7%&~DS!x4tSLm$B45&lu0XS` zgIK_H*9FQ-tXBDp2EJ(a;Ppx|7)3jL*x&M1<7W${Eh9|p$2^IdFphKkU_TU!UL&<7 z2d_oG2EkK-W)D7juMM#f*5vOcJD>{|D%!{B-;cMA-D4c>fVg!&R@wxHtf~f@pj`n? zkeq-f;y@EMQZ3L9|Art~fNKVONyqP|-1!~!uk7DJ9+P(91VtskQ5t^3|AF%NfWM>s z?<#OPo1q<2zpg;=$j#V;6TnzCgCPe6gTOfdq4h6GD-cJFXaGnLN zWaDp~bqJn!-+$x$J>YMiYor>W=XA+7Kw;>hu;12@ZJf$w9+7XaE@PfT_DJ`1sh+E4 z5<9?vK68GI!i>%1H;}`}jF=kJ({x73J4n|?^$$+NcQXFEfds7H<+0P{liP(Q!hm;C zHk(Fo2hXRWdwW@9eRmj9_%gyC9!9=FF+zE+>N1Do$hHn*IW!@Jyw#qQ%MIIs5} z4{-mFu(tqiYuUPl%@lLY%*;$NGsw)$%n(z|%*@Qp%*@P=nb|QXb_}E3``(-HzJF%^ zQt7BvC9S>I>T_DV`>1#IHh!}FGWmSC{_tv9Kds}0A9f$C+o3vaux zbTtAIrO*(B-+3?5fBe7?5-zeX-;(U9bsMd8i{q6uOj4Lk~B-=TWF&>f0lEd3m+$c#3J6MJKiGLaxGLv zElQcsjz13zVcDj&btMsjdZ2q1%Fsbi;Mx!5ux_E3TA2NB3(@K@A05*7qL4!{IVz;? z1t|TAJ*4h7`~l0sAwqki;uctQ!X8=(N9E#F^1l&}!k-mZIpF-i4r=ArOqATFKL>zC_1m^kW`c-b(Lebq|NZU6=0xZu?gP{3m&tuWtuD z*&h1x{XGYXeDC#R2(C`+-p{YEv10t0M?UvjZ;J;L4X;fCdK`GN6%4O!>pwUd@#yW4 z?4Op{(qmL_d*nymciVlup4&EajN*$O2Sw~s66*OV?D7f3)2k0prnyhl)~j=7?`JTZ zAzvvzof|gEb1QUD61H+HuwK;l?cd$B$T+x$puo0k^PM#Box&42;(@8vJXbQ45R2W8B?pw4E^XX z9Vp;t(YAt(YqoQ*ypg9LILf!!sn9t1V-fGZ^y|dCbazqbK}t?fk~7wfaqs=i>Q@gh zI-gxcckBUJw2P&B4{g3&_vl+Y9mJ7A$A&N4E;=uwfUOnxv$if0AE)?MOuFsMtkhht z;!nq8^DPE?pnClEr)m@XeAVgFD^-d3kSJdGJ%`a|B*#u_gI3;lojyV(_i3p1O$t&* zk5leHF4mIMBd2w5E%aFpK)-U)_?I3e4=mm`RXcL8sRX3h6&uS20@r~xuDL=9TprOc z$JAhpr#n!a5FhEE*%9x0n$Rwv6H%6A=)c@f=G6%;-?60kz;VR-5}+=yc2a-wno^(L z5n1PUvFql?8o2*%+QVqxXvhWo?Ank&=oy=B_HE*exvTsFy+UgK!S&i5qKZFY9QS;c z62n6x`_T{YM?NQbZX~Yji%$V@KKl-mYqlIx9nPMtz<{(KRxf|k80|q7<)J%$S2bjW z5PnVPS)EP+?s?+rUAG!1+k<;m{MoOYHG|%i#v~`F0#T{c{tQ!!>)WG_(%~0pt+B_O zui&!eSIG(0$10*ldkoI_0y&6n9X6LuE2iYuC;5}2DbppLHe6{~ODi@;`(oZ>;lb)n4Hc5x z3i)nwr@#C@^7v*P&e8Rx*PN1>FXXvU1U+3H-MXSr#daj6`7Vn?v{-T1a{ zD=BiD@$3v0cK=QpKR{7V{~D9o=5pbv^(LXjJvXrcKcJdqzdOW`BRH7K4iT})0HP#Et0Md*tgne zbr>fP6&9gyZ9!Zhj@c3ko|_1}as=>CT258>qnCFF)bEdJzsVy+2Ae;{6((5H2q16X z?)UErJcY7!^!Z*z-znw|dOIpuzjX6%Wlbs!T%O%~wG%vhwd*~CC2~)`AP;4%vhW|j zGm$ig5%GvWo?^up8ZRNauw@(wI&8kZIQ|?T-TE=whMV|P82R&or)<ov9prd7wu3W+)c)I551Y_+Sd1Wnr8(SABI}ls7oy3dg(=UKw-&G*u?_$CWosnn8EB(bXr zFSbmI`idQKFd?g#SLe`>!$oSS%&P+@ZFkJ`I6(c#G`7iRmiK-psSrPfwu*Jo>QRN| zaaM_9b@DO~_V*(s(W}>zg&FE^CWe^I}icxFn!^6Avwe5idjxa4s*=y#Ah|p`pSnaK4`}H>j@Xv(6tv?b5*tjDNpD)+FolBUkBkoHCVeO^%I``Rl z`Lq$Ukb;k&kT?yN;Z`%Nzjk}}aMvQtL3Sl=3mQ_=_a3$;$RPI7xLw`uGJ0HQK7 zoj~3|zcz>V4uYle&3yr-8&cS5n~#MB$9iwsy#67jpab2M;^&~llEXlEv**#ihSBbQ zcT&21FSIN5p&N%!h3K;--05gIn%uWxi0rdw^D#hlN(h0zbF{H81>6k6@H!?{ zE&1R&gq1YCw)_4X-aJp!^8+2mWU$y@Mg&gNwn*s`k*+Y=!P>9Cg&AhGWVMRNWsoZZ zuBu~fd3RHT4<6!L&eG>|h?jEwaS`tI^pf+pRa&o&!rp6y6K$r2PNpB)91ixo+X^CT zxXoyt;FD$Ko45vbw(tYpXY92xz}?97H8oSzPhtnU>s_#5HZvDw1L1#`kn9<7Zf4dC zxNdTLaXNTiZp#J|VaZLth;4Q6*$`eMY~nhNSrw)jeKo*t4)OwrZ;2La<9s___CX6K zrKojtme||Y-~n=rrrg~&VU2ZL=*Ax2cHuMr0kxV3_}I)G@B3*6(CjVi>-@;s5#n&kn#Ad7t}r(}}%}69Wm{-|OI08|ONlVz!Gt$!ac=bOGn8T!HVk z9AD0h-Z+CM9SLpYC+8NVpHSBb+$PP6GWEQ5QCb7tpimnlM4Op<_vc(uU3F=7mB5zR z2DXIK^|XBDR?kE!cb583;|9x>D5+m|t*QOFvF&_~UH$Dj_N8p7Qa_j3JCX_Z2YrVX z-`m`O-Fb9+$h2g8afI$}2DGK#gMDwXWJ+$G&EZ9e&1{WbJ-e=~Cih$w+M>;0X-2jS zA+{4YrXKPCCbvfE<_-d*4MKe7d23Pys4bLLN6@G9(mWV18m7!4F0U}9Bw#Tdq_ke3 zq}`>@?f$H%`B^XBJH-N@I}dk;MXvjFfVXjhcMy-s1+nR>7!->hTx40hQnoMqafPbE zKGnMMJq+IdwLUlot?Tv7ZEdA$tmGT`6i+>(l1PrtWH{=wg2^TIEsF;>=>p z^qdcFH7jln;WjwMv)IrEXVQWSsc2P8m*=~vRwVlz+M3c`b*r+ozc?Ewy5FFTj=4QF2sYcIzi+8P7Dg>V8=s^_v-t$9{$h=|1l{rzbLBr3%}|GZkYL}J#{ z8m)bPuiBK+n$NlY*8?jVW5?x^$ahzFYdKGA;MytW;Q?*y0qsP2sT$Hf_d)9Ea!g%! zYc)^nH1Loa|CVlckU~>~GEeK|_3g%O9I=Y8?$+y*IPyabwGnX1d)4FS8msXF-Fxs?OOXs+?6lqNQ=lRzf*ad7e)B9$D&5T!hmV@}(In1a zx|%Odqfe4CbA3Wgs#CK)B_ojRtEKF#{aU?A^nn!Jt?ytDT#Ewjx%T)T3qILTOWPwj z_swz7wX{MRG{M7D+h6_IST;^hb>phN&NBU+*vBox^PaMJONhg$ax%C0YLAlkyKdStShz1%kfhex-TC|dSkCggLb*x zcvS@I!^D=GhUZE?r}^u!1)7oQ64d!mi7MLp><_m41rw0R)#Ay+F=wI`w`;d!YcE&Y zLZ^?!Xt8GmMAtzBlJ`O{Ka8lg1?jw|)(W!vbURf_gmR2P>+nHv`zUq>ij%!_&H-nx zNz2(pSLTc&u9PAby!Bo7x=;|Qh)bmt^xkpLwm%=QsF{>#9y65S=;2022tzlCU$*5tEu<*K{9< zpq;>&YbXqjOoW*T1RA**3dxvWNJ2qK5}N7rSqD4}0|8Y;hW0OHk~-bbb)^-$mSKHa z4Q^VHBW@K8B%*WsXyVIyQwBjW$Rr^6b&m9BDq$dfbMWxYk8BYloFTnn z8T8*FFV@U~Azd&33d!>nvQ%&WuaH?#$RvVceTZ^>IZ6}7#9+==)Yj-&8`O`{$U>3I zX^f%%k6fLtsFhehby`itgTqz%;yk5r!BEg83EMJvrqNzhZjaD)}3=QM<^a9NE7Ow0}5o z5kwdQ24yWD)?pTFi&pI_LluVvnKj>eeSwDQuGSU?#l-~fJ{aaQeITu${*MQAJ|=UZ zUaJX!U>Fei={{s-`9ZEM(ZtB=D$nzy7&l5$5D2S$?r0}0TET6zFc6|v!ov;`2-0oj zei&k~&ms_dOqsJXR%)?uJ^`XM%>FCIsNt|pjEUm1c^>Ur5Cc%6jY+rIf?*)UV7zRg z*Vu(#!xg%X6V@m&>2vKimgrc|s~kZvJS@T7)+idR!OVf$Y5g!L8n0t{;7>K=*>ETz zSQ-ArWjQ?abTgDDy%`h0v*CX>&9W8*Nc$tvDn7}LhX@3}Fa$*i%>M1tPwBZM%vXq8 zY=(u7saFh3eIvI>Hb!(3WKNU||u_IYbdfpqLQj0=OBz)gfhn8-{F z|2(0c`1?t4f?xpTI2e?M@5iA3pkHo33gJ5~;_uPn!PMD}Y3+f~`;-l@MtLV5wyq|& zo;J4bF3E||U>TUQ``sITe;&dg`st*&=%`GpNuyDhuTe|XW343Ni@3=u^zEtb&qQyd zI>!y8QRw}$YcyJCBEr$d+2hs6L%DiS2QJ66wXgk^oC}qN(2f0FMNY*~y?WzWQ);y) z3PzRc4U|V)lUhN(NFO~YA9_C0Y&~O5byIA;b66tVUG6OKHL-CB@%@YTBa5S(m(!a; zqdOg=gdK)>V&tFno~XQi?mbcTe7_IIq^;(@Nh0a>GV6Wt5kMa#7^wh`pvargXwwtd z?~>uAZGK5V6?OS&M&7*aJ#y|pPRfUmV5VcFq#tAA7@ux0mcJTzrfY*bm;}H=04TY9zU9YadUqgaewpY&6SrvmuXAJOUyt|L9E@us`bT@Hxmk{yHd4NP|EB{ z;7+I4AI}>KsWp+GxJYe=sU_6&CDrSFO|tNgw=_(*^vP!q=|QK#Igzm(ys#hmPn3>T z!jV0)j3heu^}?H%=?gLUw^0^hVZD#ybL1|c#IE;S6MmR4Pf+X?n|VbX-^iVn2p`L_ zlAep?hjTW+z9nGnJp%EDE>d$*qZwJ~=~$;3*+%ACh2sajU1iZ!-zJqvfP3m(w55Qu&669>{XU zqjEWp4w};Rf6;S}c=SoH|DSs7eX(UoTM#ZT$h1x$?@ezDCAU)__xBDzaX$|>AW+Mz zTYXiUaoZId2qb$XYQOao;n$R*0v-4SQlVL`2wsg6c0%O+`(VYJ+Ak@v^GH35R8j^r z3u6=gGp5vvB&d2cgAYE43ciu2z)ZrnZ|QH|tfCK^m5a;trB6B~y_Rw*@q;$hOVIQ)LnZD`l4PzO^O2Y~> zHDZ<^PZ6c9x4*iAC}qbvJjAexvN{iuhnYQsfTxF8K%rrgXE^p~iE9#J6lgxNgqa~v z6JA{K%SmLNhQiy28TDnDZo}RNU|7F z*I&=Cs)e7Y^THNo{e$t+J`l;=M}XcCY+=SIOPnFZ*693v0aC<6ymyLk8D@4ICWAbE z4hqGBFb_|~B+Yg}D}Sw!LK$iS6jAUO#=k_I3yQG)5dmcN{}vHFB-$v`t@pP8<~-PW zc-k%kvyDQQbL8pEVCp}#+!%cE{ZuH)@VZG6=BMx+fjP#PKEV>=3{Xh%aI>B?3peVo zKt6xsL$MKO7zVEviAR<8j6RXSf=v-;gzuvjU}OI+#_9hm#zLL#w`FrBb$Ys@ww|^{f*L!JH z`^a@ZyuD5C3uIm)HJUg|*;}SFeXQFxkL5%GMi=ho&w{7)`7fW+2m8+*mm_k^5X^>f z=|v2coa#gBIq^fQ%pGvH1JS+KD->1G^zSxAM6S671>wP@2(^eRJzi>eTk#30y)IXm zJwM*Jqo==$Hh+l&%RQoj^gV1&a@`ej_=K4u?(oT#Oa7aKa+tDb|Go_&875gPN}m5Q z4GZ42Pm2wikSl1A_^I7#h$9*^xLymYUUX~`z@ze0`!O}67`nQ`_CRon;XXQ=iF)?|&jx)S!)nf?X`o#yttvc?FF4Jl* zW6FwKI;zRmwjH9gcV_Dcn*P-K8~aW@fJ5?FHNk=>2Zzrd)XEBA_~x;TT_YW6qiE7M zglue!bLOV>fy**$EfGzi_J-vgBC$RecLDejYN^L_I5zLQanW)pN~S2u3{$**My-l? z_1S~c@%KJRg3=_K3)cHoI-=>ZEDS5MnPh`oL?fPvQ@})mRS{mW;9&TilD{}zdp>$n z!v$*eTAWakzhoh##v7JvqbW}EQd8P_aUf!T$Zbaz`?@zT{c;l%JhC+x(NcoO;QbxE z>5O?8JF>Opom`|dzDR@SWP&x>WQfKe)Ov9``daj+h6|%Vs8#+N|3V$cNiI773$;EZ zzJDQu?;#t*S_=y*j2#czN~&tFOl?;|jn+>CygsBzDS&I0xd<_ku3bDGI*dIFh92E| z2z5eRh_;hqB@6+32q%nP%WpYWkyE=$ks3OnT#x4z*&2(+pB-JLgMNig;6Gdy%}4XA z8o}$Kj1Z)v2_0*UB_WA5oua|SfMQUzXja0Kh3f;<+;po@a9RE+Y67VwEVOIUC{!AQ zQ|@+|BVJ+Z>8&q$QZF6Ozz6{~LVym^Lbc|i8RAYt-zQoTtRgN4P~MKWVmJRV8E2Qi z5USb}weXn1$tTfMo13VKWH%Cl0tS!9FnBaxn#QnJk!CWgNJZos!U>T!kXxRxi)5ch z0w2ObglQ&QaaiJTrLxWx2AU?Kq^_EEfu+=}nxa!kMK^>42ug`yH#(xM&P&$Cv>pn9 zH$oV~q3=5%Ez6`|DMLdVQDMY)31g4aYc1J!`rl-6(5&Bkbib&n`%BjnQNOd<>1Li~ z73?7__}ZwRc;9e+4djAmDmRGfVlGcrKAavO!Z@l%SGx)bmy zb)8^MMxF$Rq~>R|CMGXzSbDra$zGER8aJ~F3#AAGFawJdA@@>xi0dmL5=v@@i74yM z`7CJ!C166PXc*&9fg|=k4M58|quqSY>(8!MdB9Bhp zP#;KR##l(rh508_>%CNE3{Zm9QJIoTE>dQuQdX86{wHb?>_1V75JSibm+C0e5LEtU zfleLJg7{Aue=L~pj7WSYdRU9xE%QW4@>EwG&RXh>pn)>oR#mB|{8>}bAvXUNo%}Dp z2atb|w>l&4oZ(gGB`dgagA2pnLZGb!)&gl)2Jo&203BGYmKs#G+%#FGGL`LHrv95XFr}iuT zb~A@l;t)33~yq}1=)&dDT#6^ znsP9Y%`2%wg><1q#mUtF$+Us`6B}bHzvh~sMUM$TII=BI{M(G=Iz?1=+FLzT5H1Yo z3m**(r?B8f{SSmasNMKlG~&yIzGaqs5- z8<=hV^ItLJ$G7sQ4iRCYQ2`zcW59t1IrYOPm~q?~EzMkq3Xb9*r6F)YrDQ5Vr2qwf z@Hhvac=~NgSaURa>1{2eM@%w2Nv_m<&Q0dfAn+m}C2scxx>#af(f&hl3`wr1r3<2D zhqm#yuAsr$pRhd_);?%nq|462z@$qMtOj1I((5-N)5d6&&tOS{nS{X@WBiIB_lM5=zm0jj(RS@)9qFx=f z*yR7~Gq3xA1x|wqnk>J8e~_{KmZcJGXy(7-f}~By8l8~i#o%$FmD`u3FJ4h`Y%Ox% zopMj}QFxm)BMN;|@(j&Gz@8SF3))noH5GNKKjH*?E2L#_Q#aM|7?vu8R4m*&qD(K9 zqqA&|%s7ZopYN`b^2Fp(({LrxaDZ=QU4baCc4kdMKCzY8G2mV`7>wY@nH*vJoB_0WXc?x6HE^n6H<;NGA-ucJtuTI&)iC}v z=H8_Pq!_{1J*6S+Tj(J|WZyitfM0>2x1m&sTXAp1_?2aR`$)UyVFFFEHOGPTea63c z5Cvi@7Q&d!QGENdn$2fO-u-?BB5;Ylg5E+eGDrLZMtR>{yS3pnPW@rhz7-|_3?%S( zAinUFnOkTR9bw>SLwSb?J8*n&3aO^lb-5Uqo)?J21pIP|-whzzGoXZ+jLd_{B|##8 zf$t-wHM&h}{^3>!S{f!m^lrc-j^YbaJVz+}Y0zPWL1)OR6ZpOc#h1z0r+k!<&;OSQ z2bbTUZ~po8T=6dvtk6V@0iCihBf`T0&jyzNBDZY@>NKa4rBr8JFnz$ z{}qp87wwN1vZGY{NO@@AiSdT|neZHdp8XFgr2fAKVg7bZ@HM~k7Me0+_&Le_B$($z z728R;)nXLGKdr%SJ^M$_ zEi|qJur>CPN{oSW6yV;F5sw=aMZEHTymdzWDfrw}8or9J~ zT!Zd$+*^PwV)>Lq3-uTmY>ZAn_pD6Qz(L<&%@+Ol`dNe$v*b4Ngc%vQVJ+MYy8Ft=2?Q@H%;z33vpU0H>P6`wfJJT7L7=7prB}2-<3XD zA?z_dIVt7|2Jl0c`m2Htmg(2^FQM`d)isYmdFr=)Xv-O>w7^!Xl#Hpp_>uoT_|Gb zK>g(R@IAJ#YnBARl}EGh|Ic7w0Hxd)^8=P4i#EZFQ_2dM|Dv-VzO{xQv-ZQ=qbeH< z;2fHLtavFm%Id?^XL((-xCw=^%l6fhXpe1!H7)|+ER}zcTbiCX#{EYMg74y#A|&E} zfU^57_G4w#Ah@RAoHDldhBBdE4S*tbOWP6XfM^SX1C}l3MCjSa3Fldy09GMW0N1ob zMy6|qhjeNmkQjVvJ0tI{%VjjQDJ@vmu@Coj{KYKvr3Tbzc!!M63$|8&NUmvJ97(R} zC-|bWMQ;sgfo^sv-%cm`AsE5>6*AW4OEknnA6#w+F(-A2S5J zD{y!K;-xu8@uxb!0W`jVVsEGgN%jKOhNB=8TldMrVM=^_{(0XzaptR!i9{e7G*=Cj7qXrRd=dVawO=PkRCYy`$fvNMsCNFy2%d?+4yQ zaK%2|veb+}Uyqy|?--aqs=aMr)zHM^&nJw;9D^GAuv8KTg1;zB!9DgkRV$y8kzC18 zk&{e|(4M8Mp^gBi0F+S8LH24Q^!{2#xmx>E-Op*+^O&CDmWXsah?-an1N^@Hn*~M- zP{(=cV?s6A@-tc>VRp-8X;UXCv#jfdnNz?{T6{AW;%Er|sHmt*C*4U{(G+n)YHuKi znv$e?l8W+ANJ?Nx?z2=URQUoXno4u`PFP`XeNNL7R$FR}mmS?|z7}(^^9n26=So^j+nsh^Z*}+q-w0 z*ijL}ln{4(pbjr2^dBpZ$R0>Jcgy)KVx3r!fPMUjB*_G9w77zjQoSr`URf1Pbe==L zBaVL z6lUK5tDzWgg>>%tMe$q7wa+1x9ir(3vCA|2X4>3Z0Kx=bYbwm4YxKg*Ro++Tt|e zNk&C!OHC!2Lo`7y3oblJjl_S_N~&Dhcuh39lg9=ARfRt%J!WSL_bc%&LQK1kG#+9UO05CgWn`+svx?7vU%*==?b&TA z^{F@fBNgZLn|5PX9dGA%1~Eg1*BjwK+stBsDUjN zN8I8XY#`IFZ;{!!r7m|29d~irFsPGO8}eaOY%_`=KunxP6SE*(aE9vhxaA(U)8PY! zGwvAmSb2hCoHG95Qfz_4PR*+7wTy*Wb( zPjcn-)|EOnKM%s1lF$1}$cPW@Yi%NA!)=CEQuN?W3e8{p-0qBBK+v*IMF>^|I2m;szm!JN{Rb9LF=P>Iic zM&|QSU)kC|SDVKE`KK@+E5d7ia?ipv(O)wpjg0Gk#O(a2ppjLRJxQkVXzQtcBtQ(Y zr(iK@^NzY~G4VnJ)TnksJi3KAKvRks;LGaQ^{CAB>dINVhG-xT$)Gz&PJJ(d=`=d7 zM$w1_i9x)pWkLg80*M@|hRL3A-B?eZf_(#GB=={M1Q0r33QKEZ+7Z`RON##2%GV zs=LAeP=_7xN1X`r|5j%M4^+nm)9v?mj{YAolfxJ1c$d<@f$T7_q3_qD-U0#fSkbokAi8=rY^_p59lAb9kmmS>8ue4I8Z2Yu#Sm>*Og4WIN$ZViQ66lZa>iL52h}z26v;J zek!TgVw@D6z$c}UV+CRkrOU@f@H@N)7Ot*gVs+BiI|d&c&Skw!A@EYhV|eBTQ@l82 zK{76OM#p8K!5@oEnYl+ty-<)7UM}Jboj_t`D)MG=fkeh%Y@&XG!G(FOU^U*QNB)uG=1;f0HncJj zhtFrVrnn}su&{!oC4rE|tZ9RtgQ5oBC%U)Gy|-UenRH`^PVFORzM z1Rx4muC|1fuNiOu!ZcPllI0VKtGKl~qV%u^-^XZjqX$N$b2uv*SsEAsA9j)coEyN7 znZjJ5realKf8(`p&ECFKN#Sspc zF;LUn3og7S;cWR1jU_ta^4tW9lXLHGP%1Omyt@q{fs8-cB=XQI!?pX2XF$32H$k%i zcLsvHbv;qnToSyR9WNkDJU`dI{Kg%$jd2%i{9+*R!0{6n0Bh1g=L>SvT?9^ZkgKy9 zZ2@QZ4nQO~Y2T{N_feHZUht#bv|7uhHr(p$Ky`rYny$PKDaot7JaSVTcGE#Zfxcpv zck2PT>X*M+veyirP;zif9CPTG^>rBZ&>F7Dxc4t4>>U9&7jvGkRl(?r6{g@}C>St7nJcg-fU*ZD7%qrS+llbdosZj59DZvXZhQ~kYSs_nn-2*b&y?#g63}!WWUgVRc{Cc|?X-g0HJ=)&}&Qti_ zgEPLI92L+$e(Yf(M!N>KQmpP(Cn; zVirzd!NTuM5^6zmz$0gF1}=u0e)-9&$${1RKtX&)T)yp#GtIComH%hGJqwiDe%|Gh z3E_{>E#na?7+#oYjEqaTq^pf0y$Z+|MB%XLArhlgV>Mo`=pk82?b6#D6j`Pi1t0{TU^+`^Sq*+A_EP8!FCam1SjVHn0+?-czDCtYW+&rKp{#))Apke$ANADoVm#R zkeBeKdoskBI{Fz|BH;5*I?B;z3!~Pe8C9EFN_%!C#V2pCD%VXHUGyl}!3qkafoLqa z@j8xFr$ZJx0g78wB8@0^{JF66^hl7l24`H4ut*pYoH%t7Nvu7d?ww>ZmY9G_=IG@K zThFi!l`%s)F~KAjZ8OE=QKlnn+|w&8W*o_U(K2f@*5?Q%T4!E}voNui;eg{z6iiek zlKqX5F*|(?wV9a=4sNrOcb^d`66s=WW2Tu+f3t}_2 zjB2th3q@q(iojdxOarOZO1jgCn5c|0(6y@m8JfA)JvYd!sd9VufThxUUH@S2vp{XT zkrH_2T$X~WRuil4&+zweU2)HP{ygrWeD@+|hpIPVrMr*cFJW9gyAf(@%5^yT+6FI5 zBGf%$S#ym&T$ypx#MB(M?#8+3J@W4zz{v+Qz)&(8KX76*|oZtqJ+ z8TCIDF*%+V6D-|1X)rq&KQH7Cn;;FwZO0qB8V?`{&Vj6&M#FwUAb)9P?&K<5A!`)>5^%>2>Z)~i3&o6Bz}3m^VEdq;sP6<#%g%jCfu zw`F;kBG96@t771A*q?IGpQ1ckRkv>s3C1{G|KsRe_>AjoY7fOlsi$0xc*VEd|0;f) zBt+6S0<3Y`Ndp3c{_j)L#lqCql<}`4^IsLtwB+nJIIwztsv~zCF1>8HMs$c>u3fE^ zAfUF2#5Rd)+fXSIossn*Tsijn8E(}L!dR9Bx?Fh6u)}XbJk`gdUXP$sbUGfE z`%Vr$O7hI--K(#3vwRUs0Qx)3QTFXg>qyB1foP`$@oDs`*(>mUcm-z{>;;i*N#d%R zdf$4rR<{kV76#J;MzU?Twy)&~4n>DLxs5)QxK|YXaIzi6lmP86K3WDb5ISLnwAiYB zlguXXRg0 zrCl;uYoSH9<8Sz$OoE{UU=U8kl;733UmK;FC8S8>(M0JAWal0S1+p20kfk-2&(_?r z?p0qNA15;{Eh{qEAaC?)SFcnTIw|+&T8hPJpV1zDDi@@r;=qR4AQN0Bqn)-S6O&6) z-I)PZ$1-TBtm5>I5cCHk!fgBny)QflFV{*B#9|w#4ssTG|d1f$-Um!su_ z(OQBx9f)4oH%HX>i6pSAxjNi)aJh3?yq0i z^MBljQi`=9K!r+ef_Q}m@}7cRD#+95H<9BskmrMA?vuF;5;~uXKr#e8237W7%M$yG z`5`XgJLHZVX@|8jdz4W(Uo?bEj;4gP9eLsyMJg@iSFM4xCSgf!$i3czwXc!EuK7Fk zDpc9g1bHS39^)`<7G03YCEJn|!o|eLLMS-9Amx+1f=97`*cfIi0wlor`traX>xrS= zsisad*AioLFeVs8q#I9HzRl$qISk4*)ry#O2rIS0l4M}o^@aQC)vL{sN{!i4Z3>II zl}@eTjRwP)Fq5D?;0<{Y|6<6rqS;Dlb`&zPjV~`1N$c|pj@yV^ATvq4cGW$F9QHKa zkqhA8_hL~dS}Q5g;IBBT^Gt~ee%}x4h>h215Z)RzUd4;DG8=$%Mpx_(ksXIA7;>v1 zHuKCp|GFli)_ZT#DYIdd{03-=U)|w<>*Lu9X)-iyDE+-5EZ9-$O6`0TI={rRH?$+p z;y>&4-9w)DhoyO0DSef6OMuPjd-2j>^ue^cI1N$P5+Sz215EEd1Ivn*E($C8(fl|D%G zJp6T~e})oWG$5P(a+ofkB1tXRh+|3Fh>Chx#v}*%%$GIm6s7KzMS#*VCp4;=TIW;j z)>2r;RGvEbv#FrEi|YG8fPL9k#0n>d%YI;BOY?Ra2c5xSo^A9YzJ$*sSUaJ5HA+JL zPK!Hw32_SMxKr%?^&=3w=ju&7|}GlvKiBKx{x4mxMqVhk$r9fFLpgwHyg3F-@%dq2=Da5?35GcX2cYfU7Ij&V3Okbb>d(8IcbE{bY|y>J|ISd_ zkhO9BV9QyFKPJIWX$+&S2f%`;;A*0u2$C`F{G?;^GremuO(jVUq#=zO97Oo-MnL3u z`3QF^<^HUV%%Q66<28ZDuOHj-3)b@wns`RpZ9?YjTn?%{*sqey?R7`2+VNWR7 zWk%a7b`5^K_JH+{$~|W=4)&_mmA$r)-fq;DouhIE<$Rxn&|S}YRT@WRZ2@{)`TeO} zg(6ScR#jX`vFl!fV{j^+JpMxuIMz%e+QJ^5TBOsMDPClKRlh0f6h=-98lO{0P^`Is?$}gi2a(W*HHQ!{!9RcNl2kS>@j=l8bPr8Rvd2A} zrtyFx5K6;x&cgsC_fL%Y;zYu8h5~KXr1_A_S(hbXVm&pTqRbI3hjxTW{jx0q5=x!!7ZfBjbh z)f_*b)l%RO9uzQp{S16Hc6D~Kx7DzbuPbo?;m`YH!F%N3 zi(nz>tQuqsWpfEl*EV-ZVtH^(n(=Y81080JB?z@3Fms1;gwyIU*tanUtfqj^6~h6M zHtH!}6wPcn5{$=|@YWP?RC@%~(P+W#r)$}=A9=Y(vA7Kv6(YfIXDYR?9;Zj9Q%xgEnGE9AU@*>cZMZfvpUdocUwG~%?xa-46DPel zv?;&IZIRDkE*>UxDflO#(Uwa1b_Q#p?AS}?rBtfXHm!);_ z-TlaINH;{IE8e~2c-W0czt*^1FZ1FF90l1KRL#*)&Qp-Vs8sUihh%m2va^wn@zn6} zTS9WT2a=DHaJjhcIF42?LNOqc-4Pt6Pv4$yc9~DLkV@KddO{ry>fw%O3rzR9>_lSF zY%!oF89QQ8ROxof_>94l{=fjPDs_5Q<#fz2RTRE(UYKK9zdn^oQ)9E;*VW9GS8S&5 zbwnX*0=!XEILhF5P7hkYP+MO=_Q82sYfX7*xhD4l@*b)Q1=>%T^6adV;J*1$QL zaA0=#pD~A>tF4i#6L41MuPXK$TXy?gSlv6Ng7M-y&Ebh`5Nu5af@-?a;-t;@AQV`2 z=ec9dOqeyoT}MTonQQYEwEWn6kDdLEvatY(N>f`(rNQ%^@^iF)`hv$XOsYp@Npa%EoOD+>qQ!QFyumco{? znqyaO7-d-bZp0_J;tq7{VC343Lvcq6g?&g04FWcGh55^o6}39Wen;iyd}dPBJ_`w{ z^r;J{d*R4@(J+~aDPmRvduk&V+F6XSvH)%wPA=~Al_WVxPI9TM5P6PHdB2^Rhjc$L zc05={YTxugs&U#{bBGzp7>fuvM=4nQRXSSkZ@-?Vi@4FhZUHs~Aa^JvI5uOh!n@UU zDn7p=s_)I8tt_|=^Vu5|ARL9DeD|MCTN?zzSQ?^MK`_;d86nArem7lCX zGNGm$mOTLV6)41y$zEBAJ{dc9v&fy8JiJ*tl#& z1NNlIata!gboe{EWnoe+IR?cjYBKcxPcMqY{QetO@3p`cxEAF1XNQ?%a7w@FMpz`O z4a+ZrXorPPxp;Q?&5TOO=S0Ocwrq*CFW&7vgwk_vH`edg-3v|_hoLCy&7+5Negn8% zbUs8PuYNZhT{!$S>ZGVYi5`w2@W+MkmXa`{oV^pQNbcQLNv-LTa$kKIfVJ+P+q>?* zk<}B8?!FP;f$rB;*Bvtzkp)Ai^R%JFL7^;De@0v*#}7tUHAytB1IJ~ot< zfe7mqcknvpNB;K5r+@ZX1!F7b-H;$4K|~-Rn7|$jSh)MIZVEW^0$!hXhL$!ARt~1- zS8CP{pHM5goZUjVs*>Tho%pHySY^as}K~gKXbXY{??Oq zzvVp3?R8>TFj}BLICqEY11zujFGnE z#C-$yVS=|%-SrghTk4}mTJ%8`^tJRTBHo`lP>)*~! z`gScLHg&4i^tU-2x&_Bfe&3xWTFv%&;`~pX-?&WW`D~mv_I~63DG|R!M{K_K^jWKN zKU%D{%U&wgE*!q=l#hJNGuc>3DkJD?9U4(JY@N0hOh0 zNA-SZow~9!Wm=DZ;9T!%)qhpL&Df_a6Yx#xncKE5!Sr08;tQ&`yslb2X%bk|d-REW zRm{;X+l?ojZ$8??&BEa*Yj;jJ|qq%XI4h#5|<+4Fn?m(g^Q2~GwRe?GA@>K9qOb;23R8LvH} z=C3O)Q#hy9kr1*fnrGVAn-k|8se1c}Yya;9lb^4fCA&*6U2&d&5xc`7z9UmFPkw#> z`nP{4Tzcd#mHvPDr8YO9bo0MY=|AfBvCrT8=VVKh{lWQ1R*QETY;TwpsC=(Zm0we{ z`H9r7kJApep0~TwI;kXl?F-&@=lv=&)LXVrovyX8HtJB8UDm&wcarbr+{^m+ah4wc zE!8~X?ajX%Zl8Sn$c|lj`|Q`x?4EoB*52<`_pX+H-``li{)+VaX;o~mw=ys`A2qmT za4;Z8B6~*43XdbkDUwCJsco7sByB(3n{?fK-BJG2A0*$udXT+x7x3b%g^?>Af~;g( zu3mrh|3;2c+Y_PRrn|Q_ynDLCDgCnO>#hS!X0Ot|^7Pdy&Hm@hXE*J0s=2l9R_QzG z5CxT$lU~nR_r_{h_{%qHN7WmF_Y@o1W~^QKA?srN`^mnQX`gd~1?yI^OtyV7&+zOM zE*76IZ==p8l@8ygbhZoc7gV{#muTHLSNrU6NKKz*#&7OBVY6; zpV_*Ec`qJ3niIO@qHw~}|8jZR7ZkQjH+Q~cOXlj=k-&bcmx-pes!%~uI|ajt*_;(YaTCKKCkZC&FAy#7Z#tsHa)H`_4exZdw*WL zZGEqDd-n5n{dV_0pS)N5+y3vH(}&}~%2-yd`Cf7VW&XLE-*>UO|D15k{CA=()@ z7@V3{5+71okXjrIYMr4QP^sqa@B^sy9&j9)8>SmbH!vOp8UbnJgPZo~8avv!gEN6j zE&??QqG)^$6oJ=0$@xX#k!W=7UvA$Pe+|^0!@|HIfTFz~C<51>SWtk?)usLOdvbwZ zuGd4id*IS|x*Gxd|^+JH+S6hF}ea-qm8(-TDj+ zaiOdX{3s?Z;Dee}TvC~n3ZAY+4+HcAC1Ls-7$fXZG@~6aiEa-1JSoDQlf^J|kS0;k zwWCkGAhd5UhiXTghCw$0eIf#3!pjP%2`JMN==#w|jS>25s-gPP$B@yDK<|Gej3{lw z+8akV0KKD&Fu=DN*#K RT -> SourceTweetId. - */ - private def buildRetweetEdge(event: TweetCreateEventDetails) = { - val userTweetEngagement = event.userTweetEngagement - val tweetId = userTweetEngagement.tweetId - - event.sourceTweetDetails - .map { sourceTweetDetails => - val sourceTweetId = sourceTweetDetails.tweet.id // Id of the tweet being Retweeted - val sourceTweetEntitiesMapFut = userTweetEntityEdgeBuilder.getEntitiesMapAndUpdateCache( - tweetId = sourceTweetId, - tweetDetails = Some(sourceTweetDetails) - ) - - sourceTweetEntitiesMapFut.map { sourceTweetEntitiesMap => - val edge = UserTweetEntityEdge( - sourceUser = userTweetEngagement.engageUserId, - targetTweet = sourceTweetId, - action = Action.Retweet, - metadata = Some(tweetId), // metadata is the tweetId - cardInfo = Some(sourceTweetDetails.cardInfo.toByte), - entitiesMap = sourceTweetEntitiesMap, - tweetDetails = Some(sourceTweetDetails) - ) - numRetweetEdgesCounter.incr() - Seq(edge) - } - }.getOrElse(Future.Nil) - } - - override def buildEdges(event: TweetCreateEventDetails): Future[Seq[UserTweetEntityEdge]] = { - val userTweetEngagement = event.userTweetEngagement - userTweetEngagement.action match { - case Action.Retweet => - buildRetweetEdge(event) - case _ => - Future.Nil - } - - } - - override def filterEdges( - event: TweetCreateEventDetails, - edges: Seq[UserTweetEntityEdge] - ): Future[Seq[UserTweetEntityEdge]] = { - Future(edges) // No filtering for now. Add more if needed - } -} diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/TweetEventToUserUserGraphBuilder.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/TweetEventToUserUserGraphBuilder.docx new file mode 100644 index 0000000000000000000000000000000000000000..5a15960f8ce732dbc07ceacc655dbabd5f84fbc9 GIT binary patch literal 37516 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 L1ZEG>J`fK8+@3B} literal 0 HcmV?d00001 diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/TweetEventToUserUserGraphBuilder.scala b/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/TweetEventToUserUserGraphBuilder.scala deleted file mode 100644 index 3eec7f55c..000000000 --- a/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/TweetEventToUserUserGraphBuilder.scala +++ /dev/null @@ -1,65 +0,0 @@ -package com.twitter.recosinjector.edges - -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.recos.util.Action -import com.twitter.recosinjector.util.TweetCreateEventDetails -import com.twitter.util.Future - -/** - * Given a tweet creation event, parse for UserUserGraph edges. Specifically, when a new tweet is - * created, extract the valid mentioned and mediatagged users in the tweet and create edges for them - */ -class TweetEventToUserUserGraphBuilder( -)( - override implicit val statsReceiver: StatsReceiver) - extends EventToMessageBuilder[TweetCreateEventDetails, UserUserEdge] { - private val tweetOrQuoteEventCounter = statsReceiver.counter("num_tweet_or_quote_event") - private val nonTweetOrQuoteEventCounter = statsReceiver.counter("num_non_tweet_or_quote_event") - private val mentionEdgeCounter = statsReceiver.counter("num_mention_edge") - private val mediatagEdgeCounter = statsReceiver.counter("num_mediatag_edge") - - override def shouldProcessEvent(event: TweetCreateEventDetails): Future[Boolean] = { - // For user interactions, only new tweets and quotes are considered (no replies or retweets) - event.userTweetEngagement.action match { - case Action.Tweet | Action.Quote => - tweetOrQuoteEventCounter.incr() - Future(true) - case _ => - nonTweetOrQuoteEventCounter.incr() - Future(false) - } - } - - override def buildEdges(event: TweetCreateEventDetails): Future[Seq[UserUserEdge]] = { - val mentionEdges = event.validMentionUserIds - .map(_.map { mentionUserId => - UserUserEdge( - sourceUser = event.userTweetEngagement.engageUserId, - targetUser = mentionUserId, - action = Action.Mention, - metadata = Some(System.currentTimeMillis()) - ) - }).getOrElse(Nil) - - val mediatagEdges = event.validMediatagUserIds - .map(_.map { mediatagUserId => - UserUserEdge( - sourceUser = event.userTweetEngagement.engageUserId, - targetUser = mediatagUserId, - action = Action.MediaTag, - metadata = Some(System.currentTimeMillis()) - ) - }).getOrElse(Nil) - - mentionEdgeCounter.incr(mentionEdges.size) - mediatagEdgeCounter.incr(mediatagEdges.size) - Future(mentionEdges ++ mediatagEdges) - } - - override def filterEdges( - event: TweetCreateEventDetails, - edges: Seq[UserUserEdge] - ): Future[Seq[UserUserEdge]] = { - Future(edges) - } -} diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/UnifiedUserActionToUserAdGraphBuilder.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/UnifiedUserActionToUserAdGraphBuilder.docx new file mode 100644 index 0000000000000000000000000000000000000000..24af57d1c2c1e99abc1c6ff09e8e19d8c7776428 GIT binary patch literal 37230 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

    = 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 Future(true) - case _ => Future(false) - } - } - - override def buildEdges(details: UuaEngagementEventDetails): Future[Seq[UserTweetEntityEdge]] = { - val engagement = details.userTweetEngagement - val tweetDetails = engagement.tweetDetails - - Future.value( - Seq( - UserTweetEntityEdge( - sourceUser = engagement.engageUserId, - targetTweet = engagement.tweetId, - action = engagement.action, - metadata = engagement.engagementTimeMillis, - cardInfo = engagement.tweetDetails.map(_.cardInfo.toByte), - entitiesMap = None, - tweetDetails = tweetDetails - ))) - } - - override def filterEdges( - event: UuaEngagementEventDetails, - edges: Seq[UserTweetEntityEdge] - ): Future[Seq[UserTweetEntityEdge]] = { - Future(edges) - } -} diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/UnifiedUserActionToUserTweetGraphPlusBuilder.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/UnifiedUserActionToUserTweetGraphPlusBuilder.docx new file mode 100644 index 0000000000000000000000000000000000000000..1eb09b94ca97a99f6a0a67c1d1d40788df7d6bd6 GIT binary patch literal 37351 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%0D&c}J^P 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 Future(true) - case Action.Favorite | Action.Retweet | Action.Share => Future(true) - case Action.NotificationOpen | Action.EmailClick => Future(true) - case Action.Quote | Action.Reply => Future(true) - case Action.TweetNotInterestedIn | Action.TweetNotRelevant | Action.TweetSeeFewer | - Action.TweetReport | Action.TweetMuteAuthor | Action.TweetBlockAuthor => - Future(true) - case _ => Future(false) - } - } - - override def buildEdges(details: UuaEngagementEventDetails): Future[Seq[UserTweetEntityEdge]] = { - val engagement = details.userTweetEngagement - val tweetDetails = engagement.tweetDetails - - Future - .value( - UserTweetEntityEdge( - sourceUser = engagement.engageUserId, - targetTweet = engagement.tweetId, - action = engagement.action, - metadata = engagement.engagementTimeMillis, - cardInfo = engagement.tweetDetails.map(_.cardInfo.toByte), - entitiesMap = None, - tweetDetails = tweetDetails - ) - ).map(Seq(_)) - } - - override def filterEdges( - event: UuaEngagementEventDetails, - edges: Seq[UserTweetEntityEdge] - ): Future[Seq[UserTweetEntityEdge]] = { - Future(edges) - } -} diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/UnifiedUserActionToUserVideoGraphBuilder.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/UnifiedUserActionToUserVideoGraphBuilder.docx new file mode 100644 index 0000000000000000000000000000000000000000..f32a071c636815ab4583b2a78d1764ca611edab8 GIT binary patch literal 37353 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 Future(true) - case _ => Future(false) - } - } - - override def buildEdges(details: UuaEngagementEventDetails): Future[Seq[UserTweetEntityEdge]] = { - val engagement = details.userTweetEngagement - val tweetDetails = engagement.tweetDetails - - Future - .value( - UserTweetEntityEdge( - sourceUser = engagement.engageUserId, - targetTweet = engagement.tweetId, - action = engagement.action, - metadata = engagement.engagementTimeMillis, - cardInfo = engagement.tweetDetails.map(_.cardInfo.toByte), - entitiesMap = None, - tweetDetails = tweetDetails - ) - ).map { edge => - edge match { - case videoPlayback50 if videoPlayback50.action == Action.VideoPlayback50 => - numVideoPlayback50EdgeCounter.incr() - case _ => - numUnVideoPlayback50Counter.incr() - } - Seq(edge) - } - } - - override def filterEdges( - event: UuaEngagementEventDetails, - edges: Seq[UserTweetEntityEdge] - ): Future[Seq[UserTweetEntityEdge]] = { - Future(edges) - } -} diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/UserTweetEntityEdgeBuilder.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/UserTweetEntityEdgeBuilder.docx new file mode 100644 index 0000000000000000000000000000000000000000..fb373ac5821e547d24c41a145013ad712d51cd7a GIT binary patch literal 37717 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 OB>`~*mIw9v`qlpq*nY17 literal 0 HcmV?d00001 diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/UserTweetEntityEdgeBuilder.scala b/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/UserTweetEntityEdgeBuilder.scala deleted file mode 100644 index 283378b03..000000000 --- a/recos-injector/server/src/main/scala/com/twitter/recosinjector/edges/UserTweetEntityEdgeBuilder.scala +++ /dev/null @@ -1,80 +0,0 @@ -package com.twitter.recosinjector.edges - -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.graphjet.algorithms.RecommendationType -import com.twitter.recosinjector.clients.CacheEntityEntry -import com.twitter.recosinjector.clients.RecosHoseEntitiesCache -import com.twitter.recosinjector.clients.UrlResolver -import com.twitter.recosinjector.util.TweetDetails -import com.twitter.util.Future -import scala.collection.Map -import scala.util.hashing.MurmurHash3 - -class UserTweetEntityEdgeBuilder( - cache: RecosHoseEntitiesCache, - urlResolver: UrlResolver -)( - implicit val stats: StatsReceiver) { - - def getHashedEntities(entities: Seq[String]): Seq[Int] = { - entities.map(MurmurHash3.stringHash) - } - - /** - * Given the entities and their corresponding hashedIds, store the hashId->entity mapping into a - * cache. - * This is because UTEG edges only store the hashIds, and relies on the cache values to - * recover the actual entities. This allows us to store integer values instead of string in the - * edges to save space. - */ - private def storeEntitiesInCache( - urlEntities: Seq[String], - urlHashIds: Seq[Int] - ): Future[Unit] = { - val urlCacheEntries = urlHashIds.zip(urlEntities).map { - case (hashId, url) => - CacheEntityEntry(RecosHoseEntitiesCache.UrlPrefix, hashId, url) - } - cache.updateEntitiesCache( - newCacheEntries = urlCacheEntries, - stats = stats.scope("urlCache") - ) - } - - /** - * Return an entity mapping from GraphJet recType -> hash(entity) - */ - private def getEntitiesMap( - urlHashIds: Seq[Int] - ) = { - val entitiesMap = Seq( - RecommendationType.URL.getValue.toByte -> urlHashIds - ).collect { - case (keys, ids) if ids.nonEmpty => keys -> ids - }.toMap - if (entitiesMap.isEmpty) None else Some(entitiesMap) - } - - def getEntitiesMapAndUpdateCache( - tweetId: Long, - tweetDetails: Option[TweetDetails] - ): Future[Option[Map[Byte, Seq[Int]]]] = { - val resolvedUrlFut = urlResolver - .getResolvedUrls( - urls = tweetDetails.flatMap(_.urls).getOrElse(Nil), - tweetId = tweetId - ).map(_.values.toSeq) - - resolvedUrlFut.map { resolvedUrls => - val urlEntities = resolvedUrls - val urlHashIds = getHashedEntities(urlEntities) - - // Async call to cache - storeEntitiesInCache( - urlEntities = urlEntities, - urlHashIds = urlHashIds - ) - getEntitiesMap(urlHashIds) - } - } -} diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/event_processors/BUILD b/recos-injector/server/src/main/scala/com/twitter/recosinjector/event_processors/BUILD deleted file mode 100644 index e7f3cdf50..000000000 --- a/recos-injector/server/src/main/scala/com/twitter/recosinjector/event_processors/BUILD +++ /dev/null @@ -1,20 +0,0 @@ -scala_library( - platform = "java11", - strict_deps = False, - tags = ["bazel-compatible"], - dependencies = [ - "eventbus/client", - "recos-injector/server/config", - "recos-injector/server/src/main/scala/com/twitter/recosinjector/clients", - "recos-injector/server/src/main/scala/com/twitter/recosinjector/config", - "recos-injector/server/src/main/scala/com/twitter/recosinjector/decider", - "recos-injector/server/src/main/scala/com/twitter/recosinjector/edges", - "recos-injector/server/src/main/scala/com/twitter/recosinjector/publishers", - "src/thrift/com/twitter/clientapp/gen:clientapp-scala", - "src/thrift/com/twitter/gizmoduck:user-thrift-scala", - "src/thrift/com/twitter/socialgraph:thrift-scala", - "src/thrift/com/twitter/timelineservice/server/internal:thrift-scala", - "src/thrift/com/twitter/tweetypie:events-scala", - "src/thrift/com/twitter/tweetypie:tweet-scala", - ], -) diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/event_processors/BUILD.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/event_processors/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..8c47b6531e29aace09c018c63775b61528011c2d GIT binary patch literal 36902 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 I^7=qL0Bu-D^8f$< literal 0 HcmV?d00001 diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/event_processors/EventBusProcessor.scala b/recos-injector/server/src/main/scala/com/twitter/recosinjector/event_processors/EventBusProcessor.scala deleted file mode 100644 index 9597b0bb8..000000000 --- a/recos-injector/server/src/main/scala/com/twitter/recosinjector/event_processors/EventBusProcessor.scala +++ /dev/null @@ -1,60 +0,0 @@ -package com.twitter.recosinjector.event_processors - -import com.twitter.eventbus.client.{EventBusSubscriber, EventBusSubscriberBuilder} -import com.twitter.finagle.mtls.authentication.ServiceIdentifier -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.logging.Logger -import com.twitter.scrooge.{ThriftStruct, ThriftStructCodec} -import com.twitter.util.Future - -/** - * Main processor class that handles incoming EventBus events, which take forms of a ThriftStruct. - * This class is responsible for setting up the EventBus streams, and provides a processEvent() - * where child classes can decide what to do with incoming events - */ -trait EventBusProcessor[Event <: ThriftStruct] { - private val log = Logger() - - implicit def statsReceiver: StatsReceiver - - /** - * Full name of the EventBus stream this processor listens to - */ - val eventBusStreamName: String - - /** - * the thriftStruct definition of the objects passed in from the EventBus streams, such as - * TweetEvent, WriteEvent, etc. - */ - val thriftStruct: ThriftStructCodec[Event] - - val serviceIdentifier: ServiceIdentifier - - def processEvent(event: Event): Future[Unit] - - private def getEventBusSubscriberBuilder: EventBusSubscriberBuilder[Event] = - EventBusSubscriberBuilder() - .subscriberId(eventBusStreamName) - .serviceIdentifier(serviceIdentifier) - .thriftStruct(thriftStruct) - .numThreads(8) - .fromAllZones(true) // Receives traffic from all data centers - .skipToLatest(false) // Ensures we don't miss out on events during restart - .statsReceiver(statsReceiver) - - // lazy val ensures the subscriber is only initialized when start() is called - private lazy val eventBusSubscriber = getEventBusSubscriberBuilder.build(processEvent) - - def start(): EventBusSubscriber[Event] = eventBusSubscriber - - def stop(): Unit = { - eventBusSubscriber - .close() - .onSuccess { _ => - log.info(s"EventBus processor ${this.getClass.getSimpleName} is stopped") - } - .onFailure { ex: Throwable => - log.error(ex, s"Exception while stopping EventBus processor ${this.getClass.getSimpleName}") - } - } -} diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/event_processors/SocialWriteEventProcessor.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/event_processors/SocialWriteEventProcessor.docx new file mode 100644 index 0000000000000000000000000000000000000000..eef4272f0e75fbdbec4ffd4929bae0dd48cb0809 GIT binary patch literal 37213 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 - edges.foreach { edge => - kafkaEventPublisher.publish(edge.convertToRecosHoseMessage, userUserGraphTopic) - } - } - } -} diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/event_processors/TimelineEventProcessor.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/event_processors/TimelineEventProcessor.docx new file mode 100644 index 0000000000000000000000000000000000000000..93fc2839fb243e1e7fb98577a85ce3b75b1b6deb GIT binary patch literal 38325 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 TimelineEvent} -import com.twitter.util.Future - -/** - * Processor for Timeline events, such as Favorite (liking) tweets - */ -class TimelineEventProcessor( - override val eventBusStreamName: String, - override val thriftStruct: ThriftStructCodec[TimelineEvent], - override val serviceIdentifier: ServiceIdentifier, - kafkaEventPublisher: KafkaEventPublisher, - userTweetEntityGraphTopic: String, - userTweetEntityGraphMessageBuilder: TimelineEventToUserTweetEntityGraphBuilder, - decider: RecosInjectorDecider, - gizmoduck: Gizmoduck, - tweetypie: Tweetypie -)( - override implicit val statsReceiver: StatsReceiver) - extends EventBusProcessor[TimelineEvent] { - - private val processEventDeciderCounter = statsReceiver.counter("num_process_timeline_event") - private val numFavoriteEventCounter = statsReceiver.counter("num_favorite_event") - private val numUnFavoriteEventCounter = statsReceiver.counter("num_unfavorite_event") - private val numNotFavoriteEventCounter = statsReceiver.counter("num_not_favorite_event") - - private val numSelfFavoriteCounter = statsReceiver.counter("num_self_favorite_event") - private val numNullCastTweetCounter = statsReceiver.counter("num_null_cast_tweet") - private val numTweetFailSafetyLevelCounter = statsReceiver.counter("num_fail_tweetypie_safety") - private val numFavoriteUserUnsafeCounter = statsReceiver.counter("num_favorite_user_unsafe") - private val engageUserFilter = new UserFilter(gizmoduck)(statsReceiver.scope("engage_user")) - private val tweetFilter = new TweetFilter(tweetypie) - - private val numProcessFavorite = statsReceiver.counter("num_process_favorite") - private val numNoProcessFavorite = statsReceiver.counter("num_no_process_favorite") - - private def getFavoriteEventDetails( - favoriteEvent: FavoriteEvent - ): TweetFavoriteEventDetails = { - - val engagement = UserTweetEngagement( - engageUserId = favoriteEvent.userId, - engageUser = favoriteEvent.user, - action = Action.Favorite, - engagementTimeMillis = Some(favoriteEvent.eventTimeMs), - tweetId = favoriteEvent.tweetId, // the tweet, or source tweet if target tweet is a retweet - tweetDetails = favoriteEvent.tweet.map(TweetDetails) // tweet always exists - ) - TweetFavoriteEventDetails(userTweetEngagement = engagement) - } - - private def getUnfavoriteEventDetails( - unfavoriteEvent: UnfavoriteEvent - ): TweetFavoriteEventDetails = { - val engagement = UserTweetEngagement( - engageUserId = unfavoriteEvent.userId, - engageUser = unfavoriteEvent.user, - action = Action.Unfavorite, - engagementTimeMillis = Some(unfavoriteEvent.eventTimeMs), - tweetId = unfavoriteEvent.tweetId, // the tweet, or source tweet if target tweet is a retweet - tweetDetails = unfavoriteEvent.tweet.map(TweetDetails) // tweet always exists - ) - TweetFavoriteEventDetails(userTweetEngagement = engagement) - } - - private def shouldProcessFavoriteEvent(event: TweetFavoriteEventDetails): Future[Boolean] = { - val engagement = event.userTweetEngagement - val engageUserId = engagement.engageUserId - val tweetId = engagement.tweetId - val authorIdOpt = engagement.tweetDetails.flatMap(_.authorId) - - val isSelfFavorite = authorIdOpt.contains(engageUserId) - val isNullCastTweet = engagement.tweetDetails.forall(_.isNullCastTweet) - val isEngageUserSafeFut = engageUserFilter.filterByUserId(engageUserId) - val isTweetPassSafetyFut = tweetFilter.filterForTweetypieSafetyLevel(tweetId) - - Future.join(isEngageUserSafeFut, isTweetPassSafetyFut).map { - case (isEngageUserSafe, isTweetPassSafety) => - if (isSelfFavorite) numSelfFavoriteCounter.incr() - if (isNullCastTweet) numNullCastTweetCounter.incr() - if (!isEngageUserSafe) numFavoriteUserUnsafeCounter.incr() - if (!isTweetPassSafety) numTweetFailSafetyLevelCounter.incr() - - !isSelfFavorite && !isNullCastTweet && isEngageUserSafe && isTweetPassSafety - } - } - - private def processFavoriteEvent(favoriteEvent: FavoriteEvent): Future[Unit] = { - val eventDetails = getFavoriteEventDetails(favoriteEvent) - shouldProcessFavoriteEvent(eventDetails).map { - case true => - numProcessFavorite.incr() - // Convert the event for UserTweetEntityGraph - userTweetEntityGraphMessageBuilder.processEvent(eventDetails).map { edges => - edges.foreach { edge => - kafkaEventPublisher.publish(edge.convertToRecosHoseMessage, userTweetEntityGraphTopic) - } - } - case false => - numNoProcessFavorite.incr() - } - } - - private def processUnFavoriteEvent(unFavoriteEvent: UnfavoriteEvent): Future[Unit] = { - if (decider.isAvailable(RecosInjectorDeciderConstants.EnableUnfavoriteEdge)) { - val eventDetails = getUnfavoriteEventDetails(unFavoriteEvent) - // Convert the event for UserTweetEntityGraph - userTweetEntityGraphMessageBuilder.processEvent(eventDetails).map { edges => - edges.foreach { edge => - kafkaEventPublisher.publish(edge.convertToRecosHoseMessage, userTweetEntityGraphTopic) - } - } - } else { - Future.Unit - } - } - - override def processEvent(event: TimelineEvent): Future[Unit] = { - processEventDeciderCounter.incr() - event match { - case TimelineEvent.Favorite(favoriteEvent: FavoriteEvent) => - numFavoriteEventCounter.incr() - processFavoriteEvent(favoriteEvent) - case TimelineEvent.Unfavorite(unFavoriteEvent: UnfavoriteEvent) => - numUnFavoriteEventCounter.incr() - processUnFavoriteEvent(unFavoriteEvent) - case _ => - numNotFavoriteEventCounter.incr() - Future.Unit - } - } -} diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/event_processors/TweetEventProcessor.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/event_processors/TweetEventProcessor.docx new file mode 100644 index 0000000000000000000000000000000000000000..a8c8598d21f3640d89422558957a42dcaa19352c GIT binary patch literal 39510 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 - tweetDetails.mentionUserIds.foreach(mention => numMentionsCounter.incr(mention.size)) - tweetDetails.mediatagUserIds.foreach(mediatag => numMediatagCounter.incr(mediatag.size)) - tweetDetails.urls.foreach(urls => numUrlCounter.incr(urls.size)) - tweetDetails.mediaUrls.foreach(mediaUrls => numMediaUrlCounter.incr(mediaUrls.size)) - tweetDetails.hashtags.foreach(hashtags => numHashTagCounter.incr(hashtags.size)) - } - - details.validMentionUserIds.foreach(mentions => numValidMentionsCounter.incr(mentions.size)) - details.validMediatagUserIds.foreach(mediatags => numValidMediatagCounter.incr(mediatags.size)) - } - - /** - * Given a created tweet, return what type of tweet it is, i.e. Tweet, Retweet, Quote, or Reply。 - * Retweet, Quote, or Reply are responsive actions to a source tweet, so for these tweets, - * we also return the tweet id and author of the source tweet (ex. the tweet being retweeted). - */ - private def getTweetAction(tweetDetails: TweetDetails): Action = { - (tweetDetails.replySourceId, tweetDetails.retweetSourceId, tweetDetails.quoteSourceId) match { - case (Some(_), _, _) => - Action.Reply - case (_, Some(_), _) => - Action.Retweet - case (_, _, Some(_)) => - Action.Quote - case _ => - Action.Tweet - } - } - - /** - * Given a list of mentioned users and mediatagged users in the tweet, return the users who - * actually follow the source user. - */ - private def getFollowedByIds( - sourceUserId: Long, - mentionUserIds: Option[Seq[Long]], - mediatagUserIds: Option[Seq[Long]] - ): Future[Seq[Long]] = { - val uniqueEntityUserIds = - (mentionUserIds.getOrElse(Nil) ++ mediatagUserIds.getOrElse(Nil)).distinct - if (uniqueEntityUserIds.isEmpty) { - Future.Nil - } else { - socialGraph.followedByNotMutedBy(sourceUserId, uniqueEntityUserIds) - } - } - - private def getSourceTweet(tweetDetails: TweetDetails): Future[Option[Tweet]] = { - tweetDetails.sourceTweetId match { - case Some(sourceTweetId) => - tweetypie.getTweet(sourceTweetId) - case _ => - Future.None - } - } - - /** - * Extract and return the details when the source user created a new tweet. - */ - private def getTweetDetails( - tweet: Tweet, - engageUser: User - ): Future[TweetCreateEventDetails] = { - val tweetDetails = TweetDetails(tweet) - - val action = getTweetAction(tweetDetails) - val tweetCreationTimeMillis = SnowflakeUtils.tweetCreationTime(tweet.id).map(_.inMilliseconds) - val engageUserId = engageUser.id - val userTweetEngagement = UserTweetEngagement( - engageUserId = engageUserId, - engageUser = Some(engageUser), - action = action, - engagementTimeMillis = tweetCreationTimeMillis, - tweetId = tweet.id, - tweetDetails = Some(tweetDetails) - ) - - val sourceTweetFut = getSourceTweet(tweetDetails) - val followedByIdsFut = getFollowedByIds( - engageUserId, - tweetDetails.mentionUserIds, - tweetDetails.mediatagUserIds - ) - - Future.join(followedByIdsFut, sourceTweetFut).map { - case (followedByIds, sourceTweet) => - TweetCreateEventDetails( - userTweetEngagement = userTweetEngagement, - validEntityUserIds = followedByIds, - sourceTweetDetails = sourceTweet.map(TweetDetails) - ) - } - } - - /** - * Exclude any Retweets of one's own tweets - */ - private def isEventSelfRetweet(tweetEvent: TweetCreateEventDetails): Boolean = { - (tweetEvent.userTweetEngagement.action == Action.Retweet) && - tweetEvent.userTweetEngagement.tweetDetails.exists( - _.sourceTweetUserId.contains( - tweetEvent.userTweetEngagement.engageUserId - )) - } - - private def isTweetPassSafetyFilter(tweetEvent: TweetCreateEventDetails): Future[Boolean] = { - tweetEvent.userTweetEngagement.action match { - case Action.Reply | Action.Retweet | Action.Quote => - tweetEvent.userTweetEngagement.tweetDetails - .flatMap(_.sourceTweetId).map { sourceTweetId => - tweetFilter.filterForTweetypieSafetyLevel(sourceTweetId) - }.getOrElse(Future(false)) - case Action.Tweet => - tweetFilter.filterForTweetypieSafetyLevel(tweetEvent.userTweetEngagement.tweetId) - } - } - - private def shouldProcessTweetEvent(event: TweetCreateEventDetails): Future[Boolean] = { - val engagement = event.userTweetEngagement - val engageUserId = engagement.engageUserId - - val isNullCastTweet = engagement.tweetDetails.forall(_.isNullCastTweet) - val isNullCastSourceTweet = event.sourceTweetDetails.exists(_.isNullCastTweet) - val isSelfRetweet = isEventSelfRetweet(event) - val isEngageUserSafeFut = engageUserFilter.filterByUserId(engageUserId) - val isTweetPassSafetyFut = isTweetPassSafetyFilter(event) - - Future.join(isEngageUserSafeFut, isTweetPassSafetyFut).map { - case (isEngageUserSafe, isTweetPassSafety) => - if (isNullCastTweet) numNullCastTweetCounter.incr() - if (isNullCastSourceTweet) numNullCastSourceTweetCounter.incr() - if (!isEngageUserSafe) numAuthorUnsafeCounter.incr() - if (isSelfRetweet) selfRetweetCounter.incr() - if (!isTweetPassSafety) numTweetFailSafetyLevelCounter.incr() - - !isNullCastTweet && - !isNullCastSourceTweet && - !isSelfRetweet && - isEngageUserSafe && - isTweetPassSafety - } - } - - override def processEvent(event: TweetEvent): Future[Unit] = { - event.data match { - case TweetEventData.TweetCreateEvent(event: TweetCreateEvent) => - getTweetDetails( - tweet = event.tweet, - engageUser = event.user - ).flatMap { eventWithDetails => - tweetCreateEventCounter.incr() - - shouldProcessTweetEvent(eventWithDetails).map { - case true => - numProcessTweetCounter.incr() - trackTweetCreateEventStats(eventWithDetails) - // Convert the event for UserUserGraph - userUserGraphMessageBuilder.processEvent(eventWithDetails).map { edges => - edges.foreach { edge => - kafkaEventPublisher.publish(edge.convertToRecosHoseMessage, userUserGraphTopic) - } - } - // Convert the event for UserTweetEntityGraph - userTweetEntityGraphMessageBuilder.processEvent(eventWithDetails).map { edges => - edges.foreach { edge => - kafkaEventPublisher - .publish(edge.convertToRecosHoseMessage, userTweetEntityGraphTopic) - } - } - case false => - numNoProcessTweetCounter.incr() - } - } - case _ => - nonTweetCreateEventCounter.incr() - Future.Unit - } - } -} diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/filters/BUILD b/recos-injector/server/src/main/scala/com/twitter/recosinjector/filters/BUILD deleted file mode 100644 index 9963bbe44..000000000 --- a/recos-injector/server/src/main/scala/com/twitter/recosinjector/filters/BUILD +++ /dev/null @@ -1,10 +0,0 @@ -scala_library( - platform = "java11", - strict_deps = False, - tags = ["bazel-compatible"], - dependencies = [ - "finagle/finagle-stats", - "recos-injector/server/src/main/scala/com/twitter/recosinjector/clients", - "src/thrift/com/twitter/gizmoduck:thrift-scala", - ], -) diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/filters/BUILD.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/filters/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..b8261e27f8f836f3fa9c952ddbf6f2fbc5b6ef33 GIT binary patch literal 36803 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 literal 0 HcmV?d00001 diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/filters/NullCastTweetFilter.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/filters/NullCastTweetFilter.docx new file mode 100644 index 0000000000000000000000000000000000000000..f0fba225209a7889e5396e56f9c3be7e611d7e32 GIT binary patch literal 37193 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 literal 0 HcmV?d00001 diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/filters/NullCastTweetFilter.scala b/recos-injector/server/src/main/scala/com/twitter/recosinjector/filters/NullCastTweetFilter.scala deleted file mode 100644 index 9a19efa75..000000000 --- a/recos-injector/server/src/main/scala/com/twitter/recosinjector/filters/NullCastTweetFilter.scala +++ /dev/null @@ -1,34 +0,0 @@ -package com.twitter.recosinjector.filters - -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.recosinjector.clients.Tweetypie -import com.twitter.util.Future - -/** - * Filters tweets that are null cast, i.e. tweet is not delivered to a user's followers, - * not shown in the user's timeline, and does not appear in search results. - * They are mainly ads tweets. - */ -class NullCastTweetFilter( - tweetypie: Tweetypie -)( - implicit statsReceiver: StatsReceiver) { - private val stats = statsReceiver.scope(this.getClass.getSimpleName) - private val requests = stats.counter("requests") - private val filtered = stats.counter("filtered") - - // Return Future(True) to keep the Tweet. - def filter(tweetId: Long): Future[Boolean] = { - requests.incr() - tweetypie - .getTweet(tweetId) - .map { tweetOpt => - // If the null cast bit is Some(true), drop the tweet. - val isNullCastTweet = tweetOpt.flatMap(_.coreData).exists(_.nullcast) - if (isNullCastTweet) { - filtered.incr() - } - !isNullCastTweet - } - } -} diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/filters/TweetFilter.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/filters/TweetFilter.docx new file mode 100644 index 0000000000000000000000000000000000000000..209f53267f2c41c98fa472eed54f6a28c0f416fa GIT binary patch literal 37084 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 literal 0 HcmV?d00001 diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/filters/TweetFilter.scala b/recos-injector/server/src/main/scala/com/twitter/recosinjector/filters/TweetFilter.scala deleted file mode 100644 index aecc21515..000000000 --- a/recos-injector/server/src/main/scala/com/twitter/recosinjector/filters/TweetFilter.scala +++ /dev/null @@ -1,31 +0,0 @@ -package com.twitter.recosinjector.filters - -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.recosinjector.clients.Tweetypie -import com.twitter.util.Future - -class TweetFilter( - tweetypie: Tweetypie -)( - implicit statsReceiver: StatsReceiver) { - private val stats = statsReceiver.scope(this.getClass.getSimpleName) - private val requests = stats.counter("requests") - private val filtered = stats.counter("filtered") - - /** - * Query Tweetypie to see if we can fetch a tweet object successfully. TweetyPie applies a safety - * filter and will not return the tweet object if the filter does not pass. - */ - def filterForTweetypieSafetyLevel(tweetId: Long): Future[Boolean] = { - requests.incr() - tweetypie - .getTweet(tweetId) - .map { - case Some(_) => - true - case _ => - filtered.incr() - false - } - } -} diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/filters/UserFilter.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/filters/UserFilter.docx new file mode 100644 index 0000000000000000000000000000000000000000..bc94545b0ff5b45f4956924e78133e71284551a3 GIT binary patch literal 37642 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 literal 0 HcmV?d00001 diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/filters/UserFilter.scala b/recos-injector/server/src/main/scala/com/twitter/recosinjector/filters/UserFilter.scala deleted file mode 100644 index b2e51f647..000000000 --- a/recos-injector/server/src/main/scala/com/twitter/recosinjector/filters/UserFilter.scala +++ /dev/null @@ -1,69 +0,0 @@ -package com.twitter.recosinjector.filters - -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.gizmoduck.thriftscala.{LabelValue, User} -import com.twitter.recosinjector.clients.Gizmoduck -import com.twitter.util.Future - -class UserFilter( - gizmoduck: Gizmoduck -)( - implicit statsReceiver: StatsReceiver) { - private val stats = statsReceiver.scope(this.getClass.getSimpleName) - private val requests = stats.counter("requests") - private val filtered = stats.counter("filtered") - - private def isUnsafe(user: User): Boolean = - user.safety.exists { s => - s.deactivated || s.suspended || s.restricted || s.nsfwUser || s.nsfwAdmin || s.isProtected - } - - private def hasNsfwHighPrecisionLabel(user: User): Boolean = - user.labels.exists { - _.labels.exists(_.labelValue == LabelValue.NsfwHighPrecision) - } - - /** - * NOTE: This will by-pass Gizmoduck's safety level, and might allow invalid users to pass filter. - * Consider using filterByUserId instead. - * Return true if the user is valid, otherwise return false. - * It will first attempt to use the user object provided by the caller, and will call Gizmoduck - * to back fill if the caller does not provide it. This helps reduce Gizmoduck traffic. - */ - def filterByUser( - userId: Long, - userOpt: Option[User] = None - ): Future[Boolean] = { - requests.incr() - val userFut = userOpt match { - case Some(user) => Future(Some(user)) - case _ => gizmoduck.getUser(userId) - } - - userFut.map(_.exists { user => - val isValidUser = !isUnsafe(user) && !hasNsfwHighPrecisionLabel(user) - if (!isValidUser) filtered.incr() - isValidUser - }) - } - - /** - * Given a userId, return true if the user is valid. This id done in 2 steps: - * 1. Applying Gizmoduck's safety level while querying for the user from Gizmoduck - * 2. If a user passes Gizmoduck's safety level, check its specific user status - */ - def filterByUserId(userId: Long): Future[Boolean] = { - requests.incr() - gizmoduck - .getUser(userId) - .map { userOpt => - val isValidUser = userOpt.exists { user => - !(isUnsafe(user) || hasNsfwHighPrecisionLabel(user)) - } - if (!isValidUser) { - filtered.incr() - } - isValidUser - } - } -} diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/publishers/BUILD b/recos-injector/server/src/main/scala/com/twitter/recosinjector/publishers/BUILD deleted file mode 100644 index 20ea2ba3a..000000000 --- a/recos-injector/server/src/main/scala/com/twitter/recosinjector/publishers/BUILD +++ /dev/null @@ -1,12 +0,0 @@ -scala_library( - platform = "java11", - strict_deps = False, - tags = ["bazel-compatible"], - dependencies = [ - "3rdparty/jvm/org/apache/thrift:libthrift", - "finatra-internal/messaging/kafka/src/main/scala", - "servo/repo/src/main/scala", - "src/thrift/com/twitter/recos:recos-injector-scala", - "src/thrift/com/twitter/recos:recos-internal-scala", - ], -) diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/publishers/BUILD.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/publishers/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..22d0eb8cf3e8aa69ae7c3f8b044c46975d8c8e31 GIT binary patch literal 36834 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 a7DH_v26(dqa}X$32{I%CvqyF}hz9_0^40+W literal 0 HcmV?d00001 diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/publishers/KafkaEventPublisher.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/publishers/KafkaEventPublisher.docx new file mode 100644 index 0000000000000000000000000000000000000000..428f73cf1332b6ed4df214d2fa02770dcd59fa8b GIT binary patch literal 37541 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 bDT|@D4gZ|vz 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 mediaTag.flatMap(_.userId) - }.toSeq - } - - val replySourceId: Option[Long] = tweet.coreData.flatMap(_.reply.flatMap(_.inReplyToStatusId)) - val replyUserId: Option[Long] = tweet.coreData.flatMap(_.reply.map(_.inReplyToUserId)) - - val retweetSourceId: Option[Long] = tweet.coreData.flatMap(_.share.map(_.sourceStatusId)) - val retweetUserId: Option[Long] = tweet.coreData.flatMap(_.share.map(_.sourceUserId)) - - val quoteSourceId: Option[Long] = tweet.quotedTweet.map(_.tweetId) - val quoteUserId: Option[Long] = tweet.quotedTweet.map(_.userId) - val quoteTweetUrl: Option[String] = tweet.quotedTweet.flatMap(_.permalink.map(_.shortUrl)) - - //If the tweet is retweet/reply/quote, this is the tweet that the new tweet responds to - val (sourceTweetId, sourceTweetUserId) = { - (replySourceId, retweetSourceId, quoteSourceId) match { - case (Some(replyId), _, _) => - (Some(replyId), replyUserId) - case (_, Some(retweetId), _) => - (Some(retweetId), retweetUserId) - case (_, _, Some(quoteId)) => - (Some(quoteId), quoteUserId) - case _ => - (None, None) - } - } - - // Boolean information - val hasPhoto: Boolean = TweetUtil.containsPhotoTweet(tweet) - - val hasVideo: Boolean = TweetUtil.containsVideoTweet(tweet) - - // TweetyPie does not populate url fields in a quote tweet create event, even though we - // consider quote tweets as url tweets. This boolean helps make up for it. - // Details: https://groups.google.com/a/twitter.com/d/msg/eng/BhK1XAcSSWE/F8Gc4_5uDwAJ - val hasQuoteTweetUrl: Boolean = tweet.quotedTweet.exists(_.permalink.isDefined) - - val hasUrl: Boolean = this.urls.exists(_.nonEmpty) || hasQuoteTweetUrl - - val hasHashtag: Boolean = this.hashtags.exists(_.nonEmpty) - - val isCard: Boolean = hasUrl | hasPhoto | hasVideo - - implicit def bool2Long(b: Boolean): Long = if (b) 1L else 0L - - // Return a hashed long that contains card type information of the tweet - val cardInfo: Long = isCard | (hasUrl << 1) | (hasPhoto << 2) | (hasVideo << 3) - - // nullcast tweet is one that is purposefully not broadcast to followers, ex. an ad tweet. - val isNullCastTweet: Boolean = tweet.coreData.exists(_.nullcast) -} diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/uua_processors/BUILD b/recos-injector/server/src/main/scala/com/twitter/recosinjector/uua_processors/BUILD deleted file mode 100644 index c1370fe90..000000000 --- a/recos-injector/server/src/main/scala/com/twitter/recosinjector/uua_processors/BUILD +++ /dev/null @@ -1,24 +0,0 @@ -scala_library( - platform = "java11", - strict_deps = False, - tags = ["bazel-compatible"], - dependencies = [ - "eventbus/client", - "kafka/finagle-kafka/finatra-kafka/src/main/scala", - "kafka/libs/src/main/scala/com/twitter/kafka/client/headers", - "kafka/libs/src/main/scala/com/twitter/kafka/client/processor", - "recos-injector/server/config", - "recos-injector/server/src/main/scala/com/twitter/recosinjector/clients", - "recos-injector/server/src/main/scala/com/twitter/recosinjector/config", - "recos-injector/server/src/main/scala/com/twitter/recosinjector/decider", - "recos-injector/server/src/main/scala/com/twitter/recosinjector/edges", - "recos-injector/server/src/main/scala/com/twitter/recosinjector/publishers", - "src/thrift/com/twitter/clientapp/gen:clientapp-scala", - "src/thrift/com/twitter/gizmoduck:user-thrift-scala", - "src/thrift/com/twitter/socialgraph:thrift-scala", - "src/thrift/com/twitter/timelineservice/server/internal:thrift-scala", - "src/thrift/com/twitter/tweetypie:events-scala", - "src/thrift/com/twitter/tweetypie:tweet-scala", - "unified_user_actions/thrift/src/main/thrift/com/twitter/unified_user_actions:unified_user_actions-scala", - ], -) diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/uua_processors/BUILD.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/uua_processors/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..e279d2d143f78884a98ebf257a1c11abf862f1d1 GIT binary patch literal 36975 zcmagEWmp}_wm*z(a1HM6?hb(jcXtW8k>IfL;BLX)-66O;gy3#Lg1gIqGc)I$nRD-b z-!IKWRjr?_)m>HHyA(e`LSce|fx&@QrEqIjC>O*gf`fsLz<_~afLe9L0d`-^?7kSN zy4#yM=`p$4+B77}DJ+Yiem#B0N@5lw@f1hFD&4ZDv1f?Ilc-9&=FwVUK9+^Jza8TX zRhv=_hGB|LPr3CbTCNrB@M@&e5tlgD(@WRLBZDmR%3IB4Ix*+ok&GpknU~%soau+D zZcg`lKgk8ovR&QFXMi4bDweJ7pQw2c7DZhVt&UDS5Co?zI079~l{dwm(?)Kus(dg+ zy-ojlXGGEEdCbR^>|WegGV^(XiAp`gIt}5wAJ4Z?!!tFhuZHz;eNHtlyO>-@HP{beYD*%nRJ7O7t%80X1FQq7s;BoMGc{iA__Gg})#*RC zX=_EPdRra@NaK0jiX*2VcKOp%*OBTaz@)OZMOSzQ-uB+!(iTKh2;DD)=-2RI?GeIF=5mhWfxA_z(L1>@^nF34{9Rc=E%q9Rwv$vZ(BW_f_ zmjzYw)=P3mPCfJz6;4uy4*VeOqco=9Ldy*Yr<~1bCfE4-cD}84HoXhcI{)CMz0fLm zLldM)P+SmkaO|m{X&9mw*2}Un_R3?XBpq)>Vqni{*TeJ$l?9*4NLRQL-aCZqOh}nD zRz2Cd5I*w0T279cuM?yh&B}#2`(i3+a*JQpMdE0_lOvJrVAB5f^CJq4Cy%Q`D`_eu z0!v3L&H)ci>NAp^(1)5{D1#4h+_Zsm!K>6(*xFyyVZ~c+L|Xn*{r$n@g4G8|sErhO z^r7ESc{kmRrW%Hg;MnCJ`W*^5yNFVXvTL(C+eX;2lcU4>qzj~8*}JCTcgRWabEb}q z%SHTi;8t{8)&PA4HG?xVTPuuCl)l1WOqy)R*wu%b%1asG3nQ{t<5)p6-fGb3al zW1(7Dw}9UFAy~X$nXg0n>-Zn*M;_-z&0*{1KdWJl-scV}I;SZ>`1d`?Pp`3p{x)+zg*Xv{zl8Tu+_m4m?jrFBx10?n0|NHhwux>B!5E$_~Tm2zAWQ} zW*H18tp2c$M5VSwBjh6TIHprmbTFHj6Y^P{CSv#}d7_mOp!*6fOVe+~A*T7Ju7p1Z z`O^(D)C0fR!V|Ux-I6%0HepPBV+w{(%?RM~h@0nKe8mN%CV1GzugBetYK#OCOM=Dk zXcXQPQ$mt8qt#^}x0uRF1uF-rDUt{ujfwH;O=wRv_V&c*we{q6BC)bK@z7i-H-msJ z;5z_n=mcv)T*VJA+FQi8pYfhina*ul_crdG1rZNiVR(Seb?`*V$M81K!x5uIe$6)P z$%#Va8tWAN!Ra_^o;C`x$$iT*!UYN++S}5YpO}fx;M49e@n2`JkBI+yW2oIb$9qD8 zfmwnUrMCyx72s&f40>vvZ9$9E+nq71sRUT&LIti@p%tV9YVxs2^KM

    >s8c>)ii?tCXe$Y;byeeDUzC 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

    )iUvKcY@vkVQiQNT2S8mcAOQA3O|K*uCcXMeiq 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 T1?C`7t`cNO1ZIyP-5?$S2uCaz literal 0 HcmV?d00001 diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/uua_processors/UnifiedUserActionProcessor.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/uua_processors/UnifiedUserActionProcessor.docx new file mode 100644 index 0000000000000000000000000000000000000000..f71da75890b0ab5e3393709df38abbebb311827b GIT binary patch literal 38794 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%0Aoo`$4O`Pd{=e96N!RLd3{3QF7%F;{0Iqr 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 ReOpz$ASYmXK(oGm`# Some(tweetInfo.actionTweetId) - case Item.NotificationInfo( - NotificationInfo(_, NotificationContent.TweetNotification(notification))) => - Some(notification.tweetId) - case _ => None - } - val timestamp = unifiedUserAction.eventMetadata.sourceTimestampMs - val action = getTweetAction(unifiedUserAction.actionType) - - tweetIdOpt - .flatMap { tweetId => - userIdOpt.map { engageUserId => - val tweetFut = tweetypie.getTweet(tweetId) - tweetFut.map { tweetOpt => - val tweetDetailsOpt = tweetOpt.map(TweetDetails) - val engagement = UserTweetEngagement( - engageUserId = engageUserId, - action = action, - engagementTimeMillis = Some(timestamp), - tweetId = tweetId, - engageUser = None, - tweetDetails = tweetDetailsOpt - ) - UuaEngagementEventDetails(engagement) - } - } - } - } - - private def getTweetAction(action: ActionType): Action = { - action match { - case ActionType.ClientTweetVideoPlayback50 => Action.VideoPlayback50 - case ActionType.ClientTweetClick => Action.Click - case ActionType.ClientTweetVideoPlayback75 => Action.VideoPlayback75 - case ActionType.ClientTweetVideoQualityView => Action.VideoQualityView - case ActionType.ServerTweetFav => Action.Favorite - case ActionType.ServerTweetReply => Action.Reply - case ActionType.ServerTweetRetweet => Action.Retweet - case ActionType.ClientTweetQuote => Action.Quote - case ActionType.ClientNotificationOpen => Action.NotificationOpen - case ActionType.ClientTweetEmailClick => Action.EmailClick - case ActionType.ClientTweetShareViaBookmark => Action.Share - case ActionType.ClientTweetShareViaCopyLink => Action.Share - case ActionType.ClientTweetSeeFewer => Action.TweetSeeFewer - case ActionType.ClientTweetNotRelevant => Action.TweetNotRelevant - case ActionType.ClientTweetNotInterestedIn => Action.TweetNotInterestedIn - case ActionType.ServerTweetReport => Action.TweetReport - case ActionType.ClientTweetMuteAuthor => Action.TweetMuteAuthor - case ActionType.ClientTweetBlockAuthor => Action.TweetBlockAuthor - case _ => Action.UnDefined - } - } - private def shouldProcessTweetEngagement( - event: UuaEngagementEventDetails, - isAdsUseCase: Boolean = false - ): Future[Boolean] = { - val engagement = event.userTweetEngagement - val engageUserId = engagement.engageUserId - val authorIdOpt = engagement.tweetDetails.flatMap(_.authorId) - - val isSelfEngage = authorIdOpt.contains(engageUserId) - val isNullCastTweet = engagement.tweetDetails.forall(_.isNullCastTweet) - val isEngageUserSafeFut = engageUserFilter.filterByUserId(engageUserId) - val isTweetPassSafety = - engagement.tweetDetails.isDefined // Tweetypie can fetch a tweet object successfully - - isEngageUserSafeFut.map { isEngageUserSafe => - if (isSelfEngage) numSelfEngageCounter.incr() - if (isNullCastTweet) numNullCastTweetCounter.incr() - if (!isEngageUserSafe) numEngageUserUnsafeCounter.incr() - if (!isTweetPassSafety) numTweetFailSafetyLevelCounter.incr() - - !isSelfEngage && (!isNullCastTweet && !isAdsUseCase || isNullCastTweet && isAdsUseCase) && isEngageUserSafe && isTweetPassSafety - } - } - - def apply(record: ConsumerRecord[UnKeyed, UnifiedUserAction]): Future[Unit] = { - - messagesProcessedCount.incr() - val unifiedUserAction = record.value - eventsByTypeCounts.counter(unifiedUserAction.actionType.toString).incr() - - getTweetAction(unifiedUserAction.actionType) match { - case Action.UnDefined => - numNoProcessTweetCounter.incr() - Future.Unit - case action => - getUuaEngagementEventDetails(unifiedUserAction) - .map { - _.flatMap { detail => - // The following cases are set up specifically for an ads relevance demo. - val actionForAds = Set(Action.Click, Action.Favorite, Action.VideoPlayback75) - if (actionForAds.contains(action)) - shouldProcessTweetEngagement(detail, isAdsUseCase = true).map { - case true => - userAdGraphBuilder.processEvent(detail).map { edges => - edges.foreach { edge => - kafkaEventPublisher - .publish(edge.convertToRecosHoseMessage, userAdGraphTopic) - } - } - numProcessTweetCounter.incr() - case _ => - } - - shouldProcessTweetEngagement(detail).map { - case true => - userVideoGraphBuilder.processEvent(detail).map { edges => - edges.foreach { edge => - kafkaEventPublisher - .publish(edge.convertToRecosHoseMessage, userVideoGraphTopic) - } - } - - userTweetGraphPlusBuilder.processEvent(detail).map { edges => - edges.foreach { edge => - kafkaEventPublisher - .publish(edge.convertToRecosHoseMessage, userTweetGraphPlusTopic) - } - } - numProcessTweetCounter.incr() - case _ => - } - } - }.getOrElse(Future.Unit) - } - } -} diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/uua_processors/UnifiedUserActionsConsumer.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/uua_processors/UnifiedUserActionsConsumer.docx new file mode 100644 index 0000000000000000000000000000000000000000..66274a70c0d82d50edc5f4793f378febc149a736 GIT binary patch literal 37707 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⁣^Ld{KB#Qw8w8CBEOjY1 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

    vBIyF=UJEdDcIKRpz9 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 literal 0 HcmV?d00001 diff --git a/representation-manager/README.docx b/representation-manager/README.docx new file mode 100644 index 0000000000000000000000000000000000000000..79322b2cbccad19b814cf5b2967420384a4363e2 GIT binary patch literal 36758 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

    =*}TDr9g|AI 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 w^sW}dlu3=yP(kTi=mpQ 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 tVakL?XsDocywLTdw+9jWwOf(07;5VZ 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 literal 0 HcmV?d00001 diff --git a/representation-manager/client/src/main/scala/com/twitter/representation_manager/StoreBuilder.docx b/representation-manager/client/src/main/scala/com/twitter/representation_manager/StoreBuilder.docx new file mode 100644 index 0000000000000000000000000000000000000000..3d9d7e751766e70332d81351ae6f54072a2918e2 GIT binary patch literal 38106 zcmagEb6_1^*EbxqF&o>qoiw)Hu(6$-xUtpPwrx9UY@sY-;Olpz2|7>ZHfu zZe!h;B&V<@g#7*D4I`ORfXGV}38QS+p30ss4o9py{fm^FTa~SZYaf4}X3Ts-`8w`|~sh zDAQg|KaT-w@P$Z@c0iKm6G${=WsEv1;ZQJ)GXEH4Xm$Q9XKn|ny{hub2<0B_w}UZ7 z*S85@HehM-5#5L2 z?T~-&+w?HFjcc%;K-HB--l}MCqFM&;pV?UjQPj*GgJ)@c*z)F_uBp?0>(JJUR`szs z36#X~d=N#4>TH4tnT+c%UwfArp974%L5{pOdqhQ1cr>`p&K< zSgYJF9FsiC%FX%Va3V_LbC(mOv%)PV@6#b>z)$5bG~o4kh4^y#6>=5(@soemgXC*x z(SgfaK%TKIT{5-KTM~W&N_X7X7q4gd;_}a80==(G#Ty5LV-F;GFX(dmAd3H0MGp!Y zp+{i#Ho-tZ;DLV)98ImA7#aQ?E8{1n!I_c$E(F9!$ct^8)Wix_^u>_l z0wjx8yE>J`^fWPh363uIjLjC)^KqAHi>w1RjI=j@>D zBxIY|!;33h_pRN+9|fD7B@O+APGap*R8r+ln6bDD5TzW@ZbhYzrlZSZTQe}*p4%0_ z>6BkF90!UjsOYVU6~ZrchU1acTHi=V?5Rqp@j1Zt|kjyDxFzRb}^KP zbfAu%ZT|Zdab}BhQSPyb3X0sycXgq7sy0#tq62j5U;h3CVF{%1^(dvyMFb!jC?&a| zVaWquWvBEZ=9bH0108p)AzX2)v=w%bH+7hC)|wF3oNL;ijjx$~0r=VoLBGEY8Y&-V zm{Qe1vEZG#K0$s$0%a9aN>z4iQD@l>KXY<)*qU|)*DL?j9P$Y<`E%~ zj_an~Kw<6h{QT}Zy%V{gptDH}YYp04(>NDp%2zJ{_jks-Fy4CJmxi&IC1Eq@2KjGl7~@ZQBZ>|iaE;aB!-s2=MVqhH z4hGX>l?zbxu+FI(idAD?B=trUR|L@ZP71Ws&Z~$*n+;w??eg~CGq0vX;=f&M9|taz z6dRW}e<(32gqMTARevk@D4FJG|FU;?qLrM4fG7d>^^Fx`+@surY9&+xOO6Pa*|76+ z;v0k|yqEJ`oyjkh9CI5TEWSBXp;H1n`|G(+j{|V~SjGk0LV%e&3H$QQbE-8Etnh}@ zdLos&QjO5-sI%B^P2u4jZg%iDQL4z%pQK5aU+sEtQL;7t*BxS8?(0i=V-aQU5h0#= zMV4PN#b{PVp|$a26Pi-dd~3(-ZhmueeM+dj2G;})zutd2%&b966tciuX+t6NnVJ<4 zuN|)`m)>QlAm*qK z@nb7~an;@>eE5d*hRkqf!+f;;3J4LiS0STw5ljkPyE`kUlIl;x@Q=0wF-+I34xqk~(t z=)x~hzfC&0n?7qbEpWEAefCElBDo~W)G>CxlmujudQAv6t>ZHtoxlj;&5_;2U&csujf{VvAox%(& z29&ocH}}Z#;z~Jn=SB-l<_9@wfpHc2QIW}ukst-~_#E936^yYz_-2i4&6dA*aKCK1 z&UC|p_d!O+=RO1E_(aUtXslYr`?+huM$%>EZ$~XTJ6_~&11}PX3=sSb0*X+p=%q=r-Dha_O|~XO#DVNHj-16YX;v!uPfRd! z>@V1Ie)fYdeY%+Bis?K9!eoMOE(yp%#)RS%lsh{0Lo*ID!D3wgT@VAjW{@((xRYc* zWKQHnC*s;5&^{qdQ`NIIK}dt2K*IcHCG(6EeGtQJvl2TwH&Xq)Hp_Wk+{W3rb|);M zpNr&GNWfpER7Ta3r$5TPK#gIh8Q3RV=H_LoR{UFPM1pI6j>e@wcx8d1Aj@s$2&b1a zW6H4Tdk)Lb8`1e{C2c9K=u1tJ)k@2EFPn+xh0$=S%igJ=5q}&}OY;(+9s@3tO#a|Z zQ@3Aj-+KBi&}qBL_8ATlPMrxyItEx;_Dy63^8~;KX%6L$wkjmr7Q$V15O#1G+&9#u zb0`t?g|sE!;Vr|$B@d6Ky+B@|;H<;d7FI&^5tz3$>x)(iKvK+Aoz@%Ma_*d!C7KE? zUC)iYSvYQw?{m_&{LDVP{Df~HN*r3FE?d!&7O@ih`723kw>^a}3r~Z@1IajV%09fo z-zmeAh^V4yVd~%-#nG@2lPaltCa}%B!)WZaOMhI6a2A=JEt|Zz7|@FmXd=^f?E)TZ ze~lTULb9snv(|Nvhhr=P^I|6cPTu9Or6k}Novyx>96=fN=rKrNk=|^(+4huV+aKAayV|3JWdEx$4fJU6R+oUpWwZPAa)&zzR>6uZ z&tc{G>LgWyMtO!Pd~h?jNTHloU(KR1@i-QpL5+8>0AHPRu2Nf$HT0CiT@iDg;eb|^ zVQXI-5*EEyjmcNhI>T&%)#8|Bmfu+{CWmv$W^3zk{ZsF8OLgA~gV@&rEH)m22MEcW znwy6I{HJCo!X{Zj^V!hAv!1b2i>20$MX4#zRg=d$Qah-9s@ClD(8D0pwJd75MdIz< zx%i}j0O58s_(KFabDKU=2TDvS+8CCYS*n2L5nWZp`=yWAUVGfsMwlubRT8m11YqV1 zoh?4z(#OT3{QTQwrlklS|Y+_;qaok*i-d7QMY8lI%2Aa&wM?E`X|2XQXQj@f%idp)@Z-@;vY*m&S!u5!ImMJ{5;&Ix zJB27RP5dnu8S3U3q6*qpI?uNbo>JD7zYiN)68gi38K14oy*Gb<=_GM!VLhbN#(7Mu ziFy*8V=j9heg%8>vu1gDg$p;eQILCIADEXa>Pt9U?s#(h_xDlo4eU$^M+X>1@(9df;?G!B zP}?A|IUe?9>4dBl@F5AM^C78RF~ML{W|>7}$8!QVSxzVAO%}2Y)HR`i(@iZ-mDt(u zo9x}Vy9|KM<5%DRZVGJua8X%+-QqZ~Tf_r)i+?o*f4}SeXKV2HdrzXULLd|N_ltM9 zzTgD(BHM`1zw;>CX(Xx(y@MrI9oc zBEgW*=YkbYQTfb~Qcip7CDnwjDv4luYI-?3m-$5GX3uJqzEvDaC(6CT)wYrk)WMN8 z=GqFiVpK&H980Lgf3M@z2GbIojsNjABsva02}v%+dya3jsBcU!(*J)jQ- zqIP+~P>+US&uq~c zM9i&QG)0u9uqH!g2mHF2HA0w+ye>^8$SU~rq!pLt?QG(Jr#!5)7c`jQoW7BwGF+>-v(*sXPk}!f|2x-F<(Rw?j36NTYLFmE z|ID?Mvxl{*)8FlvUc#K&l-1Ow%i`;J`?4?gB$ES^}_LPP8 zm!r8~ckLk|dnX=mb$stOA8nh#jDS@_{p8}y>HedTl!Kk|wbSPExAD{K29I@X&SF8r zir$`1h40*ne8&`!b^LOrxHB9Q_-Mem_5u{;w&lBdhBQ8W z_PpW4HS;DYGRc3Yu?c)7wDIDR@Ff5Ukoi*h4t~Jjx6fUjpSq3jS=K*cOCvzLuLK!) zW}ii;zg#BWUAw2@bB^Ce037K(-?%+VZxYJ)s9ij|JXY5Q#YAF!gBjnu*1Ou9E5?%s znSE{A*L}KlbuPNz?nIx>lv4=$9kw z04QnXIL_^`otK+9?J0r)j|kOvZ{9OB;_9&2+ZrUu!jN-Rp6QT!q>$<=!M7R%A1y&2 zu3*NF_88M(EZ?{Hqkc1An77-FH|I3n*BZb|#}*%drQ5}MNDAk97N^4LhmZaRfWIo+ zcIg9cpes4DWwrZE{%9@6ZufEjqgK0HA`7>xO-F*`iTb&R!}Eceobvr~?a-C;2%fw2 zYVe~y6p!NGNXkQ>F(11dR~;^G7pCsVo;1SOa-^LSBxYs8J~cw43V{JJpHOP=&^dsM zYuD}YnZ+O_oWAN)SiqbrAa9#ADVwTA?0^!EKoL09ODm{UV+Z_nNcT2i`T0ZdaYAw# zTEJF*&BYW9ho-2F>}>0;gO5&-Fu8i#ZFXHdR+*(Qq&w#D8&zt{fmHLyz>f~Ss>SJ-v$<#c2Zy&|srwtjvkQR? zC5cA8h55_=!<(C5=lxC@Y_!3xc!e5KAN_~!Wds>FRBD0nD>Da=<6BJDI{7&9$8Vw=N*mo#}? zv0l#JFMrw4W)KYhMDfNTzK8iK?2T_gB^6mn%9S8+VOFj-vM%SCZ^CA@~2bxUel(`GjTxqt&)8b&!CjvS)*NX&uwBq2YDu2D-_BzD!Ani$4>6TQa( z=BCIGJ;*~v2yV55nh4%zvm!HJ5=NPn7B#>=zS)l`V_%OqCJwnEtD`)4o7@gmi)&Oz z2wDCb6FDfM19F634@Q5u80V1B)E@%47Q zXh|SLD%^Amty#RIS6Ra+8*7WySWdufx2z+bY<=(Dh#OM6r%~;9Oj_SOIdfm_9*9nU z$VvQpO~KXe?56T<3UL%O^t7zO9UNkqMh$bP)L=0^;O%|jvPj`*oMqFQAgn`bEL~Z8 zJbn8$zKj!+T6FP3PKt++rGC!CN;pa8Y|%GE3{``yXnw_{&STfaVDWS*TjU7|IDf*( z`Ff8$kM2Fsy(3%pqz-I4xTHVYyfmxqGYGzRb;3#W$_@_g9{9>|V18kA}NibFDV!-!K` z5-{7j4u0F53`=&pvfU2tJDj9GuSH}_Y!~9jRajBXo!{0G7#*W7Nz9So4m*$0Pj(MQ z2|1O%vhhR;?(_C5d%+cUj-WIgn;aAF?Lr-UBoEYz9WO?;|()@ADlV#H87}$%WOyt|$ z4ueE~-<)K1@K0$l*SPR0f36`w1aX=^ef<^N3wfoJUo<_cT-Z&5=k1nNkY}f5+?bt2 zkvBH}7|cCI5IW%)SD_bVx|O_Ua<~AMV7_k2g-96?z>vq=+>+3vM&697J)noEfz>L9 zxWviKqZmWC{_5z&R>WFPk*q3q>7zN_V3anv5_YoM%x<@N3XlEkghkV0C?Mw`Rw3h~ zb_KKBT|s}IRJg?ZRLwqlr^JsP4{8xvcZ@0xo<)8CDZ)}>tk={KE z-q`iniuJKv$8~(q%ov@nO3d#GH2b7HoK=lRjpNW_9qv8-fCJ={=S)~wyXoON>11$OL%qD zdURxtdt5N&Po)0IlN>=ubhikd4=2U%9;p!p7T8^yxS5Al$tLL`Z@YA4Yet%lq z{XCjt@LD7d*KAx#-r_N``e2K#8eQKNM|-o;Ec4>v-GZ4*FZi0cq1w2&r-!9{g|5CW zpZ37KvP>#PC8qqk?!r&!{m@eK@5aZTPY$g-zfdRhb}H!(|bgf zM-DB$sbcc3^o3alt^8RZYa@puQnb<1m0TiqyCv}I6~0!<1!wEZYps$^PVI*6MVu>A z+K#%Gqs;N-!}!f)?-HC+tn$*6T*54S1@LCp=Jlxs{KbX$86+!CtB_unEjtl%v6!PC z4<6-J@u!OM1Dcv_Mym=gN86PZq%C`gC)irpa4|i^#z-T`bwi0_y(MhZj(^pkI8!j~#_XuyO z^lUC$$zk8El;S@eM?G+7eUu^E@MD|xnibmS@uZsJ)%Ecf1avF8m|?QmEv-YuU({Bl zefd73);?+&Pj^$2b|V}~b78E@kKrjwOQ~B*50ch8SLw?(oNa5TxR8J_JI6fnwuYR; z%vO&b35EEDHRUd~b)xcI-P;F)*O8W17Nek~ET(e>TB%e?!QsBBU$xo6lznx?(xeo! zVaVlCbf85 z?_Q5*rGp0=Yge(vHQmPMJWl3GL#b6atNmT) z{8?0j5V)4aUw|;meCjHtewL-SXNYid($xo*M-ad^Z~Wsvq`MO7C@BKt&>RQepgPwl zyBh7>vR$9x`jX=HX3h*3t@HT7@{XwMM<#i`)zNAMzOJcM>CxN!rN+eqc(B>lRJ@}+ zwOBje%#gsPm{SGRF|!$kHrnIrr}#GUF~6YYhV(Va4p19ctXT1qC_0&uN$hXCEBf0n z+~4A}SzjVI6fp`yH#K#(v5%uV(d3|9hE=|t>Iv_$L<{m{mg_YpSWQ8wyv&mX>Od% zvj3#0U>5gidsvcieUDJwQ2PLO>Cwl<`HPw|@5`MHl=A9!2u>s$;;SPWd8qGo8bG(I z%Uj_0R-f!>4tc6Gbw-OLhn!tfirkKwUs>_n+TP@X9-Ncpj|c3G*~r{rTB#lJI;}Yl zaN*_fEb1%nh%p2en7Oih{+V_QxRIk$3>mCio2jxDbub@^X7o!DPz9=#Lu7v4GW`ab zCegY~xRZmsG^u=j_x#TkCwddmRj0QYchdI}Gwmy%MovqE<*=0OfZ>>*d?Y&m3NQIb z`24@ZkN<=R5{Pt``EcCY{sh1Fw0xTrpHHv1Y;qCLR$_$gQ0zfFDdZMIN-4v-i$9CC zE)MYY=#2VVg0;CEs#tC5i`tov>)(;3P2qxacUX~T^E7KdF9XVmei`IxfjHY=cp~0u z!b`SRnxn6;P{MW+%o#*7U%t8|eo>@Y#L!6iUFL zcGIR`haY{Ws>oQKqKEAo*j1aC2JZMl8QVG?JOuHu)FU+rIYgv(v4_A*IH!%E`6&O@kDA zX{ga;imOJM*|(%PB_W@OXH*Efp^~U^FpDydhpo4;FZr=52QBj|bvEfz z^BP!z#}7QVZD_X7+N}6fqolGqwyV#n;($dtLD9+uwOgI2&Ad&!q;R)+I|LS*l2A&% zDw9ZMUrm~?Kkzozjj|YaD%HnJ>hCC$ZcA2}f<;{cGmTslgZyw^6oLNQmR6>`VI+~} zUj7#bU#18UV!O<4TKP)yj%%rx!GyNwen$j!vk+u2-jvBm6G!Z&V@ZmNQnT;UeK^ zz~EwNKNrq3WQP+_eBo?{DUoq6SK~kVEhaB6#N*}PN6agDtSy#LLIi1$&?`h4`3*=F z5J~9XG<=?w+F53S68kS62(o|j$nQyEf$kJvDWcREI-LwLGSQU4PysC^{`@7ZddtM! z)+#Qf*QZl?qIA?trwXA;2X=yugpQ~RF@O2~!u;6+(|Z*YbksGzDS>*VrRyT9iqsq_ zTGn8p0Yzn$(dKu3?*u3CA*{W|K?=EQ{_wI+c{v;{4$ z$0`33d||7SL-Mj)~-+yhTXeg#CP zxBg#>#}w`-Se4CT$4Ho!qOgOH83QHI?VZw5WzTSFdcmIbVN1Rxe4F0vdjIXx3GN5< z_G(+hC&f}dZMcGK26~7lfTHpzwby+bJd3UbsyCw?qW97AcZb&J>!%uD_^if*?fOaj%i<$*`;CH= zKn4FG91_OFMQct~xH&Bxt79x%iae9_}X%wGw6(60Nj+k47~ z2`&i8)RZO0WeB+Pp0H@J%9SHVrp`&20&yhzk_|f06K$V@DMnXBOZT0mK69j^IyRMi ziOFl%G+XNvcN=K5Je|ZAcml4pVH*BQIe7$i7T&lq^W}|k*dTh{&bmGwMTWdT$0|Bl z99XIdkt2u-jM%5p!4Y^8%sC89(YO_PlSN1{M`%{lnBOO?5yW3OduGE1kG*z{Rp=zD zS)m(Em_%)<{V~oQGa$$EYLR#yO8$pN((*KIrJ|)=sXx9~`2YCs4bhZ!@HsPKzQl9o!28>`_$Uw( zcwnyaVg4BqI_MlcsA$rJmfCn0G1@dV#UXd`A1V(e{-{(TYyhh4hyJ4y0<`vr(QxZ8 zZ>B>NQ7juce@Rf67w{4Ph7a&ie|%#i`cO?-4b4yDX1sA)STG}Z_YS*FQVuw^IR3NUW&*&7*vNFPi{k;tx}}qA=J>{K`jq(gxR33{nnO_ z*RnR%M>E<@*Bqkkvd9>n*-OGUr!OO)lFF!GBMRgy2DE7$W-J(3mo?K;0tXYg%$Jno z2TW`X$G`1n0E4Ff4&wUXK}nMb^mm8X1KeRws7HUOepDb>U&>{mjXw@>N3nkP>_9!L z5O4f*-WAsb`Dk9@VJxHmnhHebjS6Hp4C2 z#|Y6>Y4&*%xA_4xZt^oT?!Oi0;veF>2xXv6{;kmUe=EGsxCxnz+p6I3RLT`TEBWj= z>R6%+eLax-lYV5bs^By0frsj#XfI-K*`g}6mbKBVXw6n;blevHpC|P3)7C~e-AB7% zM|Q9hwv=uNvW4q9-5lfdXyftS(Q(v-LREC}{K3v+!%GSE$KgjzGrJj^E9^o{amC%3oIsb${R%wl6>@?8d z>hy2re{5iFgUiJKXgeO0&bxbD+Wpa41W{b@LZ^us{wvC^HgU*jIY*dgm0Nu--&d|P zv-0H1t?4k9&b(}M4n$k&tWj10-^HzeO{1|B$)GN6hW)Ofjla~M)Vf$8c|$#TbikcH z)*tpxq-NfW7@7POgdA;of==+Xu~8HU!u5HBwvWh?!V0kWRV8y@mgPJw%R+1#!rHv- z5SQ}XPZhN4B%Tub8obq!8#bwcL9Xo85Zvt{@a}CcJVr&Rvb7Nkn zS|^=#p+zo!MX+q`aoI1cCpq9?{BP&vX2^00?A=#0rSfSMpC82L*zzpEnpo9tqUP9s zm6qi**zw3&b=qZ~vsJo6qR4^IHe7G|CwpE9xFO$F6D(||6+U6Qo|7lW2 z=cKbR>~E7HNquUB z2-zG=hRFl$I<~<>@jyiULP5Vmv=B)p5;2xgatT-7nS{iFO&G(_GId&WWI<;EcjJX& zD%zU{~w7-X%9Aed29$y`RFKI6Oj@4pwS?3PA2^DiGLj3#a-iUeU_hLipSEOEe zWNPFNkT~!jcw}ax4iGG|FsyyZJ4i+<_Pt+B`hFgtb|CMY^|Fp8G5hovDfERp)z~|F z&V~~Q;V%KQL0I8(j{&3BQ@OB+tiOdT-$9gxY%Dc1GzTzp| z?AH#E8|*%KS;lne8)EZDvhjb5ixU1L4m;>l8feJv_%UW-A~AbasR5-kZy!IbD7$u5Y0#R_ z{ciaNz2STxuhXwPf zH1f@jN$5Kz z6IBVn!d*=)fNvqc59cy8ns&{h*m6C~z7w-)s=4>RqX%vo{yOvmWs9_{I0_~7B6oQ( z{e^TYoMZ#r;Khc0o;#aH8Z-vpHTJpDmglDYQADBB0hYNNk*RyokjTQReLjTo2JhXPgrlrj}B!^3&hn$(yN2F8wuDD~b5Kxef zEhPk)KWFniRW-rkXB|vm)KsI^unw2JdCNI|Y*Fn4e#23oQinaIg4l*Vxy--}yej@i zy+giSE@Uv%wu^ge+&YoZd@9XDzihb_?`gE!a6Z)7l$}wwqmZ1a2A{BFvCo{hos$jX zQ9J}DFX##O6TBe+EI;5!_GL@_M78637E?DS4q8+1E1e+BGKT!33hE6j$U5rHX&y@G z(+*R29M+??;k4{2Jxlj}dU6@7pjsjr0oHG#yT7S07nSYcfk^gipcGC8fGS z!$xnIuJ+U%5$HZq`ug%JHk`C^q`_`$@WbGS-fV5<=m<(>r>lm)L&Iv*nFb955kb9-4_9XMcEQ0>R z!U)6VA;Gs;)dU!e^19BtE9X0Ed-p+4jWcu|Q5UbTJv)g#TK}_D)7hTCm9bbWn@3(( z1to?4kw1IrQoYk6mhS5}pGzB`IkV6#r3PxN^?^>OMMx#eT7ThNDeG@A!Kk>OlXFal zlI4_1j30vJ8|}IJD4@S{99&AyYllM&48%6$i5g{v;GmcW_=_U~ib+8-RZf3Bm)VNV z;kN=@==0RJswc%|UM1NpaEvxbo)ioSfveEl+6u!Y@Oh=>Wz-vxdPNF+W%30JaUA4U_&;uW2I9TTT{yNn0|?7v$}wJP?$67zC#4_-rBPHbPd$69 zqtKXKdSCtsenqCZTjzEH3J&NWs4a_x=%l`A2XS?x~9_^OO3ib(a^UpemsT z?PC(*sC7BvsO&$0-FvH(0%QIOtk~vk5{)%E1cLE;dk0V{>e%EG#CVmZf6P4+^6B)0 z1C$IE0g2{f%5W`QP5A!{IBEb6kdiQ4y8Q)G5J3e3;}yHw?XAO0@3QMjSOHQnlEZ98 zrLdk^2vX3eb1RX$nsW*`ssax<=2kRd%mKQtE!{Rhxy@hix7&~McHQ_fh+ne3B)oOv z3G_3(00*ej?42$QAOuR21E$2dW7Dvg@zOiw1_A1{#fj$e7sjpXrRb0Oz^i$e<=5fD zfb5}v7W4m_8`u0NqaiJ-v0X%9eskJ$Hp7^Ap{t_A6?mrTa#=_&eZIOjkm258H8i{nG(0SU-so+v-YbSahow5a@k0oZ z-Yd*06?@={{{VuB{kpr?Ep#+z;e>vVgRUt}&(*GfJR}#QfNcD>d-itAp3E-gc2jC>^F97=ow}3r};dYqevmS!z zmN8Yoy}^ELID0&AWbocAfnJB5 z&5D00&2=sUn=6u_bK=X$?Eq3h@pzVi)Z2vQy8hm)~@$D8936H`L45zyT;N}629$^qG z1+U2mEg7GfBtb@>YhQSN(b^e5s#3@ylU(SwnS)VA^QCfISf>se7=$7JGSWCd5 z(XcUl`XD6835r;eZop^_FYL%EBxEb{Whb<`BADA%pdFai7?M?NZKYdut5Txa4GnjV zd9=Wz;wC90f*BpF&z$O3+zH&fE-O)K6Urp)TyCD<&Y+DS*$*q|rRZ2Bokh zi;1y-u#2Y-hL*tz`HDzQEojXZcWZjOdmL=D4>2QC)L-ny>$-+|3`^rg9Wupl~i-w(~nL1TrjegDI+DX5rSmRV7OXM1s

    a^?Eg8mW?!Goi9}( zOVW9mn4XTxkaB8jih%t?GgW?3$k;UNbj>LavHh&RF8IiU^-71{-1OvA(K70fVZ-fA z|FB*nR&3B$hG|2H9E_me5fTod%iiM&!#`a>W9jeskSS(tEeVBBMZBMew3eMxme}#3 zmG4q|_y0-71f;@_{6obQF=(`1JI!efw8`?rgNe}7+GwOr?O9(cD+z;F^hWb@hcH_$ zi-~&j>2q?bpDq>cxQpx5Cmy3h{f4i^UNvQ3$kmIOX>U4v5S9}Zn=s6eG*g9sqtc#I z(bf;0TTfJtu;9)B%OhFMeQ;P5G=7lwV7OpsXk-d3q#aW7sfU1<3X7G9wF}bX2=0@0 z-FTatk?D0s#WGRG@YuFbUsw`xJqxHj$@Cb+Hpzch6im?G`#vc34XP5D*(Pb>iVEHe z>+|S!P+U*u7i6^mVD!||0*9hdFG^sa(bQsk$lz{gg#t1rBthN`Mmov!oT`TL7BtRA1T%`?ap$SJ)l+G>>ND;(z3s?2FFwVSrSckWyN*{(SsndHQoD9jhE zceK>5BsQgcpfTJ=5flU&rzM6GI+P=NcVwMDNc4;`p~~^z%fSNwqmOVFw{hGSJsh?S z7rS`cG02UPB6bETcE6@bH5(B~U(8SZ z9N@;AmYIsV1;xrZG(EU9D5}TMs^7Y#+yGBO>3B4|{xJwVL`A#c=AgW$-c1b!-lZXN{Yh%n}ez-Qt@H$7G^!eU6fW*6szd7p9%2kQ$3V>Y2Z zAkZvN4W!qe7ENGM{!0Zs(%&kAdv5UM%azotEL|!Cjuf~NbW@wd5i#CfmiexTMP6yp zKQ9M;8cX{*zr=q)%vhElD`t9u3=^9uXS+*_x<}aC4rMKplD>NYCO%DB)lD37nSVGx z>NO9+GI>Cmwd$pEd{go*ijX4kSYze`q!WFn2V^%&Bv}n^PfxvFuN|~iGrWAwMYw?fWM8K^^+Vfs^!OtfFnh? zSvxb~PA|h(XaRwg{{e*Y2T12%KsJAX=6xqR0g}1z=8G`YksGC^5q#EIv40`(l>_G% z2S#f&YT&vbi89p+Y^ns@WoB#;It=xEIC|neTw@6OiJ-i;V8LHL&?Wp?@$234nY?td zqtJ2OH9JVbtpxG)rUTb8;zULzM%a}7?1IP&gd}t23v!y&O89|sD8*TlqMS;6 zYs7Y94WE?+W@1pMSn(yS)02RqA{1TvUbrX@%$tym7*Yhzg#@xOQ{)U77qc-3bnr2O zLkzj)ip7G@5GetNz(=?1pW>2DQhMZ{!dYPdv~)%If%M<|_65uPSrQSaZl$X!z zrB%hBNYgX}ckv5l`=O4+NR9-Z0e(;meU5Eqbs9zteSG(QclYRe@oC+t97;$$IvGG>gnu1_p#TXHC^Wg#&D0Tf{>0_~XAI(uc?&5eoXZBLJ zOzCSYNZGv%@bG%$u()xlHSp2pufF#!vUy4|1Ni!WH0k-eS?;Zk`xJCPF|_($0DL_J z3_42N?%nf?Ke#`P#+?#|vxCw@no|xueOo%+)()H;`_u2vE$%$eI9C?q6BLdlXb8D( zY77iQvQ~3K)&`gMeX9_z*WdT9zA#P?^H$qBaBXA9HH3{by4w=l-FQ=KUHT-Qrdb~W z)KAyC?KthKmloA6E8kk)9W7|Jpu|>rqLl7uT`f6pb}X*aWOGtNE`o7Px_*$KST zp05nz`)|GG zPbWLA52GaaJ1tn`SagDK4IYnm-mf(Z@*UlRnhJ>TFT(~+<&zv*>swn2#l?Yy$&BTM z>M=3ncP}qHPkncDCk{^^S;?oq7s)Y8dmp%jhaaVbA(LyKzTP=9(EJw!`GN$=)xYvG zbnEmB`d^)%%a3j;+aqg5aqY@a>G6@!WeE}AKk7GjTJy(b`RTEKRrzpMG;)wP95Ufz z*$tCh4wG7%i_J$X%uoF&$%IwnRT*@>PY)qguD5AX$;#dkioP)CgxPypLCARoxCRn- zWpDHZ1BZ^cfkW89A=djlK`%|b_pYZM$xrOvRrk~5t9Le%wHaCWsqF@sYlBB;yLZ1B z4j?&;PSTz(?;WPy=0pS1-)pvPmG5r)AqR7Zz^#IvFD_5R`ekw1oNk2CcqM=ySkHsvg`?s(y}l4a54vY^@LtpX z;ssj+yWIWU7CL)`Dg&?$9QY4SfvQdYDgMFUIPa9cXcfC*mD&VExat1L#3*~duxcYR zeD5sE&$PHZ?(t!DD9xLp>ogb)O$LvLyPCF5)11@kXT{Ct=W3>OoJWkVj|397s|Jzw zmGs7~+}S!o7iLIEVWMN;rV9(2J&7lEbcW$(KA23B^@{M=WSX^*6{GYUAKLF-tC_IP zk1ZE09nJTc8}W!JMl2sMO)EefW+}+(RNN{W1-Q6WvaCdii zcXxMpg1ZwufdF|;&bjy9bN}ys|L8&WVAQU;=A65#dhK1kd$s>`=+dkHGQrEAzyRqv zby)}&AXi%ir%t-61zCw=T@SX5_C?EET4cT2SIGZWtrw?Hj7~qwUi@h1t1>T32z5Dr z+5p;R^rS(otGMlO2x_g^jts0i=>`~AC5kQR)K3kt<J8H#RA?^PSfwv6P0`i)U+e5zh-soRPzc+H5 zvH`^_E`3L7e24#o@}CX<6XkzqfyLeeX`h<^4U9`>&K498%Ay4XF(42K#{Lhke^dGf zc1Dk42W$olY-aU$vtB#f4?9evP476HU|jI??>PV2;6F6iiZwzmYLRRKo1p@my-P#1 za;%ViMtr=xjs6vMNPMV8@lqq1&o1 zL(*5vACK9yB4(yyYPYCVzz#mrYFq#J@yk`n;bGQz|BsK6xRL^H6W&{{T&~YoJZ)aT zkFDm$!hHMb_5^e3=z03Ok=2dPm({WL>y)7yy1BzRJiD3zey>fy zW&a$3AaZeg?NAr+iOG0->H)X8;x#71xbm%yp=U+%Y#Xq*DH5h&zB%0fvV*RoyVPrfw7ngxeS~6uUiMc(+gh`Q`oQU zAC7EtyhWZCzR#rawrzaAA|2mYsoGBYy59a%Zm6Z|bZp*E%LzDsT~8;N_E}GlHoA&& zzq%ouf8BYZs}=|^frcRb#(RPO{X1re?4AeLCe{Ks_Hm>!e@+$}z?eTf%h>aLQ5a6& zwY=}b9HM~~;^^hs3}jR;2inQsYn3?G^Trq}(1eK5uTc-tA_rsMmc39XD%SNEghh#6 zY_VU78iJf0Dc>hzH(f~!Gotfv2x}@=NUS@2<-vCnq?zJhLmJHZGo5Ok`8fH*7w|6J z@D{+9YM{z%P)fbG{diaiOE;{nDu@Ww0^BN52KT!IR=*>Mb_qS#!0dgUk5YsA-7a+} z0yzkitxW2ckJ6XWP3mUN@4pljEVL^kW{x%c*E`t1wvg zkT44(x?h@7blF77V+g#`gz#PA9pYjb`2%79eU2(^N%hDadb?;Ju z|2Q|}<#nGY%Uw^duX{g%@2zeW!NqaS>*?hsMwCC}(ECpFbzy(J{-sesmjh3xoZ+Q) z?K>wU9=$D+-Qyx#TC~bdx7>)^PMf#qQ|m^yVO){JfUs?Hd>tQ!Z61MGTGhev6!)>} zT2=PU-85zsCsRDfNv==BGQUuSgaTV1U>wF!_P~gjU=*Au zqHC0xp&0t8&mTbHqMO}Foq)^qg&M)(#wMa}>MHEmPtNX6bi$f8 z>baX<`Qq+L=e>jIhTRW~cD`8WuEm$*7IkB*jW|5uQ2%MmS^HT8u(|AZ+S*Ct?HJdB zNw;;8nUcd*^xW+*+ZfTb8tLIF1+}0@Qid z4(d;ylWH^D!fV{lwq5*K{deC?x*5$H47gyQTfvu3rQNTj zJaD7$tbz;|!msW)t<}!QJxe&b?Na4ryLYRMJNnk%(&*{pB< z?yla@aVv{~sp5yNOZ35LOv-l32mC2#v!#tsx&|9))u#$2hXhsW-%1GBZGu4H z-n`sQit>f!Fx8i`3X(e-EXN6J%)Q5XmA12zKW3#9JZN3bl~eni%?+1yYQ{usozJzpB|z%v^S2s7|%ZhyDhYJlpno5;q04s%a?EzPMh*JS)S?fEH#cXE|x)$ zZwuDE8Qs)wCPr*Ao}Qw@?%gWk`zy%mU11V_X>(!YwtsW@=6A~4ZRe{9ylhpZEBy!0Te zLDJC%`&#p)2IJ_i%p&x)HINI$Axk{oV*_DFmH_@y)3Neyq z%nU`5E=@`d6Ds+Mh~mIE^&T8K*u(@`WVn$4TglN_=9eG5X98X={?*f7>{EJFa>#-t zNlC^{{r6HROpkh3Z4>1>q%LgrN=KGNwK#((@gd=%nDClyu#1+A`kEWLV`DYgVAh-{ z#nLb;a{QWA+!Q#F$+y-_@(YwCM)J0M#39H%W#BwODz6&aEXAyeU7l)*lh*V7;=<2U zYF?9AR_d5nnN8uKXkpj*eZBFDwB7hI1c|dcsS!WNgh1RZwDT-x;e=nU7w#Heu^1Jd zvsEPn7{qQ_0eZ#;}D{aYCmpeHE{cFqz^q6EBwAzWhez*oU1s0y_$b`Vpy}z z`FN(cm3P-?zLVr^{+4jo((f$+cb&e~O>Zi)y7{e*=1E@Jo1w-mbG{vb?k>S%k^>_? zY-49U-mcD`G$C+&?4dO2J&93Bb15Ol!l>ZWnMIf0a>`J$=6&eFc^ZFn{jKCQuF+ga zGNrf#N%V5ulP!ayu6$bzOvv*2#VI8CV1XJc<8t3o%MJ4^7Em`lg>Af%>9vewzBLvB5?6cN6c)^)jE*7EhWHjmK=W;>Fr$ zu$>P-UD7dpUxtTY{U@GwWWlm0qg9)G@$hbZY`UR!Qqa*O5~uzW+)75(moATP?iz$y$j-zqK?6$qo`aTnX~bR{*UOt7 zM)!-XSyjm1W5{dhm!^=O0kBlQ*-xN!gYw(0b1|^sSZ~c6SKlS&wV@l6eeJbbvKi>E zcir1oG1|Otk4u*Bgmxr<>%`&{A|9=2cwA5scQ_b~B=xQvAbYP`|L!L`A%sBRK3rdu z?5qA^a21`RnzVlv%u1S8({*ff2 zyt3bu1%I@)cai^fyyezs&Hv;7pB;cL;x6aQh9i3`Ck7I@pXdIER?amzg)C<~l9e1J zseH~A*?gZXS-$LN-7y9YIuhE34^GWUKcKDr0aNVBQ^WGK%v%$i8eBH@6Na) zJ8M&GD}X(*1?&mMt0}pP&F=9M?o72GM)elUk&-`cTT=RRV%qo`I{VtP?Mm2CC4Vfj zw@NZ4I1N&BQ!Iac8lg*0|lhG2ha(Y!!Meea8 zv`L${+=Of!Ol&J=L_O^HRd$uq)eQtj3xxR6(t#=6DAiSEXcmNQ5KVRY}@a`L=kG=m9CZS>3|!yA%f4aqaRw zYe4DZEk_mZ-j@Zw!8ekzGRe?;>uNXm1*)Zp_f~j=Ph~Rh7gBQ`FM8W z#SSMuMA{--x-E+H{FTAR^GB`bYdYfAuU{!cJ{;?Wrm)EK!zr*jnU|^&7h@;Rbf11F z>W;n~4%p^!<5d!<4G~*x7@R43pX9B<=4(Wti&N)4CMav=vESS5<&Q%iRf#1HMW2e4 z->lw@u0CIC37tF;qs5#O5M2fKOWX-Pe>bGo5~TB-T+Pqy)#*?!7RojRt;Gky?WNf6 zFG}*tJ_DS(BratUU79fpyHE<3^VW6R=|DlGATE}S(|g4}+5C98q-Ij2dB{*Q5UH?U z1%TqgywL*;(Buc;gYS_}37va~n+lbPK|q9AnFi4oW)b$O+E>R{s-_4o0Zbq;i=Ulv z4w+PaJEwX<1Z@RIT|!`Jq{B^xA<)Q0QAkF0gX8mq6VXhbPTS#O7zn7s)3tsglho>b ztSu?mu?X$WtasIf9Cj^dAQ73}LlaxlozxG6K_&sguXUh5RSpH|orQ;Ieqak1<}}81 z9wWR2g#KqpWYB+wJYO{fhIG036O!jKc(Kmx?~s{L$RvWHy@;~C*^1*u#9&UA)K=(N z>(mcX$U+fHsf;4}Gibx`wgyn7BKkL^0f?&|$<8z)Ao}J|!MPr1;tE_qwdEzYSLR35}D9*-kcR?^0Y5l2v z^zRV5R#JmuBptCtolu^bB1i*cj1CkU5E3-RyDxn~#(*gdv49gO(@B4t?fNxG83gH_q;;)gRfs~o`DXspHyX1Ax z202F_w$4Vj?pC(0PKoi5AZeJ=yPa!2KOVyGdTFG%=%`F8i6fC0FOiGXqb($13%E(j z^ld3^PeiXH+DG*xk?4Igt2COY!k?pxvc{^826J>D_nnVsYF_#(IOi(}p&R--3muD~ zdUVG!Csk{VM0L5Co}_nkbZZg{MPlBV(T7ltes@*nZ**`>U3j)ua1dDi0fOh z8(tXMxR}}q9NBIkA#69m6D9wk`$*;GedmFq>+@|OI&~%IRRT%3hgtVG9|81!yrDAS z5Q@C%lr}A4?KTNs%KE3&V_~PaM#S~=?gQuE!-QPeFlHJ?a@r9lj?u}w7ZZ+~bw59shl~{<(*=UZ!OpizX~ddstQsF2Ia8r9 zx=R&XdBu$Gcm>NP|A5z_(mqc@~I17U`3-3JU;BIspoMUN= zfpfe5e@AIwAspT%OHZV8TPwJJo;nwGdmUl<{8{&R(HU~5cS7gejWIvWr$;FE@{Qa= zj<4iSii8hkScy-Cazoi0UtZ%eb{~LvgXbwZs8Nh8^mMFKjBLZREuZ81yc&@5(x9M*-@KG>{=z5Ev?=sO95Czq9dtI9_hx-W#=xa3&xTWQ!DwEY4 z%T)e~h#tUl$fJBQh7OwC`2WyzhIsfvx9^{N?0m4LNt+SQ&&f1T9_~zT3M95t9`<$* zK5#z`)FV*KsabweoOaz2>JK1$AZoku6z12ErULE%08*||r2t-q5_(MJ^=p6Gi`q9a zpyN<2lT<<)GZSM2{UfI2vIMAF6oWTDh%&yRhro3FmQTqq-ps<^G|T4~X^S7Ui+e0& zo0;C)mM0ebazU}o8+CV`UYod7lVlpdW`m$nwm88vy; z-W|fykCB4?%+!Ecj66w{y4LpM0-~4|YkwcjCc^48NFHkX00N#CYz~EnMV{`^ttqBK zgpsfD$P#LbJVliL;1q;uRsg!^TDgKUn%?cYu<#YPpddV$B%vlzh5K{O zP76LEwdcjklE?42t*EIlB2AxS!Ez31Abk#+5?ywL>_1?pi`jp0;gb7muN11}(YI$! zNQOz)f|BcZM8kr2<=t#eCgcJdD0X6d66}D+46fUZsv8wk2yn0X&~`-4D2lEoztta9 ztg!VNy=tR=4_RJ!`ccST$Q>6HhpL8TVfV^xLJTz#Q_wu{R?MLvd2Ma*R{S!r6NgYT z>sB?zU_wbZ9LGAhGw6eCL1z#SR-4HXd2VOsWx%cfEe9Bzysl{Rz~)SH6d4tx?=1Y` zLje^Y^HZJ`?cvf7iL=C(_E4$pTSaAg&_jA{bDTqZ4K&rY4jqtGetElnk#|-6TZdBaF;K^w)4z1QjcwGkko+$sT=F$CeTE*M<&zb4 zzy7h}W9qvVkBa|-cq|24@$rALV%XpyXy^dyIHW$|*3yg2eSG3(4QFV@vfBW@<&!sv zYgOzkU54ds`lKbdRAi%#O&df<&-CVZG`-2SSN82X0EfhpO1wEwHV&U1sHG*q;MIKx zyILy1TEVz?5ZTBE=hRj4H!jPJm3S0^>MNF0u=v_&>^b0jh=nfC!RVaN`g!w#2$_Ne zGfdIiDYXjXaSQX4JJ5Ai;bygMFEI;!8h%d>}y`U^h=FQ@W@tN zM2qq219!LZCevo2?8sIUx3UpV_`>xX6Y*AL6T#~5sC8m=^fl;>_2-7~sFi-|f1?iJ zBo&_hL9Gjp>zhyKyU)U~(!_!aWyeFdl&st>Ro#(SrS(+@uL~|z^ygY(E<_BVYZFU@ z4rR}Tp+~nGL><=>qU~T<4n@Eo#0h2B^j(Tk;MA&ApoaD@)8#oqw!)(EV@FqRr(b3h z_%~Mtvyr^Y2Jkv4Lj=hvLWgQ22}oiM$0#sSpcoWQn&r@>&vpK)t~!+{xGe9A8bK-u z3v8R!3lvA;l)9W}iILFdhq6cNwiItU{$H{ zdTJ7P(i!S6XQ<-%N_W5EHKLl7=nSh-&@K{1{B#k&<|gX(Vj5iKP!P|L_~RfQe%>cD z!D=JBW%do6x>m3{Jy)DVLgOP^Ba6$9X7v{b006h()ngHsgMh{z3pu8{PlF})TRLq|Wt zD$S2mW{x!5Pn-GFXPq1Ve*dCTT@fBr5)JpD$_-zekSI0WnLbX4pOm(JAfXaQPnsN) z7bOosRaO|wMpGfHrIJ85q4%dbn=wHsPwhj(R#8qh$_*D&9CF7BZs7g_(cnh|yc4*T zt7k=hl0&DiuM40tWh|iP!hFxvdM;EL{S_g#l_w>W3YD0tl$0cf{)t)$`%hFN#9(s5 z#afC~1m(Xi(5?kq5cdJ&-GZr(@PsF#`_+h@QV*0w4>g6M%*Bpy8Yq)373Dh0AJzHo zqH|x+$^Y=(hkQrg>)lCDCfcrDhPcIhPLuw6GUg{kLOXToEAwb2}esi5kzlD znLDt{fC_LJBRNq6QU=ZiPfD7&0VyZsi~kp860m<#=1QG0wbmU<*XNKIjfx?YL+9o< z%ljE_GS9;*5^ZS2%^*&gnT|o(_+m3rtM;}`UP|M$uh^;F=q`jhzQl)R2JLt$L2v08 zsc--}cR*-nhfs2MAQbh9b2VtMa9u%5&=$j%OhL6bEkD8lV-`nZV?(d-x-|$B8I5z; zs`_n@+PCEE^(4~o8%IzzeCbgaRfGvCu&a+3IZ0^Rb0DBZxP$`IiZrw*EH7!Nc;l1K z$d*KliIj^`lmoeJo{8nkr1R~{jwXJOCiT=G*cemzHCBDiyN&t5k!^V5UZ*A2C?c~` zU+bU(abY;0`DkD`KMS7MeMi`Z+KH<{!xt%t=bW@jvb`7+kfPbLPjGO53eNdn0p1X# za1j+aa2JkXGORAa6>C3!mx?F`USq7_02e7lvQ#B_u9#*6`7K4#n0B^PdrQ**Jm13d z30|=OR76$tBYCD9YLLR{re3T)(XMvzmi-7GDq<`cY{~Z>hkhdXpHIG!sL`L?`y|Qn zY*`o>cdzfhg4xtP{fQYjwwX71fCvkX3UHqv1r9XGsqZ(yjABP=X=dA%aTMN_2EzfB zk|_g~0_6F@W9@n3=(i+b&CukewlobNFv;*FxKi>sH<&{L!3%+uxZURIVu*P~`VPP` zB)A?I&xw-kTgO^E0|#b)z;>Tod82uf?%FG>J5bS93ikU2DxK}iL3O7{LMCY`cY+xq zr`U^Vro`Ecd`pS77fDZvw;x1+k>bjPBHDG%508jLjs7^q%!@U6#`x|OgRotz5s?y8b_gmV8b#r`cSqQJHqwCRU}Rb1GRg4;AIO`Dt`e3>NP1)+|$_dv|H#{iZ^n1QB?wZAB{lg#)Kk`g%~&Gq7yLxc&q`ztI- znXpD2+MlpIY5Qg0ljvx?{g@>Z717Og${ouEf3XB9LZ+uwM9^3ZHp0{7fJ$&>m3mm_ z2YwW{{Q;S>(+0MQ!k7r!>{ibXe763p$Hq2@poL1)TtQ5V{*J`JT9~{yW+Hk zODc}d1@7Au?kPSBFXJXep%024A-M?HQ^K=>8;Z0hBF=S(oM5j7wCt^FCfe>pk_C_o z1)GPIX(h6B7EKZ9`*CS=UDc8vm^`ZLE+p#q@C~fX5M@UH>?<*TMJeAN(vDfEK%-3c zQNUcU(XVYpftd37P$n}JpWe(SvuTny-=6^pT%s?aH_!{r;Xi><-ZoZmtoe*mz8kk~ zh6(@!3H%j^FD!Zb2HIHrGq7z4?;v42j?Z-g)ufsZ7vtj7JaMRiZw~RBK15qOln|4l zSrEAdNW@R@J*3nI*C~y6ZndB#p#ns2`aEJNJ|IQ2gr7eQ*bg&k4?1=L|F1^zVKVYA z8zJQL`zg%9<@)&ayB9JeRC`FdXy1tO2K$)s?17&BhZIu3p93&|IVSj$S8)SPnLhNC z=yn{$^IHYtFUPQisyp>LavB5}@Ne!)X`*19Fm9kHH9U{#-ifXHD!of$!Y=^IRy?Ws z%>*Zo!W%gJPc2@4KLcX^tz_<}FmTdKGM8)S8Yoym_@xiV5k2O82-ow~n?R)q#o)a+ zxUFX1<=jBy+5>xI52@G)C`TUd6&dlUAzsc+-Ij9?sh52Z$#jwt2-v#n{bbR!-VlIz zy4EpZamY2`7R$W}$Rw6aJ}_5{cE-l&@O8_~FbNp&3DRiRd#js4C^k)MC6Axx(Q8VB zXTPK@_E12_&U}!n49}2xp!l_;uarrad34nS5AnZ7-80mY7D*&wItK+F=3yp4cxg^gC1o3eAHG zk9%WG`f8QI74T}<)%A4tm75{>Gf`h3JyYzHvG-Rk%+?;nZxXX0Ag&x|HV!#zK|g#IQ*O42%7GqK0g$>3M z_p`R{^P2!rfYX<(BOpx4J50%6Fgk#eC&dZ;_v5rOk1UWO3aFj7+SYahfza3hCqh?4 z#@i6Yj{drdZ(+M^Usf#$ekqM)-TlvCp8zG?=X3oQ!3)+w3zJInn19n*3)@`9k6!)m zb1D4Uf6)b*kSu(LA1-Z&KesIaFWcs!!1e69p!$Pg5a|- zsQ`)iZ=kF`^Su~pRS2%BSI6|t-N6i~7k!{eosu>LIw0D-V82DP84-HcQT$mZCxBJR z1i&?ApPu28?k<(m3nT_#(#FVp<9rbXZ9)r{dF0JK6?Z-ZeW4EZ5#Bz%Jh%Mbiqp&~Rg$(h+{Ua3X54|WN+rm|36G5W!^jfB%t(+DotpJqUF_4S@` z;rlcJ?=l=7fOv71QS7nSw;zqqzsL(}UV=SerT#F`*v4(5V2DyfsA=2=o`W;1Jcdr% zjT*7aK-dgwTWx!H1{%8{jnzWt5+AOUxe>p2YB6dk{jsY_6en()n zA{OFq%j8huriQmL=;9`{Rp7P&cajGj5Uq?q&O-@0(^Ae+r9xalh|mR_1URA&H{3+N zx>KFU7~3t?RH2ZE2adq{3586B zL0{jzT15{F5hjJW;{vpKA)()`I3&9#<=iRbGmmj(K?2_6e@l>z!$yh8D=OB>kmiS9j6ITKq6DJ zM4fwAH}N8`Ssu`yp9%3cN>~f~sR5PfpDZwv5`fMeiu~IdM^xxM%vz_sdaPuGaY?*M zGuCFueh)G#N*iiQfhyNuIBf^^VeKOEvYBvUfvO~a6PA)?N=B<9NgX`S@Hc|RalB4z z8J}3cu6WsIf6;IY#yjkm%vbXQx$HJQmA_k#YZhYKaiDP*rBH0~-zp_j37S!O0{jF% zB5BKNRVJr(@n-k_8S}$W`wd#rATKirenFbL0?R)cg8_p6(ny6HS?RBrj+l@PJM#M@ z%=pB(X2k`jP_diX-*M^WB`!_*^#_Uh@@S(LyPsnh_%W_Pxgr0&mQ2tNl)<^9_5!o( z^+5G)s5oL5R$&8}c6|CAIB_q zu^kWYDV%UesYlD=6=Id}4;Ewc?FYN^Rs{hC8hr3;V2F2r2)OSw93+y!^8HPK;t+}( z9ed1yEz1*3R8EGhB*<(uZXsh{n5cxPL`qBu;1c+-Z?70H8Pb%eE(8!a(2f`JeUg}p zUuakE&~TKBGs8S+v?m_5AiT@=&kS$FHu}P36is$FVfKeq`5lsPrhg_4HYE3w5Fkt0 z{9sGony6%#F5EEXFGJSg-}xi~5&jrboD2@+Be{|h$m+@$l{UL7;;0GiC+;puT0}=U z$8uw!OX9aV9 zg1s2<6YN&@a;JcH9_+&3TxPJM-in(d3hUryvm(=lfYYKx$*f-7519U(k3pPLl(V&2 z+)xQme1>LoP+!R^l`ft+`=zHfF>3)sXhQua5-bRK!Z- zU^Rz_K~B$4w0T~wUE_ccegONocAcLna2f;*LnCE|YJ!CN7TZr0cs55|AVefi;T!Nq zWX>E1#H;maAR%H{NKk4{kcb1P!5fs|nGzZv(?px+fJny3&;#)^X6jBuP#9%5aWLw} zI(vC^5rqFDRLGm@ru5iBI;jov)iloLKI!oX ziTEy+VTzmnf2hOue^)1r{D0M1!vocE!F2h)o}vF6%=qBhDbBg%FCbeCZ0NhSNZGc3 zkz%2{z4b}RdinidwKod{#PoW=K|qdS|D#f!lZmslg{|42byiKPn~vYO(7Lxv^jmjL zVVfOf_Nhm@&f(#X}YJ|X>df2F%!Wx z7a_@zACA#~4n%~SmWJbQZl%Qf#ej_|IW(M!TA!cC7yE1b+vPq#yFR^T8mI>{#o?h> zYm;hGLKt;RZ&+I_9E87B8F$^!GR}{Hd#9@5qJwaCO?k0P15`*MmWz$ir`lzbOYKN* z`X)9-Hzl zF9&ua9e*gQ)nFVK9>XUllVb&74yMV)hV$FM1Qe{SVq$gB);R(vA$VcVk;V!2P4p^&aSj49=#RJQg)^% zCQlA^{SiPErc`ACDOWw#_K9hb#mGtoZ9U7|wW!p&O27_B_Ea%`9o{$6J~lxA0a-l6 zn6m>MEMtI%mnU3Ub^PhlEgDNy{Kc6u6es8I?SN!Pj#*bLLOdCNka5I;Wx7k(DNnyr z%P)c^0q%4JH>*0L&e=qGRa;&_rdVE%UD>r8Xe;9m*4TM}z`nx=ECAMoz4j;M#@le5 zra%`bQ`&sau5EyDPU4DpH^3)(1WYE!ed@Pk+8P~T%FB$zElRGE0mjf z)xjPMi*ah<@~}qep?6nIiPwek&{@`&4y7Y0wi_yR@ZQ&tPDI}q>vCM0)TIn{UCd7~ zcxvpKgeBNGys%eam}Lt4INvrI%UtC>SB&@|yG(4z{*bjP(i_`^;7=AjY@umn{z@bA5f@}Ck^UrY>@{^Np=n(eb3V1fsk_3Z9H zh*#P-j%5BE&w_>Dkto!RWRFMA+yq<6kyy*&$* z>R#@}qA}t3kWHguDi~gvD2((AxWvo#Lfvx6XT;B;QG+CgWi0iQ$H>5+N*=?G%*DfB zRmYpdMKL_1v<(!<+63e~kd*3LpjW?CQxVKZ-Lz0~MN9RwjyHhfF1ud|iKEa@jnBn2 zZ{*XTKp!iBDRhpU*v-J0_@v#w5gI4nOK=7A5j5B|Dmrx1EsvfgVrz5(FuG3I*(?I* zISlB$<;|le)^CFBo_xjOvs!yUx;P*pKo=2XSiK#u+uTC_)3IONxlTsFvb(?FKtNFc z<(Mh3%Cxe9q4l5IyPL^@8RG&HT>dvWaP z`oWnCy$*N@pSvc4ji{rZkj4E!Zl|FfZZtD$E|^laswTH(RZx8J@~m{(aMnSOgdHfS zFzk=Qf*Y&lNO3%1p%b9EF(FcqWXGQkJxhxKX{~p{bq|ez5ypvCBay(`<>}f^B4dg6 zuV9W^8n^KXT~{78pc55LWYIEJI2vI(w8A~P#A3#g$P+2GGG%=VSEO~~g*XirZ65MJ z%0R(HMIzZ-A0D;UQ&*jyPUqk@Eq?PJh9Z$FQjTQC3>Pervp-nRJuvDxU+cq?7QOf2 zpfM*lWlOIj%QRO&HYyLek;>4QOsSwd36G9UF9lt#?3<>UZP|5&yqqkvQ}bUesnhWb z;yw+~vK=mlSIS|@uWT{4?D`0Q_u3izr0d7y2FiCQYHOxdWQ0-gw*n@|<3hZJ8z&8BJLAXsoFQYRf!M7$0~e!y1i@L56_Y5~-w?>3T9`Yy z@+mA-gwBhiLgz=bD9vl>%(HAIXA#Xud*HqqzBw`fZffn(o9xNqx0QhpdzrbVK$Q%u z9LHsH=Z)R8xJ?#l*4&<^v9ZnP?X&nX@Jnx_Z0YU%QDd}u(Vq?PiXUqJj!kMNlu)r)<_YXDX_JhUeb(ipV z(Tml~nW!qvcFy2D7c&eZfaAHtz%Qzy03hYp_mY$-Nr>pBL+an zFOwEowr$Y4Bmcs<&I|dryg3K64g-%?o)1;IN0f?{Ib7qJsNBa zEhx;j{a?GhP|=%C1s8}=neq=znWd%c8x`kj3Kk_YT^&fGOBpeY^Pve9ms8FgH(}9M zp$&0zQ5wmsKfn^Oc##RU!u1WtFJ?~N9Ve>$uERs;+kC|n)G&-*?*96;zn(JFS0T=* z`|0^`X@8`K;8h!<2lmwg_3h{vot%;KNM67r*?(IbWGDc{!T5S} z!5!*|q1~t^Pcl{$qO&o^8HA-8PL{vU<`vox$Trpp8@GQ}Y=tFB$F%JY^VO|Woh6kV zwV~ShEb3Y^xr{dw1YgWdf_9HL=uZ5TA;XepGrq||$k-;XtVB4q*E1+~J$9bVIN{1g z=LB-d!(dz1pMTGjMTuy&IA5K={J7R5IXdWVFSI=-PQCu~=77-(UZkaIKb#Y~LRYZN z7)<`4YdNv0N5BX`7JS0Jq(W(3lU6gh*G_^g8{x!2A#HPAl0gVuz)C6dnWXCj0#laUMc6t;MkArSYSny!^YbN_)wPoozIWi_4TnVwblTWeQ7rWKQHx8QKAa_WwM?R(&UmQsAU^)EGQdLQ4dO)WFepUGG`nk)f_VkP}*mO zMl@1ty^CC%3rd;FQf7ZN=2vx6ee3tPE8PrV=EQK`3kYa#+A8Is(;vvSi8{a+_kI9t zBUGzGiLcvkw(gssv%G*D`4MOP%f%_b1iZ>xGui4fv-;yaRAhwg=w>LFc2YCL4MK4_ z$Jsb}MU#rflIEgj(hrr0lQHC7bGFaTOk(baG)*pSMl>DHB*^P7S>Q}$ADh98T+S4D zcv2_8HC*0$js41ISX3CVkHC_>zuT2M?S7U3!<>c#(DrPJIIl&99?E(4<=)QOkBe2* z>s;c0V<@T5T)(=v;jF+P6=$b3g3;0iU_q2~HPVj&-i)>Mfr`w<4zs>GhrupOVDr%A)^FPtsU^2um=CMg2{J*G-#%+l zF{PS?KB8ck8g41u*8B3>0oK|pcAdaD*eh3-cUyn=bfGS9AC}20<$1@4?0C$n&^RD# z3DDcf?M>#$7kbFFsNh11UiA{^@I{gpyIQH;OKx zYj8q>J@&~Yl?N1oPzsiF4hA5xcWlTPD;$xKMU+XnZVDzdFloWy8IU9kMHk&8n7S6s_T$c34JZinvY2s80!%MjCBQ zMFvlhC2GhR+^p9om(n-~mXoY@v_Nij9q2`am~w4#F?9WsGp1X#pQm5T`+GNy4%RV- z>$OJbC-gsav20(Sl@j0w9uzQp{Rn(Fa&dCDvr)IPX0&iNvHA0{R~1 zu`|t~MIYOxCAPZrmB6uCw(x)daI*11s%RCWh?y%bE>H43vA=iVI5S)Iu}vasc4(v( zV>$yZe7-99)MwddYAFZ%`J1OK54+LGmuly$C0;y%!$4d8%2^u9ISMiuGHhm5TBiXJ|c3IxSZ86q&BijoMLB5j>Nfc6J@JJk#F5g zdr=qX7rBYLLt|>XA!+n=A(rO+3)WQ4=IB}axSt=s5#KsW$fp%xQcz_~FObPfU}t*t zrpbNfjET)c)MrnOD5Ib;PJ_RtTl!3@Da)V`Nlk{{_u*M#h~IDB@~sBA0@s}U?(`sI z6i)FM-7t%Il|k8gAnlOQ2^Y^czo}s{`K*Yj`lbz$*7=*AyHHy8&HCEynp^%c;}8@@ zomtdS_AdaJv-WS{h|6D1hUfM_3_B?5j-!U63H)&3yClU8DQ9j4%aeL`lvAp^CEZr; z`(drRW_Pc;u4QyZqPng>Z$tO#sObzJ1bK=wLfK}a^L*?2*xeU~%;pLP-)np(tJ#=4 zl#EO^L-Ts~-RJE$Vk2RgVJKHZnJRl!-806GSMCP@%ZZ4^vnd#BSxz0gayT&C4RZKG zvA=P2Ihi4szvlHV%Hg}*tP#ei?J1tyCLPXSFx^lTdR<3V4p2u5Z09F}>0Y0 zRLovrsu5+XgQIk^xD$H6PX1a&*K)hj^O8+>1T*r0L zj9Vl%(JFE+mlaamRuUzf$lWxINiJiV8JB4Yk!9SIh*kYcX0$EVHP;eykI+ofxQ}~H zS&QFcwKy;H$INS<*ZI7k^E|KD^PKPJ`+dF6BO)g^0Ecl|I$Zf0Xg`ZDoEtDUuvgVi zytnK{{Ddo^7ue94xG+-YXSyia$e;)*0#;aeg3nu$*Yj&t(SL(EqMeFj24&F3;>?o?jnsj&%0b~ zOK~NqKM1Sdrsy<8=%m^SN$bl?lEbhAr9NW<8b~pV-S1cEs5js)2q^Or8c-#2)M8+U zE5Ig+3y*1YXj6@(PE4Q3+~Y!Nc$3tVSDrR!kgRU4bNJjr-}IR3Nk2k-@t&+-Qr+kl zgIIWD!w-@a%4on{cXfG}h6yo&(__rK;F#Yv#c$Dd`KR%Zvx!_T@O;Mp6n)q7+Q~nx zQCU$zp*BU9i*79ApLSwn;w|``A_?^gw$`o8{_(ua6hlPGEA@U)7f!d6Jv!MSbrL6_ z=KWGS?F<1GgcV`x?aNd|Afy=NA%qlT)!z<81+v1eVx_dPgSe`pcg*j3_|a$EiUJ+lGpQM3f++F8FgrM@$7^;i_~r?K^{pNUuM|18#yZw;%zEzB!$Y?l#3 zJiN(?dw&vzPg7(svHW8sV9Wbi$bD8jz=WrdzegVl9)%iBME`1hFE&qvcK(u{Txa+x zDb2*7@{xEUtyE;ZsRng{Wuz5{{Jk)~SvGCrlx-Hx|5wG915r*FpV*0{eCefT)Db5K zgykSYCqDFWmK#poR_O3w8TcH0&C>t*@*L({NF^+* z;-A;y6yxfwx;*J5DtmN>nb2cKs~2mUk)0m@ z==r!5Joqa6@?(<=2J+!=d)O=Qa9RGl*fliXs1i5w z=q{zwG^mf(=RYNPQE}hngoz9q+o1H)7+bl1{|)e*Vy&a@`PnnrcE{;NbHdemoRvh# z6W+w5qnVm-SVFvKqs_E#QT9cdQ!xB()Axxd9PtM}=qk^f)F`X-rY#C*UWOrxh9t;6 zO5~?^1nuCNw@?neqv=DxMVUX-&T_5<;>#BZ<8-`mrun0s_LxA2Fg)|{bv-FIvqKps=G}OiTo|ILNkZc$|9E#@ zvKM}Y=9D@5aWKO=w;kd1U`4^pvrVyBF6`D6zpGG;itlX+8&s|Aolymun3B0Cip$Pu zo8M*(f*a$zbdYQrA=O$R)q%iFCy!>HQJ4!WGPX&rL)4Mg5$BjpExuYioFtes$v|a9 zwwO255&e<5SFgs(Cm;2gOUfvF*iugFW>acNPwR^kIK|09!7>^VYiyvyd?)c+72n@&Ez{1Sx zKv`i;--;EQ=cdxQ0eno}OAmz!U+^9}1IHJLJ*4pObiaRN+piVvC{B&Br5P7Dl4mtN zE&$N)=-T98ctA}CBh*GP=eBA)zJJJI8vxiH2a~~QFTCSLf;ZaFelcYoR?<7!@IG$mT0P!vIP_X4cxwE(Tc6VLB(8?T!0RYMa+Ibo{5o?tL5aE9f9Q$^1FS6VYEwJ+@ zuq*j3o#(^X<^PU+Gi2LYh|QDwF-9E#9IW{Ou`MK7a8zqI;)f^T&}-#N=o~;_DEVDa z=4vCD`p#Z4S-2l7{-wfE!_Ci@u@3_HwadR_ktCNIMpjK;x s(jBorD_e{gR1b{@H}pQyo0izt=+M%P4_ra3t4acJ2A79x{OZ5|1J7kxwEzGB literal 0 HcmV?d00001 diff --git a/representation-manager/client/src/main/scala/com/twitter/representation_manager/StoreBuilder.scala b/representation-manager/client/src/main/scala/com/twitter/representation_manager/StoreBuilder.scala deleted file mode 100644 index 2314a8254..000000000 --- a/representation-manager/client/src/main/scala/com/twitter/representation_manager/StoreBuilder.scala +++ /dev/null @@ -1,208 +0,0 @@ -package com.twitter.representation_manager - -import com.twitter.finagle.memcached.{Client => MemcachedClient} -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.store.strato.StratoFetchableStore -import com.twitter.hermit.store.common.ObservedCachedReadableStore -import com.twitter.hermit.store.common.ObservedReadableStore -import com.twitter.representation_manager.config.ClientConfig -import com.twitter.representation_manager.config.DisabledInMemoryCacheParams -import com.twitter.representation_manager.config.EnabledInMemoryCacheParams -import com.twitter.representation_manager.thriftscala.SimClustersEmbeddingView -import com.twitter.simclusters_v2.common.SimClustersEmbedding -import com.twitter.simclusters_v2.thriftscala.InternalId -import com.twitter.simclusters_v2.thriftscala.LocaleEntityId -import com.twitter.simclusters_v2.thriftscala.SimClustersEmbeddingId -import com.twitter.simclusters_v2.thriftscala.TopicId -import com.twitter.simclusters_v2.thriftscala.{SimClustersEmbedding => ThriftSimClustersEmbedding} -import com.twitter.storehaus.ReadableStore -import com.twitter.strato.client.{Client => StratoClient} -import com.twitter.strato.thrift.ScroogeConvImplicits._ - -/** - * This is the class that offers features to build readable stores for a given - * SimClustersEmbeddingView (i.e. embeddingType and modelVersion). It applies ClientConfig - * for a particular service and build ReadableStores which implement that config. - */ -class StoreBuilder( - clientConfig: ClientConfig, - stratoClient: StratoClient, - memCachedClient: MemcachedClient, - globalStats: StatsReceiver, -) { - private val stats = - globalStats.scope("representation_manager_client").scope(this.getClass.getSimpleName) - - // Column consts - private val ColPathPrefix = "recommendations/representation_manager/" - private val SimclustersTweetColPath = ColPathPrefix + "simClustersEmbedding.Tweet" - private val SimclustersUserColPath = ColPathPrefix + "simClustersEmbedding.User" - private val SimclustersTopicIdColPath = ColPathPrefix + "simClustersEmbedding.TopicId" - private val SimclustersLocaleEntityIdColPath = - ColPathPrefix + "simClustersEmbedding.LocaleEntityId" - - def buildSimclustersTweetEmbeddingStore( - embeddingColumnView: SimClustersEmbeddingView - ): ReadableStore[Long, SimClustersEmbedding] = { - val rawStore = StratoFetchableStore - .withView[Long, SimClustersEmbeddingView, ThriftSimClustersEmbedding]( - stratoClient, - SimclustersTweetColPath, - embeddingColumnView) - .mapValues(SimClustersEmbedding(_)) - - addCacheLayer(rawStore, embeddingColumnView) - } - - def buildSimclustersUserEmbeddingStore( - embeddingColumnView: SimClustersEmbeddingView - ): ReadableStore[Long, SimClustersEmbedding] = { - val rawStore = StratoFetchableStore - .withView[Long, SimClustersEmbeddingView, ThriftSimClustersEmbedding]( - stratoClient, - SimclustersUserColPath, - embeddingColumnView) - .mapValues(SimClustersEmbedding(_)) - - addCacheLayer(rawStore, embeddingColumnView) - } - - def buildSimclustersTopicIdEmbeddingStore( - embeddingColumnView: SimClustersEmbeddingView - ): ReadableStore[TopicId, SimClustersEmbedding] = { - val rawStore = StratoFetchableStore - .withView[TopicId, SimClustersEmbeddingView, ThriftSimClustersEmbedding]( - stratoClient, - SimclustersTopicIdColPath, - embeddingColumnView) - .mapValues(SimClustersEmbedding(_)) - - addCacheLayer(rawStore, embeddingColumnView) - } - - def buildSimclustersLocaleEntityIdEmbeddingStore( - embeddingColumnView: SimClustersEmbeddingView - ): ReadableStore[LocaleEntityId, SimClustersEmbedding] = { - val rawStore = StratoFetchableStore - .withView[LocaleEntityId, SimClustersEmbeddingView, ThriftSimClustersEmbedding]( - stratoClient, - SimclustersLocaleEntityIdColPath, - embeddingColumnView) - .mapValues(SimClustersEmbedding(_)) - - addCacheLayer(rawStore, embeddingColumnView) - } - - def buildSimclustersTweetEmbeddingStoreWithEmbeddingIdAsKey( - embeddingColumnView: SimClustersEmbeddingView - ): ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] = { - val rawStore = StratoFetchableStore - .withView[Long, SimClustersEmbeddingView, ThriftSimClustersEmbedding]( - stratoClient, - SimclustersTweetColPath, - embeddingColumnView) - .mapValues(SimClustersEmbedding(_)) - val embeddingIdAsKeyStore = rawStore.composeKeyMapping[SimClustersEmbeddingId] { - case SimClustersEmbeddingId(_, _, InternalId.TweetId(tweetId)) => - tweetId - } - - addCacheLayer(embeddingIdAsKeyStore, embeddingColumnView) - } - - def buildSimclustersUserEmbeddingStoreWithEmbeddingIdAsKey( - embeddingColumnView: SimClustersEmbeddingView - ): ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] = { - val rawStore = StratoFetchableStore - .withView[Long, SimClustersEmbeddingView, ThriftSimClustersEmbedding]( - stratoClient, - SimclustersUserColPath, - embeddingColumnView) - .mapValues(SimClustersEmbedding(_)) - val embeddingIdAsKeyStore = rawStore.composeKeyMapping[SimClustersEmbeddingId] { - case SimClustersEmbeddingId(_, _, InternalId.UserId(userId)) => - userId - } - - addCacheLayer(embeddingIdAsKeyStore, embeddingColumnView) - } - - def buildSimclustersTopicEmbeddingStoreWithEmbeddingIdAsKey( - embeddingColumnView: SimClustersEmbeddingView - ): ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] = { - val rawStore = StratoFetchableStore - .withView[TopicId, SimClustersEmbeddingView, ThriftSimClustersEmbedding]( - stratoClient, - SimclustersTopicIdColPath, - embeddingColumnView) - .mapValues(SimClustersEmbedding(_)) - val embeddingIdAsKeyStore = rawStore.composeKeyMapping[SimClustersEmbeddingId] { - case SimClustersEmbeddingId(_, _, InternalId.TopicId(topicId)) => - topicId - } - - addCacheLayer(embeddingIdAsKeyStore, embeddingColumnView) - } - - def buildSimclustersTopicIdEmbeddingStoreWithEmbeddingIdAsKey( - embeddingColumnView: SimClustersEmbeddingView - ): ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] = { - val rawStore = StratoFetchableStore - .withView[TopicId, SimClustersEmbeddingView, ThriftSimClustersEmbedding]( - stratoClient, - SimclustersTopicIdColPath, - embeddingColumnView) - .mapValues(SimClustersEmbedding(_)) - val embeddingIdAsKeyStore = rawStore.composeKeyMapping[SimClustersEmbeddingId] { - case SimClustersEmbeddingId(_, _, InternalId.TopicId(topicId)) => - topicId - } - - addCacheLayer(embeddingIdAsKeyStore, embeddingColumnView) - } - - def buildSimclustersLocaleEntityIdEmbeddingStoreWithEmbeddingIdAsKey( - embeddingColumnView: SimClustersEmbeddingView - ): ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] = { - val rawStore = StratoFetchableStore - .withView[LocaleEntityId, SimClustersEmbeddingView, ThriftSimClustersEmbedding]( - stratoClient, - SimclustersLocaleEntityIdColPath, - embeddingColumnView) - .mapValues(SimClustersEmbedding(_)) - val embeddingIdAsKeyStore = rawStore.composeKeyMapping[SimClustersEmbeddingId] { - case SimClustersEmbeddingId(_, _, InternalId.LocaleEntityId(localeEntityId)) => - localeEntityId - } - - addCacheLayer(embeddingIdAsKeyStore, embeddingColumnView) - } - - private def addCacheLayer[K]( - rawStore: ReadableStore[K, SimClustersEmbedding], - embeddingColumnView: SimClustersEmbeddingView, - ): ReadableStore[K, SimClustersEmbedding] = { - // Add in-memory caching based on ClientConfig - val inMemCacheParams = clientConfig.inMemoryCacheConfig - .getCacheSetup(embeddingColumnView.embeddingType, embeddingColumnView.modelVersion) - - val statsPerStore = stats - .scope(embeddingColumnView.embeddingType.name).scope(embeddingColumnView.modelVersion.name) - - inMemCacheParams match { - case DisabledInMemoryCacheParams => - ObservedReadableStore( - store = rawStore - )(statsPerStore) - case EnabledInMemoryCacheParams(ttl, maxKeys, cacheName) => - ObservedCachedReadableStore.from[K, SimClustersEmbedding]( - rawStore, - ttl = ttl, - maxKeys = maxKeys, - cacheName = cacheName, - windowSize = 10000L - )(statsPerStore) - } - } - -} diff --git a/representation-manager/client/src/main/scala/com/twitter/representation_manager/config/BUILD b/representation-manager/client/src/main/scala/com/twitter/representation_manager/config/BUILD deleted file mode 100644 index 8418563d5..000000000 --- a/representation-manager/client/src/main/scala/com/twitter/representation_manager/config/BUILD +++ /dev/null @@ -1,12 +0,0 @@ -scala_library( - compiler_option_sets = ["fatal_warnings"], - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - "finatra/inject/inject-thrift-client", - "representation-manager/server/src/main/scala/com/twitter/representation_manager/common", - "representation-manager/server/src/main/thrift:thrift-scala", - "src/thrift/com/twitter/simclusters_v2:simclusters_v2-thrift-scala", - "strato/src/main/scala/com/twitter/strato/client", - ], -) diff --git a/representation-manager/client/src/main/scala/com/twitter/representation_manager/config/BUILD.docx b/representation-manager/client/src/main/scala/com/twitter/representation_manager/config/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..ac4787361c4692477a4d20801dc35417b1012190 GIT binary patch literal 36850 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 m9WQkK=J_5Dx&-<<3(8 literal 0 HcmV?d00001 diff --git a/representation-manager/client/src/main/scala/com/twitter/representation_manager/config/ClientConfig.docx b/representation-manager/client/src/main/scala/com/twitter/representation_manager/config/ClientConfig.docx new file mode 100644 index 0000000000000000000000000000000000000000..621c0b5f73a6bf8b7a19f1fc0c49eec5e4376a74 GIT binary patch literal 37136 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 literal 0 HcmV?d00001 diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/topic/LocaleEntityIdSimClustersEmbeddingCol.docx b/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/topic/LocaleEntityIdSimClustersEmbeddingCol.docx new file mode 100644 index 0000000000000000000000000000000000000000..4e0c44448aeec5ddbb27888bb400ac10b31bfc95 GIT binary patch literal 37622 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 X9R_%_0&@^3R|zsC0<%YbABYD4?8ak{ literal 0 HcmV?d00001 diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/topic/LocaleEntityIdSimClustersEmbeddingCol.scala b/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/topic/LocaleEntityIdSimClustersEmbeddingCol.scala deleted file mode 100644 index 7b7952300..000000000 --- a/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/topic/LocaleEntityIdSimClustersEmbeddingCol.scala +++ /dev/null @@ -1,77 +0,0 @@ -package com.twitter.representation_manager.columns.topic - -import com.twitter.representation_manager.columns.ColumnConfigBase -import com.twitter.representation_manager.store.TopicSimClustersEmbeddingStore -import com.twitter.representation_manager.thriftscala.SimClustersEmbeddingView -import com.twitter.simclusters_v2.thriftscala.InternalId -import com.twitter.simclusters_v2.thriftscala.SimClustersEmbedding -import com.twitter.simclusters_v2.thriftscala.SimClustersEmbeddingId -import com.twitter.simclusters_v2.thriftscala.LocaleEntityId -import com.twitter.stitch -import com.twitter.stitch.Stitch -import com.twitter.stitch.storehaus.StitchOfReadableStore -import com.twitter.strato.catalog.OpMetadata -import com.twitter.strato.config.AnyOf -import com.twitter.strato.config.ContactInfo -import com.twitter.strato.config.FromColumns -import com.twitter.strato.config.Policy -import com.twitter.strato.config.Prefix -import com.twitter.strato.data.Conv -import com.twitter.strato.data.Description.PlainText -import com.twitter.strato.data.Lifecycle -import com.twitter.strato.fed._ -import com.twitter.strato.thrift.ScroogeConv -import javax.inject.Inject - -class LocaleEntityIdSimClustersEmbeddingCol @Inject() ( - embeddingStore: TopicSimClustersEmbeddingStore) - extends StratoFed.Column( - "recommendations/representation_manager/simClustersEmbedding.LocaleEntityId") - with StratoFed.Fetch.Stitch { - - private val storeStitch: SimClustersEmbeddingId => Stitch[SimClustersEmbedding] = - StitchOfReadableStore(embeddingStore.topicSimClustersEmbeddingStore.mapValues(_.toThrift)) - - val colPermissions: Seq[com.twitter.strato.config.Policy] = - ColumnConfigBase.recosPermissions ++ ColumnConfigBase.externalPermissions :+ FromColumns( - Set( - Prefix("ml/featureStore/simClusters"), - )) - - override val policy: Policy = AnyOf({ - colPermissions - }) - - override type Key = LocaleEntityId - override type View = SimClustersEmbeddingView - override type Value = SimClustersEmbedding - - override val keyConv: Conv[Key] = ScroogeConv.fromStruct[LocaleEntityId] - override val viewConv: Conv[View] = ScroogeConv.fromStruct[SimClustersEmbeddingView] - override val valueConv: Conv[Value] = ScroogeConv.fromStruct[SimClustersEmbedding] - - override val contactInfo: ContactInfo = ColumnConfigBase.contactInfo - - override val metadata: OpMetadata = OpMetadata( - lifecycle = Some(Lifecycle.Production), - description = Some( - PlainText( - "The Topic SimClusters Embedding Endpoint in Representation Management Service with LocaleEntityId." + - " TDD: http://go/rms-tdd")) - ) - - override def fetch(key: Key, view: View): Stitch[Result[Value]] = { - val embeddingId = SimClustersEmbeddingId( - view.embeddingType, - view.modelVersion, - InternalId.LocaleEntityId(key) - ) - - storeStitch(embeddingId) - .map(embedding => found(embedding)) - .handle { - case stitch.NotFound => missing - } - } - -} diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/topic/TopicIdSimClustersEmbeddingCol.docx b/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/topic/TopicIdSimClustersEmbeddingCol.docx new file mode 100644 index 0000000000000000000000000000000000000000..edc941a18a981393e4c29065852538582fc8c9ea GIT binary patch literal 37604 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 HABYD47PM7( literal 0 HcmV?d00001 diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/topic/TopicIdSimClustersEmbeddingCol.scala b/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/topic/TopicIdSimClustersEmbeddingCol.scala deleted file mode 100644 index 4afddbb4c..000000000 --- a/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/topic/TopicIdSimClustersEmbeddingCol.scala +++ /dev/null @@ -1,74 +0,0 @@ -package com.twitter.representation_manager.columns.topic - -import com.twitter.representation_manager.columns.ColumnConfigBase -import com.twitter.representation_manager.store.TopicSimClustersEmbeddingStore -import com.twitter.representation_manager.thriftscala.SimClustersEmbeddingView -import com.twitter.simclusters_v2.thriftscala.InternalId -import com.twitter.simclusters_v2.thriftscala.SimClustersEmbedding -import com.twitter.simclusters_v2.thriftscala.SimClustersEmbeddingId -import com.twitter.simclusters_v2.thriftscala.TopicId -import com.twitter.stitch -import com.twitter.stitch.Stitch -import com.twitter.stitch.storehaus.StitchOfReadableStore -import com.twitter.strato.catalog.OpMetadata -import com.twitter.strato.config.AnyOf -import com.twitter.strato.config.ContactInfo -import com.twitter.strato.config.FromColumns -import com.twitter.strato.config.Policy -import com.twitter.strato.config.Prefix -import com.twitter.strato.data.Conv -import com.twitter.strato.data.Description.PlainText -import com.twitter.strato.data.Lifecycle -import com.twitter.strato.fed._ -import com.twitter.strato.thrift.ScroogeConv -import javax.inject.Inject - -class TopicIdSimClustersEmbeddingCol @Inject() (embeddingStore: TopicSimClustersEmbeddingStore) - extends StratoFed.Column("recommendations/representation_manager/simClustersEmbedding.TopicId") - with StratoFed.Fetch.Stitch { - - private val storeStitch: SimClustersEmbeddingId => Stitch[SimClustersEmbedding] = - StitchOfReadableStore(embeddingStore.topicSimClustersEmbeddingStore.mapValues(_.toThrift)) - - val colPermissions: Seq[com.twitter.strato.config.Policy] = - ColumnConfigBase.recosPermissions ++ ColumnConfigBase.externalPermissions :+ FromColumns( - Set( - Prefix("ml/featureStore/simClusters"), - )) - - override val policy: Policy = AnyOf({ - colPermissions - }) - - override type Key = TopicId - override type View = SimClustersEmbeddingView - override type Value = SimClustersEmbedding - - override val keyConv: Conv[Key] = ScroogeConv.fromStruct[TopicId] - override val viewConv: Conv[View] = ScroogeConv.fromStruct[SimClustersEmbeddingView] - override val valueConv: Conv[Value] = ScroogeConv.fromStruct[SimClustersEmbedding] - - override val contactInfo: ContactInfo = ColumnConfigBase.contactInfo - - override val metadata: OpMetadata = OpMetadata( - lifecycle = Some(Lifecycle.Production), - description = Some(PlainText( - "The Topic SimClusters Embedding Endpoint in Representation Management Service with TopicId." + - " TDD: http://go/rms-tdd")) - ) - - override def fetch(key: Key, view: View): Stitch[Result[Value]] = { - val embeddingId = SimClustersEmbeddingId( - view.embeddingType, - view.modelVersion, - InternalId.TopicId(key) - ) - - storeStitch(embeddingId) - .map(embedding => found(embedding)) - .handle { - case stitch.NotFound => missing - } - } - -} diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/tweet/BUILD b/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/tweet/BUILD deleted file mode 100644 index 26022ebe5..000000000 --- a/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/tweet/BUILD +++ /dev/null @@ -1,14 +0,0 @@ -scala_library( - compiler_option_sets = ["fatal_warnings"], - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - "finatra/inject/inject-core/src/main/scala", - "representation-manager/server/src/main/scala/com/twitter/representation_manager/columns", - "representation-manager/server/src/main/scala/com/twitter/representation_manager/modules", - "representation-manager/server/src/main/scala/com/twitter/representation_manager/store", - "representation-manager/server/src/main/thrift:thrift-scala", - "strato/src/main/scala/com/twitter/strato/fed", - "strato/src/main/scala/com/twitter/strato/fed/server", - ], -) diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/tweet/BUILD.docx b/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/tweet/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..79349ec24501c35e651288118a9b10758eef94a8 GIT binary patch literal 36849 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 literal 0 HcmV?d00001 diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/tweet/TweetSimClustersEmbeddingCol.docx b/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/tweet/TweetSimClustersEmbeddingCol.docx new file mode 100644 index 0000000000000000000000000000000000000000..75317f336577fae9a9fc0cd38294979b348a2af9 GIT binary patch literal 37606 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 L!0eIV2jT$$S*ktn literal 0 HcmV?d00001 diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/tweet/TweetSimClustersEmbeddingCol.scala b/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/tweet/TweetSimClustersEmbeddingCol.scala deleted file mode 100644 index 15cd4247c..000000000 --- a/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/tweet/TweetSimClustersEmbeddingCol.scala +++ /dev/null @@ -1,73 +0,0 @@ -package com.twitter.representation_manager.columns.tweet - -import com.twitter.representation_manager.columns.ColumnConfigBase -import com.twitter.representation_manager.store.TweetSimClustersEmbeddingStore -import com.twitter.representation_manager.thriftscala.SimClustersEmbeddingView -import com.twitter.simclusters_v2.thriftscala.InternalId -import com.twitter.simclusters_v2.thriftscala.SimClustersEmbedding -import com.twitter.simclusters_v2.thriftscala.SimClustersEmbeddingId -import com.twitter.stitch -import com.twitter.stitch.Stitch -import com.twitter.stitch.storehaus.StitchOfReadableStore -import com.twitter.strato.catalog.OpMetadata -import com.twitter.strato.config.AnyOf -import com.twitter.strato.config.ContactInfo -import com.twitter.strato.config.FromColumns -import com.twitter.strato.config.Policy -import com.twitter.strato.config.Prefix -import com.twitter.strato.data.Conv -import com.twitter.strato.data.Description.PlainText -import com.twitter.strato.data.Lifecycle -import com.twitter.strato.fed._ -import com.twitter.strato.thrift.ScroogeConv -import javax.inject.Inject - -class TweetSimClustersEmbeddingCol @Inject() (embeddingStore: TweetSimClustersEmbeddingStore) - extends StratoFed.Column("recommendations/representation_manager/simClustersEmbedding.Tweet") - with StratoFed.Fetch.Stitch { - - private val storeStitch: SimClustersEmbeddingId => Stitch[SimClustersEmbedding] = - StitchOfReadableStore(embeddingStore.tweetSimClustersEmbeddingStore.mapValues(_.toThrift)) - - val colPermissions: Seq[com.twitter.strato.config.Policy] = - ColumnConfigBase.recosPermissions ++ ColumnConfigBase.externalPermissions :+ FromColumns( - Set( - Prefix("ml/featureStore/simClusters"), - )) - - override val policy: Policy = AnyOf({ - colPermissions - }) - - override type Key = Long // TweetId - override type View = SimClustersEmbeddingView - override type Value = SimClustersEmbedding - - override val keyConv: Conv[Key] = Conv.long - override val viewConv: Conv[View] = ScroogeConv.fromStruct[SimClustersEmbeddingView] - override val valueConv: Conv[Value] = ScroogeConv.fromStruct[SimClustersEmbedding] - - override val contactInfo: ContactInfo = ColumnConfigBase.contactInfo - - override val metadata: OpMetadata = OpMetadata( - lifecycle = Some(Lifecycle.Production), - description = Some( - PlainText("The Tweet SimClusters Embedding Endpoint in Representation Management Service." + - " TDD: http://go/rms-tdd")) - ) - - override def fetch(key: Key, view: View): Stitch[Result[Value]] = { - val embeddingId = SimClustersEmbeddingId( - view.embeddingType, - view.modelVersion, - InternalId.TweetId(key) - ) - - storeStitch(embeddingId) - .map(embedding => found(embedding)) - .handle { - case stitch.NotFound => missing - } - } - -} diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/user/BUILD b/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/user/BUILD deleted file mode 100644 index 26022ebe5..000000000 --- a/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/user/BUILD +++ /dev/null @@ -1,14 +0,0 @@ -scala_library( - compiler_option_sets = ["fatal_warnings"], - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - "finatra/inject/inject-core/src/main/scala", - "representation-manager/server/src/main/scala/com/twitter/representation_manager/columns", - "representation-manager/server/src/main/scala/com/twitter/representation_manager/modules", - "representation-manager/server/src/main/scala/com/twitter/representation_manager/store", - "representation-manager/server/src/main/thrift:thrift-scala", - "strato/src/main/scala/com/twitter/strato/fed", - "strato/src/main/scala/com/twitter/strato/fed/server", - ], -) diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/user/BUILD.docx b/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/user/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..79349ec24501c35e651288118a9b10758eef94a8 GIT binary patch literal 36849 zcmagEWmp}_wm*!!dvJGmcL)S`cMH0a;IQ!k!9BRUI|O&P;BG+z!QKBmGjqM^Vth_GK(;&w*)G7*^VQvBV!!CWOe!tug((7i9E!^-8g@^ z#*A_(40BvY>YXp~YMoH0PZPDCgye~VL55a7Ib^X<{(2tssU^>zR2-S?qRcMQ+yG2X zONP(8DQ)S8*L=?LEfc)x}lpKC~eHg1UTcd2!oV5oPt(r~I< z?I}d@7(@i1eg9$K&Fns=#c>2vR~mV(rn`Y*6Y}E(U>i(bGkXY`rS;|@kaN7M$?&mV zS0`HC*ZL?(2H)#W0wv?PJCKg1p3EQ-CXKy4rqU<)uJ7)St}upD_+cr`@NRBa!G2uB ze;D;Mmxf5KYMWS0@(2eX&zsYc1i9}`PO#oGpQNI1yQGm2ZGdRM_x%OR)4mDx3f?_Z zK-Hbhb4Ssh>uO-0nLJ}Mo!(0lQ2}~aoXL~-BVuv+J4xZ5=f&dnJ(1Bn^1LT31w%09 ze^k+vT2AyHRJ{!dFfc^WUn6G=I~Nw_-`C3ci4Tx$X#QuyQo~fm4ow=81N~+Yc4-ke6eyw=)OXyLnxw)E8<+!nboHk*VpZajM)dYFC?&zA3Fy~|pJ=sQ zeVJwfFaT-!Cay2Vm90PQ+`rt5G<}jW_7^>hbwpQ7RWxVA#SGwV@%tvvj2~0% zV?~p?^O2fU&REhrx|_Q()-IQFxuF zu^G}VBtC>BH0~_G{0pKE_Uo!C&e~I!6g^*MQgH8C_v7p(wH3eFXm^APJ`zGr7Nl%C zn}Pg77(YdS9T(@^=Si~67S*EMLvb~9h2_thqVcrfD3D3_u;_jU1Q3TOP{h}xmo^s> zgJqzXaA+LU_`Sxgb$>s+n(nSvb z^?txubw9&`wg!fs@Wkx_8VMDgLsTVI)xAZNee27Ki?h?_lpCZ$IZ|^d5=!#B+?kV- z3emt^xHUbu4M2Zk?aomA}X*^A?U8%$KGyUYZmWV8(hb%86_7}CwUOT0e!UK0GXF4wE8 zxW}Nn*g=7Tq5ZusCXSAOltq2aVU-oF{fPm};L{gtSTPm6_`n6R8HsiLn)r<7xl!^D zaZs&nJ3!xuFl@fhEH~i-^#V@~qfd)smaq+qA2qPY9`c5joz@W=tG^8GuTC70yFise zmtt!Upc^#acSeL3aiqWa>$qJkL8{vQ$k$tcW;h#l9P~8q#;aRIH1Nn%dKgb!=!N) zND0`CJI=>HLfIgCf4ZqN|B0SsWv_=TI7=aVOw8zbIg51PkMIN6tYAwNIDI4SSe|)G zy9$Q;rQx`qRIRR5E9^4rB(_UiY$%713-U#RHge=UMUssPpywJrTRULQDYoUdzEmI< zMeY^_>QO*^=^00oenkRSmnb%&DHYSNb`)^+i-#8}q4E+^8~n@VkEi|28q7pdYr^Gk z=#;*bGs04}V>RU;c9<*3gsKK_>`;nN?k2;Syzev$n1#t83x7I^_p z)vTFSa!z7iE?BPQldXv-u!^R3LICU1q6?z^E6#tj60*!Wl4 z?;CdjtruAqR-6bV7rKut-Z@3?!oKdBG^vzhUl0hu0$F7%W$=?1%Am+3KIodbsIui1 z#)-(c4Q#4JEjcl}atWy#ot5(E_%PW2@5G7CQz-?^-U(_9M6d)ASU6@fV(P zcZ$IoVul^k1>z@V4}Pm5bMLEp7P$#G=ZHRM@5((@`{^ZK}3{D(%pd7xNWSmS#e9$DvejJ*{W6wvCIlqrM{5hiRdD$kCj&} z0$flof(LfFwLp)v>jk}^gSQW1%sc(G^8PvB=af70wmJQWun7lCv*h*^FV>W813B-} z_m@nCt7~!4O5y#0g7nDHQvD}(U-{en7zE*C1hNODF!v!uR6Cj5GKdAHBYW8TAah`{{5txvI z@_yIj*O{xvns6YF@b{e_V=TTgjK^&1>Gx4RxWD#mF*>PsReX+mv{hCn&`NZ5><2UU z^;Y6{A|cXe145??8}#~2tzT*~QATsXt=nKG2P3u*4t49tO*q7?#xacf2;bWWrrF&) zT;&FGzp2e`{&TK4_!D5TgBH;-&>~6*T15YtD}QbQ{yt;=+zup)DFw0OeLj0d=nYB0 zDsqT;_bZROjb6IC&?iKCCH_`oZ&PpGoKa#YVE2yOH=D+OcH&lTVM73qq2WUyZzKdN z)@+Ef1%{v%YRYkUy^MyKZ6zr@e@zc}$C9A9!puo+(#MK}4~YuT2(_(L{dEYGjkyk@ zt=Lsj1&7jV@t^B>bRl#kXX3w_gl1=b@@gZ$n5b&G?5MEa5?N1k>Df}O*9`1MhpJtg zH#VT)qB7n&JD9$?Hz)Lafi*<1Y?vpMDB25nR?v^aFoM#&%Yf|TxHq;Q-L+gW1Cw;` zl1PzYFRaN>+lIU>=7zQgOzK5XiEdR`PR5^}71Pd6Lp$0S<>c4XB z^2yWA!sYj>1lsB*>`2%7c6H_D8$JK9j|~PJnsfk*cOx|M?#QY=<51w3{WU#}`!VLk z$d8Illte>SL-Rvfe4RjV7LGFAo>pdpy2Z;&wqLv58PJF%I{oEzou{u0xwBR8O!KLD z;`FKw0DQso5qQ`?_0T=dN?v_&csWfMSsVhqKE%8|JT0C@7mG9>?;6}ctY5UH%(p!q z%>KM-3k}^p@_eZie6@f3wh_VtTp=+`EF!Ya%oi3}_jYYvuj~CZzdGjS{zc@?Q5(>Qe%H2pwSVLB?xcM9qtRVx@nRpaQJA>T z3b>p#2pHqxKtkL%eO9y*NE~AKSI5f57{I4C}ERY}S!| z5}p2Zo^*5Rkw(Nbb{zq9X7YOB^P;#)DBq=X_3ZRqSrd^IkMRp(dF@>5Y-_FwLM9c(hbaA?|b9TxUVu1b&qw@sY_oA$#kue&{mosUDlBPOg9cq#FuE zPou*B)CS*izJcGCA_DY`P;c`QIKd>V4v)RAL4__1J;mUk3av*Ct*#PzsWI}^5%J{> zVQFuRu?WHSdwD(Rv-E>|xn6(yl&1e&16*$36cnm-KRXRg;W^FXQ96F}H9P|fRb@LY zzG3!vCP%icbe$+3ti}L#?ti@1>UK$I5p;gjljeS)d+g@+x?`iFdA(oVcjGxgzJCzVzF?do#Enmsx@p zc2Hb(wSd50LozA8|)#^Uzt=*t%Ve08*_R;aq>19av_DbaBOgKYD zy3t^M?!0gR>gwldpGyWOLr5!Op;pve-@Zo~amE#`MiAoi^xi#{-#N*mQhIYrgbmbm zm@UJXnldR~QS>-)Nn(=%_Rj8?w(biGf{3*@Z3~}(r|gnQfL07krgeL4^OulCZGJc0 zr<2$7pY{wH#Dm|_eXz-H;l7Lc5E;?RMix@=CJ3KdmTL^JNj|HS#e9%aktxAYP2?yK zX57PKAd_QS`~VlP_^qqLZ~dT*dApyZNOQ|Eum7#@DBH>kfgc zv;KnRFEwl&o3cyV_B#n^1>BGy;8fEQsGxcdB%R2P67qu?8+BC0V^==Wk-=GQV09b8 zT^0Fb1$(NABCNF2ks{h}RAlDMz^PI&U<5kGH~W)j{4fxRi9;*MYA+Ajq5^>H@Q&z- zqA6bDpamziLk}~FU*g0D#-IPuklrl_*BeLES`wNy|Nn+ z|H3}uj0c61g2vJP5vmJ93jyK&BlJ%ys8X6U8#0goA~;i_0JR|ep(42*+C2AvNc;~} ztk-1~PGAaX)Zc}<5rFilqJg|(HT+;AMP&LfiA! zCAH`Fo!XX%#_V1hBZZjtlAq58)}L-%TMZlryv3gT7RTLkKQ4J(>D>>`W>;@}RR5e8 zRyx?*AIaOkkJ=P5XugpoiFVjwUKUN#k3Qpy!+(2nM3P|goH9mZTq`BY*c@0Ry*&lG zEoHbP53F`F`weBw*dIH`AGH4J{{pDq38;!eE4A~b73{rwaArJmdbe`EDX=hW&(p?| za(obnGd1?Zj0aJFgH6GW*t{bs7k`sTaX;K9zQe3|ZO_6yc2R`O4ML$Nj7& zffBWF!zHX{;f6_Vm56fmTcp-f0#2Jv9mPcJYtMSzpvo=1dY^OB+Q!j|$4Xa!bn;zJ z;`d8x-mXvXY9A+2MsUK8%Njf&p@!%+aJEa07SaP>Ui;6Bln%z&H$D-Ex66*Et9}?u z-+GQOG$?e&1yfGMV>o55IzXV4-D??`N?tPyk~Ld!LbtdT-7Et z=(J}93ck5J0rND1X;|E?+wzU^+bo}F@N7T75(ka1?!hU(=Kv~youN))D2*D$oY!HV zYaY0vM4U}v1XnUOuYAm4Shh0Q)0d#g7=x$oYaMc_YG-Ig(sD-EAKCvFANBJ?Q*M>H zYhMypX8$&Sc+gMEX#a#Yne--Mv*RO<^eeyB^BnZWAnC8foJXHw`5rx#2jv)tP$oB} z;kI&}{I__R7XkY6T~2M=JQTjqMU;!2XHsTWxKV5!AJ>psoTJXkt1kirncAFh@sF(CQ^CSbx%B}+Y1y`>!2M6BbgWsD=FKzm zx7W0}wkh|=>!Hin%fSJ!wihQ);N5G|+rr7??9b;TM^=;e*A|h?TbAdkA!x5xFx2IA z&lX`Qqs_MFl%X542i3SIF5|V}{E|}_7ZfRlG3v4G+Y}U;NP=(e>Ze(%t#Uzt>8kms zXUwiH9~J)#F5PDh$%h8g2V}q#b`1{0O*~A~2V^_4cS}cU0R-jAa%r>7T*Xo5if!)u z!Q#KJj>?-hanCBq1L&AFW+zeS zjgH-i@J$kjjXTFx7zA5vCa;?B&%-2Gt=aIR&;$lD=Ls~oBy?*~HDl=Z8=z?6wkn`3 z^04tM$1tuvJG*ceago{k{WS5=Mbabp&E4qwI}zzM!{EV zaHMRI|5#+1hH-`@0pUO`|Uf;q%-5>*E3;ZiO6b z1}ksZk_Tsvh6z_bf}%QQ*++ifrLvl1%>kv0y9_%8%Icpvp(-3+TarT$177)kY2R+= zFqK1ABk6f(;!5%s4$(9RS{yVOdoQ@#noVce76xwSEnRycSEYR!a5R?9l7Msg?g%>P>mdVG?=FHy~I@3424&5*Q&J>9=DK zz}d%)8s-gx&wXQB1Z(b*EJmT{8z#$;#XCfpgUmn11?;TUor)EC+o&Hdp69TQSR^~d zHc-+zN)_=@^{Xf)uMwteaJG^h?LE7$)GPEN)5nU0rpic1bG_ zoLYKPB^BM63bTw_g|gmOhxf&08KOT_@`~5(lptzW_}L~GoUEy?w#qcQv>CS*@hr>g zI_ukvu*Fji5j9i3O7qBaD1MmW6=UBmK(w^8s!uHtDlWXuAYXP_f%dj(*^W?%#ToIu z^DM85KUR+K*Vg7VT~Ts9*s83cXxZIA!qdS+i0LLXLmft|gZ z?u{i|1-zT(Qlh)Vs5`!_w=xuaAw0_-%R+}d{!~lCx?X{Tz%CV6OB{B<;u=)^S#3qy z`_ID~Z6n6$hm42K<*$x2Z`2^&dS+?<)RkR#7 z&U(B^7?k%MDL1LDdj6TTr0yi=B3c> zdzYILa($QW2;V2hb@+!J-lvd~-88V!ag(GLIfaYzM5L?cG0dbwNo7h__YYySYQ#JE z^msn1?A_7hF(LopHya1N>D+8T8+=-Omk(i&qWbZwX@c`-I{0G+?WBd@<98>>>+K2V zhW^Knl_9?%-{;&MV8Uu579^dp1ub7~a4i;WE zri&-GJrJV2r#=lJ{+zu14slOa&Y8Hjv<$5|lB7|Y6`KX&mTqr<8YlOlrP8XO)%L1) z`Y0hyf{M!|RDe9fcI+mrd6K2EYm9t$)Y%J@M;ypGXZH0rw5t;JASnWS-wGems5;j- zyBhPA}nExz^b{WQgVFWW2K? zon#x~^q}y$q)P?NA)6(&F6R9TQv5fmQUBnjhV)hFc5r()+*qlSC`P&A3A~Rx%Z6J| zd>`YpIi4cdm9Y!LHnjD&@D8IoFcn>{xn1oR-8?q2UEw<5edu6hx03oWyk?!EanE5I z_zXpHa(U_)b9v0V!%2eAe{c&F^~m1Z7|jrr1!Bz**cJ;zcGU9xvW?ytJe{k<{RL(2 z4&R}0aP{zU)LYpRqM9&yIz8H@-Jd6C;sT-$t|QI@z9SVj;#<-We*X<>$i-Bhc35bd^HCG{j-R|kh#rtDge;^H z(*!yoY__d_#P)CzlR!)wm&WQtWDT(|hxU}8H>9cac)WR?id;ZA0S72KJXXSbjQSfv zftVh9HNhL7GIl{Z0=TL-GKvGtb;JSt{+MIg(96*J1AO(1hsbImmsHN z`*(^8W(W?phGa61L{|G z`UwBp?3EwMp-TNkm(k+PtpG?$QP{ThFDrgo-JO^>KyZ=ydWV-W6PX*rAiFJ9r!&h9 zDYo<_i|&FiViZ{oZno@JXu8cBVfdgFTMoC@ezI&?6T(-z8S7jeT!}ViA5BQV%&9%F0;p5T}1zZ&XC>#gLSGwbm@RGm6 z=l&gj_&Yp^SiGamm;2h`JLIL8&C9IRTzb7tldDv=3JY|*ayRBtA)h2_N*V4={7I}` zaiEuHN7VNc+>NC$n)o-p1lH(B8YiLo?i@_9i)s;7%y}Cb8ud(;kC9$H8(P+jLXmETj5GQ-lM_5j`a zrGp5y(kF&w3eQfBlHb-zHm1a{B=ajIBH08Sl7Hg9{LsCAbh(z^r_mZxJG%6_YLLY$ z4KtmHJj|UWo3PzocGD`e{FoG{BIYjfE(g)%2!(u(!^&f-6mUU7M51zD<619jBX0wc^u>J+fXq%`5=J9f zWge;Or%iA2m2iE{G>dt=Qgf`N{)Rf~x@4I(M8XX?-N-9FAcW9K9TcEzV{0K0P9ACH z9dKs!ev%kDwzJH-HO41jqpY}gYF_J+B73&~;D{FDa%HMG!vFmCN*#)EDPv^{ArgTe z0wIRsUEv&a_7`I6_dLyTC2}6+8bU|EBo(DZ`Mm>r$pl0WbtUu3NuiArdPHd=KZ2+N zBS}1(hEB6mJIbulWB<(qMfoot#a&rk@a^IYW%L?jm!m-zR{9b+T9Bp0??1)VuUYxN zwMvN^^y*a}sT}k$sza$WLLA|tVxg!*&7HqKvAwg#@mawEA90IsN}wBV={$?7qOd}Z zmN%MjfRpK*p`V{!Iyhp0h@Z0FadE{0_YB1>0=epgFNM>t;UiL{{12PSm;YkpbN&Bh zqaF4L;JKh#jH^HRSX^zR3q`s4G3m(qm&*+{_{ah0MJxXo|MvQ{St-$boe5A99l(q0 z@yp+b+(2OwX}Qe`XEG^Bp$6rrZ(=GZoNL+zYVOu{fCx|EOH2fnd6m(X`<~8*%nNkR zt@WTNS7lcei%88L>Pc6_Pq-Z)%Zj8#FQYU|vj&B=%#=hg`GkC`qRDd@l%d)Qf$~zK z!Q`Yw22B4phd|V*Ak`g>D>NSE;DD~2a;{nK1s6ht4ZceEe`b?*7%J<`Bj|YeXJBM{ z>;FjGp?jJ2dYi6>-1)~+mGii2w!2h zR=zbLDVG}PA{1OQGeI>0l~s{6o`292T6ZSUzL@5azK)c?I<-DtKGgUjn#}ojAX3p1 z6GXi?bfRcQ8Pp28rwOf|yrV)aNTYk?YJiJb(=)o$tm+_3?#YqR&=3oT^k54Erh;d5 zE+A0>Xsx*}#(NWMP?SC=#G8AHbMdt@s*)xL4yz7cEgSa;Rbbfe_{#*y6QS|>k3f>c z^lScrMmPG2V3a#-N5g&`2-a#AP!B78m)aVePq1~^Z;UVUWWa-xzZ`z2TlaOR=U5O2 zQUsW(El)_@{5F5fCKk z!dBzU_B}9c;8VzevUw9`YU4@7NYmgXx5C-qRPIavR;fnP08-fp`&%Uxc z(pt5t)Ry0?0^VB!i@OR!yme>xZUaJz3bV4h>r{+&x+%U-Z>3=+u2J%c9k3%e)=#v_ z4zj79mBEX+EnT;k@TYg;se24pl$LbTSGZ71L@zYi4K&DUVKKPsCjisVsb>JPnlfD& z;M1?dAt-hQtpzEvhUlehiiz_-ARev#?*n&D)p-#y|u3@@?S?cEwx5rrhrTZaX z$IikK({v|YdyuBnI%8ydHwn**sf=n;Hlu!(G>Eqt_)Tj+W8TQFteJrZ)R@3)wWu23 zZ*Ffq_Hicz6g2r~5bysCN}AYXy4k<%=L>hiIQUKVwF24hTp!!3MvG6qwTgbc%77V>m| z_qQRlhq)XTds|HEcsd3Z0v#cp6#r;XjyLCKOI;Mq=A}u#2zSA^V!!sFn$(G~`9lf! zFzIAz_GuEI)gBu`@*^9;e-!2t?Gw3*W?)YIsnG3zD!k0N3Z01Ctl;)i$rU>(dFMRh zT%r$q*`NEJX?V7(;2p=Fr}}_I4@ytjf;y~@o$0eg&1PnF+$PcQC-mXN=6V<7TboFG zc8Cg|tbQn(wc8rwEX(6autK6J>NXc$?+RYad`o%uQB#GH*Xe8%lt)yZBA z4+@Jws+Jnc#Yi^H2pqwFhEOVPQ(i{&I>%-c+4S03D{a%9jTvLmR=i%wTh02`=BWni zMswa6zIojeC%N0(9)qzbgsK&2kgDCVO=if)*n`n$68@W7?hk4V5H+ma@7?!!>&60d zvhg3(ZsubkY60#)slQWUMxgv3)EAxo@a^H*MjJk@?>mg)k1ET0FdSyH7#RcHf01bi zwl`6>9gAQ_PyH%*7x2|-(e5cTH{zcj0`tB z0$PRc8#ulpWD>o7I~@IxcXPkE^R=T0s<_~ZQ5)sU&nQ4`;-K$Rju`z4pXO}7pF&4w z<#jMhScd02*OT$m+fzkf*`qSz{Z0Exr3pmbL(%Mm@bI20XPbH-mz^zHW1m z7UNV{cpj7}=C@8WU&B~$uZXHAr24KdO6#;tv)xiYg>oY?$yrg(%J!79!VS5k zkGilQ(?mHWy93{n`5AlNysp13R{YDO?p@Kyz~8{Gyl2h-F!__S@}_g}+ib(izf8*M z9d#6j|7kKb>9(@iX> zod`i+lk3#n`(DN6|ruUO@cd1xHOxEUM+Ylj_o7Hn2aN@F;V zGC%{F#j!2M@&cm$iFP~0l%?KSki><1L~pzX)>R(z_hS-jIDm5&G7Nkh8idyV8_h$k z5>_|#;x`(L<1Ng@Acxk{*h)WQNpsm}+!p)uIuGy-n3!{MvR?LJO|1L<9<=N4;-{_7ynLPV!{lAh|(_z>7bz&)j^)H18eTaL< zgxg~TG!xyBHpXf+Ii()7a9*W^7!Vrtu+UraqikZNl8)-K{VFFuzW%sTfHw6H;5G01 z-1CiktOykgi<=OTg75kR!$x|C<%Jw-X1^fMd*9#zpm10_ZJu9Eqt>wNg+Oym7ygh6<`DkiIt|zVto#e( z2JL*Qkl9if5cklyd8C;6P@0Ez-f}M0-Dtc1XQL)Nz_L0 zT)lMTC>`6MUfFiMaP|s|Nc|@2oT_%KOrLxnCGgQZLhc0R!2bbyxAfSNd@h7tBtT3I zd8j-z9)r1ZSX_mG-G?z+4FPvc4D{Af0t@1+v}GqE=Oha@bij@ zjObtabA&B5I4)xEx_t3HxA&d349ik!ptD`;?{HawR-vg45WAMO`v@0;LGUg)$9ynZ zL6zL>E?BYAk++u`_A~e1xy+pI7pVUJ*k(cr)2vW@bc?_MDHLEa1z4uq@z2LH2gzBY zR-h|Wp2lYNgp}N~3|9rd>BjJbk`W2$EA*DG(hxafUTJw5-8!^Ek&O03C;nhhTPM^dc_hE&wAJB@f*G4dx@p9O+ zJ2wEMiHigW#p2neA;Q;$CDpjfrKs~u>c2Q#A5~l_CKNd+Hf=H|+^g3@k9KXKyDlYG z>~17hO19q91tI{6SneC0vC^15HlK5f14()dvIHDy2_V(aXBVFoQZK!BpViMf8n;5T zAa6h?A@6hX(-DA0iXx*#U$6Q5<9*6qxi>okNy=i%v7hO0Ps_3=WT8bqpsSxBd-YUD zVY0gRJpC5@j7EL4#^(YO9QYr>f!U?dB7X|*`7QYTx8N#*V^=q}2hC%x5FO+ zSTa}yBASgUBd~Te7y1WqR6hbRC1Iv?>pipxvKkcjGhVg(OS`whdFO+e60}Gpx8<^0 zVLh8Dw1{uVW+GiR&m^c-4H0}&ONiLY}(7jv#l&qIZQ z*@OQo=Kq=-xBLgwK^@xB9TZT0a{#U#TcC=vLyG`B?=L||Vd&K#@^DXgwEROlE^<

      z3Ug@gB2!WuhbtA3({YVu%L4aOT|q8tRH9@TgfU~EU96DfTx67 zqL+7f-H19hR?G#LXHE+cGU;BRtP*SF9Maz)v_1+Sh19^d13H3LfbV@inwe41fGAP! z(tsCR8@W4{5Wej6X$HdE2W~<2uuTqAp(&EKN06>L|LV42VJF4gfI(_rS7EgPT#=J* zi2HLI$GnPO6eTVrvPPH7L-QI6)_nsT>KW3&Bs{|;#1-y|-s0`KVD5EVtRo!ThXU)l zz?oEY1by-EM;3Qn^YFfgjpivFH|%!Ox1jI7*a?V-=0y>fkKgjh-fB62V22ulk9J3o z7U&dcSW>vP*Hon8HLMr={jFar+KG&J1N*-LoRoe89EJY@;CSaAxC=GZ1~+ulO&qA_!-q3GCd859X&#h(>U5WLlLaeIhL2>6iN;lJB5s_wr#(1(ZMNa%wG*>fS>eN5! z4>7XN zP zLh<)+mYL_%kzU7;`bP;pd#2LWOgw{-cqvW}K|h=9b6+Wu3&kjv+D$Rv;1q+H&!0mv zAgF3Dc^|RcRYVP}o1-0}7h9ph+hYr=xnxvH_1B`4J$DK>mg4cg!Xq&*#<6phK)_<+ z;dJ*xNmCIQaiCs7Fc_Z!sHmmoEAr*Xb$KJ$+SFj3*ff}v)f^l?wCGo*L~$7#@0juH zKt{z)&_sl=I9H#z)Gd1udvu;xVlX6FSquyo32MTe0X|fWLupcjo|j1@dCCnc;Yrrx zqk-XP5ADn?1LKMnk=i=2+RGkxOpLeqc$ROHrWP1Kxr*2HjSZL=$42p4S!>xdD*^^b zpJ#m7tpJ?n3Sstj>?~iStbR!?Rp?P^QcsP3d9nAbK-$<()_%v%Fm_WlDldwXn6&pe zYYEe+Q;KV^4aR_pm!zFKSz(8D$?n#{w5nX=QXx<37M|pqm=yJVF>INQI&7COTOm*0 zv7eZpj=`LAY+-?n_f$#{7vK0P&O+GTR`GU`(3*jXDz$A zX7cf4a;m>REyI|r+awadX`x|*37L0I*?TI@A~uGrj&9_o1mz}ds{`#+(O(!0$FvOf zgQs@mRm1EA)1dOmRP*ia7X^>)rQI3N1B^{AK!pULCLenWd#kbAircxOE({Yq*wu}F z(=fHTtf*Kb%@`Wp^6d>zBCBTyS0tYrh1w$jdqp8c9DQzsQ(s^zL78p(AXZT!P+@l( zy#`L;#rA}T`8P%{9UVv*YR#equ4!!@*1HV8HVzmNV?q-2)j*_+BLA^wcv5&x-JvA4 zFm{Ad$oJ~8Nryb6OyQi;i=xd&MZv-$9-YdZ=2F0v-R-B|weM}(bCF3dJc(k0AqEGF zZ7PzJ`g>YK->8Fwq2qKU(ZdFFByJAu(g#Q%vB%Z9UwgRO5x@45%n&q=IbeN(FC)M! zo^lR$XQ7UrMva~Jd9ND?4}}RwjV2%4RAS`~UQFTdAlj4uly6K6EO!+TiLXktE&&6S z$|~pLD(8l9heKh*(W9x8mXP{&+oA3Lw|qC? z=&vE^IXBzN0m@{Ncz)!yXZ3C+v2D3X>a=zW)FqWfeDbdY7`93B#$~8zn;4kS%h=b5SY8paT)oM4?&E zsWUR2K_ckY@jSt;M4+!UkAo4YqJ+OIgKz8w<%qN7h$ChaJi=f@*xI2k6(_Q44KJc# zJM*Y_h6m+9h(R0V1Y*azZtKq<>4v19!8YAjF2G}daLX>vh44A%6ALjE4Z&%`yhEm6 zn(R-nJuVu@q4~E8MASc3gmhmKDVD2fR@t~#1|BH!A?v3$e?h^1bzKs?AQOM4$9lIE zj5M0|eQr@`kBp@(Jyz1<3=J+eQNdw{0b`e>rwztVJSBZ+4?=2+rmBl9^gMrmZp3>I zihW{_CTqo8?eMDPV-yK>(4p4!8(0U{bT`;elz6V_jpgv6!BILHJOLVa2_`{_J+2KZ z(Ku*%nsQK`)$vh&p6Nf~NaJT!! zN-(vASfK*~QvC}E`!|r@zk%$31I_u3cK~H_U#%A4=pxrkEg}T%aAW^K5G)6+ElwC$ZxI?pv5rI(bwvvP@PQ>Az(G{+p3my7j~9i7 z@1fmJ0ck5jWH1%9h8-t9B0bEh>JJE}ED)8+RV>J9(kKxE#i18JlKttx7?ox+@ud;Z zh2zVN3@8%=dd135;T>MY%oSl+A8y5p;vjrTD9ND35nRck8#BdEKyfkavmgg=NN?oIzSu z{Lu&cX3!~q(QJQ=;TW0W;1l3iI?;ErtsE{xC}H=ney<*$olm~4>y_NccbiCW-1qwq zt-vM0s)g)LzpFE&T>#DI+R1Ii&F+q8y?;5@J;gm;DO(eD%-x7*b;y0vn3wmt zYw={?q;-{Qa6jVaEMonov^53U$d)A{^yAj3Fztl!fk!!T5II1FI0W&S7iT?VhQx~duuZAbGO-D9rG>ddSGr1I0O253LCYT ze!KO^FMi{DGaYkD7|IS#4{c7_^YUxya9`bXaqdgMIkmp=I^kJfh)+;DkftZ$y{a)X z3e8%{30)mn{NY!He7W|zd-0xSYDl2k!HIVZFRmecjK#x&3~=Q`qjT%ssuveDZ7N?{UY)HObYLV`_@h*AXWVRfuC}c&(&TeeLeGHD?HhKuB-sf9AH1HK zrGC8ly)CXA)CmeX5clpC53F7RQ;7KpS6}Odhy;lFNd(_qp9MB5?%LX_H<{c}%jc^{ zUZ^U&DljBO#uwV=eVr{^mrktO=E=R;`HAGFL<(`){T^yotx#aghvr|}GH%w5Ml`xu zvNksbCMQZCs;+-rnZ7*uIJdsuZj#j9rSe^~u|2#3YhP~rey#N0ow2VwK2j{Iga>G8 zZg${2I^2Ep&?a&)zp(C-UuZJFS1X??$Ksq^5_!9*ZvHfm19(z+Wj3sLkK;)trb9Z~ zZoL~Jzuj)ZrNU(td1>&xuk(4XQBrL0646#dd3_o(YAT=L)>+%!R4OhGB1vW`C((?F z8M}FU+J5N0nLToPc*{yY_B%_CS=@aiAlZK_9SEIR_44z{k%JXFBhD8gPOko$m!V&0 zSkU+E@>qUwP16=xD?tD#KV~9A#gZpMd3~#2-)_wxl^0^d{aNM9Q_;vx)v(V>fD0I+ zvKgYVv67sNR+^jqT9OH`BA_qL!7tE*gDi#RIqdw2Yi{4|EG6>C9g5 z4gobCZh@NcKusLCHzMBJgs+_s+cHR8T~)VJV=FiIGPN05x2bJLII9B(Cp$MknfIW1 zijLAA&TpNj+-D^M(_d>g9aL}i%*LGH?4($#l_J({v;a}2yg&t=jrGmu@*!RC{P>s3 z!CscBh|s;+eb72{T*$GrYWAO^poOdt5XdNMxFx}w|in~hZUnp$4Vx% zR=#Y#;4@29)NqMWNQ?P-?e4^*I!5C!mcBTwGWE)cc$C_;&=n(0>up(1oHTiqV_3MF!iuE%2_u+5jbelvuB5s|JmNtQ*sHuZG=vF`- zq$i+`SWriebPKfOzaa=0;F`f+(g?b!c76}~SM={e9uxN9gheI4Q5t^3|AF%N0e?sN z-&NpoHA6do&0B%sm7j3{Cxo$X215x727z(?L+f9XRv?a;&;g)f@StI~e+}yfI3RAZ zN;Uq*S%=_7`u-c|?*snkxkkDHdQOjg12hZ+H0-xE6kF$V*+-PytIO!8kUg?JJ?iIb z*@Sj5pwFBilL%Au*bU^+F%y>N)D*pO@(%K~as7ky(4DNmULYZxcX`ZI`NVc%i3k8G z(stAM?cn(|bZ;+nwD%4(l0a6(V+^?A#_RTY%HQhqc3}Jc$o7`2a%h(avDkeK75DYt z;{oo(+56|qT4pDS9 zcDaX`iBv9(8QgB&^o_)fDW%(g_ucs6KRN53n8J1Hc(ZSx4U~MCJ)24qXk8OOr5IgX ztlUiTUHx{iG|*i6bL2Zf&js}Ux|&8j>9?8|ZFU;td3r(e{blQ!u}b7iF)S3xioh@I zvoqXKg&i;6b-Y==cL$N?!r7Tvisr&undaWda}o%~Ze=~cK0?(~KCT4g0e0K#1;he|SHvXU- zA616XF5z^pDKaCh(4&6A8H%NFQ(M&5=Q@9-=(ckrB7BgO{`|7bpXq6&)YG|}AoyB4 zjO^;X?DO#a93v&1z6ZS0eVN@It$S_|G2|wcFJpdgSw7=oA!Kqu1>DYYrbcUAbSe#b zY_$TtA6nM3Oydfj`Xn5Z<7)+}9de1KQ!9TQOz<6OE>~tvT}|RPLO)X@9+@;K@hNwV zku>uua~#)n?_8cY$vL`)q2s=1#l19ln?yYbJ2o)kVf@uJURdVrP2>!y^Thg1197G15z27BZ2AxOmSW6Q!j0?W-S zwbdM>pdrE8Hs$)hvsuEcV)xP44;=+XpY$Ik71tL$ezvre1D)fVaTzy$Wu#>D79#Es&omhuf*T6g z9%_#62v(+kSg1%Kf=2fy>iiL9Nxtu_*=OV9&;}GMy84O%Xi%0ly&3m7J6=jkjhHaF z_-Mpo4DSB_2zv|QIJTupSj^1K%*+-ujF@FHGuk4HnVFfHnVDrVS^2dnfHDuPM!$ zZLu|8SNm>3oPoO^WCZ5uy1F^+C>?%w(HVQV z{t7Nnd6}G0eWWH{w9Di|D3pWL)?s_mv}{IcbDTdZo-$q1Y0Hz=v~1D8es|Yk?7WrD z#8Uao-Yw=}EH-sJ6`pX~)naMmlfKagM$M^m=^;^d#*b1WPP>qm`?7VN*mrMtv*H3V zMQp95?821JM(YXUT1%e^e%0;l6!h#2q6gipxe8j}v$>JdE}hsI-Sat*`Fra(4Kzqz z*V99^#*U^5H`Dot5ch@l&WfYAC%k?09;H&QqVMMX&DLiId`nH^%!}pF6WhYI?v6x3(Z25T|UZ1kVk`9R(tUM;+&?yU~l=ecJbjv=_<AiK3wId&)P*$(i*t3?Z&&jVPfTmJx#(vGTlshW zmOII=mhXvYtph&NaMu}IJ&fk!tD8UC>7JC-e3)u2vgSJgm>$w>X1Op@BX$m^6CGNd z$&*6I$DXQFK2umlbeGbSY|P5OUD*s7t*1<-Yd(jb+@}dQ*FQ>6FO zcyVM>)mLmwf{9o^zq*8m94yd6WnS((>$+o~#R2L^rg2R-vb^^)$wdUIbk%HvRt_ty zjcN^V7^{YQ5aItksKdRQoZ^%&t7vUB*b1@=4x*pyRR=0z%LUbjmakraPUSNJzcDMyOgllMBJ4K!#c?9cJ6WT z3+N(cAqO8lB6Axq!L4Lgf9>|{;jKlSh3rb&5;me{>^*2rkVERD`*L}+!|ZX9J*xrP zcMN$A{n{MbI|!C0F#8FVVMuAaZ7voT9Ou1d@=Sz@z$*OvGSaRc9Z%(^he_^TmqbC4G}LQAwr8~5AMk`G2O zIaTc!7pdJXEj}Q(XzHCUQ});|^WC_^Tdo2oKcQCg03REf<9)x(0ouJ~o!nWMgWdjK zVo2I{i+@Q?adh}g>aUWOF21Ni84jacYv!*QSJB0T!aG}05F44cTnm5>?kmSV1@K3E zM>nOH<1P1oTftxd|Lg!9k$1UYH=H@!xUrDI{k`_#+ql=@l(StO$X0TZWed1h6bgK= z6a;df^~agC8OZ1x;aysge?eU#@|rd)%hmJOMd=K5gF>y3kZfe?-<|P9b=9TSRRTw1 z3pf%gSJR4>n>`byyjhyROd70~qhx;Dx2E>z#_{fs8}uDk zes6RCee2QbA=i@a#TB}<5zv-;2lk`EiY2*qCWjv}HnTN$<@Bnun$mMcWRpIBxf#Vi zgw$Trgm%RLo5Cvf7k3aCT@cbs&l}S!Ky9JCCZYj@m-ha6(J*xmX?cYiH4&T9Ahpdr zHT@1_Za2EVHoAVgcZww;Zyx@4Hihn!0sh8${y_p3SEQ!PVo)4LaIq!bO8LI*hh>@u zhg2_{J44`l7X$Tr`NYK}Qc*~Z&0!MoiQ+M&b-Acjqfb{5m$s{!s*CffXoXKjhdYZS z({nDk)x5YhgxBzdz;ay|oJ9vJq@q>PBsQZ($}*e6K+j*<)h2 zn)9?8^Ezdw8qT2_)kHVU3Lz`awd!vnfD1G(!fK$`?qv+f)tt=mU-GFuWdDM;Yn0{b+=iY#8Vt%x*==8wc0W(C2ANO)U~fS}TT#RJu;-v59oB|a)7GB@N^P6L1QR{A=IC#)@h$eIS z)YW`p7JZzIo$C`~TAiBhDIJ0AP%Yz7?bqr}W&otu~vVeaR#_^$Sn!RhAigVjr&<-+Ri!4KW_G+VSkds{>v}sGL=f zTzfS4`5Tj+*RMLAw+y7MmzUIGU#@jxb6Ax5kyO~vS(h4-7vm?c44*!d^v7Ng2kmot z395)Rhe@qAjLuYiPV(1a3$!CKrD*dX6V-I{Iq&WE3ML?rswI<$V@|~@ZdPx`R-Z3* zMNS?_F=9`NNUnkgr0+zYe;U*33Nv_3trleUeeP5%5y>$Its?}%@1xotC{FgyIRl)! zB`sx>Tv{-TxlxN%@Yi=ae1?KZMOrMKVDyfAvitRLNz0-__mHV-BwlH|3IHX5d1nL| zVJHnEgxn*a61(<|G#9Cof`EvzvkYM@%p&g7bgWLSR8JFK0$4y`7DZj~4p}t(x~BU; zgzbgK+(KdKsahCF-z)+G>jOuG7`G|5>p1ZxAndKMGsTro9K_HPDkRVIOiGytsJ5ci{>t*JD1>kxR>lHN zXg%10T?h<_^NUCgzxd8g2u#ECCsBxzAei5g-IG&}@yljMtuu~jDI{}@G+eQ z^;$^)1jB$JO!uLvDh~2wi6=%@S9zWt#(bd`2Z6B8=Z$v8p%>mV4+9}-B|hj7gCO5R z>4zZ&Ll=Y4XUUwAv(|`(^9c~AWA$GyMhk~+VosEl&+};4ff#@iZ%n$u6%GR-1>@%c zy}~W@8m{=D{*s+N#D0ai z!DX87n0m#sGBExU$-#_ChQdwK=I)61Kl#XtK^RlHGU@6-O1?KEk_N=c8}*?0e^SL^ zZwtnaLh&DtMc_01sWV@W0_vBKi(`CdMIfoq)Anb;eE!b^1|TH+J$mc(@OTTX`=)KY z0K!$VMq&2LuhQw9iit)SXOCAO4dv=T?zW!3)>AcEdcFjfN`LQyuK(x)e` z-6kW*+WwY(Eb8*nj=X-}ec;}Em{bfO!A{3YNk78IGdWrJX2El}t=(3(u)cog?edwL z-kMTyf2;O-Q_ga)0*nWweuAsr?$Qrh$$hM&KYFnE^u_&c#Qn{mKUY!qOs*{%KWVX~ z))ZhqsmVrDze~TCc>8R|IB*`ivK_X%>^x3HD%o|T`#E0|9Ex5{;tbgGml2HeABla5Dc0;VFg0;3dd6=jkX}Ylx_rP+yk~Tvp2onVI0F)Sy)k) zM(h%lDU!6c_E$F$mFzgj`xp*!c9$W_F!Kix@bnN%C=49R45uC)No^9W0_{h(Fmse? zl8gtJU~Ch=PZdM3b5r_hq8x#i=Et`ypwe!l19SZIDAQA@sU#Uo;0UI81-MFvNtPp; z25b3MwFq+zUby1ye=wfg2O?Sfh%g(1EzOzbNi#$^8eN{wL5lcDcTWhd!px7t6M0~As++`K2v@(b-( zAfG?+p*To0jDlB+B%?}uMjt6(!KO$v!uK!=aB=?@J4d@4QD=DK_1*3Ws~dM~YN zABE2Qx3|eXq0CFuZQbcYUqWKU$ zqnMG3bA3oXH(_X%g(KcpAg0$^g|Zrk!R@-3*cGp^Fanqiu?|V4$8+sYDKp=1*~8xrcO+z6Z@oZaX55@YorWj___gir*Yn!&E){_iTwNuqj$m^ZbwK z*a)tCT5Ksq+(3gQPwY=ZoG@6y^;^*NqhpHz9+mLzN3_fmn3_sk1HmQATcViN8x4CX zO8Va)MLa}2@ImotYRMLMuPi1d(UP!*ErV_)od!_W)`o7SF7vzah-I>GHByZxRrMqA zZ1cK;;S~zIg7I+L&4wxSy0R_;X$V-K@@?o3 zmwri~CAD^h$>!Xus40OSGU{349Wt8MeP^U60zEvmB~HRl`lI5Oj*akd6&|2L=K8i_ zgEDHb@3*f?UsV33LpARhsN>z`-#XsMHyYT;{vRaV3beC)haaAmQdIQ6{bdDu+8-+( zRsId}SO&BL{r_Rbh|xjt@B!3uXhY(ywKs*w#N^Ey-tdZbj}b!aCm)b6)p2hOnbxxz zQ`Wq)QB8Js?GT;4-#33^7)-6bac{v2O{N%+;miNu6gq_E;X?rpxE$`EGB3T-rXXY zeYXhXM6r>+Rfu#U6l>6)Ot7Jt4AJ_7S})1KSc}=zaBlnuwaQ=XU#P=)$wg;>q1K1Q z_s?et+-GCi=-@zwaT1_d%T(=_Y3wLz(EDkD*M}6T1n{h|79j;Pv`eN#hjC`XFk;#a zp-t$D(04K|haut);e~PP_$|dMbL&+_wU*x=Clb7HD>FfMZl{fDcv#b|z2 zBX~WOF``T~u~UtSG$g6Eb2OL)Pzg8CZt3wIFP}_bV|Jn@lG9iW3K%>Z%kaTuaT?1;O_s&DA{B{m2rop|P+@7pK9X}9 z8GHy238tB1*>RD}jm9QZ6lj{5il%zjIgU!RdWv2l4Z{!~ASfk*)A*3OIxqP%w#`ro zf-&L{9%J9xXjvxXav28lh#E7YYZzygerw5=^ZzD`hhg*H^ZAp8roU`03GF+F{pZZn ztb$#{d0$)gWAAI8uYo+!EaiqVU99D)st42KLs*B^m>Rbs7jMf!-GUXLke`~RTs{vE zR4`R@ePg)a@E+AjPI86SF6nVO zPFp8jlaVLIC9RE)(Zu3~3(H9GC)sOK!{B9AW1|*B1ZH4yVw7Gg_i=p%BqB-8FcD?F zIq1^HP(r2@%0@B%RCqGz7W*VfPt<9M;>!Ev<*LJH5vCp$(#r7&YOG$k3WT-p1W|I% z#C%JUd1{{#FkMuVd(;pnlB|{MsUR&Yl9TIb2F)9Dz zyASyXd9yR()&)UrPP&2zKe#aLEd<&oU`-g4Q!s%~z3RJoYH0*U`iU@RW9r<2Lnc(9 z(>U3QCXh0)7Ca?m<_@HsSRnO3D3gKxlQK`*jJd7;aE2k5l0ZVt_$vVyVWy&%--+h%XwI&Y{w237F91CdYOKC=H=P2a^$hiYz z3kSr~vjdUnPu#1)dqwNYy2AEY_7ut*edz^}Mp(0W(iBQ`bfd$fL~ z->#>SKW>~sH3{X$+%ym;Wx=k{FLIMH^yWZ7N$`n<wVR zKMT;oaEl6`*Z)M^h1!X)#UK;xAjLbg;be6Esi2l*pa#*}`xOK(fZ2)w|``UydJ;8a{g z2c0s@9W7XSY||jlkz`jdWXo}s01YV)47T*=j?(}M!tWxV)bN!5C=G!FDy2{ZDg`JB zg2y@X#WQY6!&+b{%5LcxKVVZ3Nb{uTb8oPQ27wm=De=0`GsKeei}xRZV@dNoE}oMl zJGPCtbp;L1{DSQ{xADR7BHwjX({iGruM!^c4^lnbSA^Mf0 z5Wh~5?t;+9IeH@HIAQ^x7Cr;b5a)PN?jVy1ADS99DaZ5bolAlZxcfUSS-F^YJjP#P z`O^2xedVH%LSF@$u9G>E(k)Gs@Fs- zHvRwl%8Aunj?A7rAqX{7=in)$D|AZgRF#>bQdF$6pqqD*; zAbh(6h5@(5UIwSM(vYU=cGqWNT$Skg31qghPrk?F5TE?01Mi7T8}0Itkk#;Gth>z- zO4ojvr;7UR-p8E8k~tCy{3 z=Qf7%k(|wbPK9&9atg(wQuEzIdj6G?Gk_5fEyohE3QiOJ1!iVMgy6PwGfWUD%bs&8Lbv&DC^cfa3(h&&Rnpf}J9tP#I~QQkLJZ)^ojQh%DZZ-xm00}1^d zNFY4r`wg_Io+$9Wq5MO{9eBRig)~!|pLv)UpXN!!g#2|M}B*3A_y=8{zBmDo`OyK9B{Z@3Nf3 z`&T@!9gII-$dA(OA?IQIASD>;XCZI|diGyZ$o+p0!u;)+@N0hM4K#Je@KcieaWLP9 zI>g_O;fU098FJ+|3NaDh+?CNq!?9V9WneNw(6()M-mHRAyBr;N$m#DhjjQx+2x!+>IqL)k_&&)MYu#nhmKa4YG?4KoE?>8SJ^xoor6|~ zJcI6Wyqkb5QpJ=5OU)QpT&zw%_pD5_z(L<&?G}Ug`WeI$^W-+lgztO?&FKi7msBMQ z_nx+8?eUO(mLzOJX?GNziMT%_8@hWlnnuKseX|Dv-NzPU;mv-;E9qbeH* z;1ZgBqc+x!6 zj|fF&3*K7LLfwS&l<>6c7J>$@UwdRXO}>|GbA2~qx;|decT$ZTQ!_}11l%Mn1~+M! z0%#7VjpaAI@64)QTv=V_Ra^D@VVCf0tBRylVjjMPz(;S|)+hohD-5d2A12JWH9xmxvvg6vX` zhLUVrjQ%uT18oE_1)zp%4sy^CWAxWC&ehqQ>V8Vgp2PMGw?bmrM$*Qa9}x5v+$b=f zhdRnj9}}s`R{X955@x?dkv4UVI>WwJm^lTUq$M|EAr6NS4vUJq^wOP0mCcYQWOfH~ zXsOAnCuykvgro+B+q46i09{r=#AlXaBnT6OrA9RD`!Z zi%XrC7QxD>o0r&Lnb!*3MG0^~vNG{F4<+nMPd!JI25|u)&Jbc2=!`bfcoX&JL319T zmz9>Em9&V%pbDUoMHJdg9 z!F#LRYpM8K*U=mS#oEfjaW0Kcn2Fq z$YJ&jaT7pbuFkNKxgyBFwEHapo!5HzG+FH45&dbY!p{L%6O!%~jH6f#!gl=&$Gjaig+XzFD zlsIXnnw)P+*;Aagl$gUEwn+3eB7b+$?X^Fl|AdPt^aauHru zF@#k;GY zbdlep1n4Npf_NVzu7my5h(_{H7FfxNKxYoc|Kp4^8gxE(olAZLP730L48fEIdyDgc zCj||)9WAv`^_LgC_5;W84)FwqEV%F>4Kn{pYngIYlU4ELPCi$J8{v|8ewVe(Pwd}T zyzO(oYP*LJ9QMc*XnKQO_L!e4-7Uwrh_LK9(RoNvsk8=cl~Je%&nQ0uegkijv}d=e zQPR8laQgg?{pGLs4y|I8pB0R-AV*t?6Oe+%1i^S|qRxw=`uFRzq=-Bx%AZ@92}$uS zDhn)Ok~eW5@fnn*Zp{S^2T27=7-LquqHzm?SXZFDkbk|F%rFkrzU{Fz^9Fk6Z2HIv?Cq zx!{k{j+G}U$Egw?EXEc%4t3|R3IhtY1rXN2kna8>;IY$qkVFP6@Gk;XhfutjxZ_S7 z*c_|i@!)!+#&mA1!U3TLh>$&0J7CA54MzS zNlJGaB8*f2He?Oq51(Wp!e54zq<{nY$gE@rv40VWPM=*Bch&)p6K}T+J(4q=bA>6; zC8^tSmRnib?0PN?{4uLr>4k&<*C{D$zpVFfot{;s#i4SG?Pc&x8NG3FkquNCR~z4{ z5y&o`-?~z#=H@`yQ}X#=iJ1w3bFFQJeAps`ia>hq!)HsKdHt&#x+ryR#cUd1;XW*c zNlqI_#Zy2BA8yeHj|HrRkIJUF@;Z3=toZjLz-e)kOm-hWJaz#0V=%WY^=w@>FI3`_ zfU(6K)K`u+^lG!%Ki?DlkPW(X<<$2QnN4Hj zYZZ-1kr~FjStT?uB#irZ)(tmg7D zDH`}ow9IREXdeh54B~$1)%!~T%OGG_+Nm=%lVr5Fxc(BrvpMntF*0eI(1<@WYvwpG zL9AZ&XEKNo;&fmuQ&-BAKE<4<^i5Xt@kSVU^#+!)Td)-pgl* zERq(0z|w9*VQ64xP~jU7ykuaz9;~CtB=`@ZBK|CQ)yGcqDLs&H=J9s-$&bItq;_eH zQ{4^!OC4^&A9Z3V|683c0#F?fOt;_L8Rmb$Ob?!2;$2Js2C~P(g}z&hQfU7-DK>`N zTi?X&*N^|vlCDrl(x4X{1mqa@zZy8Xn7O)I*<1Xz&#GBt)ASip zKJ6(*-IfBCE$|@$APwI@?C!Y}5b_nb$=4&sQ_RyYFEDSPzW4UH42>!>XCZ#cLrgXn zgkuhv0}-dCr{lVtTPd}DHR51N35#H%H5BCY!~NFrez`BmX~<}u4(f?Qb$ICA)~r#S z7*5;T7v3HR2N7UX&RhSxoEsf*?@~Qdd=R0fqa=B0ga#?XcCj(`RJTlasTak|*v#Q< zmn}oLVxuGaYoGC+*GV_An85~VfD4rx59f#^cumEui~HT6o3!l#@Z~3F{r=SX<={?~ z^Dh<6TCC%uV}zs>N}NFKp>)N#2tmi!z`~VPY@AN|dZ*wcquH$IDMWticr4GnV5(=w zEJ)^s&gi%d41^=GDRcMesAnol;)?}Bkz+`lOlAHo9+1fR^9?k37<|YmUQZ-BD2VLK zg=i{*^h3&M1xOne_80Mp4cWuZ?*)0mlZhR`jj6jU;G)CR)>}c z;s^z-SCv#WpK=2@ zu~S$pG}LU$e~JeuK2`Qpjjlw}H?X~5OURz92kvm?OqUSW6Z|0W=Ku^GP$WQ%yE?(a zG6!mVd%=a*B%ChYVz5OgT%4IgadYq94$5TaT6DJ|CQt|ln?@d3XSj8r@(rlAz7RDF z@n#^p+tibE%_bpe*z*IjB=d6}%CFr)+n9H7#?J==_nqKz063G5dY@35ZX@uTgWO!q z=?l2Kw*g|gNqg39z7OhTioze|X4N{bwc*yM`|1NcR}AHK$Vp!9<&hh@up5q2N{kgV z{G0c{UB80O(!J&g#L|PClGsDPZLY$ghgR{$#=UoPn&;VXWNAf8Q`R8FOEv&vj{5pE}%qF+a)VrM+hs zo@nRv%2{(^ktOEqdfRL&f0h4SIqHkzHo2kjOTn(#V0;sb>(YD+4RZ3!HaW2w{Rt5W z`)cvEas4!=AT@ZQ|)9WR=W-zP4^E{s{<@ek5NLzZi@8RASuukE7 z2hRL_d|1F3sT>$7zbj{2{0K}fu|~99JwgjZOC^bhMbIE+e#5njT=A^+sm$p+;X!Qr zJ@;C!Y=i!Dd*zAFp(+Tl1yu|1=TCFdzgkdzH8WQIuM0kUw%>Y?1p#E%t7qUKL3Q6W zid8g$4TrEZNu&kYk${r58Mqm0`uP{THWyCkJr(IGY5A5f-ZayWO#Yw!_H0lZdwCa& zro=x(H%&%pVEAF8u`({;k}lVa^eZ5rkwn9yhscb}*&1YyQGkz19>o1pc1E}Yx~)U=g2Ss&RXPs zz)$?#JsDy`8~ubL6@b2-j(WJ!!mP7kPSd85(w<#O1@G-u<+kDa88ZrYu!72XAQ}g5 zypAi?`GAc_)7uDc9o`Xd65) ziO}?fWzRM7aAUF_zquo&{Mki-!GxK>5_l+R0NuWu-21 zUK|}ZKbB2xS;t_RZ7(y6WI5Ig_rv(zh4rJkt=C|xH&@VJ9wGd7=9UUgCcJ6_pT&be zZqw>EMW{u8N6pajpg-kKFhzB=s&3B#5{!Ae{^#Mh@b7M~sXbKZrJf2kk`>=>{zo&; zBoVT<5nvzSPC5_}%zvMfu9jwYX3T#bS^w&Arla7n&V|$SOB1EzVDWj~Euur>V)b&l z1QD%OEVfBp*Oo?^BInsb}fQN+4*Q# z;Rhx3DA|*McdvoU_0oAL5$H>pllJ@?z`u z4F(UC7p&|2&>zd2b1>^L2pGj~mtY_+??my$Jv-J61kJGP&4byA()1a~nmk^~PpZGC zO1tE6Rzr*I#@`4%S%gCez#yDSsefqjzBbCTO39GNV~8^p$j?3u3S~2ipvY=1ovym$ z+^Ii5JWOUqbqz8TcD{^uqa%&%do`5%`g{K__+0Kv@f!vveXNB z>-I*&Y(5oUAVFg(I520GlWS;FnX4^al+OC%L>5!VjAdE?O{}tP&y76tn)P=fkD_ z(ORN6J&0b|Hz&0BqZj6PpJ&?N=TBc9a=e>C#uEFseV;E{4SMzbP-KSAYjfXj_SViF z1V8RVsU_MFp+aRgK)k{N`A_AejOlf-3v3hIN0a9QBeR<$c^`y}5 zG*c&;tBEl=SQAWQvW+Lp-)8fR90wJeYQ;=DL{-{g$uh9*`@;S7>osP{Wyb7iHbf=9 zluj)Zj0Pi=u##ci6AXEf{$|RwrrS(tb`mkQi!Uz~OY8Frj$4nLr!Y;ta{GJ&IqYe) ztq>r%=f$Q=a~`{{Js~~5gV`7Ai6ndvO*ALZ9V|!f~njcB0mmOF!ZH@ z)Z8=k?CYwKM(>?zr`)=2@*AKfeq~$mt&eXrq{+yrq4Z^4RJfzkjn?HlbZ(JrcW7IZ z&40%0hle8nPb-VEQpPIT%Acm5D-l<|cb%JaZZo>B>-a{ZUxt(N*7Y3x^fE?HC)Wz+ zECmiCnG5{sd#!&YMQMc-u;U)k^)~Z}N97j<)R(3zl z^WgWT!6|BV(SUsR^Fg{|iZrc4Bc2s?BO2O48H)nslR(ytbCjlY77=R4tjMT#YMoE< zmzKgZmh#luUrhzoT{J%i0vyUVBbK?bT=xP4Tbj4ZxEKrv^X#Gz2&H@;z}ks5t5Fl` zw_9xc=jW_1AV+`2+rPNE6qJHj+v=p)JZ9CP&qGB;DvWK0@#rPDFx?=QRB)Y5P*ygp zTP^7<>LmYCk31Pi*|p>lZDEo0Fs5sE<1nG?bR|PscgqH6p+Ii|FLpaq=HpA71lM+Z z?=$r;pJ7vHzCHp=@%iac=CUg)4Tk+44nW_#CGNTw6?UlT)t`4e=Qtr*+3@+2@CQ?A zL)QA$y&ZQY;g}RBwF!)_J^%-zf~SdbB1q1x6JF2uS9;e%np%8t2#cU#8ofR5jc%rp5TE89D61SePIt@E%Hgs6hDfAx?dF)wr=A*5i(M7w2pT5 z;+A#fub*VrN+Tx)jZZ0Ls5ZR6wr#7jgUIN^nnOqz5uUzvNvoQa_@L?ox`!sEIpdzp z()d6TiDhBA=U@QRd&kBCabn>)LxFZ0vI5BE>`PKGv7Xw_Q5Hy6L)#+ce%WGTWJLu= zj|=4&ho;BU4Xd-PHg>$rxS_kkxa^v#CNbKs>4)WX=1AKV%!brZ>Etn{G!zI#*%HRg zAuR^&im6R=V7V!pM+=lD*FoNNNU7IW7sJ=Dx#Rl9`}u}-{2#mN46x3zJa4t1e?$K> z7t8VETPX#8;6VYiS9IWS6E_!E2Rki0TV^X)GrPY&_Nt@m;RaYRKz{j1j3Gs)gZ)CLVaecf#NZ`tY*yFqztZYgUd8^4q96KAG!o54wt%t zdZ>ZAi2kAL@9wbwQTJDC*yx#hV1AAQwbQLg+GJT_Wu zC%x5EpbC!5wng~y%f-$Yxw1`!Dt4}{q$1hx#PQyV>&#-+*FKq~#i@y2lI0Av==rMf zQ@?e)spU<$xCj|;J4>lU^*AF6gL)cC%486)7L!SiTf>#H#cXEB`}|WcX(zQRfh75z zk!=wU5$smIQ$|-HVTX<17&Bc{Cz=UQ=tEjPM@0V-?yB?*%DaYwx_o)3hS1x}8`wVw zw7FAWVHYUa7$_X)AHx4g{;Tu*U!$5GS8pH4f+6v>XW({koHY-^5+h6+gw|$B_A{Zo zAEhn%x_ETOyO#nVr^)Eo8rQ2OegdJxAbZ2ASvu-DDhe32O8)$itgc>84)QU+8a_cQ zNZ$59%26^N*Du>nqty#gOh^>BM2G3qHzyli7E>+c()Qe*P=|y1_~Y3^(|xYnkyvz_ zOlV0aPB>ImpS$FI#$d^RVgYxRI=`xOJ7t(Di=Mm8&$6vuoyetWaMMow1oSuqyK>yPMY9wBO^w>E13Cj+fMH4o~EO;Akok*7zJPN#1-1LWNUz zmOIAEvT-GMX);Y;l`T{j!7h*XWilGwcboU!8}JJG`}I07VGAi7!-eZAP`7kjjNwRb zYI*+_IkbhV{4T6{mKZ&rUur$^cHM{|b_ z+^6hmT_@EZ*iDsBYtj>td(8~be<9p4)ePTZl~o;P54MF?t;{QYW#fX|znyo>Qra}p zaO$cJqYf+IiGYVI?!dGOMyXvtkaVI_+JmIhBI3|gn!6ZT)~HkNcT!!-XC+tfvy_ra zpE`HG6OGIl50i_SB4sCXpfzTrpTP<%3*eRG=HWeCPEvs6rj)r1QRM1W^xOV^pYG?y zNdU`C>zf`(GfrP?0r4FrVNe0$og@K;;+waHeB3{g|n}Bs8$ZaYqu8o+>@NNyg z3iMYb&E2`v<@qne0uF`+NGQ=#iZ&yVdMN7gDqW?y(&zfk)NRtme)X>%#ogRr6({Qt zO=%g1*sWN-xBwqRITeK%pRwo8{S;uK0~RHZB{< zkTWT=oQlpg9pRQ?Nt9eifk`=vmIAXM{#kig(0|?fy%x9w*OKz?^dNH#PUVGRgiWg2 zsQf&Lepuv$hi_ZZ+_;2tR$M}B(~d;<{N2GrBt7S5eeHJ5z2KO67>cUiB6>LI1;FE~ z_aPQ}`O<8B?)b~NldAqWdN_v2A0MGxM#`9a=2o~Oxpzk`wWdeLedT@t)~0)Q_p19^ zUSB-A`&x7xy8pB0=aGY8F9~KS`)o|UAKmCZ{oyDaU%(LhOwSZ_n(~HIP$*{T-tK<- zzJDM!5r-Rx@g$aOa7NcZW8HY?!2{S%#I2sq!Pv`l>oL_LfZ1-a(^snfjibw{OvQpV z?;p`lKNV+9us&^1^W8Ro=6-?cfub_#KB{(tI#T91KM~IG{AHBNYJ24`g*_IKi{}E-|h^Gzo>zFyc&H(JzD9znyM2)WMCQW!dvY_aIrDW$Az*s z6l0&_4PK-E$lv;a|L2TVFt%*b4G97gL;?bW4VBUWJH;qEWhygv&$<|lIC`u2;W%Z*ZiK~dQ)+t0LQ2{-J%INDt3LrcF z8RQ{U!26>fL(MhINog*CPenpl3K|6-180QH`i4^g!vOqdW3vcWDJb6H`^DzkTTj;A zrppYk*Rg%UXo11t>@AuXEDHj-nY+k+Q_rM*bB!ZUrR)VJmn+CgYx}@1hz*z}!bCyi zqOnegZM)1iJVR6f$5;qQsxBNhF9D`sp!IHt(A&>S{5oKg$prfBsWEhtxP=Y&vPBvMcSDFPT}LgA+jSoDtc7>EaRBN}8*Y zYFewfXN@#5MuQm;aPl?Nl9|AG>>L?J=5%Z5TVx?CN_Z_d)KAy)d{0ngr0PxT6ke0A z!OI49^4u_QU#%9U7t;eF2|Vk_I7LXqP>Z*0|FgdO%hK!Yb^TFV=wP!vlJGrd?(EVi4bL@_I8 z%cXd|Q9h>iFcK&|k{wC5M4(#O$-B%_{*YbbIS4?hiXJ|Y^3)q{YGsd`2^@}shky|w z6x>7!nluEXP6~izMIiI++6e{Gfw+gWykY+;4E_UZg%<ByDt;_$eG6;uGbWPA*JxDG$c_`*e$754tX^ie zmkp~9m}^K}HHJASJ9}B`MRVwe#UDiWHnSwH_<`Y9P$qDZw9ZkeTI7Sc=_f=uk?ptt zYpWFgC8kF7eXy!MHQ|bh$QubRox_DX4=d&+WS(Ju!JhP_z4x^4CEoZam-^$UPTZb$ z_}LWBX>ac;&uKsBduF}x?e-;UX}vO2Z8JYjnX`M@xjog_-ZUMmUUPKYq)SHCm8HIK zAF2MRx+`}u`u*qiQ=WJP7oUE0tzE9}$;GX&<*I8QFIzsZ?%B=f^XeBCpT0Idt}gZV z>h*hnUb}65uX20#^L71p_dcJzSNq%k@0-(ynpc#*eN30E6I&mtng?b7&<_79^z(4~~ zjDaEA88{f6npYAZQdy8%91Cilp&L-C=I!tUsPrCi9GM%Y8%Q@W9s?QyY2$;N_UIZr z+PH%=fl4j{H436=d=3bH8~}|d%?0`$oA$g0X(1z^<)?vG$)H$%1US_Q)(-JGvLRSQ zp?9^Ib+v;?|-^igAkex3@be)KV9 zbR*FF-v}dE>#_F6(G5WF=pqcbi(&w_ZZEo7=zT|oS=SoS9fRmeqML%=)k2u^wh<|!{pjsMg#M0Jq%4NoIt=h;1?C`7t`cNO1ZIz_ZV(RuB6;HY literal 0 HcmV?d00001 diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/user/UserSimClustersEmbeddingCol.docx b/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/user/UserSimClustersEmbeddingCol.docx new file mode 100644 index 0000000000000000000000000000000000000000..ea8a41494bb45a0c27e82810c8517f4f5c376ea4 GIT binary patch literal 37603 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

      3kSLwcb)!p8Lzqb12#&RjroM|#!9XaIzNh$I> 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 F4*=*3N#6hf literal 0 HcmV?d00001 diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/user/UserSimClustersEmbeddingCol.scala b/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/user/UserSimClustersEmbeddingCol.scala deleted file mode 100644 index ebcf22a1d..000000000 --- a/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/user/UserSimClustersEmbeddingCol.scala +++ /dev/null @@ -1,73 +0,0 @@ -package com.twitter.representation_manager.columns.user - -import com.twitter.representation_manager.columns.ColumnConfigBase -import com.twitter.representation_manager.store.UserSimClustersEmbeddingStore -import com.twitter.representation_manager.thriftscala.SimClustersEmbeddingView -import com.twitter.simclusters_v2.thriftscala.InternalId -import com.twitter.simclusters_v2.thriftscala.SimClustersEmbedding -import com.twitter.simclusters_v2.thriftscala.SimClustersEmbeddingId -import com.twitter.stitch -import com.twitter.stitch.Stitch -import com.twitter.stitch.storehaus.StitchOfReadableStore -import com.twitter.strato.catalog.OpMetadata -import com.twitter.strato.config.AnyOf -import com.twitter.strato.config.ContactInfo -import com.twitter.strato.config.FromColumns -import com.twitter.strato.config.Policy -import com.twitter.strato.config.Prefix -import com.twitter.strato.data.Conv -import com.twitter.strato.data.Description.PlainText -import com.twitter.strato.data.Lifecycle -import com.twitter.strato.fed._ -import com.twitter.strato.thrift.ScroogeConv -import javax.inject.Inject - -class UserSimClustersEmbeddingCol @Inject() (embeddingStore: UserSimClustersEmbeddingStore) - extends StratoFed.Column("recommendations/representation_manager/simClustersEmbedding.User") - with StratoFed.Fetch.Stitch { - - private val storeStitch: SimClustersEmbeddingId => Stitch[SimClustersEmbedding] = - StitchOfReadableStore(embeddingStore.userSimClustersEmbeddingStore.mapValues(_.toThrift)) - - val colPermissions: Seq[com.twitter.strato.config.Policy] = - ColumnConfigBase.recosPermissions ++ ColumnConfigBase.externalPermissions :+ FromColumns( - Set( - Prefix("ml/featureStore/simClusters"), - )) - - override val policy: Policy = AnyOf({ - colPermissions - }) - - override type Key = Long // UserId - override type View = SimClustersEmbeddingView - override type Value = SimClustersEmbedding - - override val keyConv: Conv[Key] = Conv.long - override val viewConv: Conv[View] = ScroogeConv.fromStruct[SimClustersEmbeddingView] - override val valueConv: Conv[Value] = ScroogeConv.fromStruct[SimClustersEmbedding] - - override val contactInfo: ContactInfo = ColumnConfigBase.contactInfo - - override val metadata: OpMetadata = OpMetadata( - lifecycle = Some(Lifecycle.Production), - description = Some( - PlainText("The User SimClusters Embedding Endpoint in Representation Management Service." + - " TDD: http://go/rms-tdd")) - ) - - override def fetch(key: Key, view: View): Stitch[Result[Value]] = { - val embeddingId = SimClustersEmbeddingId( - view.embeddingType, - view.modelVersion, - InternalId.UserId(key) - ) - - storeStitch(embeddingId) - .map(embedding => found(embedding)) - .handle { - case stitch.NotFound => missing - } - } - -} diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/common/BUILD b/representation-manager/server/src/main/scala/com/twitter/representation_manager/common/BUILD deleted file mode 100644 index 62b8f5dd2..000000000 --- a/representation-manager/server/src/main/scala/com/twitter/representation_manager/common/BUILD +++ /dev/null @@ -1,13 +0,0 @@ -scala_library( - compiler_option_sets = ["fatal_warnings"], - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - "decider/src/main/scala", - "finagle/finagle-memcached", - "hermit/hermit-core/src/main/scala/com/twitter/hermit/store/common", - "relevance-platform/src/main/scala/com/twitter/relevance_platform/common/injection", - "src/scala/com/twitter/simclusters_v2/common", - "src/thrift/com/twitter/simclusters_v2:simclusters_v2-thrift-scala", - ], -) diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/common/BUILD.docx b/representation-manager/server/src/main/scala/com/twitter/representation_manager/common/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..4881bd7d79f0654e41cf8bcdfdfdc9c17ce1504a GIT binary patch literal 36868 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 aDYi8`G%;iYX3+Yq;)B=&)1!p2{_Fp~qx59} literal 0 HcmV?d00001 diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/common/MemCacheConfig.scala b/representation-manager/server/src/main/scala/com/twitter/representation_manager/common/MemCacheConfig.scala deleted file mode 100644 index 4741edb2d..000000000 --- a/representation-manager/server/src/main/scala/com/twitter/representation_manager/common/MemCacheConfig.scala +++ /dev/null @@ -1,153 +0,0 @@ -package com.twitter.representation_manager.common - -import com.twitter.bijection.scrooge.BinaryScalaCodec -import com.twitter.conversions.DurationOps._ -import com.twitter.finagle.memcached.Client -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.hashing.KeyHasher -import com.twitter.hermit.store.common.ObservedMemcachedReadableStore -import com.twitter.relevance_platform.common.injection.LZ4Injection -import com.twitter.simclusters_v2.common.SimClustersEmbedding -import com.twitter.simclusters_v2.common.SimClustersEmbeddingIdCacheKeyBuilder -import com.twitter.simclusters_v2.thriftscala.EmbeddingType -import com.twitter.simclusters_v2.thriftscala.EmbeddingType._ -import com.twitter.simclusters_v2.thriftscala.ModelVersion -import com.twitter.simclusters_v2.thriftscala.ModelVersion._ -import com.twitter.simclusters_v2.thriftscala.SimClustersEmbeddingId -import com.twitter.simclusters_v2.thriftscala.{SimClustersEmbedding => ThriftSimClustersEmbedding} -import com.twitter.storehaus.ReadableStore -import com.twitter.util.Duration - -/* - * NOTE - ALL the cache configs here are just placeholders, NONE of them is used anyweher in RMS yet - * */ -sealed trait MemCacheParams -sealed trait MemCacheConfig - -/* - * This holds params that is required to set up a memcache cache for a single embedding store - * */ -case class EnabledMemCacheParams(ttl: Duration) extends MemCacheParams -object DisabledMemCacheParams extends MemCacheParams - -/* - * We use this MemcacheConfig as the single source to set up the memcache for all RMS use cases - * NO OVERRIDE FROM CLIENT - * */ -object MemCacheConfig { - val keyHasher: KeyHasher = KeyHasher.FNV1A_64 - val hashKeyPrefix: String = "RMS" - val simclustersEmbeddingCacheKeyBuilder = - SimClustersEmbeddingIdCacheKeyBuilder(keyHasher.hashKey, hashKeyPrefix) - - val cacheParamsMap: Map[ - (EmbeddingType, ModelVersion), - MemCacheParams - ] = Map( - // Tweet Embeddings - (LogFavBasedTweet, Model20m145kUpdated) -> EnabledMemCacheParams(ttl = 10.minutes), - (LogFavBasedTweet, Model20m145k2020) -> EnabledMemCacheParams(ttl = 10.minutes), - (LogFavLongestL2EmbeddingTweet, Model20m145kUpdated) -> EnabledMemCacheParams(ttl = 10.minutes), - (LogFavLongestL2EmbeddingTweet, Model20m145k2020) -> EnabledMemCacheParams(ttl = 10.minutes), - // User - KnownFor Embeddings - (FavBasedProducer, Model20m145kUpdated) -> EnabledMemCacheParams(ttl = 12.hours), - (FavBasedProducer, Model20m145k2020) -> EnabledMemCacheParams(ttl = 12.hours), - (FollowBasedProducer, Model20m145k2020) -> EnabledMemCacheParams(ttl = 12.hours), - (AggregatableLogFavBasedProducer, Model20m145k2020) -> EnabledMemCacheParams(ttl = 12.hours), - (RelaxedAggregatableLogFavBasedProducer, Model20m145kUpdated) -> EnabledMemCacheParams(ttl = - 12.hours), - (RelaxedAggregatableLogFavBasedProducer, Model20m145k2020) -> EnabledMemCacheParams(ttl = - 12.hours), - // User - InterestedIn Embeddings - (LogFavBasedUserInterestedInFromAPE, Model20m145k2020) -> EnabledMemCacheParams(ttl = 12.hours), - (FollowBasedUserInterestedInFromAPE, Model20m145k2020) -> EnabledMemCacheParams(ttl = 12.hours), - (FavBasedUserInterestedIn, Model20m145kUpdated) -> EnabledMemCacheParams(ttl = 12.hours), - (FavBasedUserInterestedIn, Model20m145k2020) -> EnabledMemCacheParams(ttl = 12.hours), - (FollowBasedUserInterestedIn, Model20m145k2020) -> EnabledMemCacheParams(ttl = 12.hours), - (LogFavBasedUserInterestedIn, Model20m145k2020) -> EnabledMemCacheParams(ttl = 12.hours), - (FavBasedUserInterestedInFromPE, Model20m145kUpdated) -> EnabledMemCacheParams(ttl = 12.hours), - (FilteredUserInterestedIn, Model20m145kUpdated) -> EnabledMemCacheParams(ttl = 12.hours), - (FilteredUserInterestedIn, Model20m145k2020) -> EnabledMemCacheParams(ttl = 12.hours), - (FilteredUserInterestedInFromPE, Model20m145kUpdated) -> EnabledMemCacheParams(ttl = 12.hours), - (UnfilteredUserInterestedIn, Model20m145kUpdated) -> EnabledMemCacheParams(ttl = 12.hours), - (UnfilteredUserInterestedIn, Model20m145k2020) -> EnabledMemCacheParams(ttl = 12.hours), - (UserNextInterestedIn, Model20m145k2020) -> EnabledMemCacheParams(ttl = - 30.minutes), //embedding is updated every 2 hours, keeping it lower to avoid staleness - ( - LogFavBasedUserInterestedMaxpoolingAddressBookFromIIAPE, - Model20m145k2020) -> EnabledMemCacheParams(ttl = 12.hours), - ( - LogFavBasedUserInterestedAverageAddressBookFromIIAPE, - Model20m145k2020) -> EnabledMemCacheParams(ttl = 12.hours), - ( - LogFavBasedUserInterestedBooktypeMaxpoolingAddressBookFromIIAPE, - Model20m145k2020) -> EnabledMemCacheParams(ttl = 12.hours), - ( - LogFavBasedUserInterestedLargestDimMaxpoolingAddressBookFromIIAPE, - Model20m145k2020) -> EnabledMemCacheParams(ttl = 12.hours), - ( - LogFavBasedUserInterestedLouvainMaxpoolingAddressBookFromIIAPE, - Model20m145k2020) -> EnabledMemCacheParams(ttl = 12.hours), - ( - LogFavBasedUserInterestedConnectedMaxpoolingAddressBookFromIIAPE, - Model20m145k2020) -> EnabledMemCacheParams(ttl = 12.hours), - // Topic Embeddings - (FavTfgTopic, Model20m145k2020) -> EnabledMemCacheParams(ttl = 12.hours), - (LogFavBasedKgoApeTopic, Model20m145k2020) -> EnabledMemCacheParams(ttl = 12.hours), - ) - - def getCacheSetup( - embeddingType: EmbeddingType, - modelVersion: ModelVersion - ): MemCacheParams = { - // When requested (embeddingType, modelVersion) doesn't exist, we return DisabledMemCacheParams - cacheParamsMap.getOrElse((embeddingType, modelVersion), DisabledMemCacheParams) - } - - def getCacheKeyPrefix(embeddingType: EmbeddingType, modelVersion: ModelVersion) = - s"${embeddingType.value}_${modelVersion.value}_" - - def getStatsName(embeddingType: EmbeddingType, modelVersion: ModelVersion) = - s"${embeddingType.name}_${modelVersion.name}_mem_cache" - - /** - * Build a ReadableStore based on MemCacheConfig. - * - * If memcache is disabled, it will return a normal readable store wrapper of the rawStore, - * with SimClustersEmbedding as value; - * If memcache is enabled, it will return a ObservedMemcachedReadableStore wrapper of the rawStore, - * with memcache set up according to the EnabledMemCacheParams - * */ - def buildMemCacheStoreForSimClustersEmbedding( - rawStore: ReadableStore[SimClustersEmbeddingId, ThriftSimClustersEmbedding], - cacheClient: Client, - embeddingType: EmbeddingType, - modelVersion: ModelVersion, - stats: StatsReceiver - ): ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] = { - val cacheParams = getCacheSetup(embeddingType, modelVersion) - val store = cacheParams match { - case DisabledMemCacheParams => rawStore - case EnabledMemCacheParams(ttl) => - val memCacheKeyPrefix = MemCacheConfig.getCacheKeyPrefix( - embeddingType, - modelVersion - ) - val statsName = MemCacheConfig.getStatsName( - embeddingType, - modelVersion - ) - ObservedMemcachedReadableStore.fromCacheClient( - backingStore = rawStore, - cacheClient = cacheClient, - ttl = ttl - )( - valueInjection = LZ4Injection.compose(BinaryScalaCodec(ThriftSimClustersEmbedding)), - statsReceiver = stats.scope(statsName), - keyToString = { k => memCacheKeyPrefix + k.toString } - ) - } - store.mapValues(SimClustersEmbedding(_)) - } - -} diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/common/RepresentationManagerDecider.docx b/representation-manager/server/src/main/scala/com/twitter/representation_manager/common/RepresentationManagerDecider.docx new file mode 100644 index 0000000000000000000000000000000000000000..d265d98a13f29eb32bf861533034d267c70ea5f0 GIT binary patch literal 37031 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 literal 0 HcmV?d00001 diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/common/RepresentationManagerDecider.scala b/representation-manager/server/src/main/scala/com/twitter/representation_manager/common/RepresentationManagerDecider.scala deleted file mode 100644 index 97179e25f..000000000 --- a/representation-manager/server/src/main/scala/com/twitter/representation_manager/common/RepresentationManagerDecider.scala +++ /dev/null @@ -1,25 +0,0 @@ -package com.twitter.representation_manager.common - -import com.twitter.decider.Decider -import com.twitter.decider.RandomRecipient -import com.twitter.decider.Recipient -import com.twitter.simclusters_v2.common.DeciderGateBuilderWithIdHashing -import javax.inject.Inject - -case class RepresentationManagerDecider @Inject() (decider: Decider) { - - val deciderGateBuilder = new DeciderGateBuilderWithIdHashing(decider) - - def isAvailable(feature: String, recipient: Option[Recipient]): Boolean = { - decider.isAvailable(feature, recipient) - } - - /** - * When useRandomRecipient is set to false, the decider is either completely on or off. - * When useRandomRecipient is set to true, the decider is on for the specified % of traffic. - */ - def isAvailable(feature: String, useRandomRecipient: Boolean = true): Boolean = { - if (useRandomRecipient) isAvailable(feature, Some(RandomRecipient)) - else isAvailable(feature, None) - } -} diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/migration/BUILD b/representation-manager/server/src/main/scala/com/twitter/representation_manager/migration/BUILD deleted file mode 100644 index d8bf04fc0..000000000 --- a/representation-manager/server/src/main/scala/com/twitter/representation_manager/migration/BUILD +++ /dev/null @@ -1,25 +0,0 @@ -scala_library( - compiler_option_sets = ["fatal_warnings"], - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - "content-recommender/server/src/main/scala/com/twitter/contentrecommender:representation-manager-deps", - "frigate/frigate-common/src/main/scala/com/twitter/frigate/common/store/strato", - "frigate/frigate-common/src/main/scala/com/twitter/frigate/common/util", - "hermit/hermit-core/src/main/scala/com/twitter/hermit/store/common", - "relevance-platform/src/main/scala/com/twitter/relevance_platform/common/injection", - "relevance-platform/src/main/scala/com/twitter/relevance_platform/common/readablestore", - "representation-manager/server/src/main/scala/com/twitter/representation_manager/common", - "representation-manager/server/src/main/scala/com/twitter/representation_manager/store", - "src/scala/com/twitter/ml/api/embedding", - "src/scala/com/twitter/simclusters_v2/common", - "src/scala/com/twitter/simclusters_v2/score", - "src/scala/com/twitter/simclusters_v2/summingbird/stores", - "src/scala/com/twitter/storehaus_internal/manhattan", - "src/scala/com/twitter/storehaus_internal/util", - "src/thrift/com/twitter/simclusters_v2:simclusters_v2-thrift-scala", - "src/thrift/com/twitter/socialgraph:thrift-scala", - "storage/clients/manhattan/client/src/main/scala", - "tweetypie/src/scala/com/twitter/tweetypie/util", - ], -) diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/migration/BUILD.docx b/representation-manager/server/src/main/scala/com/twitter/representation_manager/migration/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..d7a22b4222cbd2a0d49a3d89034fd15e5ed31abf GIT binary patch literal 37050 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 literal 0 HcmV?d00001 diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/migration/LegacyRMS.scala b/representation-manager/server/src/main/scala/com/twitter/representation_manager/migration/LegacyRMS.scala deleted file mode 100644 index 378f33594..000000000 --- a/representation-manager/server/src/main/scala/com/twitter/representation_manager/migration/LegacyRMS.scala +++ /dev/null @@ -1,846 +0,0 @@ -package com.twitter.representation_manager.migration - -import com.twitter.bijection.Injection -import com.twitter.bijection.scrooge.BinaryScalaCodec -import com.twitter.contentrecommender.store.ApeEntityEmbeddingStore -import com.twitter.contentrecommender.store.InterestsOptOutStore -import com.twitter.contentrecommender.store.SemanticCoreTopicSeedStore -import com.twitter.contentrecommender.twistly -import com.twitter.conversions.DurationOps._ -import com.twitter.decider.Decider -import com.twitter.escherbird.util.uttclient.CacheConfigV2 -import com.twitter.escherbird.util.uttclient.CachedUttClientV2 -import com.twitter.escherbird.util.uttclient.UttClientCacheConfigsV2 -import com.twitter.escherbird.utt.strato.thriftscala.Environment -import com.twitter.finagle.ThriftMux -import com.twitter.finagle.memcached.Client -import com.twitter.finagle.mtls.authentication.ServiceIdentifier -import com.twitter.finagle.mtls.client.MtlsStackClient.MtlsThriftMuxClientSyntax -import com.twitter.finagle.mux.ClientDiscardedRequestException -import com.twitter.finagle.service.ReqRep -import com.twitter.finagle.service.ResponseClass -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.finagle.thrift.ClientId -import com.twitter.frigate.common.store.strato.StratoFetchableStore -import com.twitter.frigate.common.util.SeqLongInjection -import com.twitter.hashing.KeyHasher -import com.twitter.hermit.store.common.DeciderableReadableStore -import com.twitter.hermit.store.common.ObservedCachedReadableStore -import com.twitter.hermit.store.common.ObservedMemcachedReadableStore -import com.twitter.hermit.store.common.ObservedReadableStore -import com.twitter.interests.thriftscala.InterestsThriftService -import com.twitter.relevance_platform.common.injection.LZ4Injection -import com.twitter.relevance_platform.common.readablestore.ReadableStoreWithTimeout -import com.twitter.representation_manager.common.RepresentationManagerDecider -import com.twitter.representation_manager.store.DeciderConstants -import com.twitter.representation_manager.store.DeciderKey -import com.twitter.simclusters_v2.common.ModelVersions -import com.twitter.simclusters_v2.common.SimClustersEmbedding -import com.twitter.simclusters_v2.common.SimClustersEmbeddingIdCacheKeyBuilder -import com.twitter.simclusters_v2.stores.SimClustersEmbeddingStore -import com.twitter.simclusters_v2.summingbird.stores.PersistentTweetEmbeddingStore -import com.twitter.simclusters_v2.summingbird.stores.ProducerClusterEmbeddingReadableStores -import com.twitter.simclusters_v2.summingbird.stores.UserInterestedInReadableStore -import com.twitter.simclusters_v2.thriftscala.ClustersUserIsInterestedIn -import com.twitter.simclusters_v2.thriftscala.EmbeddingType -import com.twitter.simclusters_v2.thriftscala.EmbeddingType._ -import com.twitter.simclusters_v2.thriftscala.InternalId -import com.twitter.simclusters_v2.thriftscala.ModelVersion -import com.twitter.simclusters_v2.thriftscala.ModelVersion.Model20m145k2020 -import com.twitter.simclusters_v2.thriftscala.ModelVersion.Model20m145kUpdated -import com.twitter.simclusters_v2.thriftscala.SimClustersEmbeddingId -import com.twitter.simclusters_v2.thriftscala.SimClustersMultiEmbedding -import com.twitter.simclusters_v2.thriftscala.SimClustersMultiEmbeddingId -import com.twitter.simclusters_v2.thriftscala.{SimClustersEmbedding => ThriftSimClustersEmbedding} -import com.twitter.storage.client.manhattan.kv.ManhattanKVClientMtlsParams -import com.twitter.storehaus.ReadableStore -import com.twitter.storehaus_internal.manhattan.Athena -import com.twitter.storehaus_internal.manhattan.ManhattanRO -import com.twitter.storehaus_internal.manhattan.ManhattanROConfig -import com.twitter.storehaus_internal.util.ApplicationID -import com.twitter.storehaus_internal.util.DatasetName -import com.twitter.storehaus_internal.util.HDFSPath -import com.twitter.strato.client.Strato -import com.twitter.strato.client.{Client => StratoClient} -import com.twitter.strato.thrift.ScroogeConvImplicits._ -import com.twitter.tweetypie.util.UserId -import com.twitter.util.Duration -import com.twitter.util.Future -import com.twitter.util.Throw -import com.twitter.util.Timer -import javax.inject.Inject -import javax.inject.Named -import scala.reflect.ClassTag - -class LegacyRMS @Inject() ( - serviceIdentifier: ServiceIdentifier, - cacheClient: Client, - stats: StatsReceiver, - decider: Decider, - clientId: ClientId, - timer: Timer, - @Named("cacheHashKeyPrefix") val cacheHashKeyPrefix: String = "RMS", - @Named("useContentRecommenderConfiguration") val useContentRecommenderConfiguration: Boolean = - false) { - - private val mhMtlsParams: ManhattanKVClientMtlsParams = ManhattanKVClientMtlsParams( - serviceIdentifier) - private val rmsDecider = RepresentationManagerDecider(decider) - val keyHasher: KeyHasher = KeyHasher.FNV1A_64 - - private val embeddingCacheKeyBuilder = - SimClustersEmbeddingIdCacheKeyBuilder(keyHasher.hashKey, cacheHashKeyPrefix) - private val statsReceiver = stats.scope("representation_management") - - // Strato client, default timeout = 280ms - val stratoClient: StratoClient = - Strato.client - .withMutualTls(serviceIdentifier) - .build() - - // Builds ThriftMux client builder for Content-Recommender service - private def makeThriftClientBuilder( - requestTimeout: Duration - ): ThriftMux.Client = { - ThriftMux.client - .withClientId(clientId) - .withMutualTls(serviceIdentifier) - .withRequestTimeout(requestTimeout) - .withStatsReceiver(statsReceiver.scope("clnt")) - .withResponseClassifier { - case ReqRep(_, Throw(_: ClientDiscardedRequestException)) => ResponseClass.Ignorable - } - } - - private def makeThriftClient[ThriftServiceType: ClassTag]( - dest: String, - label: String, - requestTimeout: Duration = 450.milliseconds - ): ThriftServiceType = { - makeThriftClientBuilder(requestTimeout) - .build[ThriftServiceType](dest, label) - } - - /** *** SimCluster Embedding Stores ******/ - implicit val simClustersEmbeddingIdInjection: Injection[SimClustersEmbeddingId, Array[Byte]] = - BinaryScalaCodec(SimClustersEmbeddingId) - implicit val simClustersEmbeddingInjection: Injection[ThriftSimClustersEmbedding, Array[Byte]] = - BinaryScalaCodec(ThriftSimClustersEmbedding) - implicit val simClustersMultiEmbeddingInjection: Injection[SimClustersMultiEmbedding, Array[ - Byte - ]] = - BinaryScalaCodec(SimClustersMultiEmbedding) - implicit val simClustersMultiEmbeddingIdInjection: Injection[SimClustersMultiEmbeddingId, Array[ - Byte - ]] = - BinaryScalaCodec(SimClustersMultiEmbeddingId) - - def getEmbeddingsDataset( - mhMtlsParams: ManhattanKVClientMtlsParams, - datasetName: String - ): ReadableStore[SimClustersEmbeddingId, ThriftSimClustersEmbedding] = { - ManhattanRO.getReadableStoreWithMtls[SimClustersEmbeddingId, ThriftSimClustersEmbedding]( - ManhattanROConfig( - HDFSPath(""), // not needed - ApplicationID("content_recommender_athena"), - DatasetName(datasetName), // this should be correct - Athena - ), - mhMtlsParams - ) - } - - lazy val logFavBasedLongestL2Tweet20M145K2020EmbeddingStore: ReadableStore[ - SimClustersEmbeddingId, - SimClustersEmbedding - ] = { - val rawStore = - PersistentTweetEmbeddingStore - .longestL2NormTweetEmbeddingStoreManhattan( - mhMtlsParams, - PersistentTweetEmbeddingStore.LogFavBased20m145k2020Dataset, - statsReceiver, - maxLength = 10, - ).mapValues(_.toThrift) - - val memcachedStore = ObservedMemcachedReadableStore.fromCacheClient( - backingStore = rawStore, - cacheClient = cacheClient, - ttl = 15.minutes - )( - valueInjection = LZ4Injection.compose(BinaryScalaCodec(ThriftSimClustersEmbedding)), - statsReceiver = - statsReceiver.scope("log_fav_based_longest_l2_tweet_embedding_20m145k2020_mem_cache"), - keyToString = { k => - s"scez_l2:${LogFavBasedTweet}_${ModelVersions.Model20M145K2020}_$k" - } - ) - - val inMemoryCacheStore: ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] = - memcachedStore - .composeKeyMapping[SimClustersEmbeddingId] { - case SimClustersEmbeddingId( - LogFavLongestL2EmbeddingTweet, - Model20m145k2020, - InternalId.TweetId(tweetId)) => - tweetId - } - .mapValues(SimClustersEmbedding(_)) - - ObservedCachedReadableStore.from[SimClustersEmbeddingId, SimClustersEmbedding]( - inMemoryCacheStore, - ttl = 12.minute, - maxKeys = 1048575, - cacheName = "log_fav_based_longest_l2_tweet_embedding_20m145k2020_cache", - windowSize = 10000L - )(statsReceiver.scope("log_fav_based_longest_l2_tweet_embedding_20m145k2020_store")) - } - - lazy val logFavBased20M145KUpdatedTweetEmbeddingStore: ReadableStore[ - SimClustersEmbeddingId, - SimClustersEmbedding - ] = { - val rawStore = - PersistentTweetEmbeddingStore - .mostRecentTweetEmbeddingStoreManhattan( - mhMtlsParams, - PersistentTweetEmbeddingStore.LogFavBased20m145kUpdatedDataset, - statsReceiver - ).mapValues(_.toThrift) - - val memcachedStore = ObservedMemcachedReadableStore.fromCacheClient( - backingStore = rawStore, - cacheClient = cacheClient, - ttl = 10.minutes - )( - valueInjection = LZ4Injection.compose(BinaryScalaCodec(ThriftSimClustersEmbedding)), - statsReceiver = statsReceiver.scope("log_fav_based_tweet_embedding_mem_cache"), - keyToString = { k => - // SimClusters_embedding_LZ4/embeddingType_modelVersion_tweetId - s"scez:${LogFavBasedTweet}_${ModelVersions.Model20M145KUpdated}_$k" - } - ) - - val inMemoryCacheStore: ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] = { - memcachedStore - .composeKeyMapping[SimClustersEmbeddingId] { - case SimClustersEmbeddingId( - LogFavBasedTweet, - Model20m145kUpdated, - InternalId.TweetId(tweetId)) => - tweetId - } - .mapValues(SimClustersEmbedding(_)) - } - - ObservedCachedReadableStore.from[SimClustersEmbeddingId, SimClustersEmbedding]( - inMemoryCacheStore, - ttl = 5.minute, - maxKeys = 1048575, // 200MB - cacheName = "log_fav_based_tweet_embedding_cache", - windowSize = 10000L - )(statsReceiver.scope("log_fav_based_tweet_embedding_store")) - } - - lazy val logFavBased20M145K2020TweetEmbeddingStore: ReadableStore[ - SimClustersEmbeddingId, - SimClustersEmbedding - ] = { - val rawStore = - PersistentTweetEmbeddingStore - .mostRecentTweetEmbeddingStoreManhattan( - mhMtlsParams, - PersistentTweetEmbeddingStore.LogFavBased20m145k2020Dataset, - statsReceiver, - maxLength = 10, - ).mapValues(_.toThrift) - - val memcachedStore = ObservedMemcachedReadableStore.fromCacheClient( - backingStore = rawStore, - cacheClient = cacheClient, - ttl = 15.minutes - )( - valueInjection = LZ4Injection.compose(BinaryScalaCodec(ThriftSimClustersEmbedding)), - statsReceiver = statsReceiver.scope("log_fav_based_tweet_embedding_20m145k2020_mem_cache"), - keyToString = { k => - // SimClusters_embedding_LZ4/embeddingType_modelVersion_tweetId - s"scez:${LogFavBasedTweet}_${ModelVersions.Model20M145K2020}_$k" - } - ) - - val inMemoryCacheStore: ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] = - memcachedStore - .composeKeyMapping[SimClustersEmbeddingId] { - case SimClustersEmbeddingId( - LogFavBasedTweet, - Model20m145k2020, - InternalId.TweetId(tweetId)) => - tweetId - } - .mapValues(SimClustersEmbedding(_)) - - ObservedCachedReadableStore.from[SimClustersEmbeddingId, SimClustersEmbedding]( - inMemoryCacheStore, - ttl = 12.minute, - maxKeys = 16777215, - cacheName = "log_fav_based_tweet_embedding_20m145k2020_cache", - windowSize = 10000L - )(statsReceiver.scope("log_fav_based_tweet_embedding_20m145k2020_store")) - } - - lazy val favBasedTfgTopicEmbedding2020Store: ReadableStore[ - SimClustersEmbeddingId, - SimClustersEmbedding - ] = { - val stratoStore = - StratoFetchableStore - .withUnitView[SimClustersEmbeddingId, ThriftSimClustersEmbedding]( - stratoClient, - "recommendations/simclusters_v2/embeddings/favBasedTFGTopic20M145K2020") - - val truncatedStore = stratoStore.mapValues { embedding => - SimClustersEmbedding(embedding, truncate = 50) - } - - ObservedCachedReadableStore.from( - ObservedReadableStore(truncatedStore)( - statsReceiver.scope("fav_tfg_topic_embedding_2020_cache_backing_store")), - ttl = 12.hours, - maxKeys = 262143, // 200MB - cacheName = "fav_tfg_topic_embedding_2020_cache", - windowSize = 10000L - )(statsReceiver.scope("fav_tfg_topic_embedding_2020_cache")) - } - - lazy val logFavBasedApe20M145K2020EmbeddingStore: ReadableStore[ - SimClustersEmbeddingId, - SimClustersEmbedding - ] = { - ObservedReadableStore( - StratoFetchableStore - .withUnitView[SimClustersEmbeddingId, ThriftSimClustersEmbedding]( - stratoClient, - "recommendations/simclusters_v2/embeddings/logFavBasedAPE20M145K2020") - .composeKeyMapping[SimClustersEmbeddingId] { - case SimClustersEmbeddingId( - AggregatableLogFavBasedProducer, - Model20m145k2020, - internalId) => - SimClustersEmbeddingId(AggregatableLogFavBasedProducer, Model20m145k2020, internalId) - } - .mapValues(embedding => SimClustersEmbedding(embedding, 50)) - )(statsReceiver.scope("aggregatable_producer_embeddings_by_logfav_score_2020")) - } - - val interestService: InterestsThriftService.MethodPerEndpoint = - makeThriftClient[InterestsThriftService.MethodPerEndpoint]( - "/s/interests-thrift-service/interests-thrift-service", - "interests_thrift_service" - ) - - val interestsOptOutStore: InterestsOptOutStore = InterestsOptOutStore(interestService) - - // Save 2 ^ 18 UTTs. Promising 100% cache rate - lazy val defaultCacheConfigV2: CacheConfigV2 = CacheConfigV2(262143) - lazy val uttClientCacheConfigsV2: UttClientCacheConfigsV2 = UttClientCacheConfigsV2( - getTaxonomyConfig = defaultCacheConfigV2, - getUttTaxonomyConfig = defaultCacheConfigV2, - getLeafIds = defaultCacheConfigV2, - getLeafUttEntities = defaultCacheConfigV2 - ) - - // CachedUttClient to use StratoClient - lazy val cachedUttClientV2: CachedUttClientV2 = new CachedUttClientV2( - stratoClient = stratoClient, - env = Environment.Prod, - cacheConfigs = uttClientCacheConfigsV2, - statsReceiver = statsReceiver.scope("cached_utt_client") - ) - - lazy val semanticCoreTopicSeedStore: ReadableStore[ - SemanticCoreTopicSeedStore.Key, - Seq[UserId] - ] = { - /* - Up to 1000 Long seeds per topic/language = 62.5kb per topic/language (worst case) - Assume ~10k active topic/languages ~= 650MB (worst case) - */ - val underlying = new SemanticCoreTopicSeedStore(cachedUttClientV2, interestsOptOutStore)( - statsReceiver.scope("semantic_core_topic_seed_store")) - - val memcacheStore = ObservedMemcachedReadableStore.fromCacheClient( - backingStore = underlying, - cacheClient = cacheClient, - ttl = 12.hours - )( - valueInjection = SeqLongInjection, - statsReceiver = statsReceiver.scope("topic_producer_seed_store_mem_cache"), - keyToString = { k => s"tpss:${k.entityId}_${k.languageCode}" } - ) - - ObservedCachedReadableStore.from[SemanticCoreTopicSeedStore.Key, Seq[UserId]]( - store = memcacheStore, - ttl = 6.hours, - maxKeys = 20e3.toInt, - cacheName = "topic_producer_seed_store_cache", - windowSize = 5000 - )(statsReceiver.scope("topic_producer_seed_store_cache")) - } - - lazy val logFavBasedApeEntity20M145K2020EmbeddingStore: ApeEntityEmbeddingStore = { - val apeStore = logFavBasedApe20M145K2020EmbeddingStore.composeKeyMapping[UserId]({ id => - SimClustersEmbeddingId( - AggregatableLogFavBasedProducer, - Model20m145k2020, - InternalId.UserId(id)) - }) - - new ApeEntityEmbeddingStore( - semanticCoreSeedStore = semanticCoreTopicSeedStore, - aggregatableProducerEmbeddingStore = apeStore, - statsReceiver = statsReceiver.scope("log_fav_based_ape_entity_2020_embedding_store")) - } - - lazy val logFavBasedApeEntity20M145K2020EmbeddingCachedStore: ReadableStore[ - SimClustersEmbeddingId, - SimClustersEmbedding - ] = { - val truncatedStore = - logFavBasedApeEntity20M145K2020EmbeddingStore.mapValues(_.truncate(50).toThrift) - - val memcachedStore = ObservedMemcachedReadableStore - .fromCacheClient( - backingStore = truncatedStore, - cacheClient = cacheClient, - ttl = 12.hours - )( - valueInjection = LZ4Injection.compose(BinaryScalaCodec(ThriftSimClustersEmbedding)), - statsReceiver = statsReceiver.scope("log_fav_based_ape_entity_2020_embedding_mem_cache"), - keyToString = { k => embeddingCacheKeyBuilder.apply(k) } - ).mapValues(SimClustersEmbedding(_)) - - val inMemoryCachedStore = - ObservedCachedReadableStore.from[SimClustersEmbeddingId, SimClustersEmbedding]( - memcachedStore, - ttl = 6.hours, - maxKeys = 262143, - cacheName = "log_fav_based_ape_entity_2020_embedding_cache", - windowSize = 10000L - )(statsReceiver.scope("log_fav_based_ape_entity_2020_embedding_cached_store")) - - DeciderableReadableStore( - inMemoryCachedStore, - rmsDecider.deciderGateBuilder.idGateWithHashing[SimClustersEmbeddingId]( - DeciderKey.enableLogFavBasedApeEntity20M145K2020EmbeddingCachedStore), - statsReceiver.scope("log_fav_based_ape_entity_2020_embedding_deciderable_store") - ) - } - - lazy val relaxedLogFavBasedApe20M145K2020EmbeddingStore: ReadableStore[ - SimClustersEmbeddingId, - SimClustersEmbedding - ] = { - ObservedReadableStore( - StratoFetchableStore - .withUnitView[SimClustersEmbeddingId, ThriftSimClustersEmbedding]( - stratoClient, - "recommendations/simclusters_v2/embeddings/logFavBasedAPERelaxedFavEngagementThreshold20M145K2020") - .composeKeyMapping[SimClustersEmbeddingId] { - case SimClustersEmbeddingId( - RelaxedAggregatableLogFavBasedProducer, - Model20m145k2020, - internalId) => - SimClustersEmbeddingId( - RelaxedAggregatableLogFavBasedProducer, - Model20m145k2020, - internalId) - } - .mapValues(embedding => SimClustersEmbedding(embedding).truncate(50)) - )(statsReceiver.scope( - "aggregatable_producer_embeddings_by_logfav_score_relaxed_fav_engagement_threshold_2020")) - } - - lazy val relaxedLogFavBasedApe20M145K2020EmbeddingCachedStore: ReadableStore[ - SimClustersEmbeddingId, - SimClustersEmbedding - ] = { - val truncatedStore = - relaxedLogFavBasedApe20M145K2020EmbeddingStore.mapValues(_.truncate(50).toThrift) - - val memcachedStore = ObservedMemcachedReadableStore - .fromCacheClient( - backingStore = truncatedStore, - cacheClient = cacheClient, - ttl = 12.hours - )( - valueInjection = LZ4Injection.compose(BinaryScalaCodec(ThriftSimClustersEmbedding)), - statsReceiver = - statsReceiver.scope("relaxed_log_fav_based_ape_entity_2020_embedding_mem_cache"), - keyToString = { k: SimClustersEmbeddingId => embeddingCacheKeyBuilder.apply(k) } - ).mapValues(SimClustersEmbedding(_)) - - ObservedCachedReadableStore.from[SimClustersEmbeddingId, SimClustersEmbedding]( - memcachedStore, - ttl = 6.hours, - maxKeys = 262143, - cacheName = "relaxed_log_fav_based_ape_entity_2020_embedding_cache", - windowSize = 10000L - )(statsReceiver.scope("relaxed_log_fav_based_ape_entity_2020_embedding_cache_store")) - } - - lazy val favBasedProducer20M145K2020EmbeddingStore: ReadableStore[ - SimClustersEmbeddingId, - SimClustersEmbedding - ] = { - val underlyingStore = ProducerClusterEmbeddingReadableStores - .getProducerTopKSimClusters2020EmbeddingsStore( - mhMtlsParams - ).composeKeyMapping[SimClustersEmbeddingId] { - case SimClustersEmbeddingId( - FavBasedProducer, - Model20m145k2020, - InternalId.UserId(userId)) => - userId - }.mapValues { topSimClustersWithScore => - ThriftSimClustersEmbedding(topSimClustersWithScore.topClusters.take(10)) - } - - // same memcache config as for favBasedUserInterestedIn20M145K2020Store - val memcachedStore = ObservedMemcachedReadableStore - .fromCacheClient( - backingStore = underlyingStore, - cacheClient = cacheClient, - ttl = 24.hours - )( - valueInjection = LZ4Injection.compose(BinaryScalaCodec(ThriftSimClustersEmbedding)), - statsReceiver = statsReceiver.scope("fav_based_producer_embedding_20M_145K_2020_mem_cache"), - keyToString = { k => embeddingCacheKeyBuilder.apply(k) } - ).mapValues(SimClustersEmbedding(_)) - - ObservedCachedReadableStore.from[SimClustersEmbeddingId, SimClustersEmbedding]( - memcachedStore, - ttl = 12.hours, - maxKeys = 16777215, - cacheName = "fav_based_producer_embedding_20M_145K_2020_embedding_cache", - windowSize = 10000L - )(statsReceiver.scope("fav_based_producer_embedding_20M_145K_2020_embedding_store")) - } - - // Production - lazy val interestedIn20M145KUpdatedStore: ReadableStore[UserId, ClustersUserIsInterestedIn] = { - UserInterestedInReadableStore.defaultStoreWithMtls( - mhMtlsParams, - modelVersion = ModelVersions.Model20M145KUpdated - ) - } - - // Production - lazy val interestedIn20M145K2020Store: ReadableStore[UserId, ClustersUserIsInterestedIn] = { - UserInterestedInReadableStore.defaultStoreWithMtls( - mhMtlsParams, - modelVersion = ModelVersions.Model20M145K2020 - ) - } - - // Production - lazy val InterestedInFromPE20M145KUpdatedStore: ReadableStore[ - UserId, - ClustersUserIsInterestedIn - ] = { - UserInterestedInReadableStore.defaultIIPEStoreWithMtls( - mhMtlsParams, - modelVersion = ModelVersions.Model20M145KUpdated) - } - - lazy val simClustersInterestedInStore: ReadableStore[ - (UserId, ModelVersion), - ClustersUserIsInterestedIn - ] = { - new ReadableStore[(UserId, ModelVersion), ClustersUserIsInterestedIn] { - override def get(k: (UserId, ModelVersion)): Future[Option[ClustersUserIsInterestedIn]] = { - k match { - case (userId, Model20m145kUpdated) => - interestedIn20M145KUpdatedStore.get(userId) - case (userId, Model20m145k2020) => - interestedIn20M145K2020Store.get(userId) - case _ => - Future.None - } - } - } - } - - lazy val simClustersInterestedInFromProducerEmbeddingsStore: ReadableStore[ - (UserId, ModelVersion), - ClustersUserIsInterestedIn - ] = { - new ReadableStore[(UserId, ModelVersion), ClustersUserIsInterestedIn] { - override def get(k: (UserId, ModelVersion)): Future[Option[ClustersUserIsInterestedIn]] = { - k match { - case (userId, ModelVersion.Model20m145kUpdated) => - InterestedInFromPE20M145KUpdatedStore.get(userId) - case _ => - Future.None - } - } - } - } - - lazy val userInterestedInStore = - new twistly.interestedin.EmbeddingStore( - interestedInStore = simClustersInterestedInStore, - interestedInFromProducerEmbeddingStore = simClustersInterestedInFromProducerEmbeddingsStore, - statsReceiver = statsReceiver - ) - - // Production - lazy val favBasedUserInterestedIn20M145KUpdatedStore: ReadableStore[ - SimClustersEmbeddingId, - SimClustersEmbedding - ] = { - val underlyingStore = - UserInterestedInReadableStore - .defaultSimClustersEmbeddingStoreWithMtls( - mhMtlsParams, - EmbeddingType.FavBasedUserInterestedIn, - ModelVersion.Model20m145kUpdated) - .mapValues(_.toThrift) - - val memcachedStore = ObservedMemcachedReadableStore - .fromCacheClient( - backingStore = underlyingStore, - cacheClient = cacheClient, - ttl = 12.hours - )( - valueInjection = LZ4Injection.compose(BinaryScalaCodec(ThriftSimClustersEmbedding)), - statsReceiver = statsReceiver.scope("fav_based_user_interested_in_mem_cache"), - keyToString = { k => embeddingCacheKeyBuilder.apply(k) } - ).mapValues(SimClustersEmbedding(_)) - - ObservedCachedReadableStore.from[SimClustersEmbeddingId, SimClustersEmbedding]( - memcachedStore, - ttl = 6.hours, - maxKeys = 262143, - cacheName = "fav_based_user_interested_in_cache", - windowSize = 10000L - )(statsReceiver.scope("fav_based_user_interested_in_store")) - } - - // Production - lazy val LogFavBasedInterestedInFromAPE20M145K2020Store: ReadableStore[ - SimClustersEmbeddingId, - SimClustersEmbedding - ] = { - val underlyingStore = - UserInterestedInReadableStore - .defaultIIAPESimClustersEmbeddingStoreWithMtls( - mhMtlsParams, - EmbeddingType.LogFavBasedUserInterestedInFromAPE, - ModelVersion.Model20m145k2020) - .mapValues(_.toThrift) - - val memcachedStore = ObservedMemcachedReadableStore - .fromCacheClient( - backingStore = underlyingStore, - cacheClient = cacheClient, - ttl = 12.hours - )( - valueInjection = LZ4Injection.compose(BinaryScalaCodec(ThriftSimClustersEmbedding)), - statsReceiver = statsReceiver.scope("log_fav_based_user_interested_in_from_ape_mem_cache"), - keyToString = { k => embeddingCacheKeyBuilder.apply(k) } - ).mapValues(SimClustersEmbedding(_)) - - ObservedCachedReadableStore.from[SimClustersEmbeddingId, SimClustersEmbedding]( - memcachedStore, - ttl = 6.hours, - maxKeys = 262143, - cacheName = "log_fav_based_user_interested_in_from_ape_cache", - windowSize = 10000L - )(statsReceiver.scope("log_fav_based_user_interested_in_from_ape_store")) - } - - // Production - lazy val FollowBasedInterestedInFromAPE20M145K2020Store: ReadableStore[ - SimClustersEmbeddingId, - SimClustersEmbedding - ] = { - val underlyingStore = - UserInterestedInReadableStore - .defaultIIAPESimClustersEmbeddingStoreWithMtls( - mhMtlsParams, - EmbeddingType.FollowBasedUserInterestedInFromAPE, - ModelVersion.Model20m145k2020) - .mapValues(_.toThrift) - - val memcachedStore = ObservedMemcachedReadableStore - .fromCacheClient( - backingStore = underlyingStore, - cacheClient = cacheClient, - ttl = 12.hours - )( - valueInjection = LZ4Injection.compose(BinaryScalaCodec(ThriftSimClustersEmbedding)), - statsReceiver = statsReceiver.scope("follow_based_user_interested_in_from_ape_mem_cache"), - keyToString = { k => embeddingCacheKeyBuilder.apply(k) } - ).mapValues(SimClustersEmbedding(_)) - - ObservedCachedReadableStore.from[SimClustersEmbeddingId, SimClustersEmbedding]( - memcachedStore, - ttl = 6.hours, - maxKeys = 262143, - cacheName = "follow_based_user_interested_in_from_ape_cache", - windowSize = 10000L - )(statsReceiver.scope("follow_based_user_interested_in_from_ape_store")) - } - - // production - lazy val favBasedUserInterestedIn20M145K2020Store: ReadableStore[ - SimClustersEmbeddingId, - SimClustersEmbedding - ] = { - val underlyingStore: ReadableStore[SimClustersEmbeddingId, ThriftSimClustersEmbedding] = - UserInterestedInReadableStore - .defaultSimClustersEmbeddingStoreWithMtls( - mhMtlsParams, - EmbeddingType.FavBasedUserInterestedIn, - ModelVersion.Model20m145k2020).mapValues(_.toThrift) - - ObservedMemcachedReadableStore - .fromCacheClient( - backingStore = underlyingStore, - cacheClient = cacheClient, - ttl = 12.hours - )( - valueInjection = LZ4Injection.compose(BinaryScalaCodec(ThriftSimClustersEmbedding)), - statsReceiver = statsReceiver.scope("fav_based_user_interested_in_2020_mem_cache"), - keyToString = { k => embeddingCacheKeyBuilder.apply(k) } - ).mapValues(SimClustersEmbedding(_)) - } - - // Production - lazy val logFavBasedUserInterestedIn20M145K2020Store: ReadableStore[ - SimClustersEmbeddingId, - SimClustersEmbedding - ] = { - val underlyingStore = - UserInterestedInReadableStore - .defaultSimClustersEmbeddingStoreWithMtls( - mhMtlsParams, - EmbeddingType.LogFavBasedUserInterestedIn, - ModelVersion.Model20m145k2020) - - val memcachedStore = ObservedMemcachedReadableStore - .fromCacheClient( - backingStore = underlyingStore.mapValues(_.toThrift), - cacheClient = cacheClient, - ttl = 12.hours - )( - valueInjection = LZ4Injection.compose(BinaryScalaCodec(ThriftSimClustersEmbedding)), - statsReceiver = statsReceiver.scope("log_fav_based_user_interested_in_2020_store"), - keyToString = { k => embeddingCacheKeyBuilder.apply(k) } - ).mapValues(SimClustersEmbedding(_)) - - ObservedCachedReadableStore.from[SimClustersEmbeddingId, SimClustersEmbedding]( - memcachedStore, - ttl = 6.hours, - maxKeys = 262143, - cacheName = "log_fav_based_user_interested_in_2020_cache", - windowSize = 10000L - )(statsReceiver.scope("log_fav_based_user_interested_in_2020_store")) - } - - // Production - lazy val favBasedUserInterestedInFromPE20M145KUpdatedStore: ReadableStore[ - SimClustersEmbeddingId, - SimClustersEmbedding - ] = { - val underlyingStore = - UserInterestedInReadableStore - .defaultIIPESimClustersEmbeddingStoreWithMtls( - mhMtlsParams, - EmbeddingType.FavBasedUserInterestedInFromPE, - ModelVersion.Model20m145kUpdated) - .mapValues(_.toThrift) - - val memcachedStore = ObservedMemcachedReadableStore - .fromCacheClient( - backingStore = underlyingStore, - cacheClient = cacheClient, - ttl = 12.hours - )( - valueInjection = LZ4Injection.compose(BinaryScalaCodec(ThriftSimClustersEmbedding)), - statsReceiver = statsReceiver.scope("fav_based_user_interested_in_from_pe_mem_cache"), - keyToString = { k => embeddingCacheKeyBuilder.apply(k) } - ).mapValues(SimClustersEmbedding(_)) - - ObservedCachedReadableStore.from[SimClustersEmbeddingId, SimClustersEmbedding]( - memcachedStore, - ttl = 6.hours, - maxKeys = 262143, - cacheName = "fav_based_user_interested_in_from_pe_cache", - windowSize = 10000L - )(statsReceiver.scope("fav_based_user_interested_in_from_pe_cache")) - } - - private val underlyingStores: Map[ - (EmbeddingType, ModelVersion), - ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] - ] = Map( - // Tweet Embeddings - (LogFavBasedTweet, Model20m145kUpdated) -> logFavBased20M145KUpdatedTweetEmbeddingStore, - (LogFavBasedTweet, Model20m145k2020) -> logFavBased20M145K2020TweetEmbeddingStore, - ( - LogFavLongestL2EmbeddingTweet, - Model20m145k2020) -> logFavBasedLongestL2Tweet20M145K2020EmbeddingStore, - // Entity Embeddings - (FavTfgTopic, Model20m145k2020) -> favBasedTfgTopicEmbedding2020Store, - ( - LogFavBasedKgoApeTopic, - Model20m145k2020) -> logFavBasedApeEntity20M145K2020EmbeddingCachedStore, - // KnownFor Embeddings - (FavBasedProducer, Model20m145k2020) -> favBasedProducer20M145K2020EmbeddingStore, - ( - RelaxedAggregatableLogFavBasedProducer, - Model20m145k2020) -> relaxedLogFavBasedApe20M145K2020EmbeddingCachedStore, - // InterestedIn Embeddings - ( - LogFavBasedUserInterestedInFromAPE, - Model20m145k2020) -> LogFavBasedInterestedInFromAPE20M145K2020Store, - ( - FollowBasedUserInterestedInFromAPE, - Model20m145k2020) -> FollowBasedInterestedInFromAPE20M145K2020Store, - (FavBasedUserInterestedIn, Model20m145kUpdated) -> favBasedUserInterestedIn20M145KUpdatedStore, - (FavBasedUserInterestedIn, Model20m145k2020) -> favBasedUserInterestedIn20M145K2020Store, - (LogFavBasedUserInterestedIn, Model20m145k2020) -> logFavBasedUserInterestedIn20M145K2020Store, - ( - FavBasedUserInterestedInFromPE, - Model20m145kUpdated) -> favBasedUserInterestedInFromPE20M145KUpdatedStore, - (FilteredUserInterestedIn, Model20m145kUpdated) -> userInterestedInStore, - (FilteredUserInterestedIn, Model20m145k2020) -> userInterestedInStore, - (FilteredUserInterestedInFromPE, Model20m145kUpdated) -> userInterestedInStore, - (UnfilteredUserInterestedIn, Model20m145kUpdated) -> userInterestedInStore, - (UnfilteredUserInterestedIn, Model20m145k2020) -> userInterestedInStore, - ) - - val simClustersEmbeddingStore: ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] = { - val underlying: ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] = - SimClustersEmbeddingStore.buildWithDecider( - underlyingStores = underlyingStores, - decider = rmsDecider.decider, - statsReceiver = statsReceiver.scope("simClusters_embeddings_store_deciderable") - ) - - val underlyingWithTimeout: ReadableStore[SimClustersEmbeddingId, SimClustersEmbedding] = - new ReadableStoreWithTimeout( - rs = underlying, - decider = rmsDecider.decider, - enableTimeoutDeciderKey = DeciderConstants.enableSimClustersEmbeddingStoreTimeouts, - timeoutValueKey = DeciderConstants.simClustersEmbeddingStoreTimeoutValueMillis, - timer = timer, - statsReceiver = statsReceiver.scope("simClusters_embedding_store_timeouts") - ) - - ObservedReadableStore( - store = underlyingWithTimeout - )(statsReceiver.scope("simClusters_embeddings_store")) - } -} diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/modules/BUILD b/representation-manager/server/src/main/scala/com/twitter/representation_manager/modules/BUILD deleted file mode 100644 index ab19a1dd7..000000000 --- a/representation-manager/server/src/main/scala/com/twitter/representation_manager/modules/BUILD +++ /dev/null @@ -1,18 +0,0 @@ -scala_library( - compiler_option_sets = ["fatal_warnings"], - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - "finagle-internal/mtls/src/main/scala/com/twitter/finagle/mtls/authentication", - "finagle/finagle-stats", - "finatra/inject/inject-core/src/main/scala", - "frigate/frigate-common/src/main/scala/com/twitter/frigate/common/util", - "interests-service/thrift/src/main/thrift:thrift-scala", - "representation-manager/server/src/main/scala/com/twitter/representation_manager/common", - "servo/util", - "src/scala/com/twitter/storehaus_internal/manhattan", - "src/scala/com/twitter/storehaus_internal/memcache", - "src/scala/com/twitter/storehaus_internal/util", - "strato/src/main/scala/com/twitter/strato/client", - ], -) diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/modules/BUILD.docx b/representation-manager/server/src/main/scala/com/twitter/representation_manager/modules/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..6d0806dee5e9f4b8e6e2c0fa45648e8dbba49162 GIT binary patch literal 36941 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 W0B=@c4g%#WL54(N_ITd|;sF3(IFdI2 literal 0 HcmV?d00001 diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/modules/InterestsThriftClientModule.scala b/representation-manager/server/src/main/scala/com/twitter/representation_manager/modules/InterestsThriftClientModule.scala deleted file mode 100644 index 82a5a5004..000000000 --- a/representation-manager/server/src/main/scala/com/twitter/representation_manager/modules/InterestsThriftClientModule.scala +++ /dev/null @@ -1,40 +0,0 @@ -package com.twitter.representation_manager.modules - -import com.google.inject.Provides -import com.twitter.conversions.DurationOps._ -import com.twitter.finagle.ThriftMux -import com.twitter.finagle.mtls.authentication.ServiceIdentifier -import com.twitter.finagle.mtls.client.MtlsStackClient.MtlsThriftMuxClientSyntax -import com.twitter.finagle.mux.ClientDiscardedRequestException -import com.twitter.finagle.service.ReqRep -import com.twitter.finagle.service.ResponseClass -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.finagle.thrift.ClientId -import com.twitter.inject.TwitterModule -import com.twitter.interests.thriftscala.InterestsThriftService -import com.twitter.util.Throw -import javax.inject.Singleton - -object InterestsThriftClientModule extends TwitterModule { - - @Singleton - @Provides - def providesInterestsThriftClient( - clientId: ClientId, - serviceIdentifier: ServiceIdentifier, - statsReceiver: StatsReceiver - ): InterestsThriftService.MethodPerEndpoint = { - ThriftMux.client - .withClientId(clientId) - .withMutualTls(serviceIdentifier) - .withRequestTimeout(450.milliseconds) - .withStatsReceiver(statsReceiver.scope("InterestsThriftClient")) - .withResponseClassifier { - case ReqRep(_, Throw(_: ClientDiscardedRequestException)) => ResponseClass.Ignorable - } - .build[InterestsThriftService.MethodPerEndpoint]( - dest = "/s/interests-thrift-service/interests-thrift-service", - label = "interests_thrift_service" - ) - } -} diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/modules/LegacyRMSConfigModule.docx b/representation-manager/server/src/main/scala/com/twitter/representation_manager/modules/LegacyRMSConfigModule.docx new file mode 100644 index 0000000000000000000000000000000000000000..1dd2d5e78b9b448c868ccc2a8a3cd4f76fd440d1 GIT binary patch literal 36882 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 literal 0 HcmV?d00001 diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/modules/StoreModule.scala b/representation-manager/server/src/main/scala/com/twitter/representation_manager/modules/StoreModule.scala deleted file mode 100644 index a2efe5925..000000000 --- a/representation-manager/server/src/main/scala/com/twitter/representation_manager/modules/StoreModule.scala +++ /dev/null @@ -1,24 +0,0 @@ -package com.twitter.representation_manager.modules - -import com.google.inject.Provides -import javax.inject.Singleton -import com.twitter.inject.TwitterModule -import com.twitter.decider.Decider -import com.twitter.finagle.mtls.authentication.ServiceIdentifier -import com.twitter.representation_manager.common.RepresentationManagerDecider -import com.twitter.storage.client.manhattan.kv.ManhattanKVClientMtlsParams - -object StoreModule extends TwitterModule { - @Singleton - @Provides - def providesMhMtlsParams( - serviceIdentifier: ServiceIdentifier - ): ManhattanKVClientMtlsParams = ManhattanKVClientMtlsParams(serviceIdentifier) - - @Singleton - @Provides - def providesRmsDecider( - decider: Decider - ): RepresentationManagerDecider = RepresentationManagerDecider(decider) - -} diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/modules/TimerModule.docx b/representation-manager/server/src/main/scala/com/twitter/representation_manager/modules/TimerModule.docx new file mode 100644 index 0000000000000000000000000000000000000000..7f41da40b79e19c4061304902b2b0b36ada5499f GIT binary patch literal 36810 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 yx+&;gErcn@8lj^2Jrxu9Kiqp literal 0 HcmV?d00001 diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/modules/TimerModule.scala b/representation-manager/server/src/main/scala/com/twitter/representation_manager/modules/TimerModule.scala deleted file mode 100644 index fe7fddb45..000000000 --- a/representation-manager/server/src/main/scala/com/twitter/representation_manager/modules/TimerModule.scala +++ /dev/null @@ -1,13 +0,0 @@ -package com.twitter.representation_manager.modules - -import com.google.inject.Provides -import com.twitter.finagle.util.DefaultTimer -import com.twitter.inject.TwitterModule -import com.twitter.util.Timer -import javax.inject.Singleton - -object TimerModule extends TwitterModule { - @Singleton - @Provides - def providesTimer: Timer = DefaultTimer -} diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/modules/UttClientModule.docx b/representation-manager/server/src/main/scala/com/twitter/representation_manager/modules/UttClientModule.docx new file mode 100644 index 0000000000000000000000000000000000000000..ff9e3af11d6a9c3d1c04a91755310671c855ab89 GIT binary patch literal 37157 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 StratoClient} -import javax.inject.Singleton - -object UttClientModule extends TwitterModule { - - @Singleton - @Provides - def providesUttClient( - stratoClient: StratoClient, - statsReceiver: StatsReceiver - ): CachedUttClientV2 = { - // Save 2 ^ 18 UTTs. Promising 100% cache rate - val defaultCacheConfigV2: CacheConfigV2 = CacheConfigV2(262143) - - val uttClientCacheConfigsV2: UttClientCacheConfigsV2 = UttClientCacheConfigsV2( - getTaxonomyConfig = defaultCacheConfigV2, - getUttTaxonomyConfig = defaultCacheConfigV2, - getLeafIds = defaultCacheConfigV2, - getLeafUttEntities = defaultCacheConfigV2 - ) - - // CachedUttClient to use StratoClient - new CachedUttClientV2( - stratoClient = stratoClient, - env = Environment.Prod, - cacheConfigs = uttClientCacheConfigsV2, - statsReceiver = statsReceiver.scope("cached_utt_client") - ) - } -} diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/store/BUILD b/representation-manager/server/src/main/scala/com/twitter/representation_manager/store/BUILD deleted file mode 100644 index 1731a2649..000000000 --- a/representation-manager/server/src/main/scala/com/twitter/representation_manager/store/BUILD +++ /dev/null @@ -1,16 +0,0 @@ -scala_library( - compiler_option_sets = ["fatal_warnings"], - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - "content-recommender/server/src/main/scala/com/twitter/contentrecommender:representation-manager-deps", - "frigate/frigate-common/src/main/scala/com/twitter/frigate/common/util", - "hermit/hermit-core/src/main/scala/com/twitter/hermit/store/common", - "representation-manager/server/src/main/scala/com/twitter/representation_manager/common", - "src/scala/com/twitter/simclusters_v2/stores", - "src/scala/com/twitter/simclusters_v2/summingbird/stores", - "src/thrift/com/twitter/simclusters_v2:simclusters_v2-thrift-scala", - "storage/clients/manhattan/client/src/main/scala", - "tweetypie/src/scala/com/twitter/tweetypie/util", - ], -) diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/store/BUILD.docx b/representation-manager/server/src/main/scala/com/twitter/representation_manager/store/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..347744b404e16f7fb7fea35c8430052cdd54ee8f GIT binary patch literal 36942 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 z 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 sVl>$k0kxE*P}uETwa1IBF$k^ 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 literal 0 HcmV?d00001

    _ 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 TD=-Iva+M%MA~1Wb?*;JyAOZd< literal 0 HcmV?d00001 diff --git a/representation-manager/client/src/main/scala/com/twitter/representation_manager/config/InMemoryCacheConfig.scala b/representation-manager/client/src/main/scala/com/twitter/representation_manager/config/InMemoryCacheConfig.scala deleted file mode 100644 index eab569b51..000000000 --- a/representation-manager/client/src/main/scala/com/twitter/representation_manager/config/InMemoryCacheConfig.scala +++ /dev/null @@ -1,53 +0,0 @@ -package com.twitter.representation_manager.config - -import com.twitter.simclusters_v2.thriftscala.EmbeddingType -import com.twitter.simclusters_v2.thriftscala.ModelVersion -import com.twitter.util.Duration - -/* - * -------------------------------------------- - * PLEASE NOTE: - * Having in-memory cache is not necessarily a free performance win, anyone considering it should - * investigate rather than blindly enabling it - * -------------------------------------------- - * */ - -sealed trait InMemoryCacheParams - -/* - * This holds params that is required to set up a in-mem cache for a single embedding store - */ -case class EnabledInMemoryCacheParams( - ttl: Duration, - maxKeys: Int, - cacheName: String) - extends InMemoryCacheParams -object DisabledInMemoryCacheParams extends InMemoryCacheParams - -/* - * This is the class for the in-memory cache config. Client could pass in their own cacheParamsMap to - * create a new InMemoryCacheConfig instead of using the DefaultInMemoryCacheConfig object below - * */ -class InMemoryCacheConfig( - cacheParamsMap: Map[ - (EmbeddingType, ModelVersion), - InMemoryCacheParams - ] = Map.empty) { - - def getCacheSetup( - embeddingType: EmbeddingType, - modelVersion: ModelVersion - ): InMemoryCacheParams = { - // When requested embedding type doesn't exist, we return DisabledInMemoryCacheParams - cacheParamsMap.getOrElse((embeddingType, modelVersion), DisabledInMemoryCacheParams) - } -} - -/* - * Default config for the in-memory cache - * Clients can directly import and use this one if they don't want to set up a customised config - * */ -object DefaultInMemoryCacheConfig extends InMemoryCacheConfig { - // set default to no in-memory caching - val cacheParamsMap = Map.empty -} diff --git a/representation-manager/server/BUILD b/representation-manager/server/BUILD deleted file mode 100644 index 427fc1d3b..000000000 --- a/representation-manager/server/BUILD +++ /dev/null @@ -1,21 +0,0 @@ -jvm_binary( - name = "bin", - basename = "representation-manager", - main = "com.twitter.representation_manager.RepresentationManagerFedServerMain", - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - "finatra/inject/inject-logback/src/main/scala", - "loglens/loglens-logback/src/main/scala/com/twitter/loglens/logback", - "representation-manager/server/src/main/resources", - "representation-manager/server/src/main/scala/com/twitter/representation_manager", - "twitter-server/logback-classic/src/main/scala", - ], -) - -# Aurora Workflows build phase convention requires a jvm_app named with ${project-name}-app -jvm_app( - name = "representation-manager-app", - archive = "zip", - binary = ":bin", -) diff --git a/representation-manager/server/BUILD.docx b/representation-manager/server/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..d7a2f787bdccc194de4f8b14f4ba2ea344b11c43 GIT binary patch literal 36974 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 literal 0 HcmV?d00001 diff --git a/representation-manager/server/src/main/resources/config/decider.docx b/representation-manager/server/src/main/resources/config/decider.docx new file mode 100644 index 0000000000000000000000000000000000000000..efa88823e4a432fa5f4d8dbf6bb3b884e621cb26 GIT binary patch literal 38080 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%0Dn=mX@w> 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 US^%`56|0g2+(Gj=PFcD82R_JF?f?J) literal 0 HcmV?d00001 diff --git a/representation-manager/server/src/main/resources/config/decider.yml b/representation-manager/server/src/main/resources/config/decider.yml deleted file mode 100644 index e75ebf89d..000000000 --- a/representation-manager/server/src/main/resources/config/decider.yml +++ /dev/null @@ -1,219 +0,0 @@ -# ---------- traffic percentage by embedding type and model version ---------- -# Decider strings are build dynamically following the rule in there -# i.e. s"enable_${embeddingType.name}_${modelVersion.name}" -# Hence this should be updated accordingly if usage is changed in the embedding stores - -# Tweet embeddings -"enable_LogFavBasedTweet_Model20m145k2020": - comment: "Enable x% read traffic (0<=x<=10000, e.g. 1000=10%) for LogFavBasedTweet - Model20m145k2020. 0 means return EMPTY for all requests." - default_availability: 10000 - -"enable_LogFavBasedTweet_Model20m145kUpdated": - comment: "Enable x% read traffic (0<=x<=10000, e.g. 1000=10%) for LogFavBasedTweet - Model20m145kUpdated. 0 means return EMPTY for all requests." - default_availability: 10000 - -"enable_LogFavLongestL2EmbeddingTweet_Model20m145k2020": - comment: "Enable x% read traffic (0<=x<=10000, e.g. 1000=10%) for LogFavLongestL2EmbeddingTweet - Model20m145k2020. 0 means return EMPTY for all requests." - default_availability: 10000 - -"enable_LogFavLongestL2EmbeddingTweet_Model20m145kUpdated": - comment: "Enable x% read traffic (0<=x<=10000, e.g. 1000=10%) for LogFavLongestL2EmbeddingTweet - Model20m145kUpdated. 0 means return EMPTY for all requests." - default_availability: 10000 - -# Topic embeddings -"enable_FavTfgTopic_Model20m145k2020": - comment: "Enable the read traffic to FavTfgTopic - Model20m145k2020 from 0% to 100%. 0 means return EMPTY for all requests." - default_availability: 10000 - -"enable_LogFavBasedKgoApeTopic_Model20m145k2020": - comment: "Enable the read traffic to LogFavBasedKgoApeTopic - Model20m145k2020 from 0% to 100%. 0 means return EMPTY for all requests." - default_availability: 10000 - -# User embeddings - KnownFor -"enable_FavBasedProducer_Model20m145kUpdated": - comment: "Enable the read traffic to FavBasedProducer - Model20m145kUpdated from 0% to 100%. 0 means return EMPTY for all requests." - default_availability: 10000 - -"enable_FavBasedProducer_Model20m145k2020": - comment: "Enable the read traffic to FavBasedProducer - Model20m145k2020 from 0% to 100%. 0 means return EMPTY for all requests." - default_availability: 10000 - -"enable_FollowBasedProducer_Model20m145k2020": - comment: "Enable the read traffic to FollowBasedProducer - Model20m145k2020 from 0% to 100%. 0 means return EMPTY for all requests." - default_availability: 10000 - -"enable_AggregatableFavBasedProducer_Model20m145kUpdated": - comment: "Enable the read traffic to AggregatableFavBasedProducer - Model20m145kUpdated from 0% to 100%. 0 means return EMPTY for all requests." - default_availability: 10000 - -"enable_AggregatableFavBasedProducer_Model20m145k2020": - comment: "Enable the read traffic to AggregatableFavBasedProducer - Model20m145k2020 from 0% to 100%. 0 means return EMPTY for all requests." - default_availability: 10000 - -"enable_AggregatableLogFavBasedProducer_Model20m145kUpdated": - comment: "Enable the read traffic to AggregatableLogFavBasedProducer - Model20m145kUpdated from 0% to 100%. 0 means return EMPTY for all requests." - default_availability: 10000 - -"enable_AggregatableLogFavBasedProducer_Model20m145k2020": - comment: "Enable the read traffic to AggregatableLogFavBasedProducer - Model20m145k2020 from 0% to 100%. 0 means return EMPTY for all requests." - default_availability: 10000 - -enable_RelaxedAggregatableLogFavBasedProducer_Model20m145kUpdated: - comment: "Enable the read traffic to RelaxedAggregatableLogFavBasedProducer - Model20m145kUpdated from 0% to 100%. 0 means return EMPTY for all requests." - default_availability: 10000 - -enable_RelaxedAggregatableLogFavBasedProducer_Model20m145k2020: - comment: "Enable the read traffic to RelaxedAggregatableLogFavBasedProducer - Model20m145k2020 from 0% to 100%. 0 means return EMPTY for all requests." - default_availability: 10000 - -# User embeddings - InterestedIn -"enable_LogFavBasedUserInterestedInFromAPE_Model20m145k2020": - comment: "Enable the read traffic to LogFavBasedUserInterestedInFromAPE - Model20m145k2020 from 0% to 100%. 0 means return EMPTY for all requests." - default_availability: 10000 - -"enable_FollowBasedUserInterestedInFromAPE_Model20m145k2020": - comment: "Enable the read traffic to FollowBasedUserInterestedInFromAPE - Model20m145k2020 from 0% to 100%. 0 means return EMPTY for all requests." - default_availability: 10000 - -"enable_FavBasedUserInterestedIn_Model20m145kUpdated": - comment: "Enable the read traffic to FavBasedUserInterestedIn - Model20m145kUpdated from 0% to 100%. 0 means return EMPTY for all requests." - default_availability: 10000 - -"enable_FavBasedUserInterestedIn_Model20m145k2020": - comment: "Enable the read traffic to FavBasedUserInterestedIn - Model20m145k2020 from 0% to 100%. 0 means return EMPTY for all requests." - default_availability: 10000 - -"enable_FollowBasedUserInterestedIn_Model20m145k2020": - comment: "Enable the read traffic to FollowBasedUserInterestedIn - Model20m145k2020 from 0% to 100%. 0 means return EMPTY for all requests." - default_availability: 10000 - -"enable_LogFavBasedUserInterestedIn_Model20m145k2020": - comment: "Enable the read traffic to LogFavBasedUserInterestedIn - Model20m145k2020 from 0% to 100%. 0 means return EMPTY for all requests." - default_availability: 10000 - -"enable_FavBasedUserInterestedInFromPE_Model20m145kUpdated": - comment: "Enable the read traffic to FavBasedUserInterestedInFromPE - Model20m145kUpdated from 0% to 100%. 0 means return EMPTY for all requests." - default_availability: 10000 - -"enable_FilteredUserInterestedIn_Model20m145kUpdated": - comment: "Enable the read traffic to FilteredUserInterestedIn - Model20m145kUpdated from 0% to 100%. 0 means return EMPTY for all requests." - default_availability: 10000 - -"enable_FilteredUserInterestedIn_Model20m145k2020": - comment: "Enable the read traffic to FilteredUserInterestedIn - Model20m145k2020 from 0% to 100%. 0 means return EMPTY for all requests." - default_availability: 10000 - -"enable_FilteredUserInterestedInFromPE_Model20m145kUpdated": - comment: "Enable the read traffic to FilteredUserInterestedInFromPE - Model20m145kUpdated from 0% to 100%. 0 means return EMPTY for all requests." - default_availability: 10000 - -"enable_UnfilteredUserInterestedIn_Model20m145kUpdated": - comment: "Enable the read traffic to UnfilteredUserInterestedIn - Model20m145kUpdated from 0% to 100%. 0 means return EMPTY for all requests." - default_availability: 10000 - -"enable_UnfilteredUserInterestedIn_Model20m145k2020": - comment: "Enable the read traffic to UnfilteredUserInterestedIn - Model20m145k2020 from 0% to 100%. 0 means return EMPTY for all requests." - default_availability: 10000 - -"enable_UserNextInterestedIn_Model20m145k2020": - comment: "Enable the read traffic to UserNextInterestedIn - Model20m145k2020 from 0% to 100%. 0 means return EMPTY for all requests." - default_availability: 10000 - -"enable_LogFavBasedUserInterestedMaxpoolingAddressBookFromIIAPE_Model20m145k2020": - comment: "Enable the read traffic to LogFavBasedUserInterestedMaxpoolingAddressBookFromIIAPE - Model20m145k2020 from 0% to 100%. 0 means return EMPTY for all requests." - default_availability: 10000 - -"enable_LogFavBasedUserInterestedAverageAddressBookFromIIAPE_Model20m145k2020": - comment: "Enable the read traffic to LogFavBasedUserInterestedAverageAddressBookFromIIAPE - Model20m145k2020 from 0% to 100%. 0 means return EMPTY for all requests." - default_availability: 10000 - -"enable_LogFavBasedUserInterestedBooktypeMaxpoolingAddressBookFromIIAPE_Model20m145k2020": - comment: "Enable the read traffic to LogFavBasedUserInterestedMaxpoolingAddressBookFromIIAPE - Model20m145k2020 from 0% to 100%. 0 means return EMPTY for all requests." - default_availability: 10000 - -"enable_LogFavBasedUserInterestedLargestDimMaxpoolingAddressBookFromIIAPE_Model20m145k2020": - comment: "Enable the read traffic to LogFavBasedUserInterestedAverageAddressBookFromIIAPE - Model20m145k2020 from 0% to 100%. 0 means return EMPTY for all requests." - default_availability: 10000 - -"enable_LogFavBasedUserInterestedLouvainMaxpoolingAddressBookFromIIAPE_Model20m145k2020": - comment: "Enable the read traffic to LogFavBasedUserInterestedMaxpoolingAddressBookFromIIAPE - Model20m145k2020 from 0% to 100%. 0 means return EMPTY for all requests." - default_availability: 10000 - -"enable_LogFavBasedUserInterestedConnectedMaxpoolingAddressBookFromIIAPE_Model20m145k2020": - comment: "Enable the read traffic to LogFavBasedUserInterestedAverageAddressBookFromIIAPE - Model20m145k2020 from 0% to 100%. 0 means return EMPTY for all requests." - default_availability: 10000 - -# ---------- load shedding by caller id ---------- -# To create a new decider, add here with the same format and caller's details : -# "representation-manager_load_shed_by_caller_id_twtr:{{role}}:{{name}}:{{environment}}:{{cluster}}" -# All the deciders below are generated by this script: -# ./strato/bin/fed deciders representation-manager --service-role=representation-manager --service-name=representation-manager -# If you need to run the script and paste the output, add ONLY the prod deciders here. -"representation-manager_load_shed_by_caller_id_all": - comment: "Reject all traffic from caller id: all" - default_availability: 0 - -"representation-manager_load_shed_by_caller_id_twtr:svc:cr-mixer:cr-mixer:prod:atla": - comment: "Reject all traffic from caller id: twtr:svc:cr-mixer:cr-mixer:prod:atla" - default_availability: 0 - -"representation-manager_load_shed_by_caller_id_twtr:svc:cr-mixer:cr-mixer:prod:pdxa": - comment: "Reject all traffic from caller id: twtr:svc:cr-mixer:cr-mixer:prod:pdxa" - default_availability: 0 - -"representation-manager_load_shed_by_caller_id_twtr:svc:simclusters-ann:simclusters-ann-1:prod:atla": - comment: "Reject all traffic from caller id: twtr:svc:simclusters-ann:simclusters-ann-1:prod:atla" - default_availability: 0 - -"representation-manager_load_shed_by_caller_id_twtr:svc:simclusters-ann:simclusters-ann-1:prod:pdxa": - comment: "Reject all traffic from caller id: twtr:svc:simclusters-ann:simclusters-ann-1:prod:pdxa" - default_availability: 0 - -"representation-manager_load_shed_by_caller_id_twtr:svc:simclusters-ann:simclusters-ann-3:prod:atla": - comment: "Reject all traffic from caller id: twtr:svc:simclusters-ann:simclusters-ann-3:prod:atla" - default_availability: 0 - -"representation-manager_load_shed_by_caller_id_twtr:svc:simclusters-ann:simclusters-ann-3:prod:pdxa": - comment: "Reject all traffic from caller id: twtr:svc:simclusters-ann:simclusters-ann-3:prod:pdxa" - default_availability: 0 - -"representation-manager_load_shed_by_caller_id_twtr:svc:simclusters-ann:simclusters-ann-4:prod:atla": - comment: "Reject all traffic from caller id: twtr:svc:simclusters-ann:simclusters-ann-4:prod:atla" - default_availability: 0 - -"representation-manager_load_shed_by_caller_id_twtr:svc:simclusters-ann:simclusters-ann-4:prod:pdxa": - comment: "Reject all traffic from caller id: twtr:svc:simclusters-ann:simclusters-ann-4:prod:pdxa" - default_availability: 0 - -"representation-manager_load_shed_by_caller_id_twtr:svc:simclusters-ann:simclusters-ann-experimental:prod:atla": - comment: "Reject all traffic from caller id: twtr:svc:simclusters-ann:simclusters-ann-experimental:prod:atla" - default_availability: 0 - -"representation-manager_load_shed_by_caller_id_twtr:svc:simclusters-ann:simclusters-ann-experimental:prod:pdxa": - comment: "Reject all traffic from caller id: twtr:svc:simclusters-ann:simclusters-ann-experimental:prod:pdxa" - default_availability: 0 - -"representation-manager_load_shed_by_caller_id_twtr:svc:simclusters-ann:simclusters-ann:prod:atla": - comment: "Reject all traffic from caller id: twtr:svc:simclusters-ann:simclusters-ann:prod:atla" - default_availability: 0 - -"representation-manager_load_shed_by_caller_id_twtr:svc:simclusters-ann:simclusters-ann:prod:pdxa": - comment: "Reject all traffic from caller id: twtr:svc:simclusters-ann:simclusters-ann:prod:pdxa" - default_availability: 0 - -"representation-manager_load_shed_by_caller_id_twtr:svc:stratostore:stratoapi:prod:atla": - comment: "Reject all traffic from caller id: twtr:svc:stratostore:stratoapi:prod:atla" - default_availability: 0 - -"representation-manager_load_shed_by_caller_id_twtr:svc:stratostore:stratoserver:prod:atla": - comment: "Reject all traffic from caller id: twtr:svc:stratostore:stratoserver:prod:atla" - default_availability: 0 - -"representation-manager_load_shed_by_caller_id_twtr:svc:stratostore:stratoserver:prod:pdxa": - comment: "Reject all traffic from caller id: twtr:svc:stratostore:stratoserver:prod:pdxa" - default_availability: 0 - -# ---------- Dark Traffic Proxy ---------- -representation-manager_forward_dark_traffic: - comment: "Defines the percentage of traffic to forward to diffy-proxy. Set to 0 to disable dark traffic forwarding" - default_availability: 0 diff --git a/representation-manager/server/src/main/resources/logback.docx b/representation-manager/server/src/main/resources/logback.docx new file mode 100644 index 0000000000000000000000000000000000000000..506cc6ae9d38b3492280d8e911ebbccf8c547cca GIT binary patch literal 38344 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 KpAwM;*j)NlP+!kX2 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 - - - - - - - - - - - - - - - - true - - - - - - - - - - - ${log.service.output} - - - ${log.service.output}.%d.gz - - 3GB - - 21 - true - - - %date %.-3level ${DEFAULT_SERVICE_PATTERN}%n - - - - - - ${log.access.output} - - - ${log.access.output}.%d.gz - - 100MB - - 7 - true - - - ${DEFAULT_ACCESS_PATTERN}%n - - - - - - true - ${log.lens.category} - ${log.lens.index} - ${log.lens.tag}/service - - %msg - - - - - - true - ${log.lens.category} - ${log.lens.index} - ${log.lens.tag}/access - - %msg - - - - - - allow_listed_pipeline_executions.log - - - allow_listed_pipeline_executions.log.%d.gz - - 100MB - - 7 - true - - - %date %.-3level ${DEFAULT_SERVICE_PATTERN}%n - - - - - - - - - - - - ${async_queue_size} - ${async_max_flush_time} - - - - - ${async_queue_size} - ${async_max_flush_time} - - - - - ${async_queue_size} - ${async_max_flush_time} - - - - - ${async_queue_size} - ${async_max_flush_time} - - - - - ${async_queue_size} - ${async_max_flush_time} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/BUILD b/representation-manager/server/src/main/scala/com/twitter/representation_manager/BUILD deleted file mode 100644 index d8ca301f6..000000000 --- a/representation-manager/server/src/main/scala/com/twitter/representation_manager/BUILD +++ /dev/null @@ -1,13 +0,0 @@ -scala_library( - compiler_option_sets = ["fatal_warnings"], - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - "finatra/inject/inject-thrift-client", - "representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/topic", - "representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/tweet", - "representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/user", - "strato/src/main/scala/com/twitter/strato/fed", - "strato/src/main/scala/com/twitter/strato/fed/server", - ], -) diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/BUILD.docx b/representation-manager/server/src/main/scala/com/twitter/representation_manager/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..2bf2c038d24393c66e7c220b7d357ddf9c3607c1 GIT binary patch literal 36842 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 literal 0 HcmV?d00001 diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/RepresentationManagerFedServer.scala b/representation-manager/server/src/main/scala/com/twitter/representation_manager/RepresentationManagerFedServer.scala deleted file mode 100644 index 5bc820bb4..000000000 --- a/representation-manager/server/src/main/scala/com/twitter/representation_manager/RepresentationManagerFedServer.scala +++ /dev/null @@ -1,40 +0,0 @@ -package com.twitter.representation_manager - -import com.google.inject.Module -import com.twitter.inject.thrift.modules.ThriftClientIdModule -import com.twitter.representation_manager.columns.topic.LocaleEntityIdSimClustersEmbeddingCol -import com.twitter.representation_manager.columns.topic.TopicIdSimClustersEmbeddingCol -import com.twitter.representation_manager.columns.tweet.TweetSimClustersEmbeddingCol -import com.twitter.representation_manager.columns.user.UserSimClustersEmbeddingCol -import com.twitter.representation_manager.modules.CacheModule -import com.twitter.representation_manager.modules.InterestsThriftClientModule -import com.twitter.representation_manager.modules.LegacyRMSConfigModule -import com.twitter.representation_manager.modules.StoreModule -import com.twitter.representation_manager.modules.TimerModule -import com.twitter.representation_manager.modules.UttClientModule -import com.twitter.strato.fed._ -import com.twitter.strato.fed.server._ - -object RepresentationManagerFedServerMain extends RepresentationManagerFedServer - -trait RepresentationManagerFedServer extends StratoFedServer { - override def dest: String = "/s/representation-manager/representation-manager" - override val modules: Seq[Module] = - Seq( - CacheModule, - InterestsThriftClientModule, - LegacyRMSConfigModule, - StoreModule, - ThriftClientIdModule, - TimerModule, - UttClientModule - ) - - override def columns: Seq[Class[_ <: StratoFed.Column]] = - Seq( - classOf[TweetSimClustersEmbeddingCol], - classOf[UserSimClustersEmbeddingCol], - classOf[TopicIdSimClustersEmbeddingCol], - classOf[LocaleEntityIdSimClustersEmbeddingCol] - ) -} diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/BUILD b/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/BUILD deleted file mode 100644 index 6ebd77ef8..000000000 --- a/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/BUILD +++ /dev/null @@ -1,9 +0,0 @@ -scala_library( - compiler_option_sets = ["fatal_warnings"], - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - "strato/src/main/scala/com/twitter/strato/fed", - "strato/src/main/scala/com/twitter/strato/fed/server", - ], -) diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/BUILD.docx b/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..ff46af5e4ff4a40efa096d3ca15b5fc874f53c5a GIT binary patch literal 36774 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 literal 0 HcmV?d00001 diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/ColumnConfigBase.scala b/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/ColumnConfigBase.scala deleted file mode 100644 index 143ccdc4c..000000000 --- a/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/ColumnConfigBase.scala +++ /dev/null @@ -1,26 +0,0 @@ -package com.twitter.representation_manager.columns - -import com.twitter.strato.access.Access.LdapGroup -import com.twitter.strato.config.ContactInfo -import com.twitter.strato.config.FromColumns -import com.twitter.strato.config.Has -import com.twitter.strato.config.Prefix -import com.twitter.strato.config.ServiceIdentifierPattern - -object ColumnConfigBase { - - /****************** Internal permissions *******************/ - val recosPermissions: Seq[com.twitter.strato.config.Policy] = Seq() - - /****************** External permissions *******************/ - // This is used to grant limited access to members outside of RP team. - val externalPermissions: Seq[com.twitter.strato.config.Policy] = Seq() - - val contactInfo: ContactInfo = ContactInfo( - description = "Please contact Relevance Platform for more details", - contactEmail = "no-reply@twitter.com", - ldapGroup = "ldap", - jiraProject = "JIRA", - links = Seq("http://go/rms-runbook") - ) -} diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/topic/BUILD b/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/topic/BUILD deleted file mode 100644 index 26022ebe5..000000000 --- a/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/topic/BUILD +++ /dev/null @@ -1,14 +0,0 @@ -scala_library( - compiler_option_sets = ["fatal_warnings"], - platform = "java8", - tags = ["bazel-compatible"], - dependencies = [ - "finatra/inject/inject-core/src/main/scala", - "representation-manager/server/src/main/scala/com/twitter/representation_manager/columns", - "representation-manager/server/src/main/scala/com/twitter/representation_manager/modules", - "representation-manager/server/src/main/scala/com/twitter/representation_manager/store", - "representation-manager/server/src/main/thrift:thrift-scala", - "strato/src/main/scala/com/twitter/strato/fed", - "strato/src/main/scala/com/twitter/strato/fed/server", - ], -) diff --git a/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/topic/BUILD.docx b/representation-manager/server/src/main/scala/com/twitter/representation_manager/columns/topic/BUILD.docx new file mode 100644 index 0000000000000000000000000000000000000000..79349ec24501c35e651288118a9b10758eef94a8 GIT binary patch literal 36849 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 literal 0 HcmV?d00001 diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/config/Config.scala b/recos-injector/server/src/main/scala/com/twitter/recosinjector/config/Config.scala deleted file mode 100644 index c2aa209a8..000000000 --- a/recos-injector/server/src/main/scala/com/twitter/recosinjector/config/Config.scala +++ /dev/null @@ -1,41 +0,0 @@ -package com.twitter.recosinjector.config - -import com.twitter.finagle.mtls.authentication.ServiceIdentifier -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.finagle.thrift.ClientId -import com.twitter.frigate.common.store.TweetCreationTimeMHStore -import com.twitter.frigate.common.util.UrlInfo -import com.twitter.gizmoduck.thriftscala.User -import com.twitter.recosinjector.decider.RecosInjectorDecider -import com.twitter.socialgraph.thriftscala.{IdsRequest, IdsResult} -import com.twitter.stitch.tweetypie.TweetyPie.TweetyPieResult -import com.twitter.storehaus.ReadableStore -import com.twitter.util.Future - -trait Config { self => - implicit def statsReceiver: StatsReceiver - - // ReadableStores - def tweetyPieStore: ReadableStore[Long, TweetyPieResult] - - def userStore: ReadableStore[Long, User] - - def socialGraphIdStore: ReadableStore[IdsRequest, IdsResult] - - def urlInfoStore: ReadableStore[String, UrlInfo] - - // Manhattan stores - def tweetCreationStore: TweetCreationTimeMHStore - - // Decider - def recosInjectorDecider: RecosInjectorDecider - - // Constants - def recosInjectorThriftClientId: ClientId - - def serviceIdentifier: ServiceIdentifier - - def outputKafkaTopicPrefix: String - - def init(): Future[Unit] = Future.Done -} diff --git a/recos-injector/server/src/main/scala/com/twitter/recosinjector/config/DeployConfig.docx b/recos-injector/server/src/main/scala/com/twitter/recosinjector/config/DeployConfig.docx new file mode 100644 index 0000000000000000000000000000000000000000..75237edbd8498c34ba42e1139127fbc3f52df0c3 GIT binary patch literal 39053 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

    jqt$F%f!N>3wO&Iq$ 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 b?@Vm1cW7rV0$R`)tC9sgK=TMo{POQ#|2I@p literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/target/TargetScoringDetails.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/target/TargetScoringDetails.scala deleted file mode 100644 index 2a9c26e8b..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/target/TargetScoringDetails.scala +++ /dev/null @@ -1,121 +0,0 @@ -package com.twitter.frigate.pushservice.target - -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.base.FeatureMap -import com.twitter.frigate.common.base.TargetUser -import com.twitter.frigate.common.candidate.TargetABDecider -import com.twitter.frigate.common.candidate.TargetDecider -import com.twitter.frigate.common.candidate.UserDetails -import com.twitter.frigate.data_pipeline.thriftscala.UserHistoryValue -import com.twitter.frigate.dau_model.thriftscala.DauProbability -import com.twitter.frigate.scribe.thriftscala.SkipModelInfo -import com.twitter.hermit.stp.thriftscala.STPResult -import com.twitter.timelines.real_graph.v1.thriftscala.RealGraphFeatures -import com.twitter.util.Future -import com.twitter.util.Time -import com.twitter.frigate.pushservice.params.DeciderKey -import com.twitter.frigate.pushservice.params.PushFeatureSwitchParams -import com.twitter.frigate.pushservice.params.PushParams -import com.twitter.frigate.pushservice.params.WeightedOpenOrNtabClickModel -import com.twitter.frigate.pushservice.util.PushDeviceUtil -import com.twitter.nrel.hydration.push.HydrationContext -import com.twitter.timelines.configapi.FSParam - -trait TargetScoringDetails { - tuc: TargetUser with TargetDecider with TargetABDecider with UserDetails => - - def stats: StatsReceiver - - /* - * We have 3 types of model training data: - * 1, skip ranker and model predicates - * controlled by decider frigate_notifier_quality_model_training_data - * the data distribution is same to the distribution in ranking - * 2, skip model predicates only - * controlled by decider skip_ml_model_predicate - * the data distribution is same to the distribution in filtering - * 3, no skip, only scribe features - * controlled by decider scribe_model_features - * the data distribution is same to production traffic - * The "miscellaneous" is used to store all misc information for selecting the data offline (e.g., ddg-bucket information) - * */ - lazy val skipModelInfo: Option[SkipModelInfo] = { - val trainingDataDeciderKey = DeciderKey.trainingDataDeciderKey.toString - val skipMlModelPredicateDeciderKey = DeciderKey.skipMlModelPredicateDeciderKey.toString - val scribeModelFeaturesDeciderKey = DeciderKey.scribeModelFeaturesDeciderKey.toString - val miscellaneous = None - - if (isDeciderEnabled(trainingDataDeciderKey, stats, useRandomRecipient = true)) { - Some( - SkipModelInfo( - skipPushOpenPredicate = Some(true), - skipPushRanker = Some(true), - miscellaneous = miscellaneous)) - } else if (isDeciderEnabled(skipMlModelPredicateDeciderKey, stats, useRandomRecipient = true)) { - Some( - SkipModelInfo( - skipPushOpenPredicate = Some(true), - skipPushRanker = Some(false), - miscellaneous = miscellaneous)) - } else if (isDeciderEnabled(scribeModelFeaturesDeciderKey, stats, useRandomRecipient = true)) { - Some(SkipModelInfo(noSkipButScribeFeatures = Some(true), miscellaneous = miscellaneous)) - } else { - Some(SkipModelInfo(miscellaneous = miscellaneous)) - } - } - - lazy val scribeFeatureForRequestScribe = - isDeciderEnabled( - DeciderKey.scribeModelFeaturesForRequestScribe.toString, - stats, - useRandomRecipient = true) - - lazy val rankingModelParam: Future[FSParam[WeightedOpenOrNtabClickModel.ModelNameType]] = - tuc.deviceInfo.map { deviceInfoOpt => - if (PushDeviceUtil.isPrimaryDeviceAndroid(deviceInfoOpt) && - tuc.params(PushParams.AndroidOnlyRankingExperimentParam)) { - PushFeatureSwitchParams.WeightedOpenOrNtabClickRankingModelForAndroidParam - } else { - PushFeatureSwitchParams.WeightedOpenOrNtabClickRankingModelParam - } - } - - lazy val filteringModelParam: FSParam[WeightedOpenOrNtabClickModel.ModelNameType] = - PushFeatureSwitchParams.WeightedOpenOrNtabClickFilteringModelParam - - def skipMlRanker: Boolean = skipModelInfo.exists(_.skipPushRanker.contains(true)) - - def skipModelPredicate: Boolean = skipModelInfo.exists(_.skipPushOpenPredicate.contains(true)) - - def noSkipButScribeFeatures: Boolean = - skipModelInfo.exists(_.noSkipButScribeFeatures.contains(true)) - - def isModelTrainingData: Boolean = skipMlRanker || skipModelPredicate || noSkipButScribeFeatures - - def scribeFeatureWithoutHydratingNewFeatures: Boolean = - isDeciderEnabled( - DeciderKey.scribeModelFeaturesWithoutHydratingNewFeaturesDeciderKey.toString, - stats, - useRandomRecipient = true - ) - - def targetHydrationContext: Future[HydrationContext] - - def featureMap: Future[FeatureMap] - - def dauProbability: Future[Option[DauProbability]] - - def labeledPushRecsHydrated: Future[Option[UserHistoryValue]] - - def onlineLabeledPushRecs: Future[Option[UserHistoryValue]] - - def realGraphFeatures: Future[Option[RealGraphFeatures]] - - def stpResult: Future[Option[STPResult]] - - def globalOptoutProbabilities: Seq[Future[Option[Double]]] - - def bucketOptoutProbability: Future[Option[Double]] - - val sendTime: Long = Time.now.inMillis -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/AdaptorUtils.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/util/AdaptorUtils.docx new file mode 100644 index 0000000000000000000000000000000000000000..dad4ee39fba9a6b36104e57e0b40405bff04ca33 GIT binary patch literal 36872 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 wy{m;Vg{u`BDkvQ{%>V!Z literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/OCFPromptHistoryStore.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/OCFPromptHistoryStore.scala deleted file mode 100644 index 33b119c79..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/OCFPromptHistoryStore.scala +++ /dev/null @@ -1,73 +0,0 @@ -package com.twitter.frigate.pushservice.store - -import com.twitter.conversions.DurationOps._ -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.onboarding.task.service.thriftscala.FatigueFlowEnrollment -import com.twitter.stitch.Stitch -import com.twitter.storage.client.manhattan.bijections.Bijections.BinaryScalaInjection -import com.twitter.storage.client.manhattan.bijections.Bijections.LongInjection -import com.twitter.storage.client.manhattan.bijections.Bijections.StringInjection -import com.twitter.storage.client.manhattan.kv.impl.Component -import com.twitter.storage.client.manhattan.kv.impl.KeyDescriptor -import com.twitter.storage.client.manhattan.kv.impl.ValueDescriptor -import com.twitter.storage.client.manhattan.kv.ManhattanKVClient -import com.twitter.storage.client.manhattan.kv.ManhattanKVClientMtlsParams -import com.twitter.storage.client.manhattan.kv.ManhattanKVEndpointBuilder -import com.twitter.storage.client.manhattan.kv.NoMtlsParams -import com.twitter.storehaus.ReadableStore -import com.twitter.storehaus_internal.manhattan.Omega -import com.twitter.util.Duration -import com.twitter.util.Future -import com.twitter.util.Time - -case class OCFHistoryStoreKey(userId: Long, fatigueDuration: Duration, fatigueGroup: String) - -class OCFPromptHistoryStore( - manhattanAppId: String, - dataset: String, - mtlsParams: ManhattanKVClientMtlsParams = NoMtlsParams -)( - implicit stats: StatsReceiver) - extends ReadableStore[OCFHistoryStoreKey, FatigueFlowEnrollment] { - - import ManhattanInjections._ - - private val client = ManhattanKVClient( - appId = manhattanAppId, - dest = Omega.wilyName, - mtlsParams = mtlsParams, - label = "ocf_history_store" - ) - private val endpoint = ManhattanKVEndpointBuilder(client, defaultMaxTimeout = 5.seconds) - .statsReceiver(stats.scope("ocf_history_store")) - .build() - - private val limitResultsTo = 1 - - private val datasetKey = keyDesc.withDataset(dataset) - - override def get(storeKey: OCFHistoryStoreKey): Future[Option[FatigueFlowEnrollment]] = { - val userId = storeKey.userId - val fatigueGroup = storeKey.fatigueGroup - val fatigueLength = storeKey.fatigueDuration.inMilliseconds - val currentTime = Time.now.inMilliseconds - val fullKey = datasetKey - .withPkey(userId) - .from(fatigueGroup) - .to(fatigueGroup, fatigueLength - currentTime) - - Stitch - .run(endpoint.slice(fullKey, valDesc, limit = Some(limitResultsTo))) - .map { results => - if (results.nonEmpty) { - val (_, mhValue) = results.head - Some(mhValue.contents) - } else None - } - } -} - -object ManhattanInjections { - val keyDesc = KeyDescriptor(Component(LongInjection), Component(StringInjection, LongInjection)) - val valDesc = ValueDescriptor(BinaryScalaInjection(FatigueFlowEnrollment)) -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/OnlineUserHistoryStore.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/OnlineUserHistoryStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..5413777c6fbd3801d920d25c98b2e08ab83048d9 GIT binary patch literal 37569 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 literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/OnlineUserHistoryStore.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/OnlineUserHistoryStore.scala deleted file mode 100644 index d7ecfa7e4..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/OnlineUserHistoryStore.scala +++ /dev/null @@ -1,81 +0,0 @@ -package com.twitter.frigate.pushservice.store - -import com.twitter.conversions.DurationOps._ -import com.twitter.frigate.common.history.History -import com.twitter.frigate.common.store.RealTimeClientEventStore -import com.twitter.frigate.data_pipeline.common.HistoryJoin -import com.twitter.frigate.data_pipeline.thriftscala.Event -import com.twitter.frigate.data_pipeline.thriftscala.EventUnion -import com.twitter.frigate.data_pipeline.thriftscala.PushRecSendEvent -import com.twitter.frigate.data_pipeline.thriftscala.UserHistoryValue -import com.twitter.storehaus.ReadableStore -import com.twitter.util.Duration -import com.twitter.util.Future -import com.twitter.util.Time - -case class OnlineUserHistoryKey( - userId: Long, - offlineUserHistory: Option[UserHistoryValue], - history: Option[History]) - -case class OnlineUserHistoryStore( - realTimeClientEventStore: RealTimeClientEventStore, - duration: Duration = 3.days) - extends ReadableStore[OnlineUserHistoryKey, UserHistoryValue] { - - override def get(key: OnlineUserHistoryKey): Future[Option[UserHistoryValue]] = { - val now = Time.now - - val pushRecSends = key.history - .getOrElse(History(Nil.toMap)) - .sortedPushDmHistory - .filter(_._1 > now - (duration + 1.day)) - .map { - case (time, frigateNotification) => - val pushRecSendEvent = PushRecSendEvent( - frigateNotification = Some(frigateNotification), - impressionId = frigateNotification.impressionId - ) - pushRecSendEvent -> time - } - - realTimeClientEventStore - .get(key.userId, now - duration, now) - .map { attributedEventHistory => - val attributedClientEvents = attributedEventHistory.sortedHistory.flatMap { - case (time, event) => - event.eventUnion match { - case Some(eventUnion: EventUnion.AttributedPushRecClientEvent) => - Some((eventUnion.attributedPushRecClientEvent, event.eventType, time)) - case _ => None - } - } - - val realtimeLabeledSends: Seq[Event] = HistoryJoin.getLabeledPushRecSends( - pushRecSends, - attributedClientEvents, - Seq(), - Seq(), - Seq(), - now - ) - - key.offlineUserHistory.map { offlineUserHistory => - val combinedEvents = offlineUserHistory.events.map { offlineEvents => - (offlineEvents ++ realtimeLabeledSends) - .map { event => - event.timestampMillis -> event - } - .toMap - .values - .toSeq - .sortBy { event => - -1 * event.timestampMillis.getOrElse(0L) - } - } - - offlineUserHistory.copy(events = combinedEvents) - } - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/OpenAppUserStore.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/OpenAppUserStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..0022edbc796a301ffd591fa5844d254b4976fe3c GIT binary patch literal 36904 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 literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/OpenAppUserStore.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/OpenAppUserStore.scala deleted file mode 100644 index 85d3f5afa..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/OpenAppUserStore.scala +++ /dev/null @@ -1,13 +0,0 @@ -package com.twitter.frigate.pushservice.store - -import com.twitter.frigate.common.store.strato.StratoFetchableStore -import com.twitter.storehaus.ReadableStore -import com.twitter.strato.client.Client -import com.twitter.strato.generated.client.rux.open_app.UsersInOpenAppDdgOnUserClientColumn - -object OpenAppUserStore { - def apply(stratoClient: Client): ReadableStore[Long, Boolean] = { - val fetcher = new UsersInOpenAppDdgOnUserClientColumn(stratoClient).fetcher - StratoFetchableStore.withUnitView(fetcher).mapValues(_ => true) - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/SocialGraphServiceProcessStore.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/SocialGraphServiceProcessStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..29272cca648bae133e6cd102fc9bbe1810f5c875 GIT binary patch literal 37023 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 O+Wy1 zo%z}n&i2U)^vk$+Te27(MmHH zVB;7O@8=P_meo)|&R(oy##`+&PPex zYw3|kqD}d0IRt#&RH8TZ!Y-GcaRRQzl4^QvtV%NhznqPMy_gbrbf!TPHN}@YRH03g zmv_w)QzC%tzE)+Y`TQdNTXw>+%dutKL-~%&_?~ZLjC!guza}splJf9ZG#fP!LyOT$ zQX`J%>|@kARibX7_C9{Ek@t}r8Z8^*KNeZ0VVogI<~aWd#pNO4Sh{>tT85imOPuSi zt{vs?n|W-{F%YZlj7PpmSU0VoC(lT-y+}mw4W%viOqa;#46*+a8z8Hge(Pb@f8}(? z$6s_LtgRa(5G6gWHBl*xc#EIC-n3@KPaBLBCFsSLFfeV9DS6~|yKVISTmSTC(<;~M z*;)KzntFc{!k4%E*T)4y+=`E=8LYhBOYWRC>Yups5fs!Y%PjeMm&$66H3k(g?lNrU zDXV|xgeY@(Zb=S540`7Gr?uVAVJZc$M$+@n#FgYN9HMCqw%DsP_FZtdHyh8eEezhw zo4fQvu1XoHk9&K1SSwWM8Q2Tz49ux~Or@^GQCQQP|Ni+$XereflS9u3$5#GdsW;^* zhe_lyZ9uT#6847PB``ud(zauFz?o%64f6)Um;P~0f;G2D7Q>M9jZe#v#XCfpL(D%W z1Z*wT9E%lr+o>Nep69R)StL8fHc-+zN)_-?^{OZ(uMxi0;A|y1+*L6Ac%cDe7cRJ6 zDbpQg-BxnXkD_#3%`kfuW>#wylEhVy?!=85&&99sX42OD5C{X^I}Dh^k6fE+Oso~> zS5>ID7$)JQ%x+2dU0k%McS$P`99w!*B^6wm3bPDbg|gmONA|^K8KOT_@`~5(lptzU z_}U~FoUEy=w#qa)w;Qz=@hr>gIO$oBvc*#k6E#!5O7qBaD14aY6=UBmKs2|ts81~r zDlWXuAYXP~f%dX)*^ZEp#ToUu^C+*1KURt#(9+^GUQu*8*s83cXxZIA!qdh>i0L6S zK^;M>gZ_-*X zRx+U}>$h zmA;(A+4caX`2^&dS+ z%B9MRj<-eqYR!&jTq`5irlrswdzYILANwym5WY`NX!DQQzfU10yJ=vd<0eThatssY ziAYz;W0*;WlFF2<9vH@ERgbs#?)7+7-n*m6V?zGHZ!!UT(z)4w*8jZrE+4`UMaA-} zX_E72I{0G+?Ub4C<9A2M>+MPAhJnYWDz7e(lHQmncH16YrrgE!ZR{N{&>7#@+2`Vm=PyzBN+p(*x#z~g?t`YLtQCA;K9&rHY zoXOYQknT#}t$Y>vjX;%X8}It66gb%+A9*>l@OpubEW&HU}#a zM0#ejr3Wvs=bC5pkiq7gQ}Ip;bdv3a--d+GC7ml^4%y79bujN&kmB2<#{7bo8q!yx zJHYK+abu-Qq8LApOyXJYEE{Y+@ma=ab38?^D`6LeZfNOl;T=YGVk$UabGz6sy1H*- zyTEnAd(*+lZYA|&c+NUTXp5TxXma zd}k`8g5Ktxw48&nMb#}%=O=m@^iJ&QCG$L z9k9?e=VPDXJAd*HBf3Mb5VDX)d?U~XVY6)wAa;a_d4pr)Bx{MYlZh1gbiu|^@Us>_X>h9#c zK7zB%*E_t7naJE=2H9K6h%sbUxY@E>p>OS02qOoj*dK9g?WW3> zH6VPXo3YNt!4+v!_R)m&$_yGlHc8ZFA{_1Aq{-$RxaYs4KGL6ntvbHOzWHz)@vVIs zY2>&xSRPjy07}O}@{#WRBfaFW^tpehAO21cBo^;1^Wna>{|)6MqtGTO8o&(HZr<1b1U8RH@q97o#(sz`r9)huQ`GX1^lM z?qSAa?jtx0)_IVp70OJ1;gM9QsQ~3_X^w$`VhQI_Fi#NqT=~kP)LD^Ijf>Enby;8u zkHx%gd7^N>0fKw3AI;oH=TKs1^{Y06I-=+kH6@nn6b<~FJ_0NBBlVMzd^ZlJ*hSTd zD(1Y64E1^@^T$X}x~*V{EG3pnGS3#Z&XN?{5K{rGxu@#>{jfmS-IN^CySlzqQD!b$ z^miPKSEw#?n@aDgNSR@2QG0=I{L+Dhn(33nGKFWShRJX1BpcJ>SCaV^5|L~I_Q^kS zUw-IZKRRDa@6%`ws~%l?Up2^Lm4+HmMjqx)kxkm{F1u=$nOi2sDU15tJz_vH4wXcW zLs*q@-)+8xz0Z$T-D{ast+Pv)ozuh(JiOz#Z^N{I)ZrkS8l{lSv0r&il>#ovi%3+? zt6%FzZRBkLlEU5Q0Lbk0C80EeRi=?DzFPF3z7npl8D}wXS89xx)Zb7iU6(Ag21~dC zzcuno4+T*_FPMuboE=U~{hp^8uH>V8xw_ENFG&R{QGPG~ zJ~9E3LmkO{a#Co+gkDjaNJ|h^KqQHK)9`6lYG;`hdhEY>peX;vqp&NB3%*@^p@d#z zr)`2DAt+BGX*TdS0)exGjTk@7(=qZ*VNBg7FNDi(?w)ZF>&6Wcp0 z9Pbqz@KM+JrUbf?maem?DhdnKXgS0A1~{3n8T$FzrGp~|i1=x%9cLFTaE}noB9N+LNFn+JhI@VG;LHZ9OTx6*~8T$No>C?Yj^s3%1)) zsOlt3?#+=KBPG@|8lstCF)!f_L} z^DC3EL9Dv%H3LTK3CookwNu7fWbb);X2J#!y>?7g8KtW^U>i-@2J_F{8DW56#I;|=xierAmNQgm9lsT!g<^g4 zPXObK#iRu{7G;z+K&$;)Rf88k;Ywc5j20`PP42ZX^EZtYl4%oWYU4@7Xw%RXxBS`PRPIav zR;fzT08-fx`&%UxcL?)z6p;~g9T1Zmn z0&&{7a3eRj6Rtid|3O^k>?nmQ(pw>wZv8`u3bV3$>XePN zdnmqt+e*VqT%+U>J77m{teaqye! zYX!3HxqJrZ`27H16vsQy4vd2esm9;)t^}rN2Xl&dV;S|Av|t}!Xu)Xi3N!QG$rwsS5;6#LUdYq=J>QPZ9_oBl>}58k?coqu2y}pSRQO{&Io_0;Ep<^a zo0lf}BFq`zg8kZ^YDzo8`VS@CBcxNM*{4Z-7JF<2$&YLV|52Drv`^$Bnt?g_r$X2N zsqix6Dr7Qlvx3`GIalnY_1w#LsA zHJh2yahpWH@6d-2o9o?-Z|x!-*}=+qvU(wCR<3J|vn-FJjfXb}hfx!XRnf(Bdk_0o z`H|)}bu6sK#mfdx2wn;_t!PeavfEM;iCYTuj%9pG&R-ekI`u&v_ zWzzi;>qOrn;v@Y__@J$TSiR!)AGs=(uAh4K`53{``~5>>gWHj%Rw6Tn`_Un9qG4nO zR}sClwdd!M6LU7o@ENynRi^qd+$qcgs9I_$7bDp)BX9%<7(%GDjCmQ+>l~Ut$)?xN zT4)*PY|I#ew&L|dUaD5N)=xE1HyZOs@XhPyILSR;b{LGk!Bnk4{Zy@nZ88Hs#$Js6 zPhr2QKmI|D0iuTe_-$b4_@m0QUJU!$EJj9uw_jvh0Ub@0?Z+aR5ftvBnkXM@1{}1=O}Fj)oNi&SB3q9yqS#?GlKd5AfGXk-Fk>l*<5q_i@eWB_CZDS z9znBN8S8uB=kKtGs;zM>orVURo&K#t_YE9v2$@80ZHHqY@^0=IcfNKOK@}G~F>0ZN z|BM3ECJy;5<%rR*@M+BE`^tA_RvulrHSNbTT9j?fg6SxqG|DLwxw!SOYBqMF8rG$K z+5#6XfaOth36rOVt%VM(=|-_+0Y{Rr75*Z9);P0;|PVB6!aBxa_BuqZ~*Gp_fxCb2Rw`uI`I( zr3z`(@9rdLIrFR_nmE+2qGmaNmX_r+1Nh}_IsuudoRzN7=<<*=4VN4K$)0DTc~(R@ zRuGfjKMuN@_{0506}!C{@FizWCjo+=%MyxYhlFN0qb$?>PUPmjcRA%f%Z^IM2^3~m z&UQ=r9(?6L}I}(E4DA$Fp?(Hm}9Duj1(J(d6$zW^g$S{Y@ zGwe5e4&sg7nqF0W*fjj)^xzJ({-(?aA!KVuc35VddWQz8J;JMT?80dxu zz=DG=OB2o}^Y@&!=z|INBbl}cgl-O|#Nh|+I<_D~3BknuLcu>lwUEjtlCqT0@QPL5 zn1;kbOqjqiuy)#VXTfH*q%?-%C;`-wSsdD9%r781o@lp&jallA1WBB^M|CG^U|r-O zf8QpdM*KNvAw$8pp+RUJztP;qDq(d(E`Fo2INZWa4smEMjjs$KmNb`r!ELcSuX6|A zfQdO5C;N49Ys|L&YoQ_a6KXFa8XZ~(SR7;zA{rZM2N*78814_~8)z0RcT?C&P(@i044LAlz{I`+!l~sa$vzj$dMxuV5;ocGlod zr23?wZH7BIvkV5y2;vdEfzmO;%%={pE4)5LIhJ(TD>92l%JKh*ixT@S4ln3j{K95r z)Od^UR}BeUKXC&PoD}-^0k#fwfN27PGs?KW1T^GyZ9x~Fj1mnYvc`~g^cY~VUP=o; z>9QoJG`0c3uQcY*A>2YdaaelXN-zy*PuFuRlT+$W3+Gu%hykHa4-35&KgK3T zD(RpmJD_~x?c;|V1!!0M0ABO1-!0#;*Md-?u($~UDd=t>Aat~EL{7-QW;Pso-s=Vr z0ENTaW&QkW9JPjB_mQk{SR{{bJ(*k8g4@($PB&Z*^y4tRgIbNrT;_GpsrmTd!p~bmBBkHTT|j z^dKxDUWT5bZ&Gv>N1=zFU-9)4EPRlg-G3X z;MJ!nJ24IB@NuF#LYj0x!~}Od-OKr+VT1h2rduqY|4LPgZp(4I(0}DO4+B8Vth70Y ze18#qpC@zrfMUwPm0;`{3I@8drGyyg`%IpvnieGDjHB6;x?0pK?*5{;KsooDE&RfoC|Z)#1x`j3fe17JgkQ4YEP{Z;qD{lPfyR1!%6E0nq2mVUk$IA%vYBW z4q#Nbiz)Xlz*?yG7o{lBt|V$Bc&=W0a1@X2POoe_UpV`OMWlWcbxl{hR;Euqj}dt5 z9wB#uYT)+(y<2+hKt31DF5)jHhCEyz5`2wYO^m&up!ZpC`E*--_crLE@f%}D)YYl8^>ctN)juv`@4kHTIk)qfH4n{FZlJSS8|ZXi zfL5ld^%uLAwY7u`#vpi?oMSqaEU!Xtau=k~=)l`Y4f}EAhwxM!Z<4g zAKfg#UkU|SOaYdudi?XT%wBSqs1@kKl&8K~Jt_6^S%#|u-*{u>LD7%|^cH$cM{$@O zF|V||jBXuTzerKAOrc;tj{AppC5L-rZDW8`C^1UKA$;b7NqP2y1eNdyG_{>$_ps_D z4#&@8kNdDf*bit$*K4Dg%Xm5L*iadL@f7>PFQKo?wij!#Q`LJ1z7?P zv;>f9=d+7X@~M}eyU%Lp9F1EcS&%n35cK!C_~{71A_b8#qOaHd1M%MFF5H`)0VHKH z<=D^kx2I*tmC2@d#=;DGE>Xpuh!_x=`q z{#$Sr!Lf@g+k?ijZI>6ch#H9|!+jFTsBJmPsN7$`?!DDXfieFAR%-if8jU+S1cv>5 zeFIc2>e%2F!G4xwy3aij_389O0G13Dfrw^f$_T7nO@;me95sLdOi7q2-Fgo#f~*RK z{ft-b_R`^{f8O;VrU)$($!)%@T3F8}3N7N(xtT~;%`*iWRYe3I@+ldzE9a_${+g$#4t z;!J=46Z=~2T;l6o;KiKF((`a(K=#nTn)$!h#x?)Jcu1ReYzGBY-yDET=N71=?9d_r zkNZo|r!e$t4|%w!JDPsMofkQ&eFp3V4AVc57hnXmw%!eh@WBd`uvhAhiUsN|Mwrn# zhNfbsf6)stkF8`CEtXW*N5E4=Ez!-pyKY3C9xvvC%QK|~2z}~VpsW&WQ;vrTN}MQmJq(|@@@vg+XZYv^|DQkP@yT1c0`b_ zIsNJ}V__%7+kio8URP!{16+}lZixGF8pXVdUKAxRBeF)9%R%!R2-dZM4fhVKV-lWW z65thsw#!$$KIP8jq!>Y35^T6@+H~iy$WUW> zBD)v(uwzmw*lNd{bbut=qc^IRCuV)^3lZRVNh-y%JaA@zdW^t-Majsi-CwA{Tuf$+TurM1ODiYLy zIRkvCn1Irt2Hh`{M)Q;!l*5v&CdLB7&K^3LTLvc-Dk8PCVYQasZJ8Kv@$t;xB#q55 zesUGB=^5!WFOHAlv$EE*XIA(RjXlqJvs(Z-P31%F>eyMnMp^ulTB^{c(x9Fm3xBcm zs6g7-Pu6Kc~hl9&|rd@*94jXGkRFIyo;-npNco{qtsa%^UXjQ3S5RbfHY#4PK0)j1BO{iMDw z_`rkXLYK+H>96>Z zDKNY}RMB4;49Bz#^+Tt&6ICPZ1m8gIk*Vg}+b;?l-%GnQngL0uRjc(AP-Z&NomyR4{KBFz{c+w$oPOCqah2Uj4U9)sE<|9eLv zL>#vd+N^gOeC-@C zAjX6w=&Qjo?PD3w*p#Z}4;<_?3xhNDMQBP}8I?Xf`%fWFnlsL-3I zR)b>%oK6k`8Wl>Ez8^6mV{iFvz|mhr(sORMmjjf@BJq65YtQOkOJdt|k<@5y<*7?V zmBesMwjR59Fs9V)#G!q0kc7A)O*X7Em2wM;Rq*M12(H1sG@|wD}it91?Gse z=LBHKxoqprAL#_Ap20TVS1!O~ ze{jt%&V}$k<`WAx5Dms@!n{MKUz!?7uRSiBz@hoK3PjXDRRs535h;`_YgAdgR0bR< z@*(S`Hix5Nzq%|5UXY1D(__6`3PKu7`#!fQv`5BLmL4lst@lPLz1A z=#BZvq5e@i89V_RcL^pzi5;#rD$xXJd78FYnbr1IdgHJOLbG+ll9M8=N5sqZ50R39 zufGta-0d@1qE-Msqe>Mh)#0*7VQqPl!PB9slwi`8oZwia(%t7jmUmX?!STTegn<(!-0w!gtr|pn$XyA<~}?T*HnNAC(^ARPh4@Q5J~G8 zG^v*ef%4FcAIbi7V1!CDmH5(#=gbj4BLk|$pl-3!Q&^`bF>^&I)`wfMqBsa|5=t^? zaRe7~=*CR(6Hs2v`Yg!7+XOxt^rkB=I}vlFGy<|9rT`0hpO?Y(e$`J8@QRs7Kh`ex8q{G!=@7$Y$jIIo4!|PhPwco&9#%;h@0IVk9vcyxBcn8 z)AYB8v$x0BW4HE~?CJ4!{mZAD)As6W)U&hfThOQd8=b2{f=q@u?cJRf#7*hz`?IeA z)btd$bj559)NwaMp4DNuDI;Fq=kCRm{ZFl{R73j_H)j#+FQu(1$c8p75g}J^E--+Z#Smg!-EYI{fCExfpf zuyGc5dosY4H;wkWPttLk?Ez5Zc(ohA1E^kH(6Fw2X?bT;Y#WzMXNk=DFIo zx=54DNeMXvK6h-`;*w-12z>B-W|sQ#;`_F^u3sl8WKZ0;S3J0S1xz94BV2v06Cx5I z<|h$+b9olnsJLryuij*GMJ=DN9(|#z?5@C&5SdtLpZ9SxZ(TaEXrCwdV&^CNI4x3$ z%kKM7vuc3?TRuGh(w=d%ZaAvm&62gbDKIrz`cQTK&k_?k<(@nvLz@ z61PBzP1(yn!QRJn;1q3+?`HPM@!>5i`Pla?Ic9P9jeunTt#mMC za@Et3;Q2yt@t&%6x1I)j4#XXnTAgKL`h$XW>kK>0Bf5h|7(3CinR{rYxm z{+OH)6YkF{AD)UvZmNcTRsvkWFqQQ%g|&s`T(sic)Yp#5DJxgyB5`~ z>~+!TGYcNL-KS;boO_^aAW2vDdQUKD=x_@(ga;bpxV;ha(jt8Adf1jh;_9xtogQDg zv6HFI$hu8!H^f;TJUH38`N_No%~N!g_HcgdIPEqo5s>~`vuUq#t7|gu2xlwBQmq)V zZmkK3GUf%!Yj3P?HkS|Uc;&~xR1WpAOh<(5&F+If73_R+c^Eb*i_7M5BZ(#~0rtRq z?iJ4;6u;>Ag^+kKK2kyUn*AuAw>Jdj{>W`%bU>~$gjmN%eA5!H+Ax?B8tjepPU(wQ z1q`d!CZHfp_eUm1IS7VT8&eW_XVJW4AlP<~5356O-UwZz$7XIayx-r^vTvH^nNB|` zZnij8H)G^EU~#=CmbPCpjC81EGHK<@)(tu{M@0>j7=tvMpV#V1JgQ?f3ODz`VU?*@ zLd2ugs)eo?Wm@=)$8y65x zV21XZJSl((RIDjP(4tt~?eK31!Uecyu$MG~ZmON%LI2AB z9ppY~2ToX2@*Ab$H~b$ce-HRO%KxqckEmOSG zlC%PG#Doq2g~5ZuZ2k)C0oWsMu}U@m##x8pMf(05=kEc3^IRj{06nKmz5xou0EPXw zhGOGXF8hdbdvzK86ud{ar%U}@Et}8*2K1iuWfEa(9>0McK4!wwn4YFLO5Q=fHmZMc z8orbD(+wbG^D2*-E}z^kED-@9McQl{y&XKChV1QSj`iJPMiR)1xQ_!jTzOp|Px)KD z-wtfPAKBb;RSxg+AQrogqvF2ayFb94IC=eiS2j)1>4ka8lF`}jI`4# z;<9^;OdL74xx8nfAjE3AIeA0SRQ?hZVOsIp%G|kqa~b3FbM#>Tas1)O^7XS-?WCR) zQRr2$YU?R)#*{aD>hq0RtM?0EYqwjliAd$bxc=?dP5)@jxMI59cb|!N!U6NaU&OX0r7iKkiF@cE@0Ci^Dn6m?g*_-OwBgxEy+}Y* z4N9=1VEd=4MwgBk--aNmPCO{ZN0lLTNI0Hrh|CDf_o`iRhG5Cx)E2e(yUbrHxbB>Y z2p{C6KfmnqXL=Ya_IB+i2)@>iAiFp%dp|rs$4CjM?*XrLUS@a4>Yf`!47ds9%9x*9 zmd|)t2$}3r0k?CUsnO~eU5dl*TdhE^hnBT0|aCKl9k1Lru3z5_uv52yTj zJi1zy4fg*L_7*^KZCkf6?(XjH?!jFecXxM4u;A|Q?(XjH1h?Ss1WzEy>zs4%efNC- zd+)Cd+qt?AsZz0*{Xd77vEy%UUehiFlbC*u}i6G=*J?#ec6}E zciEoeu7lLv-egytZ>D|s-&VhPdNcU$B6;8r!eU%3HF)X@ z5eICoc$~F&lli(Nv|%%BUuLJ}@sz+HkI%On8GsrHHk@iq?hDjp$gWf;5kjJR6ZRg) zSdbmNXbjo-ICS}nl-{SKIW{ZFm^@B<{J2<4$%vZKzqK-CHv;{_Ll;nXkTSS<+g#(! zyQUVH>QG`T9|YV7*0kmhC3JbjxEx!HE1BU$Yesrxc;-O5>t#m2d`?1LnrZlQJC$EA zvV6yu(F?~F=SPILz}`js$$MIJc1LWT*Uh0v5NGiIyLm6OWs@-v?6Z4g!H`#6j>Xr> zPnPbA3yex>1qat_cSvdhfC>EbRcb6xshmfDf*%Fk;CWH_?k~QDqy?Ni$nH4`$n|)8 z@ZyH?LR@Y~0^Bnz(G|FtJqqba0P79FI%eNrNYxakE_B{A6IfiBWr|Ty{iM zlli@jh|@lF^`U%2C+^+H!@Q(WOc7gaIj1PKtI1}PxX#LVl3#TvClx&>lju?RdcKm@ z?|go=tXn58R`+7wbK$|}O#=;**X`^Gt*Ntl(%o#~G1OzRqpR}x?HTXDqF1SmtN5D* ze~ZnzA>VTI1oKh_^yH3k-Mi^+{Z?|+HuKpT8tnd^Dq*0qg5fnb@s|#F4qm5s=kEb$ z?7a@3Ct8KR*{P;zB89CxxjvR0*o}AIsf-bNbf*Ct#SAAT2$sY<^@1{-xymMZ{LVtw6i&h?`FM(xP-MDItu(_v4>4V^YHwWys31ZX17;Lt%S0e%3QrYe4S7)v9)3OV&&$8;Ogo+X1_5 z%WAByFB!B!|j6m0ju2>xg^R_`>X}Fur?OsL;@wKh*9dyr1YQ9W$ zme~uP08CG5HuF3fsZo1Jv&l{^&Xg&klM^r1Y2RtAV!A77Nj7F>zwR7{%(gS8vUT4h zFYdF%+neuYX9>+#`Z8&yWylg&linOzR1K9ol3*e>FR!j)p@)mKP+3<8F1jAr=kb7s z(HUH`&1|3jEOHS+DqS_(;MJo_>*MTF<(iabKHTp|$l_P8r3>F^znU3e_Wm&Uo!+SM zD{u3r8`FNuwJcq#e*xQt|K*;E<^MW5`W86#ysH3~I~}Xh+D|}m>u28!1zc%{EgPnN zBg9He9}0jYQFS%_43vs&Ovr3Zwnh! zGxi;}CCVZ7(|x|W-DUQ?%$d`G>_36LfqrcX>l*?~7nu75$}p_7(>@;u3y$;Nx_SLW zMoAC4Io01uk1dyp;bzaXV-2gr=kBCz`CepK=0iW8kQnKBUEAxDhP2Dscr2xV!x+VP z&F*86w-}PP{nB4jQ=J_DlKQiBwVN+`NQT4s&W8C5#&t}| zknrwyG{k0>9oHhDll$6fUjh8d!O30e_sO=$fSusa|9^G>j;Q;*FPko$?c7+%-~rwT z@a^2|aLPGuj%2HO$g+jps|tmF*9ro;F9s7#+6-j$P4KR*$UmX35qZs8l;s-u>!WoB zdqAN!MoBia4DQc)qPy$U>#Kkxu?-vvmFpSBs;%D1GTv;>pQer0E73B)9NN+b^5QxK znz{!%avjS!&}4otb9SZ>?GO2lD8ILR{JQh(@|0`M@#YHK-3)9`y9fK;Xw8z+Hk-?j z7?;%+w|aJ6RYU2uDzZgiu+oC!5K8JGX-Yd9@Ks@r`m+ZJj4lZ2mDjCVHK49YUK7!f z!CU)aqIiTlm$ahNoSKNuc!=6|ftr4oF|P;RKpWj4!za~>kT)Oy8=FGU=^%g80{;*J ziyKn&RS75#Be>YIZk2q0&f^MAqhp%4?Y$9jy^Dc*vvTTc8l@;C#^yK$_(bs(+O|^M zrqQn}h)dhuLexcX(q>W87RqaMN?^623(leg6^Lb?=l>L6!&T-EVWh>gnIT6u9l*hx;g24IHy6y zPJ}nM@%-o6Sk!u2CJ!IA9b?E`KXtcUn#Y`^VCVUUn$@J`cu7YhJJ!fJ*7&#ikQo9g zdf48<9=I0=Ir8iYJQl(`&d534^sLP2{H-=9i$p+)EM?(&Iyad%mnj@svo5trVzNZE2u!Y)Dm{PO_Pf2RJ1)LA| z`-PK`$2F2EBe7@VmA7lR<7+Qhx+15Kq!@8$L?qY2gVOgRFF#CZb%hzcr`HOz`}Moj zN=0%_Ks3h_HjuxO*53om`}a7z75T1S;9ML1i z2Gz|B?mh(OGGj1(fbow948CS_px&#AfDjlEgqeO6RmCBmZ1JS1nrg4}qu9^X;vf(< z1-vmXIP}8X7U3WyZN!J2Vi4rpC<8F0VCZ5H1}s^#ayA-qaK3@!bgTg@C1??_&CE%X z^7)<}IuL_U;!Vl7xWeHeq+t9Upx3xX-XoRzO_R2$Fd1_lcGj3U&#PR)Fnnwwytb%X z>>;c{y6FQjs9LY%`QT5rlsRyyAUK%;q~*DM^9i56!X;1W3mt$toe) zji(rdpeO`YD9rxt(ofmBBkWg*TU@4v&goYyYeSRIQ5?*eWGLJu?H*2e|C5ib7=#Ix z8w9Td3sG2Ko0@kn1X;pkpJv!6#q`YZ`1cm zuIl^No(kzaU>qL~HHn`Dhd7y)6oEdeoAmohc#>!kt6504ni2J<{*7 zk)gENjTzm+u=~^v?d9l# zm#@)FwBv1L5sUaKYK$Fe9nU0hV|vGpW6_uc@@sTDXJVo;B{>r{$HRFBPX}(tvvscn zRon|z#L!Ix-Nh~?P<;jy+0zKtvK+nR&Gpk9eRDWs z+ua^)2(@wXhzSFWj-!iXo0l`2!DBm}W5k`t1QL|+22V6TzV}|J27cd%V$)ai-lUNY z`dAG<1c;yy5>3vt&#vUa~@pNhMEwWDrc_8z(SAEy)}MzJ%nQZtUR z@k~!Qd|2>2?CN%uEp2XIc)NY4XSSymJl<-&-;}dGssR&$X`kTgcDfCMSM#3g>5m^R zKYjLi8})b#;LlT(J(p`w!B1W)tuq5yOlh*wH0;r@C*8f6GY(#at?q=cG7C}S8Jg*6 zS!5boMHe_OlE6r6p3unc=((3d)#VLc{4H#Cr+4)S@Cv5WzG;-&d(2t|GF>Ek8t#6t zmP4xB!Kw4ZQ?w9?V7O9uP*Tb2P2|mBG@QsE4y`j&oV-YDfvF=l@FO?qdrh|TNw7A~ zu=Xur4eiCG!#k0)9=dQG{7;n5RpQY-ip*pNkM*LPmzfI*kGC;4QBi}Bl5>=9-=yyM zTQfnJPft*sm7Dp+Twf_&Rfr!eaFU;k6-RP6zq}=4?L7kVhA-0c&|;X`7#Y}Sm^nu0 z+C&oueca_e-hi&9XZ2)c-Mno4e5tAPv>$9W_ER>G>UmFG=rK1Ck^nXIcw3*cg8Kys z8fZ5Qx})c&sZcPS$X5G`gc-zk#HV&SfeD)0{D0ANj&uZXFz`=3j()gu3A`F*hBL+hU$)ODnpO)f2mosG4LiHm*QKm`K*E?R_K~!?$ogQL2#MxbkDZ?!uLBKOY zt)MV)C^MaVbtJV(unM)G*upJPW=Jw0T|=-<{XbO>!_H3|q>FL{Sy`Oit%6Fsiw@57 zFQCj!qo$E$E`uYO;T7U486{hdY8tK=RM#QQGkD{Qv;V<(=@^V+?I*%)46(9cmM6^= z;b?Mwz5praBi%bCv<|m84wpljIR}MeL!3vTVUguHpjW(BN~I370*Wa73*%oR&V|J| z{)hmw`hSav85VDn>oNFS0Bb(%JOX_;k;O(4+d0b2WeDvbTA!Kx2>sQlDF}MV5$C4~ zoPjyUr+(p5(o9fD$q0+ybgR#_Ux0l6#E0S_%`^^KEtZTf>m7Tdd{O4Lkjl4J5l{$I-dGxk9;5{=sy13tYU;Itk zXj_osx6)Hwu3Oe*DICPFbwZD#Kf+7 zg@qBoWQcW0sytuncH0PvX}vF3m%TpTw_|3$h_`%-2g^I6gY-LWNp{~Aae~Lrlyri3 z=TZFXq#Ca3HL!0-Oo2_&hMFI6OvgrW?b~WcA>s}iEP3j18tRO}3U1JfW)Krs4DhUi z?>MGqmcZ0h+8zukRo)iGtl4bbM^Q5P_9Wsd;)xH6M^i_(xOZ(iC5e`dEo>EhC+R$h zvc5iiCv{cOjYlk#bElDJJf&(7iD#GJ9RjaV)E$C{(_ubBnctm#6?7MP#|6frWFS#G zv^AR=LqWsrKZkJiSVTj>`dna3f3*Bl`aHRif3!1H*87{f%>{0l+1Fte$Aa zmy0Lh2x?;kFn;sg#jTYMvQsweA4V~?$2(@HoZ?l4|Br;h(}oHDm=wK6SqV1)tS zDT*x)T>vMhS|{TQhtPkxDqD^fR5yV)K$#%Q#1K2zno2{GYP-aMNdU#5>d>u(r-(KL zYJAqOM#X3Qqo^6Ainz$3RjWv498R^zZH{z>rMIu4^hvX9BoiwX)C3VaSO?9Phi;fR z8FQaxMYx)@0ziE`(T3ad!)$_6_Cln3Pu$A$8(smKfyUfqZ4{@87!)vg43^QO>Cz0A zt(q*0No5)m-!NXNtdYXn=SvU|G)sk1Y&UB~n(E=q#4y%T z4W`Cj=;hl=aF1Z+C*F{ICziR&H`KCc#` zHO@tef=E9PGZ7a2vXg8#bKB6tnmQC#_eyh3&4 zJkrdwQd&6yL50n=3_rB@AMGTBDCfm#9+mH|#hLOUuy z@})|~pU&b&OcE3G7^l22L5(%q@*rdO(|}!mx@mr-q{@gV zPG}SFPl%=fI^ay;Ua6H6^GOktwy`0I&Vsp!mIwP!rq*|<&K#%$si!tAlTxh8N~5YO zJ@QY~V%UG8k|2dr5--(Lr6a2S%L2W6palu=Sbr>->55ExCV5zk+Aa4&P4?1M9?4$n zill=w-&R*^p#E7~*eNmp1(WhGz6X$hkhi)b?_3eo=A|on@I#8i-$J2n1J{KyIRz8> z)T_UVr0{*>)CTP4 z5FEvxFX8Q*^g2~^PWoE|R4_ga_lp1>47aH8MZ*uoJ*eG;It)VbqD1a#`xJ-E2_ad! zZKot>&*#v*A64K@A^cvU zApCmvheV70;rXwa2@_id(}zf~&}ab9g>m3QgOc`P6U;Pz zoSts3Qw>k~kJ3;$pi&Aopi+R6Ab7kJUjpN{G^{0tqU^Sg$s;xefizEA0rw_rSTJ}o zkP@%Q0z(`rzxco*IF>Ze)6xY=ic|YUdw1~A>`&O<3tL|dZ}L4SH7#cv`fB09fMC`0 z14XFbG#SVgUA1m7QWxQX=X}+m&*T|p~nL@Gj%kG%0-e1A2tg@ zkquDOWLF-H7+i}h+kArrn)S{66!FV6=^hAeyptDFt`ipU+2*s*4Dn8v6^=4l@L_4u zQ*u17K6xbAfcwA0l2wRlCt&;)mM`O=;ztStoo@iEbg~Mjm42m5rSNaI5EaPGw5ljN zJK<&ox;#*6o}6+oo5EmpsRm8760`rW&-@;PR(OqK81jNf0l}tK;>iBf+Pa3;uV&Uh&v-T7rd!LZ!YfEaKsJv zRz%O)u4%64IU-X8sa&*mM4eHlz+l}Hm3femG2c@wKj%}1Z!5IU^|H@~n#yD{um3BtEGXcTx?;%#_FD-CI;Zhvzg&Q*n8kVs}1_w08v z0rAP7I_QD8tjRtf30Vz4)~3e-p=|xTMVhGp-b3tZJo%iHuhhd!BN-V|I1kCbf4Ep1 z8BziMC}qVOsw)V;*z|y~je7Y;PF_um73o^(#y}(+(C>4XgQY1 zHE^1c&oHy2A_R9`Tj7ErtKov_tbI!d$g#q&dn&`Yx6s4HD1P}Ifxm)4Z^LMiw&LGN z39HHl_K|lj!-bmVYmbBG`%QoEAPL1)E`+mKqWbk`w^)87d-wkpgvcZD3VI8@$Qt4^g08^%9O+==IRQ$#bZsn5f_^t?bC zF65s_`fdc#kqITjVqzIWDGd_!3w$3rz3KCe_8)Hbpk?7gB=1IilBj+lC3D20@Iy|c zOnSpEUBJI9A2}c6J1N2N01JT=(6j%NLLTsI z2NPt7QJNhd1h~bf`!Ch2Vh(< zieDJa>??`~`w<2K+CZ~cTuqAAYWSu4Yebelrw-B$B zdSgERP)8_XZ`Fhh2MUUT^IZkr262z&$wfI|I8YF>EI=J}sNAr=pT!18QoHZhgUWXO zsE}Y^{1yJ{m z$vF@Z*DkZ0M_lzFVI6YduxabL0cviUgn+X3fJNXX#Z~4hh=VB5x_D_8h7MrQw&0oh zx)$+u?3SR-Ou~P0lex_EyrcKxHV72p`X%QW2vhb4rtEJReL&f>$`s+B|I^Jrwnl*{ zqIKQwSlx@Z@& zIIXIL{VzJ}5nF47v1>nkJgakX0Ip#<$I6!qW9+^x{nppDiQAo?v%D?=jv2PkL2YCld+1A=Gf%_VbdZ#WC;)d(n3zpMk10f@FB zJZRl&NrIVkoOqti4PX~B2k^`|WoEf&ddjBt1BoG&bujbax?RRVo7013AN%soBwWlw zUur?2BRFMtU2wDoK=RD!<4N<(JRua9FZyUf3-u7nQ^M13SPB}ted(3mGW}M%!}ZOS z>E>k7z*#kZT+J{85^$Ti6w<6+2B0~dF_GW&xi_zIbz^m1P;E09fL+F~t1gyOiGBRs zLB{Q(V+xlaNH?Uj_Vz%$_~RQ9{|X!dfOKh&S@Nmge-J|;u*3&yL7KBrz40j6%-&q$0c>*<9+pvI4;P3kmto6NeU+v9A6y?a3QPCc4C%&QqrZN)>j5d&U+kU z?X=a>ghL)3x_nnVDrPAT`TFkDE^$!d?%fIjt2h@nWZ)eC zAx$<38zZTtqS7Ewo?l)K6O->$;EWd#j?Ykw8cu`4h8F<52?IRb&%t<=qVgycG=gjuA$3 zsj*|W2N7?RWXYR_HfGI|;vH%fA&1#F!f7laSRvoLf@9yVrKzaWF3na-UJZ6pX`kac zDpt}Vm%@A9ykkn4CpWxeTYV`9ri+ruz;uz#3x)&vsMv5)24mEBdVBT0B|kqKhMsye zD)G}2)})MPGP>pE?C2#7ZW9baa?+HwYD&_-IB~IiHT(0@P`kw2QWr_VgUsj74mb60trX(&-fT9Tycf-X!5-m%8{&POxE}UX6B@}sSzx6k0i8J#|Bo{+ zXwU`N^{xetIH`z}G6d6>?5!??UKBLc_O#SOHJ^XubsRcHbc!b`WWz-SYmfy@*~nC= zny!hbbn&?%+zOW_@Vl;OePaK*>f@06McX5k;HX!oP}2wGs@LL7>3$`lRfJ{Nna)#! zN~JAuyPQHjWLEhZ@C$g0q$8(YjgsEom(%xG+|K~LcW4#kg6t54MLF6koWN8pCJ4qW zQ*~Yx)xTf*k|Oe)D1UBYCMGAesw}dEOWwwRBxF*SxwjNH9wrwmVT@bviN-GqVqJss zLjLtyHpe(r1Luv|56*2g1U0g!;fh~egAHQY^((fRu-4~|W#BC-9|3jIX-7G1j%z^` z21rPXB~9j{1Kj#ni-T#74n8ty4r69yD%3m~k6A>IE) zz;n0hFqsTi;9mr&j-YrkaVMNPa=gJL6y+((LM+D<7PA(_NXkgcWFUXX%;5#ZI*@Z5P=DOYFmDC(?0i;``jd?8pvW(=RNhu@v`HmVc3| zyhrxW4$P**h2&ip0pzGz9d0Yxk(BK*M4F`iZOA&pA3iBSgue_aO$7(?ky*_OX8$Y@ zlQFj@?xF)6C*B?zdL$P(mr66BOHy|eEO)Z9ISpJG_~X`h(u;|KZqrgW{@L$eyS%DN zOTy%qI?CahGW+7=qZ+9)uQ$I@BamIWymhBd&(DLfrxx(P5;GG5=UTf+`S2wM6@iSr zM|~@u1%vBcx@dK6#T*(x;eITHDNb7_#WO%BA8zpnk0q>xugaFV@&#Yna^P2YZZ@5kr^epTPHR$B$6qhX_@Vb){pnrOP?iUv^I^; z#cle(nb2Ph43Ht7iQ8%)uI2GDDH;Yyv@U3NY99(94B>w0H3Uci%OGG_+G(>iQ)IMv zxB(KtvpMP#F)De6(3n3ed-fzKQL|4Q841f;np$UyObS>AZ&F2INosn^kZ7F;BAKB; z4<*i8YPpU;VO88Fz-XE2?-wvc6-x_1U}?9bFf=kVsPIh$T`{oT4AoO)5&VZxF@Ls) z>Qfi_v>wP;iv;_Jl&7C$QhPKeX&y%Zr4Bdnk2*1w|EY5W`{4X z32tS7136&fLf@}PD|Gyu6dS|conKPU>&O3SpjRX$Y1jvBH+2I0U+tz`&E4Fr9W4La zXVs#y*dBFI<>#Unp!eEOu$c0LchjUC4vaVv@ z&HZlJL)!ib`1}L2;b8jWYG^mw<)?~f9o9+l2|{uzB~B3baE4-hq@dGlP|@ldHcl6P zgLBBS@m%)HG$KEB0+v^P2-S;IHYD?6S4?~+2Ewt}w1r1Z^a~Xw@#P|+$O$A)mNI`f z4@gwP#U>g&3_fHuuNRUW6hzL|Vhj~Q#t~(V0;H`9`)~2cP1&QZZ-x0GQ;hS)&H1hp zvJb8CgEkZ029zJEp92_{*M?UH;|T?9)|A(T78X|Ubfgedwko*d-)@DG8e65Lw_{=X zu!2n+9LxI>G26jx6lVM43KY>co&Y2fsx{V-inS9RpIFB0N3(r{@Rhe#M^zry5c-+T zZVbRk^bTjGqsoE;5yCGrp7R1Zu~S(qHPmb?eu#%8Jy#7-jjcw}H?qCoNXTBO2kmm@ z&Xf{15PT;e-~bFBQY1o5xH-eYG6!k|?#ux%jeo=Zm1aNq}IOBUogR@``iwlnYIOk4~G z9XP||0C1+9^gf|9-$mlJ1iQOh&=+#|>;S~_lJ{-e{T|iH6oo%3%xiSq>LP5;4%7#E zt{E!ok(0eUDxx-ZVK<$mlo%^#`L`Z`yM6^*r28xoh^2?NB(aBo*}JXLr8)#txzgOH0ro^pl3N#_k3Gr|v$twSsv&}p!KS`^BokSs(?q$8|Dkbw zD)yn&fa}Vo zzb^QgxdEFY76gzv@7}?~MAZYcXjaigHXOpPWRX^6Cjv^=7T{*6nU|mJ+FUqY4^*UQ zq!rtKcr#49G6jG3+p|Gw?B`!DnGyd8+cF)cf#HXV!OFaZOTOADHmHPrK@ts*874ES zU~7~)K>*^&pMY>pi(nof)#RMoAy_D93sC4xR&HR8S^HW`L$nZc+eX6^D?7+O z*#wHe;(0A1g~~WHIUm=$S;%+_eWDDe+&y;cI16L$mvQ$_Y?k~W%@Zm>)MVeR;@r)! zGJcwjtK9>@>N(})unu0}GG_2qvWl77xD9c9_LoA)Y41mOcSb~nE+NITeLvZ-zk~dz zW50RxT}^?#Gk?Q@fS~=`F$-X;ST$o4yT2M}Zlw-5d}kpT{qZ%DCM{dmE~y0rm2Nb& zc?t>N8w8!89&01vO1NX;_cwmKIF_q=nXU)>c&{t^X$sIl7+g0oX>d~BkJ)FFkB2ux zowhFwja1@vbnQR-@thb2!C8xa4*7{+dZt26X=9#Iqyo`*GEk2;TbXqhEoj;`Qaf_0 zsNj9PtKB!<^f9AhhbpN|24isGChED;Tn^b7gs5)KNwlIl3FpGkGonD+8(r}|!=qrt z@ZvSeq;dB6dUjGM*kS{#SYwta?Y+V`)W(e&B!rXMbS;#R$5@VR@lUUCSn;F_#LI0h z*qHM*@$tP_faF$@Vu!#~lo{G`@YyZy3Nd{2OZ)5tvmkNAb`&URN!9B;!ynt ztZeu3`z4IKR}W%cZG|4UK>N@|X{4qXEPI}*r#mZtx`c+a&fNqLqi4ar6Il89gsw)n z`%%B1dA39D$l2N6#^Mn2#qE9B7_;GrGB(%KVxqMNHyw5-Gx|c_h#B%w{C0w|yXhdJ z@Epjhc?|3a1j?s2)-IkxDr>B&+d0xbG(KuB;y|?R|#R zeR+Zo@(2;Hvv*WzG7;62_$;3M@mtn+sY0y=yJ|*GhXbkif~l%w)%E+1kYLO+4L^>) zMtpOBP3xt)DDzUNm8|@F`#)NTCX0}@j{>_EchP}>VE+4*bh9$IH)sCq$of}@GaUuT z4KAGCpPDG0hf6OT?vb4mmupumrHE*4VsXvlx^^_mBxe-8h*!@2{>EGNLvWX^L-jSn z@Rtj3nGS@lNT-H4wCj;H$}Yzv3g0QA$H<-qeEJMkZk8{?h(LdbJIlX4=^UweB9iQs zB0Y^=wRi`;kF4PBg1sP7EJZUWH4n1^gMd-uegy{N`c9NU+`DVT zK+poa(K3{iBu$@*tjXh@@~rx6x~y9cXDzJQe&UVLi$yqW5DdbFl=`~{?`xARtCS3R z0){w4q5RzAkWdbj2#T!M^4XdP&b|7}8KmN`9?)yUf>*D!~W3EpN$aqr! zj^E2=n_-`xKZ?xoMP1(8?f&|Oqu|GV7_~$@B2<{nCWv=<5dSI2rII3@VKXIOBV_?N z_CAH%5V7m27$j5RV{p~LwLEEngg?>(p;O+3iEem1t7kcF%SB^^^jKC)TQZK!hQjMDSjQR#>{@_RpHj60U9eY@@G&0KX7L4?LW(_E5nOCS9E6gq8*%~J zD|j^Lhn;bjGC&GUpg$knxq%eggJ$|PYb_}@7i*G9Ot$HCIIh zELkSDLw|(7L4(E|xy-md&8Dct=d$S)g0T>UQdTmI2ZCWw(qBwjHgsEwEzTll_6Zeb zV(I`6|6y%eUdC80TlK@tYc=xP@4jnm-hEcr zZ3Ev}^z%q^{)V2Tzh36(+0=T`yp_OV6mww!eV@(uekCTOFAh()uT=)Q1+}iL|a)TJx%CZ+&N6?y4=W6 zHr#W-St!t3!AsoFmHGJ6r@*z{-}}u1DrVW#nQxB4Qhk3omb>nWN`qm4g9Fg_ZHv3D zM~5FNdJp8^%{xs>RyFEh5q@VXYs}ubez51RA{>|Eq&9`oH2~m1RPr=4P6o@Fcfsq~ z{mkfIOjk?R0BKC81qTs*yAcxmT`|g=M!i34CwHhWf4R$Qq{U^t#}?c=GQIubuqwOk zkq-mEW|t%%GW}gtn}#LbGW-b@x7=h~&7sks-x09hS+(a1#>H8^y0X{)(bt2vvU60S zq*~yc7`E#*uTJNTqASE`ued**r&R1E-=>ZaDRJFLbPP_TmoIqe3CEsALSNL&SBHEW zJI#+`sP11)g{|APK!l7`5~HJCv$Sm!_45arjne38VbgOe8LBPs&mFt!oM1Bg@Rm^0 zC4}d%-O{S2rM{>JfS%zgY0mg(^K?E?L}FQ3?s*u1^!|y7K)hH)?r@O3hO7W`1^coT zOq`dtOSC1D_3(}exqptB7+G=}oW?9a7qj_2tOTYu*mM&U7zcW+SW6HZ z!C;n76^N%b;jnMxPB_hh=#?XZQFfZC-c&6dcv8&A)|7qgej0>0N~kYPwNO09S2c{e zTa+Pn?QmIUF2T#||3jDH-I z%`IsPw4Ttw)7FP{qxcmsY0upE^A_ zbDdkR`8lMJv^qD_OR}7U7Qb8$#e|k@>Wo8Gt=}!@I}S_!0}HsT)a6y3+d0!*S@gnn zVUBJ6`cy7mgTsDbUpr4xxrMRM8I`0N@N(r7vR!)^QL{Y~{(;mTc|q}D^h;oy)tjTS zY!dp{eJa_n|FKGop9_ny1=eIDfZ5%D)*KG*_9o^oz^crj>~2PD%VD1fr)Q^3I6+dc zB_fFff}^=mSVKQXlDy>}gbJtrJa3$pW%F9@%5;XlI!CBHl3gC{^HdDF-wyA)58xH@ z*XvDC;xu6}-=Gy&)tv~kO<7R)OZY)5e z(bbjFXz_igzFqq+oe^!vAHy9!_>j7HxeGMq!ZIN1f_1{P|}%7X&;hGi-<#0 zY5sC_MWbGMz*%*;d&CB!$#SgS}lXBk+>RR((AufLvV zig_`=YymceAa|&wxHe<2B6>9RD$!q&H23DuRu(>w2sj!QBB8`cDcX)g>Y=D7sC1X* zNnaSWP`68$_&2Q5xcD3-BhKWg3Mx9Y41_y|Wl?e+1t#TaS_;eo_!s37!GH~$ z_d4JXTr0}^v%{=$IF;WFqij+&#uXRA^dlmtJbXKX7AB>XbK(+OTlOTn7w?XqA{n{2 z8|!!L9)%~&BT!TgmN6r_zX3dMdLLp@SHD|KE}VXvbWt^&#Eire1>hs}$Viz`&)x}F zru6NqrPcPzc&t7Q!rJ!C?OpfW$Qy{q^xTNW?0VcuO!tIpkpSeeXf<9f&~T z_zZ^7Z+5Pr)0{t&ib63<_jdoo@BIU*nK;5EoF}P5gEOY#1?$!)A0EJVDsKH^0mfdD z*MO-O3CwmwoWD>VY#v`tXDJr0`+Sda{-HQ$iuGw{hVQOLpZhmVFBFww&vA`2)Uh(h z#i?+n&!-*SuGCFV82udHr2endzt=DgJv4oG2*2{3RK|Y(=!I91M8L=2 zLxKiXGSK_!p?~Yvaw3BO2gI(T^&QP%bT0leg=hx5d(U#i><$yQIsBx%ldn1 zGFLHUopY#6k^*`rmGPIwR6tI`3&>-bfX_z*hMHTpv(kJZpNfRA6f_Dv2F@s%%`K+@ zh9UUv=2kJRQgDLdx67^dx8CggE!SCI?-Pf@u|mV4xjQs(SQZ3ua}SY+=H4lXmRcvC zD%nd+E;o?VwvNF)5L+-Sgvr9DB@>-ayAGKhc!uaej`2{AG+j7sUII-2Ae+5T=Q9`< z3}i*(&5t_r8Q?4kLIvqLPTql^&<1h?`b8@l)Xj3vV2&Xy;o^sQE~!c2_)PL@Rd@Ow zUkbB22Pc5uB{OQ^%GEQzjWkaq&8$vw-v()NoCY&6@bpWT6*Ga!_ysbI%-Qzv*Qg>^ zl!!WRs2^?>1zw;gNHts3sl2A$LsyOJ-idy2QanmoP zb@FQ6Ka+f;3pY}$)I~^rTu;az_PW}K>-*iGbW)p1*vVu`nycsnEj)-coU)j7v9tR0 zJ}w?jwBY`+_wdzT$-U|Q&hnRUFLYkd>qKy%&_LdB6?P;`n}4D*`L-`5GA(V;AztTg z>Ojb>;8IAUn`X@^V(l!z!-_h%B_)ln;H%D{jiAl@`lji&-L}p9Z6*`)cS;BJwxHks z8xvRig3#z~Sr^BGhfgk!PCqDns_=ir1$?Pn!mms9g1Tq{0Sy{q`OY$+WQSv$ZdNWm z%x;G3f@mH}dy4z%W;=0Ju66`@>IV16`L1n6C$RBVfp&$k3Lio6^6KTsnjKr{A=+=w zu2%o+qjpitMa+xH{^G1k`lX}uN!qxRvaG;fQJ?R%-`%hA)kr8R5-+lAFZnt(&n~G( zr~`m~irGF{)fC*=%p3klQt-66w^K#+t%OMWbehXLa|j0^A1TKc5l9iP5NHWC_aom+ z-0**`MC-n}+GmGDYWgfQesj-@WEbA{RIuT?YQvhDoY8#qI+f#CUd(#h*WtU-cz)tO zh6#IqR=!$a!adJ-`J#*66>%@knPTn<^!~dm*&BDS>7zf>8$Orc4%@c=*vr5zekoW! zsKMaofy*~5&L_L^e-Kh*=Px)F*|4=v!LT|t=k2B&`Jy-Z%+@8$d-34WoX{l~g%g(k zm&?n(ps-!Kx$_-cGFP`|QIBAR@?puDFXSY;cYa!>@GmhnqVI!M?WqY@Ohn#DaOoT_ z)OlDjFCp^`^9%N*C+)qbbuaP8Ke^N&KXu~vw8PJ)a87%BS9wnRIo~tug>SbnNlWXM znQEK)Y08}4%g*hozV@c+Q1zOl+a_Hys;(^cefvoDN7Y@qgVFClub=Y7Be?kVt849Y zbx$sCeJxjA^LW|vd3DcjKA%^=u=w<~>2YwA^kv!Ac)x4ZZGG!#1ESVH%|QUxTy4Sm)OhL)ouOfqbE;Fyt$#W`uhaVpXZ8|UmbB?Ia4_Oo3E9> zcd*v(t%q*?4^CxnRefc}_fjU$LOH$VXTei1zLE|6%bM7vG8QyqCH@!8r(9(%hfi2Wiz%e&aw*v+mfMN^`(aylZ;MBa5_>jti)Z$oB>kQq1 zN;PkXA3&w|faA#AFx^19f$bhwV>Pf9dW0X{@)^K@0M8r%jVR3p z`W>70yas6@BcSD{fmX?&SY8AiN(XC)_#D{~tfA1mTFkmzpMfDRl$8PK7C2~Nyax - edgeStore.multiGet(relationship) - }.foldLeft(Map.empty[T, Future[Option[Boolean]]]) { (map1, map2) => - map1 ++ map2 - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/SoftUserFollowingStore.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/SoftUserFollowingStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..e4f4321f404d24fd8df0d2a55b9a19da6d4aa42c GIT binary patch literal 37511 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 JC~x+GcmO%86e9ot literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/SoftUserFollowingStore.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/SoftUserFollowingStore.scala deleted file mode 100644 index b2de4cf26..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/SoftUserFollowingStore.scala +++ /dev/null @@ -1,61 +0,0 @@ -package com.twitter.frigate.pushservice.store - -import com.twitter.gizmoduck.thriftscala.User -import com.twitter.gizmoduck.thriftscala.UserType -import com.twitter.stitch.Stitch -import com.twitter.storehaus.ReadableStore -import com.twitter.strato.client.Client -import com.twitter.strato.client.UserId -import com.twitter.strato.config.FlockCursors.BySource.Begin -import com.twitter.strato.config.FlockCursors.Continue -import com.twitter.strato.config.FlockCursors.End -import com.twitter.strato.config.FlockPage -import com.twitter.strato.generated.client.socialgraph.service.soft_users.softUserFollows.EdgeBySourceClientColumn -import com.twitter.util.Future - -object SoftUserFollowingStore { - type ViewerFollowingCursor = EdgeBySourceClientColumn.Cursor - val MaxPagesToFetch = 2 - val PageLimit = 50 -} - -class SoftUserFollowingStore(stratoClient: Client) extends ReadableStore[User, Seq[Long]] { - import SoftUserFollowingStore._ - private val softUserFollowingEdgesPaginator = new EdgeBySourceClientColumn(stratoClient).paginator - - private def accumulateIds(cursor: ViewerFollowingCursor, pagesToFetch: Int): Stitch[Seq[Long]] = - softUserFollowingEdgesPaginator.paginate(cursor).flatMap { - case FlockPage(data, next, _) => - next match { - case cont: Continue if pagesToFetch > 1 => - Stitch - .join( - Stitch.value(data.map(_.to).map(_.value)), - accumulateIds(cont, pagesToFetch - 1)) - .map { - case (a, b) => a ++ b - } - - case _: End | _: Continue => - // end pagination if last page has been fetched or [[MaxPagesToFetch]] have been fetched - Stitch.value(data.map(_.to).map(_.value)) - } - } - - private def softFollowingFromStrato( - sourceId: Long, - pageLimit: Int, - pagesToFetch: Int - ): Stitch[Seq[Long]] = { - val begin = Begin[UserId, UserId](UserId(sourceId), pageLimit) - accumulateIds(begin, pagesToFetch) - } - - override def get(user: User): Future[Option[Seq[Long]]] = { - user.userType match { - case UserType.Soft => - Stitch.run(softFollowingFromStrato(user.id, PageLimit, MaxPagesToFetch)).map(Option(_)) - case _ => Future.None - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/TweetImpressionsStore.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/TweetImpressionsStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..9e7704dd33ce7d47e64584be9250064c3ef55fa5 GIT binary patch literal 36981 zcmagEWmp~Awl<2pdvJGmcL)S`cMH0Z;IQxj!9BRUySsY`?iM5v-2GeW?!9;SKIh!~ zr+Aoij912}nl-CdDa%1ZVS#~x!GV>f@@QA87RDukgMp2~fPrCxM)f2B4xcO>J{hTd zI$F3GFnieBH6|%2t%{<3K6}AVW)UX!mO#ZW+i|3IWQ@a?tWLk-)mdUWk%xG=o8S-E zm{AUeVUEj4z4IkrtrP0r2POEO;Z`8i9s?H0;ei81|3$NKf{yTLE)&bdNe|_ z%kXh;Oxf*a!q1)jLBd}u>t%_VS~Jr&9ic6N_iMQExrX#-%lImfG-3?Dmm zb)waMt&f6a@V)LNP%@5t0_kY#$qW)<(%3s?bt* zM^Ha=X^7OSwu{9ik8<$wyg407ko(@`1nVvHNhAfTo6`*&=nLK$vA{LjwlN9cKUMybU6B)ZB&wIjBFa%Tn zM;AS* z^L661$N?x*w9?h7B59zF(@T7Cwrgg&ke*Ml#86}xq-ClzADFw?tG!8g(a>(R2A2%q z5kTglz7wotmlknDfg)-_eaCI7Nh-{+fjOv0SARMqRwXWJL~k#HQW9L6fPRhmiB`+i zmuVIN1CW+);`<+4{rI{mZ>b(-U1X^C(LUJ*@Nlmve?!P zoVLey<&S#h7tDu25=v@@9+cNGlN}fXyjBf@#WO9t@AsJ~DJHeNrYv1If>it*r-^^D z)~1~4HpVRZ!i~=8ai9IOKw+N|)vQ6M`3$H)=%50b1I(120gf&#W&mf4-zRxy{J3I2 zE1J}ukJOxkX808voRlm*_|caSGFSmit+$+93U=dJ+>@KT1@^i*3~t1m0>f91!s|SZ z&5&jx@gXFkac2SMUl4V$Usp|W)}FGY==my>g8R;T9%nD9t@zExdLmTtkq~OKAZ63p z4CEKW_$dbJxH#uNPmyJ|s21fOimRb3EPvJ%ji+s+KqlS8qWc*TKpdVx5nqp9+FV2o zmVsW93m%?4U?M+d2sOJ@4j<&aZ3pFsU!|+GbGV_$hQHc`y!xr8?a}O#%@0VViyZvx z{h+bxeuf2Y4GcTsiQ5A-5-K={s7k7;dy6Lf)|V3(XQ$0+H%NnWq~=g0l;n50Gbbe# zqJg<^YkF=QfPuo=;kmh;H6|A-f00k-EgUtNFHPgTG$|&)jP+cUVRs>`Q25NmyXy;U zw)8|AVcG4c;_ zP_1k`K;MTjY`)JdH{k;H0#6NNPm5xfunmeIHL%AY@;k6FtYuUJqArmO}KHn9=ca7U_Nf;Rmi+!ImiS+l{nidFCnY zDj4pUhU0otwYpNRu*;~E*lumH;T%3L$QKFP$kFc*p}P+Qh`_$ zxmy&dM*;DrXBTVP|vUqq|XUhX7l_ z_W(4|iMB#`%J1EDcS!C&;=iCVU)Zx9Y(2ONAs)HI@B&-v;fYgD;O$;UBgcsYTI@Dc zl7uIcBHdBvk;%dr$1Z~yv^VIBKhZuF~c2l8~_Oh z#)R_c1?vuQHfI4{wXXJ{o73+zV^T{GFw2SsJkZki%vl|XZy>M;E)>MVR)Anr*@9LW zaa|i=>>6=PLmu!uSd#TZS59)p>=T;PUua1iYRaiYi9zwuJ9e?l9!suKJ|g72b}ftsS2G#6tT4Y_FhNdXjo>V4kkO6Yr9v%E01Ghh9aq$LNU#rUk|@q~ zCtEJ*urWCODV3His*Rw=+IYEYFtb&2DB6VIVQE+SSo{S2k~GAH#L#1KXcdLQLa@Jz z{&azY?t~^6Wk74UvCO8U)b;34rQ`0Dg`#^O(ZFoq(2&rA`7{;4>1!ePDS`9QUOn?cOAuEzp@f|AmklRqZe>ecK$ zLV|6E8Wf?p9*1oy%0b%R(syNzB35-4f9;PIb91G7sCfh>-EFLGL5dRbPE?IAOz)R= zRXMM>%4?Ih=TI?iWVZ>q*0Uc;tna-M^;6G<2ABIc_fIIOf|zlDBv0stF)mLKT+%#x zBE*NUV|DBq>P?UCrD#M%>p@OcjF^zEs2T;FuCj_j==|csULzk8)gr!r9sOW_D50?a zML_n>j&&;$fe`ft-NYP=3h7HT=6D}0CEogbbJ_4H>qEne$jc&AH08JYqqVpfRbW=Wcx#^1L=l1L`_w-K}HrS4L)B%?bVX;k& zo00t!E>_PMZ*}V@OgO|?-X-ecXCUn^h(+-{H+YIkm6LSNDE;$#b?_&^U*kCSI{~|Q+`ic~_Op|>Y6}|zcnl360(m1LP_br1lr1m>tx!{rd+KF0#B3``;rVNN zxjUBx#T8~wYLh-z9DGPrct)sgr5dP1plr-_5N*Y-iYhpiR*U~!$D<3OBRLcQ)g&}K z>yuYI`Nd>a%VlSU?Uu-TnoIANV!dWyA39X+(!8+&1s9d^&e_4Yn|pIYzZY0T1j~kb zLW!cifM*5$C=4Sg&ASZ9evW%%>#<$S1v4;7_il+43HHL847F{@%VLfQF=G__#c zkav@|yf)V}i347W@SnV4Aw+hCBZ~=l_=vP^RmQd69}D%Jf5iwOrLo6xSt-%nH(rzD zUAdmAhT?k&`p)vtT1S=R2t=@eff;H*gQ5Pb)-Ins?JQh=uZ*DWcEXNyoo{z{UcS-u z5Bu0)u;D2Ouy{8@6YtKf+A|IXj@e(|zTtk1IWh91A`>OiP}R`VRr^JB8g6aIbG-J??&!w)jQLCDxN&OY6k#c@O%Uw_D?-@PqUI&UmRXe z(?u4C0k01+Zx2t4XVJwX&Bwb2_YdnA?J4u^PY1II7fy-`X}pSb!@e zhRMa})BOjbDSO-FtH;gdFXP9T4W4UuJjEg;6}>&3N}u_{BJ19+t?PBYpXOJ`z1+Wu zyg6zE`qA&&cdzzuJl>s@k9;(`3oTyk2Q~^5_gev%vxdEO9NZR7J}a8!q)Z;wh@6UK zzTybWJHNkB-X0DOx;J83eFBMc-}Ku!K^-4Hd0hA9{q`avJ}GpfwE^0#*?aR#`w;_$ zDgCJZ2Hy~G+h;FMkKM<2ZR#KJJ|M$-EC-u)W}if-Kb0CX#JXh94B*kO=LRenA*1Fo8E5?%s+5GI=*L=J5_0GCpZX_NpRa1!joi^85 zP&a{JrAT~avQEg}2C5&rO?#`y=c$wHpFin_0@2f`@ISS~cb;$Hx2K2zJtNfHeFRQ0 z$*RL+uWL}D3qwya_@_hbQA4Y%L|$r)e04;8c|%w_+G8w2aQ$9h5Be?r;9joRUp}Sj zKi2@4J2nM{D&5acLsNK8vv`z_-+T?vfI?N-4vTM?16|3HEi2t8iU+GPfSvmvZ?(GJ z(pdyuZFlqZ`n9fFJ^B+1p& z?lWt;v8wESq0PeyOO+_|4mbTjYc_qWu*`I9OrKL05B8i~DsT!)9%InYTb~w9uGHyl z22!o=gWfs}surf7PG%n+@0?zSWpA%UPR@igRHPdX=I74)_ph#gp7y(Ba599n5*BJj zz4h;Vlo4lK(P{)CE`Qs*r}8@|SyW1IPKmIA`W9x(@TI0qidPgp4qTGhq=3Dv=cT>p zf`TAo?M>UlC*Uc&Bod$%!;)#;5!?JFWKo;n4fpBf_57zjLk98CcXS_YvRkSQq=WK?8IFjNyc%7YpAuo%eXm=-_4#VfXTSNLrbvfOKq zbqr%IRCKVV=Yy-*U1T@El;VHY{lfVAv~JxgP<1v?u>7Tljbl@GN!xxW0j+==@&lY| zIsz3`?}4Nf*-=7%Fk_>Rs(9?mCpt1Xs|~CkBe<&~f2?3nHBp3>4mwgq`;Cgsd>J@Z z3I>co$M|M{(u^Ml0x@xD1z8>CAzM@ca2?)JJyA5pOB}S|gbwHtCh<$0*udBh=z^Tz zlOI8oIRBc2+NK16i~SW})re2U48`J!IMOG(0r4;F6V7;0Dk&(A?vGSm5LyTb_aCW$ zQbCo{oY|0h{1?HQ3I%8c;SUwb9nj{v|3l(`pklo)t8fBSKv91e=0*V0qlyOdiq-Ig zi4>9Pza%n|!qIpl!u_FoF2TJKt>bspzlRE3BpRmN+Pg3fv-l--=SjPWHC=tr9>D!{ z{B%hc+LL-dAV>wI&?Lr|v^05iZThuh>Mhy35K3y#?K`zE50BfuGDZq9>m@&*4X!`k zxV9QN40?+__b*Pk<$hf9xYD~Hn$51>_Ne|jFRXO1w?CSY;1O?;uc|N+>pvGy?VcM(%Qz+iN{L!Ky>n5PU81VYToWo?rI;WP)2dWj>{T6Afblo zHE^~|jTX`aUtR~!inI|1`Ff@xUXt=sdB@!Kt* zXYg!4zY+&ctnR@nzUKfcf1RODVJM9n!<^S)o@*Ywp+uZbU<6k(HLrZkU|6;?*wdGw z$QXyG?r$A-sp?>8MbdIc*B{+)i;w#Gp((e@+_gUmD|29*KRoCsWwd|7noN3=u-Wku zNBWiD>Uj?OVvzJ#V$P$_uzZgm%0qID!zfdm(r{b3PX1dw%!>eh`EIB7Z5|5W=OW5Q z&NC^qD%>cx&W~%zEY4BqjTe5WWuLgR51476{>?d*-l!Fi9YQ6+4Qu(`%G=l zxA;fa?x|qmrri1G^9*dg(SNn^TC-Cky z>22ZUarWo)kt3@~$7_p7<}J(f^f0v7D;Vl>x@U_pl+k8;bIR}y*@J4_6PNK?aDK_D ziwlaB!Z`JK_H7D^Oe8^Dhx%!jYO7oj;9J%F(=%pww~vbd1()u#hU7y7=>sz03A+Y| z;U*rY=>xJI*}J8qv;czgWVy6iX0GBWbH#S|{b2E5S4UYLLQ`67HLilH?`nuqz+9$} zpMS>oLSN|R7fp|<7Iu>p`nYEm zOw$IJ!;e;)xd0o-hSAVHVKz z$7s_K*)@MWMA%4=JQ8gxT+1Wi>!lLCp%-?!?u-*~EtXW%V`EiX2>9o04D7{}c%U;4 zlBg@a)S(J(ioCpQmY5O&T=%uAIM3%78QiiHj$Mu|+Z`%&T*mi&8)MX0i}^Ky>6ny< zzoONsbr@ERR+1WVJm(Oj-l-aO1GOjjy+*-TYG|}D$tvyjGi+GElz23BD%ugGF6eZ}*mM}1Fm??SWeYe*TRVwy&O62j-V``5<>Lfi^D)C^YM?j;Y-8VwV!d;~>x%Ce9Ayh~*@ z$C`sm7k3$U3Y679b3#=(ytX8V9|pbh`_tNP=P;E+RwL`Tj#5Q@RQ)PS$!mmfH8@*Ij&~Id zKVE2n*o6!3S1NQzS+|wk^P?yoS2N6>g_+fwg(Pv+qdRe9rgQNtyqUB$KLo--_YOnm zFGp_8G-ftR^Q)@VTMUzMQWm$Q`>w7!)4QaV2Tm=$sgjCrOodrStwLFEt0Vj3vJBB5 zDtX20c1jR6EBtJe3r^NlS6gM8T-uG>i+Gl0b)EHXM%m)2hKZUfU!{3uITSxk@`|zV z79d*MS=FZ&2o)FJW{@wttU!C)v}{Kx#Nv#4-g%Z+#UCrj4`^$1nyx6h9&A-sP_*ps zAK~fXA;k2MnW2uL)xrK~vOD{<#L>h;m9j@3*;~a3My0@j_^7=YUGMVbmR8)>|2hy%3&d zuVtY_9)GGOVO^gD*-Ago;cN$h@_YjF%q-i)%PLw98)rRUBn--Xj+C3!)``kfO&?!u0cQpV zdF+CcvY5_gSd~&0C8yh>e)VQ23$B$B8}m}=j=jsx2)X{t4utQM6FU4O4)0S)$!;20 z=(tHzi=4tmc_PwP^B87Qp`bHl)6=gP2OkneMD4lrRg5et$|*n*a? zHn=y)1)Z#54KF2|}CN!4yaK8GcJ_pk1$l=foO^zN$1cZRzh z!1ug@Z$x=P|yr(}6BL1AZ{SI+YRnD2X zwzLebIhv$VnH8G_;g)W1e;OzEprz8PpVj`VclszHO@fNcBvgPr%69A~t9g>8v1^Qc zcGT4elSdrLIcN6uHnh7E^&lw%d*2El(WpAtH@h11)TZ5#`0||k`D)gZ0JHP(&gO=+ z>uV-ezU{$E1d+alZ0W(v>$%q1JY8$?^u z4}Sj*YRJV@oeo%Nn)5Le_|Bia!-yV`D}*eh5#I=OK-g?s1Be~rA|`>DG%k(RhsYXY zUk>dlKW|7==ka*+Iu*HqZ~_ica(JwS^%(Uxf&wu;_G*GRK4t8JY6NgqZ)6k)nCplG z_Wd!(v!R!v^#}Rt7Y~uuKroZo5`e1k!^!6LL4P&x_Ps)soMvM|S0cqC*KPO?XKir+ z|I`JZ;O5080sWPWW%ln970eJEYz@nhtnHFW8SC!BFW&pQ zetNH=D)4k;52L!W6^b9piSq1BNfqXInFiFa>hcl(wb>^>nnRWPi7unXnOgynl%lY0 z>0eg-vbsAtZ-C$;^YsodV1M2Rad0KtlzlWI{W8M_xh9FaOoXGon>5*cLy!D-)JFyruvN#` z*f$?;BfhmSBaIxFhA7~w06^(DNWRjYf25cEl|J|H^uyojLB!&nWxm|k4&Na!y=-1) zrRLJ>ZJJ!AvQ=21JCu7cj|%xDQB%rrZ{km4?TQ1vJUgSlm*8$Jg(+9t_+fOW69jZ* z=~BC*-|SbU*+0x!&B=kYV4VkhS)_ub}8`1|}=wY`=(wL1HB**PuTpu;$z7j;m8u8pmQKsb4%m3P3I(fcW4(&^be2uc=+Ua?% zM~dv(frBGjh|87f;t2oq+beY_#-)svX@p1wdI*FVhIfT?%-LUvso(Q7!{AYipGfHR#i;JW@I6WmJb!XM{MyL&ZW- zhnhQoePVlOjpMU|13u~&-;_W%($aMnRYhTi8ZB=$-vB4mHA6o?yL52G01-cJz2oAF z1@0M&Sp;&`4_^wWUBgGDNckT&lP~|p#^?I~$woWk5x{dnvlv%@@UghsMi+{5^JCJH z^)HtjZ1B+o&Wl$5Fa90%X|qzI_d1iHB07K<*W;JJ54nNDBGPi370zT*kU|a0Pv68; zPB_=J3)I}L?F12?z?YZ^D)TC%EB8O04VxF}oLlQbQLf6aC>D{LJ=Bw~hM#adK9&_p ziC#u&mSznJYndsDUh)a~R7I2LFepQH5CY|;M1#pmi42(jZ4QB`Q9-IF8dqo{%E19$ zIptil+zT#*1{-{p?*FVN?FdxXnMcs^$j`vY^w$5Sd8}XjMXIv70W2h0DN5T!I59B7 z-99NDRgTQ(7H3>ZZw^$OV%O=-Znq!LT@b#)ZmqO6ASss`=pqzcGBZIn0hLveG@gIZ z6IypA(7u@FkiL$VzdE%(UOv?LA)3tjb|O;I5)(wdH*}(CMH$ixx~B=Pp1Pw#EJ&k! z zeV5uAn@_NHIADw~@?^k+lD`~&r(5@Rr}tP82T}x>sVz@Nz#MqtGhy9eo2x*EMwgQ? z1?EipJ{x?XC)zOuN0PCKf$=kWedb6-b!;l%BCGd~MYawSUmJL|BBS&sWCFnl<20h> za;gZrEW&X!w(~2q@IkD)?KMM2>I}sI?iDPEIEYknQfDwVI7y_i!4X7qoLOufiMVA& z^95)KXIKu4m|sU65oGUqdS=20550HH)EK3!Iba*j*#`5^JQ!hsV8pdw#kn(J5|%U6 zW}Utjp@m_63rGOti^Ze`Hx*@+HbkraT2+JhWx|cTo*6AxK!@CWU*>NbDazAyRf-mK zWqECu3paN$O7ZYSJ)PyU0r%Gps0Riw3QQ>iV#R|UMc1QvG}gm~-D?A->0 z5*21;_0*{t>-123|F)HemAFR9BX+=!+*m)^E<41gdR7K6;Mz|7@j7-EhM1;1>DogyUDg?+-*%JmteDEE zrerhfS4o3-i-B!g`x)~_c4f^BG@!u*UaLjb_yKc!8K9)8Ka+U>XHwGS9@EYK zzh?y``l`+L3}nLW(qsMy7@9_ zcyhcsH(TnWU^XvJ@zommuR2J zRWt*0@=t|s|5M>*##QKK+-3#0mrAbKNy$6sQRfnU*vo<3?@S}JRR!-j_B_=GC3;bM z%NEpOb?i)^C2BS^qvJM-e&3-FA2!#!8QpyZ;E8R?b4fq(r(fb3!Vnf=IrB)&{ zh5OMVZ=zvj1y>P$vUTR?kP~w@%J3PtZ&j!IFgz$M0;yVRC>JByFe7jT2N*)Bv`u*# z(d!(WO=Qz+XRWkNb2es-L0j>9A#XM7TbrjEs2k0BWBBHEOPu5$Z+i^J-Vmx*ph2p3 z!#0^AA7d{@ze)ISYPmnCF+kL?a=&-q6RjHy$jQckP`jCrgQx|#|D^s-g&BeJe^6g^ z4ZwGVXB%z!w7%~&hCiw->&0-G&0=H>aQ{W79oW%C*?ug78A0I@riCI`GvKIAZoci% zAJ1)8JY6#&+PT|{@q3qD_^#P|4(TuQTh|c~xf<*ruMAdsiQ zNyTW$sgcYWRN9xcYHu<$%2QOs|hX1<20FdJ3`zci&j z$)h-1P+S(>*0If5`68^4Hrw!sEy;;2IXmWUp>xz(7gprzUj)zD9+&;Ja+CuJA@p)e zWr?Pcz}0>6tyD3M`rV!6EN7lIL=%U`Rn#o!&(gAdW&po}Z6_e}l(W(e8eIW$rr~lU zAld6oG|!qS#~Na?`^Q076aSY0QKfEg27Jj`^GSf zUS&rm;{=McD`&foRu9ZWrZ7ZNgs7#Kc|1kNJv+|~EsBN}ka^#_|H9v zad^S!;up3fqo!MYziLR>`iUEW;H1#M53qHh156VToKeQ@C9ol_ zqsI`7^-@~+NslEtrLheNex*5o4&ff^g~QV0UV>>zd+MG(1#70b)D9}%Ng1ekCvdPM z0d_4=|16$;w*FtmtLe1s`Z~Fk!1|X$gnq=mW5Vrm0-DJlNE>4{nw(M(S~#y#LJSBE zdRXYK_%SvyQb|X3*#VUkA76jmC_uaV2k@GA{qFfjy;g*Zg~d$>NWpglfnlS4Bl1EH zHM3uk=e=+608lurT{h3JrcrCyb#i2d!y&e_|R@~-Rb9!IoK|c<|JF3^1%~hV= z5}bnl%=qT!F6Y}WaM6x(E0r&bN%S)fD{YC8(oIb)P;frK5C1$Ynqk$c*k&!u zu@k3hs=4>JqX%IL@iOcTeUqZAI0`-NEO%)z{fT1g3;8;p(UU#b9A7s52k;m~x7f!< z2mY(_dvT>sCwR7Q6xQxRV@^k2bQ`hM?4Fz)Y5Mto@y84=AP#-3Z2>p#tqu}QX#XYE+Foqaq~zq^Pw~k>%8S$ zs;AL*{nNhIhWs~G0JY3SHRJ?<-7#~{VOBnvUwI!?yx<3TBt&B%M1J7c?DLlRiE8Jy zEY@xue9WfaXGRgYC2Yk7HH<3`ur-XU<2>}Rhi%sGINWz^yD%Q5sgF$ zV%%S(H-A#$ET{qyK}CR^m`K};darJ%jS#KUTsuJ+O%5$--xF?o8H98Ow4(Bg71 z`f7B=WVyP0Z~&vWT}-)e1=d2fzbHk4b|q08!E^P}gQIk8e|lxx`NG*JEF$%rsB5~~ ztulS;d5pkE?+CdIR0ID9=-tv|NAkH4c98%vG34R$(2#4~YGUjKMg33u%ct8KySKp) zjo%nMqRyV5d$tpMbpE?l)7f6XRB<^fn@65kL}Wz&s-Gilsljm(d-vsw@43D2tYui1 zN&}tk+CZnv0<;QEZGhOdtldYr5DbEM$vNgj$qK6EW_Q7gjgGv1)Ucnq_s(VJbiY6i z48%4QN|?p53(p7)x9vI4Bm+E)5aBCM>DORW3!H zUsC_Y;rgiJN-?R(L9uC*Iq6=#7J9U61KoWov0`^4u~M@2o-PmpNW^mA=!})d?6LWr zQyfUrSCA#(NJ{{zem=YSq>y^)wfn4o&e6CPngw}t13`bEi=U1FEK(F1Bl>#HKM?Oz z?#jK{8AwtVQ;z*ie|uV%Jt+$<@&R4_{Mf6vItr83wfE__;Ab@In>9Wckl?`o2oB6H zg%Q-mG2ADSjM|lxjLQE7?9p4D6cqC>VCA+? z=Fzy5Ltxm?*Ec}5qK*w-5$tDqru*CjQQuB~1YpTf5r}9uri{Sa&0Odoz)=GTz?6iU z(yjNKj24{kK6j!L86kaMX}8zFOZ+%c?4jUcJFjyAPGpC0;nWr9UI2I zEayI$__08@VvhSeF{Ub{*Z@zx})VE(s_}S+Gog4z%cy-c>zX1d+XhR2p_C4345jf zs92ExVuS^qQ&=iy`e*$>%h*a*(PBvr0|Y!J)DpeCyX!{O>G5JNxIA-OfRIVg0%et0 zBj>RG2BGy)_!y)HwjIzBtO9)R^U=(Vf(As1a<>M&*xKmbv4rqtmrpYg-ac>(s+VnQ zgbGcOv?GFa&G}c41q(YV-UbX(^STPF1>lODbVJ;q(>Uf;^r9$n8Id)*TppU&P_V8I zY`Aw=1C#I!lMq+9H+qY=_ky|4X|axQd>;y|_X1~1%@Op*e*jtBam~Z~8aA4zaKf<1 zN#BCL=VB)y9-0?LSU!HsBYUgm{DB>67(Ut^JzAhkpkYbj)?QPQhS#uO?DxBVsc0uM z-VN;k25?gP4R93x2Y}<9d*CkAa68=aNe^-K(xwN0MTVkdhh zDk0!QYN!8h%b2?V?qEM2f+L|18f5Q%JSheI)~_;GpQ zdYyJpW=ME964|}MhnnfSycX-cMC$HLRI*3S4*wL)&W zaz$R}UkfLdRq*{>(sJpeUX;%x6rH&?qkyScWWFbBEv~#=QC+12 zcJ1rK^}=3Fh~-8s!98rNlMJ{DV3EoX=eaOm#R|pW+blEBzeRc-L+T$T^zNBTS2OVp zLE@!2IRyP|vd?{`L@pGgRO&Fre1lUAVm^Nk#ekryz2tqw?obgmux^fagkEfg2JeV1 zsOFMUCDmVxPWId>+*pdo`wEZ5xEROIQ33&riHFnE2PI8KT*QHT1;Jo^2B4yrmaoW{ zpU~xvU~5-{bz;+CPF8bp_|T$Xl@i5eY`kN}uLBtsH%Su_!s1+g;!?NlLG00WUWvhw zU}Z5lR3xYga|ZZOF#)AX4Z2?@jpivgsDvk3PmBeIpFMOiw+v1wRzzy+z-ljh*fBBQ z;^SGqNt#+<{NyTL(>FF?UK}68XJxHr&#VX-8hf7cVYdQsnk$6a*RivFjk5YBwN#-; zrAa+K_T|OivjS;jKUw=7JHz-*)tI~}N@CL9Qsdt)+M`J zC)28OjZ1|*satrGYhqH=^Tmi|HtL97zHEg&dFOs&dO8Mk%CUt7GTvA1RK*2RGmEU_ zRhKxF_LKU$kONPS3q2+)izB3>C5*4b##@;I;k~3Bc;L^>)5cIa*ulLcay@wOV zzjpzRrN81sr`Ygxq?M401dxVwmRwR6xrks@Z&G@H{ELbeM1>dmn~F7J&~&SIn#T-e zll`kFD~Xq#=}4Q#qoHh861ITEmG-+1G0s|cbIs)A$K+IheOiWbSGOr7e$zt31`{&x znzHv)nni33SDih`O9{$N*j5MHsiMCy7>;Qf>W5D4CaOl*3BG~aBU8<{w_g-IzL$1q zJP$B7wE#5|fSP>lDeSGrZYyr*in=gD@L*Rr-lkz{aamEZM4B-?w&mLwoDn(4fAh|UOGCEFw~kw30&W_ zby)8*_}V#OK#U1V&{u435FOPEVipiPU-Jy4YyGT2Sdl{NTP=gi09A)rTBKZI5P*d?pD znbWtF%}f|h?cOL6vW9GtBc6*&AqE|YkR}Sva!#F*=?oG2cNy(>H@2SNIW#y*Cxa(I<1WD@D6z-2K_!|1El<-9sXH=;IfQ5Mz4h^;u<$*!J18J+MTiWhgVwO)#7Ct^I92@t z!ITA}GP#NcIZYZRLZCeK;zzPS9T=n1OeMZF;<<2qnUMiiVog~O7dHI|{T2=hf2l{5vSNx*c{um=MG9$q!z^`0rP_Z?b+OM+Dk*_(b>XGXgKn$5M7+lZUp z9nX5huDAW^z0>r!hqJfG*JJngm+a~Bb%V>No748{YSgo{>|4;M{TrRDLV`?2IPKk? z6~s;H>-)2>0Mzsp_jILfP1JFBBc9b^_bFpu-skSclYNucRjQ%=h?}#B^_SAt6l5b? zmWa@+H&>V-*~>c{U+dl5XzuE9SLe%F%cr^}8b1dSn(if_r}qoD^_6R_k*~f`^{ro# z{X>c+(9iF!$-vLuW_NYmx1jrhxi#Pn=;tYH)KS`Y>ycml#`k7A?vgN^9h@H8oU-TT z*V5^}y658DpMG;{edBe)v%C~Kl469hhZJu^%Fc=3B%TsNo_6mlT$+bbSiy#l5X z^AWDT)(H^_5c87=zPUaNY*gH}w^wg6xuKTNSC76>Rd!ckNQg`wJ-1h%k>AO2)Uw3?@SX2oQ(9+!O#CdeMYxB@1axlNJ?v`I@GQU?V zpDxGZoLUljyQpsdG=T$nQg~%Htap#&NhPL3I@)f%8zsNpZo#F(WfXa7@Vu|{d9G1X z?C2KJRzi7w8a8SwpXAnA+uT$tE)F6|W+^ApjENb)d3xG@=)0Lca(Z~nN*e=8jfom}lr{+XAdUuRg*|LpQuesE3G9$70v04P6ZB0|NI zCqa3At6$%4%^#B&V#57d<;zpi$W7I-&q{y`7^borrm(S+oQqbPoBCRk39llcHt2Sn z9!jBFZ{MPpmAx(+eP+c2xBIk=oO2I!3nJ;tUhfG34IOTQhVVc`9JeHf&XC`ZBYYEw!gpDdbp3f|P0s5wt0m^q?!y?dl*Fu-x^4a+0f6{$hbIT0Qu^(u~GY zj_>!keANZmL+Q$hQv0z^q9;sZ-QGJ4g<{l5Z^^@JQ>;PoR-ik8Pu}Z5EQB@rd&v#x zfrX0oG5Po7Z{zfsL^&dEosX3^fuX3WgC^)!Kog`Vpov(}M2&O{wBx@a2p8a*!Cuk` zx~X=42mLGicaX=VJvd=e$#0Z~-|&B+{5|0BDF3?(Jg#PF$FF%S5WMm;4&a0^*3Doj zLBSv}u77C#OVSF&5feH96b26pv;8Zq2jGCX#VXbK8)qGY7wP+NoWBSB&2x=(1N598 z`35Kq0~Ge#8j7uRx$Gm#?bT)UQ^+3Ko*wmcwQNEM7|>_Vk4c27dHe=)_?QVxb9$QI zIC%&8+PMC~dH7D&UoVi5&AU8ix_olGutWra6luF@{C4ns8oIZaIo5ZF8A%{3;xP`~ zaN~7*Jmqioc{{NEeq?*gRXM!NgIMf7j*9zw@9_Y4;_UtNWi7J{TQIYIL+x z`IoFJVx*l`5!c;gWa7xV&E-8qMIl!6&B+^rrt+7V2=j{9R_4y_o68vApQ8u!kK+$N zmam_!YbW)ciNdZz)LKt@Gp2mdQ=e}vT76#lTD#pt%tR^|#tm+_Zu&=K#+B0Tzx!_d z@SmD>PfX!Db-dZP&jw09%$`lB2(+$=pHhsiEmm%(_^!6yD-AYR{v7=d&~pJjzpkbc zPx-B;MVp<*c%EL6e1F+`W~>tVQVa`4vLf&c`|J!iRAI-9cO7q*@7+P9xo~zSmZG_E zR;Ic4@tg#Lv0GX1ua8jm6j1xmk5*tKO4+b3fj&!QvECQvc)=E=ECCHhDAw6H-yOIL z45DJ)o}jFY0kK5^#ahTpN)&=ZWFCgH)>fp)E6B?lr>GoTf@PntWGFJ;`-awA31_&} zd=lgl{xVDW%Y$$hV!j%ttQx%pxEa9DPExXFYg^l_c~4T$Vb8M;>}_LKlUHop9iM$Y-%_N$HPx-^4w2k@rfaX_cN(_QD^O z7uxV_rCuZ;ss<(4QLqD2)uKzsi*G}b)FvL3;`7=F@lzO{%69ivtN042emwg_dpJSwi)AxW^x-YZ4V|C9B zB8J?A@@34=Ez4&-EQCxBsDRr!&eUj)i!P;MkF8dq_e0BCmT6p}Q@?~ma(t~IwL>nk zbZX^~gGs&v&E?9h>8mN+M(Ag1#3PdiB|hcOagt^}Wsc*To}J6{COJpfFm&Aathkrv zZd0fSVaEn0JdD4ZCJM`(y@{Lwm0X#&Qx4{?aB65Aib9rz&J(;sL-J4PVq(E9H*ij) z=sOT(^KdGk#-pp%*kErwJ_L!leQa5HM_{>mrM8-56f`V2+pb*Se>O{aRqQ_Y`k}L+ zeK-045%v~9adq3aFz)W|?(V@|8h3YhNU-4U?(XjH?gY2s?gURD$m`@g_q==V|K9tn zi%n70j5)?wd#|2r?p}N5_9naHd^7F4|F-(Y)0@F}7s&&65EkQNsliiMAkQP_)xwKj9xgdI6oq^1@SnaxA`1ezJ5|Twqj6D>%4byF*e708HSYuTo=qO65HI6Z|OP2G5JacYpCMBrV|F zL3YnkK(5EzlNTD4HNfc;Y#ygSsHQ&jVC=4ej1(cP?K-R1E5tufI=$=B;O2Pns7^Th zb+cyFm)ex<;!-Fsb2^Y|PIY~I)LAz2;;J+Lc=H8Zp7JUsvF2D!ym*hvl~5=bslC(g zvU$av()OfaN<4L@w9Aesy?MoQVB`M2(Zppthl!=?r-OU!;doryP8vMnjGN{1<|hN= zO^n(z<+3B9n#}KIM4a}as}JQHI&tql9_A&5Vv5*W%Q;1)uUo>$j4lwwce)&|vrPR0#u>6%4PjiNAEX zbMQL7JAV&2WAAnNJkcuj%}zB%6De%n$@Q`1z;3+rPGyYHqdN`IC}!YUaS`J|JSFF$ z>Z{xFlq0RiJwy4_s!s^nAl7{4MNx;WuLt(E?pYJY#Z!$<TH9CTu8sUW`h41Pvu&-5P!x9LV&0dp6}IY6>%D#{<#`_QRb@q^02h{>x`D)Jf594?oED6EF@O!bK-&FWL3sq;sm1fd4ud& zfJ;&^eh$V(4y#zw@AgYi?Vfn7s_wa(vLP(9mkA>mudc?}^NL9biDu28cM970gZ6Sq z-YQiAUu&{dLoP4W-M(HgJU%n6+vTC38*Ufe4_NJ{xLLg?owp78O2ge`Zuc@;h_7vZ z@1T2DQuAf1v&>%T1Ymkfvzh0?NR8S%noV|Uai&ZOot${7PWw({71LcwOR_O5`*r6q zWVW3#m96_8d2yd5-rjsKJ4y1?8gP=;Zpo%Z=S zSa6*8*3Ii5GD>>T&8hxQdThB&3^#k89cx$}K6fW&%l9I?G9UW!gv3b4>)KwIG^Ab5 z#$ze{8^$QUYjz)lB&Wm>m^()s>oNniKaH^bACiv>QR z$xvH6Rr4fnu&2Qd2WB&CK|ToKXDQj95%*?RgOK|suQ#`o_vN;H5DAXL)QiMc&z>Fe zHR2||%eYNZs>v54+?HT(aD>(vk#_F4<7Hor5OS)z&#qE?+gf};ZZXum+h*)>pBH*? zN4DJrOn*SF<^w)9vnKj~S^%{B%DcF;uZDU8yv2~T?U(*aO?7hoEA?mTYByi>kPL_M zoelFBjO&<^A>rNaXo$@$JFZ1QC-=3}z5@7@gOj_`?~`qh0XxB;|Nra&98vdqUp8Gh z+qtoj!2`Sx;M=*^;goaS9LZMmkYx+GR}~8Vt`!7wUkoOgv>C|go8Vnrk$*y6Bl4QH zD9bhQ*GKCN_JBfdjFN0-8Qh=qM0eMx*H-~YVjDOTD%UfLRa?E2WxUy%KTR90SE6Np zIkcq>8QGRdt_;u&mjl)!337o0^0Dzvgq zBSTT(qDGklJ*+LYr}|cHXMb@vUVOh%71?uguZHui2J@sf^2cC3+c ztnqL2Au|M0^sv2yJ#a4$a^%?)cr1i>oRM`zbnTzxooj7_GHOOZpmn_Zv9WBLlJ=RW z?mF8XJ*l5pjPE^l@s=2mS?y$Q@zoJ8Gfd7pSFR(5`{Iqs-uq|0&RZtZ_V3?mBYs>P z#1^n93!`bU`q@_+QI`{^ZVaD3k`2aRkA@ubcnPYBG)G9SH;vC#d`}D3VGFgRFr{b< zo|4pb3pgL__X{T>k831TMqtUVfO+>IyS> zPp=hb_v?45m5St=fYuX&;P+GQ43?z$@7cNUkiI#oVdID)}3_9rd9g(vX(Q zCK-L=pY4A>UeU6s&^>0U8jDxitpPv@VBQ%4#u!RN2%!(iXT)y(qb@33= zi*twvG@Wact2Hx3R{$0em?cqHydxG3|L&Q75Mc+QarZD7I=M&-F$fGw2~@IigV4mn z&}0nr=d(@(7$zc`$V}Z|C}j2e==Eil`qtt7*^QrdAV)t}GLebT?PEwT8%!Go!=R9X z5Y{_0o~ea{^v@w6us(7`igBA^yG;;Z0mA=#NEFcj3VE?+2@L6e`8OorQ|MBI<-bB^ zL!pofhxa2X^yjKfmXLzE+R)l!;%v}9#-NBqsirfF8_i;jA~+aBk&7GMk_REJb)~w| ziGvtfL51dfol7b60M%BOIb2(P5rq)W$I4u!32Oj5v=4;=arrG$%P+or8w%6-@<|k8 zG#KVrRL|73Q^Jb*ahvpSv?kqR&kB@)cF=*5phXZ-2pH700$8V6oGp5dt4wt~G8Fa# z*YyQDmb*H87*sbixcd;8%Z$PF0meTbF!-9yfqJhd0zzOw5N7&OR27GKvc;34YO1}? zk77Sli-SPe6!6Bl;LrK*jZ!ZJg;&E z!|<_%@Y820BplZF2=Yv1hQs%&+g5YEZke282%`<$XHtWlr1fC85eQ1_- zAV4}ENmdETZal>x1VtgJLSgoAmww959bvyh+~P7VbWXowSsR*sj^bd(BtzjQY4>o# z`=5Md#UM}L<&Aq$0zRqYu(yZcMxz9b#3Aq*{m@ycKmqkHz{N2+ zw5+bqjSQvDZp`QohTW%bcsD7!@NslEbM&@z^mI#4hK0z%l;7{(7zXeW|1iuT z$HzotQBNL=zI=^dq8)D|i&(@@QDf{#>v$%48`C>(9E-*rkYA(IITI6&Dao0rIUde4 zcsg)9o~?TwsN!CzB8F}n=q`3Cf$B4u$ez}yGgC6D(rlzY+M3b{_Cx;YMg1`FmF4Ii zZ?2!_=$pe4+wS&YL#U05M@$%4bR1nA+q|6F3?AF*93$>DCXk?nH+Z7)@xAv#HSqgB z6q~-9_a=>O(8p@VIit@=TE9y{khS|I`&8WRs~vUoviHcn|2U-> zF^Zjmm6~ykjc0ng;lqOGVOO`KY-w}z!rSdTJ+nQn;PF=D{idAlQ4N>~O#1{^x6^G9 zyqfn^Pk;Pq`RTLA+o;D|0DqpM?73Wf3V!lZX`LCsVoH;ZreTkMJ?ZYnoN@3XY;`Am zm05@q&(KUq%OcazD!RaNkpxCk^MpojN6)4Et`d*#QDi1Fc&r!Qyv$rkc)X3ViHaJ0 zl$@h<`zCe2-Xp`Ql`v!^|-{*Cv`U=;JQ$@dk7)J*y`p>*i(S=SxkUr~P27v7fSeRL^_jLXWwDkOZiq z$J_dp72GdC&_KIc&>cNDO@)HtM7G*jB+MYTBR;ju2~5z`=KqVHbEG49gMt6l<=f|7k-;E}N0N?PZ!tk_IU3MG zc#ul%8fEYr)bJA$pWg>7KD7SHL0w0h+2qo4*x6W{nCRFtE7G8vF-*RMAZmmrUP9jz zxBbd~^Jf=-(5+ltW-P($mG)UHw6eT+tV}Hp}`r$rn~2 zM6Yx@Q_^S;)=TX{aKSxf8#jN`+Z(|#ij##EWog1LMVTf^U+;Kz2T{q1cY28B5NCHC zrVO`u1Od+owSvOHq0Dsd)sfUD!79{#VhguGnIXx1bPd5a_5V~k3_Cwlic?9}yB8!b8wsVx3%MjW>v_3QW5&El9 zQxNo!BhF6~I0JKxPyNEBq?w?Qk`WfY=~kamGtGG0THgFS$Ra-jYZ3kg`uU9Io zVHn2bE3JW8E$q?(1RC&JC?Y0pT(|TX7E_;2vZ^z7h5pVev50-aC2kCd%lI*@K z;slSKDd`07&ZGF%Ni|&6Yhd4wm;#%k4K+XDn2wF$+PBq?Lc|?3Sn|~2G}IY`72Kc| z%^)VO7~ok2-*HUKEP<)1v^^M7s=O_VS+m)=kD_Go?McK_#1kJBkEV`naqrr4N)jy@ zTi7c2PSSZ0Wqp14PU@#s5=A?r^9@NGQT_fD(Eio zjth)K$v~oXXlph#hJuFKe-7d3v51C%^|`>7{%HB9^m%eyXSi(cor;i6uItgn` zy0h`2@SL2wUB??)wdplRX#3;~^0_AdjUmfsE_2$3S2nuY-o68(tMA*^4-CWU^*7F) z1^}1zv3jBvUoM`2BdCoH!1&E`7q?b6$WGa;e;CEo9`Ee4$_GB%tgTcGk;WU2YpB%v zc>D$6N0_w%-{JVY-^NAjp*V%IG%HNW`WdY{(iOTVwe#^iS$&D9iF>CQ6#R1YqkXmmz?oH-+DND`i z=OsZ%1);Z{)tu`-{EW-ZEC?vJJS0nrT0{4D2g9R zB@KFiE%1iWVwFIiRn}spAchXf4CrvqY#2sN+hMdxT@m^&rj>9+++n*V6t5%W9IGk#a+Z^c%OK)F8>62#JNG4V&s0ku; zunw9n58W_tGUh(Xif}b)1%Uc?q7Ap@huH+D?1f16p176gH@pHe1C6=K+9*yFF(_d0 z7%Zbl)1?_KTQyl0lgczCzG1vjStEtzNrx!T8D#KbJS3PFiWR3NE_WK+EK#6oVk(;I z*%vq}E$XRyMKlbYDr%eQev|Py`diVLZnE^ReGjP#oX{rTpAby}bikRwy;3VD=93~OZDT_aodt6dEf4meOs(%yojFhiQcrDK zCZ$-Fl}1%ndgMP*i(&s0l>{l2l6a|}DjiYnUl!=q11(5^$NFQzOjl&mGs(kR)NZ*K zYOmr#k#Q=F*_1Ya=$Hi+(0i779W6mfPY7IpKh{Zzf?`wC?_ zo!@~^7xivyc5ZuUg);d7y%km zJQ!@*k6q_M5`BOT$`XD9Uc@m^@-r5J>Z+ z6>x8|h6RHc11a%(EHK28@{11~f@4YZJS|<2q&T%tw08#&&HjY#y|DGg@Fw4LQqyv# zp|2Jm3|KTw3~O_PC4(N*gPGet>r64yyfa1#HX7VjjUnU?4@j0hvklMO|(=T;aQ zm4FtDKEle6Gknhc$0;T;$97X7ed&PUMb{hgB9_>-T(%@+Et0)8RjDYo!9A*jJ2WJr z9ZhHp_@Xs@*s!9z3^DCz1T-Xy>^n2sKZV@&sLAqv9152`m}aIFc&Yra8G1ZmGgC){ zs9YqO@L{tc6xjeZO?KtMh{3hEvduS0pjqF{PZ7UNlkS1g#yfc-Y&?1s|3cJtfEU>XS!;4Y>a&ELnw^b^^xVuzVQ@6+coK=zIfMrIS@Kt@JBhDusWu zg{VMgrd37J*$Foz(B*+j^W>C!*%St&OEqYsm6-j1edhNVw8Co?!;lv=3J5k;+_F}I z4a@phT#)pcIFl1ff>;6`j0(rnjKwP&uB}DhyHnm70V*G}79m-NadofBkGJY1qSPusLX?ejQO5g882);4J~&vEhmH~ z_7#YV8dvsIloNYJZ9e++hR|s(xcP+@+KpkiN)W!iL8HLC5^uvZT4_i#b^Dw1aIPx! zf<8p+6z z!g)yc{lmrD$dC%~M=2}TP+dXz#ij>@ZPd#*a`KwO`AE*^^wZ#6v7E!OsMP%SkzRhL z<_=;cK+Ca2u7T5pe1@4F6(P9m+6os0Sq&FVXYE@$K#moD-BTIHy@ehoM)Aw%2>cZU zdK*TAv=#qGN?27cu#dcJ87|Z;Uwa%h-*5VR2T3Tdav_|>64kFiyT$Sw*}MO*AVeOC zSI}GNMb^k)z$ovVYqxd+rfEOSI<~@vfPsYm2_z7a`t26lOivW}-Z1`Q;!Zrjnj!Y;K78A=5N@q;;i|WT>>RT~JED-QZjEl$r&wu`T_gu*@F`Td@t3kc;PottS zzrcUt?jtiMRRM2<$VU2kz6w;zk`HDB>ASAv^8Ss-wTtn`3;8jcedK(M@1z9711tni zK+pc06!L&yLook1Cj44Zbqh_MIr5zBaT3D!p$_qnV>lwU-9}t_O+rkBxA*0AF)*%J zx6sqt-p34oh^_gn{*lB&SOk=T6_Y21;zba$^0)dV9`q^pJ(<4 zC|F4BbpXZ%Gw#n4uJ5Zak$MTL@t@J)wVnMV=N1~@2{;=2$fc%0IZAMEC`iXmiHaUt z4&3|5{ha&A7Sqf?!1guYXX}=YrXZxV^{yf7Bc36Tc-}2QHmPFjp_OK=8!lFtzejeK zdC-twh<2;td&4YZsYOaVW#TtJ!`&n#o zB(?i~J*aHgj|vI)#eZ>U+@%>(ZXH&B+Mi%C(yR`xLeRvmZDeq&-U=g}jrscIo#vE^ zd$4A0x&A11o16myaqTj@dBjx@64oIH4x6@~8=&TvNeC!g4_E|VQe0)8f;fl*t&5jt zVdwz%Yzv;5uWJ!s$8HJQ%q095H<`;k&pUcAZi7Gpu3vJFfiPu%V9Nf1(Fc@0t4tC8 z`9Iz4V`~(MB3jq&j`h7@AT%z(mH4v>^IaHH*I>ic_lP}?FKgCBzg5R_?*GqVp8#dN z7xRPGp^J7Qi_@w~*#Dxl9>fpkMUYi|$4i$A^*@vp!U07#eSm?fX;{Rc4w0!w_L7Nj`~ z)fD&rXBJZO<>jKwUWb~JbPW}$J5GT5!0Su0Qiz8DodBgb7WWFExkieDr_Q=yR|9m}ialT_>`Ka-+f7QT{ zNI0J~k#G)f?8i|{91QuSDg*b}>r$h7N>z35EDQ?z32qjeEI=LSXN-%~<|uyC0SR|lrbwSYL7in^ zFUpz*PSTQ_aS%tt2uH=m-Fg`=qRQq-lQMgQxwO<|HB&Uye?n3NL-L-bxu7W)vd~po zdUU~x@&>qo9f>12TF_A+G_ZeJ`+>-AODe+KkXk*qaDc+$*5ptM)Bb>$(f)(<;D>(M;TAGR~?b2+e zVd$whqY^(YVNJ?tCZk(k&W>Kf;5NY!BqvQ-tEMFVixU^SSF=Aa4YfgS4fUG}V4voRj7xK(F9LX$Xz}hDBwrS^DginRvmxHciR)oMHKCFGCkw2U zB%m`#;{SHW1r53YyWX{+5hoRKQifpKlD*Ys(2IhG+MbqLsOIx;ypBVsh)(fDg>1Np zU=6Z>DI1vzRns-`lrBCugj?a#1b)}`tWWG;SA86Ezi4}e5*+o)6l(f_T=iO%*5n`R+UATaLL>FkAzIhGWV9k#>3=7C5&Kb~gzz^S^a<-dT$jTKDp&k*+VP4+<#<)X!=<=Fr{SK0HDN%J zwgAF97}EV;0-n1~hsk8H0{d>}p(syL7GgP`u$Z+VMp8ynCMzid za1VYwa8gN>32Q0P5&=jV>m`c&KTFRfE_SMQX}icKSYjVGJCTlC6W`|sW=D45ntow1 zjitDsviwV`@*degJ20CL7m{~b1dyXG#*CSz_*+(idCPP{!b^hhpnE|q3Lm!$3{SngzHa~ilX@W-w1q!$wd-KM2% z{IlP`c6n8kmW0VIb(F(1W%k9#M>SGqUT=P*Mj*R#dFxJ_o}UL{Pc7hoC1xfB&b4-t z^5IJiDgqgKkNQ?R3kKJ@bkXYCia9iX!u?nXQ=GO=if4dMKHTCD9!ppWUzII!bd$HUZ|vJ0Tau4s4pDt=r!hXf4(U!z>fIZkkY#_ zL-Mym(!{*pPs%BX1{zg8)thXdfU%y|PX@%0cnXn_wd}0Vk&rAhLW}MoCSX{I2Q;Tj z06wjLS&z=jsHvJ|Xp8~kkPUfo#Yna^P2YZZ@5kr^epTPHR$B$6qhX_@Vb){pnr zOP?iUv^I^;#cle(nb2Ph43Ht7iQ8%)uI2GDDH;Yyv@U3NY99(94B>w0H3Uci%OGG_ z+G(>iQ)IMvxB(KtvpMP#F)De6(3n3ed-fzKQL|4Q841f;np$UyObS>AZ&F2INosn^ zkZ7F;BAKB;4<*i8YPpU;VO88Fz-XE2?-wvc6-x_1U}?9bFf=kVsPIh$T`{oT4AoO) z5&WA_F@Ls)>Qfi_v>wP;iv;_Jl&7C$QhPKeX&y%ZO&xCFA9Z3V|683M0#F?fOppKD zIp)8?%nn~%6Wq%F0dl~?g}z^pR_ORIQfv%&cYaAZuOI)TEnbn3q+uVhiPQ<~e`_M; zYVPJ{?O^$LpH+*-mdke@jNY9xqxL-u*j8ux1KKl+`fUX&JK#eCKpMY-*gtS5A`~d@ zkZ(jzq*|n3U1Hunf9vaY9UfC;&PM#4kCX~1JnzJ>gdR)y+xxWDT21GKcXWZ4kFODg16yU1vfh2!L??z zQ7zoE=(-s~v(Jxe##FvYN zA}5eIS<3v`JRngC7n^ACF!+$syk1ChP!Ks+i!oFL8Ap^c3Xrxc?7zh$H)W5uz7^(& zOfk+EH|M)b$Ud~j586z08&H0vehy$*UK?H+j3*SZSyNsUT3A@Y(~&|<*{a}*f4db% zYHXE~-j0Rk!wNQSa4hdj#B2w%QJC$ED^Nt+cmj|_sMc6RD%MVPd}0}|AI-^liU zBO!aC9<fCDgiNRbFJ;pPkn%N(Tb;|&*4n|QW-hrt$;czJFH#m&8U zHzbplXW7$^m`EWQVit91lj+`b#y6doCG4!+{@=Em@G~SaIV4 z+RnU-GjTB(bl?n+1HhSb())zcd>4t=67243L0`z-vjY&zOWwC>_j^<)QxyKFFt5>Z ztBbHXJ5V3wxn`)SM^5(csEFFsh23%-*UQsfGwX2AlfwkxXQj zP7~!W{)fi#sn~~71FkFchP08M%Y`W>Z|!~ah$MUGSI*i?%WN?}x4RZI`Rjt0sxdzl z_o+>Vp9=ORh7(&*Tvry`XpmE%cgTs&=}(D3*w;#KOd4h|1*yS{tVSl_4QxhQOZG4@_TY-B~QTA5^Ge; z%`>bhtW1($TiP;zskIUGakg2|4X0M>JI3CZm&GmIZ_1ywxDVS{`_fh z`nLtu7jqNU|8~L0%njHKu^@oVdG`(;CaNBoMYD<~vf&VRC5yBoI}uQ_wg5Ln&Aj|% z*XF|MdY~dbBdyr>!<%8+l_~hM-<}OhV?Y0L$&C0%*p}%i4Gcd_3|8hPT=LaMu|Xx| z3zBGf%rKcr1zV%c2@3F0$rHHI`2>V(S_Jd>s3zys4#7e>TYy4mvT_4!%-Yvl8lr`m z+cp}WSlL1L$tFv%eHVPJ2JPyE7spbO|Yz z?fc1w{T<|gI`*44-_;b@5%V`32ngDLIc5QD0IOzfV)wT#=2q%}!*>>f(H~zUY0|P~ z?UGtBQ0YcPo2QWQy+P0k>ajKwu7o=let+Y)i(|Q}m+5-2kN3KwpQZo}gu!(alLjZ{ z{g{0=`FMCE)M@*|&`2dtN7w$NAJ2(l5S+Ex=a8THrDrPCls4uWMJf<|Cj<3pvz1wA z(SoL3Bef%^iVEJxyV`xzO&>EFcBqodWH1H?Zlazm&E=4dL5S+soJ1>{lW;ElJR=IE zz0nolGdv1L3@=`jOd4m8uV*KPf-N?%iZy0=(%vh4Lv7rcK|(m0P1i#Cc#P%97XS1L zhZRq{K)l@6g8eyCh2E7P;w)UEbtLdO3l$p;nQVV!blkyEOXJ(OOfFuF(s$ocC^Fd+ zwP;rCNZ}$yr^Ai>L({H{^#L3?i3cw(IxA8Oj?5a0Y%66H)5@S**(@WOv?_+v$k^!2 za?rKvfp2tkZF`>~ucj*;H3OH*8uSA~c+Y}#9Y#wLRP)#htJ}-@4db+dXr%Px!>)cK7FnSi; zJAsvtPv~lNyC3!InP)rXj+~wCZ7dEUU)?Jx2B{;L~TQaM6#ePji17wiRzVoB<%g?8U|wNAest_}v<6GpmywywYR2o6<` zHl>|0jI>W2{BWuR)tm_9E+Iw^DF`}og}lV3W0S!X;@({w27(sYjh3ODBx(9gWKACLlxNjn(`DUqIBQ|W_7iV}UM#|4gJ2LYq}1Ov zcwd`jS*2vi6EMUX3gzb>hlFyNL{Mb4me1BaaPHM#9v`Q&tgS0EIUsKg>Q=AR7rLnT z=2}Z6=$|njeXAB^Wa7a_I3N?9{ZO)zK9` zi7nF9D_9n7*k@Yd;bvM0Dtz2|H8~VpQ(5T+zV-N^VYZwJFOs0K6dqcz%E>i0tIXFG zElFp8b|#B0XT~xsgeF#5NxNv?g2h;aHo?nBZKkY+hb3b3p%7_@8yHSp%AUDDN!Ie; zK!7f^|4JaNZ4$fE`}O%?BW-q|N{ZRw)63EF!B`#9n;t|T?3**%`|)q)ci$JA?N5uw6lHbK0@gZNKDE|nDN z44WzO8Yv6FvG*z5hKOBH#UPmiAA_p~uH{JsB>a&U2%YjKOmxHBSv|{XTP_+Sq{mW2 z+mF2POrlg43aZyY+LCc(HWXfO!8+C`VAlei`jo02=z_hHgpcuHzwy_w5bH!Bd36-CKDIES>NowJhb^c{dNTcuGtV?dgF69l-ny|Vf z_}0(2720fU+*tN|LsYo4%AMBrCTxC*Yj1c*k}Y7?`@5$i{|{@+@-oJ1*{UCAUaOJU ze)nBl^X{{{ZX5Wu-b=P`bzGc14TJblARO+~`yeE2EFM~tDn6tS{Ac^pzu zc>h&(KQ+0#gKlYQg}OxY>dv}CIRZyfI!^W=-RtnzmEjp`O!1(6&dXtjVyZN)LKB`f zbrTxeVL6Ke-Lha+Zp;xu4C2HQhAd2Lm0;w<1@# zvE259f?8X)%efeghVt!W4hf}vAHh0^HEU248+Kal1{UURE+NN$COG_dcP%Ufud&lf zwSCI2MPGo5j#3!k3g^*FX=S=aEUn}^pQNm6QMX>!S<*@QsUCGYfwE`CA==6!>1jgO z;?7}8*X2frvf-Ws&O(9S3SQ!VuFS`mJ_WAr{@!mEP%+D<&U|wWmg@V%vD|e}R2mHX z8ytYXZ(H1LJv#hI(R(2OZr*89vZ_)4itsyAS!4Fb^@BZk72&uPC$%Yzt^oiCqLQbX zaWYuWybE5>?q^2#V!B$g21sK%EjWni+l`Re?}}00H0u3XJGn!3`O95aBP}lDJ+|Q1 zk?HLZhgI2Sk9-*THM=DFkm>KD+B7Wbmf=sRxaB6>Y7UM5{EmS2&Z<3EFfPvO)s?;W zkG>wXm7SvsCDj7o#IRkjd38Ex6kQ=kd&T|fJf&hU`8IWYNQvt{qGNCxy?nt#PdN50 z68fTEzB=U7*lB(gLv{aZDs0`R1tMgmk{BKBnx$=lE7+H%VB);AU7{_KtcQ0*$o+G~#K?*Zjh_}PE|1Jkq#M`fSZ(cjS8&7jgmKw5 z(@bNv-7=0U=q!+SD430?p)$y0&1fhPh;k%Mm_u6)I~3EJ=fUz)HIEl5O>csI=#bKG ztS?7yUh^glN)8H)>iIwRG8kZ8;&|Tb^nXGBXD*iO&$n6z{J?_(X0PbL-=^-aZjSa^ z_IAwHZszuXKlW;(8{h_6FhG9#N=zh9l=6jREUKVTqZYu`%DjAsO6*Q7Hu=~N@7wkG z;xu+_uka2=%)tj}laO(Bg7dzT1Q7qcKNh}63AqRnfzGZ)u~M~^(spn6fFxA}$EKT@ zz&Oxj#ae>U2nMrssz5xg35R_fcfx57M6VnPjIz^A^`>g!z>{J=wx;Y`_tPN6Q9^xT zs)gb)zN%r&-J%SsYlq7+a|vEv{~x*pCy$nUfO@Ebx`_Tm*FW81|E=zCYuK3C24H@U z0=3(tNZM>wX>LhVp!I|Xwl3;KS`|Or8eW3lDJQ+%Tc`?-%eGDU@zd4b54oycgeq>n zytFdK|J3Qhnd{tg&Cel)q}92ZUXtY;wD{$^=+l5rhndxFgt!P9ZU;-5W6cC33WIt& zN$ONEuNISOu6yIPiRD~Y=ljBQA88l0DuE>Vy|G;}4iW5jgL7tg5MigS|2Q*Ua~GN^ zPuOF614rb*G47i5EXuovg1US~mxj>W>KoX94roi4yuuz(unAB&&VLC1Bl&Ol`M;x@ z6W`zv#DXF5rFZade}Xk1!U`i?8idw%SyrFW!=KWQd_z2@^4(j3kJEJQORd}WGCzUP zQLuwi^&B1bJQW3uS`~jmXm)oWCkOdBUoD@YH6(9G5ak#dkK5-R=dqeaC?+I|JEEhE zncLINZp-Oba%l%{FQ}s-1N?~`p_zWSohU52Ehe;NQ)e8iYW;3G-*H&-A6UR$r7o}P z+|HTi%Ayyp3v+Di*Qavn8XWff`r3Jl$}Nn2&Zs2KfR`(uknP&Th??z@@DHT!$P0=G zqhA8stlk`rWs}gq?o-Kr{f|{z{9IUsEwCmN0nG0Hz2L3&0aj)HcJ|iVa@gm= z>Deh0PLR}ViAdsr;Ak!s*3gfUByYI~p~9&@&l_iD*}Rs!GM%BX&Jik)WS2+#JQaiP zx5NAH19*k}^?DPOxQ!Hn;mUO#q+7Nl#&9e*y>jsWGwqb>@}~;yIvU!yxpqHc>yN$n zxY^&R8w-$VbaiDkT72KBZ`Zy{XGGia$8d)aKBVqz-6Yo?+D})^Xwnmqd(Vz6d?wsA z(~Q_BO`RL8;p~lys(2 z+J~glBI3|gn!g-f(WqA*a8_L|U?o@Yw~~^{n7(ki7mX?q50{IaCS@mbq%~oqpT!C< z59F2O=HWeGNmhX5rj)q~RpjbY^xygRkm2vmNdU`C>z5HkGeKWx3Godw)+!RtSq9c| zm4Tl3>#wJoVqVNITYwEA$Q>#vuFcr1h#n2SO7vGG&As`vm4(kE0**$7NGLHpRP$|%C7qRINUNTDE&o9)$~q4@aH_PUSblD4SG`am7V2{fNjZ58sZUg-I#poVbM6mOY8? z#k-@YNJj4M#`@j5N8t(c2ozO=Wz0zKZvc;*-iKJ!)$bOQ3#XqZT~rMxF(a`=0r&_# zGEyegvv~7K7%3jo1H7@H0O_`qEO7zz1{!td;dUcCXO%(=Siy2;EZW_!MgRyhX=5o zid(-}fU#HPHDIbm0<+x^=Py(To5xqvS&D`0KHp=Ue<;qGVtv|~;k#?m=l%`T3q@tv zb6n#Lb*#*BaVnhY^JxdS>$XMR@)f2QNxn8TMn8u)ssHQr?=?(A4^5vP!moTMm9d{c zdf^o$5%BT%kf1@84D^0_=-;}v-0cbR=`*k=<-9w19oTi$)#sa98r9-rE%ghqU)DlB zU5`DX9b+eo^m}3Y_xcDKSOKK80 zK9js!)t!FFm%^;h!3m&u$&4Dfa`lXFBhAxDGpkeFw?Ud5r@;&iJpGbo#Y|u_et`@l zbGAMFHL8deC8CZS>W5oJffuL=Qq2~1Dz9nx&{d;4d0x1WpH{2VZ?i)o2|SyqctuE~ zFwc=h9rfAmjq@t)KmqiQG3E_hlcyCUee)E)v@1IpMyFAZ-&={8-cSb#d3Uf+aGbw;hQ$n6dGu+SmG-whHG;M!cwy+8os)#)O$l}AV&CXEEo)U_lKGZ@ZEn|J zh9C7mLW8GZ+Q^%rP?SiHF#WcfTKPkxTV{qkKy5Wh78~B0H9BjYPGymv^0` z{4Tr9a~OzH9W!z$<)t^$+{PY18#EFP4*?@WD7b|ZJY@t%og4_sia_Soy&DFi1MvW7 zb<6%m82mfbDlZ1G6>6lH`DdY=m@0%?WlbLZ#b9YH)+C?qlXy6`G>mvrmW1a+LAE%I zqL%n+-1G}+oxEE2&m`aI!j04_brDh@*Audby{`7*`hNE(oz!L$b~0I#<|?{C3lAa< zrz|F2?5sY$kBdhWEx3Q|J$$uSa&LOSv;5`T3!T^VIuRTwG>|u3g&oP#=AWoczU@ni zOiLSdh}U_WIuJ4|xD=A;rde}}SUU^wu%ZrbNlBwC_^LB#BWUx!zG=E`w{7!&o5_Uy zozellE$FxZ#>CaWAT)Yg*2S^l;ggG_(+|p?D*PXD0blBt@as~&pe|ZKK!ZkDzOxJ{ z+2Poxo0Ursvzy_%Aex8Lp5lJG*-l)Qs~tg}y21T%zH3|232b~-pj{!X!bcFiyn6Yu zX2%wKi1wSatJVMds9n@@5%VIlzc{Ose(C6Zk~Z$7EGw{A)aQHcclT?2H4=)7#Eb0O zOTJFcvrDQG>HuJ$Vzy6KH3c^|^M*f?6g(~N?Nm{HD4HoQiDNTBl%GotpD@(~W%5n|x;L66U>l@Muox zl8eF#OaIH|WnWO(F5TSujxCw1TeGM~FhcpTSXd!K(JugexW@ zZzQ;M4j1Y?teBUOd4~A~d(xBk-qX65c;la3>W`l~aeLa~XHz(*y}heEr~RDonf1cA z+n1!J^~y}O&HOZF&hBOB_EcYc({!kM&CzX>E*Vuzet29|dbmsMW$fy<{`1k3Cnet8P+9$b0_V?j#mcXaIIo;3 zoc_(%%HKO!YxmYexBdsGGPkO}vf_IwlV_ov-tx2HsTW_#2L5GDY*HBu8nF`pjXS;_ zvJdcPWD;Qp4Ucm$teR;au{LPw#Hqj*>M7uu8>rg>0}Vhi28L*7;9ziSUP*jNWkG6j zEU0ycZa}4)x5E#h(tE&hWNw&lAl<-t3}^(TjSp_xqigJF;||UQD!B;MD2Sr*IZy;% z_ax^Rfk&dzwST#NTl_UpdkzZ&g8+*5dY}kgdtyNWHdkLXYkl1aY=!Fbp<6x!7!cr@ z1E3M5xj?^T)1KELEo20={4~%i85GMsfJ5nE?GT?M8-g_ydRL2Cck44S#D%gl@S~Wt z1sIxOlZs0!b5g<6mFQuBexM{we*#_F6(G5WF z=pqbAY(O>uTelb8EcCu3!mOx9WV29vlIW(OceN0v6gELa1*PMKt{=TUh|tf|hLpun YTZaMOtiT)u%2k34iNNgfuN%Yz0GB=>SO5S3 literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/TweetImpressionsStore.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/TweetImpressionsStore.scala deleted file mode 100644 index 6acf1d136..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/TweetImpressionsStore.scala +++ /dev/null @@ -1,19 +0,0 @@ -package com.twitter.frigate.pushservice.store - -import com.twitter.frigate.common.store.strato.StratoFetchableStore -import com.twitter.storehaus.ReadableStore -import com.twitter.strato.client.{Client => StratoClient} -import com.twitter.util.Future - -/** - * Store to get inbound Tweet impressions count for a specific Tweet id. - */ -class TweetImpressionsStore(stratoClient: StratoClient) extends ReadableStore[Long, String] { - - private val column = "rux/impression.Tweet" - private val store = StratoFetchableStore.withUnitView[Long, String](stratoClient, column) - - def getCounts(tweetId: Long): Future[Option[Long]] = { - store.get(tweetId).map(_.map(_.toLong)) - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/TweetTranslationStore.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/TweetTranslationStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..69831594579f429256e4af3339af27905744c984 GIT binary patch literal 38722 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 literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/TweetTranslationStore.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/TweetTranslationStore.scala deleted file mode 100644 index 618d8da32..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/TweetTranslationStore.scala +++ /dev/null @@ -1,211 +0,0 @@ -package com.twitter.frigate.pushservice.store - -import com.twitter.context.TwitterContext -import com.twitter.context.thriftscala.Viewer -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.TwitterContextPermit -import com.twitter.frigate.pushservice.model.PushTypes.Target -import com.twitter.frigate.pushservice.params.PushFeatureSwitchParams -import com.twitter.frigate.pushservice.params.PushParams -import com.twitter.frigate.thriftscala.CommonRecommendationType -import com.twitter.kujaku.domain.thriftscala.CacheUsageType -import com.twitter.kujaku.domain.thriftscala.MachineTranslation -import com.twitter.kujaku.domain.thriftscala.MachineTranslationResponse -import com.twitter.kujaku.domain.thriftscala.TranslationSource -import com.twitter.storehaus.ReadableStore -import com.twitter.strato.generated.client.translation.service.IsTweetTranslatableClientColumn -import com.twitter.strato.generated.client.translation.service.platform.MachineTranslateTweetClientColumn -import com.twitter.tweetypie.thriftscala.Tweet -import com.twitter.util.Future -import com.twitter.util.logging.Logging - -object TweetTranslationStore { - case class Key( - target: Target, - tweetId: Long, - tweet: Option[Tweet], - crt: CommonRecommendationType) - - case class Value( - translatedTweetText: String, - localizedSourceLanguage: String) - - val allowedCRTs = Set[CommonRecommendationType]( - CommonRecommendationType.TwistlyTweet - ) -} - -case class TweetTranslationStore( - translateTweetStore: ReadableStore[ - MachineTranslateTweetClientColumn.Key, - MachineTranslationResponse - ], - isTweetTranslatableStore: ReadableStore[IsTweetTranslatableClientColumn.Key, Boolean], - statsReceiver: StatsReceiver) - extends ReadableStore[TweetTranslationStore.Key, TweetTranslationStore.Value] - with Logging { - - private val stats = statsReceiver.scope("tweetTranslationStore") - private val isTranslatableCounter = stats.counter("tweetIsTranslatable") - private val notTranslatableCounter = stats.counter("tweetIsNotTranslatable") - private val protectedUserCounter = stats.counter("protectedUser") - private val notProtectedUserCounter = stats.counter("notProtectedUser") - private val validLanguageCounter = stats.counter("validTweetLanguage") - private val invalidLanguageCounter = stats.counter("invalidTweetLanguage") - private val validCrtCounter = stats.counter("validCrt") - private val invalidCrtCounter = stats.counter("invalidCrt") - private val paramEnabledCounter = stats.counter("paramEnabled") - private val paramDisabledCounter = stats.counter("paramDisabled") - - private val twitterContext = TwitterContext(TwitterContextPermit) - - override def get(k: TweetTranslationStore.Key): Future[Option[TweetTranslationStore.Value]] = { - k.target.inferredUserDeviceLanguage.flatMap { - case Some(deviceLanguage) => - setTwitterContext(k.target, deviceLanguage) { - translateTweet( - target = k.target, - tweetId = k.tweetId, - tweet = k.tweet, - crt = k.crt, - deviceLanguage = deviceLanguage).map { responseOpt => - responseOpt.flatMap { response => - response.translatorLocalizedSourceLanguage - .map { localizedSourceLanguage => - TweetTranslationStore.Value( - translatedTweetText = response.translation, - localizedSourceLanguage = localizedSourceLanguage - ) - }.filter { _ => - response.translationSource == TranslationSource.Google - } - } - } - } - case None => Future.None - } - - } - - // Don't sent protected tweets to external API for translation - private def checkProtectedUser(target: Target): Future[Boolean] = { - target.targetUser.map(_.flatMap(_.safety).forall(_.isProtected)).onSuccess { - case true => protectedUserCounter.incr() - case false => notProtectedUserCounter.incr() - } - } - - private def isTweetTranslatable( - target: Target, - tweetId: Long, - tweet: Option[Tweet], - crt: CommonRecommendationType, - deviceLanguage: String - ): Future[Boolean] = { - val tweetLangOpt = tweet.flatMap(_.language) - val isValidLanguage = tweetLangOpt.exists { tweetLang => - tweetLang.confidence > 0.5 && - tweetLang.language != deviceLanguage - } - - if (isValidLanguage) { - validLanguageCounter.incr() - } else { - invalidLanguageCounter.incr() - } - - val isValidCrt = TweetTranslationStore.allowedCRTs.contains(crt) - if (isValidCrt) { - validCrtCounter.incr() - } else { - invalidCrtCounter.incr() - } - - if (isValidCrt && isValidLanguage && target.params(PushParams.EnableIsTweetTranslatableCheck)) { - checkProtectedUser(target).flatMap { - case false => - val isTweetTranslatableKey = IsTweetTranslatableClientColumn.Key( - tweetId = tweetId, - destinationLanguage = Some(deviceLanguage), - translationSource = Some(TranslationSource.Google.name), - excludePreferredLanguages = Some(true) - ) - isTweetTranslatableStore - .get(isTweetTranslatableKey).map { resultOpt => - resultOpt.getOrElse(false) - }.onSuccess { - case true => isTranslatableCounter.incr() - case false => notTranslatableCounter.incr() - } - case true => - Future.False - } - } else { - Future.False - } - } - - private def translateTweet( - tweetId: Long, - deviceLanguage: String - ): Future[Option[MachineTranslation]] = { - val translateKey = MachineTranslateTweetClientColumn.Key( - tweetId = tweetId, - destinationLanguage = deviceLanguage, - translationSource = TranslationSource.Google, - translatableEntityTypes = Seq(), - onlyCached = false, - cacheUsageType = CacheUsageType.Default - ) - translateTweetStore.get(translateKey).map { - _.collect { - case MachineTranslationResponse.Result(result) => result - } - } - } - - private def translateTweet( - target: Target, - tweetId: Long, - tweet: Option[Tweet], - crt: CommonRecommendationType, - deviceLanguage: String - ): Future[Option[MachineTranslation]] = { - isTweetTranslatable(target, tweetId, tweet, crt, deviceLanguage).flatMap { - case true => - val isEnabledByParam = target.params(PushFeatureSwitchParams.EnableTweetTranslation) - if (isEnabledByParam) { - paramEnabledCounter.incr() - translateTweet(tweetId, deviceLanguage) - } else { - paramDisabledCounter.incr() - Future.None - } - case false => - Future.None - } - } - - private def setTwitterContext[Rep]( - target: Target, - deviceLanguage: String - )( - f: => Future[Rep] - ): Future[Rep] = { - twitterContext() match { - case Some(viewer) if viewer.userId.nonEmpty && viewer.authenticatedUserId.nonEmpty => - // If the context is already setup with a user ID just use it - f - case _ => - // If not, create a new context containing the viewer user id - twitterContext.let( - Viewer( - userId = Some(target.targetId), - requestLanguageCode = Some(deviceLanguage), - authenticatedUserId = Some(target.targetId) - )) { - f - } - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/UttEntityHydrationStore.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/UttEntityHydrationStore.docx new file mode 100644 index 0000000000000000000000000000000000000000..4997d8749617bb9b94150867270b5fd2178ca46b GIT binary patch literal 37675 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 bQWisP9R_%_0&@^3R|zsC0<*`KJ`fK8wEu2z literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/UttEntityHydrationStore.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/UttEntityHydrationStore.scala deleted file mode 100644 index bd96bf690..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/store/UttEntityHydrationStore.scala +++ /dev/null @@ -1,79 +0,0 @@ -package com.twitter.frigate.pushservice.store - -import com.twitter.escherbird.util.uttclient.CachedUttClientV2 -import com.twitter.escherbird.util.uttclient.InvalidUttEntityException -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.logging.Logger -import com.twitter.stitch.Stitch -import com.twitter.topiclisting.TopicListingViewerContext -import com.twitter.topiclisting.utt.LocalizedEntity -import com.twitter.topiclisting.utt.LocalizedEntityFactory -import com.twitter.util.Future - -/** - * - * @param viewerContext: [[TopicListingViewerContext]] for filtering topic - * @param semanticCoreEntityIds: list of semantic core entities to hydrate - */ -case class UttEntityHydrationQuery( - viewerContext: TopicListingViewerContext, - semanticCoreEntityIds: Seq[Long]) - -/** - * - * @param cachedUttClientV2 - * @param statsReceiver - */ -class UttEntityHydrationStore( - cachedUttClientV2: CachedUttClientV2, - statsReceiver: StatsReceiver, - log: Logger) { - - private val stats = statsReceiver.scope(this.getClass.getSimpleName) - private val uttEntityNotFound = stats.counter("invalid_utt_entity") - private val deviceLanguageMismatch = stats.counter("language_mismatch") - - /** - * SemanticCore recommends setting language and country code to None to fetch all localized topic - * names and apply filtering for locales on our end - * - * We use [[LocalizedEntityFactory]] from [[Topiclisting]] library to filter out topic name based - * on user locale - * - * Some(LocalizedEntity) - LocalizedUttEntity found - * None - LocalizedUttEntity not found - */ - def getLocalizedTopicEntities( - query: UttEntityHydrationQuery - ): Future[Seq[Option[LocalizedEntity]]] = Stitch.run { - Stitch.collect { - query.semanticCoreEntityIds.map { semanticCoreEntityId => - val uttEntity = cachedUttClientV2.cachedGetUttEntity( - language = None, - country = None, - version = None, - entityId = semanticCoreEntityId) - - uttEntity - .map { uttEntityMetadata => - val localizedEntity = LocalizedEntityFactory.getLocalizedEntity( - uttEntityMetadata, - query.viewerContext, - enableInternationalTopics = true, - enableTopicDescription = true) - // update counter - localizedEntity.foreach { entity => - if (!entity.nameMatchesDeviceLanguage) deviceLanguageMismatch.incr() - } - - localizedEntity - }.handle { - case e: InvalidUttEntityException => - log.error(e.getMessage) - uttEntityNotFound.incr() - None - } - } - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/CandidateNotifier.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/CandidateNotifier.docx new file mode 100644 index 0000000000000000000000000000000000000000..5d2a455332b76fb8432627cc608c220df938567b GIT binary patch literal 38301 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 literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/CandidateNotifier.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/CandidateNotifier.scala deleted file mode 100644 index 1eb8cbc04..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/CandidateNotifier.scala +++ /dev/null @@ -1,160 +0,0 @@ -package com.twitter.frigate.pushservice.take - -import com.twitter.conversions.DurationOps._ -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.base.Stats.track -import com.twitter.frigate.common.logger.MRLogger -import com.twitter.frigate.common.store.Fail -import com.twitter.frigate.common.store.IbisResponse -import com.twitter.frigate.common.store.InvalidConfiguration -import com.twitter.frigate.common.store.NoRequest -import com.twitter.frigate.common.store.Sent -import com.twitter.frigate.common.util.CasLock -import com.twitter.frigate.common.util.PushServiceUtil.InvalidConfigResponse -import com.twitter.frigate.common.util.PushServiceUtil.NtabWriteOnlyResponse -import com.twitter.frigate.common.util.PushServiceUtil.SendFailedResponse -import com.twitter.frigate.common.util.PushServiceUtil.SentResponse -import com.twitter.frigate.pushservice.predicate.CasLockPredicate -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.frigate.pushservice.take.history._ -import com.twitter.frigate.pushservice.util.CopyUtil -import com.twitter.frigate.pushservice.thriftscala.PushResponse -import com.twitter.frigate.pushservice.thriftscala.PushStatus -import com.twitter.frigate.pushservice.util.OverrideNotificationUtil -import com.twitter.frigate.thriftscala.ChannelName -import com.twitter.util.Future - -class CandidateNotifier( - notificationSender: NotificationSender, - casLock: CasLock, - historyWriter: HistoryWriter, - eventBusWriter: EventBusWriter, - ntabOnlyChannelSelector: NtabOnlyChannelSelector -)( - implicit statsReceiver: StatsReceiver) { - - private lazy val casLockPredicate = - CasLockPredicate(casLock, expiryDuration = 10.minutes)(statsReceiver) - private val candidateNotifierStats = statsReceiver.scope(this.getClass.getSimpleName) - private val historyWriteCounter = - candidateNotifierStats.counter("simply_notifier_history_write_num") - private val loggedOutHistoryWriteCounter = - candidateNotifierStats.counter("logged_out_simply_notifier_history_write_num") - private val notificationSenderLatency = - candidateNotifierStats.scope("notification_sender_send") - private val log = MRLogger("CandidateNotifier") - - private def mapIbisResponse(ibisResponse: IbisResponse): PushResponse = { - ibisResponse match { - case IbisResponse(Sent, _) => SentResponse - case IbisResponse(Fail, _) => SendFailedResponse - case IbisResponse(InvalidConfiguration, _) => InvalidConfigResponse - case IbisResponse(NoRequest, _) => NtabWriteOnlyResponse - } - } - - /** - * - write to history store - * - send the notification - * - scribe the notification - * - * final modifier is to signal that this function cannot be overriden. There's some critical logic - * in this function, and it's helpful to know that no sub-class overrides it. - */ - final def notify( - candidate: PushCandidate, - ): Future[PushResponse] = { - if (candidate.target.isDarkWrite) { - notificationSender.sendIbisDarkWrite(candidate).map(mapIbisResponse) - } else { - casLockPredicate(Seq(candidate)).flatMap { casLockResults => - if (casLockResults.head || candidate.target.pushContext - .exists(_.skipFilters.contains(true))) { - Future - .join( - candidate.target.isSilentPush, - OverrideNotificationUtil - .getOverrideInfo(candidate, candidateNotifierStats), - CopyUtil.getCopyFeatures(candidate, candidateNotifierStats) - ).flatMap { - case (isSilentPush, overrideInfoOpt, copyFeaturesMap) => - val channels = ntabOnlyChannelSelector.selectChannel(candidate) - channels.flatMap { channels => - candidate - .frigateNotificationForPersistence( - channels, - isSilentPush, - overrideInfoOpt, - copyFeaturesMap.keySet).flatMap { frigateNotificationForPersistence => - val result = if (candidate.target.isDarkWrite) { - candidateNotifierStats.counter("dark_write").incr() - Future.Unit - } else { - historyWriteCounter.incr() - historyWriter - .writeSendToHistory(candidate, frigateNotificationForPersistence) - } - result.flatMap { _ => - track(notificationSenderLatency)( - notificationSender - .notify(channels, candidate) - .map { ibisResponse => - eventBusWriter - .writeToEventBus(candidate, frigateNotificationForPersistence) - mapIbisResponse(ibisResponse) - }) - } - } - } - } - } else { - candidateNotifierStats.counter("filtered_by_cas_lock").incr() - Future.value(PushResponse(PushStatus.Filtered, Some(casLockPredicate.name))) - } - } - } - } - - final def loggedOutNotify( - candidate: PushCandidate, - ): Future[PushResponse] = { - if (candidate.target.isDarkWrite) { - notificationSender.sendIbisDarkWrite(candidate).map(mapIbisResponse) - } else { - casLockPredicate(Seq(candidate)).flatMap { casLockResults => - if (casLockResults.head || candidate.target.pushContext - .exists(_.skipFilters.contains(true))) { - val response = candidate.target.isSilentPush.flatMap { isSilentPush => - candidate - .frigateNotificationForPersistence( - Seq(ChannelName.PushNtab), - isSilentPush, - None, - Set.empty).flatMap { frigateNotificationForPersistence => - val result = if (candidate.target.isDarkWrite) { - candidateNotifierStats.counter("logged_out_dark_write").incr() - Future.Unit - } else { - loggedOutHistoryWriteCounter.incr() - historyWriter.writeSendToHistory(candidate, frigateNotificationForPersistence) - } - - result.flatMap { _ => - track(notificationSenderLatency)( - notificationSender - .loggedOutNotify(candidate) - .map { ibisResponse => - mapIbisResponse(ibisResponse) - }) - } - } - } - response - } else { - candidateNotifierStats.counter("filtered_by_cas_lock").incr() - Future.value(PushResponse(PushStatus.Filtered, Some(casLockPredicate.name))) - } - } - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/LoggedOutRefreshForPushNotifier.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/LoggedOutRefreshForPushNotifier.docx new file mode 100644 index 0000000000000000000000000000000000000000..c5ddba31a5ccdcff39caf4c6c57e488e1a22eb45 GIT binary patch literal 38017 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 R3tG1-3BUz34-M@6 - invalidResultCounter.incr() - Future.value(LoggedOutResponse(PushStatus.Filtered, Some(reason))) - case _ => - filteredLoggedOutResponse.incr() - Future.value(LoggedOutResponse(PushStatus.Filtered, None)) - } - } else { - track(loSendLatency)(loCandidateNotifier.loggedOutNotify(candidate).map { res => - LoggedOutResponse(res.status) - }) - } - } - - def checkResponseAndNotify( - response: Response[PushCandidate, Result] - ): Future[LoggedOutResponse] = { - val receivers = Seq(statsReceiver) - val loggedOutResponse = response match { - case Response(OK, processedCandidates) => - processedCandidatesCounter.incr(processedCandidates.size) - val validCandidates = processedCandidates.filter(_.result == OK) - validCandidatesCounter.incr(validCandidates.size) - - validCandidates.headOption match { - case Some(candidatesResult) => - candidatesResult.result match { - case OK => - okayCandidateCounter.incr() - notify(candidatesResult) - .onSuccess { nr => - successNotifyCounter.incr() - loPushStats.scope("lo_result").counter(nr.status.name).incr() - } - case _ => - nonOkayCandidateCounter.incr() - FilteredLoggedOutResponseFut - } - case _ => - noneCandidateResultCounter.incr() - FilteredLoggedOutResponseFut - } - - case Response(Invalid(reason), _) => - FilteredLoggedOutResponseFut.map(_.copy(filteredBy = reason)) - - case _ => - FilteredLoggedOutResponseFut - } - val bstats = BroadcastStatsReceiver(receivers) - Stat - .timeFuture(bstats.stat("logged_out_latency"))( - loggedOutResponse.raiseWithin(CommonConstants.maxPushRequestDuration) - ) - .onFailure { exception => - rfphStatsRecorder.loggedOutRequestExceptionStats(exception, bstats) - } - loggedOutResponse - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/NotificationSender.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/NotificationSender.docx new file mode 100644 index 0000000000000000000000000000000000000000..2a2d35c7a2ccd43b45e011a01c0a2ac8f4a6d9ca GIT binary patch literal 37766 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 Unit) { - - private val notificationNotifierStats = statsReceiver.scope(this.getClass.getSimpleName) - private val ibis2SendLatency = notificationNotifierStats.scope("ibis2_send") - private val loggedOutIbis2SendLatency = notificationNotifierStats.scope("logged_out_ibis2_send") - private val ntabSendLatency = notificationNotifierStats.scope("ntab_send") - - private val ntabWriteThenSkipPushCounter = - notificationNotifierStats.counter("ntab_write_then_skip_push") - private val ntabWriteThenIbisSendCounter = - notificationNotifierStats.counter("ntab_write_then_ibis_send") - notificationNotifierStats.counter("ins_dark_traffic_send") - - private val ntabOnlyChannelSenderV3Counter = - notificationNotifierStats.counter("ntab_only_channel_send_v3") - - def sendIbisDarkWrite(candidate: PushCandidate): Future[IbisResponse] = { - ibis2Sender.sendAsDarkWrite(candidate) - } - - private def isNtabOnlySend( - channels: Seq[ChannelName] - ): Future[Boolean] = { - val isNtabOnlyChannel = channels.contains(ChannelName.NtabOnly) - if (isNtabOnlyChannel) ntabOnlyChannelSenderV3Counter.incr() - - Future.value(isNtabOnlyChannel) - } - - private def isPushOnly(channels: Seq[ChannelName], candidate: PushCandidate): Future[Boolean] = { - Future.value(channels.contains(ChannelName.PushOnly)) - } - - def notify( - channels: Seq[ChannelName], - candidate: PushCandidate - ): Future[IbisResponse] = { - Future - .join(isPushOnly(channels, candidate), isNtabOnlySend(channels)).map { - case (isPushOnly, isNtabOnly) => - if (isPushOnly) { - track(ibis2SendLatency)(ibis2Sender.send(channels, candidate, notificationScribe, None)) - } else { - track(ntabSendLatency)( - ntabSender - .send(candidate, isNtabOnly)) - .flatMap { ntabResponse => - if (isNtabOnly) { - ntabWriteThenSkipPushCounter.incr() - candidate - .scribeData(channels = channels).foreach(notificationScribe).map(_ => - IbisResponse(Sent)) - } else { - ntabWriteThenIbisSendCounter.incr() - track(ibis2SendLatency)( - ibis2Sender.send(channels, candidate, notificationScribe, ntabResponse)) - } - } - - } - }.flatten - } - - def loggedOutNotify( - candidate: PushCandidate - ): Future[IbisResponse] = { - val ibisResponse = { - track(loggedOutIbis2SendLatency)( - ibis2Sender.send(Seq(ChannelName.PushNtab), candidate, notificationScribe, None)) - } - ibisResponse - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/NotificationServiceSender.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/NotificationServiceSender.docx new file mode 100644 index 0000000000000000000000000000000000000000..4aed0ac1a2ff531df9ea87dcce02cdd5dd960cde GIT binary patch literal 39529 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 Z`_-YbK0PpkevT@3kS#DgR#Sie`ag97Cno>^ literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/NotificationServiceSender.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/NotificationServiceSender.scala deleted file mode 100644 index c2f729115..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/NotificationServiceSender.scala +++ /dev/null @@ -1,273 +0,0 @@ -package com.twitter.frigate.pushservice.take - -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.logger.MRLogger -import com.twitter.frigate.common.ntab.InvalidNTABWriteRequestException -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.frigate.pushservice.model.PushTypes.Target -import com.twitter.frigate.pushservice.params.PushParams -import com.twitter.frigate.thriftscala.CommonRecommendationType -import com.twitter.gizmoduck.thriftscala.User -import com.twitter.notificationservice.thriftscala._ -import com.twitter.storehaus.ReadableStore -import com.twitter.timelines.configapi.Param -import com.twitter.util.Future -import scala.util.control.NoStackTrace - -class NtabCopyIdNotFoundException(private val message: String) - extends Exception(message) - with NoStackTrace - -class InvalidNtabCopyIdException(private val message: String) - extends Exception(message) - with NoStackTrace - -object NotificationServiceSender { - - def generateSocialContextTextEntities( - ntabDisplayNamesAndIdsFut: Future[Seq[(String, Long)]], - otherCountFut: Future[Int] - ): Future[Seq[DisplayTextEntity]] = { - Future.join(ntabDisplayNamesAndIdsFut, otherCountFut).map { - case (namesWithIdInOrder, otherCount) => - val displays = namesWithIdInOrder.zipWithIndex.map { - case ((name, id), index) => - DisplayTextEntity( - name = "user" + s"${index + 1}", - value = TextValue.Text(name), - emphasis = true, - userId = Some(id) - ) - } ++ Seq( - DisplayTextEntity(name = "nameCount", value = TextValue.Number(namesWithIdInOrder.size)) - ) - - val otherDisplay = if (otherCount > 0) { - Some( - DisplayTextEntity( - name = "otherCount", - value = TextValue.Number(otherCount) - ) - ) - } else None - displays ++ otherDisplay - } - } - - def getDisplayTextEntityFromUser( - userOpt: Option[User], - fieldName: String, - isBold: Boolean - ): Option[DisplayTextEntity] = { - for { - user <- userOpt - profile <- user.profile - } yield { - DisplayTextEntity( - name = fieldName, - value = TextValue.Text(profile.name), - emphasis = isBold, - userId = Some(user.id) - ) - } - } - - def getDisplayTextEntityFromUser( - user: Future[Option[User]], - fieldName: String, - isBold: Boolean - ): Future[Option[DisplayTextEntity]] = { - user.map { getDisplayTextEntityFromUser(_, fieldName, isBold) } - } -} - -case class NotificationServiceRequest( - candidate: PushCandidate, - impressionId: String, - isBadgeUpdate: Boolean, - overrideId: Option[String] = None) - -class NotificationServiceSender( - send: (Target, CreateGenericNotificationRequest) => Future[CreateGenericNotificationResponse], - enableWritesParam: Param[Boolean], - enableForEmployeesParam: Param[Boolean], - enableForEveryoneParam: Param[Boolean] -)( - implicit globalStats: StatsReceiver) - extends ReadableStore[NotificationServiceRequest, CreateGenericNotificationResponse] { - - val log = MRLogger(this.getClass.getName) - - val stats = globalStats.scope("NotificationServiceSender") - val requestEmpty = stats.scope("request_empty") - val requestNonEmpty = stats.counter("request_non_empty") - - val requestBadgeCount = stats.counter("request_badge_count") - - val successfulWrite = stats.counter("successful_write") - val successfulWriteScope = stats.scope("successful_write") - val failedWriteScope = stats.scope("failed_write") - val gotNonSuccessResponse = stats.counter("got_non_success_response") - val gotEmptyResponse = stats.counter("got_empty_response") - val deciderTurnedOffResponse = stats.scope("decider_turned_off_response") - - val disabledByDeciderForCandidate = stats.scope("model/candidate").counter("disabled_by_decider") - val sentToAlphaUserForCandidate = - stats.scope("model/candidate").counter("send_to_employee_or_team") - val sentToNonBucketedUserForCandidate = - stats.scope("model/candidate").counter("send_to_non_bucketed_decidered_user") - val noSendForCandidate = stats.scope("model/candidate").counter("no_send") - - val ineligibleUsersForCandidate = stats.scope("model/candidate").counter("ineligible_users") - - val darkWriteRequestsForCandidate = stats.scope("model/candidate").counter("dark_write_traffic") - - val heavyUserForCandidateCounter = stats.scope("model/candidate").counter("target_heavy") - val nonHeavyUserForCandidateCounter = stats.scope("model/candidate").counter("target_non_heavy") - - val skipWritingToNTAB = stats.counter("skip_writing_to_ntab") - - val ntabWriteDisabledForCandidate = stats.scope("model/candidate").counter("ntab_write_disabled") - - val ntabOverrideEnabledForCandidate = stats.scope("model/candidate").counter("override_enabled") - val ntabTTLForCandidate = stats.scope("model/candidate").counter("ttl_enabled") - - override def get( - notifRequest: NotificationServiceRequest - ): Future[Option[CreateGenericNotificationResponse]] = { - notifRequest.candidate.target.deviceInfo.flatMap { deviceInfoOpt => - val disableWritingToNtab = - notifRequest.candidate.target.params(PushParams.DisableWritingToNTAB) - - if (disableWritingToNtab) { - skipWritingToNTAB.incr() - Future.None - } else { - if (notifRequest.overrideId.nonEmpty) { ntabOverrideEnabledForCandidate.incr() } - Future - .join( - notifRequest.candidate.ntabRequest, - ntabWritesEnabledForCandidate(notifRequest.candidate)).flatMap { - case (Some(ntabRequest), ntabWritesEnabled) if ntabWritesEnabled => - if (ntabRequest.expiryTimeMillis.nonEmpty) { ntabTTLForCandidate.incr() } - sendNTabRequest( - ntabRequest, - notifRequest.candidate.target, - notifRequest.isBadgeUpdate, - notifRequest.candidate.commonRecType, - isFromCandidate = true, - overrideId = notifRequest.overrideId - ) - case (Some(_), ntabWritesEnabled) if !ntabWritesEnabled => - ntabWriteDisabledForCandidate.incr() - Future.None - case (None, ntabWritesEnabled) => - if (!ntabWritesEnabled) ntabWriteDisabledForCandidate.incr() - requestEmpty.counter(s"candidate_${notifRequest.candidate.commonRecType}").incr() - Future.None - } - } - } - } - - private def sendNTabRequest( - genericNotificationRequest: CreateGenericNotificationRequest, - target: Target, - isBadgeUpdate: Boolean, - crt: CommonRecommendationType, - isFromCandidate: Boolean, - overrideId: Option[String] - ): Future[Option[CreateGenericNotificationResponse]] = { - requestNonEmpty.incr() - val notifSvcReq = - genericNotificationRequest.copy( - sendBadgeCountUpdate = isBadgeUpdate, - overrideId = overrideId - ) - requestBadgeCount.incr() - send(target, notifSvcReq) - .map { response => - if (response.responseType.equals(CreateGenericNotificationResponseType.DecideredOff)) { - deciderTurnedOffResponse.counter(s"$crt").incr() - deciderTurnedOffResponse.counter(s"${genericNotificationRequest.genericType}").incr() - throw InvalidNTABWriteRequestException("Decider is turned off") - } else { - Some(response) - } - } - .onFailure { ex => - stats.counter(s"error_${ex.getClass.getCanonicalName}").incr() - failedWriteScope.counter(s"${crt}").incr() - log - .error( - ex, - s"NTAB failure $notifSvcReq" - ) - } - .onSuccess { - case Some(response) => - successfulWrite.incr() - val successfulWriteScopeString = if (isFromCandidate) "model/candidate" else "envelope" - successfulWriteScope.scope(successfulWriteScopeString).counter(s"$crt").incr() - if (response.responseType != CreateGenericNotificationResponseType.Success) { - gotNonSuccessResponse.incr() - log.warning(s"NTAB dropped $notifSvcReq with response $response") - } - - case _ => - gotEmptyResponse.incr() - } - } - - private def ntabWritesEnabledForCandidate(cand: PushCandidate): Future[Boolean] = { - if (!cand.target.params(enableWritesParam)) { - disabledByDeciderForCandidate.incr() - Future.False - } else { - Future - .join( - cand.target.isAnEmployee, - cand.target.isInNotificationsServiceWhitelist, - cand.target.isTeamMember - ) - .flatMap { - case (isEmployee, isInNotificationsServiceWhitelist, isTeamMember) => - cand.target.deviceInfo.flatMap { deviceInfoOpt => - deviceInfoOpt - .map { deviceInfo => - cand.target.isHeavyUserState.map { isHeavyUser => - val isAlphaTester = (isEmployee && cand.target - .params(enableForEmployeesParam)) || isInNotificationsServiceWhitelist || isTeamMember - if (cand.target.isDarkWrite) { - stats - .scope("model/candidate").counter( - s"dark_write_${cand.commonRecType}").incr() - darkWriteRequestsForCandidate.incr() - false - } else if (isAlphaTester || deviceInfo.isMRinNTabEligible - || cand.target.insertMagicrecsIntoNTabForNonPushableUsers) { - if (isHeavyUser) heavyUserForCandidateCounter.incr() - else nonHeavyUserForCandidateCounter.incr() - - val enabledForDesiredUsers = cand.target.params(enableForEveryoneParam) - if (isAlphaTester) { - sentToAlphaUserForCandidate.incr() - true - } else if (enabledForDesiredUsers) { - sentToNonBucketedUserForCandidate.incr() - true - } else { - noSendForCandidate.incr() - false - } - } else { - ineligibleUsersForCandidate.incr() - false - } - } - }.getOrElse(Future.False) - } - } - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/SendHandlerNotifier.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/SendHandlerNotifier.docx new file mode 100644 index 0000000000000000000000000000000000000000..3cc8a6f6db362ecab4c32a53b2a4eb0112f0d266 GIT binary patch literal 37749 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 - Some(NotificationScribeUtil.convertToJsonString(scribedInfo)) - } - } else Future.None - } - - /** - * - * @param response: Candidate validation response - * @param responseWithScribedInfo: boolean indicating if scribe data is expected in push response - * @return: [[PushResponse]] containing final result of send request for [[com.twitter.frigate.pushservice.thriftscala.PushRequest]] - */ - final def checkResponseAndNotify( - response: Response[PushCandidate, Result], - responseWithScribedInfo: Boolean - ): Future[PushResponse] = { - - response match { - case Response(OK, processedCandidates) => - val (validCandidates, invalidCandidates) = processedCandidates.partition(_.result == OK) - validCandidates.headOption match { - case Some(candidateResult) => - val scribeInfo = - scribeInfoForResponse(responseWithScribedInfo, candidateResult.candidate) - scribeInfo.flatMap { scribedData => - val response: Future[PushResponse] = - candidateNotifier.notify(candidateResult.candidate) - response.map(_.copy(notifScribe = scribedData)) - } - - case None => - invalidCandidates.headOption match { - case Some(candidateResult) => - filteredResponseCounter.incr() - val response = candidateResult.result match { - case Invalid(reason) => PushResponse(PushStatus.Filtered, filteredBy = reason) - case _ => PushResponse(PushStatus.Filtered, filteredBy = Some("unknown")) - } - - val scribeInfo = - scribeInfoForResponse(responseWithScribedInfo, candidateResult.candidate) - scribeInfo.map(scribeData => response.copy(notifScribe = scribeData)) - - case None => - missingResponseCounter.incr() - PushServiceUtil.FilteredPushResponseFut - } - } - - case Response(Invalid(reason), _) => - throw new IllegalStateException(s"Unexpected target filtering in SendHandler: $reason") - } - } -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/candidate_validator/CandidateValidator.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/candidate_validator/CandidateValidator.docx new file mode 100644 index 0000000000000000000000000000000000000000..46c89cf2b19f3742d144412c0305535bf51777f2 GIT binary patch literal 37687 zcmagEWmsIvwm*!!dvJGmcL)S`m!Lr#2@Z`1_u%gC9^Bo6y9EgZcmH>0=A1Kg?!E8( zW%E$A)=$>jy{me6Da%1ZVS#~x!GV>h@@QA87RDulgMp30fPrCxM)f2B_Mgq|KO3og zIG8&dFuU8?HYO@4t%{<3IeWoQVi6|wl0d~S+i{?EV2s0;tWLk-)mdUWk%xG=8|M$x zm{AUaVUEj4z4IYntrP0>ZlczckUTLk$k56shb;EaU(aJcwcy#4iX)Rt%_VS~Jro9pRflZ%UZ)xrX!?L{ zb)waMtd0U@@ICJ&P%@6Y1L$b#$qc^2q_MZhRC)*9_1)dk6~<5sKP-hB-p$P_*o|xW z4WoYH(h#XtZ4--08sXsMd2>9HAosb+3DR5UlT`F+moyTh^%w2;y1zhq+W!c>f_IPP zUv($*+)=dWvKo+QD$kfir}vUbRDj+U_wmW=5wW=ZouqKj^J4M(p2+AOdEOJ2f+3jl zKf35aEhl;p>fQzf7#JexuaT3vtuqVr?`viJ#0N+=G`}-psbQ*O`z8&^f@MR=Lxlq2 z?v(M8e9^5 zyFZz``c9CJZCb<)1&XLS^&Pi`CaEyP2IhbsUH$2dSe3Y>5xt!ZN=Z;@0{S)LXId>6 zAEsFV3_x1Gi7ULgvh|0pTll?5(`OlDKhdLD2XwVmMKd;B-U1X^N6c#p*@LO*ve?!P zoNte9%AfSgFPIMlC6v?*-6^kOCfYIjc`X|Ri)UJP-|sU~QcP%hPFlEZ1giKtOcDQL ztxZ1DZH!s+fg738<39UmfkM9^s#$?<^BGWq&_M+<1DGm10UVrJOaV^jzi;x)_%X#k zRy3(QZ>c#2&9EypI4N0r@T2e#GFbjgt+$+93btce+!LF-1$MeQ46ekR0z+30!s|SZ z&5)+S@xde^acBN!;fOleud60FYfo8H^n8_xLA__)kF%H5mi(rp-4QDINC-7qkh1A) z2J#D`{1p9lT%2=XCdo2eREu&C#nsRimcM9<#?yYIKqlS8qWkIZPaKv&5nqp9+FV2o zmVsW93m%r#|51L@5NdX*96r!#+ZM_dze-nW=Ws)h4S%%>dG&M6w@1@UHeVo-E^^SX z_XEbN`x)l6H8AXiC$10BNT}c(qAIDXZY`SZTj3|pPL7*Xu8;=hNX;QgC`s>fXHH5g zL<4f+*7RIA0R4rvLvwRGYfR2mej=aES~zMjUz)~vX_7wzGuCrahTMcKL*O&N-d$f< zv88{N#VQudfRgV|ql3dAZBZYyUu8vWe`0_#_#AEpE2e@MAFv=cBe9NO6Q9vMH%k5? z4yu)H2k7$cj!LGgKLL zDYoVSx`Ct7)M({A3={n4R4wJIQ7`g(lkp2;SO;e%hN;ghD54t;UPWz+4&Kwx=Au%+ zTx;+9&l8m!mo`#VSe3%dAz!LLm3x#-330vOy*biJN<>DHhWPlx0X61PZbiEsDvhf^ zO2B5^aX$VD${Nw@^G%)EPxKs1J3U;%Sqjl(Vn&C{S)}`Zgde!31zV!P=^JT>^2}4( zRWRJ}hU0otwYpNR(95Wk*e-3cp&ULg$QKFP$dT_9iPj$hJ=f^j+Wu>fu`Rdtr2?@i za&tnK-We*5G})QWl?zY3 zPy}*F>b%#5kow)?speR2ZKxDEu_wJnbwCII^U2;gDrG9QIvx~O(5)ri&t?--)vncf z$|Cp$!`{$%-7kX_>_10Y&4OGlRiW3{Hx#GV3qN3#an%qQJBGP1&?FDHsmQU?*}Hjl z9Gs6!%9^6b$(Q;~DwjbKxT~X&D<@bzVtp!FszDq~ZEb2m`M{q1vY-wxQhd?S|MB1+ zth-CzolSd#lN&Pa4Vz=mK-5C*byDMW%LRK6OdElyzTx|7jB4Oy3#n6nH`hnYpOdei z(rKo?K5qKyF)-tmslv`VGoBs|WK4 z9WH{=uZj(=kw;Z0d~inN-OX9=^ou{=JNu*p)l`oq`K?ej)I1*ElVL+8x?H4y7f)I( z=W%RkyD%)`WEH4NfYN45`j^y&%7kG*CjcCiaoK#(s&Veo{>f-16DXz7QP z(jTy|0rH6fYg*x5bPHz=;(<}l>%4vFF93ui^Aw&5Piwrp=weq#A@y@E1dhN_uq&lF zB(x6ptqpu8J^RBe$eu>NrN!7oQuBZw+t8d!i6BZ!m;s1z(UA=FSh!(QgDC>xG&zbA z)Fd>r2tgm;<-Lu)fU+KClTTYe{0pFJA~NRenRF}XJw8L!$bp6OzJAVJHtYRvI@t4c zBdQqen3Tc+USPbqVXyKrBEL419i^V{7~$T>IJd?08S*+NDaRfSPPY^t@snV%|89s@ zG^8?ga9djahrO6-y@)-WX;$2t5AKiNepwDzz3-j5mWN#Pvy^d;gz;^8MoZZvV>Vdr zCJ(M&9=3LeU>@8w*`Z@}IX2hGTW%}@H6)`Z5P~~9DoPzE8$%ECy9$0_MSRIe9360R z;l}z36W@XBWV^A`AarXT%1?~sRUO?@bb{8`7})7eXW3RMT7L@gWw<5HiW-$DouI?P zT++skCDBn93k@zYShVUpjZC7{iGj~sQP>X=pI+lh5vGr~JSYYGPfs0Mm8(0FU_2?Dkq171=((K%j2;sNUSdUnsOkzJj2^9{dVh<-Btu^z|mr zW15F+9h*u`BH8xBSHlfi%Wau&=;3KDDud3%^<4^ zLH}CDkLD1G>0UR#pjaJG`4eq|m~2r}z;>i=TyLS8w{fg-@*0S-#A z{yLOqFU1Wcn)Ag-#YJ|`T3s>mA^*kW8q|q8rKMdk!lheg(oVLlQ1N5D@Ehi&RZy!> zrA$l}oC`tvzLG?4gS`(LCYhzlUav&1`X}x33g8=3)lYcViACv6jLOU-U>T=%zQgMS z78B%Y8LK`^DPS38GY|pwOi2r0byB%UyHLkr1#sgz6c{LS7p*5XtGqn8A$DdAQ09y_ zj<;D~6-$KKeU#Xd!9m+ zi@h|9580-pDLUV8f4Pc+cik^cL-^XI1etC&(C zE8ds0SA^c+1gs+ah}Dr!)fP4c z@E96C1n@>epkmDiE1P2oTB0T&ch}2kh}l$YkaCa;TiYv^V)FytaIQZ~Y;TfT} zm8!oEfwD2zUbGdvDyra6S}p!d9gi-Aj^s>y%EyrGtk0fp!S5z)c&)EzzV>@6!hiOHg%H^l zjw~kJ;Um(vQ5n;Ee=O8{o`T^|N@IuPyi%gMZ@ebQyK+5K4aN5m_?_jSwT>#s5r|*` z12fcs21ET8=ABSi+3gb=+%)`d&Z%_ zG5c$J8uwGoiIFcAnJ9^ds)pu=viLfI-Ygttx;?GT1a8vyu%=PmHCf9kG#nw7NrV*hfQF0wcTczuX@dw5zri!K&vKHfFB ze^|e0OP+6gI+*==(-so4d*ty_C-`dj_H84W1-L?Dm{fc|)prn*yth5JdfZ(8GIo5~ z;IU@QQ!GMK(bL_b^o1`pvhMBLs$SRYX?}Ig(=A-&%|RQ`hkn<#d$oV#{_doF_><9H zNbzDHuu+(}&l0$tHRPpZ@4EQ$i{i(e-q=0 z56H0Y%R#0c*(cHIPv?m@m+omqJY&}pKqn^87d}sltAz4hIv0;lkCinMN%0upV3ya; zwa&KYim}82Heb88HJ?s>y|d1j8;M5?)nwv6$IW#X)J4|5QjlYDjgJ z$V-ipkB*2BZ!k-HTa0-yuJ6n1L7#;$+{^X)%jY!x=NjO0`=+2!rQ6wQNHWi97LU^L zn~&icP^c=~e(?>nzcVSaWu@yx@nAIuuyg<8tyZ^7I*Xw5o1QfH1Kndcx91%j70v7Y z>b@(_0U}@N#lTxzC?WN&iL8eqOFmu~fhI!Q4qRQz?g!+L<*3^wsBEevy&5DY6~g_J zKB08pp|e02*Usyq6RQCl1Vi0VBQu*Vm57yx0yBFSXK7kkmjL;rAm}}` zHJd(FSf)DGCeO)>2YZgr6*vVYk1^=ytxt;|uhi+R`%^9N1K-*Wsurf6PG%n+?i^o+ zWN)uTPR@igRHPdX=I74)_OGsfp7uFsa54n95*BJjz4h(8ml0=N(P{)DE>G{>Q~92g zEGnfpCr4OAO^4brgx8cw@rt6yflCs9EMV{KerfBzpdg4?d($@e_J7JQi3DiHuw+`b z$2NxtFKY9<;y#_cp8vFC$RHm4j_!?3b_@4i%$vxFRyMMbf;U0<%%WUlcun$Ioh;^q zjEYPNhU!<2@*u`NECw<;ro|6%@rvKNDttEyS?)DQ+lR0gD%#o7^TAbYFS46oO7T;4 z!x>+n)~z}Os?Pcgmcwhe zrXz#1+`#HKg1aj6!wT|H6Gd2Qrz1tQ+o;IQmw{8IV894)h;Q~I&G=y;5EF-1kkwuu zyhQ~7*Wn$}6GcDei|^$9I?(@9nZZyzTj@j3S(| zJzu%_db^#qBv7IjZa9b5EZi`utrAg=ev8yvO2BEeuA`V}eeGF~8&tWaSMPI5T-!K0 zabM}`k50PF`TG5mnz!q-o7$&Ilo6cJKNT?xt4V>*#qlNT8c;b(zl-D%XpyaBo@vTWcf+h>t{V|#1iFB7JM@#F|;U)=9bOsJa){C7LFIQ z#UD^X&rdi7U+>|^k=@7HS2XMH)cy@em-KtPr)ISu%p%X79S9!; z8A_u@G3Rxd=b8s@C=q897{QfH%qkx<7?v#!_VgtvGREMk`&x&btJ)b_k+hu9^+)!< z#Yg@8(3D$c=F*plmD#_|9~StNGTJX;O(wlb*!1{_BmK&E^*jfCF;F^%nDgihEZ?KM z@}L~!5X$7HG~8CMqu&+}^CCcBzRR&~n}@>ZxrlO+^GwRL3O9J)d)BdGtS3#30f+RDlONBcpj+jouW}6|pF^ZOdW$ zc*C<1edNT2)v+c#v19x<`vJl+k8ebMnv)*@J4_6PNK?P=3j&vong6!Wi{f_H8nXOeDd#cJsz03A+Y|;U*rY=>xJY*}J8qG=GBfB)PO% zX0GBWGsQNy{UGsQS4UaxLX%o-H7oKws$P7fp?*7Iu*ndb?#6 zl?>-7#7ex6H5`(*OZ>P9VHVKzM`_a#*)@MWL|97?KN4*!T+1Wi z>!lLCp%-?#?2Hj`EtXW%V`EjC3;5-1^zX%#xT7--kf$bT%dOv5-ski>B=2gT(f;aIwSQd)+aUQ3+ot)Ua;@0)pS&(R;N z;*3YWNLV*zkf*>%vb{(|?+v9R_DuJc&lzH04jUk=lz!`B-go76$H!lEB&?$sBM>D$ zr9ECLi+GElz23BD%ugGP6eZ}zme4x%Cb-Vyh~*@$C?957k3%93Y679b3#-&Jhvo= z9tJ$~`_jJM&S5GCuSU}I&cv1EEgYh04z$>7F!o+>w>6v0uq_PS%v-qhK(0y|Ym9k& zdRQw~=o{J#>h{m6%B50Q;wY}^&wu~?Beaz2i|L`~gJUcIuhg6J^X-ut^=2umzw-_eiq|9$g z_g!3crgljy4;)*1QY95#nF_OvT7|OSR)_b+Wf`JBRPu_~?UW#DR`}W^6`ZW8uC~fF zIky?N74a;~>N@FLkFdp44G}d{zDo1RawvY7;1y%vEkLxewX9Dq5GpRb%^+WPUV-+q zZrP4dh{YN4xbrBlia%D4@7LDmG+9w{IoPVKplI3MKf=?&Lx|}nGesRntAqW~WPA2` ziKB^yDtV7QvZsm>j7ot4@lks*y5Iq}tuyEOld8?(J4y_EX<0c{*H$vGNk-{qGN!7E zN8`oD;%>2ZweF228wI?ZBvHthX{0J0U!a9*aWzJpNP*!n$68f`Bd+7YiJA zz~UNI{8?>9+WRlV8f_!S@r+j`X;)&A^k=5}LfD=X3^e+sOkioPvz5M_L)rEK<@p5U znOU~+msPYJHqLsyNEnp&9LYDSt>cxan%+Lx0!|DJ^4J9>WicJguqvf0N{+Whed^7Q z=3Fbo)@G&9?R%G-5psQ(?Fio|#&!6I?cXPplHD}0&~cNb7CDBA@|Cbt!%rgv36zBAnA0KVrHd?Ug`7vAQz8E9_VA=spX z;bLR8FM51%c$qGq*mg&V@|yZQfcSIr_B+HqRXOL^wWVcf&5=Zn%BGjS&aD=c`!@0?dxXJL?2`DGKm zF?c#xhx-f4%niOn;o$1w)2NrS14K1p(sX*XbGsi;&cp>o9b8A8IebSdq@w=jowU4z ziDlI-PRB=j8T1b9sU?d%o?HLbwESk3E%_l1SBP(kKluGNs38|qb=qN}Y0gJK!gu`S z9YS=6Tp?s3jhH6T0b#Rk^&_^2iF^#eq;YPnK19|K3qQ1@{IVfUoyX(F>saIr!tp;q z$>FgS)??J)2n@h<->V7Q_?)o|su93Ny^&EIV5TDu*!RO6%Z6Tt)*s-jUpz!s1HnvS zO8~0E4kwz|2mI8$+V%=ja+-|=U5FHmT(;rcowUUP{F4_D8-CnFh{NR9(n(a;7D&AC zf}0nY1oT(V7TLc`R4_wuur(w@vbIYiWvsggzj*KC^7*}ns=(8Y9gOPARtSD1C(5%E zB~_^JWg1Yws?%He*JiK$NDfu%XS$3QCvF8mVzR=vgB87coy9SU&JV~8r*EztLY`3*s9}e?3)j_5z}qUNW;ga!3wx408ly( zl8n0beY!w#hcI9r&qe4DO z)Z{YUoA{Gh+u{IEkB+GCCAb?)p~}_Pz8D?p1pe(=y3{V{H~ST7b`LX_b8_G;Sm!~W zRwy%lg-22yW&)I}r8$O%N+p~}!8}3abLA_GQfEcVH7-JP)@6YuJeKpeH_}t2ESPBJwbIl5E0eciB~|%;HmGoQkN=-6IAR<6ueD7=%?B_ub}8*!%og zwY`=(wK}_W**PuTz{5L!`)`=`kGdR0lOq)JIrb}$sZziN1rdqLd5vqmsExc0Kw`Mt z8~~Y}z9f`Ju*xh_)mNMTV+!H=nn@P(cBST6N&O9V;&sU~Yp{eXaJrFKdO!%FlRD5} z*V@KhAdEcH(#!wM==~%ya%^XrRcnlQzD8Mb?bN*1BSrRX|G^P0#O2CVafILb?Ugzd z<5I@T6hb5dJp@7w!@I&c=In4{>i0a&a3yl?rZ*T=4DU3uW{gW9Oqm7FPNaI9iaU zuit-)sb915eQT8xHR#o=JW@I6VN{1wXM{MyL&ZW-hnhQoePVlOh2y<~13uy!-;_W% z+|qd#RYhTm8ZB=$-vB4mIYU1`yL52G01-cBwd3r91?~}oSp;&`2VV-OUBgGDNckVO zkKzBt#^>_?$woWu?$2{Uvlv%@@Ts`kS{I6P^HbuH)i388Z19l-&Wl$5aKHBYv{@<9 zdz}eT5$(Z?>+#Fq2j4(p5ox*33THAYNTCMir*C2^C!A~A259cqc7O;^;7dLVD)TC% zEB8H}4Ve|_oLlKZQLf6aC>D{LKGc)0hMjObJeCzniC#u&mSznKYndvEUh)ZfS4ETO zFepQ{69VO>M1#mli42(jZ4QB`Q9-IZ8dqpM%HAGbIr&_(+!HRC1{-{p?*FVN?J!i< znS0>z@XvtA^w$5Sd92}nB30Sk02Y$0WTkB)oERA4F7M>_DhK9s^E0l*H+!m0vFr3^ z*V|9$&Il>6TPxohkd#XebP)!8qYuI39UL4XkScnNMA?FUmaT?FCS`r z5kJoPbRbgE5)(wdH*}$bS@xK0cfqbF2;Mm)}SbTNr*S|5a;4+WmF|i3K&)$yjnKy5vstj+3}O{ zmnTBw^BaLAhw0b+0gZ0-6Tv8V*p`OsVz@Nz#MSlJ#N)tldC|6MwgQ?3FbulJ{!EhJK7-`N0PCKf$|VFOro+iQl5 z)ESEY+$&fRaS*BEq)uRJaFR%&1H*{qIJ4L|5^>9lW(&{|POu#2F~5#DBFNtJbkBqh z9D41TsxeAebHFy5u?^&(xii85!H8>9#JMwI5|%U6W*w)C&_c1M{S(0WVlipKO+*=` z4bf^-s%r4U$6d+mnbBeebjZE-W&Wm-qC8DkrD!o%_P6h4q2IoHLbT-_eNN2S&Iw() z3IFshH3EVJUD#@T*uDpZ4tx$CP&RAAOl>@g7-<@uHN^SYQD&V~Zu(+!r*h_b2@76zrs4y$5yH3Ser<>yY^i~?y*ELEW zu>*GG#`=ji*+Dkdvod%Q*QM*$68`i~JazZsiqeu!`U+=iiRgtU+kpl-Ei48X{RCjz zIrR)cR#T=61AN-$`rT)gyw#V}1$2E?{)-}xb8$sSqv~+ei7lv;73$;TwFhZBtujWYcN6g}naZdpWi#qmNdtL{f#0ATk4`Y<2H$Yuh54N zo9kVSZ*3y&*}*D!vic!tR<3J|vn-DzjfXb}hf(87Rnf(Bdk_0o`H>bjbu6sK#mk0V zo`f)ypMTY!_Vvo1ev^vggRQ$U1U=X%m|$iAC||P9SbZv+>i1V#R7m$rtiSpW5+4~{ z!Ut^y#OfEX|HxIXbp6<4z{d!V-sc}08{CF0wGx>r+=mW%6AdFPxQghVtusG|{55Bz z44-lPR&}x$!=1uBfU2d2axsz(GXh7jpCN=w+k}@9z0RTeqilNZtfjU|&c=)}Xe(YX z%f-&dg{v-0S|t!Y1&(Xwn~7ED*=q)}dp$i=O1RjaWB)u=9Qn(LA8L z(z<5wNWVK%tUvsXc+H#_85-3w7!~HyIHSmMW1|Ekfkkvr%_L@i2+Y- z%1xo*uCLqNqQy8B7M=$siutY5%+@d!Wl}5|g%-K^6~S}1#brOO9OXbl2)&$AS)eH-aCKcwmnx=Fzq^y1<;=5! zXyVYgikjv8Sz4CQ4B%I==>TM&a#p%RqboqpG+b`@CwZQU=2;QtSV2s5{W$1s;t%&1 zRqFC$z?Ymgn*a!YE=wqq9Tb}3jQW)3cOpOUz00ZKS$0%1MxZ#ma<*H_r%-MrCOIq0 zS=pXkR=6RT_(>P`Q<^A;WOu+@5pzZi}>4Qhu#05NnQn;uBokZ=fIOJ-;<2%bwV1A%U604zA@vNYjrGJnrm z%U+mZKawfSKS5lS|8eXx=8?%r&h;dUm2G$N+ z?kw1>mgL4T9A$t8GK)i7jKu{+`xEVUun9}Ou^@>v_lVwj4Xlei;&@fzxZa zKy4`6p~2POeKPcQ0P!3sAA}pOa33&YJDCfQ!tqP2@)b-~)Xo~*iPV4;w9Rk_XO_WW z8Ad#UH&i}GnEBWac7@lAD9@4(dqrm1NICW&aZzHw#o+~=i(l9bkC<%n{i-2h>mzOe zf|El3zQERjE-+0%a7G!|mw<+x&MoM|lM$jpMAjIx_HIKg)=O#OCq0&=A6@GH&v za|pK(PaKwRw-QW4+EcgmNmx_Gr8ZFUPRc;VJAs28_P1?;`e*U%vi1KeUQLH>XUfD< z0_$H25&97KjtRHN2xum{A+3$oXmU#3Y2iFe2{9lv=wYF^;z!xUNF^QAW&2f5ynXy| zqX2E{AHZwg^||GP4)G8w78W-lAO+p^2ZWCF4$BMK*UW|^&wJhA0ibYLJFTBzO`_JY z>*UA^heYz|)|0r^EV<1r=k&tmK|c<|JE+%~&Q+e>5}bnl%$Rm{lk;g4xM)K;7obT& zI#}~*68%EMN?RhNbW;-x6r9iR#Xk>?W>|GBwqDC}=)h^3Z0@;j??zZcybL`<-=yd) zjzSMT%Uv2sf1;QSCtt@ida~o1ZF*mJ(u|?=yLx>e`TqGmhp@8tPH2xciIV0_EH(o3uZGzYu7S>B1gT!R*5x zT&CgrpOt@M+@PH=6*61s0^%MTH;)uEA4>DE&Rfo4ilgcO*p~UqAEiQYb6r(F9i`C_W0~odKV#<9>uokNQ zMJWojD~Z|&o~xH`9HnEs(<_^f7tUT`5vkuqom17WmFbhuqXgc1N64L^8u&dx@0K1r zkk19Pi};I)ArF;@1YhG;6JswZ>VMW>KHb*Xy$yP3oMvo~I(vTZ-u~LH^WUwS%J%%F zipx>iJp8;OA|v`&{TyIR4UUW0yDndR&h30=Ekd(Y8t81+`a7H#pjBvU{l%_jZ9l;U zV-UPc$}t;EQcxu~y$e!obl~l!hW*05cP=xh8xGaqAKOeQVUiVsk8U2|FNFdurU1)S zJO24tW-mEQ)CzQA%G21ao{*Azmf@ILBwlP2|lo+Mr5I%Fkv^;x3f=c)Un)=SMdsuZMhvR3l$9-5K><6@> z>$MTgWxO2r?9L6q=+{MpgJSXQ(qQ3h!jfuSUO zAxFE`&|Q}jE4DWhDiadL@f7>PFQKo?wij!#Q`L}1z7?Pv;>gq=d+7X3aOW# zyU*(99F1EcS&%n35cK!C_~{71B1Mr=qLgd?{&??l7w*lD0Fttpa_ndN+tae_30Y{7 z59sRW$DTdaQJAbQJx{*{Kci9KtnoR61PA;_a6on`w8)==dwvT(|1G$R;Mm2L?LqU{ zw$lq*M4d#7;XaXM#I~GdME);e_nzv+z?gplD}VcJ7L7YG2!{Q9eFIc0YTw`$!G4x! zy3aij_37|K0G13Efrw^f$_T7n&4m5|9Mz8iOiq|7-Fgo#f~*FG{ft-b_R{WUaNhYK zrUWe#$!)Q$R#?v_3N7N(vH6v*nr9L;s)h(Wy zAS&5f6x%%V1o;`7M*vo7_e>QAkbtBqfJ$Q8zG2+Ma_${+g$#4t;!J=46Z=~ITq0#I z@M6wo>3OIyAbap%&HP_$VuAXL5$1G`p{bbZU-SbkVk=oi zizPJ-5b%^xOZ4*Yt{YLO#)`S%^2}%fLLa*qD67O8IfwK&2(6C7MjQG$2ZpyENd%)<*7*C4?_Ky_YLMdU+nnDL-V2t%g1lIXK%Hf zKd?g$!AHBHM+O{eIUk741mIyMg`R0FFw(0gl4{0C2c-3)qDk zYJ(d(=_Za|+H~iy$WU}>w+M`cu;kAQBM91Rxwt(YXS9UM(A;-j0u%U>` zcti)nHR{wq=?^&nqAxbJ6x@Oancv@T0klPcx9tyb{&zYZxoE!YEc2QCkpJCjM)pG$m86L*eOJYe)QuS|PVwQlZ;M4t5#+`^qgbxgyW=l)?#R z6?|Xkv|ReA7v=K^MJKM!C}1iUna{~uiwiGTRA*_wZQJ@#y|8B!V!07ZP&eD^1Ou)D zSfuj9c`l4+u|o0pZx)&7(~+LXkordnJ$ok7)l58tka)?C_JKc}>~dczkqgBrmD)`( z-{2Gjna`g?Fd(REFL@ua+f_sjteT@8pch-A!P{dCs<~uTN%hyFlRS0`H6(p`@vZi#SlPAQ+6#094e{@)h~=NY;9_=j%*stNow}?A6oRQ zlB2kcjdx7>bs(eSCTJppS)8g*oa>g|iQPNTD=`=nEX@Z7iv%@c&Hx`O#-TK+LF;AW zNS<m{yf*oGau>UBePxz9vRJUkqDh zqYm5V%T~yfckF*nPsdmlX91Ak_oGKR{*4(b^u=LWg#IUG0sy$fh8{S_ZF$%dyRt%Ou0fHbJH zrJf?t0sB%Zb=!{0O>4P~~Zq zwBNOhan`b%X(k;%CZ+o6(=v>?xK1MRn-m&0d?fR#DSJ<)S;WS0)zOW-l%U*%ZF!)b zD*6k9;h2`8e(=ejOnQFeh{i2|;y|g>yd4RErIjE5U)TCn%VJ|gy8*y6~ z)P-S!2iv-_ZyF}%mlYLDq!~k_TRy#EiDdQc;ELo^qflGqfA1)Sh=ccSQ0fazC8)AZ zAH*su1S)J#qu0O*JlUSmF#pErsiOl4L#yY{_JdoD83 zndhsRV6ef#Vw;NOr2d}P&^PL!Am}(9N%YXc9EqC)+w=j_N9=KR?$;h}cEprkk{N== zF?+0V_%Z^#;wh&fHx}yHY1G(h@AtX^@KBg=)M)atO(m9I;KdYv_M$!MPx;2Qz;YMy z;P|REs}e9ksjPA?u5xZLcNi2l96g#kX$h%sw+&hV^sN>~h5kIXIvgY5bYcL|s92)> z{fG$}d&_47j{X{wo^!LU9H2}ViRVjRdsgpS65E!Gq)uzAKwToLEQVXM_1MXSF{xoE z4(*GBB*YDAx?!EEoLf+=icjB7K##6|2&?|7Q&w>^r*|ovnJ|pntx+O)4cRHx!Y$qP|&al872r+1boB-@Nmu>y|Bi-QCGuWp4$_04r53bq8xe(sRd}6_d zqQN*#n0LtZOOyTSwZ}!{I5huOfr$F2is0@mBE@nQ%_?h`%76nUK4ksW=5Q43SC=Kh z3o`L%daQR#K}e%%-{%&E_Q+Vu(qkpf&(Ppvzbe@8FktMG^t8d)iYKS<>_JFP(NuMj zg`DT_&y9G^L9tKl(PXW7sU2RGe2OBW4m{MFego^kn(hYMi4xBhy|EZRG&o8pgC{`a zF2N)yvBR}SB^n1ko~G0&>n{W;cY6(&s1-rq zQKbr$>u}klu(rI&;OWp*OEBq5PH?PI>F)C%%!F||&lE|6AG38R3RpqEja&4Q?=NWN z$B9FtM!4C2W+j+fLafjM0jd54g#8;x@83Xnzk%j_$2)*Bxv!QBaCDLDrREWWwz#o> zAPAO&o-K|nwwQFF_kQH6w9D|R(g^37u|ZgHbaUZYUvCi_L$HoS6m>-k{_ue%?ax6} z@0QQ%rH>bdh3~H2P625nLS!%%xP~1kJ|aELspKa&0F zz!;Tg^6N_@o-;@Ij0~s}1A4{EPhlON#LN|;SRZc1isB%=Nhryn#SvV{p&K*BPe6Gw z>$4ySZ{zr6(3`Hf>_p6w(g?_cj643xF4^Rz2mZ-C1r8637bI_}|2(&E>=7`_#{~xF zTnz(;|Ic&#T2`MwNm*E!n|}WD2)~a(a=vuk$3Z3Y?*j5hbA(YVjSKn86kIpBb*7Zv6 zIu9U5bI_74? zvpVE9Y0S&}+_iYJ|FLzIYH&Z|<}70UrL;8}*~o?^BIN4L1tw7T^3K}FYWFspyL!yU z>2lWMscwnJ*ItCCYYFJ#^}=m+sw^^kZb|;^?hqH@O87^T^;i&=z3so z^*;mpdI%e}mwvl-&o6%CdovkxP8iA#N)KsH-t+Wr>2O=!b9U-Wzd5zK@jT&KUWiXn zI*_I(;k~LcG78CB$q88dU-o(yp1O`~(} zlX#qFdjQltUhM+#0IC-kG_5ONT3(&37<6DHSNNk;Zf9Jrd9JptF4E+4l0(jb&+Qww zxFp#L0v|k|nWcWb_`WT!8`KF3*%SBf6%VXl0h5XO2v=Y0gop%)`AG!dT%H9sD(>3a zsyCTjQOoD6M_#BZyDBgwM8+4|=6#$jT9-~N+vdr=*!hX%rbG&H*?k{sRxMFr%ZKJ) z+A?m|jYc%OSh6-Z1tup-AF8f@T$#K)cssSe-foiA-KFwfv#~wA0&8Dx`+lwT-kq_p zJ3LY>s)YG#X>NAlJlfxVbJr%aH@mRvl3!>tyH_ipD#zlSToQS^sBZo|jstj7cx5)M zcZ=gmC8k3<+HSoYA-~;j!KK1w6nSazxUchmu2E8K?-J2gLV0}}GHNQH;MQ5&+*B$q z4kSrpDJRj4i5a_jdfI;Iy_r37e0a-BI`%zFido!!BOuv-D;)@#SoQSv&XI!^IwQ^( zAx^6PnU|qoXIRkp?EF}Ma81(|St~&RC_iQ*LdB9NL3w?vU*B%cAC(tk!u?t0!&A}7 zP1Uf^N`MO(qOu;Mu(p((i&mPOOex8PR}oMfaJ@|rp-`>2Yf;O}UKfo%v*dx>eOgA& zxd*xil5}RTcL#%p4!1x?ol6JDT#&c^y? zbNP_2SAP6U^|tIV8@fo!;oQFTsDszNi<;zup8cUuXz5T_{E?%gv5jK zkqWZM{73P;y%8YyM{WzF19FuS#5z9Wo3?P(hT){pKu?@^a&NR6U`VYt0R>^IFY;@Y zgJ4*-2_=zt7R@^bf^GNsusZbSjnFlEZ007T`~4kl`=%+Lsq~ZLX3J9zb4H#67T0@X zY5NtUNQX)$(^kH0y`VD-RMaquQAqRodF}46M|F(G;TAqPtTOe=hazZDCj2aZ%<9jiwR~S;@|EaJB+H_#sq{Dn4!HUP6{9bm1+tR zv?-SKpexXA>mU}e-1LBQlB-pIVgWB&-S|DyjK)z8@AtQS)CJf>=*oyv`>;-;$3Mop zzPBF?!Kjhml84u(ScBlLK(_~C8xSF9IQu07y()Zsue-HSZ=Njn-=s7*|4Nw>cDD1a26dR{<*+-PytIO!8 z;61WEJ?iIb*@Sj5p!b|FlL%Au*bU^+F%y>N)D*pO(hl;qas7kS(4DNGUH~DRS9#1- z`NVc%i3k8G(q_~6?cn(|WN$BXwD%4(l0a6(eGIta%Io@g%HQh!c3|`U$mW)-a%h(a zvDj@475DYt{Q>U8$?NCKT4pDfwpUP{``d0= zX=!bzkKX%SYwj_}+H(z)o#{v1mddx-NRz7fc82b~$Gg~XXX7W!FO$!Q>kqG%_0u{| z_+j_K%I()&Su@@!>93Eb?cQ(P?Y&=vjRmS#CUu{79|y-{C*?D37rt#D`pqnUO-g0I zc6dCt&Giv|Ui>ke%Gy|y!O{koAsFyp(C5o3HE z>v4TcxbU|7N>?KgQ3?$~_?`C>{l^c?P`Q0it}U!ZZtRmN6aL(6G=K?zPPU2H#gYh| zfm=oYr3FMIDa7&Xi#f=cd@i(efcF}4oY$=hR*)$Xqkoe=qGc||f*pI2Zgia6ZwSj$ z`?wPSQgsA*c~ZVF#O``hmgYnk-x1bTuaQ`H`6@#0B}ua+zJ)fL^Jh8Nx$trFM=au9 zy5lW^E!RR-)S{I6?D+Gr5SDFPTUQbhs0X@Np$r}L1g`x+4(k?rsfF49wh*lj^U)!F zFA6yXlcPfFUVze{*hA`W!ym9593r$QDsF)_C+wkxa8xc%CI1`oDEwJrr31@a>`er$ zW>|y;5#2vsIi`HF^eGfxdFojqA-V#tOT_U;O<o{wnu){eYf4m>$z<+$0)woaZtoAC83^=!Y-dcJiYqxWSaX# zZM`~Y_I?Jl8S<6l)45@jJhwvkBw;JJ0_#Ox-~QcAi;RP77z(BY6Xu-BspWv z828@KtbXP3Jgf=VfFGijnN)d zQ69R}cU4112;tXsp4I6T;GQR*-gT>SvOTz0#h?AUSu^NOX-sl*DiD=A?awf!xV}B= zC>?%r)*5@f`3f#eewCb1eXJr{w8!9#FOY-S)?stmv|>tbeUd*ZnlfF|X~UJ)v|`@B zaev=ncjaCzcwH7`TyvjS-DW9`52p+Ys=PRgv&*w)3sv@hm8 z79OnL)KDS0UCxeB8#|gNTul}pL);hJJ1dUgo^cM$dK5}Iie}7so2}0Ed6t{T8JEhT zCw2sD-;HnUwvr;Z8PCp8VfXKp@dFg)^sg}qzqY%waXY*_e)m6P?XhzkZxNWWQBGDz z3|)6{ek?w)8SA)H8pU_-N(D5C=y{Z1M7tAC%D5~0XtzIQOR8{AlRvfS;zQPpG+lX; z)gtNYfPJfdR)=x&P+<}J))vGC;+QRw;JJygD@OqTq~%m~KYDq0K>hxh_M1FHWU%>D zTw#JGjR5lI?SB8Bz*8toN1yLi^qpefptqxf^-DMJR@S7#z~$M!S3AM8SG(RLSR(i2 z3-VCLDhvPdI}=G`7!i;7<0)2rq45%u3tPs4pu^_di{sDn(XAh&ZMca)g^@oWc*;hN zGc!X`03YT+3=<~xg^1$NFYN&wImFZyS#+d{09)C~ME18oyjLP#9sc$6e%y0LbV}%= z6iI33ZNrZ;C```=Hyu-zdZcb_jVdRWB=va1XNh5v;n;}U9k9#R%!b-q`4ba$*bvs- zXr;1nDsueVHQZDc~WJdD#2gG5>eHCCGAdOcYZH{8j)IMLW)LHxGVQKN# z88xqI94mF~o9vcIaEyps!h!xoW%^#iID+JPz4WNRQ(_QqHrhotvq<9awo4Dq?l_Ff zuDR;cK@5|ZaRVpM&W4!t@(BpBCiS0pa+uS@cDAx+qs0vI^w=W z5Y}F5uXCS`mrolp3n}>c35nBS8E!SR`fImm4|grX9AsD0wxA&;eeYpwf(&9Gjoa1j zE~Cd~_M94I-wEUm^lNiy?;uzj-`p2ax*>&~w)t3CaIE*1&Fddh3OdkDDSi$*EIABx zH+vrKYZ&d`cPFLG_d>f;AG&e)gowxMnx2@KcH6g03Vx~<9$EP0GhpJ zot#-$gWdjKB8Zx{OMgjCaj^eO>d%tZE}p1CDK^79E5@&A*U`m;g1g&M5Sy7c9E*Ss z&TEH#Iq)Yt2UmsPC)@7*HvB*T|Jec9BJXp*ZaT5Iabh5W`+FUHYU5moQ_Oa;Ct1x! zk}lv}l`HVQmgCEL(Hm#bq$8ni{N&t%^b_hDf!m~6QKp`^E=p^l8x(3|glIEU@BW-C zs;e%ot`ayB+rW`fx}KJ=-0GPq<<3(7Y20AB5+(J^t~IqkH@2Oxv8%s5$G(&eRqE$5 zdq*uRD)U51E#1FOJaN&49Mld$8{fmQ2a5vpKv7v6-#0t7q4h)#RS5 zLR+-?E6vDuA;fm##?&MJ-{jUP-P}Q7v_XikJa0{^0JVj(>InLDUYZBvMZ=Ui#N`#H zlmsk>gOt__l(f6_x!s@jG(YR5d#707bLZjCu*h|v4)8WE@DAcJxga)O6@y~YgNrO{ zSIYKfKdw+U*r$3~-x~neyJ#pkE2qxJk@5l}EcTOtFJw<4tt&;XYJJ-L*wkIk6kY7k zMXNkYTAW#InV$2(t!BloA>0P1corMl;7nRjAr-A^>GFIR)rw@FLt9h2t8P_x_7`X4 zME4t%kvt~$s@cz~(Qi^_tKsacVeRGkLtA6uw-8Q1O7&d!sx{B54H2<;puaz@fJCME z=bu-rmPpKcTBEhk?^T;JTJt%#|9W60W9+zG68Y}xZY}3&4ct4WJUpOnJ)oT^FI7Xj z=RQb1U5=^iZms5NodzB< zU+r-+LS-y-WZI)SFWwkzy?)kdy=5S7|Nfmi?8~u1Xa(Zn{}lYc{zUSLign( zNpI}+XwWW~8?TB$eVEvC)9_r$=QMvEwm>ryU4lCQDN#i`pZ&phzhDCLxLQ1UIOa^W z;&$zJZ0+SrTj=zW7%ldUfap4CK=NMb<%bcqwjiC?)LKDSpKhm0iBOIaXdONXZXd+I_g5Eps+4kq-6*ZF*&10srp=hPe z8UPdz=A9m3h^8zeKZ5wsH+a}9-|k%=%9fj}b{Lm?T{3rQ#lNkTJyKI?#oVIZK2$k6_UOj4)& zxvsQA*D|axtHDhRa>T8Ifkbp}A5DB&Z^|GD2AKo|zs`~VOeGAYZw?-w`H?L`gwq7m zWt{K|5cc08kwO0*@?y;#7}E9fuaG=XAxrh<{|cD}g-jwC)`uw9m!mXMObq61MQx3a zwL$$DjVu(YoW>|>FpD+xoxHUtL5>9LRS7eRy}U{KcbVI5|%wrJI^GE{L$kXiGc*B5A*?rLpeP+Uyl?t@`2(+AS} z>Hl~@=VLMl>b05x2!;WHpYB6emLKHG5>1S(uJSxTigBY91%a^2=Z<#5q7~dW3j-l) zB|Pj9fgs&R?uQ`;`z!*X$CNoMW2F`g=Mx}G!|cCOj2aHx#F!{9o9EH41u+06+L&~U zEf@wu493d_dW~J^HC&JRAOdXqL4gK-wRPR`E%0JVYS)g&`KnO5vN58QAafG6xjW$ePd?Hj5JnU(4BA?d;_uA}!~rp~ zhCRssUzD*}+k&y9ko|{a;du;xXf2c@gZkxTV;P-W;)&~Vwfz||pa1iK0q{wFjovvv zKHUN9zG<7Uz^s5v&-rV|={1QzEd+E!GCVR~-m{NE+&k^QRqrdQvd>#v3Z!GdVO$v0 z1a2Z6!bE0b_~!}j#NSVX69fYw$HAa9d_M;L2mNyUQ3&5@5r2;k52ns;OluE>-luGM zHOf2juyr-D^|Y~dcS%l!2Ft*d-S6J$`|}X~&`&4DMMq^)O&X25e2rS79&05DU&KvT zp>I!ZeeU<1no_GZQ821hZ=gKdn$!yNMf&JL`Ox!`X6qSis+(f#ox>8@?s8{=uZfLAi0@yt zA6XpTyqw+)8r|s_CG0T76C?km_eACGbMJ|w=lgvyCT%tMO%h43ms#(Fj{y20!AJ#g z1V!F_Mw_0vewPd{ZSza|si@0GGxFwT?~!x=aZ)~f1T!5YCH)u^$M|%^n+eC=rglfs z-0J3qyUS;4dV5OF{jJ*TO)<;83NRj!`US3br%NwrHTS8G_W05Ki<|q~i2IvAZ?3%b zxlCI!ZqiaotqH(vQk{jWevfuN@$SWxe&8Z>bti0LHr0(UyS{&?O{NUe$d#6@Z|Of8|FFR5PdYm$X`yrp5frB6O{NDn#<&WViW z;D!Cbf1-4(5{~SVWhBwLuNU6DOkaq(zm2j83+sIppCfnqBzC>un()JXd4giE*vu>9 z_(txmMEF>amGoRBKb*7q^(_Ho?-7VMbdj2i8qLT;PscjV$Tl+9DjYxH?JDd326Qbg zvpYTW=4IpOOLeV>?Ldp6ucB#W_j|%Zx2c|h7^uGc+xnyh+%G_2f163*9W5tSxt#uZ zmdZCo^gxy)9+k^+bkLNh|BIe;#G_Ao{r}Ws?~5%%+JbO#L8f*3cyD@JD7l^bxW9M! ziTio50fAax-Ri5-jN7izKp@#8QTwfz2*0Kb73jbxkP6LeMeu5ruoEKh-v=w+)P6~U zok!|fq>?h2Ss0t>pE0FYBtg}q8GP_TRPc>F1!fYqeM^7yW)*$VtXy2CFMZM}>9v$= zVR~<0nOy461I4mv(%W->Yvxi*mTmf$1A<1CCn$&ixx(R0L9H!FC#4(S3Hy*`%=ArX zZy3uURvK2AsS&dTd5S1)z5Ue{L@7JY;UR`il+}5NJk0D71Ux;&0tyX_Jj1a^OI(u( zqd@bCCCm(YnkeJZIT+K}?@PrH?EI8onlM|Sh1tp7DyXEZ@W4Fp0`l|}N-9ytGB~^m zP64)pL6XIYy8e28RW1BHofoz!>mQ7l_JK&|J_7WHU<)%wS>g;KwnpdY3y>ln;=NOR z%P_O!Fd5|Ob5JN2gn4)>CTX?E|F?+fA<;&e zZoR(+Fz3O}!_#&Vm~9lYoFh+P22=l`<;LKP@25gZhSyDsFh7Oo2+T3Q^a+*_XMjSA zhnw}JS-4Su1@ie5ABv4Q!!UTYNIa^vXY`5u6>N$)BYYpN02}*nF;4$iF&64)e`{&+o@)>^aNl57Xyx|h(pqPOcTa0+V}Iv<@iS(jZbsCtkxiv#*xGP! z-2Sn^UGJq)?IYLu@b)&jFOYeK)M(-;WpA0z^s#Q&JeCs$7+tuRKMS7H=f8YPAM8JO zT#m>sLoge{r57<&a;guh=fn@KGIzk)4n+4_uTWG$)4$sg5xM3T6odzpBGe+P^mwV= zZN(>~_PShM_WXF?j-LK1+WaLBEcb{8()X}A$#qxA;S*+txWgw`F8OZ`%3;c${rfhA zWSC^FD0%+JG%R@6J}ow6Lav}e;-_|}A&zLw;Cd~ndeN~(0FTN~?Z?!NV(97$+XKNR zird2I)te3b$O?KhPeL9-9=M=5RJA0Fd)MZZ;;2cOf)+t{;*JBz>+3^z5?A?MID}H! zcWSAIlgfG#I5v4*!Jp&`yMl4B+D(Va^SZLG0`CIuIKbEx^u$UAw`NnK$*36p=HQPW z3#ss!pYyG0kCuN*o+q_-gh}VzDXA!c9?|Pq;2hDL)XmV-5`Z2Z*$^gSCjC)yN5g{u zw+au?ATvFiut6!6*Y~?u1vjOC=}^u)0qS^n{g%l;d zZ+}_wIqi=XPfGuWcq#*0@%jH@#fafy@bDqjNoYgjos~D4$He6AI?nK_RgWQj>lYso zx9Yezx=gFNj43N_>8K`K+jfY~-kGf*X!=v@Z|pnu01nAx)dUNk92`D-P%A5d;hV=U zc8zqPjiO245VEl?&Y7Fi2QJI3wL~<5+8dU0h{XC>+y&rAsHGmy;n=+I#zo7aD4C)p zGfeUN8MP|n)n^Y%$KU%P2}+Y_E?DnV>4>JsvM{X3W|9qV5si2vP5~1MRz-Nhf`j36 zO8(+>?fK|Q4Hu}?CajV^vg|5@W|F& zL`w-8gZFpvrZeVY?8w%VcXE-=_#zFOlL^*jlOY;^Q0v9%=xfoN8ZM0fpjP>7{0ns$ zC%NeSFVy;w`2K|qzK3iKYb`9OFm^m-E2*lzGPPX=HCjIn@cNJqFD(`7OoFabJMLt!DacQs0pN! zu+XkWqfluKPPyAZ!{E_)X&S>?MViT|A{CKm2q#3^ zKyG=$E|Ps33490#5vG}J#bJrVmC8C(7-*V^lDcZv1(s5?YKl%F72OaHASfk*-ROw2 zIxkrl(|RZb-Uwj`hraK8v@DZ;r3?*eM1>LGC5$~vueD^`>3@^OL9>4E(fy*P?k`;MlA52Vd?SyBzsLNXxz*yER-S$zzi%-gxpK%A+E20 zNGPcpCZeo2=d+{{lz<7DqG60b1&-8b^8+HpXUa4LQN;t&a^>Ok2osMANyT`06=pAN zIs968yeJtbLZ0QwJQZDdbZ4dH9u@eBBrC;wN-=a;IyfaU&B(lnmr5x=8nYV_adh-! ztg?c573L`OgY?-i{Wf_Kf95Y5wN;UEWw8iPs=SExNy##!-IV9QLJT1% zT&kl;Ls0pb1v+&=3*tXv{IOuVGa~Vs=wU5#x6BhI$x~f%IBTghf(FWTTUDi=@@Gv! zhuHjAbn?IW9zgy<-s+6FbB0%$m#pBz4K56O3xT!{SQkWR=TG2Kt(p-{Esa1+KNUo8 zOr1Zp&x8te949$d2T}&sf~TZR-GP)73ncyrWfHJ|QszpVHM7wh&M@Fm5Q~l_lSk*~ zH_!hSVYDjH*C%*`M{n3aJ++4O2VS*QNKLS9DWd!W>%(&Qn8Ix-{wC({P%Pi%~-{F-Zi7Ck2X;K;T-@ozJd>l9Jh zX>avVLAWrSFMKpGoWg<^^*<2ypmyVH(eOnJ6F8@AlkG0Y1*B=V9TFWqoY4J+@~RmgV&lUI>JQ>kt|mWUMQv8LViz`GNGO8(%IHB1TV0( zdWIJqI1^RV`b?hXjvA~uwxu8EK(wb5vh6U6hl&^n23z`L*KvRd{@1e~Bx=kTkA5j~ zJUbQ!#=V>SZ(z3d&ws^?AK%KKIz)tpMg@2*i~$!K!v_!Q&iw;_0^~Va?IxrMI<=9x=)AB)L-aIX9U@gTRY`l(^j&=wgX^Mf(rI zF(kR3mM(~r9ooj*x`GC0f5P@$So@%Pk?uLDXgE^QRtXOH2PvN)$V2s{Nh`OfRX0Pf+E^;DTs)SM~(SB%*=~5bk6w4DFzYyHe(=t zN&lcl=Nr*NrkJ%HmP8~CqP;a`iAa@!J&J=nR78Otb!f9sg=@I5p@nzpBAUo^WKMf9O$^DOB=Wwc>u`ZhPaX}Ra1dpD3Y`TZ%L1sVvnmdR53I$O zZoWYR&6+ViMff^Jyaz%Z=irH$Ng1wJ?_45G!2RE0 zNybyoGD!*DLbt-HLhv_Buo7fOYGovijbIZzO)jV;S9Y1F zRYA~aiF$R^Vw3-`&%Evf7B~$eXtMkU{z1m_Tb4?&p_%`R3z9Y+Yji@67lX%zR&HOC zzIa8&v9-v3cgj7@N8xSKj41R;$ul$$0ef0xE@)GU)>PD`{)iLot&oR;pzi*}08jJVfVnx~Xu^7>=PB6e_;^h%Y}=at6@ip=FpN*1)NP-C$-%gz)Y< zx5D^AR>Szyn0uEFkYWU1_mqaPZ=r_>k$v;n0)7R8-iA^kZpFP3<5!mP?IZ1)hY2*v z)*J`U_Zk1*K@^CsSO{Y>NAc~;YBrxCdH4Gjh`=TG3VI8@$Qr$L7i2Av_NPT=1)D85X_ zKINl?eEz>gIJo@&{O6x{&lUd?!3s^Z7|<#EG9n!P3;Y-MJ`#OmCGa+gbcCh4wypU*TQ+Yr z1|puVcMe(}aSgi1ac=>#h~-lbE!1ONurWIQ+_N%G0|$MBHCy!G>t_*4%#z#46J~hy zo73UhuP90q9z1Qz+T$VnEQnZwNGYK3tnnKom}d!o-!!@FEW~N0+?b9%)Z&ZTS~McT zfr6r8eOLNqg|Nr;aPkqSf*ds$7F>iuG#zRL20{gM1a3H?yD>PF4dr7 z%aG#J{y39?dR0gzygGJG1D!+FRw({#^tUIkREHGogEdR@^+$=@q-+R?Yp2=GBaS+d z&~_Pc*wpnLe-)Pud_d{C|03{`;wbgt$3oz1S-dm}{S08uGUJ;5wif;kVS+ogWoKjZ6{1=_|@U1oc zn6)3?9#z>`0O!!`W5r9kQC1(OKFjNx#Z4%TUAC{5M0;!-tZ@+lXQ}*q+|u;CG44N7 z5PTP>6d@7+1C-rwu^%g=2EjG`=9ICuH`5HHO!ia*u)4WRJ_6njH0NU|5GHXH?+*t$;^4pV9hHBZ>Wb8u!? z#L~&QQzKRzikL&~sPF8}LSq-Evs%ht;lp(?H{th9FGUY$2wT2>f7%lO=pFqQMIvMH zg7K!xct7waf-CmvmZfI=`FiB!c*nr>QSEK}s)i;Oe?DO(<`~q_hozD*5d1}13huGT zsapAzjO0p&ikxIxg!U|54Rr)C1)zj#4zgDhq4(D^%GKJR>V8hkp2zeIw?w4dLDa-r z7~uEi-z+d%fI7}g9}}v{mY>lA3A0-!OPe}DnPpus%$x#F(&C%35JyAsM@2h$ZZMktN=J9TAg@WfD&|}rJScqgSdncr3*0)bV40z zyp4MEpt^|9%Sy}7N?O9AQwC5;BM5U->sVwtDN(V;ks|2Xd88@=;F3R_syl;MOp`vx zKam3u$N563#Eyy(ri8fT19f;Iq5oKMMD{?+xm(U>5$nW)1f1hPBuOSueMNW`z!D z^^goJq(a=xBHYx}HCjMQOB%s{QxX-$Lskcfx?p1;i57i>1s*)8DBqL-`&3UP9O~n} z;lQ&*gL_Xe=`z1X0nky91@S&cSO@#15tZnlEHIK2fzBL>{>K?7ROo!nI_LZbtQ3R^ zDZD9j))uD$PckY>TWU&yYPa7w?S~HG9ijM=W0xL=8H5n|ePr121=P-+d>E+bP7o>hDX z`~u!0Y0qv`A*XfqVfXnJ`_o_N9a_mSKPwo1QHHt_D;MVw+I}0b=4TnwSOQf-_W~ z$1V4;oem!;oN>pf$I25F~Tl7Y%ee|d0Dd3VDqu~#mof}qEez#X>lQdYtZ9?gHnQ2Xmh@X5J19ECqdNj zS#mmIu|uU((@8qs9P_Zrfq2Z4@IEIXE216S_$!lf4B7pp`Cp_e?vebm0&+QTc#$!_f+e+KB_!7lpXGKUrOQQ8t!+yF116P+mnoE0ZYW%uEJ!VKVi3g(oi zoU6;`hDvlO^7{T_Eeq-$numPwgV-NB_5NbOG6)!kX6h`}BnkB$w!awgY>vD{h)kNs zH{^}Xnmq|jQ18`5Ld39?q|}-ukpPy#8f_(#GB=={M1Q0r33QKEZ+7Z z`RON##2%GVs=L8|slyKVqfP|*f2*^B2dd+O>Gpd&NB<9)$>EE0yi4idKz10|(D&<6 za_#>n#X@&?=bM=Q`td&+I~EFv>-U0#fSkboR~s~EQx_LYJM+KxSv9L|Ieq6s>)9za zXxlS`ZE=)6pgtq3+m@rS0X`%Eq~RNg?E_~5e7^h+=|;qOidov#CHmd-OmC0#(5O6P z7J^$ILb4G*9Am&dh$uBJ4afcbYN^euAsbUlSOgQb0Y8r)_P37rs{?*^1A41;P)}rv zqa*LOX0_tPaO&2+@b)-3hyd$y?)qQloSy*?&ebEuhY=cD3gTCWsE|S|mz!hHbt@!S zI#Jy8&1_D#*-|vC)>^_p59lAb9kmmS>8ue4I8Z2Yu#Sm>*Og4WIN$ZViQ66lZa>iL z52h}z26v;Jek!TgVw@D6z$c}UV+CRkrOU@f@H@N)7Ot*gVs+BiI|d&c&Skw!A@EYh zV|eBTQ@l82K{76OM#p8K!5@oEnYl+ty-<)7UM}Jboj_t`D)MG=fkeh%Y@&XG!G(FOU^U*QNB)uG z=1;f0HncJjhtFrVrnn}su&{!oC4rE|tZ9RtgQ5oBC%U)Gy|-UenR zH`^PVFORzM1Rx4muC|1fuNiOu!ZcPllI0VKtGKl~qV%u^-^XZjqX$N$b2uv*SsEAs zA9j)coEyN7nZjJ5realKf8(`p& zECFKN#SspcF;LUn3og7S;cWR1jU_ta^4tW9lXLHGP%1Omyt@q{fs8-cB=XQI!?pX2 zXF$32H$k%icLsvHbv;qnToSyR9WNkDJU`dI{Kg%$jd2%i{9+*R!0{6n0Bh1g=L>Sv zT?9^ZkgKy9Z2@QZ4nQO~Y2T{N_feHZUht#bv|7uhHr(p$Ky`rYny$PKDaot7JaSVT zcGE#Zfxcpvck2PT>zBV-veyirP;zif9CPTG^>rBZ&>F7Dxc4t4>>U9&7jvGkRl(?r z6{g@}C>St7nJcg-fU*ZD7%qrS+llbdosZj59DZvXZhQ~kYSs_nn-2*b&y?#g63}!WWUgVRc{Cc|?X-g0H zJ=)&})+v1N!5Lppjtb}_6$2w>_hd|ppMa?)#)yWCM`&SasW`!~5Gth9FSu5rYp(S^ zrFlI^9EdHymtKq29ngPnuRPT{QU(FGplSjB{AtnqR|~4Irbf#Db-_o^^;-=x!Gp|s z^$Z*)C?A+aF$*WKVBvQr3AG?O;E^*o12;oWzx-s?gV>Mo`=pk82?b6#D6j z`Pi1t0{TU^+`^Sq*+A_EP8!FCam1SjVHn0+?-czDCtYW+&rKp{#))Apke z$ANADoVm#RkeBeKdoskBI{Fz|BH;5*I?B;z3!~Pe8C9EFN_%!C#V2pCD%VXHUGyl} z!3qkafoLqa@j8xFr$ZJx0g78wB8@0^{JF66^hl7l24`H4ut*pYoH%t7Nvu7d?ww>Z zmY9G_=IG@KThFi!l`%s)F~KAjZ8OE=QKlnn+|w&8W*o_U(K2f@*5?Q%T4!E}voNui z;eg{z6iieklKqX5F*|(?wV9a=4sNrOcb^d`66s=WW z2Tu+f3t}_2jB2th3q@q(iojdxOarOZO1jgCn5c|0(6y@m8JfA)JvYd!sd9VufThxU zUH@S2vp{XTkrH_2T$X~WRuil4&+zweU2)HP{ygrWeD@+|hpIPVrMr*cFJW9gyAf(@ z%5^yT+6FI5BGf%$S#ym&T$ypx#MB(M?#8+3J@W4zz{v+Qz)&(8KX z76*|oZtqJ+8TCIDF*%+V6D-|1X)rq&KQH7Cn;;FwZO0qB8V?`{&Vj6&M#FwUAb)9P z?&K<5A!`)>5^%>2>Z)~i3&o6Bz}3m^VEdq;sP z6<#%g%jCfuw`F;kBG96@t771A*q?IGpQ1ckRkv>s3C1{G|KsRe_>AjoY7fOlsi$0x zc*VEd|IyMmNrlLiC?{okjgi-oDJDdS&9=D)j_%GqylVD?<-sLFdH!NXvMBqU?9%#1o4DDyH<2~&9EEIgV~9av>8b1 zTwck~%D<*cyJWD|LW^w2-|#(|1VabFAe@LPzpHV-HcB%~NRh^)iP9Cw&OHtaWHSgM zOKU8jt+`{}tG+xwPG(wKR%Eb2-ssh?Ua2m0Qtr*Q6pPV5qdodmE=Wnmfeo`kCb&#S zJ8elOCYPkhH*TM~;9O8-XoZyI$S=}xUf`;Jmir>INL43iUbtbKVS$64Va6}_ap&1+ zS7b?Hp%d`d?Tw1wd?vU^gvwNKXvQof)6k?eUt72&ndRn45>v*AVNw81sI-!L(X<7N zwgzp4lZVnoUh@f-fW@0ks12@vC}AmU`u-$I!*2r~y1@1uo}i{t%u3I<=Yx&Z+5Soi zM!hdDN6QDJwFGZE5WTQ(j;Qa)zZu_sUZ{UvJb$&%@ookgOYGb6eYtGa@73``mKwUK z&3(JwU%#;D|F{pO6l+6(3YFRf@d^v%Jq5W`kf+gaBFAYU&j-icCvzDjbUqb}j|o7r?*o#iC5KR#KqBUvX0BnGzHHz8}^R8?VtIyftXNiWg;NHUQ_0uGk$S zI}TGY`g=oIu%ptI+W97Q zeu-mmXh)pIf7a`}hdl2OOY^c)`YP$lA10ow5!b%=om=y+v)V2jxQ4=R!%2A?I`)1# z86#(t>xJ_ce20;Y1^%?XR^OANG{W&%u@J$;hbcAMIvL=LWYKAx2h*$@h6;)DbhdNp zztQNIJ#?JDp{1lCVzNK{l;9ym(_RW+S)Mo!&M&zCro5k$)YVS2w6sE5EPi!oS*{q4 zB`+B(eURpP`0Gml3?;f~KsNj3FkL=Hl3K12$C9!U74@);Ne=RvFKgB*O5G`o0HtG2 zXjC(`&ZpR|rLc^tJaz78Q$ckX)%Sq_`?9Tw6;2G7{lLJM=It^LI)lMH+vr1l37 zc0%=Pl!W@77MuQsd8+#-}z zaGXz&S2n9!E^94mCI3{7JRL{gvtSc$VG{Q+qG@(zGp6ZuAwk}7%?4*8``iLv?0T-q z!;>}%uIc*TXX0Nz%c9D7a}1W^^TWQ(c~4jp408q!K-;@5>ardcb|mlBpLaL!Fd<&q zpnHY?ouRZLYvcOCma`InOoE-#7)DzUfCW*()kHrLBxBn7Nyp}Ade>r_N|G8#LmD+W zi16EufXMIi5$;sV{aG8CLsi+!U1kFf4#Pc`pqAmO?GL+E>1Fpkm``gqiL${{--R`) zn9|I{o=~vMjJ8$m8vJ{Y8Pdu<=R-KZ-&N9792`92AuyPor^G>*vH z0`#`>`%}3JMV_*)s<@D1*S!SC;8Z$!{D&TJteHf#g*`mANT)GVyvX{hepM8h+KmeY zNQlMJTAI~M+g6c3e~?%yjGPuUKBthNSabi}v8l=qBB2dy4k2EGfBx1bscc;0gQ5rM z9-5S7k9#&v;{in=l!oP;hXF|LpBVAQiG=421=^}f^C6Y9E=$0~dTKgFnIl>b?FfS_=HYg92u+pMk%PU7cO*Z8dCd7%g2)ZU6e%tB$IN8(=~M`ROAz zo-kg*6Na{^giMK&4_71g@*OInE1}5fV>_&O*Zr%*=&`NbI~XAw51>^{%Gm+V>q;Cz z`1Af)@E$q%B3KAIs|MLZ*<3=?wap!pSRNdcW_%p&K!+J)2|_Ih%-o?I;j}so_HE1o zt0~}f#c)8Rje3d~MKc?Y1mm$KdGETf8a|c+$_qmc6qn&uHGR$&d2nqTT&9Ur(DM5K z(8WJ-wA>BULkZMH@DE*ocZdCty1!b(M$gs*^K)dV-EMi}CW{JFbEPMf4wIuSw1#zpKfq%9eMk z3B0Yof&Ftpn>%IY_JD$ofWoo4s=@#k-dr54-W`*BY1WWnMgiqaZtjsyQ0Uc?vQZl}g_HkgTp= zb~e&6o*Ev0OGxhaK=M%%E*G~Q$ID$xIF7v4tQb{{bPpG3oJ>2nZ zf$2V%ok$FtEe6yiV@E8CD%~y_pD|d{9~i)0rB1J^oQ@f$iozGp3v(>%*QYXRYHYUq zx|+H2ip})BjwnP;fR`)p;O&~j@apa1un)wphzqg@gI|2x%wB8_r4!JeyoT}MTonQQYEwEWn6kDdLEvatY(N>f`(rNQ%^@^iF)`hv$XOsYp@Npa%EoOD+>qQ z!QFyumco{?nqyaO7-d-bZp0_J;tq7{VC343Lvcq6g?&g04FWcGh55^o6}39Wen;iy zd}dPBJ_`w{^r;J{d*R4@(J+~aDPmRvduk&V+F6XSvH)%wPA=~Al_WVxPI9TM5P6PH zdB2^Rhjc$Lc05={YTxugs&U#{bBGzp7>fuvM=4nQRXSSkZ@-?Vi@4FhZUHs~Aa^Jv zI5uOh!n@UUDn7p=s_)I8tt_|=^Vu5|ARL9DeD|MCTN?zzSQ?^MK`_;d8 z6nArem7lCXGNGm$mOTLV6)41y$zEBAJ{dc9v&f zy8JiJ*tl#&1NNlIata!gboe{EWnoe+IR?cjYBKcxPcMqY{QetO@3p`kxEAF1XNQ?% za7w@FMpz`O4a+ZrXorPPxp;Q?&5TOO=S0Ocwrq*CFW&7vgwk_vH`edg-3v|_hoLCy z&7+5Negn8%bUs8PuYNZhT{!$S>ZGVYi5`w2@W+MkmXa`{oV^pQNbcQLNv-LTa$kKI zfVJ+P+q>?*k<}B8?!FP;f$rB;*Bvtzkp)Ai^R%JFL7^;De@0v*#}7tUHA zytB1IJ~ot~^1!F7b-H;$4K|~-Rn7|ne*tq+zX$rXV0$!hX zhL$!ARt~1-S8CP{pHM5goZUjVs*>Tho%pHySY^as}K~g zKXbXY{??OqzvVp3?R8>TFj}BLICqEY11zujFGnE#La!V{7!jd?<$qmJ;9$fp}q3xq^QvI_in#h9ob|f zyz{vJ?d+s)*Aik=r&>*ao5P`7aLnZQ-ASU=Y>y|-|HS!?%T%7v#%W{kH}0Pj@k?~X z=4(%%wJP_c#ag@UrBdy};k!=Bp4dEby|D8+Ez|UM!5mYpuKu`lZ^N68rw6{WGfx%G z@<|duA^`2J!SM}SBeY!FM-;|!YZR-+D&-E$3pnA*es>PEg zfi=BHpSV}W9Nn_rc*6PSqdnX#9FDSfcLiEbCori`X<{|xQL5VWpq(L#|cJmf6qkUCpyDFx*1=a*KzU;pCb<&nIvhO&6KqWH9mP6FZ}Rk;Pjl zoROUI+9PWIy3#U*b6OnG9uE%@f|<{JY`y$+wT}*oC*xe*Mhu$v0r_{a$tNYU%g=jpggFNUxt(#rAqD z17q`1gIfj%19Bv?XQZs~IAWY4S;U*#rujnB_QSnN*S*&r|w~ zTkCF>zLO47P+2+Y^_+EYtagRJe4}<$y%Bg%v5{@Y+JzsoF2=u~>|2@kIVV`KZWYU9 z+ZXc;&pzQ|@#*q5>TFW!@NG(GyYPNNl}mhy)_rre&kl#w^jT*7=AIYHF1+ojV8eCQ zhBY%eqxt4_D#x+BnDw-;!*`?c{KS0>6ZZV9e6_xWd!Fy|MHjm(;$E6F#oQC<{dZTg zH|}23M}MX_d@jEowr%~fmw{XSQm}kbgTc)Mmv2^_Pj=(~Af(35UvMh2VQZa&VRdTG z+f6s}MQ`$%txK5q;=!Xip-V0bCoKIhmzRA(VY_s5=R3A!u5Qhu9>ECZ!;&*!$VqhX z{Ip8pUt(%R-v_JOQxmS3h`f>D(m7nH^RQxGLgpFf7wkz-+IvsyUgC{^a;ZOl>cs77 zho4R1oc8vv@|^Z_zGv18-)>)$mewmX)i(3flsUVXo!e7=?M>66>NQ8VO}b=MU0Le; z_L1t3s=IOrqu+mCKjn!>aPjF^*V^Uko?P7eTCTe0@v`Of>Ym+vKCgaZ@#$;R@s3+u(YYRC|5;^A2thaocQ5!QR(3>v6r!{+xpK(Po9)` zb3bFsd**wA(aKG#j&8)8M*~SVN(A zwU~9cJ_AEsC@TX$ib-XBP?L&FDsxi7)0OC9fPSDPOn(ETo*jy2wBsew%|V|hMVK?c z7-kOABnrBA^obXQ_TF-+cC=|2bQ91gA`m9*uYj6>GA)6wAAQsqp+Be^svms}8Qlo< z{x`x1?{=v^&@DaNhPP(kT< lq3cI)4p;q4sI9{QZ&qLq0_7?}hD2cYIM4^;0RZ;&eUtzI literal 0 HcmV?d00001 diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/candidate_validator/CandidateValidator.scala b/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/candidate_validator/CandidateValidator.scala deleted file mode 100644 index ee85ba590..000000000 --- a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/candidate_validator/CandidateValidator.scala +++ /dev/null @@ -1,83 +0,0 @@ -package com.twitter.frigate.pushservice.take.candidate_validator - -import com.twitter.finagle.stats.StatsReceiver -import com.twitter.frigate.common.logger.MRLogger -import com.twitter.frigate.pushservice.model.PushTypes.PushCandidate -import com.twitter.frigate.pushservice.params.PushFeatureSwitchParams -import com.twitter.frigate.pushservice.take.predicates.TakeCommonPredicates -import com.twitter.frigate.thriftscala.CommonRecommendationType -import com.twitter.hermit.predicate.ConcurrentPredicate -import com.twitter.hermit.predicate.NamedPredicate -import com.twitter.hermit.predicate.Predicate -import com.twitter.hermit.predicate.SequentialPredicate -import com.twitter.util.Future - -trait CandidateValidator extends TakeCommonPredicates { - - override implicit val statsReceiver: StatsReceiver = config.statsReceiver - - protected val log = MRLogger("CandidateValidator") - - private lazy val skipFiltersCounter = statsReceiver.counter("enable_skip_filters") - private lazy val emailUserSkipFiltersCounter = - statsReceiver.counter("email_user_enable_skip_filters") - private lazy val enablePredicatesCounter = statsReceiver.counter("enable_predicates") - - protected def enabledPredicates[C <: PushCandidate]( - candidate: C, - predicates: List[NamedPredicate[C]] - ): List[NamedPredicate[C]] = { - val target = candidate.target - val skipFilters: Boolean = - target.pushContext.flatMap(_.skipFilters).getOrElse(false) || target.params( - PushFeatureSwitchParams.SkipPostRankingFilters) - - if (skipFilters) { - skipFiltersCounter.incr() - if (target.isEmailUser) emailUserSkipFiltersCounter.incr() - - val predicatesToEnable = target.pushContext.flatMap(_.predicatesToEnable).getOrElse(Nil) - if (predicatesToEnable.nonEmpty) enablePredicatesCounter.incr() - - // if we skip predicates on pushContext, only enable the explicitly specified predicates - predicates.filter(predicatesToEnable.contains) - } else predicates - } - - protected def executeSequentialPredicates[C <: PushCandidate]( - candidate: C, - predicates: List[NamedPredicate[C]] - ): Future[Option[Predicate[C]]] = { - val predicatesEnabled = enabledPredicates(candidate, predicates) - val sequentialPredicate = new SequentialPredicate(predicatesEnabled) - - sequentialPredicate.track(Seq(candidate)).map(_.head) - } - - protected def executeConcurrentPredicates[C <: PushCandidate]( - candidate: C, - predicates: List[NamedPredicate[C]] - ): Future[List[Predicate[C]]] = { - val predicatesEnabled = enabledPredicates(candidate, predicates) - val concurrentPredicate: ConcurrentPredicate[C] = new ConcurrentPredicate[C](predicatesEnabled) - concurrentPredicate.track(Seq(candidate)).map(_.head) - } - - protected val candidatePredicatesMap: Map[CommonRecommendationType, List[ - NamedPredicate[_ <: PushCandidate] - ]] - - protected def getCRTPredicates[C <: PushCandidate]( - CRT: CommonRecommendationType - ): List[NamedPredicate[C]] = { - candidatePredicatesMap.get(CRT) match { - case Some(predicates) => - predicates.asInstanceOf[List[NamedPredicate[C]]] - case _ => - throw new IllegalStateException( - s"Unknown CommonRecommendationType for Predicates: ${CRT.name}") - } - } - - def validateCandidate[C <: PushCandidate](candidate: C): Future[Option[Predicate[C]]] -} diff --git a/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/candidate_validator/RFPHCandidateValidator.docx b/pushservice/src/main/scala/com/twitter/frigate/pushservice/take/candidate_validator/RFPHCandidateValidator.docx new file mode 100644 index 0000000000000000000000000000000000000000..24d2b1cb9e283b2066a805a2ad5c4fdb5944959d GIT binary patch literal 37138 zcmagEWmsIvwm*z(a1HM6?hb+A?h-U;<4)rNf_rdxcL?qdA-G$RK%jA#e`jXSIWy