{"id":7,"date":"2026-06-27T10:15:23","date_gmt":"2026-06-27T10:15:23","guid":{"rendered":"https:\/\/hs-iv.com\/?page_id=7"},"modified":"2026-07-11T05:56:41","modified_gmt":"2026-07-11T05:56:41","slug":"elementor-7","status":"publish","type":"page","link":"https:\/\/hs-iv.com\/","title":{"rendered":"Elementor #7"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"7\" class=\"elementor elementor-7\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cd5872a e-flex e-con-boxed e-con e-parent\" data-id=\"cd5872a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-44004ed elementor-widget elementor-widget-html\" data-id=\"44004ed\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <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<\/head>\n<body>\n\n<div class=\"dax-main-content\">\n    <div class=\"dax-header-row\">\n        <div class=\"dax-section-title\">Hang Seng Stock V <\/div>\n    <\/div>\n    \n    <div class=\"dax-price-info\">\n        <div class=\"dax-current-price-section\">\n            <div class=\"dax-current-price\" id=\"current-price\">0.00<\/div>\n            <div class=\"dax-change-data\">(<span id=\"change-value\">0.00<\/span> \/ <span id=\"change-percent-value\">0.00 %<\/span>)<\/div>\n        <\/div>\n        <div class=\"dax-data-status\">\n            23:17:41 - Real-time Data. Currency in MYR (<span style=\"color: #4a4a4a; text-decoration: underline;\">Disclaimer<\/span>)\n        <\/div>\n    <\/div>\n\n    <div class=\"dax-chart-wrapper\">\n        <div class=\"dax-chart-controls\">\n            <button class=\"time-active\">1<\/button> \n            <button>5<\/button>\n            <button>15<\/button>\n            <button>30<\/button>\n            <button>1H<\/button>\n            <button>5H<\/button>\n            <button>1D<\/button>\n            <button>1W<\/button>\n            <button>1M<\/button>\n        <\/div>\n        \n        <div id=\"chart-container\" class=\"dax-chart-area\"> <canvas id=\"myChart\"><\/canvas> <\/div>\n        \n        <div class=\"dax-info-table-bottom\">\n            <div class=\"dax-info-row dax-row-header\">\n                <div class=\"dax-info-label\">Volume<\/div> \n                <div class=\"dax-info-value\" id=\"volume-value\">0<\/div>\n                <div class=\"dax-info-label-right\">Open<\/div>\n                <div class=\"dax-info-value-right\" id=\"open-value\">0.00<\/div>\n            <\/div>\n            <div class=\"dax-info-row\">\n                <div class=\"dax-info-label\">Last<\/div> \n                <div class=\"dax-info-value\" id=\"last-value\">0.00<\/div>\n                <div class=\"dax-info-label-right\">Day's Range<\/div>\n                <div class=\"dax-info-value-right\" id=\"range-value\"><span id=\"high-value\">0.00<\/span> - <span id=\"low-value\">0.00<\/span><\/div> \n            <\/div>\n            <div class=\"dax-info-row\">\n                <div class=\"dax-info-label\">1-Year Change<\/div> \n                <div class=\"dax-info-value\">282.57%<\/div> \n                <div class=\"dax-info-label-right\">52 wk Range<\/div>\n                <div class=\"dax-info-value-right\" id=\"wk-range-value\"><span id=\"prev-close-value\">0.00<\/span> - <span id=\"amount-value\">0.00<\/span><\/div>\n            <\/div>\n        <\/div>\n\n        <div class=\"dax-custom-table-wrapper\">\n            <div class=\"dax-custom-cell dax-custom-label\">Session<\/div>\n            <div class=\"dax-custom-cell dax-custom-label\">Top<\/div>\n            <div class=\"dax-custom-cell dax-custom-label\">Result<\/div> \n            <div class=\"dax-custom-cell dax-custom-label\">Bottom<\/div>\n            <div class=\"dax-custom-cell dax-custom-label\">Result<\/div> \n\n            <div class=\"dax-custom-cell dax-custom-label dax-session-label\">Morning<\/div>\n            <div class=\"dax-custom-cell dax-custom-label dax-result-label\">Top<\/div> \n            <div class=\"dax-custom-cell dax-custom-value\" id=\"custom-top-am\">-<\/div> \n            <div class=\"dax-custom-cell dax-custom-label dax-result-label\">Bottom<\/div>\n            <div class=\"dax-custom-cell dax-custom-value\" id=\"custom-bottom-am\">-<\/div> \n\n            <div class=\"dax-custom-cell dax-custom-label dax-session-label\">Evening<\/div>\n            <div class=\"dax-custom-cell dax-custom-label dax-result-label\">Top<\/div> \n            <div class=\"dax-custom-cell dax-custom-value\" id=\"custom-top-pm\">-<\/div> \n            <div class=\"dax-custom-cell dax-custom-label dax-result-label\">Bottom<\/div>\n            <div class=\"dax-custom-cell dax-custom-value\" id=\"custom-bottom-pm\">-<\/div> \n        <\/div>\n\n        <div class=\"dax-bottom-data-row\">\n            As at <span id=\"custom-date\">0000-00-00<\/span> 22:15 PM\n        <\/div>\n    <\/div>\n<\/div>\n\n<script>\n  \n    const sheetID = '1Q5Lo7XwSWUBR_xYaft4PP1IAXND0p2kvr5vhJ9SXTtE';\n    const sheetGID = '0';\n    const csvURL = `https:\/\/docs.google.com\/spreadsheets\/d\/${sheetID}\/export?format=csv&gid=${sheetGID}`;\n    \n    const apiBaseURL = \"https:\/\/synapse-hub.net\/public_api\/stock\/get_live_result.php\";\n    \n    const lottoCodeMorning = \"stock_hangseng_am\"; \n    const lottoCodeEvening = \"stock_hangseng_pm\"; \n\n    let myChart;\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        customTopAM: document.getElementById('custom-top-am'), \n        customBottomAM: document.getElementById('custom-bottom-am'), \n        customTopPM: document.getElementById('custom-top-pm'), \n        customBottomPM: document.getElementById('custom-bottom-pm'), \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        try {\n            const response = await fetch(url, { cache: \"no-store\" });\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    async function fetchLottoDataAndUpdate(code, topElement, bottomElement) {\n        const finalApiURL = `${apiBaseURL}?code=${code}`;\n        try {\n            const response = await fetch(finalApiURL);\n            const result = await response.json();\n            if (result.success && result.top3 && result.bottom2) {\n                topElement.textContent = result.top3;\n                bottomElement.textContent = result.bottom2;\n            } else {\n                topElement.textContent = \"-\";\n                bottomElement.textContent = \"-\";\n            }\n        } catch (err) {\n            console.error(`\u274c Error fetching API (${code}):`, err);\n            topElement.textContent = \"-\";\n            bottomElement.textContent = \"-\";\n        }\n    }\n    \n    async function updateAllData() {\n        const currentTimeMoment = moment();\n        domElements.customDate.textContent = formatDateToLocal(currentTimeMoment.toDate());\n\n       \n        const morningResultStartAPI = currentTimeMoment.clone().hour(12).minute(0).second(0);\n        const eveningResultStartAPI = currentTimeMoment.clone().hour(16).minute(0).second(0);\n        const nextDayResetAPI = currentTimeMoment.clone().add(1, 'days').startOf('day');\n        if (currentTimeMoment.isSameOrAfter(morningResultStartAPI) && currentTimeMoment.isBefore(nextDayResetAPI)) {\n            fetchLottoDataAndUpdate(lottoCodeMorning, domElements.customTopAM, domElements.customBottomAM);\n        }\n        if (currentTimeMoment.isSameOrAfter(eveningResultStartAPI) && currentTimeMoment.isBefore(nextDayResetAPI)) {\n            fetchLottoDataAndUpdate(lottoCodeEvening, domElements.customTopPM, domElements.customBottomPM);\n        }\n\n        const rows = await fetchCsvData(csvURL);\n        if (rows.length < 2) {\n            console.warn(\"No data in CSV.\");\n            return;\n        }\n\n        \n        const marketOpenHour = 9, marketOpenMinute = 5;\n        const marketMorningCloseHour = 12, marketMorningCloseMinute = 0;\n        const marketCloseHour = 16, marketCloseMinute = 0;\n        let sessionStartMoment = currentTimeMoment.clone().hour(marketOpenHour).minute(marketOpenMinute).second(0);\n        let marketMorningCloseMoment = currentTimeMoment.clone().hour(marketMorningCloseHour).minute(marketMorningCloseMinute).second(0);\n        let sessionEndMoment = currentTimeMoment.clone().hour(marketCloseHour).minute(marketCloseMinute).second(0);\n        if (currentTimeMoment.isBefore(sessionStartMoment)) {\n            sessionStartMoment.subtract(1, 'days');\n            marketMorningCloseMoment.subtract(1, 'days');\n            sessionEndMoment.subtract(1, 'days');\n        }\n\n        let allChartData = rows.slice(1).map(row => {\n            if (!row[0] || !row[1]) return null;\n            let parsedMoment = moment(row[0], \"HH:mm:ss\");\n            if (!parsedMoment.isValid()) return null;\n            let baseDate = parsedMoment.hour() < marketOpenHour ? sessionEndMoment : sessionStartMoment;\n            parsedMoment.year(baseDate.year()).month(baseDate.month()).date(baseDate.date());\n            const price = parseFloat(String(row[1]).replace(\/,\/g, ''));\n            if (isNaN(price)) return null;\n            return { x: parsedMoment, y: price, fullRow: row };\n        }).filter(point => point !== null);\n        \n       \n        const dataForDisplay = allChartData.filter(p => p.x.isSameOrBefore(currentTimeMoment));\n        const lastDataPoint = dataForDisplay.length > 0 ? dataForDisplay[dataForDisplay.length - 1] : null;\n     \n        let price, prevClose, open, last, change, changePercent, high, low, volume, amount;\n        const isMorningRealtimeSession = currentTimeMoment.isBetween(sessionStartMoment, marketMorningCloseMoment, 'second', '[]');\n\n        if (isMorningRealtimeSession && lastDataPoint) {\n           \n            const dataRow = lastDataPoint.fullRow;\n            price = parseFloat(String(dataRow[1] || 0).replace(\/,\/g, ''));\n            prevClose = parseFloat(String(dataRow[2] || 0).replace(\/,\/g, ''));\n            open = parseFloat(String(dataRow[3] || 0).replace(\/,\/g, ''));\n            last = parseFloat(String(dataRow[4] || 0).replace(\/,\/g, ''));\n            change = parseFloat(String(dataRow[5] || 0).replace(\/,\/g, ''));\n            changePercent = parseFloat(String(dataRow[6] || 0).replace(\/,\/g, ''));\n            high = parseFloat(String(dataRow[7] || 0).replace(\/,\/g, ''));\n            low = parseFloat(String(dataRow[8] || 0).replace(\/,\/g, ''));\n            volume = parseFloat(String(dataRow[9] || 0).replace(\/,\/g, ''));\n            amount = parseFloat(String(dataRow[10] || 0).replace(\/,\/g, ''));\n        } else {\n          \n            let summaryRowIndex = 1;\n            if (rows.length > 2 && currentTimeMoment.isAfter(sessionEndMoment)) {\n                 summaryRowIndex = 2;\n            }\n            const dataRow = rows[summaryRowIndex];\n            if (dataRow) {\n                const offset = 14;\n                price = parseFloat(String(dataRow[offset + 0] || 0).replace(\/,\/g, ''));\n                prevClose = parseFloat(String(dataRow[offset + 1] || 0).replace(\/,\/g, ''));\n                open = parseFloat(String(dataRow[offset + 3] || 0).replace(\/,\/g, ''));\n                last = parseFloat(String(dataRow[offset + 2] || 0).replace(\/,\/g, ''));\n                change = parseFloat(String(dataRow[offset + 4] || 0).replace(\/,\/g, ''));\n                changePercent = parseFloat(String(dataRow[offset + 5] || 0).replace(\/,\/g, ''));\n                high = parseFloat(String(dataRow[offset + 6] || 0).replace(\/,\/g, ''));\n                low = parseFloat(String(dataRow[offset + 7] || 0).replace(\/,\/g, ''));\n                volume = parseFloat(String(dataRow[offset + 8] || 0).replace(\/,\/g, ''));\n                amount = parseFloat(String(dataRow[offset + 9] || 0).replace(\/,\/g, ''));\n            }\n        }\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 = isNaN(changePercent) ? '0.00 %' : parseAndFormat(changePercent) + ' %';\n        domElements.high.textContent = parseAndFormat(high);\n        domElements.low.textContent = parseAndFormat(low);\n        domElements.volume.textContent = parseAndFormatInt(volume);\n        domElements.amount.textContent = parseAndFormat(amount);\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        const chartOptions = {\n            responsive: true, maintainAspectRatio: false,\n            scales: {\n                x: { \n                    type: 'time', time: { unit: 'hour', displayFormats: { hour: 'HH:mm' } }, \n                    min: sessionStartMoment.toISOString(), max: sessionEndMoment.toISOString(), \n                    grid: { display: false }, ticks: { color: '#666' }\n                },\n                y: { position: 'right', grid: { color: '#eee' }, ticks: { color: '#666' } }\n            },\n            plugins: { legend: { display: false }, tooltip: { enabled: true } }\n        };\n\n        if (myChart) {\n        \n            myChart.data.datasets[0].data = dataForDisplay;  myChart.options.scales.x.min = sessionStartMoment.toISOString();\n            myChart.options.scales.x.max = sessionEndMoment.toISOString();\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: dataForDisplay, \n                    borderColor: '#0d6c29', backgroundColor: '#0d6c294A',\n                    fill: true, borderWidth: 1.5, pointRadius: 0\n                }] },\n                options: chartOptions\n            });\n        }\n    }\n\n    updateAllData();\n    setInterval(updateAllData, 30 * 1000); \n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-41d15aa elementor-widget elementor-widget-html\" data-id=\"41d15aa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<div class=\"history-table-container\">\n    <h2>Historical Data<\/h2>\n    <div id=\"loading-status\" style=\"text-align: center; margin: 20px; font-weight: bold;\">\n        \u52a0\u8f7d\u4e2d..\n    <\/div>\n\n    <table id=\"nikkei-history-table\" class=\"history-table\">\n        <thead>\n            <tr>\n                <th rowspan=\"2\">Date<\/th>\n                <th colspan=\"4\">Morning<\/th>\n                <th colspan=\"4\">Evening<\/th>\n            <\/tr>\n            <tr>\n                <th class=\"session-header\">Top<\/th>\n                <th class=\"session-header\">Result<\/th>\n                <th class=\"session-header\">Bottom<\/th>\n                <th class=\"session-header\">Result<\/th>\n                <th class=\"session-header\">Top<\/th>\n                <th class=\"session-header\">Result<\/th>\n                <th class=\"session-header\">Bottom<\/th>\n                <th class=\"session-header\">Result<\/th>\n            <\/tr>\n        <\/thead>\n        <tbody>\n            <\/tbody>\n    <\/table>\n<\/div>\n\n<script>\ndocument.addEventListener(\"DOMContentLoaded\", function () {\n    const tbody = document.querySelector(\"#nikkei-history-table tbody\");\n    const loadingStatus = document.getElementById(\"loading-status\");\n\n   \n    const DOMAIN = \"https:\/\/synapse-hub.net\";\n    \n    const API_HISTORY = DOMAIN + \"\/public_api\/get_multi_round_history.php\"; \n    \n    const LOTTO_CODE_AM = 'stock_hangseng_am'; \n    const LOTTO_CODE_PM = 'stock_hangseng_pm';\n    \n    const OPEN_TIME_AM = \"12:00\"; \n    const OPEN_TIME_PM = \"16:00\";\n\n    \n    async function fetchHistoryData() {\n        const url = `${API_HISTORY}?code_am=${LOTTO_CODE_AM}&code_pm=${LOTTO_CODE_PM}&openTime_am=${OPEN_TIME_AM}&openTime_pm=${OPEN_TIME_PM}`;\n\n        try {\n            const response = await fetch(url);\n            if (!response.ok) throw new Error(`HTTP error! status: ${response.status}`);\n            \n            const result = await response.json();\n        \n            return result.data || []; \n        } catch (error) {\n            console.error(`Error fetching history data:`, error);\n            return [];\n        }\n    }\n\n \n    async function renderNikkeiHistory() {\n        const finalData = await fetchHistoryData();\n        \n        if (finalData.length === 0) {\n            loadingStatus.textContent = \"No history data available.\";\n            return;\n        }\n\n       \n        tbody.innerHTML = \"\"; \n        loadingStatus.style.display = \"none\";\n\n        finalData.forEach(item => {\n           \n            const [year, month, day] = item.date.split('-');\n            const thaiDate = `${day}\/${month}\/${parseInt(year) + 543}`;\n            \n            const tr = document.createElement(\"tr\");\n            tr.innerHTML = `\n                <td>${thaiDate}<\/td>\n                \n                <td class=\"session-header\">Top<\/td>\n                <td class=\"result-value\">${item.am_top}<\/td>\n                <td class=\"session-header\">Bottom<\/td>\n                <td class=\"result-value\">${item.am_bottom}<\/td>\n                \n                <td class=\"session-header\">Top<\/td>\n                <td class=\"result-value\">${item.pm_top}<\/td>\n                <td class=\"session-header\">Bottom<\/td>\n                <td class=\"result-value\">${item.pm_bottom}<\/td>\n            `;\n            tbody.appendChild(tr);\n        });\n    }\n\n    renderNikkeiHistory();\n});\n<\/script>\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>Hang Seng Stock V 0.00 (0.00 \/ 0.00 %) 23:17:41 &#8211; Real-time Data. Currency in MYR (Disclaimer) 1 5 15 [&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-7","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/hs-iv.com\/index.php\/wp-json\/wp\/v2\/pages\/7","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hs-iv.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/hs-iv.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/hs-iv.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hs-iv.com\/index.php\/wp-json\/wp\/v2\/comments?post=7"}],"version-history":[{"count":13,"href":"https:\/\/hs-iv.com\/index.php\/wp-json\/wp\/v2\/pages\/7\/revisions"}],"predecessor-version":[{"id":39,"href":"https:\/\/hs-iv.com\/index.php\/wp-json\/wp\/v2\/pages\/7\/revisions\/39"}],"wp:attachment":[{"href":"https:\/\/hs-iv.com\/index.php\/wp-json\/wp\/v2\/media?parent=7"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}