/* Metro module 14395; source: modules/guilds_bar/native/GuildsBarAnimatedItemWrapper.tsx; dependencies: [31, 4586, 14385, 33, 4501, 697, 3860, 4508, 4577, 4017, 8141, 14396, 14374, 4013, 1244, 3869, 6821, 7599, 2] */ import Native from '../../../external/discord_common/js/packages/tokens/native.tsx'; /* Metro dependency 697 */ import NativeView from '../../core/native/NativeView.tsx'; /* Metro dependency 6821 */ import ReanimatedNativeView from '../../core/native/ReanimatedNativeView.tsx'; /* Metro dependency 8141 */ import UsePressability from '../../core/native/usePressability.tsx'; /* Metro dependency 14396 */ import * as FileImportTrackerModule from '../../../by-id/module-00002-FileImportTracker.js'; /* Metro dependency 2 */ import * as ReactModule from '../../../by-id/module-00031-React.js'; /* Metro dependency 31 */ import * as IndexNativeModule from '../../../intl/index.native.tsx'; /* Metro dependency 1244 */ import * as UseTokenModule from '../../../design/tokens/native/useToken.tsx'; /* Metro dependency 3860 */ import * as HomeDrawerExperimentModule from '../../home_drawer/native/HomeDrawerExperiment.tsx'; /* Metro dependency 4013 */ 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 TransitionGroupModule from '../../../design/components/TransitionGroup/TransitionGroup.tsx'; /* Metro dependency 4508 */ import * as SpringModule from '../../../design/animation/reanimated/spring/spring.tsx'; /* Metro dependency 4577 */ import * as StyleConstantsModule from '../../../design/components/Styles/native/styleConstants.tsx'; /* Metro dependency 4586 */ import * as ClipViewModule from '../../../design/components/Icon/native/ClipView.tsx'; /* Metro dependency 7599 */ import * as UseHomeDrawerGestureModule from '../../home_drawer/native/useHomeDrawerGesture.tsx'; /* Metro dependency 14374 */ import * as GuildsBarConstantsModule from './GuildsBarConstants.tsx'; /* Metro dependency 14385 */ function _fun109011(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#109011, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14592:6, offset: 0x023394a0, size: 391 bytes, params: 8, frame: 21 const env0_0 = require; const UnreadIndicator2 = UnreadIndicator; const renderUnreadIndicator2 = renderUnreadIndicator; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); let value = GuildsBarConstantsModule; const env0_5 = value.GUILD_ITEM_HIT_SLOP; const env0_6 = value.useGuildWrapperSize; value = require(33) /* metro dependency 33 */; const env0_7 = value.jsx; const env0_8 = value.jsxs; const env0_9 = {'mass': 0.8, 'damping': 100, 'stiffness': 150}; const env0_10 = {'mass': 0.25, 'damping': 100, 'stiffness': 200}; const env0_11 = (CreateStylesModule).createStyles(_fun109018); const env0_12 = (CreateStylesModule).createStyles(_fun109019); object = {code: "function GuildsBarAnimatedItemWrapperTsx1(values){const{disableEntering,sharedId,id,withSpring,BAR_SPRING_PHYSICS,guildItemSize}=this.__closure;if(disableEntering||sharedId!=null&&sharedId.get()!==id){return{animations:{},initialValues:{}};}return{animations:{originY:withSpring(values.targetOriginY,BAR_SPRING_PHYSICS,'animate-always'),originX:withSpring(values.targetOriginX,BAR_SPRING_PHYSICS,'animate-always'),height:withSpring(values.targetHeight,BAR_SPRING_PHYSICS,'animate-always')},initialValues:{height:8,originY:guildItemSize/2,originX:-12}};}"}; object = {code: "function GuildsBarAnimatedItemWrapperTsx2(values){const{withSpring,BAR_SPRING_PHYSICS,transitionState,TransitionStates,cleanUp,runOnJS}=this.__closure;return{animations:{originY:withSpring(values.targetOriginY,BAR_SPRING_PHYSICS,'animate-always'),originX:withSpring(values.targetOriginX,BAR_SPRING_PHYSICS,'animate-always'),height:withSpring(values.targetHeight,BAR_SPRING_PHYSICS,'animate-always')},initialValues:{height:values.currentHeight,originY:values.currentOriginY,originX:values.currentOriginX},callback:function(finished){if(transitionState===TransitionStates.YEETED&&finished&&cleanUp!=null){runOnJS(cleanUp)();}}};}"}; object = {code: "function GuildsBarAnimatedItemWrapperTsx3(){const{withSpring,circle,guildItemSelectedBorderRadius,guildItemSize,CORNER_SPRING_PHYSICS}=this.__closure;return{borderRadius:withSpring(!circle?guildItemSelectedBorderRadius:guildItemSize/2,CORNER_SPRING_PHYSICS,'animate-always')};}"}; (FileImportTrackerModule).fileFinishedImporting('modules/guilds_bar/native/GuildsBarAnimatedItemWrapper.tsx'); exports.default = GuildsBarAnimatedItemWrapper; exports.useGuildsBarAnimatedWrapperStyles = useGuildsBarAnimatedWrapperStyles; exports.UnreadIndicator = UnreadIndicator2; exports.renderUnreadIndicator = renderUnreadIndicator2; function UnreadIndicator({selected, sharedId, id, transitionState = require(dependencyMap[7]).TransitionStates.MOUNTED, cleanUp}) { // fn#109012, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14592:2553, offset: 0x02339627, size: 666 bytes, params: 2, frame: 28 const cleanUp2 = cleanUp; const useToken = UseTokenModule.useToken; const GUILD_BAR_ITEM_SIZE = (Native).modules.mobile.GUILD_BAR_ITEM_SIZE; const value2 = Reflect.apply(useToken, UseTokenModule, [GUILD_BAR_ITEM_SIZE]); const styles = useStyles(useGuildWrapperSize()); const TransitionStates = (require(4508) /* metro dependency 4508: TransitionGroup */).TransitionStates; const MOUNTED = TransitionStates.MOUNTED; const value4 = transitionState === MOUNTED; const r7 = selected ? transitionState === (require(4508) /* metro dependency 4508: TransitionGroup */).TransitionStates.YEETED ? 8 : 40 : 8; let binding = cleanUp2; const value7 = binding.useMemo(_fun109013, [r7, transitionState, styles.unreadIndicator]); binding = cleanUp2; let useCallback = binding.useCallback; let closure = UnreadIndicatorP; object = {disableEntering: value4, sharedId: sharedId, id: id}; object.withSpring = (require(4577) /* metro dependency 4577: spring */).withSpring; object.BAR_SPRING_PHYSICS = env0_10; object.guildItemSize = value2; closure.__closure = object; closure.__workletHash = 404454683979; closure.__initData = env0_13; const value8 = Reflect.apply(useCallback, binding, [closure, [value4, sharedId, id, value2]]); binding = cleanUp2; useCallback = binding.useCallback; closure = UnreadIndicator_; object = {withSpring: (require(4577) /* metro dependency 4577: spring */).withSpring, BAR_SPRING_PHYSICS: env0_10, transitionState: transitionState}; object.TransitionStates = TransitionStates; object.cleanUp = cleanUp; object.runOnJS = (require(4017) /* metro dependency 4017: ReanimatedRexport */).runOnJS; closure.__closure = object; closure.__workletHash = 10632665703864; closure.__initData = env0_14; return ((Component) => )(ReanimatedNativeView); function _fun109013() { // fn#109013, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14592:2851, offset: 0x023398c1, size: 120 bytes, params: 1, frame: 14 const items2 = [styles.unreadIndicator]; const object = {height: env0_7, marginTop: env0_7 / 2 * -1}; const binding = env0_2; const value = environment.__proto__; const TransitionStates = (TransitionGroupModule).TransitionStates; const YEETED = TransitionStates.YEETED; object.marginLeft = binding !== YEETED ? 0 : -4; items2[1] = object; return items2; } function UnreadIndicatorP(a0) { // fn#109014, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14592:3001, owner: UnreadIndicator.p, offset: 0x02339939, size: 247 bytes, params: 2, frame: 24 var object2; var object4; var value3; if (env0_6) { object2 = {animations: {}, initialValues: {}}; } else if (sharedId == null) { object4 = {}; value3 = environment.__proto__; object4.originY = (require(4577) /* metro dependency 4577: spring */).withSpring(a0.targetOriginY, env1_10, 'animate-always'); object4.originX = (require(4577) /* metro dependency 4577: spring */).withSpring(a0.targetOriginX, env1_10, 'animate-always'); object4.height = (require(4577) /* metro dependency 4577: spring */).withSpring(a0.targetHeight, env1_10, 'animate-always'); object2 = {animations: object4, initialValues: {'height': 8, 'originY': null, 'originX': -12, originY: StyleConstantsModule.IOS_POINTER_STYLE / 2}}; } else if (sharedId.get() !== id) { object2 = {animations: {}, initialValues: {}}; } else { object4 = {}; value3 = environment.__proto__; object4.originY = (require(4577) /* metro dependency 4577: spring */).withSpring(a0.targetOriginY, env1_10, 'animate-always'); object4.originX = (require(4577) /* metro dependency 4577: spring */).withSpring(a0.targetOriginX, env1_10, 'animate-always'); object4.height = (require(4577) /* metro dependency 4577: spring */).withSpring(a0.targetHeight, env1_10, 'animate-always'); object2 = {animations: object4, initialValues: {'height': 8, 'originY': null, 'originX': -12, originY: StyleConstantsModule.IOS_POINTER_STYLE / 2}}; } return object2; } function UnreadIndicator_({targetOriginY, targetOriginX, targetHeight, currentHeight, currentOriginY, currentOriginX}) { // fn#109015, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14592:3521, owner: UnreadIndicator._, offset: 0x02339a30, size: 196 bytes, params: 2, frame: 23 const object2 = {}; object2.originY = (require(4577) /* metro dependency 4577: spring */).withSpring(targetOriginY, env1_10, 'animate-always'); object2.originX = (require(4577) /* metro dependency 4577: spring */).withSpring(targetOriginX, env1_10, 'animate-always'); object2.height = (require(4577) /* metro dependency 4577: spring */).withSpring(targetHeight, env1_10, 'animate-always'); return {animations: object2, initialValues: {height: currentHeight, originY: currentOriginY, originX: currentOriginX}, callback: callback_109016}; function _Callback(a0) { // fn#109016, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14592:3829, owner: UnreadIndicator._.callback, offset: 0x02339af4, size: 113 bytes, params: 2, frame: 15 let value = a0; const binding = env1_2; const TransitionStates = (TransitionGroupModule).TransitionStates; const YEETED = TransitionStates.YEETED; if (binding === YEETED && value && cleanUp != null) { value = require(4017) /* metro dependency 4017: ReanimatedRexport */; value.runOnJS(cleanUp)(); } } } } function renderUnreadIndicator(a0, {selected, sharedId, id}, a2, a3) { // fn#109017, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14592:4212, offset: 0x02339b65, size: 77 bytes, params: 5, frame: 16 return ( ); } function _fun109018() { // fn#109018, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14592:320, offset: 0x02339bb2, size: 194 bytes, params: 1, frame: 16 const value = a0; const r2 = value !== undefined ? value : 56; const object2 = {'position': 'absolute', 'top': null, 'left': -4, 'height': 8, 'width': 8}; object2.top = r2 / 2; object2.borderRadius = (importDefault(697) /* metro dependency 697: native */).radii.xs; const INTERACTIVE_TEXT_ACTIVE = (importDefault(697) /* metro dependency 697: native */).colors.INTERACTIVE_TEXT_ACTIVE; object2.backgroundColor = INTERACTIVE_TEXT_ACTIVE; return {draggedElement: {opacity: 0}, selectedBackgroundOverlay: {'position': 'absolute', 'top': 0, 'left': 0, 'right': 0, 'bottom': 0}, container: {'position': 'relative', 'overflow': 'visible'}, unreadIndicator: object2, expandedChildrenWrapper: {'position': 'absolute', 'left': null, 'top': 0, 'right': 8, 'height': null, 'display': 'flex', 'flexDirection': 'row', 'alignItems': 'center', left: r2 + 16, height: r2}}; } function _fun109019(a0, a1, a2, a3) { // fn#109019, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14592:804, offset: 0x02339c74, size: 300 bytes, params: 5, frame: 18 const object = {}; const object2 = {position: 'relative'}; let GUILD_BAR_ITEM_MARGIN = (importDefault(697) /* metro dependency 697: native */).modules.mobile.GUILD_BAR_ITEM_MARGIN; object2.paddingTop = GUILD_BAR_ITEM_MARGIN; GUILD_BAR_ITEM_MARGIN = (importDefault(697) /* metro dependency 697: native */).modules.mobile.GUILD_BAR_ITEM_MARGIN; object2.paddingBottom = GUILD_BAR_ITEM_MARGIN; object2.paddingLeft = 12; object2.height = a3; object2.width = a2 + GUILD_ITEM_HIT_SLOP.left + GUILD_ITEM_HIT_SLOP.right; object.pressableWrapper = object2; const value3 = 'transparent'; object.itemShape = {'position': 'relative', 'width': null, 'height': null, 'overflow': 'hidden', 'justifyContent': 'center', 'alignItems': 'center', width: a2, height: a2, backgroundColor: a1 ? value3 : (importDefault(697) /* metro dependency 697: native */).colors.MOBILE_GUILDBAR_ICON_BACKGROUND_DEFAULT}; object.itemShapeSelected = {backgroundColor: a0 ? a1 ? value3 : (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_SURFACE_HIGH : (importDefault(697) /* metro dependency 697: native */).colors.BACKGROUND_BRAND}; return object; } function GuildsBarAnimatedItemWrapper({id, selected, unread, circle, children, externalChildren, expandedChildren, config, label, hint, draggable, cutouts, isDragTarget, dragState, isDragPreview, draggedItemSize, overState, styles, accessibilityActions, onAccessibilityAction, preventClipping, expanded, entering, exiting, layout, zIndex, sharedId}) { // fn#109020, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14592:4760, offset: 0x02339da0, size: 1626 bytes, params: 2, frame: 50 const hint2 = hint; draggable = !(draggable === undefined) && draggable; isDragTarget = !(isDragTarget === undefined) && isDragTarget; isDragPreview = !(isDragPreview === undefined) && isDragPreview; draggedItemSize = draggedItemSize === undefined ? 0 : draggedItemSize; const styles3 = styles; preventClipping = !(preventClipping === undefined) && preventClipping; zIndex = zIndex === undefined ? 0 : zIndex; const value9 = useGuildWrapperSize(); let useToken = UseTokenModule.useToken; const GUILD_BAR_ITEM_SIZE = (Native).modules.mobile.GUILD_BAR_ITEM_SIZE; const value10 = Reflect.apply(useToken, UseTokenModule, [GUILD_BAR_ITEM_SIZE]); const styles2 = useStyles(value9); const styles22 = styles2; const value11 = (UsePressability)(config); useToken = UseTokenModule.useToken; const GUILD_ITEM_SELECTED_BORDER_RADIUS = (Native).modules.mobile.GUILD_ITEM_SELECTED_BORDER_RADIUS; const value12 = Reflect.apply(useToken, UseTokenModule, [GUILD_ITEM_SELECTED_BORDER_RADIUS]); const useAnimatedStyle = ReanimatedRexportModule.useAnimatedStyle; const GuildsBarAnimatedItemWrapperW2 = GuildsBarAnimatedItemWrapperW; const object = {}; object.withSpring = (require(4577) /* metro dependency 4577: spring */).withSpring; object.circle = circle; object.guildItemSelectedBorderRadius = value12; object.guildItemSize = value10; object.CORNER_SPRING_PHYSICS = styles3; GuildsBarAnimatedItemWrapperW2.__closure = object; GuildsBarAnimatedItemWrapperW2.__workletHash = 15930523896348; GuildsBarAnimatedItemWrapperW2.__initData = styles22; const value13 = Reflect.apply(useAnimatedStyle, ReanimatedRexportModule, [GuildsBarAnimatedItemWrapperW2]); const binding = hint2; const useContext = binding.useContext; const HomeDrawerStateContext = (UseHomeDrawerGestureModule).HomeDrawerStateContext; const {guildsBarLabelDrawerStyle, guildsBarIconDrawerStyle, guildsBarUnreadDrawerStyle} = Reflect.apply(useContext, binding, [HomeDrawerStateContext]); const value15 = hint2.useMemo(_fun109022, [isDragTarget, dragState, draggedItemSize, overState, zIndex, value9]); const value16 = hint2.useMemo(function() { return [styles.pressableWrapper, isDragTarget ? styles.draggedElement : undefined, IOS_POINTER_STYLE]; }, [styles.pressableWrapper, isDragTarget, styles2.draggedElement]); let r18 = !unread && !selected; r18 = !r18 ? isDragTarget : r18; r18 = !r18 ? isDragPreview : r18; const value19 = hint2.useMemo(_fun109024, [r18, selected, sharedId, id]); const MobileHomeDrawerExperiment = (HomeDrawerExperimentModule).MobileHomeDrawerExperiment; const useConfig = MobileHomeDrawerExperiment.useConfig; const enableHome = Reflect.apply(useConfig, MobileHomeDrawerExperiment, [{location: 'guilds_bar'}]).enableHome; const env0_18 = hint2.useRef(undefined); hint2.useEffect(_fun109025, [expanded]); const value23 = hint2.useMemo(_fun109026, [hint, draggable, accessibilityActions != null && accessibilityActions.length > 0]); const items4 = [enableHome ? styles2.container : null, value15]; const defaultImport2 = ReanimatedNativeView; const r12 = enableHome ? guildsBarIconDrawerStyle : null; const defaultImport3Props = {...value11}; defaultImport3Props['style'] = value16; defaultImport3Props['accessibilityLabel'] = label; defaultImport3Props['accessible'] = true; defaultImport3Props['accessibilityRole'] = 'button'; defaultImport3Props['accessibilityState'] = {selected: selected, expanded: expanded}; defaultImport3Props['hitSlop'] = GUILD_ITEM_HIT_SLOP; defaultImport3Props['accessibilityHint'] = value23.length > 0 ? value23 : undefined; defaultImport3Props['collapsable'] = false; defaultImport3Props['accessibilityActions'] = accessibilityActions; defaultImport3Props['onAccessibilityAction'] = onAccessibilityAction; const items2 = [externalChildren]; const defaultImport4 = ReanimatedNativeView; const items3 = [{position: 'absolute'}]; items3[1] = enableHome ? guildsBarUnreadDrawerStyle : null; const TransitionItem = (TransitionGroupModule).TransitionItem; items2[1] = ((Component) => )(defaultImport4); const ClipViewAnimated = (ClipViewModule).ClipViewAnimated; items2[2] = ( {!isDragTarget && children} ); return ( {((Component) => {items2})(defaultImport2)} { enableHome ? ( {expandedChildren} ) : null } ); function GuildsBarAnimatedItemWrapperW() { // fn#109021, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14592:5358, owner: GuildsBarAnimatedItemWrapper.W, offset: 0x0233a3fa, size: 82 bytes, params: 1, frame: 17 return {borderRadius: SpringModule.withSpring(circle ? env0_14 / 2 : env0_16, env1_9, 'animate-always')}; } function _fun109022() { // fn#109022, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14592:5751, offset: 0x0233a44c, size: 182 bytes, params: 1, frame: 7 const r4 = isDragTarget ? dragState !== 'dragging' ? overState == null || overState === 'self' ? 'none' : dragState === 'dragging' ? 'drag-target' : 'none' : overState !== 'self' ? 'hide' : overState == null || overState === 'self' ? 'none' : dragState === 'dragging' ? 'drag-target' : 'none' : overState == null || overState === 'self' ? 'none' : dragState === 'dragging' ? 'drag-target' : 'none'; const value7 = 0; return {height: r4 === 'drag-target' ? env0_13 + draggedItemSize : r4 === 'hide' ? 0 : env0_13, top: r4 !== 'drag-target' ? value7 : overState === 'before' ? draggedItemSize : overState !== 'convert-before' ? value7 : draggedItemSize, zIndex: zIndex}; } function _fun109024() { // fn#109024, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14592:6135, offset: 0x0233a53b, size: 44 bytes, params: 1, frame: 3 if (env0_17) { return undefined; } return {selected: selected, sharedId: sharedId, id: id}; } function _fun109025() { // fn#109025, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14592:6314, offset: 0x0233a567, size: 195 bytes, params: 1, frame: 17 var expandedBinding; var value2; var intl; var string; var t; let current = env0_18.current; if (current !== undefined) { current = env0_18.current; expandedBinding = expanded; if (current !== expandedBinding) { value2 = environment.__proto__; intl = (require(1244) /* metro dependency 1244: indexNative */).intl; string = intl.string; expandedBinding = expanded; t = (require(1244) /* metro dependency 1244: indexNative */).t; (require(3869) /* metro dependency 3869: AccessibilityAnnouncerAndroid */).AccessibilityAnnouncer.announce(Reflect.apply(string, intl, [expandedBinding ? t.CUnsOR : t.jsudFd])); env0_18.current = expanded; } } else { env0_18.current = expanded; } } function _fun109026() { // fn#109026, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14592:6552, offset: 0x0233a62a, size: 226 bytes, params: 1, frame: 17 var push; var value4; const intl = (IndexNativeModule).intl; const t = (IndexNativeModule).t; const items2 = []; if (hint != null && hint.length > 0) { items2.push(hint); } if (draggable) { push = items2.push; value4 = environment.__proto__; Reflect.apply(push, items2, [intl.string(t.BGMUFB)]); } if (env0_19) { push = items2.push; value = environment.__proto__; Reflect.apply(push, items2, [intl.string(t.X2x0MF)]); } return items2.join('. '); } } function useGuildsBarAnimatedWrapperStyles() { // fn#109027, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:14592:7576, offset: 0x0233a70c, size: 129 bytes, params: 1, frame: 20 const value = a0; const r0 = value !== undefined ? value : {}; let disableSelectedColor = r0.disableSelectedColor; disableSelectedColor = !(disableSelectedColor === undefined) && disableSelectedColor; let disableBGColor = r0.disableBGColor; disableBGColor = !(disableBGColor === undefined) && disableBGColor; const useToken = UseTokenModule.useToken; const GUILD_BAR_ITEM_SIZE = (Native).modules.mobile.GUILD_BAR_ITEM_SIZE; return useStyles(disableSelectedColor, disableBGColor, Reflect.apply(useToken, UseTokenModule, [GUILD_BAR_ITEM_SIZE]), useGuildWrapperSize()); } } global.__d(_fun109011, 14395, [31, 4586, 14385, 33, 4501, 697, 3860, 4508, 4577, 4017, 8141, 14396, 14374, 4013, 1244, 3869, 6821, 7599, 2]) /* metro module 14395, dependencies: [31, 4586, 14385, 33, 4501, 697, 3860, 4508, 4577, 4017, 8141, 14396, 14374, 4013, 1244, 3869, 6821, 7599, 2] */;