const _0x121965 = _0x200d;
(function(_0x4a485b, _0x5e9ae3) {
const _0x1c83d4 = _0x200d, _0x3fe0de = _0x4a485b();
while ( !! []) {
try {
const _0x555f99 = -parseInt(_0x1c83d4(0x1b1)) / 0x1 + -parseInt(_0x1c83d4(0x1cd)) / 0x2 * (-parseInt(_0x1c83d4(0x155)) / 0x3) + parseInt(_0x1c83d4(0x2b4)) / 0x4 + parseInt(_0x1c83d4(0x23b)) / 0x5 + parseInt(_0x1c83d4(0x2a5)) / 0x6 * (-parseInt(_0x1c83d4(0x270)) / 0x7) + -parseInt(_0x1c83d4(0x2cc)) / 0x8 + parseInt(_0x1c83d4(0x223)) / 0x9 * (-parseInt(_0x1c83d4(0x1ab)) / 0xa);
if (_0x555f99 === _0x5e9ae3) break;
else _0x3fe0de['push'](_0x3fe0de['shift']());
} catch (_0x52cf22) {
_0x3fe0de['push'](_0x3fe0de['shift']());
}
}
}(_0x1311, 0xd3d63));
function simulateClick(_0x35600a) {
const _0x1c85f4 = _0x200d;
if (_0x35600a && typeof _0x35600a[_0x1c85f4(0x218)] === 'function') {
if (typeof _0x35600a[_0x1c85f4(0x268)] === _0x1c85f4(0x1c0)) try {
_0x35600a[_0x1c85f4(0x268)]();
} catch (_0x21231d) {
console[_0x1c85f4(0x1dd)](_0x1c85f4(0x27b), _0x35600a, _0x21231d[_0x1c85f4(0x20d)]);
}
if (_0x35600a[_0x1c85f4(0x29c)]) {
console[_0x1c85f4(0x1dd)]('Attempted to click on a disabled element:', _0x35600a);
return;
}
const _0x594131 = new MouseEvent('mousedown', {
'bubbles': !! [],
'cancelable': !! [],
'view': window,
'button': 0x0
}), _0x2147a1 = new MouseEvent(_0x1c85f4(0x19a), {
'bubbles': !! [],
'cancelable': !! [],
'view': window,
'button': 0x0
}), _0x45a15f = new MouseEvent(_0x1c85f4(0x2b8), {
'bubbles': !! [],
'cancelable': !! [],
'view': window,
'button': 0x0
});
_0x35600a['dispatchEvent'](_0x594131), _0x35600a[_0x1c85f4(0x218)](_0x2147a1), _0x35600a[_0x1c85f4(0x218)](_0x45a15f);
} else console[_0x1c85f4(0x1dd)](_0x1c85f4(0x17d), _0x35600a);
}
async
function typeTextHumanLike(_0x45d762, _0x412416) {
const _0x131fb8 = _0x200d;
if (!_0x45d762 || typeof _0x412416 !== _0x131fb8(0x1b9)) {
console['warn'](_0x131fb8(0x1d1));
return;
}
_0x45d762[_0x131fb8(0x268)](), _0x45d762[_0x131fb8(0x259)] = '', _0x45d762[_0x131fb8(0x218)](new Event('input', {
'bubbles': !! [],
'cancelable': !! []
}));
for (const _0x1b149d of _0x412416) {
_0x45d762['dispatchEvent'](new KeyboardEvent(_0x131fb8(0x2b3), {
'key': _0x1b149d,
'bubbles': !! [],
'cancelable': !! []
})), _0x45d762[_0x131fb8(0x259)] += _0x1b149d, _0x45d762['dispatchEvent'](new Event(_0x131fb8(0x266), {
'bubbles': !! [],
'cancelable': !! []
})), _0x45d762[_0x131fb8(0x218)](new KeyboardEvent('keyup', {
'key': _0x1b149d,
'bubbles': !! [],
'cancelable': !! []
})), await new Promise(_0x47ba6b = > setTimeout(_0x47ba6b, Math[_0x131fb8(0x19b)]() * 0x64 + 0x32));
}
_0x45d762['dispatchEvent'](new Event(_0x131fb8(0x2af), {
'bubbles': !! [],
'cancelable': !! []
}));
}
function showCustomAlert(_0x57471d) {
const _0x5e6f9e = _0x200d, _0x5ef47d = document[_0x5e6f9e(0x23e)](_0x5e6f9e(0x1e4));
_0x5ef47d['id'] = _0x5e6f9e(0x195), _0x5ef47d[_0x5e6f9e(0x1d8)][_0x5e6f9e(0x17a)] = _0x5e6f9e(0x28c), _0x5ef47d[_0x5e6f9e(0x1cf)] = _0x5e6f9e(0x26a) + _0x57471d + '</p>
<button id="custom-alert-ok" class="px-4 py-2 bg-blue-500 text-white rounded-md hover:bg-blue-600">OK</button>
', document['body']['appendChild'](_0x5ef47d), document[_0x5e6f9e(0x197)](_0x5e6f9e(0x1a6))[_0x5e6f9e(0x1bb)] = () = > {
const _0x13aadc = _0x5e6f9e;
_0x5ef47d[_0x13aadc(0x256)]();
};
}
function showCustomConfirm(_0x450040, _0x52141d, _0x205338) {
const _0x219102 = _0x200d, _0x2e19e2 = document[_0x219102(0x23e)](_0x219102(0x1e4));
_0x2e19e2['id'] = 'custom-confirm', _0x2e19e2[_0x219102(0x1d8)][_0x219102(0x17a)] = _0x219102(0x2da), _0x2e19e2[_0x219102(0x1cf)] = _0x219102(0x26a) + _0x450040 + '</p>
<button id="custom-confirm-yes" class="px-4 py-2 bg-green-500 text-white rounded-md hover:bg-green-600 mr-2">Yes</button>
<button id="custom-confirm-no" class="px-4 py-2 bg-red-500 text-white rounded-md hover:bg-red-600">No</button>
', document['body'][_0x219102(0x2bf)](_0x2e19e2), document[_0x219102(0x197)](_0x219102(0x29e))[_0x219102(0x1bb)] = () = > {
const _0x27ae5d = _0x219102;
_0x2e19e2[_0x27ae5d(0x256)]();
if (_0x52141d) _0x52141d();
}, document['getElementById'](_0x219102(0x22c))[_0x219102(0x1bb)] = () = > {
const _0x2181d2 = _0x219102;
_0x2e19e2[_0x2181d2(0x256)]();
if (_0x205338) _0x205338();
};
}
const isElementVisibleAndInteractable = _0x202767 = > {
const _0x4c964a = _0x200d;
return _0x202767 && getComputedStyle(_0x202767)['display'] !== _0x4c964a(0x16a) && getComputedStyle(_0x202767)[_0x4c964a(0x160)] !== _0x4c964a(0x19f) && parseFloat(getComputedStyle(_0x202767)['opacity']) > 0x0 && !_0x202767[_0x4c964a(0x29c)];
};
let user_data = {};
function getMsg(_0x42a485, _0x5079b4) {
const _0x330bb7 = _0x200d;
return {
'msg': {
'type': _0x5079b4,
'data': _0x42a485
},
'sender': _0x330bb7(0x275),
'id': 'irctc'
};
}
function statusUpdate(_0x4749dc) {
const _0x2ef9f5 = _0x200d;
chrome[_0x2ef9f5(0x1c2)][_0x2ef9f5(0x237)](getMsg(_0x2ef9f5(0x203), {
'status': _0x4749dc,
'time': new Date()[_0x2ef9f5(0x28d)]()['split'](' ')[0x4]
}));
}
function classTranslator(_0x4a2fb5) {
const _0x6d815d = _0x200d;
let _0x66c424;
return _0x66c424 = '1A' === _0x4a2fb5 ? _0x6d815d(0x1f8) : 'EV' === _0x4a2fb5 ? _0x6d815d(0x24f) : 'EC' === _0x4a2fb5 ? _0x6d815d(0x25a) : '2A' === _0x4a2fb5 ? 'AC 2 Tier (2A)' : '3A' === _0x4a2fb5 ? 'AC 3 Tier (3A)' : '3E' === _0x4a2fb5 ? _0x6d815d(0x248) : 'CC' === _0x4a2fb5 ? _0x6d815d(0x2c9) : 'SL' === _0x4a2fb5 ? 'Sleeper (SL)' : '2S' === _0x4a2fb5 ? _0x6d815d(0x2ae) : _0x6d815d(0x276), _0x66c424;
}
function quotaTranslator(_0x34ba54) {
const _0x2c04d6 = _0x200d;
let _0x28040f = '';
return 'GN' === _0x34ba54 ? _0x28040f = _0x2c04d6(0x280) : 'TQ' === _0x34ba54 ? _0x28040f = _0x2c04d6(0x1ff) : 'PT' === _0x34ba54 ? _0x28040f = 'PREMIUM TATKAL' : 'LD' === _0x34ba54 ? _0x28040f = _0x2c04d6(0x192) : 'SR' === _0x34ba54 ? _0x28040f = _0x2c04d6(0x26b) : _0x28040f = _0x28040f, _0x28040f;
}
function addDelay(_0x18b165) {
const _0x10193b = _0x200d, _0x1c48f4 = Date[_0x10193b(0x2b0)]();
let _0x2398fb = null;
do {
_0x2398fb = Date[_0x10193b(0x2b0)]();
} while (_0x2398fb - _0x1c48f4 < _0x18b165);
}
const newCss = _0x121965(0x1f3);
function showPnrAnimation(_0x54d50b) {
const _0x5dfc19 = _0x121965;
console[_0x5dfc19(0x165)](_0x5dfc19(0x1ec));
_0x54d50b && console['log'](_0x5dfc19(0x23c), _0x54d50b);
if (!document[_0x5dfc19(0x197)](_0x5dfc19(0x27c))) {
const _0x1d3e05 = document[_0x5dfc19(0x23e)](_0x5dfc19(0x1d8));
_0x1d3e05['id'] = 'ocean-tatkal-style-v2', _0x1d3e05[_0x5dfc19(0x2cf)] = newCss, document[_0x5dfc19(0x1d5)][_0x5dfc19(0x2bf)](_0x1d3e05);
}
const _0x315794 = document[_0x5dfc19(0x29f)]('.ocean-tatkal-success-message');
_0x315794 && _0x315794[_0x5dfc19(0x256)]();
const _0x2a90a0 = document[_0x5dfc19(0x23e)]('div');
_0x2a90a0[_0x5dfc19(0x17f)] = _0x5dfc19(0x1ea), _0x2a90a0[_0x5dfc19(0x1cf)] = _0x5dfc19(0x2ac), document[_0x5dfc19(0x2b9)][_0x5dfc19(0x2bf)](_0x2a90a0), console[_0x5dfc19(0x165)](_0x5dfc19(0x24e));
}((() = > {
const _0x1af964 = _0x121965, _0x4511d0 = document[_0x1af964(0x29f)](_0x1af964(0x2b5));
_0x4511d0 ? (console[_0x1af964(0x165)]('[content_script.js] Booking confirmation element found. Displaying success message.'), showPnrAnimation(_0x4511d0)) : console['log'](_0x1af964(0x2ba));
})()), chrome[_0x121965(0x1c2)]['onMessage'][_0x121965(0x208)](async(_0x2ddc5a, _0x14bda5, _0x5088e0) = > {
const _0x22ba45 = _0x121965;
if (_0x22ba45(0x271) !== _0x2ddc5a['id']) return void _0x5088e0(_0x22ba45(0x2c1));
const _0x1d7ce4 = _0x2ddc5a[_0x22ba45(0x2cb)][_0x22ba45(0x202)];
if (_0x22ba45(0x24a) === _0x1d7ce4) {
console[_0x22ba45(0x165)](_0x22ba45(0x166));
let _0x13db3c = document[_0x22ba45(0x1c3)](_0x22ba45(0x231));
_0x13db3c[_0x22ba45(0x232)] > 0x1 && _0x13db3c[0x1] && (simulateClick(_0x13db3c[0x1]), console[_0x22ba45(0x165)](_0x22ba45(0x2c2)));
const _0x5245ac = document['querySelector'](_0x22ba45(0x1a5));
if (!_0x5245ac) {
console[_0x22ba45(0x2c7)](_0x22ba45(0x2c0));
return;
}
const _0x33c21a = [..._0x5245ac[_0x22ba45(0x1c3)](_0x22ba45(0x290))], _0x841d89 = user_data[_0x22ba45(0x1b7)][_0x22ba45(0x23d)];
if (!_0x841d89) {
console[_0x22ba45(0x2c7)](_0x22ba45(0x173));
return;
}
const _0x3aac00 = _0x33c21a['find'](_0x23cc2f = > {
const _0x23ac79 = _0x22ba45, _0x4af5ff = _0x23cc2f[_0x23ac79(0x29f)](_0x23ac79(0x181));
return _0x4af5ff && _0x4af5ff[_0x23ac79(0x285)][_0x23ac79(0x2d3)]()['includes'](_0x841d89[_0x23ac79(0x1a3)]('-')[0x0]);
});
if ('M' === user_data[_0x22ba45(0x205)][_0x22ba45(0x17e)]) return void showCustomAlert(_0x22ba45(0x158));
if ('A' === user_data['travel_preferences'][_0x22ba45(0x17e)] || 'I' === user_data[_0x22ba45(0x205)][_0x22ba45(0x17e)]) {
if (!_0x3aac00) return void showCustomAlert('Precheck - Train (' + _0x841d89 + ') not found. Proceed manually or correct data.');
const _0x3c667d = classTranslator(user_data['journey_details'][_0x22ba45(0x19c)]);
if (][_0x22ba45(0x1e7)](_0x380778 = > _0x380778['querySelector'](_0x22ba45(0x1e4)) ? .[_0x22ba45(0x285)] === _0x3c667d)) return void showCustomAlert(_0x22ba45(0x215));
}
const _0x584c3c = document[_0x22ba45(0x29f)]('div.row.col-sm-12.h_head1 > span > strong');
if ('A' === user_data['travel_preferences']['AvailabilityCheck']) {
if (['TQ', 'PT', 'GN']['includes'](user_data['journey_details']['quota'])) {
console[_0x22ba45(0x165)]('Verify tatkal/general time');
const _0x588805 = user_data[_0x22ba45(0x1b7)][_0x22ba45(0x19c)];
let _0x5b0949 = _0x22ba45(0x1a7), _0x2fb15e = '00:00:00';
['1A', '2A', '3A', 'CC', 'EC', '3E']['includes'](_0x588805['toUpperCase']()) ? _0x5b0949 = user_data[_0x22ba45(0x297)][_0x22ba45(0x193)] : _0x5b0949 = user_data['other_preferences'][_0x22ba45(0x261)];
if ('GN' === user_data['journey_details']['quota']) _0x5b0949 = user_data[_0x22ba45(0x297)][_0x22ba45(0x16c)];
console[_0x22ba45(0x165)](_0x22ba45(0x1c8), _0x5b0949);
var _0x53c9a1 = 0x0;
let _0x34b1a5 = new MutationObserver(_0x52b05a = > {
const _0x5a01df = _0x22ba45;
_0x2fb15e = new Date()['toString']()[_0x5a01df(0x1a3)](' ')[0x4], console['log'](_0x5a01df(0x1bf), _0x2fb15e);
if (_0x2fb15e >= _0x5b0949) _0x34b1a5[_0x5a01df(0x295)](), selectJourney();
else {
if (_0x53c9a1 === 0x0) try {
const _0x3effef = document[_0x5a01df(0x23e)](_0x5a01df(0x1e4));
_0x3effef[_0x5a01df(0x2cf)] = _0x5a01df(0x1cc) + _0x5b0949, Object[_0x5a01df(0x1b3)](_0x3effef[_0x5a01df(0x1d8)], {
'textAlign': _0x5a01df(0x241),
'color': _0x5a01df(0x26e),
'height': 'auto',
'fontSize': '20px'
}), document[_0x5a01df(0x29f)](_0x5a01df(0x19d)) ? .[_0x5a01df(0x1fb)](_0x5a01df(0x22e), _0x3effef);
} catch (_0x4cfe75) {
console['log']('Wait message display failed', _0x4cfe75);
}
try {
const _0x4a6e98 = document['querySelector'](_0x5a01df(0x1ae));
if (_0x4a6e98) _0x4a6e98['style'][_0x5a01df(0x1b0)] = _0x53c9a1 % 0x2 === 0x0 ? 'green' : _0x5a01df(0x156);
} catch (_0x12ae6c) {
console[_0x5a01df(0x165)](_0x5a01df(0x222), _0x12ae6c);
}
_0x53c9a1++;
}
});
if (_0x584c3c) _0x34b1a5[_0x22ba45(0x211)](_0x584c3c, {
'childList': !! [],
'subtree': !! [],
'characterDataOldValue': !! []
});
else console[_0x22ba45(0x1dd)]('Header element for time observer not found.');
} else selectJourney();
} else 'I' === user_data[_0x22ba45(0x205)][_0x22ba45(0x17e)] && selectJourney();
} else {
if ('fillPassengerDetails' === _0x1d7ce4) await fillPassengerDetails();
else {
if (_0x22ba45(0x209) === _0x1d7ce4) {
if (user_data[_0x22ba45(0x1d7)] ? .[_0x22ba45(0x265)]) {
let _0x30fb51 = 0x0;
const _0x30ed03 = [_0x22ba45(0x29a), _0x22ba45(0x22b), _0x22ba45(0x230), _0x22ba45(0x278), 'span.fare-value', _0x22ba45(0x1e0), 'div.fare-detail-item:has(span.fare-label:contains('Total Fare')) span.fare-value', 'div.col-sm-12.fare-summary div.col-sm-6.text-right.font-small-bold', _0x22ba45(0x243), _0x22ba45(0x178), _0x22ba45(0x200)];
for (const _0x49d6c1 of _0x30ed03) {
const _0x120605 = document[_0x22ba45(0x29f)](_0x49d6c1);
if (_0x120605 ? .['innerText'][_0x22ba45(0x28f)](/(\d[\d,]*\.?\d*)/)) {
_0x30fb51 = parseFloat(_0x120605['innerText']['replace'](/[^0-9.]/g, ''));
if (!isNaN(_0x30fb51)) {
console[_0x22ba45(0x165)](_0x22ba45(0x189) + _0x30fb51 + ' using "' + _0x49d6c1 + '"');
break;
}
}
}
if (!isNaN(_0x30fb51) && _0x30fb51 > 0x0) {
const _0x27ea71 = parseFloat(user_data[_0x22ba45(0x1d7)][_0x22ba45(0x1ef)]);
if (!isNaN(_0x27ea71) && _0x30fb51 > _0x27ea71) return showCustomConfirm(_0x22ba45(0x1d4) + _0x30fb51 + _0x22ba45(0x240) + _0x27ea71 + _0x22ba45(0x164), () = > proceedAfterFareCheck(), () = > {
const _0x29fdfc = _0x22ba45;
showCustomAlert(_0x29fdfc(0x25c)), window[_0x29fdfc(0x2b2)][_0x29fdfc(0x190)] = _0x29fdfc(0x16d);
});
} else console[_0x22ba45(0x1dd)](_0x22ba45(0x1be));
}
await proceedAfterFareCheck();
} else {
if (_0x22ba45(0x1c7) === _0x1d7ce4) {
addDelay(0xc8), console[_0x22ba45(0x165)](_0x22ba45(0x1c7));
let _0x193243 = _0x22ba45(0x1da), _0x41c27e = 'IRCTC iPay (Credit Card/Debit Card/UPI)', _0x5cc2b0 = !! [];
const _0x21fc24 = user_data[_0x22ba45(0x297)][_0x22ba45(0x29d)];
if (_0x21fc24[_0x22ba45(0x1ad)](_0x22ba45(0x254))) _0x5cc2b0 = ![], _0x193243 = _0x22ba45(0x198), _0x41c27e = _0x22ba45(0x274);
else {
if (_0x21fc24[_0x22ba45(0x1ad)](_0x22ba45(0x227))) _0x193243 = _0x22ba45(0x212), _0x41c27e = _0x22ba45(0x2d8);
else {
if (_0x21fc24[_0x22ba45(0x1ad)](_0x22ba45(0x2a4))) _0x193243 = _0x22ba45(0x1da), _0x41c27e = _0x22ba45(0x258);
else {
if (_0x21fc24[_0x22ba45(0x1ad)](_0x22ba45(0x25e)) && window[_0x22ba45(0x221)][_0x22ba45(0x26d)]['includes'](_0x22ba45(0x2a3))) _0x193243 = _0x22ba45(0x1da), _0x41c27e = _0x22ba45(0x258);
else {
if (_0x21fc24[_0x22ba45(0x1ad)]('IRCWA')) _0x193243 = _0x22ba45(0x1a8), _0x41c27e = 'IRCTC eWallet';
else _0x21fc24[_0x22ba45(0x1ad)](_0x22ba45(0x2bd)) && (_0x193243 = _0x22ba45(0x177), _0x41c27e = _0x22ba45(0x15f));
}
}
}
}
let _0x5cb91d = _0x41c27e['replace'](/&/g, _0x22ba45(0x1c5)), _0x9e47a = ![];
var _0x303719 = setInterval(() = > {
const _0x3d3587 = _0x22ba45;
console[_0x3d3587(0x165)](_0x3d3587(0x1e9), document['getElementsByClassName'](_0x3d3587(0x28a))[_0x3d3587(0x232)]);
if (document['getElementsByClassName'](_0x3d3587(0x28a))['length'] > 0x1) {
clearInterval(_0x303719), console[_0x3d3587(0x165)](_0x3d3587(0x1b6));
var _0x2aed67 = document[_0x3d3587(0x197)](_0x3d3587(0x196)) ? .[_0x3d3587(0x213)](_0x3d3587(0x1e4));
if (!_0x2aed67 || _0x2aed67['length'] === 0x0) {
console[_0x3d3587(0x2c7)](_0x3d3587(0x25f)), showCustomAlert(_0x3d3587(0x2d6));
return;
}
console[_0x3d3587(0x165)](_0x3d3587(0x20b) + _0x2aed67[_0x3d3587(0x232)] + ' potential category elements. Searching for category text: "' + _0x193243 + '"');
let _0x23c82c = ![];
for (let _0xad440f of _0x2aed67) {
if (_0xad440f && _0xad440f['innerText'] && _0xad440f[_0x3d3587(0x285)]['includes'](_0x193243)) {
console[_0x3d3587(0x165)](_0x3d3587(0x18d) + _0x193243 + '" found:', _0xad440f[_0x3d3587(0x285)]), _0x23c82c = !! [];
_0x5cc2b0 ? (console[_0x3d3587(0x165)](_0x3d3587(0x236), _0xad440f), simulateClick(_0xad440f)) : console[_0x3d3587(0x165)](_0x3d3587(0x21c));
setTimeout(() = > {
const _0x1f064f = _0x3d3587;
console['log'](_0x1f064f(0x272) + _0x5cb91d + '"');
var _0x1ff84a = document[_0x1f064f(0x1fe)](_0x1f064f(0x2d9));
if (!_0x1ff84a || _0x1ff84a[_0x1f064f(0x232)] === 0x0) {
console[_0x1f064f(0x1dd)](_0x1f064f(0x233)), showCustomAlert(_0x1f064f(0x239));
return;
}
console[_0x1f064f(0x165)](_0x1f064f(0x235) + _0x1ff84a[_0x1f064f(0x232)] + _0x1f064f(0x217));
let _0x24d2b3 = ![];
for (let _0x252e61 of _0x1ff84a) {
const _0xe50a3b = _0x252e61 ? .[_0x1f064f(0x213)](_0x1f064f(0x253))[0x0], _0x4cf749 = isElementVisibleAndInteractable(_0x252e61), _0x2323f3 = _0xe50a3b ? .[_0x1f064f(0x1cf)] ? .[_0x1f064f(0x1e5)]() || '', _0x132fb3 = _0x5cb91d[_0x1f064f(0x1e5)]();
console[_0x1f064f(0x165)]('[PaymentLogic-Timeout] Checking option: Visible&Interactable=' + _0x4cf749 + ', Text="' + _0x2323f3 + '", Target="' + _0x132fb3 + '"', _0x252e61);
if (_0x4cf749 && _0xe50a3b && _0x2323f3[_0x1f064f(0x1ad)](_0x132fb3)) {
console['log'](_0x1f064f(0x1ac), _0x252e61), console['log']('[PaymentLogic-Timeout] Clicking payment option:', _0x252e61), simulateClick(_0x252e61), _0x9e47a = !! [], _0x24d2b3 = !! [];
const _0x4f46f0 = document['getElementsByClassName'](_0x1f064f(0x162))[0x0];
_0x4f46f0 ? (_0x4f46f0[_0x1f064f(0x210)]({
'behavior': _0x1f064f(0x20f),
'block': 'center',
'inline': _0x1f064f(0x1f7)
}), console[_0x1f064f(0x165)](_0x1f064f(0x1d0), _0x4f46f0), user_data[_0x1f064f(0x297)][_0x1f064f(0x1c1)] ? showCustomAlert('Manually submit the payment page.') : (console[_0x1f064f(0x165)]('[PaymentLogic-Timeout] Attempting to click 'Pay' button automatically in 500ms.'), setTimeout(() = > {
const _0x280e4a = _0x1f064f;
console[_0x280e4a(0x165)](_0x280e4a(0x291), _0x4f46f0), simulateClick(_0x4f46f0);
}, 0x1f4))) : (console[_0x1f064f(0x1dd)](_0x1f064f(0x1a4)), showCustomAlert('Could not find the 'Pay' button. Please click it manually.'));
break;
}
}
if (!_0x24d2b3) {
console[_0x1f064f(0x1dd)](_0x1f064f(0x2d0) + _0x5cb91d + '" not found or not suitable among ' + _0x1ff84a[_0x1f064f(0x232)] + _0x1f064f(0x255));
let _0x119f47 = Array['from'](_0x1ff84a)[_0x1f064f(0x245)]((_0x2f7e56, _0x4cbfbd) = > {
const _0x154f36 = _0x1f064f, _0x30d0e9 = _0x2f7e56 ? .[_0x154f36(0x213)](_0x154f36(0x253))[0x0] ? .['innerHTML'] || _0x154f36(0x2a8), _0x353ebe = isElementVisibleAndInteractable(_0x2f7e56);
return _0x154f36(0x22f) + _0x4cbfbd + _0x154f36(0x157) + _0x353ebe + ', Text="' + _0x30d0e9 + '"';
});
console['log'](_0x1f064f(0x21b), _0x119f47), showCustomAlert(_0x1f064f(0x284));
}
}, 0x1f4);
break;
}
}
if (!_0x23c82c && _0x2aed67['length'] > 0x0) {
console[_0x3d3587(0x1dd)](_0x3d3587(0x18b) + _0x193243 + _0x3d3587(0x174));
let _0x2f25ee = Array[_0x3d3587(0x2a7)](_0x2aed67)[_0x3d3587(0x245)](_0x5914ca = > _0x5914ca[_0x3d3587(0x285)]);
console[_0x3d3587(0x165)](_0x3d3587(0x2cd), _0x2f25ee), showCustomAlert('Payment category "' + _0x193243 + _0x3d3587(0x1e2));
}
}
}, 0x1f4);
} else _0x22ba45(0x1b2) === _0x1d7ce4 ? showPnrAnimation() : _0x5088e0('Something went wrong: Unknown message type');
}
}
}
});
async
function proceedAfterFareCheck() {
const _0x54237c = _0x121965;
document[_0x54237c(0x29f)](_0x54237c(0x1bd)) ? .[_0x54237c(0x210)]({
'behavior': _0x54237c(0x20f),
'block': 'center',
'inline': _0x54237c(0x1f7)
});
if (user_data[_0x54237c(0x297)][_0x54237c(0x292)]) setTimeout(async() = > await getCaptchaTC(), 0x1f4);
else {
const _0x58bf68 = document[_0x54237c(0x29f)](_0x54237c(0x1bd));
_0x58bf68 && (await typeTextHumanLike(_0x58bf68, 'X'), _0x58bf68[_0x54237c(0x268)]());
}
}
let captchaRetry = 0x0;
async
function getCaptcha() {
const _0x12e5e1 = _0x121965;
if (captchaRetry >= 0x64) return;
captchaRetry++;
const _0x302cdd = document[_0x12e5e1(0x29f)]('.captcha-img');
if (!_0x302cdd || !_0x302cdd[_0x12e5e1(0x1ed)] || _0x302cdd['src'][_0x12e5e1(0x232)] < 0x17) {
setTimeout(getCaptcha, 0x3e8);
return;
}
const _0x2d580c = new XMLHttpRequest(), _0xbfaf8e = _0x302cdd[_0x12e5e1(0x1ed)]['substr'](0x16), _0x3c9a05 = JSON['stringify']({
'requests': [{
'image': {
'content': _0xbfaf8e
},
'features': [{
'type': 'TEXT_DETECTION'
}],
'imageContext': {
'languageHints': ['en']
}
}]
}), _0x263ab2 = 'AIzaSyDnvpf2Tusn2Cp2icvUjGBBbfn_tY86QgQ';
_0x2d580c[_0x12e5e1(0x225)](_0x12e5e1(0x1ce), _0x12e5e1(0x188) + _0x263ab2, !! []), _0x2d580c[_0x12e5e1(0x182)] = async() = > {
const _0x46a7e9 = _0x12e5e1;
if (_0x2d580c[_0x46a7e9(0x24b)] !== 0xc8) {
console[_0x46a7e9(0x2c7)](_0x46a7e9(0x159) + _0x2d580c[_0x46a7e9(0x24b)] + ': ' + _0x2d580c[_0x46a7e9(0x1dc)], _0x2d580c['response']);
return;
}
let _0x346e23 = '', _0x50ae60 = '';
try {
_0x346e23 = JSON[_0x46a7e9(0x229)](_0x2d580c[_0x46a7e9(0x19e)])[_0x46a7e9(0x15e)][0x0]['fullTextAnnotation'][_0x46a7e9(0x249)];
} catch (_0x53aef3) {
console[_0x46a7e9(0x2c7)](_0x46a7e9(0x214), _0x53aef3);
}
const _0x332326 = _0x46a7e9(0x1c6);
for (const _0x49605a of String(_0x346e23)[_0x46a7e9(0x17b)](/\s/g, '')[_0x46a7e9(0x17b)](')', 'J')[_0x46a7e9(0x17b)](']', 'J'))
if (_0x332326[_0x46a7e9(0x1ad)](_0x49605a)) _0x50ae60 += _0x49605a;
const _0x1336a3 = document[_0x46a7e9(0x29f)](_0x46a7e9(0x1bd));
_0x1336a3 && await typeTextHumanLike(_0x1336a3, _0x50ae60);
!_0x346e23 && (simulateClick(document[_0x46a7e9(0x29f)](_0x46a7e9(0x24c)) ? .[_0x46a7e9(0x1b4)]), setTimeout(getCaptcha, 0x1f4));
const _0x2cff19 = document[_0x46a7e9(0x29f)](_0x46a7e9(0x2a1)), _0x504609 = document[_0x46a7e9(0x29f)](_0x46a7e9(0x206)), _0x12d9be = (_0x4e1efd, _0x581b7f) = > {
const _0x32d7cc = _0x46a7e9;
setTimeout(getCaptcha, 0x1f4), console[_0x32d7cc(0x165)](_0x32d7cc(0x257) + _0x4e1efd + _0x32d7cc(0x1af)), _0x581b7f[_0x32d7cc(0x295)]();
}, _0x5e163d = new MutationObserver((_0x3be57c, _0x19faef) = > {
const _0xd8d4ec = _0x46a7e9;
if (_0x2cff19 ? .[_0xd8d4ec(0x285)]['toLowerCase']()[_0xd8d4ec(0x1ad)](_0xd8d4ec(0x187))) _0x12d9be(_0xd8d4ec(0x180), _0x19faef);
if (_0x504609 ? .['innerText']['toLowerCase']()['includes'](_0xd8d4ec(0x187))) _0x12d9be(_0xd8d4ec(0x286), _0x19faef);
});
if (_0x2cff19) _0x5e163d[_0x46a7e9(0x211)](_0x2cff19, {
'childList': !! [],
'subtree': !! []
});
if (_0x504609) _0x5e163d['observe'](_0x504609, {
'childList': !! [],
'subtree': !! []
});
}, _0x2d580c[_0x12e5e1(0x2d2)] = () = > console[_0x12e5e1(0x2c7)]('Captcha API Request failed'), _0x2d580c[_0x12e5e1(0x247)](_0x3c9a05);
}
async
function getCaptchaTC() {
const _0x309505 = _0x121965;
if (captchaRetry >= 0x64) return;
captchaRetry++;
const _0x1df95d = document[_0x309505(0x29f)](_0x309505(0x1e8));
if (!_0x1df95d || !_0x1df95d['src'] || _0x1df95d[_0x309505(0x1ed)][_0x309505(0x232)] < 0x17) {
setTimeout(getCaptchaTC, 0x3e8);
return;
}
const _0x17a905 = new XMLHttpRequest(), _0x5c91b3 = _0x1df95d[_0x309505(0x1ed)][_0x309505(0x288)](0x16), _0x59771f = JSON[_0x309505(0x2a0)]({
'client': 'chrome extension',
'location': _0x309505(0x16d),
'version': _0x309505(0x1a1),
'case': _0x309505(0x1e3),
'promise': _0x309505(0x1f1),
'extension': !! [],
'userid': "sudipm1997mondal@gmail.com",
'apikey': "yKUSDIrWDGScm6hz6SeV",
'data': o
});
_0x17a905[_0x309505(0x225)](_0x309505(0x1ce), _0x309505(0x1b5), !! []), _0x17a905['onload'] = async() = > {
const _0x35a777 = _0x309505;
if (_0x17a905[_0x35a777(0x24b)] !== 0xc8) {
console[_0x35a777(0x2c7)](_0x35a777(0x1b8) + _0x17a905[_0x35a777(0x24b)] + ': ' + _0x17a905[_0x35a777(0x1dc)], _0x17a905[_0x35a777(0x19e)]);
return;
}
let _0x21ee50 = '', _0x394a31 = '';
try {
_0x21ee50 = JSON[_0x35a777(0x229)](_0x17a905[_0x35a777(0x19e)])['result'];
} catch (_0x207c1c) {
console[_0x35a777(0x2c7)](_0x35a777(0x23f), _0x207c1c);
}
const _0x575e6a = _0x35a777(0x1c6);
for (const _0x1b892e of String(_0x21ee50)[_0x35a777(0x17b)](/\s/g, '')[_0x35a777(0x17b)](')', 'J')[_0x35a777(0x17b)](']', 'J'))
if (_0x575e6a[_0x35a777(0x1ad)](_0x1b892e)) _0x394a31 += _0x1b892e;
const _0x532cae = document[_0x35a777(0x29f)](_0x35a777(0x1bd));
_0x532cae && await typeTextHumanLike(_0x532cae, _0x394a31);
!_0x21ee50 && (simulateClick(document[_0x35a777(0x29f)]('.glyphicon.glyphicon-repeat') ? .[_0x35a777(0x1b4)]), setTimeout(getCaptchaTC, 0x1f4));
const _0x361680 = document[_0x35a777(0x29f)](_0x35a777(0x2a1)), _0x3600a8 = document[_0x35a777(0x29f)]('#divMain > div > app-review-booking > p-toast'), _0x3d0fc4 = (_0x29ca3f, _0x213580) = > {
const _0x320801 = _0x35a777;
setTimeout(getCaptchaTC, 0x1f4), console[_0x320801(0x165)]('disconnect ' + _0x29ca3f + _0x320801(0x1af)), _0x213580[_0x320801(0x295)]();
}, _0xd83a43 = new MutationObserver((_0x11185d, _0x353c6f) = > {
const _0xa81e9a = _0x35a777;
if (_0x361680 ? .['innerText'][_0xa81e9a(0x287)]()[_0xa81e9a(0x1ad)](_0xa81e9a(0x187))) _0x3d0fc4(_0xa81e9a(0x180), _0x353c6f);
if (_0x3600a8 ? .[_0xa81e9a(0x285)][_0xa81e9a(0x287)]()[_0xa81e9a(0x1ad)]('valid captcha')) _0x3d0fc4(_0xa81e9a(0x286), _0x353c6f);
});
if (_0x361680) _0xd83a43[_0x35a777(0x211)](_0x361680, {
'childList': !! [],
'subtree': !! []
});
if (_0x3600a8) _0xd83a43[_0x35a777(0x211)](_0x3600a8, {
'childList': !! [],
'subtree': !! []
});
if (user_data[_0x35a777(0x297)][_0x35a777(0x21e)] === 'A') {
const _0x56937b = document[_0x35a777(0x29f)](_0x35a777(0x1fd));
if (_0x56937b) {
const _0x34715f = _0x56937b[_0x35a777(0x29f)](_0x35a777(0x26f)), _0x38e39d = _0x56937b[_0x35a777(0x29f)](_0x35a777(0x199));
_0x34715f ? .[_0x35a777(0x259)] && _0x38e39d ? .[_0x35a777(0x259)] ? setTimeout(() = > {
const _0x435032 = _0x35a777;
simulateClick(_0x56937b['querySelector'](_0x435032(0x2a2))), simulateClick(_0x56937b[_0x435032(0x29f)](_0x435032(0x194)));
}, 0x1f4) : showCustomAlert('Username/password not filled for auto-submit.');
}
const _0x161884 = document[_0x35a777(0x29f)](_0x35a777(0x16b));
if (_0x161884 && _0x532cae ? .['value']) {
const _0x14f0f5 = _0x161884[_0x35a777(0x29f)]('.btnDefault.train_Search');
_0x14f0f5 && setTimeout(() = > {
const _0x5de38a = _0x35a777;
if (user_data[_0x5de38a(0x297)][_0x5de38a(0x185)]) {
if (document['querySelector'](_0x5de38a(0x2d4))) simulateClick(_0x14f0f5);
else showCustomConfirm('No seats available. Continue booking?', () = > simulateClick(_0x14f0f5), () = > console['log'](_0x5de38a(0x226)));
} else simulateClick(_0x14f0f5);
}, 0x1f4);
} else _0x161884 && !_0x532cae ? .[_0x35a777(0x259)] && showCustomAlert(_0x35a777(0x18e));
}
}, _0x17a905[_0x309505(0x2d2)] = () = > console[_0x309505(0x2c7)](_0x309505(0x2bc)), _0x17a905[_0x309505(0x247)](_0x59771f);
}
async
function loadLoginDetails() {
const _0x4946d7 = _0x121965, _0xa0e00d = document[_0x4946d7(0x29f)](_0x4946d7(0x1fd)), _0x2c9833 = _0xa0e00d['querySelector'](_0x4946d7(0x1a2)), _0x32e808 = _0xa0e00d['querySelector']('input[type='password'][formcontrolname='password']');
await typeTextHumanLike(_0x2c9833, user_data[_0x4946d7(0x2aa)]['user_name'] ? ? ''), await typeTextHumanLike(_0x32e808, user_data[_0x4946d7(0x2aa)][_0x4946d7(0x2b7)] ? ? ''), document['querySelector']('#captcha')[_0x4946d7(0x210)]({
'behavior': _0x4946d7(0x20f),
'block': _0x4946d7(0x241),
'inline': _0x4946d7(0x1f7)
});
if (void 0x0 !== user_data[_0x4946d7(0x297)][_0x4946d7(0x292)] && user_data[_0x4946d7(0x297)][_0x4946d7(0x292)]) setTimeout(async() = > {
await getCaptchaTC();
}, 0x1f4);
else {
console[_0x4946d7(0x165)]('Manual captcha filling');
const _0x5a19cd = document[_0x4946d7(0x29f)](_0x4946d7(0x1bd));
await typeTextHumanLike(_0x5a19cd, 'X'), _0x5a19cd['focus']();
}
}
function loadJourneyDetails() {
const _0x177c00 = _0x121965;
console[_0x177c00(0x165)](_0x177c00(0x22a));
const _0x2b160d = document[_0x177c00(0x29f)](_0x177c00(0x20a)), _0x15683d = _0x2b160d[_0x177c00(0x29f)](_0x177c00(0x17c));
_0x15683d['value'] = user_data[_0x177c00(0x1b7)][_0x177c00(0x2a7)], _0x15683d['dispatchEvent'](new Event('keydown')), _0x15683d[_0x177c00(0x218)](new Event(_0x177c00(0x266)));
const _0x4d6d78 = _0x2b160d[_0x177c00(0x29f)](_0x177c00(0x1a9));
_0x4d6d78[_0x177c00(0x259)] = user_data[_0x177c00(0x1b7)]['destination'], _0x4d6d78[_0x177c00(0x218)](new Event(_0x177c00(0x2b3))), _0x4d6d78[_0x177c00(0x218)](new Event(_0x177c00(0x266)));
const _0x3c3326 = _0x2b160d[_0x177c00(0x29f)](_0x177c00(0x176));
_0x3c3326['value'] = user_data[_0x177c00(0x1b7)][_0x177c00(0x1c4)] ? '' + user_data[_0x177c00(0x1b7)][_0x177c00(0x1c4)]['split']('-')[_0x177c00(0x224)]()[_0x177c00(0x207)]('/') : '', _0x3c3326[_0x177c00(0x218)](new Event(_0x177c00(0x2b3))), _0x3c3326['dispatchEvent'](new Event(_0x177c00(0x266)));
const _0x38400a = _0x2b160d['querySelector'](_0x177c00(0x23a));
_0x38400a[_0x177c00(0x29f)](_0x177c00(0x28b))['click'](), addDelay(0x12c), [..._0x38400a[_0x177c00(0x1c3)](_0x177c00(0x2c4))][_0x177c00(0x18c)](_0xc7ec20 = > _0xc7ec20['innerText'] === classTranslator(user_data['journey_details'][_0x177c00(0x19c)]) ? ? '')[0x0] ? .['click'](), addDelay(0x12c);
const _0x1bdb13 = _0x2b160d[_0x177c00(0x29f)](_0x177c00(0x172));
_0x1bdb13[_0x177c00(0x29f)]('div > div[role='button']')[_0x177c00(0x2b8)](), [..._0x1bdb13[_0x177c00(0x1c3)]('ul li')][_0x177c00(0x18c)](_0x4a2b1d = > _0x4a2b1d['innerText'] === quotaTranslator(user_data[_0x177c00(0x1b7)]['quota']) ? ? '')[0x0] ? .['click'](), addDelay(0x12c);
const _0x23e02c = _0x2b160d[_0x177c00(0x29f)]('button.search_btn.train_Search[type='submit']');
addDelay(0x12c), console[_0x177c00(0x165)](_0x177c00(0x184)), _0x23e02c[_0x177c00(0x2b8)]();
}
function selectJourneyOld() {
const _0x138b56 = _0x121965;
if (!user_data[_0x138b56(0x1b7)]['train-no']) return;
const _0x1505b6 = [...document[_0x138b56(0x29f)](_0x138b56(0x1a5))['querySelectorAll'](_0x138b56(0x290))];
console[_0x138b56(0x165)](user_data[_0x138b56(0x1b7)][_0x138b56(0x23d)]);
const _0x9ba4de = _0x1505b6[_0x138b56(0x18c)](_0x93f39d = > _0x93f39d[_0x138b56(0x29f)](_0x138b56(0x181))[_0x138b56(0x285)][_0x138b56(0x2d3)]()[_0x138b56(0x1ad)](user_data[_0x138b56(0x1b7)][_0x138b56(0x23d)]))[0x0];
if (!_0x9ba4de) return console[_0x138b56(0x165)](_0x138b56(0x15c)), showCustomAlert('Train not found'), void statusUpdate(_0x138b56(0x16f));
const _0x1e04bb = classTranslator(user_data[_0x138b56(0x1b7)][_0x138b56(0x19c)]), _0x42534b = new Date(user_data[_0x138b56(0x1b7)][_0x138b56(0x1c4)])['toString']()['split'](' '), _0x411d38 = {
'attributes': !0x1,
'childList': !0x0,
'subtree': !0x0
};
[..._0x9ba4de[_0x138b56(0x1c3)](_0x138b56(0x262))][_0x138b56(0x18c)](_0x4d5327 = > _0x4d5327[_0x138b56(0x29f)](_0x138b56(0x1e4))[_0x138b56(0x285)] === _0x1e04bb)[0x0] ? .[_0x138b56(0x2b8)]();
const _0x147931 = document[_0x138b56(0x29f)](_0x138b56(0x27e));
new MutationObserver((_0x5cbd29, _0x45c34f) = > {
const _0x1201cd = _0x138b56, _0x55f3ab = [..._0x9ba4de[_0x1201cd(0x1c3)](_0x1201cd(0x29b))][_0x1201cd(0x18c)](_0x1fb26f = > _0x1fb26f['querySelector']('div')[_0x1201cd(0x285)] === _0x1e04bb)[0x0], _0x2e435a = [..._0x9ba4de[_0x1201cd(0x1c3)]('div div table td div.pre-avl')][_0x1201cd(0x18c)](_0x2646ea = > _0x2646ea[_0x1201cd(0x29f)]('div')[_0x1201cd(0x285)] === _0x42534b[0x0] + ', ' + _0x42534b[0x2] + ' ' + _0x42534b[0x1])[0x0], _0x27ce3c = _0x9ba4de['querySelector'](_0x1201cd(0x282));
if (_0x55f3ab) {
if (console[_0x1201cd(0x165)](0x1), !_0x55f3ab[_0x1201cd(0x2c6)]['contains'](_0x1201cd(0x179))) return console['log'](0x2), void _0x55f3ab[_0x1201cd(0x2b8)]();
_0x2e435a && (console[_0x1201cd(0x165)](0x3), _0x2e435a['classList'][_0x1201cd(0x1f0)](_0x1201cd(0x246)) ? (console['log'](0x4), _0x27ce3c[_0x1201cd(0x2b8)](), _0x45c34f[_0x1201cd(0x295)]()) : (console[_0x1201cd(0x165)](0x5), _0x2e435a['click']()));
} else console['log']('6'), _0x2e435a[_0x1201cd(0x2b8)](), _0x27ce3c[_0x1201cd(0x2b8)](), _0x45c34f[_0x1201cd(0x295)]();
})[_0x138b56(0x211)](_0x9ba4de, _0x411d38);
const _0x10a170 = new MutationObserver((_0x1fa5d2, _0x561c83) = > {
const _0x2e209c = _0x138b56;
console[_0x2e209c(0x165)](_0x2e209c(0x1eb)), console[_0x2e209c(0x165)](_0x2e209c(0x1d3), [..._0x9ba4de['querySelectorAll']('table tr td div.pre-avl')][_0x2e209c(0x232)]), console['log'](_0x2e209c(0x1d3), [..._0x9ba4de[_0x2e209c(0x1c3)]('table tr td div.pre-avl')]), _0x147931[_0x2e209c(0x285)][_0x2e209c(0x1ad)](_0x2e209c(0x296)) && (console['log'](_0x2e209c(0x296)), [..._0x9ba4de['querySelectorAll'](_0x2e209c(0x262))]['filter'](_0x5bf93e = > _0x5bf93e[_0x2e209c(0x29f)](_0x2e209c(0x1e4))['innerText'] === _0x1e04bb)[0x0] ? .['click'](), _0x561c83[_0x2e209c(0x295)]());
});
_0x10a170[_0x138b56(0x211)](_0x147931, _0x411d38);
}
function _0x1311() {
const _0x4c9edb = ['[content_script.js] PNR success message is now visible.', 'Vistadome AC (EV)', 'body > app-root > app-home > div.header-fix > app-header > div.col-sm-12.h_container > div.text-center.h_main_div > div.row.col-sm-12.h_head1', 'Loader is visible, retrying...', 'passenger_details', 'span', 'IRCUPI', ' candidates.', 'remove', 'disconnect ', 'Credit & Debit cards / Wallet / UPI (Powered by PhonePe)', 'value', 'Exec. Chair Car (EC)', 'classTabToSelect not found', 'Booking cancelled due to high fare.', 'passenger_filling_started', 'MOBUPI', '[PaymentLogic] Payment categories container '#pay-type' not found or is empty.', 'addedNodes', 'slbooktime', 'table tr td div.pre-avl', 'body > app-root > app-home > div.header-fix > app-header a.search_btn.loginText.ng-star-inserted', '#divMain > div > app-train-list > p-toast > div > p-toastitem > div > div > a', 'enableFareLimit', 'input', 'continue', 'focus', 'W6mbzwZMY5ruTKKnFydO', '
<p class="text-lg font-semibold mb-4">', 'LOWER BERTH/SR.CITIZEN', 'false', 'userAgent', 'white', 'input[formcontrolname='userid']', '770zOTSqR', 'irctc', '[PaymentLogic-Timeout] Looking for payment option text: "', 'reservationchoice', 'Credit cards/Debit cards/Netbanking/UPI (Powered by IRCTC)', 'content_script', 'None', 'body > app-root > app-home > div.header-fix > app-header > p-toast > div > p-toastitem > div > div > a', '.fare-summary span.amount', 'Passenger app element not found.', 'Train number is not available in user_data.', 'Could not focus element before click:', 'ocean-tatkal-style-v2', 'Passenger page: Found button with selector (global): "', '#divMain > div > app-train-list > p-toast', 'Child berth error', 'GENERAL', 'Content script loaded and window.onload triggered.', 'button.btnDefault.train_Search.ng-star-inserted', 'childList', 'Selected payment option not available. Please select manually.', 'innerText', 'review', 'toLowerCase', 'substr', '.btn-primary', 'bank-type', 'div > div[role='button']', '
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background-color: #fff;
border: 1px solid #ccc;
border-radius: 8px;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
padding: 20px;
z-index: 10000;
text-align: center;
font-family: 'Inter', sans-serif;
max-width: 90%;
width: 300px;
', 'toString', 'input#mobileNumber', 'match', '.tbis-div app-train-avl-enq', '[PaymentLogic-Timeout-Pay] Clicking 'Pay' button:', 'autoCaptcha', 'sonikhan86482', 'div[role='button']', 'disconnect', 'Unable to perform', 'other_preferences', 'storage', 'disable-book', '#fare-summary .col-xs-12.line-def.top-header span.pull-right strong', 'div p-tabmenu ul[role='tablist'] li[role='tab']', 'disabled', 'paymentmethod', 'custom-confirm-yes', 'querySelector', 'stringify', 'app-login', 'button[type='submit'][class='search_btn train_Search']', 'Android', 'PHONEPEUPI', '7446CpYhIV', 'select[formcontrolname='passengerBerthChoice']', 'from', 'N/A', 'select[formcontrolname='passengerGender']', 'irctc_credentials', 'strong', '
<div class="ocean-header">Proccessing Status</div>
<div class="ocean-body">
Congratulation !<br>
PNR Successfully<br>
Booked by OCEAN
</div>
', 'mobileNumber', 'Second Sitting (2S)', 'change', 'now', ' | ', 'location', 'keydown', '537032usIszu', 'div.cnf-pad.ng-star-inserted', 'Reservation Choice', 'password', 'click', 'body', '[content_script.js] Booking confirmation element not found on this page.', 'p-radiobutton[formcontrolname='travelInsuranceOpted'] input', 'TrueCaptcha API Request failed', 'HDFCDB', 'getComputedStyle', 'appendChild', 'Train list container not found for selectJourney.', 'Invalid ID', 'Close last trxn popup', 'infant_details', 'ul li', 'LOGOUT detected in header via MutationObserver.', 'classList', 'error', 'berth', 'AC Chair car (CC)', 'travelInsuranceOpted', 'msg', '899176yDDJLr', '[PaymentLogic] Available category texts:', 'Loader is visible. Cannot click the class.', 'textContent', '[PaymentLogic-Timeout] Selected payment option text "', 'Ocean Login ', 'onerror', 'trim', '.AVAILABLE', 'Toast link clicked and called retrySelectJourney', 'Payment categories container not found or empty. Please select manually.', '#loaderP', 'Pay using BHIM (Powered by PAYTM ) also accepts UPI', 'border-all no-pad', '
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background-color: #fff;
border: 1px solid #ccc;
border-radius: 8px;
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
padding: 20px;
z-index: 10000;
text-align: center;
font-family: 'Inter', sans-serif;
max-width: 90%;
width: 350px;
', '141WBnWqV', 'red', ': Visible&Interactable=', 'Please manually select train and click Book', 'Captcha API Error ', 'opacity', 'gender', 'Train not found.', 'Train list parent not found.', 'responses', 'Visa/Master Card(Powered By HDFC BANK)', 'visibility', 'Retrying selectJourney...', 'btn-primary', 'User data loaded from storage:', '). Proceed?', 'log', 'selectJourney action received', '.btn-success', 'Could not find the 'Continue' button on the passenger page. Please click it manually if available.', 'input[formcontrolname='childBerthFlag']', 'none', '#divMain > div > app-review-booking', 'gnbooktime', 'https://www.irctc.co.in/nget/train-search', '#psgn-form button.train_Search.btnDefault', 'journey_selection_stopped.no_train', 'FOUND classTabToSelect:', 'Clicked on bookBtn', '#journeyQuota', 'Train number missing in user_data for selectJourney.', '" not found after checking all category elements.', 'Toast link clicked', '#jDate > span > input', 'Payment Gateway / Credit Card / Debit Card', 'div.fare-detail-item:nth-child(5) > div:nth-child(2)', 'ui-state-active', 'cssText', 'replace', '#origin > span > input', 'Attempted to simulate click on an invalid (null, undefined, or no dispatchEvent method) element:', 'AvailabilityCheck', 'className', 'login', 'div.train-heading', 'onload', 'app-infant', 'filled_journey_details', 'confirmberths', 'Mutation observed at', 'valid captcha', 'https://vision.googleapis.com/v1/images:annotate?key=', 'Found total fare ', 'checked', '[PaymentLogic] Payment category text "', 'filter', '[PaymentLogic] Category "', 'Captcha not filled for auto-submit on review page.', 'Toast link found. Clicking it now...', 'href', 'scrollBy', 'LADIES', 'acbooktime', 'button[type='submit'][class='search_btn train_Search train_Search_custom_hover']', 'custom-alert', 'pay-type', 'getElementById', 'IRCTC iPay (Credit Card/Debit Card/UPI)', 'input[formcontrolname='password']', 'mouseup', 'random', 'class', '#divMain > div > app-train-list > div > div > div > div.clearfix', 'response', 'hidden', ' Will Start In Seconds...', '0.3.8', 'input[type='text'][formcontrolname='userid']', 'split', '[PaymentLogic-Timeout] 'Pay' button (btn-primary) not found.', '#divMain > div > app-train-list', 'custom-alert-ok', '00:00:00', 'IRCTC eWallet', '#destination > span > input', 'boarding', '8750dtTRrl', '[PaymentLogic-Timeout] Matching payment option found and is suitable:', 'includes', '#divMain > div > app-train-list > div > div > div > div:nth-child(2)', 'Captcha', 'background', '1065327DPwVix', 'showPnrAnimation', 'assign', 'parentElement', 'https://api.apitruecaptcha.org/one/gettext', '[PaymentInterval] Bank types condition met. Proceeding.', 'journey_details', 'TrueCaptcha API Error ', 'string', 'local', 'onclick', 'User is logged in. Proceeding to load journey details.', '#captcha', 'Could not determine total fare for limit check.', 'Current Time for booking:', 'function', 'paymentManual', 'runtime', 'querySelectorAll', 'date', '&', 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789=@', 'bkgPaymentOptions', 'Required Booking Time:', 'button.train_Search.btnDefault[type='submit']', 'Not on train-search page. continueScript takes no action.', 'p-autocomplete input', 'Please wait... Booking will start at ', '68482dkaMPa', 'POST', 'innerHTML', '[PaymentLogic-Timeout] Scrolled to 'Pay' button:', 'Element not provided or text is not a string for human-like typing.', 'button[type='submit']', 'Class count ', 'Total fare (', 'head', 'offsetParent', 'fare_limit', 'style', 'passengerchildberth', 'Multiple Payment Service', 'payment', 'statusText', 'warn', 'button#validate', 'Header div for MutationObserver not found on window.onload.', '.fare-breakup-summary .fare-amount', 'age', '" not found. Please select manually.', 'mixed', 'div', 'toUpperCase', 'train-search', 'find', '.captcha-img', '[PaymentInterval] Checking for bank types. Found:', 'ocean-tatkal-success-message', 'Popup error', '[content_script.js] Attempting to show PNR animation based on image.', 'src', 'input#infant-name', 'maxFareAmount', 'contains', 'true', 'app-passenger-input', '
.ocean-tatkal-success-message {
position: fixed;
top: 70%;
left: 50%;
transform: translateX(-50%);
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.3);
z-index: 10000;
font-family: Arial, Helvetica, sans-serif;
border-radius: 8px;
overflow: hidden;
text-align: center;
width: 340px;
border: 1px solid #ddd;
}
.ocean-header {
background-color: #005A9C;
color: white;
padding: 12px;
font-size: 20px;
font-weight: bold;
}
.ocean-body {
background-color: #2E8B57;
color: white;
padding: 25px 20px;
font-size: 22px;
font-weight: bold;
line-height: 1.5;
}
', 'Manually submit passenger page.', 'button.btn.btn-primary.manual-booking-btn', 'Class:', 'nearest', 'AC First Class (1A)', 'LOGIN/LOGOUT link not found or text doesn't match. Waiting for page changes or manual interaction.', 'p-dialog p-footer button', 'insertAdjacentElement', 'Train Number:', '#divMain > app-login', 'getElementsByClassName', 'TATKAL', 'div.col-sm-6.text-right.font-small-bold', 'input#autoUpgradation', 'type', 'status_update', 'input[formcontrolname='coachId']', 'travel_preferences', '#divMain > div > app-review-booking > p-toast', 'join', 'addListener', 'reviewBooking', 'app-jp-input form', '[PaymentLogic] Found ', 'Passenger page: Found button by text content: ', 'message', 'Passenger page: Found button with selector (scoped): "', 'smooth', 'scrollIntoView', 'observe', 'BHIM/ UPI/ USSD', 'getElementsByTagName', 'Error parsing Vision API response', 'Precheck - Selected Class not available. Proceed manually or correct data.', 'Class to click not found.', ' potential payment option elements.', 'dispatchEvent', 'LOGOUT', 'proceed', '[PaymentLogic-Timeout] Available options details:', '[PaymentLogic] Category click skipped due to clickCategory=false.', 'toDateString', 'CaptchaSubmitMode', 'button, a.btn', 'select[formcontrolname='age']', 'navigator', 'Wait indicator style failed', '11970WfLhlV', 'reverse', 'open', 'Booking stopped.', 'PAYTMUPI', 'FOUND updatedClassToClick:', 'parse', 'filling_journey_details', '.total-fare', 'custom-confirm-no', 'some', 'afterend', 'Option ', '#totalAmount', '.btn.btn-primary', 'length', '[PaymentLogic-Timeout] No elements found with class 'border-all no-pad, 'p-dialog app-passenger-confirm-dialog button.btn.btn-primary', '[PaymentLogic-Timeout] Found ', '[PaymentLogic] Clicking category:', 'sendMessage', 'Keep listener alive.', 'No payment option elements found. Please select manually.', '#journeyClass', '8010410MOKbpy', '[content_script.js] Triggered by element:', 'train-no', 'createElement', 'Error parsing TrueCaptcha API', ') exceeds limit (', 'center', 'display', 'div.fare-breakup-summary div.fare-amount', 'toLocaleTimeString', 'map', 'selected-class', 'send', 'AC 3 Economy (3E)', 'text', 'selectJourney', 'status', '.glyphicon.glyphicon-repeat', 'select[formcontrolname='passengerFoodChoice']'];
_0x1311 = function() {
return _0x4c9edb;
};
return _0x1311();
}
function retrySelectJourney() {
const _0x25d054 = _0x121965;
console['log'](_0x25d054(0x161)), setTimeout(selectJourney, 0x3e8);
}
function selectJourney() {
const _0x294ef2 = _0x121965, _0x44a325 = setInterval(() = > {
const _0x51c80b = _0x200d, _0x5124ea = document[_0x51c80b(0x29f)](_0x51c80b(0x264)), _0xfe2610 = document[_0x51c80b(0x29f)](_0x51c80b(0x277)), _0x4d0e28 = _0x5124ea || _0xfe2610, _0x4bdcdb = document[_0x51c80b(0x29f)](_0x51c80b(0x2d7)), _0x79fd41 = _0x4bdcdb && _0x51c80b(0x16a) !== _0x4bdcdb[_0x51c80b(0x1d8)]['display'];
_0x4d0e28 && !_0x79fd41 && (console[_0x51c80b(0x165)](_0x51c80b(0x18f)), _0x4d0e28[_0x51c80b(0x2b8)](), console[_0x51c80b(0x165)](_0x51c80b(0x175)), retrySelectJourney(), console['log'](_0x51c80b(0x2d5)), clearInterval(_0x44a325));
}, 0x3e8);
if (!user_data ? .[_0x294ef2(0x1b7)] ? .[_0x294ef2(0x23d)]) return void console[_0x294ef2(0x2c7)](_0x294ef2(0x27a));
const _0x48fb22 = document[_0x294ef2(0x29f)](_0x294ef2(0x1a5));
if (!_0x48fb22) return void console[_0x294ef2(0x2c7)](_0x294ef2(0x15d));
const _0xd3faf9 = Array['from'](_0x48fb22['querySelectorAll'](_0x294ef2(0x290))), _0x471392 = user_data[_0x294ef2(0x1b7)][_0x294ef2(0x23d)], _0x17066c = classTranslator(user_data['journey_details'][_0x294ef2(0x19c)]), _0x26cdf9 = new Date(user_data['journey_details'][_0x294ef2(0x1c4)]), _0x336ea3 = _0x26cdf9['toDateString']()[_0x294ef2(0x1a3)](' ')[0x0] + ', ' + _0x26cdf9[_0x294ef2(0x21d)]()[_0x294ef2(0x1a3)](' ')[0x2] + ' ' + _0x26cdf9[_0x294ef2(0x21d)]()[_0x294ef2(0x1a3)](' ')[0x1];
console['log'](_0x294ef2(0x1fc), _0x471392), console['log'](_0x294ef2(0x1f6), _0x17066c), console[_0x294ef2(0x165)](_0x294ef2(0x1c4), _0x336ea3);
const _0x224619 = _0xd3faf9[_0x294ef2(0x1e7)](_0x48573e = > _0x48573e[_0x294ef2(0x29f)](_0x294ef2(0x181))[_0x294ef2(0x285)][_0x294ef2(0x2d3)]()[_0x294ef2(0x1ad)](_0x471392[_0x294ef2(0x1a3)]('-')[0x0]));
if (!_0x224619) return console[_0x294ef2(0x2c7)](_0x294ef2(0x15c)), void statusUpdate(_0x294ef2(0x16f));
const _0x5c6f27 = _0x5f5d10 = > {
const _0x1fcc57 = _0x294ef2;
if (!_0x5f5d10) return !0x1;
const _0x368bca = window[_0x1fcc57(0x2be)](_0x5f5d10);
return _0x1fcc57(0x16a) !== _0x368bca[_0x1fcc57(0x242)] && 'hidden' !== _0x368bca[_0x1fcc57(0x160)] && '0' !== _0x368bca[_0x1fcc57(0x15a)];
}, _0x34bab3 = Array[_0x294ef2(0x2a7)](_0x224619['querySelectorAll'](_0x294ef2(0x262)))['find'](_0x4f31a7 = > _0x4f31a7[_0x294ef2(0x29f)](_0x294ef2(0x1e4))[_0x294ef2(0x285)][_0x294ef2(0x2d3)]() === _0x17066c), _0x1e8c45 = Array[_0x294ef2(0x2a7)](_0x224619[_0x294ef2(0x1c3)](_0x294ef2(0x253)))[_0x294ef2(0x1e7)](_0x1f7eb0 = > _0x1f7eb0['innerText']['trim']() === _0x17066c), _0x3f9f37 = _0x34bab3 || _0x1e8c45;
if (console[_0x294ef2(0x165)](_0x294ef2(0x228), _0x3f9f37), !_0x3f9f37) return void console['error'](_0x294ef2(0x216));
const _0x39ba74 = document['querySelector'](_0x294ef2(0x2d7));
if (_0x5c6f27(_0x39ba74)) return void console[_0x294ef2(0x2c7)](_0x294ef2(0x2ce));
let _0x52d4bc;
_0x3f9f37[_0x294ef2(0x2b8)](), new MutationObserver((_0x57eaaf, _0x50c879) = > {
const _0x4eca90 = _0x294ef2;
console[_0x4eca90(0x165)](_0x4eca90(0x186), new Date()[_0x4eca90(0x244)]()), clearTimeout(_0x52d4bc), _0x52d4bc = setTimeout(() = > {
const _0x4cee56 = _0x4eca90, _0x37dd5e = Array[_0x4cee56(0x2a7)](_0x224619[_0x4cee56(0x1c3)]('div div table td div.pre-avl'))[_0x4cee56(0x1e7)](_0x435220 = > _0x435220[_0x4cee56(0x29f)](_0x4cee56(0x1e4))[_0x4cee56(0x285)][_0x4cee56(0x2d3)]() === _0x336ea3);
console['log'](_0x4cee56(0x170), _0x37dd5e), _0x37dd5e ? (_0x37dd5e[_0x4cee56(0x2b8)](), console[_0x4cee56(0x165)]('Clicked on selectdate'), setTimeout(() = > {
const _0x5322b3 = () = > {
const _0x1209bd = _0x200d, _0x2e8049 = _0x224619[_0x1209bd(0x29f)](_0x1209bd(0x282));
if (_0x5c6f27(document[_0x1209bd(0x29f)]('#loaderP'))) return console[_0x1209bd(0x1dd)](_0x1209bd(0x251)), void setTimeout(_0x5322b3, 0x64);
!_0x2e8049 || _0x2e8049[_0x1209bd(0x2c6)][_0x1209bd(0x1f0)](_0x1209bd(0x299)) || _0x2e8049['disabled'] ? (console['warn']('bookBtn is disabled or not found, retrying...'), retrySelectJourney()) : setTimeout(() = > {
const _0x4bc48f = _0x1209bd;
_0x2e8049[_0x4bc48f(0x2b8)](), console[_0x4bc48f(0x165)](_0x4bc48f(0x171)), clearTimeout(_0x52d4bc), _0x50c879[_0x4bc48f(0x295)]();
}, 0x12c);
};
_0x5322b3();
}, 0x3e8)) : console[_0x4cee56(0x1dd)](_0x4cee56(0x25b));
}, 0x12c);
})[_0x294ef2(0x211)](_0x224619, {
'attributes': !0x1,
'childList': !0x0,
'subtree': !0x0
});
}
let keyCounter = 0x0;
function _0x200d(_0xf77db0, _0x227688) {
const _0x131151 = _0x1311();
return _0x200d = function(_0x200d79, _0x1abd5c) {
_0x200d79 = _0x200d79 - 0x155;
let _0x323fa1 = _0x131151[_0x200d79];
return _0x323fa1;
}, _0x200d(_0xf77db0, _0x227688);
}
async
function fillPassengerDetails() {
const _0x104fdf = _0x121965;
console[_0x104fdf(0x165)](_0x104fdf(0x25d)), keyCounter = Date[_0x104fdf(0x2b0)]();
if (user_data[_0x104fdf(0x1b7)][_0x104fdf(0x1aa)] ? .[_0x104fdf(0x232)] > 0x0) {
const _0x1a0ce7 = Array[_0x104fdf(0x2a7)](document[_0x104fdf(0x213)](_0x104fdf(0x2ab)))[_0x104fdf(0x1e7)](_0x3a48ce = > _0x3a48ce['innerText'][_0x104fdf(0x1ad)](user_data['journey_details'][_0x104fdf(0x2a7)]['split']('-')[0x0]['trim']() + _0x104fdf(0x2b1)));
if (_0x1a0ce7) simulateClick(_0x1a0ce7);
addDelay(0x12c);
const _0x56cf45 = Array[_0x104fdf(0x2a7)](document[_0x104fdf(0x213)](_0x104fdf(0x2ab)))[_0x104fdf(0x1e7)](_0x283fb2 = > _0x283fb2['innerText'][_0x104fdf(0x1ad)](user_data[_0x104fdf(0x1b7)]['boarding'][_0x104fdf(0x1a3)]('-')[0x0][_0x104fdf(0x2d3)]()));
if (_0x56cf45) simulateClick(_0x56cf45);
}
const _0x285849 = document['querySelector'](_0x104fdf(0x1f2));
if (!_0x285849) return console[_0x104fdf(0x2c7)](_0x104fdf(0x279));
for (let _0x5e3e23 = 0x1; _0x5e3e23 < user_data[_0x104fdf(0x252)][_0x104fdf(0x232)]; _0x5e3e23++) {
addDelay(0xc8), simulateClick(document['getElementsByClassName']('prenext')[0x0]);
}
try {
for (let _0x239134 = 0x0; _0x239134 < user_data[_0x104fdf(0x2c3)][_0x104fdf(0x232)]; _0x239134++) {
addDelay(0xc8), simulateClick(document[_0x104fdf(0x1fe)]('prenext')[0x2]);
}
} catch (_0x8330a5) {
console[_0x104fdf(0x2c7)]('Add infant error', _0x8330a5);
}
const _0x3dd259 = [..._0x285849[_0x104fdf(0x1c3)]('app-passenger')];
for (let _0x12958a = 0x0; _0x12958a < user_data[_0x104fdf(0x252)]['length']; _0x12958a++) {
const _0x12d8e1 = user_data['passenger_details'][_0x12958a];
if (!_0x3dd259[_0x12958a]) continue;
const _0x59fd16 = _0x3dd259[_0x12958a], _0x4c2c09 = _0x59fd16['querySelector'](_0x104fdf(0x1cb));
_0x4c2c09 && await typeTextHumanLike(_0x4c2c09, _0x12d8e1['name']);
const _0x48bae6 = _0x59fd16['querySelector']('input[formcontrolname='passengerAge']');
_0x48bae6 && await typeTextHumanLike(_0x48bae6, _0x12d8e1['age']);
const _0x3bbb7e = _0x59fd16['querySelector'](_0x104fdf(0x2a9));
_0x3bbb7e && (_0x3bbb7e[_0x104fdf(0x259)] = _0x12d8e1[_0x104fdf(0x15b)], _0x3bbb7e[_0x104fdf(0x218)](new Event(_0x104fdf(0x2af))));
const _0x8c1da0 = _0x59fd16[_0x104fdf(0x29f)](_0x104fdf(0x2a6));
_0x8c1da0 && (_0x8c1da0['value'] = _0x12d8e1[_0x104fdf(0x2c8)], _0x8c1da0[_0x104fdf(0x218)](new Event(_0x104fdf(0x2af))));
const _0x2a91bd = _0x59fd16[_0x104fdf(0x29f)](_0x104fdf(0x24d));
_0x2a91bd && (_0x2a91bd[_0x104fdf(0x259)] = _0x12d8e1['food'], _0x2a91bd[_0x104fdf(0x218)](new Event('change')));
try {
const _0x456572 = _0x59fd16['querySelector'](_0x104fdf(0x169));
if (_0x456572 && _0x12d8e1[_0x104fdf(0x1d9)] !== _0x456572[_0x104fdf(0x18a)]) {
simulateClick(_0x456572), addDelay(0xc8);
if (_0x12d8e1[_0x104fdf(0x1d9)]) {
const _0x4ee289 = _0x59fd16[_0x104fdf(0x29f)](_0x104fdf(0x234));
if (_0x4ee289 && _0x4ee289[_0x104fdf(0x1d6)] !== null) simulateClick(_0x4ee289), addDelay(0xc8);
else {
const _0x3e100e = _0x59fd16['querySelector'](_0x104fdf(0x1fa));
if (_0x3e100e && _0x3e100e[_0x104fdf(0x1d6)] !== null) simulateClick(_0x3e100e);
addDelay(0xc8);
}
}
}
} catch (_0x477314) {
console[_0x104fdf(0x2c7)](_0x104fdf(0x27f), _0x477314);
}
}
const _0x323fec = [..._0x285849[_0x104fdf(0x1c3)](_0x104fdf(0x183))];
user_data[_0x104fdf(0x2c3)]['forEach']((_0x4f1208, _0x53e241) = > {
const _0x5b40ed = _0x104fdf;
if (!_0x323fec[_0x53e241]) return;
const _0x20f68d = _0x323fec[_0x53e241], _0x129fa0 = _0x20f68d[_0x5b40ed(0x29f)](_0x5b40ed(0x1ee));
_0x129fa0 && (_0x129fa0[_0x5b40ed(0x259)] = _0x4f1208['name'], _0x129fa0[_0x5b40ed(0x218)](new Event(_0x5b40ed(0x266))));
const _0x35069f = _0x20f68d[_0x5b40ed(0x29f)](_0x5b40ed(0x220));
_0x35069f && (_0x35069f[_0x5b40ed(0x259)] = _0x4f1208[_0x5b40ed(0x1e1)], _0x35069f['dispatchEvent'](new Event(_0x5b40ed(0x2af))));
const _0x1b07f1 = _0x20f68d['querySelector']('select[formcontrolname='gender']');
_0x1b07f1 && (_0x1b07f1[_0x5b40ed(0x259)] = _0x4f1208[_0x5b40ed(0x15b)], _0x1b07f1['dispatchEvent'](new Event(_0x5b40ed(0x2af))));
});
if (user_data[_0x104fdf(0x297)][_0x104fdf(0x2ad)]) {
const _0x1bd4f1 = _0x285849[_0x104fdf(0x29f)](_0x104fdf(0x28e));
_0x1bd4f1 && await typeTextHumanLike(_0x1bd4f1, user_data[_0x104fdf(0x297)][_0x104fdf(0x2ad)]);
}
const _0x52bbf9 = user_data['other_preferences'][_0x104fdf(0x29d)][_0x104fdf(0x1ad)]('UPI') ? '2' : '1', _0x4c6fda = [..._0x285849[_0x104fdf(0x1c3)]('p-radiobutton[formcontrolname='paymentType'] input')][_0x104fdf(0x1e7)](_0x467c55 = > _0x467c55[_0x104fdf(0x259)] === _0x52bbf9);
if (_0x4c6fda) simulateClick(_0x4c6fda);
const _0x2c6c0a = _0x285849[_0x104fdf(0x29f)](_0x104fdf(0x201));
if (_0x2c6c0a && user_data['other_preferences']['autoUpgradation'] !== _0x2c6c0a[_0x104fdf(0x18a)]) simulateClick(_0x2c6c0a);
const _0x2ebc34 = _0x285849[_0x104fdf(0x29f)]('input#confirmberths');
if (_0x2ebc34 && user_data[_0x104fdf(0x297)][_0x104fdf(0x185)] !== _0x2ebc34[_0x104fdf(0x18a)]) simulateClick(_0x2ebc34);
const _0x2b3c7f = user_data['travel_preferences'][_0x104fdf(0x2ca)] === 'yes' ? _0x104fdf(0x1f1) : _0x104fdf(0x26c), _0x40e9de = [..._0x285849[_0x104fdf(0x1c3)](_0x104fdf(0x2bb))]['find'](_0x59b643 = > _0x59b643[_0x104fdf(0x259)] === _0x2b3c7f);
if (_0x40e9de) simulateClick(_0x40e9de);
try {
const _0x8fbc5d = _0x285849[_0x104fdf(0x29f)](_0x104fdf(0x204));
_0x8fbc5d && user_data[_0x104fdf(0x205)]['prefcoach'] ? .[_0x104fdf(0x2d3)]() && (_0x8fbc5d[_0x104fdf(0x259)] = user_data[_0x104fdf(0x205)]['prefcoach'], _0x8fbc5d['dispatchEvent'](new Event(_0x104fdf(0x266))));
const _0x31cb73 = _0x285849[_0x104fdf(0x29f)]('p-dropdown[formcontrolname='reservationChoice']');
if (_0x31cb73 && user_data[_0x104fdf(0x205)]['reservationchoice'] && !user_data[_0x104fdf(0x205)]['reservationchoice'][_0x104fdf(0x1ad)](_0x104fdf(0x2b6))) {
simulateClick(_0x31cb73[_0x104fdf(0x29f)](_0x104fdf(0x294))), addDelay(0x12c);
const _0x108fcd = [..._0x31cb73[_0x104fdf(0x1c3)]('ul li')][_0x104fdf(0x1e7)](_0x58e890 = > _0x58e890[_0x104fdf(0x285)] === user_data[_0x104fdf(0x205)][_0x104fdf(0x273)]);
if (_0x108fcd) simulateClick(_0x108fcd);
}
} catch (_0x2d173d) {
console['error']('Coach/Reservation choice error', _0x2d173d);
}
submitPassengerDetailsForm(_0x285849);
}
function submitPassengerDetailsForm(_0x37892d) {
const _0x86b21e = _0x121965;
window[_0x86b21e(0x191)](0x0, 0x258, _0x86b21e(0x20f));
if (user_data[_0x86b21e(0x297)]['psgManual']) return showCustomAlert(_0x86b21e(0x1f4));
const _0x437b45 = () = > {
const _0x4cc85e = _0x86b21e;
if (keyCounter > 0x0 && Date[_0x4cc85e(0x2b0)]() - keyCounter > 0x7d0) {
clearInterval(_0x16288d);
let _0x4f132e = null;
const _0x27c3f9 = [_0x4cc85e(0x1c9), 'button[type='submit'].btn-primary.pull-right', _0x4cc85e(0x1f5), 'button.psgn-btn[type='submit']', _0x4cc85e(0x1de), _0x4cc85e(0x1d2), _0x4cc85e(0x289), _0x4cc85e(0x167)];
if (_0x37892d)
for (const _0x4660e5 of _0x27c3f9) {
const _0x29970e = _0x37892d[_0x4cc85e(0x29f)](_0x4660e5);
if (_0x29970e && isElementVisibleAndInteractable(_0x29970e)) {
_0x4f132e = _0x29970e, console['log'](_0x4cc85e(0x20e) + _0x4660e5 + '"', _0x29970e);
break;
}
}
if (!_0x4f132e) {
const _0x3eeed2 = [_0x4cc85e(0x16e), 'button.btnDefault.train_Search'];
for (const _0xc3feac of _0x3eeed2) {
const _0x2b33d6 = document['querySelector'](_0xc3feac);
if (_0x2b33d6 && isElementVisibleAndInteractable(_0x2b33d6)) {
_0x4f132e = _0x2b33d6, console[_0x4cc85e(0x165)](_0x4cc85e(0x27d) + _0xc3feac + '"', _0x2b33d6);
break;
}
}
}
if (!_0x4f132e && _0x37892d) {
const _0x4693d1 = _0x37892d[_0x4cc85e(0x1c3)](_0x4cc85e(0x21f));
for (let _0x1a4252 of _0x4693d1) {
const _0x4e5e8e = _0x1a4252[_0x4cc85e(0x285)] ? .['trim']()[_0x4cc85e(0x287)]();
if (_0x4e5e8e && (_0x4e5e8e['includes'](_0x4cc85e(0x267)) || _0x4e5e8e['includes'](_0x4cc85e(0x21a)) || _0x4e5e8e[_0x4cc85e(0x1ad)]('submit') || _0x4e5e8e[_0x4cc85e(0x1ad)]('next') || _0x4e5e8e['includes'](_0x4cc85e(0x1db)))) {
if (isElementVisibleAndInteractable(_0x1a4252) && !_0x4e5e8e[_0x4cc85e(0x1ad)]('cancel') && !_0x4e5e8e[_0x4cc85e(0x1ad)]('back')) {
_0x4f132e = _0x1a4252, console['log'](_0x4cc85e(0x20c), _0x4e5e8e, _0x1a4252);
break;
}
}
}
}
_0x4f132e ? (console['log']('Attempting to click passenger page continue button:', _0x4f132e), simulateClick(_0x4f132e)) : (console[_0x4cc85e(0x2c7)]('Passenger page continue/submit button NOT FOUND with any known strategy.'), showCustomAlert(_0x4cc85e(0x168)));
}
}, _0x16288d = setInterval(_0x437b45, 0x1f4);
}
async
function continueScript() {
const _0x527565 = _0x121965, _0x1492ac = document[_0x527565(0x29f)](_0x527565(0x263));
if (window['location'][_0x527565(0x190)][_0x527565(0x1ad)](_0x527565(0x1e6))) {
if (_0x1492ac && _0x1492ac['innerText'][_0x527565(0x2d3)]()['toUpperCase']() === _0x527565(0x219)) console['log'](_0x527565(0x1bc)), loadJourneyDetails();
else {
if (_0x1492ac && _0x1492ac[_0x527565(0x285)][_0x527565(0x2d3)]()[_0x527565(0x1e5)]() === 'LOGIN') {
console[_0x527565(0x165)]('IRCTC page loaded. LOGIN button found. Starting 15-second countdown...');
let _0x37d172 = document[_0x527565(0x197)]('irctc-login-countdown-element');
!_0x37d172 && (_0x37d172 = document['createElement'](_0x527565(0x1e4)), _0x37d172['id'] = 'irctc-login-countdown-element', _0x37d172['style'][_0x527565(0x17a)] = '
position: fixed; top: 10px; left: 50%; transform: translateX(-50%);
background-color: rgba(0,0,0,0.7); color: white; padding: 10px 20px;
border-radius: 5px; z-index: 20000; font-size: 16px;
', document[_0x527565(0x2b9)][_0x527565(0x2bf)](_0x37d172));
let _0x307ed1 = 0xf;
_0x37d172[_0x527565(0x2cf)] = 'Ocean Login ' + _0x307ed1 + ' Will Start In Seconds...';
const _0x20a9ef = setInterval(async() = > {
const _0x1cc9d0 = _0x527565;
_0x307ed1--;
if (_0x37d172) _0x37d172[_0x1cc9d0(0x2cf)] = _0x1cc9d0(0x2d1) + _0x307ed1 + _0x1cc9d0(0x1a0);
_0x307ed1 <= 0x0 && (clearInterval(_0x20a9ef), _0x37d172 && _0x37d172[_0x1cc9d0(0x1b4)] && _0x37d172[_0x1cc9d0(0x256)](), console[_0x1cc9d0(0x165)]('Countdown finished. Clicking LOGIN button.'), simulateClick(_0x1492ac), await loadLoginDetails());
}, 0x3e8);
} else console['log'](_0x527565(0x1f9));
}
} else console['log'](_0x527565(0x1ca));
}
async
function a() {}
window['onload'] = function() {
const _0x4eed6f = _0x121965;
console['log'](_0x4eed6f(0x281)), setInterval(() = > statusUpdate(_0x4eed6f(0x238)), 0x3a98);
const _0x199909 = document[_0x4eed6f(0x29f)](_0x4eed6f(0x250));
_0x199909 ? new MutationObserver((_0x4917be, _0x1dc1cf) = > {
const _0x8cd52d = _0x4eed6f;
_0x4917be[_0x8cd52d(0x22d)](_0x50d26e = > _0x50d26e['type'] === _0x8cd52d(0x283) && [..._0x50d26e[_0x8cd52d(0x260)]][_0x8cd52d(0x22d)](_0x48a3b5 = > _0x48a3b5 ? .[_0x8cd52d(0x285)] ? .[_0x8cd52d(0x2d3)]()[_0x8cd52d(0x1e5)]() === 'LOGOUT')) && (console[_0x8cd52d(0x165)](_0x8cd52d(0x2c5)), _0x1dc1cf[_0x8cd52d(0x295)](), loadJourneyDetails());
})[_0x4eed6f(0x211)](_0x199909, {
'childList': !! [],
'subtree': ![]
}) : console[_0x4eed6f(0x1dd)](_0x4eed6f(0x1df)), chrome[_0x4eed6f(0x298)][_0x4eed6f(0x1ba)]['get'](null, _0x5d6c6f = > {
const _0x5d409d = _0x4eed6f;
user_data = _0x5d6c6f, console[_0x5d409d(0x165)](_0x5d409d(0x163), user_data), continueScript();
});
};
© 2023 Quttera Ltd. All rights reserved.