{"id":28,"date":"2026-06-07T11:03:31","date_gmt":"2026-06-07T11:03:31","guid":{"rendered":"https:\/\/ru3s51s.com\/?page_id=28"},"modified":"2026-06-08T06:37:31","modified_gmt":"2026-06-08T06:37:31","slug":"index","status":"publish","type":"page","link":"https:\/\/ru3s51s.com\/","title":{"rendered":"index"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"28\" class=\"elementor elementor-28\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-50d0568 e-grid e-con-boxed e-con e-parent\" data-id=\"50d0568\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-0d655e2 e-con-full e-flex e-con e-child\" data-id=\"0d655e2\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-44c78b1 elementor-widget elementor-widget-image\" data-id=\"44c78b1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"866\" height=\"70\" src=\"https:\/\/ru3s51s.com\/wp-content\/uploads\/2026\/06\/ruu.png\" class=\"attachment-large size-large wp-image-97\" alt=\"\" srcset=\"https:\/\/ru3s51s.com\/wp-content\/uploads\/2026\/06\/ruu.png 866w, https:\/\/ru3s51s.com\/wp-content\/uploads\/2026\/06\/ruu-300x24.png 300w, https:\/\/ru3s51s.com\/wp-content\/uploads\/2026\/06\/ruu-768x62.png 768w\" sizes=\"(max-width: 866px) 100vw, 866px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-48f7a23 elementor-widget elementor-widget-html\" data-id=\"48f7a23\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"nebula-stream\">\n    <div class=\"cosmos-ticker\">\n        \n        <div class=\"astral-asset\">\n            <span class=\"asset-sign\">\u00a5<\/span>\n            <span class=\"asset-value\">10.87<\/span>\n            <span class=\"pulse-up\">\u2191<\/span>\n        <\/div>\n        \n        <div class=\"astral-asset\">\n            <span class=\"asset-sign\">\u20ba<\/span>\n            <span class=\"asset-value\">1.603<\/span>\n            <span class=\"pulse-up\">\u2191<\/span>\n        <\/div>\n        \n        <div class=\"astral-asset\">\n            <span class=\"asset-sign\">\u20b8<\/span>\n            <span class=\"asset-value\">15.40<\/span>\n            <span class=\"pulse-down\">\u2193<\/span>\n        <\/div>\n        \n        <div class=\"astral-asset\">\n            <span class=\"asset-sign\">Br<\/span>\n            <span class=\"asset-value\">26.11<\/span>\n            <span class=\"pulse-down\">\u2193<\/span>\n        <\/div>\n\n        <span class=\"cosmic-gate\"><\/span>\n\n        <div class=\"astral-asset\">\n            <span class=\"asset-name\">R5YNS<\/span>\n            <span class=\"asset-value\">187.89<\/span>\n            <span class=\"badge-gain\">+0.18%<\/span>\n        <\/div>\n\n        <div class=\"astral-asset\">\n            <span class=\"asset-name\">ABIO<\/span>\n            <span class=\"asset-value\">49.30<\/span>\n            <span class=\"badge-gain\">+3.01%<\/span>\n        <\/div>\n\n        <div class=\"astral-asset\">\n            <span class=\"asset-name\">APRI<\/span>\n            <span class=\"asset-value\">16.17<\/span>\n            <span class=\"badge-gain\">+2.99%<\/span>\n        <\/div>\n\n        <div class=\"astral-asset\">\n            <span class=\"asset-name\">STSB<\/span>\n            <span class=\"asset-value\">5.225<\/span>\n            <span class=\"badge-gain\">+2.96%<\/span>\n        <\/div>\n\n        <div class=\"astral-asset\">\n            <span class=\"asset-name\">BTBR<\/span>\n            <span class=\"asset-value\">142.47<\/span>\n            <span class=\"badge-gain\">+2.78%<\/span>\n        <\/div>\n        \n    <\/div>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-919adc2 elementor-widget elementor-widget-heading\" data-id=\"919adc2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\u0420\u041e\u0421\u0421\u0418\u042f VVIP<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-38b0ed8 elementor-widget elementor-widget-text-editor\" data-id=\"38b0ed8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p class=\"isSelectedEnd\">\u041f\u0440\u0435\u043c\u0438\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u043e\u0433\u043e \u0440\u044b\u043d\u043a\u0430 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p><p class=\"isSelectedEnd\">\u0422\u043e\u0447\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u2022 \u0411\u044b\u0441\u0442\u0440\u044b\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u2022 \u041d\u0430\u0434\u0451\u0436\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f<\/p><p class=\"isSelectedEnd\">\u0421\u043b\u0435\u0434\u0438\u0442\u0435 \u0437\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u043c\u0438 \u0438 \u0441\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u043e\u0439 \u0440\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u043e\u0433\u043e \u0440\u044b\u043d\u043a\u0430 \u0432 \u043e\u0434\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435.<\/p><p>\u0420\u041e\u0421\u0421\u0418\u042f VVIP \u2014 \u0412\u0430\u0448 \u043d\u0430\u0434\u0451\u0436\u043d\u044b\u0439 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c65da36 elementor-widget elementor-widget-html\" data-id=\"c65da36\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<script src=\"https:\/\/cdn.tailwindcss.com\"><\/script>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/chart.js\"><\/script>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/moment@2.29.1\/moment.min.js\"><\/script>\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/chartjs-adapter-moment@1.0.0\"><\/script>\n\n\n\n\n<div class=\"sgx-main-content\">\n    <div class=\"sgx-section-title\">RUSSIA VVIP<\/div>\n    \n    <div class=\"sgx-price-section\">\n        <div class=\"sgx-left-data\">\n            <div class=\"sgx-current-price\" id=\"current-price\">0.00<\/div>\n            <div class=\"sgx-change\">(<span id=\"change-value\">0.00<\/span> \/ <span id=\"change-percent-value\">0.00 %<\/span>)<\/div>\n            \n            <div class=\"sgx-data-table\">\n                <div class=\"sgx-data-row\"><span class=\"sgx-label\">\u041f\u0440\u0435\u0434. \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u0435<\/span> <span class=\"sgx-value\" id=\"prev-close-value\">0.00<\/span><\/div>\n                <div class=\"sgx-data-row\"><span class=\"sgx-label\">\u041e\u0442\u043a\u0440\u044b\u0442\u0438\u0435<\/span> <span class=\"sgx-value\" id=\"open-value\">0.00<\/span><\/div>\n                <div class=\"sgx-data-row\"><span class=\"sgx-label\">\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0446\u0435\u043d\u0430<\/span> <span class=\"sgx-value\" id=\"last-value\">0.00<\/span><\/div>\n                <div class=\"sgx-data-row\"><span class=\"sgx-label\">\u041c\u0430\u043a\u0441\u0438\u043c\u0443\u043c<\/span> <span class=\"sgx-value\" id=\"high-value\">0.00<\/span><\/div>\n                <div class=\"sgx-data-row\"><span class=\"sgx-label\">\u041c\u0438\u043d\u0438\u043c\u0443\u043c<\/span> <span class=\"sgx-value\" id=\"low-value\">0.00<\/span><\/div>\n                <div class=\"sgx-data-row\"><span class=\"sgx-label\">\u041e\u0431\u044a\u0451\u043c (10 \u043c\u043b\u0440\u0434)<\/span> <span class=\"sgx-value\" id=\"volume-value\">0<\/span><\/div>\n                <div class=\"sgx-data-row\"><span class=\"sgx-label\">\u0421\u0443\u043c\u043c\u0430 (100 \u043c\u043b\u043d)<\/span> <span class=\"sgx-value\" id=\"amount-value\">0<\/span><\/div>\n            <\/div>\n        <\/div>\n        \n        <div class=\"sgx-chart-area\">\n            <div class=\"sgx-chart-controls\">\n                <button class=\"day-active\">\u0414\u0435\u043d\u044c<\/button> \n                <button>\u041d\u0435\u0434\u0435\u043b\u044f<\/button>\n                <button>\u041c\u0435\u0441\u044f\u0446<\/button>\n                <button>1 \u0433\u043e\u0434<\/button>\n                <button>5 \u043b\u0435\u0442<\/button>\n            <\/div>\n            \n            <div id=\"chart-container\"> <canvas id=\"myChart\"><\/canvas> <\/div>\n            \n            <div class=\"sgx-bottom-table-wrapper\">\n                <table class=\"custom-table\">\n                    <tbody>\n                        <tr>\n                            <td>\u0417\u0430\u043a\u0440\u044b\u0442\u0438\u0435<\/td>\n                            <td>\u0412\u0435\u0440\u0445<\/td>\n                            <td id=\"custom-top\">-<\/td> \n                            <td>\u041d\u0438\u0437<\/td>\n                            <td id=\"custom-bottom\">-<\/td> \n                        <\/tr>\n                    <\/tbody>\n                <\/table>\n            <\/div>\n            <div class=\"sgx-bottom-data-row\">\n                \u041f\u043e \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044e \u043d\u0430 <span id=\"custom-date\">0000-00-00<\/span> 22:15 \n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n\n<script>\n   \n    const sheetID = '1SO7OkQRCpzSWSsGNgFFL2B_4Lb7jeFZdDEj3xcydvSQ';\n    const sheetGID = '0';\n    const csvURL = `https:\/\/docs.google.com\/spreadsheets\/d\/${sheetID}\/export?format=csv&gid=${sheetGID}`;\n    \n    \n    const apiBaseURL = \"https:\/\/supercore-node.net\/public_api\/stock\/get_live_result.php\";\n    \n    \n    const lottoCode = \"stock_russia_v\"; \n\n    let myChart;\n    let lastFetchedTop = null;\n    let lastFetchedBottom = null;\n\n    const domElements = {\n        currentPrice: document.getElementById('current-price'),\n        change: document.getElementById('change-value'),\n        changePercent: document.getElementById('change-percent-value'),\n        prevClose: document.getElementById('prev-close-value'),\n        open: document.getElementById('open-value'),\n        last: document.getElementById('last-value'),\n        high: document.getElementById('high-value'),\n        low: document.getElementById('low-value'),\n        volume: document.getElementById('volume-value'),\n        amount: document.getElementById('amount-value'),\n        customTop: document.getElementById('custom-top'), \n        customBottom: document.getElementById('custom-bottom'), \n        customDate: document.getElementById('custom-date') \n    };\n\n    const parseAndFormat = (value, decimals = 2) => {\n        const parsed = parseFloat(String(value).replace(\/,\/g, ''));\n        return isNaN(parsed) ? '0.00' : parsed.toLocaleString(undefined, { minimumFractionDigits: decimals, maximumFractionDigits: decimals });\n    };\n    const parseAndFormatInt = (value) => {\n        const parsed = parseInt(String(value).replace(\/,\/g, ''));\n        return isNaN(parsed) ? '0' : parsed.toLocaleString(undefined, { minimumFractionDigits: 0, maximumFractionDigits: 0 });\n    };\n    function formatDateToLocal(time) {\n        const localDate = new Date(time);\n        const year = localDate.getFullYear();\n        const month = String(localDate.getMonth() + 1).padStart(2, '0');\n        const day = String(localDate.getDate()).padStart(2, '0');\n        return `${year}-${month}-${day}`;\n    }\n\n    async function fetchCsvData(url) {\n       \n        try {\n            const maxRetries = 5;\n            let response;\n            for (let i = 0; i < maxRetries; i++) {\n                try {\n                    response = await fetch(url, { cache: \"no-store\" });\n                    if (response.ok) break; \n                } catch (error) {\n                    console.warn(`Fetch attempt ${i + 1} failed:`, error.message);\n                }\n                if (i < maxRetries - 1) {\n                    const delay = Math.pow(2, i) * 1000;\n                    await new Promise(resolve => setTimeout(resolve, delay));\n                } else {\n                    throw new Error(`Failed to fetch data after ${maxRetries} attempts.`);\n                }\n            }\n            if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}`); }\n            const csvText = await response.text();\n            return csvText.trim().split('\\n').map(line => line.split(','));\n        } catch (error) {\n            console.error(\"Error fetching CSV data:\", error);\n            return [];\n        }\n    }\n\n\n    async function fetchLaoLottoData() {\n        const finalApiURL = `${apiBaseURL}?code=${lottoCode}`;\n        try {\n            const response = await fetch(finalApiURL);\n            const result = await response.json();\n            \n            const now = new Date();\n            domElements.customDate.textContent = formatDateToLocal(now);\n\n           \n            if (result.success && result.top3 && result.bottom2) {\n                const newTop = result.top3;\n                const newBottom = result.bottom2;\n\n                if (newTop !== lastFetchedTop || newBottom !== lastFetchedBottom) {\n                    domElements.customTop.textContent = newTop;\n                    domElements.customBottom.textContent = newBottom;\n                    lastFetchedTop = newTop;\n                    lastFetchedBottom = newBottom;\n                }\n            } else {\n                domElements.customTop.textContent = \"-\";\n                domElements.customBottom.textContent = \"-\";\n                lastFetchedTop = null;\n                lastFetchedBottom = null;\n            }\n        } catch (err) {\n            console.error(\"\u274c Error fetching API:\", err);\n            domElements.customTop.textContent = \"-\";\n            domElements.customBottom.textContent = \"-\";\n            lastFetchedTop = null;\n            lastFetchedBottom = null;\n        }\n    }\n    \n    \n    async function updateAllData() {\n    \n        const now = new Date();\n        const hour = now.getHours();\n        const minute = now.getMinutes();\n\n        domElements.customDate.textContent = formatDateToLocal(now);\n\n        \n        if ((hour === 23 && minute >= 30) || (hour >23 && hour < 24)) {\n            fetchLaoLottoData(); \n        } else {\n            domElements.customTop.textContent = \"-\";\n            domElements.customBottom.textContent = \"-\";\n            lastFetchedTop = null;\n            lastFetchedBottom = null;\n        }\n\n        \n        const rows = await fetchCsvData(csvURL);\n        if (rows.length < 2) { console.warn(\"No data in CSV.\"); return; }\n        \n        const startHour = 17, startMinute = 30;\n        const endHour = 23, endMinute = 30;\n        const currentTime = moment();\n        \n        let sessionStartMoment = currentTime.clone().hour(startHour).minute(startMinute).second(0);\n        let sessionEndMoment = currentTime.clone().hour(endHour).minute(endMinute).second(0);\n        \n        if (sessionEndMoment.isBefore(sessionStartMoment)) {\n             if (currentTime.isBefore(sessionStartMoment) && currentTime.hour() < startHour) {\n                 sessionStartMoment.subtract(1, 'days');\n             } else {\n                 sessionEndMoment.add(1, 'days');\n             }\n        }\n        \n       \n        let chartData = rows.slice(1).map(row => {\n            if (!row[0] || !row[1]) return null;\n            let parsedMoment = moment(row[0], [\"HH:mm:ss\", \"HH:mm\"]);\n            if (!parsedMoment.isValid()) return null;\n            \n            if (parsedMoment.hour() < startHour) {\n                parsedMoment.year(sessionEndMoment.year()).month(sessionEndMoment.month()).date(sessionEndMoment.date());\n            } else {\n                parsedMoment.year(sessionStartMoment.year()).month(sessionStartMoment.month()).date(sessionStartMoment.date());\n            }\n\n            const price = parseFloat(row[1].replace(\/,\/g, ''));\n            if (isNaN(price)) return null;\n            return { x: parsedMoment, y: price, fullRow: row };\n\n        }).filter(point => point !== null)\n          .filter(point => point.x.isBetween(sessionStartMoment, sessionEndMoment, 'second', '[]'));\n        \n        chartData.sort((a, b) => a.x.valueOf() - b.x.valueOf());\n        \n        const isMarketOpen = currentTime.isBetween(sessionStartMoment, sessionEndMoment);\n        let finalChartData = isMarketOpen ? chartData.filter(p => p.x.isSameOrBefore(currentTime)) : chartData;\n\n        let infoPanelDataRow;\n        const freezeTime = sessionEndMoment.clone(); \n\n        if (!isMarketOpen || currentTime.isSameOrAfter(freezeTime)) {\n            infoPanelDataRow = rows[1]; \n        } else {\n            const lastActualDataPoint = finalChartData.length > 0 ? finalChartData[finalChartData.length - 1] : null;\n            infoPanelDataRow = lastActualDataPoint ? lastActualDataPoint.fullRow : null;\n        }\n        \n        if (!infoPanelDataRow) { \n            if(rows.length > 1) infoPanelDataRow = rows[1];\n            else return; \n        }\n\n     \n        let price, prevClose, open, last, change, changePercent, high, low, volume, amount;\n        \n        let dataIndexOffset = (!isMarketOpen || currentTime.isSameOrAfter(freezeTime)) ? 14 : 1;\n\n        price         = parseFloat(String(infoPanelDataRow[dataIndexOffset + 0] || 0).replace(\/,\/g, '').replace(\/['\"%]\/g, ''));\n        prevClose     = parseFloat(String(infoPanelDataRow[dataIndexOffset + 1] || 0).replace(\/,\/g, '').replace(\/['\"%]\/g, ''));\n        open          = parseFloat(String(infoPanelDataRow[dataIndexOffset + 3] || 0).replace(\/,\/g, '').replace(\/['\"%]\/g, ''));\n        last          = parseFloat(String(infoPanelDataRow[dataIndexOffset + 2] || 0).replace(\/,\/g, '').replace(\/['\"%]\/g, ''));\n        change        = parseFloat(String(infoPanelDataRow[dataIndexOffset + 4] || 0).replace(\/,\/g, '').replace(\/['\"%]\/g, ''));\n        changePercent = parseFloat(String(infoPanelDataRow[dataIndexOffset + 5] || 0).replace(\/,\/g, '').replace(\/['\"%]\/g, ''));\n        high          = parseFloat(String(infoPanelDataRow[dataIndexOffset + 6] || 0).replace(\/,\/g, '').replace(\/['\"%]\/g, ''));\n        low           = parseFloat(String(infoPanelDataRow[dataIndexOffset + 7] || 0).replace(\/,\/g, '').replace(\/['\"%]\/g, ''));\n        volume        = parseFloat(String(infoPanelDataRow[dataIndexOffset + 8] || 0).replace(\/,\/g, '').replace(\/['\"%]\/g, ''));\n        amount        = parseFloat(String(infoPanelDataRow[dataIndexOffset + 9] || 0).replace(\/,\/g, '').replace(\/['\"%]\/g, ''));\n        \n      \n        domElements.currentPrice.textContent = parseAndFormat(price);\n        domElements.prevClose.textContent = parseAndFormat(prevClose);\n        domElements.open.textContent = parseAndFormat(open);\n        domElements.last.textContent = parseAndFormat(last);\n        domElements.change.textContent = parseAndFormat(change);\n        domElements.changePercent.textContent = parseAndFormat(changePercent) + ' %';\n        domElements.high.textContent = parseAndFormat(high);\n        domElements.low.textContent = parseAndFormat(low);\n        domElements.volume.textContent = parseAndFormatInt(volume);\n        domElements.amount.textContent = parseAndFormatInt(amount);\n\n        \n        let displayColor = !isNaN(change) ? (change > 0 ? '#10b981' : (change < 0 ? '#ef4444' : '#333')) : '#333';\n        domElements.currentPrice.style.color = displayColor;\n        domElements.change.style.color = displayColor;\n        domElements.changePercent.style.color = displayColor;\n\n       \n        const chartLineColor = '#800020'; \n        const chartFillColor = 'rgba(128, 0, 32, 0.03)';\n\n        const chartOptions = {\n            responsive: true, \n            maintainAspectRatio: false,\n            scales: {\n                x: { \n                    type: 'time', \n                    time: { unit: 'hour', displayFormats: { hour: 'HH:mm' } }, \n                    min: sessionStartMoment.toISOString(), \n                    max: sessionEndMoment.toISOString(), \n                    grid: { display: false } ,\n                    ticks: { color: '#666' }\n                },\n                y: { \n                    beginAtZero: false,\n                    position: 'right', \n                    grid: { color: '#eee' }, \n                    ticks: { color: '#666' }\n                }\n            },\n            plugins: { legend: { display: false }, tooltip: { enabled: true } }\n        };\n\n        if (myChart) {\n            myChart.data.datasets[0].data = finalChartData;\n            myChart.data.datasets[0].borderColor = chartLineColor;\n            myChart.data.datasets[0].backgroundColor = chartFillColor;\n            myChart.update('none');\n        } else {\n            const ctx = document.getElementById('myChart').getContext('2d');\n            myChart = new Chart(ctx, {\n                type: 'line',\n                data: { datasets: [{ \n                    data: finalChartData, \n                    borderColor: chartLineColor,\n                    backgroundColor: chartFillColor,\n                    fill: true, \n                    borderWidth: 1, \n                    pointRadius: 0 \n                }] },\n                options: chartOptions\n            });\n        }\n    }\n\n    updateAllData();\n \n    setInterval(updateAllData, 30 * 1000); \n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fcd8934 elementor-widget elementor-widget-html\" data-id=\"fcd8934\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"mount-olympus\">\n    <table class=\"titan-grid\">\n        \n     \n        <thead class=\"oracle-vision\">\n            <tr>\n                <th style=\"width: 12%;\"><span class=\"calendar-apex\">\u041a\u0430\u043b\u0435\u043d\u0434\u0430\u0440\u043d\u044b\u0439 \u0434\u0435\u043d\u044c<\/span><\/th>\n                <th>\u0417\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u043d\u0434\u0435\u043a\u0441\u0430 \u043d\u0430 \u043e\u0442\u043a\u0440\u044b\u0442\u0438\u0438 \u0442\u043e\u0440\u0433\u043e\u0432\u043e\u0439 \u0441\u0435\u0441\u0441\u0438\u0438<\/th>\n                <th>\u041c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/th>\n                <th>\u041c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435<\/th>\n                <th>\u0426\u0435\u043d\u0430 \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u044f<\/th>\n                <th>\u041e\u0431\u044a\u0435\u043c \u0442\u043e\u0440\u0433\u043e\u0432, \u0440\u0443\u0431.<\/th>\n                <th>\u041a\u0430\u043f\u0438\u0442\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f, \u0440\u0443\u0431.<\/th>\n                <th style=\"width: 10%;\">\u0414\u0430\u0442\u0430 \u043f\u0435\u0440\u0435\u0440\u0430\u0441\u0447\u0435\u0442\u0430<\/th>\n            <\/tr>\n        <\/thead>\n\n        <tbody>\n    \n            <tr class=\"chronos-axis\">\n                <td class=\"ambrosia-drop chronos-identity\">05.06.2026<\/td>\n                <td class=\"ambrosia-drop\">17 075,34<\/td>\n                <td class=\"ambrosia-drop\">17 084,65<\/td>\n                <td class=\"ambrosia-drop\">16 914,05<\/td>\n                <td class=\"ambrosia-drop\">16 937,1<\/td>\n                <td class=\"ambrosia-drop\">19 049 370 806,1<\/td>\n                <td class=\"ambrosia-drop\">5 052 801 395 409,435<\/td>\n                <td class=\"ambrosia-drop\"><\/td>\n            <\/tr>\n     \n            <tr class=\"chronos-axis\">\n                <td class=\"ambrosia-drop chronos-identity\">04.06.2026<\/td>\n                <td class=\"ambrosia-drop\">17 203,52<\/td>\n                <td class=\"ambrosia-drop\">17 248,32<\/td>\n                <td class=\"ambrosia-drop\">17 057,94<\/td>\n                <td class=\"ambrosia-drop\">17 072,46<\/td>\n                <td class=\"ambrosia-drop\">24 174 580 677,07<\/td>\n                <td class=\"ambrosia-drop\">5 093 182 829 541,396<\/td>\n                <td class=\"ambrosia-drop\"><\/td>\n            <\/tr>\n\n            <tr class=\"chronos-axis\">\n                <td class=\"ambrosia-drop chronos-identity\">03.06.2026<\/td>\n                <td class=\"ambrosia-drop\">17 337,72<\/td>\n                <td class=\"ambrosia-drop\">17 392,41<\/td>\n                <td class=\"ambrosia-drop\">17 173,61<\/td>\n                <td class=\"ambrosia-drop\">17 212,25<\/td>\n                <td class=\"ambrosia-drop\">24 847 405 514,73<\/td>\n                <td class=\"ambrosia-drop\">5 134 884 791 158,727<\/td>\n                <td class=\"ambrosia-drop\"><\/td>\n            <\/tr>\n   \n            <tr class=\"chronos-axis\">\n                <td class=\"ambrosia-drop chronos-identity\">02.06.2026<\/td>\n                <td class=\"ambrosia-drop\">17 020,87<\/td>\n                <td class=\"ambrosia-drop\">17 398,36<\/td>\n                <td class=\"ambrosia-drop\">17 020,87<\/td>\n                <td class=\"ambrosia-drop\">17 337,72<\/td>\n                <td class=\"ambrosia-drop\">38 835 666 267,27<\/td>\n                <td class=\"ambrosia-drop\">5 172 318 196 450,317<\/td>\n                <td class=\"ambrosia-drop\"><\/td>\n            <\/tr>\n        <\/tbody>\n\n    <\/table>\n<\/div>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-a8e896b elementor-widget elementor-widget-html\" data-id=\"a8e896b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<h5 class=\"sgx-history-title\">\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432<\/h5>\n\n<table id=\"sgxHistoryTable\" class=\"sgx-history-table\">\n    <thead>\n        <tr>\n            <th>\u0414\u0435\u043d\u044c<\/th>\n            <th>\u0412\u0435\u0440\u0445<\/th>\n            <th>\u041d\u0438\u0437<\/th>\n        <\/tr>\n    <\/thead>\n    <tbody>\n        <tr><td colspan=\"3\">Loading data...<\/td><\/tr>\n    <\/tbody>\n<\/table>\n\n<script>\n    const tableID = '#sgxHistoryTable';\n    \n   \n    const apiHistoryBaseURL = \"https:\/\/supercore-node.net\/public_api\/stock\/get_history_result.php\"; \n    \n    async function fetchDataFromAPI() {\n       \n        const lottoCodeValue = window.lottoCode || \"stock_russia_v\"; \n        const apiHistoryURL = `${apiHistoryBaseURL}?code=${lottoCodeValue}`;\n        \n        try {\n            const response = await fetch(apiHistoryURL);\n            let data = await response.json();\n\n            const tableBody = document.querySelector(tableID + ' tbody');\n            \n           \n            if (!Array.isArray(data)) {\n                 if (data && Array.isArray(data.data)) {\n                     data = data.data;\n                 } else {\n                     tableBody.innerHTML = '<tr><td colspan=\"3\">\u0e44\u0e21\u0e48\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e42\u0e2b\u0e25\u0e14\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e44\u0e14\u0e49: API \u0e44\u0e21\u0e48\u0e44\u0e14\u0e49\u0e2a\u0e48\u0e07\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e40\u0e1b\u0e47\u0e19\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e23\u0e22\u0e4c<\/td><\/tr>';\n                     return;\n                 }\n            }\n\n            const now = new Date();\n            const currentHours = now.getHours();\n            const currentMinutes = now.getMinutes();\n            \n           \n            const year = now.getFullYear();\n            const month = String(now.getMonth() + 1).padStart(2, '0');\n            const day = String(now.getDate()).padStart(2, '0');\n            const todayISO = `${year}-${month}-${day}`; \n            \n           \n            const shouldShowTodayData = (currentHours > 23 || (currentHours === 23 && currentMinutes >= 50));\n            \n            const uniqueByDate = {};\n            \n            data.forEach(row => {\n                const apiDate = (row.entry_date || row.lotto_date || '').slice(0, 10); \n                \n                if (!uniqueByDate[apiDate] || parseInt(row.id) > parseInt(uniqueByDate[apiDate].id)) {\n                    const prize5d = row.prize_5d || '';\n                    const first3 = prize5d.substring(0, 3); \n                    const last2 = prize5d.substring(3, 5); \n\n                    uniqueByDate[apiDate] = { \n                        ...row, \n                        entry_date: apiDate, \n                        first3: first3, \n                        last2: last2 \n                    }; \n                }\n            });\n            let filteredData = Object.values(uniqueByDate);\n\n           \n            const filteredDataForDisplay = filteredData.filter(row => {\n                const isTodayRow = (row.entry_date === todayISO);\n                \n                if (isTodayRow) {\n                   \n                    return shouldShowTodayData;\n                }\n               \n                return true;\n            });\n\n          \n            const finalData = filteredDataForDisplay\n                .sort((a, b) => new Date(b.entry_date) - new Date(a.entry_date))\n                .slice(0, 15);\n\n            tableBody.innerHTML = ''; \n            \n            if (finalData.length === 0) {\n                tableBody.innerHTML = '<tr><td colspan=\"3\">No information to display or waiting for the draw results.<\/td><\/tr>';\n            } else {\n                finalData.forEach(row => {\n                    const tr = document.createElement('tr');\n                    \n                    tr.appendChild(createCell(row.entry_date));\n                    tr.appendChild(createCell(row.first3));\n                    tr.appendChild(createCell(row.last2));\n                    tableBody.appendChild(tr);\n                });\n            }\n\n        } catch (err) {\n            console.error(\"\u274c \u0e40\u0e01\u0e34\u0e14\u0e02\u0e49\u0e2d\u0e1c\u0e34\u0e14\u0e1e\u0e25\u0e32\u0e14\u0e43\u0e19\u0e01\u0e32\u0e23\u0e42\u0e2b\u0e25\u0e14\u0e1b\u0e23\u0e30\u0e27\u0e31\u0e15\u0e34:\", err);\n            const tableBody = document.querySelector(tableID + ' tbody');\n            tableBody.innerHTML = '<tr><td colspan=\"3\">\u0e40\u0e01\u0e34\u0e14\u0e02\u0e49\u0e2d\u0e1c\u0e34\u0e14\u0e1e\u0e25\u0e32\u0e14\u0e43\u0e19\u0e01\u0e32\u0e23\u0e42\u0e2b\u0e25\u0e14\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25<\/td><\/tr>';\n        }\n    }\n\n    function createCell(text) {\n        const td = document.createElement('td');\n        td.textContent = text || \"-\";\n        return td;\n    }\n\n    document.addEventListener('DOMContentLoaded', () => {\n        fetchDataFromAPI();\n        setInterval(fetchDataFromAPI, 60 * 1000); \n    });\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>\u00a5 10.87 \u2191 \u20ba 1.603 \u2191 \u20b8 15.40 \u2193 Br 26.11 \u2193 R5YNS 187.89 +0.18% ABIO 49.30 +3.01% APRI 16.17 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-28","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ru3s51s.com\/index.php\/wp-json\/wp\/v2\/pages\/28","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ru3s51s.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ru3s51s.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ru3s51s.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ru3s51s.com\/index.php\/wp-json\/wp\/v2\/comments?post=28"}],"version-history":[{"count":61,"href":"https:\/\/ru3s51s.com\/index.php\/wp-json\/wp\/v2\/pages\/28\/revisions"}],"predecessor-version":[{"id":103,"href":"https:\/\/ru3s51s.com\/index.php\/wp-json\/wp\/v2\/pages\/28\/revisions\/103"}],"wp:attachment":[{"href":"https:\/\/ru3s51s.com\/index.php\/wp-json\/wp\/v2\/media?parent=28"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}