/* Metro module 305; source: unknown; dependencies: [65, 77, 29, 6, 7, 15, 17, 18, 31, 27, 33, 306, 307, 44, 79, 308, 309, 310, 311, 304, 312, 313, 314, 48, 315, 316] */ import ClassCallCheck from './module-00006-ClassCallCheck.js'; /* Metro dependency 6 */ import CreateClass from './module-00007-CreateClass.js'; /* Metro dependency 7 */ import PossibleConstructorReturn from './module-00015-PossibleConstructorReturn.js'; /* Metro dependency 15 */ import Module00017 from './module-00017.js'; /* Metro dependency 17 */ import Inherits from './module-00018-Inherits.js'; /* Metro dependency 18 */ import ObjectWithoutProperties from './module-00029-ObjectWithoutProperties.js'; /* Metro dependency 29 */ import Module00065 from './module-00065.js'; /* Metro dependency 65 */ import Module00077 from './module-00077.js'; /* Metro dependency 77 */ import Module00306 from './module-00306.js'; /* Metro dependency 306 */ import defaultImport23 from './module-00307.js'; /* Metro dependency 307 */ import defaultImport3 from './module-00309.js'; /* Metro dependency 309 */ import Module00312 from './module-00312.jsx'; /* Metro dependency 312 */ import * as ReactModule from './module-00031-React.js'; /* Metro dependency 31 */ import * as Module00079Module from './module-00079.js'; /* Metro dependency 79 */ import * as Module00304Module from './module-00304.js'; /* Metro dependency 304 */ import * as Module00311Module from './module-00311.js'; /* Metro dependency 311 */ import * as VirtualizedListModule from './module-00313-VirtualizedList.jsx'; /* Metro dependency 313 */ function _fun4604(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#4604, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:6, offset: 0x00cc71c4, size: 604 bytes, params: 8, frame: 22 const env0_0 = require; const getScrollingThreshold = function(a0, a1) { return a0 * a1 / 2; }; const env0_4 = ['onContentSizeChange']; const Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); let value = ReactModule; const env0_14 = value.cloneElement; const env0_15 = value.isValidElement; value = require(27) /* metro dependency 27 */; const env0_16 = value.I18nManager; value.Platform; const env0_17 = value.RefreshControl; const env0_18 = value.ScrollView; const StyleSheet = value.StyleSheet; const env0_20 = value.View; const env0_21 = value.findNodeHandle; value = require(33) /* metro dependency 33 */; const env0_22 = value.jsx; const env0_23 = value.jsxs; value = importDefault(316) /* metro dependency 316 */; value = _fun4609(value); const VirtualizedListContext = (VirtualizedListModule).VirtualizedListContext; value.contextType = VirtualizedListContext; const env0_26 = StyleSheet.create({verticallyInverted: {transform: [{scale: -1}]}, horizontallyInverted: {transform: [{scaleX: -1}]}, debug: {flex: 1}, debugOverlayBase: {'position': 'absolute', 'top': 0, 'right': 0}, debugOverlay: {'bottom': 0, 'width': 20, 'borderColor': 'blue', 'borderWidth': 1}, debugOverlayFrame: {'left': 0, 'backgroundColor': 'orange'}, debugOverlayFrameLast: {'left': 0, 'borderColor': 'green', 'borderWidth': 2}, debugOverlayFrameVis: {'left': 0, 'borderColor': 'red', 'borderWidth': 2}}); exports.default = value; function _isNativeReflectConstruct_4605() { // fn#4605, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:426, offset: 0x00cc7420, size: 94 bytes, params: 1, frame: 18 var Boolean; var prototype; var valueOf; var call; var Reflect; var construct; var closure; var value; var error; try { Boolean = global.Boolean; prototype = Boolean.prototype; valueOf = prototype.valueOf; call = valueOf.call; Reflect = global.Reflect; construct = Reflect.construct; Boolean = global.Boolean; closure = function() { }; value = Reflect.apply(construct, Reflect, [Boolean, [], closure]); value = Reflect.apply(call, valueOf, [value]); var result = !value; } catch (error) { } return (_isNativeReflectConstruct_4605_isNativeReflectConstruct = function() { return !!result; })(); } function _fun4609(a0) { // fn#4609, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:714, offset: 0x00cc7491, size: 1233 bytes, params: 2, frame: 18 const VirtualizedList2 = VirtualizedList; Inherits(VirtualizedList2, a0); return CreateClass(VirtualizedList2, [{key: 'scrollToEnd', value: value_4646}, {key: 'scrollToIndex', value: value_4647}, {key: 'scrollToItem', value: function(a0) { var r2; var value3; var property = a0.item; var props = this.props; var data = props.data; var getItem = props.getItem; var value = (0, props.getItemCount)(data); var value2 = 0; if (value2 < value) { r2 = value2; loopExit1: while (true) { if (getItem(data, r2) === property) { property = global.Object; this.scrollToIndex(property.assign({}, a0, {index: r2})); break loopExit1; } value3 = typeof r2 === 'bigint' ? r2 + 1n : +r2 + 1; if (value3 < value) { r2 = value3; continue; } break loopExit1; } } }}, {key: 'scrollToOffset', value: value_4649}, {key: '_scrollToParamsFromOffset', value: function(a0) { var object; var value = this._orientation(); var horizontal = value.horizontal; if (horizontal) { if (value.rtl) { value = this._listMetrics.cartesianOffset(a0 + this._scrollMetrics.visibleLength); object = {}; if (horizontal) { object.x = value; } else { object.y = value; } return object; } } object = {}; if (horizontal) { object.x = a0; } else { object.y = a0; } return object; }}, {key: 'recordInteraction', value: function() { this._nestedChildLists.forEach(_fun4652); this._viewabilityTuples.forEach(_fun4653); this._updateViewableItems(this.props, this.state.cellsAroundViewport); }}, {key: 'flashScrollIndicators', value: function() { if (this._scrollRef != null) { this._scrollRef.flashScrollIndicators(); } }}, {key: 'getScrollResponder', value: function() { if (this._scrollRef) { if (this._scrollRef.getScrollResponder) { return this._scrollRef.getScrollResponder(); } } }}, {key: 'getScrollableNode', value: value_4656}, {key: 'getScrollRef', value: function() { return this._scrollRef && this._scrollRef.getScrollRef ? this._scrollRef.getScrollRef() : this._scrollRef; }}, {key: 'setNativeProps', value: function(a0) { if (this._scrollRef) { this._scrollRef.setNativeProps(a0); } }}, {key: '_getCellKey', value: function() { var r0; r0 = this.context?.cellKey; r0 = !r0 ? 'rootList' : r0; return r0; }}, {key: 'hasMore', value: function() { return this._hasMore; }}, {key: '_checkProps', value: value_4661}, {key: '_adjustCellsAroundViewport', value: value_4662}, {key: '_findFirstChildWithMore', value: function(a0, a1) { var r4; var property; var value = a0; if (value <= a1) { r4 = value; reducibleLoop1: while (true) { property = this._indicesToKeys; value = property.get(r4); if (value != null) { property = this._nestedChildLists; reducibleJoin3: while (true) { if (property.anyInCell(value, _fun4664)) { return r4; } break reducibleJoin3; } } value = typeof r4 === 'bigint' ? r4 + 1n : +r4 + 1; if (!(value <= a1)) { return null; } r4 = value; continue reducibleLoop1; } } return null; }}, {key: 'componentDidMount', value: function() { if (this._isNestedWithSameOrientation()) { this.context.registerAsNestedChild({ref: this, cellKey: this.context.cellKey}); } }}, {key: 'componentWillUnmount', value: function() { if (this._isNestedWithSameOrientation()) { this.context.unregisterAsNestedChild({ref: this}); } global.clearTimeout(this._updateCellsToRenderTimeoutID); this._viewabilityTuples.forEach(_fun4667); this._fillRateHelper.deactivateAndFlush(); }}, {key: '_pushCells', value: value_4668}, {key: '_isNestedWithSameOrientation', value: value_4671}, {key: '_renderEmptyComponent', value: value_4672}, {key: 'render', value: value_4674}, {key: 'componentDidUpdate', value: function(a0) { var property = this.props; var data = property.data; var extraData = property.extraData; property = property.getItemLayout; if (!(data === a0.data && extraData === a0.extraData)) { this._viewabilityTuples.forEach(_fun4676); } var _hiPriInProgress = this._hiPriInProgress; this._scheduleCellsToRenderUpdate(); if (_hiPriInProgress) { this._hiPriInProgress = false; } if (property != null) { this._maybeCallOnEdgeReached(); } }}, {key: '_computeBlankness', value: function() { this._fillRateHelper.computeBlankness(this.props, this.state.cellsAroundViewport, this._scrollMetrics); }}, {key: '_triggerRemeasureForChildListsInCell', value: function(a0) { this._nestedChildLists.forEachInCell(a0, _fun4679); }}, {key: 'measureLayoutRelativeToContainingList', value: function() { var property; var measureLayout; var context; var getOutermostParentListRef; var value; var getScrollRef; var closure; var closure2; var error; var env0_0 = this; reducibleJoin2: while (true) { reduciblePort15: while (true) { exceptionLanding14: while (true) { try { property = this._scrollRef; } catch (error) { break exceptionLanding14; } break reducibleJoin2; } property = global.console; property.warn('measureLayoutRelativeToContainingList threw an error', error.stack); break reduciblePort15; } return undefined; } if (property) { try { property = this._scrollRef; } catch (error) { break exceptionLanding14; } try { measureLayout = property.measureLayout; } catch (error) { break exceptionLanding14; } try { context = this.context; } catch (error) { break exceptionLanding14; } try { getOutermostParentListRef = context.getOutermostParentListRef; } catch (error) { break exceptionLanding14; } try { value = Reflect.apply(getOutermostParentListRef, context, []); } catch (error) { break exceptionLanding14; } try { getScrollRef = value.getScrollRef; } catch (error) { break exceptionLanding14; } try { value = Reflect.apply(getScrollRef, value, []); } catch (error) { break exceptionLanding14; } try { closure = _fun4681; } catch (error) { break exceptionLanding14; } try { closure2 = _fun4683; } catch (error) { break exceptionLanding14; } try { Reflect.apply(measureLayout, property, [value, closure, closure2]); } catch (error) { break exceptionLanding14; } } }}, {key: '_getFooterCellKey', value: function() { return this._getCellKey() + '-footer'; }}, {key: '_renderDebugOverlay', value: value_4685}, {key: '_selectLength', value: value_4687}, {key: '_selectOffset', value: function({x, y}) { return this._orientation().horizontal ? x : y; }}, {key: '_orientation', value: function() { var object = {}; object.horizontal = require(dependencyMap[18]).horizontalOrDefault(this.props.horizontal); object.rtl = I18nManager.isRTL; return object; }}, {key: '_maybeCallOnEdgeReached', value: value_4690}, {key: '_maybeScrollToInitialScrollIndex', value: value_4691}, {key: 'unstable_onScroll', value: function(a0) { this._onScroll(a0); }}, {key: '_offsetFromScrollEvent', value: function({nativeEvent}) { var r0; var contentOffset = nativeEvent.contentOffset; var contentSize = nativeEvent.contentSize; nativeEvent = nativeEvent.layoutMeasurement; var value = this._orientation(); if (value.horizontal) { if (value.rtl) { value = this._selectLength(contentSize); value -= this._selectOffset(contentOffset) + this._selectLength(nativeEvent); r0 = value; } else { r0 = this._selectOffset(contentOffset); } } else { r0 = this._selectOffset(contentOffset); } return r0; }}, {key: '_scheduleCellsToRenderUpdate', value: value_4694}, {key: '_shouldRenderWithPriority', value: value_4696}, {key: 'unstable_onScrollBeginDrag', value: function(a0) { this._onScrollBeginDrag(a0); }}, {key: 'unstable_onScrollEndDrag', value: function(a0) { this._onScrollEndDrag(a0); }}, {key: 'unstable_onMomentumScrollBegin', value: function(a0) { this._onMomentumScrollBegin(a0); }}, {key: 'unstable_onMomentumScrollEnd', value: function(a0) { this._onMomentumScrollEnd(a0); }}, {key: '__getListMetrics', value: function() { return this._listMetrics; }}, {key: '_updateViewableItems', value: function(a0, a1) { var env0_0 = a0; var env0_1 = a1; var env0_2 = this; if (!(this.state.pendingScrollUpdateCount > 0)) { this._viewabilityTuples.forEach(_fun4703); } }}], [{key: '_findItemIndexWithKey', value: value_4704}, {key: '_getItemKey', value: function(a0, a1) { return VirtualizedList._keyExtractor(a0.getItem(a0.data, a1), a1, a0); }}, {key: '_createRenderMask', value: value_4706}, {key: '_initialRenderRegion', value: value_4707}, {key: '_ensureClosestStickyHeader', value: function(a0, a1, a2, a3) { var r1; var r0; var value4; var value = 0; r1 = a0.ListHeaderComponent ? 1 : value; var value3 = a3 - 1; if (value3 >= value) { r0 = value3; loopExit3: while (true) { if (a1.has(r0 + r1)) { a2.addCells({first: r0, last: r0}); break loopExit3; } value4 = typeof r0 === 'bigint' ? r0 - 1n : +r0 - 1; if (value4 >= value) { r0 = value4; continue; } break loopExit3; } } }}, {key: 'getDerivedStateFromProps', value: value_4709}, {key: '_constrainToItemCount', value: value_4710}, {key: '_keyExtractor', value: value_4711}]); function VirtualizedList(a0) { // fn#4610, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:726, offset: 0x00cc7962, size: 1034 bytes, params: 2, frame: 27 var environment; var onViewableItemsChanged; var _viewabilityTuples; var push; let value = environment.__proto__; const binding = env1_8; const value3 = undefined; binding(this, VirtualizedList); let object = [a0]; const value4 = env1_11(VirtualizedList); const value7 = env1_10(this, _isNativeReflectConstruct_4605() ? global.Reflect.construct(value4, object, env1_11(this).constructor) : value4.apply(this, object)); value7._getScrollMetrics = _getScrollMetrics; value7._getOutermostParentListRef = _getOutermostParentListRef; value7._registerAsNestedChild = _registerAsNestedChild; value7._unregisterAsNestedChild = _unregisterAsNestedChild; value7._onUpdateSeparators = function(a0, a1) { var env0_0 = a1; a0.forEach(_fun4616); }; value7._getSpacerKey = function(a0) { return a0 ? 'height' : 'width'; }; value7._cellRefs = {}; const defaultImport = Module00306; const value8 = Object.create(defaultImport.prototype, {constructor: {value: defaultImport}}); const defaultImport4 = new defaultImport(); value7._listMetrics = defaultImport4 instanceof Object ? defaultImport4 : value8; const value11 = 0; value7._footerLength = value11; value7._hasTriggeredInitialScrollToIndex = false; value7._hasInteracted = false; value7._hasMore = false; value7._hasWarned = {}; value7._headerLength = value11; value7._hiPriInProgress = false; const Map = global.Map; const value12 = Object.create(Map.prototype, {constructor: {value: Map}}); const map = new Map(); value7._indicesToKeys = map instanceof Object ? map : value12; const value14 = null; value7._lastFocusedCellKey = value14; const defaultImport2 = defaultImport23; const value15 = Object.create(defaultImport2.prototype, {constructor: {value: defaultImport2}}); const defaultImport22 = new defaultImport2(); value7._nestedChildLists = defaultImport22 instanceof Object ? defaultImport22 : value15; value7._offsetFromParentVirtualizedList = value11; value7._pendingViewabilityUpdate = false; value7._prevParentOffset = value11; const value18 = 1; value7._scrollMetrics = {'dOffset': 0, 'dt': 10, 'offset': 0, 'timestamp': 0, 'velocity': 0, 'visibleLength': 0, 'zoomScale': 1}; value7._scrollRef = value14; value7._sentStartForContentLength = value11; value7._sentEndForContentLength = value11; value7._updateCellsToRenderTimeoutID = value14; value7._viewabilityTuples = []; value7._captureScrollRef = _captureScrollRef; value7._defaultRenderScrollComponent = _defaultRenderScrollComponent; value7._onCellLayout = _onCellLayout; value7._onCellFocusCapture = _onCellFocusCapture; value7._onCellUnmount = _onCellUnmount; value7._onLayout = _onLayout; value7._onLayoutEmpty = _onLayoutEmpty; value7._onLayoutFooter = _onLayoutFooter; value7._onLayoutHeader = _onLayoutHeader; value7._onContentSizeChange = _onContentSizeChange; value7._convertParentScrollMetrics = _convertParentScrollMetrics; value7._onScroll = _onScroll; value7._onScrollBeginDrag = _onScrollBeginDrag; value7._onScrollEndDrag = _onScrollEndDrag; value7._onMomentumScrollBegin = _onMomentumScrollBegin; value7._onMomentumScrollEnd = _onMomentumScrollEnd; value7._updateCellsToRender = _updateCellsToRender; value7._createViewToken = function(a0, a1, a2) { var value = (0, a2.getItem)(a2.data, a0); var object = {index: a0, item: value}; object.key = VirtualizedList._keyExtractor(value, a0, a2); object.isViewable = a1; return object; }; value7._getNonViewportRenderRegions = _getNonViewportRenderRegions; value7._checkProps(a0); const _listMetrics = value7._listMetrics; const value19 = Object.create(defaultImport3.prototype, {constructor: {value: defaultImport3}}); const defaultImport32 = new defaultImport3(_listMetrics); value7._fillRateHelper = defaultImport32 instanceof Object ? defaultImport32 : value19; let props = value7.props; const viewabilityConfigCallbackPairs = props.viewabilityConfigCallbackPairs; props = value7.props; if (viewabilityConfigCallbackPairs) { value7._viewabilityTuples = props.viewabilityConfigCallbackPairs.map(_fun4645); } else { onViewableItemsChanged = props.onViewableItemsChanged; if (onViewableItemsChanged) { _viewabilityTuples = value7._viewabilityTuples; push = _viewabilityTuples.push; value = importDefault(310) /* metro dependency 310 */; value = new value(props.viewabilityConfig); Reflect.apply(push, _viewabilityTuples, [{viewabilityHelper: value, onViewableItemsChanged: onViewableItemsChanged}]); } } value = VirtualizedList._initialRenderRegion(a0); const maintainVisibleContentPosition = value7.props.maintainVisibleContentPosition; const minIndexForVisible = value14 == maintainVisibleContentPosition ? value3 : maintainVisibleContentPosition.minIndexForVisible; const r9 = value14 != minIndexForVisible ? minIndexForVisible : value11; object = {cellsAroundViewport: value}; object.renderMask = VirtualizedList._createRenderMask(a0, value); props = value7.props; const getItemCount = props.getItemCount; object.firstVisibleItemKey = Reflect.apply(getItemCount, props, [value7.props.data]) > r9 ? VirtualizedList._getItemKey(value7.props, r9) : value14; object.pendingScrollUpdateCount = value14 != value7.props.initialScrollIndex && value7.props.initialScrollIndex > value11 ? value18 : value11; value7.state = object; return value7; function _getScrollMetrics() { // fn#4611, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:971, owner: VirtualizedList._getScrollMetrics, offset: 0x00cc7d6c, size: 15 bytes, params: 1, frame: 1 return env0_0._scrollMetrics; } function _getOutermostParentListRef() { // fn#4612, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:1036, owner: VirtualizedList._getOutermostParentListRef, offset: 0x00cc7d7b, size: 46 bytes, params: 1, frame: 10 let binding = env0_0; const value2 = binding._isNestedWithSameOrientation(); binding = env0_0; return value2 ? binding.context.getOutermostParentListRef() : binding; } function _registerAsNestedChild(a0) { // fn#4613, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:1153, owner: VirtualizedList._registerAsNestedChild, offset: 0x00cc7da9, size: 66 bytes, params: 2, frame: 15 const binding = env0_0; const _nestedChildLists = binding._nestedChildLists; _nestedChildLists.add(a0.ref, a0.cellKey); if (binding._hasInteracted) { a0.ref.recordInteraction(); } } function _unregisterAsNestedChild({ref}) { // fn#4614, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:1278, owner: VirtualizedList._unregisterAsNestedChild, offset: 0x00cc7deb, size: 36 bytes, params: 2, frame: 11 env0_0._nestedChildLists.remove(ref); } function _onUpdateSeparators(a0, a1) { // fn#4615, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:1347, owner: VirtualizedList._onUpdateSeparators, offset: 0x00cc7e0f, size: 31 bytes, params: 3, frame: 11 const env0_0 = a1; a0.forEach(_fun4616); function _fun4616(a0) { // fn#4616, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:1372, offset: 0x00cc7e2e, size: 54 bytes, params: 2, frame: 11 const r2 = a0 != null && env1_0._cellRefs[a0]; if (r2) { r2.updateSeparatorProps(require); } } } function _captureScrollRef(a0) { // fn#4618, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:2127, owner: VirtualizedList._captureScrollRef, offset: 0x00cc7e74, size: 20 bytes, params: 2, frame: 2 env0_0._scrollRef = a0; } function _defaultRenderScrollComponent(a0) { // fn#4619, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:2187, owner: VirtualizedList._defaultRenderScrollComponent, offset: 0x00cc7e88, size: 347 bytes, params: 2, frame: 25 var r1; var Object; var assign; var refreshing; var JSON; var object; const onRefresh = a0.onRefresh; let value = env0_0._isNestedWithSameOrientation(); if (value) { a0.onContentSizeChange; value = env2_7(a0, env2_4); Object = global.Object; return ; } if (onRefresh) { value = importDefault(44) /* metro dependency 44 */; refreshing = a0.refreshing; JSON = global.JSON; value(typeof refreshing === 'boolean', '`refreshing` prop must be set as a boolean in order to use `onRefresh`, but got `' + JSON.stringify(a0.refreshing ?? 'undefined') + '`'); Object = global.Object; assign = Object.assign; object = {}; object.refreshControl = a0.refreshControl ?? ; value = ; r1 = value; } else { value = global.Object.assign({}, a0); value = ; r1 = value; } return r1; } function _onCellLayout({nativeEvent}, a1, a2) { // fn#4620, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:2725, owner: VirtualizedList._onCellLayout, offset: 0x00cc7fe3, size: 151 bytes, params: 4, frame: 16 let binding = env0_0; const _listMetrics = binding._listMetrics; const notifyCellLayout = _listMetrics.notifyCellLayout; const object = {cellIndex: a2, cellKey: a1}; object.layout = nativeEvent.layout; object.orientation = binding._orientation(); if (Reflect.apply(notifyCellLayout, _listMetrics, [object])) { env0_0._scheduleCellsToRenderUpdate(); } binding = env0_0; binding._triggerRemeasureForChildListsInCell(a1); binding._computeBlankness(); binding._updateViewableItems(binding.props, binding.state.cellsAroundViewport); } function _onCellFocusCapture(a0) { // fn#4621, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:3036, owner: VirtualizedList._onCellFocusCapture, offset: 0x00cc807a, size: 82 bytes, params: 2, frame: 12 env0_0._lastFocusedCellKey = a0; const value3 = (Module00079Module).deferFlatListFocusChangeRenderUpdate(); const binding = env0_0; if (value3) { binding._scheduleCellsToRenderUpdate(); } else { binding._updateCellsToRender(); } } function _onCellUnmount(a0) { // fn#4622, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:3196, owner: VirtualizedList._onCellUnmount, offset: 0x00cc80cc, size: 41 bytes, params: 2, frame: 11 const binding = env0_0; delete binding._cellRefs[a0]; binding._listMetrics.notifyCellUnmounted(a0); } function _onLayout(a0) { // fn#4623, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:3281, owner: VirtualizedList._onLayout, offset: 0x00cc80f5, size: 140 bytes, params: 2, frame: 14 let binding = env0_0; const value2 = binding._isNestedWithSameOrientation(); binding = env0_0; if (value2) { binding.measureLayoutRelativeToContainingList(); } else { binding._scrollMetrics.visibleLength = binding._selectLength(a0.nativeEvent.layout); } if (env0_0.props.onLayout) { env0_0.props.onLayout(a0); } binding = env0_0; binding._scheduleCellsToRenderUpdate(); binding._maybeCallOnEdgeReached(); } function _onLayoutEmpty(a0) { // fn#4624, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:3554, owner: VirtualizedList._onLayoutEmpty, offset: 0x00cc8181, size: 48 bytes, params: 2, frame: 11 if (env0_0.props.onLayout) { env0_0.props.onLayout(a0); } } function _onLayoutFooter({nativeEvent}) { // fn#4625, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:3623, owner: VirtualizedList._onLayoutFooter, offset: 0x00cc81b1, size: 64 bytes, params: 2, frame: 11 const binding = env0_0; binding._triggerRemeasureForChildListsInCell(binding._getFooterCellKey()); binding._footerLength = binding._selectLength(nativeEvent.layout); } function _onLayoutHeader({nativeEvent}) { // fn#4626, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:3770, owner: VirtualizedList._onLayoutHeader, offset: 0x00cc81f1, size: 43 bytes, params: 2, frame: 11 const binding = env0_0; binding._headerLength = binding._selectLength(nativeEvent.layout); } function _onContentSizeChange(a0, a1) { // fn#4627, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:3860, owner: VirtualizedList._onContentSizeChange, offset: 0x00cc821c, size: 137 bytes, params: 3, frame: 18 let binding = env0_0; const _listMetrics = binding._listMetrics; const notifyListContentLayout = _listMetrics.notifyListContentLayout; const object = {}; object.layout = {width: a0, height: a1}; object.orientation = binding._orientation(); Reflect.apply(notifyListContentLayout, _listMetrics, [object]); binding._maybeScrollToInitialScrollIndex(a0, a1); if (binding.props.onContentSizeChange) { env0_0.props.onContentSizeChange(a0, a1); } binding = env0_0; binding._scheduleCellsToRenderUpdate(); binding._maybeCallOnEdgeReached(); } function _convertParentScrollMetrics({offset, visibleLength}) { // fn#4628, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:4165, owner: VirtualizedList._convertParentScrollMetrics, offset: 0x00cc82a5, size: 88 bytes, params: 2, frame: 12 const binding = env0_0; const value = offset - binding._offsetFromParentVirtualizedList; const value2 = value - binding._scrollMetrics.offset; const object = {visibleLength: visibleLength}; object.contentLength = binding._listMetrics.getContentLength(); object.offset = value; object.dOffset = value2; return object; } function _onScroll(a0) { // fn#4629, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:4377, owner: VirtualizedList._onScroll, offset: 0x00cc82fd, size: 705 bytes, params: 2, frame: 25 var environment; var r5; var r7; var r9; var r10; var value7; var visibleLength; var contentLength; var dOffset; var value15; var defaultImport; const env0_0 = a0; let binding = env0_0; binding._nestedChildLists.forEach(_fun4630); if (binding.props.onScroll) { env0_0.props.onScroll(a0); } const timeStamp = a0.timeStamp; binding = env0_0; const value2 = binding._selectLength(a0.nativeEvent.layoutMeasurement); const value3 = binding._selectLength(a0.nativeEvent.contentSize); const value4 = binding._offsetFromScrollEvent(a0); let offset = binding._scrollMetrics.offset; if (binding._isNestedWithSameOrientation()) { if (env0_0._listMetrics.getContentLength() === 0) { return undefined; } binding = env0_0; value7 = binding._convertParentScrollMetrics({visibleLength: value2, offset: value4}); visibleLength = value7.visibleLength; contentLength = value7.contentLength; offset = value7.offset; dOffset = value7.dOffset; r5 = contentLength; r7 = visibleLength; r9 = offset; r10 = dOffset; } else { r5 = value3; r7 = value2; r9 = value4; r10 = value4 - offset; } const timestamp = env0_0._scrollMetrics.timestamp; const value8 = 1; const r11 = timestamp ? global.Math.max(value8, timeStamp - env0_0._scrollMetrics.timestamp) : value8; const value10 = r10 / r11; if (r11 > 500 && env0_0._scrollMetrics.dt > 500 && r5 > 5 * r7 && !env0_0._hasWarned.perf) { value15 = environment.__proto__.__proto__; defaultImport = importDefault(308) /* metro dependency 308 */; binding = env0_0; defaultImport('VirtualizedList: You have a large list that is slow to update - make sure your renderItem function renders components that follow React performance best practices like PureComponent, shouldComponentUpdate, etc.', {dt: r11, prevDt: binding._scrollMetrics.dt, contentLength: r5}); binding._hasWarned.perf = true; } let zoomScale = a0.nativeEvent.zoomScale; zoomScale = zoomScale < 0 ? value8 : a0.nativeEvent.zoomScale; binding = env0_0; binding._scrollMetrics = {dt: r11, dOffset: r10, offset: r9, timestamp: timeStamp, velocity: value10, visibleLength: r7, zoomScale: zoomScale}; if (binding.state.pendingScrollUpdateCount > 0) { env0_0.setState(function(a0) { return {pendingScrollUpdateCount: a0.pendingScrollUpdateCount - 1}; }); } binding = env0_0; binding._updateViewableItems(binding.props, binding.state.cellsAroundViewport); if (binding.props) { binding = env0_0; binding._maybeCallOnEdgeReached(); if (value10 !== 0) { env0_0._fillRateHelper.activate(); } binding = env0_0; binding._computeBlankness(); binding._scheduleCellsToRenderUpdate(); } function _fun4630(a0) { // fn#4630, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:4418, offset: 0x00cc85be, size: 25 bytes, params: 2, frame: 11 a0._onScroll(env0_0); } } function _onScrollBeginDrag(a0) { // fn#4632, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:5794, owner: VirtualizedList._onScrollBeginDrag, offset: 0x00cc85f0, size: 104 bytes, params: 2, frame: 15 const env0_0 = a0; const binding = env0_0; binding._nestedChildLists.forEach(_fun4633); binding._viewabilityTuples.forEach(function({viewabilityHelper}) { viewabilityHelper.recordInteraction(); }); binding._hasInteracted = true; if (binding.props.onScrollBeginDrag) { env0_0.props.onScrollBeginDrag(a0); } function _fun4633(a0) { // fn#4633, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:5835, offset: 0x00cc8658, size: 25 bytes, params: 2, frame: 11 a0._onScrollBeginDrag(env0_0); } } function _onScrollEndDrag(a0) { // fn#4635, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:6055, owner: VirtualizedList._onScrollEndDrag, offset: 0x00cc8688, size: 131 bytes, params: 2, frame: 14 var binding; const env0_0 = a0; env0_0._nestedChildLists.forEach(_fun4636); const velocity = a0.nativeEvent.velocity; if (velocity) { binding = env0_0; binding._scrollMetrics.velocity = binding._selectOffset(velocity); } binding = env0_0; binding._computeBlankness(); if (binding.props.onScrollEndDrag) { env0_0.props.onScrollEndDrag(a0); } function _fun4636(a0) { // fn#4636, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:6096, offset: 0x00cc870b, size: 25 bytes, params: 2, frame: 11 a0._onScrollEndDrag(env0_0); } } function _onMomentumScrollBegin(a0) { // fn#4637, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:6312, owner: VirtualizedList._onMomentumScrollBegin, offset: 0x00cc8724, size: 75 bytes, params: 2, frame: 14 const env0_0 = a0; const binding = env0_0; binding._nestedChildLists.forEach(_fun4638); if (binding.props.onMomentumScrollBegin) { env0_0.props.onMomentumScrollBegin(a0); } function _fun4638(a0) { // fn#4638, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:6353, offset: 0x00cc876f, size: 25 bytes, params: 2, frame: 11 a0._onMomentumScrollBegin(env0_0); } } function _onMomentumScrollEnd(a0) { // fn#4639, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:6484, owner: VirtualizedList._onMomentumScrollEnd, offset: 0x00cc8788, size: 99 bytes, params: 2, frame: 14 const env0_0 = a0; const binding = env0_0; binding._nestedChildLists.forEach(_fun4640); binding._scrollMetrics.velocity = 0; binding._computeBlankness(); if (binding.props.onMomentumScrollEnd) { env0_0.props.onMomentumScrollEnd(a0); } function _fun4640(a0) { // fn#4640, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:6525, offset: 0x00cc87eb, size: 25 bytes, params: 2, frame: 11 a0._onMomentumScrollEnd(env0_0); } } function _updateCellsToRender() { // fn#4641, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:6700, owner: VirtualizedList._updateCellsToRender, offset: 0x00cc8804, size: 57 bytes, params: 1, frame: 13 const binding = env0_0; binding._updateViewableItems(binding.props, binding.state.cellsAroundViewport); binding.setState(_fun4642); function _fun4642(a0, a1) { // fn#4642, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:6783, offset: 0x00cc883d, size: 152 bytes, params: 3, frame: 17 let value = environment.__proto__; const binding = env1_0; value = binding._adjustCellsAroundViewport(a1, a0.cellsAroundViewport, a0.pendingScrollUpdateCount); const value3 = VirtualizedList._createRenderMask(a1, value, binding._getNonViewportRenderRegions(a1)); return value.first !== a0.cellsAroundViewport.first || value.last !== a0.cellsAroundViewport.last ? {cellsAroundViewport: value, renderMask: value3} : value3.equals(a0.renderMask) ? null : {cellsAroundViewport: value, renderMask: value3}; } } function _getNonViewportRenderRegions(a0) { // fn#4644, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:7289, owner: VirtualizedList._getNonViewportRenderRegions, offset: 0x00cc891a, size: 394 bytes, params: 2, frame: 22 var r3; var r4; var r10; var r2; var r5; var r0; var binding; var _cellRefs; var index; var value2; var value3; var value4; var value5; var value6; var _scrollMetrics; var visibleLength; var value7; var _listMetrics; var getCellMetricsApprox; var length; var value8; var value9; var value10; var value11; var value12; var value13; let _lastFocusedCellKey = env0_0._lastFocusedCellKey; if (_lastFocusedCellKey) { binding = env0_0; _cellRefs = binding._cellRefs; _lastFocusedCellKey = binding._lastFocusedCellKey; if (_cellRefs[_lastFocusedCellKey]) { binding = env0_0; _cellRefs = binding._cellRefs; _lastFocusedCellKey = binding._lastFocusedCellKey; index = _cellRefs[_lastFocusedCellKey].props.index; value2 = a0.getItemCount(a0.data); if (index >= value2) { return []; } value3 = environment.__proto__; value4 = VirtualizedList._getItemKey(a0, index); _lastFocusedCellKey = env0_0._lastFocusedCellKey; if (value4 !== _lastFocusedCellKey) { return []; } value5 = index - 1; value6 = 0; if (value5 >= value6) { _scrollMetrics = env0_0._scrollMetrics; visibleLength = _scrollMetrics.visibleLength; if (value6 < visibleLength) { r3 = value6; r4 = index; r10 = value5; while (true) { value7 = typeof r4 === 'bigint' ? r4 - 1n : +r4 - 1; _listMetrics = env0_0._listMetrics; getCellMetricsApprox = _listMetrics.getCellMetricsApprox; length = Reflect.apply(getCellMetricsApprox, _listMetrics, [r10, a0]).length; value8 = r3 + length; value9 = typeof r10 === 'bigint' ? r10 - 1n : +r10 - 1; if (!(value9 >= value6)) { r2 = value7; break; } _scrollMetrics = env0_0._scrollMetrics; visibleLength = _scrollMetrics.visibleLength; if (value8 < visibleLength) { r3 = value8; r4 = value7; r10 = value9; continue; } r2 = value7; break; } } else { r2 = index; } } else { r2 = index; } value10 = index + 1; if (value10 < value2) { _scrollMetrics = env0_0._scrollMetrics; visibleLength = _scrollMetrics.visibleLength; if (value6 < visibleLength) { r3 = index; r4 = value10; r5 = value6; while (true) { value11 = typeof r3 === 'bigint' ? r3 + 1n : +r3 + 1; _listMetrics = env0_0._listMetrics; getCellMetricsApprox = _listMetrics.getCellMetricsApprox; length = Reflect.apply(getCellMetricsApprox, _listMetrics, [r4, a0]).length; value12 = r5 + length; value13 = typeof r4 === 'bigint' ? r4 + 1n : +r4 + 1; if (!(value13 < value2)) { r0 = value11; break; } _scrollMetrics = env0_0._scrollMetrics; visibleLength = _scrollMetrics.visibleLength; if (value12 < visibleLength) { r3 = value11; r4 = value13; r5 = value12; continue; } r0 = value11; break; } } else { r0 = index; } } else { r0 = index; } return [{first: r2, last: r0}]; } } return []; } function _fun4645({viewabilityConfig, onViewableItemsChanged}) { // fn#4645, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:7962, offset: 0x00cc8aa4, size: 74 bytes, params: 2, frame: 13 let value = environment.__proto__.__proto__; value = importDefault(310) /* metro dependency 310 */; value = new value(viewabilityConfig); return {viewabilityHelper: value, onViewableItemsChanged: onViewableItemsChanged}; } } function value_4647({animated, index, viewOffset, viewPosition}) { // fn#4647, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:9063, offset: 0x00cc8b95, size: 506 bytes, params: 2, frame: 34 var _listMetrics; var object; const {data, getItemCount, getItemLayout, onScrollToIndexFailed} = this.props; let value = environment.__proto__; (importDefault(44) /* metro dependency 44 */)(index >= 0, 'scrollToIndex out of range: requested index ' + index + ' but minimum is 0'); (importDefault(44) /* metro dependency 44 */)(getItemCount(data) >= 1, 'scrollToIndex out of range: item length ' + getItemCount(data) + ' but minimum is 1'); (importDefault(44) /* metro dependency 44 */)(index < getItemCount(data), 'scrollToIndex out of range: requested index ' + index + ' is out of 0 to ' + (getItemCount(data) - 1)); if (!getItemLayout) { _listMetrics = this._listMetrics; var getHighestMeasuredCellIndex = _listMetrics.getHighestMeasuredCellIndex; if (index > Reflect.apply(getHighestMeasuredCellIndex, _listMetrics, [])) { (importDefault(44) /* metro dependency 44 */)(!!onScrollToIndexFailed, 'scrollToIndex should be used in conjunction with getItemLayout or onScrollToIndexFailed, otherwise there is no way to know the location of offscreen indices or handle failures.'); object = {}; _listMetrics = this._listMetrics; object.averageItemLength = _listMetrics.getAverageCellLength(); _listMetrics = this._listMetrics; object.highestMeasuredFrameIndex = _listMetrics.getHighestMeasuredCellIndex(); object.index = index; onScrollToIndexFailed(object); return undefined; } } _listMetrics = this._listMetrics; const getCellMetricsApprox = _listMetrics.getCellMetricsApprox; let Math = global.Math; value = Math.floor(index); value = Reflect.apply(getCellMetricsApprox, _listMetrics, [value, this.props]); Math = global.Math; const max = Math.max; const cellOffsetApprox = this._listMetrics.getCellOffsetApprox(index, this.props); viewPosition = !viewPosition ? 0 : viewPosition; value = Reflect.apply(max, Math, [0, cellOffsetApprox - viewPosition * (this._scrollMetrics.visibleLength - value.length)]); viewOffset = !viewOffset ? 0 : viewOffset; value -= viewOffset; this.scrollToOffset({offset: value, animated: animated}); } function value_4651() { // fn#4651, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:11245, offset: 0x00cc8f32, size: 79 bytes, params: 1, frame: 14 this._nestedChildLists.forEach(function(a0) { a0.recordInteraction(); }); this._viewabilityTuples.forEach(function({viewabilityHelper}) { viewabilityHelper.recordInteraction(); }); this._updateViewableItems(this.props, this.state.cellsAroundViewport); } function value_4656() { // fn#4656, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:11829, offset: 0x00cc8fe6, size: 67 bytes, params: 1, frame: 12 var r0; var value; if (this._scrollRef) { if (this._scrollRef.getScrollableNode) { r0 = this._scrollRef.getScrollableNode(); } else { value = environment.__proto__; value = findNodeHandle(this._scrollRef); r0 = value; } } else { value = environment.__proto__; value = findNodeHandle(this._scrollRef); r0 = value; } return r0; } function value_4661({onScroll, windowSize, getItemCount, data, initialScrollIndex}) { // fn#4661, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:12437, offset: 0x00cc90b1, size: 308 bytes, params: 2, frame: 23 let value = environment.__proto__; (importDefault(44) /* metro dependency 44 */)(onScroll ? !onScroll.__isNative : !onScroll, 'Components based on VirtualizedList must be wrapped with Animated.createAnimatedComponent to support native onScroll events with useNativeDriver'); const defaultImport2 = importDefault(44) /* metro dependency 44 */; value = require(311) /* metro dependency 311 */; value = value.windowSizeOrDefault(windowSize); defaultImport2(value > 0, 'VirtualizedList: The windowSize prop must be present and set to a value greater than 0.'); defaultImport2(getItemCount, 'VirtualizedList: The "getItemCount" prop must be provided'); value = getItemCount(data); let r2 = initialScrollIndex == null || this._hasTriggeredInitialScrollToIndex; r2 = !r2 ? !(initialScrollIndex < 0 || value > 0 && initialScrollIndex >= value) : r2; r2 = !r2 ? this._hasWarned.initialScrollIndex : r2; if (!r2) { global.console.warn('initialScrollIndex "' + initialScrollIndex + '" is not valid (list has ' + value + ' items)'); this._hasWarned.initialScrollIndex = true; } } function value_4662(a0, a1, a2) { // fn#4662, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:13203, offset: 0x00cc91e5, size: 534 bytes, params: 4, frame: 32 var r13; var r10; var r2; var r0; var moduleValue5; var object; var Math; var min; let value = a1; const data = a0.data; const getItemCount = a0.getItemCount; const moduleValue = require(311) /* metro dependency 311 */; const value3 = moduleValue.onEndReachedThresholdOrDefault(a0.onEndReachedThreshold); const {offset, visibleLength} = this._scrollMetrics; const contentLength = this._listMetrics.getContentLength(); const value5 = contentLength - visibleLength - offset; const value6 = 0; if (visibleLength <= value6) { if (value.last >= getItemCount(data)) { value = VirtualizedList._constrainToItemCount(value, a0); r0 = value; } else { r0 = value; } return r0; } if (contentLength <= value6) { if (value.last >= getItemCount(data)) { value = VirtualizedList._constrainToItemCount(value, a0); r0 = value; } else { r0 = value; } return r0; } if (a0.disableVirtualization) { if (value5 < value3 * visibleLength) { moduleValue5 = moduleValue; r10 = moduleValue5.maxToRenderPerBatchOrDefault(a0.maxToRenderPerBatch); } else { r10 = value6; } object = {first: value6}; Math = global.Math; min = Math.min; value = value.last + r10; object.last = Reflect.apply(min, Math, [value, getItemCount(data) - 1]); r2 = object; } else { if (a2 > value6) { if (value.last >= getItemCount(data)) { value = VirtualizedList._constrainToItemCount(value, a0); r13 = value; } else { r13 = value; } return r13; } var moduleValue2 = require(304) /* metro dependency 304 */; var computeWindowedRenderLimits = moduleValue2.computeWindowedRenderLimits; var moduleValue3 = require(311) /* metro dependency 311 */; var value7 = moduleValue3.maxToRenderPerBatchOrDefault(a0.maxToRenderPerBatch); var moduleValue4 = require(311) /* metro dependency 311 */; value = Reflect.apply(computeWindowedRenderLimits, moduleValue2, [a0, value7, moduleValue4.windowSizeOrDefault(a0.windowSize), value, this._listMetrics, this._scrollMetrics]); (importDefault(44) /* metro dependency 44 */)(value.last < getItemCount(data), 'computeWindowedRenderLimits() should return range in-bounds'); r2 = value; } const _nestedChildLists = this._nestedChildLists; if (_nestedChildLists.size() > value6) { r2.last = this._findFirstChildWithMore(r2.first, r2.last) ?? r2.last; } return r2; } function value_4663(a0, a1) { // fn#4663, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:14176, offset: 0x00cc93fb, size: 77 bytes, params: 3, frame: 19 var r4; var _indicesToKeys; var get; var _nestedChildLists; var anyInCell; let value = a0; if (value <= a1) { r4 = value; reducibleLoop1: while (true) { _indicesToKeys = this._indicesToKeys; get = _indicesToKeys.get; value = Reflect.apply(get, _indicesToKeys, [r4]); if (value != null) { _nestedChildLists = this._nestedChildLists; anyInCell = _nestedChildLists.anyInCell; reducibleJoin3: while (true) { if (Reflect.apply(anyInCell, _nestedChildLists, [value, function(a0) { return a0.hasMore(); }])) { return r4; } break reducibleJoin3; } } value = typeof r4 === 'bigint' ? r4 + 1n : +r4 + 1; if (!(value <= a1)) { return null; } r4 = value; continue reducibleLoop1; } } return null; } function value_4666() { // fn#4666, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:14583, offset: 0x00cc9491, size: 100 bytes, params: 1, frame: 13 if (this._isNestedWithSameOrientation()) { this.context.unregisterAsNestedChild({ref: this}); } global.clearTimeout(this._updateCellsToRenderTimeoutID); this._viewabilityTuples.forEach(function({viewabilityHelper}) { viewabilityHelper.dispose(); }); this._fillRateHelper.deactivateAndFlush(); } function value_4668(a0, a1, a2, a3, a4, a5) { // fn#4668, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:14896, offset: 0x00cc950c, size: 228 bytes, params: 7, frame: 16 var r0; var r3; var value3; let value = a3; const env0_0 = a0; const env0_1 = a1; const env0_2 = a2; const env0_3 = a5; const props = this.props; const env0_6 = props.CellRendererComponent; const env0_7 = props.ItemSeparatorComponent; const ListHeaderComponent = props.ListHeaderComponent; const env0_8 = props.ListItemComponent; const data = props.data; const env0_10 = props.debug; const env0_11 = props.getItem; const getItemCount = props.getItemCount; const env0_12 = props.getItemLayout; const env0_13 = props.horizontal; const env0_14 = props.renderItem; reducibleJoin2: while (true) { if (ListHeaderComponent) { value3 = 1; r0 = value3; break reducibleJoin2; } r0 = 0; break reducibleJoin2; } const value5 = getItemCount(data) - 1; const Math = global.Math; const value6 = Math.min(value5, a4); const value_4668_loop2 = value_4668_loop; var env0_17; if (value <= value6) { r3 = value; reducibleLoop3: while (true) { value_4668_loop2(); value = typeof r3 === 'bigint' ? r3 + 1n : +r3 + 1; env0_17 = value; if (value <= value6) { r3 = value; continue reducibleLoop3; } break reducibleLoop3; } } function value_4668_loop() { // fn#4669, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:15193, owner: value_4668._loop, offset: 0x00cc95f0, size: 415 bytes, params: 1, frame: 25 const getItemBinding = getItem; const dataBinding = data; const value2 = undefined; const itemBinding = getItemBinding(dataBinding, importAll); const _keyExtractor = VirtualizedList._keyExtractor; let binding = Module00065; const value5 = Reflect.apply(_keyExtractor, VirtualizedList, [itemBinding, importAll, binding.props]); const env0_0 = value5; const _indicesToKeys = binding._indicesToKeys; _indicesToKeys.set(importAll, value5); if (importDefault.has(importAll + env0_15)) { require.push(env0_0.length); } let r10 = getItemLayout == null || debug; r10 = !r10 ? Module00065._fillRateHelper.enabled() : r10; binding = env0_0; const push = binding.push; const defaultImport = Module00312; const Object = global.Object; const assign = Object.assign; const ItemSeparatorComponent2 = importAll < env0_16 ? ItemSeparatorComponent : value2; r10 = r10 && ({onCellLayout: Module00065._onCellLayout}); Reflect.apply(push, binding, [((Component) => )(defaultImport)]); return value2; function ref(a0) { // fn#4670, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:15666, owner: value_4668._loop.ref, offset: 0x00cc978f, size: 31 bytes, params: 2, frame: 3 env1_5._cellRefs[env0_0] = a0; } } } function value_4671() { // fn#4671, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:15819, offset: 0x00cc97ae, size: 82 bytes, params: 1, frame: 14 var r0; var horizontal; var horizontalOrDefault; const context = this.context; let value = !context; if (context) { horizontal = context.horizontal; value = environment.__proto__; value = require(311) /* metro dependency 311 */; horizontalOrDefault = value.horizontalOrDefault; horizontal = this.props.horizontal; value = Reflect.apply(horizontalOrDefault, value, [horizontal]); value = !!horizontal !== value; r0 = value; } else { r0 = value; } return !r0; } function value_4672(a0, a1) { // fn#4672, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:15997, offset: 0x00cc9800, size: 100 bytes, params: 3, frame: 17 var r0; let value = a0; const type = value.type; const Fragment = env1_13.Fragment; if (type === Fragment) { r0 = value; } else { value = cloneElement(value, {onLayout: onLayout, style: StyleSheet.compose(a1, value.props.style)}); r0 = value; } return r0; function onLayout(a0) { // fn#4673, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:16087, owner: value_4672.onLayout, offset: 0x00cc9864, size: 63 bytes, params: 2, frame: 12 env0_1._onLayoutEmpty(a0); if (env0_0.props.onLayout) { env0_0.props.onLayout(a0); } } } function value_4674() { // fn#4674, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:16224, offset: 0x00cc98a3, size: 1956 bytes, params: 1, frame: 43 var r1; var r22; var r8; var r82; var r25; var r5; var r16; var r0; var r15; var r6; var value3; var moduleValue; var value4; var binding; var push; var value7; var jsxRuntimeEnv1_22Binding; const VirtualizedListCellContextProvider = require(dependencyMap[21]).VirtualizedListCellContextProvider; var value9; var _onLayoutHeader; var compose; var value12; var value15; var value16; var value17; var length; var property; var isSpacer; var iterator; var iterator2; var item; var item2; var _pushCells; var first; var disableVirtualization; var value18; var getItemLayout; var defaultImport; var value19; var _listMetrics; var getHighestMeasuredCellIndex; var value20; var value21; var getCellMetricsApprox; var value22; var value23; var offset; var value24; var value25; var object; var object5; var value26; var HermesInternal; var concat; var value27; var view; var error; var _hasWarned; var keys; var console; var warn; var value30; var listFooterComponent; var _getFooterCellKey; var _onLayoutFooter; var ListFooterComponentStyle; var Object2; var assign2; var props10; var props11; var maintainVisibleContentPosition2; var minIndexForVisible; var props12; var value33; var value34; var _defaultRenderScrollComponent; var jsxRuntimeEnv1_23Binding; var _renderDebugOverlay; let value = undefined; const _checkProps = this._checkProps; let props = this.props; Reflect.apply(_checkProps, this, [props]); props = this.props; const ListEmptyComponent = props.ListEmptyComponent; const ListFooterComponent = props.ListFooterComponent; let ListHeaderComponent = props.ListHeaderComponent; props = this.props; const data = props.data; const horizontal = props.horizontal; const inverted = this.props.inverted; const value2 = null; if (inverted) { value3 = environment.__proto__; moduleValue = require(dependencyMap[18]); value4 = moduleValue.horizontalOrDefault(this.props.horizontal); binding = env1_26; r1 = value4 ? binding.horizontallyInverted : binding.verticallyInverted; } else { r1 = value2; } const items2 = []; const Set = global.Set; const set = new Set(this.props.stickyHeaderIndices); const items3 = []; if (ListHeaderComponent) { if (set.has(0)) { items3.push(0); } value7 = environment.__proto__; r22 = ( isValidElement(ListHeaderComponent) ? ListHeaderComponent : ( ) ); push = items2.push; value9 = this._getCellKey(); _onLayoutHeader = this._onLayoutHeader; compose = StyleSheet.compose; Reflect.apply(push, items2, [{r22}]); } const itemCount = this.props.getItemCount(data); const value11 = 0; if (value11 === itemCount) { if (ListEmptyComponent) { value12 = environment.__proto__; items2.push({this._renderEmptyComponent(isValidElement(ListEmptyComponent) ? ListEmptyComponent : , r1)}); } } if (itemCount > value11) { value15 = environment.__proto__; env1_24 = false; env1_25 = ''; value16 = this._getSpacerKey(!horizontal); value17 = this.state.renderMask.enumerateRegions(); length = value17.length; property = value17[length - 1]; if (value2 != property) { isSpacer = property.isSpacer; r8 = isSpacer ? property : value2; } else { r8 = value2; } iterator = value17[Symbol.iterator](); iterator2 = iterator.next; r82 = iterator; item2 = Reflect.apply(iterator2, r82, []); item = item2.value; item2 = item2.done ? undefined : r82; if (item2 === value) { } keys = this._hasWarned.keys; if (keys) { r5 = !keys; } else { binding = env1_24; r5 = binding; } if (r5) { console = global.console; console.warn('VirtualizedList: missing keys for items, make sure to specify a key or id property on each item or provide a custom keyExtractor.', env1_25); this._hasWarned.keys = true; } } if (ListFooterComponent) { value30 = environment.__proto__; if (isValidElement(ListFooterComponent)) { r16 = ListFooterComponent; } else { listFooterComponent = ; r16 = listFooterComponent; } push = items2.push; var virtualizedListCellContextProviderProps = {cellKey: this._getFooterCellKey()}; _onLayoutFooter = this._onLayoutFooter; compose = StyleSheet.compose; ListFooterComponentStyle = this.props.ListFooterComponentStyle; Reflect.apply(push, items2, [{r16}]); } let Object = global.Object; let assign = Object.assign; props = this.props; let object6 = {}; object6.onContentSizeChange = this._onContentSizeChange; object6.onLayout = this._onLayout; object6.onScroll = this._onScroll; object6.onScrollBeginDrag = this._onScrollBeginDrag; object6.onScrollEndDrag = this._onScrollEndDrag; object6.onMomentumScrollBegin = this._onMomentumScrollBegin; object6.onMomentumScrollEnd = this._onMomentumScrollEnd; let scrollEventThrottle = this.props.scrollEventThrottle; object6.scrollEventThrottle = value2 != scrollEventThrottle ? scrollEventThrottle : 0.0001; object6.invertStickyHeaders = value !== this.props.invertStickyHeaders ? this.props.invertStickyHeaders : this.props.inverted; object6.stickyHeaderIndices = items3; object6.style = r1 ? [r1, this.props.style] : this.props.style; object6.isInvertedVirtualizedList = this.props.inverted; let maintainVisibleContentPosition = this.props.maintainVisibleContentPosition; if (value2 != maintainVisibleContentPosition) { Object2 = global.Object; assign2 = Object2.assign; props10 = this.props; maintainVisibleContentPosition = props10.maintainVisibleContentPosition; props11 = this.props; maintainVisibleContentPosition2 = props11.maintainVisibleContentPosition; minIndexForVisible = maintainVisibleContentPosition2.minIndexForVisible; props12 = this.props; ListHeaderComponent = props12.ListHeaderComponent; if (ListHeaderComponent) { value33 = 1; r15 = value33; } else { r15 = value11; } value34 = Reflect.apply(assign2, Object2, [{}, maintainVisibleContentPosition, {minIndexForVisible: minIndexForVisible + r15}]); r0 = value34; } else { r0 = value; } object6.maintainVisibleContentPosition = r0; let value35 = Reflect.apply(assign, Object, [{}, props, object6]); let last = this.state.cellsAroundViewport.last; this._hasMore = last < itemCount - 1; const VirtualizedListContextProvider = require(dependencyMap[21]).VirtualizedListContextProvider; let object8 = {cellKey: value2}; object8.getScrollMetrics = this._getScrollMetrics; let moduleValue2 = require(dependencyMap[18]); object8.horizontal = moduleValue2.horizontalOrDefault(this.props.horizontal); object8.getOutermostParentListRef = this._getOutermostParentListRef; object8.registerAsNestedChild = this._registerAsNestedChild; object8.unregisterAsNestedChild = this._unregisterAsNestedChild; let cloneElementBinding = cloneElement; let renderScrollComponent = this.props.renderScrollComponent; if (renderScrollComponent) { r6 = renderScrollComponent; } else { _defaultRenderScrollComponent = this._defaultRenderScrollComponent; r6 = _defaultRenderScrollComponent; } let virtualizedListContextProvider = ( {cloneElementBinding(r6(value35), {ref: this._captureScrollRef}, items2)} ); let debug = this.props.debug; if (debug) { _renderDebugOverlay = this._renderDebugOverlay; value = ( {[virtualizedListContextProvider, Reflect.apply(_renderDebugOverlay, this, [])]} ); r0 = value; } else { r0 = virtualizedListContextProvider; } return r0; reducibleLoop21: while (true) { try { isSpacer = item.isSpacer; } catch (error) { try { item2.return(); } catch { } throw error; } if (isSpacer) { try { props = this.props; } catch (error) { try { item2.return(); } catch { } throw error; } try { disableVirtualization = props.disableVirtualization; } catch (error) { try { item2.return(); } catch { } throw error; } reducibleJoin20: while (true) { if (disableVirtualization) { r82 = item2; break reducibleJoin20; } try { value18 = item !== r8; } catch (error) { try { item2.return(); } catch { } throw error; } reducibleJoin54: while (true) { reducibleJoin53: while (true) { if (value18) { break reducibleJoin53; } try { props = this.props; } catch (error) { try { item2.return(); } catch { } throw error; } try { getItemLayout = props.getItemLayout; } catch (error) { try { item2.return(); } catch { } throw error; } if (getItemLayout) { break reducibleJoin53; } try { } catch (error) { try { item2.return(); } catch { } throw error; } try { } catch (error) { try { item2.return(); } catch { } throw error; } try { property = dependencyMap[22]; } catch (error) { try { item2.return(); } catch { } throw error; } try { defaultImport = importDefault(property); } catch (error) { try { item2.return(); } catch { } throw error; } try { first = item.first; } catch (error) { try { item2.return(); } catch { } throw error; } try { value19 = first - 1; } catch (error) { try { item2.return(); } catch { } throw error; } try { last = item.last; } catch (error) { try { item2.return(); } catch { } throw error; } try { _listMetrics = this._listMetrics; } catch (error) { try { item2.return(); } catch { } throw error; } try { getHighestMeasuredCellIndex = _listMetrics.getHighestMeasuredCellIndex; } catch (error) { try { item2.return(); } catch { } throw error; } try { value20 = Reflect.apply(getHighestMeasuredCellIndex, _listMetrics, []); } catch (error) { try { item2.return(); } catch { } throw error; } try { value21 = defaultImport(value19, last, value20); } catch (error) { try { item2.return(); } catch { } throw error; } r25 = value21; break reducibleJoin54; } try { last = item.last; } catch (error) { try { item2.return(); } catch { } throw error; } r25 = last; break reducibleJoin54; } try { _listMetrics = this._listMetrics; } catch (error) { try { item2.return(); } catch { } throw error; } try { getCellMetricsApprox = _listMetrics.getCellMetricsApprox; } catch (error) { try { item2.return(); } catch { } throw error; } try { first = item.first; } catch (error) { try { item2.return(); } catch { } throw error; } try { props = this.props; } catch (error) { try { item2.return(); } catch { } throw error; } try { value22 = Reflect.apply(getCellMetricsApprox, _listMetrics, [first, props]); } catch (error) { try { item2.return(); } catch { } throw error; } try { _listMetrics = this._listMetrics; } catch (error) { try { item2.return(); } catch { } throw error; } try { getCellMetricsApprox = _listMetrics.getCellMetricsApprox; } catch (error) { try { item2.return(); } catch { } throw error; } try { props = this.props; } catch (error) { try { item2.return(); } catch { } throw error; } try { value23 = Reflect.apply(getCellMetricsApprox, _listMetrics, [r25, props]); } catch (error) { try { item2.return(); } catch { } throw error; } try { offset = value23.offset; } catch (error) { try { item2.return(); } catch { } throw error; } try { length = value23.length; } catch (error) { try { item2.return(); } catch { } throw error; } try { value24 = offset + length; } catch (error) { try { item2.return(); } catch { } throw error; } try { offset = value22.offset; } catch (error) { try { item2.return(); } catch { } throw error; } try { value25 = value24 - offset; } catch (error) { try { item2.return(); } catch { } throw error; } try { push = items2.push; } catch (error) { try { item2.return(); } catch { } throw error; } try { jsxRuntimeEnv1_22Binding = jsxRuntimeEnv1_22; } catch (error) { try { item2.return(); } catch { } throw error; } try { } catch (error) { try { item2.return(); } catch { } throw error; } try { object = {}; } catch (error) { try { item2.return(); } catch { } throw error; } try { binding = env1_6; } catch (error) { try { item2.return(); } catch { } throw error; } try { object5 = {}; } catch (error) { try { item2.return(); } catch { } throw error; } try { value26 = binding(object5, value16, value25); } catch (error) { try { item2.return(); } catch { } throw error; } try { object.style = value26; } catch (error) { try { item2.return(); } catch { } throw error; } try { first = item.first; } catch (error) { try { item2.return(); } catch { } throw error; } try { HermesInternal = global.HermesInternal; } catch (error) { try { item2.return(); } catch { } throw error; } try { concat = HermesInternal.concat; } catch (error) { try { item2.return(); } catch { } throw error; } try { value27 = '$spacer-' + first; } catch (error) { try { item2.return(); } catch { } throw error; } try { view = ; } catch (error) { try { item2.return(); } catch { } throw error; } try { Reflect.apply(push, items2, [view]); } catch (error) { try { item2.return(); } catch { } throw error; } r82 = item2; break reducibleJoin20; } } else { try { _pushCells = this._pushCells; } catch (error) { try { item2.return(); } catch { } throw error; } try { first = item.first; } catch (error) { try { item2.return(); } catch { } throw error; } try { last = item.last; } catch (error) { try { item2.return(); } catch { } throw error; } try { Reflect.apply(_pushCells, this, [items2, items3, set, first, last, r1]); } catch (error) { try { item2.return(); } catch { } throw error; } r82 = item2; } item2 = Reflect.apply(iterator2, r82, []); item = item2.value; item2 = item2.done ? undefined : r82; if (item2 === value) { break reducibleLoop21; } continue reducibleLoop21; } keys = this._hasWarned.keys; reducibleJoin88: while (true) { if (keys) { r5 = !keys; break reducibleJoin88; } binding = env1_24; r5 = binding; break reducibleJoin88; } reducibleJoin90: while (true) { if (r5) { console = global.console; warn = console.warn; Reflect.apply(warn, console, ['VirtualizedList: missing keys for items, make sure to specify a key or id property on each item or provide a custom keyExtractor.', env1_25]); _hasWarned = this._hasWarned; _hasWarned.keys = true; break reducibleJoin90; } break reducibleJoin90; } reducibleJoin94: while (true) { if (ListFooterComponent) { value30 = environment.__proto__; reducibleJoin93: while (true) { if (isValidElement(ListFooterComponent)) { r16 = ListFooterComponent; break reducibleJoin93; } jsxRuntimeEnv1_22Binding = jsxRuntimeEnv1_22; listFooterComponent = ; r16 = listFooterComponent; break reducibleJoin93; } push = items2.push; jsxRuntimeEnv1_22Binding = jsxRuntimeEnv1_22; _getFooterCellKey = this._getFooterCellKey; _onLayoutFooter = this._onLayoutFooter; compose = StyleSheet.compose; props = this.props; ListFooterComponentStyle = props.ListFooterComponentStyle; Reflect.apply(push, items2, [{r16}]); break reducibleJoin94; } break reducibleJoin94; } Object = global.Object; assign = Object.assign; props = this.props; object6 = {onContentSizeChange: this._onContentSizeChange, onLayout: this._onLayout, onScroll: this._onScroll, onScrollBeginDrag: this._onScrollBeginDrag, onScrollEndDrag: this._onScrollEndDrag, onMomentumScrollBegin: this._onMomentumScrollBegin, onMomentumScrollEnd: this._onMomentumScrollEnd}; scrollEventThrottle = this.props.scrollEventThrottle; object6.scrollEventThrottle = value2 != scrollEventThrottle ? scrollEventThrottle : 0.0001; object6.invertStickyHeaders = value !== this.props.invertStickyHeaders ? this.props.invertStickyHeaders : this.props.inverted; object6.stickyHeaderIndices = items3; object6.style = r1 ? [r1, this.props.style] : this.props.style; object6.isInvertedVirtualizedList = this.props.inverted; maintainVisibleContentPosition = this.props.maintainVisibleContentPosition; reducibleJoin105: while (true) { if (value2 != maintainVisibleContentPosition) { Object2 = global.Object; assign2 = Object2.assign; props10 = this.props; maintainVisibleContentPosition = props10.maintainVisibleContentPosition; props11 = this.props; maintainVisibleContentPosition2 = props11.maintainVisibleContentPosition; minIndexForVisible = maintainVisibleContentPosition2.minIndexForVisible; props12 = this.props; ListHeaderComponent = props12.ListHeaderComponent; reducibleJoin104: while (true) { if (ListHeaderComponent) { value33 = 1; r15 = value33; break reducibleJoin104; } r15 = value11; break reducibleJoin104; } value34 = Reflect.apply(assign2, Object2, [{}, maintainVisibleContentPosition, {minIndexForVisible: minIndexForVisible + r15}]); r0 = value34; break reducibleJoin105; } r0 = value; break reducibleJoin105; } object6.maintainVisibleContentPosition = r0; value35 = Reflect.apply(assign, Object, [{}, props, object6]); this._hasMore = this.state.cellsAroundViewport.last < itemCount - 1; object8 = {cellKey: value2}; object8.getScrollMetrics = this._getScrollMetrics; moduleValue2 = require(dependencyMap[18]); object8.horizontal = moduleValue2.horizontalOrDefault(this.props.horizontal); object8.getOutermostParentListRef = this._getOutermostParentListRef; object8.registerAsNestedChild = this._registerAsNestedChild; object8.unregisterAsNestedChild = this._unregisterAsNestedChild; cloneElementBinding = cloneElement; renderScrollComponent = this.props.renderScrollComponent; reducibleJoin107: while (true) { if (renderScrollComponent) { r6 = renderScrollComponent; break reducibleJoin107; } _defaultRenderScrollComponent = this._defaultRenderScrollComponent; r6 = _defaultRenderScrollComponent; break reducibleJoin107; } virtualizedListContextProvider = ( {cloneElementBinding(r6(value35), {ref: this._captureScrollRef}, items2)} ); debug = this.props.debug; reducibleJoin109: while (true) { if (debug) { jsxRuntimeEnv1_23Binding = jsxRuntimeEnv1_23; debug = env1_26.debug; _renderDebugOverlay = this._renderDebugOverlay; value = ( {[virtualizedListContextProvider, Reflect.apply(_renderDebugOverlay, this, [])]} ); r0 = value; break reducibleJoin109; } r0 = virtualizedListContextProvider; break reducibleJoin109; } return r0; } function value_4675(a0) { // fn#4675, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:19573, offset: 0x00cca047, size: 123 bytes, params: 2, frame: 14 const {data, extraData, getItemLayout} = this.props; if (!(data === a0.data && extraData === a0.extraData)) { this._viewabilityTuples.forEach(function({viewabilityHelper}) { viewabilityHelper.resetViewableIndices(); }); } const _hiPriInProgress = this._hiPriInProgress; this._scheduleCellsToRenderUpdate(); if (_hiPriInProgress) { this._hiPriInProgress = false; } if (getItemLayout != null) { this._maybeCallOnEdgeReached(); } } function value_4678(a0) { // fn#4678, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:20131, offset: 0x00cca109, size: 35 bytes, params: 2, frame: 13 this._nestedChildLists.forEachInCell(a0, function(a0) { a0.measureLayoutRelativeToContainingList(); }); } function value_4680() { // fn#4680, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:20330, offset: 0x00cca13d, size: 115 bytes, params: 1, frame: 15 var _scrollRef; var measureLayout; var context; var getOutermostParentListRef; var value; var getScrollRef; var closure; var closure2; var error; var console; var warn; var stack; reducibleJoin2: while (true) { reduciblePort15: while (true) { exceptionLanding14: while (true) { try { _scrollRef = this._scrollRef; } catch (error) { break exceptionLanding14; } break reducibleJoin2; } console = global.console; warn = console.warn; stack = error.stack; Reflect.apply(warn, console, ['measureLayoutRelativeToContainingList threw an error', stack]); break reduciblePort15; } return undefined; } if (_scrollRef) { try { _scrollRef = this._scrollRef; } catch (error) { break exceptionLanding14; } try { measureLayout = _scrollRef.measureLayout; } catch (error) { break exceptionLanding14; } try { context = this.context; } catch (error) { break exceptionLanding14; } try { getOutermostParentListRef = context.getOutermostParentListRef; } catch (error) { break exceptionLanding14; } try { value = Reflect.apply(getOutermostParentListRef, context, []); } catch (error) { break exceptionLanding14; } try { getScrollRef = value.getScrollRef; } catch (error) { break exceptionLanding14; } try { value = Reflect.apply(getScrollRef, value, []); } catch (error) { break exceptionLanding14; } try { closure = _fun4681; } catch (error) { break exceptionLanding14; } try { closure2 = function(a0) { global.console.warn("VirtualizedList: Encountered an error while measuring a list's offset from its containing VirtualizedList."); }; } catch (error) { break exceptionLanding14; } try { Reflect.apply(measureLayout, _scrollRef, [value, closure, closure2]); } catch (error) { break exceptionLanding14; } } function _fun4681(a0, a1, a2, a3) { // fn#4681, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:20508, offset: 0x00cca1b0, size: 242 bytes, params: 5, frame: 15 let binding = env0_0; binding._offsetFromParentVirtualizedList = binding._selectOffset({x: a0, y: a1}); const _listMetrics = binding._listMetrics; const notifyListContentLayout = _listMetrics.notifyListContentLayout; object = {}; object.layout = {width: a2, height: a3}; object.orientation = binding._orientation(); Reflect.apply(notifyListContentLayout, _listMetrics, [object]); const _convertParentScrollMetrics = binding._convertParentScrollMetrics; const context = binding.context; const getScrollMetrics = context.getScrollMetrics; const value2 = Reflect.apply(_convertParentScrollMetrics, binding, [Reflect.apply(getScrollMetrics, context, [])]); let _scrollMetrics = binding._scrollMetrics; if (_scrollMetrics.visibleLength !== value2.visibleLength || env0_0._scrollMetrics.offset !== value2.offset) { binding = env0_0; _scrollMetrics = binding._scrollMetrics; _scrollMetrics.visibleLength = value2.visibleLength; _scrollMetrics = binding._scrollMetrics; _scrollMetrics.offset = value2.offset; binding._nestedChildLists.forEach(function(a0) { a0.measureLayoutRelativeToContainingList(); }); } } } function value_4685() { // fn#4685, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:21368, offset: 0x00cca2d7, size: 497 bytes, params: 1, frame: 23 var r2; var getCellMetricsApprox; var value4; var isMounted; var value5; let visibleLength = this._scrollMetrics.visibleLength; let _listMetrics = this._listMetrics; let value = _listMetrics.getContentLength(); value = visibleLength / (value || 1); let items3 = []; let props = this.props; const itemCount = props.getItemCount(this.props.data); const value3 = 0; if (value3 < itemCount) { r2 = value3; while (true) { _listMetrics = this._listMetrics; getCellMetricsApprox = _listMetrics.getCellMetricsApprox; props = this.props; value4 = Reflect.apply(getCellMetricsApprox, _listMetrics, [r2, props]); isMounted = value4.isMounted; if (isMounted) { items3.push(value4); } value5 = typeof r2 === 'bigint' ? r2 + 1n : +r2 + 1; if (value5 < itemCount) { r2 = value5; continue; } break; } } _listMetrics = this._listMetrics; getCellMetricsApprox = _listMetrics.getCellMetricsApprox; const offset = Reflect.apply(getCellMetricsApprox, _listMetrics, [this.state.cellsAroundViewport.first, this.props]).offset; const cellMetricsApprox = this._listMetrics.getCellMetricsApprox(this.state.cellsAroundViewport.last, this.props); const value7 = cellMetricsApprox.offset + cellMetricsApprox.length - offset; const offset3 = this._scrollMetrics.offset; visibleLength = this._scrollMetrics.visibleLength; const items2 = [env1_26.debugOverlayBase]; items2[1] = env1_26.debugOverlay; items3 = [items3.map(_fun4686)]; items3[1] = ( ); items3[2] = ( ); return ( {items3} ); function _fun4686(a0, a1) { // fn#4686, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:21976, offset: 0x00cca4c8, size: 118 bytes, params: 3, frame: 19 return ( ); } } function value_4687(a0) { // fn#4687, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:22284, offset: 0x00cca53e, size: 70 bytes, params: 2, frame: 12 let value = environment.__proto__; value = require(311) /* metro dependency 311 */; return value.horizontalOrDefault(this.props.horizontal) ? a0.width : a0.height; } function value_4691(a0, a1) { // fn#4691, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:23700, offset: 0x00cca7b3, size: 238 bytes, params: 3, frame: 14 var props; var initialScrollIndex; var object; var scrollToIndex; let value = a0 > 0; let r0 = value && a1 > 0 && this.props.initialScrollIndex != null; r0 = r0 && this.props.initialScrollIndex > 0 && !this._hasTriggeredInitialScrollToIndex; if (r0) { props = this.props; if (props.contentOffset == null) { props = this.props; initialScrollIndex = props.initialScrollIndex; props = this.props; if (initialScrollIndex < props.getItemCount(this.props.data)) { scrollToIndex = this.scrollToIndex; object = {animated: false}; value = environment.__proto__; value = importDefault(48) /* metro dependency 48 */; object.index = value(this.props.initialScrollIndex); Reflect.apply(scrollToIndex, this, [object]); } else { this.scrollToEnd({animated: false}); } } this._hasTriggeredInitialScrollToIndex = true; } } function value_4694() { // fn#4694, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:24552, offset: 0x00cca928, size: 198 bytes, params: 1, frame: 15 if (!(this._listMetrics.getAverageCellLength() > 0)) { var getItemLayout = this.props.getItemLayout; if (getItemLayout == null) { if (this._updateCellsToRenderTimeoutID == null) { this._updateCellsToRenderTimeoutID = global.setTimeout(_fun4695, this.props.updateCellsBatchingPeriod ?? 50); } return undefined; } } if (this._shouldRenderWithPriority()) { if (this._hiPriInProgress) { if (this._updateCellsToRenderTimeoutID == null) { this._updateCellsToRenderTimeoutID = global.setTimeout(_fun4695, this.props.updateCellsBatchingPeriod ?? 50); } return undefined; } this._hiPriInProgress = true; if (this._updateCellsToRenderTimeoutID != null) { global.clearTimeout(this._updateCellsToRenderTimeoutID); this._updateCellsToRenderTimeoutID = null; } this._updateCellsToRender(); } else if (this._updateCellsToRenderTimeoutID == null) { this._updateCellsToRenderTimeoutID = global.setTimeout(_fun4695, this.props.updateCellsBatchingPeriod ?? 50); } function _fun4695() { // fn#4695, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:25031, offset: 0x00cca9ee, size: 29 bytes, params: 1, frame: 9 const binding = env0_0; binding._updateCellsToRenderTimeoutID = null; binding._updateCellsToRender(); } } function value_4696() { // fn#4696, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:25201, offset: 0x00ccaa0b, size: 341 bytes, params: 1, frame: 25 var r0; var r10; var r2; var r1; var _listMetrics; var value6; var value10; var value11; const {first, last} = this.state.cellsAroundViewport; const {offset, visibleLength, velocity} = this._scrollMetrics; let value = this.props.getItemCount(this.props.data); const value3 = Module00311Module.onStartReachedThresholdOrDefault(this.props.onStartReachedThreshold); const value4 = Module00311Module.onEndReachedThresholdOrDefault(this.props.onEndReachedThreshold); if (first > 0) { _listMetrics = this._listMetrics; value6 = offset - _listMetrics.getCellMetricsApprox(first, this.props).offset; r10 = value6 < 0 || velocity < -2 && value6 < getScrollingThreshold(value3, visibleLength); } else { r10 = false; } if (r10) { r0 = r10; } else if (last >= 0) { if (last < value - 1) { _listMetrics = this._listMetrics; value = _listMetrics.getCellMetricsApprox(last, this.props).offset - (offset + visibleLength); value10 = value < 0; if (value10) { r1 = value10; } else { value11 = velocity > 2; if (value11) { value = value < getScrollingThreshold(value4, visibleLength); r2 = value; } else { r2 = value11; } r1 = r2; } r0 = r1; } else { r0 = r10; } } else { r0 = r10; } return r0; } function value_4702(a0, a1) { // fn#4702, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:26387, offset: 0x00ccabbf, size: 65 bytes, params: 3, frame: 12 const env0_0 = a0; const env0_1 = a1; if (!(this.state.pendingScrollUpdateCount > 0)) { this._viewabilityTuples.forEach(_fun4703); } function _fun4703({viewabilityHelper, onViewableItemsChanged}) { // fn#4703, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:26505, offset: 0x00ccac00, size: 83 bytes, params: 2, frame: 23 const onUpdate = viewabilityHelper.onUpdate; const binding = env0_0; const binding2 = env0_2; Reflect.apply(onUpdate, viewabilityHelper, [binding, binding2._scrollMetrics.offset, binding2._scrollMetrics.visibleLength, binding2._listMetrics, binding2._createViewToken, onViewableItemsChanged, require]); } } function value_4704(a0, a1, a2) { // fn#4704, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:26707, offset: 0x00ccac53, size: 112 bytes, params: 4, frame: 18 var r4; var value2; var _getItemKey; var value5; const itemCount = a0.getItemCount(a0.data); if (a2 != null) { reducibleJoin4: while (true) { if (a2 >= 0) { if (a2 < itemCount) { value2 = environment; _getItemKey = VirtualizedList._getItemKey; if (Reflect.apply(_getItemKey, VirtualizedList, [a0, a2]) === a1) { return a2; } break reducibleJoin4; } break reducibleJoin4; } break reducibleJoin4; } } const value3 = 0; if (value3 < itemCount) { r4 = value3; reducibleLoop5: while (true) { _getItemKey = VirtualizedList._getItemKey; if (Reflect.apply(_getItemKey, VirtualizedList, [a0, r4]) === a1) { return r4; } value5 = typeof r4 === 'bigint' ? r4 + 1n : +r4 + 1; if (!(value5 < itemCount)) { return null; } r4 = value5; continue reducibleLoop5; } } return null; } function value_4706(a0, a1, a2) { // fn#4706, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:27081, offset: 0x00ccacf0, size: 407 bytes, params: 4, frame: 28 var r9; var r10; var r7; var value; var getItemCount; var data; var value2; var value3; var defaultImport; var first; var value4; var last; var value5; var value6; var HermesInternal; var concat; var CellRenderMask; var prototype; var value7; var cellRenderMask; var value8; var items2; var binding; var iterator; var iterator2; var item; var item2; var addCells; var error; var initialScrollIndex; var _initialRenderRegion; var Set; var stickyHeaderIndices; var set; var value9; var _ensureClosestStickyHeader; exceptionSkip12: while (true) { exceptionLanding12: while (true) { value = a2; getItemCount = a0.getItemCount; data = a0.data; value2 = Reflect.apply(getItemCount, a0, [data]); value3 = environment.__proto__; defaultImport = importDefault(44) /* metro dependency 44 */; first = a1.first; value4 = first >= 0; if (value4) { value5 = a1.last >= a1.first - 1; r9 = value5; } else { r9 = value4; } if (r9) { value6 = a1.last < value2; r9 = value6; } first = a1.first; last = a1.last; HermesInternal = global.HermesInternal; concat = HermesInternal.concat; defaultImport(r9, 'Invalid cells around viewport "[' + first + ', ' + last + ']" was passed to VirtualizedList._createRenderMask'); CellRenderMask = (require(315) /* metro dependency 315 */).CellRenderMask; prototype = CellRenderMask.prototype; value7 = Object.create(prototype, {constructor: {value: CellRenderMask}}); cellRenderMask = new CellRenderMask(); value8 = cellRenderMask instanceof Object ? cellRenderMask : value7; if (value2 > 0) { items2 = [a1]; concat = items2.concat; binding = env1_5; if (value != null) { r10 = value; continue; } iterator = Reflect.apply(concat, items2, [binding([])])[Symbol.iterator](); iterator2 = iterator.next; for (r7 = iterator; true; r7 = item2) { item2 = Reflect.apply(iterator2, r7, []); item = item2.value; item2 = item2.done ? undefined : r7; if (item2 === undefined) { break; } try { addCells = value8.addCells; } catch (error) { break exceptionLanding12; } try { Reflect.apply(addCells, value8, [item]); } catch (error) { break exceptionLanding12; } } initialScrollIndex = a0.initialScrollIndex; if (initialScrollIndex == null) { value = environment; _initialRenderRegion = VirtualizedList._initialRenderRegion; value = Reflect.apply(_initialRenderRegion, VirtualizedList, [a0]); addCells = value8.addCells; Reflect.apply(addCells, value8, [value]); } else { initialScrollIndex = a0.initialScrollIndex; if (!(initialScrollIndex <= 0)) { continue; } value = environment; _initialRenderRegion = VirtualizedList._initialRenderRegion; value = Reflect.apply(_initialRenderRegion, VirtualizedList, [a0]); addCells = value8.addCells; Reflect.apply(addCells, value8, [value]); } Set = global.Set; stickyHeaderIndices = a0.stickyHeaderIndices; prototype = Set.prototype; value = Object.create(prototype, {constructor: {value: Set}}); set = new Set(); value = set instanceof Object ? set : value; value9 = environment; _ensureClosestStickyHeader = VirtualizedList._ensureClosestStickyHeader; first = a1.first; Reflect.apply(_ensureClosestStickyHeader, VirtualizedList, [a0, value, value8, first]); } return value8; break exceptionSkip12; } try { item2.return(); } catch { } throw error; break exceptionSkip12; } } function value_4707(a0) { // fn#4707, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:27667, offset: 0x00ccae87, size: 182 bytes, params: 2, frame: 24 const itemCount = a0.getItemCount(a0.data); let Math = global.Math; const max = Math.max; const Math2 = global.Math; let min = Math2.min; const value2 = itemCount - 1; const Math3 = global.Math; const floor = Math3.floor; const initialScrollIndex = a0.initialScrollIndex; const value3 = 0; const value4 = Reflect.apply(max, Math, [value3, Reflect.apply(min, Math2, [value2, Reflect.apply(floor, Math3, [initialScrollIndex ?? value3])])]); const object = {first: value4}; Math = global.Math; min = Math.min; object.last = Reflect.apply(min, Math, [itemCount, value4 + Module00311Module.initialNumToRenderOrDefault(a0.initialNumToRender)]) - 1; return object; } function value_4709(a0, a1) { // fn#4709, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:28131, offset: 0x00ccaf9c, size: 370 bytes, params: 3, frame: 21 var r2; var r10; var r1; var object; let getItemCount = a0.getItemCount; let value = Reflect.apply(getItemCount, a0, [a0.data]); let renderMask = a1.renderMask; if (value === renderMask.numCells()) { return a1; } const firstVisibleItemKey = a1.firstVisibleItemKey; const maintainVisibleContentPosition = a0.maintainVisibleContentPosition; const value2 = null; const minIndexForVisible = value2 == maintainVisibleContentPosition ? undefined : maintainVisibleContentPosition.minIndexForVisible; const r5 = value2 != minIndexForVisible ? minIndexForVisible : 0; getItemCount = a0.getItemCount; const r3 = Reflect.apply(getItemCount, a0, [a0.data]) > r5 ? VirtualizedList._getItemKey(a0, r5) : value2; if (value2 != a0.maintainVisibleContentPosition) { if (value2 != firstVisibleItemKey) { if (value2 != r3) { if (r3 === firstVisibleItemKey) { r10 = value2; } else { renderMask = a1.renderMask; value = value - renderMask.numCells() + r5; value = VirtualizedList._findItemIndexWithKey(a0, firstVisibleItemKey, value); if (value2 != value) { value -= r5; r2 = value; } else { r2 = value2; } r10 = r2; } } else { r10 = value2; } } else { r10 = value2; } } else { r10 = value2; } const _constrainToItemCount = VirtualizedList._constrainToItemCount; const value8 = value2 != r10; let cellsAroundViewport = a1.cellsAroundViewport; if (value8) { object = {}; object.first = cellsAroundViewport.first + r10; cellsAroundViewport = a1.cellsAroundViewport; object.last = cellsAroundViewport.last + r10; r1 = object; } else { r1 = cellsAroundViewport; } const value9 = Reflect.apply(_constrainToItemCount, VirtualizedList, [r1, a0]); object = {cellsAroundViewport: value9}; object.renderMask = VirtualizedList._createRenderMask(a0, value9); object.firstVisibleItemKey = r3; const pendingScrollUpdateCount = a1.pendingScrollUpdateCount; object.pendingScrollUpdateCount = value8 ? pendingScrollUpdateCount + 1 : pendingScrollUpdateCount; return object; } function value_4710({first, last}, a1) { // fn#4710, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:28989, offset: 0x00ccb10e, size: 162 bytes, params: 3, frame: 20 let value = a1.getItemCount(a1.data); value -= 1; const value3 = Module00311Module.maxToRenderPerBatchOrDefault(a1.maxToRenderPerBatch); let Math = global.Math; const value4 = Math.max(0, value - value3); const object = {}; object.first = (importDefault(314) /* metro dependency 314 */)(0, first, value4); Math = global.Math; object.last = Math.min(value, last); return object; } function value_4711(a0, a1, a2) { // fn#4711, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:29228, offset: 0x00ccb1b0, size: 132 bytes, params: 4, frame: 16 var displayName; if (a2.keyExtractor != null) { return a2.keyExtractor(a0, a1); } const value2 = (Module00304Module).keyExtractor(a0, a1); const String = global.String; if (value2 === String(a1)) { if (a0.type && a0.type.displayName) { displayName = a0.type.displayName; } } return value2; } } } function value_4646(a0) { // fn#4646, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:8745, offset: 0x00cc8aee, size: 167 bytes, params: 2, frame: 16 var _listMetrics; var Math; var max; const r4 = a0 ? a0.animated : !a0; value = this.props.getItemCount(this.props.data); value -= 1; if (!(value < 0)) { _listMetrics = this._listMetrics; value = _listMetrics.getCellMetricsApprox(value, this.props); Math = global.Math; max = Math.max; value = value.offset + value.length; value += this._footerLength; value = Reflect.apply(max, Math, [0, value - this._scrollMetrics.visibleLength]); this.scrollToOffset({animated: r4, offset: value}); } } function value_4649({animated, offset}) { // fn#4649, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:10389, offset: 0x00cc8dff, size: 194 bytes, params: 2, frame: 17 var scrollTo; var value; var _listMetrics; var Object; const _scrollRef = this._scrollRef; if (_scrollRef != null) { scrollTo = _scrollRef.scrollTo; if (scrollTo != null) { value = this._orientation(); if (value.horizontal) { if (value.rtl) { _listMetrics = this._listMetrics; if (_listMetrics.hasContentLength()) { scrollTo = _scrollRef.scrollTo; Object = global.Object; Reflect.apply(scrollTo, _scrollRef, [Object.assign({animated: animated}, this._scrollToParamsFromOffset(offset))]); } else { global.console.warn('scrollToOffset may not be called in RTL before content is laid out'); } } else { scrollTo = _scrollRef.scrollTo; Object = global.Object; Reflect.apply(scrollTo, _scrollRef, [Object.assign({animated: animated}, this._scrollToParamsFromOffset(offset))]); } } else { scrollTo = _scrollRef.scrollTo; Object = global.Object; Reflect.apply(scrollTo, _scrollRef, [Object.assign({animated: animated}, this._scrollToParamsFromOffset(offset))]); } } else { global.console.warn('No scrollTo method provided. This may be because you have two nested VirtualizedLists with the same orientation, or because you are using a custom component that does not implement scrollTo.'); } } } function _fun4652(a0) { // fn#4652, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:11306, offset: 0x00cc8f81, size: 17 bytes, params: 2, frame: 9 a0.recordInteraction(); } function _fun4653({viewabilityHelper}) { // fn#4653, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:11376, offset: 0x00cc8671, size: 23 bytes, params: 2, frame: 9 viewabilityHelper.recordInteraction(); } function _fun4664(a0) { // fn#4664, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:14317, offset: 0x00cc9448, size: 15 bytes, params: 2, frame: 9 return a0.hasMore(); } function _fun4667({viewabilityHelper}) { // fn#4667, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:14783, offset: 0x00cc94f5, size: 23 bytes, params: 2, frame: 9 viewabilityHelper.dispose(); } function _fun4676({viewabilityHelper}) { // fn#4676, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:19724, offset: 0x00cca0c2, size: 23 bytes, params: 2, frame: 9 viewabilityHelper.resetViewableIndices(); } function _fun4679(a0) { // fn#4679, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:20220, offset: 0x00cca12c, size: 17 bytes, params: 2, frame: 9 a0.measureLayoutRelativeToContainingList(); } function _fun4683(a0) { // fn#4683, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:21010, offset: 0x00cca2a2, size: 28 bytes, params: 2, frame: 11 global.console.warn("VirtualizedList: Encountered an error while measuring a list's offset from its containing VirtualizedList."); } function value_4690() { // fn#4690, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:346:22673, offset: 0x00cca5f6, size: 445 bytes, params: 1, frame: 23 var offset; var r7; var r8; var r5; var _scrollMetrics; var visibleLength; var value; var value2; var value3; var value5; var value7; const {data, getItemCount, onStartReached, onStartReachedThreshold, onEndReached, onEndReachedThreshold} = this.props; let _listMetrics = this._listMetrics; if (_listMetrics.hasContentLength()) { _scrollMetrics = this._scrollMetrics; visibleLength = _scrollMetrics.visibleLength; value = 0; if (value !== visibleLength) { if (!(this.state.pendingScrollUpdateCount > value)) { _scrollMetrics = this._scrollMetrics; visibleLength = _scrollMetrics.visibleLength; offset = _scrollMetrics.offset; _listMetrics = this._listMetrics; value2 = _listMetrics.getContentLength() - visibleLength - offset; offset = offset < 0.001 ? value : offset; r7 = value2 < 0.001 ? value : value2; value3 = 2; value5 = offset <= (onStartReachedThreshold != null ? onStartReachedThreshold * visibleLength : value3); value7 = r7 <= (onEndReachedThreshold != null ? onEndReachedThreshold * visibleLength : value3); r8 = onEndReached && this.state.cellsAroundViewport.last === getItemCount(data) - 1; r8 = r8 && value7; r8 = r8 && this._listMetrics.getContentLength() !== this._sentEndForContentLength; if (r8) { _listMetrics = this._listMetrics; this._sentEndForContentLength = _listMetrics.getContentLength(); onEndReached({distanceFromEnd: r7}); } r5 = onStartReached != null && value === this.state.cellsAroundViewport.first; r5 = r5 && value5; r5 = r5 && this._listMetrics.getContentLength() !== this._sentStartForContentLength; if (r5) { _listMetrics = this._listMetrics; this._sentStartForContentLength = _listMetrics.getContentLength(); onStartReached({distanceFromStart: offset}); } if (!value5) { this._sentStartForContentLength = value; } if (!value7) { this._sentEndForContentLength = value; } } } } } global.__d(_fun4604, 305, [65, 77, 29, 6, 7, 15, 17, 18, 31, 27, 33, 306, 307, 44, 79, 308, 309, 310, 311, 304, 312, 313, 314, 48, 315, 316]) /* metro module 305, dependencies: [65, 77, 29, 6, 7, 15, 17, 18, 31, 27, 33, 306, 307, 44, 79, 308, 309, 310, 311, 304, 312, 313, 314, 48, 315, 316] */;