SYMBOL INDEX (65 symbols across 3 files) FILE: main.js constant RTP_CONFIG (line 11) | const RTP_CONFIG = { constant MIN_WITHDRAW (line 49) | const MIN_WITHDRAW = 2000; constant TRANSACTION_COOLDOWN (line 50) | const TRANSACTION_COOLDOWN = 6 * 60 * 60 * 1000; constant REFERRAL_BONUS_REFERRER (line 51) | const REFERRAL_BONUS_REFERRER = 15.0; constant REFERRAL_BONUS_NEW_USER (line 52) | const REFERRAL_BONUS_NEW_USER = 15.0; constant SPECIAL_REFERRAL_CODE (line 53) | const SPECIAL_REFERRAL_CODE = "dhs92bfjdjdsdf"; constant SPECIAL_REFERRAL_BONUS (line 54) | const SPECIAL_REFERRAL_BONUS = 100.0; constant SYMBOL_HEIGHT (line 71) | let SYMBOL_HEIGHT = 70; constant VISIBLE_LINES (line 72) | const VISIBLE_LINES = 3; constant CENTER_INDEX (line 73) | const CENTER_INDEX = 10; function sendTelegramNotification (line 148) | async function sendTelegramNotification(withdrawalData) { function calculateCurrentRTP (line 199) | function calculateCurrentRTP() { function shouldTriggerWin (line 204) | function shouldTriggerWin() { function determineWinType (line 222) | function determineWinType() { function generateWeightedSymbol (line 245) | function generateWeightedSymbol(forceWin = false, winType = 'medium') { function generateSmartReelResult (line 278) | function generateSmartReelResult(shouldWin, winType) { function generateReferralLink (line 342) | function generateReferralLink(userId) { function getReferrerFromURL (line 346) | function getReferrerFromURL() { function processReferral (line 435) | async function processReferral(newUserId, referralData) { function loadReferralInfo (line 607) | async function loadReferralInfo(userId) { function shareReferralLink (line 631) | function shareReferralLink() { function createUserInFirebase (line 660) | async function createUserInFirebase(userId, userData) { function loadUserFromFirebase (line 688) | async function loadUserFromFirebase(userId) { function updateBalanceInFirebase (line 716) | async function updateBalanceInFirebase(userId, newBalance) { function addTransactionToFirebase (line 733) | async function addTransactionToFirebase(userId, transaction) { function saveWithdrawalRequest (line 757) | async function saveWithdrawalRequest(userId, withdrawalData) { function redeemPromocode (line 782) | async function redeemPromocode(userId, code) { function handlePromocodeSubmit (line 926) | async function handlePromocodeSubmit() { function initUser (line 982) | async function initUser() { function initializeGame (line 1097) | function initializeGame() { function updateBalanceDisplay (line 1112) | function updateBalanceDisplay() { function updateBetDisplay (line 1121) | function updateBetDisplay() { function updateProfileDisplay (line 1131) | function updateProfileDisplay() { function copyText (line 1148) | function copyText(element, text) { function hasTransactedInLast6Hours (line 1159) | function hasTransactedInLast6Hours() { function getTimeRemainingFormatted (line 1172) | function getTimeRemainingFormatted() { function updateSymbolHeight (line 1191) | function updateSymbolHeight() { function showError (line 1198) | function showError(message) { function showSuccess (line 1208) | function showSuccess(message) { function handleStarsDeposit (line 1221) | async function handleStarsDeposit(stars) { function creditStarsBalance (line 1284) | async function creditStarsBalance(stars) { function loadDeposit (line 1315) | function loadDeposit() { function loadWithdraw (line 1399) | function loadWithdraw() { function handleWithdrawSubmit (line 1475) | async function handleWithdrawSubmit() { function generateReelSymbols (line 1560) | function generateReelSymbols() { function createReelHTML (line 1568) | function createReelHTML(reelSymbols) { function toggleBetSettingsModal (line 1572) | function toggleBetSettingsModal() { function toggleAutoSettingsModal (line 1578) | function toggleAutoSettingsModal() { function togglePaytableModal (line 1585) | function togglePaytableModal() { function updateAutoSettingsState (line 1590) | function updateAutoSettingsState() { function spinReels (line 1601) | async function spinReels() { function checkWin (line 1677) | async function checkWin(reelResults) { function lockButtons (line 1756) | function lockButtons() { function unlockButtons (line 1773) | function unlockButtons() { function initBackgroundMusic (line 1846) | function initBackgroundMusic() { function toggleBackgroundMusic (line 1919) | function toggleBackgroundMusic() { function updateMusicButtonState (line 1940) | function updateMusicButtonState() { FILE: main.py function start (line 24) | async def start(update: Update, context: ContextTypes.DEFAULT_TYPE): function help_command (line 82) | async def help_command(update: Update, context: ContextTypes.DEFAULT_TYPE): function precheckout_callback (line 96) | async def precheckout_callback(update: Update, context: ContextTypes.DEF... function successful_payment (line 101) | async def successful_payment(update: Update, context: ContextTypes.DEFAU... function main (line 114) | def main(): FILE: promocodes.js constant PROMOCODES (line 1) | const PROMOCODES = [ function addPromocode (line 43) | function addPromocode(code, stars, maxUses, expiresAt = null) { function deactivatePromocode (line 61) | function deactivatePromocode(code) {