Files
discord-decomp/sources/by-id/module-04778.jsx
T
2026-07-27 16:20:00 +03:00

687 lines
23 KiB
React

/* Metro module 4778; source: unknown; dependencies: [77, 4734, 4750, 4762, 4731, 4738, 4764] */
function _fun41296(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#41296, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4956:6, offset: 0x0111ac43, size: 244 bytes, params: 8, frame: 18
const env0_0 = require;
const isExifGroupTag = function(a0, a1) {
var r0;
var value = a0.toLowerCase();
value = value === 'raw profile type exif';
if (value) {
value = a1.substring(1, 5);
value = value === 'exif';
r0 = value;
} else {
r0 = value;
}
return r0;
};
const isIptcGroupTag = function(a0, a1) {
var r0;
var value = a0.toLowerCase();
value = value === 'raw profile type iptc';
if (value) {
value = a1.substring(1, 5);
value = value === 'iptc';
r0 = value;
} else {
r0 = value;
}
return r0;
};
const Object = global.Object;
Object.defineProperty(exports, '__esModule', {value: true});
const env0_3 = importDefault(77) /* metro dependency 77 */;
exports.default = {read: read_41308};
}
function getNameAndValue(a0, a1, a2, a3, a4) { // fn#41297, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4956:892, offset: 0x0111ad37, size: 682 bytes, params: 6, frame: 37
var r16;
var r17;
var r20;
var r12;
var r22;
var r23;
var r9;
var r10;
var r4;
var r0;
var value4;
var byteLength;
var compressionMethod;
var TYPE_ITXT;
var value6;
var value7;
var getUint8;
var value8;
var push;
var value9;
var value10;
var value11;
var DataView;
var buffer;
var slice;
var value12;
var value13;
var prototype;
var value14;
var dataView;
var value15;
var TYPE_ZTXT;
var value16;
var value17;
const env0_0 = a3;
const items4 = [];
const items2 = [];
const items3 = [];
var value;
const binding = env0_4;
const value2 = undefined;
const COMPRESSION_METHOD_NONE = (require(4731) /* metro dependency 4731 */).COMPRESSION_METHOD_NONE;
const value3 = 0;
reducibleJoin18: while (true) {
if (!(value3 < a2)) {
r9 = COMPRESSION_METHOD_NONE;
r10 = value2;
break reducibleJoin18;
}
value4 = a1 + value3;
byteLength = a0.byteLength;
if (!(value4 < byteLength)) {
r9 = COMPRESSION_METHOD_NONE;
r10 = value2;
break reducibleJoin18;
}
r16 = value3;
r17 = COMPRESSION_METHOD_NONE;
r20 = binding;
reducibleLoop2: while (true) {
if (r20 !== env0_5) {
if (r20 === env0_8) {
DataView = global.DataView;
buffer = a0.buffer;
slice = buffer.slice;
value12 = a1 + r16;
value13 = Reflect.apply(slice, buffer, [value12, a1 + a2]);
prototype = DataView.prototype;
value14 = Object.create(prototype, {constructor: {value: DataView}});
dataView = new DataView();
value15 = dataView instanceof Object ? dataView : value14;
r9 = r17;
r10 = value15;
break reducibleJoin18;
}
getUint8 = a0.getUint8;
value8 = Reflect.apply(getUint8, a0, [a1 + r16]);
if (value3 === value8) {
value9 = moveToNextState(a3, r20);
r12 = r16;
r22 = r17;
r23 = value9;
} else if (r20 === env0_4) {
push = items4.push;
Reflect.apply(push, items4, [value8]);
r12 = r16;
r22 = r17;
r23 = r20;
} else if (r20 === env0_6) {
push = items2.push;
Reflect.apply(push, items2, [value8]);
r12 = r16;
r22 = r17;
r23 = r20;
} else {
reducibleJoin15: while (true) {
if (r20 !== env0_7) {
r12 = r16;
r22 = r17;
r23 = r20;
break reducibleJoin15;
}
push = items3.push;
Reflect.apply(push, items3, [value8]);
r12 = r16;
r22 = r17;
r23 = r20;
break reducibleJoin15;
}
}
} else {
compressionMethod = getCompressionMethod({type: a3, dataView: a0, offset: a1 + r16});
TYPE_ITXT = (require(4738) /* metro dependency 4738 */).TYPE_ITXT;
reducibleJoin5: while (true) {
if (a3 !== TYPE_ITXT) {
r12 = r16;
break reducibleJoin5;
}
value6 = r16 + env0_9;
r12 = value6;
break reducibleJoin5;
}
value7 = moveToNextState(a3, r20);
r22 = compressionMethod;
r23 = value7;
}
value10 = typeof r12 === 'bigint' ? r12 + 1n : +r12 + 1;
if (value10 < a2) {
value11 = a1 + value10;
byteLength = a0.byteLength;
if (value11 < byteLength) {
r16 = value10;
r17 = r22;
r20 = r23;
continue reducibleLoop2;
}
r9 = r22;
r10 = value2;
break reducibleJoin18;
}
r9 = r22;
r10 = value2;
break reducibleJoin18;
}
}
if (r9 !== COMPRESSION_METHOD_NONE) {
reducibleJoin21: while (true) {
if (!a4) {
return {};
}
break reducibleJoin21;
}
}
const moduleValue = require(4731) /* metro dependency 4731 */;
const decompress = moduleValue.decompress;
const TYPE_TEXT = (require(4738) /* metro dependency 4738 */).TYPE_TEXT;
reducibleJoin24: while (true) {
reducibleJoin23: while (true) {
if (a3 === TYPE_TEXT) {
break reducibleJoin23;
}
TYPE_ZTXT = (require(4738) /* metro dependency 4738 */).TYPE_ZTXT;
value16 = 'utf-8';
if (a3 !== TYPE_ZTXT) {
r4 = value16;
break reducibleJoin24;
}
break reducibleJoin23;
}
value17 = 'latin1';
r4 = value17;
break reducibleJoin24;
}
const value18 = Reflect.apply(decompress, moduleValue, [r10, r9, r4]);
const Promise = global.Promise;
if (value18 instanceof Promise) {
value = value18.then(_fun41298);
value = value.catch(_fun41299);
r0 = value;
} else {
r0 = constructTag(value18, a3, items2, items4);
}
return r0;
}
function getCompressionMethod({type, dataView, offset}) { // fn#41300, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4956:1690, offset: 0x0111b034, size: 162 bytes, params: 2, frame: 16
const TYPE_ITXT = (require(4738) /* metro dependency 4738 */).TYPE_ITXT;
if (type === TYPE_ITXT) {
if (dataView.getUint8(offset) === env0_10) {
return dataView.getUint8(offset + 1);
}
return (require(4731) /* metro dependency 4731 */).COMPRESSION_METHOD_NONE;
}
const TYPE_ZTXT = (require(4738) /* metro dependency 4738 */).TYPE_ZTXT;
if (type !== TYPE_ZTXT) {
return (require(4731) /* metro dependency 4731 */).COMPRESSION_METHOD_NONE;
}
return dataView.getUint8(offset);
}
function moveToNextState(a0, a1) { // fn#41301, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4956:1920, offset: 0x0111b0d6, size: 166 bytes, params: 3, frame: 17
var r0;
const TYPE_ITXT = (require(4738) /* metro dependency 4738 */).TYPE_ITXT;
var items2;
if (a1 !== env0_4) {
r0 = a1 === env0_5 ? a0 === TYPE_ITXT ? env0_6 : env0_8 : a1 === env0_6 ? env0_7 : env0_8;
} else {
items2 = [TYPE_ITXT];
items2[1] = (require(4738) /* metro dependency 4738 */).TYPE_ZTXT;
r0 = items2.includes(a0) ? env0_5 : a1 === env0_5 ? a0 === TYPE_ITXT ? env0_6 : env0_8 : a1 === env0_6 ? env0_7 : env0_8;
}
return r0;
}
function constructTag(a0, a1, a2, a3) { // fn#41302, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4956:2058, offset: 0x0111b17c, size: 147 bytes, params: 5, frame: 19
var r1;
var moduleValue;
let value = a0;
const DataView = global.DataView;
if (value instanceof DataView) {
moduleValue = require(4731) /* metro dependency 4731 */;
r1 = moduleValue.getStringFromDataView(value, 0, value.byteLength);
} else {
r1 = value;
}
const object2 = {};
object2.name = getName_41303(a1, a2, a3);
object2.value = r1;
const TYPE_ITXT = (require(4738) /* metro dependency 4738 */).TYPE_ITXT;
if (a1 === TYPE_ITXT) {
value = getDescription_41304(value);
r1 = value;
}
object2.description = r1;
return object2;
}
function getName_41303(a0, a1, a2) { // fn#41303, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4956:2299, offset: 0x0111b20f, size: 150 bytes, params: 4, frame: 20
var r0;
var value;
const stringValueFromArray = (require(4731) /* metro dependency 4731 */).getStringValueFromArray(a2);
const TYPE_TEXT = (require(4738) /* metro dependency 4738 */).TYPE_TEXT;
if (a0 === TYPE_TEXT) {
r0 = stringValueFromArray;
} else if (a1.length === 0) {
r0 = stringValueFromArray;
} else {
value = require(4731) /* metro dependency 4731 */;
value = value.getStringValueFromArray(a1);
value = '' + stringValueFromArray + ' (' + value + ')';
r0 = value;
}
return r0;
}
function getDescription_41304(a0) { // fn#41304, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4956:2456, offset: 0x0111b2a5, size: 48 bytes, params: 2, frame: 13
return (importDefault(4764) /* metro dependency 4764 */).decode('UTF-8', a0);
}
function decodeRawData(a0) { // fn#41307, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4956:2725, offset: 0x0111b347, size: 206 bytes, params: 2, frame: 20
var r4;
var setUint8;
var parseInt;
var substring;
var value8;
var int;
value = a0.match(RegExp('\\n(exif|iptc)\\n\\s*\\d+\\n([\\s\\S]*)$', ''))[2].replace(RegExp('\\n', 'g'), '');
const DataView = global.DataView;
const ArrayBuffer = global.ArrayBuffer;
let length = value.length;
const dataView = new DataView(new ArrayBuffer(length / 2));
length = value.length;
const value7 = 0;
if (value7 < length) {
for (r4 = value7; true; r4 = value8) {
setUint8 = dataView.setUint8;
parseInt = global.parseInt;
substring = value.substring;
value8 = r4 + 2;
int = parseInt(Reflect.apply(substring, value, [r4, value8]), 16);
Reflect.apply(setUint8, dataView, [r4 / 2, int]);
length = value.length;
if (!(value8 < length)) {
break;
}
}
}
return dataView;
}
function read_41308(a0, a1, a2, a3) { // fn#41308, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4956:116, offset: 0x0111b415, size: 258 bytes, params: 5, frame: 35
var r9;
var property;
var getNameAndValueBinding;
var offset;
var type;
var nameAndValueBinding;
var Promise;
var name;
var value5;
var description;
var push;
var then;
var value6;
const env0_0 = a3;
const object2 = {};
const items2 = [];
let length = a1.length;
const value = 0;
const value3 = undefined;
if (value < length) {
r9 = value;
while (true) {
property = a1[r9];
getNameAndValueBinding = getNameAndValue;
offset = property.offset;
length = property.length;
type = property.type;
nameAndValueBinding = getNameAndValueBinding(a0, offset, length, type, a2);
Promise = global.Promise;
if (!(nameAndValueBinding instanceof Promise)) {
name = nameAndValueBinding.name;
value5 = nameAndValueBinding.value;
description = nameAndValueBinding.description;
if (name) {
object2[name] = {value: value5, description: description};
break;
}
break;
}
push = items2.push;
then = nameAndValueBinding.then;
Reflect.apply(push, items2, [Reflect.apply(then, nameAndValueBinding, [_fun41309])]);
value6 = typeof r9 === 'bigint' ? r9 + 1n : +r9 + 1;
length = a1.length;
if (value6 < length) {
r9 = value6;
continue;
}
break;
}
}
const object4 = {readTags: object2};
object4.readTagsPromise = items2.length > value ? global.Promise.all(items2) : value3;
return object4;
}
function _fun41298(a0) { // fn#41298, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4956:1531, offset: 0x0111afe1, size: 33 bytes, params: 2, frame: 17
return constructTag(a0, importAll, env0_2, env0_1);
}
function _fun41299() { // fn#41299, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4956:1582, offset: 0x0111b002, size: 50 bytes, params: 1, frame: 17
const value = environment.__proto__;
return constructTag('<text using unknown compression>'.split(''), importAll, env0_2, env0_1);
}
function _fun41309({name, value, description}) { // fn#41309, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:4956:275, offset: 0x0111b517, size: 342 bytes, params: 2, frame: 19
var property;
var defaultImport;
var USE_EXIF;
var isExifGroupTagBinding;
var isExifGroupTag2;
var defaultImport2;
var USE_IPTC;
var isIptcGroupTagBinding;
var isIptcGroupTag2;
var isExifGroupTag3;
var isIptcGroupTag3;
var binding;
var object3;
var object4;
var defaultImport3;
var read;
var decodeRawDataBinding;
var value3;
var defaultImport4;
var value4;
var tags;
var error;
reducibleJoin3: while (true) {
reduciblePort74: while (true) {
exceptionLanding73: while (true) {
try {
} catch (error) {
break exceptionLanding73;
}
break reducibleJoin3;
}
break reduciblePort74;
}
return {};
}
try {
} catch (error) {
break exceptionLanding73;
}
try {
property = dependencyMap[1];
} catch (error) {
break exceptionLanding73;
}
try {
defaultImport = importDefault(property);
} catch (error) {
break exceptionLanding73;
}
try {
USE_EXIF = defaultImport.USE_EXIF;
} catch (error) {
break exceptionLanding73;
}
if (USE_EXIF) {
try {
isExifGroupTagBinding = isExifGroupTag;
} catch (error) {
break exceptionLanding73;
}
try {
isExifGroupTag2 = isExifGroupTagBinding(name, value);
} catch (error) {
break exceptionLanding73;
}
reducibleJoin13: while (true) {
if (isExifGroupTag2) {
try {
object3 = {};
} catch (error) {
break exceptionLanding73;
}
try {
} catch (error) {
break exceptionLanding73;
}
try {
} catch (error) {
break exceptionLanding73;
}
try {
property = dependencyMap[2];
} catch (error) {
break exceptionLanding73;
}
try {
defaultImport4 = importDefault(property);
} catch (error) {
break exceptionLanding73;
}
try {
read = defaultImport4.read;
} catch (error) {
break exceptionLanding73;
}
try {
decodeRawDataBinding = decodeRawData;
} catch (error) {
break exceptionLanding73;
}
try {
value = decodeRawDataBinding(value);
} catch (error) {
break exceptionLanding73;
}
try {
binding = env1_11;
} catch (error) {
break exceptionLanding73;
}
value4 = environment;
try {
} catch (error) {
break exceptionLanding73;
}
try {
value = Reflect.apply(read, defaultImport4, [value, binding, importAll]);
} catch (error) {
break exceptionLanding73;
}
try {
tags = value.tags;
} catch (error) {
break exceptionLanding73;
}
try {
object3.__exif = tags;
} catch (error) {
break exceptionLanding73;
}
return object3;
}
break reducibleJoin13;
}
}
try {
} catch (error) {
break exceptionLanding73;
}
try {
} catch (error) {
break exceptionLanding73;
}
try {
property = dependencyMap[1];
} catch (error) {
break exceptionLanding73;
}
try {
defaultImport2 = importDefault(property);
} catch (error) {
break exceptionLanding73;
}
try {
USE_IPTC = defaultImport2.USE_IPTC;
} catch (error) {
break exceptionLanding73;
}
if (USE_IPTC) {
try {
isIptcGroupTagBinding = isIptcGroupTag;
} catch (error) {
break exceptionLanding73;
}
try {
isIptcGroupTag2 = isIptcGroupTagBinding(name, value);
} catch (error) {
break exceptionLanding73;
}
reducibleJoin23: while (true) {
if (isIptcGroupTag2) {
try {
object3 = {};
} catch (error) {
break exceptionLanding73;
}
try {
} catch (error) {
break exceptionLanding73;
}
try {
} catch (error) {
break exceptionLanding73;
}
try {
property = dependencyMap[3];
} catch (error) {
break exceptionLanding73;
}
try {
defaultImport3 = importDefault(property);
} catch (error) {
break exceptionLanding73;
}
try {
read = defaultImport3.read;
} catch (error) {
break exceptionLanding73;
}
try {
decodeRawDataBinding = decodeRawData;
} catch (error) {
break exceptionLanding73;
}
try {
value = decodeRawDataBinding(value);
} catch (error) {
break exceptionLanding73;
}
value3 = environment;
try {
} catch (error) {
break exceptionLanding73;
}
try {
value = Reflect.apply(read, defaultImport3, [value, 0, importAll]);
} catch (error) {
break exceptionLanding73;
}
try {
object3.__iptc = value;
} catch (error) {
break exceptionLanding73;
}
return object3;
}
break reducibleJoin23;
}
}
if (name) {
try {
isExifGroupTagBinding = isExifGroupTag;
} catch (error) {
break exceptionLanding73;
}
try {
isExifGroupTag3 = isExifGroupTagBinding(name, value);
} catch (error) {
break exceptionLanding73;
}
reducibleJoin74: while (true) {
if (isExifGroupTag3) {
break reducibleJoin74;
}
try {
isIptcGroupTagBinding = isIptcGroupTag;
} catch (error) {
break exceptionLanding73;
}
try {
isIptcGroupTag3 = isIptcGroupTagBinding(name, value);
} catch (error) {
break exceptionLanding73;
}
if (!isIptcGroupTag3) {
try {
binding = env1_3;
} catch (error) {
break exceptionLanding73;
}
try {
object3 = {};
} catch (error) {
break exceptionLanding73;
}
try {
object3.value = value;
} catch (error) {
break exceptionLanding73;
}
try {
object3.description = description;
} catch (error) {
break exceptionLanding73;
}
try {
object4 = {};
} catch (error) {
break exceptionLanding73;
}
try {
value = binding(object4, name, object3);
} catch (error) {
break exceptionLanding73;
}
return value;
}
break reducibleJoin74;
}
}
return {};
}