{"id":877,"date":"2026-09-30T13:40:34","date_gmt":"2026-09-30T04:40:34","guid":{"rendered":"https:\/\/aquaguide.cdnetworks.com\/?page_id=877"},"modified":"2026-09-30T15:47:26","modified_gmt":"2026-09-30T06:47:26","slug":"elementor-877","status":"publish","type":"page","link":"https:\/\/aquaguide.cdnetworks.com\/?page_id=877","title":{"rendered":"Elementor #877"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"877\" class=\"elementor elementor-877\">\n\t\t\t\t<div class=\"elementor-element elementor-element-76a855b e-flex e-con-boxed e-con e-parent\" data-id=\"76a855b\" 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-9485e7b elementor-widget elementor-widget-text-editor\" data-id=\"9485e7b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t\n<p><style>\n:root {\n  --bg: #0f172a;\n  --card: #1e293b;\n  --text: #f1f5f9;\n  --muted: #94a3b8;\n  --accent: #38bdf8;\n  --success: #22c55e;\n  --fail: #ef4444;\n  --warning: #f59e0b;\n  --border: #334155;\n}\n.unified-checker * {\n  margin: 0;\n  padding: 0;\n  box-sizing: border-box;\n}\n.unified-checker {\n  font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Noto Sans KR\", sans-serif;\n  background: var(--bg);\n  color: var(--text);\n  line-height: 1.5;\n  padding: 16px;\n  border-radius: 12px;\n  max-width: 640px;\n  margin: 0 auto;\n}\n.unified-checker .card {\n  background: var(--card);\n  border: 1px solid var(--border);\n  border-radius: 12px;\n  padding: 16px;\n  margin-bottom: 16px;\n}\n.unified-checker .card h2 {\n  font-size: 1rem;\n  font-weight: 600;\n  margin-bottom: 12px;\n  color: var(--accent);\n}\n.unified-checker table {\n  width: 100%;\n  border-collapse: collapse;\n  font-size: 0.875rem;\n}\n.unified-checker th,\n.unified-checker td {\n  padding: 10px 8px;\n  text-align: left;\n  border-bottom: 1px solid var(--border);\n}\n.unified-checker th {\n  color: var(--muted);\n  font-weight: 500;\n  font-size: 0.75rem;\n  text-transform: uppercase;\n  letter-spacing: 0.03em;\n}\n.unified-checker tr:last-child td {\n  border-bottom: 1px solid white; var(--border);\n}\n.unified-checker .codec-name {\n  font-weight: 600;\n}\n.unified-checker .codec-mime {\n  font-size: 0.75rem;\n  color: var(--muted);\n  font-family: ui-monospace, monospace;\n  word-break: break-all;\n}\n.unified-checker .status {\n  font-weight: 600;\n  white-space: nowrap;\n}\n.unified-checker .status-yes { color: var(--success); }\n.unified-checker .status-no { color: var(--fail); }\n.unified-checker .status-partial { color: var(--warning); }\n.unified-checker .device-info {\n  display: grid;\n  gap: 8px;\n  font-size: 0.875rem;\n}\n.unified-checker .device-info div {\n  display: flex;\n  justify-content: space-between;\n  gap: 12px;\n}\n.unified-checker .device-info .label {\n  color: var(--muted);\n}\n.unified-checker .device-info .value {\n  font-weight: 500;\n  text-align: right;\n  word-break: break-all;\n}\n.unified-checker .note {\n  font-size: 0.8rem;\n  color: var(--muted);\n  margin-top: 12px;\n  line-height: 1.6;\n}\n.unified-checker .btn {\n  display: inline-block;\n  background: var(--accent);\n  color: #0f172a;\n  font-weight: 600;\n  font-size: 0.875rem;\n  padding: 10px 20px;\n  border: none;\n  border-radius: 8px;\n  cursor: pointer;\n  width: 100%;\n  margin-bottom: 16px;\n}\n.unified-checker .btn:active {\n  opacity: 0.85;\n}\n.unified-checker footer {\n  text-align: center;\n  color: var(--muted);\n  font-size: 0.75rem;\n  margin-top: 8px;\n  padding-bottom: 8px;\n}\n.unified-checker .detail-row {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 6px;\n  margin-top: 4px;\n}\n.unified-checker .mini-badge {\n  font-size: 0.65rem;\n  padding: 1px 6px;\n  border-radius: 4px;\n  background: rgba(148, 163, 184, 0.12);\n  color: var(--muted);\n}\n.unified-checker .mini-badge.on {\n  background: rgba(34, 197, 94, 0.15);\n  color: var(--success);\n}\n.unified-checker .info-list {\n  display: grid;\n  gap: 10px;\n  font-size: 0.875rem;\n}\n.unified-checker .info-row {\n  display: flex;\n  justify-content: space-between;\n  gap: 12px;\n  padding: 8px 0;\n  border-bottom: 1px solid var(--border);\n}\n.unified-checker .info-row:last-child {\n  border-bottom: none;\n}\n.unified-checker .info-row .label {\n  color: var(--muted);\n  min-width: 110px;\n}\n.unified-checker .info-row .value {\n  font-weight: 500;\n  text-align: right;\n  word-break: break-all;\n}\n<\/style><\/p>\n<div id=\"unifiedCheckerRoot\" class=\"unified-checker\"><button id=\"systemCheckBtn\" class=\"btn\" type=\"button\">System Check<\/button>\n<div class=\"card\">\n<h2>\uc2dc\uc2a4\ud15c \uc815\ubcf4<\/h2>\n<div class=\"info-list\">\n<div class=\"info-row\"><span class=\"label\">Networks<\/span><span id=\"self_nic\" class=\"value\">&#8211;<\/span><\/div>\n<div class=\"info-row\"><span class=\"label\">\uc6b4\uc601 \uccb4\uc81c<\/span><span id=\"os\" class=\"value\">&#8211;<\/span><\/div>\n<div class=\"info-row\"><span class=\"label\">\ube0c\ub77c\uc6b0\uc800<\/span><span id=\"browser\" class=\"value\">&#8211;<\/span><\/div>\n<div class=\"info-row\"><span class=\"label\">\ud654\uba74 \ud574\uc0c1\ub3c4<\/span><span id=\"screen\" class=\"value\">&#8211;<\/span><\/div>\n<div class=\"info-row\"><span class=\"label\">CPU \ucf54\uc5b4 \uc218<\/span><span id=\"cpu\" class=\"value\">&#8211;<\/span><\/div>\n<div class=\"info-row\"><span class=\"label\">\uba54\ubaa8\ub9ac<\/span><span id=\"memory\" class=\"value\">&#8211;<\/span><\/div>\n<div class=\"info-row\"><span class=\"label\">\uadf8\ub798\ud53d \uce74\ub4dc<\/span><span id=\"gpu\" class=\"value\">&#8211;<\/span><\/div>\n<div class=\"info-row\"><span class=\"label\">\uacf5\uc778 IP \uc8fc\uc18c<\/span><span id=\"ip\" class=\"value\">&#8211;<\/span><\/div>\n<\/div>\n<\/div>\n<div class=\"card\">\n<h2>\uc8fc\uc694 \ucf54\ub371 \uc9c0\uc6d0 \ud604\ud669<\/h2>\n<table>\n<thead>\n<tr>\n<th>\ucf54\ub371<\/th>\n<th>\uc9c0\uc6d0<\/th>\n<\/tr>\n<\/thead>\n<tbody id=\"codecTable\">\n<tr>\n<td style=\"color: var(--muted);\" colspan=\"2\">System Check\ub97c \ub20c\ub7ec \uc8fc\uc138\uc694<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p class=\"note\">\u203b canPlayType \/ MediaSource.isTypeSupported \/ MediaCapabilities API\ub97c \uc0ac\uc6a9\ud569\ub2c8\ub2e4.<br \/>\ube0c\ub77c\uc6b0\uc800\uac00 \ud558\ub4dc\uc6e8\uc5b4 \ub514\ucf54\ub354\ub97c \ub178\ucd9c\ud558\uc9c0 \uc54a\uc73c\uba74 &#8220;\ubbf8\uc9c0\uc6d0&#8221;\uc73c\ub85c \ub098\uc62c \uc218 \uc788\uc2b5\ub2c8\ub2e4.<br \/>MacOS\uc5d0\uc11c\ub294 hvc1\ub85c \ucf54\ub371 \ud0dc\uadf8 \uc124\uc815\uc744 \ud574\uc918\uc57c \uc815\uc0c1 \uc7ac\uc0dd\ub429\ub2c8\ub2e4.<\/p>\n<\/div>\n<div class=\"card\">\n<h2>MediaCapabilities \uc0c1\uc138 (HEVC)<\/h2>\n<div id=\"mcDetail\" style=\"font-size: 0.875rem; color: var(--muted);\">System Check\ub97c \ub20c\ub7ec \uc8fc\uc138\uc694<\/div>\n<\/div>\n<footer>System Checker \u00b7 \uacb0\uacfc\ub294 \ube0c\ub77c\uc6b0\uc800 \ud658\uacbd\uc5d0 \ub530\ub77c \uc2e4\uc81c \ud558\ub4dc\uc6e8\uc5b4 \uc9c0\uc6d0\uacfc \ub2e4\ub97c \uc218 \uc788\uc2b5\ub2c8\ub2e4.<\/footer><\/div>\n<p><script>\n(function () {\n  \"use strict\";\n\n  var description = {\n    networks: {\n      \"slow-2g\": \"\ucd5c\ub300 \ub2e4\uc6b4\ub85c\ub4dc \uc18d\ub3c4: 50 Kbps...\",\n      \"2g\": \"\ucd5c\ub300 \ub2e4\uc6b4\ub85c\ub4dc \uc18d\ub3c4: 70 Kbps...\",\n      \"3g\": \"\ucd5c\ub300 \ub2e4\uc6b4\ub85c\ub4dc \uc18d\ub3c4: 700 Kbps...\",\n      \"4g\": \"\ub124\ud2b8\uc6cc\ud06c \uc18d\ub3c4\uac00 \ube60\ub985\ub2c8\ub2e4.\"\n    }\n  };\n\n  var CODECS = [\n    {\n      name: \"H.265 \/ HEVC\",\n      short: \"HEVC\",\n      mime: 'video\/mp4; codecs=\"hvc1.1.6.L93.B0\"',\n      alts: [\n        'video\/mp4; codecs=\"hvc1\"',\n        'video\/mp4; codecs=\"hvc1.1.6.L93.B0\"',\n        'video\/mp4; codecs=\"hvc1.1.6.L120.B0\"',\n        'video\/mp4; codecs=\"hvc1.1.6.L120.90\"',\n        'video\/mp4; codecs=\"hvc1.1.6.L150.B0\"',\n        'video\/mp4; codecs=\"hvc1.2.4.L93.B0\"',\n        'video\/mp4; codecs=\"hev1.1.6.L93.B0\"',\n        'video\/mp4; codecs=\"hev1\"',\n        'video\/mp4; codecs=\"hev1.1.6.L120.B0\"'\n      ]\n    },\n    {\n      name: \"H.264 \/ AVC\",\n      short: \"H.264\",\n      mime: 'video\/mp4; codecs=\"avc1.42E01E\"',\n      alts: [\n        'video\/mp4; codecs=\"avc1.4D401E\"',\n        'video\/mp4; codecs=\"avc1.640028\"'\n      ]\n    }\n  ];\n\n  function $(id) {\n    return document.getElementById(id);\n  }\n\n  function setText(id, value) {\n    var el = $(id);\n    if (el) el.textContent = value;\n  }\n\n  function systemCheck() {\n    \/\/ \uc2dc\uc2a4\ud15c \uc815\ubcf4\n    var effectiveType = \"unknown\";\n    if (navigator.connection) {\n      effectiveType = navigator.connection.effectiveType || \"unknown\";\n    }\n    if (description.networks[effectiveType]) {\n      setText(\"self_nic\", description.networks[effectiveType]);\n    } else if (effectiveType === \"unknown\") {\n      setText(\"self_nic\", \"\ub124\ud2b8\uc6cc\ud06c \uc815\ubcf4 \uc9c0\uc6d0 \uc548 \ub428\");\n    } else {\n      setText(\"self_nic\", effectiveType);\n    }\n\n    detectOS();\n    detectBrowser();\n    detectScreenSpecs();\n    detectGPU();\n    detectIP();\n\n    \/\/ \ucf54\ub371 \uac80\uc0ac\n    runCodecChecks();\n  }\n\n  function detectOS() {\n    var ua = navigator.userAgent || \"\";\n    var os = \"\uc54c \uc218 \uc5c6\uc74c\";\n\n    if (navigator.userAgentData && navigator.userAgentData.getHighEntropyValues) {\n      navigator.userAgentData.getHighEntropyValues([\"platform\", \"platformVersion\"])\n        .then(function (uaData) {\n          var p = (uaData.platform || \"\").toLowerCase();\n          var ver = uaData.platformVersion || \"\";\n          if (p.indexOf(\"android\") !== -1) os = \"Android\";\n          else if (p.indexOf(\"ios\") !== -1) os = \"iOS\";\n          else if (p.indexOf(\"windows\") !== -1) {\n            var major = parseInt((ver.split(\".\")[0] || \"0\"), 10);\n            os = major >= 13 ? \"Windows 11\" : \"Windows 10\";\n          } else if (p.indexOf(\"mac\") !== -1) os = \"Mac OS\";\n          else if (p.indexOf(\"linux\") !== -1) os = \"Linux\";\n\n          if (os === \"\uc54c \uc218 \uc5c6\uc74c\") os = fallbackOS(ua);\n          setText(\"os\", os);\n        })\n        .catch(function () {\n          setText(\"os\", fallbackOS(ua));\n        });\n    } else {\n      setText(\"os\", fallbackOS(ua));\n    }\n  }\n\n  function fallbackOS(ua) {\n    if (\/Android\/i.test(ua)) return \"Android\";\n    if (\/iPhone|iPad|iPod\/i.test(ua)) return \"iOS\";\n    if (\/Windows NT 10\\.0\/.test(ua)) return \"Windows 10\/11\";\n    if (\/Mac OS X|Macintosh\/i.test(ua)) return \"Mac OS\";\n    if (\/Linux\/i.test(ua)) return \"Linux\";\n    return \"\uc54c \uc218 \uc5c6\uc74c\";\n  }\n\n  function detectBrowser() {\n    var ua = navigator.userAgent || \"\";\n    var browser = \"\uc54c \uc218 \uc5c6\uc74c\";\n    var m;\n\n    if (ua.indexOf(\"Edg\/\") !== -1) {\n      m = ua.match(\/Edg\\\/([\\d.]+)\/);\n      browser = \"Microsoft Edge \" + (m ? m[1] : \"\");\n    } else if (ua.indexOf(\"Chrome\/\") !== -1) {\n      m = ua.match(\/Chrome\\\/([\\d.]+)\/);\n      browser = \"Google Chrome \" + (m ? m[1] : \"\");\n    } else if (ua.indexOf(\"Firefox\/\") !== -1) {\n      m = ua.match(\/Firefox\\\/([\\d.]+)\/);\n      browser = \"Firefox \" + (m ? m[1] : \"\");\n    } else if (ua.indexOf(\"Safari\/\") !== -1 && ua.indexOf(\"Chrome\/\") === -1) {\n      browser = \"Safari\";\n    }\n\n    setText(\"browser\", browser);\n  }\n\n  function detectScreenSpecs() {\n    setText(\"screen\", window.screen.width + \" \u00d7 \" + window.screen.height);\n    setText(\"cpu\", navigator.hardwareConcurrency || \"\uc54c \uc218 \uc5c6\uc74c\");\n    var mem = navigator.deviceMemory;\n    setText(\"memory\", mem ? (mem + \" GB\") : \"\uc54c \uc218 \uc5c6\uc74c\");\n  }\n\n  function cleanGPUName(name) {\n    if (!name) return \"\uc54c \uc218 \uc5c6\uc74c\";\n    var gpu = String(name);\n    gpu = gpu.replace(\/^ANGLE\\s*\\(\/i, \"\").replace(\/\\)$\/, \"\");\n    gpu = gpu.replace(\/\\(\\s*0x[0-9A-Fa-f]+\\s*\\)\/g, \"\");\n    gpu = gpu.replace(\/Direct3D\\s*\\d*\/gi, \"\");\n    gpu = gpu.replace(\/D3D\\s*\\d*\/gi, \"\");\n    gpu = gpu.replace(\/vs_\\d+_\\d+\/gi, \"\");\n    gpu = gpu.replace(\/ps_\\d+_\\d+\/gi, \"\");\n    gpu = gpu.replace(\/gs_\\d+_\\d+\/gi, \"\");\n    gpu = gpu.replace(\/cs_\\d+_\\d+\/gi, \"\");\n    gpu = gpu.replace(\/,\\s*,+\/g, \",\");\n    gpu = gpu.replace(\/\\s+,\/g, \",\");\n    gpu = gpu.replace(\/,\\s+\/g, \", \");\n    gpu = gpu.replace(\/\\s{2,}\/g, \" \");\n    gpu = gpu.replace(\/^[\\s,]+|[\\s,]+$\/g, \"\");\n\n    var parts = gpu.split(\",\").map(function (v) { return v.trim(); }).filter(Boolean);\n    if (parts.length >= 2) {\n      var first = parts[0].toLowerCase();\n      var second = parts[1].toLowerCase();\n      if (second.indexOf(first) === 0) parts.shift();\n    }\n    gpu = parts.join(\", \");\n    return gpu || \"\uc54c \uc218 \uc5c6\uc74c\";\n  }\n\n  function detectGPU() {\n    var gpu = \"\uc54c \uc218 \uc5c6\uc74c\";\n    try {\n      var canvas = document.createElement(\"canvas\");\n      var gl = canvas.getContext(\"webgl2\") ||\n               canvas.getContext(\"webgl\") ||\n               canvas.getContext(\"experimental-webgl\");\n      if (gl) {\n        var debugInfo = null;\n        try { debugInfo = gl.getExtension(\"WEBGL_debug_renderer_info\"); } catch (e) {}\n\n        if (debugInfo) {\n          try {\n            var unmasked = gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL);\n            if (unmasked && unmasked.length > 0) gpu = unmasked;\n          } catch (e) {}\n        }\n        if (gpu === \"\uc54c \uc218 \uc5c6\uc74c\") {\n          try {\n            var renderer = gl.getParameter(gl.RENDERER);\n            if (renderer && renderer.length > 0) gpu = renderer;\n          } catch (e) {}\n        }\n        if (gpu === \"\uc54c \uc218 \uc5c6\uc74c\" && debugInfo) {\n          try {\n            var vendor = gl.getParameter(debugInfo.UNMASKED_VENDOR_WEBGL);\n            if (vendor && vendor.length > 0) gpu = vendor;\n          } catch (e) {}\n        }\n      }\n    } catch (e) {}\n    setText(\"gpu\", cleanGPUName(gpu));\n  }\n\n  function detectIP() {\n    setText(\"ip\", \"\uc870\ud68c \uc911...\");\n    fetch(\"https:\/\/api.ipify.org?format=json\")\n      .then(function (res) { return res.json(); })\n      .then(function (data) {\n        setText(\"ip\", data.ip || \"\uc870\ud68c \uc2e4\ud328\");\n      })\n      .catch(function () {\n        setText(\"ip\", \"\uc870\ud68c \uc2e4\ud328\");\n      });\n  }\n\n  function checkCanPlay(mime) {\n    try {\n      var video = document.createElement(\"video\");\n      return video.canPlayType(mime) || \"\";\n    } catch (e) {\n      return \"\";\n    }\n  }\n\n  function checkMSE(mime) {\n    try {\n      if (typeof MediaSource === \"undefined\") return null;\n      if (!MediaSource.isTypeSupported) return null;\n      return MediaSource.isTypeSupported(mime);\n    } catch (e) {\n      return false;\n    }\n  }\n\n  function checkMediaCapabilities(mime) {\n    return new Promise(function (resolve) {\n      try {\n        if (!navigator.mediaCapabilities) {\n          resolve(null);\n          return;\n        }\n        if (!navigator.mediaCapabilities.decodingInfo) {\n          resolve(null);\n          return;\n        }\n        navigator.mediaCapabilities.decodingInfo({\n          type: \"file\",\n          video: {\n            contentType: mime,\n            width: 1920,\n            height: 1080,\n            bitrate: 5000000,\n            framerate: 30\n          }\n        }).then(function (info) {\n          resolve(info);\n        }).catch(function () {\n          resolve(null);\n        });\n      } catch (e) {\n        resolve(null);\n      }\n    });\n  }\n\n  function bestSupport(results) {\n    var i;\n    for (i = 0; i < results.length; i++) {\n      if (results[i] === \"probably\") return \"yes\";\n      if (results[i] === true) return \"yes\";\n    }\n    for (i = 0; i < results.length; i++) {\n      if (results[i] === \"maybe\") return \"maybe\";\n    }\n    return \"no\";\n  }\n\n  function testCodec(codec) {\n    return new Promise(function (resolve) {\n      var mimes = [codec.mime].concat(codec.alts || []);\n      var canPlayResults = [];\n      var mseResults = [];\n      var i;\n\n      for (i = 0; i < mimes.length; i++) {\n        canPlayResults.push(checkCanPlay(mimes[i]));\n        mseResults.push(checkMSE(mimes[i]));\n      }\n\n      var idx = 0;\n      var mcResult = null;\n\n      function nextMC() {\n        if (idx >= mimes.length) {\n          finish();\n          return;\n        }\n        checkMediaCapabilities(mimes[idx]).then(function (info) {\n          if (info) {\n            if (info.supported) {\n              mcResult = info;\n              finish();\n              return;\n            }\n          }\n          idx = idx + 1;\n          nextMC();\n        });\n      }\n\n      function finish() {\n        var canPlayBest = bestSupport(canPlayResults);\n        var hasMSE = false;\n        var allNull = true;\n        var k;\n        for (k = 0; k < mseResults.length; k++) {\n          if (mseResults[k] === true) hasMSE = true;\n          if (mseResults[k] !== null) allNull = false;\n        }\n\n        var mseBest = \"no\";\n        if (hasMSE) mseBest = \"yes\";\n        else if (allNull) mseBest = \"unknown\";\n\n        var overall = \"no\";\n        if (canPlayBest === \"yes\") overall = \"yes\";\n        else if (mseBest === \"yes\") overall = \"yes\";\n        else if (mcResult) {\n          if (mcResult.supported) overall = \"yes\";\n        }\n        if (overall === \"no\") {\n          if (canPlayBest === \"maybe\") overall = \"maybe\";\n        }\n\n        resolve({\n          name: codec.name,\n          short: codec.short,\n          mime: codec.mime,\n          canPlay: canPlayBest,\n          mse: mseBest,\n          mc: mcResult,\n          overall: overall\n        });\n      }\n\n      nextMC();\n    });\n  }\n\n  function statusHtml(status) {\n    if (status === \"yes\") return '<span class=\"status status-yes\">\uc9c0\uc6d0<\/span>';\n    if (status === \"maybe\") return '<span class=\"status status-partial\">\uac00\ub2a5<\/span>';\n    if (status === \"unknown\") return '<span class=\"status\" style=\"color:var(--muted)\">\uc54c \uc218 \uc5c6\uc74c<\/span>';\n    return '<span class=\"status status-no\">\ubbf8\uc9c0\uc6d0<\/span>';\n  }\n\n  function runCodecChecks() {\n    var codecTableEl = $(\"codecTable\");\n    var mcDetailEl = $(\"mcDetail\");\n    if (!codecTableEl) return;\n\n    codecTableEl.innerHTML = '<tr><td colspan=\"2\" style=\"color:var(--muted)\">\uac80\uc0ac \uc911...<\/td><\/tr>';\n    if (mcDetailEl) mcDetailEl.textContent = \"\uac80\uc0ac \uc911...\";\n\n    var results = [];\n    var idx = 0;\n\n    function nextCodec() {\n      if (idx >= CODECS.length) {\n        renderResults(results);\n        return;\n      }\n      testCodec(CODECS[idx]).then(function (r) {\n        results.push(r);\n        idx = idx + 1;\n        nextCodec();\n      }).catch(function () {\n        idx = idx + 1;\n        nextCodec();\n      });\n    }\n\n    function renderResults(results) {\n      var tableHtml = \"\";\n      var i, r, badges;\n\n      for (i = 0; i < results.length; i++) {\n        r = results[i];\n        badges = [];\n        if (r.canPlay === \"yes\") {\n          badges.push('<span class=\"mini-badge on\">canPlayType: ' + r.canPlay + '<\/span>');\n        } else if (r.canPlay === \"maybe\") {\n          badges.push('<span class=\"mini-badge\">canPlayType: ' + r.canPlay + '<\/span>');\n        }\n        if (r.mse === \"yes\") {\n          badges.push('<span class=\"mini-badge on\">MSE<\/span>');\n        }\n        if (r.mc) {\n          if (r.mc.supported) {\n            badges.push('<span class=\"mini-badge on\">MediaCap<\/span>');\n            if (r.mc.powerEfficient) badges.push('<span class=\"mini-badge on\">\uc808\uc804<\/span>');\n            if (r.mc.smooth) badges.push('<span class=\"mini-badge on\">\ubd80\ub4dc\ub7ec\uc6c0<\/span>');\n          }\n        }\n\n        tableHtml +=\n          '<tr>' +\n            '<td>' +\n              '<div class=\"codec-name\">' + r.name + '<\/div>' +\n              '<div class=\"codec-mime\">' + r.mime + '<\/div>' +\n              '<div class=\"detail-row\">' + badges.join(\"\") + '<\/div>' +\n            '<\/td>' +\n            '<td>' + statusHtml(r.overall) + '<\/td>' +\n          '<\/tr>';\n      }\n      codecTableEl.innerHTML = tableHtml;\n\n      var hevc = null;\n      for (i = 0; i < results.length; i++) {\n        if (results[i].short === \"HEVC\") {\n          hevc = results[i];\n          break;\n        }\n      }\n\n      if (mcDetailEl) {\n        if (!navigator.mediaCapabilities) {\n          mcDetailEl.innerHTML = \"\uc774 \ube0c\ub77c\uc6b0\uc800\ub294 MediaCapabilities API\ub97c \uc9c0\uc6d0\ud558\uc9c0 \uc54a\uc2b5\ub2c8\ub2e4.\";\n        } else if (hevc) {\n          if (hevc.mc) {\n            var supportedText = \"No\";\n            var smoothText = \"No\";\n            var powerText = \"No (SW \ub514\ucf54\ub529 \ucd94\uc815)\";\n            if (hevc.mc.supported) supportedText = \"Yes\";\n            if (hevc.mc.smooth) smoothText = \"Yes\";\n            if (hevc.mc.powerEfficient) powerText = \"Yes (HW \uac00\uc18d \ucd94\uc815)\";\n\n            mcDetailEl.innerHTML =\n              '<div class=\"device-info\">' +\n                '<div><span class=\"label\">\uc9c0\uc6d0 (supported)<\/span><span class=\"value\">' + supportedText + '<\/span><\/div>' +\n                '<div><span class=\"label\">\ubd80\ub4dc\ub7ec\uc6b4 \uc7ac\uc0dd (smooth)<\/span><span class=\"value\">' + smoothText + '<\/span><\/div>' +\n                '<div><span class=\"label\">\uc804\ub825 \ud6a8\uc728 (powerEfficient)<\/span><span class=\"value\">' + powerText + '<\/span><\/div>' +\n              '<\/div>' +\n              '<p class=\"note\" style=\"margin-top:10px\">' +\n                \"powerEfficient = true \uc774\uba74 \ud558\ub4dc\uc6e8\uc5b4 \ub514\ucf54\ub354\ub97c \uc0ac\uc6a9\ud560 \uac00\ub2a5\uc131\uc774 \ub192\uc2b5\ub2c8\ub2e4.<br>\" +\n                \"false\uc5ec\ub3c4 \uc18c\ud504\ud2b8\uc6e8\uc5b4\ub85c \uc7ac\uc0dd\uc740 \uac00\ub2a5\ud560 \uc218 \uc788\uc2b5\ub2c8\ub2e4.\" +\n              '<\/p>';\n          } else {\n            mcDetailEl.innerHTML = \"HEVC\uc5d0 \ub300\ud55c MediaCapabilities \uacb0\uacfc\ub97c \uac00\uc838\uc624\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.\";\n          }\n        } else {\n          mcDetailEl.innerHTML = \"HEVC\uc5d0 \ub300\ud55c MediaCapabilities \uacb0\uacfc\ub97c \uac00\uc838\uc624\uc9c0 \ubabb\ud588\uc2b5\ub2c8\ub2e4.\";\n        }\n      }\n    }\n\n    nextCodec();\n  }\n\n  function bindButton() {\n    var btn = $(\"systemCheckBtn\");\n    if (!btn) return;\n    if (btn._bound) return;\n    btn.addEventListener(\"click\", function () {\n      systemCheck();\n    });\n    btn._bound = true;\n  }\n\n  function init() {\n    var root = $(\"unifiedCheckerRoot\");\n    if (!root) {\n      setTimeout(init, 200);\n      return;\n    }\n    bindButton();\n  }\n\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", init);\n  } else {\n    init();\n  }\n  setTimeout(init, 500);\n})();\n<\/script><\/p>\n\t\t\t\t\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>System Check \uc2dc\uc2a4\ud15c \uc815\ubcf4 Networks- \uc6b4\uc601 \uccb4\uc81c- \ube0c\ub77c\uc6b0\uc800- \ud654\uba74 \ud574\uc0c1\ub3c4- CPU \ucf54\uc5b4 \uc218- \uba54\ubaa8\ub9ac- \uadf8\ub798\ud53d \uce74\ub4dc- \uacf5\uc778 IP \uc8fc\uc18c- \uc8fc\uc694 [&hellip;]<\/p>\n","protected":false},"author":2,"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":"","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":"","_members_access_role":[],"_members_access_error":""},"class_list":["post-877","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/aquaguide.cdnetworks.com\/index.php?rest_route=\/wp\/v2\/pages\/877","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aquaguide.cdnetworks.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/aquaguide.cdnetworks.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/aquaguide.cdnetworks.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/aquaguide.cdnetworks.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=877"}],"version-history":[{"count":67,"href":"https:\/\/aquaguide.cdnetworks.com\/index.php?rest_route=\/wp\/v2\/pages\/877\/revisions"}],"predecessor-version":[{"id":958,"href":"https:\/\/aquaguide.cdnetworks.com\/index.php?rest_route=\/wp\/v2\/pages\/877\/revisions\/958"}],"wp:attachment":[{"href":"https:\/\/aquaguide.cdnetworks.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=877"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}