Files
discord-decomp/sources/modules/quests/native/VideoQuestModal/VideoQuestModalContentInProgress.tsx
T
2026-07-28 01:06:53 +03:00

798 lines
51 KiB
TypeScript

/* Metro module 13601; source: modules/quests/native/VideoQuestModal/VideoQuestModalContentInProgress.tsx; dependencies: [57, 31, 27, 6528, 482, 33, 674, 697, 4501, 477, 9495, 9511, 13602, 13605, 13573, 4017, 4504, 1585, 6618, 3868, 13618, 8141, 13619, 13598, 13622, 4572, 5278, 4573, 13623, 5475, 1305, 9505, 8341, 1244, 9176, 11906, 9483, 9522, 4589, 13625, 13620, 4578, 11905, 13526, 13524, 9798, 8638, 13597, 4080, 13626, 1962, 9513, 7114, 9519, 9517, 9518, 7121, 7120, 6531, 7110, 9212, 13627, 9480, 13628, 6535, 2] */
import Module00057 from '../../../../by-id/module-00057.js'; /* Metro dependency 57 */
import Module00674 from '../../../../by-id/module-00674.js'; /* Metro dependency 674 */
import Native from '../../../../external/discord_common/js/packages/tokens/native.tsx'; /* Metro dependency 697 */
import UseSafeAreaInsetsNative from '../../../safe_area/useSafeAreaInsets.native.tsx'; /* Metro dependency 1585 */
import LinearGradient from '../../../../by-id/module-04589-LinearGradient.js'; /* Metro dependency 4589 */
import QuestProgressIndicator from '../QuestProgressIndicator.tsx'; /* Metro dependency 13620 */
import QuestContextMenu from '../QuestContextMenu.tsx'; /* Metro dependency 13623 */
import VideoQuestModalHeader from './VideoQuestModalHeader.tsx'; /* Metro dependency 13625 */
import * as FileImportTrackerModule from '../../../../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */
import * as ReactNativeModule from '../../../../by-id/module-00027-ReactNative.js'; /* Metro dependency 27 */
import * as ReactModule from '../../../../by-id/module-00031-React.js'; /* Metro dependency 31 */
import * as JsxRuntimeModule from '../../../../by-id/module-00033-JsxRuntime.js'; /* Metro dependency 33 */
import * as ConstantsModule from '../../../../external/discord_common/js/shared/Constants.tsx'; /* Metro dependency 482 */
import * as IndexNativeModule from '../../../../intl/index.native.tsx'; /* Metro dependency 1244 */
import * as NativeModule from '../../../../design/void/native.tsx'; /* Metro dependency 1305 */
import * as NativeModule2 from '../../../../external/discord_common/js/packages/design/native.tsx'; /* Metro dependency 3868 */
import * as ReanimatedRexportModule from '../../../reanimated/ReanimatedRexport.tsx'; /* Metro dependency 4017 */
import * as CreateStylesModule from '../../../../design/components/Styles/native/createStyles.tsx'; /* Metro dependency 4501 */
import * as TimingModule from '../../../../design/animation/reanimated/timing/timing.tsx'; /* Metro dependency 4504 */
import * as StackNativeModule from '../../../../design/components/Stack/native/Stack.native.tsx'; /* Metro dependency 4572 */
import * as TextModule from '../../../../design/components/Text/native/Text.tsx'; /* Metro dependency 4573 */
import * as PressablesModule from '../../../../design/void/Pressables/native/Pressables.tsx'; /* Metro dependency 5278 */
import * as QuestConstantsModule from '../../QuestConstants.tsx'; /* Metro dependency 6528 */
import * as QuestTypesModule from '../../QuestTypes.tsx'; /* Metro dependency 6531 */
import * as FirstPartyQuestTaskTypesModule from '../../../../external/discord_common/js/shared/shared-constants/FirstPartyQuestTaskTypes.tsx'; /* Metro dependency 6535 */
import * as SafeAreaViewModule from '../../../../components_native/common/SafeAreaView.tsx'; /* Metro dependency 6618 */
import * as QuestUtilsModule from '../../utils/QuestUtils.tsx'; /* Metro dependency 7114 */
import * as AnalyticsTypesModule from '../../lib/analytics/AnalyticsTypes.tsx'; /* Metro dependency 7120 */
import * as IconButtonNativeModule from '../../../../design/components/Button/native/IconButton.native.tsx'; /* Metro dependency 8341 */
import * as MoreHorizontalIconModule from '../../../../design/components/Icon/native/redesign/generated/MoreHorizontalIcon.tsx'; /* Metro dependency 8638 */
import * as QuestUtilsNativeModule from '../QuestUtils.native.tsx'; /* Metro dependency 9480 */
import * as QuestHooksModule from '../../hooks/QuestHooks.tsx'; /* Metro dependency 9483 */
import * as ExperimentsModule from '../../experiments/index.tsx'; /* Metro dependency 9511 */
import * as ContentImpressionTrackerHooksModule from '../../lib/analytics/ContentImpressionTrackerHooks.tsx'; /* Metro dependency 9513 */
import * as VideoQuestUtilsModule from '../../utils/VideoQuestUtils.tsx'; /* Metro dependency 9522 */
import * as QuestDockGestureContextModule from '../QuestDock/QuestDockGestureContext.tsx'; /* Metro dependency 13573 */
import * as VideoQuestModalContextModule from './VideoQuestModalContext.tsx'; /* Metro dependency 13597 */
import * as UseVideoQuestClickCtaAndMaybeCloseModalModule from './useVideoQuestClickCtaAndMaybeCloseModal.tsx'; /* Metro dependency 13627 */
import * as UseVideoExternallyPausedModule from './hooks/useVideoExternallyPaused.tsx'; /* Metro dependency 13628 */
function _fun103352(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#103352, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13791:6, offset: 0x0226385e, size: 800 bytes, params: 8, frame: 24
const env0_0 = require;
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
let value = ReactModule;
const env0_11 = {'x': 0, 'y': 0};
const env0_12 = {'x': 0, 'y': 1};
let PLUM_23 = (importDefault(697) /* metro dependency 697: native */).unsafe_rawColors.PLUM_23;
const value6 = Module00674(PLUM_23).alpha(0.4);
object = [value6.hex()];
PLUM_23 = (importDefault(697) /* metro dependency 697: native */).unsafe_rawColors.PLUM_23;
const value10 = Module00674(PLUM_23).alpha(0);
object[1] = value10.hex();
PLUM_23 = (importDefault(697) /* metro dependency 697: native */).unsafe_rawColors.PLUM_23;
object = [Module00674(PLUM_23).alpha(0).hex()];
PLUM_23 = (importDefault(697) /* metro dependency 697: native */).unsafe_rawColors.PLUM_23;
const value17 = Module00674(PLUM_23).alpha(0.4);
object[1] = value17.hex();
const env0_15 = {'bottom': 158, 'top': 64, 'left': 16, 'right': 16};
const env0_16 = {'bottom': 16, 'left': 16, 'right': 16};
let createStyles = CreateStylesModule.createStyles;
const env0_17 = Reflect.apply(createStyles, CreateStylesModule, [_fun103353]);
object = {code: 'function VideoQuestModalContentInProgressTsx1(){const{withDelay,LOGO_REWARD_TRANSITION_DELAY_MS,withTiming,isComponentMounted,LOGO_REWARD_TRANSITION_DURATION_MS}=this.__closure;return withDelay(LOGO_REWARD_TRANSITION_DELAY_MS,withTiming(isComponentMounted.get(),{duration:LOGO_REWARD_TRANSITION_DURATION_MS}));}'};
object = {code: 'function VideoQuestModalContentInProgressTsx2(){const{animation}=this.__closure;return{opacity:animation.get()};}'};
object = {code: 'function VideoQuestModalContentInProgressTsx3(){const{animation}=this.__closure;return{opacity:1-animation.get()};}'};
object = {code: "function VideoQuestModalContentInProgressTsx4(){const{animation}=this.__closure;return{pointerEvents:animation.get()>0.3?'auto':'none'};}"};
const env0_22 = value.memo(_fun103354);
const env0_23 = value.memo(_fun103362);
createStyles = CreateStylesModule.createStyles;
const PX_8 = (importDefault(697) /* metro dependency 697: native */).space.PX_8;
const env0_24 = Reflect.apply(createStyles, CreateStylesModule, [{footerButton: {padding: PX_8}}]);
const env0_25 = value.forwardRef(FooterButton);
value = value.memo(VideoQuestModalContentInProgress);
(FileImportTrackerModule).fileFinishedImporting('modules/quests/native/VideoQuestModal/VideoQuestModalContentInProgress.tsx');
exports.default = value;
function _fun103353(a0) { // fn#103353, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13791:590, offset: 0x02263b7e, size: 1081 bytes, params: 2, frame: 20
const object = {};
let BACKGROUND_BASE_LOWEST = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_BASE_LOWEST;
object.wrapper = {backgroundColor: BACKGROUND_BASE_LOWEST, flex: 1};
const object3 = {};
object3.borderTopLeftRadius = (importDefault(697) /* metro dependency 697: native */).radii.lg;
object3.borderTopRightRadius = (importDefault(697) /* metro dependency 697: native */).radii.lg;
const value2 = 'center';
object3.justifyContent = a0 ? 'flex-start' : value2;
object.wrapperPortrait = object3;
object.videoLandscape = {'width': '100%', 'position': 'relative'};
object.videoLandscape9by16 = {aspectRatio: 1.7777777777777777};
object.videoLandscapeFullscreen = {'flexGrow': 1, 'flexShrink': 1};
const object5 = {'borderRadius': null, 'flexGrow': 0, 'flexShrink': 0, 'overflow': 'hidden'};
object5.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.lg;
object.videoWrapper = object5;
const object6 = {flexGrow: 1};
object6.borderTopLeftRadius = (importDefault(697) /* metro dependency 697: native */).radii.none;
object6.borderTopRightRadius = (importDefault(697) /* metro dependency 697: native */).radii.none;
object.videoWrapperLandscape = object6;
const object7 = {};
object7.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.none;
object.videoWrapperFullscreen = object7;
const PX_16 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object.videoContentWrapper = {'flexDirection': 'column', 'pointerEvents': 'box-none', 'flexGrow': 1,
'flexShrink': 0, 'justifyContent': 'space-between', padding: PX_16};
object.videoContentWrapperLandscape = {padding: 0};
const object10 = {};
copyDataProperties(object10, StyleSheet.absoluteFillObject, PX_16);
object.videoContentWrapperPortrait = object10;
object.rewardContainer = {'justifyContent': 'center', 'flex': 1};
const object11 = {};
copyDataProperties(object11, StyleSheet.absoluteFillObject, PX_16);
object11['alignItems'] = value2;
object11['justifyContent'] = value2;
object.rewardContentCentered = object11;
BACKGROUND_BASE_LOWEST = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_BASE_LOWEST;
object.modalBackground = {backgroundColor: BACKGROUND_BASE_LOWEST};
const object13 = {borderTopWidth: 1};
const BACKGROUND_MOD_STRONG = (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_MOD_STRONG;
object13.borderColor = BACKGROUND_MOD_STRONG;
const PX_162 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object13.paddingHorizontal = PX_162;
const PX_24 = (importDefault(697) /* metro dependency 697: native */).space.PX_24;
object13.paddingTop = PX_24;
object.questDetailsLandscape = object13;
object.questDetailsPrimary = {'flexGrow': 0, 'flexShrink': 1};
object.questDetailsSecondary = {'flexGrow': 0, 'flexShrink': 0};
const object14 = {};
const PX_163 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object14.paddingHorizontal = PX_163;
const PX_8 = (importDefault(697) /* metro dependency 697: native */).space.PX_8;
object14.paddingVertical = PX_8;
object.footer = object14;
const INTERACTIVE_TEXT_ACTIVE = (importDefault(697) /* metro dependency 697: native */).colors.INTERACTIVE_TEXT_ACTIVE;
object.icon = {color: INTERACTIVE_TEXT_ACTIVE};
const INTERACTIVE_TEXT_DEFAULT = (importDefault(697) /* metro dependency 697: native */).colors.INTERACTIVE_TEXT_DEFAULT;
object.iconDisabled = {color: INTERACTIVE_TEXT_DEFAULT};
const object17 = {position: 'absolute'};
const PX_164 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object17.top = PX_164;
const PX_165 = (importDefault(697) /* metro dependency 697: native */).space.PX_16;
object17.left = PX_165;
object.closeButtonLandscape = object17;
const object18 = {};
copyDataProperties(object18, StyleSheet.absoluteFillObject, PX_16);
object18['bottom'] = undefined;
object18['height'] = 70;
object.gradientTop = object18;
const object19 = {};
copyDataProperties(object19, StyleSheet.absoluteFillObject, PX_16);
object19['top'] = undefined;
object19['height'] = 150;
object.gradientBottom = object19;
const BLACK = (importDefault(697) /* metro dependency 697: native */).colors.BLACK;
object.textShadow = {'margin': -15, 'padding': 15, 'textShadowColor': null, 'textShadowOffset': null,
'textShadowRadius': 15, textShadowColor: BLACK, textShadowOffset: {'width': 0, 'height': 0}};
const object21 = {'borderRadius': null, 'flexGrow': 1, 'flexShrink': 1};
object21.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.round;
object.ctaPrimary = object21;
object.viewRewardBtn = {marginRight: 'auto'};
const object23 = {'borderRadius': null, 'height': 96, 'width': '100%'};
object23.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.lg;
object.playerThumbnail = object23;
object.cloudsBackground = {zIndex: -1};
object.questDetailsSubheader = {opacity: 0.6};
return object;
}
function _fun103354({quest, captionsEnabled, handleClose, handlePrimaryCtaPress, handleShareQuest, handleOpenTranscript, handleToggleCaptions, isFullscreen, onNavigateToPostWatchVideo, onEnd, setIsFullscreen, externallyPaused, sourceQuestContent, hasCaptionAsset, hasTranscriptAsset, isShareable}) { // fn#103354, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13791:3442, offset: 0x02263fb7, size: 2692 bytes, params: 2, frame: 53
var r8;
var object;
var ReanimatedNativeView;
var rewardContentCentered;
var items8;
var ReanimatedNativeView2;
var object6;
var items9;
var items10;
var QuestGameLogotype;
var moduleValue9;
var items11;
var Stack;
var object7;
var space;
var Stack2;
var object8;
const PressableOpacity = (PressablesModule).PressableOpacity;
const Text = (TextModule).Text;
var config;
var messages;
var items12;
var items14;
var Stack3;
var object9;
var items15;
const IconButton = (IconButtonNativeModule).IconButton;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const env0_4 = undefined;
const platformUtilsModule = require(477) /* metro dependency 477: PlatformUtils */;
const styles = useStyles(platformUtilsModule.isAndroid());
let binding = env0_4;
const value3 = binding.useMemo(_fun103355, [quest]);
const userStatus = quest.userStatus;
const value4 = userStatus?.completedAt != null;
const VideoQuestPlayerRefactorExperiment = (ExperimentsModule).VideoQuestPlayerRefactorExperiment;
const useConfig = VideoQuestPlayerRefactorExperiment.useConfig;
const VIDEO_MODAL_MOBILE = QuestsExperimentLocations.VIDEO_MODAL_MOBILE;
const VideoQuestPlayer = Reflect.apply(useConfig, VideoQuestPlayerRefactorExperiment,
[{location: VIDEO_MODAL_MOBILE}]).enabled ? (require(13602) /* metro dependency 13602: VideoQuestPlayerRefactor */).VideoQuestPlayer : (require(13605) /* metro dependency 13605: VideoQuestPlayer */).VideoQuestPlayer;
binding = env0_4;
const useContext = binding.useContext;
const QuestDockGestureContext = (QuestDockGestureContextModule).QuestDockGestureContext;
const windowDimensions = Reflect.apply(useContext, binding, [QuestDockGestureContext]).windowDimensions;
const value5 = (ReanimatedRexportModule).useSharedValue(0);
binding.useEffect(_fun103356, [value5]);
const useDerivedValue = ReanimatedRexportModule.useDerivedValue;
let closure = F_103357;
closure.__closure = {withDelay: ReanimatedRexportModule.withDelay, LOGO_REWARD_TRANSITION_DELAY_MS: 3000,
withTiming: (require(4504) /* metro dependency 4504: timing */).withTiming, isComponentMounted: value5,
LOGO_REWARD_TRANSITION_DURATION_MS: 1000};
closure.__workletHash = 12561024953493;
closure.__initData = env0_18;
const value6 = Reflect.apply(useDerivedValue, ReanimatedRexportModule, [closure]);
let useAnimatedStyle = ReanimatedRexportModule.useAnimatedStyle;
closure = G_103358;
closure.__closure = {animation: value6};
closure.__workletHash = 17463485679217;
closure.__initData = env0_19;
const value7 = Reflect.apply(useAnimatedStyle, ReanimatedRexportModule, [closure]);
useAnimatedStyle = ReanimatedRexportModule.useAnimatedStyle;
closure = j_103359;
closure.__closure = {animation: value6};
closure.__workletHash = 9103187579788;
closure.__initData = env0_20;
const value8 = Reflect.apply(useAnimatedStyle, ReanimatedRexportModule, [closure]);
const useAnimatedProps = ReanimatedRexportModule.useAnimatedProps;
closure = U_103360;
closure.__closure = {animation: value6};
closure.__workletHash = 11833431315705;
closure.__initData = env0_21;
const value9 = Reflect.apply(useAnimatedProps, ReanimatedRexportModule, [closure]);
const value10 = (UseSafeAreaInsetsNative)();
const value11 = binding.useCallback(function({orientation}) {
setIsFullscreen((isFullscreen || orientation !== 'landscape' ? 'PORTRAIT' : 'LANDSCAPE') === 'LANDSCAPE');
}, [isFullscreen, setIsFullscreen]);
const SafeAreaPaddingView = (SafeAreaViewModule).SafeAreaPaddingView;
const items2 = [styles.videoWrapper];
items2[1] = styles.videoWrapperLandscape;
items2[2] = isFullscreen && styles.videoWrapperFullscreen;
const ThemeContextProvider = (NativeModule2).ThemeContextProvider;
const DARKER = ThemeTypes.DARKER;
const value12 = !isFullscreen;
const themeContextProvider = (
<ThemeContextProvider theme={DARKER}>
<VideoQuestPlayer
captionsEnabled={captionsEnabled}
orientation="landscape"
style={[styles.videoLandscape, isFullscreen ? value12 : styles.videoLandscape9by16,
isFullscreen && styles.videoLandscapeFullscreen]}
contentInsets={env0_16}
handleOpenTranscript={handleOpenTranscript}
handleToggleCaptions={handleToggleCaptions}
isFullscreen={isFullscreen}
externallyPaused={externallyPaused}
onEnd={onEnd}
onToggleFullscreen={value11}
sourceQuestContent={sourceQuestContent}
hasCaptionAsset={hasCaptionAsset}
hasTranscriptAsset={hasTranscriptAsset}
/>
{((Component) => <Component onClose={handleClose} style={[styles.closeButtonLandscape,
isFullscreen && value10 != null && ({left: value10.left})]} />)(importDefault(13618) /* metro dependency 13618: VideoQuestModalCloseButton */)}
</ThemeContextProvider>
);
if (isFullscreen) {
r8 = value12;
} else {
var viewProps = {style: [styles.videoContentWrapper, styles.videoContentWrapperLandscape]};
var viewBinding2Props = {style: styles.rewardContainer};
ReanimatedNativeView = importDefault(8141) /* metro dependency 8141: ReanimatedNativeView */;
rewardContentCentered = styles.rewardContentCentered;
items8 = [
<ReanimatedNativeView style={[rewardContentCentered, value7]} animatedProps={value9}>
{((Component) => <Component />)(importDefault(13619) /* metro dependency 13619: VideoQuestModalReward */)}
</ReanimatedNativeView>,
];
ReanimatedNativeView2 = importDefault(8141) /* metro dependency 8141: ReanimatedNativeView */;
object6 = {};
rewardContentCentered = styles.rewardContentCentered;
items9 = [rewardContentCentered];
items9[1] = platformUtilsModule.isAndroid() && styles.modalBackground;
items9[2] = value8;
object6.style = items9;
object6.pointerEvents = 'none';
items10 = [
(require(477) /* metro dependency 477: PlatformUtils */).isAndroid() && ((Component) => <Component align="top" style={styles.cloudsBackground} />)(importDefault(13598) /* metro dependency 13598: QuestModalContentCloudBackground */),
];
QuestGameLogotype = importDefault(13622) /* metro dependency 13622: QuestGameLogotype */;
moduleValue9 = require(9495) /* metro dependency 9495: AssetUtils */;
items10[1] = (
<QuestGameLogotype
assetUrl={moduleValue9.getQuestAsset(quest,
(require(9495) /* metro dependency 9495: AssetUtils */).QuestAssetType.LOGO_TYPE, 'dark').url}
maxHeight={90}
maxWidth={windowDimensions.get().width - 120}
/>
);
items8[1] = (
<ReanimatedNativeView2 {...object6}>
{items10}
</ReanimatedNativeView2>
);
items11 = [
<View {...viewBinding2Props}>
{items8}
</View>,
];
items11[1] = ((Component) => <Component align="top" style={styles.cloudsBackground} />)(importDefault(13598) /* metro dependency 13598: QuestModalContentCloudBackground */);
Stack = (require(4572) /* metro dependency 4572: StackNative */).Stack;
object7 = {direction: 'vertical'};
space = (importDefault(697) /* metro dependency 697: native */).space;
object7.spacing = space.PX_24;
object7.style = styles.questDetailsLandscape;
Stack2 = (require(4572) /* metro dependency 4572: StackNative */).Stack;
object8 = {'direction': 'horizontal', 'justify': 'space-between'};
space = (importDefault(697) /* metro dependency 697: native */).space;
object8.spacing = space.PX_8;
var pressableOpacityProps = {style: styles.questDetailsPrimary, onPress: handlePrimaryCtaPress};
config = quest.config;
messages = config.messages;
items12 = [
<Text
variant="heading-lg/semibold"
color="mobile-text-heading-primary"
accessibilityRole="header"
>
{messages.gameTitle}
</Text>,
];
config = quest.config;
messages = config.messages;
items12[1] = (
<Text variant="heading-sm/semibold" color="text-subtle">
{messages.gamePublisher}
</Text>
);
items14 = [
<Stack2 {...object8}>
<PressableOpacity {...pressableOpacityProps}>
{items12}
</PressableOpacity>
<View style={styles.questDetailsSecondary}>
{((Component) => <Component quest={quest} location={QuestsExperimentLocations.VIDEO_MODAL_MOBILE} sourceQuestContent={sourceQuestContent} />)(importDefault(13623) /* metro dependency 13623: QuestContextMenu */)}
</View>
</Stack2>,
];
items14[1] = value3 != null && <PressableOpacity onPress={handlePrimaryCtaPress}>{((Component) => <Component source={{uri: value3.url}} style={styles.playerThumbnail} />)(importDefault(5475) /* metro dependency 5475: FastImage */)}</PressableOpacity>;
Stack3 = (require(4572) /* metro dependency 4572: StackNative */).Stack;
object9 = {direction: 'horizontal'};
space = (importDefault(697) /* metro dependency 697: native */).space;
object9.spacing = space.PX_16;
const ShinyButton = (require(1305) /* metro dependency 1305: native */).ShinyButton;
items15 = [
<ShinyButton
onPress={handlePrimaryCtaPress}
style={styles.ctaPrimary}
text={(require(9505) /* metro dependency 9505: QuestCopyUtils */).getExternalCtaLabel(quest)}
/>,
];
items15[1] = isShareable && <IconButton accessibilityLabel={intl.string((require(1244) /* metro dependency 1244: indexNative */).t.Ej3B3Y)} icon={importDefault(9176) /* metro dependency 9176 */} onPress={handleShareQuest} variant="secondary" />;
items15[2] = value4 && <IconButton accessibilityLabel={intl.string((require(1244) /* metro dependency 1244: indexNative */).t.cfY4PE)} icon={importDefault(11906) /* metro dependency 11906 */} onPress={onNavigateToPostWatchVideo} variant="secondary" />;
items14[2] = (
<Stack3 {...object9}>
{items15}
</Stack3>
);
items11[2] = (
<Stack {...object7}>
{items14}
</Stack>
);
r8 = (
<View {...viewProps}>
{items11}
</View>
);
}
return (
<SafeAreaPaddingView bottom style={styles.wrapper}>
<View style={items2}>
{themeContextProvider}
{r8}
</View>
</SafeAreaPaddingView>
);
function _fun103355() { // fn#103355, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13791:3790, offset: 0x02264a3b, size: 67 bytes, params: 1, frame: 16
let value = environment.__proto__;
value = require(9495) /* metro dependency 9495: AssetUtils */;
const getQuestAsset = value.getQuestAsset;
const questBinding = quest;
const QuestAssetType = (require(9495) /* metro dependency 9495: AssetUtils */).QuestAssetType;
const HERO = QuestAssetType.HERO;
return Reflect.apply(getQuestAsset, value, [questBinding, HERO]);
}
function _fun103356() { // fn#103356, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13791:4166, offset: 0x02264a7e, size: 24 bytes, params: 1, frame: 11
Module00057.set(1);
}
function F_103357() { // fn#103357, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13791:4230, offset: 0x02264a96, size: 96 bytes, params: 1, frame: 16
let value = environment.__proto__;
value = require(4017) /* metro dependency 4017: ReanimatedRexport */;
const withDelay = value.withDelay;
return Reflect.apply(withDelay, value, [3000, TimingModule.withTiming(Module00057.get(), {duration: 1000})]);
}
function G_103358() { // fn#103358, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13791:4567, offset: 0x02073b6d, size: 24 bytes, params: 1, frame: 10
const object = {};
object.opacity = env0_4.get();
return object;
}
function j_103359() { // fn#103359, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13791:4697, offset: 0x02264af6, size: 31 bytes, params: 1, frame: 10
const object = {};
object.opacity = 1 - env0_4.get();
return object;
}
function U_103360() { // fn#103360, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13791:4829, offset: 0x02264b15, size: 50 bytes, params: 1, frame: 10
let value = env0_4.get();
value = 'none';
return {pointerEvents: value > 0.3 ? 'auto' : value};
}
}
function _fun103362({quest, captionsEnabled, handleClose, handlePrimaryCtaPress, handleRewardDetailsPress, handleShareQuest, handleOpenTranscript, handleToggleCaptions, isFullscreen, onNavigateToPostWatchVideo, onEnd, externallyPaused, sourceQuestContent, hasCaptionAsset, hasTranscriptAsset, isShareable}) { // fn#103362, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13791:7534, offset: 0x02264b82, size: 2385 bytes, params: 2, frame: 57
var r16;
var Button;
const intl = (require(1244) /* metro dependency 1244: indexNative */).intl;
const env0_3 = undefined;
var env0_4 = undefined;
const value3 = (QuestHooksModule).useQuestTaskDetails(quest);
const userStatus = quest.userStatus;
const value4 = userStatus?.completedAt != null;
const videoQuestProgressRemainingAccessibilityLabel = (VideoQuestUtilsModule).getVideoQuestProgressRemainingAccessibilityLabel(value3,
value4);
const VideoQuestPlayerRefactorExperiment = (ExperimentsModule).VideoQuestPlayerRefactorExperiment;
const useConfig = VideoQuestPlayerRefactorExperiment.useConfig;
let VIDEO_MODAL_MOBILE = QuestsExperimentLocations.VIDEO_MODAL_MOBILE;
const VideoQuestPlayer = Reflect.apply(useConfig, VideoQuestPlayerRefactorExperiment,
[{location: VIDEO_MODAL_MOBILE}]).enabled ? (require(13602) /* metro dependency 13602: VideoQuestPlayerRefactor */).VideoQuestPlayer : (require(13605) /* metro dependency 13605: VideoQuestPlayer */).VideoQuestPlayer;
let binding = env0_4;
const useContext = binding.useContext;
const QuestDockGestureContext = (QuestDockGestureContextModule).QuestDockGestureContext;
const windowDimensions = Reflect.apply(useContext, binding, [QuestDockGestureContext]).windowDimensions;
const value6 = binding.useMemo(function() {
var Math = global.Math;
return Math.floor(windowDimensions.get().width / 0.5625);
}, [windowDimensions]);
const value7 = binding.useCallback(function() {
}, []);
const value8 = (UseSafeAreaInsetsNative)();
var [property, env0_4] = env0_3(binding.useState(64), 2);
const value11 = binding.useCallback(_fun103365, []);
const value12 = binding.useMemo(_fun103366, [value6, property, windowDimensions, value8]);
const get = windowDimensions.get;
const styles = useStyles(Reflect.apply(get, windowDimensions, []).height - value12 - property < 200);
const SafeAreaPaddingView = (SafeAreaViewModule).SafeAreaPaddingView;
const items5 = [styles.wrapper];
items5[1] = styles.wrapperPortrait;
const items2 = [styles.videoWrapper];
items2[1] = value12 == null ? {flexGrow: 1} : {height: value12};
const ThemeContextProvider = (NativeModule2).ThemeContextProvider;
const DARKER = ThemeTypes.DARKER;
const items3 = [
<ThemeContextProvider theme={DARKER}>
<VideoQuestPlayer
captionsEnabled={captionsEnabled}
onLoad={value7}
externallyPaused={externallyPaused}
orientation="portrait"
contentInsets={env0_15}
handleOpenTranscript={handleOpenTranscript}
handleToggleCaptions={handleToggleCaptions}
isFullscreen={isFullscreen}
onEnd={onEnd}
sourceQuestContent={sourceQuestContent}
hasCaptionAsset={hasCaptionAsset}
hasTranscriptAsset={hasTranscriptAsset}
/>
</ThemeContextProvider>,
];
const defaultImport = LinearGradient;
binding = env0_11;
const binding2 = env0_12;
items3[1] = ((Component) => <Component start={binding} end={binding2} style={styles.gradientTop} colors={env0_13} />)(defaultImport);
items3[2] = ((Component) => <Component start={binding} end={binding2} style={styles.gradientBottom} colors={env0_14} />)(defaultImport);
const items4 = [styles.videoContentWrapper];
items4[1] = styles.videoContentWrapperPortrait;
const WHITE = (importDefault(697) /* metro dependency 697: native */).colors.WHITE;
const videoQuestModalHeader = (
<VideoQuestModalHeader
closeButtonIconColor={WHITE}
onClose={handleClose}
showCurrentVideoTime
withTextShadow
/>
);
const Stack = (StackNativeModule).Stack;
const PX_24 = (importDefault(697) /* metro dependency 697: native */).space.PX_24;
const Stack2 = (StackNativeModule).Stack;
const PX_8 = (importDefault(697) /* metro dependency 697: native */).space.PX_8;
const PressableOpacity = (PressablesModule).PressableOpacity;
const Text = (TextModule).Text;
const stack = (
<Stack2
direction="horizontal"
justify="space-between"
spacing={PX_8}
>
<PressableOpacity style={styles.questDetailsPrimary} onPress={handlePrimaryCtaPress}>
<Text
variant="heading-lg/semibold"
color="white"
style={styles.textShadow}
accessibilityRole="header"
>
{quest.config.messages.gameTitle}
</Text>
<Text
variant="heading-sm/semibold"
color="white"
style={[styles.textShadow, styles.questDetailsSubheader]}
>
{quest.config.messages.gamePublisher}
</Text>
</PressableOpacity>
<View style={styles.questDetailsSecondary}>
{((Component) => <Component quest={quest} size="x-sm" progress={value3.percentComplete} hasConfetti onPress={handleRewardDetailsPress} accessibilityLabel={videoQuestProgressRemainingAccessibilityLabel} />)(QuestProgressIndicator)}
</View>
</Stack2>
);
const ShinyButton = (NativeModule).ShinyButton;
items3[3] = (
<View style={items4}>
{videoQuestModalHeader}
<Stack direction="vertical" spacing={PX_24}>
{stack}
<ShinyButton
onPress={handlePrimaryCtaPress}
style={styles.ctaPrimary}
text={(require(9505) /* metro dependency 9505: QuestCopyUtils */).getExternalCtaLabel(quest)}
/>
</Stack>
</View>
);
const view = (
<View style={items2}>
{items3}
</View>
);
const PX_4 = (importDefault(697) /* metro dependency 697: native */).space.PX_4;
if (value4) {
var viewBindingProps = {style: styles.viewRewardBtn};
Button = (require(4578) /* metro dependency 4578: ButtonNative */).Button;
r16 = (
<View {...viewBindingProps}>
<Button
icon={((ArrowSmallRightIcon) => <ArrowSmallRightIcon size="sm" />)((require(11905) /* metro dependency 11905: ArrowSmallRightIcon */).ArrowSmallRightIcon)}
iconPosition="end"
onPress={onNavigateToPostWatchVideo}
variant="secondary"
size="sm"
text={intl.string((require(1244) /* metro dependency 1244: indexNative */).t['jyYgZ+'])}
/>
</View>
);
} else {
r16 = value4;
}
const r11 = hasTranscriptAsset && ((Component) => <Component accessibilityLabel={intl.string((require(1244) /* metro dependency 1244: indexNative */).t.KCzjTi)} onPress={handleOpenTranscript}>{((TranscriptOutlineIcon) => <TranscriptOutlineIcon color={styles.iconDisabled.color} />)((require(13526) /* metro dependency 13526: TranscriptOutlineIcon */).TranscriptOutlineIcon)}</Component>)(env0_25);
const r10 = hasCaptionAsset && ((Component) => <Component accessibilityLabel={intl.string((require(1244) /* metro dependency 1244: indexNative */).t.bDSZO1)} onPress={handleToggleCaptions}>{((ClosedCaptionsOutlineIcon) => <ClosedCaptionsOutlineIcon color={captionsEnabled ? styles.icon.color : styles.iconDisabled.color} />)((require(13524) /* metro dependency 13524: ClosedCaptionsOutlineIcon */).ClosedCaptionsOutlineIcon)}</Component>)(env0_25);
const r9 = isShareable && ((Component) => <Component accessibilityLabel={intl.string((require(1244) /* metro dependency 1244: indexNative */).t.Ej3B3Y)} onPress={handleShareQuest}>{((ShareIcon) => <ShareIcon color={(importDefault(697) /* metro dependency 697: native */).colors.TEXT_DEFAULT} />)((require(9798) /* metro dependency 9798: ShareIcon */).ShareIcon)}</Component>)(env0_25);
VIDEO_MODAL_MOBILE = QuestsExperimentLocations.VIDEO_MODAL_MOBILE;
return (
<SafeAreaPaddingView bottom style={items5}>
{view}
<Stack
direction="horizontal"
justify="flex-end"
align="center"
style={styles.footer}
spacing={PX_4}
onLayout={value11}
>
{r16}
{r11}
{r10}
{r9}
<QuestContextMenu
quest={quest}
location={VIDEO_MODAL_MOBILE}
sourceQuestContent={sourceQuestContent}
>
{children_103367}
</QuestContextMenu>
</Stack>
</SafeAreaPaddingView>
);
function _fun103365({nativeEvent}) { // fn#103365, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13791:8375, offset: 0x0226550b, size: 36 bytes, params: 2, frame: 11
env0_4(nativeEvent.layout.height);
}
function _fun103366() { // fn#103366, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13791:8429, offset: 0x0226552f, size: 80 bytes, params: 1, frame: 14
const Math = global.Math;
const min = Math.min;
const windowDimensionsBinding = windowDimensions;
const get = windowDimensionsBinding.get;
return Reflect.apply(min, Math, [Reflect.apply(get, windowDimensionsBinding,
[]).height - env0_2.top - env0_2.bottom - env0_3, env0_1]);
}
function children_103367(a0) { // fn#103367, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13791:10980, offset: 0x0226557f, size: 190 bytes, params: 2, frame: 22
const ref = a0.ref;
const value = Object.create(null);
value.ref = 0;
const value2 = copyDataProperties({}, a0, value, undefined);
const binding = env1_25;
const object = {};
const intl = (IndexNativeModule).intl;
const string = intl.string;
const PdRCRg = (IndexNativeModule).t.PdRCRg;
object.accessibilityLabel = Reflect.apply(string, intl, [PdRCRg]);
object.ref = ref;
copyDataProperties(object, value2, value);
const MoreHorizontalIcon = (MoreHorizontalIconModule).MoreHorizontalIcon;
const TEXT_DEFAULT = (Native).colors.TEXT_DEFAULT;
return ((Component) => <Component {...object}><MoreHorizontalIcon color={TEXT_DEFAULT} /></Component>)(binding);
}
}
function FooterButton(a0, a1) { // fn#103368, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13791:11267, offset: 0x0226563d, size: 93 bytes, params: 3, frame: 15
const styles = useStyles();
const PressableOpacity = (PressablesModule).PressableOpacity;
return (
<PressableOpacity
accessibilityRole="button"
style={styles.footerButton}
{...a0}
{...{['ref']: a1}}
/>
);
}
function VideoQuestModalContentInProgress({isFullscreen, onClose, onNavigateToPostWatchVideo, onEnd, setIsFullscreen, sourceQuestContent}) { // fn#103369, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13791:11414, offset: 0x0226569a, size: 687 bytes, params: 2, frame: 35
const useVideoQuestModalContext = VideoQuestModalContextModule.useVideoQuestModalContext;
const quest = Reflect.apply(useVideoQuestModalContext, VideoQuestModalContextModule, []).quest;
const binding = env0_4;
const value2 = binding.useMemo(_fun103370, [quest]);
const value3 = binding.useMemo(_fun103371, [quest]);
let useState = binding.useState;
const value4 = Reflect.apply(useState, binding, [false]);
const value5 = Module00057(value4, 2);
const property = value5[0];
const env0_2 = value5[1];
const value6 = binding.useCallback(_fun103372, []);
const value7 = binding.useCallback(_fun103374, [quest]);
const value8 = (ContentImpressionTrackerHooksModule).useQuestImpressionId();
useState = binding.useState;
const value9 = Module00057(Reflect.apply(useState, binding, [false]), 2);
const property2 = value9[0];
var env0_4 = value9[1];
const isShareableQuest2 = QuestUtilsModule.isShareableQuest(quest.config);
const value10 = binding.useCallback(_fun103375, [isShareableQuest2, quest.id, value8, sourceQuestContent]);
const value11 = (UseVideoQuestClickCtaAndMaybeCloseModalModule).useVideoQuestClickCtaAndMaybeCloseModal({quest: quest,
onClose: onClose, sourceQuestContent: sourceQuestContent, impressionId: value8});
const value12 = binding.useCallback(_fun103378, [quest.id]);
const value13 = (UseVideoExternallyPausedModule).useVideoExternallyPaused(quest.id,
property2);
const tasks = quest.config.taskConfigV2.tasks;
const FirstPartyQuestTaskTypes = (FirstPartyQuestTaskTypesModule).FirstPartyQuestTaskTypes;
const WATCH_VIDEO_ON_MOBILE = FirstPartyQuestTaskTypes.WATCH_VIDEO_ON_MOBILE;
const property3 = tasks[WATCH_VIDEO_ON_MOBILE];
let r1 = property3 == null || (require(9522) /* metro dependency 9522: VideoQuestUtils */).getVideoOrientation(property3) === 'portrait';
r1 = r1 ? env0_23 : env0_22;
return ((Component) => <Component quest={quest} captionsEnabled={property} handleClose={onClose} handlePrimaryCtaPress={value11} handleRewardDetailsPress={value12} handleShareQuest={value10} handleOpenTranscript={value7} handleToggleCaptions={value6} isFullscreen={isFullscreen} onNavigateToPostWatchVideo={onNavigateToPostWatchVideo} onEnd={onEnd} setIsFullscreen={setIsFullscreen} externallyPaused={value13} sourceQuestContent={sourceQuestContent} hasCaptionAsset={value2 != null} hasTranscriptAsset={value3 != null} isShareable={isShareableQuest2} />)(r1);
function _fun103370() { // fn#103370, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13791:11634, offset: 0x02265949, size: 75 bytes, params: 1, frame: 18
let value = environment.__proto__;
value = require(9495) /* metro dependency 9495: AssetUtils */;
const getQuestAsset = value.getQuestAsset;
const questBinding = quest;
const QuestAssetType = (require(9495) /* metro dependency 9495: AssetUtils */).QuestAssetType;
const VIDEO_PLAYER_CAPTION = QuestAssetType.VIDEO_PLAYER_CAPTION;
return Reflect.apply(getQuestAsset, value, [questBinding, VIDEO_PLAYER_CAPTION, undefined, true]);
}
function _fun103371() { // fn#103371, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13791:11738, offset: 0x02265994, size: 75 bytes, params: 1, frame: 18
let value = environment.__proto__;
value = require(9495) /* metro dependency 9495: AssetUtils */;
const getQuestAsset = value.getQuestAsset;
const questBinding = quest;
const QuestAssetType = (require(9495) /* metro dependency 9495: AssetUtils */).QuestAssetType;
const VIDEO_PLAYER_TRANSCRIPT = QuestAssetType.VIDEO_PLAYER_TRANSCRIPT;
return Reflect.apply(getQuestAsset, value, [questBinding, VIDEO_PLAYER_TRANSCRIPT, undefined, true]);
}
function _fun103372() { // fn#103372, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13791:11889, offset: 0x022659df, size: 25 bytes, params: 1, frame: 11
return env0_2(function(a0) {
return !a0;
});
}
function _fun103374() { // fn#103374, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13791:11926, offset: 0x022659f8, size: 117 bytes, params: 1, frame: 18
let value = environment.__proto__;
const defaultImport = importDefault(dependencyMap[48]);
const openLazy = defaultImport.openLazy;
value = require(dependencyMap[50]);
value = value(dependencyMap[49], dependencyMap.paths);
const questBinding = quest;
Reflect.apply(openLazy, defaultImport, [value, 'transcript-' + questBinding.id, {quest: questBinding}]);
}
function _fun103375() { // fn#103375, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13791:12141, offset: 0x02265a6d, size: 516 bytes, params: 1, frame: 22
var environment;
var value2;
var moduleValue;
var object;
var questBinding;
var id;
const QuestContent = (QuestTypesModule).QuestContent;
const QuestContentCTA = (AnalyticsTypesModule).QuestContentCTA;
var moduleValue3;
var captureAdUserAction;
var moduleValue4;
var showShareActionSheet;
var moduleValue5;
var getQuestUrl;
if (ReactNativeModule.View) {
value2 = environment.__proto__;
moduleValue = require(9519) /* metro dependency 9519: AdAnalyticsInterfaceExperiment */;
if (moduleValue.shouldMigrateToAdAnalyticsInterface((require(9519) /* metro dependency 9519: AdAnalyticsInterfaceExperiment */).AdAnalyticsInterfaceExperimentStep.STEP_2_CLICKED_INTERNAL,
'video_quest_modal_in_progress')) {
moduleValue3 = require(9517) /* metro dependency 9517: captureAdUserAction */;
captureAdUserAction = moduleValue3.captureAdUserAction;
object = {};
object.type = (require(9518) /* metro dependency 9518: captureAdUserActionTypes */).AdUserActionType.CLICK_INTERNAL;
object.adCreativeType = (require(7121) /* metro dependency 7121: AdCreativeType */).AdCreativeType.QUEST;
object.adCreativeId = quest.id;
object.questContentCTA = QuestContentCTA.MOBILE_SHARESHEET;
object.surfaceId = QuestContent.VIDEO_MODAL_MOBILE;
object.sourceQuestContent = sourceQuestContent;
object.impressionId = Module00057;
Reflect.apply(captureAdUserAction, moduleValue3, [object]);
} else {
(require(7110) /* metro dependency 7110: AnalyticsActions */).trackQuestContentClicked({questId: quest.id,
questContent: QuestContent.VIDEO_MODAL_MOBILE, questContentCTA: QuestContentCTA.MOBILE_SHARESHEET,
impressionId: Module00057, sourceQuestContent: sourceQuestContent});
}
env0_4(true);
moduleValue4 = require(9212) /* metro dependency 9212: showShareActionSheetAndroid */;
showShareActionSheet = moduleValue4.showShareActionSheet;
object = {};
moduleValue5 = require(9505) /* metro dependency 9505: QuestCopyUtils */;
getQuestUrl = moduleValue5.getQuestUrl;
questBinding = quest;
id = questBinding.id;
object.message = Reflect.apply(getQuestUrl, moduleValue5, [id]);
id = questBinding.id;
Reflect.apply(showShareActionSheet, moduleValue4, [object, 'Video Quest Modal - ' + id, undefined, _fun103376,
_fun103377]);
}
function _fun103376() { // fn#103376, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13791:12893, offset: 0x0101b7c8, size: 18 bytes, params: 1, frame: 11
env1_4(false);
}
function _fun103377() { // fn#103377, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13791:12907, offset: 0x0101b7c8, size: 18 bytes, params: 1, frame: 11
env1_4(false);
}
}
function _fun103378() { // fn#103378, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:13791:13063, offset: 0x02265c71, size: 57 bytes, params: 1, frame: 13
const value = environment.__proto__;
(QuestUtilsNativeModule).openRewardDetailsBottomSheet({questId: quest.id});
}
}
}
global.__d(_fun103352, 13601, [57, 31, 27, 6528, 482, 33, 674, 697, 4501, 477, 9495, 9511, 13602, 13605, 13573,
4017, 4504, 1585, 6618, 3868, 13618, 8141, 13619, 13598, 13622, 4572, 5278, 4573, 13623, 5475, 1305, 9505, 8341,
1244, 9176, 11906, 9483, 9522, 4589, 13625, 13620, 4578, 11905, 13526, 13524, 9798, 8638, 13597, 4080, 13626,
1962, 9513, 7114, 9519, 9517, 9518, 7121, 7120, 6531, 7110, 9212, 13627, 9480, 13628, 6535,
2]) /* metro module 13601, dependencies: [57, 31, 27, 6528, 482, 33, 674, 697, 4501, 477, 9495, 9511, 13602, 13605, 13573, 4017, 4504, 1585, 6618, 3868, 13618, 8141, 13619, 13598, 13622, 4572, 5278, 4573, 13623, 5475, 1305, 9505, 8341, 1244, 9176, 11906, 9483, 9522, 4589, 13625, 13620, 4578, 11905, 13526, 13524, 9798, 8638, 13597, 4080, 13626, 1962, 9513, 7114, 9519, 9517, 9518, 7121, 7120, 6531, 7110, 9212, 13627, 9480, 13628, 6535, 2] */;